8 Random Number Generator (RNG) Algorithms
Random bit generators (RBGs), also known as random number generators (RNGs), are essential for generating keying material such as keys and IVs. RBGs produce sequences of random bits, which can then be translated into numbers. However, the term "random number generator" (RNG) is often used to refer to both concepts interchangeably.
There are two main classes of RBGs:
Deterministic (DRBG): Also referred to as deterministic random number generators (RNG) or pseudorandom number generators (PRNG), DRBGs utilize cryptographic algorithms and associated keying material to generate pseudorandom bits from an initial value known as a seed. The seed provides entropy, or randomness, to the process. In some cases, a nonce may be necessary in constructing the seed to enhance security against certain attacks.
Non-deterministic (NRBG): Also called true random number generators (TRNGs), NRBGs rely on unpredictable physical sources outside human control to introduce new entropy for every bit output. This unpredictable source is commonly referred to as an entropy source.