Asymptotic Security Experiments and Games #
This file defines asymptotic security experiments and games where the advantage function
is abstract — not tied to any specific game formulation. This allows the same meta-theorems
(reductions, game-hopping, hybrid arguments) to work for failure-based games (SecExp),
distinguishing games (ProbComp.distAdvantage), and any other advantage metric.
Main Definitions #
SecurityExp: An advantage functionℕ → ℝ≥0∞with security = negligibility.SecurityGame Adv: An advantage functionAdv → ℕ → ℝ≥0∞with quantified security.- Smart constructors:
ofSecExp,ofDistGame,ofGuessGame.
Main Results #
SecurityExp.secure_of_pointwise_bound: Pointwise ≤ negligible ⟹ secure.SecurityGame.secureAgainst_of_reduction: Basic security reduction (tight).SecurityGame.secureAgainst_of_poly_reduction: Polynomial-loss security reduction.SecurityGame.secureAgainst_of_close: Game-hopping step.SecurityGame.secureAgainst_of_hybrid: Hybrid argument over a chain of games.
An asymptotic security experiment: an advantage function of the security parameter. Secure means the advantage is negligible.
Instances For
An asymptotic security experiment is secure if its advantage is negligible.
Instances For
If the advantage at each n is bounded by f n, and f is negligible,
then the experiment is secure.
Smart constructors #
Build from a two-game distinguishing experiment.
Advantage = |Pr[= () | game₀ n] - Pr[= () | game₁ n]|.
Instances For
Build from a single-game guessing experiment.
Advantage = |1/2 - Pr[= () | game n]|.
Instances For
Asymptotic Security Games #
A security game is parameterized by an adversary type. The advantage function maps each adversary and security parameter to a non-negative extended real.
The predicate isPPT is left abstract; users specialize it to PolyQueries or other
efficiency notions as appropriate.
An asymptotic security game: maps each adversary and security parameter to an advantage value. Decoupled from any specific game formulation — the same meta-theorems work for failure-based, distinguishing, and other game styles.
Instances For
A game is secure against a class of adversaries (specified by isPPT)
if every adversary in that class has negligible advantage.
Instances For
Fixing an adversary in a game produces an asymptotic security experiment.
Instances For
Smart constructors #
Build from a two-game distinguishing experiment.
Advantage = |Pr[= () | game₀ A n] - Pr[= () | game₁ A n]|.
Instances For
Build from a single-game guessing experiment.
Advantage = |1/2 - Pr[= () | game A n]|.
Instances For
Security reductions #
Basic security reduction: if there is a map reduce : Adv → Adv' that
preserves efficiency and the advantage of g is pointwise ≤ the advantage of g'
on the reduced adversary, then security of g' implies security of g.
Game hopping #
Game-hopping step: if the advantage of g₁ at every security parameter is at most the
advantage of g₂ plus some negligible ε, and g₂ is secure, then g₁ is secure.
This is the fundamental lemma for game-hopping proofs: each "hop" from g₁ to g₂
introduces at most ε(n) advantage loss, and ε is absorbed because negligible functions
are closed under addition.
Game-hopping step with a reduction: if the advantage of g₁ with adversary A is at most
the advantage of g₂ with reduced adversary plus ε, then security of g₂ (against the
target class) implies security of g₁. Combines reduction and game hop.
Polynomial-loss reductions #
Polynomial-loss security reduction: if there is a reduction reduce : Adv → Adv'
that preserves efficiency and the advantage of g is at most loss(n) times the
advantage of g' on the reduced adversary, then security of g' implies security of g.
This handles reductions where the adversary's advantage is amplified by a polynomial factor,
e.g., from a hybrid argument guessing which of poly(n) steps to exploit.
Combined game-hopping step with polynomial advantage loss and reduction.
Hybrid argument #
Hybrid argument: given k + 1 games indexed by 0, 1, ..., k, if consecutive
games differ by at most ε(n) in advantage and the final game is secure, then the
first game is also secure.
The total advantage loss is at most k · ε(n), which is negligible since ε is
negligible and k is constant.