Paper 2026/1491
Exploiting Load/Store Leakage of Sparse Vectors for Key Recovery in HQC
Abstract
Hamming Quasi-Cyclic (HQC) is a code-based key encapsulation mechanism selected by NIST for standardization, making its resistance to implementation attacks critically important. We present a side-channel attack that exploits load/store leakage in the manipulation of HQC's sparse secret vectors. Analysing Cortex-M4 assembly generated from the reference implementation, we identify a leakage surface in which the low and high 32-bit halves of each 64-bit word leak with different strengths, due to compiler-generated register spilling. We exploit this leakage to construct a simple zero-word distinguisher classifying machine words of the secret vector as zero or nonzero from electromagnetic measurements. The recovered zero positions are then translated into decoding hints, reducing HQC key recovery to a shortened syndrome-decoding problem. We analyse the resulting decoding complexity for all HQC parameter sets: at 32-bit granularity an expected $88.7\%$ of the machine words of~$y$ are zero for HQC-1, cutting the decoding to ${\approx}\,2^{46}$ bit operations. Experiments on a Cortex-M4 validate the predicted low/high-half asymmetry---approximately $500$ traces for the stronger low-half channel and $5{,}000$ for the weaker high-half channel---and recover the zero words of an HQC-1 key at 32-bit granularity. Finally, we discuss practical countermeasures that eliminate the sparsity exploited by the attack.
Metadata
- Available format(s)
-
PDF
- Category
- Implementation
- Publication info
- Preprint.
- Keywords
- HQCSide-channel HintsLoad-StoreElectromagnetic Side-Channel AnalysisBlock-ISD
- Contact author(s)
-
gustavo @ cryptme in
smith @ lix polytechnique fr
jad zahreddine @ eshard com - History
- 2026-07-23: approved
- 2026-07-21: received
- See all versions
- Short URL
- https://ia.cr/2026/1491
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2026/1491,
author = {Gustavo Banegas and Benjamin Smith and Jad Zahreddine},
title = {Exploiting Load/Store Leakage of Sparse Vectors for Key Recovery in {HQC}},
howpublished = {Cryptology {ePrint} Archive, Paper 2026/1491},
year = {2026},
url = {https://eprint.iacr.org/2026/1491}
}