基于Paillier同态加密的隐私保护平均距离查询方法与流程

文档序号:17770723发布日期:2019-05-28 19:23阅读:323来源:国知局
基于Paillier同态加密的隐私保护平均距离查询方法与流程

本发明涉及信息安全技术领域,具体涉及一种基于paillier同态加密的隐私保护平均距离查询方法。



背景技术:

随着网络技术的飞速发展,世界各地的数据库收集和分析了大量的位置信息。来自移动服务、应用程序和网络运营商等越来越多的位置数据为一些企业的发展提供了便利和新的机会。这些位置数据所有者能够明确掌握用户的位置信息,并且企业也希望能够将位置数据所有者所拥有的位置信息应用于自己的发展中,例如为企业的新分支机构找到最佳位置。但是,客户的位置信息作为一种十分重要的个人隐私数据,稍有不慎就会泄露个人身份,比如能通过客户的位置信息推导出其家庭或工作的相关信息。因此由于法律法规的要求和隐私问题的限制,位置数据所有者不能与其他企业共享该类特殊信息。企业开始寻求一种能够在不侵犯客户隐私的情况下运行基于位置的分析查询的方法。除此之外,我们需要防止拥有客户位置信息的服务提供商单独跟踪用户,他们有可能与企业合作,通过为其获取有用的信息的方式来获得酬劳。同样地,企业为了最大化自身的发展优势,也不希望与基于位置的服务提供商共享其拥有的客户列表。基于以上情况下,我们需要开发一种高效的隐私保护位置信息查询处理协议,有助于在考虑客户位置数据安全性的前提下,根据位置分布的情况找到新分支的最优位置。

最优位置选择是一种常见的基于位置的分析,它寻求找到新设施的最佳位置,在给定一组现有设施和一组客户的情况下优化目标函数。一种常见的方法是在假设位置已知的前提下在客户位置上使用相应的几何计算方法。然而,由于企业无法实时了解他们的客户的位置,第三方企业和分析师不能在现实生活中使用这些几何计算方法。为了成功地执行基于位置的查询,企业需要能够从位置数据所有者(如移动运营商和基于位置的服务提供商)收集到的最新位置。例如,虽然零售店或银行可能知道他们客户的住址,但他们也可能希望在一天中的某些时间段了解他们的位置。然而客户的工作地址可能丢失、更改或在其数据库中过期,没有实时更新的数据很大程度上影响了最佳位置的选择。因此需要从数据所有者那里收集用户的位置信息,同时保留数据所有者的一些敏感信息,以及客户的相关隐私,包括他们的身份和住址等等。

对于隐私保护解决方案,需要相互隐藏客户机的用户列表和服务器的用户列表,还需要从服务器隐藏查询的答案。否则,服务器将掌握新设施的最佳候选,并可能与竞争对手共享此信息。因此聚合查询的隐私保护解决方案十分重要,查询允许分析服务器中的位置数据并选择最佳的设施位置。通过提出的解决方案,在不与服务器共享用户列表的情况下,客户机可以获取有关用户位置的聚合信息。给定一组现有设施和一组用户,最优位置查询是为影响最大的新设施找到一个位置,方法之一是利用paillier同态加密的隐私保护最小化每个用户与其最近设备之间的平均距离。平均距离对于客户来说是一个很有价值的信息,可以将其最小化,从而最大限度地提高用户利益。此技术有许多实际的应用程序,旨在提高服务质量亦或是能够降低企业的物流成本。



技术实现要素:

针对现有技术存在的问题,本发明提供一种基于paillier同态加密的隐私保护平均距离查询方法,根据平均距离查询来优化位置选择,采用两种类型的隐私保护查询处理协议,使用部分同态加密作为构建块,对服务器和客户端的敏感数据进行加密,并对加密数据进行进一步的伪装操作,以保护双方的隐私。

为了实现上述目的,一种基于paillier同态加密的隐私保护平均距离查询方法,包括基于服务器端的平均距离查询处理协议和基于客户端的平均距离查询处理协议;

(1)基于服务器端的平均距离查询处理协议,包括以下步骤:

