Entropy as a service: still pseudo-randomness, or already a true randomness?
To many individuals who have a behind-the-stage software experience, meaning, the production aspect, the issue of randomness may come as a surprise. Or the lack of it to be precise, as still, everything that we can achieve in the aspect of software is pseudo-randomness. The issue of achieving as little reversible randomness as possible is so important, that many enterprises are providing… randomness as a service.
Randomness or pseudo-randomness?
A belief is popular, in the unlimited capabilities of modern computers regarding number processing. Operations performed by supercomputers seem like magic, and quantum computers – which become an increasingly discussed theme – seem like machines, that will be able to make a civilizational leap into the unknown. In the context of the belief in such power, many are surprised, that computers are incapable of generating entirely random numbers – a seemingly elementary thing.
The issue is, that the computer must somehow achieve the result in the form of a „random” number. The machine must execute a particular algorithm, an ordered sequence of actions, that yields result in the form of this or that particular number. Regardless of how complicated the sequence should be, the very fact that it exists results in the fact that we cannot speak of true randomness. True randomness cannot be achieved in a particular manner, a particular method. Volatilty and the lack of such a method are key here.
Randomness results from chaos, while an algorithm constitutes a certain order. Throwing dice or asking a child to give a random number (even if the child can count up to ten only) will always be more random, than what the software can do for us. Therefore, a new name has been created for numbers achieved by means of aiming at the highest randomness possible – pseudo-random numbers. The SFMT algorithm developed by Mutsuo Saito and Makoto Matsumoto is considered to be pseudo-random number generator that is closest to randomness.
However, that doesn’t mean that all programmers and cryptologists, in their work (where, surprisingly, randomness is very, notoriously even, helpful) must depend solely on the reversible randomness substitutes. Contrary, there are many interesting alternatives, with the hardware random number generators on top. They can utilize various phenomena, e.g. energy fluctuations in a vacuum or the scattering of lasers. Also one may… stare at lamps.
The Cloudflare idea regarding hardware randomness
The Cloudflare practices are an example of a creative attitude towards randomness. While launching the free League of Entropy service, the leading provider of Content Delivery Network services, reminded how randomness is achieved. One of the walls in the Cloudflare headquarters in San Francisco, is lined entirely with shelves containing lava lamps. The popular novelty, that by warming and cooling the mixture of wax floating in a fluid of lesser density, achieves eye-catching changes of fancy shapes.
The thing is, the shapes are in no way organized. One cannot calculate, how the fluids will arrange in the next cycle, i.e. from the cooling of the wax in the upper part of the cylinder, to its next warming in the lower part. Let’s scale the phenomenon up to dozens of lamps placed alongside. In each of them, the fascinating shapes arrange in an unpredictable manner, and no one can predict, what configuration the wax will assume in every single lamp.
Now, all you have to do is place a camera in front of the wall with lamps. The recorded image is processed by algorithms that recognize shapes and describe them in a constantly mathematical way. Each of them and all together. This way – based on a wall with lava lamps – one of the most important internet service providers, the CDN market leader, without which it is difficult to imagine the internet as it is, achieves true hardware randomness.
There are many other ways too – their entropic fusion was released as the aforementioned League of Entropy. A part of providers analyzes, e.g. what sequences of characters and typed by internet users from over the world, and that is how they generate randomness. Some consider seismic microvibrations. Others install high quality microphones in cities, to listen in on environmental noise. It is clear, that the seemingly simple issue rises up to one of the key matters, and the search for its solutions often requires highly specialized means.