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

一种数据共享方法、装置、终端及存储介质与流程

2021-10-24 07:45:00 来源:中国专利 TAG:区块 终端 装置 共享 方法


1.本技术属于区块链技术领域,尤其涉及一种数据共享方法、装置、终端及存储介质。


背景技术:

2.数据是一个很重要的国家资源,但是数据因为安全性,合规性和一些历史原因,积压在了各个企业,形成了一个个数据孤岛,如何让数据安全的流动起来是现阶段需要研究的问题。
3.现有技术中,联邦计算尤其是联邦计算中的隐私并集作为该问题的一个解决方案,可以在数据不出库的情况下实现价值的流动。
4.例如,如果有一个机构a需要机构b,机构c和机构d的数据并集,机构a在使用了隐私并集过后可以获得所有数据集合的并集,但是无法获知集合中的每个元素具体来自哪个机构,实现数据的安全流动。这在黑名单共享、风险分析等应用场景中都发挥着重要作用。
5.但现有的隐私并集在求得数据集合并集的过程中,为避免隐私泄露,通常需采用复杂的密码学加密算法,构造复杂,运算效率低下,在保证算法安全性的前提下损害了运算效率。


技术实现要素:

6.本技术实施例提供了一种数据共享方法、装置、终端及存储介质,以解决现有技术中隐私并集方法在保证算法安全性的前提下损害了数据计算效率的问题。
7.本技术实施例的第一方面提供了一种数据共享方法,包括:
8.发起方节点基于数据共享任务,与所述数据共享任务涉及的n组参与方节点进行加密信息共享;n≥2;
9.接收所述n组参与方节点中第一组别的参与方节点发送的加密后共享数据,所述加密后共享数据为每个组别中确定的任一参与方节点基于所述加密信息对共享数据依次加密生成,所述第一组别为对所述共享数据进行最后加密的组别;
10.基于所述加密信息,对所述加密后共享数据进行解密,得到所述共享数据。
11.本技术实施例的第二方面提供了一种数据共享装置,包括:
12.信息共享模块,用于发起方节点基于数据共享任务,与所述数据共享任务涉及的n组参与方节点进行加密信息共享;n≥2;
13.数据接收模块,用于接收所述n组参与方节点中第一组别的参与方节点发送的加密后共享数据,所述加密后共享数据为每个组别中确定的任一参与方节点基于所述加密信息对共享数据依次加密生成,所述第一组别为对所述共享数据进行最后加密的组别;
14.解密模块,用于基于所述加密信息,对所述加密后共享数据进行解密,得到所述共享数据。
15.本技术实施例的第三方面提供了一种终端,包括存储器、处理器以及存储在所述
存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
16.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
17.本技术的第五方面提供了一种计算机程序产品,当所述计算机程序产品在终端上运行时,使得所述终端执行上述第一方面所述方法的步骤。
18.由上可见,本技术实施例中,发起方节点基于数据共享任务,与数据共享任务涉及的n组参与方节点进行加密信息共享后,n组参与方节点从每个组别确定的任一参与方节点基于加密信息对共享数据依次加密得到加密后共享数据,由最后加密组别中的参与方节点发送至发起方节点,发起方节点基于分享的加密信息对该加密后共享数据进行解密,得到共享数据,该过程将加密过程与分组策略相结合,通过对参与方节点分组且以分组的组别为单位选取参与方节点对共享数据进行依次加密,最终由发起方节点基于加密信息对其加密后共享数据进行解密,确保数据流动过程中的隐私保护,在保证算法安全性的前提下提升运算效率。
附图说明
19.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1是本技术实施例提供的数据共享方法的流程图一;
21.图2是本技术实施例提供的数据共享方法的流程图二;
22.图3是本技术实施例提供的数据共享装置的结构图;
23.图4是本技术实施例提供的一种终端的结构图。
具体实施方式
24.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
25.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
26.还应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
27.还应当进一步理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
28.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0029]
具体实现中,本技术实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
[0030]
在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
[0031]
终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
[0032]
可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
[0033]
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0034]
为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
[0035]
参见图1,图1是本技术实施例提供的数据共享方法的流程图一。如图1所示,一种数据共享方法,方法包括以下步骤:
[0036]
步骤101,发起方节点基于数据共享任务,与数据共享任务涉及的n组参与方节点进行加密信息共享。
[0037]
其中,n≥2,即参与方节点的分组为至少两组。
[0038]
该加密信息用于使发起方节点与参与方节点之间能够实现共享数据的加解密操作。
[0039]
其中,数据共享任务对应的共享数据是由n组参与方节点共享给发起方节点的数据,在该共享数据传递过程中,需要由参与方节点对其进行加密传递,同时需要发起方节点对加密后的共享数据进行解密实现共享数据的获取。
[0040]
在发起方节点与参与方节点之间进行加密信息共享时,具体可以包括:由参与方节点向发起方节点共享用于解密的解密数据,或者由发起方节点向参与方节点共享用于加密的加密数据。当由参与方节点向发起方节点共享用于解密的解密数据时,参与方节点本地保留有与该解密数据对应的用于加密的加密数据;当由发起方节点向参与方节点共享用于加密的加密数据时,发起方节点本地保留有与该加密数据对应的用于解密的解密数据。
[0041]
一方面,作为一可选的实施方式,该发起方节点基于数据共享任务,与数据共享任务涉及的n组参与方节点进行加密信息共享,包括:
[0042]
发起方节点基于数据共享任务,将数据共享任务涉及的参与方节点划分为n组;基于对称加密算法,生成n个私钥作为加密信息,将n个私钥对应配发至n个组别中的每一参与方节点。
[0043]
该过程中实现基于对称加密的隐私求并集的方法,具体是由发起方节点对参与方节点进行组别划分,并将自身生成的n个私钥作为加密信息共享至n个组别中的每一参与方节点。
[0044]
其中,将参与方节点进行组别划分时,可以是按照参与方节点数量进行的均匀划分,即组别划分后每组中所包含的参与方节点的数量相同。也可以是给不同组别赋予不同的权重,按照该权重将对应数量的参与方节点划分至同一个组别中。
[0045]
对于加密信息的生成也是由发起方节点来实现,具体在基于对称加密算法生成n个私钥后,将n个私钥向n个组别中的各参与方节点进行配发。在具体配发时,一个私钥对应一组参与方节点,向同一组别中的每一参与方节点分发相同的私钥,不同组别之间的参与方节点所分发的私钥不相同。
[0046]
其中,数据共享任务为由发起方节点进行触发,该数据共享任务所涉及的参与方节点可以是事先指定得到,或者是由需要共享的数据来决定,即哪些节点上存储的有需要共享的数据则将这些节点确定为数据共享任务所涉及的参与方节点。
[0047]
在具体实现过程中,假设现有x个参与方节点,每个参与方节点拥有自己的数据集合x
i
,发起方节点需要获得所有x
i
的合集,但是不能知道具体合集集合中每个数据元素来自哪个参与方节点,同时参与方节点之间互相也不能知道具体的数据值。
[0048]
这时,需要发起方节点将参与方节点随机分为n组,发起方节点随机生成n个不同的私钥sk1,sk2,

