Software and the random number challenge
In the security field, random numbers are critical for generating encryption keys, such as when you connect to your bank site over an SSL(secure) connection. It is a widely accepted fact that computers by themselves cannot generate truly random numbers. This is due to the fact that “chance” is not part of the computer’s characteristics. It is very difficult to program a computer to do something by chance.
Wikipedia defines a algorithm:
“In mathematics, computing, linguistics, and related disciplines, an algorithm is a finite list of well-defined instructions for accomplishing some task that, given an initial state, will terminate in a defined end-state.”
Programs are written using algorithms or instructions that the computer follows exactly and are entirely predictable. This is where pseudo random numbers comes into play. Pseudo-Random Number Generators or (PRNG’s) are algorithms that use mathematical formulas to produce a series of numbers that appear to be random. PRNGs are also deterministic; meaning, if the original starting point is known then the sequence of numbers can be generated again a later point. That starting point is also known as a ’seed’. A seed is a number needed to initialize the PRNG. If the seed is known, then the random numbers or keys can be determined and that is precisely why a good random seed is critical. In some cases the random seed is deliberately shared between two systems. The seed then becomes the secret key and each system should be able to generate a matching sequence of random numbers, which would be used to sync up remote systems.
The other method used to generate random numbers is True Random Number Generators or TRNG. In this method randomness is introduced from physical phenomena independent of the computer. An example of a really good physical phenomenon that is used is radioactive material. The rate at which radioactive material decays is truly unpredictable. Another physical phenomenon is atmospheric noise, also a true unpredictable source.
Both the TRNG method and the PRNG have their own unique set of characteristics. For example, a PRNG is extremely efficient in that a series of random numbers can be generated in a very short time period. The TRGN method, on the other hand, is not efficient. TRGN are non-deterministic and PRGN are deterministic. It is important, therefore, to understand the application uses of random numbers and to pick the appropriate generator or method for that application.
Here are some good sources for futher reading.
random.org
wikipedia on PRNG
newsforge

August 9th, 2007 at
For a TRNG, how are these things like the radioactive decay calculated by the computer? I can’t imagine that they are input, as then the computer isn’t do anything but spitting out a predetermined list. Care to elaborate for those of us with limited understanding