A curated list of awesome things related to learning fully homomorphic encryption (FHE).
Inspiration: Awesome Homomorphic Encryption: @jonaschn
- Awesome Fully Homomorphic Encryption
- Introduction to Homomorphic Encryption: Microsoft Research (YouTube)
- How would you explain homomorphic encryption? by Office of the Director of National Intelligence (YouTube)
- Introduction to FHE (Fully Homomorphic Encryption) - Pascal Paillier, FHE.org Meetup by Zama (YouTube)
- The (r)Evolution of FHE by Jeremy Bradley-Silverio Donato (Medium)
- Fully Homomorphic Encryption: Cryptography’s Holy Grail by Dr. David J. Wu
- An Intro to Fully Homomorphic Encryption for Engineers
- Applications of Fully Homomorphic Encryption W/ Zama by Blockchain Acceleration Foundation (YouTube)
- Privacy-Preserving Machine Learning with Fully Homomorphic Encryption by Google TechTalks (YouTube)
Libraries that can be used to implement applications using (Fully) Homomorphic Encryption.
- blyss - Rust FHE library specialized for private information retrieval. Includes bindings to JS & Python.
- Concrete: TFHE Compiler that converts python programs into FHE equivalents.
- Concrete ML: Privacy Preserving ML framework built on top of Concrete, with bindings to traditional ML frameworks.
- cuFHE - CUDA-accelerated Fully Homomorphic Encryption Library.
- cuHE - GPU-accelerated HE library for NVIDIA CUDA-Enabled GPUs.
- Cupcake - Facebook's Rust library for the (additive version of the) Fan-Vercauteren scheme.
- cuYASHE - Based on leveled fully HE scheme YASHE for GPGPUs.
- fhEVM: A confidential smart contracts protocol for the EVM using homomorphic encryption.
- FHEW - A Fully HE library based on FHEW: Bootstrapping Homomorphic Encryption in less than a second.
- FINAL - C++ FHE library based on NTRU and LWE scheme.
- FV-NFLlib - A header-only library implementing the Fan-Vercauteren scheme.
- HEAAN - Scheme with native support for fixed point approximate arithmetic.
- HEAAN-Python - Python binding for the HEANN library.
- HElib - BGV scheme with bootstrapping and the Approximate Number CKKS scheme.
- HEMat - C++ implementation of matrix computation (addition, multiplication, and transposition) using HEANN.
- krypto - C++ implementation of multivariate quadratic FHE.
- Λ ○ λ - "Lol" Haskell library for ring-based lattice cryptography that supports FHE.
- lattigo - Go library for lattice-based crypto that implements various schemes.
- libScarab - C library implementing a FHE scheme using large integers.
- libshe - Symmetric somewhat HE library based on DGHV scheme.
- Microsoft SEAL - C++ FHE library implementing BFV and CKKS schemes.
- NFLlib - NTT-based Fast Lattice library specialized on power-of-two polynomials.
- node-seal - JavaScript/WebAssembly port of Microsoft SEAL.
- NuFHE - GPU-accelerated HE library, faster than cuFHE, that implements the tfhe algorithms.
- OpenFHE - FHE library with all features from PALISADE, merged with selected capabilities of HElib and HEAAN (all major FHE schemes).
- PALISADE - lattice encryption library (superseded by OpenFHE).
- petlib - Python library that implements a number of Privacy Enhancing Technologies.
- Pyfhel - A Python wrapper for SEAL, HElib, and PALISADE.
- python-paillier - Partially HE based on Paillier scheme.
- SEAL-python - Python binding for the Microsoft SEAL library.
- SparkFHE - Apache Spark with an add-on for FHE computations. See 📄.
- Sunscreen - Rust compiler for the BFV fully homomorphic encryption scheme.
- TenSEAL - Library for HE operations on tensors, built on Microsoft SEAL, with a Python API.
- tfhe - Faster fully HE: Bootstrapping in less than 0.1 seconds.
- TFHE-rs: A Pure Rust implementation of the TFHE Scheme for Boolean and Integer Arithmetics Over Encrypted Data.