,sk
n
,然后对组别i内的所有参与方节点派发sk
i
,同时告知每一参与方节点所有参与方节点的分组情况。其中,不同组别的参与方节点之间无法获知对方的私钥值。
[0049]
进一步地,在n个组别的参与方节点获取到发起方节点派发的私钥后,每个组中会选取一个参与方节点对其他组中选取出的参与方节点的待共享数据进行加密,具体操作如下:
[0050]
对组别i中某个参与方节点来说,对于该参与方节点的数据集合中待共享元素x,首先计算y=x sk
i
,然后将y发送给其余任一组中的任意参与方节点,如组j中的某一参与方节点,组j中的参与方节点收到y后会计算z=y sk
j
,然后发送给没有对该数据进行过加密的组别中的任一参与方,在此时没有对该数据进行过加密的组为除了组i与组j之外的所有组,如组k中的任一参与方节点为对该数据最后一个进行加密的组别中的参与方节点,则此时该参与方节点会将加密后的数据发送给发起方节点。发起方节点收到加密后的该数据之后,将使用私钥sk1,sk2,

,sk
n
对其进行解密,获得数据x,即前述待共享元素x,确保数据流动过程中的隐私保护,在保证算法安全性的前提下提升运算效率。
[0051]
发起方节点收到的数据为经过每个组中随机调选的任一参与方节点加密过的信息,如果初始的待共享数据为x,那么发起方节点最后得到的加密后数据则为res=x ∑
i
sk
i
,i∈[1,n],这个时候发起方节点只需要计算res-∑
i
sk
i
即可复原出x。
[0052]
其中,每次传递时的待共享数据可以是某个参与方节点的数据集合中的某一数据元素,通过多次传递完成对所有组别中各参与方节点的数据集合的共享,或者,每次传递时的待共享数据也可以是由一个参与方节点的数据集合形成的整体,实现对不同组别中各参
与方节点的数据集合的共享。
[0053]
上述算法实施过程中,组j的参与方节点获得y后因为没有对应的私钥,故无法还原出x,这对之后的所有参与方节点同理,故数据在参与方节点之间流转的时候是没有隐私泄漏的风险的。发起方节点从组k处获取到加密后共享信息后,因为数据x从参与方节点i到参与方节点k的流转方式是随机的,故发起方无法获知数据x具体来自哪一个参与方。故此算法满足数据流动过程中的隐私保护要求,同时又能够避免复杂的加密结构,提升运算效率。
[0054]
另一方面,作为一可选的实施方式,该发起方节点基于数据共享任务,与数据共享任务涉及的n组参与方节点进行加密信息共享,包括:
[0055]
发起方节点基于数据共享任务,将数据共享任务涉及的参与方节点划分为n组;基于非对称加密算法,生成n个公私钥对,将n个公私钥对中的公钥作为加密信息,对应配发至n个组别中的每一参与方节点。
[0056]
该过程中实现基于非对称加密的隐私求并集的方法,具体是由发起方节点对参与方节点进行组别划分,并将自身生成的n个公私钥对中的公钥作为加密信息共享至n个组别中的每一参与方节点。
[0057]
其中,将参与方节点进行组别划分时,可以是按照参与方节点数量进行的均匀划分,即组别划分后每组中所包含的参与方节点的数量相同。也可以是给不同组别赋予不同的权重,按照该权重将对应数量的参与方节点划分至同一个组别中。
[0058]
对于加密信息的生成也是由发起方节点来实现,具体在基于非对称加密算法生成n个公私钥对后,将n个公私钥对中的公钥向n个组别中的各参与方节点进行配发。在具体配发时,一个公私钥对中的公钥对应一组参与方节点,向同一组别中的每一参与方节点分发相同的公钥,不同组别之间的参与方节点所分发的公钥不相同。
[0059]
其中,数据共享任务为由发起方节点进行触发,该数据共享任务所涉及的参与方节点可以是事先指定得到,或者是由需要共享的数据来决定,即哪些节点上存储的有需要共享的数据则将这些节点确定为数据共享任务所涉及的参与方节点。
[0060]
在具体实现过程中,假设现有x个参与方节点,每个参与方节点拥有自己的数据集合x
i
,发起方节点需要获得所有x
i
的合集,但是不能知道具体合集集合中每个数据元素来自哪个参与方节点,同时参与方节点之间互相也不能知道具体的数据值。
[0061]
这时,需要发起方节点将参与方节点随机分为n组,发起方节点随机生成n个不同的公私钥对(sk1,pk1),(sk2,pk2),

