Paper 2026/393
VROOM: Accelerating (Almost All) Number-Theoretic Cryptography Using Vectorization and the Residue Number System
Abstract
Modular arithmetic with a large prime modulus is a dominant computational cost in number-theoretic cryptography. Modular operations are especially challenging to parallelize efficiently on CPUs using vector instructions; standard CPU implementations rely on costly carry operations and permutation instructions to align with the multiplication datapath, negating the benefits of vectorization. We develop vectorized algorithms for modular addition and multiplication, and present a new, constant-time modular multiplication algorithm suitable for general moduli - prime or otherwise. Our method uses a Residue Number System (RNS) representation to align the arithmetic naturally with wide vector units, and strategically eliminate extraneous instructions. Existing works either require the use of customized hardware or fail to show latency improvements. Reducing the latency of modular arithmetic results in speedups for cryptographic applications. We accelerate RSA-4096 signatures by $4.0\times$ (verify) and $1.3\times$ (sign) over OpenSSL, and speed up BLS signature verifications by $4.05\times$ over the assembly-optimized BLST library. Results on mapping our algorithm to Nvidia GPUs demonstrate speedups on modular multiplication over Nvidia's CGBN library.
Metadata
- Available format(s)
-
PDF
- Category
- Implementation
- Publication info
- Published elsewhere. Minor revision. USENIX Security 2026
- Keywords
- AVXAVX512Elliptic CurvesRSAOpenSSLLibraryRNSBLSBLS12-381AccelerationVectorizationPairings
- Contact author(s)
-
slangows @ mit edu
khe01 @ mit edu
devadas @ mit edu - History
- 2026-06-11: last of 4 revisions
- 2026-02-25: received
- See all versions
- Short URL
- https://ia.cr/2026/393
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2026/393,
author = {Simon Langowski and Kaiwen He and Srinivas Devadas},
title = {{VROOM}: Accelerating (Almost All) Number-Theoretic Cryptography Using Vectorization and the Residue Number System},
howpublished = {Cryptology {ePrint} Archive, Paper 2026/393},
year = {2026},
url = {https://eprint.iacr.org/2026/393}
}