[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