一种可验证的两方位置距离隐私保护计算方法与流程

文档序号:31507966发布日期:2022-09-14 10:38阅读:208来源:国知局

1.本发明属于隐私保护技术领域,具体涉及一种可验证的两方位置距离隐私保护计算方法。


背景技术:

2.随着数据时代的发展,隐私泄露事件层出不穷,隐私泄露问题受到越来越多的关注,如何在使用数据的同时保障数据的隐私成为安全研究人员的研究重点。为了解决这一问题,安全多方计算技术被提出。两方之间的位置距离信息的隐私保护问题具有重要的应用价值,现有技术通常需要进行坐标间的两方欧式距离安全计算,得出相应的位置距离结果。然而,这没有考虑到,双方间可能作恶的问题,一方渴望得到对方坐标,却不希望对方得到自身正确的反馈结果,如何在隐私保护的前提下,能够在可验证的模型下进行两方位置距离的计算,在得到结果的同时验证结果的正确性,则需要技术手段得以实现。
3.现已公开的技术中与本专利比较接近的专利为:隐私保护下的向量相似性判断方法(cn106788962a),本发明涉及隐私保护下的向量相似性判断方法,其中基于向量伸缩变换的隐私保护下的向量相似性判断方法,包括:a、接收两个标准向量x1、x2和待查询向量x3;b、对x1、x2和x3进行伸缩,得到两个标准输出向量l1、l2和待查询输出向量l3;c、设置误差阈值d后,分别计算||l1-l3||和||l2-l3||;d、比较||l1-l3||-||l2-l3||与d的大小关系,确定x3与x1或x2相似。本发明能够在不公开向量每个维度的值的前提下,通过比较向量的模长,高效的判断向量之间的相似性,并且对密文比较的效率和明文比较对比,性能几乎没有下降。但是,该方法存在如下问题:
4.1)该隐私保护下的向量相似性判断方法,是基于半诚实模型下建立的,并没有对计算结果进行验证。在半诚实模型下,参与方无法篡改或发送虚假结果。而在现实场景中,参与双方往往互不信任,不想让对方得到真实数据,这在实际应用中局限性较大。
5.2)仅仅通过同态加密比较向量模长来判断向量的相似性,没有真正计算其欧氏距离本身,若计算二者比较后模长相似,则会导致检测结果具有出入,实际应用中局限性较大。
6.3)除上述两点外,专利cn106788962a只是在隐私保护的基础下比较向量的模长,并没有实际场景的介入,不具备说服力。


技术实现要素:

