You copied the Doc URL to your clipboard.

How does TRNG behave when it detects an error?

Information in this article applies to:

  • TrustZone Random Number Generator
  • CryptoCell-712
  • CryptoCell-312
  • CryptoCell-713
  • CryptoCell-310

Problem/Question

How does TRNG behave when it detects an error?

Scenario

N/A

Answer

The TRNG can be a module in CryptoCell-3xx and CryptoCell-7xx, or it can be a standalone TRNG product. In either case, the TRNG behaves the same way when detecting an error.

The TRNG has three error types as follows:

  • AUTOCORR_ERR

AUTOCORR_ERR is generated when an autocorrelation test fails four times in a row.

  • CRNGT_ERR

CRNGT_ERR is generated when the current 16 bits are the same as the previous 16 bits.

  • VN_ERR

VN_ERR is generated when a Von Neumann error occurs. This error occurs if 32 consecutive collected bits are identical, zero, or one.

When any of the previous errors is detected, the TRNG sets the corresponding error status in the register RNG_ISR, and generates an interrupt if the corresponding interrupt mask in RNG_IMR is unset.

The TRNG stops functioning when AUTOCORR_ERR is detected. Software resets the TRNG module when this error occurs.

For both CRNGT_ERR and VN_ERR, the TRNG captures these two errors, and instructs software to handle these errors. The TRNG function continues working if software ignores these error statuses. Software might reset the TRNG, based on the software design.

Relevant TRNG register names and corresponding bits are described as follows:

  • Register RNG_IMR:

    • [bit 1] AUTOCORR_ERR_INT_MASK. When this bit is set to 1’b1, it masks the autocorrelation interrupt.

    • [bit 2] CRNGT_ERR_INT_MASK. When this bit is set to 1’b1, it masks the CRNGT error interrupt.

    • [bit 3] VN_ERR_INT_MASK. When this bit is set to 1’b1, it masks the Von-Neumann error interrupt.

  • Register RNG_ISR:

    • [bit 1] AUTOCORR_ERR. When this bit is set to 1'b1, it indicates that the Autocorrelation test failed.

    • [bit 2] CRNGT_ERR. When this bit is set to 1'b1, it indicates that the CRNGT test failed.

    • [bit 3] VN_ERR. When this bit is set to 1'b1, it indicates a Von Neumann error.

Workaround

N/A

Example

N/A

Related Information

N/A

Was this page helpful? Yes No