半诚实的高吞吐量三方秘密分享

本文详细介绍了在计算领域中,三方参与者进行的秘密分享机制,其中每个参与者持有部分信息,通过交互计算可以在不泄露完整秘密的前提下进行加法和乘法等同态操作。关键概念包括半诚实假设、(2,3)门限秘密分享以及在Z2n或有限域上的计算过程。
摘要由CSDN通过智能技术生成

三方秘密分享

本文介绍在[1]中提出来的三方秘密分享。这里的三方秘密分享是指计算的参与者有三个。秘密拥有者将秘密分享给三个参与者,然后三个参与者通过交互计算关于秘密的一个多项式函数。文章中的假设是三个参与者都是半诚实的,会遵守协议的规则,但可能通过额外的计算尝试获取秘密的信息。任意两个参与方即可重构秘密,也就是这是一个 ( 2 , 3 ) (2,3) (2,3)门限秘密分享。

需要注意的是,这里的计算是在 Z 2 n \mathbb{Z}_{2^n} Z2n或者有限域上。当 n = 1 n=1 n=1时,该秘密分享变成布尔秘密分享。

假设秘密拥有者为 O O O,参与者为 P 1 , P 2 , P 3 P_1,P_2,P_3 P1,P2,P3.下面介绍具体的秘密分享方案。

秘密分享

1、假设需要分享的秘密为 v v v,拥有者 O O O随机产生 x 1 + x 2 + x 3 = 0 x_1+x_2+x_3=0 x1+x2+x3=0.
2、 O O O计算 a 1 = x 3 − v a_1=x_3-v a1=x3v,然后将 ( x 1 , a 1 ) (x_1,a_1) (x1,a1)发送给 P 1 P_1 P1
3、 O O O计算 a 2 = x 1 − v a_2=x_1-v a2=x1v,然后将 ( x 2 , a 2 ) (x_2,a_2) (x2,a2)发送给 P 2 P_2 P2
4、 O O O计算 a 3 = x 2 − v a_3=x_2-v a3=x2v,然后将 ( x 3 , a 3 ) (x_3,a_3) (x3,a3)发送给 P 3 P_3 P3.

秘密重建

我们讨论,任意两个参与者都可以重建秘密:
1、 P 1 , P 2 P_1,P_2 P1,P2,计算 x 1 − a 2 = x 1 − ( x 1 − v ) = v x_1-a_2=x_1-(x_1-v)=v x1a2=x1(x1v)=v
2、 P 2 , P 3 P_2,P_3 P2,P3,计算 x 2 − a 3 = x 2 − ( x 2 − v ) = v x_2-a_3=x_2-(x_2-v)=v x2a3=x2(x2v)=v
3、 P 1 , p 3 P_1,p_3 P1,p3,计算 x 3 − a 1 = x 3 − ( x 3 − v ) = v x_3-a_1=x_3-(x_3-v)=v x3a1=x3(x3v)=v.

同态计算

秘密分享的同态计算指的是,在不重构秘密的情况下,计算函数值的秘密分享。一般最常见的是加法和乘法。

假设 v 1 v_1 v1的秘密分享为 ( x i , a i ) (x_i,a_i) (xi,ai) v 2 v_2 v2的秘密分享为 ( y i , b i ) (y_i,b_i) (yi,bi),其中 i = 1 , 2 , 3 i=1,2,3 i=1,2,3. 下面讨论如何同态的计算 v 1 + v 2 v_1+v_2 v1+v2 v 1 v 2 v_1v_2 v1v2的秘密分享。

加法

加法是显然的, z i = x i + y i , c i = a i + b i z_i=x_i+y_i,c_i=a_i+b_i zi=xi+yi,ci=ai+bi,则 ( z i , c i ) (z_i,c_i) (zi,ci) v 1 + v 2 v_1+v_2 v1+v2的秘密分享。也就是每个参与者本地将 v 1 , v 2 v_1,v_2 v1,v2的秘密分享加起来就可以了。

