• en


In-Silico generation of random bit streams

I flip a coin: heads. I throw it a second time: heads. And then again: heads, tails, tails, tails, heads, tails…. If the coin is not rigged, I cannot predict what the result of the next toss will be, even looking at the series of results obtained. I can know that I will have heads as many times as tails, I can also calculate the probability of having heads 7 times out of 10 throws, I can say a lot of things, but I cannot predict the result of the next throw.


I can therefore resort to the flip of a coin to generate random binary numbers: if it’s heads, the extracted digit will be 0, if it’s tails it will be 1. Thus the string of results HHHTTTTHTHT becomes 00011110101, an unpredictable string of 0 and 1 in completely random positions; a string of "bits", of "binary digits", the numerical base on which all electronic devices "count".


Random bit strings correspond to random numbers, including primes that can only be divided by themselves - like 3, 5, 7, 11, etc. It is from enormous prime numbers that cryptographic keys are built to protect our digital life. The more certain the randomness, the greater the security of the keys that protect our data, our photos, social accounts, bank transactions and health data. Virtually everything that is entrusted and transmitted over the network. In addition to our data protection systems, random bit streams are now essential in gaming, gambling, virtual reality, numerical simulations of complex systems and the Internet of Things.



Coins aside, how can I generate, perceive and verify randomness?