{"id":15717008,"url":"https://github.com/armfazh/fld-ecc-vec","last_synced_at":"2025-04-15T12:19:09.920Z","repository":{"id":35799092,"uuid":"108039526","full_name":"armfazh/fld-ecc-vec","owner":"armfazh","description":"SIMD Vectorized implementation of X25519, Ed25519, X448 and Ed448","archived":false,"fork":false,"pushed_at":"2025-03-10T02:41:06.000Z","size":1439,"stargazers_count":30,"open_issues_count":1,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-15T12:18:49.523Z","etag":null,"topics":["avx2","avx512","cryptography","ed25519","ed448","rfc7748","rfc8032","x25519","x448"],"latest_commit_sha":null,"homepage":"https://armfazh.github.io/publication/faz-ld-toms-2019/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/armfazh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-23T21:05:15.000Z","updated_at":"2025-03-12T09:16:18.000Z","dependencies_parsed_at":"2024-10-24T13:35:59.773Z","dependency_job_id":"07ebefbd-1bd4-4231-9a19-8390a0d83c7b","html_url":"https://github.com/armfazh/fld-ecc-vec","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/armfazh%2Ffld-ecc-vec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armfazh%2Ffld-ecc-vec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armfazh%2Ffld-ecc-vec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armfazh%2Ffld-ecc-vec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/armfazh","download_url":"https://codeload.github.com/armfazh/fld-ecc-vec/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249067787,"owners_count":21207396,"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":["avx2","avx512","cryptography","ed25519","ed448","rfc7748","rfc8032","x25519","x448"],"created_at":"2024-10-03T21:48:27.269Z","updated_at":"2025-04-15T12:19:09.902Z","avatar_url":"https://github.com/armfazh.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FLD ECC AVX2/AVX512\n\nThis is a mathematical software library for computing the Edwards Digital Signature Algorithm (EdDSA) and the Diffie-Hellman functions X25519 and X448. The library is optimized with the Intel Advanced Vector eXtensions AVX2 and AVX512 product of this research project.\n\n```bibtex\n@article{fld_ecc_avx2,\n    doi       = {10.1145/3309759},\n    author    = {Armando Faz-Hern\\'{a}ndez and\n                 Julio L\\'{o}pez and\n                 Ricardo Dahab},\n    title     = {High-performance Implementation of Elliptic Curve\n                 Cryptography Using Vector Instructions},\n    year      = {2019},\n    journal   = {ACM Transactions on Mathematical Software (TOMS)},\n    publisher = {ACM},\n    volume    = {45},\n    number    = {3},\n    keywords  = {Edwards Digital Signature Algorithm, Ed25519,\n                 Diffie-Hellman Protocol, AVX2 Vector Instructions,\n                 Elliptic Curve Cryptography, Secure Software},\n}\n```\n\n### Compilation\n\nTo compile use:\n```bash\n    $ cd fld_ecc_avx2\n    $ mkdir build; cd build\n    $ cmake ..\n    $ make all\n```\n\n#### Enabling AVX512\n\nUse AVX512 extensions to perform two X25519 operations simultaneously.\n```bash\n    $ cmake .. -DENABLE_AVX512=ON\n    $ make all\n```\n\n### Benchmarks\n\nFor running the benchmark program use:\n\n```bash\n    $ ./bin/bench\n```\n\nThe timings reported in the paper were obtained using the Clang compiler version 5.\n\n```bash\n    $ cd fld_ecc_avx2\n    $ mkdir build; cd build\n    $ CC=/path/to/clang cmake ..\n    $ make\n```\n\n### Tests\n\nFor running the tests program use:\n```bash\n    $ make test_mine unit_tests\n    $ ./bin/test_mine\n    $ ./bin/unit_tests\n```\n\n### Formating Code\n\nFor formating code use [astyle](https://astyle.sourceforge.net/):\n```bash\n    $ astyle --style=linux ./src/*c ./include/*.h\n```\n\n### LICENSE\n\nBSD 3-Clause [LICENSE.txt](LICENSE.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farmfazh%2Ffld-ecc-vec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farmfazh%2Ffld-ecc-vec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farmfazh%2Ffld-ecc-vec/lists"}