Computer-generated Random numbers form an essential part of modern cryptography. Unfortunately it is extremely difficult to generate a true random number sequence with a computer. Many algorithms exist that will generate pseudo-random sequences of numbers based on an initial seed value. The period of the resulting sequence of numbers may well be in the order of 2128. This is not good enough for strong cryptography.

For a random number sequence to be secure in a cryptographic sense, it must satisfy the following conditions:

  • It must look random. This is tough to quantify, obviously a sequence like 12,24,48,96 is not particularly random.
  • Given knowledge of the algorithm used to generate the sequence and all previous values it must be impossible to predict the next value in the sequence.

If the random numbers used in an encryption algorithm are known it becomes significantly easier to defeat the encryption scheme. For example it may be possible to obtain encryption keys simply with knowledge of the algorithm used to generate them, and the random number used to generate the previous key.

For further information read: Applied Cryptography.