Awesome Homomorphic Encryption
A curated list of amazing Homomorphic Encryption libraries, software and resources.
Contents
Libraries
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.
- 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.
- 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 - Rust implementation of the TFHE scheme for boolean and integers FHE arithmetics by Zama.
Toolkits
- ALCHEMY - Haskell-based DSLs and interpreters/compilers, build on top of the lattice crypto library Lol.
- AWS HE toolkit - Simplifies the process of designing circuits for the CKKS scheme.
- Cingulata - Compiler toolchain and RTE for running C++ programs over encrypted data.
- Concrete - TFHE compiler for converting Python programs into FHE equivalents.
- Concrete-ML - Python-based toolkit for data scientists w/o prior FHE knowledge (using sklearn, pyTorch, XGBoost models).
- E3 - Encrypt-Everything-Everywhere framework for compiling C++ programs with encrypted operands.
- EVA - A compiler and optimizer for the CKKS scheme (targeting Microsoft SEAL).
- Google's FHE Repository - A compiler that converts a subset of C++ programs into FHE circuits implemented in various backend libraries.
- IBM FHE toolkit - Including FHE ML inference with a Neural Network and a Privacy-Preserving key-value search.
- fhe-toolkit-android - IBM FHE toolkit for Android
- fhe-toolkit-ios - IBM FHE toolkit for iOS
- fhe-toolkit-linux - IBM FHE toolkit for Linux (Docker based Centos, Fedora, Ubuntu & Alpine editions)
- fhe-toolkit-macos - IBM FHE toolkit for macOS
- Marble - C++ framework that translates between nearly plaintext-style user programs and FHE computations.
- SHEEP - HE evaluation platform with a set of native benchmarks and a library agnostic language.
- T2 - A cross compiler and standardized benchmarks for FHE computation that targets lattigo, HElib, PALISADE, Microsoft SEAL, and tfhe.
Applications
- crypto-geofence - Geo-fencing demo application based on Paillier scheme.
- lattigo-polls - Web-application for scheduling meetings using lattigo.
- Morfix.io - Web-based UI to play around with the Microsoft SEAL library.
- nGraph-HE - Deep Learning (DL) with HE through Intelโs DL graph compiler nGraph based on SEAL.
- OpenMined - Decentralized data ownership & intelligence based on HE and deep / federated learning.
- KotlinSyft - Kotlin library for the Android part of the OpenMined's open-source ecosystem.
- PySyft - Python library for the server/IoT part of the OpenMined's open-source ecosystem.
- SwiftSyft - Swift library for the iOS part of the OpenMined's open-source ecosystem.
- syft.js - JavaScript library for the web part of the OpenMined's open-source ecosystem.
- Rosetta - A privacy-preserving framework based on TensorFlow.
- tf-encrypted - Bridge between TensorFlow and the Microsoft SEAL library.
Databases
- CryptDB - Protecting confidentiality with encrypted query processing.
- encrypted-mongodb - Wrapper on MongoDB's Python driver that enables to query encrypted data.
- Prisma/DB - Security layer for relational database systems.
- TimeCrypt - Encrypted time-series database using homomorphic encryption-based access control.
- ZeroDB - E2E encrypted database using proxy re-encryption.
Resources
- Barak, Boaz. Chapter about FHE in Barak's introductory book to Cryptography, used for Harvard CS 127.
- Barthelemy, Lucas. Brief survey of Fully HE. 2016.
- Chen, Zhigang. A continuously updated list of FHE papers.
- FHE.org. A community of researchers and developers interested in advancing homomorphic encryption.
- Gentry, Craig. A fully homomorphic encryption scheme. Stanford University, 2009.
- HomomorphicEncryption.org. An open industry, government & academic consortium working on standardization of FHE.
- KU Leuven. An introduction to homomorphic encryption.
- Micciancio, Daniele. Links to papers and implementations of Lattice Cryptography schemes.
- Microsoft Research. Videos from SEAL/CKKS talks at Microsoft's Private AI Bootcamp.
- OpenFHE. Webinars about the foundations of applied FHE, the latest advances in the OpenFHE project and applications of FHE.
- Vaikuntanathan, Vinoid. A list of references about FHE, covering top papers in the field.
- Zhigang Chen. A list of English and Chinese FHE and Machine Learning references.
Related awesome lists
- awesome-cryptography
- awesome-crypto-papers
- awesome-mpc - Multi-Party Computation.
Contribute
Contributions welcome! Read the contribution guidelines first.
Like this work?
coffee tea
License
To the extent possible under law, Jonathan Schneider has waived all copyright and related or neighboring rights to this work.