多方数据加密处理方法、系统及终端与流程
未命名
09-23
阅读:100
评论:0
1.本发明属于大数据技术领域,具体涉及一种多方数据加密处理方法、系统及终端。
背景技术:
2.市面上的一些厂商产品,都是直接对各参与方的数据直接进行明文方式传输与计算,在信息安全,隐私保护,数据相互访问权限上存在很多隐患,同时由于用户数据需受到隐私保护,使得企业之间的数据不便于实现共享,导致数据孤岛。
3.为了能够在保证隐私数据的前提下实现不同数据提供方之间的数据共享,提出了一种安全多方计算方法。安全多方计算是指在无可信第三方的情况下,多个参与方协同计算一个约定的函数,并且保证每一方仅获取自己的计算结果,无法通过计算过程中的交互数据推测出其他任意一方的输入和输出数据(除非函数本身可以由自己的输入推测出其他参与方的输入和输出)。安全多方计算技术则是基于密码学的多种技术纯软件实现的隐私计算。各参与方之间无需可信根,更加安全。
4.对于安全多方计算,目前市面上有一些厂商产品已经支持两个数据提供方进行安全乘法,即现有的安全多方乘法多是两个数据参与方,对于数据提供方比如三个数x1,x2,x3三个数相乘,仍未有很好的解决办法。
技术实现要素:
5.针对现有技术存在的问题,本发明提供一种多方数据加密处理方法、系统及终端,以解决上述技术问题。
6.第一方面,本发明提供一种多方数据加密处理方法,包括:
7.与多个数据端通过协商生成各自的协议数组;
8.与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据;
9.切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据;
10.确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据。
11.在一个可选的实施方式中,与多个数据端通过协商生成各自的协议数组,包括:
12.利用随机数生成工具生成随机数组,并建立随机数组与数据端的对应关系,所述随机数组包括第一随机数、第二随机数和第三随机数;
13.利用公钥加密第一随机数,并将加密后的第一随机数发送至相应数据端;
14.获取数据端基于加密第一随机数生成的第一加密数据,并利用私钥将所述第一加密数据解密为第一解密数据;
15.计算第一随机数与第二随机数的乘积减第三随机数得到的第一系数,将第一解密数据与第一系数的和保存为与所述数据端的协议值;
16.将与多个数据端的协议值保存为协议数组。
17.在一个可选的实施方式中,所述第一加密数据的生成方法包括:
18.数据端生成从端随机数组,所述从端随机数组包括第一从端随机数、第二从端随机数和第三从端随机数;
19.计算加密第一随机数与第二从端随机数的乘积,并计算所述乘积与第三从端随机数的和,得到第一加密数据。
20.在一个可选的实施方式中,所述方法还包括:
21.数据端利用公钥加密第一从端随机数,并将加密后的第一从端随机数发送至主节点;
22.获取主节点基于加密第一从端随机数生成的第二加密数据,并利用私钥将所述第二加密数据解密为第二解密数据;
23.计算第一从端随机数与第二从端随机数的乘积减第三从端随机数得到的第二系数,将第二解密数据与第二系数的和保存为数据端本地的协议值。
24.在一个可选的实施方式中,与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据,包括:
25.从未被标记的数据端中随机选取目标数据端,并标记所述目标数据端;
26.将待运算数据拆分为第一主数据和第二主数据,并将第一主数据发送至目标数据端;
27.调取与目标数据端对应的目标随机数组和目标协议值;
28.获取目标数据端的第一从数据,所述第一从数据为目标数据端的待运算数据的部分数据;
29.将第二主数据与目标随机数组的第一随机数的差值作为第一主运算数据,将第一从数据与目标随机数组的第二随机数的差值作为第二主运算数据,将第一主运算数据和第二主运算数据保存为第一数据组合,并将第一数据组合发送至目标数据端;
30.从目标数据端获取第二数据组合,所述第二数据组合包括第一从运算数据和第二从运算数据;
31.将第一主运算数据与第一从运算数据的和保存为第一运算数据,将第二主运算数据与第二从运算数据的和保存为第二运算数据;
32.计算第一运算数据与目标随机数组的第二随机数的第一乘积,计算第二运算数据与目标随机数组的第一随机数的第二乘积,计算第一运算数据与第二运算数据的第三乘积;
33.对目标协议值、第一乘积、第二乘积和第三乘积进行累加,得到第一加密数据。
34.在一个可选的实施方式中,在将第一主数据发送至目标数据端之后,所述方法还包括:
35.目标数据端将本地待运算数据划分为第一从数据和第二从数据,并将第一从数据发送至主节点;
36.将第一主数据与本地随机数组的第一从端随机数的差值作为第一从运算数据,将第二从数据与本地随机数组的第二从端随机数的差值作为第二从运算数据,将第一从运算数据和第二从运算数据保存为第二数据组合,并将第二数据组合发送至主节点;
37.将第一主运算数据与第一从运算数据的和保存为第一运算数据,将第二主运算数
据与第二从运算数据的和保存为第二运算数据;
38.计算第一运算数据与第二从端随机数的乘积记为第一从端乘积,计算第二运算数据与第一从端随机数的乘积记为第二从端乘积;
39.对本地协议值、第一从端乘积、第二从端乘积进行累加,得到第二加密数据。
40.在一个可选的实施方式中,切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据,包括:
41.重新从未被标记的数据端中随机选取目标数据端,并对新的目标数据端进行标记;
42.将第一加密数据作为本轮运算的第二主数据;
43.将原目标数据端的第二加密数据指定为本轮运算的第一主数据,并控制原目标数据端将第二加密数据发送至新目标数据端。
44.在一个可选的实施方式中,确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据,包括:
45.监控到所有数据端均被标记;
46.从最后被标记的数据端获取第二加密数据;
47.计算第二加密数据与本地最新的第一加密数据的和,得到最终加密数据。
48.第二方面,本发明提供一种多方数据加密处理系统,包括:
49.协议生成模块,用于与多个数据端通过协商生成各自的协议数组;
50.第一运算模块,用于与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据;
51.第二运算模块,用于切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据;
52.结果生成模块,用于确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据。
53.第三方面,提供一种终端,包括:
54.处理器、存储器,其中,
55.该存储器用于存储计算机程序,
56.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
57.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
58.本发明的有益效果在于,本发明提供的多方数据加密处理方法、系统及终端,能够为任意数量的数据提供方提供安全多方乘法的数据处理服务,且除数据提供方外不需要任何第三方参与,提升了数据处理过程的安全性也降低了硬件成本。
59.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
60.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而
言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
61.图1是本发明一个实施例的方法的示意性流程图。
62.图2是本发明一个实施例的方法的协商阶段的示意性流程图。
63.图3是本发明一个实施例的方法的数据运算阶段的示意性流程图。
64.图4是本发明一个实施例的系统的示意性框图。
65.图5为本发明实施例提供的一种终端的结构示意图。
具体实施方式
66.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
67.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
68.本发明实施例提供的多方数据加密处理方法由计算机设备执行,相应地,多方数据加密处理系统运行于计算机设备中。
69.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种多方数据加密处理系统。根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
70.如图1所示,该方法包括:
71.步骤110,与多个数据端通过协商生成各自的协议数组;
72.步骤120,与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据;
73.步骤130,切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据;
74.步骤140,确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据。
75.该方法通过采用参与方之间进行同态加密协商三元组的方式来避免了第三方的介入。同时通过线性的,将结果进行传递的方式,来实现任意多个参与方的安全多方乘法。
76.现有的安全多方乘法多是两个数据参与方,对于数据提供方比如三个数x1,x2,x3三个数相乘。本发明通过将x1
×
x2的结果z,以两份密文结果的方式分别发给两个参与方,这两个参与方进行两方安全乘法将z和x3相乘,得到最终结果。
77.为了便于对本发明的理解,下面以本发明多方数据加密处理方法的原理,结合实施例中对多方数据进行加密处理的过程,对本发明提供的多方数据加密处理方法做进一步的描述。
78.具体的,以基于两个数据提供方的安全乘法和paillier半同态加密为例进行说明。将n+1个参与方分别设定为guest和host1,host2,
…
,hostn。所述多方数据加密处理方法
包括:
79.s 1、如图2所示,与多个数据端通过协商生成各自的协议数组。
80.主节点利用随机数生成工具生成随机数组,并建立随机数组与数据端的对应关系,所述随机数组包括第一随机数、第二随机数和第三随机数;利用公钥加密第一随机数,并将加密后的第一随机数发送至相应数据端;获取数据端基于加密第一随机数生成的第一加密数据,并利用私钥将所述第一加密数据解密为第一解密数据;计算第一随机数与第二随机数的乘积减第三随机数得到的第一系数,将第一解密数据与第一系数的和保存为与所述数据端的协议值;将与多个数据端的协议值保存为协议数组。
81.数据端生成从端随机数组,所述从端随机数组包括第一从端随机数、第二从端随机数和第三从端随机数;计算加密第一随机数与第二从端随机数的乘积,并计算所述乘积与第三从端随机数的和,得到第一加密数据。利用公钥加密第一从端随机数,并将加密后的第一从端随机数发送至主节点;获取主节点基于加密第一从端随机数生成的第二加密数据,并利用私钥将所述第二加密数据解密为第二解密数据;计算第一从端随机数与第二从端随机数的乘积减第三从端随机数得到的第二系数,将第二解密数据与第二系数的和保存为数据端本地的协议值。
82.例如,guest作为结果返回节点,guest和其他n个host节点分别通过paillier半同态加密生成乘法的三元组。生成方法如下:
83.步骤一:guest生成n组随机数(a
01
,b
01
,r
01
),
…
,(a
0n
,b
0n
,r
0n
)。n个host分别生成随机数(a1,b1,r1),(a2,b2,r2),
…
,(an,bn,rn)。
84.步骤二:guest用自己的公钥加密a
01
,a
02
,
…
,a
0n
,并将加密结果记为enc
a01
,enc
a02
,
…
,enc
a0n
,并分别发送给n个host。
85.步骤三:n个host分别将自己的bi(i=1,2,
…
,n)与enc
a0i
相乘并加上自己的ri(i=1,2,
…
,n),将结果记为enc
01
,enc
02
,
…
,enc
0n
分别发送给guest。
86.步骤四:guest用自己的私钥分别将enc
01
,enc
02
,
…
,enc
0n
解密,并将解密结果分别加上a
0i
*b
0i-r
0i
,结果分别记为c
01
,c
02
,
…
,c
0n
。
87.步骤五:n个host分别用自己的公钥加密自己的ai(i=1,2,
…
,n),并将加密记为enc1,enc2,
…
,encn发送给guest。
88.步骤六:guest将自己的b
0i
分别于enc1,enc2,
…
,encn相乘并加上自己的r
0i
,将结果记为enc
10
,enc
20
,
…
,enc
n0
分别发送给n个host。
89.步骤七:n个host分别用自己的私钥解密enc
i0
(i=1,2,
…
,n),并将解密结果加上ai*b
i-ri(i=1,2,
…
,n),结果分别记为c
10
,c
20
,
…
,c
n0
。
90.s2、与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据。
91.主节点从未被标记的数据端中随机选取目标数据端,并标记所述目标数据端;将待运算数据拆分为第一主数据和第二主数据,并将第一主数据发送至目标数据端;调取与目标数据端对应的目标随机数组和目标协议值;获取目标数据端的第一从数据,所述第一从数据为目标数据端的待运算数据的部分数据;将第二主数据与目标随机数组的第一随机数的差值作为第一主运算数据,将第一从数据与目标随机数组的第二随机数的差值作为第二主运算数据,将第一主运算数据和第二主运算数据保存为第一数据组合,并将第一数据
组合发送至目标数据端;从目标数据端获取第二数据组合,所述第二数据组合包括第一从运算数据和第二从运算数据;将第一主运算数据与第一从运算数据的和保存为第一运算数据,将第二主运算数据与第二从运算数据的和保存为第二运算数据;计算第一运算数据与目标随机数组的第二随机数的第一乘积,计算第二运算数据与目标随机数组的第一随机数的第二乘积,计算第一运算数据与第二运算数据的第三乘积;对目标协议值、第一乘积、第二乘积和第三乘积进行累加,得到第一加密数据。
92.目标数据端将本地待运算数据划分为第一从数据和第二从数据,并将第一从数据发送至主节点;将第一主数据与本地随机数组的第一从端随机数的差值作为第一从运算数据,将第二从数据与本地随机数组的第二从端随机数的差值作为第二从运算数据,将第一从运算数据和第二从运算数据保存为第二数据组合,并将第二数据组合发送至主节点;将第一主运算数据与第一从运算数据的和保存为第一运算数据,将第二主运算数据与第二从运算数据的和保存为第二运算数据;计算第一运算数据与第二从端随机数的乘积记为第一从端乘积,计算第二运算数据与第一从端随机数的乘积记为第二从端乘积;对本地协议值、第一从端乘积、第二从端乘积进行累加,得到第二加密数据。
93.具体的,如图3所示,guest和n个host持有的待计算数据分别为x和y1,y2,
…
,yn。guest和n个host依次执行一次两方安全乘法。计算步骤如下:
94.步骤一:guest将自己待计算的数据x拆分为x0+x1,将数据x1发送给host1。
95.步骤二:host1将自己待计算的数据y1拆分为y0+y1,将数据y0发送给guest。
96.步骤三:guest计算e
01
=x
0-a
01
,m
01
=y
0-b
01
并将(e
01
,m
01
)发送给host1。
97.步骤四:host1计算e
10
=x
1-a1,m
10
=y
1-b1,并将(e
10
,m
10
)发送给guest。
98.步骤五:guest和host1各自计算出e1=e
01
+e
10
,m1=m
01
+m
10
。
99.步骤六:guest计算z
01
=c
01
+e1*b
01
+m1*a
01
+e1*m1。将结果z
01
记为下一轮guest和host2乘法中的x0。
100.步骤七:host1计算z
10
=c1+e1*b1+m1*a1。
101.s3、切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据。
102.重新从未被标记的数据端中随机选取目标数据端,并对新的目标数据端进行标记;将第一加密数据作为本轮运算的第二主数据;将原目标数据端的第二加密数据指定为本轮运算的第一主数据,并控制原目标数据端将第二加密数据发送至新目标数据端。
103.重新选定目标数据端host2后,guest通知host1,host1将结果z
10
发送给,host2作为下一轮guest和host2乘法中的x1。
104.步骤八:此时跳转到上面步骤二,guest提供的数据也变为与host2相关的数据,hostl变为host2,host1对应的数据也由host2提供。依此类推,直到n个host全部与guest完成过一次两方安全乘法。
105.s4、确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据。
106.监控到所有数据端均被标记;从最后被标记的数据端获取第二加密数据;计算第二加密数据与本地最新的第一加密数据的和,得到最终加密数据。
107.最后一个host将计算结果z
n0
发送给guest。guest计算z=z
0n
+z
n0
。计算结束。
108.在一些实施例中,所述多方数据加密处理系统400可以包括多个由计算机程序段所组成的功能模块。所述多方数据加密处理系统400中的各个程序段的计算机程序可以存储于计算机设备的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)多方数据加密处理方法的功能。
109.本实施例中,所述多方数据加密处理系统400根据其所执行的功能,可以被划分为多个功能模块,如图4所示。所述功能模块可以包括:协议生成模块400、第一运算模块420、第二运算模块430和结果生成模块430。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
110.协议生成模块400,用于与多个数据端通过协商生成各自的协议数组;
111.第一运算模块420,用于与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据;
112.第二运算模块430,用于切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据;
113.结果生成模块440,用于确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据。
114.可选地,作为本发明一个实施例,与多个数据端通过协商生成各自的协议数组,包括:
115.利用随机数生成工具生成随机数组,并建立随机数组与数据端的对应关系,所述随机数组包括第一随机数、第二随机数和第三随机数;
116.利用公钥加密第一随机数,并将加密后的第一随机数发送至相应数据端;
117.获取数据端基于加密第一随机数生成的第一加密数据,并利用私钥将所述第一加密数据解密为第一解密数据;
118.计算第一随机数与第二随机数的乘积减第三随机数得到的第一系数,将第一解密数据与第一系数的和保存为与所述数据端的协议值;
119.将与多个数据端的协议值保存为协议数组。
120.可选地,作为本发明一个实施例,所述第一加密数据的生成方法包括:
121.数据端生成从端随机数组,所述从端随机数组包括第一从端随机数、第二从端随机数和第三从端随机数;
122.计算加密第一随机数与第二从端随机数的乘积,并计算所述乘积与第三从端随机数的和,得到第一加密数据。
123.可选地,作为本发明一个实施例,所述系统还执行:
124.数据端利用公钥加密第一从端随机数,并将加密后的第一从端随机数发送至主节点;
125.获取主节点基于加密第一从端随机数生成的第二加密数据,并利用私钥将所述第二加密数据解密为第二解密数据;
126.计算第一从端随机数与第二从端随机数的乘积减第三从端随机数得到的第二系数,将第二解密数据与第二系数的和保存为数据端本地的协议值。
127.可选地,作为本发明一个实施例,与目标数据端进行数据交互,并基于所述协议数
组进行数据运算得到加密数据,包括:
128.从未被标记的数据端中随机选取目标数据端,并标记所述目标数据端;
129.将待运算数据拆分为第一主数据和第二主数据,并将第一主数据发送至目标数据端;
130.调取与目标数据端对应的目标随机数组和目标协议值;
131.获取目标数据端的第一从数据,所述第一从数据为目标数据端的待运算数据的部分数据;
132.将第二主数据与目标随机数组的第一随机数的差值作为第一主运算数据,将第一从数据与目标随机数组的第二随机数的差值作为第二主运算数据,将第一主运算数据和第二主运算数据保存为第一数据组合,并将第一数据组合发送至目标数据端;
133.从目标数据端获取第二数据组合,所述第二数据组合包括第一从运算数据和第二从运算数据;
134.将第一主运算数据与第一从运算数据的和保存为第一运算数据,将第二主运算数据与第二从运算数据的和保存为第二运算数据;
135.计算第一运算数据与目标随机数组的第二随机数的第一乘积,计算第二运算数据与目标随机数组的第一随机数的第二乘积,计算第一运算数据与第二运算数据的第三乘积;
136.对目标协议值、第一乘积、第二乘积和第三乘积进行累加,得到第一加密数据。
137.可选地,作为本发明一个实施例,在将第一主数据发送至目标数据端之后,所述系统还执行:
138.目标数据端将本地待运算数据划分为第一从数据和第二从数据,并将第一从数据发送至主节点;
139.将第一主数据与本地随机数组的第一从端随机数的差值作为第一从运算数据,将第二从数据与本地随机数组的第二从端随机数的差值作为第二从运算数据,将第一从运算数据和第二从运算数据保存为第二数据组合,并将第二数据组合发送至主节点;
140.将第一主运算数据与第一从运算数据的和保存为第一运算数据,将第二主运算数据与第二从运算数据的和保存为第二运算数据;
141.计算第一运算数据与第二从端随机数的乘积记为第一从端乘积,计算第二运算数据与第一从端随机数的乘积记为第二从端乘积;
142.对本地协议值、第一从端乘积、第二从端乘积进行累加,得到第二加密数据。
143.可选地,作为本发明一个实施例,切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据,包括:
144.重新从未被标记的数据端中随机选取目标数据端,并对新的目标数据端进行标记;
145.将第一加密数据作为本轮运算的第二主数据;
146.将原目标数据端的第二加密数据指定为本轮运算的第一主数据,并控制原目标数据端将第二加密数据发送至新目标数据端。
147.可选地,作为本发明一个实施例,确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据,包括:
148.监控到所有数据端均被标记;
149.从最后被标记的数据端获取第二加密数据;
150.计算第二加密数据与本地最新的第一加密数据的和,得到最终加密数据。
151.图5为本发明实施例提供的一种终端500的结构示意图,该终端500可以用于执行本发明实施例提供的多方数据加密处理方法。
152.其中,该终端500可以包括:处理器510、存储器520及通信模块530。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
153.其中,该存储器520可以用于存储处理器510的执行指令,存储器520可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器520中的执行指令由处理器510执行时,使得终端500能够执行以下上述方法实施例中的部分或全部步骤。
154.处理器510为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器510可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
155.通信模块530,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
156.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
157.因此,本发明实现了对用户数据隐私的保护的同时也实现了对数据的加密传输,不仅解决了数据孤岛问题,还实现了除数据提供方外不需要任何第三方参与,能够为任意数量的数据提供方提供安全多方乘法的数据处理服务,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
158.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onl y memory)、随机存取存储器(ram,random ac ce s s memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
159.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施
例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
160.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
161.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
162.另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
163.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
技术特征:
1.一种多方数据加密处理方法,其特征在于,包括:与多个数据端通过协商生成各自的协议数组;与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据;切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据;确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据。2.根据权利要求1所述的方法,其特征在于,与多个数据端通过协商生成各自的协议数组,包括:利用随机数生成工具生成随机数组,并建立随机数组与数据端的对应关系,所述随机数组包括第一随机数、第二随机数和第三随机数;利用公钥加密第一随机数,并将加密后的第一随机数发送至相应数据端;获取数据端基于加密第一随机数生成的第一加密数据,并利用私钥将所述第一加密数据解密为第一解密数据;计算第一随机数与第二随机数的乘积减第三随机数得到的第一系数,将第一解密数据与第一系数的和保存为与所述数据端的协议值;将与多个数据端的协议值保存为协议数组。3.根据权利要求2所述的方法,其特征在于,所述第一加密数据的生成方法包括:数据端生成从端随机数组,所述从端随机数组包括第一从端随机数、第二从端随机数和第三从端随机数;计算加密第一随机数与第二从端随机数的乘积,并计算所述乘积与第三从端随机数的和,得到第一加密数据。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:数据端利用公钥加密第一从端随机数,并将加密后的第一从端随机数发送至主节点;获取主节点基于加密第一从端随机数生成的第二加密数据,并利用私钥将所述第二加密数据解密为第二解密数据;计算第一从端随机数与第二从端随机数的乘积减第三从端随机数得到的第二系数,将第二解密数据与第二系数的和保存为数据端本地的协议值。5.根据权利要求1所述的方法,其特征在于,与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据,包括:从未被标记的数据端中随机选取目标数据端,并标记所述目标数据端;将待运算数据拆分为第一主数据和第二主数据,并将第一主数据发送至目标数据端;调取与目标数据端对应的目标随机数组和目标协议值;获取目标数据端的第一从数据,所述第一从数据为目标数据端的待运算数据的部分数据;将第二主数据与目标随机数组的第一随机数的差值作为第一主运算数据,将第一从数据与目标随机数组的第二随机数的差值作为第二主运算数据,将第一主运算数据和第二主运算数据保存为第一数据组合,并将第一数据组合发送至目标数据端;从目标数据端获取第二数据组合,所述第二数据组合包括第一从运算数据和第二从运
算数据;将第一主运算数据与第一从运算数据的和保存为第一运算数据,将第二主运算数据与第二从运算数据的和保存为第二运算数据;计算第一运算数据与目标随机数组的第二随机数的第一乘积,计算第二运算数据与目标随机数组的第一随机数的第二乘积,计算第一运算数据与第二运算数据的第三乘积;对目标协议值、第一乘积、第二乘积和第三乘积进行累加,得到第一加密数据。6.根据权利要求5所述的方法,其特征在于,在将第一主数据发送至目标数据端之后,所述方法还包括:目标数据端将本地待运算数据划分为第一从数据和第二从数据,并将第一从数据发送至主节点;将第一主数据与本地随机数组的第一从端随机数的差值作为第一从运算数据,将第二从数据与本地随机数组的第二从端随机数的差值作为第二从运算数据,将第一从运算数据和第二从运算数据保存为第二数据组合,并将第二数据组合发送至主节点;将第一主运算数据与第一从运算数据的和保存为第一运算数据,将第二主运算数据与第二从运算数据的和保存为第二运算数据;计算第一运算数据与第二从端随机数的乘积记为第一从端乘积,计算第二运算数据与第一从端随机数的乘积记为第二从端乘积;对本地协议值、第一从端乘积、第二从端乘积进行累加,得到第二加密数据。7.根据权利要求1所述的方法,其特征在于,切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据,包括:重新从未被标记的数据端中随机选取目标数据端,并对新的目标数据端进行标记;将第一加密数据作为本轮运算的第二主数据;将原目标数据端的第二加密数据指定为本轮运算的第一主数据,并控制原目标数据端将第二加密数据发送至新目标数据端。8.根据权利要求7所述的方法,其特征在于,确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据,包括:监控到所有数据端均被标记;从最后被标记的数据端获取第二加密数据;计算第二加密数据与本地最新的第一加密数据的和,得到最终加密数据。9.一种多方数据加密处理系统,其特征在于,包括:协议生成模块,用于与多个数据端通过协商生成各自的协议数组;第一运算模块,用于与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据;第二运算模块,用于切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据;结果生成模块,用于确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据。10.一种终端,其特征在于,包括:存储器,用于存储多方数据加密处理程序;
处理器,用于执行所述多方数据加密处理程序时实现如权利要求1-8任一项所述多方数据加密处理方法的步骤。
技术总结
本发明涉及大数据技术领域,具体提供一种多方数据加密处理方法、系统及终端,与多个数据端通过协商生成各自的协议数组;与目标数据端进行数据交互,并基于所述协议数组进行数据运算得到加密数据;切换目标数据端,将所述加密数据作为初始数据与新的目标数据端进行数据交互和运算,得到新的加密数据;确认多个所述数据端均作为目标数据端完成数据运算,则将最终的加密数据保存为最终加密数据。本发明能够为任意数量的数据提供方提供安全多方乘法的数据处理服务,且除数据提供方外不需要任何第三方参与,提升了数据处理过程的安全性也降低了硬件成本。低了硬件成本。低了硬件成本。
技术研发人员:李向阳 张建辉 邱志园 王远 张僮桐 薛念明 李恩堂 徐崇豪
受保护的技术使用者:山东区块链研究院
技术研发日:2023.06.09
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/