84 - Random Number Generation
Random numbers are used vastly today. Cryptographic systems base their security on this unpredictability, some secret data that is known to authorized persons but unknown and unpredictable to others.
Hardware or software for generating random numbers, so that
TRNGs produce a stream of truly random numbers. Knowing the circuit and history is useless. These are called non-deterministic random number generators.
Based on some analog property like physical sources outside of control, an entropy source. This value is whitened and scaled to create the random number set
Amplify noise generated by a resistor or diode, feed it to a comparator, sample the output as a series of bits and use that to generate random numbers
Random numbers from inherently indeterministic quantum processes
Software or Hardware RNG that starts from an initial value called the seed
Such sequence of values generated by a PRNG repeats periodically, is veeeery long, so long that today's PRNG algorithms have such a large period that it can just be ignored
As a consequence though, this seed must be kept secret, and to be truly random must be generated from a TRNG
PRNG that is secure for use in cryptography, must be unpredictable and have a long period, in addition, it must:
Tests applied to short sequences of bits to detect whether noise is compromised