An open-source C++ library implementing homomorphic encryption with BGV and CKKS schemes, optimized for efficient evaluation.
HElib is an open-source C++ library that implements homomorphic encryption, allowing computations to be performed directly on encrypted data without needing to decrypt it first. It supports both the BGV scheme with bootstrapping and the CKKS approximate number scheme, providing tools for secure, privacy-preserving data processing. The library focuses on efficient evaluation through optimizations like ciphertext packing and automatic noise management.
Cryptography researchers, privacy engineers, and developers working on secure computation applications who need to implement homomorphic encryption in their systems.
HElib offers a comprehensive, production-ready implementation of advanced homomorphic encryption schemes with extensive optimizations for performance. Its "assembly language for HE" approach provides both low-level control and high-level abstractions, making it suitable for both research experimentation and building practical encrypted computation applications.
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.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements both BGV for exact arithmetic and CKKS for approximate numbers, enabling a wide range of privacy-preserving applications from secure databases to machine learning.
Uses Smart-Vercauteren ciphertext packing techniques to process multiple data elements simultaneously, improving throughput for homomorphic evaluations.
Incorporates sophisticated algorithms to handle noise growth during operations, reducing manual tuning and error risks in complex computations.
Supports parallel execution, allowing faster performance on multi-core systems, which is critical for compute-intensive HE workloads.
Provides Ptxt objects that mimic ciphertext functionality, simplifying code development and testing by enabling plaintext operations to mirror encrypted ones.
As an 'assembly language for HE,' it requires deep cryptographic knowledge and familiarity with schemes like BGV and CKKS, making it inaccessible for beginners.
Relies on the NTL mathematical library, adding installation hurdles and potential compatibility issues across different platforms, as noted in INSTALL.md.
Homomorphic encryption inherently incurs high computational and memory costs, restricting use in latency-sensitive or resource-constrained scenarios.
The library has been under extensive refactoring since 2018, which may lead to breaking changes or inconsistent documentation, as mentioned in the README.