Radioactive Random Number Generator
Imabug writes "Everybody ought to know that radioactive decay is a random process. Someone's gone and used that fact to create a true random number generator based on the time interval between two decay events. Hardware is pretty simple. Geiger counter interfaced through RS-232 to a 486. There are even diagrams of how it was put together. Forget Intel's RNG...this sounds more fun! "
But why not use a really hot cup of tea, and Brownian motion? I suppose that the hardware's a little more difficult...
Liberty in our Lifetime
reminds me of a project that generated random numbers based upon webcams looking at lava lamps. a really close to random number based on the near randomness of normal things in life, a neat way of approaching randomness, i think.
Don't be mean or my friend Oog will smash your head
The only problem with this method that I see is it is not suited for providing very large numbers of random numbers. The shortfall to the pseudo-random number sequences you get from your computer is that the numbers are not truely random because they repeat after a (very long) sequence. This is a problem when one is running a very long simulation program that is using many many calls to a random number generator. For instance, you might be running a Monte Carlo particle detector model that simulates a million events, and each event requires thousands and thousands of random number function calls. The nuclear decay random number generator would take a very long time to generate that many random numbers. The link mentioned that you can build up a buffer of random numbers, but all this means is that it would require a long time between when you could run your model.
The method is a beautiful use and demonstration of nuclear physics, but in my opinion it appears only useful for when you only need small numbers of random numbers, and in these cases the random numbers you get from your computer are probably quite good enough.
(Of course one way to generate more abundant random numbers using the nuclear decay method would be to use "hotter" sources, but then I wouldn't want one of those things sitting by my computer!)
The problem with noise sources (thermal noise, semiconductor junction noise) is that it can be difficult to keep external signals out of the circuit. The power supply must be clean and the circuit must be shielded. The output of the noise generator must be carefully tested to detect any biases and correlations. Engineers have told me that this is a tough problem. A radioactive decay detector has the advantage of not being affected by these problems.
Mea navis aericumbens anguillis abundat
I built one of these with an Aware Electronics RM-60 radiation monitor, a radiation source extracted from a cheap ionization smoke detector and a small program to collect the bits. The data rate isn't high but it is fine for generating keys and one-time-pads. The RM-60 is cheap, small, and is powered by the voltage on the RS-232 interface.
Mea navis aericumbens anguillis abundat
Cryptographic applications, on the gripping hand, require random numbers that are "random" in the sense of unguessable. A PRNG won't do for this because the random output of a PRNG is entirely determined by the seed, and if you can produce a truly random seed, then the output of the PRNG is superfluous; you could just use the seed itself.
So, the situation is just the opposite of what you conclude. The random numbers you get from a PRNG are "random enough" for MC calculations, and you can generate them in sufficient quantity. For cryptography you need "more random" numbers, but you don't usually need as many (a 4096 bit key is usually plenty). It is this latter case that the radioactive device is meant to address.
-rpl
OK, I should have written "detected" somewhere in there. Real World != Ideal World, you know... I haven't done a lot of lab-work on radioactive materials, but in the work I did do, how things turn out never ceased to amaze me. Once, the emission from a source jumped to about 10000 times what we expected for no apparent reason. The comment of the lab technician was just that "yeah, well, things like that happen, strange things happen all the time."
Employee of Inrupt, Project Release Manager and Community Manager for Solid
It is a very nice idea, well presented, and interesting.
However, the only applications I can think of that would require this quality of random numbers (ignoring the shortfall) are cryptographic ones. And you certainly don't want to get your crypto numbers of the Internet. (Note- I *do* trust the guy, it's the principle of the thing. Plus, theres eavesdropping and I'm certain many other interesting caveats...)
You dont need radioactive decay to cause a truly random number. Just increase the dimension. hear me out:
anyone remember QBASIC programs that were started with the RANDOMIZE TIMER statement. This means that the RNGenerator was based on the # of seconds past midnight, adding the element of timing to the equation.
No cracker/hacker would EVER want to get into the element of time when trying to crack a random code.
Maybe a good, secure compromise would be a radioactive decay that catalyzed a Time based RNGenerator.
http://siokaos.org/
Well, it is a nice thing, but certainly not a new idea. The problem is that the rate of radioactive decay depends of an awful lot of things, environmental parameters. Now, I don't know how sensitive the RNG will be in this case, but it is easy to imagine the rate of decay being dependent on e.g. temperature. So, if you power up your computer in the morning and start counting decays, the CPU heats up, and you always get veeery interesting results in the evening, well, your "this-is-too-good-to-be-true"-alarm should be ringing... :-) Besides, radioactive decay is a Poisson process, and Poisson processes are not always nice... Kjetil
Employee of Inrupt, Project Release Manager and Community Manager for Solid