The decryption failure rate of Scabbard-256 is 2-58.62, not the claimed 2-125.53: a first failure fits within the call's 280 decapsulations
Security proof gap · Argued · Cause: specification text
Property: IND-CCA security (the failure-rate argument)
Cost against claim: failure rate 2-58.62 against 2-125.53 claimed; about 221 honest failures within the call's 280 decapsulations
The specification's Table 7 claims a decryption-failure rate of 2-125.53 for Scabbard-256, derived from a tool that models the ciphertext term v's compression error as a centred, symmetric round trip. Traced exactly through Algorithms 10 and 11, v is instead floored with no recentring constant, which biases the error to a mean of about +254 per coordinate and gives an actual rate of 2-58.62, a 67-bit gap. Within the call's 280-query budget, honest ciphertexts then fail about 221 times, and the spec's own proof bound (Theorem 5, 264 times the claimed rate) is vacuous at that rate.
| Parameter set | Claim | Attack cost | Verdict |
|---|---|---|---|
| Scabbard-256 | failure rate 2-125.53 (Table 7); IND-CCA at 256 bits | failure rate 2-58.62; about 221 honest failures within the call's 280 decapsulations; key recovery from failures not run or costed | Security proof gap |
What causes it
The designers' DFR tool (dfr_analysis/joint_distribution_2d.c, prob_dist_1d_init_as_compress_decompress_error) models the v-compression error as centred, matching neither Algorithm 10 line 5 nor Algorithm 11 line 8 (spec p. 11), which floor v with no compensating term.
Evidence
Exact per-coordinate distributions (integer counts, python-flint) reproduce the designers' own 2-125.53 under their model and give 2-58.62 under the spec's actual equations. A C harness built from a fresh, unmodified copy of the reference code, which reproduces the official KATs byte for byte, measured 30.7 million noise samples over 40 keys and matched the predicted tails to within 10 to 35 percent down to probability 1e-6. A second member of PQC-X re-ran both the exact computation and the harness independently and got the same figures.
Cause in the specification: the attack also works on a model built from the specification alone.
Limits
Key recovery from the failures (D'Anvers et al., PKC 2019; D'Anvers, Rossi and Virdia, EUROCRYPT 2020) was neither run nor costed, so no attack below the claim is known. Scabbard-512 is unaffected, the same bias costs only a few bits there. Scabbard-128 has the same mechanism but its exact rate under it was not computed.
Credit
Found by PQC-X.