Generating Random Numbers for Cryptography with Lava Lamps? Yes, this is a serious article.
Cryptography often requires random numbers. From seed values to cryptographic key material to data obfuscation values to actual keys, random numbers are incredibly important.
If there’s one thing that computers really suck at, it is generating random numbers. Computers are designed to carry out predictable behavior. We don’t want random things happening with our spreadsheets, with our data storage, with the keys that we press on the keyboard. So getting a computer not designed to generate a random number to actually generate a true random number is a challenge.
Sure there have been attempts. These have included methods as basic as taking the millisecond value of the current timestamp or the value of a CPU register or memory location, or even counting the number of files on the local hard drive at any given moment and dividing by pi. But these are poor attempts and do not generate truly random numbers. At best they are predictable.
There are also mathematical algorithms… but they’re dry and boring.
My favorite random number generator is also the most entertaining. It digitizes the current state of a set of Lava Lamps to generate a value. Aptly named Lavarand, it works on the basis that the state of several Lava Lamps at any moment in the future is not predictable and that the past state cannot be recreated in the future. Lavarand was originally created by Silicon Graphics and now makes its home (renamed as Lavarnd) at Cisco.
Be well and be safe!