Symmetric key encryption (SE)
Symmetric key encryption (SE) is a central cryptographic primitive in theory and in practice.
Definition
A symmetric key encryption (SE) scheme is a tuple of efficient algorithms , with respect to key space , message space , and ciphertext space such that
- , is a randomized algorithm that takes a security parameter, and outputs a key ,
- , is a randomized algorithm that takes a key and message , and outputs a ciphertext ,
- , is a deterministic algorithm that takes a key and candidate ciphertext , and outputs either a message
- One may also allow to output to indicate that a candidate ciphertext is not a valid encryption
Correctness
A SE scheme is correct if for every and message , .
Chosen Plaintext Attack (CPA) Security
The CPA advantage of an adversary is defined as where , , and is a left-right oracle, which encrypts either its left or right input based on the input .
An SE scheme is CPA-secure if for all efficient , there exists a negligible function , such that: .
Indistinguishable from random CPA (IND$-CPA)
The IND$-CPA advantage of an adversary is defined as where and is a random response oracle, which on each query gives a uniformly random -bit string (even on the same input, unlike a random oracle).
An SE scheme is IND$-CPA-secure if for all efficient , there exists a negligible function , such that: \text{Adv}^{\text{ind\-cpa}}_{\mathcal{A}}(\lambda)\le \nu(\lambda)$.
Chosen Ciphertext Attack (CCA) Security
The CCA advantage of an adversary is defined as where , , and is a left-right oracle, which encrypts either its left or right input based on the input .
An SE scheme is CCA-secure if for all admissible , there exists a negligible function , such that: . An adversary is admissible if it is efficient and never queries with an output of , i.e., it never decrypts encryptions from the oracle (but it may query inputs which depend on the outputs given).
- This restriction is necessary, as otherwise could trivially discover what is by querying and decrypting the answer.
Other results
- (Both CPA and CCA) SE can be built in a black-box way from a One-way function — Folklore?
- Boosting CPA encryption can be boosted to CCA by using a MAC