HElib
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 with bootstrapping and the Approximate Number scheme of
Cheon-Kim-Kim-Song (CKKS), along with many optimizations to make
homomorphic evaluation run faster, focusing mostly on effective use of
the Smart-Vercauteren ciphertext packing techniques and
the Gentry-Halevi-Smart optimizations. See this report for a
description of a few of the algorithms using in this library.
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.
Full installation instructions can be found in INSTALL.md.
HElib is written in C++14 and uses the NTL mathematical library
(version 11.0.0 or higher).
HElib is distributed under the terms of the Apache License v2.0.