likenamehaojie / HElib

An Implementation of homomorphic encryption

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 and a list of the required dependencies can be found in INSTALL.md.

HElib is written in C++14 and uses the NTL mathematical library.
HElib is distributed under the terms of the Apache License v2.0.

About

An Implementation of homomorphic encryption

License:Apache License 2.0


Languages

Language:C++ 96.8%Language:CMake 1.6%Language:Objective-C 1.1%Language:Makefile 0.4%Language:C 0.1%Language:Dockerfile 0.0%Language:Shell 0.0%