Skip to content
Library implementing the Fan-Vercauteren homomorphic encryption scheme
C++ Makefile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit May 4, 2016
FV.hpp Minor modifications Jun 5, 2016
LICENSE Initial commit May 4, 2016


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.



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.


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.


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

You can’t perform that action at this time.