[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