
RM0453 Rev 2
635/1454
RM0453
True random number generator (RNG)
647
22.3.3
Random number generation
The true random number generator (RNG) delivers truly random data through its AHB
interface at deterministic intervals.
Within its boundary RNG integrates all the required NIST components depicted on
. Those components are an analog noise source, a digitization stage, a
conditioning algorithm, a health monitoring block and two interfaces that are used to interact
with the entropy source: GetEntropy and HealthTest.
Figure 99. NIST SP800-90B entropy source model
The components pictured above are detailed hereafter:
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. This noise source provides 1-bit samples. It is composed of:
•
Multiple analog noise sources (x6), 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 22.3.8: RNG low-power usage
•
The XORing of the six noise sources into a single analog output.
•
A sampling stage of this output clocked by a dedicated clock input (
rng_clk
with
integrated divider), delivering a 1-bit raw data output.
This noise source sampling is independent to the AHB interface clock frequency (
rng_hclk
),
with a possibility for the software to decrease the sampling frequency by using the
integrated divider.
Note:
In
Section 22.6: RNG entropy source validation
recommended RNG clock frequencies and
associated divider value are given.
MSv44200V2
Entropy source
Noise Source
Digitization
Post-processing
(optional)
Raw data
Conditioning
(optional)
Heath
tests
Output
(GetEntropy)
Error
message
(HealthTest)