Discrete Logarithm Assumptions (DLog / CDH / DDH) #
Standard hardness assumptions for cryptographic groups, formalized using Mathlib's
Module F G for scalar multiplication.
Mathematical setup #
We model a cyclic group as:
F: the scalar field (exponents), e.g.ZMod pfor a prime-order groupG: the group of elements (e.g. elliptic curve points), with[AddCommGroup G]Module F G: scalar multiplicationa • g(corresponds tog^ain multiplicative notation)g : G: a fixed generator (public system parameter)
Notation correspondence #
| Textbook (multiplicative) | This file (additive / EC-style) |
|---|---|
g^a | a • g |
g^a · g^b = g^{a+b} | a • g + b • g = (a + b) • g |
(g^a)^b = g^{ab} | b • (a • g) = (b * a) • g |
Assumptions #
- DLog: given
(g, x • g), findx - CDH: given
(g, a • g, b • g), find(a * b) • g - DDH: distinguish
(g, a • g, b • g, (a * b) • g)from(g, a • g, b • g, c • g)
DLog (Discrete Logarithm) #
A DLog adversary receives a generator and a group element, and tries to find the discrete logarithm (scalar).
Instances For
DLog experiment: sample a random scalar x, give the adversary (g, x • g),
and check whether the adversary's guess equals x.
Instances For
CDH (Computational Diffie-Hellman) #
CDH experiment: sample random scalars a, b, give the adversary (g, a • g, b • g),
and check whether the adversary's output equals (a * b) • g.
Instances For
DDH (Decisional Diffie-Hellman) #
DDH experiment: sample random scalars a, b and a bit. If the bit is true, set
c = a * b (the real DH scalar); otherwise sample c ← $ᵗ F independently. The adversary
receives (g, a • g, b • g, c • g) and wins by guessing the bit.
All sampling is from the scalar field F, so the experiment is well-defined for any
Module F G without requiring that g generates all of G.
Instances For
DDH advantage: absolute distance from random guessing (1/2).
Uses ℝ with absolute value rather than ℝ≥0∞ subtraction, which would silently
saturate at zero for adversaries that guess the wrong bit more often than not.
Instances For
DDH: Two-game formulation #
DDH real game: the adversary receives a genuine DH triple (g, a • g, b • g, (a * b) • g).
Instances For
DDH random game: the adversary receives (g, a • g, b • g, c • g) with independent
c ← $ᵗ F.
Instances For
Two-game DDH advantage: |Pr[output 1 | real] - Pr[output 1 | random]|.
Instances For
Standard reductions among DLog / CDH / DDH #
Reduction from CDH solving to DDH distinguishing: compute a candidate DH share and compare it
with the target group element. This is the concrete reduction underlying the hardness implication
DDH ⇒ CDH.
Instances For
Reduction from DLog solving to CDH solving: recover the two exponents separately and rebuild
the shared DH value. This is the concrete reduction underlying CDH ⇒ DLog.
Instances For
Direct DLog-to-DDH reduction obtained by composing the standard DLog-to-CDH and CDH-to-DDH
reductions. This is the concrete reduction underlying DDH ⇒ DLog.
Instances For
The single-game DDH decomposes: Pr[win] - 1/2 = (Pr[real=1] - Pr[rand=1]) / 2.
The two DDH advantage formulations are related by a factor of 2:
ddhDistAdvantage = 2 * ddhGuessAdvantage.
In the real DDH game, the CDH-to-DDH reduction succeeds exactly when the underlying CDH adversary computed the correct shared DH value.
In the random DDH game, the CDH-to-DDH reduction only matches the target with the uniform
baseline probability. The bijectivity assumption identifies scalar samples with uniformly sampled
group elements in the subgroup generated by g.
Concrete form of the hardness implication DDH ⇒ CDH: a CDH solver can only beat the uniform
DH-target baseline by the DDH distinguishing advantage of the associated adversary-map reduction.
Concrete form of the hardness implication CDH ⇒ DLog: if a DLog adversary succeeds with
probability p, the induced CDH adversary succeeds with probability at least p^2.
Concrete form of the hardness implication DDH ⇒ DLog, obtained by composing the previous two
adversary-map reductions.
Generable relation for discrete log #
The discrete log relation is generable by sampling sk ← $ᵗ F and returning
(sk • g, sk).