基于多方安全的数据处理方法及相关装置与流程



1.本技术涉及隐私计算技术领域以及计算机技术领域,具体涉及一种基于多方安全的数据处理方法及相关装置。


背景技术:



2.实际应用中,安全多方计算主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。在安全多方计算乘法算子中,需要预处理一组乘法三元组,可加快在线计算乘法效率,但是,针对安全多方计算应用场景,得到三元组的效率较低,从而,降低了计算效率,因此,如何在安全多方计算应用场景下,快速得到三元组,以提升计算效率的问题亟待解决。


技术实现要素:



3.本技术实施例提供了一种基于多方安全的数据处理方法及相关装置,可以在安全多方计算应用场景下,快速得到三元组,以提升计算效率。
4.第一方面,本技术实施例提供一种基于多方安全的数据处理方法,应用于多方计算系统,所述多方计算系统包括n个计算节点,所述n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数,所述方法包括:
5.通过所述第一计算节点生成第一随机数种子,并将该第一随机数种子输入到所述第一计算节点的可信执行环境中;
6.通过所述第一计算节点在所述可信执行环境中与所述n-1个计算节点进行随机数种子协商,以得到所述可信执行环境下的n-1个第二随机数种子,所述n-1个第二随机数种子与所述n-1个计算节点一一对应;
7.通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系;
8.通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果。
9.第二方面,本技术实施例提供了一种基于多方安全的数据处理装置,应用于多方计算系统,所述多方计算系统包括n个计算节点,所述n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数,所述装置包括:生成单元、协商单元、派发单元和确定单元,其中,
10.所述生成单元,用于通过所述第一计算节点生成第一随机数种子,并将该第一随机数种子输入到所述第一计算节点的可信执行环境中;
11.通过所述第一计算节点在所述可信执行环境中与所述n-1个计算节点进行随机数种子协商,以得到所述可信执行环境下的n-1个第二随机数种子,所述n-1个第二随机数种
子与所述n-1个计算节点一一对应;
12.通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系;
13.通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果。
14.第三方面,本技术实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本技术实施例第一方面中的步骤的指令。
15.第四方面,本技术实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本技术实施例第一方面中所描述的部分或全部步骤。
16.第五方面,本技术实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本技术实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
17.实施本技术实施例,具备如下有益效果:
18.可以看出,本技术实施例中所描述的基于多方安全的数据处理方法及相关装置,应用于多方计算系统,该多方计算系统包括n个计算节点,n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数,通过第一计算节点生成第一随机数种子,并将该第一随机数种子输入到第一计算节点的可信执行环境中,通过第一计算节点在可信执行环境中与n-1个计算节点进行随机数种子协商,以得到可信执行环境下的n-1个第二随机数种子,n-1个第二随机数种子与n-1个计算节点一一对应;通过第一计算节点在可信执行环境中,利用第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;第一随机数集和n-1个第二随机数集满足预设函数关系,通过第一计算节点在可信执行环境中,根据第一随机数集和n-1个第二随机数集和预设函数关系确定三元组分片结果,从而,可以利用可信执行环境的安全性,保证第二计算节点的三元组分片不会被第一计算节点窃取,保证数据安全性,另外,利用密钥协商协议,保证第二计算节点的随机数种子只存在于可信执行环境与第一计算节点中,还可以利用随机数发生器的性质,只需协商一次就可以派发出多组三元组,在协商第二计算节点的随机数种子之后,便不需要在进行通信,如此,能够在安全多方计算应用场景下,快速得到三元组,以提升计算效率。
附图说明
19.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
20.图1是本技术实施例提供的一种基于多方安全的数据处理方法的演示示意图;
21.图2是本技术实施例提供的一种用于实现基于多方安全的数据处理方法的多方计算系统的架构示意图;
22.图3是本技术实施例提供的一种基于多方安全的数据处理方法的流程示意图;
23.图4是本技术实施例提供的另一种基于多方安全的数据处理方法的流程示意图;
24.图5是本技术实施例提供的一种电子设备的结构示意图;
25.图6是本技术实施例提供的一种基于多方安全的数据处理装置的功能单元组成框图。
具体实施方式
26.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
28.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
29.本技术实施例所描述计算节点可以为电子设备,电子设备可以包括智能手机(如android手机、ios手机、windows phone手机等)、平板电脑、掌上电脑、行车记录仪、服务器、笔记本电脑、移动互联网设备(mid,mobile internet devices)或穿戴式设备(如智能手表、蓝牙耳机)等,上述仅是举例,而非穷举,包含但不限于上述电子设备,该电子设备也可以为云服务器,或者,该电子设备也可以为计算机集。
30.具体实际应用中,各个计算节点可以为以下至少一种:银行方、供应商、经销商、运营商等等,在此不做限定。每一计算节点均可以有自己的本地数据集合。
31.举例说明下,如图1所示,在实际应用中,以2数据方,2计算节点为例。数据拥有方a、b想要安全计算某一标签的乘法计算结果,而不泄露其输入数据。数据拥有方a将数据x拆分为x0、x1,其中x=x0+x1,数据拥有方b将数据y拆分为y0、y1,其中y=y0+y1。数据拥有方a将x0发送至计算节点p0,x1发送至计算节点p1,数据拥有方b将y0发送至计算节点p0,y1发送至计算节点p1。计算结果为z,其中z=z0+z1。
32.而安全多方计算节点p0与p1预生成乘法三元组,p0拥有a0、b0、c0,p1拥有a1,b1,c1,其中,a0、b0、c0,a1,b1,c1为乘法三元组,同时,a0、b0、c0,a1,b1,c1满足(a0+a1)*(b0+b1)=(c0+c1)且不能相互透露。安全两方乘法如图1所示,具体如下:
33.令:e0=x0-a0,f0=y0-b0;e1=x1-a1,f1=y1-b1;将e0,f0发送给p1,将e1,f1发送给p0;再令e=e0+e1,f=f0+f1;则p0侧可以得到z0=f*a0+e*b0+c0,p1侧可以得到z1=e*f+f*a1+e*b1+c1。
34.进而,计算结果z0,z1满足z=z0+z1。数据拥有方a若想恢复结果可将计算节点p0计算结果z0,p1计算结果z1,索取至本地后计算z0+z1=z,即可得到乘法计算结果。
35.下面对本技术实施例进行详细介绍。
36.相关技术中,乘法三元组是计算节点p0和p1协商一组以下关系的数字,且不能相互透露值。具体如下:
37.p0:a0,b0,c0;p1:a1,b1,c1;且满足(a0+a1)*(b0+b1)=(c0+c1)。
38.具体实现中,一般是通过同态加密(homomorphic encryption,he)或是不经意传输(oblivious transfer,ot)。其中,he是一种加密形式,它允许人们对密文进行特定形式的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一致,ot是密码学中的一类协议,实现了发送方将潜在的许多信息中的一个传递给接收方,但对接收方所接收信息保持未知状态。协议来构造乘法三元组。现介绍使用he方案构造乘法三元组协议。
39.以2个计算节点为例,计算节点可以包括p0和p1,其具体可以按照如下公式确定三元组分片结果:
40.p0:
41.p1:
42.c1=a1*b1-r(mod2
l
)
43.p0

