Certified PPT Reductions and Probabilistic Operations for Cramer–Shoup #
This module constructs the uniform strict-PPT (IsPPTOn) operations and security reductions for the
Multiplicative Cramer–Shoup public-key encryption scheme ($\mathcal{E}_{\mathrm{MCS}}$,
Boneh and Shoup, Exercise 12.27, printed pp. 521–522, specialized to associated
data $\mathcal{D} = \mathrm{Unit}$) over a PrimeOrderGroupFamily, following the Games 0–4
reduction structure of Boneh and Shoup, Section 12.5.3, Theorem 12.9, printed
pp. 488–493:
- Approximate exponent sampling via
sampleModNat:sampleExp,sampleCramerShoupPair,sampleCramerShoupTripleExponents, andsampleCramerShoupSK, together with theirIsPPTOncertificates andGame.advantagebounds (1 / 2 ^ nper exponent draw) relative to exact uniform sampling onZMod (F.order d). - Phase 1/2 and collision-tracking decryption oracle handlers:
cramerShoupPhase1Oracle,cramerShoupPhase2Reply,cramerShoupPhase2Oracle, andcramerShoupCollisionPhase2Oracle. - Certified strict-PPT DDH distinguishers (
Game 1 → Game 2, eq. (12.22), printed p. 492):cramerShoupMsgToDDHDistinguisherandcramerShoupToDDHDistinguisher, withIsPPTOncertificatesisPPTOn_cramerShoupMsgToDDHDistinguisherandisPPTOn_cramerShoupToDDHDistinguisher. - Certified strict-PPT CRHF collision finders (
Game 3 → Game 4, eqs. (12.24)–(12.25), printed p. 492):cramerShoupMsgToCollisionFinderandcramerShoupToCollisionFinder, withIsPPTOncertificatesisPPTOn_cramerShoupMsgToCollisionFinderandisPPTOn_cramerShoupToCollisionFinder. - Certified strict-PPT
Encryption.cca2GameOnoperations:cramerShoupValid,cramerShoupKeyGenProb,cramerShoupEncryptProb, andcramerShoupDecryptOpt, together with theirComputableInPolyTimeandIsPPTOncertificates.
Approximate exponent sampling via sampleModNat #
Sample a pair of approximate exponents modulo F.order d.
Instances For
Replacing sampleCramerShoupPair n d by two independent uniform draws on ZMod (F.order d)
changes Game.advantage by at most 2 / 2 ^ n.
Replacing sampleCramerShoupTripleExponents n d by three independent uniform draws on
ZMod (F.order d) changes Game.advantage by at most 3 / 2 ^ n.
Replacing sampleCramerShoupSK n d by six independent uniform draws on ZMod (F.order d)
changes Game.advantage by at most 6 / 2 ^ n.
Phase 1 decryption oracle handler for Cramer–Shoup.
Instances For
Stateless Phase 2 decryption reply for Cramer–Shoup, rejecting the challenge ciphertext ct
with [].
Instances For
Phase 2 decryption oracle handler for Cramer–Shoup, rejecting the challenge ciphertext ct.
Instances For
Phase 2 collision-tracking oracle handler for cramerShoupToCollisionFinder: replies with
cramerShoupCollisionPhase2Reply and records some (extractCramerShoupTriple request.2) whenever
isCramerShoupCollision H d request.2 ct holds.
Instances For
The DDH distinguisher constructed from a CCA2AdversaryOf Msg with message-to-group-word
encoding encodeMsg : F.Desc × Msg → List Bool ([BS23], proof of Theorem 12.9,
Game 1 $\to$ Game 2, equation (12.22), printed pp. 490, 492, adapted to
$\mathcal{E}_{\mathrm{MCS}}$).
Instances For
The DDH distinguisher constructed from a group-message 1CCA adversary (Msg = List Bool,
encodeMsg = Prod.snd).
Instances For
cramerShoupMsgToDDHDistinguisher is uniform strict PPT whenever encodeMsg, H, and
isElem are computable in polynomial time and adversary is a strict oracle PPT 1CCA adversary.
cramerShoupToDDHDistinguisher is uniform strict PPT whenever H and isElem are computable
in polynomial time and adversary is a strict oracle PPT 1CCA adversary.
The setup-parameterized collision finder constructed from a CCA2AdversaryOf Msg with
message-to-group-word encoding encodeMsg : F.Desc × Msg → List Bool ([BS23], proof of
Theorem 12.9, Game 4, equations (12.24)–(12.25), printed p. 492, adapted to
$\mathcal{E}_{\mathrm{MCS}}$).
Instances For
The setup-parameterized collision finder constructed from a group-message 1CCA adversary
(Msg = List Bool, encodeMsg = Prod.snd).
Instances For
cramerShoupMsgToCollisionFinder is uniform strict PPT whenever encodeMsg, H, and
isElem are computable in polynomial time and adversary is a strict oracle PPT 1CCA adversary.
cramerShoupToCollisionFinder is uniform strict PPT whenever H and isElem are computable
in polynomial time and adversary is a strict oracle PPT 1CCA adversary.
encodeCramerShoupPublicKey depends on sk only through its residues modulo F.order d.
encodeCramerShoupChallenge depends on sk only through its residues modulo F.order d.
decodeCramerShoup depends on sk only through its residues modulo F.order d.
cramerShoupPhase1Oracle depends on sk only through its residues modulo F.order d.
cramerShoupPhase2Oracle depends on sk only through its residues modulo F.order d.
cramerShoupCollisionPhase2Oracle depends on sk only through its residues modulo
F.order d.
Word-level public-key encryption under cramerShoupPublicKey d α σ τ σ₁ τ₁ σ₂ τ₂ coincides with
encodeCramerShoupChallenge on (v, w) = (β • g, (α * β) • g) ([BS23], Section 12.5.3,
Game 0 $\to$ Game 1, equation (12.21), printed p. 490).
Encryption.cca2GameOn and Encryption.INDCCA2On instantiation #
Challenge-pair group-membership admissibility predicate for Encryption.cca2GameOn
([BS23], Section 12.5.3 & Exercise 12.27): both challenge words m₀ and m₁ must
belong to the group F.Carrier (d n).
Instances For
Probabilistic polynomial-time Cramer–Shoup key generation for a group family d : ℕ → F.Desc,
sampling approximate uniform exponents via sampleModNat.
Instances For
Probabilistic polynomial-time Cramer–Shoup encryption for a group family d : ℕ → F.Desc,
sampling the encryption exponent via sampleModNat.
Instances For
Deterministic polynomial-time Cramer–Shoup decryption for Encryption.cca2GameOn.
Instances For
cramerShoupValid is computable in polynomial time whenever isElem and d are.
cramerShoupKeyGenProb is uniformly strict PPT whenever d is computable in polynomial
time.
cramerShoupEncryptProb is uniformly strict PPT whenever H and d are computable in
polynomial time.
cramerShoupDecryptOpt is computable in polynomial time whenever H, isElem, and d
are.
cca2Phase1Oracle for cramerShoupDecryptOpt agrees with cramerShoupPhase1Oracle.
cca2Phase2Oracle for cramerShoupDecryptOpt agrees with cramerShoupPhase2Oracle.
Extracting the 4-tuple of public-key group words from encodeCramerShoupPublicKey.
encodeCramerShoupEncrypt on the public-key words generated by skNatOfZMod agrees with
cramerShoupPublicKey.