一种细粒度属性匹配隐私保护方法与流程

专利2022-05-09  75


本发明涉及个人隐私保护技术领域,特别是涉及一种支持精确查询的细粒度属性匹配隐私保护方法。



背景技术:

移动社交网络(mobilesocialnetworks,msn)将人们联系到一起,组成了一个巨大的关系网,用户通过移动社交网络随时随地地向他人分享照片、视频、位置等信息,并且通过移动社交网络,用户之间可以随时随地取得联系。然而,人们日常使用的手机app中记录了大量的个人隐私信息,由于这些信息均存储在app服务提供商的服务器中,服务提供商对于用户的隐私数据所做的任何操作用户均不知情,因此越来越多的人对使用app过程中的隐私安全产生了担忧。与此同时,人们对于网络交友应用的需求也越来越多,据互联网统计,2019年中国网络交友应用用户量达到6.22亿人,并保持逐年增长的态势。网络交友软件主要是基于用户属性的相似度匹配方式来实现用户间的配对,这种方式将用户的属性值如年龄、性别、爱好等进行比较,并将相似度高的用户建立联系,从而达到交友的目的。为了保证整个匹配过程中用户的隐私不被泄露,app会先对用户的属性采用加密等方式处理,然而对加密后的属性进行相似度比较计算量会远大于明文比较,因此找到一种既高效又能够保护隐私的匹配方案成为热点研究课题。

现有的属性匹配方案总体可以分为以下几类:

1)基于私密交集的方案(privatesetinsertion)

agrawaletal.(r.agrawal,a.evfimievski,andr.srikant,“informationsharingacrossprivatedatabases,”inproc.acmsigmodint.conf.man-age.data,2003,pp.86–97)提出了一种求私密交集(privatesetintersection,psi)的方案,这种方案可以实现求取双方所拥有的集合的交集而不会泄露双方集合中的信息;vaidyaetal.文献(j.vaidyaandc.clifton,“securesetintersectioncardinalitywithapplicationtoassociationrulemining,”j.comput.secur.,vol.13,no.4,pp.593–622,2005)将agrawal的方案进行了改进,实现了求n个集合的私密交集;在另一文献(m.vonarb,m.bader,m.kuhn,andr.wattenhofer,“veneta:serverlessfriend-of-frienddetectioninmobilesocialnetworking,”inproc.ieeeint.conf.wirelessmobilecomput.netw.commun.,2008,pp.184–189)中,此方法被用于在社交网络中求用户间的相似度,将双方属性集合交集的元素个数作为衡量相似度的标准;在此基础上,更加细粒度的属性匹配方案(yangz,zhangb,daij,etal.e-smalltalker:adistributedmobilesystemforsocialnetwork-inginphysicalproximity[c]//2010ieee30thinternationalconferenceondistributedcomputingsystems.ieee,2010:468-477)也被提出,根据用户不同兴趣偏好分配不同的权重并设置属性匹配的优先级进行匹配。为了避免复杂的密码学计算,基于布隆过滤器(bloomfilter)的属性匹配方案(freedmanmj,hazayc,nissimk,etal.efficentsetintersectionwithsimulation-basedsecurity[j].journalofcryptology,2016,29(1):115-155,以及lim,caon,yus,etal.findu:privacy-preservingpersonalprofilematchinginmobilesocialnetworks[c]//2011proceedingsieeeinfocom.ieee,2011:2435-2443)被提出,用户分别采用不同的hash函数将每一个属性映射到一个向量中,最后双方将各自得到的向量发送给服务器,服务器通过向量的比较得出两个用户属性集合的交集。这种方法能更加快速地求出两个集合的交集从而提高匹配的效率,不过这种方法也会有一定的错误率。总之,基于私密交集的方案虽然可以较快地实现两个用户的匹配,但是由于整个匹配过程只关注两个集合中相同的部分,因此无法完成更加细粒度的匹配,比如年龄相近、兴趣爱好相近等。

2)基于属性向量点积的相似度计算方法

