[Cryptech Tech] User auditable hardware entropy source/random number generator

Fredrik Thulin fredrik at thulin.net
Tue Jul 22 21:12:44 UTC 2014


On Monday, July 14, 2014 09:54:27 AM Benedikt Stockebrand wrote:
...
> > Very much looking forward to more details about your circuit =).
> 
> OK, but you've explicitly asked for it...
> 
> The first circuit is what I used for the previous tests.  Problem is
> that the second transistor is susceptible to saturation, so this has to
> be matched to the particular Zener diode used and I still had to use a
> high frequency transistor (BF959).  I've kept the step-up converter
> board, though.
> 
...
> More on that after I've got some proper performance results on the
> various Zener diodes etc.

Thanks a lot for sharing. I tried your circuit with some Zener diodes I had 
available without much success. Only one of them produced any noise to speak 
of.

I decided to instead build me a generator core using 2N3904 transistors. Those 
seem to be among the more common avalanche noise sources used in the various 
hobby projects one can find on the Internet, so I had ordered a bunch of them.

I basically built the circuit shown at

  http://www.cryogenius.com/hardware/rng/

and connected both the analog side (collector of Q3) and the digitized output 
of a Schmitt trigger inverter to inputs of an Arduino. The Arduino is not my 
usual choice of MCU, but I think it would be beneficial to use in prototyping 
this because it will enable more people to follow the progress and build their 
own circuits.

I could tell already from looking at the analog noise that there was bias in 
the analog noise - probably from using an overly simplistic amplifier stage, 
but that got me thinking that maybe it is possible to build a framework (for 
lack of a better word here) around the generator core that actually 
compensates for somewhat bad noise?

Maybe we should expect that a lot of people will decide to use generator core 
variant X or Y based on more or less good reasons, and some of these will no 
doubt have bias or other problems associated with them, or develop such issues 
over time. The robustness vs. speed tradeoff will be an interesting one, but at 
the moment it seems to me that robustness has to come first.

You and Bernd have already discussed extractors (turning noise into entropy, 
using the notions that you described). It seems you outlined a number of good 
ideas there and I'm going to read those e-mails again and do some testing, and 
hopefully have a working prototype producing good entropy even from suboptimal 
avalanche noise soon.

Please let me know if I can assist you somehow with the continued work on your 
generator core - you have been most helpful to me/us.

/Fredrik



More information about the Tech mailing list