/FV-NFLlib

Library implementing the Fan-Vercauteren homomorphic encryption scheme

Primary LanguageC++GNU General Public License v3.0GPL-3.0

FV-NFLlib

A header-only library implementing the Fan-Vercauteren homomorphic encryption scheme

What is it?

FV-NFLlib is a software library implementing an homomorphic encryption scheme (HE). FV-NFLlib implements the Fan-Vercauteren (FV) scheme, and is based on the NFLlib C++ library dedicated to ideal lattice cryptography.

License

GPLv3

Install Steps

To use the FV-NFLlib library, you need GMP, Mpfr, a C+11 compiler and the NFLlib library. The library only consists of a single header file FV.hpp that has to be included during the compilation of your program.

Tests

Three tests are provided for the library

  • tests/Test_binary_tree: this program benchmarks the key generation, the encryption/decryption, homomorphic addition and homomorphic multiplication procedures. A binary tree of multiplications is evaluated to ensure correctness and the final noise bound is given.
  • tests/Test_ec_additions: this program computes in the clear and homomorphically an elliptic curve addition over the NIST P-256 curve. The code of the elliptic curve addition is templated, and called twice (once with FV::mess_t and once with FV::ciphertext_t)
  • tests/Test_encrypt_poly: this program encrypts two polynomials and computes their product homomorphically. It outputs a small SAGE program to test the correctness.

Contributors

This research-oriented library has been done by members of CryptoExperts, and is part of the HEAT project, and the CryptoComp project.