Random Number Generator [150116]
Zener diode noise is processed, captured and recorded on an SD card. Passes all NIST tests for random signals.
This is part one in a series about secure communication:
1. Random Number Generator [150116] (this article)
2. One-time pad OTP Crypto System [160510]
3. Tamper-evident paper-mail box for secure distribution of one-time pads
Uses Zener diodes to generate avalanche noise signal, then differential amplifier (and a few analog filters) to eliminate deterministic effects. The noise signal is captured by ATTiny2313 and sent to an FAT32 SD card as a sequence of meaningless hex numbers. I tested random number sequences in MATLAB to check for randomness. I designed and produced a prototype PCB (that you can see in attached photos and PCB layout in .pdf in natural size to check for dimensions. In the same .pdf file there is still unfinished PCB for my nixie-VFD guitar tuner, also in natural size). This RNG is designed with cheap and ubiquitous copmponents and still creates random sequences of good randomness. I tried all the methods that I know to analize the random sequences. If you know more about mathematical methods for checking the randomness of the sequence, you could be interested to check yourself. I have the circuit schematics drawn on paper.
Corrective filter has been added to RNG3 (simplified RNG2 without boost converter, powered by 2x 9V batteries) to equilize frequencies of 8-bit raw random values - this is now RNG4 on perfboard. For easier adjustment of analog filters, a simple spectrum analyser with ATmega8 and 2x16 LCD was designed and tested.
The final version is RNG5, which will be published in Elektor Magazine, together with the accompanying Bit Stream Analyser.
Random numbers are used in applications like cryptography, gaming & gambling (search document for RNG). They can also be used to estimate the value of PI.
Watch this video to learn how to correctly adjust the Random Number Generator.
Updates from the author