From the dawn of time, humans have survived because of their ability to find and identify patterns. For example, patterns helped us distinguish edible berries from poisonous ones, related agricultural activities to seasons, and navigate the world using the stars. These days data mining, machine learning, neural networks, time series analysis, and regression analysis are used to look for patterns and gain insights into future trends to help us reduce costs and improve outcomes in finance, business, healthcare, and transportation sectors. With this in mind, creating and maintaining a constant stream of random numbers becomes increasingly difficult.

Random numbers are a stream of hard-to-predict numbers that are uniformly distributed over a defined interval. They are integral in many fields, including statistical analysis, cryptography, computer simulations, digital crypto-currency, gaming and more. Even in our daily routine we rely on randomness when we use shuffle while playing music, one-time passwords while trying to log in to secure websites and to create a pin for our phones, laptops as well as debit cards. Unfortunately, since these random numbers are generated by humans or computer algorithms, given enough time finding patterns and predicting the next number is possible.

Cryptography is an essential component of modern information security and plays an important role in protecting sensitive information and ensuring secure communication. It is a constantly evolving field that addresses threats to improve cryptographic systems. Using a long and random key makes it increasingly difficult for adversaries to decrypt the data and can determine the confidentiality, authenticity, and integrity of the secure information. In 2010, a group of researchers discovered a vulnerability in the Play Station 3 firmware, where they could predict the weak random numbers and calculate the private keys used in the algorithm. Using this information, they could insert pirated games and unauthorized software into the system. In the 2012 Iowa Caucus, a phone application designed to report voting results was breached due to the use of weak random numbers. This directly resulted in delayed and incorrect ballot results leading to major confusion and causing doubts about the integrity of the United States’s election process. These breaches emphasized the need for strong and reliable random numbers in critical systems.

Blockchain is a decentralized digital ledger that records transactions in a secure and tamper-proof way. The growing list of transaction records is stored in blocks and securely linked using cryptographic hashes. Proof of work, proof of stake, and proof of identity are common consensus mechanisms allowing the blockchain network to determine the validity of transactions and decide which blocks get added to the existing blockchain. In proof-of-stake, validators are chosen randomly depending on the number of cryptocurrencies they are willing to stake as collateral. Here, randomness prevents an individual validator from completely controlling the entire network. A weak random number generator can lead to security issues and potential attacks due to centralized network control. For example, if the randomness can be predicted, a fraudulent participant can create many “no stake” validators and intentionally split the network into multiple branches making the network highly unstable and creating confusion. A good random number source is very important to maintain a secure and stable blockchain network.

Unpredictability and excitement are built in luck-based games like casino games, card games, dice games, board games, and lottery games. A good random number generator is required to ensure fairness and integrity in such games. In some simulation games, environments are procedurally generated by randomly placing elements such as walls, trees, enemy troops, caves, and open areas. Many experiences, such as unpredictable weather, environmental elements, or hazards are included to avoid predictability and build curiosity in the games. In video games, loot drops and armories are given randomly to players to complete quests. In role-playing games, a player’s character and attributes are chosen randomly to create a unique and diverse user experience. Not having a good entropy source in the gaming industry can lead to poor player engagement, biased outcomes, repeated levels and a negative reputation for the developer. A good random number generator in the gaming industry can reduce game exploitation and cheating and, in the worst cases avoid legal repercussions.

A mathematical technique generally used to predict the possible outcomes of an uncertain event is called the Monte Carlo simulation. Monte Carlo simulations are used to analyze the performance of complex systems like aircraft to determine the reliability and enhance manufacturing. It is also used to predict the sales of a new product based on market conditions, advertising budget, and past experiences. In Monte Carlo simulations, random values are used as inputs to generate many outcomes. The random numbers used for this simulation must be unbiased to obtain reliable and accurate results.

There are numerous methods for generating random numbers for the increasing number of applications. One of the widely used pseudo-random number generators is the Mersenne Twister. Mersenne Twister starts with a seed value and performs complex recursive mathematical algorithms like XOR, bitshifts, and other operations to generate a long series of random numbers before it repeats. Although such pseudo-random numbers are used enough for certain simulations, they can devastate security, legitimacy, and reliability. Some examples of true random number generators are hotbits, ANU quantum random number generator, RANDOM.ORG – True Random Number Service, random numbers from a lava lamp, Intel secure key and true random.

A good random number generator is required to provide a uniform, unpredictable, and statistically independent stream of numbers. Numerical algorithms or classical physics processes cannot generate a stream of truly random numbers that cater to the growing need for data security and accuracy. On the other hand, many Quantum Random Numbers Generators (QRNG) exploit processes like radioactive decay, vacuum noise, inherent phase fluctuations of lasers, energy fluctuations of stimulated Raman scattering and single photons in superposed modes.

Although these processes are inherently stochastic, they often suffer from experimental imperfections like measurement bias, sampling period-induced correlation, and other deterministic classical noise. Post-processing methods such as statistical tests, entropy extraction, noise generation, randomness distillation and distribution transformation are generally used to compensate for these imperfections. Unfortunately, this additional step leads to security vulnerabilities and a lower production rate.

For example, 50:50 beam splitters are frequently used to generate random numbers. The photons that emerge from the two outputs are detected by two single photon detectors assigned a unique binary value. The detection of these photons cascades the binary value to a stream of random numbers. This method solely relies on the beam splitter’s manufacturing accuracy to obtain an unbiased random number series. Post-processing, such as entropy extraction is implemented to overcome this bias. Sadly, such processes take time and in turn reduce the production rate. Additionally, post-processing methods require a computer making it a security threat since it can be hacked. In addition, this method is limited to binary random values.

At Quantum Computing Inc., we generate genuine random numbers by measuring the arrival time of single photons. Single photons from a coherent source are superposed over all possible temporal modes, which collapses into a single time bin when measured using a single photon detector. We exploit this innate phenomenon of quantum mechanics to generate uniformly distributed entropy without post-processing. The figure below shows the uniformity in arrival time of 0.2 billion single photons over a hundred thousand time bins.

To generate QRNs this way, we attenuate a coherent light source in the visible range of the spectrum and detect them using a silicon single-photon detector. We measure the arrival time of these single photons using a time-to-digital converter. The random numbers thus generated are then scrutinized for patterns or biases. Some assessing methods include TestU01, PractRand, Diehard, Dieharder, and NIST tests. Each method consists of a battery of statistical tests; for instance, the Diehard suit consists of tests such as the Birthday Spacing test, overlapping permutations, Monkey Tests, Parking Lot test, Squeeze test, Minimum Distance test, count the 1’s test, and so on. Although these rigorous entropy tests can identify subtle patterns, they do not confirm perfect randomness in a series of potential random numbers. Our QCI’s single photon arrival time based quantum random number generator has successfully passed all the tests in a significantly high level. Here is an example 2000*2000 points bitmap of our quantum random numbers.

How often have we guessed the next song, even when it’s on shuffle? It’s time we get an unlimited source of purely unpredictable random numbers that span uniformly over all the songs that we love.