Non-physical nondeterministic random bit generator Source: en.wikipedia.org/wiki/Non-physical_nondeterministic_random_bit_generator
Type of random number generator
Non-physical true random number generator (NPTRNG),[1] also known as non-physical nondeterministic random bit generator is a true random number generator that does not have access to a dedicated hardware entropy source.[2] NPTRNG uses a non-physical noise source that obtains entropy from system data, like outputs of application programming interface functions, residual information in the random access memory, system time or human input (e.g., mouse movements and keystrokes).[3][1] A typical NPTRNG is implemented as software running on a computer.[1] The NPTRNGs are frequently found in the kernels of the popular operating systems[4] that are expected to run on any generic CPU.
An NPTRNG is inherently less trustworthy than its physical random number generator counterpart, as the non-physical noise sources require specific conditions to work, thus the entropy estimates require major assumptions about the external environment and skills of an attacker.[5]
The design of an NPTRNG is traditional for TRNGs: a noise source is followed by a postprocessing randomness extractor and, optionally, with a pseudorandom number generator (PRNG) seeded by the true random bits.
As of 2014, the Linux NPTRNG implementation extracted the entropy from:[8]
the interrupts, mixing CPU cycle counter, kernel timer value, IRQ number, and instruction pointer of the interrupted instruction into a "fast pool" of entropy;
the random-time I/O (events from keyboard, mouse, and disk), mixing the kernel timer value, cycle counter, device-specific information into the "input pool".
At the time, testing in virtualized environments had shown that there existed a boot-time "entropy hole" (reset vulnerability) when the early (u)random outputs were catastrophically non-random, but in general the system provided enough uncertainty to thwart an attacker.[9]
Turan, Meltem Sönmez; Barker, Elaine; Kelsey, John; McKay, Kerry A; Baish, Mary L; Boyle, Mike (2018). NIST SP800-90B: Recommendation for the entropy sources used for random bit generation (Report). Gaithersburg, MD: National Institute of Standards and Technology. doi:10.6028/nist.sp.800-90b.