STM32 microcontroller random number generation validation using the NIST statistical test suite - Application note

2021-11-03
●Introduction
■Many standards created requirements and references for the construction, the validation and the use of random number generators (RNGs), in order to verify that the output they produce is indeed random.
■This application note provides some guidelines to verify the randomness of the numbers generated by the RNG peripheral embedded in a selection of STM32 microcontrollers (MCUs) listed in the table below. This verification is based either on the statistical test suite (STS) SP 800-22rev1a (April 2010) or SP 800-90b (January 2018) of the NIST (National Institute of Standards and Technology).
■This document is structured as follows:
◆a general introduction to STM32 microcontroller random number generator
◆the NIST SP800-22b test suite
◆the steps needed to run NIST SP800-22b test and analysis
◆the NIST SP800-90b test suite
◆the steps needed to run NIST SP800-90b test and analysis
●Introduction
■Random number generators (RNGs) used for cryptographic applications typically produce sequences made of random 0’s and 1’s bits.
■There are two basic classes of random number generators:
◆Deterministic RNG or pseudo RNG (PRNG)
▲A deterministic RNG consists of an algorithm that produces a sequence of bits from an initial value called a seed. To ensure forward unpredictability, care must be taken in obtaining seeds. The values produced by a PRNG are completely predictable if the seed and generation algorithm are known. Since in many cases the generation algorithm is publicly available, the seed must be kept secret and generated from a TRNG.
◆Non-deterministic RNG or True RNG (TRNG)
▲A non-deterministic RNG produces randomness that depends on some unpredictable physical source (the entropy source) outside of any human control.
■The RNG hardware peripheral implemented in some STM32 MCUs is a true random number generator.

ST

STM32STM32F2 SeriesSTM32F4 SeriesSTM32F7 SeriesSTM32H742STM32H743/753STM32H745/755STM32H747/757STM32H750STM32L0 SeriesSTM32L4 SeriesSTM32H7A3/7B3STM32H7B0STM32H723/733STM32H725/735STM32H730STM32L5 SeriesSTM32F2x5STM32F2x7SSTM32F7x5STM32F7x6STM32L05xSTM32L06xSTM32L072STM32L073STM32L4x6STM32L5x2STM32F405STM32F415STM32F407STM32F417STM32F410STM32F427STM32F437STM32F429STM32F439STM32F469STM32F479

More

Part#

random number generator(RNGs)

More

More

Application note & Design Guide

More

More

Please see the document for details

More

More

English Chinese Chinese and English Japanese

18-Aug-2020

Rev 6

AN4230

540 KB

- The full preview is over. If you want to read the whole 27 page document,please Sign in/Register -
  • +1 Like
  • Add to Favorites

Recommend

All reproduced articles on this site are for the purpose of conveying more information and clearly indicate the source. If media or individuals who do not want to be reproduced can contact us, which will be deleted.

Contact Us

Email: