Paper 2023/1505

PQ.V.ALU.E: Post-Quantum RISC-V Custom ALU Extensions on Dilithium and Kyber

Konstantina Miteloudi, Radboud University Nijmegen
Joppe Bos, NXP (Belgium)
Olivier Bronchain, NXP (Belgium)
Björn Fay, NXP (Germany)
Joost Renes, NXP (Netherlands)

This paper explores the challenges and potential solutions of implementing the recommended upcoming post-quantum cryptography standards (the CRYSTALS-Dilithium and CRYSTALS-Kyber algorithms) on resource constrained devices. The high computational cost of polynomial operations, fundamental to cryptography based on ideal lattices, presents significant challenges in an efficient implementation. This paper proposes a hardware/software co-design strategy using RISC-V extensions to optimize resource utilization and speed up the number-theoretic transformations (NTTs). The primary contributions include a lightweight custom arithmetic logic unit (ALU), integrated into a 4-stage pipeline 32-bit RISC-V processor. This ALU is tailored towards the NTT computations and supports modular arithmetic as well as NTT butterfly operations. Furthermore, an extension to the RISC-V instruction set is introduced, with ten new instructions accessing the custom ALU to perform the necessary operations. The new instructions reduce the cycle count of the Kyber and Dilithium NTTs by more than 80% compared to optimized assembly, while being more lightweight than other works that exist in the literature.

Available format(s)
Publication info
Published elsewhere. CARDIS 2023
Contact author(s)
konstantina miteloudi @ ru nl
joppe bos @ nxp com
olivier bronchain @ nxp com
bjoern fay @ nxp com
joost renes @ nxp com
2023-10-03: approved
2023-10-02: received
See all versions
Short URL
Creative Commons Attribution


      author = {Konstantina Miteloudi and Joppe Bos and Olivier Bronchain and Björn Fay and Joost Renes},
      title = {PQ.V.ALU.E: Post-Quantum RISC-V Custom ALU Extensions on Dilithium and Kyber},
      howpublished = {Cryptology ePrint Archive, Paper 2023/1505},
      year = {2023},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.