p1:enc0(a0),enc0(b0)
44.p1

p0:d=enc0(a0)
b1
·
enc0(b0)
a1
·
enc0(r)
45.p0:c0=a0+b0+dec0(d)(mod2
l
)
46.具体实现中,可以包括如下步骤:
47.s1:p0,随机选取a0,b0;
48.s2:p1,随机选取a1,b1,r;计算c1=a1*b1-r;
49.s3:p0使用公钥对a0,b0加密,加密结果用enc0(a0)、enc0(b0)表示,并将其加密结果发送至p1。其中,enc0表示使用p0的公钥进行加密。
50.s4:p1使用p0公钥加密r,结果用enc0(r)表示。计算公式如下:
51.d=enc0(a0)
b1
·
enc0(b0)
a1
·
enc0(r)
52.接着,再将d发送至p1;
53.s5:p0将d解密,解密结果用dec0(d)表示。计算c0=a0+b0+dec0(d),其中dec0表示是用p0的私钥进行解密。
54.其中,表示大小为2
l
的整数环,l为任意整数,例如,在计算机中通常可以取8、16、32、64等等。表示在整数环中随机取一个值。
55.相关技术中,以使用he构造乘法三元组为例,he为保证其安全性,会设置很大的安全参数,这就会导致he的计算效率会很低,同时其密文长度较大,会造成严重的通信开销,另外,使用ot构造乘法三元组:ot是按比特进行协议的,若需协商64位的一组乘法三元组,
则需要进行64次ot交互,会造成大量的通信开销。
56.为了解决相关技术的缺陷,请参阅图2,图2是本技术实施例提供的一种用于实现基于多方安全的数据处理方法的多方计算系统的架构示意图,如图所示,应用于多方计算系统,所述多方计算系统包括n个计算节点,所述n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数;该系统能够实现如下功能:
57.通过所述第一计算节点生成第一随机数种子,并将该第一随机数种子输入到所述第一计算节点的可信执行环境中;
58.通过所述第一计算节点在所述可信执行环境中与所述n-1个计算节点进行随机数种子协商,以得到所述可信执行环境下的n-1个第二随机数种子,所述n-1个第二随机数种子与所述n-1个计算节点一一对应;
59.通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系;
60.通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果。
61.可选的,在n为2时,所述第一随机数集包括:第一随机数和第二随机数,所述第二随机数集包括:第三随机数、第四随机数和第五随机数;
62.在所述通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果方面,包括:
63.通过所述第一计算节点在所述可信执行环境中,将所述第一随机数和所述第二随机数、所述第三随机数、所述第四随机数和所述第五随机数代入所述预设函数关系,得到所述三元组分片结果。
64.可选的,该系统还能够实现如下功能:
65.通过所述第一计算节点在所述可信执行环境中,删除所述n-1个第二随机数集,以及输出所述第一随机数集和所述三元组分片结果。
66.可选的,所述第一随机数发生器与所述第二随机数发生器相同;
67.或者,
68.所述第一随机数发生器与所述第二随机数发生器不相同。
69.可选的,在所述利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集方面,包括:
70.获取公钥密码学算法的公共参数;
71.利用所述第一随机数种子与所述第一随机数发生器根据所述公共参数派发随机数,得到所述第一随机数集;
72.在所述利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集方面,包括:
73.利用所述n-1个第二随机数种子与所述第二随机数发生器根据所述公共参数派发随机数,得到所述n-1个第二随机数集。
74.请参阅图3,图3是本技术实施例提供的一种基于多方安全的数据处理方法的流程
示意图,应用于图2所示的多方计算系统,所述多方计算系统包括n个计算节点,所述n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数;如图所示,本基于多方安全的数据处理方法包括:
75.301、通过所述第一计算节点生成第一随机数种子,并将该第一随机数种子输入到所述第一计算节点的可信执行环境中。
76.本技术实施例中,多方计算系统可以包括n个计算节点,n个计算节点可以包括第一计算节点和n-1个第二计算节点,n为大于1的整数。
77.本技术实施例,不仅可适用于2节点多方安全计算,针对2节点以上的更多节点安全计算中乘法三元组依然可适用。
78.具体实现中,可以通过第一计算节点利用随机数种子生成算法生成第一随机数种子,并将该第一随机数种子输入到第一计算节点的可信执行环境中。
79.302、通过所述第一计算节点在所述可信执行环境中与所述n-1个计算节点进行随机数种子协商,以得到所述可信执行环境下的n-1个第二随机数种子,所述n-1个第二随机数种子与所述n-1个计算节点一一对应。
80.本技术实施例中,可信执行环境(trusted execution environment,tee)具体是指通过软硬件方法在中央处理器中构建一个安全区域,保证其内部加载的程序和数据在机密性和完整性上得到保护。具体实现中,可以通过可信执行环境来隔离与宿主机的关联,通过可信执行环境中协商随机数种子,利用相同种子随机数发生器派发的随机数相同这一性质,协商乘法三元组。
81.本技术实施例中,可信执行环境可以包括以下至少一种:intel sgx、amd sev、arm trust zone等可信硬件实现的可信执行环境,在此不做限定。
82.具体实现中,可以通过第一计算节点在可信执行环境中与n-1个计算节点进行随机数种子协商,以得到可信执行环境下的n-1个第二随机数种子,n-1个第二随机数种子与n-1个计算节点一一对应,即每一个第二计算节点对应一个第二随机数种子。
83.303、通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系。
84.本技术实施例中,预设函数关系可以预先设置或者系统默认,该预设函数关系适用于矩阵乘法计算、与门计算中的三元组协商。
85.通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系。
86.可选的,上述步骤303,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集,可以包括如下步骤:
87.31、获取公钥密码学算法的公共参数;
88.32、利用所述第一随机数种子与所述第一随机数发生器根据所述公共参数派发随机数,得到所述第一随机数集;
89.则上述步骤,利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,可以按照如下方式实施:
90.利用所述n-1个第二随机数种子与所述第二随机数发生器根据所述公共参数派发随机数,得到所述n-1个第二随机数集。
91.本技术实施例中,可以通过公钥密码学算法协商随机数种子,公钥密码学算法可以包括以下至少一种:diffie-hellman(dh)算法、椭圆曲线diffie-hellman(ecdh)算法、triple diffie-hellman(t-dh)算法、supersingular isogeny diffie

