具有交集计数的psi获取交集信息的方法及装置
技术领域
1.本发明涉及多方安全计算技术领域,尤其涉及一种具有交集计数的psi获取交集信息的方法及装置。
背景技术:2.隐私求交(private set intersection,psi)计算属于多方安全计算(mpc,secure multi-party computation)领域的特定解决方案。psi协议允许持有各自集合的两方来共同计算两个集合的交集运算。在协议交互的最后,一方或是两方应该得到正确交集,而且任何一方不会得到交集以外另一方集合中的任何信息。
3.目前,psi方案可应用于很多实际应用场景,如谷歌等登录服务中的账户安全检测,通讯录中的新用户推荐,黑白名单匹配,三要素核验等等。
4.然而,对于在实际应用场景中部署的psi方案,在接收方获得双方集合的正确交集的同时,是不支持发送方也同时统计交集数量的,即:现在的psi方案不支持同步实现发送方获得交集计数的功能和接收方获得正确交集的功能,使得发送方不能同步获知服务效果以及无法便于确定进一步的服务收费额度等等,也将难以避免出现一方可以欺骗另一方的情况(例如:接收方恶意减少交集计数但发送方并不同步知道具体的交集计数应该是多少)。以上,对于发送方统计交集数量需求和接收方得到正确交集的需求需要同步实现,没有更好的解决方案。
技术实现要素:5.有鉴于此,本发明提供了一种具有交集计数的psi获取交集信息的方法及装置,主要目的在于通过重构基于dh的psi协议流程,同步实现了发送方统计交集数量功能和接收方得到正确交集的功能,以使得发送方同步获知服务效果,避免了因上述两个功能不同步导致一方欺骗另一方的情况出现。
6.为了达到上述目的,本发明主要提供如下技术方案:
7.本技术第一方面提供了一种具有交集计数的psi获取交集信息的方法,该方法包括:
8.重构基于dh的psi协议流程,在所述协议流程中接收方接收到由发送方第一次加密的数据集合sa之后,接收方使用自身私钥对所述第一次加密的数据集合sa执行第二次加密,得到第二次加密的数据集合sa,其中sa表示发送方具有的数据集合;
9.接收方对第二次加密的数据集合sa中元素位置进行随机置换,得到乱序的第二次加密的数据集合sa,并传递到发送方;
10.发送方计算二次加密操作的数据集合sb与乱序的第二次加密的数据集合sa之间的交集,以及得到所述交集对应的个数,其中sb表示接收方具有的数据集合,所述二次加密操作的数据集合sb是指先由接收方私钥执行第一次加密的数据集合sb且再由发送方私钥执行二次加密的数据集合;
11.通过利用发送方和接收方对所述交集协作处理,接收方从所述数据集合sb中确定所述交集内每个元素对应的明文信息。
12.在本技术的一些变更实施方式中,所述通过利用发送方和接收方对所述交集协作处理,接收方从所述数据集合sb中确定所述交集内每个元素对应的明文信息,包括:
13.发送方生成所述交集中每个元素在第一次加密的数据集合sb中的位置,得到所述交集对应的位置集合;
14.发送方将所述交集和所述位置集合发送到接收方;
15.接收方使用自身私钥逆元解密所述交集对应的二次加密,得到剩下一次加密对应的交集,所述剩下一次加密是指由发送方使用自身私钥执行的第一次加密操作;
16.接收方根据所述位置集合,从所述数据集合sb中确定交集的明文元素和数量。
17.在本技术的一些变更实施方式中,所述方法还包括:
18.接收方检验所述剩下一次加密对应交集内元素是否归属于第一次加密的数据集合sa;
19.若是,则确定不存在虚假交集元素。
20.在本技术的一些变更实施方式中,
21.对发送方具有的数据集合sa执行第一次加密操作,具体为:发送方使用私钥对数据集合sa内每个元素执行加密操作,得到第一次加密的数据集合sa;
22.对接收方具有的数据集合sb执行第一次加密操作,具体为:接收方使用私钥对数据集合sb内每个元素执行加密操作,得到第一次加密的数据集合sb;
23.对所述数据集合sa执行第二次加密操作,具体为:接收方使用私钥对所述第一次加密的数据集合sa执行加密操作,得到二次加密的数据集合sa;
24.对所述数据集合sb执行第二次加密操作,具体为:发送方使用私钥对所述第一次加密的数据集合sb执行加密操作,得到二次加密的数据集合sb。
25.在本技术的一些变更实施方式中,若所述数据集合sa内每个元素都对应关联了一个标签使得所述数据集合sa对应一个标签数据集合p,所述方法还包括:
26.发送方还使用目标私钥对数据集合sa内每个元素执行目标加密操作,得到第一目标加密的数据集合sa;
27.发送方使用所述第一目标加密的数据集合sa内每个元素作为对称加密的密钥,分别对标签数据集合p内对应关联的每个标签执行加密操作,得到加密的标签数据集合p;
28.在发送方侧,生成所述第一目标加密的数据集合sa内每个元素对应的哈希值,得到哈希值集合;
29.发送方将所述加密的标签数据集合p和所述哈希值集合发送到接收方。
30.在本技术的一些变更实施方式中,所述通过利用发送方和接收方对所述交集协作处理,接收方从所述数据集合sb中确定所述交集对应包含的明文信息,包括:
31.通过利用发送方和接收方对所述交集协作处理,接收方从所述数据集合sb中确定所述交集内每个元素对应的元素明文和所述元素明文在所述标签数据集合p中对应关联的标签。
32.在本技术的一些变更实施方式中,所述通过利用发送方和接收方对所述交集协作处理,接收方从所述数据集合sb中确定所述交集内每个元素对应的元素明文和所述元素明
文在所述标签数据集合p中对应关联的标签,包括:
33.发送方生成所述交集中每个元素在所述第一次加密的数据集合sb中的位置,得到所述交集对应的位置集合;
34.发送方按照所述位置集合从所述第一次加密的数据集合sb中提取相应的元素,组成子集合;
35.发送方使用所述目标私钥对所述子集合中每个元素执行加密,得到第二目标加密的交集集合;
36.发送方将所述位置集合和所述第二目标加密的交集集合发送给接收方;
37.接收方使用自身私钥逆元解密所述第二目标加密的交集集合对应的第二次目标加密,得到剩下第一次目标加密对应的交集集合;
38.接收方计算所述剩下第一次目标加密对应的交集集合内每个元素的哈希值,得到目标哈希值集合;
39.接收方确定目标哈希值集合中每个哈希值在所述第一目标加密的数据集合sa对应的哈希值集合内的位置,得到目标位置集合;
40.利用剩下第一次目标加密对应的交集集合内每个元素作为对称加密的密钥,根据所述目标位置集合所确定的目标位置,查找所述加密的标签数据集合p中与所述目标位置匹配的标签密文,对所述标签密文执行解密操作,得到交集元素对应的标签数据明文集合;
41.接收方根据所述交集对应的位置集合,从所述数据集合sb中确定交集元素;
42.接收方根据所述交集对应的位置集合和所述目标位置集合,确定所述交集元素和所述标签数据明文集合内每个标签之间的对应关系,得到发送方和接收方具有的交集元素以及每个交集元素对应关联的标签。
43.在本技术的一些变更实施方式中,所述方法还包括:
44.接收方检验所述目标哈希值集合内每个哈希值是否归属于所述第一目标加密的数据集合sa对应的哈希值集合;
45.如果是,则确定不存在虚假交集元素。
46.本技术第二方面提供了一种具有交集计数的psi获取交集信息的装置,该装置包括:
47.重构单元,用于重构基于dh的psi协议流程;
48.加密单元,用于在所述协议流程中接收方接收到由发送方第一次加密的数据集合sa之后,接收方使用自身私钥对所述第一次加密的数据集合sa执行第二次加密,得到第二次加密的数据集合sa,其中sa表示发送方具有的数据集合;
49.随机置换单元,用于接收方对第二次加密的数据集合sa中元素位置进行随机置换,得到乱序的第二次加密的数据集合sa,并传递到发送方;
50.计算单元,用于发送方计算二次加密操作的数据集合sb与乱序的第二次加密的数据集合sa之间的交集,以及得到所述交集对应的个数,其中sb表示接收方具有的数据集合,所述二次加密操作的数据集合sb是指先由接收方私钥执行第一次加密的数据集合sb且再由发送方私钥执行二次加密的数据集合;
51.确定单元,用于通过利用发送方和接收方对所述交集协作处理,接收方从所述数据集合sb中确定所述交集对应包含的明文信息。
52.本技术第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的具有交集计数的psi获取交集信息的方法。
53.本技术第四方面提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的具有交集计数的psi获取交集信息的方法。
54.借由上述技术方案,本发明提供的技术方案至少具有下列优点:
55.本发明提供了一种具有交集计数的psi获取交集信息的方法及装置,通过重构基于dh的psi协议流程,在协议流程中接收方接收到由发送方第一次加密的数据集合sa之后,接收方使用自身私钥对第一次加密的数据集合sa执行二次加密,得到第二次加密的数据集合sa,接收方对第二次加密的数据集合sa中元素位置进行随机置换,得到乱序的第二次加密的数据集合sa,并传递到发送方,发送方计算二次加密操作的数据集合sb与乱序的第二次加密的数据集合sa之间的交集,以及得到交集对应的个数(即发送方可以获知两方具有数据集合的交集数量),而后两方再对交集协作处理,使得接收方从数据集合sb中确定交集内每个元素对应的明文信息。相较于现有技术,解决了无法有效同步实现发送方统计交集数量需求和接收方得到正确交集的需求。本发明是通过重构基于dh的psi协议流程,同步实现了发送方统计交集数量功能和接收方得到正确交集的功能,以使得发送方同步获知服务效果,避免了因上述两个功能不同步导致一方欺骗另一方的情况出现。
56.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
57.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
58.图1为本发明实施例提供的一种具有交集计数的psi获取交集信息的方法流程图;
59.图2为本发明实施例例举的接收方确定两方数据集合交集的步骤示意图;
60.图3为本发明实施例例举的接收方确定两方数据集合交集内每个元素和元素对应关联标签的步骤示意图;
61.图4为本发明实施例提供的一种具有交集计数的psi获取交集信息的装置的组成框图。
具体实施方式
62.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
63.本发明实施例提供了一种具有交集计数的psi获取交集信息的方法,该方法同步
实现了发送方统计交集数量功能和接收方得到正确交集的功能,如图1所示。
64.首先,需要说明的是,本发明实施例是通过重构基于dh的psi协议流程实现所属功能。现有的基于dh的psi协议是指基于diffie-hellman假设的psi方案(简称dh-psi或基于dh的psi),例举椭圆曲线上diffie-hellman假设的psi方案,如下:
65.设e为椭圆曲线系统(满足大素数p定义的y2=x3+ax+b的点),给定参数大素数p,整数a和b,椭圆曲线群的阶n,基点g;设一个点k的m倍点运算表示为km。
66.pa方作为发送方;pb方作为接收方;执行以下psi协议,pb方获得双方集合的交集,那么基于diffie-hellman的psi协议流程,为了清楚的解释说明pa方和pb方在不同时机的操作,采用如下表一,进行阐述:
67.表一
68.[0069][0070]
对上述基于dh的psi方案的分析,可得到两个基本特性:双方通过私钥对各自集合元素进行加密保护各自数据的隐私性;该加密方法具有交换性,经过二次加密后的交集元素具有相同的密文(即对于同一个元素,使用这两个私钥ra和rb按照不同加密顺序而加密得到两个密文是相等的)。
[0071]
因此接收方只能获得交集元素而不能获得交集之外的其他元素信息。利用这两个基本特性,本发明实施例构造实现了“重构基于dh的psi协议流程”,在该协议流程中实现了同步实现了发送方统计交集数量功能和接收方得到正确交集的功能。
[0072]
那么下面,在协议的交互中,对于本发明实施例提供的具有交集计数的psi获取交集信息的方法,具体阐述如下:
[0073]
101、在协议流程中接收方接收到由发送方第一次加密的数据集合sa之后,接收方使用自身私钥对第一次加密的数据集合sa执行第二次加密,得到第二次加密的数据集合sa,其中sa表示发送方具有的数据集合。
[0074]
在本发明实施例中,为了清楚解释说明发送方和接收方各自的操作,示例性的,可以借助标记相关标识进行阐述,例如:发送方标记为pa,pa方具有数据集合sa={a1,a2,a3,
…
},接收方标记为pb,pb方具有数据集合sb={b1,b2,b3,
…
}。本发明实施例的需求为,pb方需要获取两方集合的交集sa∩sb,但不能获得交集之外pa方的其他集合元素,pa方需要获得交集的个数,但是不能获得其他信息。
[0075]
设群g的阶为n,对群g中的任意元素g∈g和随机数r∈[0,n-1],运算gr对普通大整数群,该运算为g的r次幂运算;对椭圆曲线群,该运算表示椭圆曲线上点g与整数r的倍乘或
者标量乘法运算。需要保证该群中离散对数问题的困难性。
[0076]
以及进一步的,在协议的交互中,为了清楚解释说明pa方和pb方在不同时机各自的操作,借助表格形式,如下表二对步骤101进行示例性的解释说明:
[0077]
表二
[0078]
[0079][0080]
其中,如表二中,为发送方第一次加密的数据集合sa,为接收方第一次加密的数据集合sb,为发送方二次加密的数据集合sb,为接收方二次加密的数据集合sa。
[0081]
以及如表二,表示使用私钥ra对数据集合sa中的每个元素进行加密运算,具体操作为椭圆曲线群上的ra倍标量乘运算或者大整数群上的ra次幂运算。该操作具有交换性,就是对于同一个元素a,使用两个密钥按照不同的顺序进行加密得到两个密文相等,等,
[0082]
102、接收方对第二次加密的数据集合sa中元素位置进行随机置换,得到乱序的第二次加密的数据集合sa,并传递到发送方。
[0083]
103、发送方计算二次加密操作的数据集合sb与乱序的第二次加密的数据集合sa之间的交集,以及得到交集对应的个数。
[0084]
其中,sb表示接收方具有的数据集合,二次加密操作的数据集合sb是指先由接收方私钥执行第一次加密的数据集合sb且再由发送方私钥执行二次加密的数据集合。
[0085]
在本发明实施例中,结合表三对步骤102-103进行示例性的解释说明,尤其是方便于清楚阐述pa方和pb方分别执行的操作。
[0086]
如下表三中,为接收方二次加密的数据集合sa,permute()表示对集合中的元素位置进行随机置换操作,也就是乱序的二次加密数据集合sa,可以完全扰乱pa方对密文与原文的对应关系。
[0087]
表三
[0088][0089]
以及进一步的,在pa方接收到pb方随机置换后的二次加密集合之后,pa获取两方交集的具体操作如下:
[0090]
pa方计算二次加密集合方计算二次加密集合与二次加密集合与二次加密集合之间的交集之间的交集之间的交集
[0091]
该交集的元素个数等于两方明文交集的个数该交集的元素个数等于两方明文交集的个数符号|| ||表示集合的元素个数。
[0092]
pa方不能知道具体的双方明文交集元素的原因是,pa方不能知道二次加密后的密文与明文集合元素的位置对应关系,但sa方可以获得双方交集的元素个数。
[0093]
104、通过利用发送方和接收方对交集协作处理,接收方从数据集合sb中确定交集内每个元素对应的明文信息。
[0094]
在本发明实施例中,本步骤104可以细化解释说明如下步骤s201-s204,如图2:
[0095]
s201、发送方生成交集中每个元素在第一次加密的数据集合sb中的位置,得到交集对应的位置集合。
[0096]
s202、发送方将交集和位置集合发送到接收方。
[0097]
s203、接收方使用自身私钥逆元解密交集对应的二次加密,得到剩下一次加密对应的交集,剩下一次加密是指由发送方使用自身私钥执行的第一次加密操作。
[0098]
以及在本发明实施例中,还可以对接收方接收到的交集元素进行检验,具体为:接收方检验剩下一次加密对应交集内元素是否归属于第一次加密的数据集合sa;若是,则确定不存在虚假交集元素。
[0099]
s204、接收方根据位置集合,从数据集合sb中确定交集的明文元素和数量。
[0100]
在本发明实施例中,借助以下表四对于步骤s201-204进行示例性的解释说明,具体的,分别解释说明了pa方的操作和pb方的操作各自操作以及协作对交集的处理,具体陈述如下:
[0101]
表四
[0102]
[0103]
[0104][0105]
以上,对于本发明实施例的具有交集计数的psi获取交集信息的方法,实现的需求为:对于pa方具有数据集合sa和pb方具有数据集合sb,pb需要获取两方集合的交集sa∩sb,但不能获得交集之外pa的其他集合元素,pa方需要获得交集的个数,但是不能获得其他信息。据此,本发明实施例同步实现了发送方统计交集数量功能和接收方得到正确交集的功能。
[0106]
进一步,本发明实施例还提供了另一种具有交集计数的psi获取交集信息的方法,该另一种方法是以上个实施例提供的方法为基础,提出的具有交集计数功能的携带标签数据的psi方案,主要针对场景为:如果发送方的数据集合sa内每个元素都对应关联了一个标签,使得数据集合sa对应一个标签数据集合p。例如pa方具有数据集合sa={a1,a2,a3,
…
}和对应的标签数据集合p={d1,d2,d3,
…
},数据集合sa内每个元素和标签一一对应关系为sa:p={a1:d1,a2:d2,a3:d3,
…
};pb方具有数据集合sb={b1,b2,b3,
…
}。
[0107]
那么该另一种方法需要进一步实现的需求为:pb方需要获取两方数据集合的交集和对应的标签数据而不能获得其他信息;pa方需要获得双方数据集合交集的元素个数,但是不能获得其他信息。
[0108]
对于本发明实施例,在此具体以示例性解释“另一种具有交集计数的psi获取交集信息的方法”之前,需要事先总结以下几个概念:
[0109]
(1)、对于“另一种具有交集计数的psi获取交集信息的方法”,是进一步限定了数据集合sa和数据集合sb内存储的元素为标识符元素,由此数据集合sa内每个标识符元素会对应关联一个标签,这些标签组成了标签数据集合p。
[0110]
(2)、对于本发明实施例提供的另一种具有交集计数的psi获取交集信息的方法,
也是重构基于dh的psi协议流程,示例性的,为了清楚解释说明发送方和接收方各自操作,仍然借助上个实施例例举的“一种具有交集计数的psi获取交集信息的方法”内所采用的相关符号、表形式进行辅助阐述。
[0111]
(3)、对于本发明实施例提供的另一种具有交集计数的psi获取交集信息的方法,实现的技术效果所达到的需求为:pa方作为发送方仍然需要同步获知两方交集个数,由于获知两方交集个数可以不涉及标签数据集合p,因此具体实施步骤与上个实施例步骤101-103相同;pb方作为接收方,不仅需要获知交集的元素是什么,以及还需要获知每个元素对应关联的标签是什么。
[0112]
下面,首先借助表五,对于pa方获取两方交集个数的具体实施过程进行详细的解释说明,具体的,分别解释了pa方和pb方分别执行的操作,具体陈述如下:
[0113]
表五
[0114]
[0115]
[0116]
[0117]
[0118][0119]
为了实现“确定交集内每个元素对应的元素明文和元素明文在标签数据集合p中对应关联的标签”,除了以上实施例pa方操作和pb方操作如表二至三的操作之外,pa方还需要执行如下操作;
[0120]
(1)、发送方还使用目标私钥对数据集合sa内每个元素执行目标加密操作,得到第一目标加密的数据集合sa;
[0121]
(2)、发送方使用第一目标加密的数据集合sa内每个元素作为对称加密的密钥,分别对标签数据集合p内对应关联的每个标签执行加密操作,得到加密的标签数据集合p;
[0122]
(3)、在发送方侧,生成第一目标加密的数据集合sa内每个元素对应的哈希值,得到哈希值集合;
[0123]
(4)、发送方将加密的标签数据集合p和上述哈希值集合发送到接收方。
[0124]
具体的,如借助以下表六进行解释说明,pa方需要获取到“加密的标签数据集合p和哈希值集合”,并发送到pb方。
[0125]
表六
[0126]
[0127]
[0128][0129]
对于表六,需要说明的是,符号symmetricenc(key,data)表示使用密钥key对明文data进行对称加密的过程,所使用对称加密算法可以是分组密码算法、序列密码或者认证加密算法等。symmetricdec(key,symmetricenc(key,data))表示使用密钥key对密文进行解密的过程,当加密和解密过程使用相同的密钥则可密文中恢复出正确的明文。hash(data)表示使用哈希函数对数据data进行处理的过程。
[0130]
以及进一步的,在本发明实施例中,对于“确定交集内每个元素对应的元素明文和元素明文在标签数据集合p中对应关联的标签”,细化如步骤,如图3所示,具体陈述包括:
[0131]
s301、发送方生成交集中每个元素在第一次加密的数据集合sb中的位置,得到交集对应的位置集合;
[0132]
s302、发送方按照位置集合从第一次加密的数据集合sb中提取相应的元素,组成子集合;
[0133]
s303、发送方使用目标私钥对子集合中每个元素执行加密,得到第二目标加密的交集集合;
[0134]
s304、发送方将位置集合和第二目标加密的交集集合发送给接收方;
[0135]
s305、接收方使用自身私钥逆元解密第二目标加密的交集集合对应的第二次目标加密,得到剩下第一次目标加密对应的交集集合;
[0136]
s306、接收方计算剩下第一次目标加密对应的交集集合内每个元素的哈希值,得到目标哈希值集合;
[0137]
s307、接收方确定目标哈希值集合中每个哈希值在第一目标加密的数据集合sa对应的哈希值集合内的位置,得到目标位置集合;
[0138]
接收方检验目标哈希值集合内每个哈希值是否归属于第一目标加密的数据集合sa对应的哈希值集合;如果是,则确定不存在虚假交集元素。
[0139]
s308、利用剩下第一次目标加密对应的交集集合内每个元素作为对称加密的密钥,根据目标位置集合所确定的目标位置,查找加密的标签数据集合p中与目标位置匹配的标签密文,对标签密文执行解密操作,得到交集元素对应的标签数据明文集合;
[0140]
s309、接收方根据交集对应的位置集合,从数据集合sb中确定交集元素;
[0141]
s310、接收方根据交集对应的位置集合和目标位置集合,确定交集元素和标签数据明文集合内每个标签之间的对应关系,得到发送方和接收方具有的交集元素以及每个交集元素对应关联的标签。
[0142]
在本发明实施例中,借助以下表七对步骤s301-310进行示例性的解释说明,具体的,分别解释说明了pa方的操作和pb方的操作各自操作以及协作对交集的处理,具体陈述如下:
[0143]
表七
[0144]
[0145]
[0146]
[0147][0148]
以上,本发明实施例提供的另一种具有交集计数的psi获取交集信息的方法,实现了需求为:pa方具有数据集合sa以及标签数据集合p,pb方具有数据集合sb,pb需要获取两方标识符集合的交集和对应的标签数据而不能获得其他信息;pa方需要获得双方标识符集合交集的元素个数,但是不能获得其他信息。据此,本发明实施例同步实现了发送方统计交集数量功能和接收方得到正确交集的功能。
[0149]
进一步的,作为对上述图1、图2和图3所示方法的实现,本发明实施例提供了一种具有交集计数的psi获取交集信息的装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于同步实现了发送方统计交集数量功能和接收方得到正确交集的功能,具体如图4所示,该装置包括:
[0150]
重构单元41,用于重构基于dh的psi协议流程;
[0151]
加密单元42,用于在所述协议流程中接收方接收到由发送方第一次加密的数据集合sa之后,接收方使用自身私钥对所述第一次加密的数据集合sa执行第二次加密,得到第二次加密的数据集合sa,其中sa表示发送方具有的数据集合;
[0152]
随机置换单元43,用于接收方对所述第二次加密的数据集合sa中元素位置进行随机置换,得到乱序的第二次加密的数据集合sa,并传递到发送方;
[0153]
计算单元44,用于发送方计算二次加密操作的数据集合sb与所述乱序的第二次加密的数据集合sa之间的交集,以及得到所述交集对应的个数,其中sb表示接收方具有的数据集合,所述二次加密操作的数据集合sb是指先由接收方私钥执行第一次加密的数据集合sb且再由发送方私钥执行二次加密的数据集合;
[0154]
确定单元45,用于通过利用发送方和接收方对所述交集协作处理,接收方从所述数据集合sb中确定所述交集对应包含的明文信息。
[0155]
综上所述,本发明实施例提供了一种具有交集计数的psi获取交集信息的方法及装置,通过重构基于dh的psi协议流程,在协议流程中接收方接收到由发送方第一次加密的数据集合sa之后,接收方使用自身私钥对第一次加密的数据集合sa执行二次加密,得到第二次加密的数据集合sa,接收方对第二次加密的数据集合sa中元素位置进行随机置换,得到乱
序的第二次加密的数据集合sa,并传递到发送方,发送方计算二次加密操作的数据集合sb与乱序的第二次加密的数据集合sa之间的交集,以及得到交集对应的个数(即发送方可以获知两方具有数据集合的交集数量),而后两方再对交集协作处理,使得接收方从数据集合sb中确定交集内每个元素对应的明文信息。相较于现有技术,解决了无法有效同步实现发送方统计交集数量需求和接收方得到正确交集的需求。本发明实施例是通过重构基于dh的psi协议流程,同步实现了发送方统计交集数量功能和接收方得到正确交集的功能,以使得发送方同步获知服务效果,避免了因上述两个功能不同步导致一方欺骗另一方的情况出现。
[0156]
所述具有交集计数的psi获取交集信息的装置包括处理器和存储器,上述重构单元、加密单元、随机置换单元、计算单元和确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0157]
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来通过重构基于dh的psi协议流程,同步实现了发送方统计交集数量功能和接收方得到正确交集的功能,以使得发送方同步获知服务效果,避免了因上述两个功能不同步导致一方欺骗另一方的情况出现。
[0158]
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的具有交集计数的psi获取交集信息的方法。
[0159]
本发明实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的具有交集计数的psi获取交集信息的方法。
[0160]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0161]
在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
[0162]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
[0163]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算
机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0164]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0165]
本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0166]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。