Inspiration
Most random numbers used today are software-based and predictable. We wanted to build a low-cost hardware system that generates true randomness from real physical noise, which is important for security and cryptography.
What it does
The project generates true random numbers using noise from a reverse-biased Zener diode. It displays the random bits and numbers on an LCD and also sends them to a PC to visualize and test randomness in real time.
How we built it
We used a Zener diode to generate noise, amplified it using an LM358 op-amp, and sampled it with an Arduino. The random data is shown on an LCD, while a Python application plots the bit stream, saves data, and performs randomness tests.
Challenges we ran into
Handling very small noise signals, removing unwanted bias, button debouncing, and synchronizing hardware output with the software visualization were the main challenges.
Accomplishments that we're proud of
We successfully built a working hardware-based TRNG, visualized real-time randomness, and verified it using statistical tests like bit balance and distribution — all with low-cost components.
What we learned
We learned how physical noise can be used as a real entropy source, how to interface analog hardware with digital systems, and how to validate randomness using basic statistical methods.
What's next for True Random Number Generator (TRNG)
In the future, we plan to improve entropy extraction, add advanced randomness tests, increase speed, and integrate the TRNG into security applications like encryption and key generation.
Built With
- analog-electronics
- arduino-uno
- embedded-c/c++
- lcd
- lm358-op-amp
- python
- python-with-pyserial-and-matplotlib
- reverse-biased-zener-diode-noise
- serial-communication
Log in or sign up for Devpost to join the conversation.