数据共享方法、装置及相关设备与流程

文档序号:32150652发布日期:2022-11-11 20:36阅读:39来源:国知局
数据共享方法、装置及相关设备与流程

1.本发明实施例涉及区块链技术领域,尤其涉及一种数据共享方法、装置及相关设备。


背景技术:

2.随着区块链技术的发展,数据共享可以应用在区块链上,从而给人们的生活带来了极大的便利性,而安全多方计算在区块链上的应用就是数据共享在区块链上应用的一个方面,安全多方计算可以使得多个数据所有者在彼此不信任的情况下进行协同计算,并输出计算结果。但是在实际的使用过程中,发明人发现现有技术中存在以下技术问题:当前安全多方计算在区块链上的计算过程过于复杂。


技术实现要素:

3.本发明实施例提供一种数据共享方法、装置及相关设备,以解决当前安全多方计算在区块链上的计算过程过于复杂的问题。
4.为解决上述问题,本发明是这样实现的:
5.第一方面,本发明实施例提供了一种数据共享方法,所述方法包括:
6.第一节点向m个第二节点发布第一请求,所述第一请求用于请求获取m个所述第二节点中每一个第二节点对应的第一数据,m为大于1的整数;
7.所述第二节点基于所述第一请求生成的第一参数对所述第一数据进行模糊处理,以得到模糊数据;
8.所述第二节点将进行同态运算后的模糊数据发送至第三节点,并将所述第一参数发送至所述第一节点;
9.所述第一节点接收m个所述第二节点发送的第一参数以及所述第三节点发送的第二数据,所述第二数据由所述第三节点将m个同态运算后的模糊数据相加获得;
10.所述第一节点将所述第一参数以及所述第二数据,以哈希碰撞的方式确定m个所述第一数据的和。
11.第二方面,本发明实施例提供了一种数据共享装置,所述数据共享装置包括:
12.发布模块,用于第一节点向m个第二节点发布第一请求,所述第一请求用于请求获取m个所述第二节点中每一个第二节点对应的第一数据,m为大于1的整数;
13.处理模块,用于所述第二节点基于所述第一请求生成的第一参数对所述第一数据进行模糊处理,以得到模糊数据;
14.发送模块,用于所述第二节点将进行同态运算后的模糊数据发送至第三节点,并将所述第一参数发送至所述第一节点;
15.接收模块,用于所述第一节点接收m个所述第二节点发送的第一参数以及所述第三节点发送的第二数据,所述第二数据由所述第三节点将m个同态运算后的模糊数据相加获得;
16.确定模块,用于所述第一节点将所述第一参数以及所述第二数据,以哈希碰撞的方式确定m个所述第一数据的和。
17.第三方面,本发明实施例还提供一种电子设备,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征在于,所述处理器,用于读取存储器中的程序实现如前述第一方面所述方法中的步骤。
18.第四方面,本发明实施例还提供一种可读存储介质,用于存储程序,所述程序被处理器执行时实现如前述第一方面所述方法中的步骤。
19.在本发明实施例中,第一节点向m个第二节点发布第一请求,所述第一请求用于请求获取m个所述第二节点中每一个第二节点对应的第一数据,m为大于1的整数;所述第二节点基于所述第一请求生成的第一参数对所述第一数据进行模糊处理,以得到模糊数据;所述第二节点将进行同态运算后的模糊数据发送至第三节点,并将所述第一参数发送至所述第一节点;所述第一节点接收m个所述第二节点发送的第一参数以及所述第三节点发送的第二数据,所述第二数据由所述第三节点将m个同态运算后的模糊数据相加获得;所述第一节点将所述第一参数以及所述第二数据,以哈希碰撞的方式确定m个所述第一数据的和。这样,通过对第一数据进行模糊处理,以及对m个模糊数据进行同态加密即可满足安全多方计算的要求,简化了安全多方计算在区块链上的计算过程。
附图说明
20.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明实施例提供的数据共享方法的流程图之一;
22.图2是本发明实施例提供的数据共享方法的流程图之二;
23.图3是本发明实施提供的数据共享装置的结构示意图;
24.图4是本发明实施提供的电子设备的结构示意图。
具体实施方式
25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.本发明实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,本技术中使用“和/或”表示所连接对象的至少其中之一,例如a和/或b和/或c,表示包含单独a,单独b,单独c,以及a和b都存在,b和c都存在,a和c都存在,以及a、b和c都存在的7种情况。
27.请参见图1,图1为本发明实施例提供的一种数据共享方法的流程图,该数据共享方法应用于区块链,所述区块链包括第一节点、第二节点和第三节点,如图1所示,该方法包括以下步骤:
28.需要说明的是,本发明实施例中的第一节点、第二节点和第三节点可以为区块链上单独创建的节点,例如:作为一种可选的实施方式,可以在区块链中单独创建上述第一节点、第二节点和第三节点,并给上述第一节点、第二节点和第三节点赋予对应的功能,其功能可以参见后文中的相应表述。
29.作为另一种可选的实施方式,创建区块链,并在区块链中创建上述第一节点、第二节点和第三节点,同时,给第一节点、第二节点和第三节点赋予对应的功能,这样,可以在创建区块链的同时,根据需求还可以创建上述第一节点、第二节点和第三节点,从而使得可以创建的区块链以及区块链中的第一节点、第二节点和第三节点的功能更加符合用户的需求。
30.当然,作为另一种可选的实施例,上述第一节点、第二节点和第三节点也可以为区块链上已经存在的节点,在本发明实施例中的应用场景下,可以给上述第一节点、第二节点和第三节点赋予对应的功能。
31.需要说明的是,在本发明实施例提供的应用场景下,上述第一节点可以被理解为数据需求方或者数据需求方节点,第一节点可以用于发布请求获取第二节点上的数据的请求;第二节点可以被理解为数据提供方或者数据提供方节点,当然,上述第二节点也可以被称作为数据共享节点,第二节点可以用于根据第一节点发布的请求提供对应的数据,第三节点可以理解为中间节点或者数据整合运算节点。
32.另外,区块链的具体种类在此不做限定,例如:区块链可以为联盟链或者公有链等。
33.需要说明的是,本发明实施例中的区块链为半诚实模型,相应的,第一节点、第二节点和第三节点为半诚实参与方,当区块链为半诚实模型时,可容忍区块链中的节点存在低程度的恶意行为,上述恶意行为即根据输出结果和中间消息推导出他人消息,而上述节点不能彼此串通,并进行恶意篡改输出结果等行为。
34.另外,区块链还可以为诚实模型,相应的,第一节点、第二节点和第三节点为诚实参与方,当区块链为诚实模型时,不能容忍区块链中的节点存在任何恶意行为。
35.这样,区块链为半诚实模型或者诚实模型,可以保证输出结果的准确度。
36.步骤101、第一节点向m个第二节点发布第一请求,所述第一请求用于请求获取m个所述第二节点中每一个第二节点对应的第一数据,m为大于1的整数。
37.其中,每一个第二节点上均可以存储有第一数据,且第一数据的具体类型在此也不做限定,例如:第一数据可以为存款数量、贷款额度或者工资总额数据等。
38.需要说明的是,第二节点也可以指的是能够接收到第一节点发布的第一请求的节点,当然,区块链上还可以包括第四节点,第四节点上也可以存储有第三数据,而第三数据可以与第一数据的种类相同或者不同,第四节点可以指的是不能接收到第一节点发布的第一请求的节点,但是能够接收到第一节点发布的第二请求的节点,而第二请求用于请求获取第四节点对应的第三数据。
39.步骤102、所述第二节点基于所述第一请求生成的第一参数对所述第一数据进行
模糊处理,以得到模糊数据。
40.其中,基于第一请求生成第一参数的具体方式在此不做限定,例如:作为一种可选的实施方式,所述第一参数为随机生成的参数。也可以理解为:第一参数为基于第一请求随机生成的参数,这样,由于第一参数为随机生成的参数,可预测性低,从而使得对第一数据进行模糊处理得到的模糊数据的可预测性同样较低,进而使得模糊数据被破解的可能性较小,从而提高了模糊数据的安全性能。
41.当然,作为另一种可选的实施方式,第一参数也可以基于在预设周期内,第二节点接收到第一请求的次数确定。上述预设周期可以指的是离当前时刻最近的一个周期,而预设周期的具体长度在此不做限定。
42.另外,作为另一种可选的实施方式,每一个第二节点可以具有一个编号,且编号可以不同,而第一参数可以与对应的第二节点的编号对应。
43.另外,第二节点基于第一参数对第一数据进行模糊处理,得到模糊数据的具体方式在此也不做限定。
44.例如:作为一种可选的实施方式,所述第二节点基于所述第一请求生成的第一参数对所述第一数据进行模糊处理,以得到模糊数据,包括:
45.所述第二节点基于所述第一请求生成第一参数;
46.所述第二节点将所述第一参数与所述第一数据的和确定为所述模糊数据。
47.作为另一种可选的实施方式,所述第二节点基于所述第一请求生成的第一参数对所述第一数据进行模糊处理,以得到模糊数据,包括:
48.所述第二节点基于所述第一请求生成第一参数;
49.所述第二节点将所述第一参数与所述第一数据的差确定为所述模糊数据。
50.其中,生成第一参数的方式可以参见上述表述,而第二节点可以将第一参数与第一数据的差或者和确定为模糊数据。
51.这样,通过上述两种实施方式,增强了对第一数据进行模糊处理的方式的多样性和灵活性,且降低了第一数据在区块链上各个节点之间传递时被破解的可能性,进一步增强了第一数据在区块链上各个节点之间传递时的安全性。
52.当然,作为另外可选的实施方式,还可以将第一参数和第一数据的乘积或者比值确定为模糊数据,这样,进一步增强了对第一数据进行模糊处理的方式的多样性和灵活性。
53.步骤103、所述第二节点将进行同态运算后的模糊数据发送至第三节点,并将所述第一参数发送至所述第一节点。
54.其中,作为一种可选的实施方式,第二节点可以直接将进行同态运算后的模糊数据发送至第三节点,且直接将第一参数发送至第一节点。
55.需要说明的是,第二节点对模糊数据进行同态运算可以理解为:第二节点采用同态加密函数对模糊数据进行处理,而同态加密函数可同时具有乘法同态性和加法同态性,即对任意明文m1,m2,上述可以是加法或者乘法,对应为加法同态性或乘法同态性,上述m1和m2可以理解为不同第二节点对应的模糊数据,而h可以表示同态加密函数,也就是说:对m1和m2分别进行同态运算之后的数值之和,与对m1和m2的和进行同态运算得到的数值相等。
56.当然,作为另一种可选的实施方式,第二节点可以采用第一公钥对第一参数加密,
并将加密之后的第一参数发送给第一节点,第一公钥可以为第一节点的公钥,相应的,第一节点上存储有与第一公钥相匹配的第一私钥,可以实现对加密后的第一参数的解密。
57.例如:作为一种可选的实施方式,所述第一参数为采用第一公钥加密的数据,所述第一公钥与所述第一节点对应;
58.所述第一节点将所述第一参数以及所述第二数据,以哈希碰撞的方式确定m个所述第一数据的和,包括:
59.所述第一节点采用预先获取的第一私钥对所述第一参数进行解密,所述第一私钥与所述第一公钥对应;
60.所述第一节点将所述第二数据和解密后的第一参数,以哈希碰撞的方式确定m个所述第一数据的和。
61.需要说明的是,第一公钥可以为第一节点以广播的方式进行发送,当然,也可以为第二节点向第一节点发送用于获取第一公钥的请求,而第一节点基于该请求向第二节点发送第一公钥,另外,第一节点还可以在发布第一请求的情况下,主动向第二节点发送第一公钥,具体方式在此不做限定。
62.而在本实施方式中,第二节点可以采用第一公钥对第一参数进行加密,并将加密之后的第一参数发送给第一节点,由于第一节点上存储有与第一公钥对应的第一私钥,从而能够实现对第一参数的解密,这样,从而提高了第一参数在第二节点和第一节点之间传递时的安全性。
63.当然,作为另一种可选的实施方式,第二节点还可以采用第二公钥对进行同态运算后的模糊数据进行加密,并将加密之后的模糊数据发送给第三节点,第二公钥可以为第三节点的公钥,相应的,第三节点上可以存储有与第二公钥相匹配的第二私钥,可以实现对加密之后的模糊数据的解密,从而得到进行同态运算后的模糊数据。
64.这样,由于第一参数和进行同态运算后的模糊数据可以均在加密之后在各个节点之间进行传递,从而降低了第一参数和模糊数据泄露的可能性,进而提高了第一参数和模糊数据在各个节点之间传递时的安全性能。
65.由于第一节点上存储有第一私钥,因此可以采用第一私钥对加密后的第一参数进行解密,从而获得每个第二节点的第一参数的数值,而同时,第三节点上存储有第二私钥,同样可以采用第二私钥对加密后的模糊数据(也就是进行同态运算后的模糊数据)进行解密,从而获得进行同态运算后的模糊数据的数值,而第三节点在获得进行同态运算后的模糊数据之后,还可以将获得的各个第二节点发送的进行同态运算后的模糊函数进行相加,从而得到第二数据。
66.步骤104、所述第一节点接收m个所述第二节点发送的第一参数以及所述第三节点发送的第二数据,所述第二数据由所述第三节点将m个同态运算后的模糊数据相加获得。
67.其中,作为一种可选的实施方式,第三节点可以将m个同态运算后的模糊数据直接进行相加,且相加得到的数值即为第二数据。
68.当然,作为另一种可选的实施方式,所述第二数据由所述第三节点将m个进行同态运算后的模糊数据进行同态加法运算获得。
69.可以理解的是是,同态运算可以包括同态加法运算、同态减法运算、同态乘法运算或者同态除法运算等。
70.本实施方式也就是说:可将m个进行同态运算后的模糊数据再次进行同态加法运算,从而得到第二数据。而同态加法运算可以理解为:采用同态加密函数对m个进行同态运算后的模糊数据进行同态加法运算,而根据上述对同态加密函数的表述可知:第一数值和第二数值相同,而第一数值为:对m个第一目标数据(第一目标数据可以理解为进行同态运算后的模糊数据)分别进行同态加法运算,得到m个第二目标数据,然后将m个第二目标数据进行相加得到的数值;而第二数值为:先将m个第一目标数据进行相加,得到m个第二目标数据的和,然后对m个第二目标数据的和进行同态加法运算得到的数值。
71.这样,进一步增强了得到第二数据的方式的多样性和灵活性。
72.步骤105、所述第一节点将所述第一参数以及所述第二数据,以哈希碰撞的方式确定m个所述第一数据的和。
73.其中,由于第一节点获取了m个第一参数的值,而第二数据中包括m个第一参数的值和m个第一数据的值,从而可以进行遍历,直到第二数据等于m个第一参数和m个第一数据的和,即可确定m个第一数据之和。
74.也就是说:第一参数和第二数据可以通过哈希碰撞的方式确定m个第一数据的和,该步骤可以由第一节点来执行。
75.本发明实施例中,通过对第一数据进行模糊处理,以及对m个模糊数据进行同态加密即可满足安全多方计算(也就是计算m个第一数据之和)的要求,简化了安全多方计算在区块链上的计算过程。同时本实施例不需要采用秘密分享、混淆电路、不经意传输等复杂的技术,也无需部署成本高昂的可信执行环境,从而可以降低开发成本。
76.另外,在区块链的各个节点的传输过程中,考虑到输入信息可能被蛮力破解,因此,本发明实施例将随机数(即第一参数)与第一数据融合后输出模糊数据,完成了对第一数据的二次保护,即便蛮力破解出同态加密函数的输入值,如果没有随机数,仍无法获取真实的第一数据。从而提高了第一数据的安全性。同时,由于本发明实施例利用同态加密函数对模糊数据进行加密运算,运算结果不可逆,无法直接推导出输入的模糊数据。从而提高了模糊信息输入的安全性,从而进一步提高了第一数据的安全性。
77.下面以一个具体实施例来举例说明本发明实施例。
78.例如:在已创建好的联盟链系统(即区块链)中,企业e为中间节点(即第三节点),负责数据整合运算。企业a、b、c、d为联盟链中数据共享节点。现在,企业a(即第一节点)需要获知某个客户在b、c和d三家企业(b、c和d均为第二节点)的贷款总额,同时又不能让a知晓客户在三家企业各自贷款额度(贷款额度即为第一数据,贷款总额即为b、c和d上三个第一数据的和)。
79.参见图2,图2表示区块链的各个节点之间的交互过程,具体如下:
80.步骤1、数据需求方请求:计算客户在各企业贷款总额(即三个第一数据的和)。
81.步骤2、数据提供方:将原始数据(即第一数据)通过随机数(即第一参数)转换成模糊数据(即模糊数据):
82.企业b、收到请求后将该客户在本企业的贷款额度x1(即第一数据)加上随机数n1(即第一参数);
83.企业c、收到请求后将该客户在本企业的贷款额度x2(即第一数据)加上随机数n2(即第一参数);
84.企业d、收到请求后将该客户在本企业的贷款额度x3(即第一数据)加上随机数n3(即第一参数);
85.步骤3、数据提供方:对模糊数据进行同态加法运算,并将结果发送给中间节点:
86.企业b:计算h(x1+n1),将加密结果用e的公钥(即第二公钥)加密后发送给e。
87.企业c:计算h(x2+n2),将加密结果用e的公钥(即第二公钥)加密后发送给e。
88.企业d:计算h(x3+n3),将加密结果用e的公钥(即第二公钥)加密后发送给e。
89.其中,h为同态加密函数。
90.步骤4、数据提供方:对随机数进行加密运算,加密结果发送给需求方:
91.企业b:用a的公钥(即第一公钥)对n1进行加密后发送给a。
92.企业c:用a的公钥(即第一公钥)对n2进行加密后发送给a。
93.企业d:用a的公钥(即第一公钥)对n3进行加密后发送给a。
94.步骤5、中间节点:对收到的各个数据解密后进行同态加法运算:
95.企业e计算h(x1+n1)+h(x2+n2)+h(x3+n3)的值,将计算后的结果发送给企业a,h(x1+n1)+h(x2+n2)+h(x3+n3)=h(x1+n1+x2+n2+x3+n3)=r;其中,r即为第二数据。
96.需要说明的是,本实施方式中的第二数据为第三节点对三个进行同态运算后的模糊数据进行同态加法运算获得的数据。也就是说:第二数据为经过了两次同态运算之后得到的数据。
97.步骤6、数据需求方:根据随机数(即第一参数)和同态运算结果(即第二数据),遍历可能取值:
98.企业a用私钥(即第一私钥)解密企业b、c、d各自的随机数n1、n2、n3,将随机数的值相加后遍历该客户可能的贷款额度取值,破解出x1+x2+x3的值,其中,根据随机数和同态运算结果计算三个第一数据之和(x)的具体流程如下:
99.遍历x计算h(x+n1+n2+n3),
100.直到h(x+n1+n2+n3)=r,x即为客户在三家企业的贷款总额。
101.这样,本发明实施例同样可以简化安全多方计算在区块链上的计算过程。
102.参见图3,图3是本发明实施例提供的数据共享装置的结构图之一。该数据共享装置应用于区块链,所述区块链包括第一节点、第二节点和第三节点,如图3所示,数据共享装置300包括:
103.发布模块301,用于第一节点向m个第二节点发布第一请求,所述第一请求用于请求获取m个所述第二节点中每一个第二节点对应的第一数据,m为大于1的整数;
104.处理模块302,用于所述第二节点基于所述第一请求生成的第一参数对所述第一数据进行模糊处理,以得到模糊数据;
105.发送模块303,用于所述第二节点将进行同态运算后的模糊数据发送至第三节点,并将所述第一参数发送至所述第一节点;
106.接收模块304,用于所述第一节点接收m个所述第二节点发送的第一参数以及所述第三节点发送的第二数据,所述第二数据由所述第三节点将m个同态运算后的模糊数据相加获得;
107.确定模块305,用于所述第一节点将所述第一参数以及所述第二数据,以哈希碰撞的方式确定m个所述第一数据的和。
108.可选地,所述处理模块302包括:
109.生成子模块,用于所述第二节点基于所述第一请求生成第一参数;
110.确定子模块,用于所述第二节点将所述第一参数与所述第一数据的和确定为所述模糊数据;或者,所述第二节点将所述第一参数与所述第一数据的差确定为所述模糊数据。
111.可选地,所述第一参数为随机生成的参数。
112.可选地,所述第一参数为采用第一公钥加密的数据,所述第一公钥与所述第一节点对应;
113.所述确定模块305包括:
114.解密子模块,用于所述第一节点采用预先获取的第一私钥对所述第一参数进行解密,所述第一私钥与所述第一公钥对应;
115.第二确定子模块,用于所述第一节点将所述第二数据和解密后的第一参数,以哈希碰撞的方式确定m个所述第一数据的和。
116.可选地,所述第二数据由所述第三节点将m个进行同态运算后的模糊数据进行同态加法运算获得。
117.数据共享装置300能够实现本发明实施例中图1和2所示方法实施例的各个过程,以及达到相同的有益效果,为避免重复,这里不再赘述。
118.本发明实施例还提供一种电子设备。请参见图4,电子设备可以包括处理器401、存储器402及存储在存储器402上并可在处理器401上运行的程序4021。
119.程序4021被处理器401执行时可实现图1或图2对应的方法实施例中的任意步骤及达到相同的有益效果,此处不再赘述。
120.本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一可读取介质中。本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时可实现上述图1或者图2对应的方法实施例中的任意步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
121.所述的存储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
122.以上所述是本发明实施例的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1