Ever since the antiquity, random number generation has played an important role both in common everyday life activities, such as leisure games, as well as in the advancement of science. Such means as dice and coins have been employed since the ancient times in order to generate random numbers that were used for gambling, dispute resolution, leisure games, and perhaps even fortune-telling. The theory behind the generation of random numbers, as well as the ability to potentially predict the outcome of this process, has been heavily studied and exploited by mathematics, in an attempt to either ensure the randomness of the process, to gain an advantage in correctly predicting its future outcomes, or to approximate the results of rather complicated computations. Especially in cryptography, random numbers are used due to the mentioned properties, so that attackers have no other option but to guess. This fact, in conjunction with the ongoing digitalisation of our world, has led to an interest in random number generation within the framework of computer science. In this context, random number generation systems are classified into two main categories: pseudorandom number generators and true random number generators, with the former generating sequences of numbers that appear to be random, but are in fact completely predictable when the initial value (being referred to as the seed) and conditions used for the number generation process are known, and with the latter generating truly random sequences of numbers that can only be predicted (correctly) with negligible probability, even if the initial value and conditions are known.
Ever since the antiquity, random number generation has played an important role both in common everyday life activities, such as leisure games, as well as in the advancement of science. One of the oldest ways in which humans generated random numbers has been through the use of dice. It does not seem to be known when dice were invented, but they have been employed since ancient times, alongside with coin flipping, for predicting the future, decision-making, fortune-telling, gambling, dispute resolution, and leisure games. However, coin tosses are known to have a certain bias, which has been studied extensively[1]. In addition, coins could sometimes land on the edge, rendering the result useless[2]. Modern usages of random numbers include Monte Carlo experiments, game decisions, and even Cryptography.
Random Number Generators are often abbreviated and referred to as RNGs.
A RNG should have two desirable properties:
The coin toss mentioned above does not exactly fulfil these characteristics, but can still provide sufficient random numbers for everyday use.
The two main types of RNGs are called True RNGs (TRNGs) and Pseudo-RNGs (PRNGs).
A TRNG is able to generate random numbers that can only be predicted (correctly) with negligible probability, even if the initial value and conditions are known.
A PRNG can generate sequences of numbers that appear to be random, but are in fact completely predictable when the initial value (being referred to as the seed) and conditions used for the number generation process are known.
which fields of cryptography?
The theory behind the generation of random numbers, as well as the ability to potentially predict the outcome of this process, has been heavily studied by mathematics, in an attempt to either ensure the randomness of the process or gain an advantage in correctly predicting its future outcomes. In particular, probability theory is one of the main mathematical fields relevant to random number generation.
cryptographically secure random number generator
Random numbers have also been employed in cryptography, exactly due to their properties. This fact, in conjunction with the ongoing digitalisation of our world, has, more recently, led to an interest in random number generation within the framework of computer science. In this context, random number generation systems are classified into two main categories: PseudoRandom Number Generators (PRNGs) and True Random Number Generators, with the former generating sequences of numbers that appear to be random, but are in fact completely predictable when the initial value (being referred to as the seed) and conditions used for the number generation process are known, and with the latter generating truly random sequences of numbers that can only be predicted (correctly) with negligible probability, even if the initial value and conditions are known.
Noise
Chaos, deterministic, yet rather "random"
Quantum effects, truly random and unpredictable
Repetition[1]
Coin tossing leads to bits...
Random Number Generation Systems in Computer Science
Pseudorandom number generation, based on algorithms
True random number Generators