1-out-of-n OT(离散对数)

  • 场景介绍

    前提:Alice 有两个数值V0 和 V1

    需求:Bob 想知道其中的一个Vi ,i ϵ{ 0,1} , Bob 知道了,但不知道 V(1-i);同时,Alice 不知道 i

  • 实现方式

    image-20220117190137825
image-20220117190155703
  • 扩展为1-n OT

    前提:我们考虑 Alice 持有 x_1,…,x_n , x_n ϵ{ 0,1}”l “,Bob 持有i ϵ{ 0,1,…,n} 。

    需求:Bob通过〖OT〗_1^n ,Bob 获得x_i 但 Alice 不知道i。

    实现方式:

    image-20220117190318463

1-out-of-n OT(RSA)

wiki上这个协议解释的非常清晰:https://en.wikipedia.org/wiki/Oblivious_transfer

image-20220117192428337

1.Alice有两条消息,m1和m2,想将其中一个发送给 Bob。 Bob 不希望 Alice 知道他收到的是哪一个;

2.Alice 生成一个 RSA 密钥对,包括模数 N、公共指数 e 和私人指数 d;

3.Alice 还生成两个随机值 x0,x1 并将它们连同她的公共模数和指数一起发送给 Bob。

4.Bob 选择 b 为 0 或 1,并选择第一个或第二个 xb;

5.Bob通过计算 v=(xb+k^e) mod N 生成一个随机值 k 并混淆 xb,并将其发送给 Alice;

6.Alice 不知道(并且希望无法确定)x0 和 x1Bob 选择了哪一个。 她用两个随机值带入计算:k_{0}=(v-x_{0})^{d}\mod Nimage-20220117193647957

这里面会有一个值等于k,但是Alice并不知道哪个是正确的;

7.Alice把k1和k2分别带入计算,m0’=m0+k0和m1’=m1+k1,并且把结果发送给Bob;

8.Bob选择序列号为k的m,计算mb=mb‘-k。

k-out-of-n OT

参考论文:https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.122.6366&rep=rep1&type=pdf

  • 半诚实的接收者

    image-20220117194443132
  • 对抗恶意的接收者

image-20220117194419838
  • 完美安全发送者

    image-20220117194605181