Documentation

Complexity.Crypto.Computational.Pseudoentropy.Basic

Samplable pseudoentropy pairs #

A pair consists of a public observation and a hidden bit. The observation has a finite type at each parameter and an injective word encoding, so its conditional entropy is unambiguous. A strict PPT sampler realizes the joint law exactly.

SamplablePair.HasGap says that every uniform PPT predictor eventually has signed correlation at most 1 - H(hidden | observation) - gap. This is the entropy threshold used in the OWF-to-PRG construction; merely being hard to predict is not sufficient.

This interface records the joint law and its sampler. The shared saved-coin interface exposes a strict PPT sampler's fair-bit tape as a uniform seed, including unused randomness.

Main definitions #

Main results #

References #

Adapted from Crypto/Computational/Pseudoentropy/Basic.lean on the cslib crypto branch at 5ff69ca93402e7c947208dc56396d6d86203ccd8, using the shared nonnegative game API and tidy machine certificates. Existence of a pair with a positive gap is a separate security theorem.

Predict the hidden bit from the public component of a sampled pair.

Instances For

    A finite joint law together with its exact strict PPT word sampler.

    Instances For

      Recover the latent draw by relabelling the existing sampler. This is a mathematical program, with no efficiency claim for decoding arbitrary observation encodings.

      Instances For

        The recovered sample has exactly the joint law, including its hidden label.

        Every uniform PPT predictor stays below the conditional-entropy threshold by this gap. The threshold beyond which the inequality holds may depend on the predictor.

        Instances For

          The pseudoentropy threshold equivalently lower-bounds each efficient predictor's error.

          A fair-bit predictor has zero correlation, so entropy plus the prediction gap cannot eventually exceed one.

          theorem Cslib.Crypto.Pseudoentropy.SamplablePair.HasGap.mono {pair : SamplablePair} {gap smaller : ℕ → ℝ} (h : pair.HasGap gap) (hle : ∀ (n : ℕ), smaller n ≤ gap n) :
          pair.HasGap smaller

          A smaller requested gap follows from any larger proved gap.