Hardware implementation of polynomial multiplication operation of CRYSTALS-KYBER PQC scheme (the implementations are for academic research only and does not come with any support or any responsibility.)
Paper: https://ieeexplore.ieee.org/abstract/document/9474139
The repo includes the following files:
- pe1 - Hardware implementation with 1 butterfly unit
KyberHPM1PE.v
- top moduleKyberHPM1PE_test_ALL_FULL.v
- testbench for full polynomial multiplicationKyberHPM1PE_test_ALL_HALF.v
- testbench for half polynomial multiplicationKyberHPM1PE_test_FNTT.v
- testbench for forward NTT operationKyberHPM1PE_test_INTT.v
- testbench for inverse NTT operationKyberHPM1PE_test_PWM2.v
- testbench for coefficient-wise multiplication operation- pe4 - Hardware implementation with 4 butterfly units
- pe16 - Hardware implementation with 16 butterfly units
- test_generator - Generates test vectors for hardware impelementations
test_generator.py
- Python code for generating test vectors- test_pe1 - test vectors for implementation with 1 butterfly unit
- test_pe4 - test vectors for implementation with 4 butterfly units
- test_pe16 - test vectors for implementation with 16 butterfly units