Questions about formal definitions of "security" for various cryptographic schemes (e.g. perfect secrecy, semantic security, ciphertext indistinguishability, etc.)

This tag is intended for questions about the various definitions formalizing the concept of "security" for different cryptographic schemes. Examples of such definitions include:

  • Perfect secrecy, wherein the ciphertext is required to provide no information about the plaintext even to a computationally unlimited adversary. Provided by the one-time pad, and basically nothing else.

  • Semantic security, essentially a relaxed form of perfect secrecy, wherein the computational power allowed to the adversary may not increase faster than any polynomial function of the length of the key. Provably equivalent to ciphertext indistinguishability under a chosen-plaintext attack (see below).

  • Ciphertext indistinguishability under various attack models, requiring that a polynomial-time adversary, given certain kinds of access to the encryption and/or decryption function, should not be able to distinguish the encryptions of two messages from each other significantly more often than just by guessing at random. Common subtypes include indistinguishability under a chosen-plaintext attack (IND-CPA), under a chosen-ciphertext attack (IND-CCA) or even under an adaptive chosen-ciphertext attack (IND-CCA2).

  • Non-malleability under various attack models, essentially requiring the the adversary be unable to change the ciphertext so that it decrypts to a message of their choosing. Closely related to ciphertext indistinguishability.

  • Resistance to various types (e..g. universal, selective or existential) forgery, a property required of secure digital signatures or message authentication codes and related to non-malleability of encryption systems.

  • Collision and preimage resistance, properties of cryptographic hash functions.

  • Forward secrecy, a property of key-agreement protocols guaranteeing that a future compromise of the long-term keys will not compromise any previously agreed temporary keys.

  • Pseudorandomness, a strong security definition requiring that a given function or permutation (such as a block cipher) be indistinguishable from a randomly chosen function or permutation with the same domain and range.

  • etc.