Hardware random number generator

A USB-pluggable hardware true random number generator

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]

Many natural phenomena generate low-level, statistically random "noise" signals, including thermal and shot noise, jitter and metastability of electronic circuits, Brownian motion, and atmospheric noise.[4] Researchers also used the photoelectric effect, involving a beam splitter, other quantum phenomena,[5][6][7][8][9] 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.[10]

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 a few blocks:[11]

  • 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.[12]

  1. ^ a b c d Turan et al. 2018, p. 64.
  2. ^ a b Schindler 2009, p. 7.
  3. ^ Stipčević & Koç 2014, p. 279.
  4. ^ a b Sunar 2009, p. 56.
  5. ^ Herrero-Collantes & Garcia-Escartin 2017, p. 8.
  6. ^ Jacak, Marcin M.; Jóźwiak, Piotr; Niemczuk, Jakub; Jacak, Janusz E. (2021). "Quantum generators of random numbers". Scientific Reports. 11 (1): 16108. Bibcode:2021NatSR..1116108J. doi:10.1038/s41598-021-95388-7. PMC 8352985. PMID 34373502.
  7. ^ Ma, Xiongfeng; Yuan, Xiao; Cao, Zhu; Qi, Bing; Zhang, Zhen (2016). "Quantum random number generation". npj Quantum Information. 2 (1): 16021. arXiv:1510.08957. Bibcode:2016npjQI...216021M. doi:10.1038/npjqi.2016.21.
  8. ^ Kollmitzer, Christian; Petscharnig, Stefan; Suda, Martin; Mehic, Miralem (2020). "Quantum Random Number Generation". Quantum Random Number Generation: Theory and Practice. Springer International Publishing. pp. 11–34. doi:10.1007/978-3-319-72596-3_2. ISBN 978-3-319-72596-3.
  9. ^ Mannalath, Mishra & Pathak 2023.
  10. ^ Herrero-Collantes & Garcia-Escartin 2017, p. 4.
  11. ^ Turan et al. 2018, p. 6.
  12. ^ Saarinen, Newell & Marshall 2020.