This repository contains the implementation of "Compiled Constructions towards Post-Quantum Group Key Exchange: A Design from Kyber".
Kyber is a key encapsulation mechanism (KEM) and a finalist in round 3 of the NIST PQC standardization project.
Download the latest version from Releases.
bash build.sh
- CMake
- OpenSSL
-
Install Docker
-
Build image
docker build -t kyber-gake .
- Run container
docker run -it kyber-gake bash
Code contains two implementations of the GAKE: ref
and avx2
. Test programs are located in these folders. Each test program contains a _qrom
version.
.
|-- avx2
| |-- test_gake1024_avx2
| |-- test_gake512_avx2
| |-- test_gake768_avx2
| |-- test_gake_qrom1024_avx2
| |-- test_gake_qrom512_avx2
| |-- test_gake_qrom768_avx2
| |-- test_gake_qrom_speed1024_avx2
| |-- test_gake_qrom_speed512_avx2
| |-- test_gake_qrom_speed768_avx2
| |-- test_gake_speed1024_avx2
| |-- test_gake_speed512_avx2
| `-- test_gake_speed768_avx2
`-- ref
|-- test_gake1024_ref
|-- test_gake512_ref
|-- test_gake768_ref
|-- test_gake_qrom1024_ref
|-- test_gake_qrom512_ref
|-- test_gake_qrom768_ref
|-- test_gake_qrom_speed1024_ref
|-- test_gake_qrom_speed512_ref
|-- test_gake_qrom_speed768_ref
|-- test_gake_speed1024_ref
|-- test_gake_speed512_ref
`-- test_gake_speed768_ref
Latest performance results can be found on Releases under folder results
.
- Escribano Pablos, J.I.; González Vasco, M.I.; Marriaga, M.E.; Pérez del Pozo, Á.L. "Compiled Constructions towards Post-Quantum Group Key Exchange: A Design from Kyber," 2020 Mathematics, 8, 1853, doi: 10.3390/math8101853
- Bos, J. et al., "CRYSTALS - Kyber: A CCA-Secure Module-Lattice-Based KEM," 2018 IEEE European Symposium on Security and Privacy (EuroS&P), 2018, pp. 353-367, doi: 10.1109/EuroSP.2018.00032.