Timothy D Beach
← Writing

February 20, 2026 · Cryptography

True Random Number Generators: From Quantum Physics to Silicon

True Randomness

How do you get a genuinely unpredictable bit? Not a bit that looks random, not a bit computed from a seed, but a bit that did not exist in the universe until the moment you measured it. This article traces the answer from the foundations of quantum mechanics through circuit design, post-processing, standards, attacks, and the open philosophical questions that remain.

Why Randomness Matters

Cryptography, simulation, lotteries, statistical sampling, and security protocols all depend on unpredictable numbers. If an adversary can predict your random numbers, they can predict your encryption keys, forge your signatures, and break your protocols. The entire security of modern digital infrastructure rests on the assumption that certain numbers are genuinely unknowable in advance.

A pseudorandom number generator (PRNG) produces numbers that look random but are entirely determined by an initial seed. Know the seed, know the sequence. A true random number generator (TRNG) produces numbers from a physical process where the outcome is not determined by any prior state of the universe. The distinction is not academic — it is the difference between security that holds against any adversary and security that holds only against adversaries who lack a specific piece of information.

What Is "True" Randomness?

The Quantum Foundation

Classical physics is deterministic. Given the position and velocity of every particle, Newton's laws determine the entire future. In this framework, "randomness" is just a word for ignorance — we call a coin flip random because we can't track the air molecules, not because the outcome is undetermined.

Quantum mechanics broke this picture. In 1926, Max Born proposed that the wave function describes not a trajectory but a probability amplitude. The probability of finding a particle in a particular state is the squared magnitude of its wave function: P(x) = |ψ(x)|². This is not a statement about incomplete knowledge. Before measurement, a quantum system does not have a definite value for the measured property — it exists in a superposition of possibilities. The measurement outcome is intrinsically probabilistic. No hidden information, no deeper theory, no additional computation can predict it.

The Heisenberg Uncertainty Principle

Heisenberg's principle formalizes this. A particle cannot simultaneously have a precise position and a precise momentum: Δx · Δp ≥ ℏ/2. This is not an instrument limitation — the universe itself does not contain that information. In electronic circuits, this means electrons at finite temperature exhibit random fluctuations that cannot be eliminated even in principle.

Bell's Theorem: The Nail in the Coffin of Hidden Variables

The strongest argument for genuine randomness comes from John Bell's 1964 theorem.

The challenge (Einstein, 1935): Maybe quantum particles carry predetermined values we can't see — "hidden variables" — and the apparent randomness is just our ignorance.

Bell's answer: He derived a mathematical inequality that any hidden variable theory must satisfy. Quantum mechanics predicts correlations that violate this inequality.

The experiments: Starting with Alain Aspect (1982) and culminating in loophole-free Bell tests (Hensen et al. 2015, Giustina et al. 2015, Shalm et al. 2015), experiments consistently confirm quantum mechanics and violate Bell's inequality.

What this means: The randomness in quantum measurements is not due to hidden variables we've failed to discover. When a photon hits a beam splitter and is either reflected or transmitted, that outcome is genuinely undetermined before it occurs. This is the deepest foundation for TRNGs.

Quantum Indeterminacy vs Classical Chaos

Classical Chaos is deterministic but sensitive to initial conditions. It is unpredictable in practice — think weather, turbulence, dice. With perfect information, it would be perfectly predictable.

Quantum Indeterminacy is fundamentally probabilistic. It is unpredictable in principle — think photon beam splitters, radioactive decay. Even with perfect information, the outcome remains unpredictable.

TRNGs based on quantum phenomena tap into fundamental indeterminacy. Sources like atmospheric noise or lava lamp convection rely on classical chaos amplifying quantum-level noise — practically unpredictable, but not provably so in the same rigorous sense.

Physical Entropy Sources

Ordered from most rigorously quantum-random to most dependent on classical chaos.

Photon Beam Splitter QRNGs

The conceptually simplest TRNG: a single photon hits a 50/50 beam splitter. Quantum mechanics dictates exactly 50% probability of reflection vs transmission, and no property of the photon before the beam splitter determines which path it takes.