基于用户属性向量点积的相似度计算方法主要是将两个用户属性向量的点积值作为衡量两个用户相似度的依据。这种方法可以一定程度上满足细粒度的需求,但是无法满足对指定属性限定范围进行更加细粒度的查询。

3)基于秘密共享和多方安全计算的方法

基于秘密共享以及多方安全计算的属性相似度匹配方案可以实现多个用户共同计算相似度并保证整个过程中每个用户的隐私不被泄露。其中,秘密共享主要是将一个秘密拆分成多份,每个部分分别由一个用户保管,只有当多个用户共同协作才能够恢复该秘密,避免了隐私的泄露。多方安全计算主要是多个用户共同计算一个函数,每个用户在计算过程中除了能够知道自己的输入对应的输出以外无法获得任何信息,从而保证隐私的安全。

4)基于密码学的方法

随着移动设备性能的增强,基于密码学技术的方案也被提出。在基于属性加密(attributebasedencryption,abe)的方案中,用户根据自己的属性生成访问控制策略,将其作为密钥对信息进行加密得到密文,其余用户只有当属性个数达到加密者所设定的阈值时才可以对密文进行解密。gaoetal.(gaoc,chengq,lix,etal.cloud-assistedprivacy-preservingprofile-matchingschemeundermultiplekeysinmobilesocialnetwork[j].clustercomputing,2019,22(1):1655-1663)使用同态加密和代理重加密技术,提出了一种在双云服务器辅助下进行属性文件相似度匹配的方案,采用属性向量点积相似度计算方法计算用户间的相似度并且将向量点积计算工作分发给两个服务器共同完成计算,利用同态加密实现对密文的运算并且采用一次一密技术保证两个服务器能够共同完成计算而不泄露用户的任何隐私信息,实现了隐私的保护并且能够抵御用户和服务器的同谋。

总的来说,上述技术方案普遍存在如下缺点:

(1)现有的方案对于用户之间属性的相似度均只考虑了相同或相近,对于实际应用中还可能会出现的范围查询,例如条件为“年龄在20-30岁之间,身高在170-180之间”的查询还无法实现。

(2)现有方案对于两个用户的相似度的计算只考虑了两个用户属性向量的相似度,并没有将两个用户的位置信息加以考虑,例如对于一些条件为“距离查询用户2公里以内”的查询还无法实现。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种细粒度属性匹配隐私保护方法,通过采用轻量级的保序加密来对用户的属性信息进行加密,可以方便通过密文判断两个属性值的大小关系,使得通过属性以及查询上下界的密文能够很容易判断属性值是否在查询范围内,从而实现通过范围对属性值进行查询。

为达上述及其它目的,本发明提出一种细粒度属性匹配隐私保护方法,包括如下步骤:

步骤s1,所有用户端及服务器生成自己的公私钥对,同时每个用户端还生成cipe加密所需的随机数组,计算数组元素之和并加密后发送给第一服务器;

步骤s2,第一用户端与第二用户端分别利用cipe算法生成查询和属性向量并使用paillier加密算法对向量中每个元素加密后发送给第一服务器;

步骤s3,第一服务器通过与第二服务器执行安全点积协议计算获得属性向量和查询向量点积,以根据点积值判断属性向量对应的属性值是否在查询向量对应的查询范围内。

优选地,步骤s1进一步包括:

步骤s100,所有用户端和服务器生成自己的公私钥对(pk,sk);

步骤s101,第一服务器随机选取两个长度为的比特串l1,l2,将它们头尾相连成长度为d的串l,并使用相应的用户端公钥加密后发送给相应用户端;

步骤s102,每个用户端生成cipe加密所需的随机数组,计算数组元素之和并加密,并分别将加密后的结果发送给第一服务器。

优选地,步骤s2进一步包括:

步骤s200,作为被查询者的第二用户端将每一个属性值加密成安全索引将所有属性所对应的安全索引的集合发送给第一服务器;

步骤s201,作为查询者的第一用户端生成查询向量qj,将每个查询加密成安全查询向量并将所有查询所对应的安全查询向量集合发送给第一服务器。

优选地,步骤s200进一步包括:

步骤s200a,对于每个属性,第二用户端执行cipe算法将其转换为d维的向量pi;

步骤s200b,第二用户端使用第二服务器的公钥加密记作并计算步骤s200a中生成的向量pi中所有元素的平方和

步骤s200c,根据步骤s200b的结果构造安全索引其中

步骤s200d,将所有属性所对应的安全索引的集合发送给第一服务器。

优选地,步骤s201进一步包括:

步骤s201a,第一用户端构造对第二用户端的属性集的查询向量其中qj=[bj,l,bj,u],bj,l和bj,u分别为查询范围的下界和上界,对于每一个通过cipe算法将bj,φ转换为d维的向量qj,φ,φ∈{l,u};

步骤s201b,对于第一用户端使用第二服务器的公钥对转换后的向量的每个元素进行加密,记作并计算步骤s201a中生成的向量qj,φ,φ∈{l,u}中所有元素的平方和

步骤s201c,根据步骤s201b的结果对每个查询构造安全查询向量,得到安全查询向量集合其中,

步骤s201d,第一用户端生成权重向量w=(w1,w2,...,wm)和相似度匹配阈值δ,并将所有查询所对应的安全查询集合权重w以及相似度匹配阈值δ发送给第一服务器。

优选地,所述安全点积协议包括如下步骤:

步骤a,第一服务器计算属性值和查询值的差值的密文并将该属性值和查询值的差值的密文发送给第二服务器;

步骤b,第二服务器使用自己的私钥进行解密得到d组差值qi-pi,计算d组差值qi-pi的平方和,并利用自己的公钥加密发送给第一服务器;

步骤c,第一服务器接收到第二服务器的密文后,计算得到属性向量与查询向量点积的密文,并计算作为查询者的用户端与被查询者的用户端的随机数组元素和密文,将属性向量与查询向量点积的密文以及随机数组元素和密文发送给第二服务器;

步骤d,第二服务器通过解密得到属性向量p和查询向量q点积,并将解密结果映射到g′∈{1,0,-1},将g′作为最终结果发送给第一服务器进行输出。

优选地,步骤s3进一步包括:

步骤s301,对于每一个安全索引和安全查询向量执行安全点积协议计算υk,l=p·qk,l和υk,u=p·qk,u;

步骤s303,生成m维的比较结果向量r=(r1,r2,...,rm),其中,

步骤s304,根据比较结果向量以及权重向量计算查询向量与属性向量的相似度;

步骤s305,根据获得的相似度以及相似度匹配阈值δ输出匹配结果。

优选地,于步骤s301之前,还包括如下步骤:

步骤s300,对于当前用户端位置的安全索引iφ和对应的查询执行安全点积协议计算得到υφ,l=p·qφ,l和υφ,u=p·qφ,u,其中φ∈{lon,lat},若υφ,l≤0且υφ,l>0,(φ∈{lon,lat}),继续执行后续步骤,否则重新选择一个新的用户并返回步骤s300。

优选地,所述相似度s计算如下:

与现有技术相比,本发明一种细粒度属性匹配隐私保护方法能够设定属性和位置的查询范围,提供更加细粒度的匹配,并且由于本发明采用了两个服务器合作完成匹配,整个匹配过程中的隐私得到了保护,在两个服务器不合谋的假设下,任何一个服务器均无法窃取用户的隐私数据,并且能够抵御用户和其中一个服务器的合谋。

附图说明

图1为本发明之细粒度属性匹配隐私保护方法的步骤流程图;

图2为本发明具体实施例中该细粒度属性匹配隐私保护方法所应用的框架图;

图3为本发明实施例之细粒度属性匹配隐私保护方法的流程图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

以下通过一个实际的应用场景来引入本发明之技术方案:考虑一个移动社交网络中的交友场景,即alice想要查询5公里范围内和她具有相似属性(年龄、性别、爱好等)的好友,每一个属性对应着一个相应的数值,比如年龄为25岁,性别为0(女性),对购物的喜爱程度为8。考虑细粒度查询需求,她可以设定一个查询范围,比如年龄在20到30岁之间,性别为女性,对购物的喜爱程度在8-10之间等。alice将这些查询信息发送给服务器,服务器进行匹配并且返回符合条件的结果给alice。以上场景中,服务器是诚实而好奇的实体,即能够诚实的执行每一条指令但是会试图去获取用户的隐私信息,在整个匹配过程中,alice和其他参与交友的用户并不想将任何隐私信息(包括alice上传的查询信息)透露给除自己之外的任何人。