s1:设置位置数据所有者为服务器s、请求查询的业务为客户端c,其中,服务器s有ns个用户客户端c有nc个用户集合u=us∪uc={u1,u2,...,un},集合ui=us∩uc={u1,...,ui,...,um},服务器在不同的时间段为每一个用户sj提供位置信息;

s2:设置基于服务器端的平均距离查询处理协议的基本信息;

s2.1:服务器端选择集合u并发送给客户端,从而在客户端中隐藏服务器用户us;

s2.2:服务器用paillier同态加密系统生成公钥pks和私钥sks;

s2.3:将集合u和公钥pks发给客户端;

s3:客户端将设施位置f和查询请求发送给服务器;

s4:服务器计算f中设施和用户us之间的距离,确定每个用户ui∈us到最近设施的距离di,构建集合d={d1,d2,...,dn};

s5:服务器计算集合d中每个元素的加密值得到加密结果[t]s并发送给客户端,从而在客户端中隐藏服务器用户us和服务器用户us的位置;

s6:客户端利用paillier密码系统的乘法同态性质,计算每一个设施位置f∈f的查询结果,得到密文[x]s;

s7:客户端选择两个随机值v1和v2对密文[x]s进行伪装,得到密文[x′]s并发送给服务器,从而在服务器上隐藏uc和uc的查询结果;

s8:服务器对加密的伪装结果进行解密,得到解密结果x″并发送给客户端;

s9:客户端对密文x″进行去伪装计算,得到所需查询结果z;

(2)基于客户端的平均距离查询处理协议,包括以下步骤:

c1:设置位置数据所有者为服务器s、请求查询的业务为客户端c,其中,服务器s有ns个用户客户端c有nc个用户集合u=us∪uc={u1,u2,...,un},集合ui=us∩uc={u1,...,ui,...,um},服务器在不同的时间段为每一个用户sj提供位置信息;

c2:设置基于客户端的平均距离查询处理协议的基本信息;

c2.1:服务器选择集合u并发送给客户端,从而在客户端中隐藏服务器用户us;

c2.2:客户端用paillier同态加密系统的性质生成公钥pkc和私钥skc,客户端与服务器共享pkc;

c2.3:选择随机非零整数ri与由客户端c生成的群的模数mc互质,则

c2.4:客户端根据用户列表uc计算加密结果[t]c;

c2.5:客户端将[t]c、公钥pkc、r和客户端用户个数nc发送给服务器;

c3:服务器验证加密结果,从而在客户端隐藏用户uc的查询结果;

c4:客户端将设施位置f和查询请求发送给服务器;

c5:服务器计算f中设施和用户us之间的距离,确定每个用户ui∈us到最近设施的距离di,构建集合d={d1,d2,...,dn};

c6:客户端利用paillier密码系统的乘法同态性质,使用[t]c中的值来计算查询结果的密文[x]c;

c7:服务器将密文[x]c与零加密相乘,得到匿名化加密后的查询结果[x′]c并发送给客户端,防止服务器通过客户端对用户进行位置跟踪;

c8:客户端对匿名化加密后的查询结果进行解密操作,得到查询结果z。

进一步地,所述步骤c3中服务器验证加密结果的方式是判断是否等于ec(nc),若是,则继续协议,若否,则终止协议,其中,为客户端用户数nc的加密,mc为由客户端c生成的群的模数,gc为由客户端c生成的群的生成元,r为随机数。

本发明的有益效果:

本发明提出一种基于paillier同态加密的隐私保护平均距离查询方法,包括基于服务器端的平均距离查询处理协议和基于客户端的平均距离查询处理协议,在协议执行过程中,使用同态加密将客户端的用户列表和查询结果隐藏在服务器上,并将服务器的用户列表和位置数据隐藏在客户端上,再引入了一种客户机(如企业)在服务器的数据库(如基于位置的服务提供商)上通用服务来查询最佳设施位置,能够在实现基本需求的前提下极大确保数据的安全性和可靠性,具有很高的实用价值和扩展空间。在基于服务器的协议中,由服务器执行大部分计算,因此客户端的工作负载很低,当客户端的计算能力有限时,能够方便快速的计算;在基于客户端的协议中,由客户端执行大部分计算仅发生一次,在一定程度上降低了通信开销。在本发明提供的查询方法中,企业不需要知道用户的位置,而是通过请求来分析位置数据,利用潜在的用户空间的并集,返回聚合信息的方法来隐藏双方的用户列表,帮助企业在几个候选之中找到新设施的最佳位置,从而提高安全性。

