Public key encryption

A public key encryption (PKE) scheme allows anyone to encrypt a message to a receiver using a public key, while only the holder of the corresponding secret key can decrypt. This enables secure communication over untrusted channels without a pre-shared secret, unlike SKE.

Syntax

A PKE scheme is a tuple of efficient algorithms with respect to secret keyspace , public keyspace , message space , and ciphertext space :

  • is a randomized algorithm which samples a secret key and public key ,
  • is a randomized algorithm which takes a public key and message , outputting a ciphertext ,
  • is a deterministic algorithm which takes a secret key and ciphertext , outputting a message or to indicate an invalid ciphertext.

Properties

Correctness

A PKE scheme is -correct if for all and ,

over the choice of and randomness of When , we say is perfectly correct.

CPA Security

The CPA game therefore takes the form of a single challenge: the adversary receives , submits two messages, and tries to determine which was encrypted. Note that the adversary themselves can encrypt messages with

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{cpa}}_{\PKE,\calA}(\secpar)$}
\begin{algorithmic}
\State $(\sk, \pk) \gets \KeyGen(1^\secpar)$; $b \getsr \bits$
\State $(m_0, m_1, \stA) \gets \calA(1^\secpar, \pk)$
\State $c^* \gets \Enc(\pk, m_b)$
\State $b' \gets \calA(c^*, \stA)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

A PKE scheme is CPA-secure if for all efficient ,

is negligible.

CCA Security

In the chosen-ciphertext attack (CCA, or IND-CCA2) game, the adversary additionally has access to a decryption oracle in two phases: before submitting , and after receiving the challenge . To avoid a trivial win, is admissible: it may not query on itself.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{cca}}_{\PKE,\calA}(\secpar)$}
\begin{algorithmic}
\State $(\sk, \pk) \gets \KeyGen(1^\secpar)$; $b \getsr \bits$
\State $\calD(c) := \Dec(\sk, c)$
\State $(m_0, m_1, \stA) \gets \calA^{\calD}(1^\secpar, \pk)$
\Comment{Phase 1: $\calA$ may query $\calD$ freely}
\State $c^* \gets \Enc(\pk, m_b)$
\State $b' \gets \calA^{\calD}(c^*, \stA)$
\Comment{Phase 2: $\calA$ may not query $\calD$ on $c^*$}
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

A PKE scheme is CCA-secure if for all admissible efficient ,

is negligible. The admissibility restriction is necessary: without it, trivially wins by querying to learn .

Variations

CCA1 Security

CCA1 (also called the lunchtime attack) is an intermediate notion between CPA and CCA2. The adversary has access to the decryption oracle only in Phase 1, before seeing the challenge ciphertext; no decryption queries are permitted after is revealed. CCA1 is strictly weaker than CCA2 and strictly stronger than CPA.

Key-hiding

TODO

Other results