[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

True Randoms




A little nuclear physics anyone?

Seems like one real bitch with roll-your-own cryptography is the 
scarcity of good random numbers to work with. I've read about various
schemes using I/O buffers, or keystroke timing like PGP does (even
there, true randoms are referred to as "precious").

So I thought a bit about how one could construct a true random generating
box. Went out to Sears and bought a $7 smoke detector, a "Family Gard"
model FG888D, and took it apart. What's inside is a 1.0 microCurie chunk
of Americium 241 (I checked other models, and they seem to all be AM241,
right around the 1 uCi activity range, although I have an older one at home
with 5.0 uCi). I did a little research on the isotope in the CRC Handbook and
the Brookhaven National Lab's online database, and what I found was pretty
interesting:

About AM241:

Half-Life: 458 years
Decay: AM241 ---> (Neptunium 237) + (5.5 MeV alpha particle)
1.0 uCi = 37,000 decays/second average
NP237 has a half-life of around 2 million years

This is very good design. AM241 has only one basic decay mode, and it 
decays to an essentially inert daughter product without any intermediate
daughters to worry about. Very simple and safe. In addition, the 1.0 uCi
activity of the sample makes the decay rate just right for counting alphas
with electronic devices -- a 100 KHz sample rate would be overkill for
resolving individual alphas. And the half-life is long enough to make the
source relatively stable over a reasonable period of use.

I took my sample into the lab and it barely registered on the geiger counter,
but when I set it up on a scintillating detector, I got about 1200 counts/sec
above a background of 25 count/sec. A nice clear signal. Seems to me it
would be pretty easy to buy a small solid-state detector and a couple of
chips and wire it up to toggle a pin on an RS232 cable, giving a nice true 
random source -- for instance, assuming the 1200 counts/sec rate I saw in 
the lab, you could count alphas for 10 milliseconds and send a 1 down the 
cable if you saw an odd number, a 0 if you saw an even number. Could
probably do better than 1200 /sec, too, I bet.

Does anyone see a real need for something like this?
Any hardware jocks out there who could lend some expertise?

Radiological safety data (permissible quarterly intake):

AM241 (oral): 7.6 uCi
AM241 (inhalation): 3.8E-03 uCi
NP237 (oral): 6.2 uCi
NP 237 (inhalation): 2.5E-03 uCi

In other words, whatever you do, don't smoke it...

                                -- Will