Oblivious transfer
Oblivious Transfer (OT) is a two-party protocol between a sender and a receiver . In the basic 1-out-of-2 variant, the sender holds two messages and the receiver holds a choice bit; at the end, the receiver learns the chosen message while the sender learns nothing about the choice, and the receiver learns nothing about the unchosen message.
Syntax
A 1-out-of-2 OT is a pair with message space , following the two-party protocol syntax:
- is a randomized algorithm generating public parameters,
- and are stateful interactive algorithms with:
- input: a pair of messages
- input: a choice bit
- output:
- output:
We write
Properties
Correctness
An OT is -correct if for all and ,
where and When we say is perfectly correct.
Sender Privacy
The receiver should not learn the unchosen message . The adversary commits to a choice bit and two sender input pairs that agree on the chosen value (); after observing the honest receiver’s view, it tries to determine which pair the sender used.
\begin{algorithm}
\algname{Game}
\caption{$\Game^{\text{s-priv}}_{\OT,\calA}(\secpar)$}
\begin{algorithmic}
\State $\pp \gets \Setup(1^\secpar)$
\State $(c, x_0, x_1, x_0', x_1', \stA) \gets \calA(1^\secpar, \pp)$
\Comment{Admissible: $x_c = x_c'$}
\State $(x_0^{(0)}, x_1^{(0)}) := (x_0, x_1)$; $(x_0^{(1)}, x_1^{(1)}) := (x_0', x_1')$
\State $b \getsr \bits$
\State Run $\langle S(\pp, x_0^{(b)}, x_1^{(b)}), R(\pp, c) \rangle$; let $\View_R$ denote R's view
\State $b' \gets \calA(\View_R, \stA)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}
An OT has sender-private (or message hiding) if for all efficient admissible ,
is negligible. Because , the receiver’s output is identical in both worlds; any distinguishing advantage must come from the view alone.
Receiver Privacy
The sender should not learn the receiver’s choice bit . The adversary commits to sender inputs ; after observing the honest sender’s view, it tries to determine which bit the receiver chose.
\begin{algorithm}
\algname{Game}
\caption{$\Game^{\text{r-priv}}_{\OT,\calA}(\secpar)$}
\begin{algorithmic}
\State $\pp \gets \Setup(1^\secpar)$
\State $(x_0, x_1, \stA) \gets \calA(1^\secpar, \pp)$
\State $c \getsr \bits$
\State Run $\langle S(\pp, x_0, x_1), R(\pp, c) \rangle$; let $\View_S$ denote S's view
\State $c' \gets \calA(\View_S, \stA)$
\Return $[c' = c]$
\end{algorithmic}
\end{algorithm}
An OT has receiver-private (or choice-hiding) if for all efficient ,
is negligible.
Malicious Security
The definitions above are semi-honest: both parties follow the protocol honestly, and security holds against a party that tries to learn extra information from its view. An OT has malicious security if for every efficient that corrupts or and may deviate from the protocol arbitrarily there is an efficient simulator such that, for all and , the output of together with the honest party’s output in a real execution is computationally indistinguishable from the output of together with the honest party’s output in an ideal execution. There the honest party hands its input to a trusted party, hands it an input of its choice for the corrupted party, the trusted party returns to for the resulting and , and also produces — Gol04. The semi-honest games do not carry over by letting deviate: in the sender-privacy game a malicious receiver can announce and run on , so the simulator must extract the choice bit a malicious receiver effectively uses — standard.
Variations
Rabin OT
Introduced by Rab81, Rabin’s OT is a simpler variant where the sender transmits a single message and the receiver obtains it with probability , receiving otherwise — without the sender learning which outcome occurred. Rabin OT and 1-out-of-2 OT are equivalent; each implies the other by efficient reductions.
-out-of- OT
A generalization where the sender holds messages and the receiver chooses a set of size , learning while the sender learns nothing about .
Single-server SPIR is 1-out-of- OT with communication sublinear in , so it implies 1-out-of- OT — folklore; the converse is not known (SPIR ⇒ OT).
OT Extension
OT from public-key primitives requires expensive operations per transfer. OT extension generates any polynomial number of OTs from a number of base OTs that depends only on the security parameter, using only symmetric-key primitives beyond them — Bea96; each extended transfer costs a constant number of hash evaluations in IKNP03.
Random OT
In a Random OT, the parties do not choose their inputs: the sender receives uniformly random and the receiver receives a uniformly random bit and the value . Random OT can be converted to standard OT with a single round of communication.
UC-secure OT
An OT protocol is UC-secure if it UC-realizes the ideal 1-out-of-2 OT functionality in the common reference string model, with as the reference string, against a malicious adversary that statically corrupts either party — Can01. UC security implies stand-alone malicious security, and by the composition theorem a UC-secure protocol can replace the ideal functionality in any protocol in the OT-hybrid model — Can01.
Other results
Participates in
Builds on Oblivious transfer
- GC + OT ⇒ Two-party computation (2PC)
- OT + OWF ⇒ OT extension (Beaver)
- OT Extension ⇒ MPC with preprocessing (SPDZ, etc.) (via OT Extension)
- OT ⇒ COM
- OT ⇒ KE
- Semi-honest OT ⇒ Malicious OT (Haitner)
- Semi-honest OT ⇒ MPC (HIKLP)
- UC-secure OT ⇒ MPC (via UC-secure OT)
- OT ⇒ OIHF
- OT ⇒ Optimally fair coin flipping (Moran–Naor–Segev)
- OT ⇒ OT extension (IKNP)
- Rabin OT ⇔ OT (via Rabin OT)
- Random OT ⇒ OT (via Random OT)
- UC-secure OT ⇒ Malicious OT (via UC-secure OT)
Produces Oblivious transfer
- CDH ⇒ UC-secure OT (DGHMW) (via UC-secure OT)
- Non-trivial cPIR ⇒ OT
- DDH ⇒ UC-secure OT (PVW) (via UC-secure OT)
- Enhanced trapdoor permutations ⇒ OT
- Lossy TDF ⇒ OT
- LWE ⇒ UC-secure OT (PVW) (via UC-secure OT)
- OIHF ⇒ OT
- OT + OWF ⇒ OT extension (Beaver) (via OT Extension)
- Semi-honest OT ⇒ Malicious OT (Haitner) (via Malicious Security)
- OT ⇒ OT extension (IKNP) (via OT Extension)
- QR ⇒ UC-secure OT (PVW) (via UC-secure OT)
- Rabin OT ⇔ OT
- Random OT ⇒ OT
- Subexponential LPN ⇒ OT
- Symmetric private information retrieval (Single-server) ⇒ OT
- 2PC ⇒ OT
- UC-secure OT ⇒ Malicious OT (via Malicious Security)
Barriers