https://github.com/kuleuven-cosic/final

The fully homomorhic encryption scheme based on NTRU and LWE.

https://github.com/kuleuven-cosic/final

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.7%) to scientific vocabulary
Last synced: 4 months ago · JSON representation

Repository

The fully homomorhic encryption scheme based on NTRU and LWE.

Basic Info
  • Host: GitHub
  • Owner: KULeuven-COSIC
  • License: mit
  • Language: C++
  • Default Branch: main
  • Size: 117 KB
Statistics
  • Stars: 41
  • Watchers: 7
  • Forks: 6
  • Open Issues: 0
  • Releases: 0
Created about 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

FINAL

Faster FHE instantiated with NTRU and LWE

The FINAL library contains the implementation of the fully homorphic encryption schemes presented in the paper "FINAL: Faster FHE instantiated with NTRU and LWE", by Charlotte Bonte (charlotte.bonte@intel.com), Ilia Iliashenko (ilia@esat.kuleuven.be), Jeongeun Park (Jeongeun.Park@esat.kuleuven.be), Hilder V. L. Pereira (HilderVitor.LimaPereira@esat.kuleuven.be), and Nigel P. Smart (nigel.smart@kuleuven.be).

It is distributed under the MIT license. Please, check the LICENSE file for more details.

Requirements

A C++ compiler, the NTL and FFTW 3 libraries.

Run the code

  1. Run make in the main repository folder.
  2. Run the test program and check that all the homomorphic gates are computed correctly.

Usage

Use test.cpp and Makefile as reference points to create and compile your own program with FINAL.

Example

```c++ // Input bits int b1 = 0; int b2 = 1;

// LWE encryption base scheme SchemeLWE s; // LWE ciphertexts CtxtLWE ct1, ct2, ctor, ctnand, ctxor, ctand, ctnot; // Encryption of bits s.encrypt(ct1, b1); s.encrypt(ct2, b2);

// Computes AND s.andgate(ctand, ct1, ct2); assert(s.decrypt(ctand) == 0); // Computes NAND s.nandgate(ctnand, ct1, ct2); assert(s.decrypt(ctnand) == 1); // Computes OR s.orgate(ctor, ct1, ct2); assert(s.decrypt(ctor) == 1); // Computes XOR s.xorgate(ctxor, ct1, ct2); assert(s.decrypt(ctxor) == 1); // Computes NOT s.notgate(ctnot, ct1); assert(s.decrypt(ct_not) == 1); ```

Owner

  • Name: KU Leuven - COSIC
  • Login: KULeuven-COSIC
  • Kind: organization

GitHub Events

Total
  • Watch event: 11
Last Year
  • Watch event: 11