Paper 2021/108
Implementing CRYSTALS-Dilithium Signature Scheme on FPGAs
Sara Ricci, Lukas Malina, Petr Jedlicka, David Smekal, Jan Hajny, Petr Cibik, and Patrik Dobias
Abstract
In July 2020, the lattice-based CRYSTALS-Dilithium digital signature scheme has been chosen as one of the three third-round finalists in the post-quantum cryptography standardization process by the National Institute of Standards and Technology (NIST). In this work, we present the first Very High Speed Integrated Circuit Hardware Description Language (VHDL) implementation of the CRYSTALS-Dilithium signature scheme for Field-Programmable Gate Arrays (FPGAs). Due to our parallelization-based design requiring only low numbers of cycles, running at high frequency and using reasonable amount of hardware resources on FPGA, our implementation is able to sign 15832 messages per second and verify 10524 signatures per second. In particular, the signing algorithm requires 68461 Look-Up Tables (LUTs), 86295 Flip-Flops (FFs), and the verification algorithm takes 61738 LUTs and 34963 FFs on Virtex 7 UltraScale+ FPGAs. In this article, experimental results for each Dilithium security level are provided and our VHDL-based implementation is compared with related High-Level Synthesis (HLS)-based implementations. Our solution is ca 114 times faster (in the signing algorithm) and requires less hardware resources.
Metadata
- Available format(s)
- Category
- Implementation
- Publication info
- Preprint. MINOR revision.
- Keywords
- Post-quantum cryptographyPost-quantum cryptographyDigital signaturesNumber-theoretic transformVHDLFPGA implementation
- Contact author(s)
- ricci @ feec vutbr cz
- History
- 2021-02-01: received
- Short URL
- https://ia.cr/2021/108
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2021/108, author = {Sara Ricci and Lukas Malina and Petr Jedlicka and David Smekal and Jan Hajny and Petr Cibik and Patrik Dobias}, title = {Implementing {CRYSTALS}-Dilithium Signature Scheme on {FPGAs}}, howpublished = {Cryptology {ePrint} Archive, Paper 2021/108}, year = {2021}, url = {https://eprint.iacr.org/2021/108} }