hellman key exchange(sidh)算法等等,在此不做限定。
92.具体实现中,第一计算节点可以获取公钥密码学算法的公共参数,再利用第一随机数种子与第一随机数发生器根据公共参数派发随机数,得到第一随机数集,同样的,可以利用n-1个第二随机数种子与第二随机数发生器根据公共参数派发随机数,得到n-1个第二随机数集。
93.可选的,所述第一随机数发生器与所述第二随机数发生器相同;
94.或者,
95.所述第一随机数发生器与所述第二随机数发生器不相同。
96.本技术实施例中,第一随机数发生器与第二随机数发生器相同或者不同。
97.其中,第一随机数发生器可以包括以下至少一种算法生成的随机数发生器:梅森旋转算法、线性同余法等等,在此不做限定。
98.其中,第二随机数发生器可以包括以下至少一种算法生成的随机数发生器:梅森旋转算法、线性同余法等等,在此不做限定。
99.304、通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果。
100.本技术实施例中,由于预设函数关系为第一随机数集与n-1个第二随机数集之间的关系,进而,在已知第一随机数集与n-1个第二随机数集以及预设函数关系的情况下,则可以计算出需要确定的未知量,可以通过第一计算节点在可信执行环境中,根据第一随机数集和n-1个第二随机数集和预设函数关系确定三元组分片结果,在n=2时,可以得到一个三元组分片结果,在n大于2时,可以得到多个三元组分片结果。
101.实际应用中,在涉及到三元组应用的一些场景,例如,数据求交、秘密共享的一些场景均可以用到上述本技术实施例。
102.可选的,在n为2时,所述第一随机数集包括:第一随机数和第二随机数,所述第二随机数集包括:第三随机数、第四随机数和第五随机数,
103.则上述步骤304,通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果,可以按照如下方式实施:
104.通过所述第一计算节点在所述可信执行环境中,将所述第一随机数和所述第二随机数、所述第三随机数、所述第四随机数和所述第五随机数代入所述预设函数关系,得到所述三元组分片结果。
105.本技术实施例中,在n=2时,即多方计算系统只包括第一计算节点和1个第二计算节点,则第一随机数集可以包括:第一随机数和第二随机数,第二随机数集包括:第三随机
数、第四随机数和第五随机数,假设第一随机数为a0,第二随机数为b0,第三随机数a1、第四随机数b1和第五随机数c1,预设函数关系:(a0+a1)*(b0+b1)=(c0+c1),其中,c0为三元组分片结果,c0=(a0+a1)*(b0+b1)-c1,基于此,则可以快速得到三元组分片结果。
106.可选的,还可以包括如下步骤:
107.通过所述第一计算节点在所述可信执行环境中,删除所述n-1个第二随机数集,以及输出所述第一随机数集和所述三元组分片结果。
108.本技术实施例中,可以通过第一计算节点在可信执行环境中,删除n-1个第二随机数集,以及输出第一随机数集和三元组分片结果,如此,可以节省内存开销,另外,还可以将n-1个第二随机数集分别发送给对应的第二计算节点。
109.可选的,具体实现中,还可以利用cpu内核数增加多线程优化来提升计算效率。
110.具体实现中,举例说明下,如要协商多组三元组可使用多线程加速,可在p0和p1协商随机数种子时协商出seed_b0、seed_b1、seed_b2三个种子。
111.具体的,p0与p1可以启用多线程同时派发,具体如下:
112.a1=rng(seed_b0);
113.b1=rng(seed_b1);
114.c1=rng(seed_b2)。
115.即p0可以派发出a1、b1和c1,每一个种子则可以对应一个线程,当然,每一个线程也可以对应一个核数。
116.而p0也可生成2个随机数种子seed_a0、seed_a1输入至tee中,进行多线程派发,具体如下:
117.a0=rng(seed_a0);
118.b0=rng(seed_a1)。
119.即p1可以派发出a0和b0,每一个种子则可以对应一个线程,当然,每一个线程也可以对应一个核数。
120.举例说明下,如图4所示,本技术实施例中仅以展示两方计算情况下的协商一组乘法三元组过程作为示例,具体实现中,其可以按照如下过程实施:
121.1.p0生成自身随机数种子输入到tee(可信执行环境)中,具体如下:seed_a=random(),再将seed_a输入到tee,即input tee:seed_a;
122.2.在p0的tee中与p1通过密钥协商算法(如diffie-hellman算法)进行随机数种子协商,该步骤执行完后在p0的tee中有p1的随机数种子,以dh算法为例,假设其公共安全参数为:p,g;具体的,p0的tee内:a=random();a=g^a mod p,再将a、p、g发送给p1;p1:b=random();seed_b=a^b mod p;b=g^b mod p,再将b发送给p0的tee内;p0的tee内:seeb_b=b^a mod p。
123.3.在p0的tee环境中,利用p0随机数种子与公开的随机数发生器派发随机数a0,b0,利用p1随机数种子与公开的随机数发生器派发随机数a1,b1,c1并计算出满足三元组的c0,删除p1随机数种子,a1,b1,c1。tee输出a0,b0,c0;该步骤中的随机数发生器可用不同随机数生成算法替换,具体如下:
124.a1,b1,c1=rng(seed_b);
125.a0,b0=rng(seed_a);
126.c0=(a0+a1)(b0+b1)-c1;
127.delete(a1,b1,c1,seed_b)。
128.4.p1利用协商的随机数种子生成a1,b1,c1,具体的,a1,b1,c1=rng(seed_b);
129.5.此时p0和p1中协商出一组满足三元组关系的随机数,即p0拥有a0,b0,c0;p1拥有a1,b1,c1。
130.当然,还可以输出a0,b0,c0,在输出之前应在p0的tee中删除p1的随机数种子seed_b与p1的三元组分片a1,b1,c1。具体的,删除为delete(a1,b1,c1,seed_b),输入为output tee:a0,b0,c0。
131.可以看出,本技术实施例中,利用可信执行环境的安全性,保证p1三元组分片不会被p0窃取,另外,利用密钥协商协议,保证p1的随机数种子只存在于可信执行环境与p0中,还可以利用随机数发生器的性质,只需协商一次就可以派发出多组三元组,在协商p1的随机数种子之后,便不需要在进行通信。
132.进一步的,当本技术实施例中,协商多组三元组时,在协商p1的随机数种子之后,不需要频繁出入可信执行环境,减少了系统中断处理次数,提高了计算效率。
133.本技术实施例中,可以利用可信执行环境的安全性,将第二计算节点的随机种子存在第一计算节点的可信执行环境之中,且利用随机数发生器的性质,第二计算节点的随机数生成之后,后续计算不需要进行交互通信,本协议只使用一次公钥密码学算法(dh算法),就可构造任意组乘法三元组,与传统方案相比,协商n组三元组至少需要n次公钥密码学算法,本技术实施例能够有效减少了网络通信与计算开销。从而,既可以提升协商三元组效率,又可以保证安全性。
134.可以看出,本技术实施例中所描述的基于多方安全的数据处理方法,应用于多方计算系统,该多方计算系统包括n个计算节点,n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数,通过第一计算节点生成第一随机数种子,并将该第一随机数种子输入到第一计算节点的可信执行环境中,通过第一计算节点在可信执行环境中与n-1个计算节点进行随机数种子协商,以得到可信执行环境下的n-1个第二随机数种子,n-1个第二随机数种子与n-1个计算节点一一对应;通过第一计算节点在可信执行环境中,利用第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;第一随机数集和n-1个第二随机数集满足预设函数关系,通过第一计算节点在可信执行环境中,根据第一随机数集和n-1个第二随机数集和预设函数关系确定三元组分片结果,从而,可以利用可信执行环境的安全性,保证第二计算节点的三元组分片不会被第一计算节点窃取,保证数据安全性,另外,利用密钥协商协议,保证第二计算节点的随机数种子只存在于可信执行环境与第一计算节点中,还可以利用随机数发生器的性质,只需协商一次就可以派发出多组三元组,在协商第二计算节点的随机数种子之后,便不需要在进行通信,如此,能够在安全多方计算应用场景下,快速得到三元组,以提升计算效率。
135.与上述实施例一致地,请参阅图5,图5是本技术实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,应用于多方计算
系统,所述多方计算系统包括n个计算节点,所述n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数;本技术实施例中,上述程序包括用于执行以下步骤的指令:
136.通过所述第一计算节点生成第一随机数种子,并将该第一随机数种子输入到所述第一计算节点的可信执行环境中;
137.通过所述第一计算节点在所述可信执行环境中与所述n-1个计算节点进行随机数种子协商,以得到所述可信执行环境下的n-1个第二随机数种子,所述n-1个第二随机数种子与所述n-1个计算节点一一对应;
138.通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系;
139.通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果。
140.可选的,在n为2时,所述第一随机数集包括:第一随机数和第二随机数,所述第二随机数集包括:第三随机数、第四随机数和第五随机数;
141.在所述通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果方面,上述程序包括用于执行以下步骤的指令:
142.通过所述第一计算节点在所述可信执行环境中,将所述第一随机数和所述第二随机数、所述第三随机数、所述第四随机数和所述第五随机数代入所述预设函数关系,得到所述三元组分片结果。
143.可选的,上述程序还包括用于执行以下步骤的指令:
144.通过所述第一计算节点在所述可信执行环境中,删除所述n-1个第二随机数集,以及输出所述第一随机数集和所述三元组分片结果。
145.可选的,所述第一随机数发生器与所述第二随机数发生器相同;
146.或者,
147.所述第一随机数发生器与所述第二随机数发生器不相同。
148.可选的,在所述利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集方面,上述程序包括用于执行以下步骤的指令:
149.获取公钥密码学算法的公共参数;
150.利用所述第一随机数种子与所述第一随机数发生器根据所述公共参数派发随机数,得到所述第一随机数集;
151.在所述利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集方面,上述程序包括用于执行以下步骤的指令:
152.利用所述n-1个第二随机数种子与所述第二随机数发生器根据所述公共参数派发随机数,得到所述n-1个第二随机数集。
153.图6是本技术实施例中所涉及的一种基于多方安全的数据处理装置600的功能单元组成框图。该基于多方安全的数据处理装置600应用于多方计算系统,所述多方计算系统包括n个计算节点,所述n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的
整数,所述装置包括:生成单元601、协商单元602、派发单元603和确定单元604,其中,
154.所述生成单元601,用于通过所述第一计算节点生成第一随机数种子,并将该第一随机数种子输入到所述第一计算节点的可信执行环境中;
155.所述协商单元602,用于通过所述第一计算节点在所述可信执行环境中与所述n-1个计算节点进行随机数种子协商,以得到所述可信执行环境下的n-1个第二随机数种子,所述n-1个第二随机数种子与所述n-1个计算节点一一对应;
156.所述派发单元603,用于通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系;
157.所述确定单元604,用于通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果。
158.可选的,在n为2时,所述第一随机数集包括:第一随机数和第二随机数,所述第二随机数集包括:第三随机数、第四随机数和第五随机数;
159.在所述通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果方面,所述确定单元604具体用于:
160.通过所述第一计算节点在所述可信执行环境中,将所述第一随机数和所述第二随机数、所述第三随机数、所述第四随机数和所述第五随机数代入所述预设函数关系,得到所述三元组分片结果。
161.可选的,所述装置600还具体用于:
162.通过所述第一计算节点在所述可信执行环境中,删除所述n-1个第二随机数集,以及输出所述第一随机数集和所述三元组分片结果。
163.可选的,所述第一随机数发生器与所述第二随机数发生器相同;
164.或者,
165.所述第一随机数发生器与所述第二随机数发生器不相同。
166.可选的,在所述利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集方面,所述派发单元603具体用于:
167.获取公钥密码学算法的公共参数;
168.利用所述第一随机数种子与所述第一随机数发生器根据所述公共参数派发随机数,得到所述第一随机数集;
169.在所述利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集方面,所述派发单元603具体用于:
170.利用所述n-1个第二随机数种子与所述第二随机数发生器根据所述公共参数派发随机数,得到所述n-1个第二随机数集。
171.可以看出,本技术实施例中所描述的基于多方安全的数据处理装置,应用于多方计算系统,该多方计算系统包括n个计算节点,n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数,通过第一计算节点生成第一随机数种子,并将该第一随机数种
子输入到第一计算节点的可信执行环境中,通过第一计算节点在可信执行环境中与n-1个计算节点进行随机数种子协商,以得到可信执行环境下的n-1个第二随机数种子,n-1个第二随机数种子与n-1个计算节点一一对应;通过第一计算节点在可信执行环境中,利用第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;第一随机数集和n-1个第二随机数集满足预设函数关系,通过第一计算节点在可信执行环境中,根据第一随机数集和n-1个第二随机数集和预设函数关系确定三元组分片结果,从而,可以利用可信执行环境的安全性,保证第二计算节点的三元组分片不会被第一计算节点窃取,保证数据安全性,另外,利用密钥协商协议,保证第二计算节点的随机数种子只存在于可信执行环境与第一计算节点中,还可以利用随机数发生器的性质,只需协商一次就可以派发出多组三元组,在协商第二计算节点的随机数种子之后,便不需要在进行通信,如此,能够在安全多方计算应用场景下,快速得到三元组,以提升计算效率。
172.可以理解的是,本实施例的基于多方安全的数据处理装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
173.本技术实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
174.本技术实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
175.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
176.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
177.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
178.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
179.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
180.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例上述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
181.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-only memory,简称:rom)、随机存取器(英文:random access memory,简称:ram)、磁盘或光盘等。
182.以上对本技术实施例进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:


