Skip to main content

Quantum Random Number Generator

Generate truly random numbers using quantum mechanics


Random number generation is a valuable capability that plays a pivotal role in a wide variety of applications from cryptography and data security to statistical analysis and video games. However, true randomness can be difficult to achieve, as most random number generators fail to capture genuine unpredictability. They are often based on deterministic algorithms, which utilize an initial state and a set of operations that can be used to predict the resulting sequence of numbers.

Our Quantum Random Number Generator (QRNG) research solves this problem, making it possible for anyone to request information-theoretically provable random numbers based on principles of quantum mechanics. This page interfaces with a QRNG in our own lab, outlined by the following diagram.

Block diagram representation of QRNG

Check out the background tab on this page for a deeper explanation of each component in the above diagram and some of the quantum theory behind it. Or just use the demo below to request truly random numbers created by our QRNG system!

Request Quantum Random Bits (Max 102,400)

The following diagram gives an overview of our QRNG system.

Block diagram representation of QRNG

The laser serves as a local oscillator, emitting highly concentrated light that is divided in half by the fiber beam splitter. After following identical path lengths, the two fibers are recombined in a balanced homodyne detection module. The module uses photodiodes to convert the inputs to currents and subtracts the two, eliminating all classical and common mode (CM) noise and leaving nothing except the quantum fluctuations of the vacuum state, which are then amplified.

But what is a vacuum state?

A vacuum state is the lowest energy state of a quantum field or system, characterized by the absence of particles and minimal energy fluctuations. According to quantum theory, beam splitters must have two inputs to produce two outputs. In a QRNG, one of the inputs is the local oscillator. The second input defines the quantum state that will be measured by the balanced homodyne detector. Because there is no second input in the QRNG, the vacuum state is measured.

Beam splitter for vacuum state measurements

The energy of a quantum state of light is given by the equation

E n = ħ ω ( n + 1 2 )

where ħ is Planck’s constant, ω is the angular frequency of the electric field, and n is a non-negative integer representing the quantum number. This equation reveals that the vacuum state contains the energy of half a photon (when n = 0), and can be explained by the Heisenberg Uncertainty Principle, expressed as


ΔX and ΔP represent the fluctuations in the real part X (amplitude) and imaginary part P (phase) of an electric field. Because these fluctuations must be greater than or equal to 2 , and can therefore not be equal to zero, even the energy level of the vacuum state must be a non-zero value.

The Heisenberg Uncertainty Principle states that fluctuations in X and P must exist; however, it is impossible to know the exact value of X and P at any given time. There exists therefore a sphere of uncertainty around electric field measurements. The fluctuations in the electric field that result in this uncertainty are measured by the balanced homodyne detector.

The measured data is then processed by an ADC and placed into digital bins that are sent to an FPGA. Because the quantum fluctuations follow a Gaussian distribution, the FPGA uses a method called Toeplitz Hashing to transform the Gaussian data into a uniform distribution using the concept of minimum entropy.

Minimum entropy quantifies the amount of randomness in a distribution and is expressed as

MinEntropy = log 2 ( σ quantum 2 π BinWidth )

This value indicates the maximum number of random bits that can be produced from a set of data. The data is multiplied by an n x m Toeplitz Matrix (a matrix in which each descending diagonal is constant), where n is the number of bits in the raw sequence and m is the minimum entropy. The result is a hashed data set with a uniform distribution and complete removal of the influence of classical noise on the system.

Finally, the random bits are output from the FPGA to the server via USB and can be requested right here on this page! The server interfaces with the FPGA in real time through methods made available through Pyrolab.

More details on our QRNG research can be found on our Quantum Photonics research page. Details about Pyrolab can be found on our Lab Automation research page. In addition to using the short demo on the QRNG tab, check out one of our other demos like quantum music and quantum pi!