MPC:百万富翁问题( 三 )


  • 三元组生成和分发,即\(P_1\)有\(a_1,b_1,c_1\),\(P_2\)有\(a_2,b_2,c_2\),\(P_3\)有\(a_3,b_3,c_3\) 。
\(\begin{array}{l} a=a_{1}+a_{2}+a_{3} \\ b=b_{1}+b_{2}+b_{3} \\ c=c_{1}+c_{2}+c_{3} \end{array}\)
其中\(c=ab\) 。
  • 密秘分发,即将\(x,y\)分发,得到以下结果:

MPC:百万富翁问题

文章插图
  • 秘密重构
(1)借助辅助信息,先计算出:\(ma=x-a,mb=y-b\),即利用上述加法特性,以\(x-a\)为例:三方共享计算\(x_1-a_1,x_2-a_2,x_3-a_3\),然后得到\(x-a\)
(2)计算\(xy=(x-a+a)(y-b+b)=(m a+a)(m b+b)=m a \cdot m b+m a \cdot b+m b \cdot a+c\),可以看出将\(xy\)问题转化为三个乘法问题和加法问题,其中\(ma,mb\)已经得到,因此只需各方计算出\(ma.b+mb.a+c\)的碎片即可:
MPC:百万富翁问题

文章插图
(3)然后将\(ma.b+mb.a+c\)与\(ma.mb\)相加,便可以得到\(xy\),进而通过这种方法求出\(xyz\) 。
?:
  • SS的乘法需要使用辅助信息三元组,在加法和乘法基础上,可以组合出更加复杂的运算,构造出更加完整、通用的MPC协议 。
  • GC构造的MPC更适合于逻辑运算或数字的比较运算,比如百万富翁问题 。
  • SS构造的MPC更适用于算术运算 。
姚期智院士在提出“百万富翁问题”的同时,给出了三种解决办法【OT、GC、SS?】,并讨论了在秘密投票(

经验总结扩展阅读