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.
Semantic security
A PKE scheme is semantically secure if for all efficient there is an efficient such that for every distribution on and every function ,
is negligible, over , , and the coins of , and — GM84.
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, 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)
- 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 ⇒ PKE
- DDH ⇒ PKE
- OWF + iO ⇒ PKE
- Higher residuosity ⇒ PKE
- IBE ⇒ PKE
- NIKE ⇒ PKE
- KEM + SKE ⇒ PKE
- Lossy trapdoor functions ⇒ IND-CCA PKE (via CCA Security)
- LWE ⇒ PKE
- Mid-noise LPN ⇒ PKE
- Noisy k-LIN + PC ⇒ PKE
- NTRU ⇒ PKE
- PC + Search noisy -LIN ⇒ 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
Barriers
- No relativizing reduction from OWF to PKE
- No fixed-construction reduction from HE to IND-CCA2 Security (via CCA Security)
- 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 fully-black-box reduction from PKE to OT
- No fully-black-box reduction from PKE to TDP