附图说明

图1为本发明实施例中基于paillier同态加密的隐私保护平均距离查询方法的整体架构示意图;

图2为本发明实施例中基于服务器的查询处理协议的时序图;

图3为本发明实施例中基于服务器的查询处理协议的流程图;

图4为本发明实施例中基于客户端的查询处理协议的时序图;

图5为本发明实施例中基于客户端的查询处理协议的流程图。

具体实施方式

为了使本发明的目的、技术方案及优势更加清晰,下面结合附图和具体实施例对本发明做进一步详细说明。此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

一种基于paillier同态加密的隐私保护平均距离查询方法,架构如图1所示,包括基于服务器端的平均距离查询处理协议和基于客户端的平均距离查询处理协议;

(1)基于服务器端的平均距离查询处理协议,服务器s和客户端c通过五轮交互来实现平均距离查询的过程,如图2所示,具体流程如图3所示,包括以下步骤:

s1:设置位置数据所有者为服务器s、请求查询的业务为客户端c,其中,服务器s有ns个用户客户端c有nc个用户集合u=us∪uc={u1,u2,...,un},集合ui=us∩uc={u1,...,ui,...,um},服务器在不同的时间段为每一个用户sj提供位置信息。

s2:设置基于服务器端的平均距离查询处理协议的基本信息。

s2.1:服务器端选择集合u并发送给客户端,从而在客户端中隐藏服务器用户us。

s2.2:服务器用paillier同态加密系统生成公钥pks和私钥sks。

本实施例中,对于消息x生成的公钥pks=(gs,ms)和私钥sks=(λs,μs)随机选择两个大质数p和q满足gcd(pq,(p-1)(q-1))=1,即保证两个质数长度相等,计算由服务器s生成的群的模数ms=p·q,λs=1cm(p-1)(q-1),随机选择一个整数作为由服务器s生成的群的生成元μs=(l(gsλmodms2))-1modms,以此生成公钥pks和私钥sks。

s2.3:将集合u和公钥pks发给客户端。

s3:客户端将设施位置f和查询请求发送给服务器。

s4:服务器计算f中设施和用户us之间的距离,确定每个用户ui∈us到最近设施的距离di,构建集合d={d1,d2,...,dn}。

s5:服务器计算集合d中每个元素的加密值得到2×n矩阵[t]s并发送给客户端,从而在客户端中隐藏服务器用户us和服务器用户us的位置。

所述2×n矩阵[t]s的公式如下:

其中,[t1i]s为由公钥pks加密得到的加密矩阵[t]s第1行第i列的元素,[t2i]s为由公钥pks加密得到的加密矩阵[t]s第2行第i列的元素,di为用户i到最近设施的距离。

s6:客户端利用paillier密码系统的乘法同态性质,计算每一个设施位置fj∈f的查询结果,得到密文[x]s。

所述得到密文[x]s的方式如下:

[x]s={[x1]s,[x2]s};

其中,分别为第1行消息和第2行在服务器s上由公钥pks加密得到密文,ni为集合ui的用户总数。

s7:客户端选择两个随机值v1和v2对密文[x]s进行伪装,得到密文[x′]s并发送给服务器,从而在服务器上隐藏uc和uc的查询结果。

所述得到密文[x′]s的方式如下:

[x′]s={[x1′]s,[x2′]s};

其中,[x1′]s=[x1]s·es(v1)和[x2′]s=[x2]s·es(v2)分别为对第1行消息密文[x1]s和第2行消息密文[x2]s进行伪装得到密文。

s8:服务器对加密的伪装结果进行解密,得到解密结果x″并发送给客户端。

所述得到解密结果x″的方式如下:

x″={x1″,x2″};

其中,x1″=ds([x1′]s)和x2″=ds([x2′]s)分别为对第1行消息密文[x1′]s和第2行消息密文[x2′]s进行解密得到的消息。

