CN115967491B - 一种隐私求交方法、***和可读存储介质 - Google Patents
一种隐私求交方法、***和可读存储介质 Download PDFInfo
- Publication number
- CN115967491B CN115967491B CN202310236753.1A CN202310236753A CN115967491B CN 115967491 B CN115967491 B CN 115967491B CN 202310236753 A CN202310236753 A CN 202310236753A CN 115967491 B CN115967491 B CN 115967491B
- Authority
- CN
- China
- Prior art keywords
- party
- data
- hash table
- sequence
- result
- 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.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种隐私求交方法、***和可读存储介质。所述方法包括:第一方对第一数据集执行第一哈希操作得到第一哈希表;第二方对第二数据集执行第二哈希操作得到第二哈希表;第一方与第二方执行乱序秘密分享协议;第二方利用第一乱序序列对第二哈希表进行乱序操作,并将乱序后的第二哈希表中的各数据分别减去第一分享序列中对应位置的数据,得到更新后的第二哈希表;第一方与第二方执行OPRF协议;第一方对第一OPRF结果与第二OPRF结果进行比对,获取第一目标集;第一方基于第一目标集与第二方基于第一分享序列,获取第一数据集和第二数据集的交集数据的秘密分享结果。本发明实施例可以保护隐私求交的数据隐私安全。
Description
技术领域
本发明涉及多方安全计算领域,尤其涉及一种隐私求交方法、***和可读存储介质。
背景技术
两方场景的PSI(Private Set Intersection,隐私求交)是指基于隐私保护对两个参与方的数据集合求交集。PSI是密码学中多方安全计算领域近年来兴起的一个重要场景,在金融、政务、工业等领域的敏感隐私数据流通中发挥了重要作用,执行隐私计算的参与方可以通过PSI来预处理自己拥有的隐私数据,使得双方能筛选出有价值的共有数据进行后续的计算。
例如,银行和医院想要筛选出共同拥有的某些用户的金融和医疗数据进行后续的机器学习模型训练,那么双方利用各自拥有的用户身份标识数据来进行PSI运算,能够在***露各自拥有的其他用户隐私数据的前提下,筛选出共同拥有的用户身份标识数据,从而可以利用共同拥有的用户身份标识数据对应的金融和医疗数据进行后续的隐私计算。
然而,目前的PSI方法,参与方可以获得明文的交集数据,从而暴露参与方的隐私数据。
发明内容
本发明实施例提供一种隐私求交方法、***和可读存储介质,参与隐私求交的双方获得的是交集数据的秘密分享结果,可以保护参与方的数据隐私安全。
为了解决上述问题,本发明实施例公开了一种隐私求交方法,用于对第一方的第一数据集和第二方的第二数据集进行隐私求交,所述方法包括:
所述第一方对所述第一数据集执行第一哈希操作,得到第一哈希表;所述第二方对所述第二数据集执行第二哈希操作,得到第二哈希表;
所述第一方基于所述第一哈希表与所述第二方执行乱序秘密分享协议,使得所述第一方得到更新后的第一哈希表,所述第二方得到第一分享序列;所述更新后的第一哈希表与所述第一分享序列构成所述第一哈希表经第一乱序序列打乱后的乱序秘密分享结果,所述第一乱序序列为所述第二方拥有;
所述第二方利用所述第一乱序序列对所述第二哈希表进行乱序操作,并将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,得到更新后的第二哈希表;
所述第一方与所述第二方通过执行不经意伪随机函数OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,所述第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果;
所述第二方将所述第二OPRF结果发送至所述第一方,所述第一方对所述第一OPRF结果与所述第二OPRF结果进行比对,并根据比对结果获取第一目标集,所述第一目标集中包括与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据;
所述第一方基于所述第一目标集与所述第二方基于所述第一分享序列,获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
另一方面,本发明实施例公开了一种隐私求交***,用于对第一方的第一数据集和第二方的第二数据集进行隐私求交,所述***包括第一方和第二方,其中:
所述第一方,用于对所述第一数据集执行第一哈希操作,得到第一哈希表,并基于所述第一哈希表与所述第二方执行乱序秘密分享协议,使得所述第一方得到更新后的第一哈希表,所述第二方得到第一分享序列;所述更新后的第一哈希表与所述第一分享序列构成所述第一哈希表经第一乱序序列打乱后的乱序秘密分享结果,所述第一乱序序列为所述第二方拥有;
所述第二方,用于对所述第二数据集执行第二哈希操作,得到第二哈希表,利用所述第一乱序序列对所述第二哈希表进行乱序操作,并将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,得到更新后的第二哈希表;
所述第一方,还用于与所述第二方通过执行不经意伪随机函数OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,所述第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果;
所述第二方,还用于将所述第二OPRF结果发送至所述第一方;
所述第一方,还用于对所述第一OPRF结果与所述第二OPRF结果进行比对,并根据比对结果获取第一目标集,所述第一目标集中包括与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据;
所述第一方,还用于基于所述第一目标集与所述第二方基于所述第一分享序列,获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
可选地,所述第一哈希操作包括布谷鸟哈希操作,所述第二哈希操作包括简单哈希操作,所述第一哈希操作和所述第二哈希操作使用相同的哈希函数,所述第一哈希表和所述第二哈希表的长度相等。
再一方面,本发明实施例公开了一种用于隐私求交的装置,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如前述一个或多个所述的隐私求交方法的指令。
又一方面,本发明实施例公开了一种机器可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述一个或多个所述的隐私求交方法。
本发明实施例包括以下优点:
本发明实施例利用哈希技术、Shuffle-SS(乱序秘密分享协议)和OPRF(ObliviousPseudorandom Function,不经意伪随机函数)等技术,实现了一种输出交集结果是秘密分享形式的隐私求交方法,使得参与隐私求交的两个参与方(如第一方和第二方)获得双方数据集的交集数据的秘密分享结果。第一方和第二方分别得到一半的秘密分享结果,两个参与方均无法获得交集数据的具体信息,仅能够得知交集数据的数目,可以保护交集数据的隐私安全。进一步地,由于第一方和第二方获得的是交集数据的秘密分享结果,因此,第一方和第二方可以利用各自持有的交集数据的秘密分享结果,基于秘密分享协议直接进行以交集数据为输入的任意多方安全计算,例如利用交集数据的秘密分享结果进行机器学习训练等,可以提高后续多方安全计算的效率,并且不会暴露每个交集数据的明文信息。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种隐私求交方法实施例的步骤流程图;
图2是本发明一个示例中第一方与第二方第一次执行乱序秘密分享协议得到的结果示意图;
图3是本发明一个示例中第一OPRF结果和第二OPRF结果的示意图;
图4是本发明一个示例中第一方与第二方第二次执行乱序秘密分享协议得到的结果示意图;
图5是本发明的一种隐私求交***实施例的结构框图;
图6是本发明的一种用于隐私求交的装置800的框图;
图7是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
参照图1,示出了本发明的一种隐私求交方法实施例的步骤流程图,可用于对第一方的第一数据集和第二方的第二数据集进行隐私求交,所述方法可以包括如下步骤:
步骤101、所述第一方对所述第一数据集执行第一哈希操作,得到第一哈希表;所述第二方对所述第二数据集执行第二哈希操作,得到第二哈希表;
步骤102、所述第一方基于所述第一哈希表与所述第二方执行乱序秘密分享协议,使得所述第一方得到更新后的第一哈希表,所述第二方得到第一分享序列;所述更新后的第一哈希表与所述第一分享序列构成所述第一哈希表经第一乱序序列打乱后的乱序秘密分享结果,所述第一乱序序列为所述第二方拥有;
步骤103、所述第二方利用所述第一乱序序列对所述第二哈希表进行乱序操作,并将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,得到更新后的第二哈希表;
步骤104、所述第一方与所述第二方通过执行不经意伪随机函数OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,所述第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果;
步骤105、所述第二方将所述第二OPRF结果发送至所述第一方,所述第一方对所述第一OPRF结果与所述第二OPRF结果进行比对,并根据比对结果获取第一目标集,所述第一目标集中包括与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据;
步骤106、所述第一方基于所述第一目标集与所述第二方基于所述第一分享序列,获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
本发明实施例提供的隐私求交方法,可应用于在多方安全计算(SecureMulti-partyComputation,MPC)中对两方的数据集进行隐私求交的场景。多方安全计算是一种密码学技术,参与计算的多方可以通过执行一个多方安全计算算法,基于各自持有的输入数据来共同进行安全计算,得到计算结果,而不向其它各方泄露自身持有的输入数据。
在本发明实施例中,所述第一方和所述第二方为隐私求交的参与方,所述第一方和所述第二方可以为多方安全计算的数据提供方,所述第一方和所述第二方也可以为多方安全计算的参与方。在具体实施中,第一方和第二方可以为对等的两方,第一方和第二方的角色可以互换。在本发明实施例中,也将第一方称为客户(client)端,将第二方称为服务(server)端。
本发明实施例使用基于秘密分享的多方安全计算框架,使得两个参与方(如第一方和第二方)执行PSI协议得到的交集结果是秘密分享形式。秘密分享是一种将秘密分割存储的密码技术,秘密分享的思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与方管理,单个参与方无法恢复秘密信息,只有若干个参与方一同协作才能恢复秘密信息。也即,第一方和第二方最终得到的是交集数据的秘密分享结果,第一方或者第二方单方均无法获得交集数据的明文信息,仅能够得知交集数据的数目。此外,由于第一方和第二方获得的是交集数据的秘密分享结果,因此,第一方和第二方可以利用各自持有的交集数据的秘密分享结果,基于秘密分享协议执行以交集数据为输入的任意多方安全计算,并且不会暴露每个交集数据的明文信息。
需要说明的是,本发明实施例中的秘密分享指加法秘密分享,秘密分享结果指加法秘密分享结果。例如,假设对于数据x,第一方得到r1,第二方得到r2,r1+r2=x,则称第一方持有的r1和第二方持有的r2构成数据x的加法秘密分享结果。只有同时获得r1和r2才能够恢复得到x。
本发明实施例提出的隐私求交方法,构造了一个输出交集结果是秘密分享形式的隐私求交协议,本发明实施例中称为RS-PSI(Result-Shared PSI,结果秘密分享的隐私求交)协议。本发明实施例利用哈希技术、Shuffle-SS和OPRF等技术,实现RS-PSI,使得参与隐私求交的两个参与方获得双方数据集的交集数据的秘密分享结果。
具体地,首先,第一方对其拥有的第一数据集执行第一哈希操作,得到第一哈希表;第二方对其拥有的第二数据集执行第二哈希操作,得到第二哈希表。
在本发明的一种可选实施例中,所述第一哈希操作可以包括布谷鸟哈希(cuckoohash)操作,所述第二哈希操作可以包括简单哈希(simple hash)操作,所述第一哈希操作和所述第二哈希操作使用相同的哈希函数,所述第一哈希表和所述第二哈希表的长度相等。
本发明实施例对布谷鸟哈希的函数数目不做限制,可选地,布谷鸟哈希的函数数目可以选取3个,表示执行布谷鸟哈希操作时对每条数据最多有3个哈希位置可选取。在本发明实施例中,所述第一哈希操作和所述第二哈希操作使用相同的哈希函数,例如,所述第一方执行布谷鸟哈希操作与所述第二方执行简单哈希操作共同使用3个相同的哈希函数,因此所述第一哈希表和所述第二哈希表的长度相等。所述第一方的第一数据集中的每条数据会被映射到第一哈希表中的一个哈希位置,每条数据只可能存放在用3个哈希函数计算出的3个哈希位置中的某一个,且第一哈希表中的每个哈希位置最多放置1条数据。所述第二方的第二哈希表不需要指定每个哈希位置上的最大容量,也即所述第二方对第二数据集中每条数据采用与所述第一方相同的3个哈希函数分别计算一次,将数据放置在得到的3个哈希位置。也即,所述第二方的第二数据集中的每条数据会被映射到第二哈希表中的3个位置,依次叠放即可。需要说明的是,本发明实施例中以3个哈希函数为例,本发明实施例对哈希函数的个数不做限制。
一个示例中,假设所述第一方拥有的第一数据集包括如下数据:x1、x2、x3、x4、x5;所述第二方拥有的第二数据集包括如下数据:x2、x3、x4、x5、x6。参照表1,示出了第一哈希表的一个示例,以及参照表2,示出了第二哈希表的一个示例。
表1
表2
在具体实施中,第一哈希表和第二哈希表的长度可以根据第一方的第一数据集的数据量确定。第一哈希表的长度应可以放下第一数据集的所有数据。进一步地,第一哈希表和第二哈希表的长度可以选取为第一数据集的数据量的1.3倍或1.4倍。在该示例中,第一哈希表和第二哈希表的长度选取为8。
如表1所示,第一方拥有的第一数据集包括如下数据:x1、x2、x3、x4、x5。第一哈希表的长度为8,在第一方对第一数据集执行布谷鸟哈希操作之后,数据x1存放在第一哈希表中第4的位置,数据x2存放在第一哈希表中第2的位置,数据x3存放在第一哈希表中第6的位置,数据x4存放在第一哈希表中第3的位置,数据x5存放在第一哈希表中第8的位置。
进一步地,所述方法还可以包括:所述第一哈希表的长度大于所述第一数据集的长度,则第一方使用随机数对所述第一哈希表中的空闲位置进行填充。如表1所示,第一哈希表中的空闲位置1、5、7分别填充了随机数random。
如表2所示,第二方拥有的第二数据集包括如下数据:x2、x3、x4、x5、x6。第二哈希表的长度为8,在第二方对第二数据集执行简单哈希操作之后,数据x2存放在第二哈希表中第2、3和7的位置,数据x3存放在第二哈希表中第4、6和8的位置,数据x4存放在第二哈希表中第1、3和5的位置,数据x5存放在第二哈希表中第1、6和8的位置,数据x6存放在第二哈希表中第2、3和5的位置。需要说明的是,表2用三列表示仅为了易于展示。
接下来,第一方基于所述第一哈希表与第二方执行乱序秘密分享协议,使得第一方得到更新后的第一哈希表,第二方得到第一分享序列。所述更新后的第一哈希表与所述第一分享序列构成所述第一哈希表经第一乱序序列打乱后的乱序秘密分享结果,且所述第一乱序序列为第二方拥有。
乱序秘密分享是指:A拥有m条数据的序列(x1,x2,…,xm),A和B执行乱序秘密分享协议,最终B获得一个1~m的乱序序列π,且获得随机数序列(r1,r2,…,rm),A获得随机数序列(xπ(1)-r1, xπ(2)-r2,…, xπ(m)-rm)。也就是说,A和B分别拥有数据序列(xπ(1),xπ(2),…,xπ(m))的加法秘密分享结果,即拥有数据序列(x1,x2,…,xm)经过π乱序后的数据序列的加法秘密分享结果。其安全性要求是,A无法得知乱序π和随机数序列(r1,r2,…,rm)的信息,B无法得知A的数据序列(x1,x2,…,xm)的信息。
本发明实施例对乱序秘密分享协议的实现方式不做限制。在本发明的一种可选实施例中,所述乱序秘密分享协议可以基于加法同态加密算法实现,或者,所述乱序秘密分享协议可以基于不经意传输协议实现。
在本发明的一种可选实施例中,所述第一方基于所述第一哈希表与所述第二方执行乱序秘密分享协议,可以包括:
步骤S11、所述第一方生成同态加密的私钥和公钥,利用所述公钥加密所述第一哈希表,并将加密后的第一哈希表和所述公钥发送至所述第二方;
步骤S12、所述第二方生成第一乱序序列和本地随机数序列,利用所述第一乱序序列对所述本地随机数序列进行乱序操作,得到第一分享序列;
步骤S13、所述第二方利用所述公钥将所述加密后的第一哈希表中的各数据与所述本地随机数序列中对应位置的数据进行同态运算,得到中间序列;
步骤S14、所述第二方利用所述第一乱序序列对所述中间序列进行乱序操作,得到目标乱序结果;
步骤S15、所述第二方将所述目标乱序结果发送至所述第一方;
步骤S16、所述第一方利用所述公钥和所述私钥对所述目标乱序结果进行解密,得到更新后的第一哈希表。
本发明实施例可以基于加法同态加密算法实现乱序秘密分享协议。
在上述示例中,将第一哈希表记为[random,x2,x4,x1,random,x3,random,x5]。第一方生成同态加密的私钥和公钥,利用公钥加密第一哈希表中的数据,并将加密后的第一哈希表和所述公钥发送至第二方。
第二方生成第一乱序序列和本地随机数序列,第一乱序序列和本地随机数序列的长度与第一哈希表以及第二哈希表的长度相等。假设第一乱序序列为[2,5,7,3,8,4,1,6],本地随机数序列为[r1,r2,r3,r4,r5,r6,r7,r8]。第二方利用所述第一乱序序列对所述本地随机数序列进行乱序操作,得到第一分享序列,则第一分享序列为[r2,r5,r7,r3,r8,r4,r1,r6]。
第二方利用接收到的公钥将加密后的第一哈希表中的各数据与所述本地随机数序列中对应位置的数据进行同态运算,得到中间序列。所述同态运算可以包括同态加法或者同态减法,以同态减法为例,所述第二方利用接收到的公钥计算E(random-r1)、E(x2-r2)、…、E(x5-r8),得到中间序列,其中E表示同态运算。
第二方利用所述第一乱序序列对所述中间序列进行乱序操作,得到目标乱序结果,发送至第一方。所述目标乱序结果如:[E(x2-r2),E(random-r5),E(random-r7),E(x4-r3),E(x5-r8),E(x1-r4),E(random-r1),E(x3-r6)]。
第一方利用所述公钥和所述私钥对所述目标乱序结果进行解密,得到更新后的第一哈希表如表3所示。
表3
如表3所示,更新后的第一哈希表包括如下数据:[x2-r2,random-r5,random-r7,x4-r3,x5-r8,x1-r4,random-r1,x3-r6]。由于x2-r2+r2=x2,random-r5+r5=random,以此类推。因此,第一分享序列[r2,r5,r7,r3,r8,r4,r1,r6]与更新后的第一哈希表[x2-r2,random-r5,random-r7,x4-r3,x5-r8,x1-r4,random-r1,x3-r6]构成第一哈希表[random,x2,x4,x1,random,x3,random,x5]经第一乱序序列[2,5,7,3,8,4,1,6]打乱后的乱序秘密分享结果。由于第一哈希表被第二方的本地随机数混淆了,因此第一方不知道第一乱序序列,也不知道解密后得到的更新后的第一哈希表中数据的意义,第一方看到的只是一堆随机数。由于第二方无法执行同态解密操作,因此第二方也无法得知第一哈希表中数据的信息。由此,第一方和第二方不经意间拥有了第一哈希表的乱序秘密分享结果。
在本发明的一种可选实施例中,所述第一方基于所述第一哈希表与所述第二方执行乱序秘密分享协议,可以包括:
步骤S21、所述第二方生成长度为m的第一随机数序列,m为所述第一哈希表的长度;
步骤S22、所述第一方和所述第二方执行n×2n-1个基于不经意传输协议的预置算子,使得所述第一方获得更新后的第一哈希表,所述第二方获得长度为m的第二随机数序列,并且所述更新后的第一哈希表与所述第二随机数序列中第一位置的数据之和等于所述第一哈希表与所述第一随机数序列中第二位置的数据之和,所述第一位置为所述第二位置经所述第一乱序序列打乱后的位置;
步骤S23、所述第二方根据所述第一随机数序列和所述第二随机数序列,计算得到第一分享序列,使得所述第一分享序列与所述更新后的第一哈希表构成所述第一哈希表的乱序秘密分享结果。
进一步地,一个预置算子的定义可以如下:假设第一方拥有数据x1和x2,第二方拥有随机数r1和r2以及选择比特b,b=0或b=1;则双方执行预置算子,使得第一方获得随机数x1'和x2',第二方获得随机数r1'和r2';若b=0,则x1'+r1'=x1+r1,x2'+r2'=x2+r2;若b=1,则x1'+r1'=x2+r2,x2'+r2'=x1+r1。
需要说明的是,上述预置算子的定义中的符号x1、x2、r1、r2、b、x1'、x2'、r1'、r2'是为了描述预置算子使用的一般性符号,不特指具体的数据。
本发明实施例中将预置算子称为SS-select算子,第一方和第二方执行单个SS-select算子后,双方各自拥有的两条数据都变成了两条新的随机数。例如,第一方拥有的x1和x2变成了x1'和x2',第二方拥有的r1和r2变成了r1'和r2'。双方获得的新的随机数正好是原来对应数据之和的加法秘密分享结果,且根据选择比特b进行了换位。例如,b=0时,新的随机数x1'和r1'是x1+r1的加法秘密分享结果,新的随机数x2'和r2'是x2+r2的加法秘密分享结果;b=1时,新的随机数x1'和r1'是x2+r2的加法秘密分享结果,新的随机数x2'和r2'是x1+r1的加法秘密分享结果。
本发明实施例的SS-select算子可以看作是一个黑盒,第一方输入数据x1和x2,第二方输入随机数r1和r2以及选择比特b,双方即可得到该黑盒输出给各自的结果,第一方获得随机数x1'和x2',第二方获得随机数r1'和r2';并且满足若b=0,则x1'+r1'=x1+r1,x2'+r2'=x2+r2;若b=1,则x1'+r1'=x2+r2,x2'+r2'=x1+r1。n×2n-1个SS-select算子的选择比特组合起来可以形成1个数据量为2n的Shuffle-SS协议的乱序序列,且该乱序序列仅第二方能够获知。
在本发明实施例中,一个SS-select算子可以通过一次OT(Oblivious Transfer,不经意传输)实现。在本发明的一种可选实施例中,所述第一方拥有数据x1和x2,所述第二方拥有随机数r1和r2以及选择比特b,b=0或b=1;所述第一方和所述第二方双方执行一个预置算子的步骤,可以包括:
步骤S31、所述第一方生成随机数t,并获取不经意传输的待查询消息包括:t和t+(x2-x1);所述第二方将所述选择比特b作为不经意传输的查询比特;
步骤S32、所述第一方与所述第二方执行以所述第一方为发送方、所述第二方为接收方的2选1不经意传输协议,所述第二方得到查询结果(t+b×(x2-x1));
步骤S33、所述第一方构造得到(x1-t)和(x2+t);
步骤S34、所述第二方构造得到((t+b×(x2-x1))+b×(r2-r1)+r1)和(-(t+b×(x2-x1))-b×(r2-r1)+r2)。
在本发明实施例中,第一方作为不经意传输的发送方,生成随机数t,并将t和t+(x2-x1)作为不经意传输的待查询消息。第二方作为不经意传输的接收方,将SS-select算子的选择比特b作为不经意传输的查询比特,第一方与第二方执行以第一方为发送方、第二方为接收方的2选1不经意传输协议,第二方得到OT查询结果(t+b×(x2-x1))。由于随机数t是第一方随机生成的,故x1和x2的信息被完全掩盖了,因此,第二方无法获取x1和x2的有效信息。此外,第一方无法得到选择比特b的信息,因此,n×2n-1个SS-select算子的选择比特组合起来形成的乱序序列,第一方对此也是一无所知。第一方可以构造新的随机数为(x1-t)和(x2+t),第二方利用OT查询结果可以构造新的随机数为((t+b×(x2-x1))+b×(r2-r1)+r1)和(-(t+b×(x2-x1))-b×(r2-r1)+r2)。那么可以验证,第一方和第二方构造的新的随机数(都是其本地拥有的、生成的数据以及OT查询得到的数据)共同形成(x1+r1)和(x2+r2)经过选择比特b翻转换位后的加法秘密分享结果,符合本发明实施例中SS-select算子的定义。
在具体实施中,乱序秘密分享协议可以看作是一个黑盒,第一方将第一哈希表中的数据输入该黑盒,第二方生成第一乱序序列和随机数序列(如本地随机数序列或者第一随机数序列),将第一乱序序列和随机数序列输入该黑盒,双方分别得到乱序秘密分享结果,双方的乱序秘密分享结果相加的结果即为第一哈希表中的数据经第一乱序序列打乱后的数据,以及一些填充的随机数。
参照图2,示出了本发明一个示例中第一方与第二方第一次执行乱序秘密分享协议得到的结果示意图。如图2所示,第一方输入乱序秘密分享协议的黑盒的数据包括第一哈希表中的数据,以表1所示的第一哈希表为例,第一方输入该黑盒的数据如下:[random,x2,x4,x1,random,x3,random,x5]。第二方生成第一随机数序列为[r1,r2,r3,r4,r5,r6,r7,r8],以及生成第一乱序序列为[2,5,7,3,8,4,1,6]。第二方输入该黑盒的数据包括[r1,r2,r3,r4,r5,r6,r7,r8]和[2,5,7,3,8,4,1,6]。双方执行乱序秘密分享协议后,第一方获得更新后的第一哈希表包括如下数据:[x2-r2,random-r5,random-r7,x4-r3,x5-r8,x1-r4,random-r1,x3-r6]。第二方获得第一分享序列如下:[r2,r5,r7,r3,r8,r4,r1,r6]。
接下来,第二方利用第一乱序序列对其第二哈希表进行乱序操作,并将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,得到更新后的第二哈希表。
在本发明的一种可选实施例中,所述将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,可以包括:在所述乱序后的第二哈希表中的某个位置存在两条以上数据时,将所述两条以上数据分别减去所述第一分享序列中对应位置的数据。
需要说明的是,在本发明实施例中,在哈希表中的某个位置存在两条以上数据时,对该位置的数据进行处理,指的是分别对该位置的每个数据进行处理。
例如,在上述示例中,第二方得到第一乱序序列为[2,5,7,3,8,4,1,6]以及第一分享序列为[r2,r5,r7,r3,r8,r4,r1,r6]。第二方利用第一乱序序列[2,5,7,3,8,4,1,6]对表2所示的第二哈希表进行乱序操作,可以得到乱序后的第二哈希表如表4所示。
表4
接下来,将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据。如表4所示,在该乱序后的第二哈希表中的第1个位置存在如下两条数据:x2和x6,因此,将这两条数据分别减去第一分享序列中对应位置的数据r2;又如,在表4中,在该乱序后的第二哈希表中的第2个位置存在如下两条数据:x4和x6,因此,将这两条数据分别减去第一分享序列中对应位置的数据r5;以此类推,可以得到更新后的第二哈希表如表5所示。
表5
此时,第一方得到更新后的第一哈希表(如表3所示),第二方得到更新后的第二哈希表(如表5所示)。
接下来,第一方与第二方通过执行不经意伪随机函数OPRF协议,使得第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果。
OPRF属于不经意传输的扩展协议。OPRF协议的功能描述如下:发送方和接收方执行两方OPRF协议,发送方无输入,接收方输入数据x_i,发送方输出密钥k,接收方输出OPRF结果F(k,x_i)。
在本发明的一种可选实施例中,所述第一方与所述第二方通过执行不经意伪随机函数OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,所述第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果,可以包括:
步骤S41、所述第一方作为接收方,将所述更新后的第一哈希表中的各数据及其位置信息作为OPRF协议的输入数据,所述第二方作为发送方,双方执行批量的OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据在其位置信息下对应的第一OPRF结果,所述第二方得到每个位置信息对应的OPRF密钥;
步骤S42、所述第二方利用所述每个位置信息对应的OPRF密钥以及所述更新后的第二哈希表中的各数据及其位置信息,计算得到所述更新后的第二哈希表中的各数据在其位置信息下对应的第二OPRF结果。
在本发明实施例中,第一方为OPRF协议的接收方,第二方为OPRF协议的发送方,双方执行批量的OPRF协议。具体地,第一方将更新后的第一哈希表中的各数据及其位置信息作为OPRF协议的输入数据,与第二方执行批量的OPRF协议。
以表3所示的更新后的第一哈希表为例,表3中第1个位置的数据为x2-r2,该数据的位置信息为1,则将该数据x2-r2和该数据的位置信息1作为OPRF协议的输入数据,与第二方执行OPRF协议,第一方得到该数据x2-r2在位置信息1下对应的第一OPRF结果,如记为OPRF(k1,(x2-r2,1));其中,k1表示位置信息1对应的OPRF密钥,(x2-r2,1)表示数据x2-r2对应的位置信息为1;第二方得到位置信息1对应的OPRF密钥,如k1。表3中第2个位置的数据为random-r5,该数据的位置信息为2,则将该数据random-r5和该数据的位置信息2作为OPRF协议的输入数据,与第二方执行OPRF协议,第一方得到该数据random-r5在位置信息2下对应的第一OPRF结果,如记为OPRF(k2,(random-r5,2));其中,k2表示位置信息2对应的OPRF密钥,(random-r5,2)表示数据random-r5对应的位置信息为2;第二方得到位置信息2对应的OPRF密钥,如k2。以此类推。
双方执行批量的OPRF协议之后,第二方利用所述每个位置信息对应的OPRF密钥以及所述更新后的第二哈希表中的各数据及其位置信息,计算得到所述更新后的第二哈希表中的各数据在其位置信息下对应的第二OPRF结果。例如,在上述示例中,第二方可以得到8个位置信息对应的OPRF密钥,如记为k1~k8。由于第二方拥有OPRF密钥,因此其可以计算更新后的第二哈希表中的各数据在其位置信息下对应的第二OPRF结果。以表5所示的更新后的第二哈希表为例,表5中第1个位置的数据包括x2-r2和x6-r2,第二方可以计算得到OPRF(k1,(x2-r2,1))和OPRF(k1,(x6-r2,1));其中,k1表示位置信息1对应的OPRF密钥,(x2-r2,1)表示数据x2-r2对应的位置信息为1,(x6-r2,1)表示数据x6-r2对应的位置信息为1。以此类推,第二方可以计算得到第二哈希表中的各数据在其位置信息下对应的第二OPRF结果。
参照图3,示出了本发明一个示例中第一OPRF结果和第二OPRF结果的示意图。需要说明的是,图3中未示出OPRF密钥。
接下来,第二方将其第二OPRF结果发送至所述第一方,第一方对其拥有的第一OPRF结果与第二方的第二OPRF结果进行比对,并根据比对结果获取第一目标集,所述第一目标集中包括与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据。
由于第一方作为OPRF协议的接收方,其没有计算OPRF的密钥,因此,即使第一方得到第二方发送的第二OPRF结果,也无法从第二OPRF结果中获取任何有效信息,可以保证数据隐私安全。
第一方可以基于隐私计算,对自身的第一OPRF结果与第二方的第二OPRF结果进行相等性比对,并根据比对结果在所述更新后的第一哈希表中获取第一目标集。所述第一目标集中包括与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据,这些数据即为所述第一数据集和所述第二数据集的交集数据的一部分秘密分享结果。因此,本发明实施例将所述第一目标集中与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据,称为交集相关数据。
如图3所示,第一方有4个第一OPRF结果存在相等的第二OPRF结果,分别为:OPRF(k1,(x2-r2,1))、OPRF(k4,(x4-r3,4))、OPRF(k5,(x5-r8,5))、OPRF(k8,(x3-r6,8)),分别对应的位置信息为:1、4、5、8,则可以从表3所示的更新后的第一哈希表中获取位置信息为1、4、5、8的数据,包括:x2-r2、x4-r3、x5-r8、x3-r6,由此得到第一目标集。参照表6,示出了本发明一个示例中的第一目标集。第一目标集中包括第一数据集和第二数据集的交集数据的一部分秘密分享结果(也称为交集相关数据)以及一些随机数,表6中空白位置为随机数,表6中未示出这些随机数。第一目标集的长度与第一哈希表以及第二哈希表的长度相等,第一目标集中交集相关数据在第一目标集中的位置信息与更新后的第一哈希表中的位置信息保持一致。
表6
此时,第一方获得的第一目标集中的x2-r2、x4-r3、x5-r8和x3-r6与第二方获得的第一分享序列中的r2、r3、r8和r6共同构成交集数据的秘密分享结果。表6所示的第一目标集中的x2-r2、x4-r3、x5-r8和x3-r6即为交集相关数据。然而,此时第二方对交集数据的信息一无所知,第二方还未获得交集数据的另一部分秘密分享结果。
因此,本发明实施例还需要使得第二方可以获取交集数据的秘密分享结果。具体地,第一方基于所述第一目标集与第二方基于所述第一分享序列,使得双方可以获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
为了使得第二方能够获得交集数据的秘密分享结果的同时,不会造成数据泄密,本发明实施例通过一个乱序操作使得第二方获取交集数据的秘密分享结果。
在本发明的一种可选实施例中,所述第一方基于所述第一目标集与所述第二方基于所述第一分享序列,获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果,可以包括:
步骤S51、所述第二方基于所述第一分享序列与所述第一方执行乱序秘密分享协议,使得所述第二方得到更新后的第一分享序列,所述第一方得到第二分享序列;所述更新后的第一分享序列与所述第二分享序列构成所述第一分享序列经第二乱序序列打乱后的乱序秘密分享结果,所述第二乱序序列为所述第一方拥有;
步骤S52、所述第一方利用所述第二乱序序列对所述第一目标集进行乱序操作,并将乱序后的第一目标集中的各数据分别加上所述第二分享序列中对应位置的数据,得到更新后的第一目标集;
步骤S53、所述第一方将所述更新后的第一目标集中各交集相关数据的位置信息发送至所述第二方,所述第二方从所述更新后的第一分享序列中提取所述位置信息对应的数据,得到第二目标集;所述更新后的第一目标集和所述第二目标集构成所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
第一方和第二方再次执行乱序秘密分享协议,第二方将其拥有的第一分享序列作为输入数据,在双方执行乱序秘密分享协议后,第二方得到更新后的第一分享序列,第一方得到第二分享序列,所述更新后的第一分享序列与所述第二分享序列构成所述第一分享序列经第二乱序序列打乱后的乱序秘密分享结果,所述第二乱序序列为所述第一方拥有。
参照图4,示出了本发明一个示例中第一方与第二方第二次执行乱序秘密分享协议得到的结果示意图。
如图4所示,在第二次执行乱序秘密分享协议时,第二方输入乱序秘密分享协议的黑盒的数据包括第一分享序列中的数据,如[r2,r5,r7,r3,r8,r4,r1,r6]。第一方生成本地随机数序列为[t1,t2,t3,t4,t5,t6,t7,t8],以及生成第二乱序序列为[4,3,7,8,5,1,6,2]。第一方输入该黑盒的数据包括[t1,t2,t3,t4,t5,t6,t7,t8]和[4,3,7,8,5,1,6,2]。双方执行乱序秘密分享协议后,第二方获得更新后的第一分享序列如下:[r3-t4,r7-t3,r1-t7,r6-t8,r8-t5,r2-t1,r4-t6,r5-t2]。第一方获得第二分享序列如下:[t4,t3,t7,t8,t5,t1,t6,t2]。
第一方利用所述第二乱序序列对所述第一目标集进行乱序操作,并将乱序后的第一目标集中的各数据分别加上所述第二分享序列中对应位置的数据,得到更新后的第一目标集。例如,在上述示例中,第一方利用所述第二乱序序列[4,3,7,8,5,1,6,2]对所述第一目标集进行乱序操作后,得到乱序后的第一目标集如表7所示。
表7
将乱序后的第一目标集中的各数据分别加上所述第二分享序列中对应位置的数据。具体地,将第一目标集中第一个位置的数据x4-r3与第二分享序列中第一个位置的数据t4相加,将第一目标集中第2个位置的数据(某个随机数)与第二分享序列中第2个位置的数据t3相加,将第一目标集中第3个位置的数据(某个随机数)与第二分享序列中第3个位置的数据t7相加,将第一目标集中第4个位置的数据x3-r6与第二分享序列中第4个位置的数据t8相加,以此类推,将第一目标集中第8个位置的数据(某个随机数)与第二分享序列中第8个位置的数据t2相加,得到更新后的第一目标集如表8所示。更新后的第一目标集中包含交集相关数据和一些随机数。可以理解的是,表8中的交集相关数据相对于表6中的交集相关数据已经发生了变化。表8中的空白位置为随机数,表8中未示出这些随机数。由于第一方拥有第二乱序序列,因此第一方可以得知更新后的第一目标集中哪些位置是交集相关数据,需要说明的是,更新后的第一目标集中的所有数据在第一方看来都是无意义的随机数,可以保护交集数据的隐私安全。
表8
最后,第一方将所述更新后的第一目标集中各交集相关数据的位置信息发送至第二方,第二方根据接收到的位置信息在所述更新后的第一分享序列中获取相应位置的数据,得到第二目标集;所述更新后的第一目标集和所述第二目标集构成所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
如表8所示,第一方获得的更新后的第一目标集中包括如下交集相关数据:x4-r3+t4、x3-r6+t8、x5-r8+t5、x2-r2+t1,由于第一方拥有将第一目标集打乱为更新后的第一目标集使用的第二乱序序列,因此,第一方可以获取更新后的第一目标集中这4个交集相关数据对应的位置信息,如分别为1、4、5、6。第一方将所述更新后的第一目标集中各交集相关数据的位置信息发送至第二方,第二方根据接收到的位置信息可以在所述更新后的第一分享序列中获取相应位置的数据,得到第二目标集。在上述示例中,更新后的第一分享序列为[r3-t4,r7-t3,r1-t7,r6-t8,r8-t5,r2-t1,r4-t6,r5-t2],第二方可以从中获取第1、4、5、6位置的数据包括r3-t4、r6-t8、r8-t5、r2-t1,由此得到第二目标集。此时,更新后的第一目标集中包括如下数据:x4-r3+t4、x3-r6+t8、x5-r8+t5、x2-r2+t1;第二目标集中包括如下数据:r3-t4、r6-t8、r8-t5、r2-t1。由于x4-r3+t4+r3-t4=x4,x3-r6+t8+r6-t8=x3,x5-r8+t5+r8-t5=x5,x2-r2+t1+r2-t1=x2,因此,更新后的第一目标集和第二目标集可以构成所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
在上述过程中,第一方将更新后的第一目标集中各交集相关数据的位置信息告知第二方,由于第二方无法获得第二乱序序列的信息,因此第二方无法通过第一方告知的位置信息获取原始数据的任何相关信息。此外,对于第一方来说,其获取的更新后的第一目标集中的各数据是没有意义的随机数;对于第二方来说,其获取的第二目标集中的各数据是没有意义的随机数;第一方和第二方只能获取双方交集数据的秘密分享结果以及交集数据的数目,而无法得知交集数据的其它有效信息,可以保证数据的隐私安全。
综上,本发明实施例利用哈希技术、Shuffle-SS(乱序秘密分享协议)和OPRF等技术,实现了一个输出交集结果是秘密分享形式的隐私求交方法,使得参与隐私求交的两个参与方(如第一方和第二方)获得双方数据集的交集数据的秘密分享结果。第一方和第二方分别得到一半的秘密分享结果,两个参与方均无法获得交集数据的具体信息,仅能够得知交集数据的数目,可以保护交集数据的隐私安全。进一步地,由于第一方和第二方获得的是交集数据的秘密分享结果,因此,第一方和第二方可以利用各自持有的交集数据的秘密分享结果,基于秘密分享协议直接进行以交集数据为输入的任意多方安全计算,例如利用交集数据的秘密分享结果进行机器学习训练等,可以提高后续多方安全计算的效率,并且不会暴露每个交集数据的明文信息。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明的一种隐私求交***实施例的结构框图,用于对第一方的第一数据集和第二方的第二数据集进行隐私求交,所述***包括第一方501和第二方502,其中:
所述第一方501,用于对所述第一数据集执行第一哈希操作,得到第一哈希表,并基于所述第一哈希表与所述第二方执行乱序秘密分享协议,使得所述第一方得到更新后的第一哈希表,所述第二方得到第一分享序列;所述更新后的第一哈希表与所述第一分享序列构成所述第一哈希表经第一乱序序列打乱后的乱序秘密分享结果,所述第一乱序序列为所述第二方拥有;
所述第二方502,用于对所述第二数据集执行第二哈希操作,得到第二哈希表,利用所述第一乱序序列对所述第二哈希表进行乱序操作,并将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,得到更新后的第二哈希表;
所述第一方501,还用于与所述第二方通过执行不经意伪随机函数OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,所述第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果;
所述第二方502,还用于将所述第二OPRF结果发送至所述第一方;
所述第一方501,还用于对所述第一OPRF结果与所述第二OPRF结果进行比对,并根据比对结果获取第一目标集,所述第一目标集中包括与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据;
所述第一方501,还用于基于所述第一目标集与所述第二方502基于所述第一分享序列,获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
可选地,所述第一哈希操作包括布谷鸟哈希操作,所述第二哈希操作包括简单哈希操作,所述第一哈希操作和所述第二哈希操作使用相同的哈希函数,所述第一哈希表和所述第二哈希表的长度相等。
可选地,所述第二方,具体用于在所述乱序后的第二哈希表中的某个位置存在两条以上数据时,将所述两条以上数据分别减去所述第一分享序列中对应位置的数据。
可选地,所述第一方,具体用于作为接收方,将所述更新后的第一哈希表中的各数据及其位置信息作为OPRF协议的输入数据,与所述第二方执行批量的OPRF协议;所述第二方,具体用于作为发送方与所述第一方执行批量的OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据在其位置信息下对应的第一OPRF结果,所述第二方得到每个位置信息对应的OPRF密钥;
所述第二方,还用于利用所述每个位置信息对应的OPRF密钥以及所述更新后的第二哈希表中的各数据及其位置信息,计算得到所述更新后的第二哈希表中的各数据在其位置信息下对应的第二OPRF结果。
可选地,所述第一目标集与所述第一哈希表以及所述第二哈希表的长度相等,所述第二方,具体用于基于所述第一分享序列与所述第一方执行乱序秘密分享协议,使得所述第二方得到更新后的第一分享序列,所述第一方得到第二分享序列;所述更新后的第一分享序列与所述第二分享序列构成所述第一分享序列经第二乱序序列打乱后的乱序秘密分享结果,所述第二乱序序列为所述第一方拥有;
所述第一方,具体用于利用所述第二乱序序列对所述第一目标集进行乱序操作,并将乱序后的第一目标集中的各数据分别加上所述第二分享序列中对应位置的数据,得到更新后的第一目标集;将所述更新后的第一目标集中各交集相关数据的位置信息发送至所述第二方;
所述第二方,还用于从所述更新后的第一分享序列中提取所述位置信息对应的数据,得到第二目标集;所述更新后的第一目标集和所述第二目标集构成所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
可选地,所述乱序秘密分享协议基于加法同态加密算法实现,或者,所述乱序秘密分享协议基于不经意传输协议实现。
可选地,所述第一方,具体用于生成同态加密的私钥和公钥,利用所述公钥加密所述第一哈希表,并将加密后的第一哈希表和所述公钥发送至所述第二方;
所述第二方,具体用于生成第一乱序序列和本地随机数序列,利用所述第一乱序序列对所述本地随机数序列进行乱序操作,得到第一分享序列;
所述第二方,还用于利用所述公钥将所述加密后的第一哈希表中的各数据与所述本地随机数序列中对应位置的数据进行同态运算,得到中间序列;利用所述第一乱序序列对所述中间序列进行乱序操作,得到目标乱序结果;将所述目标乱序结果发送至所述第一方;
所述第一方,还用于利用所述公钥和所述私钥对所述目标乱序结果进行解密,得到更新后的第一哈希表。
可选地,所述第二方,具体用于生成长度为m的第一随机数序列,m为所述第一哈希表的长度;
所述第一方和所述第二方,具体用于执行n×2n-1个基于不经意传输协议的预置算子,使得所述第一方获得更新后的第一哈希表,所述第二方获得长度为m的第二随机数序列,并且所述更新后的第一哈希表与所述第二随机数序列中第一位置的数据之和等于所述第一哈希表与所述第一随机数序列中第二位置的数据之和,所述第一位置为所述第二位置经所述第一乱序序列打乱后的位置;
所述第二方,还用于根据所述第一随机数序列和所述第二随机数序列,计算得到第一分享序列,使得所述第一分享序列与所述更新后的第一哈希表构成所述第一哈希表的乱序秘密分享结果。
本发明实施例利用哈希技术、Shuffle-SS(乱序秘密分享协议)和OPRF等技术,实现了一个输出交集结果是秘密分享形式的隐私求交***,使得参与隐私求交的两个参与方(如第一方和第二方)获得双方数据集的交集数据的秘密分享结果。第一方和第二方分别得到一半的秘密分享结果,两个参与方均无法获得交集数据的具体信息,仅能够得知交集数据的数目,可以保护交集数据的隐私安全。进一步地,由于第一方和第二方获得的是交集数据的秘密分享结果,因此,第一方和第二方可以利用各自持有的交集数据的秘密分享结果,基于秘密分享协议直接进行以交集数据为输入的任意多方安全计算,例如利用交集数据的秘密分享结果进行机器学习训练等,可以提高后续多方安全计算的效率,并且不会暴露每个交集数据的明文信息。
对于***实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的***,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于隐私求交的装置,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行上述一个或多个实施例中所述的隐私求交方法的指令。
图6是根据一示例性实施例示出的一种用于隐私求交的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/ O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理***,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/ O接口812为处理组件802和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以搜索装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图7是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作***1941,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的隐私求交方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行前文图1所对应实施例中隐私求交方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图1所对应实施例中隐私求交方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种隐私求交方法、一种隐私求交***、一种用于隐私求交的装置和一种可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种隐私求交方法,其特征在于,用于对第一方的第一数据集和第二方的第二数据集进行隐私求交,所述方法包括:
所述第一方对所述第一数据集执行第一哈希操作,得到第一哈希表;所述第二方对所述第二数据集执行第二哈希操作,得到第二哈希表;
所述第一方基于所述第一哈希表与所述第二方执行乱序秘密分享协议,使得所述第一方得到更新后的第一哈希表,所述第二方得到第一分享序列;所述更新后的第一哈希表与所述第一分享序列构成所述第一哈希表经第一乱序序列打乱后的乱序秘密分享结果,所述第一乱序序列为所述第二方拥有;
所述第二方利用所述第一乱序序列对所述第二哈希表进行乱序操作,并将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,得到更新后的第二哈希表;
所述第一方与所述第二方通过执行不经意伪随机函数OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,所述第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果;
所述第二方将所述第二OPRF结果发送至所述第一方,所述第一方对所述第一OPRF结果与所述第二OPRF结果进行比对,并根据比对结果获取第一目标集,所述第一目标集中包括与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据;
所述第一方基于所述第一目标集与所述第二方基于所述第一分享序列,获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
2.根据权利要求1所述的方法,其特征在于,所述第一哈希操作包括布谷鸟哈希操作,所述第二哈希操作包括简单哈希操作,所述第一哈希操作和所述第二哈希操作使用相同的哈希函数,所述第一哈希表和所述第二哈希表的长度相等。
3.根据权利要求1所述的方法,其特征在于,所述将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,包括:
在所述乱序后的第二哈希表中的某个位置存在两条以上数据时,将所述两条以上数据分别减去所述第一分享序列中对应位置的数据。
4.根据权利要求1所述的方法,其特征在于,所述第一方与所述第二方通过执行不经意伪随机函数OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,所述第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果,包括:
所述第一方作为接收方,将所述更新后的第一哈希表中的各数据及其位置信息作为OPRF协议的输入数据,所述第二方作为发送方,双方执行批量的OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据在其位置信息下对应的第一OPRF结果,所述第二方得到每个位置信息对应的OPRF密钥;
所述第二方利用所述每个位置信息对应的OPRF密钥以及所述更新后的第二哈希表中的各数据及其位置信息,计算得到所述更新后的第二哈希表中的各数据在其位置信息下对应的第二OPRF结果。
5.根据权利要求1所述的方法,其特征在于,所述第一目标集与所述第一哈希表以及所述第二哈希表的长度相等,所述第一方基于所述第一目标集与所述第二方基于所述第一分享序列,获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果,包括:
所述第二方基于所述第一分享序列与所述第一方执行乱序秘密分享协议,使得所述第二方得到更新后的第一分享序列,所述第一方得到第二分享序列;所述更新后的第一分享序列与所述第二分享序列构成所述第一分享序列经第二乱序序列打乱后的乱序秘密分享结果,所述第二乱序序列为所述第一方拥有;
所述第一方利用所述第二乱序序列对所述第一目标集进行乱序操作,并将乱序后的第一目标集中的各数据分别加上所述第二分享序列中对应位置的数据,得到更新后的第一目标集;
所述第一方将所述更新后的第一目标集中各交集相关数据的位置信息发送至所述第二方,所述第二方从所述更新后的第一分享序列中提取所述位置信息对应的数据,得到第二目标集;所述更新后的第一目标集和所述第二目标集构成所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
6.根据权利要求1所述的方法,其特征在于,所述乱序秘密分享协议基于加法同态加密算法实现,或者,所述乱序秘密分享协议基于不经意传输协议实现。
7.根据权利要求1所述的方法,其特征在于,所述第一方基于所述第一哈希表与所述第二方执行乱序秘密分享协议,包括:
所述第一方生成同态加密的私钥和公钥,利用所述公钥加密所述第一哈希表,并将加密后的第一哈希表和所述公钥发送至所述第二方;
所述第二方生成第一乱序序列和本地随机数序列,利用所述第一乱序序列对所述本地随机数序列进行乱序操作,得到第一分享序列;
所述第二方利用所述公钥将所述加密后的第一哈希表中的各数据与所述本地随机数序列中对应位置的数据进行同态运算,得到中间序列;
所述第二方利用所述第一乱序序列对所述中间序列进行乱序操作,得到目标乱序结果;
所述第二方将所述目标乱序结果发送至所述第一方;
所述第一方利用所述公钥和所述私钥对所述目标乱序结果进行解密,得到更新后的第一哈希表。
8.根据权利要求1所述的方法,其特征在于,所述第一方基于所述第一哈希表与所述第二方执行乱序秘密分享协议,包括:
所述第二方生成长度为m的第一随机数序列,m为所述第一哈希表的长度;
所述第一方和所述第二方执行n×2n-1个基于不经意传输协议的预置算子,使得所述第一方获得更新后的第一哈希表,所述第二方获得长度为m的第二随机数序列,并且所述更新后的第一哈希表与所述第二随机数序列中第一位置的数据之和等于所述第一哈希表与所述第一随机数序列中第二位置的数据之和,所述第一位置为所述第二位置经所述第一乱序序列打乱后的位置;其中,2n=m;
所述第二方根据所述第一随机数序列和所述第二随机数序列,计算得到第一分享序列,使得所述第一分享序列与所述更新后的第一哈希表构成所述第一哈希表的乱序秘密分享结果。
9.一种隐私求交***,其特征在于,用于对第一方的第一数据集和第二方的第二数据集进行隐私求交,所述***包括第一方和第二方,其中:
所述第一方,用于对所述第一数据集执行第一哈希操作,得到第一哈希表,并基于所述第一哈希表与所述第二方执行乱序秘密分享协议,使得所述第一方得到更新后的第一哈希表,所述第二方得到第一分享序列;所述更新后的第一哈希表与所述第一分享序列构成所述第一哈希表经第一乱序序列打乱后的乱序秘密分享结果,所述第一乱序序列为所述第二方拥有;
所述第二方,用于对所述第二数据集执行第二哈希操作,得到第二哈希表,利用所述第一乱序序列对所述第二哈希表进行乱序操作,并将乱序后的第二哈希表中的各数据分别减去所述第一分享序列中对应位置的数据,得到更新后的第二哈希表;
所述第一方,还用于与所述第二方通过执行不经意伪随机函数OPRF协议,使得所述第一方获得所述更新后的第一哈希表中的各数据对应的第一OPRF结果,所述第二方获得所述更新后的第二哈希表中的各数据对应的第二OPRF结果;
所述第二方,还用于将所述第二OPRF结果发送至所述第一方;
所述第一方,还用于对所述第一OPRF结果与所述第二OPRF结果进行比对,并根据比对结果获取第一目标集,所述第一目标集中包括与第二OPRF结果相等的第一OPRF结果在所述更新后的第一哈希表中对应位置的数据;
所述第一方,还用于基于所述第一目标集与所述第二方基于所述第一分享序列,获取所述第一数据集和所述第二数据集的交集数据的秘密分享结果。
10.一种用于隐私求交的装置,其特征在于,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如权利要求1至8中任一所述的隐私求交方法的指令。
11.一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如权利要求1至8中任一所述的隐私求交方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310236753.1A CN115967491B (zh) | 2023-03-07 | 2023-03-07 | 一种隐私求交方法、***和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310236753.1A CN115967491B (zh) | 2023-03-07 | 2023-03-07 | 一种隐私求交方法、***和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115967491A CN115967491A (zh) | 2023-04-14 |
CN115967491B true CN115967491B (zh) | 2023-05-23 |
Family
ID=85905157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310236753.1A Active CN115967491B (zh) | 2023-03-07 | 2023-03-07 | 一种隐私求交方法、***和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115967491B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116488789B (zh) * | 2023-04-23 | 2024-06-07 | 北京火山引擎科技有限公司 | 一种数据处理方法、装置、设备和介质 |
CN117171779B (zh) * | 2023-11-02 | 2024-02-27 | 闪捷信息科技有限公司 | 基于交集保护的数据处理装置 |
CN117574412B (zh) * | 2024-01-16 | 2024-04-02 | 国家计算机网络与信息安全管理中心天津分中心 | 多方隐私求交方法、装置和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115333721A (zh) * | 2022-10-13 | 2022-11-11 | 北京融数联智科技有限公司 | 一种隐私集合交集计算方法、装置和*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10904225B2 (en) * | 2018-05-07 | 2021-01-26 | Microsoft Technology Licensing, Llc | Computing a private set intersection |
CN113259106B (zh) * | 2021-06-28 | 2021-09-24 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法和*** |
CN114329527A (zh) * | 2021-12-17 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 交集数据获取方法、设备和*** |
CN115186145B (zh) * | 2022-09-09 | 2022-11-18 | 华控清交信息科技(北京)有限公司 | 一种隐私关键词查询方法、装置及*** |
-
2023
- 2023-03-07 CN CN202310236753.1A patent/CN115967491B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115333721A (zh) * | 2022-10-13 | 2022-11-11 | 北京融数联智科技有限公司 | 一种隐私集合交集计算方法、装置和*** |
Also Published As
Publication number | Publication date |
---|---|
CN115967491A (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114756886B (zh) | 一种匿踪查询方法、装置和用于匿踪查询的装置 | |
CN115967491B (zh) | 一种隐私求交方法、***和可读存储介质 | |
CN115396101B (zh) | 一种基于秘密分享的不经意打乱方法和*** | |
CN115396100B (zh) | 一种基于秘密分享的不经意随机打乱方法和*** | |
CN113254956B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114301594B (zh) | 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 | |
CN112861175B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113449325B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114978512B (zh) | 一种隐私求交方法、装置和可读存储介质 | |
CN114884645B (zh) | 一种隐私计算方法、装置和可读存储介质 | |
CN114969830B (zh) | 一种隐私求交方法、***和可读存储介质 | |
CN115085912A (zh) | 一种密文计算方法、装置和用于密文计算的装置 | |
CN114666048A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN105120452B (zh) | 传输信息的方法、装置及*** | |
CN115941181B (zh) | 一种乱序秘密分享方法、***和可读存储介质 | |
CN114885038B (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN114448631B (zh) | 一种多方安全计算方法、***和用于多方安全计算的装置 | |
CN112671530B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114969164B (zh) | 一种数据查询方法、装置和可读存储介质 | |
CN114880691B (zh) | 一种字符编码解码方法、装置和用于字符编码解码的装置 | |
CN115499254B (zh) | 一种用户数据处理方法、装置、***和可读存储介质 | |
CN114760367B (zh) | 一种加密协议转换方法、第一节点和第二节点 | |
CN111726802B (zh) | 基于WiFi Aware的通信方法、装置及存储介质 | |
CN114448630B (zh) | 一种多方安全计算方法、***和用于多方安全计算的装置 | |
CN112580063B (zh) | 一种数据处理方法、装置和用于数据处理的装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |