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.