CN113204788B - 一种细粒度属性匹配隐私保护方法 - Google Patents

一种细粒度属性匹配隐私保护方法 Download PDF

Info

Publication number
CN113204788B
CN113204788B CN202110508428.7A CN202110508428A CN113204788B CN 113204788 B CN113204788 B CN 113204788B CN 202110508428 A CN202110508428 A CN 202110508428A CN 113204788 B CN113204788 B CN 113204788B
Authority
CN
China
Prior art keywords
server
vector
attribute
query
user terminal
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
Application number
CN202110508428.7A
Other languages
English (en)
Other versions
CN113204788A (zh
Inventor
彭滔
钟文韬
官科健
邹益鹏
王国军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou University
Original Assignee
Guangzhou University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou University filed Critical Guangzhou University
Priority to CN202110508428.7A priority Critical patent/CN113204788B/zh
Publication of CN113204788A publication Critical patent/CN113204788A/zh
Application granted granted Critical
Publication of CN113204788B publication Critical patent/CN113204788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种细粒度属性匹配隐私保护方法
技术领域
本发明涉及个人隐私保护技术领域,特别是涉及一种支持精确查询的细粒度属性匹配隐私保护方法。
背景技术
移动社交网络(Mobile Social Networks,MSN)将人们联系到一起,组成了一个巨大的关系网,用户通过移动社交网络随时随地地向他人分享照片、视频、位置等信息,并且通过移动社交网络,用户之间可以随时随地取得联系。然而,人们日常使用的手机APP中记录了大量的个人隐私信息,由于这些信息均存储在APP服务提供商的服务器中,服务提供商对于用户的隐私数据所做的任何操作用户均不知情,因此越来越多的人对使用APP过程中的隐私安全产生了担忧。与此同时,人们对于网络交友应用的需求也越来越多,据互联网统计,2019年中国网络交友应用用户量达到6.22亿人,并保持逐年增长的态势。网络交友软件主要是基于用户属性的相似度匹配方式来实现用户间的配对,这种方式将用户的属性值如年龄、性别、爱好等进行比较,并将相似度高的用户建立联系,从而达到交友的目的。为了保证整个匹配过程中用户的隐私不被泄露,APP会先对用户的属性采用加密等方式处理,然而对加密后的属性进行相似度比较计算量会远大于明文比较,因此找到一种既高效又能够保护隐私的匹配方案成为热点研究课题。
现有的属性匹配方案总体可以分为以下几类:
1)基于私密交集的方案(Private Set Insertion)
Agrawal et al.(R.Agrawal,A.Evfimievski,and R.Srikant,“Informationsharing across private databases,”inProc.ACM SIGMOD Int.Conf.Man-age.Data,2003,pp.86–97)提出了一种求私密交集(Private Set Intersection,PSI)的方案,这种方案可以实现求取双方所拥有的集合的交集而不会泄露双方集合中的信息;Vaidya et al.文献(J.Vaidya and C.Clifton,“Secure set intersection cardinality withapplication to association rulemining,”J.Comput.Secur.,vol.13,no.4,pp.593–622,2005)将Agrawal的方案进行了改进,实现了求n个集合的私密交集;在另一文献(M.vonArb,M.Bader,M.Kuhn,and R.Wattenhofer,“VENETA:Serverless friend-of-frienddetection in mobile social networking,”in Proc.IEEE Int.Conf.WirelessMobile Comput.Netw.Commun.,2008,pp.184–189)中,此方法被用于在社交网络中求用户间的相似度,将双方属性集合交集的元素个数作为衡量相似度的标准;在此基础上,更加细粒度的属性匹配方案(Yang Z,Zhang B,Dai J,et al.E-smalltalker:A distributedmobile system for social network-ing in physical proximity[C]//2010IEEE 30thInternational Conference on Distributed ComputingSystems.IEEE,2010:468-477)也被提出,根据用户不同兴趣偏好分配不同的权重并设置属性匹配的优先级进行匹配。为了避免复杂的密码学计算,基于布隆过滤器(Bloom Filter)的属性匹配方案(Freedman MJ,Hazay C,Nissim K,et al.Efficent Set Intersection with Simulation-BasedSecurity[J].Journal of Cryptology,2016,29(1):115-155,以及Li M,Cao N,Yu S,etal.Findu:Privacy-preserving personal profile matching in mobilesocialnetworks[C]//2011 Proceedings IEEE INFOCOM.IEEE,2011:2435-2443)被提出,用户分别采用不同的Hash函数将每一个属性映射到一个向量中,最后双方将各自得到的向量发送给服务器,服务器通过向量的比较得出两个用户属性集合的交集。这种方法能更加快速地求出两个集合的交集从而提高匹配的效率,不过这种方法也会有一定的错误率。总之,基于私密交集的方案虽然可以较快地实现两个用户的匹配,但是由于整个匹配过程只关注两个集合中相同的部分,因此无法完成更加细粒度的匹配,比如年龄相近、兴趣爱好相近等。
2)基于属性向量点积的相似度计算方法
基于用户属性向量点积的相似度计算方法主要是将两个用户属性向量的点积值作为衡量两个用户相似度的依据。这种方法可以一定程度上满足细粒度的需求,但是无法满足对指定属性限定范围进行更加细粒度的查询。
3)基于秘密共享和多方安全计算的方法
基于秘密共享以及多方安全计算的属性相似度匹配方案可以实现多个用户共同计算相似度并保证整个过程中每个用户的隐私不被泄露。其中,秘密共享主要是将一个秘密拆分成多份,每个部分分别由一个用户保管,只有当多个用户共同协作才能够恢复该秘密,避免了隐私的泄露。多方安全计算主要是多个用户共同计算一个函数,每个用户在计算过程中除了能够知道自己的输入对应的输出以外无法获得任何信息,从而保证隐私的安全。
4)基于密码学的方法
随着移动设备性能的增强,基于密码学技术的方案也被提出。在基于属性加密(Attribute Based Encryption,ABE)的方案中,用户根据自己的属性生成访问控制策略,将其作为密钥对信息进行加密得到密文,其余用户只有当属性个数达到加密者所设定的阈值时才可以对密文进行解密。Gao et al.(Gao C,Cheng Q,Li X,et al.Cloud-assistedprivacy-preserving profile-matching scheme undermultiple keys in mobilesocial network[J].Cluster Computing,2019,22(1):1655-1663)使用同态加密和代理重加密技术,提出了一种在双云服务器辅助下进行属性文件相似度匹配的方案,采用属性向量点积相似度计算方法计算用户间的相似度并且将向量点积计算工作分发给两个服务器共同完成计算,利用同态加密实现对密文的运算并且采用一次一密技术保证两个服务器能够共同完成计算而***露用户的任何隐私信息,实现了隐私的保护并且能够抵御用户和服务器的同谋。
总的来说,上述技术方案普遍存在如下缺点:
(1)现有的方案对于用户之间属性的相似度均只考虑了相同或相近,对于实际应用中还可能会出现的范围查询,例如条件为“年龄在20-30岁之间,身高在170-180之间”的查询还无法实现。
(2)现有方案对于两个用户的相似度的计算只考虑了两个用户属性向量的相似度,并没有将两个用户的位置信息加以考虑,例如对于一些条件为“距离查询用户2公里以内”的查询还无法实现。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种细粒度属性匹配隐私保护方法,通过采用轻量级的保序加密来对用户的属性信息进行加密,可以方便通过密文判断两个属性值的大小关系,使得通过属性以及查询上下界的密文能够很容易判断属性值是否在查询范围内,从而实现通过范围对属性值进行查询。
为达上述及其它目的,本发明提出一种细粒度属性匹配隐私保护方法,包括如下步骤:
步骤S1,所有用户端及服务器生成自己的公私钥对,同时每个用户端还生成CIPE加密所需的随机数组,计算数组元素之和并加密后发送给第一服务器;
步骤S2,第一用户端与第二用户端分别利用CIPE算法生成查询和属性向量并使用Paillier加密算法对向量中每个元素加密后发送给第一服务器;
步骤S3,第一服务器通过与第二服务器执行安全点积协议计算获得属性向量和查询向量点积,以根据点积值判断属性向量对应的属性值是否在查询向量对应的查询范围内。
优选地,步骤S1进一步包括:
步骤S100,所有用户端和服务器生成自己的公私钥对(pk,sk);
步骤S101,第一服务器随机选取两个长度为
Figure BDA0003059306970000041
的比特串L1,L2,将它们头尾相连成长度为d的串L,并使用相应的用户端公钥加密后发送给相应用户端;
步骤S102,每个用户端生成CIPE加密所需的随机数组,计算数组元素之和并加密,并分别将加密后的结果发送给第一服务器。
优选地,步骤S2进一步包括:
步骤S200,作为被查询者的第二用户端将每一个属性值加密成安全索引
Figure BDA0003059306970000051
将所有属性所对应的安全索引的集合发送给第一服务器;
步骤S201,作为查询者的第一用户端生成查询向量Qj,将每个查询
Figure BDA0003059306970000052
加密成安全查询向量/>
Figure BDA0003059306970000053
并将所有查询所对应的安全查询向量集合/>
Figure BDA0003059306970000054
发送给第一服务器。
优选地,步骤S200进一步包括:
步骤S200a,对于每个属性,第二用户端执行CIPE算法将其转换为d维的向量Pi
步骤S200b,第二用户端使用第二服务器的公钥加密
Figure BDA0003059306970000055
记作
Figure BDA0003059306970000056
并计算步骤S200a中生成的向量Pi中所有元素的平方和/>
Figure BDA0003059306970000057
步骤S200c,根据步骤S200b的结果构造安全索引
Figure BDA0003059306970000058
其中/>
Figure BDA0003059306970000059
步骤S200d,将所有属性所对应的安全索引的集合
Figure BDA00030593069700000510
发送给第一服务器。
优选地,步骤S201进一步包括:
步骤S201a,第一用户端构造对第二用户端的属性集
Figure BDA00030593069700000511
的查询向量
Figure BDA00030593069700000512
其中Qj=[bj,l,bj,u],bj,l和bj,u分别为查询范围的下界和上界,对于每一个/>
Figure BDA00030593069700000513
通过CIPE算法将bj,φ转换为d维的向量qj,φ,φ∈{l,u};
步骤S201b,对于
Figure BDA00030593069700000514
第一用户端使用第二服务器的公钥对转换后的向量的每个元素进行加密,记作/>
Figure BDA00030593069700000515
并计算步骤S201a中生成的向量qj,φ,φ∈{l,u}中所有元素的平方和/>
Figure BDA00030593069700000516
步骤S201c,根据步骤S201b的结果对每个查询构造安全查询向量,得到安全查询向量集合
Figure BDA00030593069700000517
其中,
Figure BDA0003059306970000061
步骤S201d,第一用户端生成权重向量w=(w1,w2,...,wm)和相似度匹配阈值δ,并将所有查询所对应的安全查询集合
Figure BDA0003059306970000062
权重w以及相似度匹配阈值δ发送给第一服务器。
优选地,所述安全点积协议包括如下步骤:
步骤a,第一服务器计算属性值和查询值的差值的密文
Figure BDA0003059306970000063
并将该属性值和查询值的差值的密文/>
Figure BDA0003059306970000064
发送给第二服务器;
步骤b,第二服务器使用自己的私钥进行解密得到d组差值qi-pi,计算d组差值qi-pi的平方和,并利用自己的公钥加密发送给第一服务器;
步骤c,第一服务器接收到第二服务器的密文后,计算得到属性向量与查询向量点积的密文,并计算作为查询者的用户端与被查询者的用户端的随机数组元素和密文,将属性向量与查询向量点积的密文以及随机数组元素和密文发送给第二服务器;
步骤d,第二服务器通过解密得到属性向量p和查询向量q点积,并将解密结果映射到g′∈{1,0,-1},将g′作为最终结果发送给第一服务器进行输出。
优选地,步骤S3进一步包括:
步骤S301,对于每一个安全索引
Figure BDA0003059306970000065
和安全查询向量/>
Figure BDA0003059306970000066
执行安全点积协议计算υk,l=p·qk,l和υk,u=p·qk,u
步骤S303,生成m维的比较结果向量r=(r1,r2,...,rm),其中,
Figure BDA0003059306970000067
步骤S304,根据比较结果向量以及权重向量计算查询向量与属性向量的相似度;
步骤S305,根据获得的相似度以及相似度匹配阈值δ输出匹配结果。
优选地,于步骤S301之前,还包括如下步骤:
步骤S300,对于当前用户端位置的安全索引Iφ和对应的查询
Figure BDA0003059306970000071
执行安全点积协议计算得到υφ,l=p·qφ,l和υφ,u=p·qφ,u,其中φ∈{lon,lat},若υφ,l≤0且υφ,l>0,(φ∈{lon,lat}),继续执行后续步骤,否则重新选择一个新的用户并返回步骤S300。
优选地,所述相似度s计算如下:
Figure BDA0003059306970000072
与现有技术相比,本发明一种细粒度属性匹配隐私保护方法能够设定属性和位置的查询范围,提供更加细粒度的匹配,并且由于本发明采用了两个服务器合作完成匹配,整个匹配过程中的隐私得到了保护,在两个服务器不合谋的假设下,任何一个服务器均无法窃取用户的隐私数据,并且能够抵御用户和其中一个服务器的合谋。
附图说明
图1为本发明之细粒度属性匹配隐私保护方法的步骤流程图;
图2为本发明具体实施例中该细粒度属性匹配隐私保护方法所应用的框架图;
图3为本发明实施例之细粒度属性匹配隐私保护方法的流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
以下通过一个实际的应用场景来引入本发明之技术方案:考虑一个移动社交网络中的交友场景,即Alice想要查询5公里范围内和她具有相似属性(年龄、性别、爱好等)的好友,每一个属性对应着一个相应的数值,比如年龄为25岁,性别为0(女性),对购物的喜爱程度为8。考虑细粒度查询需求,她可以设定一个查询范围,比如年龄在20到30岁之间,性别为女性,对购物的喜爱程度在8-10之间等。Alice将这些查询信息发送给服务器,服务器进行匹配并且返回符合条件的结果给Alice。以上场景中,服务器是诚实而好奇的实体,即能够诚实的执行每一条指令但是会试图去获取用户的隐私信息,在整个匹配过程中,Alice和其他参与交友的用户并不想将任何隐私信息(包括Alice上传的查询信息)透露给除自己之外的任何人。
在传统的借助可信第三方服务器进行相似度匹配的***中,收集用户上传的属性和进行相似度计算均由同一服务器完成,难以实现对属性进行范围查询并且在这种***模型中服务器是否可信对于整个方案的安全性来说至关重要,然而在现实生活中很难保证服务器是完全可信的并且用户无法判断当前提供服务的服务器可信与否,因此对于用户来说仍然存在隐私泄露的风险。解决方案之一就是在云端部署多个服务器,将原本由一个服务器处理的工作分配给不同服务器来完成,利用密码学等技术保证整个过程中的隐私安全。基于这一解决方案,本发明提出了支持范围查询的细粒度属性匹配隐私匹配方案来实现对属性的范围查询且避免隐私的泄露。
图1为本发明之细粒度属性匹配隐私保护方法的步骤流程图。如图1所示,本发明一种细粒度属性匹配隐私保护方法,包括如下步骤:
步骤S1,初始化。具体地,所有用户端及服务器生成自己的公私钥对,同时,每个用户端还生成CIPE加密所需的随机数组,计算数组元素之和并加密后发送给第一服务器SA。
图2为本发明具体实施例中该细粒度属性匹配隐私保护方法所应用的框架图,该框架由多个用户端、第一服务器Server A(SA)和第二服务器Server B(SB)组成,用户端包括作为交友请求者Alice的用户端及被查询的用户端Bob,分别称之为第一用户端与第二用户端。本发明采用了一种叫做CIPE(Comparable Inner Product Encryption)的保序加密算法,其主要思想是将两个数值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随机选取两个长度为
Figure BDA0003059306970000091
的比特串L1,L2,将它们头尾相连成长度为d的串L,使用用户端公钥加密后发送给用户端,即本步骤为第一服务器SA生成CIPE密钥的步骤,对于用户端Alice,使用Alice的公钥加密后发给Alice,对于用户端Bob,则使用Bob的公钥加密后发给Bob。
步骤S102,每个用户端生成CIPE加密所需的随机数组,计算数组元素之和并利用第二服务器SB的公钥(用户端可通过访问公钥基础设施PKI获取第二服务器SB的公钥)进行加密,分别将加密后的结果发送给第一服务器SA,即分别将加密所得的
Figure BDA0003059306970000092
Figure BDA0003059306970000093
发送给第一服务器SA。
步骤S2,第一用户端与第二用户端分别利用CIPE算法生成查询和属性向量,并使用Paillier加密算法对向量中每个元素加密后发送给第一服务器SA。
具体地,步骤S2进一步包括:
步骤S200,作为被查询者的第二用户端将每一个属性值加密成安全索引
Figure BDA0003059306970000101
将所有属性所对应的安全索引的集合发送给第一服务器SA。
在本发明中,第i位用户的属性向量记作
Figure BDA0003059306970000102
其中前两个属性分别代表用户位置的经度和纬度信息,考虑到使用范围为中国境内,经度范围为73.550至135.083,纬度范围为3.850至53.550(经纬度数值保留小数点后第三位),为方便后续方案的执行需对经纬度的数值乘以103转换为整数值,因此用户属性向量中经纬度属性的范围lon∈[73550,135083],lat∈[3850,53550],其余属性/>
Figure BDA0003059306970000103
为用户的个人属性,如年龄、性别等,所有用户的属性向量构成用户数据总的集合D=A1,A2,…,An
在本发明具体实施例中,第二用户端即用户端(Bob),通过执行如下步骤S200a-步骤S200d,将每一个属性值加密成安全索引
Figure BDA0003059306970000104
所有属性所对应的安全索引的集合记作
Figure BDA0003059306970000105
并将其发送给第一服务器SA。其具体步骤如下:
步骤S200a,对于每个属性
Figure BDA0003059306970000106
第二用户端Bob执行CIPE算法将其转换为d维的向量Pi,即第二用户端Bob采用CIPE秘钥对每个属性ai进行加密,从而得到一个d维的向量Pi
步骤S200b,第二用户端Bob执行Paillier加密算法,使用第二服务器SB的公钥加密
Figure BDA0003059306970000107
记作/>
Figure BDA0003059306970000108
并计算步骤S200a中生成的向量Pi中所有元素的平方和/>
Figure BDA0003059306970000109
步骤S200c,根据步骤S200b的结果构造安全索引
Figure BDA00030593069700001010
其中/>
Figure BDA00030593069700001011
步骤S200d,将所有属性所对应的安全索引的集合
Figure BDA00030593069700001012
发送给第一服务器SA。
步骤S201,作为查询者的第一用户端生成查询向量Qj,将每个查询
Figure BDA0003059306970000111
加密成安全查询/>
Figure BDA0003059306970000112
并将所有查询所对应的安全查询集合/>
Figure BDA0003059306970000113
发送给第一服务器SA。
在本发明中,作为查询者的第一用户端(例如Alice)生成的对第j位用户(例如第二用户端Bob)的第i个属性的查询为
Figure BDA0003059306970000114
其中/>
Figure BDA0003059306970000115
分别代表查询的下界和上界,查询者生成对第j位用户的查询向量记作/>
Figure BDA0003059306970000116
第二用户端通过如下步骤S201a-步骤S201d将每个查询/>
Figure BDA0003059306970000117
加密成安全查询/>
Figure BDA0003059306970000118
所有查询所对应的安全查询集合为/>
Figure BDA0003059306970000119
具体地,步骤S201进一步包括:
步骤S201a,第一用户端Alice构造对第二用户端例如Bob的属性集
Figure BDA00030593069700001110
的查询向量/>
Figure BDA00030593069700001111
其中Qj=[bj,l,bj,u],bj,l和bj,u分别为查询范围的下界和上界,对于每一个/>
Figure BDA00030593069700001112
通过CIPE算法将bj,φ转换为d维的向量qj,φ,φ∈{l,u},即对于每一个/>
Figure BDA00030593069700001113
第一用户端采用CIPE秘钥进行加密,得到d维的向量qj,φ,φ∈{l,u}。
步骤S201b,对于
Figure BDA00030593069700001114
第一用户端Alice,执行Paillier加密算法,使用第二服务器SB的公钥对转换后的向量的每个元素进行加密,记作/>
Figure BDA00030593069700001115
并计算步骤S201a中生成的向量qj,φ,φ∈{l,u}中所有元素的平方和/>
Figure BDA00030593069700001116
步骤S201c,根据步骤S201b的结果对每个查询构造安全查询向量
Figure BDA00030593069700001117
其中,
Figure BDA00030593069700001118
步骤S201d,第一用户端Alice生成权重向量w=(w1,w2,...,wm)(本发明中位置信息不分配权重)和相似度匹配阈值δ,并将所有查询所对应的安全查询向量集合
Figure BDA0003059306970000121
权重w以及相似度匹配阈值δ发送给第一服务器SA。
步骤S3,第一服务器SA与第二服务器SB通过执行安全点积协议计算属性向量和查询向量点积,以根据点积值判断属性向量的属性值是否在查询向量对应的查询范围内。
为了能够安全地在服务器中计算两个向量的点积,避免泄露隐私信息,本发明设计了一种安全点积协议。在安全点积协议中,第一服务器SA利用Paillier加密算法的同态性实现对密文的计算,整个过程中无法获取到密文所对应的明文信息;通过利用第一服务器SA和第二服务器SB交互,让第二服务器SB帮助第一服务器SA处理部分计算工作,能够保证整个过程中的隐私安全。具体地,所述安全点积协议过程如下:
步骤a,第一服务器SA计算属性值和查询值的差值的密文
Figure BDA0003059306970000122
并将该属性值和查询值的差值的密文/>
Figure BDA0003059306970000123
发送给第二服务器SB。
根据步骤S1,第一服务器SA所收到的属性和查询向量均是使用第二服务器SB的公钥加密,因此第一服务器SA无法获取明文中的隐私信息。由于Paillier加密算法具有加法同态性,因此第一服务器SA在不需要解密的情况下也可以计算属性值和查询值的差值的密文
Figure BDA0003059306970000124
即执行/>
Figure BDA0003059306970000125
对于一个长度为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,他们的点积可以写成以下形式
Figure BDA0003059306970000131
因此,第一服务器SA在收到第二服务器SB发送的密文之后,即可根据上述公式(1)计算出属性向量p和查询向量q点积的密文
Figure BDA0003059306970000132
Figure BDA0003059306970000133
然后,计算作为查询者的用户端与被查询者的用户端的随机数组元素和密文:
Figure BDA0003059306970000134
Figure BDA0003059306970000135
发送给第二服务器SB。
步骤d,第二服务器SB通过利用第二服务器SB的私钥解密得到属性向量p和查询向量q点积p·q,并将解密结果映射到g′∈{1,0,-1},将g′作为最终结果发送给第一服务器SA。
具体地,第二服务器SB对
Figure BDA0003059306970000136
通过解密得到属性向量p和查询向量q点积p·q,并计算:
Figure BDA0003059306970000137
并令:
Figure BDA0003059306970000138
将g′作为点积值发送给第一服务器SA(g’仅保留了点积值的正负关系,掩盖了p·q的真实值)。
也就是说,第一服务器SA在接收到步骤S2发送的加密后的查询和属性向量后,与第二服务器SB可通过执行上述安全点积协议计算属性向量和查询向量点积,从而可以根据点积值判断属性向量和查询向量所对应的两个值的大小关系。
第一用户端Alice生成的查询向量包括一个上界和一个下界,而安全点积协议只能够判断两个数的大小关系,要想确定属性值是否在查询范围内需执行两次安全点积协议,分别通过输出值g’判断属性值与查询上界和下界的大小关系,进而才能确定属性值是否在查询范围内。
步骤S3进一步包括:
步骤S300,对于当前用户端位置的安全索引Iφ和对应的查询
Figure BDA0003059306970000141
执行安全点积协议计算得到υφ,l=p·qφ,l和υφ,u=p·qφ,u,其中φ∈{lon,lat}。
步骤S301,若υφ,l≤0且υφ,u≥0,(φ∈{lon,lat}),继续执行后续步骤,否则重新选择一个新的用户并返回步骤S300。
步骤S302,对于每一个
Figure BDA0003059306970000142
执行安全点积协义计算υk,l=p·qk,l和υk,u=p·qk,u
步骤S303,生成m维的比较结果向量r=(r1,r2,...,rm),其中,
Figure BDA0003059306970000143
步骤S304,根据比较结果向量以及权重向量计算查询向量与属性向量的相似度。
具体地,相似度s计算如下:
Figure BDA0003059306970000144
步骤S305,根据获得的相似度以及相似度匹配阈值δ输出匹配结果,即:
Figure BDA0003059306970000145
相似度大于等于相似度匹配阈值则视为匹配成功,否则视为匹配失败。
实施例
如图3所示,在本实施例中,本发明一种细粒度属性匹配隐私保护方法,主要分为四个阶段,分别为初始化(Step1)、生成安全索引(Step2)、生成安全查询(Step3)、相似度比较(Step4)。
Step1,初始化
(1)所有用户和服务器生成自己的公私钥对(pk,sk),将Alice和Bob的秘钥对分别记为(pkA,skA)和(pkB,skB),第一服务器SA和第二服务器SB的秘钥对分别记为(pkSA,skSA)和(pkSB,skSB)。
(2)第一服务器SA随机选取两个长度为
Figure BDA0003059306970000151
的比特串L1,L2,将它们头尾相连成长度为d的串L,使用用户端公钥加密后发送给用户端。
(3)每个用户端生成CIPE加密所需的随机数组,计算数组元素之和并加密,分别将加密所得的
Figure BDA0003059306970000152
和/>
Figure BDA0003059306970000153
发送给第一服务器SA
Step2(Bob),(Bob)用户端生成安全索引
Figure BDA0003059306970000154
(1)对于每个属性
Figure BDA0003059306970000155
用户端Bob执行CIPE算法将其转换为d维的向量Pi
(2)用户端Bob使用第二服务器SB的公钥加密
Figure BDA0003059306970000156
记作
Figure BDA0003059306970000157
并计算/>
Figure BDA0003059306970000158
(3)构造安全索引
Figure BDA0003059306970000159
其中/>
Figure BDA00030593069700001510
/>
(4)将所有属性所对应的安全索引的集合
Figure BDA00030593069700001511
发送给第一服务器SA。
Step3(Alice),Alice用户端生成安全查询SecQuery(Qj,L)
(1)用户端Alice构造对用户端Bob的属性集
Figure BDA00030593069700001512
的查询向量
Figure BDA0003059306970000161
其中Qj=[bj,l,bj,u],bj,l和bj,u分别为查询范围的下界和上界,对于每一个/>
Figure BDA0003059306970000162
通过CIPE算法将bj,φ转换为d维的向量qj,φ,φ∈{l,u}。
(2)对于
Figure BDA0003059306970000163
Alice使用第二服务器SB的公钥加密,记作
Figure BDA0003059306970000164
并计算/>
Figure BDA0003059306970000165
(3)构造安全查询向量
Figure BDA0003059306970000166
其中,
Figure BDA0003059306970000167
(4)Alice生成权重向量w=(w1,w2,...,wm)(本发明中位置信息不分配权重)和相似度匹配阈值δ(比较结果高于δ视为匹配成功)。
(5)将
Figure BDA0003059306970000168
发送给第一服务器SA。
Step4(SA,SB),相似度比较
Figure BDA0003059306970000169
此阶段,SA先对用户的地理位置进行筛选,若用户的地理位置不在查询者给定的范围内则跳过此用户,不再对其进行后续的属性相似度比较,具体步骤如下:
(1)对于当前用户端位置的安全索引Iφ和对应的查询
Figure BDA00030593069700001610
执行安全点积协议计算得到υφ,l=p·qφ,l和υφ,u=p·qφ,u,其中φ∈{lon,lat}。
(2)若υφ,l≤0且υφ,u≥0,(φ∈{lon,lat}),,继续执行后续步骤,否则重新选择一个新的用户并返回步骤(1)。
(3)对于每一个
Figure BDA00030593069700001611
执行安全点积协义计算υk,l=p·qk,l和υk,u=p·qk,u
(4)生成m维的比较结果向量r=(r1,r2,...,rm),其中,
Figure BDA00030593069700001612
(5)计算相似度
Figure BDA00030593069700001613
(6),输出匹配结果
Figure BDA0003059306970000171
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

