Radioactive Random Number Generator 19
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! "
Excellent! (Score:2)
cool (Score:1)
I'm not sure how practical this is (Score:2)
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!)
Re:Easy to Build (Score:1)
Re:I'm not sure how practical this is (Score:2)
But you could use the small number of truly random numbers to seed your pseudo-random number generator, and have a much larger pool of numbers to use in your simulation. Not perfect but somewhat better.
It shouldn't be too hard to include something like this into the /dev/random device drivers now used by several flavors of u*ix and spice the entropy pool.
Temkin
Easy to Build (Score:2)
Monte Carlo and Random Numbers (Score:2)
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
Re:Not unproblematic (Score:1)
Cool, but useful? (Score:1)
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...)
Re:Monte Carlo and Random Numbers (Score:2)
Re:I'm not sure how practical this is (Score:1)
"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."
That's not really a shortfall of pseudo-random number sequences. Maybe of some poorly implemented sequences, but it's not hard to implement a sequence that repeats only after around 2^1024 elements (Numerical Recipes, Knuth's Art of Computer Programming, etc.). Repetition after such a long time is unlikely to adversely affect any actual use of the sequence. If it does, I would like to borrow your CPU.
The real shortfall of pseudo-random number sequences is that they contain patterns of various kinds. E.g., some of them show up as alignments of points when the pseudo-random elements are used as coordinates of points in a multidimensional space. There are solutions for this (Art, Recipes). Basically, if the patterns in the generator have no relation to your use of the generator, you don't care about them. And for modeling work, that's fine.
However, if you are using the numbers for cryptography, you may care about the distinction between random and pseudo-random, because if you do not have a truly random key, somebody else might be able to find it. E.g., if you generate a key using the current time as part of a seed, somebody might be able to try all keys that could have been generated around the time they think you generated the key. A truly random sequence protects you from this. In such a situation, it is sufficient to generate enough random bits that nobody has the processing power to try many of the possibilities. Those bits can be used as a seed to generate as many pseudo-random numbers as you want, provided your generator and your application do not leak information. So a small quantity of random bits can be useful.
Another interesting method to generate random numbers is to use lava lamps [sgi.com].
Re:I'm not sure how practical this is (Score:2)
PRNG (Score:1)
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.
Re:Easy to Build (Score:1)
(a) don't collect your bits too quickly (to avoid correlations between bits);
(b) collect 10-20 times as many bits as you need and hash them with something like MD5, which tweaks them all nicely.
As a nuclear physicist I think the radioactive decay RNG is really cool, but when it comes to something to put in every computer, avalanche noise from a reverse-biased transistor is MUCH easier (and smaller and cheaper :v), and does a fine job. Heck, add a PIC controller that converts the data into a serial bitstream and you can connect a 'RNG box' onto any computer you want...
Re:PRNG (Score:2)
Re:PRNG (Score:1)
Re:PRNG (Score:1)
Not unproblematic (Score:2)
Re:Not unproblematic (Score:1)
It's easy to imagine, but it's also wrong (have you been reading any creationist literature lately, or what?). Though maybe the measuring equipment can be affected.