Skip to content

Latest commit

 

History

History
135 lines (110 loc) · 12.5 KB

README.md

File metadata and controls

135 lines (110 loc) · 12.5 KB

Awesome Homomorphic Encryption Awesome

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.
  • fhEVM - Solidity library that enables confidential smart contracts on the Ethereum VM using FHE.
  • 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 - C++ FHE library implementing all major schemes along with bootstrapping and scheme switching.
  • OpenFHE-Python - Python wrapper for OpenFHE.
  • OpenFHE-Rust - Rust wrapper for OpenFHE.
  • PALISADE - lattice encryption library (superseded by OpenFHE).
  • petlib - Python library that implements a number of Privacy Enhancing Technologies.
  • PhantomFHE - A CUDA-Accelerated Fully Homomorphic Encryption Library.
  • 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 (superseded by HEIR).
  • HEIR - Google's MLIR-based toolchain for FHE compilers.
  • IBM HElayers - IBM's FHE SDK for practical and efficient execution of encrypted workloads.
  • 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.
  • OpenFHE demo applications - Several demo applications that demonstrate some of the capabilities of OpenFHE
    • boolean-circuit-evaluator - Demonstration application to read in boolean circuits using multiple formats and execute them in encrypted form based on binfhe module for encrypted boolean logic.
    • genomic-examples - Prototypes for secure genome-wide association studies using homomorphic encryption.
    • logreg-training-examples - Logistic Regression Training Examples.
  • 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.
  • Zama's Hugging Face spaces - Demo apps showing the power of FHE for real-world use cases.

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

Contribute

Contributions welcome! Read the contribution guidelines first.

Like this work?

✨ Star this project on GitHub GitHub Repo stars

🚀 Contribute further awesome HE projects

💸 Spare me some coffee tea 🍵 via Paypal

License

CC0

To the extent possible under law, Jonathan Schneider has waived all copyright and related or neighboring rights to this work.