4.2.7 Random Bit Generation
All changes in this version
Title
Random Bit Generation
Control
Random bit generators (RBGs) (also called random number generators (RNGs)) are required for the generation of keying material (e.g., keys and IVs). RBGs generate sequences of random bits (e.g., 010011); technically, RNGs translate those bits into numbers (e.g., 010011 is translated into the number 19). However, the use of the term “random number generator” (RNG) is commonly used to refer to both concepts Two classes of RBGs are defined: deterministic and non-deterministic. Deterministic Random Bit Generators (DRBGs), sometimes called deterministic random number generators or pseudorandom number generators, use cryptographic algorithms and the associated keying material to generate pseudorandom bits from an initial value, called a seed, that provides entropy (i.e., randomness) to the process. Depending on the implemented DRBG design or the environment, additional entropy may never be introduced again, although such additional entropy is recommended. [SP800-90A] specifies DRBG algorithms that may be used to generate random bits for cryptographic applications (e.g., key or IV generation). Non-deterministic Random Bit Generators (NRBGs), sometimes called true RNGs, use some unpredictable physical source that is outside human control to introduce new entropy for every bit output by the NRBG. The unpredictable source is commonly known as an entropy source. [SP800-90B] provides guidance on the implementation and testing of entropy sources. [SP800-90C] has been developed to provide guidance on the construction of DRBGs and NRBGs from the algorithms in [SP800-90A] and entropy sources that comply with [SP800- 90B].