Random bit generator for 8-bit AVR microcontrollers

Contents:

General information

CRS-AVR020X-RBG software implements random bit generator based on the functioning of Analog-to-Digital Converter (ADC). Due to the fact, the generator may only be used together with AVR microcontrollers with built-in ADC.

The module is capable of generating about 1500 of random bits per second. Although the number may not seem stunning, the main advantage of the module is that it needs no external sources of noise. This is why after adding it to the project the user gets fully functional generator of totally random data.

Results of statistical tests

There are three kinds of lies: lies, damned lies, and statistics.
Hugo Steinhaus

The statistical tests had been carried out using a Statistical Test Suite (STS) developed by the National Institute of Standards and Technology (NIST) for probing the quality of generators for cryptographic applications. A comprehensive description of the Suite was presented in the paper entitled A Statistical Test Suite for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic Applications. Please find below the results of statistical tests carried out using the STS on a sample containing around 1G of generated bits.

  1. Frequency (Monobit) Test
  2. Frequency Test within a Block
  3. Runs Test
  4. Test for the Longest Run of Ones in a Block
  5. Binary Matrix Rank Test
  6. Discrete Fourier Transform (Spectral) Test
  7. Non-overlapping Template Matching Test
  8. Overlapping Template Matching Test
  9. Maurer's Universal Statistical Test
  10. Lempel-Ziv Compression Test
  11. Linear Complexity Test
  12. Serial Test
  13. Approximate Entropy Test
  14. Cumulative Sums (Cusum) Test
  15. Random Excursions Test
  16. Random Excursions Variant Test

The foregoing reports correspond with the tests carried out on samples of various lengths. Additional test carried out consisted in simultaneous use of the whole set for sequences of 1M bits (cumulative test) pursuant to the NIST's description of STS.

All the tests had been carried out employing a significance level of 0,01 recommended by the NIST for verifying the properties of generators for cryptographic applications.