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 $3.43\times$ over the assembly-optimized BLST library. To facilitate broad practical adoption, we plan to upstream our implementation into BoringSSL, where it will directly benefit real-world TLS and cryptographic deployments.
Metadata
- Available format(s)
-
PDF
- Category
- Implementation
- Publication info
- Preprint.
- Keywords
- AVXAVX512Elliptic CurvesRSAOpenSSLLibraryRNSBLSBLS12-381AccelerationVectorizationPairings
- Contact author(s)
-
slangows @ mit edu
khe01 @ mit edu
devadas @ mit edu - History
- 2026-02-28: approved
- 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 Srini 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}
}