Paper 2022/868
Maximizing the Potential of Custom RISC-V Vector Extensions for Speeding up SHA-3 Hash Functions
Abstract
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.
Metadata
- Available format(s)
- Category
- Applications
- Publication info
- Preprint.
- Keywords
- 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 - History
- 2022-07-19: revised
- 2022-07-03: received
- See all versions
- Short URL
- https://ia.cr/2022/868
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2022/868, 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}, url = {https://eprint.iacr.org/2022/868} }