When you walk into the San Francisco office of the cloud network and security firm Cloudflare, you’re greeted by a receptionist–and a giant wall of 100 lava lamps. It isn’t just a throwback to the 1960s. The lava lamps act as a random number generator, helping to encrypt the requests that go through Cloudflare, which make up 10% of all internet requests.
Creating randomness is an essential part of encryption because it lets you create something that an attacker won’t be able replicate. But computers themselves are actually very bad at coming up with random numbers–and that’s by design. “Computers from the beginning have been designed to very reliable, very predictable,” says Cloudflare’s CEO Matthew Prince. “When you turn them on, they always do exactly the same thing and what they’re told to do.”
So while generating randomness isn’t typically a good thing for computers–you wouldn’t want your computer to do something unexpected every time you turn it on–the patterns they rely on make the devices vulnerable to hackers. That’s where random number generators come in. To truly create random numbers, a computer has to rely on phenomena occurring outside the device itself. That could be the movement of the device in space using data from a smartphone’s accelerometer, or it could be derived from mouse movement, or the timing of a user pressing keys on a keyboard.