https://github.com/kuleuven-cosic/final
The fully homomorhic encryption scheme based on NTRU and LWE.
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
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
Metadata Files
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
- Run
makein the main repository folder. - Run the
testprogram 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
- Repositories: 19
- Profile: https://github.com/KULeuven-COSIC
GitHub Events
Total
- Watch event: 11
Last Year
- Watch event: 11