在传统的借助可信第三方服务器进行相似度匹配的系统中,收集用户上传的属性和进行相似度计算均由同一服务器完成,难以实现对属性进行范围查询并且在这种系统模型中服务器是否可信对于整个方案的安全性来说至关重要,然而在现实生活中很难保证服务器是完全可信的并且用户无法判断当前提供服务的服务器可信与否,因此对于用户来说仍然存在隐私泄露的风险。解决方案之一就是在云端部署多个服务器,将原本由一个服务器处理的工作分配给不同服务器来完成,利用密码学等技术保证整个过程中的隐私安全。基于这一解决方案,本发明提出了支持范围查询的细粒度属性匹配隐私匹配方案来实现对属性的范围查询且避免隐私的泄露。

图1为本发明之细粒度属性匹配隐私保护方法的步骤流程图。如图1所示,本发明一种细粒度属性匹配隐私保护方法,包括如下步骤:

步骤s1,初始化。具体地,所有用户端及服务器生成自己的公私钥对,同时,每个用户端还生成cipe加密所需的随机数组,计算数组元素之和并加密后发送给第一服务器sa。

图2为本发明具体实施例中该细粒度属性匹配隐私保护方法所应用的框架图,该框架由多个用户端、第一服务器servera(sa)和第二服务器serverb(sb)组成,用户端包括作为交友请求者alice的用户端及被查询的用户端bob,分别称之为第一用户端与第二用户端。本发明采用了一种叫做cipe(comparableinnerproductencryption)的保序加密算法,其主要思想是将两个数值a、b映射到两个向量p和q,使得p和q点积值的符号与b-a值的符号一致,即p·q>0则(b-a)>0;p·q<0则b-a<0,本发明的主要通过使用该保序加密算法对用户上传的属性进行加密,通过密文相乘的结果则可以判断两个属性的大小关系,从而实现判断属性值与所给范围上下界的大小关系,进一步得出属性是否在范围内。为了第一用户端和第二用户端的密文能够相乘,本发明中所有的用户均采用相同的cipe秘钥对属性或查询值进行加密,第一服务器sa负责这一秘钥的分发。然而公开的秘钥无法保证用户的隐私安全,因此在采用cipe秘钥加密的基础上每一个用户还执行paillier加密算法(所述paillier加密算法是一种非对称的加密算法,即加密密钥和解密密钥是不同的,其加密密钥是公开的,任何人都可以拿到,而解密密钥则是保密的,只有自己才知道),对cipe加密后向量中的每一个元素再次加密,加密密钥为sb的公钥,加密后的密文发送给sa存储。

具体地,步骤s1进一步包括:

步骤s100,所有用户端和服务器生成自己的公私钥对(pk,sk)。具体地,将alice和bob的秘钥对分别记为(pka,ska)和(pkb,skb),第一服务器sa和第二服务器sb的秘钥对分别记为(pksa,sksa)和(pksb,sksb)。

步骤s101,第一服务器sa随机选取两个长度为的比特串l1,l2,将它们头尾相连成长度为d的串l,使用用户端公钥加密后发送给用户端,即本步骤为第一服务器sa生成cipe密钥的步骤,对于用户端alice,使用alice的公钥加密后发给alice,对于用户端bob,则使用bob的公钥加密后发给bob。

步骤s102,每个用户端生成cipe加密所需的随机数组,计算数组元素之和并利用第二服务器sb的公钥(用户端可通过访问公钥基础设施pki获取第二服务器sb的公钥)进行加密,分别将加密后的结果发送给第一服务器sa,即分别将加密所得的发送给第一服务器sa。

步骤s2,第一用户端与第二用户端分别利用cipe算法生成查询和属性向量,并使用paillier加密算法对向量中每个元素加密后发送给第一服务器sa。

