{"id":13654912,"url":"https://github.com/KULeuven-COSIC/FINAL","last_synced_at":"2025-04-23T10:31:34.468Z","repository":{"id":42470487,"uuid":"449311199","full_name":"KULeuven-COSIC/FINAL","owner":"KULeuven-COSIC","description":"The fully homomorhic encryption scheme based on NTRU and LWE.","archived":false,"fork":false,"pushed_at":"2024-09-26T23:10:03.000Z","size":120,"stargazers_count":35,"open_issues_count":0,"forks_count":5,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-11-10T06:34:15.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KULeuven-COSIC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-18T14:12:56.000Z","updated_at":"2024-09-29T16:37:20.000Z","dependencies_parsed_at":"2022-08-15T22:30:25.383Z","dependency_job_id":null,"html_url":"https://github.com/KULeuven-COSIC/FINAL","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KULeuven-COSIC%2FFINAL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KULeuven-COSIC%2FFINAL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KULeuven-COSIC%2FFINAL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KULeuven-COSIC%2FFINAL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KULeuven-COSIC","download_url":"https://codeload.github.com/KULeuven-COSIC/FINAL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250416388,"owners_count":21426982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T03:00:52.615Z","updated_at":"2025-04-23T10:31:34.188Z","avatar_url":"https://github.com/KULeuven-COSIC.png","language":"C++","funding_links":[],"categories":["Libraries"],"sub_categories":["[Sunscreen](https://sunscreen.tech/)"],"readme":"# FINAL \n\n## Faster FHE instantiated with NTRU and LWE\n\nThe FINAL library contains the implementation of the fully homorphic encryption schemes\npresented in the paper [\"FINAL: Faster FHE instantiated with NTRU and LWE\"](http://eprint.iacr.org/2022/074),\nby Charlotte Bonte (\u003ccharlotte.bonte@intel.com\u003e), Ilia Iliashenko (\u003cilia@esat.kuleuven.be\u003e), Jeongeun Park (\u003cJeongeun.Park@esat.kuleuven.be\u003e), Hilder V. L. Pereira (\u003cHilderVitor.LimaPereira@esat.kuleuven.be\u003e), and Nigel P. Smart (\u003cnigel.smart@kuleuven.be\u003e).\n\nIt is distributed under the MIT license. Please, check the LICENSE file for more details.\n\n### Requirements \n\nA C++ compiler, the [NTL](https://libntl.org) and [FFTW 3](http://www.fftw.org) libraries.\n\n## Run the code\n\n1. Run `make` in the main repository folder.\n2. Run the `test` program and check that all the homomorphic gates are computed correctly.\n\n## Usage\n\nUse `test.cpp` and `Makefile` as reference points to create and compile your own program with FINAL.\n\n### Example\n```c++\n// Input bits\nint b1 = 0;\nint b2 = 1;\n\n// LWE encryption base scheme\nSchemeLWE s;\n// LWE ciphertexts\nCtxt_LWE ct1, ct2, ct_or, ct_nand, ct_xor, ct_and, ct_not;\n// Encryption of bits\ns.encrypt(ct1, b1);\ns.encrypt(ct2, b2);\n\n// Computes AND\ns.and_gate(ct_and, ct1, ct2);\nassert(s.decrypt(ct_and) == 0);\n// Computes NAND\ns.nand_gate(ct_nand, ct1, ct2);\nassert(s.decrypt(ct_nand) == 1);\n// Computes OR\ns.or_gate(ct_or, ct1, ct2);\nassert(s.decrypt(ct_or) == 1);\n// Computes XOR\ns.xor_gate(ct_xor, ct1, ct2);\nassert(s.decrypt(ct_xor) == 1);\n// Computes NOT\ns.not_gate(ct_not, ct1);\nassert(s.decrypt(ct_not) == 1);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKULeuven-COSIC%2FFINAL","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKULeuven-COSIC%2FFINAL","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKULeuven-COSIC%2FFINAL/lists"}