4.4 True Random Number Generator (TRNG)

The TRNG is used as a source of entropy for secure internet communications. The Transport Layer Security (TLS) in mbed supports TRNG, and drivers are included in the mbed OS. The register descriptions are provided here to help in understanding the driver code.

For ASIC implementation, the TRNG uses a combination of ring oscillators built using digital inverter cells. The TRNG also requires post-production characterization (per implementation), to achieve optimum performance.

For FPGA implementation, the TRNG should be configured to use a Pseudo Random Bit Sequence (PRBS). Although this results in a usable entropy source for development, it is not truly random and must not be used in production.

The selection of ring oscillator (dx_inv_chain) or PRBS is determined by the DX_FPGA define. This define is in the file logical/fpga_top/verilog/fpga_options_defs.v.

For more details on the TRNG register attributes and address space, see the ARM® TrustZone® TRNG True Random Number Generator Technical Reference Manual.

Non-ConfidentialPDF file icon PDF versionARM 100894_0000_00_en
Copyright © 2017 ARM Limited or its affiliates. All rights reserved.