[1]https://github.com/jonaschn/awesome-he
# Awesome Homomorphic Encryption [![Awesome]([2]https://awesome.re/badge.svg)](h
ttps://awesome.re)
> A curated list of amazing Homomorphic Encryption libraries, software and resou
rces.
## Contents
- [Libraries](#libraries)
- [Toolkits](#toolkits)
- [Applications](#applications)
- [Databases](#databases)
- [Resources](#resources)
## Libraries
Libraries that can be used to implement applications using (Fully) Homomorphic E
ncryption.
- [concrete]([3]https://github.com/zama-ai/concrete) - Rust FHE library that imp
lements Zama's variant of TFHE.
- [cuFHE]([4]https://github.com/vernamlab/cuFHE) - CUDA-accelerated Fully Homomo
rphic Encryption Library.
- [cuHE]([5]https://github.com/vernamlab/cuHE) - GPU-accelerated HE library for
NVIDIA CUDA-Enabled GPUs.
- [Cupcake]([6]https://github.com/facebookresearch/Cupcake) - Facebook's Rust li
brary for the (additive version of the) Fan-Vercauteren scheme.
- [cuYASHE]([7]https://github.com/cuyashe-library/cuyashe) - Based on leveled fu
lly HE scheme YASHE for GPGPUs.
- [FHEW]([8]https://github.com/lducas/FHEW) - A Fully HE library based on [_FHEW
: Bootstrapping Homomorphic Encryption in less than a second_]([9]https://eprint
.iacr.org/2014/816).
- [FV-NFLlib]([10]https://github.com/CryptoExperts/FV-NFLlib) - A header-only li
brary implementing the Fan-Vercauteren scheme.
- [HEAAN]([11]https://github.com/snucrypto/HEAAN) - Scheme with
native support for fixed point approximate arithmetic.
- [HEAAN-Python]([12]https://github.com/Huelse/HEAAN-Python) - Python binding fo
r the [HEANN](#HEAAN) library.
- [HElib]([13]https://github.com/HomEnc/HElib) - BGV scheme with
bootstrapping and the Approximate Number CKKS scheme.
- [HEMat]([14]https://github.com/K-miran/HEMat) - C++ implementation of matrix c
omputation (addition, multiplication, and transposition) using [HEANN](#HEAAN).
- [krypto]([15]https://github.com/kryptnostic/krypto) - C++ implementation of mu
ltivariate quadratic FHE.
- [Λ ○ λ]([16]https://github.com/cpeikert/Lol) - "Lol" Haskell library for ring-
based lattice cryptography that supports FHE.
- [lattigo]([17]https://github.com/ldsec/lattigo) - Go library
for lattice-based crypto that implements various schemes.
- [libScarab]([18]https://github.com/hcrypt-project/libScarab) - C library imple
menting a FHE scheme using large integers.
- [libshe]([19]https://github.com/bogdan-kulynych/libshe) - Symmetric somewhat H
E library based on DGHV scheme.
- [Microsoft SEAL]([20]https://github.com/microsoft/SEAL) - C++ F
HE library implementing BFV and CKKS schemes.
- [NFLlib]([21]https://github.com/quarkslab/NFLlib) - NTT-based Fast Lattice lib
rary specialized on power-of-two polynomials.
- [node-seal]([22]https://github.com/morfix-io/node-seal) - JavaScript/WebAssemb
ly port of [Microsoft SEAL](#SEAL).
- [NuFHE]([23]https://github.com/nucypher/nufhe) - GPU-accelerated HE library, f
aster than cuFHE, that implements the [tfhe](#tfhe) algorithms.
- [PALISADE]([24]https://palisade-crypto.org/software-library
) - lattice encryption library.
- [petlib]([25]https://github.com/gdanezis/petlib) - Python library that impleme
nts a number of Privacy Enhancing Technologies.
- [Pyfhel]([26]https://github.com/ibarrond/Pyfhel) - A Python wrapper for [SEAL]
(#SEAL), [HElib](#HElib), and [PALISADE](#PALISADE).
- [python-paillier]([27]https://github.com/data61/python-paillier) - Partially H
E based on Paillier scheme.
- [SEAL-python]([28]https://github.com/Huelse/SEAL-Python/) - Python binding for
the [Microsoft SEAL](#SEAL) library.
- [SparkFHE]([29]https://github.com/SpiRITlab/spark) - Apache Spark with an add-
on for FHE computations. See [:page_facing_up:]([30]https://homomorphicencryptio
n.org/wp-content/uploads/2019/08/poster_5.pdf).
- [TenSEAL]([31]https://github.com/OpenMined/TenSEAL) - Library for HE operation
s on tensors, built on [Microsoft SEAL](#SEAL), with a Python API.
- [tfhe]([32]https://github.com/tfhe/tfhe) - Faster fully HE: Boo
tstrapping in less than 0.1 seconds.
## Toolkits
- [ALCHEMY]([33]https://github.com/cpeikert/ALCHEMY) - Haskell-based DSLs and in
terpreters/compilers, build on top of the lattice crypto library Lol.
- [AWS HE toolkit]([34]https://github.com/awslabs/homomorphic-implementors-toolk
it) - Simplifies the process of designing circuits for the CKKS scheme.
- [Cingulata]([35]https://github.com/CEA-LIST/Cingulata) - Compiler toolchain an
d RTE for running C++ programs over encrypted data.
- [E3]([36]https://github.com/momalab/e3) - Encrypt-Everything-Everywhere framew
ork for compiling C++ programs with encrypted operands.
- [Google's FHE Repository]([37]https://github.com/google/fully-homomorphic-encr
yption) - Libraries and tools to perform FHE operations on an encrypted data set
.
- [IBM FHE toolkit]([38]https://fhe-website.mybluemix.net) - Including FHE ML in
ference with a Neural Network and a Privacy-Preserving key-value search.
- [fhe-toolkit-android]([39]https://github.com/IBM/fhe-toolkit-android)
- IBM FHE toolkit for Android
- [fhe-toolkit-ios]([40]https://github.com/IBM/fhe-toolkit-ios) - IBM FH
E toolkit for iOS
- [fhe-toolkit-linux]([41]https://github.com/IBM/fhe-toolkit-linux) - IB
M FHE toolkit for Linux (Docker based Centos, Fedora, Ubuntu & Alpine editions)
- [fhe-toolkit-macos]([42]https://github.com/IBM/fhe-toolkit-macos) - IB
M FHE toolkit for macOS
- [Marble]([43]https://github.com/MarbleHE/Marble) - C++ framework that translat
es between nearly plaintext-style user programs and FHE computations.
- [SHEEP]([44]https://github.com/alan-turing-institute/SHEEP) - HE evaluation pl
atform with a set of native benchmarks and a library agnostic language.
## Applications
- [crypto-geofence]([45]https://github.com/Georeactor/crypto-geofence) - Geo-fen
cing demo application based on Paillier scheme.
- [lattigo-polls]([46]https://github.com/ldsec/lattigo-polls-demo) - Web-applica
tion for scheduling meetings using [lattigo](#lattigo).
- [Morfix.io]([47]https://morfix.io/sandbox) - Web-based UI to play around with
the [Microsoft SEAL](#SEAL) library.
- [nGraph-HE]([48]https://github.com/IntelAI/he-transformer) - Deep Learning (DL
) with HE through Intel’s DL graph compiler nGraph based on [SEAL](#SEAL).
- [OpenMined]([49]https://github.com/OpenMined) - Decentralized data ownership &
intelligence based on HE and deep / federated learning.
- [KotlinSyft]([50]https://github.com/OpenMined/KotlinSyft) - Kotlin lib
rary for the Android part of the OpenMined's open-source ecosystem.
- [PySyft]([51]https://github.com/OpenMined/PySyft) - Python library for
the server/IoT part of the OpenMined's open-source ecosystem.
- [SwiftSyft]([52]https://github.com/OpenMined/SwiftSyft) - Swift librar
y for the iOS part of the OpenMined's open-source ecosystem.
- [syft.js]([53]https://github.com/OpenMined/syft.js) - JavaScript libra
ry for the web part of the OpenMined's open-source ecosystem.
- [Rosetta]([54]https://github.com/LatticeX-Foundation/Rosetta) - A privacy-pres
erving framework based on TensorFlow.
- [tf-encrypted]([55]https://github.com/tf-encrypted/tf-encrypted) - Bridge betw
een TensorFlow and the [Microsoft SEAL](#SEAL) library.
## Databases
- [CryptDB]([56]https://github.com/CryptDB/cryptdb) - Protecting confidentiality
with encrypted query processing.
- [encrypted-mongodb]([57]https://github.com/pdroalves/encrypted-mongodb) - Wrap
per on MongoDB's Python driver that enables to query encrypted data.
- [Prisma/DB]([58]https://github.com/PrismaDB/PrismaDB) - Security layer for rel
ational database systems.
- [TimeCrypt]([59]https://github.com/TimeCrypt/timecrypt) - Encrypted time-serie
s database using homomorphic encryption-based access control.
- [ZeroDB]([60]https://github.com/zerodb/zerodb) - E2E encrypted database using
proxy re-encryption.
## Resources
- [Barak, Boaz]([61]https://intensecrypto.org/public/lec_15_FHE.html). Chapter a
bout FHE in Barak's introductory book to Cryptography, used for Harvard CS 127.
- [Barthelemy, Lucas]([62]https://blog.quarkslab.com/a-brief-survey-of-fully-hom
omorphic-encryption-computing-on-encrypted-data.html). Brief survey of Fully HE.
2016.
- [Chen, Zhigang]([63]https://zhigang-chen.github.io/A%20List%20of%20FHE%20Paper
s.html). A continuously updated list of FHE papers.
- [Gentry, Craig]([64]https://crypto.stanford.edu/craig/craig-thesis.pdf). A ful
ly homomorphic encryption scheme. Stanford University, 2009.
- [HomomorphicEncryption.org]([65]https://homomorphicencryption.org). An open in
dustry, government & academic consortium working on standardization of FHE.
- [KU Leuven]([66]https://www.esat.kuleuven.be/cosic/tag/cosic-guide-to-crypto/)
. An introduction to homomorphic encryption.
- [Micciancio, Daniele]([67]http://cseweb.ucsd.edu/~daniele/LatticeLinks/FHE.htm
l). Links to papers and implementations of Lattice Cryptography schemes.
- [Microsoft Research]([68]https://www.youtube.com/playlist?list=PLD7HFcN7LXRef-
eTSGt_XOUJLZNoDINUn). Videos from SEAL/CKKS talks at Microsoft's Private AI Boot
camp.
- [Vaikuntanathan, Vinoid]([69]https://people.csail.mit.edu/vinodv/FHE/FHE-refs.
html). A list of references about FHE, covering top papers in the field.
- [Zhigang Chen]([70]https://zhigang-chen.github.io/FHE%20Resources.html). A lis
t of English and Chinese FHE and Machine Learning references.
## Related awesome lists
- [awesome-cryptography]([71]https://github.com/sobolevn/awesome-cryptography)
- [awesome-crypto-papers]([72]https://github.com/pFarb/awesome-crypto-papers)
- [awesome-mpc]([73]https://github.com/rdragos/awesome-mpc) - Multi-Party Comput
ation.
## Contribute
Contributions welcome! Read the [contribution guidelines](contributing.md) first
.
## Like this work?
✨ Star this project on GitHub [![GitHub Repo stars]([74]https://img.shields.io/g
ithub/stars/jonaschn/awesome-he?style=social)](https://github.com/jonaschn/aweso
me-he)
🚀 Contribute further [awesome HE]([75]https://github.com/jonaschn/awesome-he/edi
t/master/README.md) projects
💸 Spare me some ~~coffee~~ tea 🍵 via [Paypal]([76]https://www.paypal.me/Jonathan
SchneiderDE/3)
## License
[![CC0]([77]http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zer
o.svg)](http://creativecommons.org/publicdomain/zero/1.0)
To the extent possible under law, Jonathan Schneider has waived all copyright an
d
related or neighboring rights to this work.
References
1. https://github.com/jonaschn/awesome-he
2. https://awesome.re/badge.svg)](https://awesome.re
3. https://github.com/zama-ai/concrete
4. https://github.com/vernamlab/cuFHE
5. https://github.com/vernamlab/cuHE
6. https://github.com/facebookresearch/Cupcake
7. https://github.com/cuyashe-library/cuyashe
8. https://github.com/lducas/FHEW
9. https://eprint.iacr.org/2014/816
10. https://github.com/CryptoExperts/FV-NFLlib
11. https://github.com/snucrypto/HEAAN
12. https://github.com/Huelse/HEAAN-Python
13. https://github.com/HomEnc/HElib
14. https://github.com/K-miran/HEMat
15. https://github.com/kryptnostic/krypto
16. https://github.com/cpeikert/Lol
17. https://github.com/ldsec/lattigo
18. https://github.com/hcrypt-project/libScarab
19. https://github.com/bogdan-kulynych/libshe
20. https://github.com/microsoft/SEAL
21. https://github.com/quarkslab/NFLlib
22. https://github.com/morfix-io/node-seal
23. https://github.com/nucypher/nufhe
24. https://palisade-crypto.org/software-library
25. https://github.com/gdanezis/petlib
26. https://github.com/ibarrond/Pyfhel
27. https://github.com/data61/python-paillier
28. https://github.com/Huelse/SEAL-Python/
29. https://github.com/SpiRITlab/spark
30. https://homomorphicencryption.org/wp-content/uploads/2019/08/poster_5.pdf
31. https://github.com/OpenMined/TenSEAL
32. https://github.com/tfhe/tfhe
33. https://github.com/cpeikert/ALCHEMY
34. https://github.com/awslabs/homomorphic-implementors-toolkit
35. https://github.com/CEA-LIST/Cingulata
36. https://github.com/momalab/e3
37. https://github.com/google/fully-homomorphic-encryption
38. https://fhe-website.mybluemix.net/
39. https://github.com/IBM/fhe-toolkit-android
40. https://github.com/IBM/fhe-toolkit-ios
41. https://github.com/IBM/fhe-toolkit-linux
42. https://github.com/IBM/fhe-toolkit-macos
43. https://github.com/MarbleHE/Marble
44. https://github.com/alan-turing-institute/SHEEP
45. https://github.com/Georeactor/crypto-geofence
46. https://github.com/ldsec/lattigo-polls-demo
47. https://morfix.io/sandbox
48. https://github.com/IntelAI/he-transformer
49. https://github.com/OpenMined
50. https://github.com/OpenMined/KotlinSyft
51. https://github.com/OpenMined/PySyft
52. https://github.com/OpenMined/SwiftSyft
53. https://github.com/OpenMined/syft.js
54. https://github.com/LatticeX-Foundation/Rosetta
55. https://github.com/tf-encrypted/tf-encrypted
56. https://github.com/CryptDB/cryptdb
57. https://github.com/pdroalves/encrypted-mongodb
58. https://github.com/PrismaDB/PrismaDB
59. https://github.com/TimeCrypt/timecrypt
60. https://github.com/zerodb/zerodb
61. https://intensecrypto.org/public/lec_15_FHE.html
62. https://blog.quarkslab.com/a-brief-survey-of-fully-homomorphic-encryption-computing-on-encrypted-data.html
63. https://zhigang-chen.github.io/A List of FHE Papers.html
64. https://crypto.stanford.edu/craig/craig-thesis.pdf
65. https://homomorphicencryption.org/
66. https://www.esat.kuleuven.be/cosic/tag/cosic-guide-to-crypto/
67. http://cseweb.ucsd.edu/~daniele/LatticeLinks/FHE.html
68. https://www.youtube.com/playlist?list=PLD7HFcN7LXRef-eTSGt_XOUJLZNoDINUn
69. https://people.csail.mit.edu/vinodv/FHE/FHE-refs.html
70. https://zhigang-chen.github.io/FHE Resources.html
71. https://github.com/sobolevn/awesome-cryptography
72. https://github.com/pFarb/awesome-crypto-papers
73. https://github.com/rdragos/awesome-mpc
74. https://img.shields.io/github/stars/jonaschn/awesome-he?style=social)](https://github.com/jonaschn/awesome-he
75. https://github.com/jonaschn/awesome-he/edit/master/README.md
76. https://www.paypal.me/JonathanSchneiderDE/3
77. http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](http://creativecommons.org/publicdomain/zero/1.0