具体地,步骤s2进一步包括:

步骤s200,作为被查询者的第二用户端将每一个属性值加密成安全索引将所有属性所对应的安全索引的集合发送给第一服务器sa。

在本发明中,第i位用户的属性向量记作其中前两个属性分别代表用户位置的经度和纬度信息,考虑到使用范围为中国境内,经度范围为73.550至135.083,纬度范围为3.850至53.550(经纬度数值保留小数点后第三位),为方便后续方案的执行需对经纬度的数值乘以103转换为整数值,因此用户属性向量中经纬度属性的范围lon∈[73550,135083],lat∈[3850,53550],其余属性为用户的个人属性,如年龄、性别等,所有用户的属性向量构成用户数据总的集合d=a1,a2,…,an。

在本发明具体实施例中,第二用户端即用户端(bob),通过执行如下步骤s200a-步骤s200d,将每一个属性值加密成安全索引所有属性所对应的安全索引的集合记作并将其发送给第一服务器sa。其具体步骤如下:

步骤s200a,对于每个属性第二用户端bob执行cipe算法将其转换为d维的向量pi,即第二用户端bob采用cipe秘钥对每个属性ai进行加密,从而得到一个d维的向量pi。

步骤s200b,第二用户端bob执行paillier加密算法,使用第二服务器sb的公钥加密记作并计算步骤s200a中生成的向量pi中所有元素的平方和

步骤s200c,根据步骤s200b的结果构造安全索引其中

步骤s200d,将所有属性所对应的安全索引的集合发送给第一服务器sa。

步骤s201,作为查询者的第一用户端生成查询向量qj,将每个查询加密成安全查询并将所有查询所对应的安全查询集合发送给第一服务器sa。

在本发明中,作为查询者的第一用户端(例如alice)生成的对第j位用户(例如第二用户端bob)的第i个属性的查询为其中分别代表查询的下界和上界,查询者生成对第j位用户的查询向量记作第二用户端通过如下步骤s201a-步骤s201d将每个查询加密成安全查询所有查询所对应的安全查询集合为具体地,步骤s201进一步包括:

步骤s201a,第一用户端alice构造对第二用户端例如bob的属性集的查询向量其中qj=[bj,l,bj,u],bj,l和bj,u分别为查询范围的下界和上界,对于每一个通过cipe算法将bj,φ转换为d维的向量qj,φ,φ∈{l,u},即对于每一个第一用户端采用cipe秘钥进行加密,得到d维的向量qj,φ,φ∈{l,u}。

步骤s201b,对于第一用户端alice,执行paillier加密算法,使用第二服务器sb的公钥对转换后的向量的每个元素进行加密,记作并计算步骤s201a中生成的向量qj,φ,φ∈{l,u}中所有元素的平方和

步骤s201c,根据步骤s201b的结果对每个查询构造安全查询向量其中,

步骤s201d,第一用户端alice生成权重向量w=(w1,w2,...,wm)(本发明中位置信息不分配权重)和相似度匹配阈值δ,并将所有查询所对应的安全查询向量集合权重w以及相似度匹配阈值δ发送给第一服务器sa。

步骤s3,第一服务器sa与第二服务器sb通过执行安全点积协议计算属性向量和查询向量点积,以根据点积值判断属性向量的属性值是否在查询向量对应的查询范围内。

为了能够安全地在服务器中计算两个向量的点积,避免泄露隐私信息,本发明设计了一种安全点积协议。在安全点积协议中,第一服务器sa利用paillier加密算法的同态性实现对密文的计算,整个过程中无法获取到密文所对应的明文信息;通过利用第一服务器sa和第二服务器sb交互,让第二服务器sb帮助第一服务器sa处理部分计算工作,能够保证整个过程中的隐私安全。具体地,所述安全点积协议过程如下:

步骤a,第一服务器sa计算属性值和查询值的差值的密文并将该属性值和查询值的差值的密文发送给第二服务器sb。

