本公开涉及数据处理,尤其涉及一种基于密钥可复用的有错配对密钥协商的隐私集合求交(private set intersection,psi)方法及装置。
背景技术:
1、psi协议是一种特定的安全多方计算(multi-party computation,mpc)协议,它允许持有各自集合的两方来共同交互计算两个隐私集合的交集,交集可以由一方或者双方获得,但不暴露交集以外的任何数据集合信息,即除交集内的数据外,交集外的集合中任何数据不会泄露给任何数据一方。
2、自提出以来,psi协议引起了学术界和工业界的广泛关注,近年来,已经被应用到了政务、金融、医疗等多个场景。但在实际部署和应用psi协议的同时,需要关注的是,目前基于密钥协商技术构造的psi协议主要使用迪菲-赫尔曼(diffie–hellman,dh)密钥交换算法,为保证协议的安全性,协议参与双方都会生成多个公钥,导致计算和通信开销过大。此外,基于dh密钥交换算法的psi协议的安全性基于离散对数问题的困难性,不能抵抗量子计算机的攻击。
3、相关技术中,尚未提供一种能够抵抗量子计算机攻击的、更安全、更高效的psi协议。
技术实现思路
1、有鉴于此,本公开提出了一种基于密钥可复用的有错配对密钥协商的psi方法及装置。所述技术方案包括:
2、根据本公开的一方面,提供了一种基于密钥可复用的有错配对密钥协商的psi方法,用于发送端设备中,所述方法包括:
3、获取第一隐私数据集,所述第一隐私数据集包括多个第一隐私数据;
4、根据所述第一隐私数据集、第一私钥和接收端设备发送的第二公钥,确定第一共享密钥集合,所述第一共享密钥集合用于指示所述多个第一隐私数据各自对应的第一共享密钥;
5、将所述第一共享密钥集合发送至所述接收端设备,所述接收端设备用于根据第二隐私数据集、第二私钥和所述发送端设备发送的第一公钥确定第二共享密钥集合,将所述第一共享密钥集合与所述第二共享密钥集合求交集得到隐私数据交集,所述第二隐私数据集包括多个第二隐私数据,所述第二共享密钥集合用于指示所述多个第二隐私数据各自对应的第二共享密钥,所述第一共享密钥集合和所述第二共享密钥集合均是基于有错配对的密钥交换协议确定的。
6、在一种可能的实现方式中,所述第一共享密钥集合包括多个所述第一共享密钥的哈希值,所述根据所述第一隐私数据集、第一私钥和接收端设备发送的第二公钥,确定第一共享密钥集合,包括:
7、对于所述第一隐私数据集的每个所述第一隐私数据,随机生成第一错误向量和第二错误向量;
8、根据所述第一隐私数据、所述第一私钥、所述第二公钥、所述第一错误向量和所述第二错误向量,确定所述第一隐私数据对应的第一共享密钥;
9、将所述第一共享密钥进行哈希处理得到所述第一共享密钥的哈希值。
10、在另一种可能的实现方式中,所述根据所述第一隐私数据、所述第一私钥、所述第二公钥、所述第一错误向量和所述第二错误向量,确定所述第一隐私数据对应的第一共享密钥,包括:
11、根据所述第一隐私数据、所述第二公钥和所述第一错误向量确定第一中间值;
12、根据所述第一中间值、所述第一私钥和所述第二错误向量,确定第二中间值;
13、根据所述第二中间值和预设的信号函数,确定与所述第二中间值对应的信号;
14、根据所述第二中间值、所述信号、预设的公共参数和预设的提取函数,确定所述第一共享密钥。
15、在另一种可能的实现方式中,所述信号函数用于指示当所述第二中间值在第一数值范围内时对应的所述信号为第一数值,当所述第二中间值不在所述第一数值范围内时对应的所述信号为第二数值,所述第一数值范围是根据所述公共参数确定的。
16、在另一种可能的实现方式中,所述方法还包括:
17、将多个所述第一共享密钥各自对应的所述信号发送至所述接收端设备,所述接收端设备还用于根据所述第二隐私数据集、所述第一公钥和多个所述信号确定所述第二共享密钥集合。
18、在另一种可能的实现方式中,所述方法还包括:
19、随机生成第一私钥和第三错误向量;
20、根据所述第一私钥和所述第三错误向量,确定对应的所述第一公钥;
21、将所述第一公钥发送至所述接收端设备。
22、根据本公开的另一方面,提供了一种基于密钥可复用的有错配对密钥协商的psi方法,用于接收端设备中,所述方法包括:
23、获取第二隐私数据集,所述第二隐私数据集包括多个第二隐私数据;
24、根据所述第二隐私数据集、第二私钥和发送端设备发送的第一公钥,确定第二共享密钥集合,所述第二共享密钥集合用于指示所述多个第二隐私数据各自对应的第二共享密钥;
25、将所述发送端设备发送的第一共享密钥集合与所述第二共享密钥集合求交集得到隐私数据交集,所述第一共享密钥集合是所述发送端设备根据第一隐私数据集、第一私钥和所述接收端设备发送的第二公钥确定的,所述第一隐私数据集包括多个第一隐私数据,所述第一共享密钥集合用于指示所述多个第一隐私数据各自对应的第一共享密钥,所述第一共享密钥集合和所述第二共享密钥集合均是基于有错配对的密钥交换协议确定的。
26、在一种可能的实现方式中,所述第二共享密钥集合包括多个所述第二共享密钥的哈希值,所述根据所述第二隐私数据集、第二私钥和发送端设备发送的第一公钥,确定第二共享密钥集合,包括:
27、对于所述第二隐私数据集的每个所述第二隐私数据,随机生成第四错误向量和第五错误向量;
28、根据所述第二隐私数据、所述第二私钥、所述第一公钥、所述第四错误向量和所述第五错误向量,确定所述第二隐私数据对应的多个第二共享密钥;
29、将多个所述第二共享密钥进行哈希处理得到多个所述第二共享密钥的哈希值。
30、在另一种可能的实现方式中,所述根据所述第二隐私数据、所述第二私钥、所述第一公钥、所述第四错误向量和所述第五错误向量,确定所述第二隐私数据对应的多个第二共享密钥,包括:
31、根据所述第二隐私数据、所述第一公钥和所述第四错误向量确定第三中间值;
32、根据所述第三中间值、所述第二私钥和所述第五错误向量,确定第四中间值;
33、接收所述发送端设备发送的多个所述第一共享密钥各自对应的所述信号;
34、根据所述第四中间值、多个所述信号、预设的公共参数和预设的提取函数,确定所述第二隐私数据对应的多个所述第二共享密钥。
35、在另一种可能的实现方式中,所述将所述发送端设备发送的第一共享密钥集合与所述第二共享密钥集合求交集得到隐私数据交集,包括:
36、对于第k个所述第一隐私数据对应的所述第一共享密钥和第k个所述第二隐私数据对应的多个所述第二共享密钥,确定所述第一共享密钥的哈希值与多个所述第二共享密钥的哈希值之间的候选交集,所述k为正整数;
37、对多个所述候选交集求并集得到所述隐私数据交集。
38、在另一种可能的实现方式中,所述方法还包括:
39、随机生成第二私钥和第六错误向量;
40、根据所述第二私钥和所述第六错误向量,确定对应的所述第二公钥;
41、将所述二公钥发送至所述发送端设备。
42、根据本公开的另一方面,提供了一种基于密钥可复用的有错配对密钥协商的psi方法,用于包括发送端设备和接收端设备的psi系统中,所述方法包括:
43、所述发送端设备和所述接收端设备分别获取各自的隐私数据集、私钥和公钥,并将所述公钥进行交换,所述隐私数据集包括多个隐私数据;
44、所述发送端设备根据自身的所述隐私数据集、自身的所述私钥和所述接收端设备发送的所述公钥,确定第一共享密钥集合,将所述第一共享密钥集合发送至所述接收端设备,所述第一共享密钥集合用于指示所述多个第一隐私数据各自对应的第一共享密钥;
45、所述接收端设备根据自身的所述隐私数据集、自身的所述私钥和所述发送端设备发送的所述公钥,确定第二共享密钥集合,所述第二共享密钥集合用于指示所述多个第二隐私数据各自对应的第二共享密钥,所述第一共享密钥集合和所述第二共享密钥集合均是基于有错配对的密钥交换协议确定的;
46、所述接收端设备将所述第二共享密钥集合与所述发送端设备发送的所述第一共享密钥集合求交集,得到隐私数据交集。
47、根据本公开的另一方面,提供了一种基于密钥可复用的有错配对密钥协商的psi装置,用于发送端设备中,所述装置包括:
48、第一获取模块,用于获取第一隐私数据集,所述第一隐私数据集包括多个第一隐私数据;
49、第一确定模块,用于根据所述第一隐私数据集、第一私钥和接收端设备发送的第二公钥,确定第一共享密钥集合,所述第一共享密钥集合用于指示所述多个第一隐私数据各自对应的第一共享密钥;
50、第一发送模块,用于将所述第一共享密钥集合发送至所述接收端设备,所述接收端设备用于根据第二隐私数据集、第二私钥和所述发送端设备发送的第一公钥确定第二共享密钥集合,将所述第一共享密钥集合与所述第二共享密钥集合求交集得到隐私数据交集,所述第二隐私数据集包括多个第二隐私数据,所述第二共享密钥集合用于指示所述多个第二隐私数据各自对应的第二共享密钥,所述第一共享密钥集合和所述第二共享密钥集合均是基于有错配对的密钥交换协议确定的。
51、在另一种可能的实现方式中,所述第一共享密钥集合包括多个所述第一共享密钥的哈希值,所述第一确定模块,还用于:
52、对于所述第一隐私数据集的每个所述第一隐私数据,随机生成第一错误向量和第二错误向量;
53、根据所述第一隐私数据、所述第一私钥、所述第二公钥、所述第一错误向量和所述第二错误向量,确定所述第一隐私数据对应的第一共享密钥;
54、将所述第一共享密钥进行哈希处理得到所述第一共享密钥的哈希值。
55、在另一种可能的实现方式中,所述第一确定模块,还用于:
56、根据所述第一隐私数据、所述第二公钥和所述第一错误向量确定第一中间值;
57、根据所述第一中间值、所述第一私钥和所述第二错误向量,确定第二中间值;
58、根据所述第二中间值和预设的信号函数,确定与所述第二中间值对应的信号;
59、根据所述第二中间值、所述信号、预设的公共参数和预设的提取函数,确定所述第一共享密钥。
60、在另一种可能的实现方式中,所述信号函数用于指示当所述第二中间值在第一数值范围内时对应的所述信号为第一数值,当所述第二中间值不在所述第一数值范围内时对应的所述信号为第二数值,所述第一数值范围是根据所述公共参数确定的。
61、在另一种可能的实现方式中,所述第一发送模块,还用于:
62、将多个所述第一共享密钥各自对应的所述信号发送至所述接收端设备,所述接收端设备还用于根据所述第二隐私数据集、所述第一公钥和多个所述信号确定所述第二共享密钥集合。
63、在另一种可能的实现方式中,所述第一发送模块,还用于:
64、随机生成第一私钥和第三错误向量;
65、根据所述第一私钥和所述第三错误向量,确定对应的所述第一公钥;
66、将所述第一公钥发送至所述接收端设备。
67、根据本公开的另一方面,提供了一种基于密钥可复用的有错配对密钥协商的psi装置,用于接收端设备中,所述装置包括:
68、第二获取模块,用于获取第二隐私数据集,所述第二隐私数据集包括多个第二隐私数据;
69、第二确定模块,用于根据所述第二隐私数据集、第二私钥和发送端设备发送的第一公钥,确定第二共享密钥集合,所述第二共享密钥集合用于指示所述多个第二隐私数据各自对应的第二共享密钥;
70、第二计算模块,用于将所述发送端设备发送的第一共享密钥集合与所述第二共享密钥集合求交集得到隐私数据交集,所述第一共享密钥集合是所述发送端设备根据第一隐私数据集、第一私钥和所述接收端设备发送的第二公钥确定的,所述第一隐私数据集包括多个第一隐私数据,所述第一共享密钥集合用于指示所述多个第一隐私数据各自对应的第一共享密钥,所述第一共享密钥集合和所述第二共享密钥集合均是基于有错配对的密钥交换协议确定的。
71、在另一种可能的实现方式中,所述第二共享密钥集合包括多个所述第二共享密钥的哈希值,所述第二确定模块,还用于:
72、对于所述第二隐私数据集的每个所述第二隐私数据,随机生成第四错误向量和第五错误向量;
73、根据所述第二隐私数据、所述第二私钥、所述第一公钥、所述第四错误向量和所述第五错误向量,确定所述第二隐私数据对应的多个第二共享密钥;
74、将多个所述第二共享密钥进行哈希处理得到多个所述第二共享密钥的哈希值。
75、在另一种可能的实现方式中,所述第二确定模块,还用于:
76、根据所述第二隐私数据、所述第一公钥和所述第四错误向量确定第三中间值;
77、根据所述第三中间值、所述第二私钥和所述第五错误向量,确定第四中间值;
78、接收所述发送端设备发送的多个所述第一共享密钥各自对应的所述信号;
79、根据所述第四中间值、多个所述信号、预设的公共参数和预设的提取函数,确定所述第二隐私数据对应的多个所述第二共享密钥。
80、在另一种可能的实现方式中,所述第二计算模块,还用于:
81、对于第k个所述第一隐私数据对应的所述第一共享密钥和第k个所述第二隐私数据对应的多个所述第二共享密钥,确定所述第一共享密钥的哈希值与多个所述第二共享密钥的哈希值之间的候选交集,所述k为正整数;
82、对多个所述候选交集求并集得到所述隐私数据交集。
83、在另一种可能的实现方式中,所述装置还包括:第二发送模块;所述第二发送模块用于:
84、随机生成第二私钥和第六错误向量;
85、根据所述第二私钥和所述第六错误向量,确定对应的所述第二公钥;
86、将所述二公钥发送至所述发送端设备。
87、根据本公开的另一方面,提供了一种基于密钥可复用的有错配对密钥协商的psi系统,包括发送端设备和接收端设备,所述系统包括:
88、所述发送端设备和所述接收端设备,用于分别获取各自的隐私数据集、私钥和公钥,并将所述公钥进行交换,所述隐私数据集包括多个隐私数据;
89、所述发送端设备,用于根据自身的所述隐私数据集、自身的所述私钥和所述接收端设备发送的所述公钥,确定第一共享密钥集合,将所述第一共享密钥集合发送至所述接收端设备,所述第一共享密钥集合用于指示所述多个第一隐私数据各自对应的第一共享密钥;
90、所述接收端设备,用于根据自身的所述隐私数据集、自身的所述私钥和所述发送端设备发送的所述公钥,确定第二共享密钥集合,所述第二共享密钥集合用于指示所述多个第二隐私数据各自对应的第二共享密钥,所述第一共享密钥集合和所述第二共享密钥集合均是基于有错配对的密钥交换协议确定的;
91、所述接收端设备,用于将所述第二共享密钥集合与所述发送端设备发送的所述第一共享密钥集合求交集,得到隐私数据交集。
92、根据本公开的另一方面,提供了一种计算设备,所述计算设备包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述第一方面或第一方面的任意一种可能的实现方式提供的方法,或者所述处理器被配置为执行上述第二方面或第二方面的任意一种可能的实现方式提供的方法。
93、根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现上述第一方面或第一方面的任意一种可能的实现方式提供的方法,或者实现上述第二方面或第二方面的任意一种可能的实现方式提供的方法。
94、本公开实施例通过发送端设备获取第一隐私数据集,根据第一隐私数据集、第一私钥和接收端设备发送的第二公钥,确定第一共享密钥集合,将第一共享密钥集合发送至接收端设备,以使得接收端设备根据第二隐私数据集、第二私钥和发送端设备发送的第一公钥确定第二共享密钥集合后,将第一共享密钥集合与第二共享密钥集合求交集得到隐私数据交集;由于psi协议是利用能够抵抗量子计算机攻击的有错配对的密钥交换协议构建的,因此该psi协议具备抗量子特性,且该psi协议中两端设备各自的公钥只需生成一个,公钥是可重复使用的,因此能有效降低计算和通信开销,提升了psi协议执行的效率和安全性,同时该psi方法适用于平衡和非平衡的psi协议。
1.一种基于密钥可复用的有错配对密钥协商的隐私集合求交psi方法,其特征在于,用于发送端设备中,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一共享密钥集合包括多个所述第一共享密钥的哈希值,所述根据所述第一隐私数据集、第一私钥和接收端设备发送的第二公钥,确定第一共享密钥集合,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一隐私数据、所述第一私钥、所述第二公钥、所述第一错误向量和所述第二错误向量,确定所述第一隐私数据对应的第一共享密钥,包括:
4.根据权利要求3所述的方法,其特征在于,所述信号函数用于指示当所述第二中间值在第一数值范围内时对应的所述信号为第一数值,当所述第二中间值不在所述第一数值范围内时对应的所述信号为第二数值,所述第一数值范围是根据所述公共参数确定的。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述方法还包括:
7.一种基于密钥可复用的有错配对密钥协商的psi方法,其特征在于,用于接收端设备中,所述方法包括:
8.根据权利要求7所述的方法,其特征在于,所述第二共享密钥集合包括多个所述第二共享密钥的哈希值,所述根据所述第二隐私数据集、第二私钥和发送端设备发送的第一公钥,确定第二共享密钥集合,包括:
9.根据权利要求8所述的方法,其特征在于,所述根据所述第二隐私数据、所述第二私钥、所述第一公钥、所述第四错误向量和所述第五错误向量,确定所述第二隐私数据对应的多个第二共享密钥,包括:
10.根据权利要求7所述的方法,其特征在于,所述将所述发送端设备发送的第一共享密钥集合与所述第二共享密钥集合求交集得到隐私数据交集,包括:
11.根据权利要求1至10中任意一项所述的方法,其特征在于,所述方法还包括:
12.一种基于密钥可复用的有错配对密钥协商的psi方法,其特征在于,用于包括发送端设备和接收端设备的psi系统中,所述方法包括:
13.一种基于密钥可复用的有错配对密钥协商的psi装置,其特征在于,用于发送端设备中,所述装置包括:
14.一种基于密钥可复用的有错配对密钥协商的psi装置,其特征在于,用于接收端设备中,所述装置包括:
15.一种基于密钥可复用的有错配对密钥协商的psi系统,其特征在于,包括发送端设备和接收端设备,所述系统包括:
16.一种计算设备,其特征在于,所述计算设备包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行权利要求1至6中任意一项所述的方法,或者执行权利要求7至11中任意一项所述的方法。
17.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至6中任意一项所述的方法,或者实现权利要求7至11中任意一项所述的方法。