Public key encryption

A public key encryption (PKE) scheme allows anyone to encrypt a message to a receiver using a public key, while the holder of the corresponding secret key can decrypt. Its security notions specify what an adversary can learn about the message, allowing leakage of its length.

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 takes the form of a single challenge: the adversary receives , submits two messages, and tries to determine which was encrypted. The adversary can encrypt messages with . An admissible adversary submits with ; otherwise ciphertext length may reveal the challenge bit — standard.

\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)$
\Comment{$m_0,m_1 \in \calM$ and $|m_0|=|m_1|$}
\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 admissible efficient ,

is negligible.

Semantic security

Semantic security compares predicting a function of the plaintext with and without its ciphertext — GM84. In the following key-dependent, efficiently samplable formulation, the adversary chooses the message distribution after seeing — standard.

For an efficient adversary , sample and . Here describes an efficient sampler supported on equal-length messages in , describes an efficiently computable function, and is auxiliary state. Sample using fresh coins, and write for the information available in both experiments.

A PKE scheme is semantically secure in this formulation if for every such there is an efficient such that

is negligible, over key generation, , the fresh draw from , encryption, and the coins of or . The simulator receives the sampler’s description, not the coins used to draw . This formulation is equivalent to IND-CPA security — standard.

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 . An admissible adversary submits equal-length messages in and, after receiving , 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: $\calD$ unrestricted; $m_0,m_1 \in \calM$, $|m_0|=|m_1|$}
\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

Perfectly correct CPA-secure PKE

An IND-CPA-secure scheme that is perfectly correct, . Constructions of non-malleable and chosen-ciphertext-secure encryption that check a proof of consistency between ciphertext components need decryption to be errorless under all but a negligible fraction of key pairs, which perfect correctness guarantees; DNR04 immunize schemes with decryption errors to meet this weaker condition — DNR04. With negligible decryption error, a scheme may have rare encryption coins whose ciphertexts decrypt to bits of the secret key; a pair of such ciphertexts carries an honest consistency proof, and decryption queries on such pairs leak the key — standard.

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, assuming CCA2-secure schemes exist — BDPR98.

Key-hiding

TODO

Other results

Participates in

Builds on Public key encryption

Produces Public key encryption

Barriers