Claims (5)

1.一种细粒度属性匹配隐私保护方法,包括如下步骤:
步骤S1,所有用户端及服务器生成自己的公私钥对,同时每个用户端还生成CIPE加密所需的随机数组,计算数组元素之和并加密后发送给第一服务器;
步骤S2,第一用户端与第二用户端分别利用CIPE算法生成查询和属性向量并使用Paillier加密算法对向量中每个元素加密后发送给第一服务器;包括步骤S200,作为被查询者的第二用户端将每一个属性值加密成安全索引
Figure FDA00041955112200000116
将所有属性所对应的安全索引的集合发送给第一服务器,所述步骤S200包括:步骤S200a,对于每个属性,第二用户端执行CIPE算法将其转换为d维的向量Pi;步骤S200b,第二用户端执行Paillier加密算法,使用第二服务器的公钥加密/>
Figure FDA0004195511220000011
记作/>
Figure FDA0004195511220000012
并计算步骤S200a中生成的向量Pi中所有元素的平方和/>
Figure FDA0004195511220000013
步骤S200c,根据步骤S200b的结果构造安全索引/>
Figure FDA0004195511220000014
其中
Figure FDA0004195511220000015
步骤S200d,将所有属性所对应的安全索引的集合
Figure FDA0004195511220000016
发送给第一服务器;
步骤S201,作为查询者的第一用户端生成查询向量Qj,将每个查询
Figure FDA0004195511220000017
加密成安全查询向量/>
Figure FDA0004195511220000018
并将所有查询所对应的安全查询向量集合/>
Figure FDA0004195511220000019
发送给第一服务器,步骤S201包括:步骤S201a,第一用户端构造对第二用户端的属性集/>
Figure FDA00041955112200000110
的查询向量/>
Figure FDA00041955112200000111
其中Qj=[bj,l,bj,u],bj,l和bj,u分别为查询范围的下界和上界,对于每一个
Figure FDA00041955112200000112
通过CIPE算法将bj,φ转换为d维的向量qj,φ,φ∈{l,u};步骤S201b,对于/>
Figure FDA00041955112200000113
第一用户端执行Paillier加密算法,使用第二服务器的公钥对转换后的向量的每个元素进行加密,记作/>
Figure FDA00041955112200000114
并计算步骤S201a中生成的向量qj,φ,φ∈{l,u}中所有元素的平方和/>
Figure FDA00041955112200000115
步骤S201c,根据步骤S201b的结果对每个查询构造安全查询向量,得到安全查询集合/>
Figure FDA0004195511220000021
其中,
Figure FDA0004195511220000022
步骤S201d,第一用户端生成权重向量w=(w1,w2,...,wm)和相似度匹配阈值δ,并将所有查询所对应的安全查询集合
Figure FDA0004195511220000023
权重w以及相似度匹配阈值δ发送给第一服务器;
步骤S3,第一服务器通过与第二服务器执行安全点积协议计算获得属性向量和查询向量点积,以根据点积值判断属性向量对应的属性值是否在查询向量对应的查询范围内,包括:步骤S301,对于每一个安全索引
Figure FDA0004195511220000028
和安全查询向量集合/>
Figure FDA0004195511220000024
执行安全点积协议计算vk,l=pk·qk,l和vk,u=pk·qk,u
步骤S303,生成m维的比较结果向量r=(r1,r2,...,rm),其中,
Figure FDA0004195511220000025
步骤S304,根据比较结果向量以及权重向量计算查询向量与属性向量的相似度;步骤S305,根据获得的相似度以及相似度匹配阈值δ输出匹配结果。
2.如权利要求1所述的一种细粒度属性匹配隐私保护方法,其特征在于,步骤S1进一步包括:
步骤S100,所有用户端和服务器生成自己的公私钥对(pk,sk);
步骤S101,第一服务器随机选取两个长度为
Figure FDA0004195511220000026
的比特串L1,L2,将它们头尾相连成长度为d的串L,并使用相应的用户端公钥加密后发送给相应用户端;
步骤S102,每个用户端生成CIPE加密所需的随机数组,计算数组元素之和并加密,并分别将加密后的结果发送给第一服务器。
3.如权利要求1所述的一种细粒度属性匹配隐私保护方法,其特征在于,所述安全点积协议包括如下步骤:
步骤a,第一服务器计算属性值和查询值的差值的密文
Figure FDA0004195511220000027
并将该属性值和查询值的差值的密文/>
Figure FDA0004195511220000031
发送给第二服务器;
步骤b,第二服务器使用自己的私钥进行解密得到d组差值qi-pi,计算d组差值qi-pi的平方和,并利用自己的公钥加密发送给第一服务器;
步骤c,第一服务器接收到第二服务器的密文后,计算得到属性向量与查询向量点积的密文,并计算作为查询者的用户端与被查询者的用户端的随机数组元素和密文,将属性向量与查询向量点积的密文以及随机数组元素和密文发送给第二服务器;
步骤d,第二服务器SB通过解密得到属性向量p和查询向量q点积,并将解密结果映射到g′∈{1,0,-1},将g′作为最终结果发送给第一服务器进行输出。
4.如权利要求1所述的一种细粒度属性匹配隐私保护方法,其特征在于,于步骤S301之前,还包括如下步骤:
步骤S300,对于当前用户端位置的安全索引Iφ和对应的查询
Figure FDA0004195511220000032
执行安全点积协议计算得到vφ,l=pφ·qφ,l和vφ,u=pφ·qφ,u,其中φ∈{lon,lat},若vφ,l≤0且vφ,u≥0,继续执行后续步骤,否则重新选择一个新的用户并返回步骤S300。
5.如权利要求4所述的一种细粒度属性匹配隐私保护方法,其特征在于,所述相似度s计算如下:
Figure FDA0004195511220000033
CN202110508428.7A 2021-05-11 2021-05-11 一种细粒度属性匹配隐私保护方法 Active CN113204788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110508428.7A CN113204788B (zh) 2021-05-11 2021-05-11 一种细粒度属性匹配隐私保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110508428.7A CN113204788B (zh) 2021-05-11 2021-05-11 一种细粒度属性匹配隐私保护方法

