SMPC-安全多方计算开篇姚82

一、姚氏百万富翁问题

假定,Alice有 i i i百万,Bob有 j j j百万,且 1 < i , j < 10 1<i,j<10 1<i,j<10,比较两人谁更富有,同时不泄露两人的财富大小。

1、姚82解决方案

M M M N N N比特非负整数集合
Q N Q_N QN M M M M M M的一一映射函数集
E a E_a Ea Q N Q_N QN中随机选择的元素作为Alice的公钥

  1. Bob随机选择一个 N N N比特整数 x x x,使用Alice公钥计算 k = E a ( x ) k=E_a(x) k=Ea(x)
  2. Bob把 k − j + 1 k-j+1 kj+1发送给Alice;
  3. Alice使用自己的私钥计算 y u = D a ( k − j + u ) , u = 1 , 2 , . . . , 10 y_u=D_a(k-j+u),u=1,2,...,10 yu=Da(kj+u),u=1,2,...,10
  4. Alice随机生成一个 N / 2 N/2 N/2比特的素数 p p p,计算 z u = y u ( m o d    p ) z_u=y_u(mod\;p) zu=yu(modp),如果所有 z u z_u zu m o d    p mod\;p modp下相差至少 2 2 2,停止;否则的话随机生成另一个素数,重复计算直到所有 z u z_u zu m o d    p mod\;p modp下相差至少 2 2 2 p , z u p,z_u p,zu代表了最终的数据集;
  5. Alice将素数 p p p m o d    p mod\;p modp下的 z 1 , z 2 , . . . , z i , z i + 1 + 1 , . . . , z 10 + 1 z_1,z_2,...,z_i,z_{i+1}+1,...,z_{10}+1 z1,z2,...,zi,zi+1+1,...,z10+1发送给Bob;
  6. Bob查看第 j j j个数字,如果 z j = x ( m o d    p ) z_j=x(mod\;p) zj=x(modp),那么 i ≥ j i\geq j ij;否则, i < j i<j i<j
  7. Bob将结果告知Alice。

2、几点理解

1、Alice角度

  1. 首先,Alice不会知道Bob的财富 j j j,Bob发送过来的是 k − j + 1 k-j+1 kj+1 k k k N N N比特非负整数, j j j是藏在其中,无法逆推出 j j j。当然,通过最后Bob告知的比较结果,Alice可以推断出 j j j的范围。
  2. 其次,Bob拥有 D a ( s ) D_a(s) Da(s)的值,即自己随机选择的一个 N N N比特整数 x x x,其中 s s s是位于 k − j + 1 k-j+1 kj+1 k − j + 10 k-j+10 kj+10之间的某个值。 E a E_a Ea也是随机的,因此这十种结果也是等概率随机的,Alice推断出Bob选择的随机数的概率是 1 / 10 1/10 1/10

2、Bob角度

  1. Bob只知道 x = D a ( k − j + j ) = y j x=D_a(k-j+j)=y_j x=Da(kj+j)=yj z j = y j ( m o d    p ) z_j=y_j(mod\;p) zj=yj(modp),因此Bob在收到Alice发的10个数时,只有一个数字是等于 x x x或者 x + 1 x+1 x+1,其他九个数字将是毫无意义。他无法知道 z u z_u zu z u z_u zu还是 z u + 1 z_u+1 zu+1,从而无法判断是 z i z_i zi的位置。
  2. 如果,Bob在得出比较结果之后,想要做更多的计算来获取额外的信息。比如说,Bob尝试选取另一个随机数 t t t满足 E a ( t ) = k − j + 9 E_a(t)=k-j+9 Ea(t)=kj+9,那么假设Bob找到了这样的 t t t,那么他就会知道 y 9 = t y_9=t y9=t z 9 z_9 z9,从而推断出是否 i ≥ 9 i\geq 9 i9。这就是Bob不该获取到的额外的信息。因此就要求各参与方仅仅只能执行协议内的计算。
  3. 当然,Bob在得出最终比较结果后,在将结果传递给Alice时欺骗了她,告知了错误的结果。这个在姚82中也提出了相应的理论。

3、其他解决方案

在姚82中,提及另外两种基于不同方法的方案:

  1. 基于满足交换性的单向函数, E a E b ( x ) = E b E a ( x ) E_aE_b(x)=E_bE_a(x) EaEb(x)=EbEa(x)
  2. 基于Goldwasser提出的概率加密方法。

二、通用问题模型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值