A C++ library implementing homomorphic encryption schemes (BGV, CKKS, TFHE) for privacy-preserving computation on encrypted data.
HEhub is a C++ library for homomorphic encryption that enables computation on encrypted data without decryption. It implements modern fully homomorphic encryption schemes including BGV, CKKS, and TFHE, allowing developers to perform privacy-preserving calculations while keeping sensitive information secure. The library is designed to be easy-to-use, scalable, and efficient for both practical applications and research purposes.
Cryptography researchers, privacy engineers, and developers building applications that require secure computation on sensitive data without exposing plaintext information. It's particularly valuable for those working in privacy-preserving machine learning, secure data analytics, and confidential computing.
HEhub provides a comprehensive, modern implementation of multiple homomorphic encryption schemes in a single library with minimal dependencies. Unlike some alternatives, it offers both leveled and fully homomorphic modes, supports SIMD operations natively, and includes performance benchmarks to help developers make informed decisions about parameter selection.
HEhub is a library for homomorphic encryption and its applications, and is part of the PrimiHub project.
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 BGV, CKKS, and TFHE in one library, allowing developers to choose between leveled and fully homomorphic encryption for different use cases, as outlined in the introduction.
Native support for Single Instruction Multiple Data operations in leveled mode enables efficient batch processing of encrypted data, enhancing performance for parallel computations.
Relies on header-only third-party dependencies with no manual pre-installation, simplifying build and integration across environments, as noted in the building instructions.
Includes specific metrics for NTT/INTT operations and CKKS encoding/decoding across parameter sets, aiding in performance tuning, though benchmarks are incomplete.
The README explicitly states benchmark code is incomplete due to limited effort, hindering reliable performance evaluation and comparison for advanced use cases.
Only tested on Linux with GCC >=8.0 and MacOS with Clang >=12.0, with no mention of Windows or other toolchains, potentially excluding some developers.
Provides only a basic usage example; lacks comprehensive API references, tutorials, or guides for complex operations like bootstrapping or circuit optimization.