AVXCSIDH is a software library that includes the batched high-throughput and the unbatched low-latency AVX-512 implementations of CSIDH.
AVX-CSIDH
├── AVX-512IFMA implementations
| ├── OAYT-style
| | ├── unbatched low-latency implementation
| | └── batched high-throughput implementation
| | ├── extra-dummy batching method
| | ├── extra-infinity batching method
| | └── combined batching method
| └── DummyFree-style
| ├── unbatched low-latency implementation
| └── batched high-throughput implementation
| ├── extra-dummy batching method
| ├── extra-infinity batching method
| └── combined batching method
|
└── AVX-512F implementations
├── OAYT-style
| └── batched high-throughput implementation
| ├── extra-dummy batching method
| ├── extra-infinity batching method
| └── combined batching method
└── DummyFree-style
└── batched high-throughput implementation
├── extra-dummy batching method
├── extra-infinity batching method
└── combined batching method
The batched high-throughput (ht) implementation:
$ cd AVX-CSIDH/AVX-512IFMA-version
$ make ht_csidh STYLE=[OAYT/DUMMY_FREE] METHOD=[EXTRA_DUMMY/EXTRA_INFINITY/COMBINED]
$ ./ht_csidhFor example, if you'd like to compile the AVX-512IFMA OAYT-style high-throughput
implementation which uses the combined batching method, then the 2nd line is:
make ht_csidh STYLE=OAYT METHOD=COMBINED
The unbatched low-latency (ll) implementation:
$ cd AVX-CSIDH/AVX-512IFMA-version
$ make ll_csidh STYLE=[OAYT/DUMMY_FREE]
$ ./ll_csidhFor example, if you'd like to compile the AVX-512IFMA DummyFree-style low-latency implementation, then the 2nd line is:
make ll_csidh STYLE=DUMMY_FREE
$ cd AVX-CSIDH/AVX-512F-version
$ make ht_csidh STYLE=[OAYT/DUMMY_FREE] METHOD=[EXTRA_DUMMY/EXTRA_INFINITY/COMBINED]
$ ./ht_csidhFor example, if you'd like to compile the AVX-512F OAYT-style high-throughput
implementation which uses the extra-dummy batching method, then the 2nd line is:
make ht_csidh STYLE=OAYT METHOD=EXTRA_DUMMY
An paper describing the various implementations in this library has been published in IACR Transactions on Cryptographic Hardware and Embedded Systems, 2021(4), 618-649.
The paper online link is here.
- [CCC+19] D. Cervantes-Vázquez, M. Chenu, J.-J. Chi-Domínguez, L. De Feo, F. Rodríguez Henríquez, and B. Smith. Stronger and faster side-channel protections for csidh. In P. Schwabe and N. Thériault, editors, Progress in Cryptology – LATINCRYPT 2019, pages 173–193. Springer International Publishing, 2019.
Hao Cheng (University of Luxembourg).
Copyright (C) 2021 by University of Luxembourg.
GPLv3 (see details in LICENSE file).