安全多方计算之百万富翁问题

百万富翁问题是姚期智先生在1982年提出的第一个安全双方计算问题

问题可以描述为:两个百万富翁街头邂逅,他们都想炫一下富,比比谁更有钱,但是出于隐私,都不想让对方知道自己到底拥有多少财富,如何在不借助第三方的情况下,让他们知道他们之间谁更有钱。


姚期智

中国唯一图灵奖获得者,安全多方计算鼻祖。


具体过程:

假设富翁A的财富值为a,富翁B的财富值为b

  1. A:公钥:PK_{A},私钥:SK_{A}。用A的公钥加密财富值: C_{A}=Enc(a)  将C_{A}PK_{A}发给B
  2. B:随机选取x,y(随机大整数),用PK_{A}分别计算C_{B1}=Enc(a \times x + y)  和 C_{B2} = Enc(b\times x + y)  将C_{B1},C_{B2}发给A,记 A=a\times x +y,B=b \times x+y
  3. 因为paillier加密同态属性:E(m_{1},r_{1}) \times E(m_{2},r_{2}) = E(m_{1}+m_{2},r_{1}+r_{2}) 和 E(m,r)^C = E(m\times C,r \times C)
  4. 所以:C_{B1} = Enc(a\times x + y) =Enc(a)^x \times Enc(y)
  5. A:利用自己的私钥SK_{A}解开 A与B 即得到:谁更有钱

具体演示(点击下图进入全屏):

百万富翁


 

  • 11
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值