,(sk
n
,pk
n
),然后对组别i内的所有参与方节点派发公钥pk
i
,同时告知每一参与方节点所有参与方节点的分组情况。其中,不同组别的参与方节点之间无法获知对方的公钥值。
[0062]
进一步地,在n个组别的参与方节点获取到发起方节点派发的公钥后,每个组中会选取一个参与方节点对其他组中选取出的参与方节点的待共享数据进行加密,具体操作如下:
[0063]
对组i中某个参与方节点来说,对于该参与方节点的数据集合中待共享元素x,首先计算然后将y发送给其余任一组中的任意参与方节点,如组j中的某一参与方节点,组j中的参与方节点收到y后会计算然后发送给没有对该数据进行过加密的组
别中的任一参与方,在此时没有对该数据进行过加密的组为除了组i与组j之外的所有组,如组k中的任一参与方节点为对该数据最后一个进行加密的组别中的参与方节点,则此时该参与方节点会将加密后的数据发送给发起方节点。发起方节点收到加密后的该数据之后,将使用n个公私钥对中的私钥sk1,sk2,

,sk
n
对其进行解密,获得数据x,即前述待共享元素x,确保数据流动过程中的隐私保护,在保证算法安全性的前提下提升运算效率。
[0064]
发起方节点收到的数据为经过每个组中随机调选的任一参与方节点加密过的信息,如果初始的待共享数据为x,那么发起方节点最后得到的加密后数据则为i∈[1,n],这个时候发起方节点只需要计算即可复原出x。
[0065]
其中,每次传递时的待共享数据可以是某个参与方节点的数据集合中的某一数据元素,通过多次传递完成对所有组别中各参与方节点的数据集合的共享,或者,每次传递时的待共享数据也可以是由一个参与方节点的数据集合形成的整体,实现对不同组别中各参与方节点的数据集合的共享。
[0066]
上述算法实施过程中,组j的参与方节点获得y后因为没有对应的私钥,故无法还原出x,这对之后的所有参与方节点同理,故数据在参与方节点之间流转的时候是没有隐私泄漏的风险的。发起方节点从组k处获取到加密后共享信息后,因为数据x从参与方节点i到参与方节点k的流转方式是随机的,故发起方无法获知数据x具体来自哪一个参与方。故此算法满足数据流动过程中的隐私保护要求,同时又能够避免复杂的加密结构,相较于传统算法的计算效率更高,不仅仅是本地计算效率更高,在网络传输上效率也有较大的提升。
[0067]
又一方面,作为一可选的实施方式,该发起方节点基于数据共享任务,与数据共享任务涉及的n组参与方节点进行加密信息共享,包括:
[0068]
发起方节点基于数据共享任务,确定数据共享任务涉及的参与方节点,将数据共享任务发送至参与方节点;从n组参与方节点获取n个加密信息;其中,参与方节点在接收到数据共享任务后自协商分为n组,加密信息为每组参与方节点基于非对称加密算法协商生成的公私钥对中的私钥。
[0069]
该过程中实现基于非对称加密的隐私求并集的方法,具体是由参与方节点对自身进行组别划分,并将自身生成的n个公私钥对中的私钥作为加密信息共享至参与方节点。
[0070]
其中,进行参与方节点组别划分时,可以各个参与方节点之间进行自协商来实现,可以按照参与方节点数量进行均匀划分,即组别划分后每组中所包含的参与方节点的数量相同。也可以是基于对不同组别赋予的权重,按照该权重对应数量的参与方节点自协商划分至同一个组别中。
[0071]
对于加密信息的生成也是由参与方节点来实现,具体为由每个组别中参与方节点基于非对称加密算法自协商生成一个公私钥对,n个组别则生成n个公私钥对,每个组别中选出任一参与方节点将组内协商出的公私钥对中的私钥向发起方节点进行配发。在具体配发时,可选地,不同组别之间的参与方节点自协商出的公私钥对不相同。
[0072]
其中,数据共享任务为由发起方节点进行触发,该数据共享任务所涉及的参与方节点可以是事先指定得到,或者是由需要共享的数据来决定,即哪些节点上存储的有需要共享的数据则将这些节点确定为数据共享任务所涉及的参与方节点。数据共享任务会由发起方节点向每一参与方节点进行发送。
[0073]
在具体实现过程中,假设现有x个参与方节点,每个参与方节点拥有自己的数据集合x
i
,发起方节点需要获得所有x
i
的合集,但是不能知道具体合集集合中每个数据元素来自哪个参与方节点,同时参与方节点之间互相也不能知道具体的数据值。
[0074]
这时,所有参与方节点内部随机分为n组,同时告知每一参与方节点所有参与方节点的分组情况。
[0075]
每个组内的参与方节点协商一对公私钥,例如组i内所有参与方节点协商公私钥对(sk
i
,pk
i
,n),这里的协商方式有很多种,如一个参与方节点随机生成公私钥对后通知其余参与方节点。
[0076]
发起方节点从n组参与方节点获取n个加密信息的过程,需要由不同组别中的任一参与方节点将协商生成的公私钥对中的私钥发送给发起方节点。
[0077]
该私钥在由参与方节点向发起方节点进行传输时,可以借助于掩码实现数据的安全传递。具体可以是:
[0078]
n组参与方节点中每个组随机选取一个参与方节点执行安全聚合算法,例如组i中的任一参与方节点会与组i

