True random number generator (RNG)
20.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
Figure
85. 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.
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
•
The XORing of all the 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 20.6: RNG entropy source validation
associated divider value are given.
530/1306
Figure 85. NIST SP800-90B entropy source model
Error
message
(HealthTest)
Heath
tests
Entropy source
Section 20.3.8: RNG low-power
RM0461 Rev 5
Output
(GetEntropy)
Conditioning
(optional)
Raw data
Post-processing
(optional)
Digitization
Noise Source
usage.
recommended RNG clock frequencies and
RM0461
MSv44200V3
Need help?
Do you have a question about the STM32WLEx and is the answer not in the manual?