CN115694777A - 基于同态加密的隐私集合求交方法、装置、设备及介质 - Google Patents
基于同态加密的隐私集合求交方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115694777A CN115694777A CN202211088810.8A CN202211088810A CN115694777A CN 115694777 A CN115694777 A CN 115694777A CN 202211088810 A CN202211088810 A CN 202211088810A CN 115694777 A CN115694777 A CN 115694777A
- Authority
- CN
- China
- Prior art keywords
- data
- party
- random number
- intersection
- participant
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供的一种基于同态加密的隐私集合求交方法、装置、电子设备,属于计算机技术领域,所述方法包括:响应于接收到对于第一参与方数据的获取数据交集的指令,利用不经意伪随机函数获取所述第一参与方数据中各个元素的随机数;对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方;接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,并对所述处理结果进行同态解密;基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集。
Description
技术领域
本公开属于计算机技术领域,特别涉及一种基于同态加密的隐私集合求交方法、装置、设备及介质。
背景技术
在数据对齐、数据发现,联合风控等多方安全计算的场景中,需要在保证隐私数据不泄露的情况下获得多方共有的样本数据,即各参与方在不泄漏本地数据的情况下获取到多个参与方之间的数据交集,因此诞生了PSI(Private Set Intersection,隐私集合求交)协议。PSI是指,参与各方在不泄露任何额外信息的情况下,得到持有数据的交集。在这里,额外的信息指的是除了各方的数据交集以外的任何信息。
然而,现有的计算多个参与方之间的数据交集的方案,通常是利用数据的明文进行数据交集的获取,这就导致在求交集的过程中数据持有方之外的参与方会获取明文数据,甚至在数据传输的过程中被参与方之外的个体截获明文数据,从而造成参与方的隐私数据泄漏,威胁到了隐私数据的安全性。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种基于同态加密的隐私集合求交方法、装置、电子设备。
本公开一些实施例提供一种基于同态加密的隐私集合求交方法,所述方法包括:
响应于接收到对于第一参与方数据的获取数据交集的指令,利用不经意伪随机函数获取所述第一参与方数据中各个元素的随机数;
对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方;
接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,并对所述处理结果进行同态解密;
基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集。
可选地,所述对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方,包括:
对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数;
计算所述加密随机数在预设正整数次数范围内的各个自然数次幂,所述预设正整数是基于所述第一参与方数据的元素个数与所述第二参与方数据的元素个数确定的;
基于所述自然数次幂,得到所述加密随机数的幂值向量;
将所述加密随机数的幂值向量发送至所述第二参与方。
可选地,所述接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,包括:
接收所述第二参与方发送的利用模切换压缩后的内积;
其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于所述幂值向量与所述第二参与方数据的系数向量计算得到的,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
可选地,所述对所述处理结果进行同态解密,包括:
将所述内积进行聚合,得到聚合结果;
对所述聚合结果进行同态解密。
可选地,所述聚合结果与所述第一参与方数据中的元素一一对应;
所述基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,包括:
在所述聚合结果为0的情况下,将所述聚合结果对应的元素确定为所述数据交集;
在所述聚合结果不为0的情况下,将所述聚合结果对应的元素确定为非数据交集。
可选地,所述接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,包括:
接收所述第二参与方发送的利用模切换压缩后的内积;
其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于幂值向量与所述第二参与方数据的系数向量计算得到的,所述幂值向量是所述第二参与方对所述同态加密后的各个元素的随机数在预设正整数次数范围内的各个自然数次幂,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
可选地,在所述基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集之后,所述方法还包括:
响应于接收到目标参与方发送的对于所述数据交集的获取指令,生成与所述目标参与方关联的密钥;
利用所述密钥对所述数据交集进行加密;
将加密后的数据交集发送至所述目标参与方,并且将所述密钥中的公钥发送至所述目标参与方。
本公开一些实施例提供一种多方数据的交集计算的装置,所述装置包括:
获取模块:用于响应于接收到对于第一参与方数据的获取数据交集的指令,利用不经意伪随机函数获取所述第一参与方数据中各个元素的随机数;
发送模块:用于对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方;
接收模块:用于接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,并对所述处理结果进行同态解密;
输出模块:用于基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集。
可选地,所述发送模块,还用于:
对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数;
计算所述加密随机数在预设正整数次数范围内的各个自然数次幂,所述预设正整数是基于所述第一参与方数据的元素个数与所述第二参与方数据的元素个数确定的;
基于所述自然数次幂,得到所述加密随机数的幂值向量;
将所述加密随机数的幂值向量发送至所述第二参与方。
可选地,所述接收模块,还用于:
接收所述第二参与方发送的利用模切换压缩后的内积;
其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于所述幂值向量与所述第二参与方数据的系数向量计算得到的,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
可选地,所述接收模块,还用于:
将所述内积进行聚合,得到聚合结果;
对所述聚合结果进行同态解密。
可选地,所述聚合结果与所述第一参与方数据中的元素一一对应,所述接收模块,还用于:
在所述聚合结果为0的情况下,将所述聚合结果对应的元素确定为所述数据交集;
在所述聚合结果不为0的情况下,将所述聚合结果对应的元素确定为非数据交集。
可选地,所述接收模块,还用于:
接收所述第二参与方发送的利用模切换压缩后的内积;
其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于幂值向量与所述第二参与方数据的系数向量计算得到的,所述幂值向量是所述第二参与方对所述同态加密后的各个元素的随机数在预设正整数次数范围内的各个自然数次幂,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
可选地,所述输出模块还用于:
响应于接收到目标参与方发送的对于所述数据交集的获取指令,生成与所述目标参与方关联的密钥;
利用所述密钥对所述数据交集进行加密;
将加密后的数据交集发送至所述目标参与方,并且将所述密钥中的公钥发送至所述目标参与方。
本公开一些实施例提供一种电子设备,包括:
存储器,其中存储有计算机可读代码;
一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述电子设备执行如上述所述的一种基于同态加密的隐私集合求交方法。
本公开一些实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在电子设备上运行时,导致所述电子设备执行如上述的一种基于同态加密的隐私集合求交方法。
本公开一些实施例提供一种存储介质,其中存储了如上述的一种基于同态加密的隐私集合求交方法。
本公开一些实施例提供的一种基于同态加密的隐私集合求交方法,利用OPRF算法在获取多方用户的数据交集时将数据进行隐藏与压缩,并在获取数据交集的整个过程中利用同态加密技术实现密文计算,不泄露数据的明文,能够在保证本地数据隐私安全的前提下,准确地获取到多方隐私数据的交集,保证了数据的安全性。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了本公开提供的一种基于同态加密的隐私集合求交方法的设备交互示意图;
图2示意性地示出了本公开提供的一种基于同态加密的隐私集合求交方法流程示意图;
图3示意性地示出了本公开提供的一种获取数据的幂值向量的方法流程示意图;
图4示意性地示出了本公开一些实施例提供的一种对处理结果进行同态解密的方法流程示意图;
图5示意性地示出了本公开提供的一种确定元素是否为数据交集的方法流程示意图;
图6示意性地示出了本公开提供的一种将数据交集发送至目标参与方的方法流程示意图;
图7示意性地示出了本公开一些实施例提供的一种多方数据的交集计算的装置的结构示意图;
图8示意性地示出了用于执行根据本公开一些实施例的方法的电子设备的框图;
图9示意性地示出了用于保持或者携带实现根据本公开一些实施例的方法的程序代码的存储单元。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
PSI协议是多方安全计算中的一个基本功能,需要保证在不泄漏本地数据的前提下,最后获取所有参与方的数据交集。由于其在约会服务、数据挖掘、推荐系统、执法等方面存在较大的应用潜力,因此产生了很多高效的多方隐私集合求交协议。目前关于多方PSI协议大多采用两种网络模型:一种是星型拓扑网络结构,由于这种网络结构是由中心节点执行集中式通行控制管理,各节点间的通信都要通过中心节点,这会减少除中心节点以外的各参与方的节点之间的交流,但会给指定的中心节点带来很高的工作量,不但增加了中心节点的负担,而且浪费了各参与方节点的处理资源,使得网络中的资源利用率严重失衡。另一种是星型路径网络结构,这种网络结构中节点之间都部署有专用的通信链路,因此参与方的节点的通信量和计算复杂度取决于自身输入集大小,通信量和计算复杂度会随数据来源的增多而增多,在节点过多的网络中会造成节点负荷过大的情况,明显不适用于节点过多的网络。
本公开提供一种能够保证在不泄漏本地数据的前提下,最后获取所有参与方的数据交集的一种基于同态加密的隐私集合求交方法。
在详细介绍本公开所提供的一种基于同态加密的隐私集合求交方法之前,先对本方法的应用场景进行示例性介绍。
示例性的,图1示意性地示出了本公开提供的一种基于同态加密的隐私集合求交方法的设备交互示意图。
参考图1,包括一个第一参与方11、多个第二参与方12,及第一参与方11与第二参与方12之间传输的数据13。其中,数据13可以包括第一参与方11所携带的第一参与方数据或第二参与方12所携带的第二参与方数据。第一参与方的选取方式包括但不限于:从多个参与方中随机选取一个参与方作为第一参与方11,或从多个参与方中选取计算能力最强的参与方为第一参与方11。第一参与方11与第二参与方12之间通过有线通信或无线通信的方式进行数据13的传输。
图2示意性地示出了本公开提供的一种基于同态加密的隐私集合求交方法流程示意图,所述方法包括:
步骤101,响应于接收到对于第一参与方数据的获取数据交集的指令,利用不经意伪随机函数获取所述第一参与方数据中各个元素的随机数。
在本公开实施例中,响应于接收到对于第一参与方数据的获取数据交集的指令,第一参与方11利用不经意伪随机函数获取所述第一参与方数据中各个元素的随机数。例如,假设第一参与方数据为X1,且X1拥有m个元素。第一参与方11选取一个随机数K,基于随机数K,对X1执行OPRF,得到第一参与方数据中各个元素的随机数X'1=(Fk(x1,1),…,Fk(x1,m));其中,Fk(x1,m)为X1中第m个元素的随机数,m为正整数。
可选地,本公开实施例可应用于约会服务、数据挖掘、推荐系统、执法等场景。
可选地,第一参与方数据的获取数据交集的指令的触发方式包括但不限于:语音触发,或对第一参与方配置的软件控件或硬件控件进行点击。不经意伪随机函数指的是OPRF,其全称为Oblivious Pseudo Random Function。
步骤102,对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方。
在本公开实施例中,第一参与方11对第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方12。
例如,假设用于同态加密的密钥对为(pk,sk),第一参与方11使用pk(public key,公钥)加密X'1,得到X'1的加密随机数Y1=Enc(pk,X'1)=(Enc(pk,Fk(x1,1)),…,Enc(pk,Fk(x1,m))),其中,Enc指的是同态加密函数。
可选地,对第一参与方数据中各个元素的随机数进行同态加密的方式包括但不限于:
(1)全同态加密:
FHE(FullyHE,全同态加密)支持在密文上进行无限次数的、任意类型的计算。其优点是支持的算子多并且运算次数没有限制,缺点是效率很低,目前还无法支撑大规模的计算。
(2)层次同态加密:
LHE(Leveled HE,层次同态加密)支持有限次数的加法和乘法运算。其优点是同时支持加法和乘法,一般效率比FHE要高很多,缺点是支持的计算次数有限。
步骤103,接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,并对所述处理结果进行同态解密。
在本公开实施例中,处理结果指的是第二参与方12基于加密随机数与第二参与方数据中各个元素的随机数进行运算得到的数据。第一参与方11接收第二参与方12对加密随机数与第二参与方数据中各个元素的随机数的处理结果,然后使用sk(secret key,私钥)对处理结果进行同态解密。
步骤104,基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集。
在本公开实施例中,第一参与方11基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出数据交集。
本公开实施例利用OPRF算法在获取多方用户的数据中的数据交集时将数据进行隐藏与压缩,并在获取数据交集的整个过程中利用同态加密技术实现密文计算,不泄露数据的明文,能够在非交集数据不被数据持有方之外个体获取的前提下,准确地获取到多方隐私数据的交集,保证了数据的安全性。
示例性的,图3示意性地示出了本公开提供的一种获取数据的幂值向量的方法流程示意图。
参考图3,包括步骤101,与步骤1021-1024。
其中步骤101在本公开实施例的具体实施方式与上一个实施例中步骤101的具体实施方式一致,在此不再赘述。
步骤1021-1024是步骤102的具体实施方式,具体地:
步骤1021,对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数。
在本公开实施例中,第一参与方11对第一参与方数据中各个元素的随机数进行同态加密,得到第一参与方数据中各个元素的加密随机数。
步骤1022,计算所述加密随机数在预设正整数次数范围内的各个自然数次幂,所述预设正整数是基于所述第一参与方数据的元素个数与所述第二参与方数据的元素个数确定的。
在本公开实施例中,第一参与方11计算加密随机数在预设正整数次数范围内的各个自然数次幂,预设正整数是基于所述第一参与方数据的元素个数与所述第二参与方数据的元素个数确定的。其中,第一参与方11计算加密随机数在预设正整数次数范围内的各个自然数次幂使用的是同态乘法。
可选地,预设正整数是第一参与方数据的元素个数与第二参与方数据的元素个数中的个数最大值。例如,假设第一参与方数据的元素个数为8,第二参与方数据的元素个数为10,则预设正整数被确定为10,则第一参与方11计算加密随机数的0次幂、1次幂、2次幂,......,10次幂;假设X'1的加密随机数为
Y1=Enc(pk,X'1)=(Enc(pk,Fk(x1,1)),…,Enc(pk,Fk(x1,10)));
则Y1在10以内的各个次幂为Yj=(Y1[j]0,Y1[j]1…,Y1[j]10),(j∈[1,10])。
可选地,假设第一参与方数据的元素个数为11,第二参与方数据的元素个数为8,则预设正整数被确定为11,则第一参与方11计算加密随机数的0次幂、1次幂、2次幂,......,11次幂。假设X'1的加密随机数为
Y1=Enc(pk,X'1)=(Enc(pk,Fk(x1,1)),…,Enc(pk,Fk(x1,11)));
则Y1在11以内的各个次幂为Yj=(Y1[j]0,Y1[j]1…,Y1[j]11),(j∈[1,11])。
步骤1023,基于所述自然数次幂,得到所述加密随机数的幂值向量。
在本公开实施例中,第一参与方11基于所述自然数次幂,得到所述加密随机数的幂值向量。其中,幂值向量指的是各个加密随机数的各个次数的幂值按照预设规则进行排列的向量。例如,加密随机数的各个次数的幂值按照幂次从高到低进行排列的向量,或加密随机数的各个次数的幂值按照幂次从低到高进行排列的向量。
步骤1024,将所述加密随机数的幂值向量发送至所述第二参与方。
在本公开实施例中,第一参与方11将加密随机数的幂值向量发送至第二参与方12。
本公开实施例通过第一参与方完成自身数据的各次幂值计算,再将计算得到的幂值向量发送至第二参与方,从而在第二参与方为多个终端设备的情况下,可以减小第二参与方的计算量,提高获取数据交集的效率。
可选地,参考图4,步骤103包括:
步骤1031,接收所述第二参与方发送的利用模切换压缩后的内积;其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于所述幂值向量与所述第二参与方数据的系数向量计算得到的,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
在本公开实施例中,模切换指的是Modulus Switching,源于BGV12(BGV12是一种同态加密方案,该方案利用模数切换可以降低密文的绝对噪声这一特点,将其发扬光大,使得加密可以做到较多层数的同态乘法运算),能有效地减少密文的大小。第一参与方11接收第二参与方12发送的利用模切换压缩后的内积;其中,第二参与方对加密随机数与第二参与方数据中各个元素的随机数的处理结果是未利用模切换压缩的内积,内积是第二参与方12基于幂值向量与第二参与方数据的系数向量计算得到的,系数向量是第二参与方12基于第二参与方数据中各个元素的随机数得到的。第二参与方在计算幂值向量与系数向量时用的是同态乘法与同态加法。
其中,第二参与方12基于第二参与方数据中各个元素得到各个元素的随机数的方式也是利用OPRF技术得到的,在此不再赘述。
可选地,假设第二参与方数据为Xi=(xi,1,…xi,m)(i∈[2,n]),则第二参与方12将Xi转换为多项式Si(x)=(x-xi,1)…(x-xi,m)=ai,mxm+…+ai,1x+ai,0,得到系数向量其中,n为正整数,且n大于或等于2。
步骤1032,将所述内积进行聚合,得到聚合结果。
在本公开实施例中,第一参与方11将内积进行聚合,得到聚合结果。其中,聚合指的是第一参与方11将第二参与方12发来的内积中的各个元素进行累加,得到聚合结果Zm=((z2,1+…+zn,1),…,(z2,m+…+zn,m))=(Z1,Z2,......,Zm)。其中,Zm指的是第m个元素对应的聚合结果。
步骤1033,对所述聚合结果进行同态解密。
在本公开实施例中,第一参与方11根据聚合结果,确定第一参与方数据与第二参与方数据的数据交集。
本公开实施例在第二参与方将内积发送给第一参与方之前,利用模切换技术对内积进行压缩,在第二参与方为多个设备的情况下,可以大大减小第一参与方的数据接收量。进一步,结合OPRF技术降低计算的复杂度,能够更快地获取数据交集。
示例性地,图5示意性地示出了本公开提供的一种确定元素是否为数据交集的方法流程示意图,其中步骤1041与步骤1042可作为步骤104的具体实施方式,所述方法包括:
步骤1031’,接收所述第二参与方发送的利用模切换压缩后的内积;其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于幂值向量与所述第二参与方数据的系数向量计算得到的,所述幂值向量是所述第二参与方对所述同态加密后的各个元素的随机数在预设正整数次数范围内的各个自然数次幂,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
在本公开实施例中,第一参与方11接收第二参与方12发送的利用模切换压缩后的内积;其中,第二参与方对加密随机数与第二参与方数据中各个元素的随机数的处理结果是未利用模切换压缩的内积,内积是第二参与方基于幂值向量与第二参与方数据的系数向量计算得到的,幂值向量是第二参与方对同态加密后的各个元素的随机数在预设正整数次数范围内的各个自然数次幂,系数向量是第二参与方基于第二参与方数据中各个元素的随机数得到的。
步骤1032,将所述内积进行聚合,得到聚合结果。
步骤1033,对所述聚合结果进行同态解密。
在本公开实施例中,步骤1032与步骤1033的具体实施方式与上一个实施例中步骤1032的具体实施方式一致,在此不再赘述。
步骤1041,在所述聚合结果为0的情况下,将所述聚合结果对应的元素确定为所述数据交集。
在本公开实施例中,聚合结果z=((z2,1+…+zn,1),…,(z2,m+…+zn,m))=(Z1,Z2,......,Zm),第一参与方11将z进行同态解密,得到解密结果Rj的表达式如下所示:
Rj=Dec(sk,z)=(Dec(sk,z1),…,Dec(sk,zm));
其中,Dec代表同态解密函数。若第j项的解密结果Zj为0,则第一参与方11将该项解密结果对应的数据Xj确定为数据交集。其中,j为大于或等于1,且小于或等于m的正整数。
步骤1042,在所述聚合结果不为0的情况下,将所述聚合结果对应的元素确定为非数据交集。
在本公开实施例中,第一参与方11将z进行同态解密,得到解密结果Rj,若第j项的解密结果Zj不为0,则第一参与方11将该项解密结果对应的数据Xj确定为非数据交集。
本公开实施例利用第二参与方对第一参与方数据进行幂值向量的计算,在第一参与方计算能力较弱,且第二参与方为多个计算能力较强的终端设备时,可以减小第一参与方的计算压力,保障在数据量较大时获取数据交集的效率。
可选地,参考图6,在所述步骤104之后,还包括:
步骤201,响应于接收到目标参与方发送的对于所述数据交集的获取指令,生成与所述目标参与方关联的密钥。
在本公开实施例中,目标参与方指的是第二参与方中的一个或多个终端设备,与所述目标参与方关联的密钥指的是仅目标参与方与第一参与方11拥有的密钥。响应于目标参与方发送的对数据交集进行保密发送的指令,第一参与方11生成与目标参与方关联的密钥。
可选地,第一参与方生成的密钥的种类包括但不限于:用于对称加密的密钥,或用于非对称加密的密钥。
步骤202,利用所述密钥对所述数据交集进行加密。
在本公开实施例中,第一参与方11利用密钥对数据交集进行加密。
可选地,第一参与方11对数据交集进行加密的方式包括但不限于:对称加密或非对称加密。
步骤203,将加密后的数据交集发送至所述目标参与方,并且将所述密钥中的公钥发送至所述目标参与方。
在本公开实施例中,第一参与方11将加密后的数据交集发送至目标参与方,并且将密钥中的公钥发送至目标参与方,以使目标参与方利用密钥对数据交集进行解密。
本公开一些实施例通过上述方案,可以在目标参与方请求第一参与方对数据交集加密后再将数据交集发送至目标参与方,避免了数据交集在传输的过程中被泄露,提高了数据交集的安全性。
图7示意性地示出了本公开提供的一种多方数据的交集计算的装置30的结构示意图,所述装置包括:
获取模块301:用于响应于接收到对于第一参与方数据的获取数据交集的指令,利用不经意伪随机函数获取所述第一参与方数据中各个元素的随机数;
发送模块302:用于对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方;
接收模块303:用于接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,并对所述处理结果进行同态解密;
输出模块304:用于基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集。
可选地,所述发送模块302,还用于:
对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数;
计算所述加密随机数在预设正整数次数范围内的各个自然数次幂,所述预设正整数是基于所述第一参与方数据的元素个数与所述第二参与方数据的元素个数确定的;
基于所述自然数次幂,得到所述加密随机数的幂值向量;
将所述加密随机数的幂值向量发送至所述第二参与方。
可选地,所述接收模块303,还用于:
接收所述第二参与方发送的利用模切换压缩后的内积;
其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于所述幂值向量与所述第二参与方数据的系数向量计算得到的,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
可选地,所述接收模块303,还用于:
将所述内积进行聚合,得到聚合结果;
对所述聚合结果进行同态解密。
可选地,所述聚合结果与所述第一参与方数据中的元素一一对应,所述接收模块303,还用于:
在所述聚合结果为0的情况下,将所述聚合结果对应的元素确定为所述数据交集;
在所述聚合结果不为0的情况下,将所述聚合结果对应的元素确定为非数据交集。
可选地,所述接收模块303,还用于:
接收所述第二参与方发送的利用模切换压缩后的内积;
其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于幂值向量与所述第二参与方数据的系数向量计算得到的,所述幂值向量是所述第二参与方对所述同态加密后的各个元素的随机数在预设正整数次数范围内的各个自然数次幂,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
可选地,所述输出模块304还用于:
响应于接收到目标参与方发送的对于所述数据交集的获取指令,生成与所述目标参与方关联的密钥;
利用所述密钥对所述数据交集进行加密;
将加密后的数据交集发送至所述目标参与方,并且将所述密钥中的公钥发送至所述目标参与方。
本公开实施例利用OPRF算法在获取多方用户的数据中的数据交集时将数据进行隐藏与压缩,并在获取数据交集的整个过程中利用同态加密技术实现密文计算,不泄露数据的明文,能够在非交集数据不被数据持有方之外个体获取的前提下,准确地获取到多方隐私数据的交集,保证了数据的安全性。
本公开的各个部件实施例可以以服务器实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的电子设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在存储介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图8示出了可以实现根据本公开的方法的电子设备。该电子设备传统上包括处理器410和以存储器420形式的计算机程序产品或者存储介质。存储器420可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器420具有用于执行上述方法中的任何方法步骤的程序代码431的存储空间430。例如,用于程序代码的存储空间430可以包括分别用于实现上面的方法中的各种步骤的各个程序代码431。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图9所述的便携式或者固定存储单元。该存储单元可以具有与图8的电子设备中的存储器420类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码431’,即可以由例如诸如410之类的处理器读取的代码,这些代码当由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本公开的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
Claims (10)
1.一种基于同态加密的隐私集合求交方法,其特征在于,应用于第一参与方,所述方法包括:
响应于接收到对于第一参与方数据的获取数据交集的指令,利用不经意伪随机函数获取所述第一参与方数据中各个元素的随机数;
对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方;
接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,并对所述处理结果进行同态解密;
基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集。
2.根据权利要求1所述的一种基于同态加密的隐私集合求交方法,其特征在于,所述对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方,包括:
对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数;
计算所述加密随机数在预设正整数次数范围内的各个自然数次幂,所述预设正整数是基于所述第一参与方数据的元素个数与所述第二参与方数据的元素个数确定的;
基于所述自然数次幂,得到所述加密随机数的幂值向量;
将所述加密随机数的幂值向量发送至所述第二参与方。
3.根据权利要求2所述的一种基于同态加密的隐私集合求交方法,其特征在于,所述接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,包括:
接收所述第二参与方发送的利用模切换压缩后的内积;
其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于所述幂值向量与所述第二参与方数据的系数向量计算得到的,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
4.据权利要求3所述的一种基于同态加密的隐私集合求交方法,其特征在于,所述对所述处理结果进行同态解密,包括:
将所述内积进行聚合,得到聚合结果;
对所述聚合结果进行同态解密。
5.权利要求4所述的一种基于同态加密的隐私集合求交方法,其特征在于,所述聚合结果与所述第一参与方数据中的元素一一对应;
所述基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,包括:
在所述聚合结果为0的情况下,将所述聚合结果对应的元素确定为所述数据交集;
在所述聚合结果不为0的情况下,将所述聚合结果对应的元素确定为非数据交集。
6.根据权利要求1所述的一种基于同态加密的隐私集合求交方法,其特征在于,所述接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,包括:
接收所述第二参与方发送的利用模切换压缩后的内积;
其中,所述处理结果是未利用模切换压缩的内积,所述内积是所述第二参与方基于幂值向量与所述第二参与方数据的系数向量计算得到的,所述幂值向量是所述第二参与方对所述同态加密后的各个元素的随机数在预设正整数次数范围内的各个自然数次幂,所述系数向量是所述第二参与方基于所述第二参与方数据中各个元素的随机数得到的。
7.根据权利要求1-6任一项所述的一种基于同态加密的隐私集合求交方法,其特征在于,在所述基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集之后,所述方法还包括:
响应于接收到目标参与方发送的对于所述数据交集的获取指令,生成与所述目标参与方关联的密钥;
利用所述密钥对所述数据交集进行加密;
将加密后的数据交集发送至所述目标参与方,并且将所述密钥中的公钥发送至所述目标参与方。
8.一种多方数据的交集计算的装置,其特征在于,包括:
获取模块:用于响应于接收到对于第一参与方数据的获取数据交集的指令,利用不经意伪随机函数获取所述第一参与方数据中各个元素的随机数;
发送模块:用于对所述第一参与方数据中各个元素的随机数进行同态加密,得到所述第一参与方数据中各个元素的加密随机数,并将所述加密随机数发送至第二参与方;
接收模块:用于接收所述第二参与方对所述加密随机数与第二参与方数据中各个元素的随机数的处理结果,并对所述处理结果进行同态解密;
输出模块:用于基于同态解密后的处理结果确定所述第一参与方数据与所述第二参与方数据的数据交集,并输出所述数据交集。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的一种基于同态加密的隐私集合求交方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的一种基于同态加密的隐私集合求交方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211088810.8A CN115694777A (zh) | 2022-09-07 | 2022-09-07 | 基于同态加密的隐私集合求交方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211088810.8A CN115694777A (zh) | 2022-09-07 | 2022-09-07 | 基于同态加密的隐私集合求交方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115694777A true CN115694777A (zh) | 2023-02-03 |
Family
ID=85061117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211088810.8A Pending CN115694777A (zh) | 2022-09-07 | 2022-09-07 | 基于同态加密的隐私集合求交方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115694777A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150810A (zh) * | 2023-04-17 | 2023-05-23 | 北京数牍科技有限公司 | 向量元素预聚合方法、电子设备及计算机可读存储介质 |
CN116781243A (zh) * | 2023-08-21 | 2023-09-19 | 北京电子科技学院 | 一种基于同态加密的不经意传输方法、介质及电子设备 |
CN116915405A (zh) * | 2023-09-13 | 2023-10-20 | 北京数牍科技有限公司 | 基于隐私保护的数据处理方法、装置、设备及存储介质 |
CN117171772A (zh) * | 2023-09-13 | 2023-12-05 | 北京海泰方圆科技股份有限公司 | 一种数据交集的确定方法及装置 |
-
2022
- 2022-09-07 CN CN202211088810.8A patent/CN115694777A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150810A (zh) * | 2023-04-17 | 2023-05-23 | 北京数牍科技有限公司 | 向量元素预聚合方法、电子设备及计算机可读存储介质 |
CN116150810B (zh) * | 2023-04-17 | 2023-06-20 | 北京数牍科技有限公司 | 向量元素预聚合方法、电子设备及计算机可读存储介质 |
CN116781243A (zh) * | 2023-08-21 | 2023-09-19 | 北京电子科技学院 | 一种基于同态加密的不经意传输方法、介质及电子设备 |
CN116781243B (zh) * | 2023-08-21 | 2023-10-31 | 北京电子科技学院 | 一种基于同态加密的不经意传输方法、介质及电子设备 |
CN116915405A (zh) * | 2023-09-13 | 2023-10-20 | 北京数牍科技有限公司 | 基于隐私保护的数据处理方法、装置、设备及存储介质 |
CN116915405B (zh) * | 2023-09-13 | 2023-11-21 | 北京数牍科技有限公司 | 基于隐私保护的数据处理方法、装置、设备及存储介质 |
CN117171772A (zh) * | 2023-09-13 | 2023-12-05 | 北京海泰方圆科技股份有限公司 | 一种数据交集的确定方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Talhaoui et al. | Fast image encryption algorithm with high security level using the Bülban chaotic map | |
CN107196926B (zh) | 一种云外包隐私集合比较方法与装置 | |
Wang et al. | Cryptanalysis of a symmetric fully homomorphic encryption scheme | |
CN115694777A (zh) | 基于同态加密的隐私集合求交方法、装置、设备及介质 | |
RU2534944C2 (ru) | Способ обеспечения безопасности связи в сети, используемые для этого устройство связи, сеть и компьютерная программа | |
CN106487503B (zh) | 基于剪裁的霍普菲尔德神经网络的多元公钥密码系统和方法 | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
CN108718231A (zh) | 一种全同态加密方法、装置和计算机可读存储介质 | |
CN111404943B (zh) | 数据的处理方法、装置、电子设备及计算机可读存储介质 | |
CN109039611B (zh) | 基于sm9算法的解密密钥分割及解密方法、装置、介质 | |
WO2020084418A1 (en) | Computer implemented system and method for distributing shares of digitally signed data | |
CN112765642A (zh) | 数据处理方法、数据处理装置、电子设备及介质 | |
CN108028751B (zh) | 用于移动主动秘密共享的系统、计算机可读介质和方法 | |
CN113536379A (zh) | 一种隐私数据的查询方法、装置及电子设备 | |
CN112769542A (zh) | 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质 | |
Ajmal et al. | Cloud computing platform: Performance analysis of prominent cryptographic algorithms | |
CN112100144A (zh) | 区块链文件共享方法、装置、存储介质及电子设备 | |
Yang et al. | Secure and efficient parallel hash function construction and its application on cloud audit | |
Biçer et al. | Highly efficient and re-executable private function evaluation with linear complexity | |
CN113630250B (zh) | 基于数据加密的模型训练方法及系统 | |
US10887091B2 (en) | Multi-hop security amplification | |
CN111798236B (zh) | 交易数据加、解密方法、装置及设备 | |
Liu et al. | ESA-FedGNN: Efficient secure aggregation for federated graph neural networks | |
Muhammed et al. | Improved cloud-based N-primes model for symmetric-based fully homomorphic encryption using residue number system | |
KLEF | An efficient light weight cryptography algorithm scheme for WSN devices using chaotic map and GE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |