HElib Documentation

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:

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.