1.本发明涉及数据安全领域,特别涉及一种数据求交集方法、系统及数据加密方法。
背景技术:2.本发明要解决的技术问题是:在为加快推进数据有序共享,努力打破“数字孤岛”的大背景下,解决数据既要共享,又要实现隐私保护的场景下数据求交集的问题。
3.近年来,信息化进程的不断加深,数据增长速度不断提升,数据已经成为一种重要的资产。数据通过共享交互,能够获取数据的巨大价值,打破数据孤岛。隐私集合求交(private set intersection,psi)属于安全多方计算领域的特定应用问题,不仅具有重要的理论意义也具有很强的应用价值,能够在打破数据孤岛中解决很多场景问题,如:金融风控中,是否多头借贷是很重要的风控指标。通过psi方案,银行a可获知客户清单中哪些存在多头借贷,却不用把客户信息泄露给银行b。
4.为此,需要一种更为安全的三方数据求交集的方法。
技术实现要素:5.有鉴于此,本发明的目的在于提供一种数据求交集方法、系统及数据加密方法,更为安全。其具体方案如下:
6.一种数据求交集方法,包括:
7.接收数据请求方利用密钥和需要验证的验证数据集拼接后的第一拼接数据,生成的第一哈希集合;
8.接收数据提供方利用所述密钥和与所述验证数据集对应的查询数据集拼接后的第二拼接数据,生成的第二哈希集合;
9.利用所述第一哈希集合在所述第二哈希集合中进行匹配,得到所述第一哈希集合与所述第二哈希集合的交集;
10.发送所述交集至所述数据请求方,以使所述数据请求方得知数据提供方拥有的所述验证数据集中的数据;
11.其中,所述密钥为所述数据请求方与所述数据提供方预先协商得到的。
12.可选的,所述接收数据提供方利用所述密钥和与所述验证数据集对应的查询数据集生成的第二哈希集合的过程,包括:
13.接收所述数据提供方利用bloom filter对所述第二哈希集合进行处理,得到与所述第二哈希集合对应的bitset。
14.可选的,所述利用所述第一哈希集合在所述第二哈希集合中进行匹配,得到所述第一哈希集合与所述第二哈希集合的交集的过程,包括:
15.利用所述第一哈希集合与所述bitset进行匹配,得到所述交集。
16.可选的,所述发送所述交集至所述数据请求方之后,还包括:
17.发送所述交集至所述数据提供方,以使所述数据提供方查找到与所述交集对应的
交集数据;
18.接收所述数据提供方利用所述密钥对所述交集数据进行加密后的密文;
19.发送所述密文至所述数据请求方,以使所述数据请求方利用所述密钥对所述密文进行解密,得到所述交集数据。
20.本发明还公开了一种数据加密方法,应用于数据请求方,包括:
21.利用密钥和需要验证的验证数据集进行拼接,得到第一拼接数据;
22.利用所述第一拼接数据进行哈希计算,生成第一哈希集合;
23.发送所述第一哈希集合至数据交易中心;
24.接收所述数据交易中心发送的交集;
25.其中,所述密钥为所述数据请求方与数据提供方预先协商得到的。
26.可选的,还包括:
27.接收数据交易中心发送的由数据提供方利用所述密钥加密后的密文;
28.利用所述密钥解密所述密文,得到交集数据。
29.本发明还公开了一种数据加密方法,应用于数据提供方,包括:
30.利用密钥和与验证数据集对应的查询数据集进行拼接,得到第二拼接数据;
31.利用所述第二拼接数据进行哈希计算,生成第二哈希集合;
32.发送所述第二哈希集合至数据交易中心;
33.其中,所述密钥为数据请求方与所述数据提供方预先协商得到的。
34.可选的,所述利用密钥和与验证数据集对应的查询数据集生成的第二哈希集合的过程,包括:
35.利用bloom filter对所述第二哈希集合进行处理,得到与所述第二哈希集合对应的bitset;
36.所述发送所述第二哈希集合至数据交易中心的过程,包括:
37.发送所述bitset至所述数据交易中心。
38.可选的,还包括:
39.接收所述数据交易中心发送的交集;
40.查找与所述交集对应的交集数据;
41.利用所述密钥加密所述交集数据,得到加密后的密文;
42.发送所述密文至所述数据交易中心。
43.本发明还公开了一种数据求交集系统,应用于数据交易中心,包括:
44.请求方接收模块,用于接收数据请求方利用密钥和需要验证的验证数据集拼接后的第一拼接数据,生成的第一哈希集合;
45.提供方接收模块,用于接收数据提供方利用所述密钥和与所述验证数据集对应的查询数据集拼接后的第二拼接数据,生成的第二哈希集合;
46.求交集模块,用于利用所述第一哈希集合在所述第二哈希集合中进行匹配,得到所述第一哈希集合与所述第二哈希集合的交集;
47.第一交集发送模块,用于发送所述交集至所述数据请求方,以使所述数据请求方得知数据提供方拥有的所述验证数据集中的数据;
48.其中,所述密钥为所述数据请求方与所述数据提供方预先协商得到的。
49.本发明中,数据求交集方法,包括:接收数据请求方利用密钥和需要验证的验证数据集拼接后的第一拼接数据,生成的第一哈希集合;接收数据提供方利用密钥和与验证数据集对应的查询数据集拼接后的第二拼接数据,生成的第二哈希集合;利用第一哈希集合在第二哈希集合中进行匹配,得到第一哈希集合与第二哈希集合的交集;发送交集至数据请求方,以使数据请求方得知数据提供方拥有的验证数据集中的数据;其中,密钥为数据请求方与数据提供方预先协商得到的。
50.本发明在进行哈希计算时,不仅对数据集进行哈希计算,同时在其中增加数据提供方与数据请求方预先协商得到的密钥,通过对密钥与数据集一同进行哈希计算,能够避免哈希集合以哈希碰撞的方式被破解,增加了安全性。
附图说明
51.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
52.图1为本发明实施例公开的一种数据求交集方法流程示意图;
53.图2为本发明实施例公开的另一种数据求交集方法流程示意图;
54.图3为本发明实施例公开的另一种数据求交集三方流程示意图;
55.图4为本发明实施例公开的一种数据交换流程示意图;
56.图5为本发明实施例公开的一种数据加密方法流程示意图;
57.图6为本发明实施例公开的另一种数据加密方法流程示意图;
58.图7为本发明实施例公开的一种交集数据生成与发送流程示意图;
59.图8为本发明实施例公开的一种数据求交集系统结构示意图。
具体实施方式
60.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
61.本发明实施例公开了一种数据求交集方法,参见图1所示,应用于数据交易中心,该方法包括:
62.s11:接收数据请求方利用密钥和需要验证的验证数据集拼接后的第一拼接数据,生成的第一哈希集合。
63.具体的,密钥为数据请求方与数据提供方预先协商得到的,数据请求方与数据提供方之间协商一对密钥k
ab
,可通过物理途经、借助于公钥密码或者利用dh密钥协商算法等方式取得。
64.具体的,数据请求方需要判断数据提供方是否拥有验证数据集中的部分或全部数据,以便决定是否后续继续从数据提供方中获取所需数据,因此数据请求方需要向第三方发送验证数据集,以便进行判断,为了增加安全性,数据请求方需要利用密钥与验证数据集
进行拼接,得到第一拼接数据,在对第一拼接数据计算哈希值生成第一哈希集合,利用密钥增加第一哈希集合的安全度,避免验证数据集被通过哈希碰撞的方式破解。
65.例如,数据请求方拥有验证数据集且欲求验证数据集sb与数据提供方的查询数据的交集部分,数据请求方对于所有bi∈sa计算bi'=h(bi||k
ab
),得到第一哈希集合,h()为一种安全的哈希算法。
66.具体的,在生成第一哈希集合前,无需利用密钥对验证数据集进行加密,只需将密钥与验证数据一同进行哈希计算即可。
67.s12:接收数据提供方利用密钥和与验证数据集对应的查询数据集拼接后的第二拼接数据,生成的第二哈希集合。
68.具体的,在接收到数据请求方发送的第一哈希集合后,可以通知数据提供方数据请求方发起了数据交集验证,需要数据提供方提供与验证数据集对应的查询数据集进行数据交集验证。
69.具体的,数据提供方在得知需要进行数据交集验证后,便也同样需要利用密钥以及与验证数据集对应的查询数据集进行拼接,得到第二拼接数据,再对第二拼接数据进行哈希计算生成的第二哈希集合,并发送至第三方,以便后续在第三方进行交集验证。
70.例如,数据提供方拥有数据集sa={a0,a1,
…
,a
na
},对于所有ai∈sa,计算hi=h(ai||k
ab
),得到第二哈希集合。
71.s13:利用第一哈希集合在第二哈希集合中进行匹配,得到第一哈希集合与第二哈希集合的交集。
72.具体的,在接收到第一哈希集合和第二哈希集合后,便可以进行交集匹配操作,第二哈希结合数据量大于第一哈希集合,且也是需要利用第一哈希集合判断第二哈希集合中包括哪些第一哈希集合中的数据,因此,利用第一哈希集合在第二哈希集合中进行匹配,得到第一哈希集合与第二哈希集合的交集。
73.具体的,交集中包括了哈希形式的第一哈希集合与第二哈希集合重合的数据。
74.s14:发送交集至数据请求方,以使数据请求方得知数据提供方拥有的验证数据集中的数据。
75.具体的,交集匹配完成后,便可以发送交集至数据请求方,以使数据请求方根据交集得知数据提供方拥有那些验证数据集中的数据,完成数据交集判断。
76.可见,本发明实施例在进行哈希计算时,不仅对数据集进行哈希计算,同时在其中增加数据提供方与数据请求方预先协商得到的密钥,通过对密钥与数据集一同进行哈希计算,能够避免哈希集合以哈希碰撞的方式被破解,增加了安全性。
77.本发明实施例公开了一种具体的数据求交集方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2和图3所示,具体的:
78.s21:接收数据请求方利用密钥和需要验证的验证数据集生成的第一哈希集合。
79.例如,图3中数据请求方发送第一哈希集合{bi'}至数据交易中心。
80.s22:接收数据提供方利用bloom filter对第二哈希集合进行处理得到的与第二哈希集合对应的bitset。
81.具体的,数据提供方的第二哈希集合包括大量数据,例如,数据请求方为银行a需要查询部分和客户的信息是否在数据提供方银行b中有记录,银行a只需提供包括指定客户
信息的第一哈希集合,数据量较小,而银行b并不知道银行a需要查询那些客户信息,只知道要查询客户信息,所以银行b需要把自身所掌握的全部客户信息打包生成第二哈希集合,这样才能够避免数据全部被查询到而不会存在缺漏,但也导致第二哈希集合数据量巨大,数据传输缓慢,也会增加匹配时间,降低效率。为此,为了解决这一问题,数据提供方利用bloom filter技术对第二哈希集合进行处理,得到数据量更小与第二哈希集合对应的bitset,相当于对第二哈希集合进行了数据压缩,从而提高了发送数据至数据交易中心的传输速度,例如,图3中数据提供中心将bitset(bf)发送至数据交易中心的过程。
82.s23:利用第一哈希集合与bitset进行匹配,得到交集。
83.具体的,利用第一哈希集合基于bloom filter不生成相应的bitset,仅计算第一哈希集合中各哈希值所对应的在bitset上的位置,判断第一哈希集合中各哈希值所对应的在bitset上的位置是否已经在于第二哈希集合对应的bitset上已经有记载的数据,如果有,则说明第二哈希集合上有相同的数据,如果bitset上对应的位置没有数据,则说明第二哈希集合上没有第一哈希集合中与该位置对应的哈希值,进而得到第一哈希集合与第二哈希集合的交集。
84.s24:发送交集至数据请求方,以使数据请求方得知数据提供方拥有的验证数据集中的数据。
85.具体的,例如,图3中数据交易中心返回存在的bi'至数据请求方。
86.其中,密钥为数据请求方与数据提供方预先协商得到的。
87.具体的,参见图4所示,在数据请求方接收到交集后,便可以准备接收所需的交集数据,同时,数据提供方也需要根据交集制作交集数据发送至数据请求方,具体过程包括s31至s33;其中,
88.s31:发送交集至数据提供方,以使数据提供方查找到与交集对应的交集数据。
89.具体的,可以预先在数据中心设置业务逻辑即在发送交集至数据请求方之后,同时发送交集至数据提供方,以使数据提供方查找到与交集对应的交集数据。
90.例如,图3中数据交易中心返回hi'至数据提供方。
91.s32:接收数据提供方利用密钥对交集数据进行加密后的密文。
92.具体的,数据提供方利用密钥对交集数据进行加密,得到加密后的密文,可以避免传输至数据交易中心后直接被明文读取造成数据泄露,通过加密确保数据的安全性。
93.s33:发送密文至数据请求方,以使数据请求方利用密钥对密文进行解密,得到交集数据。
94.具体的,数据交易中心最后将接收到的密文发送至数据请求方,完成全部的数据交易过程,数据交易过程中数据全程加密,不会存在数据泄露的问题。
95.相应的,本发明实施例还公开了一种数据加密方法,应用于数据请求方,参见图5所示,该方法包括:
96.s41:利用密钥和需要验证的验证数据集进行拼接,得到第一拼接数据;
97.s42:利用第一拼接数据进行哈希计算,生成第一哈希集合;
98.s43:发送第一哈希集合至数据交易中心;
99.s44:接收数据交易中心发送的交集;
100.其中,密钥为数据请求方与数据提供方预先协商得到的。
101.具体的,数据请求方在需要进行数据交集匹配后,便可以利用密钥和需要验证的验证数据集生成的第一哈希集合,并发送第一哈希集合至数据交易中心,以使第一哈希集合在数据交易中心进行求交集。
102.可见,本发明实施例在进行哈希计算时,不仅对数据集进行哈希计算,同时在其中增加数据提供方与数据请求方预先协商得到的密钥,通过对密钥与数据集一同进行哈希计算,能够避免哈希集合以哈希碰撞的方式被破解,增加了安全性。
103.具体的,接收到数据交易中心发送的由数据提供方利用密钥加密后的密文后,便可以利用本地存储的相同的密钥解密密文,得到交集数据。
104.此外,本发明实施例还公开了一种数据加密方法,参见图6所示,应用于数据提供方,该方法包括:
105.s51:利用密钥和与验证数据集对应的查询数据集进行拼接,得到第二拼接数据;
106.s52:利用第二拼接数据进行哈希计算,生成第二哈希集合;
107.s53:发送第二哈希集合至数据交易中心;
108.其中,密钥为数据请求方与数据提供方预先协商得到的。
109.可见,本发明实施例在进行哈希计算时,不仅对数据集进行哈希计算,同时在其中增加数据提供方与数据请求方预先协商得到的密钥,通过对密钥与数据集一同进行哈希计算,能够避免哈希集合以哈希碰撞的方式被破解,增加了安全性。
110.具体的,为了缩减数据传输量,s51利用密钥和与验证数据集对应的查询数据集生成的第二哈希集合的过程,可以具体为利用bloom filter对第二哈希集合进行处理,得到与第二哈希集合对应的bitset;相应的,s52发送第二哈希集合至数据交易中心的过程为发送bitset至数据交易中心。
111.进一步的,数据提供方在进行交集匹配后,还可以将与交集匹配后得到的交集数据发送至数据请求方,以使数据请求方得到想要的数据,具体过程可以参见图7所示,包括s61至s64;其中,
112.s61:接收数据交易中心发送的交集;
113.s62:查找与交集对应的交集数据;
114.s63:利用密钥加密交集数据,得到加密后的密文;
115.s64:发送密文至数据交易中心。
116.具体的,数据提供方接收包括了验证数据集与查询数据集重合部分的交集,利用交集查找相对应的交集数据,例如,交集中包括了数据请求方所需的用户的id,数据提供方可以根据用户的id查找到相应的用户的其它个人信息,即交际数据,并利用密钥对交集数据进行加密,得到加密后的密文,再发送至数据交易中心,完成整个的数据交换过程。
117.此外,本发明实施例还公开了一种数据求交集系统,应用于数据交易中心,包括:
118.请求方接收模块11,用于接收数据请求方利用密钥和需要验证的验证数据集拼接后的第一拼接数据,生成的第一哈希集合;
119.提供方接收模块12,用于接收数据提供方利用密钥和与验证数据集对应的查询数据集拼接后的第二拼接数据,生成的第二哈希集合;
120.求交集模块13,用于利用第一哈希集合在第二哈希集合中进行匹配,得到第一哈希集合与第二哈希集合的交集;
121.第一交集发送模块14,用于发送交集至数据请求方,以使数据请求方得知数据提供方拥有的验证数据集中的数据;
122.其中,密钥为数据请求方与数据提供方预先协商得到的。
123.具体的,提供方接收模块12,具体用于接收数据提供方利用bloom filter对第二哈希集合进行处理,得到与第二哈希集合对应的bitset。
124.具体的,求交集模块13,具体用于利用第一哈希集合与bitset进行匹配,得到交集。
125.具体的,还可以包括:
126.第二交集发送模块,用于发送交集至数据提供方,以使数据提供方查找到与交集对应的交集数据;
127.密文接受模块,用于接收数据提供方利用密钥对交集数据进行加密后的密文;
128.密文发送模块,用于发送密文至数据请求方,以使数据请求方利用密钥对密文进行解密,得到交集数据。
129.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
130.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
131.以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。