Certain forgery after premature hash-key disclosure
ProvedQAlgorithms.Papers.Independent.Intake100.P41.premature_recycling_attackLet be a finite nonempty hash-key set, let , and let be any hash family. Fix distinct messages . Suppose Alice exports the hash key before Bob stops accepting the pending message. Consider an allowed subsequent use that reveals that key to Eve while the intercepted pair remains pending.
There is an attack depending only on the disclosed and intercepted pair, and not on the pad , such that
where and are independent and uniform. The known-key context supplies the key before the attack chooses its pair, and Bob then executes the ordinary verification rule. No AXU property is required. This witness explains why arbitrary reuse must wait until pending verification has closed; it does not assert that every subsequent application reveals the key.
import Definitions.Def_QAlgorithms_Papers_Independent_Intake100_P41
noncomputable section
open scoped BigOperators
namespace QAlgorithms.Papers.Independent.Intake100.P41
open QAlgorithms.Papers.Independent.Bridge50.P44 (xorWord verifyTag)
attribute [local instance] Classical.propDecidable Classical.decEq
/-- PDF pp.3,10: in the allowed context that discloses a prematurely exported
hash key, there is a substitution accepted with probability one before Bob's
pending verification closes. The attacker never receives the OTP. No AXU
assumption is needed, and the result concerns this premature-release context. -/
theorem premature_recycling_attack {K X : Type*} [Fintype K] [Nonempty K]
{m : ℕ} (h : K → X → Tag m) (x xprime : X) (hne : x ≠ xprime) :
∃ a : K → X × Tag m → X × Tag m,
uniformProbability (fun seed : K × Tag m =>
let view := (prematureReleaseView h a seed.1 seed.2 x).2
view.submitted.1 = xprime ∧ view.accepted = true) = 1 := by sorry
end QAlgorithms.Papers.Independent.Intake100.P41
end
Read-back
What the Lean code literally says, in plain math · gpt-6.1-sol
Let be any finite nonempty set, let be any type, let be any natural number, let be any function, and let satisfy . There exists a function such that the following event has probability exactly when and an -bit pad are chosen independently and uniformly: form the honest tag , reveal to the attack, and let ; then and , so the submitted pair is accepted. Here is coordinatewise exclusive-or, and the probability is the number of successful seeds divided by . No restriction on is assumed, and , with its single empty tag, is included.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.