[148381] in cryptography@c2.net mail archive

home help back first fref pref prev next nref lref last post

Re: [Cryptography] Fun with hardware RNGS: the Infinite Noise

daemon@ATHENA.MIT.EDU (Bill Cox)
Sat Dec 7 16:14:50 2013

X-Original-To: cryptography@metzdowd.com
In-Reply-To: <52A13579.7020107@gmail.com>
Date: Sat, 7 Dec 2013 15:50:17 -0500
From: Bill Cox <waywardgeek@gmail.com>
To: cryptography@metzdowd.com
Errors-To: cryptography-bounces+crypto.discuss=bloom-picayune.mit.edu@metzdowd.com

--===============7743876571362399422==
Content-Type: multipart/alternative; boundary=089e01175d450e2ece04ecf7e964

--089e01175d450e2ece04ecf7e964
Content-Type: text/plain; charset=ISO-8859-1

Someone asked for some more detail about the design.  I've created a simple
web page describing the Infinite Noise Multiplier here:

http://dev.vinux-project.org/RNG/

Surely someone else has already invented this.  Anyone know where I could
find
such a circuit described on the Internet?

Bill


On Thu, Dec 5, 2013 at 9:24 PM, Bill Cox <waywardgeek@gmail.com> wrote:

> I'm naming this circuit after my daughter.  We're a whole family of
> severely ADHD people!
>
> I've been trying to crack a simple problem for a few years, thinking about
> it now and then: how do you generate "true" random numbers on an analog
> CMOS process designed to be "quiet"?  In 1998, I built a 4-megabit/second
> hardware RNG that destroyed the DieHard tests back then (I found bugs in
> the prof's code, rather than his code finding bugs in my hardware).  It
> relied on zener noise from a breakdown of a Vbe on a N2222 transistor.
>  Every process is different, so I had potentiometers for tweaking gains and
> such.  It was a sweet little board, but not mass-production ready.
>
> So, here's my dumb infinite noise multipier.  It's a switched cap circuit
> doing the following steps:
>
> - Start with a voltage V > 0, but < Vref.
> - Multiply V by 2X.
> - If V > Vref, subtract Vref
> - Repeat forever
>
> The RNG output is 1 whenever we have to subtract Vref, and 0 otherwise.
>  If there is a tiny bit of noise way down in say the 35th bit position of
> resolution, then about 35 cycles later, that noise will impact the output
> signal.  It really doesn't matter how quite the circuit is.  Enough cycles
> later, you're output will be banging around quite randomly, kind of like
> some people I know.
>
> Just some fun for the day... true RNGs in ANY process is now very simple...
>
> Bill
>

--089e01175d450e2ece04ecf7e964
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Someone asked for some more detail about the design. =A0I&=
#39;ve created a simple web page describing the Infinite Noise Multiplier h=
ere:<div><br></div><div><a href=3D"http://dev.vinux-project.org/RNG/">http:=
//dev.vinux-project.org/RNG/</a><br>
</div><div><span style=3D"font-family:arial,sans-serif;font-size:19.2000007=
62939453px;white-space:nowrap"><br></span></div><div><span style=3D"font-fa=
mily:arial,sans-serif;font-size:19.200000762939453px;white-space:nowrap">Su=
rely someone else has already invented this. =A0Anyone know where I could f=
ind</span></div>
<div><span style=3D"font-family:arial,sans-serif;font-size:19.2000007629394=
53px;white-space:nowrap">such a circuit described on the Internet?</span></=
div><div><span style=3D"font-family:arial,sans-serif;font-size:19.200000762=
939453px;white-space:nowrap"><br>
</span></div><div><span style=3D"font-family:arial,sans-serif;font-size:19.=
200000762939453px;white-space:nowrap">Bill</span></div></div><div class=3D"=
gmail_extra"><br><br><div class=3D"gmail_quote">On Thu, Dec 5, 2013 at 9:24=
 PM, Bill Cox <span dir=3D"ltr">&lt;<a href=3D"mailto:waywardgeek@gmail.com=
" target=3D"_blank">waywardgeek@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">I&#39;m naming this circuit after my daughte=
r. =A0We&#39;re a whole family of severely ADHD people!<br>
<br>
I&#39;ve been trying to crack a simple problem for a few years, thinking ab=
out it now and then: how do you generate &quot;true&quot; random numbers on=
 an analog CMOS process designed to be &quot;quiet&quot;? =A0In 1998, I bui=
lt a 4-megabit/second hardware RNG that destroyed the DieHard tests back th=
en (I found bugs in the prof&#39;s code, rather than his code finding bugs =
in my hardware). =A0It relied on zener noise from a breakdown of a Vbe on a=
 N2222 transistor. =A0Every process is different, so I had potentiometers f=
or tweaking gains and such. =A0It was a sweet little board, but not mass-pr=
oduction ready.<br>

<br>
So, here&#39;s my dumb infinite noise multipier. =A0It&#39;s a switched cap=
 circuit doing the following steps:<br>
<br>
- Start with a voltage V &gt; 0, but &lt; Vref.<br>
- Multiply V by 2X.<br>
- If V &gt; Vref, subtract Vref<br>
- Repeat forever<br>
<br>
The RNG output is 1 whenever we have to subtract Vref, and 0 otherwise. =A0=
If there is a tiny bit of noise way down in say the 35th bit position of re=
solution, then about 35 cycles later, that noise will impact the output sig=
nal. =A0It really doesn&#39;t matter how quite the circuit is. =A0Enough cy=
cles later, you&#39;re output will be banging around quite randomly, kind o=
f like some people I know.<br>

<br>
Just some fun for the day... true RNGs in ANY process is now very simple...=
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
Bill<br>
</font></span></blockquote></div><br></div>

--089e01175d450e2ece04ecf7e964--

--===============7743876571362399422==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
The cryptography mailing list
cryptography@metzdowd.com
http://www.metzdowd.com/mailman/listinfo/cryptography
--===============7743876571362399422==--

home help back first fref pref prev next nref lref last post