Skip to content

Latest commit

 

History

History
32 lines (28 loc) · 1.72 KB

README.md

File metadata and controls

32 lines (28 loc) · 1.72 KB

HElib

HElib is a software library that implements [homomorphic encryption] 6 (HE). Currently available is an implementation of the [Brakerski-Gentry-Vaikuntanathan] 1 (BGV) scheme, along with many optimizations to make homomorphic evaluation runs faster, focusing mostly on effective use of the [Smart-Vercauteren] 2 ciphertext packing techniques and the [Gentry-Halevi-Smart] 3 optimizations. See [this report] 7 for a description of a few of the algorithms using in this library. Starting December 2014, the library also includes [bootstrapping] 8.

At its present state, this library is mostly meant for researchers working on HE and its uses. Also currently it is fairly low-level, and is best thought of as "assembly language for HE". That is, it provides low-level routines (set, add, multiply, shift, etc.), with as much access to optimizations as we can give. Hopefully in time we will be able to provide higher-level routines.

This library is written in C++ and uses the [NTL mathematical library] 4 (version 9.0.1 or higher). As of March 2015, it also supports multi-threading. HElib is distributed under the terms of the [GNU General Public License] 5 (GPL). For more information see the [GitHub Pages] 9.