“Truth is ever to be found in simplicity, and not in the multiplicity and confusion of things.”
Well, the site’s coming along. It is an evolving collection of entropic primitives, how to use them and perhaps the odd actual TRNG. These primitives produce only entropy. Entropy yes. Uniformly distributed random numbers? No. The more we experiment and find out, the more we’ll add. It might be slow progress though. Our oscilloscopes are old and the soldering irons under powered.
The Second Law of Thermodynamics states that entropy is all around us and constantly increasing (and it’s free). It just remains for it to be collected and refined by a process known as entropy extraction. True random numbers come from such extraction. And as we’ll show, collection can be done at home relatively easily using common off the shelf components. Two of the simplest and most reliable methods involve humble Zener diodes and cameras. These are our two principal entropic primitives.
We won’t however be publishing entire designs here. Think of it as a collection of hardware and software based building blocks that you can put together as you see fit. There are quite a few noise generator and TRNG circuits on line. Some have extensive operational details and performance figures, but others just feature a label saying “Noise out." We intend to provide more detailed analysis than that.
You have to realise that actually there is no such thing as a hardware random number generator, unless you’re thinking of a roulette wheel. This can be easily proven with a simple experiment. Take a commercial USB sized TRNG. Hold one up and then caress it. Do random bits emerge in a stream of unpredictable ones and noughts? No?
More specifically, unless you’re operating a roulette wheel or bits are delivered to you from above carved on stone tablets, all random numbers are software generated. After all a bit is software so has to be made by software. As hardware begets hardware, so software begets software. It’s just a question of the relative proportions of software and hardware. So there will also be some code snippets on this site to distil raw entropy into useful (and cryptographically secure) random numbers.
Some basic principles we hold dear:-
There are TRNG circuits floating about the internet featuring masses of transistors, banks of DIP switches and eye straining surface mount technology. We believe that generally less is more and that security can come from simplicity. The failure modes of a spanner are far fewer than that of a helicopter.
It’s easier to make reliable entropy with a higher voltage. Not only does it reduce a circuit’s susceptibility to non random EMI as the analogue signal to noise ratio (SNR) is higher, the signal to quantization noise ratio (SQNR) is also increased making the entropy capture more efficient. Yes, switching power supplies are a little noisy with noise components in the order of 75 mVp-p at 20 MHz produced by a decent DC-DC converter. However by using higher voltage Zener diodes, the signal will swamp any inherent noise. But does this really matter in a circuit designed to generate entropy? And every additional bit of sample depth adds ~6dBV to the entropy signal. It reduces component count too by lessening the need for high amplification prior to sampling.
We don’t believe in conditioning, tuning or otherwise compensating the entropy signal prior to sampling. Our mantra is make it and read it. Hardware processing adds components and such techniques aren’t really required. All can be achieved with software and at the entropy measurement stage. Some of the fastest TRNGs simply discard the most significant bits of analogue to digital conversion readings, and use the lower ones without any further processing. This basic technique can also eliminate auto correlation in the output, extracting high quality randomness that passes all standard tests.
Deserving of their own page…
Companies like TRACOPOWER and Murata can make better voltage than most of us. A commercial DC-DC converter reduces component count even further, whilst also guaranteeing reliability and stability. Unintentional ground loops in a power circuit can be a real PITA. It may cost more initially, but the rewards are worth it. And who’s counting anyway?