
Contents AN4230
2/27 AN4230 Rev 5
Contents
1 STM32 MCU RNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 STM32 MCU implementation description . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 NIST SP800-22b test suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 NIST SP800-22b test suite description . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 NIST SP800-22b test suite running and analyzing . . . . . . . . . . . . . . . . . 9
3.1 Firmware description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 STM32 MCU side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 On the NIST SP800-22b test suite side . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 NIST SP800-22b test suite steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Step 1: random number generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.2 Step 2: NIST statistical test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.3 Step 3: test report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 NIST SP800-90b test suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 NIST SP800-90b test suite description . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2.1 Non-IID track: entropy estimation for non-IID data . . . . . . . . . . . . . . . . 16
5 NIST SP800-90b test suite running and analyzing . . . . . . . . . . . . . . . . 18
5.1 Firmware description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.1 STM32 MCU side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.2 NIST SP800-90b test suite side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2 NIST SP800-90B test suite steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.1 Step 1: random number generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.2 Step 2: NIST statistical tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.3 Step 3: test report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Appendix A NIST SP800-22b statistical test suite . . . . . . . . . . . . . . . . . . . . . . . . 21