Paper 2026/2641
A Memory-efficient Implementation of Wiedemann XL
Abstract
The signature schemes MQOM, SNOVA, MAYO, and UOV are third-round candidates in the NIST standardization process for additional post-quantum signatures, and their security relies on the hardness of the multivariate quadratic (MQ) problem. XL with block Wiedemann (BW) is one of the most efficient MQ solvers in practice, but its memory demand has led to a debate about its memory access cost: generating the rows of the Macaulay matrix on the fly is widely believed to save memory at a non-negligible computational cost. In this work, we evaluate the memory--time trade-off in practice. We provide the first efficient on-the-fly implementation of XL with BW. We build on the state-of-the-art implementation by Cheng, Chou, Niederhagen, and Yang (CCNY), which uses SSE instructions and supports the fields $\mathbb{F}_2$, $\mathbb{F}_{16}$ and $\mathbb{F}_{31}$; we remove its column-index tables and generate the rows on the fly in the first phase of BW (BW1). We amortize the cost of on-the-fly generation with a new algorithm that computes column indices with $O(n^2)$ instead of $O(n^3)$ table look-ups, where $n$ is the number of variables. In our experiments we observe that our on-the-fly implementation achieves running times comparable to CCNY's with up to five times less memory. We also port both implementations to AVX2 over $\mathbb{F}_{256}$, the main field of UOV, and observe a similar behavior: comparable BW1 running times with less memory for the on-the-fly variant.
Note: Preprint.
Metadata
- Available format(s)
-
PDF
- Category
- Attacks and cryptanalysis
- Publication info
- Preprint.
- Contact author(s)
-
dcabarc @ unal edu co
blueprint @ crypto tw
fmerino @ unal edu co
javier verbel @ tii ae - History
- 2026-10-26: approved
- 2026-10-26: received
- See all versions
- Short URL
- https://ia.cr/2026/2641
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2026/2641,
author = {Daniel Cabarcas and Tung Chou and Felipe Merino and Javier Verbel},
title = {A Memory-efficient Implementation of Wiedemann {XL}},
howpublished = {Cryptology {ePrint} Archive, Paper 2026/2641},
year = {2026},
url = {https://eprint.iacr.org/2026/2641}
}