## Random Numbers

The pseudo-random number generator (PRNG) classes of GNU Crypto are
used to generate streams of cryptographically secure pseudo-random
bytes.

**ARCFOUR** is an implementation of the ARCFOUR stream cipher's
keystream generator. ARCFOUR is the name of a stream cipher that is
believed to be compatible with RSA Data Security, Inc.'s RC4 stream
cipher, and is a decendent of an algorithm that was posted anonymously
to a mailing list in 1994.
**ICM**, or the Integer Counter Mode PRNG, is an algorithm that
creates a PRNG around a block cipher. The default cipher used in this
implementation is Rijndael, the AES. ICM is described in [McG01].
**MD**, or PRNGs based around a cryptographic hash function.
**UMAC-KDF** is a PRNG based on the UMAC key derivation function.

*Figure 16: PRNG class diagram*