Explaining Fully Homomorphic Encryption to myĀ Mom

tl;dr

  • Traditional encryption* = Baking bread by reading & following the recipe
  • Homomorphic encryption* = Baking bread without ever seeing the recipe

Traditional Encryption

  • Mom writes her secret bread recipe
  • She locks it (encrypts it)
  • She sends it to me (no one can steal it along the way)
  • I unlock it (decrypt) and read it
  • I follow the instructions and bake bread
  • I can share the unencrypted recipe with others Note that both my mom and I have a version of the key. We can both lock or unlock the recipe. Afterwards, I could theoretically share the recipe with my friends who could bake bread themselves; though whether I should is another story šŸ™ƒ.*

Traditional Encryption Flow for a Secret BreadĀ Recipe

Homomorphic Encryption

  • Mom writes her secret bread recipe
  • She locks it (encrypts it)
  • She sends it to me (no one can steal it along the way)
  • I do not unlock it
  • I magically follow the instructions and bake bread
  • I can share the encrypted recipe with others Note that while my mom has a key she used to lock the recipe, I have a ā€œmagic keyā€* that lets me follow the instructions without actually knowing what’s written inside. If I were to share the recipe with others, they’d need a version of the *ā€œmagic keyā€ as well.

Homomorphic Encryption Flow for a Secret BreadĀ Recipe

Reality Check

Of course, there’s no literal ā€œmagic key.ā€ Instead, it’s a mountain of math and cryptography. I don’t fully understand the details, but I do know that it’s slow and expensive.

Right now, homomorphic encryption works for small, simple online tasks. It’ll be a while before it’s fast and efficient enough to protect all of our online data.

And just for the record: I don’t actually bake bread. Here’s what usually happens instead…