How Computers Generate Random Numbers - Chapter 8

Chapter 7          die6   die2          Chapter 9
index
Back to Deley's Homepage



8.0    DES AS A RANDOM NUMBER GENERATOR

The Data Encryption Standard (DES) is described by the reference "Data Encryption Standard", 1977 January 15, Federal Information Processing Standards Publication, number 46 (Washington: U.S. Department of Commerce, National Bureau of Standards). This is the American National Standard Data Encryption Algorithm X3.92-1981.

This algorithm was always intended to be implemented in hardware because it is so complicated a software implementation would be too slow for any practical use. Nevertheless software implementations exist.

DES can be set up as a random number generator by feeding the output back into the input the same as with a liner congruential generator. The DES algorithm returns a 64 bit quadword. For the tests below the low 32 bits was taken as one random unsigned longword and the high 32 bits was taken as another random unsigned longword. Thus we got two random numbers for each iteration. Still it was incredibly slow.

Here are the results of testing DES as a 32 bit random number generator:

1-D PASS  1,000,000 bpd, fails above
2-D PASS1100 bpd, fails above
3-D PASS90+bpd, highest tested due to slowness of DES
4-D PASS33+bpd, highest tested due to slowness of DES
5-D PASS16+bpd, highest tested due to slowness of DES
6-D PASS9+bpd, highest tested due to slowness of DES
7-D PASS7+bpd, highest tested due to slowness of DES
8-D PASS4 bpd, fails above


Note that DES is extremely slow. DES takes an hour to generate the same number of random variables a shuffled linear congruential generator can generate in about a minute an a half. And note a shuffled linear congruential generator does better than DES. Time and the immense amount of CPU time required prevented further investigation into the randomness of DES.



Chapter 7          die6   die2          Chapter 9
index
Back to Deley's Homepage