1中的任一参与方节点和组i 1中的任一参与方节点分别协商一个掩码,记为r
i
‑1,r
i 1
,其中,当i=1时,无r
i
‑1,当i=n时,无r
i 1
,因此总共协商n

1个掩码,组i的参与方节点则通过m
i
=sk
i
×
r
i
‑1÷
r
i 1
对私钥sk
i
进行掩码计算,并发送给发起方节点,发起方节点则可以根据不同组别的参与方节点发送的掩码计算后的私钥,计算m=π
i
m
i
=π
i
sk
i
。其中,掩码的协商方式很多,如由任一方参与方节点随机生成,或者由两方参与方节点同时随机生成求和等。
[0079]
进一步地,n个参与方节点组别中,每个组别会选取一个参与方节点对其他组中选取出的参与方节点的待共享数据进行加密,具体操作如下:
[0080]
对组i中某个参与方节点来说,对于该参与方节点的数据集合中待共享元素x,首先计算然后将y发送给其余任一组中的任意参与方节点,如组j中的某一参与方节点,组j中的参与方节点收到y后会计算然后发送给没有对该数据进行过加密的组别中的任一参与方,在此时没有对该数据进行过加密的组为除了组i与组j之外的所有组,如组k中的任一参与方节点为对该数据最后一个进行加密的组别中的参与方节点,则此时该参与方节点会将加密后的数据发送给发起方节点。发起方节点收到加密后的该数据之后,将使用m对其进行解密,获得数据x,即前述待共享元素x,确保数据流动过程中的隐私保护,在保证算法安全性的前提下提升运算效率。
[0081]
发起方节点收到的数据为经过每个组中随机调选的任一参与方节点加密过的信息,如果初始的待共享数据为x,那么发起方节点最后得到的加密后数据则为此时发起方节点已经获取到m=π
i
sk
i
,i∈[1,n],这个时候发起方节点只需要计算d
m
(res)即可复原出x。
[0082]
其中,每次传递时的待共享数据可以是某个参与方节点的数据集合中的某一数据元素,通过多次传递完成对所有组别中各参与方节点的数据集合的共享,或者,每次传递时的待共享数据也可以是由一个参与方节点的数据集合形成的整体,实现对不同组别中各参与方节点的数据集合的共享。
[0083]
上述算法实施过程中,组j的参与方节点获得y后因为没有对应的私钥,故无法还原出x,这对之后的所有参与方节点同理,故数据在参与方节点之间流转的时候是没有隐私泄漏的风险的。发起方节点从组k处获取到加密后共享信息后,因为数据x从参与方节点i到参与方节点k的流转方式是随机的,故发起方无法获知数据x具体来自哪一个参与方。
[0084]
且本算法可以克服分组算法中出现的安全性问题,分组算法的安全性问题是指在无分组情况下发起方节点最后收到消息后只能得出数据不是来自发送数据给他的那个参与方节点,在分组之后发起方节点便知道数据不是来自发消息给自己的那组发起方节点,而这无疑泄露了某些信息。本算法因为发起方节点并不知道底层的分组情况,故完全无法获得任何额外信息。
[0085]
故本实施例中的此算法满足数据流动过程中的隐私保护要求,同时仅利用非对称加密算法即可实现私密传输,避免复杂的加密结构,在保证算法安全性的前提下提升运算效率。
[0086]
再一方面,作为一可选的实施方式,该发起方节点基于数据共享任务,与数据共享任务涉及的n组参与方节点进行加密信息共享,包括:
[0087]
发起方节点基于数据共享任务,确定数据共享任务涉及的参与方节点,将数据共享任务发送至参与方节点;从n组参与方节点获取n个加密信息;其中,参与方节点在接收到数据共享任务后自协商分为n组,加密信息为每组参与方节点基于对称加密算法协商生成的私钥。
[0088]
该过程中实现基于对称加密的隐私求并集的方法,具体是由参与方节点对自身进行组别划分,并将自身生成的n个公私钥对中的私钥作为加密信息共享至参与方节点。
[0089]
其中,进行参与方节点组别划分时,可以各个参与方节点之间进行自协商来实现,可以按照参与方节点数量进行均匀划分,即组别划分后每组中所包含的参与方节点的数量相同。也可以是基于对不同组别赋予的权重,按照该权重对应数量的参与方节点自协商划分至同一个组别中。
[0090]
对于加密信息的生成也是由参与方节点来实现,具体为由每个组别中参与方节点基于非对称加密算法自协商生成一个公私钥对,n个组别则生成n个公私钥对,每个组别中选出任一参与方节点将组内协商出的公私钥对中的私钥向发起方节点进行配发。在具体配发时,可选地,不同组别之间的参与方节点自协商出的公私钥对不相同。
[0091]
其中,数据共享任务为由发起方节点进行触发,该数据共享任务所涉及的参与方节点可以是事先指定得到,或者是由需要共享的数据来决定,即哪些节点上存储的有需要共享的数据则将这些节点确定为数据共享任务所涉及的参与方节点。数据共享任务会由发起方节点向每一参与方节点进行发送。
[0092]
在具体实现过程中,假设现有x个参与方节点,每个参与方节点拥有自己的数据集合x
i
,发起方节点需要获得所有x
i
的合集,但是不能知道具体合集集合中每个数据元素来自哪个参与方节点,同时参与方节点之间互相也不能知道具体的数据值。
[0093]
这时,所有参与方节点内部随机分为n组,同时告知每一参与方节点所有参与方节点的分组情况。
[0094]
每个组内的参与方节点协商一个私钥,例如组i内所有参与方节点协商私钥sk
i
,这里的协商方式有很多种,如一个参与方节点随机生成公私钥对后通知其余参与方节点。
[0095]
发起方节点从n组参与方节点获取n个加密信息的过程,需要由不同组别中的任一参与方节点将协商生成的私钥发送给发起方节点。
[0096]
该私钥在由参与方节点向发起方节点进行传输时,可以借助于掩码实现数据的安全传递。具体可以是:
[0097]
n组参与方节点中每个组随机选取一个参与方节点执行安全聚合算法,例如组i中的任一参与方节点会与组i

