一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

差分隐私保护的集合交集及其基数计算方法、装置及系统

2022-10-26 04:32:42 来源:中国专利 TAG:


1.本发明属于数据安全和隐私保护领域,更具体地,涉及一种差分隐私保护的集合交集及其基数计算方法、装置及系统。


背景技术:

2.近年来,随着信息化服务的迅速普及、互联网等相关技术的飞速发展,各行各业产生的数据呈现爆发式增长,为各种合作计算创造了前所未有的机会。然而,由于部分公司间存在竞争关系或受制于严格的数据监管政策,导致大量数据以“数据孤岛”的形式存在。联邦学习能在保护数据隐私安全及合法合规数据共享的基础上,发掘分布式数据集中数据的潜在价值,成为了当前的研究热点。纵向联邦学习作为联邦学习的一种类别因适用于用户重叠多,特征重叠少的跨行业合作的场景,受到人们的高度关注。纵向联邦学习的首要步骤是样本对齐。参与方需要使用样本对齐协议识别样本数据集中id的交集,进一步建立数据集的行映射,同时不泄露各参与方样本数据中的敏感信息。由于交集内的id本身也是一种敏感信息,直接揭示交集可能被用于用户信息去匿名化、影响企业的竞争力,存在巨大的隐私泄漏风险。因此,如何在实现样本对齐的同时,既保护交集外元素的敏感信息不泄漏,又能对交集内元素起到保护效果是当前面临的主要技术挑战。
3.当前纵向联邦学习中的样本对齐协议,大多是基于隐私保护集合交集(private set intersection,psi)协议实现的。现有的psi协议根据设计原理主要可分为基于公钥加密体系的psi协议、基于电路的psi协议、基于不经意传输的psi协议三类。基于公钥加密体系的psi协议通常采用包括同态加密、多项式插值等技术计算多个集合的交集,它们大多能提供较好的隐私保护效果,但是计算和通信开销普遍较高。基于电路的psi协议借助安全多方计算的通用框架,将任意功能的函数转换成布尔电路,实现psi协议的设计,这类协议具有易于扩展的性质,但计算开销仍然较高。基于不经意传输的psi协议将不经意传输协议和布隆过滤器或其他哈希结构结合,在保证隐私安全的前提下使得协议的计算开销和通信开销保持良好的平衡。接下来将介绍两种较经典的psi协议。garimella等人在“oblivious key-value stores and amplification for private set intersection[c]”(annual international cryptology conference.springer,cham,2021:395-425)中应用多项式编码技术,对输入的集合进行编码,防止隐私保护交集计算过程中潜在的集合元素信息泄漏等问题。kolesnikov等人在“practical multi-party private set intersection from symmetric-key techniques[c]”(proceedings of the 2017 acm sigsac conference on computer and communications security.2017:1257-1272)中根据不经意传输协议构造不经意可编程伪随机函数编码输入的集合元素,在保护集合元素隐私信息的同时显著降低计算开销。
[0004]
这些方案一定程度上可以实现样本对齐,保护隐私安全,但也存在一些局限性,主要表现在:
[0005]
(1)现有工作几乎只保护交集外部的id,向一个或部分参与交集计算的参与者揭
示精确的交集结果,未考虑保护交集内部敏感id,而在纵向联邦学习中,参与者需要识别样本数据集中的公共id,进一步建立数据集的行映射,这需要向所有参与者揭示公共的交集部分。在非对称场景下,即多个参与方所持有的样本数量差别较大的场景下,交集在小数据方样本数据集中的占比高于交集在大数据方样本数据集中的占比,这使得交集内部敏感id的暴露所带来的影响对于双方不对等,小数据方将受到更大的损失,也会给用户带来一定的损失。因此,现有工作无法解决保护交集内部敏感id与联邦学习中需要使用公共id进行协调数据分析之间的矛盾。
[0006]
(2)现有方案大多数在效率方面有所欠缺,不足以支撑纵向联邦学习系统中非对称id对齐阶段,大数据方持有百万条数据样本的场景。其具体表现为:当样本数据量超过百万条时,现有样本对齐协议难以兼顾隐私保护与高效计算。


技术实现要素:

