可左右滑动选省市

一种确定隐私集合交集方法、装置、电子设备及存储介质

更新时间:2024-07-01
一种确定隐私集合交集方法、装置、电子设备及存储介质 专利申请类型:发明专利;
源自:北京高价值专利检索信息库;

专利名称:一种确定隐私集合交集方法、装置、电子设备及存储介质

专利类型:发明专利

专利申请号:CN202110911496.8

专利申请(专利权)人:北京信安世纪科技股份有限公司
权利人地址:北京市西城区白纸坊东街2号经济日报社综合业务楼A座6层

专利发明(设计)人:张宇,汪宗斌

专利摘要:本发明公开了一种确定隐私集合交集方法、装置、电子设备及存储介质,本发明实施例中,客户端根据第一数据集合,构建第一多项式,由第一多项式的每一项系数构成第一元素集合之后,对第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合。然后再将公钥和第二元素集合发送至服务端。由于第二元素集合中包含了随机数量的0对应的密文,服务端并不能根据第二元素集合中元素的数量来推断客户端数据的数量,因此起到了对客户端包含数据的数量的隐私保护的作用。

主权利要求:
1.一种确定隐私集合交集方法,其特征在于,所述方法包括:
根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;
采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;
将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;
采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集;
其中,客户端的第一数据集合为X={xi|i=1,2…kc,xi∈Zn},服务端的第二数据集合为Y={yi|i=1,2…ks,yi∈Zn};
客户端生成同态加密算法Paillier的公私钥对(PKc,SKc),秘密保存私钥SKc,向服务端公开公钥PKc;使用插值法获得第一多项式 使得方程P(y)=0的解的集合为X;针对第一元素集合{au|u=0,1…Kc}中的每个元素,执行paillier公钥加密,获取集合 随机选择整数Kt,计算获取集合表示采用公钥对随机数量Kt个0进行加密;将E2中的所有
元素加入到集合E1中的所有元素之后,获取第二元素集合E={ei|i=0,1,…Kc+Kt},将E发送给服务端;
服务端针对所有y∈Y,根据Paillier算法的特点,计算
其中,n为Paillier算法参数;选择随机参数r,计算
将服务端的第二数
据集合中的每个数据带入上述公式,得到集合CT1;随机选择整数Kt′,在paillier的密文空间中随机选择Kt′个密文ct,构成集合CT2;将CT2中的每个元素加入到CT1的所有元素之后,获取第三元素集合CT,将CT发送给客户端;
客户端针对CT中的每个元素cti,执行mi=DecSKc(cti),采用公钥对应的私钥对每个元素cti进行解密,输出集合{mi}与X的交集为X与Y的交集;
其中,先将随机数量个0加入到第一元素集合中,对第一元素集合中的每个元素采用所述公钥进行加密,得到第二元素集合;或者分别对第一元素集合中的每个元素采用公钥进行加密,然后对随机数量个0采用公钥进行加密,再将加密后得到的密文作为第二元素集合。
2.如权利要求1所述的方法,其特征在于,所述采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合包括:采用公钥对所述第一元素集合中的每个元素进行加密,得到第一元素集合中的每个元素分别对应的密文,采用公钥对所述随机数量个0进行加密,得到随机数量个0分别对应的密文;将所述随机数量个0分别对应的密文加入到第一元素集合中的每个元素分别对应的密文之后,得到加密后的第二元素集合。
3.如权利要求1所述的方法,其特征在于,所述根据客户端的第一数据集合,构建第一多项式包括:根据客户端的第一数据集合,使用插值法构建所述第一多项式,使得所述第一多项式为0的解为第一数据集合。
4.一种确定隐私集合交集方法,其特征在于,所述方法包括:
接收客户端发送的公钥和加密后的第二元素集合,其中,所述第二元素集合是根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合,采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密得到的;
根据所述第二元素集合、服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合;
将所述加密后的第三元素集合发送至客户端,使客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集;
其中,客户端的第一数据集合为X={xi|i=1,2…kc,xi∈Zn},服务端的第二数据集合为Y={yi|i=1,2…ks,yi∈Zn};
客户端生成同态加密算法Paillier的公私钥对(PKc,SKc),秘密保存私钥SKc,向服务端公开公钥PKc;使用插值法获得第一多项式 使得方程P(y)=0的解的集合为X;针对第一元素集合{au|u=0,1…Kc}中的每个元素,执行paillier公钥加密,获取集合 随机选择整数Kt,计算获取集合表示采用公钥对随机数量Kt个0进行加密;将E2中的所有
元素加入到集合E1中的所有元素之后,获取第二元素集合E={ei|i=0,1,…Kc+Kt},将E发送给服务端;
服务端针对所有y∈Y,根据Paillier算法的特点,计算
其中,n为Paillier算法参数;选择随机参数r,计算
将服务端的第二数据
集合中的每个数据带入上述公式,得到集合CT1;随机选择整数Kt′,在paillier的密文空间中随机选择Kt′个密文ct,构成集合CT2;将CT2中的每个元素加入到CT1的所有元素之后,获取第三元素集合CT,将CT发送给客户端;
客户端针对CT中的每个元素cti,执行mi=DecSKc(cti),采用公钥对应的私钥对每个元素cti进行解密,输出集合{mi}与X的交集为X与Y的交集;
其中,先将随机数量个0加入到第一元素集合中,对第一元素集合中的每个元素采用所述公钥进行加密,得到第二元素集合;或者分别对第一元素集合中的每个元素采用公钥进行加密,然后对随机数量个0采用公钥进行加密,再将加密后得到的密文作为第二元素集合。
5.如权利要求4所述的方法,其特征在于,所述根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合包括:根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合。
6.如权利要求5所述的方法,其特征在于,所述根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合包括:根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第四元素集合;在密文空间中选择随机数量个密文加入到所述第四元素集合中的每个元素之后,得到第三元素集合。
7.一种确定隐私集合交集装置,其特征在于,所述装置包括:
第一确定模块,用于根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;
加密模块,用于采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;
传输模块,用于将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;
第二确定模块,用于采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集;
其中,客户端的第一数据集合为X={xi|i=1,2…kc,xi∈Zn},服务端的第二数据集合为Y={yi|i=1,2…ks,yi∈Zn};
客户端生成同态加密算法Paillier的公私钥对(PKc,SKc),秘密保存私钥SKc,向服务端公开公钥PKc;使用插值法获得第一多项式 使得方程P(y)=0的解的集合为X;针对第一元素集合{au|u=0,1…Kc}中的每个元素,执行paillier公钥加密,获取集合 随机选择整数Kt,计算获取集合表示采用公钥对随机数量Kt个0进行加密;将E2中的所有
元素加入到集合E1中的所有元素之后,获取第二元素集合E={ei|i=0,1,…Kc+Kt},将E发送给服务端;
服务端针对所有y∈Y,根据Paillier算法的特点,计算
其中,n为Paillier算法参数;选择随机参数r,计算
将服务端的第二数据
集合中的每个数据带入上述公式,得到集合CT1;随机选择整数Kt′,在paillier的密文空间中随机选择Kt′个密文ct,构成集合CT2;将CT2中的每个元素加入到CT1的所有元素之后,获取第三元素集合CT,将CT发送给客户端;
客户端针对CT中的每个元素cti,执行mi=DecSKc(cti),采用公钥对应的私钥对每个元素cti进行解密,输出集合{mi}与X的交集为X与Y的交集;
其中,先将随机数量个0加入到第一元素集合中,对第一元素集合中的每个元素采用所述公钥进行加密,得到第二元素集合;或者分别对第一元素集合中的每个元素采用公钥进行加密,然后对随机数量个0采用公钥进行加密,再将加密后得到的密文作为第二元素集合。
8.如权利要求7所述的装置,其特征在于,所述加密模块,具体用于采用公钥对所述第一元素集合中的每个元素进行加密,得到第一元素集合中的每个元素分别对应的密文,采用公钥对所述随机数量个0进行加密,得到随机数量个0分别对应的密文;将所述随机数量个0分别对应的密文加入到第一元素集合中的每个元素分别对应的密文之后,得到加密后的第二元素集合。
9.如权利要求7所述的装置,其特征在于,所述第一确定模块,具体用于根据客户端的第一数据集合,使用插值法构建所述第一多项式,使得所述第一多项式为0的解为第一数据集合。
10.一种确定隐私集合交集装置,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的公钥和加密后的第二元素集合,其中,所述第二元素集合是根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合,采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密得到的;
第三确定模块,用于根据所述第二元素集合、服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合;
发送模块,用于将所述加密后的第三元素集合发送至客户端,使客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集;
其中,客户端的第一数据集合为X={xi|i=1,2…kc,xi∈Zn},服务端的第二数据集合为Y={yi|i=1,2…ks,yi∈Zn};
客户端生成同态加密算法Paillier的公私钥对(PKc,SKc),秘密保存私钥SKc,向服务端公开公钥PKc;使用插值法获得第一多项式 使得方程P(y)=0的解的集合为X;针对第一元素集合{au|u=0,1…Kc}中的每个元素,执行paillier公钥加密,获取集合 随机选择整数Kt,计算获取集合表示采用公钥对随机数量Kt个0进行加密;将E2中的所有
元素加入到集合E1中的所有元素之后,获取第二元素集合E={ei|i=0,1,…Kc+Kt},将E发送给服务端;
服务端针对所有y∈Y,根据Paillier算法的特点,计算
其中,n为Paillier算法参数;选择随机参数r,计算
将服务端的第二数据
集合中的每个数据带入上述公式,得到集合CT1;随机选择整数Kt′,在paillier的密文空间中随机选择Kt′个密文ct,构成集合CT2;将CT2中的每个元素加入到CT1的所有元素之后,获取第三元素集合CT,将CT发送给客户端;
客户端针对CT中的每个元素cti,执行mi=DecSKc(cti),采用公钥对应的私钥对每个元素cti进行解密,输出集合{mi}与X的交集为X与Y的交集;
其中,先将随机数量个0加入到第一元素集合中,对第一元素集合中的每个元素采用所述公钥进行加密,得到第二元素集合;或者分别对第一元素集合中的每个元素采用公钥进行加密,然后对随机数量个0采用公钥进行加密,再将加密后得到的密文作为第二元素集合。
11.如权利要求10所述的装置,其特征在于,所述第三确定模块,具体用于根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合。
12.如权利要求11所述的装置,其特征在于,所述第三确定模块,具体用于根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第四元素集合;在密文空间中选择随机数量个密文加入到所述第四元素集合中的每个元素之后,得到第三元素集合。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1‑6任一项所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑6任一项所述的方法步骤。 说明书 : 一种确定隐私集合交集方法、装置、电子设备及存储介质技术领域[0001] 本发明涉及技术领域,尤其涉及一种确定隐私集合交集方法、装置、电子设备及存储介质。背景技术[0002] 隐私集合求交集PSI(privatesetintersection)指通过一系列底层的密码学技术,计算客户端提供的数据集合与服务端提供的数据集合的交集,且不会泄露集合中交集以外的数据,在黑名单共享、营销匹配等现实场景中有广泛应用。现有技术在求数据集合的交集时,首先根据客户端的数据集合,构建多项式,由多项式的每一项系数构成元素集合,客户端将元素集合发送至服务端,服务端根据元素集合中的数量可以确定客户端数据集合中的数据数量。因此,现有技术存在的问题是,虽然不会泄露集合中交集以外的数据,但是会泄露客户端数据集合中包含的数据数量。然而对于营销匹配等场景中,对集合中包含的数据数量也是需要保密的,现有的方案无法满足这一要求。发明内容[0003] 本发明实施例提供了一种确定隐私集合交集方法、装置、电子设备及存储介质,用以解决现有方案会泄露客户端数据集合中包含的数据数量的问题。[0004] 本发明实施例提供了一种确定隐私集合交集方法,所述方法包括:[0005] 根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;[0006] 采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;[0007] 将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;[0008] 采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0009] 进一步地,所述采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合包括:[0010] 采用公钥对所述第一元素集合中的每个元素进行加密,得到第一元素集合中的每个元素分别对应的密文,采用公钥对所述随机数量个0进行加密,得到随机数量个0分别对应的密文;将所述随机数量个0分别对应的密文加入到第一元素集合中的每个元素分别对应的密文之后,得到加密后的第二元素集合。[0011] 进一步地,所述根据客户端的第一数据集合,构建第一多项式包括:[0012] 根据客户端的第一数据集合,使用插值法构建所述第一多项式,使得所述第一多项式为0的解为第一数据集合。[0013] 另一方面,本发明实施例提供了一种确定隐私集合交集方法,所述方法包括:[0014] 接收客户端发送的公钥和加密后的第二元素集合,其中,所述第二元素集合是根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合,采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密得到的;[0015] 根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合;[0016] 将所述加密后的第三元素集合发送至客户端,使客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0017] 进一步地,所述根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合包括:[0018] 根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合。[0019] 进一步地,所述根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合包括:[0020] 根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第四元素集合;在密文空间中选择随机数量个密文加入到所述第四元素集合中的每个元素之后,得到第三元素集合。[0021] 另一方面,本发明实施例提供了一种确定隐私集合交集装置,所述装置包括:[0022] 第一确定模块,用于根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;[0023] 加密模块,用于采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;[0024] 传输模块,用于将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;[0025] 第二确定模块,用于采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0026] 进一步地,所述加密模块,具体用于采用公钥对所述第一元素集合中的每个元素进行加密,得到第一元素集合中的每个元素分别对应的密文,采用公钥对所述随机数量个0进行加密,得到随机数量个0分别对应的密文;将所述随机数量个0分别对应的密文加入到第一元素集合中的每个元素分别对应的密文之后,得到加密后的第二元素集合。[0027] 进一步地,所述第一确定模块,具体用于根据客户端的第一数据集合,使用插值法构建所述第一多项式,使得所述第一多项式为0的解为第一数据集合。[0028] 另一方面,本发明实施例提供了一种确定隐私集合交集装置,所述装置包括:[0029] 接收模块,用于接收客户端发送的公钥和加密后的第二元素集合,其中,所述第二元素集合是根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合,采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密得到的;[0030] 第三确定模块,用于根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合;[0031] 发送模块,用于将所述加密后的第三元素集合发送至客户端,使客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0032] 进一步地,所述第三确定模块,具体用于根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合。[0033] 进一步地,所述第三确定模块,具体用于根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第四元素集合;在密文空间中选择随机数量个密文加入到所述第四元素集合中的每个元素之后,得到第三元素集合。[0034] 另一方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;[0035] 存储器,用于存放计算机程序;[0036] 处理器,用于执行存储器上所存放的程序时,实现上述任一项所述的方法步骤。[0037] 另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法步骤。[0038] 本发明实施例提供了一种确定隐私集合交集方法、装置、电子设备及存储介质,所述方法包括:根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0039] 上述的技术方案具有如下优点或有益效果:[0040] 本发明实施例中,客户端根据第一数据集合,构建第一多项式,由第一多项式的每一项系数构成第一元素集合之后,对第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合。然后再将公钥和第二元素集合发送至服务端。由于第二元素集合中包含了随机数量的0对应的密文,服务端并不能根据第二元素集合中元素的数量来推断客户端数据的数量,因此起到了对客户端包含数据的数量的隐私保护的作用。附图说明[0041] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0042] 图1为本发明实施例1提供的确定隐私集合交集过程示意图;[0043] 图2为本发明实施例2提供的确定隐私集合交集过程示意图;[0044] 图3为本发明实施例3提供的确定隐私集合交集装置结构示意图;[0045] 图4为本发明实施例4提供的确定隐私集合交集装置结构示意图;[0046] 图5为本发明实施例5提供的电子设备结构示意图。具体实施方式[0047] 下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。[0048] 实施例1:[0049] 图1为本发明实施例提供的确定隐私集合交集过程示意图,该过程包括以下步骤:[0050] S101:根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合。[0051] S102:采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合。[0052] S103:将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的。[0053] S104:采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0054] 本发明实施例提供的确定隐私集合交集的方法应用于客户端,确定隐私集合交集即确定客户端的隐私数据集合与服务端的隐私数据集合的交集。将客户端的数据集合称为第一数据集合,根据客户端的第一数据集合,构建第一多项式。所述根据客户端的第一数据集合,构建第一多项式包括:根据客户端的第一数据集合,使用插值法构建所述第一多项式,使得所述第一多项式为0的解为第一数据集合。[0055] 构建第一多项式之后,由第一多项式的每一项系数构成第一元素集合。采用公钥对第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合。假0 1 2设,构建的第一多项式为P(y)=a0x+a1x+a2x。则第一元素集合包括(a0,a1,a2)。可以理解0 1 2的,为保证第一多项式为0的解为第一数据集合,第一多项式可以写成P(y)=a0x+a1x+a2x3 4 5+0x+0x+0x ……。因此,本发明实施例中提出了采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合。其中,可以先将随机数量个0加入到第一元素集合中,然后对第一元素集合中的每个元素采用公钥进行加密,得到第二元素集合。也可以是分别对第一元素集合中的每个元素采用公钥进行加密,然后对随机数量个0采用公钥进行加密,再将加密后得到的密文作为第二元素集合。[0056] 本发明实施例中,所述采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合包括:[0057] 采用公钥对所述第一元素集合中的每个元素进行加密,得到第一元素集合中的每个元素分别对应的密文,采用公钥对所述随机数量个0进行加密,得到随机数量个0分别对应的密文;将所述随机数量个0分别对应的密文加入到第一元素集合中的每个元素分别对应的密文之后,得到加密后的第二元素集合。[0058] 本发明实施例中,为了便于确定隐私集合交集,可以将随机数量个0分别对应的密文加入到第一元素集合中的每个元素分别对应的密文之后,得到加密后的第二元素集合。[0059] 客户端确定加密后的第二元素集合之后,将公钥和第二元素集合发送至服务端。服务端基于第二元素集合、服务端的第二数据集合和公钥确定加密后的第三元素集合,并将第三元素集合发送回客户端。客户端采用公钥对应的私钥对第三元素集合中的每个元素进行解密,得到服务端的第二数据集合,然后确定第一数据集合和第二数据集合的交集。[0060] 本发明实施例中,客户端根据第一数据集合,构建第一多项式,由第一多项式的每一项系数构成第一元素集合之后,对第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合。然后再将公钥和第二元素集合发送至服务端。由于第二元素集合中包含了随机数量的0对应的密文,服务端并不能根据第二元素集合中元素的数量来推断客户端数据的数量,因此起到了对客户端包含数据的数量的隐私保护的作用。[0061] 实施例2:[0062] 图2为本发明实施例提供的确定隐私集合交集过程示意图,该过程包括以下步骤:[0063] S201:接收客户端发送的公钥和加密后的第二元素集合,其中,所述第二元素集合是根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合,采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密得到的。[0064] S202:根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合。[0065] S203:将所述加密后的第三元素集合发送至客户端,使客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0066] 本发明实施例提供的确定隐私集合交集的方法应用于服务端。[0067] 客户端根据客户端的第一数据集合,构建第一多项式,由第一多项式的每一项系数构成第一元素集合;采用公钥对第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合。将第二元素集合和公钥发送至服务端。[0068] 服务端接收客户端发送的公钥和加密后的第二元素集合,并根据第二元素集合、服务端的第二数据集合和公钥确定服务端加密后的第三元素集合。然后将加密后的第三元素集合发送至客户端。客户端采用公钥对应的私钥对第三元素集合中的每个元素进行解密,得到服务端的第二数据集合,然后确定第一数据集合和第二数据集合的交集。[0069] 本发明实施例中,所述根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合包括:[0070] 根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合。[0071] 具体的,所述根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合包括:[0072] 根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第四元素集合;在密文空间中选择随机数量个密文加入到所述第四元素集合中的每个元素之后,得到第三元素集合。[0073] 需要说明的是,本发明实施例中,在密文空间中选择随机数量个密文加入到所述第四元素集合中的每个元素之后,得到第三元素集合。客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,此时得到的第二数据集合中包含服务端的数据以及随机数量个密文对应的干扰项数据。通过在密文空间中选择随机数量个密文加入到第四元素集合中的每个元素之后,得到第三元素集合,使得客户端也无法推断服务端的数据的数量,起到了对服务端包含数据的数量的隐私保护的作用。而在未加入随机数量个密文之前,服务端的第二数据集合中是不包含随机数量个密文对应的干扰项数据的。[0074] 下面对确定隐私集合交集的过程进行详细说明。[0075] 客户端(C)、服务端(S)。[0076] C的第一数据集合为X={xi|i=1,2…kc,xi∈Zn},S的第二数据集合为[0077] Y={yi|i=1,2…ks,yi∈Zn}。[0078] C执行如下步骤:[0079] (1)生成同态加密算法Paillier的公私钥对(PKc,SKc),秘密保存私钥SKc,向服务端公开公钥PKc。[0080] (2)使用插值法获得第一多项式 使得方程P(y)=0的解的集合为X。[0081] (3)针对第一元素集合{au|u=0,1…Kc}中的每个元素,执行paillier公钥加密,获取集合 随机选择 整数Kt,计算获取 集合此处表示采用公钥对随机数量Kt个0进行加密。[0082] (4)将E2中的所有元素加入到集合E1中的所有元素之后,获取集合E={ei|i=0,1,…Kc+Kt}。集合E即为第二元素集合,将E发送给S。[0083] S执行如下步骤:[0084] (1)针对所有y∈Y,根据Paillier算法的特点,计算其中,n为Paillier算法参数。[0085] (2) 选择随机参数r,计算将服务端的第二数据集合中的每个数据带入上述公式,得到集合CT1。[0086] (3)随机选择整数Kt′。在paillier的密文空间中随机选择Kt′个密文ct,构成集合CT2。将CT2中的每个元素加入到CT1的所有元素之后,获取第三元素集合CT。将CT发送给C。[0087] C执行如下步骤:[0088] (1)针对CT中的每个元素cti,执行mi=DecSKc(cti)。即采用公钥对应的私钥对每个元素cti进行解密。[0089] (2)输出集合{mi}与X的交集,即为X与Y的交集。[0090] 因为,客户端解密后的集合,即为{mi=rP(yi)+yi}。而多项式P(y)=0的解的集合为X={xi}。假如服务端输入中的某个元素yi等于集合X中的一个元素,那么此时r*P(yi)=0,mi=r*P(yi)+yi=yi,该结果一定存在于集合X中。因此,客户端只要观察解密结果集合与客户端输入集合X的交集,即可获得X与Y的交集。[0091] 实施例3:[0092] 图3为本发明实施例提供的确定隐私集合交集装置结构示意图,该装置包括:[0093] 第一确定模块31,用于根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;[0094] 加密模块32,用于采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;[0095] 传输模块33,用于将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;[0096] 第二确定模块34,用于采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0097] 所述加密模块32,具体用于采用公钥对所述第一元素集合中的每个元素进行加密,得到第一元素集合中的每个元素分别对应的密文,采用公钥对所述随机数量个0进行加密,得到随机数量个0分别对应的密文;将所述随机数量个0分别对应的密文加入到第一元素集合中的每个元素分别对应的密文之后,得到加密后的第二元素集合。[0098] 所述第一确定模块31,具体用于根据客户端的第一数据集合,使用插值法构建所述第一多项式,使得所述第一多项式为0的解为第一数据集合。[0099] 实施例4:[0100] 图4为本发明实施例提供的确定隐私集合交集装置结构示意图,该装置包括:[0101] 接收模块41,用于接收客户端发送的公钥和加密后的第二元素集合,其中,所述第二元素集合是根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合,采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密得到的;[0102] 第三确定模块42,用于根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合;[0103] 发送模块43,用于将所述加密后的第三元素集合发送至客户端,使客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0104] 所述第三确定模块42,具体用于根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第三元素集合。[0105] 所述第三确定模块42,具体用于根据所述第二元素集合、所述服务端的第二数据集合、所述公钥和随机参数,采用同态加密算法,确定服务端加密后的第四元素集合;在密文空间中选择随机数量个密文加入到所述第四元素集合中的每个元素之后,得到第三元素集合。[0106] 实施例5:[0107] 在上述各实施例的基础上,本发明实施例中还提供了一种电子设备,需要说明的是,本发明实施例中将客户端和服务端统称为电子设备,如图5所示,包括:处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信;[0108] 如果电子设备为客户端,所述存储器303中存储有计算机程序,当所述程序被所述处理器301执行时,使得所述处理器301执行如下步骤:[0109] 根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;[0110] 采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;[0111] 将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;[0112] 采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0113] 基于同一发明构思,本发明实施例中还提供了一种电子设备,由于上述电子设备解决问题的原理与确定隐私集合交集方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。[0114] 本发明实施例提供的电子设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(PersonalDigitalAssistant,PDA)、网络侧设备等。[0115] 上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0116] 通信接口302用于上述电子设备与其他设备之间的通信。[0117] 存储器可以包括随机存取存储器(RandomAccessMemory,RAM),也可以包括非易失性存储器(Non‑VolatileMemory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。[0118] 上述处理器可以是通 用处理器,包括中央处理器、网络处 理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。[0119] 在本发明实施例中处理器执行存储器上所存放的程序时,实现根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0120] 本发明实施例中,客户端根据第一数据集合,构建第一多项式,由第一多项式的每一项系数构成第一元素集合之后,对第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合。然后再将公钥和第二元素集合发送至服务端。由于第二元素集合中包含了随机数量的0对应的密文,服务端并不能根据第二元素集合中元素的数量来推断客户端数据的数量,因此起到了对客户端包含数据的数量的隐私保护的作用。[0121] 如果电子设备为服务端,所述存储器303中存储有计算机程序,当所述程序被所述处理器301执行时,使得所述处理器301执行如下步骤:[0122] 接收客户端发送的公钥和加密后的第二元素集合,其中,所述第二元素集合是根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合,采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密得到的;[0123] 根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合;[0124] 将所述加密后的第三元素集合发送至客户端,使客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0125] 实施例6:[0126] 在上述各实施例的基础上,本发明实施例还提供了一种计算机存储可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,如果电子设备为客户端,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:[0127] 根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合;[0128] 采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密,得到加密后的第二元素集合;[0129] 将所述公钥和第二元素集合发送至服务端,接收所述服务端发送的加密后的第三元素集合,其中,所述第三元素集合是所述服务端基于所述第二元素集合、所述服务端的第二数据集合和所述公钥确定的;[0130] 采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0131] 如果电子设备为客户端,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:[0132] 接收客户端发送的公钥和加密后的第二元素集合,其中,所述第二元素集合是根据客户端的第一数据集合,构建第一多项式,由所述第一多项式的每一项系数构成第一元素集合,采用公钥对所述第一元素集合中的每个元素以及随机数量个0进行加密得到的;[0133] 根据所述第二元素集合、所述服务端的第二数据集合和所述公钥确定服务端加密后的第三元素集合;[0134] 将所述加密后的第三元素集合发送至客户端,使客户端采用私钥对所述第三元素集合中的每个元素进行解密,得到所述服务端的第二数据集合,确定所述第一数据集合和第二数据集合的交集。[0135] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0136] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0137] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0138] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。[0139] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

专利地区:北京

专利申请日期:2021-08-10

专利公开日期:2024-06-18

专利公告号:CN113645022B

电话咨询
读内容
搜本页
回顶部