Asymptotic pseudorandom generator security #
Security for families of generators means negligible advantage for each admissible
adversary family, following [BS23], Definition 3.1. Negligibility uses Mathlib's
Asymptotics.SuperpolynomialDecay. Admissibility is a predicate on the whole adversary
family, so a downstream computational model can express a uniform resource restriction.
This model has a natural-number security parameter and no sampled public system parameters.
Efficiency of generation and sampling is not asserted by these semantic definitions.
SecureWithError bounds every admissible family's advantage at parameter n by ε n.
A negligible bound implies Secure.
A non-negligible lower bound on the fraction of outputs outside the image rules out security when the range-test family is admissible. In particular, a bitstring family that eventually stretches by at least one bit is insecure against any class admitting its range test.
A security-parameter-indexed collection of deterministic generators.
Equations
- Cslib.Crypto.PRG.Family Seed Output = ((n : ℕ) → Cslib.Crypto.PRG.Generator (Seed n) (Output n))
Instances For
Every admissible adversary family has negligible distinguishing advantage.
The predicate can encode computational restrictions; fun _ => True permits all families.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restricting the admissible adversary families preserves asymptotic security.
Every admissible adversary family has advantage at most ε n at each parameter n.
Equations
- G.SecureWithError Admissible ε = ∀ (adversary_family : (n : ℕ) → Cslib.Crypto.PRG.Adversary (Output n)), Admissible adversary_family → ∀ (n : ℕ), (G n).advantage (adversary_family n) ≤ ↑(ε n)
Instances For
A negligible error bound implies asymptotic security.
A non-negligible lower bound on the fraction of outputs outside the image rules out security whenever exhaustive range testing is admissible.
If outputs eventually outnumber seeds by a factor of two, admissibility of exhaustive seed enumeration and output comparison suffices to rule out security.
A bitstring generator that eventually stretches by at least one bit is insecure against any class admitting its range-test family.
No bitstring generator family that eventually stretches by at least one bit is secure against all adversary families.
A BitVec generator that eventually stretches by at least one bit is insecure
against any class admitting its range-test family.
No BitVec generator family that eventually stretches by at least one bit is secure
against all adversary families.