The Homomorphic Encryption Application Programming Interface (HE-API) software library is an open source software library being developed as part of the Homomorphic Encryption Applications and Technology (HEAT) project, and is available here.
The main purpose of this software library is to provide a common
easy-to-use interface for various existing Somewhat Homomorphic
Encryption (SHE) libraries. Limited support for fixed-point arithmetic
is also provided by this library. Note that the HE-API library is still a
work in progress.
Fully
Homomorphic Encryption (FHE) is a cryptographic primitive that allows
meaningful manipulation of ciphertexts. In spite of several recent
advances, FHE remains out of practical reach. Hence a reasonable
restriction to make is to limit the set of evaluated circuits to a
specified subclass, usually determined by the multiplicative depth of
the circuit. Such encryption schemes are called as SHE schemes. Various
libraries such as HElib, SEAL, FV-NFLlib, HElib-MP, etc., are already available that implement these SHE schemes.
The
purpose of this HE-API software library is to provide a common,
generic, easy-to-use interface for various existing libraries that
implement SHE schemes. The SHE libraries that are currently integrated
in the HE-API library are HElib and FV-NFLlib. It may be noted that the
FV-NFLlib library is itself an outcome of the HEAT project. At a
high-level, the HE-API software library abstracts out the technicalities
present in the underlying SHE libraries. For instance, the HElib
library implements the BGV SHE scheme, while the FV-NFLlib implements the FV SHE scheme.
Needless to say, the syntax for various classes and routines in the
individual libraries will be different, though the underlying semantics
are very similar. The HE-API library integrates the underlying SHE
libraries under a single interface, thereby shielding the user from
syntactic differences. Another feature of the HE-API library is that it
contains minimal, yet complete, set of routines to perform homomorphic
computations. The design of this library is motivated by the ease of use
for non-experts.
Supported Data Types
The following application data types are supported by the HE-API software library.
- Boolean
- Unsigned long integers
- GMP's arbitrary precision integers class: mpz_class
- Polynomials with coefficients of type: unsigned long integers or mpz_class
- Vectors of : unsigned long integers or mpz_class
- Fixed-point numbers