本技术涉及数据安全,特别涉及一种多方隐私求交方法及计算机设备。
背景技术:
1、隐私计算(privacy-preserving computation,ppc),指在保证数据方不泄露原始数据的前提下,对数据进行分析计算的一类信息技术,保障数据在产生、存储、计算、应用、销毁等信息流程全过程的各个环节中“可用不可见”。隐私求交(private setintersection,psi),是隐私计算中的一种集合运算,数据方分别提供数据,通过隐私协议计算出集合的交集,结果接收方只能得到正确的交集,隐私求交过程中原始数据中除交集以外的元素不会泄露到任何一方。
2、隐私求交时,有n(n≥2)个数据方,例如包括数据方1,数据方2,…,数据方n,现有的隐私求交方案,各个数据方将数据元素进行哈希运算,得到各个数据元素的哈希值列表,然后数据方2,…,数据方n分别将各自的数据元素哈希值列表发送给数据方1,数据方1将所有数据元素哈希值进行一一对比,如果所有数据方共有某个数据元素,则该数据元素是交集元素,以此得到最终的隐私求交结果,其他数据方如果需要隐私求交结果,则数据方1将隐私求交结果同步给其他数据方。
3、现有技术方案,当数据元素数目比较少,或数据元素比较简单时,通过哈希碰撞可以反推非交集数据元素的真实数据元素,导致原始数据的泄露,隐私求交安全性差。
技术实现思路
1、为了解决上述问题,本技术提供了一种多方隐私求交方法及计算机设备。
2、根据本技术实施例的一方面,公开了一种多方隐私求交方法,该多方隐私求交方法包括:
3、第一数据方生成第一随机数,并对所述第一随机数进行取模运算,获得第一参数,所述第一数据方以外的其他数据方生成第二随机数,并对所述第二随机数进行取模运算,获得第二参数,所述第二随机数与所述第一随机数不同;
4、所述第一数据方与所述其他数据方之间同步获得的第一参数和第二参数,所述第一数据方基于所述第一随机数和所述第二参数确定出求交因子,所述其他数据方基于所述第二随机数和所述第一参数确定出相同的所述求交因子;
5、各所述数据方分别基于所述求交因子加密原始数据元素,获得加密数据元素列表,并将所述加密数据元素列表发送至第三方;
6、所述第三方基于接收到的加密数据元素列表确定出基准数据元素个数,并基于所述基准数据元素个数初始化隐私求交数据结构,其中,初始化的隐私求交数据结构包括用于存储包含同一数据元素的加密数据元素列表的数目以及所述同一数据元素在各所述加密数据元素列表中的位置的数据位;
7、所述第三方遍历所述接收到的加密数据元素列表,确定包含目标数据元素的加密数据元素列表的数目以及所述目标数据元素在各所述加密数据元素列表中的位置,并存入所述隐私求交数据结构,所述目标数据元素为所述接收到的加密数据元素列表中包含的任意数据元素;
8、当所述隐私求交数据结构记录的包含所述目标数据元素的加密数据元素列表的数目等于数据方数目,所述第三方发送交集索引至各加密数据元素列表对应的数据方,所述交集索引表示所述目标数据元素在所述加密数据元素列表中的位置;
9、各所述数据方基于接收到的交集索引,获得隐私交集数据。
10、在一些实施例中,所述第一数据方对所述第一随机数进行取模运算,获得第一参数,包括:
11、第一数据方基于关系式a=g^r1modn对所述第一随机数进行取模运算,获得第一参数;其中,a代表所述第一参数,g代表常数,r1代表所述第一随机数,mod代表取模运算,n代表常数;
12、所述第一数据方以外的其他数据方对所述第二随机数进行取模运算,获得第二参数,包括:
13、所述第一数据方以外的其他数据方基于关系式b=g^r2modn对所述第二随机数进行取模运算,获得第二参数;其中,b代表所述第二参数,g代表常数,r2代表所述第二随机数,mod代表取模运算,n代表常数;
14、所述第一数据方基于所述第一随机数和所述第二参数确定出求交因子,所述其他数据方基于所述第二随机数和所述第一参数确定出相同的所述求交因子,包括:
15、所述第一数据方基于关系式k=b^r1modn确定出求交因子;
16、所述其他数据方基于关系式k=a^r2modn确定出求交因子;
17、其中,k代表所述求交因子,b代表所述第二参数,r1代表所述第一随机数,mod代表取模运算,n代表常数,a代表所述第一参数,r2代表所述第二随机数。
18、在一些实施例中,所述各所述数据方分别基于所述求交因子加密原始数据元素,获得加密数据元素列表,包括:
19、各所述数据方分别对原始数据元素进行哈希运算,获得所述原始数据元素对应的哈希函数值;
20、基于所述原始数据元素对应的哈希函数值和所述求交因子,采用对称加密算法进行加密,获得所述原始数据元素对应的加密数据元素;
21、基于各所述原始数据元素对应的加密数据元素,获得加密数据元素列表。
22、在一些实施例中,所述基于各所述原始数据元素对应的加密数据元素,获得加密数据元素列表,包括:
23、截取各所述原始数据元素对应的加密数据元素的16个字节,获得16字节的加密数据元素;
24、基于各所述原始数据元素对应的16字节的加密数据元素,获得加密数据元素列表。
25、在一些实施例中,所述第三方基于接收到的加密数据元素列表确定出基准数据元素个数,包括:
26、所述第三方计算接收到的每一加密数据元素列表中的数据元素个数;
27、将所述接收到的加密数据元素列表中数据元素个数最少的一加密数据元素列表的数据元素个数作为基准数据元素个数。
28、在一些实施例中,所述基于所述基准数据元素个数初始化隐私求交数据结构,包括:
29、基于所述基准数据元素个数构建具有m行n列的初始隐私求交数据结构,其中,m等于所述基准数据元素个数,n等于数据方数目与数字2之和,初始化的隐私求交数据结构还包括用于存储数据元素的数据位;
30、将所述初始隐私求交数据结构中的两列之一者设置为用于存储数据元素的第一数据位,将所述两列之另一者设置为用于存储包含同一数据元素的加密数据元素列表的数目的第二数据位,将所述两列以外的列分别设置为用于存储所述同一数据元素在各所述加密数据元素列表中的位置的数据位;
31、则,所述第三方遍历所述接收到的加密数据元素列表,确定包含目标数据元素的加密数据元素列表的数目以及所述目标数据元素在各所述加密数据元素列表中的位置,并存入所述隐私求交数据结构,包括:
32、所述第三方遍历所述基准数据元素个数对应的基准加密数据元素列表,将所述基准加密数据元素列表包含的各个数据元素作为目标数据元素,分别记录在所述隐私求交数据结构中每一行的第一数据位,设置每一行的第二数据位初始值为1,并在所述两列以外的一列的数据位分别记录各所述目标数据元素在所述基准加密数据元素列表中的位置;
33、所述第三方依次遍历所述基准加密数据元素列表以外的其它加密数据元素列表,比对所述其它加密数据元素列表中的数据元素是否与目标数据元素相同,当某一加密数据元素列表中存在与所述目标数据元素相同的数据元素,将所述目标数据元素所在行的第二数据位初始值加一,并在所述目标数据元素所在行中的设定数据位记录所述与所述目标数据元素相同的数据元素在加密数据元素列表中的位置,所述设定数据位为所述与所述目标数据元素相同的数据元素所在加密数据元素列表对应的数据位。
34、在一些实施例中,在所述第三方发送交集索引至各加密数据元素列表对应的数据方之前,所述方法还包括:
35、所述第三方遍历所述隐私求交数据结构,获取所述隐私求交数据结构中每一行的第二数据位记录的数值;
36、判断所述隐私求交数据结构中每一行的第二数据位记录的数值是否与数据方数目相等;
37、若所述隐私求交数据结构中某一行的第二数据位记录的数值与数据方数目相等,判定所述行的第一数据位记录的数据元素对应的原始数据元素为隐私交集数据,并进一步执行发送交集索引至各加密数据元素列表对应的数据方的步骤;
38、若所述隐私求交数据结构中某一行的第二数据位记录的数值与数据方数目不相等,判定所述行的第一数据位记录的数据元素对应的原始数据元素不是隐私交集数据。
39、在一些实施例中,所述各所述数据方基于接收到的交集索引,获得隐私交集数据,包括:
40、各所述数据方基于接收到的交集索引,查找原始数据元素集;
41、将所述原始数据元素集中位置对应于所述交集索引的原始数据元素,确定为隐私交集数据。
42、在一些实施例中,在各所述数据方基于接收到的交集索引,获得隐私交集数据之后,所述方法还包括:
43、各所述数据方共享所获得的隐私求交结果;
44、各所述数据方确定各所述数据方获得的隐私求交结果是否一致,当所有数据方获得的隐私求交结果一致,判定隐私求交结果正确;
45、当某一数据方获得的隐私求交结果不一致,判定隐私求交结果不正确。
46、根据本技术实施例的一方面,公开了一种计算机设备,该计算机设备包括一个或多个处理器以及存储器,所述存储器用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述处理器实现如上所述的多方隐私求交方法。
47、本技术的实施例提供的技术方案至少包括以下有益效果:
48、本技术公开的方案,在隐私求交过程中利用第三方和随机数,且数据方与第三方不共谋,第三方接收到的是加密数据元素列表,第三方在无法获得第一随机数和第二随机数的情况下,无法获知第一参数和第二参数,后续便无法逆推数据方的原始数据;并且,各个数据方接收到的隐私求交结果为交集索引,各个数据方之间不交互加密后的加密数据元素,使得数据方无法逆推其他数据方的原始数据。因此,本技术中各个数据方和第三方均无法获知非交集数据元素的原始数据,避免了原始数据的泄露,隐私求交的安全性高。