jiep / kyber-gake

Compiled-Kyber Group Authenticated Group Key Exchange (GAKE)

Home Page:https://doi.org/10.1049/cmu2.12561

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compiled-Kyber Group Authenticated Group Key Exchange (GAKE)

Build

This repository contains the implementation of "Compiled Constructions towards Post-Quantum Group Key Exchange: A Design from Kyber".

What is Kyber?

Kyber is a key encapsulation mechanism (KEM) and a finalist in round 3 of the NIST PQC standardization project.

Binaries

Download the latest version from Releases.

How to build

bash build.sh

Prerequisites

  • CMake
  • OpenSSL

How to build with Docker

  1. Install Docker

  2. Build image

docker build -t kyber-gake .
  1. Run container
docker run -it kyber-gake bash

Test programs

Code contains two implementations of the GAKE: ref and avx2. Test programs are located in these folders. Each test program contains a _qrom version.

Available test programs

.
|-- 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

Performance results

Latest performance results can be found on Releases under folder results.

KEM

ref

KEM ref

avx2

KEM avx2

Commitment

ref

Commitment ref

avx2

Commitment ref

2-AKE

ref

2-AKE ref

avx2

2-AKE avx2

GAKE performance

Time per number of parties

ref

GAKE parties ref

avx2

GAKE parties avx2

Time per round

ref

GAKE round ref

avx2

GAKE round avx2

References

  • 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.

About

Compiled-Kyber Group Authenticated Group Key Exchange (GAKE)

https://doi.org/10.1049/cmu2.12561

License:Other


Languages

Language:C 86.6%Language:Assembly 4.4%Language:CMake 3.3%Language:Python 3.1%Language:Makefile 2.2%Language:Pawn 0.3%Language:Dockerfile 0.1%Language:Shell 0.0%