s9:客户端对密文x″进行去伪装计算,得到所需查询结果z。

(2)基于客户端的平均距离查询处理协议,服务器s和客户端c通过四轮交互来实现平均距离查询的过程,如图4所示,流程如图5所示,包括以下步骤:

c1:设置位置数据所有者为服务器s、请求查询的业务为客户端c,其中,服务器s有ns个用户客户端c有nc个用户集合u=us∪uc={u1,u2,...,un},集合ui=us∩uc={u1,...,ui,...,um},服务器在不同的时间段为每一个用户sj提供位置信息。

c2:设置基于客户端的平均距离查询处理协议的基本信息。

c2.1:服务器选择集合u并发送给客户端,从而在客户端中隐藏服务器用户us。

c2.2:客户端用paillier同态加密系统的性质生成公钥pkc和私钥skc,客户端与服务器共享pkc。

本实施例中,对于消息x生成的公钥pkc=(gc,mc)和私钥skc=(λc,μc)随机选择两个大质数p和q满足gcd(pq,(p-1)(q-1))=1,即保证两个质数长度相等,计算由客户端c生成的群的模数mc=p·q,λc=1cm(p-1)(q-1),随机选择一个整数作为由客户端c生成的群的生成元μc=(l(gcλmodmc2))-1modmc,以此生成公钥pkc和私钥skc。

c2.3:选择随机非零整数ri与由客户端c生成的群的模数mc互质,则

本实施例中,在加密中使用随机值r可以确保两个相同的消息加密到相同的值,但可能性可以忽略不计。

c2.4:客户端根据用户列表uc计算加密结果[t]c;

其中,[ti]c为由公钥pks加密得到的消息密文集合中第i个元素。

c2.5:客户端将[t]c、公钥pkc、r和客户端用户个数nc发送给服务器;

c3:服务器验证加密结果,从而在客户端隐藏用户uc的查询结果;

本实施例中,为保证恶意客户端无法获取特定用户的查询结果服务器对得到的加密结果进行验证,服务器验证加密结果的方式是判断是否等于ec(nc),若是,则继续协议,若否,则终止协议,其中,为客户端用户数nc的加密,mc为由客户端c生成的群的模数,gc为由客户端c生成的群的生成元,r为随机数,其中1的个数为ui∈uc的个数,应等于总的客户端的用户数nc,若不相等,则说明用户数nc和加密列表[t]c不对应,表示出现错误。

c4:客户端将设施位置f和查询请求发送给服务器。

c5:服务器计算f中设施和用户us之间的距离,确定每个用户ui∈us到最近设施的距离di,构建集合d={d1,d2,...,dn}。

c6:客户端利用paillier密码系统的乘法同态性质,使用[t]c中的值来计算查询结果的密文[x]c。

所述得到密文[x]c的方式如下:

[x]c={[x1]c,[x2]c};

其中,分别为第1行消息和第2行在客户端c上由公钥pkc加密得到密文。

c7:服务器将密文[x]c与零加密相乘,得到匿名化加密后的查询结果[x′]c并发送给客户端,防止服务器通过客户端对用户进行位置跟踪。所述得到匿名化加密后的查询结果[x′]c的方式如下:

[x′]c={[x1′]c,[x2′]c};

其中,[x1′]c=[x1]c·ec(0)和[x2′]c=[x2]c·ec(0)分别为对第1行消息在客户端c上的密文[x1]c和第2行消息在客户端c上的密文[x2]c进行匿名化加密后的查询结果。

本实施例中,因与零的加密相乘不会改变结果,故为防止服务器通过客户端对用户进行位置跟踪,服务器通过将结果与零的加密相乘来匿名化加密结果。

c8:客户端对匿名化加密后的查询结果进行解密操作,得到查询结果z。

所述对匿名化加密后的查询结果进行解密操作的方式如下:

[x″]c={[x1″]c,[x2″]c};

其中,x1″=dc([x1′]c)=q·ni和x2″=dc([x2′]c)=ni分别为对第1行消息密文[x1′]s和第2行消息密文[x2′]s进行解密得到的消息。

由上式可知,查询结果z的计算公式如下:

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;因而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1