Symmetric key encryption

A symmetric key encryption (SKE) scheme allows a sender and receiver sharing a secret key to encrypt and decrypt messages, such that an adversary who does not know the key cannot learn anything about the plaintext from the ciphertext.

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 algorith 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 hidden bit. The adversary wins by guessing .

\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)$
\State $b' \gets \calA^{\calO_b}(1^\secpar)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

A SKE scheme is CPA-secure if for all 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 ciphertexts, rather than encryptions of two chosen messages. The oracle in world 0 encrypts the query; in world 1 it returns a fresh uniform random ciphertext regardless of the input.

\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 \calC$
\Comment{Each $m$ is a uniform random ciphertext}
\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 efficient ,

is negligible. IND$-CPA implies CPA security, but not vice versa.

CCA Security

In the chosen-ciphertext attack (CCA) game, the adversary additionally has access to a decryption oracle. To avoid a trivial win, is admissible: it may not query on any ciphertext 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)$
\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

  • (Both CPA and CCA) SKE can be built in a black-box way from a OWF — Folklore?
  • CPA-secure SKE can be boosted to CCA-secure SKE using a MAC