/redoubler-diy

Open RNG based on Modular Entropy Multiplication

Primary LanguageEagleGNU General Public License v3.0GPL-3.0

REDOUBLER-DIY

REDOUBLER is Peter Allan's deisgn for a hardware Random Number Generator, which I have forked this project from. The device plugs into a host's USB port, and enumerates as a standard microphone. The assertion Peter has made is that the output of this pseudo-microphone is effectively white noise which contains a high proportion of random entropy, and that it can be recorded and used for any purpose that requires a non-deterministic entropy source. If this is an accurate analysis of the device's behavior, it could be useful in addressing certain cryptographic vulnerabilities which have been documented over the past several years.

REDOUBLER-DIY is an easy-to-assemble version of REDOUBLER which requires no custom printed circuit boards or tricky soldering of surface mount devices. It was assembled with the original designer's support and advice. This version starts with a $10 Cypress CY8CKIT-059 prototyping kit. The kit is available direct from Cypress, or through DigiKey. Some other distributors have it available, but are charging a higher price. I've added just eight 1% tolerance resistors to the kit in an attempt to duplicate REDOUBLER's behavior. Assembled, my prototype looked like this:

REDOUBLER-DIY, hand built

After some initial debugging, a small change was made in the resistor connections, the next photo shows the resistor wiring which corrected a mistake I made.

close up of resistors

Once assembled correctly, and running a version of the REDOUBLER's firmware, measurement of the voltage at the junction of each pair of resistors (the op-amp's inverting input) shows an interesting looking signal as shown below:

oscope trace of op-amp inverting input oscope trace of op-amp inverting input

But listening to the "sound" output from my Redoubler, I detected a sort of odd tone to it. You can find my recordings in the data directory. I used Audicity to record the data, resetting the board between files. Analyzing them carefully showed they were periodic, but that is sometimes more obvious than others.

Here's a time series and frequency analyis of pseudonoise.wav. This one "sounds" like noise to my ears, but performing a frequency analysis shows there is a repeating pattern to the noise-like data.

Pseudo Noise

Other times after pressing reset it sounded more like a square wave to me. To my surprise looking at the data, it wasn't even close, but it in this case the repeating pattern is obvious in Audacity:

Less noise like 1 Less noise like 2