Required Knowledge

  • Encryption - the process of scrambling data so only someone with the right key can read it. Used every time you visit a website with HTTPS.
  • Encryption key - a unique string of random numbers used to lock and unlock encrypted data. The harder it is to guess, the more secure it is.
  • Randomness (entropy) - in cryptography, randomness means truly unpredictable data. If an attacker can predict your key, your encryption is broken.
  • PRNG / CSPRNG - a Pseudorandom Number Generator produces numbers that look random but are generated by a formula. A Cryptographically Secure PRNG is a stricter version designed to be impossible to reverse-engineer.
  • Cryptographic seed - the initial piece of random data fed into a CSPRNG to kick off key generation. The seed must be truly unpredictable for the keys to be secure.

My Key Takeaways

  • Computers can't generate true randomness on their own - real unpredictability has to be sourced from the physical world
  • Refreshing the source of randomness regularly means that even if something is compromised, the damage stays limited
  • Never rely on a single source for something this critical - if the lava lamps go offline, other sources need to immediately cover
  • Any sufficiently chaotic physical process - lava lamps, pendulums, radioactive decay - can be turned into cryptographic randomness when captured digitally
  • The same logic behind layered security applies to randomness - no single source should ever be trusted on its own