根据步骤s1,第一服务器sa所收到的属性和查询向量均是使用第二服务器sb的公钥加密,因此第一服务器sa无法获取明文中的隐私信息。由于paillier加密算法具有加法同态性,因此第一服务器sa在不需要解密的情况下也可以计算属性值和查询值的差值的密文即执行对于一个长度为d的属性向量和查询向量,第一服务器sa需要一次性计算d组差值并一并发送给第二服务器sb。

步骤b,第二服务器sb使用自己的私钥进行解密得到d组差值qi-pi,计算d组差值qi-pi的平方和,并利用自己的公钥加密发送给第一服务器sa。

具体地说,第二服务器sb收到之后使用自己的私钥sksb进行解密得到d组差值qi-pi,由于先前假设第一服务器sa、第二服务器sb不合谋,因此第二服务器sb只能得到一堆数字,无法得知这些数字的具体信息以及将这些数字和相关属性一一对应。然后第二服务器sb计算d组差值的平方和并使用自己的公钥pksb加密发送给第一服务器sa,确保其无法进行解密。

步骤c,第一服务器sa接收到第二服务器sb的密文后,计算得到属性向量与查询向量点积的密文,并计算作为查询者的用户端与被查询者的用户端的随机数组元素和密文,将属性向量与查询向量点积的密文以及随机数组元素和密文发送给第二服务器sb。

对于属性向量p和查询向量q,他们的点积可以写成以下形式

因此,第一服务器sa在收到第二服务器sb发送的密文之后,即可根据上述公式(1)计算出属性向量p和查询向量q点积的密文

然后,计算作为查询者的用户端与被查询者的用户端的随机数组元素和密文:

发送给第二服务器sb。

步骤d,第二服务器sb通过利用第二服务器sb的私钥解密得到属性向量p和查询向量q点积p·q,并将解密结果映射到g′∈{1,0,-1},将g′作为最终结果发送给第一服务器sa。

具体地,第二服务器sb对通过解密得到属性向量p和查询向量q点积p·q,并计算:

并令:

将g′作为点积值发送给第一服务器sa(g’仅保留了点积值的正负关系,掩盖了p·q的真实值)。

也就是说,第一服务器sa在接收到步骤s2发送的加密后的查询和属性向量后,与第二服务器sb可通过执行上述安全点积协议计算属性向量和查询向量点积,从而可以根据点积值判断属性向量和查询向量所对应的两个值的大小关系。

第一用户端alice生成的查询向量包括一个上界和一个下界,而安全点积协议只能够判断两个数的大小关系,要想确定属性值是否在查询范围内需执行两次安全点积协议,分别通过输出值g’判断属性值与查询上界和下界的大小关系,进而才能确定属性值是否在查询范围内。

步骤s3进一步包括:

步骤s300,对于当前用户端位置的安全索引iφ和对应的查询执行安全点积协议计算得到υφ,l=p·qφ,l和υφ,u=p·qφ,u,其中φ∈{lon,lat}。

步骤s301,若υφ,l≤0且υφ,u≥0,(φ∈{lon,lat}),继续执行后续步骤,否则重新选择一个新的用户并返回步骤s300。

步骤s302,对于每一个执行安全点积协义计算υk,l=p·qk,l和υk,u=p·qk,u。

步骤s303,生成m维的比较结果向量r=(r1,r2,...,rm),其中,

步骤s304,根据比较结果向量以及权重向量计算查询向量与属性向量的相似度。

具体地,相似度s计算如下:

步骤s305,根据获得的相似度以及相似度匹配阈值δ输出匹配结果,即:

相似度大于等于相似度匹配阈值则视为匹配成功,否则视为匹配失败。

实施例

如图3所示,在本实施例中,本发明一种细粒度属性匹配隐私保护方法,主要分为四个阶段,分别为初始化(step1)、生成安全索引(step2)、生成安全查询(step3)、相似度比较(step4)。

step1,初始化

(1)所有用户和服务器生成自己的公私钥对(pk,sk),将alice和bob的秘钥对分别记为(pka,ska)和(pkb,skb),第一服务器sa和第二服务器sb的秘钥对分别记为(pksa,sksa)和(pksb,sksb)。

