Skip to main content

Base OT

We introduce the CO15 OT as the base OT.

Notation. The protocol is described over an additive group (G,G,p,+)(\bG,\G,p,+) of prime order pp generated by G\G. Denote H:(G×G)×G{0,1}λ\sH:(\bG\times \bG)\times\bG\rightarrow \bit^\lambda as a key-derivation function to extract a λ\lambda-bit key from group elements.

Note that H\sH here is different from the tweakable hash function in garbled circuit.

In the CO15 protocol, the sender holds nn 128128-bit strings {(Xi0,Xi1)}i[n]\{(\sX^0_i,\sX^1_i)\}_{i\in[n]} and the receiver holds nn-bit string b{0,1}nb\in\bit^n. The protocol is as follows.

  • The sender samples yFpy\leftarrow \bF_p, and computes S=yG\S = y\cdot \G and T=yS\T = y\cdot \S.

  • The sender sends S\S to the receiver, who aborts if SG\S\notin\bG.

  • For i[n]i\in[n], the receiver samples xiFpx_i\leftarrow \bF_p, and computes: Ri=biS+xiG\R_i = b_i\S+x_i\G

  • The receiver sends {Ri}i[n]\{\R_i\}_{i\in[n]} to the sender, who aborts if RiG\R_i\notin\bG.

  • For i[n]i\in[n], the sender computes ki0=H(S,Ri,yRi), ki1=H(S,Ri,yRiT)k_i^0 = \sH(\S,\R_i,y\R_i),~k_i^1 = \sH(\S,\R_i,y\R_i-\T) and sends {(ci0=ki0Xi0,ci1=ki1Xi1)}i[n]\{(c_i^0 = k_i^0\oplus \sX^0_i, c_i^1 = k_i^1\oplus\sX^1_i)\}_{i\in[n]} to the receiver.

  • For i[n]i\in[n], the receiver computes ki=H(S,Ri,xiS)k_i = \sH(\S,\R_i,x_i\S), and outputs cibikic_i^{b_i}\oplus k_i

Correctness. The receiver always computes the hash of xiS=(xiy)Gx_i\S = (x_iy)\G. The sender sends the hashes of yRiy\R_i and yRiTy\R_i-\T. If bi=0b_i = 0, ki0k_i^0 is the hash of yRi=(yxi)Gy\R_i = (yx_i)\G, then the receive will get Xi0\sX^0_i. if bi=1b_i = 1, ki1k_i^1 is the hash of yRiT=y(S+xiG)T=(yxi)Gy\R_i - \T = y(\S+x_i\G)-\T = (yx_i)\G, then the receiver will get Xi1\sX_i^1.

Security. We refer the security analysis to CO15.