一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种新型MPC密文计算方法与流程

2022-09-03 06:25:46 来源:中国专利 TAG:

一种新型mpc密文计算方法
技术领域
1.本发明涉及隐私计算技术领域,特别是涉及一种新型mpc密文计算方法。


背景技术:

2.mpc(multi-party compution)是基于密码学实现的隐私计算框架,具备高安全,高通用性的特点,但由于mpc自身的将数据分片存放的特点,在计算时需要各节点间通信,导致mpc的通信消耗较高,这也是mpc性能瓶颈的根源。所以,降低mpc的通信消耗是提升mpc性能的关键。因此,设计一种能降低mpc的通信消耗的mpc密文计算方法是十分有必要的。


技术实现要素:

3.本发明的目的是提供一种新型mpc密文计算方法,采用全同态算法协助实现基础算子的密文计算,降低了通信消耗,提高了安全性。
4.为实现上述目的,本发明提供了如下方案:
5.一种新型mpc密文计算方法,包括如下步骤:
6.步骤1:搭建mpc计算框架,设置计算节点p0、计算节点p1及计算节点p2,将计算节点p2设计为协计算节点,并通过全同态算法对其进行设置;
7.步骤2:生成将随机数集合r,并将计算节点p0及计算节点p2作为参与方,共享随机数集合r;
8.步骤3:数据方对数据进行分片,进行数据分发,将数据分发至计算节点p0及计算节点p1,分发完毕后,计算节点p0及计算节点p1进行数据计算。
9.可选的,步骤1中,搭建mpc计算框架,设置计算节点p0、计算节点p1及计算节点p2,将计算节点p2设计为协计算节点,并通过全同态算法对其进行设置,具体为:
10.搭建三方mpc计算框架,设置计算节点p0、计算节点p1及计算节点p2,其中,将计算节点p2设计为协计算节点,不直接接收数据方的分片数据,计算节点p2对全同态算法h进行初始化,初始化完毕后,将加密公钥pk及评估秘钥ek对外公布,并保留存储解密秘钥sk。
11.可选的,步骤2中,生成将随机数集合r,并将计算节点p0及计算节点p2作为参与方,共享随机数集合r,具体为:
12.计算节点p0生成随机数集合r为:
13.r={ri}
14.式中,rimod2n>0,生成完毕后,将其发送至计算节点p2并约定随机数r的选取方式。
15.可选的,步骤3中,数据方对数据进行分片,进行数据分发,将数据分发至计算节点p0及计算节点p1,具体为:
16.数据方生成数据x及y,并对其进行数据分片,得到:
17.x=(x1,x2)=x1 x2mod2n18.y=(y1,y2)=y1 y2mod2n19.其中,通过加密公钥pk对数据x1及y1进行加密,生成h(x1)及h(y1),将x1及y1发送至计算节点p0,将x2、y2、h(x1)及h(y1)发送至计算节点p1。
20.可选的,步骤3中,分发完毕后,计算节点p0及计算节点p1进行数据计算,具体为:
21.分发完毕后,计算节点p0及计算节点p1对数据进行加法计算,即:
22.[z]=[x] [y]=(x1 y1,x2 y2)
[0023]
其中,xi yi分别在计算节点p0及计算节点p1本地计算。
[0024]
可选的,步骤3中,分发完毕后,计算节点p0及计算节点p1进行数据计算,具体为:
[0025]
分发完毕后,计算节点p0及计算节点p1对数据进行乘法计算,即:
[0026]
z=x*y=(x1 x2)(y1 y2)=x1y1 x2y2 x1y2 x2y1[0027]
式中,x1y1及x2y2分别由计算节点p0及计算节点p1在本地完成,交叉项x1y2 x2y1由计算节点p1计算得到:
[0028]
t=y2h(x1) x2h(y1)=h(x1y2 x2y1)
[0029]
将数据t发送至计算节点p2,计算节点p2通过解密秘钥sk对数据t进行解密,得到交叉项x1y2 x2y1,计算节点p2从随机数集合r中按照约定的选取方式选取随机数r,计算得到:
[0030]
w=x1y2 x2y
1-r
[0031]
计算完毕后,将数据w返回给计算节点p1,其中计算节点p0的分片数据表示为x1y1 r,计算节点p2的分片数据表示为x2y2 w。
[0032]
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的新型mpc密文计算方法,该方法将计算节点p2设计为协计算节点,不直接接收数据方的分片数据,对常规技术中的aby3通信方案进行优化,降低了通信消耗,能够提高mpc的性能;该方法采用全同态算法协助实现基础算子的密文计算,能够用于实施数据可用但不可见的隐私计算,提高了安全性。
附图说明
[0033]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0034]
图1为本发明实施例新型mpc密文计算方法流程示意图;
[0035]
图2为本发明实施例新型mpc密文计算方法通信框架示意图;
[0036]
图3为aby3通讯框架示意图。
具体实施方式
[0037]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]
本发明的目的是提供一种新型mpc密文计算方法,采用全同态算法协助实现基础算子的密文计算,降低了通信消耗,提高了安全性。
[0039]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0040]
如图1及图2所示,本发明实施例提供的新型mpc密文计算方法,包括如下步骤:
[0041]
步骤1:搭建mpc计算框架,设置计算节点p0、计算节点p1及计算节点p2,将计算节点p2设计为协计算节点,并通过全同态算法对其进行设置;
[0042]
步骤2:生成将随机数集合r,并将计算节点p0及计算节点p2作为参与方,共享随机数集合r;
[0043]
步骤3:数据方对数据进行分片,进行数据分发,将数据分发至计算节点p0及计算节点p1,分发完毕后,计算节点p0及计算节点p1进行数据计算。
[0044]
步骤1中,搭建mpc计算框架,设置计算节点p0、计算节点p1及计算节点p2,将计算节点p2设计为协计算节点,并通过全同态算法对其进行设置,具体为:
[0045]
搭建三方mpc计算框架,设置计算节点p0、计算节点p1及计算节点p2,其中,将计算节点p2设计为协计算节点,不直接接收数据方的分片数据,计算节点p2对全同态算法h进行初始化,初始化完毕后,将加密公钥pk及评估秘钥ek对外公布,并保留存储解密秘钥sk。
[0046]
步骤2中,生成将随机数集合r,并将计算节点p0及计算节点p2作为参与方,共享随机数集合r,具体为:
[0047]
计算节点p0生成随机数集合r为:
[0048]
r={ri}
[0049]
式中,rimod2n>0,生成完毕后,将其发送至计算节点p2并约定随机数r的选取方式。
[0050]
步骤3中,数据方对数据进行分片,进行数据分发,将数据分发至计算节点p0及计算节点p1,具体为:
[0051]
数据方生成数据x及y,并对其进行数据分片,得到:
[0052]
x=(x1,x2)=x1 x2mod2n[0053]
y=(y1,y2)=y1 y2mod2n[0054]
其中,通过加密公钥pk对数据x1及y1进行加密,生成h(x1)及h(y1),将x1及y1发送至计算节点p0,将x2、y2、h(x1)及h(y1)发送至计算节点p1,该阶段的通信消耗为两包,若采用aby3通信方案,则需要将数据分发至三个数据节点,则该阶段的通信消耗上升为三包,增大通信消耗。
[0055]
步骤3中,分发完毕后,计算节点p0及计算节点p1进行数据计算,具体为:
[0056]
分发完毕后,计算节点p0及计算节点p1对数据进行加法计算,即:
[0057]
[z]=[x] [y]=(x1 y1,x2 y2)
[0058]
其中,xi yi分别在计算节点p0及计算节点p1本地计算,该阶段均在本地计算,没有通讯消耗。
[0059]
步骤3中,分发完毕后,计算节点p0及计算节点p1进行数据计算,具体为:
[0060]
分发完毕后,计算节点p0及计算节点p1对数据进行乘法计算,即:
[0061]
z=x*y=(x1 x2)(y1 y2)=x1y1 x2y2 x1y2 x2y1[0062]
式中,x1y1及x2y2分别由计算节点p0及计算节点p1在本地完成,交叉项x1y2 x2y1由计算节点p1计算得到:
[0063]
t=y2h(x1) x2h(y1)=h(x1y2 x2y1)
[0064]
将数据t发送至计算节点p2,计算节点p2通过解密秘钥sk对数据t进行解密,得到交叉项x1y2 x2y1,由于,计算节点p2并不知道其中任何子项的值,所以计算节点p2的解密操作是安全的,不会泄漏原数据x及y的任何信息;
[0065]
计算节点p2从随机数集合r中按照约定的选取方式选取随机数r,计算得到:
[0066]
w=x1y2 x2y
1-r
[0067]
计算完毕后,将数据w返回给计算节点p1,其中计算节点p0的分片数据表示为x1y1 r,计算节点p2的分片数据表示为x2y2 w;
[0068]
上述通信消耗为两包,若采用aby3通信方案,则数据消耗为三包,与本发明的方法相比,增加了数据消耗。
[0069]
如图3所示,以数据x及y为例,简述现有技术中的aby3通信方案:
[0070]
对数据x及y进行分片,得到
[0071]
[x]=(x1,x2,x3);[y]=(y1,y2,y3)
[0072]
其逻辑关系为:
[0073]
x=x1 x2 x3mod2n[0074]
y=y1 y2 y3mod2n[0075]
式中,n为选定的整数域,一般为32或64;
[0076]
通信过程具体为:
[0077]
将数据x及y分片,分别发送个三个计算方法节点,其中该阶段通信消耗是固定钉的,每个数据分片后都要发送给三个计算阶段,通信消耗为三包,而本发明为两包;
[0078]
分发完毕后,进行数据计算,其中加法运算为:
[0079]
[z]=[x] [y]=(x1 y1,x2 y2,x3 y3)
[0080]
式中,xi yi均在本地计算,没有通信消耗;
[0081]
乘法运算为:
[0082]
[z]=[xy]
[0083]
z1=x1y1 x1y2 x2y1 α1[0084]
z2=x2y2 x2y3 x3y2 α2[0085]
z3=x3y3 x3y1 x1y3 α3[0086]
当计算节点pi,其中i=0、1、2时,在本地计算得到z
i 1
,需要将它发送至p
i-1
,则通信消耗为三包,而本发明的通信消耗为两包,因此,本发明降低了通信消耗。
[0087]
本发明提供的新型mpc密文计算方法,该方法将计算节点p2设计为协计算节点,不直接接收数据方的分片数据,对常规技术中的aby3通信方案进行优化,降低了通信消耗,能够提高mpc的性能;该方法采用全同态算法协助实现基础算子的密文计算,能够用于实施数据可用但不可见的隐私计算,提高了安全性。
[0088]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献