One photon in, one genuinely random bit out. Bell's theorem guarantees no hidden variable determines the outcome. Modern implementations achieve Mbit/s to Gbit/s rates. ID Quantique (Geneva) pioneered commercial devices using this architecture.

Vacuum Fluctuation QRNGs

Even in a perfect vacuum, electromagnetic fields fluctuate — vacuum fluctuations are a direct consequence of the Heisenberg uncertainty principle applied to the EM field. A homodyne detection scheme combines a laser with a vacuum input on a beam splitter, and the difference signal between two photodetectors is dominated by quantum vacuum noise.

No classical analog exists — this noise is purely quantum. The Australian National University (ANU) operates a public vacuum QRNG at qrng.anu.edu.au achieving 5.7 Gbit/s. It can be sampled at high frequencies since homodyne detection is continuous.

Radioactive Decay

A radioactive atom has a probability of decaying per unit time, but the exact moment is completely unpredictable. The nucleus exists in a superposition of "decayed" and "not decayed" states — the transition is genuinely stochastic.

Why it's the philosophical gold standard: No hidden variables (Bell's theorem applies). It is immune to environmental conditions — temperature, pressure, EM fields don't affect nuclear decay rates. Each decay is independent (Poisson process). John Walker's HotBits project (1996) used Cesium-137 plus a Geiger counter.

Practical limitations: Regulatory issues, low bit rates, source activity decreases over time, not suitable for consumer electronics.

Avalanche Noise (Zener Diodes)

When a p-n junction diode is reverse-biased near its breakdown voltage, two quantum phenomena generate noise. Zener breakdown (below 5V) involves electrons quantum-tunneling through the depletion region, where individual tunneling events are quantum mechanically random. Avalanche breakdown (above 5V) involves accelerated carriers ionizing lattice atoms, creating cascading secondary carriers where the multiplication factor per carrier is stochastic — quantum scattering processes determine when and where impact ionization occurs.

The noise can be millivolts to volts — much larger than thermal noise — making these circuits practical and popular. Diodes in the 5-7V breakdown range are preferred because they operate primarily via avalanche multiplication.

Design note: Why avalanche over thermal noise? The signal is 1000x larger, requiring far less amplification and reducing the risk that amplifier noise dominates the entropy source.

Shot Noise

Walter Schottky described shot noise in 1918. When current flows across a potential barrier (p-n junction, tunnel junction), it's not a smooth flow — it's discrete electrons crossing at random, independent times. The power spectral density is S_I = 2qI where q is the electron charge and I is DC current. This gives white noise (flat across all frequencies). Each electron's barrier crossing is governed by quantum tunneling probabilities — fundamentally stochastic.

Thermal Noise (Johnson-Nyquist)

Every resistor above absolute zero generates random voltage fluctuations from the thermal motion of charge carriers. At room temperature across a 10kΩ resistor with 10kHz bandwidth, this amounts to about 1.3 μV RMS. Tiny, but measurable.

The quantum connection: At the deepest level, the thermal motion is governed by quantum statistical mechanics (Fermi-Dirac distribution). At very high frequencies or very low temperatures, the classical formula breaks down and Planck's quantum noise formula takes over.

Engineering reality: You need 60-80 dB of amplification to work with these signals, and your amplifier's own noise floor must be well below the signal level — a significant design challenge.

Ring Oscillator Jitter and Metastable Flip-Flops

A ring oscillator (an odd number of inverters in a loop) has propagation delays that fluctuate due to thermal noise, shot noise, and flicker noise in the transistors. This jitter accumulates over time, making the oscillator's phase drift in a random walk.

Why this matters enormously: Ring oscillator TRNGs require no special components — only standard digital logic gates. They work in any CMOS process, including FPGAs and ASICs. This is why they dominate in system-on-chip designs.

Metastable flip-flops: A flip-flop driven into metastability (input arrives exactly at the clock edge) must resolve to 0 or 1, with thermal noise determining which. Intel's RDRAND uses this principle — pairs of cross-coupled inverters are periodically forced to their metastable point.

