Symmetric key encryption
A symmetric key encryption (SKE) scheme allows a sender and receiver sharing a secret key to encrypt and decrypt messages. Its security notions specify what an adversary can learn about the message, allowing leakage of its length.
Syntax
A SKE scheme is a tuple of efficient algorithms with respect to keyspace message space and ciphertext space :
- is a randomized algorithm which samples a key ,
- is a randomized algorithm which takes a key and message , outputting a ciphertext ,
- is a deterministic algorithm which takes a key and ciphertext , outputting a message or to indicate an invalid ciphertext.
Properties
Correctness
A SKE scheme is -correct if for all and ,
over the choice of and randomness of When , we say is perfectly correct.
CPA Security
In the chosen-plaintext attack (CPA) game, the adversary adaptively queries a left-right encryption oracle: it submits message pairs and receives an encryption of , where is a single hidden bit shared by all queries. Each encryption uses fresh randomness. An admissible adversary submits with on every query; otherwise ciphertext length may reveal . The adversary wins by guessing — standard.
\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{cpa}}_{\SKE,\calA}(\secpar)$}
\begin{algorithmic}
\State $k \gets \KeyGen(1^\secpar)$; $b \getsr \bits$
\State $\calO_0(m_0, m_1) := \Enc(k, m_0)$
\State $\calO_1(m_0, m_1) := \Enc(k, m_1)$
\Comment{Every query has $m_0,m_1 \in \calM$ and $|m_0|=|m_1|$}
\State $b' \gets \calA^{\calO_b}(1^\secpar)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}
A SKE scheme is CPA-secure if for all admissible efficient ,
is negligible.
IND$-CPA Security
Indistinguishability from random (IND$-CPA) is a stronger notion where the adversary must distinguish real encryptions from uniformly random strings of the same length. For each security parameter, assume an encryption of always has length , independent of the key and encryption coins. An admissible adversary queries only messages in . The oracle in world 0 encrypts each query with fresh randomness; in world 1 it returns a fresh uniform string in , which need not be a valid ciphertext — standard.
\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{ind\$\text{-}cpa}}_{\SKE,\calA}(\secpar)$}
\begin{algorithmic}
\State $k \gets \KeyGen(1^\secpar)$; $b \getsr \bits$
\State $\calO_0(m) := \Enc(k, m)$
\State $\calO_1(m) \getsr \bits^{\ell(\secpar, |m|)}$
\Comment{Each query has $m \in \calM$; use fresh coins in both worlds}
\State $b' \gets \calA^{\calO_b}(1^\secpar)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}
A SKE scheme is IND$-CPA-secure if for all admissible efficient ,
is negligible. IND$-CPA implies CPA security, but not vice versa — standard.
CCA Security
In the chosen-ciphertext attack (CCA) game, the adversary additionally has access to a decryption oracle. An admissible adversary submits equal-length messages in on every encryption query and may not query on any ciphertext already output by the encryption oracle .
\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{cca}}_{\SKE,\calA}(\secpar)$}
\begin{algorithmic}
\State $k \gets \KeyGen(1^\secpar)$; $b \getsr \bits$
\State $\calO_b(m_0, m_1) := \Enc(k, m_b)$
\Comment{Every query has $m_0,m_1 \in \calM$ and $|m_0|=|m_1|$}
\State $\calD(c) := \Dec(k, c)$
\Comment{$\calA$ may not query $\calD$ on outputs of $\calO_b$}
\State $b' \gets \calA^{\calO_b, \calD}(1^\secpar)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}
A SKE scheme is CCA-secure if for all admissible efficient ,
is negligible. The admissibility restriction is necessary: without it, could query and then decrypt the result to trivially learn .
Other results
Participates in
Builds on Symmetric key encryption
- CPA-secure SKE ⇒ SKE (via CPA Security)
- IND-CPA KEM + SKE ⇒ IND-CPA PKE
- IND$-CPA Security ⇒ CPA Security (via IND$-CPA Security)
- IND-CCA KEM + CCA-secure SKE ⇒ IND-CCA PKE (via CCA Security)
- SUF-CMA MAC + CPA-secure SKE ⇒ CCA-secure SKE (via CPA Security)
- SKE ⇒ OWF (via CPA Security)
Produces Symmetric key encryption
- CPA-secure SKE ⇒ SKE
- IND$-CPA Security ⇒ CPA Security (via CPA Security)
- SUF-CMA MAC + CPA-secure SKE ⇒ CCA-secure SKE (via CCA Security)
- PRC ⇒ SKE
- PRF ⇒ CPA-secure SKE (via CPA Security)
Barriers