安全多方计算之BGW算法

BGW算法由Ben-Or等人于1988年提出来的,是早期支持多方安全计算的协议之一,其算法原理是基于Shamir秘密共享机制,BGW算法支持加法、数乘以及乘法运算

Shamir秘密共享原理可参考:shamir算法原理

Shamir秘密共享算法实现可参考:shamir算法实现

基于Shamir秘密共享机制的MPC原理其实很简单,看下面例子:

WXYZ分别拥有秘密abcd,现在想秘密计算abcd的和,可以这样做,W将a分成四份,分别将a2/a3/a4发送给XYZ,XYZ执行同样操作;然后W计算a1+b1+c1+d1,XYZ执行同样的计算,最后汇聚WXYZ的计算结果即可秘密得到abcd的和

在这里插入图片描述

BGW思想和上述的例子差不多,n个参与者Pi(i=1,2,…,n)拥有各自的秘密si,pi采用随机t次多项式fi(x)=si+a1,ix1+…+at,ixt将秘密si分享,并将<xj,fi(xj)>通过安全信道发送给pj,随后n个参与者通过BGW算法可以计算秘密值之间的加法、数乘以及乘法

下面具体介绍BGW的加法、数乘以及乘法运算,为方便叙述,考察一个算术门G,其具有两个输入:a和b,a和b分别被分享在两个t次多项式fa(x)和fb(x)上,并将<xi,yi=fa(xi),zi=fb(xi)>发送给Pi

f a ( x ) = a + a 1 X 1 + a 2 X 2 + . . . + a t X t f b ( x ) = b + b 1 X 1 + b 2 X 2 + . . . + b t X t f_a(x) = a + a_1X^1+a_2X^2+...+a_tX^t \\ f_b(x) = b + b_1X^1+b_2X^2+...+b_tX^t fa(x)=a+a1X1+a2X2+...+atXtfb(x)=b+b1X1+b2X2+...+btXt
加法运算:a + b

​ 令
H ( x ) = f a ( x ) + f b ( x ) H(x) = f_a(x)+f_b(x) H(x)=fa(x)+fb(x)
​ 则
h ( x ) = ∑ i = 1 t + 1 y i ∏ j = 1 , j ! = i t + 1 x − x i x i − x j + ∑ i = 1 t + 1 z i ∏ j = 1 , j ! = i t + 1 x − x i x i − x j = ∑ i = 1 t + 1 ( y i + z i ) ∏ j = 1 , j ! = i t + 1 − x i x i − x j h(x) = \sum_{i=1}^{t+1}{y_i\prod_{j=1,j!=i}^{t+1}{\frac{x-x_i}{x_i-x_j}}}+\sum_{i=1}^{t+1}{z_i\prod_{j=1,j!=i}^{t+1}{\frac{x-x_i}{x_i-x_j}}}=\sum_{i=1}^{t+1}{(y_i+z_i)\prod_{j=1,j!=i}^{t+1}{\frac{-x_i}{x_i-x_j}}} h(x)=i=1t+1yij=1,j!=it+1xixjxxi+i=1t+1zij=1,j!=it+1xixjxxi=i=1t+1(yi+zi)j=1,j!=it+1xixjxi
​ 所以t+1个参与者利用<xi,yi+zi>即可求得h(x),然后计算 h(0)即可得到a+b的和

数乘运算: c * a

​ 同加法运算类似,令
H ( x ) = c ∗ f a ( x ) H(x) = c*f_a(x) H(x)=cfa(x)
​ 则t+1个参与者利用<xi,c * yi>即可求得h(x),然后计算 h(0)即可得到 c * a 的结果

乘法运算:


H ( x ) = f a ( x ) ∗ f b ( x ) H(x) = f_a(x) * f_b(x) H(x)=fa(x)fb(x)
由于两个多项式相乘,h(x)的阶最高可能达到2t,超过秘密恢复的阈值(BGW要求2t+1<=n),所以这时要进行降阶处理,我们有如下等式成立

在这里插入图片描述

可知 A是一个范德蒙矩阵,其可逆,设逆为
在这里插入图片描述

则可得
a b = λ 1 ∗ H ( x 1 ) + λ 2 ∗ H ( X 2 ) + . . . λ 2 t + 1 ∗ H ( x 2 t + 1 ) ab = \lambda_1*H(x_1)+\lambda_2*H(X_2) + ... \lambda_{2t+1}*H(x_{2t+1}) ab=λ1H(x1)+λ2H(X2)+...λ2t+1H(x2t+1)

λ 1 、 λ 2 、 . . . 、 λ 2 t + 1 \lambda_1、\lambda_2、...、\lambda_{2t+1} λ1λ2...λ2t+1是公开参数, H x 1 、 H x 2 、 . . . 、 H x 2 t + 1 H_{x_1}、H_{x_2}、...、H_{x_{2t+1}} Hx1Hx2...Hx2t+1由各自的参与者Pi拥有,且不可泄露,然后上述问题可以看成每个参与者拥有秘密H(xi)的BGW加法和乘法问题,可以选择新的t阶多项式将秘密H(xi)分发,从而达到阶级效果

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值