Georgia Tech's Gupta Puts a Ceiling on What One Twiddle Fault Leaks From ML-KEM and ML-DSA Key Generation, arXiv 2610.30383, 21 October 2026: 254 of 256 Coefficients Exposed on Paper, TRL 2

Quentir Defense Monitor

Evidence-based insights for quantum defense and security. Published by Quentir Systems LLC · October 23, 2026.

Top-down view of a transparent sapphire hardware-security module block holding eight stacked layers of machined gold butterfly lattice that halve toward the bottom, one node glowing warm amber beneath a dark titanium ceiling plate, beside an aluminum electromagnetic probe gantry with a violet alignment light over a silicon die, on a matte black test bench

On October 21, 2026, Chakshu Gupta of the College of Computing at the Georgia Institute of Technology posted a 20-page paper that asks a narrow question about the two algorithms every Western defense ministry is now writing into its cryptographic requirements. When one multiplier constant inside the number-theoretic transform is corrupted while an ML-KEM or ML-DSA key pair is being generated, how much of the secret polynomial does the difference between the correct output and the faulty output expose? The paper, arXiv 2610.30383, which also sits in the IACR ePrint archive as 2026/1188, received there on June 6, 2026 and revised on October 21, answers with a closed-form rank law, proves it in the Lean 4 theorem prover, and then says plainly what it has not done: no fault was delivered to any chip, and no key was recovered from any device.

The defense interest is direct. ML-KEM and ML-DSA, standardized by NIST in August 2024 as FIPS 203 and FIPS 204, are the two lattice algorithms the National Security Agency's CNSA 2.0 suite names for national security systems, and they are now being burned into the hardware security modules, trusted platform modules and secure elements that will sit in aircraft, ships, satellites and radios for twenty years. A fault attack is what an adversary with physical access to such a device attempts: a glitch on the supply rail, a laser pulse or an electromagnetic probe timed to corrupt one step of the computation, so that the faulty output betrays the secret. Gupta's paper does not deliver the glitch. It computes, for every place a glitch of one particular kind could land in the transform, how many linear constraints on the secret the resulting difference contains, and it finds a ceiling that no choice of fault position or value can exceed.

What the paper proves: one faulted twiddle in the forward NTT exposes n/2^(ℓ+1) linear constraints, halving from 128 to 2 for ML-KEM and to 1 for ML-DSA

Both algorithms multiply polynomials of 256 coefficients, and both do it through a number-theoretic transform, the integer cousin of the fast Fourier transform. The transform runs in layers of butterfly operations, and each butterfly multiplies by a twiddle constant, a fixed power of a root of unity that the implementation stores in a table. The FIPS 203 standard specifies the ML-KEM transform with seven layers, the FIPS 204 transform for ML-DSA has eight, and in both the secret polynomials pass through the forward transform during key generation.

The fault model is specific. One twiddle value at one index is replaced by a different value at every use within a single forward transform call on one polynomial. The replacement can be anything, including the single bit-flip a glitch typically produces, and the attacker is assumed to know which index was hit and what value replaced it. The attacker also needs both outputs, the correct transform and the faulty one, or something that reveals their difference. Under that model the paper's Theorem 3.1 states that the difference between the correct and the faulty transform is a linear map of the secret polynomial whose rank equals the number of butterflies that share the faulted twiddle, which is n divided by 2 to the power ℓ plus 1 for a fault at layer ℓ. In ML-KEM that halves from 128 constraints for a fault in the first layer down to 2 in the last. In ML-DSA it halves to 1.

The ceiling appears when faults are combined. With one fault in every layer, Theorem 4.9 gives a combined rank of 254 for ML-KEM and 255 for ML-DSA, out of 256 coefficients. The two coefficients that stay hidden in ML-KEM are the constant and the linear term, and the one that stays hidden in ML-DSA is the constant. The paper's kernel universality result is the sharper statement: those coefficients cancel for every fault set and every choice of replacement values. No static twiddle fault, however many of them and whatever they are set to, can reach them. Theorem 4.11 then caps any fault set at the sum of the butterfly counts of its members. Lean 4 certifies the rank-and-kernel result for both transform shapes at n equal to 256 with arbitrary replacement values, and the formalization depends only on the three standard axioms of the Lean mathematical library, which is as close to a machine-checked proof as a cryptanalytic bound gets.

Where it bites: ML-KEM keys regenerated from a stored seed, and why ML-DSA's compressed public key erases the difference with probability above 1 minus 2^-35

A rank is an abstraction until it meets a key format, and the paper's most practical section is about one. FIPS 203 allows an implementation to store a 64-byte seed and regenerate the full key pair from it on demand, a pattern that constrained devices like because the seed is small and the expansion is deterministic. Gupta's paired-run model assumes exactly that: a correct public key and a faulty public key derived from the same seed. The public key in ML-KEM is a public matrix times the secret plus an error term, so the difference between the two public keys is a known matrix column times the transform difference, and whenever that column holds an invertible entry the transform difference can be reconstructed. For ML-KEM-512 the paper reports that one known fault, with its position and value, leaves at most 49 candidate values for a secret polynomial that satisfy the coefficient size limits, and it notes that no further public-key constraints were used to narrow that number, which means a fuller attack could shrink it.

ML-DSA behaves differently because its public key is compressed: only the high bits of the product are published. Here the paper establishes neither a reconstruction nor a candidate count. What it does establish is that the compression almost never hides the fault. The probability that the two compressed public keys match despite a nonzero raw difference is below 2^-35 for every standardized parameter set. A faulted ML-DSA key generation will therefore show a different public key, which a countermeasure can detect, while the question of what an attacker extracts from that difference is left open.