Design note: Why ring oscillators for on-chip TRNGs? No analog components, no special fabrication steps, portable across process nodes. The tradeoff: susceptibility to electromagnetic injection locking (an external signal can lock the oscillators, destroying randomness).

Atmospheric Noise and Lava Lamps

About 2,000 thunderstorms are active at any moment, producing roughly 50 lightning flashes per second. A radio receiver tuned to an unused frequency picks up a chaotic superposition of these emissions. random.org has served over a billion random bits per day using this approach since 1998.

Cloudflare's LavaRand: A wall of about 100 lava lamps filmed by a camera. The Rayleigh-Bénard convection creates complex, never-repeating patterns driven by chaotic fluid dynamics with thermal noise at boundaries. Pixel data is hashed to extract entropy. Other Cloudflare offices use chaotic pendulum mobiles (London) and radioactive decay (Singapore).

Design note: Why lava lamps? Defense in depth. Even if an attacker could solve the intractable fluid dynamics, the entropy is mixed with other sources. The lava lamps are one layer, not the only layer.

From Analog Noise to Digital Bits

The Amplification Problem

The central engineering challenge: raw entropy signals are typically microvolts in amplitude, while the noise floor of the measurement circuitry can be comparable or larger. If your entropy source produces 10 μV of genuine random noise but your amplifier's input noise is 15 μV, you're measuring the amplifier, not the entropy source.

A typical signal chain: First, a low-noise preamplifier — JFET-input op-amps with roughly 1 nV/√Hz input noise and 40-60 dB gain. Second, a bandpass filter — high-pass (1-10 kHz) removes DC drift and 1/f noise while low-pass (100 kHz to several MHz) limits bandwidth to Nyquist frequency and attenuates interference. Third, a second amplification stage bringing total gain to 60-80 dB. Finally, an anti-aliasing filter — a steep low-pass immediately before digitization.

AC coupling between stages (via capacitors) is essential — without it, DC offset accumulates through the high-gain chain and saturates the amplifiers at the supply rails, producing a very deterministic output.

Digitization

Comparator-based (1-bit): Amplified noise compared against a threshold. Above = 1, below = 0. Simple but the sampling rate must be much lower than the noise bandwidth to ensure independence between samples.

ADC-based (multi-bit): An ADC captures multiple bits per sample, but only the least significant bits carry genuine entropy (MSBs carry the deterministic signal shape). An 8-bit ADC might yield 2-4 bits of entropy per sample.

Design note: Why comparators over ADCs in many designs? Simplicity, low power, easy on-chip integration. The throughput penalty is accepted because conditioning and CSPRNG expansion provide the needed volume.

Sampling Rate

This is critical. If the noise bandwidth is B Hz, the autocorrelation time is roughly 1/(2B). Sampling faster than this produces correlated (non-independent) bits. Practical designs sample at B/5 to B/10 for good independence, accepting the throughput cost.

Conditioning Raw Entropy

Why Raw Bits Aren't Uniform

No physical entropy source produces perfectly uniform, independent bits. The raw output suffers from bias — comparator offset, amplifier asymmetry, or DC leakage means P(1) ≠ 0.5. Even 1 mV of comparator offset against 100 mV noise RMS gives P(1) ≈ 0.496. It also suffers from autocorrelation — sampling too fast relative to noise bandwidth means successive bits are correlated. Non-stationarity means temperature, voltage, and aging shift the statistical properties over time. And deterministic components — clock signals, power supply switching noise, and nearby digital circuits — inject periodic patterns.

A raw TRNG bit might carry only 0.7-0.99 bits of min-entropy rather than the ideal 1.0 bit. Conditioning transforms a stream with imperfect entropy density into a shorter stream with full entropy density.

Von Neumann Debiasing (1951)

Examine raw bits in pairs: (0, 1) outputs 0. (1, 0) outputs 1. (0, 0) or (1, 1) are discarded.

