I’ve collected some resources if you’re interested in learning more about lattice-based cryptography, fully homomorphic encryption (FHE), or zero-knowledge proofs (ZKP). Wikipedia is a great place to start before diving into anything listed below.
- An Introduction to Mathematical Cryptography. See the “Lattices and Cryptography” chapter. This was the first resource I used in undergrad to learn about lattice-based cryptography.
- A Decade of Lattice Cryptography. A lot more advanced than the previous resource but thoroughly covers the major aspects of lattice-based cryptography.
- Simons Institute Lattices Program. Videos covering everything from the basics of lattices to current research being done today.
Fully Homomorphic Encryption
Fully homomorphic encryption can be viewed as an extension of public key encryption schemes. It allows for arbitrary computations over encrypted data in a “structure-preserving” way. All FHE schemes use lattice-based cryptography.
- A Brief Survey of Fully Homomorphic Encryption. A short post introducting what fully homomorphic encryption is and how it works. A good starting point if you don’t know anything about FHE.
- Computing Arbitrary Functions of Encrypted Data. A brief but very well-written paper from the Craig Gentry (the 1st person to successfully construct an FHE scheme). More technically involved than the above but provides good intuition for understanding how FHE works.
- Fundamentals of Fully Homomorphic Encryption. An accessible but longer introduction to FHE.
- Microsoft SEAL Examples. Allows you to see how FHE works in practice. Does not assume prior knowledge of cryptography. Probably the most useful resource if you’re an engineer.
Zero-knowledge proofs allow you to convince someone (called a “verifier”) of some fact without “revealing” any additional information (hence the term “zero-knowledge” because the verifier learned nothing after the interaction apart from being convinced that the fact was true).
- Zero Knowledge Proofs: An illustrated primer. Fantastic blog post explaining ZKPs. A good starting point.
- Cryptography: An Introduction. See the “Zero-Knowledge Proofs” chapter.
- Simons Institute Proofs, Consensus and Decentralizing Society Bootcamp. Specifically the videos from days 1 and 2.
- ZKProof Community Reference. A very long reference document explaining various technical aspects of ZKPs from ZKProof, an intiative to standardize ZKPs. This document is good to look at if you encounter a term you don’t know.