Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/armfazh/fld-ecc-vec
SIMD Vectorized implementation of X25519, Ed25519, X448 and Ed448
https://github.com/armfazh/fld-ecc-vec
avx2 cryptography ed25519 ed448 rfc7748 rfc8032 x25519 x448
Last synced: 14 days ago
JSON representation
SIMD Vectorized implementation of X25519, Ed25519, X448 and Ed448
- Host: GitHub
- URL: https://github.com/armfazh/fld-ecc-vec
- Owner: armfazh
- License: bsd-3-clause
- Created: 2017-10-23T21:05:15.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-09T07:37:57.000Z (3 months ago)
- Last Synced: 2024-10-25T05:09:05.537Z (21 days ago)
- Topics: avx2, cryptography, ed25519, ed448, rfc7748, rfc8032, x25519, x448
- Language: C
- Homepage: https://armfazh.github.io/publication/faz-ld-toms-2019/
- Size: 1.18 MB
- Stars: 27
- Watchers: 6
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# FLD ECC AVX2
This 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 version 2 (AVX2) and is derived from a research project.
```bibtex
@article{fld_ecc_avx2,
doi = {10.1145/3309759},
author = {Armando Faz-Hern\'{a}ndez and
Julio L\'{o}pez and
Ricardo Dahab},
title = {High-performance Implementation of Elliptic Curve
Cryptography Using Vector Instructions},
year = {2019},
journal = {ACM Transactions on Mathematical Software (TOMS)},
publisher = {ACM},
volume = {45},
number = {3},
keywords = {Edwards Digital Signature Algorithm, Ed25519,
Diffie-Hellman Protocol, AVX2 Vector Instructions,
Elliptic Curve Cryptography, Secure Software},
}
```### Compilation
To compile use:
```bash
$ cd fld_ecc_avx2
$ mkdir build; cd build
$ cmake ..
$ make all
```### Benchmarks
For running the benchmark program use:
```bash
$ ./bin/bench
```The timings reported in the paper were obtained using the Clang compiler version 5.
```bash
$ cd fld_ecc_avx2
$ mkdir build; cd build
$ CC=/path/to/clang cmake ..
$ make
```### Tests
For running the tests program use:
```bash
$ ./bin/tests
```### LICENSE
BSD 3-Clause [LICENSE.txt](LICENSE.txt)