More Random Randomness
jfleck writes "According to the American Institute of Physics' Physics News Update, Kent State physicist James Gleeson has developed a technique for generating numbers approaching true randomness. His trick is to shine light through a liquid crystal, taking advantage of its turbulence and avoiding the inevitable risk of predictability in deterministic random number number algorithms."
So it's a crystal and a light...a mechanical solution, in other words. Someone tell me how this is different from flipping a coin? True randomness has always been available in the physical world (hence the allure of horse racing). It's only in mathematics, and therefore computing science, that randomness cannot be achieved. And small though this "solution" may be, it doesn't quite count as an algorithm.
Karma: Good (despite my invention of the Karma: sig)
It's fairly easy to generate truly random numbers in small quantities, but getting a sizable quantity of cryptographically true, cryptographically secure, cryptographically random numbers has always been a bit difficult. You almost have to do it in hardware, and you almost have to use something which is both isolated from external interference (so others can't load your dice) and doesn't bleed its information externally (so you can be sure you are the only one who knows the number). The first requirement rules out most things which rely on the external environment for input (like EM radiation). Add to this a third requirement for lots of randomness, (which rules out things like thermal junctions, or number of NT bluescreens per day) and a simple problem becomes hard.
Remember, in this context the common definition of "random" meaning "I don't understand how it works" doesn't cut it. You need true "completely unpredictable by anyone" randomness for many security applications.
The thing about things we don't know is we often don't know we don't know them.
This randomness is distinguishable from so-called "hidden variable" interpretations.
Not quite. There's a hidden flaw in the argument against hidden variables; the "proof" subtily begs the question. To see this, imagine that there were a level of "hidden variables" complex enough that each quanta (quark, lepton, what have you) could have as much "state" as the entire universe as-we-know it. With such a system you could predetermine every "interaction" over the course of the whole history of the universe--there wouldn't be any "physics," just a mind bendingly huge collection of scripted motions.
The point being, there's no way we could detect that this was the case...and thus there's know way we can prove that it isn't the case.
Now, we are free to doubt that we live in such a universe (and believe in "truly random events") but this is just a belief, without any science to back it up.
-- MarkusQ
There's a major difference between a sequence of pseudo-random numbers (as you describe) and a sequence true random numbers (leaving aside completely any proper definition of what is random).
Simply enough, it is what they are used for - in many computer applications (simulation, pysol, and the like) pseudo-random numbers are great - given the same seed they're reproducable, they have the right statistical properties - but they may be very predictable, - in cryptography building a perfect one time pad requires true randomness - and a pseudo random number sequence is not even close to working.
Random numbers are actually a very tough subject, with odd and wonderful oddnesses and wonderfulnesses. Start with Knuth (Chapter 3) (a reasonable introduction to pseudo-random numbers and go on from there (there's easily a lifetime or three of stuff on the topic).
"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." John Von Neumann
The problem with this is that if you have an idea of the algorithm used you can run through a subset of numbers and then find your seed value.
e.g. if I know your app is pulling from time of day and my log entries show that it was at 9:55 AM Then I can run a range of all time values between say 9:50 and 10:00 including MS. In so doing you are tying your random number to a known thing which defeats the purpose.
A truly random number would be one that can't be determined by outside factors ( especially time )