Why it works: If each bit independently has probability p of being 1, then P(0,1) = (1-p)·p = P(1,0). Equal regardless of p. The matched pairs are discarded because their probabilities do depend on p.

The cost: At best, 75% of input bits are wasted (only 25% of pairs are usable). With heavy bias (p=0.9), efficiency drops to about 9%. Output rate is variable, complicating downstream clocking.

Limitation: Assumes independence. If successive bits are correlated (which they are in practice), bias leaks through.

XOR Folding

XOR N consecutive bits to produce one output bit. For bias p, XOR of two bits has P(1) = 2p(1-p) — closer to 0.5. XORing more bits reduces bias exponentially. Simple but doesn't handle autocorrelation, and throughput drops N:1.

Cryptographic Conditioning

Modern TRNG designs use cryptographic hash functions as entropy condensers. This is what NIST SP 800-90B mandates.

Von Neumann uses pair comparison, gives at most 25% throughput, and removes first-order bias only. XOR folding uses N-to-1 XOR, gives 1/N throughput, and reduces bias but doesn't fix correlation. LFSR uses a linear hash over GF(2), gives roughly 100% throughput, but is not cryptographic and is vulnerable to algebraic attacks. SHA-256 hashes 512 raw bits down to 256 output bits, giving roughly 50% throughput with full entropy if min-entropy rate exceeds 0.5. AES-CBC-MAC uses block cipher conditioning, gives variable throughput, and produces 128-bit conditioned output per block. HMAC-DRBG uses HMAC in a feedback construction, gives variable throughput, and is NIST SP 800-90A compliant.

Design note: Why hash-based conditioning over von Neumann? The hash function's avalanche property destroys any bias or correlation in the input. It provides a fixed output rate regardless of input statistics, and has a security proof under standard cryptographic assumptions.

Health Monitoring

Why It's Critical

A TRNG is a physical device, and physical devices fail. When a TRNG fails, it may produce deterministic or predictable output — a catastrophic security failure invisible to software unless actively detected.

Failure modes include diode aging, amplifier rail saturation (stuck at all 0s or all 1s), EM frequency injection into ring oscillators, temperature extremes reducing thermal noise, and manufacturing defects producing biased output.

NIST SP 800-90B Mandatory Tests

Repetition Count Test: Counts consecutive identical outputs. If the count exceeds a threshold C, declare failure. For 0.85 bits/sample min-entropy, C = 25 consecutive identical samples triggers the alarm.

Adaptive Proportion Test: Within a window of 1024 samples (binary), counts how many match the first sample. If the count exceeds a threshold, declare failure. This catches bias shifts the repetition test would miss.

Startup vs Continuous

Startup tests run before any output is provided — collect and test a large initial sample (for example, 4096 samples). No output until tests pass. Continuous tests run on every sample during operation and must be lightweight (a counter and a comparison per sample).

When Tests Fail

