When you walk into Cloudflare’s San Francisco office, the first thing you notice is a wall of lava lamps. Visitors often stop to take selfies, but the peculiar installation is more than an artistic statement; It’s an ingenious security tool.
The changing patterns created by the lamps’ floating wax drops help Cloudflare encrypt Internet traffic. The idea was born over a weekend in 2013, when company CEO Matthew Prince and CTO John Graham-Cumming were discussing how to generate random numbers. Random numbers have a variety of uses in cybersecurity and play a crucial role in, among other things, creating passwords and cryptographic keys. Since computers aren’t particularly good at generating randomness, Prince and Graham-Cumming decided to try to exploit it through a physical process.
“Matthew said, ‘Why don’t we set up a bunch of lava lamps in our office and use them as a random number generator?’” Graham-Cumming recalls. “And I thought, ‘Oh, what a great idea! Let’s just do it!'”
Their project took inspiration from Lavarand, a Patented random number generator in 1996 he used a lava lamp with a camera pointed at it. Each photo the camera took of the object was made unique by the moving blobs. The images were then transformed into random numbers.
Lava lamps are a good source of physical entropy because the movement of the wax drops follows the complex laws that govern fluid mechanics. The wax is heated by a light bulb placed at the base of the lamp. As it gets hotter, it becomes less dense and slowly rises upward. As a mass reaches its peak, it cools and becomes denser, falling to the bottom, where it heats up and repeats the process.
The one from Cloudflare Wall of entropyas is known, it uses not one but 100 lamps, the randomness of which increases with human movement.
“Everyone who takes a selfie increases the randomness,” says Graham-Cumming. “If someone walks in front of the lava lamps, there is more random movement.”
Another source of randomness comes from changing lighting conditions and image sensors within a camera that produce noise; Even if two photos look similar, individual camera noise makes them subtly different.
Cloudflare also uses additional sources of physical entropy to create randomness for its servers.
“In London, we have this incredible wall of double pendulums, and in Austin, Texas, we have these incredible moving devices hanging from the ceiling and moving with the air currents,” Graham-Cumming says. Cloudflare’s Lisbon office will soon feature an “ocean-based” installation.
In these cases, images of the lava lamps, pendulums and “hanging rainbows” used in the Austin office are hashed and serve as input to a key derivation function (KDF), which is used to generate a so-called seed of randomness: A value that is truly random and can be used as the starting point for a chain of values created by a cryptographically secure pseudorandom number generator (CSPRNG).
Cloudflare’s intelligent entropy pool is not used outside of a lack of trust in Linux’s default random number generator but as a precautionary measure, acting as an additional layer of security.
“All of our machines contain random number generators, and they generate random numbers in some way that we can use for encryption purposes,” Graham-Cumming says. “What we do is we want to start this process in a way that is not inherently predictable.”
Physical sources of entropy
Initiatives such as the Wall of Entropy (which gained notoriety in pop culture when it was featured in an episode of the police procedural TV series NCIS) are a clever way of using real-world randomness for cybersecurity. But the idea of relying on physical sources of entropy is not unique. Over the past century, engineers and computer scientists have explored various ways of using natural phenomena to generate randomness.
One of the first machines to exploit the randomness of nature was ERNIE, or Electronic Random Number Indicator Equipment. This random number generating hardware was built in 1956 to decide the winners of a bond lottery issued by the British government. ERNIE generated randomness using the noise produced by a series of cold cathode neon tubes.
Here’s a video of how ERNIE worked.
Other designs exploit atmospheric noise caused primarily by lightning during thunderstorms. Random.org, for example, captures atmospheric noise in the form of static electricity. Random.org was created in 1997 by computer scientist Mads Haahr and his friends, who wanted to generate authentic randomness for the online gambling website they were building. They did this using a $10 RadioShack radio with no noise filter. The resulting radiostatics is itself a form of entropy. Haahr says the group now has several radio receivers in different countries tuned between stations.
Randomness can also arise from surprising places and people, such as a dice-rolling project initiated by Mira Modi at the age of 11. Modi used a well-known method for generating passphrases, called Diceware, developed by Arnold G. Reinhold. Modi rolled a die five times and wrote down each number, say 45621. Then he matched that five-digit number to the corresponding word found in the Diceware dictionary, in this case “pixel.” He repeated the process six times to create a six-word passphrase, ending up with something like “pixel album When Golf Errand Madman.” Modi would then write this passphrase on a piece of paper and send it to his client using the United States Postal Service.
New sources of randomness
Physical generations of random numbers can be based on any chaotic process in nature, including radioactive decay, chaos in laser emissionOR pulsar. These initiatives are all exciting and ingenious, but the most recent developments in the industry push the needle even further.
One such example is the League of Entropy, a collective project that relies on Cloudflare lava lamps along with other sources of entropy.
One day in 2018, a group of researchers, academics and engineers gathered in a small room to watch a talk by Nicolas Gailly on stupida distributed randomness beacon daemon written in Golang.
“We were all sitting in that room, and we were being presented with this amazing system for turning a group of mutually distrustful subjects into a network that could act as a trusted source of public randomness in a verifiable way,” says Yolan Romailler, Randamu’s chief cryptographer . and drand maintainer. “There were no good public, verifiable projects about randomness back then.”
After the presentation, some members of the group went to lunch in one of the university canteens.
“Nick Sullivan, at that time at Cloudflare, was super excited about this idea: we could launch the first public service to provide adequate publicly verifiable randomness for anyone to use for free, and it wouldn’t require too many resources,” Romailler says. “We all agreed that the Internet really needed a public randomness service, just like it has free NTP servers, to provide everyone with accurate time information. And just like that, Nick started the movement that led to at the launch of the Entropy League in 2019.”
Initially, the decentralized service had eight independent beacons distributed globally: “a consortium of universities, industry partners and other organizations working together to provide randomness that can be used by anyone,” Romailler says.
Sparkling rainbows in Austin. Source: Cloudflare
Each organization had its own sources of entropy. Cloudflare came up with the lava lamp project, but others have developed equally creative solutions. THE University of Chile, for example, added seismic measurements to the mix, while the Swiss Federal Institute of Technology used the local randomness generator found on every computer at /dev/urandom, meaning it relied on things like keyboard presses , mouse clicks, and network traffic to generate randomness. Kudelski Security, the company Romailler worked for at the time, used a cryptographic random number generator (CRNG) based on the ChaCha20 stream cipher.
This project has since grown and today around 20 organizations are involved. “All of them run a seedy node out of good will, for free, convinced that the Internet needs a source of public randomness as a public good,” Romailler says.
The League operates two mainnet networks with approximately 23 nodes spread across the world, all collaborating. Romailler adds that the project is highly secure: it would require 12 malicious nodes to unintentionally crash it or malfunction.
“Interestingly, the pair-based encryption we rely on guarantees us that a minimal number of malicious actors will still not be able to influence future outcomes, but only predict them,” he says. “We can’t really talk about League entropy, but we can say that it provides 128 bits of security, which means you would need about 2128 cyber operations to break it.”
With each passing year the project gets bigger and better. In 2023, the League added time block encryptionanother free-to-use tool that allows users to encrypt a message that can only be read at a certain point in the future.
The League of Entropy currently serves more than 1.5 billion requests per month and supports a wide range of projects that rely on randomness. According to Romailler, the service is used by Filecoin, several Web3 games and a non-governmental organization (NGO) in Sierra Leone which must select the recipients of universal basic income.
It’s things like this that make Romailler and his colleagues feel that their work is important and that the project should progress further, perhaps incorporating more peculiar sources of entropy, such as Cloudfare’s lava lamps.
“We believe the League should ideally be made up of 50 to 100 organizations that are well known and have good reputations trying to improve the future of the Internet,” he says. “This type of scale would allow us to find a good balance between the performance and reliability of the League.”