[0007]
针对现有技术的缺陷和改进需求,本发明提供了一种差分隐私保护的集合交集及其基数计算方法、装置及系统,其目的在于,在计算隐私保护集合的交集及交集基数的过程中,特别是非对称场景下,既保护交集外元素的敏感信息不泄漏,又能有效保护交集内部元素和交集基数,并提高计算效率。
[0008]
为实现上述目的,按照本发明的一个方面,提供了一种隐私保护集合的交集基数计算方法,包括:在大数据方执行的加密步骤和基数计算步骤,以及在小数据方执行的扰动步骤;大数据方持有的样本数量不小于小数据方持有的样本数量;
[0009]
加密步骤包括:构造布隆过滤器,并将大数据方的样本集合a中的各元素插入布隆过滤器,利用公钥对布隆过滤器加密后,将加密后的布隆过滤器连同公钥发送给小数据方;样本集合a由大数据方所持有的样本的id组成;样本集合a中每个元素在布隆过滤器中对应多个插入位置,多个插入位置由预设的散列函数集合中的各散列函数对该元素计算得到;
[0010]
扰动步骤包括:遍历小数据方的样本集合b中的元素,对于每一个遍历到的元素,基于随机响应机制将该元素与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合;遍历结束后,将扰动集合发送给大数据方;样本集合b由小数据方所持有的样本的id组成;
[0011]
基数计算步骤包括:利用与公钥配对的私钥对扰动集合进行解密,统计解密后的扰动集合中表示匹配成功的元素的个数,作为隐私保护集合的交集的基数并发送给小数据方。
[0012]
进一步地,在扰动步骤中,对于遍历到的元素,基于随机响应机制将该元素与布隆过滤器中的密文进行匹配,以生成用于标识匹配结果的元素,并加入到扰动集合,包括:
[0013]
按照概率p从加密后的布隆过滤器中抽取密文,并利用公钥对抽取出的密文进行加密,得到用于标识元素匹配结果的元素,加入扰动集合;抽取密文的方式为:利用散列函数集合中的每一个散列函数对所遍历到的元素计算散列值,按照所计算的散列值从布隆过滤器中对应的位置抽取密文;p∈[0,1];
[0014]
若不抽取密文,则直接生成用于表示元素匹配成功的元素,或者用于表示元素匹配失败的元素,并加入扰动集合;生成用于表示元素匹配成功的元素的概率为q;q∈[0,1]。
[0015]
进一步地,利用公钥对抽取出的密文进行加密,所使用的加密算法为具有同态性
质的加密算法。
[0016]
进一步地,具有同态性质的加密算法为具有异或同态性质的加密算法。
[0017]
进一步地,基数计算步骤还包括:利用校正公式对统计得到的基数进行校正;校正公式为:
[0018][0019]
其中,card