Publications (2)

Publication Number Publication Date
CN113204788A CN113204788A (zh) 2021-08-03
CN113204788B true CN113204788B (zh) 2023-06-16

Family

ID=77030895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110508428.7A Active CN113204788B (zh) 2021-05-11 2021-05-11 一种细粒度属性匹配隐私保护方法

Country Status (1)

Country Link
CN (1) CN113204788B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884675B (zh) * 2022-04-29 2023-12-05 杭州博盾习言科技有限公司 基于比特传输的多方隐私求交方法、装置、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156671A (zh) * 2013-05-13 2014-11-19 清华大学 一种保护隐私的无中心点积计算方法
CN104468612B (zh) * 2014-12-24 2017-06-23 无锡儒安科技有限公司 基于对称加密的保护隐私的属性匹配方法
CN105915520B (zh) * 2016-04-18 2019-02-12 深圳大学 基于公钥可搜索加密的文件存储、搜索方法及存储***
CN107370595A (zh) * 2017-06-06 2017-11-21 福建中经汇通有限责任公司 一种基于细粒度的密文访问控制方法
CN107682353B (zh) * 2017-10-25 2018-09-04 西安邮电大学 一种电子医疗云中的健康档案访问控制方法

Also Published As

Publication number Publication date
CN113204788A (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
Gao et al. Cloud-assisted privacy-preserving profile-matching scheme under multiple keys in mobile social network
Li et al. Achieving secure and efficient dynamic searchable symmetric encryption over medical cloud data
Xu et al. Secure fine-grained access control and data sharing for dynamic groups in the cloud
CN111835500A (zh) 基于同态加密与区块链的可搜索加密数据安全共享方法
CN110247767B (zh) 雾计算中可撤销的属性基外包加密方法
Au et al. Privacy-preserving personal data operation on mobile cloud—Chances and challenges over advanced persistent threat
CN110730064B (zh) 一种群智感知网络中基于隐私保护的数据融合方法
CN107767281B (zh) 一种基于移动社交网络二度人脉的交友匹配隐私保护方法及***
WO2018099577A1 (en) System and method for providing a collective decentralized authority for sharing sensitive data
Huang et al. Secure data group sharing and conditional dissemination with multi-owner in cloud computing
CN111581648B (zh) 在不规则用户中保留隐私的联邦学习的方法
Deng et al. Policy-based broadcast access authorization for flexible data sharing in clouds
Li et al. Secure and temporary access delegation with equality test for cloud-assisted IoV
CN113204788B (zh) 一种细粒度属性匹配隐私保护方法
Gan et al. Revocable Key‐Aggregate Cryptosystem for Data Sharing in Cloud
CN114697042A (zh) 一种基于区块链的物联网安全数据共享代理重加密方法
Qin et al. Flexible and lightweight access control for online healthcare social networks in the context of the internet of things
He et al. A lightweight secure conjunctive keyword search scheme in hybrid cloud
CN111865948A (zh) 基于匿名身份的对等云认证和密钥协商方法、***和计算机存储介质
Li et al. An efficient privacy-preserving bidirectional friends matching scheme in mobile social networks
Huang et al. Adaptive Secure Cross‐Cloud Data Collaboration with Identity‐Based Cryptography and Conditional Proxy Re‐Encryption
CN116545741A (zh) 一种基于区块链的代理重加密逆向防火墙方法
Li et al. Two‐Party Attribute‐Based Key Agreement Protocol with Constant‐Size Ciphertext and Key
Ding et al. Secure Multi‐Keyword Search and Access Control over Electronic Health Records in Wireless Body Area Networks
CN117235381B (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