1中的任一参与方节点和组i 1中的任一参与方节点分别协商一个掩码,记为r
i
‑1,r
i 1
,其中,当i=1时,无r
i
‑1,当i=n时,无r
i 1
,因此总共协商n

1个掩码,组i的参与方节点则通过m
i
=sk
i

r
i
‑1 r
i 1
对私钥sk
i
进行掩码计算,并发送给发起方节点,发起方节点则可以根据不同组别的参与方节点发送的掩码计算后的私钥,计算m=∑
i
m_i=∑
i
sk
i
。其中,掩码的协商方式很多,如由任一方参与方节点随机生成,或者由两方参与方节点同时随机生成求和等。
[0098]
进一步地,n个参与方节点组别中,每个组别会选取一个参与方节点对其他组中选取出的参与方节点的待共享数据进行加密,具体操作如下:
[0099]
对组i中某个参与方节点来说,对于该参与方节点的数据集合中待共享元素x,首先计算y=x sk
i
,然后将y发送给其余任一组中的任意参与方节点,如组j中的某一参与方节点,组j中的参与方节点收到y后会计算z=y sk
j
,然后发送给没有对该数据进行过加密的组别中的任一参与方,在此时没有对该数据进行过加密的组为除了组i与组j之外的所有组,如组k中的任一参与方节点为对该数据最后一个进行加密的组别中的参与方节点,则此时该参与方节点会将加密后的数据发送给发起方节点。发起方节点收到加密后的该数据之后,将使用m对其进行解密,获得数据x,即前述待共享元素x,确保数据流动过程中的隐私保护,在保证算法安全性的前提下提升运算效率。
[0100]
发起方节点收到的数据为经过每个组中随机调选的任一参与方节点加密过的信息,如果初始的待共享数据为x,那么发起方节点最后得到的加密后数据则为res=x ∑
i
sk
i
,此时发起方节点已经获取到m=∑
i
sk
i
,i∈[1,n],这个时候发起方节点只需要计算res


