homenc/HElib

HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.

C++

3,250

1,200 commits

updated Aug 1, 2024

See the code

README

HElib

Build and Test

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.

Please refer to CKKS-security.md for the latest discussion on the security of the CKKS scheme implementation in HElib.

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. The report Design and implementation of HElib contains additional details. Also, see CHANGES.md for more information on the HElib releases.

Full installation instructions and a list of the required dependencies can be found in INSTALL.md.

For guidance in getting started programming with HElib, take a look at the example programs and our CKKS tutorials located in the examples directory. See examples/README.md.

If you are interested in contributing to HElib, please read our Contributing Guidelines.

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

bgv
crypto
cryptography
crypto-library
encryption
encryption-library
helib
privacy-by-design
privacy-enhancing-technologies

homenc/HElib

HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.

C++

3,250

1,200 commits

updated Aug 1, 2024

See the code

README

HElib

Build and Test

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.

Please refer to CKKS-security.md for the latest discussion on the security of the CKKS scheme implementation in HElib.

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. The report Design and implementation of HElib contains additional details. Also, see CHANGES.md for more information on the HElib releases.

Full installation instructions and a list of the required dependencies can be found in INSTALL.md.

For guidance in getting started programming with HElib, take a look at the example programs and our CKKS tutorials located in the examples directory. See examples/README.md.

If you are interested in contributing to HElib, please read our Contributing Guidelines.

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

bgv
crypto
cryptography
crypto-library
encryption
encryption-library
helib
privacy-by-design
privacy-enhancing-technologies

Project health

Overall

4.2/10

Maintained

0/10

Code review

10/10
OpenSSF Scorecard

Significant stargazers

(top 24 of 54)

Armon Dadgar

3,274 followers · starred May 2013

Alex Kocharin

478 followers · starred Nov 2013

Andrea Peruffo

173 followers · starred Mar 2016

Yan Shoshitaishvili

2,381 followers · starred Mar 2016