Wednesday, September 30, 2015

Improved OT Extension for Transferring Short Secrets


In this post, we see an efficient Oblivious Transfer (OT) Extension technique for short secrets.  The OT extension protocol of IKNP stands as the basis for this protocol. The building block is an IKNP-based framework for 1-out-of-n OT extension. Before going into the details of the protocol, let’s have a quick overview of the IKNP protocol.

IKNP Protocol
We assume the existence of a correlation-robust hash function, H, and the protocol works in the static semi-honest security model.

Protocol Overview
S first acts as the receiver and R as the sender in the underlying k OTs. S chooses a random string s {0,1}k as the selection bits and R inputs (ti, ti r), i [k], ti {0,1}n where r are the actual selection bits of R. S calls her ith chosen message in the underlying OTs qi = ti si .r, where qi is the ith column of a m x k matrix QNote that jth row of matrix Q, qj = tj  rj . s. Finally, S sends the actual messages by sending zj,0 = H(qj) xj,0 and zj,1 = H(qj s) xj,1 and R recovers xj,ri by computing xj,ri = H(ti) zj,ri , where j [m] and H() is the hash function.

Protocol Efficiency
The protocol makes a single call to OTkm. In addition, each party evaluates at most 2m times (an implementation of) a random oracle mapping k+log m bits to l bits. All other costs are negligible. The cost of OTkm is no more than k times the cost of OT1k (the type of OT realized by most direct implementations) plus a generation of 2m pseudo-random bits. In terms of round complexity, the protocol requires a single message from S to R in addition to the round complexity of the OTkm implementation. To summarize, the communication complexity of IKNP is O(m(k+l)) and for bit messages (l=1), the complexity turns out to be O(mk).

Now we can look to the efficient Oblivious Transfer (OT) Extension protocol of KK13. The main difference from IKNP is that each row of the matrix possessed by S is now used to perform a 1-out-of-n OT instead of 1-out-of-2, but of shorter secrets. On a very intuitive level, the protocol works as follows: Let C denote a binary code, and let rj denote the input of R to the j-th instance of 1-out-of-n OT. For each row j, S receives (via OT) the actual j-th row of the m x k matrix XORed with a vector that is the result of the rj-th codeword in C bitwise ANDed with the k-bit selection vector. This allows S to generate n random pads from each row of the matrix- the i-th such pad being the j-th row it received (via OT) XORed with a vector that is the result of the i-th codeword in C bitwise ANDed with the k bit selection vector. These n random pads may then be used by S to carry out a 1-out-of-n OT with R

KK Protocol
We assume the existence of a hash function (in the random oracle model), H, and the protocol works in the static semi-honest security model. It trades the length of messages for more gained OTs from the extensions.

Protocol Overview
Input of S is m tuples (xj,0, … ,xj,n-1) of l-bit strings while input of R is an m element selection vector r = (r1, … , rm) where each ri can ranges from 1 to n. S first acts as the receiver and R as the sender in the underlying k OTs. S chooses a random string s  {0,1}k as the selection bits. R forms m x k matrices T0 and T1 in the following way: Choose tj,0 , tj,1 ← {0,1}k  at random such that tj,0   tj,1 = crj , where crj  is a Walsh-Hadamard code. R then inputs {(tj,0, tj,1)}j∈[k]  for each of the k base OTs. S calls her ith chosen message in the underlying OTs qi ti,si , where qi is the ith column of a m x k matrix Q. Note that jth row of matrix Q, qj = tj,0 crj . s. Finally, S sends  messages zj,r = xj,r H(j, qj cr.s) for 1 r and R recovers xj,ri by computing xj,ri = H(j,tj,0)  zj,ri , where j  [m] and H() is the hash function.

Protocol Efficiency
The protocol makes a single call to OTkm. The cost of OTkm is the cost of OTkk (which is independent of m) plus a generation of 2k pseudo-random strings each of length m. Other than this, each party evaluates at most mn times a random oracle. Thus the total communication cost of  OTml is the communication cost of implementing OTkm plus mnl bits transferred between S and R, which turns out to be O(m(k+nl). In the semi-honest model, a single instance of 1-out-of-n OT may be used to generate log n instances of 1-out-of-2 OT over slightly shorter strings with no additional cost. More precisely, the cost of OTml is exactly equal to the cost of 1-out-of-n OTm/log nl.log n . To summarize, the communication complexity of KK for 1-out-of-2 OT extension is O(mk / log(k/l) ) and for bit messages (l=1), the complexity turns out to be O(mk / log k).

No comments:

Post a Comment