Every number above describes the exposure of the raw transform, before any implementation decides what it releases, and the paper frames the ceiling as a closed-form measure of raw exposure for countermeasure design.

Quantum pillar: post-quantum cryptography (roots of trust in hardware). Use posture: dual-use. Technology readiness: TRL 2 of 9. The result is a machine-checked mathematical bound on what a particular class of hardware fault can expose during ML-KEM and ML-DSA key generation, worked out on paper with its numbers and with no fault injected on any processor, which places it at the concept stage below the bench demonstration the 2023 electromagnetic attack already reached.

How this differs from the 2023 electromagnetic attack on pqm4 by Ravi, Yang, Bhasin, Zhang and Chattopadhyay, and what the ceiling gives a countermeasure designer

The paper builds on a result that did reach hardware. In 2023, Prasanna Ravi, Bolin Yang, Shivam Bhasin, Fan Zhang and Anupam Chattopadhyay published the first fault-injection analysis of the number-theoretic transform in the IACR Transactions on Cryptographic Hardware and Embedded Systems, with the preprint on ePrint as 2022/824. They showed that zeroing the twiddle constants collapses the entropy of the transform output, built key-recovery and message-recovery attacks against Kyber and forgery and verification-bypass attacks against Dilithium on that collapse, and demonstrated all of them with electromagnetic fault injection on the optimized implementations in the open-source pqm4 library running on an ARM Cortex-M4 microcontroller. That work sits at TRL 4 on the Monitor's ladder: a bench assembly, a real chip, a real glitch.

Gupta's contribution is to replace a specific attack with a general law. Ravi and colleagues exploited one fault pattern, the global zeroing of the twiddles. The new paper covers any static replacement at any index, including the single bit-flips that are easier to induce than a clean zero, and it gives the rank and the kernel of the correct-minus-faulted difference for all of them. For a designer that is the useful object. The paper discusses two existing detection approaches, an interpolation check and a weighted checksum, and finds that each catches some layer patterns and misses others. It also warns, in a sentence a program office should remember, that a fault count exceeding the multiplicity a countermeasure is designed to detect does not by itself establish that the countermeasure was bypassed. The rank law tells the designer the worst case to size against. It tells an attacker where the worst case is. Both readings follow from the same theorem, which is why this post reads the development as dual-use rather than as the straightforwardly offensive capability a demonstrated key recovery would be.

The link to fielded hardware is closer than a theorem paper might suggest. Vendors are already putting these algorithms into silicon, as the Monitor read in SEALSQ's QVault TPM, which carries ML-DSA and ML-KEM in a discrete chip driven by wolfTPM, and test laboratories have begun to treat ML-KEM as a hardware target rather than a software library, a shift the daily blog described when it noted that ML-KEM had moved into the hardware test lab. A hardware root of trust that regenerates its key pair from a stored seed at every boot, and that exposes the public key afterwards, is precisely the paired-run setting the ML-KEM section assumes.

What stands between a Lean-verified rank law and a program office: fault delivery, output release and three cases the paper leaves open

The paper is candid about its edge. It does not reproduce any physical fault at the firmware level, so nothing in it says how hard a static twiddle replacement is to induce on a given part. Three fault classes are explicitly outside the model: a bit-flip in an intermediate product rather than in a twiddle, which makes the difference nonlinear and defeats the rank analysis; a fault in the input-reordering table; and faults in the inverse transform, where what a protocol lets an attacker observe is different. The closing sentence of the paper states the gap in its own words: connecting the forward-transform rank and coefficient-ambiguity results to an implemented attack or protection policy still requires an account of fault delivery and output release.

For a buyer of post-quantum cryptography in hardware, that gap is the checklist. The first question to a module vendor is whether the device ever re-expands a key pair from a seed in a way whose output can be observed, because that is where the ML-KEM reconstruction lives. The second is which transform-level fault countermeasure the device implements, and whether its coverage was argued against the full rank law rather than against the single zeroing pattern of 2023. The third is what the device does when a fault is detected: a module that releases a faulty public key and then refuses to sign has already released the quantity the paper works from. None of these questions has an answer in the paper, and all of them can be answered by the vendor's own security target, which is where a program office should go next.

Who gains is the right final question, and the paper's own numbers favor the defender in one respect and the attacker in another. For ML-DSA, compression destroys the direct reconstruction, which leaves the attacker with a fault that is almost always visible and a secret that is not shown to follow from it. For ML-KEM with stored seeds, a single known fault leaves at most 49 candidates for one secret polynomial, and the public-key constraints that would cut that further have not yet been applied. What the work establishes, with a machine-checked proof, is the shape of the exposure. What it does not establish is an attack, a device, a cost or a success rate. A defense reader should file it as the measure a countermeasure must now be sized against, and should expect the next paper in this line to bring a probe.

Sources

Primary source: Chakshu Gupta (College of Computing, Georgia Institute of Technology), "Rank Ceiling for Twiddle-Perturbation Faults on the Forward NTT," arXiv 2610.30383, posted October 21, 2026, also IACR ePrint 2026/1188 (received June 6, 2026, revised October 21, 2026). Other material: P. Ravi, B. Yang, S. Bhasin, F. Zhang, A. Chattopadhyay, "Fiddling the Twiddle Constants," IACR ePrint 2022/824 (TCHES 2023); NIST FIPS 203 (August 13, 2024); the pqm4 library. Analysis by Quentir.

  1. paper, arXiv 2610.30383
  2. FIPS 203 standard
  3. preprint on ePrint as 2022/824
  4. pqm4 library
Next
Next

NPL and PTB Compare Two Ytterbium-Ion Optical Clocks Over a 2220 km Fiber Link at 4.8e-18 Uncertainty, arXiv 21 October 2026: The First International Comparison Under the CCTF's 5e-18 Bar, TRL 5