Welcome to a comprehensive collection of academic papers and resources for learning Zero-Knowledge Proofs (ZK), Cryptography, Fully Homomorphic Encryption (FHE), Multi-Party Computation (MPC), and Post-Quantum Cryptography.
This repository contains carefully organized research papers, textbooks, and foundational documents that will take you from mathematical foundations to cutting-edge cryptographic protocols. Whether you're a student, researcher, or developer, this library provides a structured path to mastering modern cryptography.
- Students wanting to learn cryptography from the ground up
- Researchers looking for comprehensive reference materials
- Developers building privacy-preserving systems
- Anyone curious about zero-knowledge proofs, secure computation, or post-quantum cryptography
If you're new to cryptography:
- Start with 01_math_foundations - Number theory and algebra basics (2-4 weeks)
- Move to 02_crypto_primitives - Elliptic curves, hashes, signatures (4-6 weeks)
- Then dive into 03_zero_knowledge - The main destination! (8-16 weeks)
Choose your path based on what you want to build:
Path 1: Zero-Knowledge Proofs (Privacy & Scalability)
01_math_foundations → 02_crypto_primitives → 03_zero_knowledge
→ 06_applications_credentials_and_privacy (see ZK in action)
Path 2: Secure Multi-Party Computation
01_math_foundations → 02_crypto_primitives → 04_mpc
Path 3: Fully Homomorphic Encryption
01_math_foundations → 05_fhe_and_lattices
Path 4: Post-Quantum Cryptography
01_math_foundations → 05_fhe_and_lattices
→ 07_advance_topics_and_post_quantum
Priority: ⭐⭐⭐ START HERE
The mathematical foundation you absolutely need. Contains:
- number theory/ - Primes, modular arithmetic, discrete logarithm
- algebra/ - Groups, rings, fields
- computational_algebra/ - Polynomial arithmetic, finite fields
- finite_fields/ - Essential for elliptic curves
Why essential: You cannot understand cryptography without this foundation.
Time estimate: 2-4 weeks
Priority: ⭐⭐⭐ ESSENTIAL
Core cryptographic building blocks:
- elliptic curve cryptography/ - Modern crypto foundation (28 papers)
- pairing-based cryptography/ - Critical for zkSNARKs (9 papers)
- hashes/ - Collision resistance, commitments (9 papers)
- signature schemes/ - Digital signatures, Schnorr (12 papers)
- zk_friendly/ - Primitives optimized for zero-knowledge
- message_authentication/ - MACs and authenticated encryption
- stream_ciphers/ - Symmetric encryption
Why essential: Modern ZK systems (SNARKs, STARKs) heavily use elliptic curves and pairings.
Time estimate: 4-6 weeks
Priority: ⭐⭐⭐ THIS IS YOUR DESTINATION
The most important folder in this library! Contains 40+ foundational and modern ZK papers:
Foundational Theory:
- zero knowledge/ - Classical ZK papers (GMW, Schnorr, Fiat-Shamir)
- NIZK/ - Non-interactive zero-knowledge proofs
- commitment_schemes/ - Pedersen, homomorphic, polynomial commitments, structure-preserving signatures
- groth_sahai_proofs/ - Foundation for all pairing-based SNARKs
SNARK Systems (Classical & Modern):
- snark_foundations/ - Core theory (Pinocchio, QSP, Groth16)
- plonky_stack/ - Modern variants (PLONK, HyperPlonk, Circle STARKs, Spartan)
- universal_updatable/ - Universal setups (PLONK, Marlin)
- recursion_and_folding/ - Recursive SNARKs (Nova, Halo 2)
Transparent & Advanced Systems:
- starks_polynomial_iops/ - STARKs and polynomial IOPs (FRI, Aurora)
- bulletproofs_ipa/ - Bulletproofs and inner product arguments
Learning Resources:
- textbooks/ - Comprehensive learning materials (Proofs, Arguments, and ZK)
Key papers:
- "Zero-Knowledge Proofs (2016)" - Miller (START HERE!)
- "Proofs that yield nothing but their validity" - Goldreich, Micali, Wigderson
- Groth-Sahai Proofs - Foundation for modern SNARKs
- PLONK - Universal trusted setup SNARKs
- Nova - Recursive SNARKs with folding
- STARKs papers - Transparent alternatives
- Bulletproofs - No trusted setup range proofs
- Zerocash - Real-world zkSNARK application
Why essential: This is where cryptography gets magical - prove you know something without revealing it.
Time estimate: 8-16 weeks
Priority: ⭐⭐⭐ ESSENTIAL (for MPC focus)
Multi-Party Computation - compute together while keeping data private:
- secret sharing/ - Shamir, verifiable secret sharing
- oblivious transfer/ - Foundation of secure two-party computation (10+ papers)
Key concepts:
- Split secrets among multiple parties
- Compute without revealing inputs
- Threshold cryptography
- Private set intersection
Applications: Secure auctions, private analytics, threshold wallets
Time estimate: 4-6 weeks
Priority: ⭐⭐⭐ ESSENTIAL (for FHE and Post-Quantum)
Compute on encrypted data + quantum-resistant cryptography:
- fhe_core/ - Gentry's breakthrough FHE thesis
- LWE_RLWE_foundations/ - Learning With Errors problem
- LWE_security_and_params/ - Parameter selection
- NTRU_family/ - Fast lattice encryption
- KEM_schemes/ - CRYSTALS-Kyber (NIST winner!)
- signatures/ - Post-quantum signatures
Why essential:
- FHE enables private cloud computing
- Lattices are quantum-resistant
- Kyber will replace RSA/ECC in the quantum era
Time estimate: 6-10 weeks
Priority: ⭐⭐ IMPORTANT
See cryptography in action:
- anonymous credentials/ - Privacy-preserving identity (20 papers)
- applications privacy_preserving_payments/ - Cryptocurrencies, Zerocash, Monero
- blockchain_infrastructure/ - ZK rollups, scaling solutions
- oram_and_private_memory/ - Oblivious RAM protocols
Great for: Understanding real-world applications after learning theory
Time estimate: 3-6 weeks
Priority: ⭐⭐ IMPORTANT (Advanced learners)
Specialized and advanced topics:
- post_quantum_foundations_for_zk/ - Future-proof zero-knowledge
- identity_based_and_dual_systems/ - Advanced encryption
- private information retrieval/ - Query databases privately
- formal verification/ - Proving correctness
- proof_models_and_transforms/ - Security frameworks
- pairing_assumption_short_signatures/ - BLS and more
- implementation_frameworks/ - Practical tools
When to read: After mastering core topics
Time estimate: Variable, based on interests
Priority: ⭐ ADVANCED/SPECIALIZED
Practical security considerations:
- side channels/ - Implementation security (26 papers)
- isogeny-based cryptography/ - Alternative post-quantum approach
- quantum algorithms & cryptanalysis/ - Understanding quantum threats
- steganography/ - Hiding information
- private_information_retrieval/ - Privacy-preserving queries
When to read: When implementing real systems or interested in specific topics
Priority: ⭐⭐ IMPORTANT (for cryptocurrency applications)
Special collection focused on Zcash and privacy-preserving cryptocurrencies.
Real-world implementation of zkSNARKs at scale.
Months 1-2: Mathematical foundations
- Number theory, algebra, finite fields
- Work through exercises and implementations
Months 3-4: Cryptographic primitives
- Elliptic curves, pairings
- Hash functions, commitments
Months 5-8: Zero-Knowledge deep dive
- Classical ZK (Schnorr, GMW)
- Modern SNARKs (Groth16, PLONK)
- Practical implementations
Months 9-12: Specialization
- Choose: MPC, FHE, or Advanced ZK
- Deep dive into chosen area
- Build practical projects
Months 13-18: Applications & Research
- Real-world systems
- Recent papers (2020+)
- Original research
Months 1-2: Foundations (condensed)
- Essential math only
- Focus on key concepts
Months 3-5: Zero-Knowledge focus
- Skip some advanced theory
- Focus on practical SNARKs
- Hands-on implementations
Months 6-9: Specialization + Applications
- Choose one area (MPC/FHE/Advanced ZK)
- Build real projects
- Contribute to open source
- "An Introduction to Mathematical Cryptography" - Hoffstein, Pipher, Silverman
- "Handbook of Applied Cryptography" - Menezes, van Oorschot, Vanstone
- "Cryptography Made Simple" - Smart
- "Zero-Knowledge Proofs (2016)" - Miller (START HERE!)
- "Proofs that yield nothing but their validity" - Goldreich, Micali, Wigderson
- "Efficient Identification and Signatures for Smart Cards" - Schnorr
- "Succinct Non-Interactive ZK for von Neumann Architecture" - Ben-Sasson et al.
- "Efficient Non-interactive Proof Systems for Bilinear Groups" - Groth, Sahai
- "On the Size of Pairing-Based Non-Interactive Arguments" - Groth (Groth16)
- "Zerocash: Decentralized Anonymous Payments from Bitcoin"
- "Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing" - Pedersen
- "Efficient Oblivious Transfer Protocols" - Naor, Pinkas
- "The Simplest Protocol for Oblivious Transfer" - Chou, Orlandi
- "A Fully Homomorphic Encryption Scheme [Thesis]" - Gentry
- "Public-Key Cryptosystems from the Worst-Case Shortest Vector Problem" - Peikert
- "On Ideal Lattices and Learning with Errors Over Rings" - Lyubashevsky, Peikert, Regev
- "CRYSTALS-Kyber: a CCA-Secure Module-Lattice-Based KEM"
- Start with foundations - Don't skip the math!
- Implement concepts - Code solidifies understanding
- Work through examples - Do the exercises
- Join communities - ZKProof.org, Discord servers, forums
- Be patient - This material is challenging
- Focus on understanding - Not just memorizing
- Don't rush - Quality over quantity
- Don't skip prerequisites - You'll be lost
- Don't just read - You must implement
- Don't work in isolation - Ask questions
- Don't give up - It gets clearer with time
Zero-Knowledge:
- Circom + SnarkJS - Write zkSNARKs in circuits (beginner-friendly)
- ZoKrates - ZK toolbox for Ethereum
- gnark - Go framework for ZK proofs
Multi-Party Computation:
- MP-SPDZ - Multi-protocol MPC framework
- libOTe - Oblivious transfer library
Fully Homomorphic Encryption:
- Microsoft SEAL - Excellent tutorials
- PALISADE - Comprehensive FHE library
- HElib - IBM's FHE library
General Cryptography:
- SageMath - Mathematical cryptography
- liboqs - Post-quantum cryptography (Kyber, etc.)
Beginner:
- Implement Schnorr identification protocol
- Code Shamir secret sharing
- Build simple Pedersen commitment scheme
Intermediate: 4. Create ZK Sudoku verifier with Circom 5. Build range proof system 6. Implement Yao's millionaires' problem
Advanced: 7. Design anonymous voting system 8. Create ZK authentication system 9. Build threshold signature wallet
This library now includes comprehensive coverage of modern ZK systems! Find these in 03_zero_knowledge/:
Modern SNARK Systems:
- PLONK - Universal trusted setup (in
universal_updatable/) - HyperPlonk - PLONK optimizations with linear-time prover (in
plonky_stack/) - Marlin - Universal and updatable setup (in
universal_updatable/) - Spartan - Efficient arguments without trusted setup (in
plonky_stack/)
Transparent & Post-Quantum Alternatives:
- STARKs - Transparent, no trusted setup, post-quantum (in
starks_polynomial_iops/) - FRI Protocol - Fast Reed-Solomon IOPs (in
starks_polynomial_iops/) - Aurora - Transparent arguments for R1CS (in
starks_polynomial_iops/) - Bulletproofs - No trusted setup, efficient range proofs (in
bulletproofs_ipa/)
Recursive & Folding Approaches:
- Nova - Recursive SNARKs via folding (in
recursion_and_folding/) - Halo 2 - Recursive proofs without trusted setup (in
recursion_and_folding/) - Circle STARKs - Efficient polynomial commitments (in
plonky_stack/)
Modern FHE:
- CKKS - Approximate arithmetic for ML
- TFHE - Fast bootstrapping
- BGV/BFV - Second-generation FHE
Modern MPC:
- SPDZ - Malicious security with MACs
- ABY - Hybrid MPC framework
- SCALE-MAMBA - Production MPC
Post-Quantum Standards:
- Kyber - NIST PQC KEM winner (in this library!)
- Dilithium - NIST PQC signature winner
- SPHINCS+ - Hash-based signatures
- ZKP MOOC - Berkeley/Stanford ZK course
- 0xPARC ZK Learning Group - Community-driven learning
- Dan Boneh's Cryptography - Coursera
- MIT 6.875 Cryptography - Advanced topics
- ZKProof.org - ZK research community
- Ethereum Research - ZK scaling discussions
- IACR ePrint - Latest cryptography papers
- Real World Crypto - Practitioner-focused conference
- "Proofs, Arguments, and Zero-Knowledge" - Thaler (2022)
- "Introduction to Modern Cryptography" - Katz & Lindell
- "A Pragmatic Introduction to Secure Multi-Party Computation" - Evans et al.
- Vitalik Buterin's ZK posts - Accessible explanations
- ZK Whiteboard Sessions - YouTube series
- StarkWare blog - STARK deep dives
- Zcash blog - zkSNARK applications
Q: I'm a complete beginner. Where do I start? A: Start with 01_math_foundations. Read the number theory and algebra papers. Don't skip this!
Q: How long does it take to learn zero-knowledge proofs? A: 3-6 months for basics if you study consistently. 6-12 months to be proficient. Years to master. Be patient!
Q: Do I need a PhD in mathematics? A: No! But you need strong foundations (folders 01-02) and persistence. Work through the material step by step.
Q: Can I just use libraries without understanding the theory? A: You can use libraries, but you won't understand security implications or be able to design systems. Theory is essential.
Q: What's the difference between zkSNARKs and zkSTARKs? A: SNARKs use pairings (need trusted setup, smaller proofs). STARKs use hashes (transparent, larger proofs, post-quantum).
Q: Is the trusted setup in SNARKs a problem? A: Depends on your application. Ceremonies (like Zcash) can make it practical. Or use transparent systems (STARKs, Bulletproofs).
Q: Should I learn ZK or MPC first? A: Start with ZK - it's more widely applicable currently. You can learn MPC afterward; they complement each other.
Q: Are lattices really quantum-resistant? A: Yes! Quantum computers provide only polynomial speedup (Grover), not exponential (Shor). Lattice problems remain hard.
Q: Is FHE practical yet? A: Getting there! Still slower than plaintext computation, but schemes like CKKS are used in production for privacy-preserving ML.
Found essential papers missing? Have suggestions for organization?
Please:
- Check if the paper fits existing folder structure
- Verify it's academically rigorous (peer-reviewed preferred)
- Consider the learning path - where does it fit?
- Submit suggestions or pull requests
Last major reorganization: 2025-11-04
The library is organized into 8 main categories with detailed README files in each folder providing:
- Learning paths
- Time estimates
- Paper priorities
- Key concepts
- Hands-on exercises
- Tool recommendations
- Follow the recommended learning paths above
- Read each folder's README for detailed guidance
- Implement concepts as you learn
- Join online communities for support
- Build projects to solidify understanding
This library can supplement courses in:
- Applied Cryptography
- Zero-Knowledge Proofs
- Secure Multi-Party Computation
- Post-Quantum Cryptography
- Privacy-Preserving Technologies
- Use as comprehensive reference
- Explore subfolder deep dives
- Build on foundational papers
- Connect to modern developments
- Understand theory before implementing
- Use as reference while coding
- Verify security assumptions
- Design secure systems
Understanding ≠ Implementing Production Systems
Reading these papers gives you cryptographic knowledge, but:
- Production systems require careful implementation
- Side-channel attacks are real (see folder 08)
- Parameter selection is critical
- Peer review is essential
- Use audited libraries when possible
If you're building production systems: Consult cryptography experts and get security audits.
This library aggregates academic papers and research documents. All papers are copyright of their respective authors and publishers.
For academic use: Please cite original papers.
For commercial use: Verify licensing of specific papers and protocols.
| Topic | Folder | Priority | Time | Prerequisites |
|---|---|---|---|---|
| Number Theory, Algebra | 01_math_foundations |
⭐⭐⭐ | 2-4 weeks | None |
| Elliptic Curves, Pairings | 02_crypto_primitives |
⭐⭐⭐ | 4-6 weeks | Folder 01 |
| Zero-Knowledge Proofs | 03_zero_knowledge |
⭐⭐⭐ | 8-16 weeks | Folders 01, 02 |
| Multi-Party Computation | 04_mpc |
⭐⭐⭐ | 4-6 weeks | Folders 01, 02 |
| FHE & Lattices | 05_fhe_and_lattices |
⭐⭐⭐ | 6-10 weeks | Folders 01, 02 |
| Applications & Privacy | 06_applications_credentials_and_privacy |
⭐⭐ | 3-6 weeks | Folder 03 |
| Advanced Topics | 07_advance_topics_and_post_quantum |
⭐⭐ | Variable | Folders 01-05 |
| Implementation Security | 08_real_world_security_and_privacy_addons |
⭐ | Variable | Implementing |
Welcome to the fascinating world of cryptography!
This journey from mathematical foundations to zero-knowledge proofs, secure computation, and post-quantum cryptography is challenging but incredibly rewarding.
Remember:
- 🎯 Quality over quantity - understand deeply, not superficially
- 🔨 Implement as you learn - code solidifies understanding
- 🤝 Join communities - learn from others
- 💪 Be persistent - breakthroughs come with time
- 🎓 Enjoy the journey - this is beautiful mathematics!
Start with folder 01, follow the learning paths, and take your time. You've got this!
This is where cryptography gets magical. ✨