Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/CryptoExperts/FV-NFLlib
Library implementing the Fan-Vercauteren homomorphic encryption scheme
https://github.com/CryptoExperts/FV-NFLlib
Last synced: 3 months ago
JSON representation
Library implementing the Fan-Vercauteren homomorphic encryption scheme
- Host: GitHub
- URL: https://github.com/CryptoExperts/FV-NFLlib
- Owner: CryptoExperts
- License: gpl-3.0
- Created: 2016-05-04T13:46:12.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-07-26T14:46:21.000Z (over 8 years ago)
- Last Synced: 2024-04-07T05:31:58.344Z (7 months ago)
- Language: C++
- Size: 45.9 KB
- Stars: 56
- Watchers: 12
- Forks: 22
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-fhe - FV-NFLlib - A header-only library implementing the Fan-Vercauteren scheme. (Libraries / [Sunscreen](https://sunscreen.tech/))
- awesome-he - FV-NFLlib - A header-only library implementing the Fan-Vercauteren scheme. (Libraries)
README
# 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](https://en.wikipedia.org/wiki/Homomorphic_encryption) scheme (HE).
FV-NFLlib implements the Fan-Vercauteren ([FV](http://eprint.iacr.org/2012/144)) scheme, and is based on the [NFLlib](https://github.com/quarkslab/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](https://www.cryptoexperts.com), and is part of the [HEAT](https://heat-project.eu/) project, and the CryptoComp project.