Random number generator (RNG)
RM0090
758/1731
DocID018909 Rev 11
24
Random number generator (RNG)
This section applies to the whole STM32F4xx family, unless otherwise specified.
24.1 RNG
introduction
The RNG processor is a random number generator, based on a continuous analog noise,
that provides a random 32-bit value to the host when read.
The RNG passed the FIPS PUB 140-2 (2001 October 10) tests with a success ratio of 99%.
24.2
RNG main features
•
It delivers 32-bit random numbers, produced by an analog generator
•
40 periods of the RNG_CLK clock signal between two consecutive random numbers
•
Monitoring of the RNG entropy to flag abnormal behavior (generation of stable values,
or of a stable sequence of values)
•
It can be disabled to reduce power consumption
24.3
RNG functional description
shows the RNG block diagram.
Figure 232. Block diagram
1. For more details about RNG Clock (RNG_CLK) source, please refer to
Section 6: Reset and clock control
for STM32F42xxx and STM32F43xxx (RCC)
Section 7: Reset and clock control for
STM32F405xx/07xx and STM32F415xx/17xx(RCC)
.
The random number generator implements an analog circuit. This circuit generates seeds
that feed a linear feedback shift register (RNG_LFSR) in order to produce 32-bit random
numbers.
BIT!("BUS
2.'?$2
2.'
?#2
2.'
?32
3TATUSREGISTER
#ONTROLREGISTER
FAULTDETECTOR
,&32
!NALOGSEED
2.'?#,+
#LOCKCHECKER
DATAREGISTER
3HIFT2EGISTER
FEEDA,INEAR&EEDBACK
AI