HElib is an open-source (Apache License v2.0) software library that implements homomorphic encryption (HE). Currently available schemes are the implementations of the Brakerski-Gentry-Vaikuntanathan (BGV) scheme and the Approximate Number scheme of Cheon-Kim-Kim-Song (CKKS), along with many optimizations to make homomorphic evaluation runs faster, focusing mostly on effective use of the Smart-Vercauteren ciphertext packing techniques and the Gentry-Halevi-Smart optimizations.
Articles that describe some aspects of HElib include:
- HElib Design Principles, Shai Halevi and Victor Shoup, August 2020.
- Algorithms in HElib, Shai Halevi and Victor Shoup, published in CRYPTO 2014.
- Bootstrapping for HElib, Shai Halevi and Victor Shoup, EUROCRYPT 2015.
Since mid-2018 HElib has been under extensive refactoring for Reliability, Robustness & Serviceability, Performance, and most importantly Usability for researchers and developers working on HE and its uses.
HElib supports an "assembly language for HE", providing low-level routines (set, add, multiply, shift, etc.), sophisticated automatic noise management, improved BGV bootstrapping, multi-threading, and also support for Ptxt (plaintext) objects which mimics the functionality of Ctxt (ciphertext) objects. See changes.md for more details.
HElib is written in C++14 and uses the NTL mathematical library.
HElib is distributed under the terms of the Apache License v2.0.
For code downloads and full installation instructions, visit HElib GitHub Pages.