A Guide to Fully Homomorphic Encryption
I've spent one year at 0xPARC building a performant, production-grade fully homomorphic encryption (FHE) library from the ground up. As a way to wrap up my time at 0xPARC and pass on what I've learned to the next generation of FHE builders, I made this guide. It's written with a variety of archetypes in mind, from founders who want to build with our library and engineers who want a deeper understanding of the underlying mathematics, to interns, researchers, and cryptographers who will work on the system itself — or, more broadly, anyone curious about what 0xPARC does.
Depending on what you're here for, different parts will be more useful:
- If you want to know what 0xPARC is about or what FHE is at a high level, read Part 1.
- If you want to use our system to build something, read Part 2.
- If you want to know every last detail of how CKKS works at a technical level, read Part 3.
- If you like compilers or data layout, read Part 4.
- If you're a security engineer wondering whether our system is secure, read Part 5.
- If you want to know how 0xPARC is thinking about FHE, read Part 6.
There are several FHE schemes in use today; the one we built is CKKS, introduced by Cheon, Kim, Kim, and Song in 2016. Everything in this guide is written with CKKS specifically in mind.
Contents
Please email hello@holdenmui.com for comments and/or corrections!