7.为了解决上述技术问题,本发明提供一种可验证的两方位置距离隐私保护计算方法。
8.本发明是这样实现的,提供一种可验证的两方位置距离隐私保护计算方法,包括两个计算方u1和u2,计算方法包括如下步骤:
9.1)设置两个计算方u1和u2的位置坐标,并分别约定生成安全参数:
10.2)两个计算方u1和u2根据自身位置坐标及安全参数,进行欧式距离保密计算,以
得到位置信息,并返回计算结果;
11.3)两个计算方u1和u2对计算结果进行验证。
12.优选的,上述各步骤具体为:
13.步骤1)中,设置计算方u1的位置坐标为(x1,x2,...,xn),计算方u2的位置坐标为(y1,y2,...,yn),两个计算方分别根据paillier加密算法生成如下安全参数:
14.计算方u1:私钥sk,随机数ra,哈希函数hash();
15.计算方u2:随机数rb、rc,随机盐值salt;
16.公开参数:公钥pk;
17.步骤2)中,欧式距离保密计算包括如下步骤:
18.201)计算方u1根据自身随机数ra,对于自身坐标中的每一个参数xi,进行加密,同时对随机数ra加密,得到e(xi),e(ra),然后根据paillier加密的加法同态性,计算得到e(xi+ra)=e(xi)
·
e(ra),将e(xi+ra)和e(xi)发送给计算方u2;
19.202)计算方u2根据随机数rc,对于自身坐标中的每一个参数yi,根据paillier加密的一次乘法同态性,计算e(rcx
i-rcyi)=(e(xi))
rc
·
(e(-yi))
rc
并打乱顺序后发给计算方u1,同时计算方u2计算哈希值h=hash(salt||r)并发送给计算方u1;
20.203)计算方u1利用私钥sk解密e(rcx
i-rcyi),并计算m=∑i(rcx
i-rcyi)2发送给计算方u2,对于每一个i∈[1,n],计算方u2计算两组值,一组是{a}=e(xi+ra)
·
e(-yi),另一组是{b}=e(xi+ra)
·
e(-yi+rb),然后按相同的规则将两组值{a}{b}做随机排序;
[0021]
204)计算方u1从{a}中选取s个值,从{b}中选取另外n-s个值,首先解密第一组s个值并去随机化,求和计算出∑
i∈[1,s]
(x
i-yi)2并发送给计算方u2,解密第二组的n-s个值并去随机化,将n-s个n-s个x
i-yi+rb发送给计算方u2;
[0022]
205)计算方u2接收到n-s个n-s个x
i-yi+rb之后进行去随机化操作,可以计算得到∑
h∈[1,n-s]
(x
i-yi)2,将其与∑
i∈[1,s]
(x
i-yi)2求和即可得到euc=∑
i∈[1,n]
(x
i-yi)2,这便是计算方u1与计算方u2位置间的距离结果;
[0023]
步骤3)中,验证的具体步骤为:
[0024]
301)计算方u2对计算结果进行验证:计算方u2判断rc*euc与m是否相等,若相等,则计算方u2认为计算方u1诚实的执行了协议,得到xi与yi的欧式距离计算结果euc,反之,若不相等,则说明验证不通过,对方作弊,终止计算,当验证成功后,计算方u2将∑
j∈[1,n-s]
(x
i-yi)2、salt、rc发给计算方u1;
[0025]
302)计算方u1在接收到计算方u2传递的参数后,首先验证计算h

=hash(salt||r)并与h相比较,如果h

=h,计算euc

=∑
j∈[1,n-x]
(x
i-yi)2+∑
i∈[1,s]
(x
i-yi)2,比较rc*euc

