KeyInd1KeyRo.lean
Key indistinguishability with one-key identities and a random-oracle key derivation
Trusted: definitions used by the statement. Lemma 1 (PqxdhCorrectAndSecureδ, Security/) bounds KeyInd1KeyRoAdvantage on pqxdhKeyIndImpl1KeyRo, and clause 2 of the PQXDH CLI statements (e.g. CliPqxdhElfSecure) uses KeyIndRoGap. Read with Computational/ (pqxdhKeyIndImpl), Assumptions.lean (GapDhWithSign, KemShCr, GapSigEufCma), and KeyInd1KeyReal.lean. See Computational/ and Computational/ (DEV-CLI16).
The CLI statements relate the real one-key handshake game (KeyInd1KeyRealAdvantage) to the one-key random-oracle game (KeyInd1KeyRoAdvantage, replacing P. with HkdfRO, DEV-PQ14) via KeyIndRoGap, while Lemma 1 bounds KeyInd1KeyRoAdvantage under GapSigEufCma, KemShCr, and GapDhWithSign. Against pqxdhKeyIndImpl1KeyReal, pqxdhKeyIndImpl1KeyRo differs only in using evalHkdfOrRo true (HkdfRO) rather than evalHkdfOrRo false (P.), as checked in Computational/.
@[expose] public sectionset_option autoImplicit falsenamespace SignalPqxdhopen OracleComp OracleSpec ENNRealdef pqxdhKeyIndImpl1KeyRo
Key-indistinguishability oracle with single-scalar identities and random-oracle key derivation. Delegates .initPrin u to pqxdhKeyIndImpl1KeyReal and all other queries to pqxdhKeyIndImpl true S P, which uses one shared lazy HkdfRO cache (evalHkdfOrRo true) across .roQuery, initiate*, and accept* and disables .revealDhSecrets.
def pqxdhKeyIndImpl1KeyRo (S : Setup) (P : Primitives) :
QueryImpl (keyIndSpec S) (StateT (KeyIndState S) ProbComp) := fun q =>
match q with
| .initPrin u => pqxdhKeyIndImpl1KeyReal S P (.initPrin u)
| q => pqxdhKeyIndImpl true S P qdef KeyInd1KeyRoAdvantage
Distinguishing advantage of A in pqxdh against pqxdhKeyIndImpl1KeyRo.
noncomputable def KeyInd1KeyRoAdvantage (S : Setup) (P : Primitives) (A : KeyIndAdversary S) :
ℝ≥0∞ :=
𝒟[pqxdhKeyInd1KeyExpForHandshake S P (pqxdhKeyIndImpl1KeyRo S P) A].boolBias1 declaration not shown (lines 56–64): theorems, which Lean checks, or definitions that no headline statement uses
SignalPqxdh.
end SignalPqxdh