Paper 2022/868

Maximizing the Potential of Custom RISC-V Vector Extensions for Speeding up SHA-3 Hash Functions

Huimin Li, Delft University of Technology, The Netherlands
Nele Mentens, Leiden University, The Netherlands, KU Leuven, Belgium
Stjepan Picek, Radboud University, The Netherlands, Delft University of Technology, The Netherlands

SHA-3 is considered to be one of the most secure standardized hash functions. It relies on the Keccak-f[1 600] permutation, which operates on an internal state of 1 600 bits, mostly represented as a 5×5×64-bit matrix. While software implementations process the state sequentially in chunks of typically 32 or 64 bits, the Keccak-f[1 600] permutation can benefit a lot from speedup through parallelization. This paper is the first to explore the full potential of parallelization of Keccak-f[1 600] in RISC-V based processors through custom vector extensions on 32-bit and 64-bit architectures. %Such a structure is suitable to work under vector instructions in data-parallel operation mode. This paper uses the RISC-V vector extensions to explore its performance in 64-bit and 32-bit architectures. We analyze the Keccak-f[1 600] permutation, composed of five different step mappings, and propose ten custom vector instructions to speed up the computation. We realize these extensions in a SIMD processor described in SystemVerilog. We compare the performance of our hardware/software co-design to a software-only implementation on the one hand and to existing architectures based on (vectorized) hardware/software co-design on the other hand. We show that our design outperforms all related work thanks to our carefully selected custom vector instructions.

Available format(s)
Publication info
Keccak SHA-3 Vector Extensions SIMD Processor RISC-V
Contact author(s)
H Li-7 @ tudelft nl
nele mentens @ kuleuven be
s picek @ tudelft nl
2022-07-19: revised
2022-07-03: received
See all versions
Short URL
Creative Commons Attribution


      author = {Huimin Li and Nele Mentens and Stjepan Picek},
      title = {Maximizing the Potential of Custom {RISC}-V Vector Extensions for Speeding up {SHA}-3 Hash Functions},
      howpublished = {Cryptology ePrint Archive, Paper 2022/868},
      year = {2022},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.