一种基于秘密共享的隐私查询方法及系统与流程

文档序号:32351404发布日期:2022-11-26 13:23阅读:109来源:国知局
一种基于秘密共享的隐私查询方法及系统与流程

1.本发明涉及信息搜索查询方法,油气涉及一种基于秘密共享的隐私查询方法及系统。


背景技术:

2.现有技术中,搜索用户相似对象是互联网常用的一种搜索技术,基于用户、商品或者其他类目的特征,搜索近似的、相关的其他信息,频繁用于社交网络、电商购物、影音娱乐等领域。随着互联网、大数据领域和人工智能领域的发展,越来越多实体特征被挖掘出来,企业可以采用更加精细的模型来计算各种实体的数字化特征,而更详尽的特征可以让搜索算法的结果精确度更高,为用户带来更好的个性化推荐服务。然而当今互联网采用搜索技术基本都是基于明文的数据特征来进行,这样带来了非常大的隐私安全隐患。
3.对于用户自身而言,自身的数字化特征随着数字化融入生活而带来的大量个人数据的产生,已经达到一个非常精确的地步,甚至在量化的特征中可能已经包含个人的dna信息融入其中,这个信息如果在互联网中随意传递,对个人来说是非常危险的,是个人隐私的极大泄漏。
4.此外,企业间的搜索(例如不同类型的企业,社交公司和电商公司)如果将自身产品的特征暴露给其他企业也是非常不安全的,如果第三方企业存在恶意企图,很容易通过明文的产品特征拟合出实际的产品信息,造成商业机密的泄漏。


技术实现要素:

5.本发明要解决的技术问题在于,针对现有技术的不足,提供一种结合秘密共享技术、多重局部哈希敏感技术、分布式点函数等多种手段,在不暴露具体特征信息的前提下实现搜索查询的隐私查询方法及系统。
6.为解决上述技术问题,本发明采用如下技术方案。
7.一种基于秘密共享的隐私查询方法,该方法基于查询端和两个服务端实现,两个服务端预设有相同的哈希函数与数据,所述方法包括有如下步骤:步骤s1,服务端构建用于映射原始特征到低纬空间的局部敏感哈希函数簇,哈希函数簇包含l个哈希函数;步骤s2,服务端针对其预设数据集中的每一个元素,将所述步骤s1中的每个哈希函数应用于元素的特征信息中,得到对应的哈希编码,构建以哈希编码为键的l个哈希表;步骤s3,对所述步骤s2中哈希表值大于1的元素进行清理,只留下一个元素;步骤s4,查询端向任一服务端发起获取哈希函数的请求,服务端将l个哈希函数发送至查询端;步骤s5,查询端接收所述步骤s4中由服务端提供的l个哈希函数,应用每个哈希函数到查询特征中,得到查询键;步骤s6,查询端基于查询键构建两个密钥键k0、k1;步骤s7,查询端将两个密钥键k0、k1分别发送至两个服务端;步骤s8,服务端对接收到的密钥键进行计算处理,并将结果值发送回查询端;步骤s9,查询端接收所述步骤s8中由两个服务端发送来的结果值,将两个将两个结果值相加后得到目标结果。
8.优选地,所述步骤s1中,根据局部敏感哈希的定义(r,cr,p1,p2)敏感,对于任意查询序列p和q,如果两者距离小于等于r,则两者哈希碰撞概率至少为p1,如果两者距离大于等于cr,则两者的哈希碰撞概率至多为p2。
9.优选地,所述步骤s2中,构建多个以元素特征哈希编码为键,元素id为值的哈希表。
10.优选地,所述步骤s5中,将得到的查询键向外扩充,将与目标查询键相邻的若干查询键一起作为查询条件。
11.优选地,所述步骤s6中,通过两个密钥k0,k1和函数eval来表示函数p
查询键,1
(x

),具体表示为:
[0012][0013][0014]
服务端根据接收到的k0或k1进行如下运算:
[0015]d·
eval(k,x

);
[0016]
并将运算结果返回给查询端,其中,d表示查询键对应的哈希桶里的数据值;
[0017]
查询端合并两个服务端的结果后得到仅当x

