Skip to content

armfazh/fld-ecc-vec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

@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:

    $ cd fld_ecc_avx2
    $ mkdir build; cd build
    $ cmake ..
    $ make all

Benchmarks

For running the benchmark program use:

    $ ./bin/bench

The timings reported in the paper were obtained using the Clang compiler version 5.

    $ cd fld_ecc_avx2
    $ mkdir build; cd build
    $ CC=/path/to/clang cmake ..
    $ make

Tests

For running the tests program use:

    $ ./bin/tests

LICENSE

BSD 3-Clause LICENSE.txt