i
sk
i
即可复原出x。
[0101]
其中,每次传递时的待共享数据可以是某个参与方节点的数据集合中的某一数据元素,通过多次传递完成对所有组别中各参与方节点的数据集合的共享,或者,每次传递时的待共享数据也可以是由一个参与方节点的数据集合形成的整体,实现对不同组别中各参与方节点的数据集合的共享。
[0102]
上述算法实施过程中,组j的参与方节点获得y后因为没有对应的私钥,故无法还原出x,这对之后的所有参与方节点同理,故数据在参与方节点之间流转的时候是没有隐私泄漏的风险的。发起方节点从组k处获取到加密后共享信息后,因为数据x从参与方节点i到参与方节点k的流转方式是随机的,故发起方无法获知数据x具体来自哪一个参与方。
[0103]
且相同地,因为本算法中发起方节点无法获知参与方节点的分组方式,故发起方节点完全无法获得任何额外信息。
[0104]
本实施例中的此算法满足数据流动过程中的隐私保护要求,同时仅利用对称加密算法即可实现私密传输,避免复杂的加密结构,在保证算法安全性的前提下提升运算效率。
[0105]
步骤102,接收n组参与方节点中第一组别的参与方节点发送的加密后共享数据。
[0106]
该加密后共享数据为每个组别中确定的任一参与方节点基于加密信息对共享数
据依次加密生成,该第一组别为对共享数据进行最后加密的组别。
[0107]
其中,该依次加密可以是基于随机确定的顺序进行的依次加密。
[0108]
在对共享数据进行加密过程中,与分组策略相结合,以划分的组别的单位,每个组别中选出一个参与方节点共同实施对共享数据的层叠式加密,该层叠式加密具体指加密次序在后的参与方节点基于加密次序在前的参与方节点已经加密过的共享数据的基础上实施再次加密。
[0109]
步骤103,基于加密信息,对加密后共享数据进行解密,得到共享数据。
[0110]
在具体实施过程中,发起方节点对加密信息进行解密时,具体是基于n个私钥,对加密后共享数据进行解密,得到共享数据。
[0111]
该n个私钥中,每一私钥对应于一个参与方节点组别。该私钥具体是在前述步骤101中发起方节点与n组参与方节点进行加密信息共享过程中得到。
[0112]
作为一可选的实施方式,在基于加密信息,对加密后共享数据进行解密,得到共享数据之后,还包括:对解密到的所有共享数据进行并集运算,得到目标数据集合。
[0113]
即,结合前述各个具体实施过程,在参与方节点对待共享元素x传递之后,当发起方节点收到所有参与方节点传输而来的共享数据后,即可对这些数据进行并集运算,获得所有x
i
的合集。
[0114]
本技术实施例中,发起方节点基于数据共享任务,与数据共享任务涉及的n组参与方节点进行加密信息共享后,n组参与方节点从每个组别确定的任一参与方节点基于加密信息对共享数据依次加密得到加密后共享数据,由最后加密组别中的参与方节点发送至发起方节点,发起方节点基于分享的加密信息对该加密后共享数据进行解密,得到共享数据,该过程将加密过程与分组策略相结合,通过对参与方节点分组且以分组的组别为单位选取参与方节点对共享数据进行依次加密,最终由发起方节点基于加密信息对其加密后共享数据进行解密,确保数据流动过程中的隐私保护,在保证算法安全性的前提下提升运算效率。
[0115]
本技术实施例中还提供了数据共享方法的不同实施方式。
[0116]
参见图2,图2是本技术实施例提供的数据共享方法的流程图二。如图2所示,一种数据共享方法,该方法包括以下步骤:
[0117]
步骤201,发起方节点基于数据共享任务,判断数据共享任务涉及的参与方节点的数量是否超出阈值。
[0118]
具体地,该阈值可以取值为2,即判断数据共享任务所涉及的参与方节点的数量是否超过两个。
[0119]
当数据共享任务所涉及的参与方节点的数量过少时,则需要特殊处理,以满足数据共享时的保密性要求。
[0120]
当数据共享任务所涉及的参与方节点的数量较多时,则按照实施例一中公开的各实施过程进行执行。
[0121]
步骤202,若数据共享任务涉及的参与方节点的数量未超出阈值,则接收每一参与方节点共享的加密信息。
[0122]
为避免参与方数量较少时数据共享的隐私泄露,具体需要由参与方节点生成加密信息共享至参与方节点,尽可能避免在参与方节点过少的情况下,发起方节点获取到额外的数据来源信息。
[0123]
步骤203,获取每一参与方节点发送的加密后共享数据。
[0124]
其中,加密后共享数据包括:每一参与方节点中本地生成的二次加密数据及与其他参与方节点部分交换得到的二次加密数据,该二次加密数据为参与方节点对由其他参与方节点对共享数据加密后生成的数据进行再次加密得到。
[0125]
以阈值为2为例进行说明。当共享任务涉及的参与方节点的数量为2时,每个参与方节点拥有自己的数据集合x
i
,每个参与方节点的数据集合x
i
均形成为待共享数据,起方节点需要获得x1∪x2,但是不能知道具体合集集合中每个数据元素来自哪个参与方节点。
[0126]
为避免参与方数量较少时数据共享的隐私泄露,需要每个参与方节点基于加密技术进行数据加密,该加密技术例如为非对称加密算法或者对称加密算法,以非对称加密算法为例进行说明。
[0127]
每个参与方节点均生成一个公私钥对,如参与方节点1生成公私钥对(sk1,pk1,n),参与方节点2生成公私钥对(pk2,sk2,n),将两个参与方节点与发起方节点进行安全聚合,流程如下:
[0128]
参与方节点1与参与方节点2协商一个掩码r;参与方节点1计算m1=sk1×
r并发送给发起方节点,参与方节点2计算m2=sk2/r并发送给发起方节点。
[0129]
两个参与方节点互相对对方的数据进行加密,对参与方节点1来说,对于数据集合x1中任意元素x,首先计算然后将y发送给参与方节点2,参与方节点2收到y后会计算同理参与方节点2对于数据集合x2中任意元素x也是同样的处理办法,自身先对待共享数据进行加密后由其他参与方节点对其进而再次加密。此时,参与方节点1手中拥有参与方节点2的二次加密后的所有数据,同理,参与方节点2手中也拥有参与方节点1的二次加密后的所有数据,每一方随机选取手中的数据与对方进行交换,例如随机选取一半数据进行交换,交换过后参与方节点1与参与方节点2将手中的所有数据发送给发起方,实现每一参与方节点向发起方节点发送加密后共享数据。
[0130]
在该步骤执行完毕后需要继续执行步骤206,基于加密信息,对加密后共享数据进行解密,得到共享数据。
[0131]
具体地,接续前述例子进行说明。
[0132]
发起方节点接收到每一参与方节点共享的加密信息及加密后共享数据之后,发起方节点利用每一参与方节点共享的加密信息,计算m=m1×
m2=sk1×
sk2,并使用m对收到的加密后共享数据进行解密,获得元素x的值。
[0133]
发起方节点收到的数据为经过每个组中随机调选的任一参与方节点加密过的信息,如果初始的待共享数据为x,那么发起方节点最后得到的加密后数据则为同时发起方节点已经计算出m=sk1×
sk2,这个时候发起方只需要计算res
m
即可复原出x。
[0134]
其中,每次传递时的待共享数据可以是某个参与方节点的数据集合中的某一数据元素,通过多次传递完成对所有组别中各参与方节点的数据集合的共享,或者,每次传递时的待共享数据也可以是由一个参与方节点的数据集合形成的整体,实现对不同组别中各参与方节点的数据集合的共享。
[0135]
上述算法实施过程中,参与方节点2获得y后因为没有对应的私钥,故无法还原出结果x,对参与方节点1同理,故数据在参与方节点之间流转的时候是没有隐私泄漏的风险的。发起方节点从参与方节点1或参与方节点2手中拿到结果后,因为参与方节点1或者2手中的数据是经过交换的,故发起方节点无法获知数据x具体来自哪一个参与方节点。故此算法满足数据流动过程中的隐私保护要求,同时又能够避免复杂的加密结构,相较于传统算法的计算效率更高,不仅仅是本地计算效率更高,在网络传输上效率也有较大的提升。
[0136]
步骤204,若数据共享任务涉及的参与方节点的数量超出阈值,则发起方节点与数据共享任务涉及的n组参与方节点进行加密信息共享。
[0137]
其中,n≥2。
[0138]
该步骤的实现过程与前述实施方式中的步骤101的实现过程相同,此处不再赘述。
[0139]
步骤205,接收n组参与方节点中第一组别的参与方节点发送的加密后共享数据。
[0140]
该加密后共享数据为每个组别中确定的任一参与方节点基于加密信息对共享数据依次加密生成,第一组别为对共享数据进行最后加密的组别。
[0141]
该步骤的实现过程与前述实施方式中的步骤102的实现过程相同,此处不再赘述。
[0142]
步骤206,基于加密信息,对加密后共享数据进行解密,得到共享数据。
[0143]
当数据共享任务涉及的参与方节点的数量超出阈值时,该步骤的实现过程与前述实施方式中的步骤103的实现过程相同,此处不再赘述。
[0144]
本技术实施例中,发起方节点基于数据共享任务,对数据共享任务涉及的参与方节点进行数量判断,当参与方节点的数量不同时,则采用不同的数据共享策略,该过程将数据加密过程与参与方节点的数量相结合,通过参与方节点对共享数据进行依次加密,最终由发起方节点基于加密信息对其加密后共享数据进行解密,确保数据流动过程中的隐私保护,在保证算法安全性的前提下提升运算效率。
[0145]
参见图3,图3是本技术实施例提供的一种数据共享装置的结构图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0146]
该数据共享装置300包括:
[0147]
信息共享模块301,用于发起方节点基于数据共享任务,与所述数据共享任务涉及的n组参与方节点进行加密信息共享;n≥2;
[0148]
数据接收模块302,用于接收所述n组参与方节点中第一组别的参与方节点发送的加密后共享数据,所述加密后共享数据为每个组别中确定的任一参与方节点基于所述加密信息对共享数据依次加密生成,所述第一组别为对所述共享数据进行最后加密的组别;
[0149]
解密模块303,用于基于所述加密信息,对所述加密后共享数据进行解密,得到所述共享数据。
[0150]
其中,信息共享模块,具体用于:
[0151]
发起方节点基于数据共享任务,将所述数据共享任务涉及的参与方节点划分为n组;
[0152]
基于对称加密算法,生成n个私钥作为所述加密信息,将n个所述私钥对应配发至n个组别中的每一参与方节点。
[0153]
其中,信息共享模块,具体用于:
[0154]
发起方节点基于数据共享任务,将所述数据共享任务涉及的参与方节点划分为n
组;
[0155]
基于非对称加密算法,生成n个公私钥对,将n个所述公私钥对中的公钥作为所述加密信息,对应配发至n个组别中的每一参与方节点。
[0156]
其中,信息共享模块,具体用于:
[0157]
发起方节点基于数据共享任务,确定所述数据共享任务涉及的参与方节点,将所述数据共享任务发送至所述参与方节点;
[0158]
从n组所述参与方节点获取n个所述加密信息;
[0159]
其中,所述参与方节点在接收到所述数据共享任务后自协商分为n组,所述加密信息为每组所述参与方节点基于非对称加密算法协商生成的公私钥对中的私钥,或者所述加密信息为每组所述参与方节点基于对称加密算法协商生成的私钥。
[0160]
其中,解密模块,具体用于:
[0161]
基于n个所述私钥,对所述加密后共享数据进行解密,得到所述共享数据。
[0162]
该装置还包括:
[0163]
数据处理模块,用于:
[0164]
判断所述数据共享任务涉及的参与方节点的数量是否超出阈值;
[0165]
若所述数据共享任务涉及的参与方节点的数量未超出阈值,则接收每一参与方节点共享的加密信息;
[0166]
获取每一所述参与方节点发送的加密后共享数据;其中,所述加密后共享数据包括:每一所述参与方节点中本地生成的二次加密数据及与其他参与方节点部分交换得到的二次加密数据,所述二次加密数据为所述参与方节点对由其他参与方节点对共享数据加密后生成的数据进行再次加密得到;
[0167]
基于所述加密信息,对所述加密后共享数据进行解密,得到所述共享数据。
[0168]
该装置还包括:
[0169]
集合处理模块,用于对解密到的所有所述共享数据进行并集运算,得到目标数据集合。
[0170]
本技术实施例提供的数据共享装置能够实现上述数据共享方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0171]
图4是本技术实施例提供的一种终端的结构图。如该图所示,该实施例的终端4包括:至少一个处理器40(图4中仅示出一个)、存储器41以及存储在所述存储器41中并可在所述至少一个处理器40上运行的计算机程序42,所述处理器40执行所述计算机程序42时实现上述任意各个方法实施例中的步骤。
[0172]
所述终端4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端4的示例,并不构成对终端4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出设备、网络接入设备、总线等。
[0173]
所述处理器40可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0174]
所述存储器41可以是所述终端4的内部存储单元,例如终端4的硬盘或内存。所述存储器41也可以是所述终端4的外部存储设备,例如所述终端4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器41还可以既包括所述终端4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
[0175]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0176]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0177]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0178]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0179]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0180]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0181]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计
算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0182]
本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在终端上运行时,使得所述终端执行时实现可实现上述各个方法实施例中的步骤。
[0183]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