等于查询键时,结果为d
·
1=d,否则结果为d
·
0=0,进而在不暴露查询键的前提下得到对应数据值。
[0018]
优选地,所述步骤s8中,服务端进行的计算处理过程包括:设定查询键是α,计算d
·
eval(k,α)的值,将所有结果值累加,设定服务端共有n个数据,i表示第i个数据,则服务端运算结果表示为将该运算结果发送至查询端。
[0019]
优选地,所述步骤s9包括如下过程:查询端接收由两个服务端发送来的运算结果,由于查询端发送给两个服务端的k值不同,所以从服务端1得到的结果为从服务端2得到的结果为将两个结果相加得到再对该结果进行乘法的结合律得到根据所述步骤s6,仅当αi是查询端目标键时,eval(k0,αi)+eval(k1,αi)结果为1,乘以d后得到结果数据;当αi不是目标键时,eval(k0,αi)+eval(k1,αi)结果为0,最终累加结果数据d即为目标结果。
[0020]
一种基于秘密共享的隐私查询系统,其包括有查询端和两个服务端实现,所述系统用于实现上述方法。
[0021]
本发明公开的基于秘密共享的隐私查询方法及系统中,查询端指持有私有特征信息,目标是搜索数据端与特征信息相似的项目,服务端作为数据拥有者,用于响应查询端发起的查询请求,本发明中的两个服务端拥有一致的数据集,查询端与服务端各自持有的特
征信息是指一定维度的浮点数向量,查询端与服务端通过网络链接,该网络可以是有线网络或无线网络。基于上述架构,本发明结合秘密共享技术、多重局部哈希敏感技术、分布式点函数等,通过执行步骤s1至步骤s9,实现了在不暴露具体特征信息前提下的信息查询、搜索,同时限制搜索结果仅为单一近似结果,不暴露数据方额外的数据信息,进而实现隐私搜索。
附图说明
[0022]
图1为本发明基于秘密共享的隐私查询方法流程图一;
[0023]
图2为本发明基于秘密共享的隐私查询方法流程图二。
具体实施方式
[0024]
下面结合附图和实施例对本发明作更加详细的描述。
[0025]
本发明公开了一种基于秘密共享的隐私查询方法,结合图1和图2所示,该方法基于查询端和两个服务端实现,两个服务端预设有相同的哈希函数与数据,所述方法包括有如下步骤:
[0026]
步骤s1,服务端构建用于映射原始特征到低纬空间的局部敏感哈希函数簇,哈希函数簇包含l个哈希函数;
[0027]
步骤s2,服务端针对其预设数据集中的每一个元素,将所述步骤s1中的每个哈希函数应用于元素的特征信息中,得到对应的哈希编码,构建以哈希编码为键的l个哈希表;
[0028]
步骤s3,对所述步骤s2中哈希表值大于1的元素进行清理,只留下一个元素;
[0029]
步骤s4,查询端向任一服务端发起获取哈希函数的请求,服务端将l个哈希函数发送至查询端;
[0030]
步骤s5,查询端接收所述步骤s4中由服务端提供的l个哈希函数,应用每个哈希函数到查询特征中,得到查询键;
[0031]
步骤s6,查询端基于查询键构建两个密钥键k0、k1;
[0032]
步骤s7,查询端将两个密钥键k0、k1分别发送至两个服务端;
[0033]
步骤s8,服务端对接收到的密钥键进行计算处理,并将结果值发送回查询端;
[0034]
步骤s9,查询端接收所述步骤s8中由两个服务端发送来的结果值,将两个将两个结果值相加后得到目标结果。
[0035]
上述方法中,查询端指持有私有特征信息,目标是搜索数据端与特征信息相似的项目,服务端作为数据拥有者,用于响应查询端发起的查询请求,本发明中的两个服务端拥有一致的数据集,查询端与服务端各自持有的特征信息是指一定维度的浮点数向量,查询端与服务端通过网络链接,该网络可以是有线网络或无线网络。基于上述架构,本发明结合秘密共享技术、多重局部哈希敏感技术、分布式点函数等,通过执行步骤s1至步骤s9,实现了在不暴露具体特征信息前提下的信息查询、搜索,同时限制搜索结果仅为单一近似结果,不暴露数据方额外的数据信息,进而实现隐私搜索。
[0036]
进一步地,在本发明的所述步骤s1中,根据局部敏感哈希的定义(r,cr,p1,p2)敏感,对于任意查询序列p和q,如果两者距离小于等于r,则两者哈希碰撞概率至少为p1,如果两者距离大于等于cr,则两者的哈希碰撞概率至多为p2。具体地,在非隐私的搜索场景下,
由于哈希碰撞得到的是一个概率结果,在计算得出的碰撞结果后还需要计算其真实距离,以避免假阳性的情况(具体是指发生了哈希碰撞但两个特征之间实际距离很远的情况)。在隐私场景下,因没有办法去进行实际的距离计算,所以需要调整参数,确保假阳性的概率很低,确保发生哈希碰撞时,两个特征之间距离大于cr的概率非常小。
[0037]
作为一种优选方式,所述步骤s2中,构建多个以元素特征哈希编码为键,元素id为值的哈希表。具体地,服务端对数据集中每一个元素,将步骤s1中的每个哈希函数应用于元素的特征信息中,得到对应的哈希编码,构建以哈希编码为键的哈希表,哈希表的值是一个列表,存放哈希编码相同的元素id。有l个哈希簇(此处的多个哈希函数是因为需要重复多次映射来提高碰撞率),此时一共构建了l个哈希表。
[0038]
关于本实施例的所述步骤s3:其执行的功能为清理哈希表。该步骤对步骤s2中的哈希表值的元素大于1的进行清理,只留下一个元素。根据步骤s1中提到的条件设置,当出现哈希碰撞时,已经存在非常大概率是查询条件的结果,所以这里没有必要在同一个哈希桶中存多个元素,而且存多个元素会影响后续的隐私查询。
[0039]
本实施的所述步骤s5中,将得到的查询键向外扩充,将与目标查询键相邻的若干查询键一起作为查询条件。具体地,该步骤针对步骤s4中服务端提供的l个哈希函数,应用每个哈希函数到查询特征中,得到的结果就是查询的哈希键,为了提高碰撞几率,还需要将哈希键往周围扩充,根据局部敏感哈希的定义,原空间跟哈希后的空间在一定程度上保持了原有空间的位置关系,基于这一点,我们将得到的哈希键往外扩充,得到跟目标哈希键相邻的若干哈希键一起作为查询条件。举例说明:假设有一个哈希键010,那么扩充是指将相邻的值也添加进来,例如110、000、011,这样原哈希键010扩充之后,就有了4个哈希键了。
[0040]
作为一种优选方式,所述步骤s6中,分布式点函数通过多个密钥表示点函数,本实施例通过两个密钥k0,k1和函数eval来表示函数p
查询键,1
(x

),具体表示为:
[0041][0042][0043]
举例说明,假设查询端的查询键是010,那么查询端会构造基于010查询键的密钥k0,k1,其中k0发送给服务端1,将k1发送给服务端2,服务端根据接收到的k0或k1进行如下运算:
[0044]d·
eval(k,x

);
[0045]
并将运算结果返回给查询端,其中,d表示查询键010对应的哈希桶里的数据值;
[0046]
查询端合并两个服务端的结果后得到仅当x

