Cyclic Group Abstraction and the DDH Games #
An abstract cyclic-group interface CyclicGroup G with explicit exponents, together
with the group-theoretic Decisional Diffie–Hellman games DDH_real / DDH_ideal and
the advantage DDH_Advantage.
This is the exponent-level DDH formulation used by discrete-log encryption schemes
(e.g. Hashed ElGamal). It is distinct from the PairingGroup / DDHDef formulation
in CatCryptCore.Examples.ElGamal and CatCryptCore.Crypto.Assumptions.DDH: here the
group is presented abstractly with a bijective exponentiation pow : Exp → G, and the
shared-secret operation elemPow is defined through the discrete logarithm.
Cyclic group interface #
Gis a finite, nonempty type of group elements.Expis a finite, nonempty type of exponents (Z_qwhereq = |G|).pow : Exp → Gis exponentiation of the generator, assumed bijective.mul/inv/onegive the group operation, inverse, and identity.expMulmultiplies exponents;pow_commrecords exponent commutativity.
DDH games #
DDH_real: samplea, b, output(g^a, g^b, g^(a·b)).DDH_ideal: samplea, b, c, output(g^a, g^b, g^c).DDH_Advantage: the distinguishing advantage between the two.
References #
- [Boneh & Shoup, A Graduate Course in Applied Cryptography, Chapter 11]
- [SSProve: theories/Crypt/examples/PKE/ElGamal.v]
Cyclic Group Abstraction #
A cyclic group structure with explicit exponents.
An abstract interface capturing the algebraic structure of a prime-order cyclic
group: a bijective exponentiation pow : Exp → G, a commutative group operation,
and exponent multiplication.
- Exp : Type
The type of exponents (
Z_qwhereqis the group order). - finG : Fintype G
Gis finite. - neG : Nonempty G
Gis nonempty. Exponents are finite.
Exponents are nonempty.
- gen : G
The generator.
- pow : Exp G → G
Exponentiation:
g^a. - mul : G → G → G
Group multiplication.
- inv : G → G
Group inverse.
Exponent multiplication (in
Z_q).Exponent negation (in
Z_q).- one : G
Identity element.
Exponent commutativity for
pow.Multiplication is associative.
Multiplication is commutative (in a cyclic group).
Right inverse:
x * x⁻¹ = 1.Right identity:
x * 1 = x.- pow_bij : Function.Bijective pow
Exponentiation is a bijection from
ExptoG.
Instances
Notation for group multiplication.
Notation for group inverse.
Notation for identity.
g^a via coercion.
Equations
Instances For
x^a for x : G using the discrete log and then exponentiating.
Since pow is bijective, there is a unique exponent e with pow e = x; then
x^a = pow (expMul e a).
Equations
Instances For
The inverse operation on exponents: g^(-a) = (g^a)⁻¹.
Equations
Instances For
Decisional Diffie–Hellman (DDH) Games #
The DDH assumption states that it is hard to distinguish (g^a, g^b, g^(ab)) for
random a, b from (g^a, g^b, g^c) for random a, b, c.
DDH triple type: (g^a, g^b, z) where z is either g^(ab) or g^c.
Equations
- CatCryptCore.Examples.CyclicGroupDDH.DDHTriple G = (G × G × G)
Instances For
Real DDH game: sample a, b and return (g^a, g^b, g^(ab)).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Ideal DDH game: sample a, b, c and return (g^a, g^b, g^c).
Equations
- One or more equations did not get rendered due to their size.
Instances For
DDH advantage: the distinguishing advantage between real and ideal DDH games.