Why build a TRNG to ensure your privacy?

Your privacy and free speech

Zener diode circuit We all cherish the ability to talk to one another in private. It’s a major component of civilised democracy. Many people have dedicated themselves to ensuring we can say what we want to, to whom ever we want without somebody listening monitoring us. We do this via cryptography, which consumes random numbers at a great rate. And the quality (randomness) of those numbers is paramount in guaranteeing the robustness of the cryptographic scheme we use. Whether it’s an AES block cipher or the simple one time pad, highest quality random numbers are necessary to generate the secret key material. Otherwise the encryption might be broken. The trouble is that it’s impossible (or at least very very difficult) for a deterministic device like a computer to create true randomness.

Of course we all have access to pseudo random numbers because of our computers. Most computers have either a /dev/urandom stream or use of the CryptGenRandom API. But those are not truly random. They come from algorithms, and no matter the complexity or ingenuity, the output of software will always be deterministic and therefore ultimately predicable. This may be suitable for some people, some of the time. Maximum security, randomness aficionados and tin foil hat wearing types require truly random numbers. And if your interests or needs revolve around one time pads, by definition there is no alternative but a TRNG. So the only choice is to buy a commercial device of which there are many. They range from entry level USB flash drive packaged ones, all the way to top of the range TRNGs built around lasers. HotBits and random.org are out.

Checking your random numbers