ABSTRACT

Cryptosystems that are used in real-life situations are much more complicated and have hundreds of millions of possible keys. In classical cryptography, Alice and Bob share the same key. The workhorses of modern cryptography, namely the Data Encryption Standard and its successor, the Advanced Encryption Standard, are symmetric cryptosystems that are used to transmit massive amounts of data electronically. Not every cryptographic protocol involves sending secret messages. Block ciphers, which form the second type of symmetric key cryptosystems, encrypt several bits at a time. More precisely, the plaintext is divided into blocks of a fixed length. Random numbers are useful in many situations. For example, they are used in computer simulations of physical phenomena, and they are needed to generate random keys for cryptography. Generating truly random numbers is quite difficult. Flipping coins, for example, is slow and can potentially be biased by physical characteristics of a coin.