Skip to content
master
Switch branches/tags
Code

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.

  • concrete - Rust FHE library that implements Zama's variant of TFHE.
  • 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.
  • 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.
  • PALISADE - lattice encryption library.
  • 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 📄.
  • 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.

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.
  • E3 - Encrypt-Everything-Everywhere framework for compiling C++ programs with encrypted operands.
  • Google's FHE Repository - Libraries and tools to perform FHE operations on an encrypted data set.
  • IBM FHE toolkit - Including FHE ML inference with a Neural Network and a Privacy-Preserving key-value search.
  • 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.

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.
  • 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.
  • 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.