International Association for Cryptologic Research

International Association
for Cryptologic Research

Transactions on Cryptographic Hardware and Embedded Systems, Volume 2021

Compact Dilithium Implementations on Cortex-M3 and Cortex-M4


Denisa O. C. Greconici
Digital Security Group, Radboud University, Nijmegen, The Netherlands

Matthias J. Kannwischer
Max Planck Institute for Security and Privacy, Bochum, Germany

Daan Sprenkels
Digital Security Group, Radboud University, Nijmegen, The Netherlands


Keywords: Dilithium, ARM Cortex-M4, ARM Cortex-M3, number theoric transform, lattice-based cryptography


Abstract

We present implementations of the lattice-based digital signature scheme Dilithium for ARM Cortex-M3 and ARM Cortex-M4. Dilithium is one of the three signature finalists of the NIST post-quantum cryptography competition. As our Cortex-M4 target, we use the popular STM32F407-DISCOVERY development board. Compared to the previous speed records on the Cortex-M4 by Ravi, Gupta, Chattopadhyay, and Bhasin we speed up the key operations NTT and NTT−1 by 20% which together with other optimizations results in speedups of 7%, 15%, and 9% for Dilithium3 key generation, signing, and verification respectively. We also present the first constant-time Dilithium implementation on the Cortex-M3 and use the Arduino Due for benchmarks. For Dilithium3, we achieve on average 2 562 kilocycles for key generation, 10 667 kilocycles for signing, and 2 321 kilocycles for verification.

Additionally, we present stack consumption optimizations applying to both our Cortex- M3 and Cortex-M4 implementation. Due to the iterative nature of the Dilithium signing algorithm, there is no optimal way to achieve the best speed and lowest stack consumption at the same time. We present three different strategies for the signing procedure which allow trading more stack and flash memory for faster speed or viceversa. Our implementation of Dilithium3 with the smallest memory footprint uses less than 12kB. As an additional output of this work, we present the first Cortex-M3 implementations of the key-encapsulation schemes NewHope and Kyber.

Publication

Transactions of Cryptographic Hardware and Embedded Systems, Volume 2021, Issue 1

Paper

Artifact

Artifact number
tches/2021/a1

Artifact published
February 16, 2021

README

tar.gz (126 MB)  

View on Github

License
CC0 To the extent possible under law, the author(s) have waived all copyright and related or neighboring rights to this artifact.

Some files in this archive are licensed under a different license. See the contents of this archive for more information.


BibTeX How to cite

Greconici, D. O. C., Kannwischer, M. J., & Sprenkels, D. (2020). Compact Dilithium Implementations on Cortex-M3 and Cortex-M4. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2021(1), 1–24. https://doi.org/10.46586/tches.v2021.i1.1-24. Artifact at https://artifacts.iacr.org/tches/2021/a1.