(2)第一服务器sa随机选取两个长度为的比特串l1,l2,将它们头尾相连成长度为d的串l,使用用户端公钥加密后发送给用户端。

(3)每个用户端生成cipe加密所需的随机数组,计算数组元素之和并加密,分别将加密所得的发送给第一服务器sa

step2(bob),(bob)用户端生成安全索引

(1)对于每个属性用户端bob执行cipe算法将其转换为d维的向量pi。

(2)用户端bob使用第二服务器sb的公钥加密记作并计算

(3)构造安全索引其中

(4)将所有属性所对应的安全索引的集合发送给第一服务器sa。

step3(alice),alice用户端生成安全查询secquery(qj,l)

(1)用户端alice构造对用户端bob的属性集的查询向量其中qj=[bj,l,bj,u],bj,l和bj,u分别为查询范围的下界和上界,对于每一个通过cipe算法将bj,φ转换为d维的向量qj,φ,φ∈{l,u}。

(2)对于alice使用第二服务器sb的公钥加密,记作并计算

(3)构造安全查询向量其中,

(4)alice生成权重向量w=(w1,w2,...,wm)(本发明中位置信息不分配权重)和相似度匹配阈值δ(比较结果高于δ视为匹配成功)。

(5)将发送给第一服务器sa。

step4(sa,sb),相似度比较

此阶段,sa先对用户的地理位置进行筛选,若用户的地理位置不在查询者给定的范围内则跳过此用户,不再对其进行后续的属性相似度比较,具体步骤如下:

(1)对于当前用户端位置的安全索引iφ和对应的查询执行安全点积协议计算得到υφ,l=p·qφ,l和υφ,u=p·qφ,u,其中φ∈{lon,lat}。

(2)若υφ,l≤0且υφ,u≥0,(φ∈{lon,lat}),,继续执行后续步骤,否则重新选择一个新的用户并返回步骤(1)。

(3)对于每一个执行安全点积协义计算υk,l=p·qk,l和υk,u=p·qk,u。

(4)生成m维的比较结果向量r=(r1,r2,...,rm),其中,

(5)计算相似度

(6),输出匹配结果

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。


技术特征:

1.一种细粒度属性匹配隐私保护方法,包括如下步骤:

步骤s1,所有用户端及服务器生成自己的公私钥对,同时每个用户端还生成cipe加密所需的随机数组,计算数组元素之和并加密后发送给第一服务器;

步骤s2,第一用户端与第二用户端分别利用cipe算法生成查询和属性向量并使用paillier加密算法对向量中每个元素加密后发送给第一服务器;

步骤s3,第一服务器通过与第二服务器执行安全点积协议计算获得属性向量和查询向量点积,以根据点积值判断属性向量对应的属性值是否在查询向量对应的查询范围内。

2.如权利要求1所述的一种细粒度属性匹配隐私保护方法,其特征在于,步骤s1进一步包括:

步骤s100,所有用户端和服务器生成自己的公私钥对(pk,sk);

步骤s101,第一服务器随机选取两个长度为的比特串l1,l2,将它们头尾相连成长度为d的串l,并使用相应的用户端公钥加密后发送给相应用户端;

步骤s102,每个用户端生成cipe加密所需的随机数组,计算数组元素之和并加密,并分别将加密后的结果发送给第一服务器。

3.如权利要求2所述的一种细粒度属性匹配隐私保护方法,其特征在于,步骤s2进一步包括:

步骤s200,作为被查询者的第二用户端将每一个属性值加密成安全索引将所有属性所对应的安全索引的集合发送给第一服务器;

步骤s201,作为查询者的第一用户端生成查询向量qj,将每个查询加密成安全查询向量并将所有查询所对应的安全查询向量集合发送给第一服务器。

4.如权利要求3所述的一种细粒度属性匹配隐私保护方法,其特征在于,步骤s200进一步包括:

步骤s200a,对于每个属性,第二用户端执行cipe算法将其转换为d维的向量pi;

步骤s200b,第二用户端执行paillier加密算法,使用第二服务器的公钥加密记作并计算步骤s200a中生成的向量pi中所有元素的平方和

