An Implementation of homomorphic encryption
C++ Objective-C Makefile
Latest commit 15020f5 Dec 30, 2016 @shaih committed on GitHub Update Makefile
Failed to load latest commit information.
doc More documentation changes Nov 22, 2014
src Update Makefile Dec 31, 2016
Doxyfile Documentation Mar 28, 2015
INSTALL.txt documentation updates Sep 25, 2015 Update Mar 30, 2015
mainpage.dox Documentation Mar 28, 2015


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.