证明:
1、 c 1 = a 1 + b 1 = x 3 − v 1 + y 3 − v 2 = ( x 3 + y 3 ) − ( v 1 + v 2 ) = z 3 − ( v 1 + v 2 ) c_1=a_1+b_1=x_3-v_1+y_3-v_2=(x_3+y_3)-(v1+v_2)=z_3-(v_1+v_2) c1=a1+b1=x3v1+y3v2=(x3+y3)(v1+v2)=z3(v1+v2)
2、 c 2 = a 2 + b 2 = x 1 − v 1 + y 1 − v 2 = ( x 1 + y 1 ) − ( v 1 + v 2 ) = z 1 − ( v 1 + v 2 ) c_2=a_2+b_2=x_1-v_1+y_1-v_2=(x_1+y_1)-(v_1+v_2)=z_1-(v_1+v_2) c2=a2+b2=x1v1+y1v2=(x1+y1)(v1+v2)=z1(v1+v2);
3、 c 3 = a 3 + b 3 = x 2 − v 1 + y 2 − v 2 = ( x 2 + y 2 ) − ( v 1 + v 2 ) = z 2 − ( v 1 + v 2 ) c_3=a_3+b_3=x_2-v_1+y_2-v_2=(x_2+y_2)-(v_1+v_2)=z_2-(v_1+v_2) c3=a3+b3=x2v1+y2v2=(x2+y2)(v1+v2)=z2(v1+v2).

乘法

对于乘法,我们需要一组相关随机数 α + β + γ = 0 \alpha+\beta+\gamma=0 α+β+γ=0.

乘法分成两大步,第一步是得到乘法结果的 ( 3 , 3 ) (3,3) (3,3)门限分享,第二步是重新分享为 ( 2 , 3 ) (2,3) (2,3)门限。

一、计算
首先需要说明的是,在下面的计算中,我们会乘以3的逆元,在 Z 2 n \mathbb{Z}_{2^n} Z2n和有限域中3的逆元是存在的。( 2 n 2^n 2n和3互素)
1、 P 1 P_1 P1计算 r 1 = 3 − 1 ⋅ ( a 1 b 1 − x 1 y 1 + α ) r_1=3^{-1}\cdot(a_1b_1-x_1y_1+\alpha) r1=31(a1b1x1y1+α)
1、 P 2 P_2 P2计算 r 2 = 3 − 1 ⋅ ( a 2 b 2 − x 2 y 2 + β ) r_2=3^{-1}\cdot(a_2b_2-x_2y_2+\beta) r2=31(a2b2x2y2+β)
1、 P 1 P_1 P1计算 r 3 = 3 − 1 ⋅ ( a 3 b 3 − x 3 y 3 + γ ) r_3=3^{-1}\cdot(a_3b_3-x_3y_3+\gamma) r3=31(a3b3x3y3+γ).

