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
- CCA Security ⇒ CCA1 Security (via CCA Security)
- CCA1 Security ⇒ CPA Security (via CCA1 Security)
- IND-CPA ⇔ Semantic security (via CPA Security)
- IND-CPA PKE ⇒ IND-CCA KEM (Fujisaki–Okamoto) (via CPA Security)
- Perfectly correct CPA-secure PKE ⇒ CPA-secure PKE (via Perfectly correct CPA-secure PKE)
- CPA-secure PKE + NIZK ⇒ CCA1-secure PKE (Naor–Yung) (via Perfectly correct CPA-secure PKE)
- CPA-secure PKE + NIZK ⇒ CCA2-secure PKE (DDN, Sahai) (via Perfectly correct CPA-secure PKE)
- IND-CPA PKE ⇒ PKE (via CPA Security)
- PKE ⇒ COM
- PKE ⇒ OWF
- PKE ⇒ KE
- PKE ⇒ KEM
Produces Public key encryption
- CCA Security ⇒ CCA1 Security (via CCA1 Security)
- CCA1 Security ⇒ CPA Security (via CPA Security)
- IND-CPA ⇔ Semantic security (via Semantic security)
- DCR (safe-prime moduli) ⇒ CCA-secure PKE (Cramer–Shoup) (via CCA Security)
- DCR ⇒ PKE
- DDH + UOWHF ⇒ CCA-secure PKE (Cramer–Shoup) (via CCA Security)
- DDH ⇒ PKE
- DLIN ⇒ PKE (Linear Encryption)
- Factoring + UOWHF ⇒ CCA-secure PKE (Hofheinz–Kiltz) (via CCA Security)
- OWF + iO ⇒ PKE
- Higher residuosity ⇒ PKE
- IBE ⇒ PKE
- IND-CPA KEM + SKE ⇒ IND-CPA PKE (via CPA Security)
- Selective-ID IBE ⇒ CCA-secure PKE (CHK) (via CCA Security)
- NIKE ⇒ PKE
- IND-CCA KEM + CCA-secure SKE ⇒ IND-CCA PKE (via CCA Security)
- Lossy trapdoor functions ⇒ IND-CCA PKE (via CCA Security)
- Mid-noise LPN ⇒ IND-CCA PKE (via CCA Security)
- LWE ⇒ PKE
- Mid-noise LPN ⇒ PKE
- Noisy k-LIN + PC ⇒ PKE
- NTRU ⇒ PKE
- PC + Search noisy -LIN ⇒ PKE
- Perfectly correct CPA-secure PKE ⇒ CPA-secure PKE (via CPA Security)
- CPA-secure PKE + NIZK ⇒ CCA1-secure PKE (Naor–Yung) (via CCA1 Security)
- CPA-secure PKE + NIZK ⇒ CCA2-secure PKE (DDN, Sahai) (via CCA Security)
- IND-CPA PKE ⇒ PKE
- QR ⇒ PKE
- Ring LWE ⇒ PKE (NTRUEncrypt with Gaussian keys)
- RSA ⇒ IND-CCA PKE (RSA-OAEP) (via CCA Security)
- RSA ⇒ PKE
- Subexponential LPN ⇒ IND-CCA PKE (via CCA Security)
- TDP ⇒ PKE
- WE + PRG ⇒ PKE (GGSW)
Barriers
- No relativizing reduction from OWF to PKE
- No fixed-construction reduction from HE to IND-CCA2 Security (via CCA Security)
- No relativizing reduction from KE to PKE
- No fully-black-box reduction from OT to PKE
- No fixed-construction reduction from CCA1 security to CCA2 security (via CCA1 Security, CCA Security)
- No fixed-construction reduction from CPA security to CCA1 security (via CCA1 Security, CPA Security)
- No shielding black-box reduction from CPA-secure PKE to CCA1-secure PKE (via CCA1 Security, CPA Security)
- No fully-black-box reduction from PKE to injective TDF
- No fully-black-box reduction from PKE to OT
- No fully-black-box reduction from PKE to TDP