Throughout history, humans have relied on their ability to identify and interpret patterns to survive. Whether it be recognizing edible plants or navigating using the stars, pattern recognition has been a key factor in our success.
Importance of Reliable Random Numbers in Various Fields
Nowadays, we have advanced technologies like data mining, machine learning, and time series analysis to help us identify patterns and predict future trends in various fields such as finance, business, healthcare, and transportation. However, the reliability of these predictions depends on the quality of the data being used. Generating truly random numbers, which are uniformly distributed over a defined interval, is becoming increasingly challenging.
Random numbers are integral to many fields such as statistical analysis, cryptography, computer simulations, and gaming. We also use them in our everyday lives when we create passwords or shuffle music. Unfortunately, these numbers are often generated using algorithms that can be predicted given enough time. This makes them vulnerable to attacks by malicious individuals who can use the patterns they identify to gain unauthorized access or manipulate outcomes.
Randomness and Security in Cryptography and Blockchain
Cryptography is a crucial aspect of information security that ensures sensitive information remains confidential, authentic, and intact. However, as seen in the Play Station 3 firmware vulnerability and the Iowa Caucus incident, weak random numbers can undermine the security of these systems. To prevent such breaches, it is crucial to use strong and reliable random numbers in critical systems. By doing so, we can maintain the integrity of important processes and protect sensitive information from falling into the wrong hands.
Blockchain is a decentralized digital ledger that securely records transactions in a tamper-proof manner. Transactions are added to the growing list of records and stored in blocks that are linked using cryptographic hashes. Consensus mechanisms such as proof of work, proof of stake, and proof of identity enable the blockchain network to validate transactions and determine which blocks are added to the existing blockchain. In proof-of-stake, validators are selected randomly based on the number of cryptocurrencies they stake as collateral. This randomness prevents any single validator from controlling the network. However, a weak random number generator can lead to security issues and potential attacks that could compromise the decentralized nature of the network. For instance, 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 unstable and creating confusion. Therefore, a reliable source of random numbers is essential to maintain the security and stability of the blockchain network.
Luck-based games such as casino games, card games, dice games, board games, and lottery games rely on randomness and unpredictability to create excitement and ensure fairness. A good random number generator is crucial to maintain integrity in such games. In 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, random loot drops and armories are given to players to complete quests, and in role-playing games, a player’s character and attributes are chosen randomly to create a unique and diverse user experience. Without a reliable source of entropy, the gaming industry risks poor player engagement, biased outcomes, repeated levels, and negative reputation for the developer. A robust random number generator in the gaming industry can reduce game exploitation and cheating, and in the worst cases, avoid legal repercussions.
The Monte Carlo simulation is a mathematical technique that is commonly used to predict possible outcomes of uncertain events. It is especially useful in analyzing the performance of complex systems, such as aircraft, in order to determine their reliability and improve manufacturing. Additionally, it is utilized to predict the sales of a new product based on market conditions, advertising budget, and past experiences. The Monte Carlo simulation involves using random values as inputs to generate multiple outcomes. To obtain reliable and accurate results, the random numbers used must be unbiased.
The Role of Random Number Generators in Gaming and Simulations
There are numerous methods for generating random numbers to meet the growing number of applications. One widely used method is the Mersenne Twister, a pseudo-random number generator. It generates a long series of random numbers using complex recursive mathematical algorithms like XOR, bitshifts, and other operations after starting with a seed value. While pseudo-random numbers are sufficient for certain simulations, they can jeopardize security, legitimacy, and reliability. Examples of true random number generators include 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 should provide a uniform, unpredictable, and statistically independent stream of numbers. Numerical algorithms or classical physics processes cannot generate a truly random stream of numbers, which is necessary for data security and accuracy. On the other hand, 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 to generate a truly random stream of numbers.
However, these processes can be affected by experimental imperfections, such as measurement bias, sampling period-induced correlation, and deterministic classical noise. To compensate for these imperfections, post-processing methods like statistical tests, entropy extraction, noise generation, randomness distillation, and distribution transformation are commonly used. Unfortunately, this additional step can lead to security vulnerabilities and lower production rates.
At Quantum Computing Inc., we have developed a method to generate genuine random numbers that does not rely on manufacturing accuracy or post-processing, and is not limited to binary values. Instead, we use single photons from a coherent source, which are superposed over all possible temporal modes, and then collapse into a single time bin when measured by a single photon detector. By measuring the arrival time of these single photons, we generate uniformly distributed entropy without the need for post-processing. We have demonstrated the uniformity of arrival time of 0.2 billion single photons over a hundred thousand time bins, as shown in the figure below.
To generate quantum random numbers (QRNs) using this method, we attenuate a coherent light source in the visible range of the spectrum and detect the single photons using a silicon single-photon detector. We then measure the arrival time of each single photon using a time-to-digital converter, which generates a series of random numbers. To ensure the randomness of these numbers, we subject them to rigorous statistical tests, such as TestU01, PractRand, Diehard, Dieharder, and NIST tests. These tests consist of a battery of statistical tests, including the Birthday Spacing test, overlapping permutations, Monkey Tests, Parking Lot test, Squeeze test, Minimum Distance test, and count the 1’s test. While these tests can identify subtle patterns, they do not confirm perfect randomness in a series of potential random numbers.
However, our QCI’s single photon arrival time based QRNG has successfully passed all of these tests at a significantly high level, indicating that our method generates truly random numbers. To illustrate this, we provide an example 2000*2000 points bitmap of our quantum random numbers. By using our method, we can generate high-quality random numbers efficiently and securely, without the need for post-processing or reliance on manufacturing accuracy.
“Have you ever tried to guess the next song when it’s on shuffle, only to find yourself disappointed when you’re right? It’s time we had an unlimited source of truly unpredictable random numbers that could be used to select any song from our favorite playlists with equal probability.”