我们证明 r 1 + r 2 + r 3 = v 1 v 2 r_1+r_2+r_3=v_1v_2 r1+r2+r3=v1v2.
证明:
3 r 1 + 3 r 2 + 3 r 3 = a 1 b 1 − x 1 y 1 + α + a 2 b 2 − x 2 y 2 + β + a 3 b 3 − x 3 y 3 + γ = a 1 b 1 + a 2 b 2 + a 3 b 3 − x 1 y 1 − x 2 y 2 − x 3 y 3 = ( x 3 − v 1 ) ( y 3 − v 2 ) + ( x 1 − v 1 ) ( y 1 − v 2 ) + ( x 2 − v 1 ) ( y 2 − v 2 ) − x 1 y 1 − x 2 y 2 − x 3 y 3 = 3 v 1 v 2 − x 3 v 2 − y 3 v 1 − x 1 v 2 − y 1 v 1 − x 2 v 2 − y 2 v 1 = 3 v 1 v 2 − ( x 1 + x 2 + x 3 ) v 2 − ( y 1 + y 2 + y 3 ) v 1 = 3 v 1 v 2 \begin{aligned} 3r_1+3r_2+3r_3&=a_1b_1-x_1y_1+\alpha+a_2b_2-x_2y_2+\beta+a_3b_3-x_3y_3+\gamma\\ &=a_1b_1+a_2b_2+a_3b_3-x_1y_1-x_2y_2-x_3y_3\\ &=(x_3-v_1)(y_3-v_2)+(x_1-v_1)(y_1-v_2)+(x_2-v_1)(y_2-v_2)-x_1y_1-x_2y_2-x_3y_3\\ &=3v_1v_2-x_3v_2-y_3v_1-x_1v_2-y_1v_1-x_2v_2-y_2v_1\\ &=3v_1v_2-(x_1+x_2+x_3)v_2-(y_1+y_2+y_3)v_1\\ &=3v_1v_2 \end{aligned} 3r1+3r2+3r3=a1b1x1y1+α+a2b2x2y2+β+a3b3x3y3+γ=a1b1+a2b2+a3b3x1y1x2y2x3y3=(x3v1)(y3v2)+(x1v1)(y1v2)+(x2v1)(y2v2)x1y1x2y2x3y3=3v1v2x3v2y3v1x1v2y1v1x2v2y2v1=3v1v2(x1+x2+x3)v2(y1+y2+y3)v1=3v1v2

二、重新分享
r 1 + r 2 + r 3 r_1+r_2+r_3 r1+r2+r3构成一个常规的三方算术秘密分享,接下来,我们将算术秘密分享,重新分享为 ( 2 , 3 ) (2,3) (2,3)门限的形式。

1、 P 3 P_3 P3 r 3 r_3 r3发送给 P 1 P_1 P1 P 1 P_1 P1计算 t 1 = r 3 − r 1 , k 1 = − 2 r 3 − r 1 t_1=r_3-r_1,k_1=-2r_3-r_1 t1=r3r1,k1=2r3r1
2、 P 1 P_1 P1 r 1 r_1 r1发送给 P 2 P_2 P2 P 2 P_2 P2计算 t 2 = r 1 − r 2 , k 2 = − 2 r 1 − r 2 t_2=r_1-r_2,k_2=-2r_1-r_2 t2=r1r2,k2=2r1r2
3、 P 2 P_2 P2 r 2 r_2 r2发送给 P 3 P_3 P3 P 3 P_3 P3计算 t 3 = r 2 − r 3 , k 3 = − 2 r 2 − r 3 t_3=r_2-r_3,k_3=-2r_2-r_3 t3=r2r3,k3=2r2r3.

证明:
1、 k 1 = − 2 r 3 − r 1 = r 2 − r 3 − ( r 1 + r 2 + r 3 ) = t 3 − v 1 v 2 k_1=-2r_3-r_1=r_2-r_3-(r_1+r_2+r_3)=t_3-v_1v_2 k1=2r3r1=r2r3(r1+r2+r3)=t3v1v2
2、 k 2 = − 2 r 1 − r 2 = r 3 − r 1 − ( r 1 + r 2 + r 3 ) = t 1 − v 1 v 2 k_2=-2r_1-r_2=r_3-r_1-(r_1+r_2+r_3)=t_1-v_1v_2 k2=2r1r2=r3r1(r1+r2+r3)=t1v1v2
3、 k 3 = − 2 r 2 − r 3 = r 1 − r 2 − ( r 1 + r 2 + r 3 ) = t 2 − v 1 v 2 k_3=-2r_2-r_3=r_1-r_2-(r_1+r_2+r_3)=t_2-v_1v_2 k3=2r2r3=r1r2(r1+r2+r3)=t2v1v2.

所以 ( t i , k i ) (t_i,k_i) (ti,ki) v 1 v 2 v_1v_2 v1v2 ( 2 , 3 ) (2,3) (2,3)门限秘密分享。

参考文献

[1] Araki, Toshinori, et al. “High-throughput semi-honest secure three-party computation with an honest majority.” Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. 2016.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值