In computing, a hardware random number generator (HRNG), true random number generator (TRNG), non-deterministic random bit generator (NRBG),[1] or physical random number generator[2][3] is a device that generates random numbers from a physical process capable of producing entropy (in other words, the device always has access to a physical entropy source[1]), unlike the pseudorandom number generator (PRNG, a.k.a. "deterministic random bit generator", DRBG) that utilizes a deterministic algorithm[2] and non-physical nondeterministic random bit generators that do not include hardware dedicated to generation of entropy.[1]
Nature provides ample phenomena that generate low-level, statistically random "noise" signals, including thermal and shot noise, jitter and metastability of electronic circuits, Brownian motion, atmospheric noise.[4] Researchers also used the photoelectric effect, involving a beam splitter, other quantum phenomena,[5][6][7] and even the nuclear decay (due to practical considerations the latter, as well as the atmospheric noise, is not viable).[4] While "classical" (non-quantum) phenomena are not truly random, an unpredictable physical system is usually acceptable as a source of randomness, so the qualifiers "true" and "physical" are used interchangeably.[8]
A hardware random number generator is expected to output near-perfect random numbers ("full entropy").[1] A physical process usually does not have this property, and a practical TRNG typically includes few blocks:[9]
a noise source that implements the physical process producing the entropy. Usually this process is analog, so a digitizer is used to convert the output of the analog source into a binary representation;
a conditioner (randomness extractor) that improves the quality of the random bits;
health tests. TRNGs are mostly used in cryptographical algorithms that get completely broken if the random numbers have low entropy, so the testing functionality is usually included.
Hardware random number generators generally produce only a limited number of random bits per second. In order to increase the available output data rate, they are often used to generate the "seed" for a faster PRNG. DRBG also helps with the noise source "anonymization" (whitening out the noise source identifying characteristics) and entropy extraction. With a proper DRBG algorithm selected (cryptographically secure pseudorandom number generator, CSPRNG), the combination can satisfy the requirements of Federal Information Processing Standards and Common Criteria standards.[10]
^ abcdTuran et al. 2018, p. 64.
^ abSchindler 2009, p. 7.
^Stipčević & Koç 2014, p. 279.
^ abSunar 2009, p. 56.
^Herrero-Collantes & Garcia-Escartin 2017, p. 8.
^Jacak, Marcin M.; Jóźwiak, Piotr; Niemczuk, Jakub; Jacak, Janusz E. (2021). "Quantum generators of random numbers". Scientific Reports. 11 (1): 16108. doi:10.1038/s41598-021-95388-7. PMC 8352985. PMID 34373502.
hindsight but impossible to foresee. True randomnumbergenerators can be hardwarerandom-numbergenerators (HRNGs), wherein each generation is a function...
truly random values). Although sequences that are closer to truly random can be generated using hardwarerandomnumbergenerators, pseudorandom number generators...
to a peer-to-peer hardware. Attacks are on the line in the network not the hardware itself. Designing a secure randomnumbergenerator requires at least...
A random password generator is a software program or hardware device that takes input from a random or pseudo-randomnumbergenerator and automatically...
A random seed (or seed state, or just seed) is a number (or vector) used to initialize a pseudorandom numbergenerator. For a seed to be used in a pseudorandom...
selecting the random samples (with dice, cards, etc.). Nowadays, tables of random numbers have been replaced by computational randomnumbergenerators. If carefully...
also loosely known as a cryptographic randomnumbergenerator (CRNG). Most cryptographic applications require random numbers, for example: key generation...
pseudorandom numbergenerator is a deterministic algorithm, that is designed to produce sequences of numbers that behave as random sequences. A hardwarerandom number...
quantum safe network encryption, single photon counters, and hardwarerandomnumbergenerators. It was founded in 2001 as a spin-off of the Group of Applied...
this means that as much randomness as possible has been "extracted" from the source. Many hardwarerandomnumbergenerators have one or more "noise source"...
secure boot process to ensure that it is completely secure. A hardwarerandomnumbergenerator is also included as a part of this coprocessor. Each device's...
Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose...
In 1999, a new feature was added to the Pentium III: a hardware-based randomnumbergenerator. It has been described as "several oscillators combine their...
A linear congruential generator (LCG) is an algorithm that yields a sequence of pseudo-randomized numbers calculated with a discontinuous piecewise linear...
and other cryptographic variables using ordinary dice as a hardwarerandomnumbergenerator. For each word in the passphrase, five rolls of a six-sided...
(apparently) random behavior in systems: Randomness coming from the environment (for example, Brownian motion, but also hardwarerandomnumbergenerators). Randomness...
entropy pools for hardwarerandomnumbergenerators. The XOR operation preserves randomness, meaning that a random bit XORed with a non-random bit will result...
true randomness (like certain hardwarerandomnumbergenerators), and instead use pseudorandom number sequences.) The distinction between random variable...
Curve Deterministic Random Bit Generator) is an algorithm that was presented as a cryptographically secure pseudorandom numbergenerator (CSPRNG) using methods...