步骤s200c,根据步骤s200b的结果构造安全索引其中

步骤s200d,将所有属性所对应的安全索引的集合发送给第一服务器。

5.如权利要求4所述的一种细粒度属性匹配隐私保护方法,其特征在于,步骤s201进一步包括:

步骤s201a,第一用户端构造对第二用户端的属性集的查询向量其中qj=[bj,l,bj,u],bj,l和bj,u分别为查询范围的下界和上界,对于每一个通过cipe算法将bj,φ转换为d维的向量qj,φ,φ∈{l,u};

步骤s201b,对于第一用户端执行paillier加密算法,使用第二服务器的公钥对转换后的向量的每个元素进行加密,记作并计算步骤s201a中生成的向量qj,φ,φ∈{l,u}中所有元素的平方和

步骤s201c,根据步骤s201b的结果对每个查询构造安全查询向量,得到安全查询向量集合其中,

步骤s201d,第一用户端生成权重向量w=(w1,w2,...,wm)和相似度匹配阈值δ,并将所有查询所对应的安全查询集合权重w以及相似度匹配阈值δ发送给第一服务器。

6.如权利要求5所述的一种细粒度属性匹配隐私保护方法,其特征在于,所述安全点积协议包括如下步骤:

步骤a,第一服务器计算属性值和查询值的差值的密文并将该属性值和查询值的差值的密文发送给第二服务器;

步骤b,第二服务器使用自己的私钥进行解密得到d组差值qi-pi,计算d组差值qi-pi的平方和,并利用自己的公钥加密发送给第一服务器;

步骤c,第一服务器接收到第二服务器的密文后,计算得到属性向量与查询向量点积的密文,并计算作为查询者的用户端与被查询者的用户端的随机数组元素和密文,将属性向量与查询向量点积的密文以及随机数组元素和密文发送给第二服务器;

步骤d,第二服务器sb通过解密得到属性向量p和查询向量q点积,并将解密结果映射到g′∈{1,0,-1},将g′作为最终结果发送给第一服务器进行输出。

7.如权利要求6所述的一种细粒度属性匹配隐私保护方法,其特征在于,步骤s3进一步包括:

步骤s301,对于每一个安全索引和安全查询向量执行安全点积协议计算vk,l=p·qk,l和vk,u=p·qk,u;

步骤s303,生成m维的比较结果向量r=(r1,r2,...,rm),其中,

步骤s304,根据比较结果向量以及权重向量计算查询向量与属性向量的相似度;

步骤s305,根据获得的相似度以及相似度匹配阈值δ输出匹配结果。

8.如权利要求7所述的一种细粒度属性匹配隐私保护方法,其特征在于,于步骤s301之前,还包括如下步骤:

步骤s300,对于当前用户端位置的安全索引iφ和对应的查询执行安全点积协议计算得到vφ,l=p·qφ,l和vφ,u=p·qφ,u,其中φ∈{lon,lat},若υφ,l≤0且υφ,u>0,(φ∈{lon,lat}),继续执行后续步骤,否则重新选择一个新的用户并返回步骤s300。

9.如权利要求8所述的一种细粒度属性匹配隐私保护方法,其特征在于,所述相似度s计算如下:

技术总结
本发明公开了一种细粒度属性匹配隐私保护方法,包括如下步骤:步骤S1,所有用户端及服务器生成自己的公私钥对,同时每个用户端还生成CIPE加密所需的随机数组,计算数组元素之和并加密后发送给第一服务器;步骤S2,第一用户端与第二用户端分别利用CIPE算法生成查询和属性向量并使用Paillier加密算法对向量中每个元素加密后发送给第一服务器;步骤S3,第一服务器通过与第二服务器执行安全点积协议计算获得属性向量和查询向量点积,以根据点积值判断属性向量对应的属性值是否在查询向量对应的查询范围内。

技术研发人员:彭滔;钟文韬;官科健;邹益鹏;王国军
受保护的技术使用者:广州大学
技术研发日:2021.05.11
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-8374.html

最新回复(0)