是否等于m,如果相等,则认为u2诚实的执行了协议,得到xi与yi的欧式距离计算结果即得到了双方的位置距离结果,反之,如果不相等,则说明验证不通过,对方作弊,终止计算,整个方法结束。
[0026]
与现有技术相比,本发明的优点在于:
[0027]
1、本方法是一个支持可验证计算的安全两方计算方案,参与双方均为不可信的,均能够篡改或恶意发送虚假数据,因此若想得到真实的数值,本方案中参与双方不仅需要对自身数据向量进行隐私保护,同时需要对计算结果进行可验证计算,只有当验证成功时,才能证明双方均在不暴露隐私的前提下发送了真实数据,使得位置距离的计算结果有效;
[0028]
2、两方安全保密计算的具体实施流程在现有的方案中,大多数用gc+ot做,太慢,不现实,而且扩展不到多维。若可验证,则更困难,需要增加数学难题。本方案非常轻量,只用了同态加密的方法,效率进行了优化,而且没有指数运算,具有实际应用价值。
具体实施方式
[0029]
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
[0030]
本方案包含了两个计算方u1,u2。方案的流程大致如下,首先,双方约定计算位置距离所需要的安全参数。其次,双方根据自身位置坐标以及安全参数,进行欧式距离保密计算,以得到位置信息。双方均能够在不暴露隐私的情况下,得到计算结果。同时,为了防止对方作弊或者篡改数据,双方均对可以对计算结果进行验证,即一旦某参与方发送虚假参数(任何计算步骤),则其无法通过验证函数。
[0031]
具体的,本方法提供一种可验证的两方位置距离隐私保护计算方法,包括两个计算方u1和u2,计算方法包括如下步骤:
[0032]
1)设置两个计算方u1和u2的位置坐标,并分别约定生成安全参数:
[0033]
2)两个计算方u1和u2根据自身位置坐标及安全参数,进行欧式距离保密计算,以得到位置信息,并返回计算结果;
[0034]
3)两个计算方u1和u2对计算结果进行验证。
[0035]
各步骤具体为:
[0036]
步骤1)中,设置计算方u1的位置坐标为(x1,x2,...,xn),计算方u2的位置坐标为(y1,y2,...,yn),两个计算方分别根据paillier加密算法生成如下安全参数:
[0037]
计算方u1:私钥sk,随机数ra,哈希函数hash();
[0038]
计算方u2:随机数rb、rc,随机盐值salt;
[0039]
公开参数:公钥pk;
[0040]
需要了解的是,paillier加密具有如下两个性质:
[0041]
加法同态性:e(a+b)=e(a)e(b),e()代表加密;
[0042]
一次乘法同态性:e(mb)=e(b)m,m代表常数。
[0043]
步骤2)中,欧式距离保密计算包括如下步骤:
[0044]
201)计算方u1根据自身随机数ra,对于自身坐标中的每一个参数xi,进行加密,同时对随机数ra加密,得到e(xi),e(ra),然后根据paillier加密的加法同态性,计算得到e(xi+ra)=e(xi)
·
e(ra),将e(xi+ra)和e(xi)发送给计算方u2;
[0045]
202)计算方u2根据随机数rc,对于自身坐标中的每一个参数yi,根据paillier加密的一次乘法同态性,计算e(rcx
i-rcyi)=(e(xi))
rc
·
(e(-yi))
rc
并打乱顺序后发给计算方u1,同时计算方u2计算哈希值h=hash(salt||r)并发送给计算方u1;
[0046]
203)计算方u1利用私钥sk解密e(rcx
i-rcyi),并计算m=∑i(rcx
i-rcyi)2发送给计算方u2,对于每一个i∈[1,n],计算方u2计算两组值,一组是{a}=e(xi+ra)
·
e(-yi),另一组是{b}=e(xi+ra)
·
e(-yi+rb),然后按相同的规则将两组值{a}{b}做随机排序;
[0047]
204)计算方u1从{a}中选取s个值,从{b}中选取另外n-s个值,首先解密第一组s个
值并去随机化,求和计算出∑
i∈[1,s]
(x
i-yi)2并发送给计算方u2,解密第二组的n-s个值并去随机化,将n-s个n-s个x
i-yi+rb发送给计算方u2;
[0048]
205)计算方u2接收到n-s个n-s个x
i-yi+rb之后进行去随机化操作,可以计算得到∑
j∈[1,n-s]
(x
i-yi)2,将其与∑
i∈[1,s]
(x
i-yi)2求和即可得到euc=∑
i∈[1,n]
(x
i-yi)2,这便是计算方u1与计算方u2位置间的距离结果;
[0049]
步骤3)中,验证的具体步骤为:
[0050]
301)计算方u2对计算结果进行验证:计算方u2判断rc*euc与m是否相等,若相等,则计算方u2认为计算方u1诚实的执行了协议,得到xi与yi的欧式距离计算结果euc,反之,若不相等,则说明验证不通过,对方作弊,终止计算,当验证成功后,计算方u2将∑
j∈[1,n-s]
(x
i-yi)2、salt、rc发给计算方u1;
[0051]
302)计算方u1在接收到计算方u2传递的参数后,首先验证计算h

=hash(salt||r)并与h相比较,如果h

=h,计算euc

=∑
j∈[1,n-s]
(x
i-yi)2+∑
i∈[1,s]
(x
i-yi)2,比较rc*euc

是否等于m,如果相等,则认为u2诚实的执行了协议,得到xi与yi的欧式距离计算结果即得到了双方的位置距离结果,反之,如果不相等,则说明验证不通过,对方作弊,终止计算,整个方法结束。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1