等于查询键时,结果为d
·
1=d,否则结果为d
·
0=0,进而在不暴露查询键的前提下得到对应数据值。
[0047]
在本实施例中,关于步骤s7:将所有k0发送给一方服务端,将所有k1发送给另一个服务端。
[0048]
进一步地,所述步骤s8中,针对所述步骤s7中发送的秘密键k值进行计算,服务端将会对哈希表中的所有元素进行运算,服务端进行的计算处理过程包括:
[0049]
设定查询键是α,计算d
·
eval(k,α)的值,将所有结果值累加,设定服务端共有n个
数据,i表示第i个数据,则服务端运算结果表示为将该运算结果发送至查询端。
[0050]
本实施例中,所述步骤s9包括如下过程:
[0051]
查询端接收由两个服务端发送来的运算结果,由于查询端发送给两个服务端的k值不同,所以从服务端1得到的结果为从服务端2得到的结果为将两个结果相加得到再对该结果进行乘法的结合律得到
[0052]
根据所述步骤s6,仅当αi是查询端目标键时,eval(k0,αi)+eval(k1,αi)结果为1,乘以d后得到结果数据;当αi不是目标键时,eval(k0,αi)+eval(k1,αi)结果为0,最终累加结果数据d即为目标结果。
[0053]
为实现上述过程,本发明还涉及一种基于秘密共享的隐私查询系统,该系统包括有查询端和两个服务端实现,该系统用于实现以上所述的方法。具体地,所述查询端和两个服务端均为计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可实现上述实施例中基于秘密共享技术的隐私搜索方法各个步骤。
[0054]
本发明公开的基于秘密共享的隐私查询方法及系统,其相比现有技术而言的有益效果在于,本发明采用秘密共享技术、多重局部哈希敏感技术、分布式点函数等手段,实现了在不暴露具体特征信息前提下的信息搜索,同时限制搜索结果仅为单一相似结果,不暴露数据方额外的数据信息,进而实现隐私搜索,较好地满足了应用需求。
[0055]
以上所述只是本发明较佳的实施例,并不用于限制本发明,凡在本发明的技术范围内所做的修改、等同替换或者改进等,均应包含在本发明所保护的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1