Native runtime of the chosen-message experiment #
The actual experiment composes key generation, message selection, encryption and guessing. Native certificates charge the complete sampled public key, saved adversary state and challenge ciphertext; no independent bound on those intermediate values is assumed.
Main results #
Cslib.Crypto.Encryption.isPPTOn_gameOn,Cslib.Crypto.Encryption.isPPTOn_game: the experiments are uniform strict PPT when their inputs are efficiently computed, the admissibility predicate is computable in polynomial time, and the honest algorithms and adversary have native certificates.Cslib.Crypto.Encryption.AdversaryOf.IsPPT.restrict: restricting a uniform strict PPT adversary by a polynomial-time admissibility predicate keeps it uniform strict PPT.Cslib.Crypto.Encryption.INDCPAOf.indcpaOn,Cslib.Crypto.Encryption.INDCPAOf.wordINDCPA: unrestricted IND-CPA implies IND-CPA under every polynomial-time admissibility predicate, in particularWordINDCPAfor bit-word encryption.Cslib.Crypto.Encryption.exists_keyLength_bound: key generation supplies an executable unary polynomial bounding all supported public and secret keys.
References #
- D. Boneh, V. Shoup, A Graduate Course in Applied Cryptography, Section 11.2, Attack Game 11.1, p. 436.
The chosen-message experiment gameOn valid has a strict clock in the full encoded caller input
when valid is computable in polynomial time.
The unrestricted chosen-message experiment has a strict clock in the full encoded caller input.
Restricting a uniform strict PPT adversary by a polynomial-time admissibility predicate keeps
it uniform strict PPT: choose additionally evaluates valid and prepends one bit to the saved
state, and guess branches on that bit.
Unrestricted IND-CPA implies IND-CPA under every polynomial-time admissibility predicate.
Strict PPT key generation supplies an executable unary polynomial bounding the total public and secret key material on every supported execution. No width function is assumed computable.