One of two oblivious transfer

Alice holds two items of information, say m0m_0 and m1m_1. Bob wants to know on tof these two items of information, but does not want Alice to know which one he wants.

This problem is known as the oblivious transfer problem. It can be solved in several ways. We will do it using RSA techniques.

  1. NN is Alice's public RSA modulus and ee is the corresponding public exponent; dd is the corresponding private decryption exponent.

  2. At Bob's request, Alice generates two random messages x0x_0 and x1x_1 (random numbers smaller than NN) and sends them to Bob.

  3. Bob wants mbm_b, where b{0,1}b \in \lbrace 0,1 \rbrace. So, Bob generates a random kk and computes and send to Alice v=(x0+ke)modNv = (x_0 + k^e)mod N.

  4. Alice computes m0=m0+(vx0)dmodNm'_0 = m_0 + (v - x_0)^d mod N and m1=m1+(vx1)dmodNm'_1 = m_1 + (v - x_1)^d mod N and sends both to Bod. Either (vx0)dmodN(v - x_0)^d mod N or (vx1)dmodN(v - x_1)^d mod N will be equal to kk, but Alice has no way of knowing which one is the case.

  5. Bob computes mb=mbkmodNm_b = m'_b - k mod N. He cannot infer m1bm_{1-b} from m1bm'_{1-b}.

Last updated