Design and implementation of HElib: a homomorphic encryption library

HElib is a C++ open source library (see https://github.com/homenc/HElib) that implements both the BGV [3] and CKKS [4] fully homomorphic encryption (FHE) schemes. This document summarizes some of the basic design principles of HElib, and describes some of its fundamental algorithms and data structures in significant detail. It is a work in progress, and currently focuses exclusively on the BGV scheme. It is not intended to be an HElib “user manual”. This document focuses on the design of HElib’s core — we refer the reader to the papers [6], [7], and [8] for more details on higher-level algorithms in HElib.