Uniform computational indistinguishability #
An ensemble supplies a distribution at each security parameter. A distinguisher is one strict PPT program, given the unary parameter and a sample; its clock is polynomial in their combined length. Ensembles need not themselves be efficiently sampleable or have polynomial sample lengths. The distinguishing experiment is therefore a probability law, not an unrestricted sampling primitive in the program language.
The negligible bound may depend on the adversary: one complete algorithm is fixed before
asserting decay. Semantic tests are admissible exactly when one such program realizes all their
distributions. Both presentations use the shared Game.Indistinguishable definition.
Main definitions #
Cslib.Crypto.IsPPTTest: uniform realization of a family of randomized tests.Cslib.Crypto.distinguishingGame: give an ensemble sample to a program.Cslib.Crypto.ComputationallyIndistinguishable: security against every uniform strict PPT test.
Main results #
Cslib.Crypto.computationallyIndistinguishable_iff_tests: equivalent semantic-test presentation.Cslib.Crypto.ComputationallyIndistinguishable.bind: efficient randomized postprocessing.
References #
- S. Arora, B. Barak, Computational Complexity: A Modern Approach, Chapter 9.
- D. Boneh, V. Shoup, A Graduate Course in Applied Cryptography, Section 3.2.
Adapted from Crypto/Computational/Basic.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8, with arbitrary ensemble laws kept outside the program
syntax and the current upstream nonnegative game API.
A distinguisher receives the unary security parameter and a sampled word.
Instances For
Interpreting a program preserves exactly its uniform PPT restriction.
Postprocessing the distinguisher's answer postprocesses the experiment's answer.
Program distinguishers and uniformly realizable semantic tests give the same notion.
An ensemble is computationally indistinguishable from itself.
Swapping the ensembles preserves computational indistinguishability.
A two-hop hybrid argument uses the same uniform distinguisher in both hops.
Efficient randomized postprocessing preserves computational indistinguishability.
Efficient parameter-dependent deterministic postprocessing preserves indistinguishability.
Shifting the security parameter by a fixed additive offset preserves computational indistinguishability.