We introduce the CO15 OT as the base OT.
Notation. The protocol is described over an additive group (G,G,p,+) of
prime order p generated by G. Denote
H:(G×G)×G→{0,1}λ as a key-derivation
function to extract a λ-bit key from group elements.
Note that H here is different from the tweakable hash function in garbled
circuit.
In the CO15 protocol, the sender holds n 128-bit strings
{(Xi0,Xi1)}i∈[n] and the receiver holds n-bit string
b∈{0,1}n. The protocol is as follows.
-
The sender samples y←Fp, and computes S=y⋅G and
T=y⋅S.
-
The sender sends S to the receiver, who aborts if S∈/G.
-
For i∈[n], the receiver samples xi←Fp, and computes:
Ri=biS+xiG
-
The receiver sends {Ri}i∈[n] to the sender, who aborts if
Ri∈/G.
-
For i∈[n], the sender computes
ki0=H(S,Ri,yRi), ki1=H(S,Ri,yRi−T) and sends
{(ci0=ki0⊕Xi0,ci1=ki1⊕Xi1)}i∈[n] to
the receiver.
-
For i∈[n], the receiver computes ki=H(S,Ri,xiS), and outputs
cibi⊕ki
Correctness. The receiver always computes the hash of xiS=(xiy)G.
The sender sends the hashes of yRi and yRi−T. If bi=0, ki0 is
the hash of yRi=(yxi)G, then the receive will get Xi0. if
bi=1, ki1 is the hash of yRi−T=y(S+xiG)−T=(yxi)G, then
the receiver will get Xi1.
Security. We refer the security analysis to
CO15.