The options range from most to least conservative: suppress output immediately, alarm and retry (wait, re-run startup tests), fall back to stored entropy on a time-limited basis, or degrade gracefully with notification — continue from a previously-seeded CSPRNG but flag that live entropy is unavailable (this is Linux's approach).

Intel's RDRAND sets the carry flag (CF) to indicate success. CF=0 means the DRNG failed health tests — software must check this.

Statistical Test Suites

Used during design validation and certification, not online. NIST SP 800-22 runs 15 tests (monobit, runs, FFT, matrix rank, etc.) on 1M-bit sequences. Diehard (Marsaglia, 1995) offers 18 tests including birthday spacings, parking lot, and squeeze. TestU01 (L'Ecuyer) is the gold standard — SmallCrush (10 tests), Crush (96), BigCrush (160). NIST SP 800-90B entropy estimation uses 10 different min-entropy estimators; the final assessment is the minimum across all (conservative bound).

Real-World Implementations

Intel RDRAND/RDSEED (Ivy Bridge, 2012+)

A three-stage pipeline. First, the entropy source: pairs of cross-coupled inverters forced to metastability, where thermal noise determines resolution. Raw output is roughly 3 Gbps with about 0.5 bits min-entropy per raw bit, including continuous health testing. Second, the conditioner: AES-CBC-MAC compresses roughly 512 raw bits into a 256-bit seed with full entropy. Third, the CSPRNG: AES-CTR-DRBG (SP 800-90A compliant) generates up to 512 values per seed.

RDRAND returns CSPRNG output (roughly 500 MB/s). RDSEED returns conditioned entropy directly (slower, can fail if entropy is consumed faster than generated).

Linux /dev/random and /dev/urandom

Historical architecture (pre-5.17): An entropy pool accumulated entropy from interrupt timing, input devices, disk I/O, and RDRAND. SHA-1 mixing. /dev/random blocked when the entropy estimate hit zero; /dev/urandom never blocked.

Modern architecture (5.17+, Jason Donenfeld's overhaul): ChaCha20-based CSPRNG replaced the entropy pool. /dev/random and /dev/urandom are now functionally identical after initial seeding. blake2s is used for input mixing. Jitter entropy serves as backup. RDRAND/RDSEED are XORed in (never trusted alone). The getrandom() syscall is the preferred interface — blocks only until initial seeding, then never.

Design note: Why unify /dev/random and /dev/urandom? The blocking was based on a misconception that a CSPRNG "uses up" entropy. Once seeded with 256 bits, ChaCha20's output is computationally indistinguishable from random. Blocking caused real-world harm (GnuPG stalling, users installing dubious entropy daemons) with zero security benefit.

Hardware Security Modules (HSMs)

The highest-assurance implementations. Dedicated analog noise sources (thermal or shot noise) in tamper-responsive enclosures. If physical tampering is detected, all keys and entropy are zeroized. FIPS 140-3 Level 3/4 certified. Vendors include Thales Luna, Entrust nShield, and Utimaco.

Quantum RNG Chips

ID Quantique Quantis: Photon beam-splitter architecture, 4-16 Mbps (chip), up to 240 Mbps (PCIe). Available as chip-scale modules for smartphones and IoT. Quside (Spain): Phase-diffusion QRNG, over 100 Gbps demonstrated in research.

Cloudflare LavaRand

Camera feeds a lava lamp wall, pixel data seeds the CSPRNG. One entropy source among several. London office uses chaotic pendulum mobiles. Singapore uses radioactive decay. Defense in depth.

The Hybrid Architecture: TRNG + CSPRNG

Why This Dominates

Virtually every modern system uses the same pattern:

TRNG (slow, genuine entropy)
    ↓ seed (128-512 bits)
CSPRNG (fast, computationally indistinguishable from random)
    ↓ output (GB/s)
    ↑ periodic reseed from TRNG

Throughput: CSPRNG runs at CPU speed (AES-NI: over 10 GB/s). No physical entropy source matches this. Unpredictability: TRNG seeding means even state compromise is temporary — the next reseed restores security. Resilience: If the TRNG temporarily fails, the CSPRNG continues securely from its current state.

Entropy Pools and Fortuna

An entropy pool accumulates entropy from multiple sources via a cryptographic mixing function.

Fortuna (Schneier and Ferguson) uses 32 separate pools. Each entropy source distributes input round-robin. Pool P0 is used at every reseed, P1 every 2nd, P2 every 4th, and so on. This guarantees recovery from state compromise within 2^31 reseeds, even if an attacker monitors some sources. Fortuna is used in FreeBSD and influenced Windows' CryptGenRandom.

The PRNG-to-TRNG Spectrum

At the weakest end sits a deterministic PRNG like Mersenne Twister — predictable with state knowledge and the fastest option. Next is a CSPRNG like AES-CTR or ChaCha20 — computationally hard to predict and very fast. Then a hybrid (TRNG+CSPRNG) like Linux RNG or Intel RDRAND — non-deterministic seed plus computational speed. Above that, a TRNG with conditioning (PTG.2 device) where every bit depends on fresh entropy at moderate speed. Then a raw TRNG (PTG.3 device) with information-theoretic security but slow. At the very top, a device-independent QRNG using Bell-test certification — provably unpredictable but very slow.

Standards and Certification

NIST SP 800-90 Series (US)

90A specifies DRBGs — Hash_DRBG, HMAC_DRBG, CTR_DRBG. (Dual_EC_DRBG was removed after the NSA backdoor scandal.) 90B covers entropy sources — min-entropy estimation (10 different estimators, take the minimum), mandatory health tests, IID vs non-IID tracks. 90C (draft) describes how to combine 90A + 90B into a complete random bit generator.

AIS 31 (German BSI)

A fundamentally different philosophy from NIST. NIST SP 800-90B is empirical and statistical — "show me the output looks random." Its core requirement is statistical tests on collected samples. This is low-barrier and allows novel sources to be evaluated, but it can't detect a deterministic source that passes all tests.

AIS 31 (BSI) is model-based and physical — "explain to me WHY it's random." Its core requirement is a stochastic model of the entropy source. This provides deeper assurance and catches sources that pass tests but aren't truly random, but it can only certify well-understood sources.

AIS 31 classes: PTG.1 is a deterministic RNG (essentially a CSPRNG) that passes statistical tests, seeded from PTG.2+. PTG.2 is a physical TRNG with conditioning that requires a stochastic model plus statistical tests — most hardware TRNGs certify here. PTG.3 is a physical TRNG without conditioning — raw output must pass all tests. Extremely difficult, essentially requiring a quantum source with near-perfect uniformity.

FIPS 140-2/3

Security requirements for cryptographic modules. Level 1-2 requires basic statistical testing. Level 3 adds identity-based authentication and tamper-evident enclosures. Level 4 adds environmental failure protection — the module zeroizes if temperature, voltage, or EM excursions are detected.

FIPS 140-3 validation typically takes 12-24 months and costs $50K-$200K+.

Attacks and Security

The Dual_EC_DRBG Scandal

The most consequential cryptographic scandal of the 21st century. The algorithm uses two elliptic curve points P and Q. If you know the discrete log relationship between them (Q = eP), you can recover the internal state from a single output block and predict all future output.

In 2007, Shumow and Ferguson publicly noted this backdoor possibility. In 2013, Snowden documents confirmed the NSA had paid RSA Security $10M to make Dual_EC_DRBG the default in BSAFE. NIST removed it from SP 800-90A in 2014.

Lasting impact: Fundamental loss of trust in NIST-recommended algorithms (which NIST has worked to restore through more transparent processes). Motivated "nothing up my sleeve" number requirements in cryptographic designs.

The RDRAND Controversy

Intel's RDRAND is a black box on the CPU die. You cannot inspect the implementation, cannot access raw entropy, and external testing can only evaluate CSPRNG output (which passes all statistical tests regardless of entropy source quality, because AES-CTR-DRBG is strong).

Theodore Ts'o (Linux kernel RNG maintainer): "I am so glad I resisted pressure from Intel engineers to let /dev/random rely only on the RDRAND instruction."

The 2019 AMD bug: Certain AMD processors had RDRAND always return 0xFFFFFFFF — a complete, silent failure demonstrating why you never trust a single source.

Current consensus: RDRAND is one input to an entropy pool, never the sole source. Linux XORs it with other sources — even a backdoored RDRAND cannot weaken the final output (XOR with an independent source can only help).

Environmental Manipulation

Temperature: Cooling a chip to -40°C can reduce thermal noise entropy to near zero. Voltage: Lowering supply voltage reduces noise margins; voltage glitches can force deterministic behavior. EM injection: A focused EM field can lock ring oscillators in phase, eliminating jitter entirely. Bayon et al. (CHES 2014) reduced ring oscillator TRNG entropy to essentially zero from centimeters away.

Side-Channel Attacks

Electromagnetic emanation: EM probes near the chip can observe jitter patterns and infer generated bits. Markettos and Moore (2009) extracted internal state from several commercial TRNGs. Power analysis: SPA/DPA on the TRNG's power consumption can reveal which bits were generated. Timing: If output rate is data-dependent (for example, von Neumann debiasing), timing reveals information about raw source values.

Supply Chain Attacks

A hardware Trojan inserted during fabrication can subtly weaken a TRNG — reducing noise bandwidth, adding a deterministic component to oscillators, or inserting a kill switch. Such trojans may involve changes to only a few transistors in a billion-transistor chip and pass all functional and statistical testing.

Never Trust a Single Source

This is the most important practical lesson. Hardware can fail silently (AMD RDRAND bug). Manufacturing variations mean your test chip is not your production chip. Environmental conditions differ between lab and deployment. Backdoors exist (Dual_EC_DRBG proved this). XOR with independent sources can only help, never hurt — mixing multiple sources means compromising the output requires compromising ALL sources simultaneously.

Historical Timeline

~3000 BCE — Mesopotamian dice (sheep ankle bones). 1655 — Roulette wheel attributed to Pascal. 1918 — Schottky describes shot noise. 1926 — Born proposes probabilistic interpretation of QM; Johnson observes thermal noise. 1927 — Heisenberg uncertainty principle; Tippett publishes first random number tables. 1928 — Nyquist derives thermal noise formula. 1940s — Monte Carlo methods (Ulam, von Neumann, Metropolis) at Los Alamos. 1951 — Von Neumann publishes debiasing technique. 1955 — RAND Corporation publishes "A Million Random Digits." 1957ERNIE 1 — neon tube discharge noise selects UK Premium Bond winners (built by Tommy Flowers' team). 1964 — Bell's theorem. 1982 — Aspect's Bell test experiments. 1996 — HotBits (radioactive decay RNG); SGI patents LavaRand. 1998 — random.org (atmospheric noise). 1999 — Intel i810 — first consumer CPU with on-chip TRNG. 2007 — Dual_EC_DRBG backdoor publicly noted. 2012 — Intel RDRAND/RDSEED (Ivy Bridge). 2013 — Snowden confirms NSA backdoor in Dual_EC_DRBG. 2015 — Loophole-free Bell tests (Delft, Vienna, NIST). 2018 — NIST SP 800-90B published; cosmic Bell test using quasar light. 2019 — ERNIE 5 (quantum RNG); AMD RDRAND bug discovered. 2022 — Linux 5.17 unifies /dev/random and /dev/urandom. 2020s — Chip-scale QRNGs commercially available for smartphones and IoT.

Frontiers

Device-Independent Quantum RNGs

The theoretical gold standard. Two entangled particles are measured by spatially separated devices. If the CHSH Bell inequality is violated (S > 2), the outputs must contain genuine randomness — regardless of device trust. Even if every component was manufactured by an adversary, Bell violation certifies randomness.

Current limitations: requires over 82.8% detector efficiency (to close the detection loophole), cryogenic detectors, low throughput (bits/second). Active research is pushing toward practical rates.

Randomness Expansion and Amplification

Expansion: A short seed of n perfect random bits can generate 2^(poly(n)) certified random bits via Bell test protocols. Proven possible by Vazirani and Vidick (2012).

Amplification: Starting from weak randomness (each bit has bounded bias ε < 1/2), you can arrive at perfect randomness. This is impossible classically (Santha-Vazirani, 1986) but possible quantumly (Colbeck-Renner, 2012). The profound implication: if any unpredictability exists in the universe, perfect randomness follows.

NIST Randomness Beacon and League of Entropy

NIST Beacon: Publishes signed, chained 512-bit random values every 60 seconds from two independent quantum sources. Public, verifiable, unpredictable. Used for lotteries, audits, timestamping.

drand (League of Entropy): Cloudflare, Protocol Labs, and others operate a distributed beacon using threshold cryptography — no single participant can predict or bias output. More robust than any single-operator beacon.

Exotic Sources

Cosmic microwave background: Quantum vacuum fluctuations from cosmic inflation, frozen 13.8 billion years ago. The 2018 "cosmic Bell test" used quasar photons (billions of light-years away) to choose measurement settings, closing the freedom-of-choice loophole. Brownian motion: Nanoparticle tracking gives well-characterized stochastic signals. Neural noise: Neurons fire with inherent stochasticity due to random ion channel behavior — speculative but theoretically sound.

Philosophy: The Deepest Questions

What Does "Random" Actually Mean?

Kolmogorov complexity: A string is random if it's incompressible — the shortest program that outputs it is approximately as long as the string itself. A PRNG output, no matter how long, has low Kolmogorov complexity (the algorithm plus seed is short). A truly random string of n bits has complexity roughly n. The fundamental problem: Kolmogorov complexity is uncomputable (halting problem), so you can never prove a specific finite string is random.

Martin-Löf randomness: An infinite sequence is random if no computable betting strategy can make unbounded money on it. Equivalent to saying no computable adversary can distinguish it from uniform.

Information-theoretic view: A TRNG produces genuine information in Shannon's sense. Each bit is irreducible — it didn't exist in the universe before measurement. A PRNG produces no new information; it merely stretches the information in its seed.

Can We Prove Randomness?

For finite strings: No. It could have been generated by an unknown deterministic process. All statistical tests have finite power. AES-CTR output passes every known test but is entirely deterministic.

For processes: Conditionally yes. If you accept quantum mechanics (and reject superdeterminism), Bell inequality violations prove the outputs contain genuine randomness. This is the strongest known certification.

The Interpretations Problem

Copenhagen: Measurement outcomes are fundamentally stochastic. TRNG randomness is real. Many-Worlds (Everett): All outcomes occur in different branches. No collapse, no randomness at the universal level. QRNGs produce different bits in different branches. Bohmian mechanics: Deterministic pilot wave guides particles. Randomness is epistemic (quantum equilibrium), like classical chaos but with stronger unpredictability. Superdeterminism: Everything was predetermined by initial conditions, including "free" measurement choices. Bell violations don't imply randomness.

The Practical Resolution

For engineering purposes, the debate is irrelevant. Quantum processes are the best known source of unpredictability. No known technology can predict quantum measurement outcomes. Bell tests can certify that outputs are at least as random as QM predicts. Whether the universe is "really" deterministic at some deeper level doesn't affect practical security — no adversary has access to that deeper level.

The hierarchy for practical security: Weakest — Algorithmic (PRNG), predictable with state knowledge. Moderate — Classical physical (thermal noise, chaos), unpredictable in practice, deterministic in principle. Strongest — Quantum mechanical, unpredictable even in principle, certifiable via Bell tests.

Key Takeaways

Quantum mechanics provides the foundation. Bell's theorem and its experimental confirmation establish that certain physical events are fundamentally undetermined. TRNGs exploit this.

No raw source is perfect. Every physical entropy source has bias, correlation, and non-stationarity. Conditioning is not optional.

The hybrid architecture won. TRNG seeds CSPRNG. You get genuine entropy for the seed and computational speed for bulk output. This is Linux, Windows, Intel, ARM — everyone.

Never trust a single source. The AMD RDRAND bug, Dual_EC_DRBG, and environmental manipulation attacks all prove this. Mix sources. XOR can only help.

Statistical tests cannot prove randomness. They detect non-randomness. Passing all tests is necessary but not sufficient. AES-CTR output passes everything but is deterministic.

Standards disagree on philosophy. NIST says "show me it looks random." BSI says "explain to me why it's random." Best practice: satisfy both.

The deepest randomness is certifiable. Device-independent QRNGs use Bell violations to prove randomness without trusting the device. This is the theoretical endpoint of the field.

Further reading: NIST SP 800-90A/B/C, BSI AIS 31, Killmann and Schindler "A Proposal for Functionality Classes for Random Number Generators" (2011), Herrero-Collantes and Garcia-Escartin "Quantum Random Number Generators" (Rev. Mod. Phys. 2017), Ma et al. "Quantum Random Number Generation" (npj Quantum Information 2016)