和card分别表示校正前、后的基数,nw表示样本集合b中的元素个数;p≠0。
[0020]
按照本发明的另一个方面,提供了一种隐私保护集合的交集计算方法,包括:
[0021]
在大数据方,利用防碰撞的散列函数对其样本集合da中的各元素进行编码,得到编码集合ca,并利用公钥pba对编码集合ca中的各元素加密,得到密文集合ma;在小数据方,利用防碰撞的散列函数对其样本集合db中的各元素进行编码,得到编码集合cb;样本集合da由大数据方所持有的样本的id组成,样本集合db由小数据方所持有的样本的id组成;
[0022]
在小数据方,构造布隆过滤器,并将其抽样集合sb中的各元素插入布隆过滤器,利用公钥pbb对布隆过滤器加密后,将加密后的布隆过滤器连同公钥pbb发送给大数据方;抽样集合sb由样本集合db中的全部元素或随机抽样得到的部分元素构成;抽样集合sb中每个元素在布隆过滤器中对应多个插入位置,多个插入位置由预设的散列函数集合中的各散列函数对该元素计算得到;
[0023]
在大数据方,遍历编码集合ca,对于每一个遍历到的元素编码,利用公钥pbb加密该元素编码的每一位后,基于随机响应机制将加密所得的编码密文与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合a;遍历结束后,将扰动集合a、密文集合ma连同公钥pba发送给小数据方;
[0024]
在小数据方,利用与公钥pbb相配对的私钥pvb对扰动集合a进行解密,获得解密后的扰动集合a与编码集合cb相同的元素编码后,利用样本集合db中与这些元素编码相对应的元素构成小数据方的隐私保护集合的交集,记为第二交集;在小数据方,从密文集合ma中随机抽取部分密文,并利用公钥pba对所抽取的密文及第二交集中各元素的密文添加随机数以进行密文盲化,将盲化密文加入一个集合,随机扰乱集合中密文排序并记此集合为扰动集合b,之后将扰动集合b发送给大数据方;
[0025]
在大数据方,利用与公钥pba相配对的私钥pva对扰动集合b进行解密,获得解密后的扰动集合b与编码集合ca相同的元素编码后,利用样本集合da中与这些编码元素相对应的元素构成大数据方的隐私保护集合的交集,记为第一交集;
[0026]
其中,大数据方持有的样本数量不小于小数据方持有的样本数量。
[0027]
进一步地,在大数据方,遍历编码集合ca时,对于遍历到的元素编码,利用公钥pbb加密该元素编码的每一位后,基于随机响应机制将加密所得的编码密文与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合a,包括:
[0028]
在大数据方,利用公钥pbb加密遍历到的元素编码的每一位后,按照概率p从加密后的布隆过滤器中抽取密文,并将加密得到的编码密文与抽取出的密文进行逐位求积,得到用于标识元素匹配结果的元素,并加入到扰动集合a;抽取密文的方式为:利用散列函数集合中的每一个散列函数对所遍历到的元素计算散列值,按照所计算的散列值从布隆过滤
器中对应的位置抽取密文;p∈[0,1]。
[0029]
进一步地,本发明提供的隐私保护集合的交集计算方法,还包括:
[0030]
在小数据方,对第二交集的大小和元素位置进行重新设置,使第二交集的大小与第一交集相同,且二交集中与第一交集相对应的元素在两个集合中的位置一致,从而实现样本对齐。
[0031]
按照本发明的又一个方面,提供了一种隐私保护集合的交集基数计算系统,包括:大数据端和小数据端;大数据端包括加密模块和基数计算模块;小数据端包括扰动模块;
[0032]
加密模块,用于在大数据方构造布隆过滤器,并将大数据方的样本集合a中的各元素插入布隆过滤器,利用公钥对布隆过滤器加密后,将加密后的布隆过滤器连同公钥发送给小数据方;样本集合a由大数据方所持有的样本的id组成;样本集合a中每个元素在布隆过滤器中对应多个插入位置,多个插入位置由预设的散列函数集合中的各散列函数对该元素计算得到;
[0033]
扰动模块,用于在小数据方遍历小数据方的样本集合b中的元素,对于每一个遍历到的元素,基于随机响应机制将该元素与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合;遍历结束后,将扰动集合发送给大数据方;样本集合b由小数据方所持有的样本的id组成;
[0034]
基数计算模块,用于在大数据方利用与公钥配对的私钥对扰动集合进行解密,统计解密后的扰动集合中表示匹配成功的元素的个数,作为隐私保护集合的交集的基数并发送给小数据方。
[0035]
按照本发明的又一个方面,提供了一种隐私保护集合的交集计算系统,包括:大数据端和小数据端;大数据端包括:第一编码模块,第一扰动模块和第一交集计算模块;小数据端包括:第二编码模块,第二加密模块,第二交集计算模块和第二扰动模块;
[0036]
第一编码模块,用于在大数据方,利用防碰撞的散列函数对其样本集合da中的各元素进行编码,得到编码集合ca,并利用公钥pba对编码集合ca中的各元素加密,得到密文集合ma;样本集合da由大数据方所持有的样本的id组成;
[0037]
第二编码模块,用于在小数据方,利用防碰撞的散列函数对其样本集合db中的各元素进行编码,得到编码集合cb;样本集合db由小数据方所持有的样本的id组成;
[0038]
第二加密模块,用于在小数据方,构造布隆过滤器,并将其抽样集合sb中的各元素插入布隆过滤器,利用公钥pbb对布隆过滤器加密后,将加密后的布隆过滤器连同公钥pbb发送给大数据方;抽样集合sb由样本集合db中的全部元素或随机抽样得到的部分元素构成;抽样集合sb中每个元素在布隆过滤器中对应多个插入位置,多个插入位置由预设的散列函数集合中的各散列函数对该元素计算得到;
[0039]
第一扰动模块,用于在大数据方,遍历编码集合ca,对于每一个遍历到的元素编码,利用公钥pbb加密该元素编码的每一位后,基于随机响应机制将加密所得的元素密文与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合a;遍历结束后,将扰动集合a、密文集合ma连同公钥pba发送给小数据方;
[0040]
第二交集计算模块,用于在小数据方,利用与公钥pbb相配对的私钥pvb对扰动集合a进行解密,获得解密后的扰动集合a与编码集合cb相同的元素编码后,利用样本集合db中与这些元素编码相对应的元素构成小数据方的隐私保护集合的交集,记为第二交集;
[0041]
第二扰动模块,用于在小数据方,从密文集合ma中随机抽取部分密文,并利用公钥pba对所抽取的密文及第二交集中各元素的密文添加随机数以进行密文盲化,将盲化密文加入一个集合,随机扰乱集合中密文排序并记此集合为扰动集合b,之后将扰动集合b发送给大数据方;
[0042]
第一交集计算模块,用于在大数据方,利用与公钥pba相配对的私钥pva对扰动集合b进行解密,获得解密后的扰动集合b与编码集合ca相同的元素编码后,利用样本集合da中与这些编码元素相对应的元素构成大数据方的隐私保护集合的交集,记为第一交集;
[0043]
其中,大数据方持有的样本数量不小于小数据方持有的样本数量。
[0044]
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
[0045]
(1)本发明在计算参与方的隐私保护集合的交集的基数时,在小数据方基于随机响应机制进行元素匹配,实现了差分隐私,能够有效对隐私保护集合的交集进行扰动,有效保护交集内部的敏感信息。
[0046]
(2)本发明在计算参与方的隐私保护集合的交集的基数时,在进行样本集合交互之前,先将样本集合中的元素插入布隆过滤器,再对插入了元素的布隆过滤器进行加密,在保证数据安全性的同时,能够有效实现数据压缩,减小传输的数据量,降低通信开销,有效提高隐私保护集合交集的基数的计算效率。
[0047]
(3)本发明在计算参与方的隐私保护集合的交集的基数时,在小数据方利用具有同态性质的加密算法对从布隆过滤器中抽取的元素和小数据方样本集合中的元素进行匹配,能够简化集合元素相等的判断过程,进一步提高计算效率;在其优选方案中,所使用的具体是具有异或同态性质的加密算法,该算法是轻量级的加密算法,能够进一步提高计算效率。
[0048]
(4)本发明在计算参与方的隐私保护集合的交集的基数时,在大数据方基于匹配结果统计得到交集基数后,进一步结合随机响应机制的概率参数对统计结果进行校正,在保护交集内部敏感信息的基础上,有效保证了交集基数的准确性。
[0049]
(5)本发明在计算参与方的隐私保护集合的交集时,在大数据方和小数据方均基于随机响应机制进行元素匹配,实现了差分隐私,能够有效对隐私保护集合的交集进行扰动,有效保护交集内部的敏感信息;并且在小数据方对交集进行扰动时,会在所生成的扰动集合中插入从编码后的大数据方样本集合中随机抽取的部分元素,使得大数据方收到的扰动集合相比于小数据方收到的扰动集合,具有更多的元素,由此针对不同参与方产生了不同扰动程度的隐私保护交集集合,缩小了双方计算的交集在各自数据集中占比的差异,在保护交集内部敏感信息的基础上,减小了小数据方可能遭受的损失且不影响样本对齐,帮助用户建立样本数据集间的行映射,协同完成后续的数据分析工作。
[0050]
(6)本发明在计算参与方的隐私保护集合的交集时,在其优选方案中,仅从小数据方的样本集合中抽取部分元素构成抽样集合,并基于该抽样集合完成后续的计算,由此能够起到增强扰动、保护小数据方隐私的作用,同时能够减少计算量以及数据传输量,提高交集计算效率。
[0051]
(7)本发明在计算参与方的隐私保护集合的交集时,在进行样本集合交互之前,先将样本集合中的元素插入布隆过滤器,再对插入了元素的布隆过滤器进行加密,在保证数据安全性的同时,能够有效实现数据压缩,减小传输的数据量,降低通信开销,有效提高隐
私保护集合交集的基数的计算效率。
[0052]
(8)本发明在计算参与方的隐私保护集合的交集时,在大数据方通过将加密得到的元素密文与抽取出的密文进行逐位求积的方式实现元素匹配,相当于利用具有同态性质的加密算法对明文进行异或运算,由此能够简化集合元素相等的判断过程,进一步提高计算效率。
[0053]
(9)本发明在计算参与方的隐私保护集合的交集时,在大数据方和小数据方均计算得到各自的隐私保护集合交集时,会进一步在小数据方对其交集中元素的数量和位置进行设置,建立了行映射,实现了样本对齐。
附图说明
[0054]
图1为本发明实施例1提供的隐私保护集合的交集基数计算方法流程图;
[0055]
图2为本发明实施例1提供的扰动步骤流程图;
[0056]
图3为本发明实施例2提供的隐私保护集合的交集计算方法流程图;
[0057]
图4为本发明实施例3提供的隐私保护集合的交集基数计算系统示意图;
[0058]
图5为本发明实施例4提供的隐私保护集合的交集计算系统示意图。
具体实施方式
[0059]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0060]
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0061]
为了解决现有的隐私保护集合的交集及交集基数的计算方法,无法保护交集内部的敏感信息,且计算效率低的技术问题,本发明提供了一种差分隐私保护的集合交集及其基数计算方法、装置及系统,其整体思路在于:在计算交集和交集基数时,基于差分隐私机制生成扰动信息,对交集内部的元素及交集基数进行保护,避免交集内部敏感信息的泄露;通过数据压缩、抽样等方式减少数据传输量及计算量,从而提高计算效率。
[0062]
在详细解释本发明的技术方案之前,先对相关的技术术语作出如下简要介绍:
[0063]
非对称场景:指两个用户所持有的样本数据集在数据体量上差别巨大的场景,其中持有数据较多的一方称为大数据方,持有数据较少的一方,称为小数据方,大数据方往往具有更强的存储和计算能力;
[0064]
交集:指两个用户样本数据集的交集,即由两个用户持有的样本数据集中的公共样本构成的集合;
[0065]
交集基数:指交集集合中元素的个数,即两个用户持有的样本数据集中,所包含的公共样本的个数;
[0066]
样本对齐:在两个用户所持有的样本数据不完全重合的情况下,在双方不公开各自数据的前提下确认双方的共有样本信息,并且不暴露不互相重叠的样本信息,以便联合这些共有的样本数据进行建模;在确定共有样本信息后,就可以利用这些数据训练模型,所
训练的模型可以用于执行信用卡审批、疾病预测、保险定价评估、实时交通预测、安全防控检测等任务;
[0067]
行映射:在确定两个用户共有的样本信息后,对双方各自所确定的交集中的元素位置进行调整,使得两个交集中元素的顺序一致;
[0068]
差分隐私技术:随机化技术中的一种,指使得两个邻近数据集的随机算法输出结果在出现概率上不可区分(出现概率倍数小于等于e

)的随机算法,包括指数机制和拉普拉斯机制等;
[0069]
随机响应机制:当对数据集进行查询时,进行一次投掷硬币的操作,若硬币背向上,则返回正确的查询结果,若硬币正面向上,则进行第二次投掷操作;若第二次硬币正面向上则返回正确的查询结果,若反面向上则返回错误的查询结果;随机响应满足差分隐私;
[0070]
同态加密技术:与特定运算相对应,对密文执行该特定运算的运算结果进行解密后,所得结果为相应明文执行该特定运算的运算结果;
[0071]
具有异或同态性质的加密算法:同态加密算法的一种,对两个加密得到的密文执行特定运算的运算结果进行解密,所得结果为对应的两个明文执行异或运算的运算结果。
[0072]
本发明中,涉及多种不同的集合,各集合的含义如下:
[0073]
数据集:其中的每个元素称为一个样本,样本为用户的敏感信息;敏感信息包括手机号码、身份证号等;每个样本具有一个全局唯一的id,用于唯一标识样本;数据集信息为敏感信息,包括数据集中样本的个数、样本所持有的属性的个数、样本的属性信息等;
[0074]
样本集合:由数据集中每个样本的id作为元素构成的集合;
[0075]
抽样集合:由样本集合中的全部元素,或者从样本集合中随机抽样得到的部分元素构成的集合;
[0076]
编码集合:由样本集合中各元素编码后的结果作为元素构成的集合;
[0077]
密文集合:对编码集合中的元素进行加密后,由加密得到的密文作为元素构成的集合;
[0078]
扰动集合:由标识元素匹配结果的元素构成的集合,这些标识元素匹配结果的元素在构成过程中受随机响应机制的扰动。
[0079]
以下为实施例。
[0080]
实施例1:
[0081]
一种隐私保护集合的交集基数计算方法,用于计算纵向联邦学习中参与方所持有的数据集中公共样本个数,本实施例涉及两个参与方,即大数据方和小数据方,大数据方持有的样本数量不小于小数据方持有的样本数量;本实施例在执行具体的隐私保护集合的交集基数计算之前,会进行一些初始化操作,实现计算过程中所需参数及散列函数的初始化。初始化的内容具体包括:
[0082]
布隆过滤器的最优尺寸,由大数据方和小数据方依据大数据方数据集的体量共同确定,以m和n分别表示布隆过滤器的最优尺寸和待插入元素的个数,以e表示预设的误报率,则可选地,本实施例中,按照所确定的最优尺寸创建布隆过滤器,且新创建的布隆过滤器中,各位置的值被初始化为1,插入元素后,相应位置的值将被置为0;
[0083]
散列函数集合,由一系列相互独立的散列函数构成,散列函数的个数以及具体的
散列函数,由大数据方和小数据方共同确定,以保证不同样本的id的散列值能够明显区分开;
[0084]
加密算法的安全参数,由大数据方和小数据方共同确定,考虑到大数据方具有更强的存储和计算能力,大数据方往往具有更强的存储和计算能力,能够快速完成大量加密、解密和编码操作,同时对集合元素的扰动处理也将更为快速,本实施例中,由大数据方依据所确定的安全参数生成加密算法的公私钥对。
[0085]
参阅图1,基于上述初始化后的参数和散列函数集合,本实施例具体包括:在大数据方执行的加密步骤和基数计算步骤,以及在小数据方执行的扰动步骤;
[0086]
加密步骤包括:构造布隆过滤器,并将大数据方的样本集合a中的各元素插入布隆过滤器,利用公钥对布隆过滤器加密后,将加密后的布隆过滤器连同公钥发送给小数据方;样本集合a由大数据方所持有的样本的id组成;样本集合a中每个元素在布隆过滤器中对应多个插入位置,多个插入位置由预设的散列函数集合中的各散列函数对该元素计算得到,具体地,对于每一个元素,利用散列函数集合中的每一个散列函数计算该元素的一个散列值,将布隆过滤器中与该元素的散列值对应的位置均置为0,即完成将该元素插入布隆过滤器的操作;本实施例借助布隆过滤器实现两方的数据交互,能够有效实现数据压缩,减小传输的数据量,降低通信开销,提高计算效率;
[0087]
扰动步骤包括:遍历小数据方的样本集合b中的元素,对于每一个遍历到的元素,基于随机响应机制将该元素与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合;遍历结束后,将扰动集合发送给大数据方;样本集合b由小数据方所持有的样本的id组成;
[0088]
基数计算步骤包括:利用与公钥配对的私钥对扰动集合进行解密,统计解密后的扰动集合中表示匹配成功的元素的个数,作为隐私保护集合的交集的基数并发送给小数据方。
[0089]
为了对隐私保护集合交集内的元素和交集基数进行保护,本实施例的扰动步骤,在小数据方基于随机响应机制进行元素匹配,能够通过差分隐私的方式保护交集内部元素的敏感信息和交集的基数。如图2所示,本实施例中,在小数据方执行的扰动步骤中,对于遍历到的元素,基于随机响应机制将该元素与布隆过滤器中的密文进行匹配,以生成用于标识匹配结果的元素,并加入到扰动集合,其基本方式是:以一定的概率p进行实际的元素匹配,而以概率1-p随机生成标识元素匹配成功或失败的扰动集合元素,具体包括如下步骤:
[0090]
(s1)按元素在集合内的顺序从小数据方样本集合中选取一个元素;
[0091]
(s2)以概率p从0、1中选择一个值,p∈[0,1]表示选取1的概率;若选择的值为1,则跳转到步骤(s3);若选择的值为0,则跳转到步骤(s5);
[0092]
(s3)对应散列函数集合中的每个散列函数,计算步骤(s1)中选取元素的散列值,并抽取加密布隆过滤器中散列值对应位置上的密文;
[0093]
(s4)使用加密算法的公钥对抽取出的密文进行重加密(优选具有同态性质的加密算法),构成标识匹配结果的元素,加入到扰动集合;
[0094]
为了简化后续元素相等性判断的过程,作为一种优选的实施方式,本实施例中,对从布隆过滤器中抽取的密文进行重加密,所使用的加密算法为具有同态性质的加密算法,且具体为具有异或同态性质的加密算法;
[0095]
(s5)以概率q从0、1中选取一个值,q∈[0,1]表示选取1的概率;若选取的值为1,则跳转到步骤(s6);若选取的值为0,则跳转到步骤(s7);
[0096]
(s6)基于步骤(s4)所使用的加密算法,生成标识匹配成功的元素,加入到扰动集合;
[0097]
(s7)基于步骤(s4)所使用的加密算法,生成标识匹配失败的元素,加入到扰动集合。
[0098]
通过上述步骤所构建的扰动集合,其中的元素标识了两方样本集合中元素匹配的结果信息,在大数据方,接收到该扰动集合之后,根据步骤(s4)所采用的加密算法过对扰动集合中的元素进行解密,即可判断出该元素所标识的信息是元素匹配成功还是匹配失败,统计扰动集合中,所有标识元素匹配成功的元素的个数,即可得到隐私保护集合交集的基数。
[0099]
在大数据方,对扰动集合中的元素解密后,判断该元素所标识的信息是元素匹配成功还是匹配失败,具体的方式与布隆过滤器中元素的插入规则,以及步骤(s4)所使用的加密算法相关,本实施例中,由于布隆过滤器的插入规则为将插入位置的值置为1,且步骤(s4)使用具有异或同态性质的加密算法,因此,本实施例中,若扰动集合中元素的解密结果为全0字符串,则表示元素匹配成功,否则,表示元素匹配失败。
[0100]
由于该扰动集合在构造过程中,基于随机响应机制进行了扰动,因此,可以有效对交集内元素的敏感信息和交集基数信息进行保护。考虑到随机响应机制在对交集内部元素的敏感信息进行扰动的同时,对交集基数也会产生扰动,为了保证所计算的交集基数的准确性,本实施例会进一步对基于扰动集合统计得到的基数进行校正,考虑到当小数据方数据集为大数据方数据集的子集时,扰动结果中,全0字符串的个数,即校正前统计的基数,为nw*(p (1-p)q),其中nw表示小数据方数据集中的元素个数;双方数据集交集为空时,扰动结果中,全0字符串的个数为nw*(1-p)q;则真正的交集范围从[0,n]被压缩到了[nw*(1-p)q,nw*(p (1-p)q)];
[0101]
即:校正前、后的基数card

