Paper 2026/2658

Unshuffling Fisher-Yates: Practical Recovery of Length-128 Permutations and Application to ML-DSA

Jonas Schupp, Technical University of Munich
Anna Baumeister, Technical University of Munich
Antonia Wachter-Zeh, Technical University of Munich
Georg Sigl, Technical University of Munich, Fraunhofer Institute for Applied and Integrated Security
Abstract

Shuffling is a standard hiding countermeasure against (single-trace) side-channel attacks on the number-theoretic transform (NTT) of lattice-based post-quantum schemes, such as ML-DSA. The Fisher-Yates algorithm can be used to generate the underlying random permutation. Recovering this permutation itself from a single trace has so far only been studied for short sequences. We present a practical attack on a software implementation of Fisher-Yates for sequences of length 128, the number of butterfly operations in one layer of ML-DSA’s NTT. We identify the exploitable leakage of the algorithm, detect and remove the timing variations caused by rejection sampling and extract Hamming weight and identity leakage from a single trace per shuffle. We encode these hints as a constraint-programming problem with a soft objective function and enumerate the most likely permutations in order of descending likelihood. Applied to a shuffled ML-DSA-44 NTT, the recovered permutations are used to re-order the butterfly leakage, and recover the secret polynomial s1 either directly or up to a few coefficients that are enumerated directly. Protecting ML-DSA’s NTT with Fisher-Yates-based shuffling does, therefore, not, by itself, prevent side-channel-assisted key recovery.

Metadata
Available format(s)
PDF
Category
Attacks and cryptanalysis
Publication info
Preprint.
Keywords
PQCML-DSASide-Channel AttackShufflingFisher-Yates Algorithm
Contact author(s)
Jonas Schupp @ tum de
anna baumeister @ tum de
antonia wachter-zeh @ tum de
sigl @ tum de
History
2026-10-28: approved
2026-10-27: received
See all versions
Short URL
https://ia.cr/2026/2658
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2026/2658,
      author = {Jonas Schupp and Anna Baumeister and Antonia Wachter-Zeh and Georg Sigl},
      title = {Unshuffling Fisher-Yates: Practical Recovery of Length-128 Permutations and Application to {ML}-{DSA}},
      howpublished = {Cryptology {ePrint} Archive, Paper 2026/2658},
      year = {2026},
      url = {https://eprint.iacr.org/2026/2658}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.