DocID024597 Rev 5 809/1830
RM0351 True Random Number Generator (RNG)
816
Figure 189. Entropy source model
The main components of the RNG are:
• A source of physical randomness (analog noise source)
• A digitization stage for this analog noise source
• A stage delivering post-processed noise source (raw data)
• An output buffer for the raw data. If further cryptographic conditioning is required by the
application it will need to be performed by software.
• An optional output for the digitized noise source (unbuffered, on digital pads)
• Basic health tests on the digitized noise source
All those components are detailed below.
Noise source
The noise source is the component that contains the non-deterministic, entropy-providing
activity that is ultimately responsible for the uncertainty associated with the bitstring output
by the entropy source. It is composed of:
• Two analog noise sources, each based on three XORed free-running ring oscillator
outputs. It is possible to disable those analog oscillators to save power, as described in
Section 27.4: RNG low-power usage.
• A sampling stage of these outputs clocked by a dedicated clock input (rng_clk),
delivering a 2-bit raw data output.
The noise source sampling stage solves a metastability problem that may occurs due to the
asynchronism between the noise source output signals and the dedicated rng_clk input.
This noise source sampling is also independent to the AHB interface clock frequency
(rng_hclk).
Note: In Section 27.7: Entropy source validation recommended RNG clock frequencies are given.
06Y9
(QWURS\VRXUFH
1RLVH6RXUFH
'LJLWL]DWLRQ
3RVWSURFHVVLQJ
RSWLRQDO
5DZGDWD
&RQGLWLRQLQJ
RSWLRQDO
+HDWK
WHVWV
2XWSXW
(UURU
PHVVDJH
2XWSXW
UDZGDWDRU
GLJLWL]HGQRLVH
VRXUFH