本公开涉及安全计算领域,尤其涉及一种隐私集合求交方法、装置、电子设备和存储介质。
背景技术:
1、隐私集合求交(private set intersection,psi)是一个特定的安全多方计算(multi-party computation,mpc)问题。在两方隐私集合求交协议中,其中一个参与方拥有一个隐私数据输入集合x={x1,…,xn},另一参与方拥有隐私数据输入集合y={y1,…,yn},参与双方执行psi协议可以得到隐私数据集合的交集x∩y,且无法得到除交集之外的任何信息。现有的基于diffie-hellman密钥交换协议构造的隐私集合求交协议,当进行集合元素数量超过预设数量的大集合之间的求交,以及大集合和元素数量不超过预设数量的小集合之间的求交时,计算和通信效率较低。同时,现有的隐私求交技术还不能抵抗量子计算机的攻击。
技术实现思路
1、有鉴于此,本公开提出了一种隐私集合求交方法、装置、电子设备和存储介质,旨在实现安全、高效、普适且能够抵抗量子计算机攻击的隐私求交。
2、根据本公开的第一方面,提供了一种隐私集合求交方法,应用于第一用户端,所述方法包括:
3、生成公共参数,并向第二用户端发送所述公共参数;
4、根据所述公共参数生成对应的第一私钥,并根据所述第一私钥确定第一数量个第一公钥,所述第一数量为所述第一用户端对应的第一隐私数据集合中包括数据的数量;
5、向所述第二用户端发送第一数量个所述第一公钥;
6、接收所述第二用户端基于所述公共参数确定的第二数量个第二公钥,以及根据所述第一公钥计算得到的第一数量个信号,所述第二数量为所述第二用户端对应的第二隐私数据集合中包括数据的数量;
7、根据所述第二公钥、所述信号和所述第一私钥计算得到第一数量乘第二数量个第一共享密钥并进行哈希处理;
8、向所述第二用户端发送哈希处理后的所述第一共享密钥,以通过所述第二用户端对经过哈希处理后的第二数量个第二共享密钥与哈希处理后的所述第一共享密钥求交集。
9、在一种可能的实现方式中,所述公共参数中包括第一参数,以及用于确定离散高斯分布的第二参数和第三参数,所述第一参数为大于二的素数。
10、在一种可能的实现方式中,所述根据所述公共参数生成对应的第一私钥,并根据所述第一私钥确定第一数量个第一公钥,包括:
11、根据所述第二参数和第三参数确定离散高斯分布,并从所述离散高斯分布中随机选取第一私钥和第一数量个第一错误向量;
12、根据所述第一用户端对应的第一隐私数据集合确定第一数量个第一数据,所述第一数据的尺寸根据所述第二参数确定,其中,每个元素从第一参数预设有限域中获取;
13、根据每个所述第一数据和对应的第一错误向量,以及所述第一私钥确定对应的第一公钥。
14、在一种可能的实现方式中,所述根据所述第一用户端对应的第一隐私数据集合确定第一数量个第一数据,包括:
15、根据预设的第一哈希函数分别确定所述第一隐私数据集合中每个数据的第一哈希值;
16、以每个所述第一哈希值作为变量生成函数的种子生成均匀分布的数据作为对应的第一数据。
17、在一种可能的实现方式中,所述根据每个所述第一数据和对应的第一错误向量,以及所述第一私钥确定对应的第一公钥,包括:
18、确定每个所述第一数据对应的第一错误向量;
19、计算每个所述第一数据和所述第一私钥的乘积与二倍对应第一错误向量的和,得到对应的第一公钥。
20、在一种可能的实现方式中,所述根据所述第二公钥、所述信号和所述第一私钥计算得到第一数量乘第二数量个第一共享密钥并进行哈希处理,包括:
21、根据所述第二公钥和所述第一私钥计算得到第二数量个第一中间参数;
22、根据所述第一中间参数和所述信号计算得到第一数量乘第二数量个第一共享密钥;
23、通过预设的第二哈希函数对所述第一共享密钥进行哈希处理。
24、在一种可能的实现方式中,所述根据所述第二公钥和所述第一私钥计算得到第二数量个第一中间参数,包括:
25、在所述离散高斯分布中随机选取每个所述第二公钥对应的第二错误向量;
26、计算每个所述第二公钥和所述第一私钥的乘积,与二倍对应的第二错误向量的和得到对应的第一中间参数。
27、在一种可能的实现方式中,所述根据所述第一中间参数和所述信号计算得到第一数量乘第二数量个第一共享密钥,包括:
28、对每个所述第一中间参数分别和每个所述信号进行计算得到对应的第一共享密钥。
29、在一种可能的实现方式中,所述方法用于对基于误差学习问题或基于环上误差学习问题的有错配对密钥交换协议构造的两方隐私数据集合求交;
30、响应于所述方法用于对基于误差学习问题的有错配对密钥交换协议构造的两方隐私数据集合求交,所述第一数据为矩阵;
31、响应于所述方法用于对基于环上误差学习问题的有错配对密钥交换协议构造的两方隐私数据集合求交,所述第一数据为多项式。
32、根据本公开的第二方面,提供了一种隐私集合求交方法,应用于第二用户端,所述方法包括:
33、接收第一用户端发送的公共参数,以及基于所述公共参数生成的第一数量个第一公钥,所述第一数量为所述第一用户端对应的第一隐私数据集合中包括数据的数量;
34、根据所述公共参数确定第二数量个第二公钥,所述第二数量为所述第二用户端对应的第二隐私数据集合中包括数据的数量;
35、根据所述第一公钥计算得到的第一数量个信号;
36、向所述第一用户端发送所述第二公钥和所述信号;
37、接收所述第一用户端根据所述第二公钥和所述信号计算得到,并通过哈希处理后的第一数量乘第二数量个第一共享密钥;
38、确定第二数量个第二共享密钥并进行哈希处理;
39、对经过哈希处理后的第二数量个第二共享密钥与哈希处理后的所述第一共享密钥求交集。
40、在一种可能的实现方式中,所述公共参数中包括第一参数,以及用于确定离散高斯分布的第二参数和第三参数,所述第一参数为大于二的素数。
41、在一种可能的实现方式中,所述根据所述公共参数确定第二数量个第二公钥,包括:
42、根据所述第二参数和第三参数确定离散高斯分布,并从所述离散高斯分布中随机选取第二私钥和第二数量个第三错误向量;
43、根据所述第二用户端对应的第二隐私数据集合确定第二数量个第二数据,所述第二数据的尺寸根据所述第二参数确定,其中,每个元素从第一参数预设有限域中获取;
44、根据每个所述第二数据和对应的第三错误向量,以及所述第二私钥确定对应的第二公钥。
45、在一种可能的实现方式中,所述根据所述第二用户端对应的第二隐私数据集合确定第二数量个第二数据,包括:
46、根据预设的第一哈希函数分别确定所述第二隐私数据集合中每个数据的第二哈希值;
47、以每个所述第二哈希值作为变量生成函数的种子生成均匀分布的数据作为对应的第二数据。
48、在一种可能的实现方式中,所述根据每个所述第二数据和对应的第三错误向量,以及所述第二私钥确定对应的第二公钥,包括:
49、在所述离散高斯分布中随机选取每个所述第二数据对应的第三错误向量;
50、计算每个所述第二数据和所述第二私钥的乘积与二倍对应第三错误向量的和,得到对应的第二公钥。
51、在一种可能的实现方式中,所述根据所述第一公钥计算得到的第一数量个信号,包括:
52、根据所述第一公钥和所述第二私钥确定第一数量个第二中间参数;
53、通过信号函数计算每个所述第二中间参数,得到对应的信号。
54、在一种可能的实现方式中,所述根据所述第一公钥和所述第二私钥确定第一数量个第二中间参数,包括:
55、在所述离散高斯分布中随机选取每个所述第一公钥对应的第四错误向量;
56、计算每个所述第一公钥和所述第二私钥的乘积,与二倍对应的第四错误向量的和得到对应的第二中间参数。
57、在一种可能的实现方式中,所述确定第二数量个第二共享密钥并进行哈希处理,包括:
58、确定每个所述第二中间参数对应的信号;
59、分别对每个所述第二中间参数和对应的信号进行计算,得到对应的第二共享密钥;
60、通过预设的第二哈希函数对所述第二共享密钥进行哈希处理。
61、在一种可能的实现方式中,所述方法用于基于误差学习问题或基于环上误差学习问题的有错配对密钥交换协议的两个隐私数据集合求交;
62、响应于所述方法用于对基于误差学习问题的有错配对密钥交换协议的两个隐私数据集合求交,所述第二数据为矩阵;
63、响应于所述方法用于对基于环上误差学习问题的有错配对密钥交换协议的两个隐私数据集合求交,所述第二数据为多项式。
64、根据本公开的第三方面,提供了一种隐私集合求交装置,应用于第一用户端,所述装置包括:
65、参数生成模块,用于生成公共参数,并向第二用户端发送所述公共参数;
66、第一公钥生成模块,用于根据所述公共参数生成对应的第一私钥,并根据所述第一私钥确定第一数量个第一公钥,所述第一数量为所述第一用户端对应的第一隐私数据集合中包括数据的数量;
67、第一公钥发送模块,用于向所述第二用户端发送第一数量个所述第一公钥;
68、公钥接收模块,用于接收所述第二用户端基于所述公共参数确定的第二数量个第二公钥,以及根据所述第一公钥计算得到的第一数量个信号,所述第二数量为所述第二用户端对应的第二隐私数据集合中包括数据的数量;
69、哈希模块,用于根据所述第二公钥、所述信号和所述第一私钥计算得到第一数量乘第二数量个第一共享密钥并进行哈希处理;
70、第一密钥发送模块,用于向所述第二用户端发送哈希处理后的所述第一共享密钥,以通过所述第二用户端对经过哈希处理后的第二数量个第二共享密钥与哈希处理后的所述第一共享密钥求交集。
71、在一种可能的实现方式中,所述公共参数中包括第一参数,以及用于确定离散高斯分布的第二参数和第三参数,所述第一参数为大于二的素数。
72、在一种可能的实现方式中,所述第一公钥生成模块,进一步用于:
73、根据所述第二参数和第三参数确定离散高斯分布,并从所述离散高斯分布中随机选取第一私钥和第一数量个第一错误向量;
74、根据所述第一用户端对应的第一隐私数据集合确定第一数量个第一数据,所述第一数据的尺寸根据所述第二参数确定,其中,每个元素从第一参数预设有限域中获取;
75、根据每个所述第一数据和对应的第一错误向量,以及所述第一私钥确定对应的第一公钥。
76、在一种可能的实现方式中,所述第一公钥生成模块,进一步用于:
77、根据预设的第一哈希函数分别确定所述第一隐私数据集合中每个数据的第一哈希值;
78、以每个所述第一哈希值作为变量生成函数的种子生成均匀分布的数据作为对应的第一数据。
79、在一种可能的实现方式中,所述第一公钥生成模块,进一步用于:
80、确定每个所述第一数据对应的第一错误向量;
81、计算每个所述第一数据和所述第一私钥的乘积与二倍对应第一错误向量的和,得到对应的第一公钥。
82、在一种可能的实现方式中,所述哈希模块,进一步用于:
83、根据所述第二公钥和所述第一私钥计算得到第二数量个第一中间参数;
84、根据所述第一中间参数和所述信号计算得到第一数量乘第二数量个第一共享密钥;
85、通过预设的第二哈希函数对所述第一共享密钥进行哈希处理。
86、在一种可能的实现方式中,所述哈希模块,进一步用于:
87、在所述离散高斯分布中随机选取每个所述第二公钥对应的第二错误向量;
88、计算每个所述第二公钥和所述第一私钥的乘积,与二倍对应的第二错误向量的和得到对应的第一中间参数。
89、在一种可能的实现方式中,所述哈希模块,进一步用于:
90、对每个所述第一中间参数分别和每个所述信号进行计算得到对应的第一共享密钥。
91、在一种可能的实现方式中,所述装置用于对基于误差学习问题或基于环上误差学习问题的有错配对密钥交换协议构造的两方隐私数据集合求交;
92、响应于所述装置用于对基于误差学习问题的有错配对密钥交换协议构造的两方隐私数据集合求交,所述第一数据为矩阵;
93、响应于所述装置用于对基于环上误差学习问题的有错配对密钥交换协议构造的两方隐私数据集合求交,所述第一数据为多项式。
94、根据本公开的第四方面,提供了一种隐私集合求交装置,应用于第二用户端,所述装置包括:
95、参数接收模块,用于接收第一用户端发送的公共参数,以及基于所述公共参数生成的第一数量个第一公钥,所述第一数量为所述第一用户端对应的第一隐私数据集合中包括数据的数量;
96、第二公钥生成模块,用于根据所述公共参数确定第二数量个第二公钥,所述第二数量为所述第二用户端对应的第二隐私数据集合中包括数据的数量;
97、信号生成模块,用于根据所述第一公钥计算得到的第一数量个信号;
98、第二公钥发送模块,用于向所述第一用户端发送所述第二公钥和所述信号;
99、共享密钥接收模块,用于接收所述第一用户端根据所述第二公钥和所述信号计算得到,并通过哈希处理后的第一数量乘第二数量个第一共享密钥;
100、第二密钥确定模块,用于确定第二数量个第二共享密钥并进行哈希处理;
101、数据求交模块,用于对经过哈希处理后的第二数量个第二共享密钥与哈希处理后的所述第一共享密钥求交集。
102、在一种可能的实现方式中,所述公共参数中包括第一参数,以及用于确定离散高斯分布的第二参数和第三参数,所述第一参数为大于二的素数。
103、在一种可能的实现方式中,所述第二公钥生成模块,进一步用于:
104、根据所述第二参数和第三参数确定离散高斯分布,并从所述离散高斯分布中随机选取第二私钥和第二数量个第三错误向量;
105、根据所述第二用户端对应的第二隐私数据集合确定第二数量个第二数据,所述第二数据的尺寸根据所述第二参数确定,其中,每个元素从第一参数预设有限域中获取;
106、根据每个所述第二数据和对应的第三错误向量,以及所述第二私钥确定对应的第二公钥。
107、在一种可能的实现方式中,所述第二公钥生成模块,进一步用于:
108、根据预设的第一哈希函数分别确定所述第二隐私数据集合中每个数据的第二哈希值;
109、以每个所述第二哈希值作为变量生成函数的种子生成均匀分布的数据作为对应的第二数据。
110、在一种可能的实现方式中,所述第二公钥生成模块,进一步用于:
111、在所述离散高斯分布中随机选取每个所述第二数据对应的第三错误向量;
112、计算每个所述第二数据和所述第二私钥的乘积与二倍对应第三错误向量的和,得到对应的第二公钥。
113、在一种可能的实现方式中,所述信号生成模块,进一步用于:
114、根据所述第一公钥和所述第二私钥确定第一数量个第二中间参数;
115、通过信号函数计算每个所述第二中间参数,得到对应的信号。
116、在一种可能的实现方式中,所述信号生成模块,进一步用于:
117、在所述离散高斯分布中随机选取每个所述第一公钥对应的第四错误向量;
118、计算每个所述第一公钥和所述第二私钥的乘积,与二倍对应的第四错误向量的和得到对应的第二中间参数。
119、在一种可能的实现方式中,所述第二密钥确定模块,进一步用于:
120、确定每个所述第二中间参数对应的信号;
121、分别对每个所述第二中间参数和对应的信号进行计算,得到对应的第二共享密钥;
122、通过预设的第二哈希函数对所述第二共享密钥进行哈希处理。
123、在一种可能的实现方式中,所述装置用于基于误差学习问题或基于环上误差学习问题的有错配对密钥交换协议的两个隐私数据集合求交;
124、响应于所述装置用于对基于误差学习问题的有错配对密钥交换协议的两个隐私数据集合求交,所述第二数据为矩阵;
125、响应于所述装置用于对基于环上误差学习问题的有错配对密钥交换协议的两个隐私数据集合求交,所述第二数据为多项式。
126、根据本公开的第五方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
127、根据本公开的第六方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
128、根据本公开的第七方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
129、在本公开实施例中,由第一用户端生成公共参数并向第二用户端发送。两个用户端分别根据公共参数生成对应的第一数量个第一公钥,以及第二数量个第二公钥。第二用户端基于第一用户端发送的第一公钥计算得到的第一数量个信号并与第二公钥一同发送至第一用户端。第一用户端根据第二公钥和信号计算第一共享密钥并进行哈希处理,发送至第二用户端,第二用户端对其确定的并经过哈希处理后的第二共享密钥与哈希处理后的第一共享密钥求交集。本公开的隐私集合求交过程能够同时适用于平衡或非平衡的隐私集合求交协议,增加了协议的普适性。同时该方式安全高效,能够抵抗量子计算机攻击。
130、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
1.一种隐私集合求交方法,应用于第一用户端,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述公共参数中包括第一参数,以及用于确定离散高斯分布的第二参数和第三参数,所述第一参数为大于二的素数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述公共参数生成对应的第一私钥,并根据所述第一私钥确定第一数量个第一公钥,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一用户端对应的第一隐私数据集合确定第一数量个第一数据,包括:
5.根据权利要求3或4所述的方法,其特征在于,所述根据每个所述第一数据和对应的第一错误向量,以及所述第一私钥确定对应的第一公钥,包括:
6.根据权利要求3所述的方法,其特征在于,所述根据所述第二公钥、所述信号和所述第一私钥计算得到第一数量乘第二数量个第一共享密钥并进行哈希处理,包括:
7.根据权利要求6所述的方法,其特征在于,所述根据所述第二公钥和所述第一私钥计算得到第二数量个第一中间参数,包括:
8.根据权利要求6或7所述的方法,其特征在于,所述根据所述第一中间参数和所述信号计算得到第一数量乘第二数量个第一共享密钥,包括:
9.根据权利要求3所述的方法,其特征在于,所述方法用于对基于误差学习问题或基于环上误差学习问题的有错配对密钥交换协议构造的两方隐私数据集合求交;
10.一种隐私集合求交方法,应用于第二用户端,其特征在于,所述方法包括:
11.根据权利要求10所述的方法,其特征在于,所述公共参数中包括第一参数,以及用于确定离散高斯分布的第二参数和第三参数,所述第一参数为大于二的素数。
12.根据权利要求11所述的方法,其特征在于,所述根据所述公共参数确定第二数量个第二公钥,包括:
13.根据权利要求12所述的方法,其特征在于,所述根据所述第二用户端对应的第二隐私数据集合确定第二数量个第二数据,包括:
14.根据权利要求12或13所述的方法,其特征在于,所述根据每个所述第二数据和对应的第三错误向量,以及所述第二私钥确定对应的第二公钥,包括:
15.根据权利要求11所述的方法,其特征在于,所述根据所述第一公钥计算得到的第一数量个信号,包括:
16.根据权利要求15所述的方法,其特征在于,所述根据所述第一公钥和所述第二私钥确定第一数量个第二中间参数,包括:
17.根据权利要求15所述的方法,其特征在于,所述确定第二数量个第二共享密钥并进行哈希处理,包括:
18.根据权利要求12所述的方法,其特征在于,所述方法用于基于误差学习问题或基于环上误差学习问题的有错配对密钥交换协议的两个隐私数据集合求交;
19.一种隐私集合求交装置,应用于第一用户端,其特征在于,所述装置包括:
20.一种隐私集合求交装置,应用于第二用户端,其特征在于,所述装置包括:
21.一种电子设备,其特征在于,包括:
22.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至18中任意一项所述的方法。