和card满足card

=nw*(1-p)q card*p
[0102]
故有
[0103]
基于以上分析,本实施例的基数计算步骤还包括:利用校正公式对统计得到的基数进行校正;校正公式为:
[0104][0105]
其中,card

和card分别表示校正前、后的基数,nw表示样本集合b中的元素个数;p≠0。
[0106]
总的来说,本实施例采用差分隐私技术保护交集内部元素的敏感信息和交集的基数,应用同态加密技术在用户样本数据集交集计算过程中保护交集外的元素,同时轻量级的同态加密技术与布隆过滤器紧密结合,保证交集基数计算的高效性。
[0107]
本实施例的一个应用场景是,大数据方和小数据方有意向进行联邦学习,需要对他们所持有的数据集中公共样本的个数进行统计,若公共样本的个数足够,则判定双方可正常进行联邦学习,若公共样本的个数不足,则判定大数据方与小数据方无进行联邦学习
的必要,其中大数据方和小数据方可以是同一区域的不同行业的数据持有者,如位于同一地区的银行、商超等,所计算的基数即为双方的公共用户数量。本实施例还可用于统计社交网络应用中不同用户的公共好友的个数、共同联系人的个数等。
[0108]
实施例2:
[0109]
一种隐私保护集合的交集计算方法,用于识别纵向联邦学习中参与方所持有的数据集中的公共样本,并进一步建立双方数据集的行映射,同时不能泄露参与方数据集中的敏感信息;本实施例涉及两个参与方,即大数据方和小数据方,大数据方持有的样本数量不小于小数据方持有的样本数量,其中大数据方和小数据方可以是同一区域的不同行业的数据持有者,如同一地区的银行、商超等,所计算的基数即为双方的公共用户。
[0110]
本实施例在执行具体的隐私保护集合的交集计算之前,会进行一些初始化操作,实现计算过程中所需参数及散列函数的初始化。初始化的内容具体包括:
[0111]
布隆过滤器的最优尺寸,由大数据方和小数据方依据大数据方数据集的体量共同确定,以m和n分别表示布隆过滤器的最优尺寸和待插入元素的个数,以e表示预设的误报率,则可选地,本实施例中,按照所确定的最优尺寸创建布隆过滤器,且新创建的布隆过滤器中,各位置的值被初始化为1,插入元素后,相应位置的值将被置为0;
[0112]
散列函数集合,由一系列相互独立的散列函数构成,散列函数的个数以及具体的散列函数,由大数据方和小数据方共同确定,以保证不同样本的id的散列值能够明显区分开;
[0113]
加密算法的安全参数,由大数据方和小数据方共同确定;由于本实施例中,大数据方的交集和小数据方的交集由大数据方和小数据方独立计算,因此,大数据方和小数据方各自依据所确定的加密算法安全参数生成加密算法的公私钥对,其中,大数据方的公私钥对记为pba/pva,小数据方的公私钥对记为pbb/pvb;
[0114]
防碰撞的散列函数,由大数据方和小数据方共同确定,用于对样本集合中的元素进行编码;本实施例利用防碰撞的散列函数对元素进行编码,可以把每个string类型的元素映射为相同长度二进制数,而且防碰撞性质可以使得大量不同string类型的数据映射为同一个二进制数的概率可忽略不计;
[0115]
参阅图3,基于上述初始化后的参数和散列函数集合,本实施例具体包括:
[0116]
在大数据方,利用防碰撞的散列函数对其样本集合da中的各元素进行编码,得到编码集合ca,并利用公钥pba对编码集合ca中的各元素加密,得到密文集合ma;在小数据方,利用防碰撞的散列函数对其样本集合db中的各元素进行编码,得到编码集合cb;样本集合da由大数据方所持有的样本的id组成,样本集合db由小数据方所持有的样本的id组成;
[0117]
在小数据方,构造布隆过滤器,并将其抽样集合sb中的各元素插入布隆过滤器,利用公钥pbb对布隆过滤器加密后,将加密后的布隆过滤器连同公钥pbb发送给大数据方;抽样集合sb由样本集合db中随机抽样得到的部分元素构成,通过对小数据方的样本集合进行抽样的方式,能够起到增强扰动、保护小数据方隐私的作用,同时能够减少计算量以及数据传输量,提高交集计算效率;抽样集合sb中每个元素在布隆过滤器中对应多个插入位置,多个插入位置由预设的散列函数集合中的各散列函数对该元素计算得到;
[0118]
在大数据方,遍历编码集合ca,对于每一个遍历到的元素编码,利用公钥pbb加密该
元素编码的每一位后,基于随机响应机制将加密所得的编码密文与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合a;遍历结束后,将扰动集合a、密文集合ma连同公钥pba发送给小数据方;
[0119]
在小数据方,利用与公钥pbb相配对的私钥pvb对扰动集合a进行解密,获得解密后的扰动集合a与编码集合cb相同的元素编码后,利用样本集合db中与这些元素编码相对应的元素构成小数据方的隐私保护集合的交集,记为第二交集;在确定扰动集合a与编码集合cb相同的元素编码后,将样本集合da中的元素进行编码并将编码结果与所确定的元素编码进行比对,即可确定da中与这些元素编码相对应的元素;在小数据方,从密文集合ma中随机抽取部分密文,并利用公钥pba对所抽取的密文及第二交集中各元素的密文添加随机数以进行密文盲化,将盲化密文加入一个集合,随机扰乱集合中密文排序并记此集合为扰动集合b,相比于扰动集合a,扰动集合b中具有更多的元素,且其中的部分元素由大数据方自身的样本构造而成,通过打乱扰动集合b中元素的顺序,能够避免扰动集合b中的元素分布过于规律,而被大数据基于元素的分布规律识别出其中的扰动元素;扰动集合b构造完成后,将扰动集合b发送给大数据方;
[0120]
在大数据方,利用与公钥pba相配对的私钥pva对扰动集合b进行解密,获得解密后的扰动集合b与编码集合ca相同的元素编码后,利用样本集合da中与这些编码元素相对应的元素构成大数据方的隐私保护集合的交集,记为第一交集。为了对隐私保护集合交集内的元素和交集基数进行保护,在大数据方基于随即响应机制进行元素匹配,能够通过差分隐私的方式保护交集内部元素的敏感信息。本实施例中,在大数据方,遍历编码集合ca时,对于遍历到的元素编码,利用公钥pbb加密该元素编码的每一位后,基于随机响应机制将加密所得的元素密文与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合a,其基本方式是:仅以一定的概率p选取元素进行实际的元素匹配,具体包括如下步骤:
[0121]
在大数据方,利用公钥pbb加密遍历到的元素编码的每一位后,按照概率p从加密后的布隆过滤器中抽取密文,并将加密得到的编码密文与抽取出的密文进行逐位求积,得到用于标识元素匹配结果的元素,并加入到扰动集合a;通过将加密得到的元素密文与抽取出的密文进行逐位求积的方式实现元素匹配,相当于利用具有同态性质的加密算法对明文进行异或运算,由此能够简化集合元素相等的判断过程,进一步提高计算效率;
[0122]
抽取密文的方式为:利用散列函数集合中的每一个散列函数对所遍历到的元素计算散列值,按照所计算的散列值从布隆过滤器中对应的位置抽取密文;p∈[0,1]。
[0123]
在大数据方和小数据方分别计算得到各自的隐私保护集合交集的基础上,本实施例进一步对两个交集建立了行映射,实现了样本对齐,具体包括:
[0124]
在小数据方,对第二交集的大小和元素位置进行重新设置,使第二交集的大小与第一交集相同,且二交集中与第一交集相对应的元素在两个集合中的位置一致,从而实现样本对齐;
[0125]
在实际应用中,进行样本对齐后,对于第二交集相对于第一交集缺失的元素,可采用0或其他特殊元素进行填充。
[0126]
本实施例中,不同用户获得的隐私保护集合交集,在差分隐私扰动程度上存在不同,通过这种方式,保护了隐私保护交集内部的元素。虽然用户获得的隐私保护集合交集不
同,但依旧适用于纵向联邦学习系统中的样本对齐阶段,使得参与联邦学习的用户建立样本数据集间的行映射,协同完成后续的数据分析工作。
[0127]
本实施例中,隐私保护集合交集的计算效率高,在用户样本数据集呈非对称状态,大数据方持有百万条数据样本时,依然能够快速计算隐私保护集合交集,同时对集合内部元素敏感信息起到保护作用。
[0128]
实施例3:
[0129]
一种隐私保护集合的交集基数计算系统,如图4所示,包括:大数据端和小数据端;大数据端包括加密模块和基数计算模块;小数据端包括扰动模块;
[0130]
加密模块,用于在大数据方构造布隆过滤器,并将大数据方的样本集合a中的各元素插入布隆过滤器,利用公钥对布隆过滤器加密后,将加密后的布隆过滤器连同公钥发送给小数据方;样本集合a由大数据方所持有的样本的id组成;样本集合a中每个元素在布隆过滤器中对应多个插入位置,多个插入位置由预设的散列函数集合中的各散列函数对该元素计算得到;
[0131]
扰动模块,用于在小数据方遍历小数据方的样本集合b中的元素,对于每一个遍历到的元素,基于随机响应机制将该元素与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合;遍历结束后,将扰动集合发送给大数据方;样本集合b由小数据方所持有的样本的id组成;
[0132]
基数计算模块,用于在大数据方利用与公钥配对的私钥对扰动集合进行解密,统计解密后的扰动集合中表示匹配成功的元素的个数,作为隐私保护集合的交集的基数并发送给小数据方。
[0133]
本实施例中,各模块的具体实施方式可参考上述实施例1中的描述,在此将不做复述。
[0134]
实施例4:
[0135]
一种隐私保护集合的交集计算系统,如图5所示,包括:大数据端和小数据端;大数据端包括:第一编码模块,第一扰动模块和第一交集计算模块;小数据端包括:第二编码模块,第二加密模块,第二交集计算模块和第二扰动模块;
[0136]
第一编码模块,用于在大数据方,利用防碰撞的散列函数对其样本集合da中的各元素进行编码,得到编码集合ca,并利用公钥pba对编码集合ca中的各元素加密,得到密文集合ma;样本集合da由大数据方所持有的样本的id组成;
[0137]
第二编码模块,用于在小数据方,利用防碰撞的散列函数对其样本集合db中的各元素进行编码,得到编码集合cb;样本集合db由小数据方所持有的样本的id组成;
[0138]
第二加密模块,用于在小数据方,构造布隆过滤器,并将其抽样集合sb中的各元素插入布隆过滤器,利用公钥pbb对布隆过滤器加密后,将加密后的布隆过滤器连同公钥pbb发送给大数据方;抽样集合sb由样本集合db中的全部元素或随机抽样得到的部分元素构成;抽样集合sb中每个元素在布隆过滤器中对应多个插入位置,多个插入位置由预设的散列函数集合中的各散列函数对该元素计算得到;
[0139]
第一扰动模块,用于在大数据方,遍历编码集合ca,对于每一个遍历到的元素编码,利用公钥pbb加密该元素编码的每一位后,基于随机响应机制将加密所得的元素密文与布隆过滤器中的密文进行匹配,以生成用于标识元素匹配结果的元素,并加入到扰动集合
a;遍历结束后,将扰动集合a、密文集合ma连同公钥pba发送给小数据方;
[0140]
第二交集计算模块,用于在小数据方,利用与公钥pbb相配对的私钥pvb对扰动集合a进行解密,获得解密后的扰动集合a与编码集合cb相同的元素编码后,利用样本集合db中与这些元素编码相对应的元素构成小数据方的隐私保护集合的交集,记为第二交集;
[0141]
第二扰动模块,用于在小数据方,从密文集合ma中随机抽取部分密文,并利用公钥pba对所抽取的密文及第二交集中各元素的密文添加随机数以进行密文盲化,将盲化密文加入一个集合,随机扰乱集合中密文排序并记此集合为扰动集合b,之后将扰动集合b发送给大数据方;
[0142]
第一交集计算模块,用于在大数据方,利用与公钥pba相配对的私钥pva对扰动集合b进行解密,获得解密后的扰动集合b与编码集合ca相同的元素编码后,利用样本集合da中与这些编码元素相对应的元素构成大数据方的隐私保护集合的交集,记为第一交集;
[0143]
其中,大数据方持有的样本数量不小于小数据方持有的样本数量。
[0144]
本实施例中,各模块的具体实施方式可参考上述实施例2中的描述,在此将不做复述。
[0145]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献