PSEUDORANDOM NUMBER GENERATION AND STREAM CIPHERS
o Principles of Pseudorandom Number Generation
· The Use of Random Numbers TRNGs, PRNGs, and PRFs PRNG Requirements Algorithm Design
o Pseudorandom Number Generators
· Linear Congruential Generators Blum Blum Shub Generator
o Pseudorandom Number Generation Using a Block Cipher
· PRNG Using Block Cipher Modes of Operation ANSI X9.17 PRNG
· Stream Ciphers
· Initialization of S
· Stream Generation
· Strength of RC4
o True Random Number Generators
· Entropy Sources Skew
◆ A capability with application to a number of cryptographic functions is random or pseudorandom number generation. The principle requirement for this capability is that the generated number stream be unpredictable.
◆ A stream cipher is a symmetric encryption algorithm in which ciphertext output is produced bit-by-bit or byte-by-byte from a stream of plaintext input. The most widely used such cipher is RC4.
An important cryptographic function is cryptographically strong pseudorandom num- ber generation. Pseudorandom number generators (PRNGs) are used in a variety of cryptographic and security applications. We begin the chapter with a look at the basic principles of PRNGs and contrast these with true random number generators (TRNGs).1 Next, we look at some common PRNGs, including PRNGs based on the use of a symmetric block cipher.
The chapter then moves on to the topic of symmetric stream ciphers, which are based on the use of a PRNG. The chapter next examines the most important stream cipher, RC4. Finally, we examine TRNGs.