1.一种基于多方安全的数据处理方法,其特征在于,应用于多方计算系统,所述多方计算系统包括n个计算节点,所述n个计算节点包括第一计算节点和n-1个第二计算节点,n为大于1的整数,所述方法包括:通过所述第一计算节点生成第一随机数种子,并将该第一随机数种子输入到所述第一计算节点的可信执行环境中;通过所述第一计算节点在所述可信执行环境中与所述n-1个计算节点进行随机数种子协商,以得到所述可信执行环境下的n-1个第二随机数种子,所述n-1个第二随机数种子与所述n-1个计算节点一一对应;通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系;通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果。2.根据权利要求1所述的方法,其特征在于,在n为2时,所述第一随机数集包括:第一随机数和第二随机数,所述第二随机数集包括:第三随机数、第四随机数和第五随机数;所述通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果,包括:通过所述第一计算节点在所述可信执行环境中,将所述第一随机数和所述第二随机数、所述第三随机数、所述第四随机数和所述第五随机数代入所述预设函数关系,得到所述三元组分片结果。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:通过所述第一计算节点在所述可信执行环境中,删除所述n-1个第二随机数集,以及输出所述第一随机数集和所述三元组分片结果。4.根据权利要求1或2所述的方法,其特征在于,所述第一随机数发生器与所述第二随机数发生器相同;或者,所述第一随机数发生器与所述第二随机数发生器不相同。5.根据权利要求4所述的方法,其特征在于,所述利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集,包括:获取公钥密码学算法的公共参数;利用所述第一随机数种子与所述第一随机数发生器根据所述公共参数派发随机数,得到所述第一随机数集;所述利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,包括:利用所述n-1个第二随机数种子与所述第二随机数发生器根据所述公共参数派发随机数,得到所述n-1个第二随机数集。6.一种基于多方安全的数据处理装置,其特征在于,应用于多方计算系统,所述多方计算系统包括n个计算节点,所述n个计算节点包括第一计算节点和n-1个第二计算节点,n为
大于1的整数,所述装置包括:生成单元、协商单元、派发单元和确定单元,其中,所述生成单元,用于通过所述第一计算节点生成第一随机数种子,并将该第一随机数种子输入到所述第一计算节点的可信执行环境中;所述协商单元,用于通过所述第一计算节点在所述可信执行环境中与所述n-1个计算节点进行随机数种子协商,以得到所述可信执行环境下的n-1个第二随机数种子,所述n-1个第二随机数种子与所述n-1个计算节点一一对应;所述派发单元,用于通过所述第一计算节点在所述可信执行环境中,利用所述第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;以及利用所述n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集,每一第二随机数种子对应一个第二随机数集;所述第一随机数集和所述n-1个第二随机数集满足预设函数关系;所述确定单元,用于通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果。7.根据权利要求6所述的装置,其特征在于,在n为2时,所述第一随机数集包括:第一随机数和第二随机数,所述第二随机数集包括:第三随机数、第四随机数和第五随机数;所述通过所述第一计算节点在所述可信执行环境中,根据所述第一随机数集和所述n-1个第二随机数集和所述预设函数关系确定三元组分片结果,包括:通过所述第一计算节点在所述可信执行环境中,将所述第一随机数和所述第二随机数、所述第三随机数、所述第四随机数和所述第五随机数代入所述预设函数关系,得到所述三元组分片结果。8.根据权利要求6或7所述的装置,其特征在于,所述装置还具体用于:通过所述第一计算节点在所述可信执行环境中,删除所述n-1个第二随机数集,以及输出所述第一随机数集和所述三元组分片结果。9.一种电子设备,其特征在于,包括处理器、存储器,所述存储器用于存储一个或多个程序,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-5任一项所述的方法中的步骤的指令。10.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-5任一项所述的方法。

技术总结


本申请实施例公开了一种基于多方安全的数据处理方法及相关装置,方法包括:通过第一计算节点生成第一随机数种子,将该第一随机数种子输入到第一计算节点的可信执行环境中;在可信执行环境中与n-1个计算节点进行随机数种子协商,得到可信执行环境下的n-1个第二随机数种子;利用第一随机数种子与第一随机数发生器派发随机数,得到第一随机数集;利用n-1个第二随机数种子与第二随机数发生器派发随机数,得到n-1个第二随机数集;第一随机数集和n-1个第二随机数集满足预设函数关系;根据第一随机数集和n-1个第二随机数集和预设函数关系确定三元组分片结果。采用本申请实施例可以在安全多方计算应用场景下,快速得到三元组,以提升计算效率。计算效率。计算效率。


技术研发人员:

张涛 冯新宇 王湾湾 何浩 姚明

受保护的技术使用者:

深圳市洞见智慧科技有限公司

技术研发日:

2022.11.18

技术公布日:

2023/3/10

本文发布于:2024-09-23 13:20:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/69767.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:随机数   所述   节点   种子
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议