一种数据查询方法及系统技术方案

技术编号:33351674 阅读:63 留言:0更新日期:2022-05-08 09:58
本申请实施例提供的数据查询方法及系统,涉及计算机技术领域。首先,数据查询端计算查询信息和混淆信息的哈希值,并计算得到特定的加密值,将特定的加密值以及查询信息和混淆信息的哈希值发送给数据提供端;接着,数据提供端基于数据库中是否存在与查询信息和混淆信息的哈希值匹配的哈希值生成匹配数组,计算得到数据库中待查询数据的加密值;最后,数据查询端在存在与查询信息对应的待查询数据时将数据提供端提供的数据进行解密得到所需查询的数据。上述方案,只需一次交互即可获得所查询数据的信息,相比现有技术,在保持运算复杂度不变的同时降低了交互次数,整个过程的延迟更低,效率更高。效率更高。效率更高。

【技术实现步骤摘要】
一种数据查询方法及系统


[0001]本申请涉及计算机
,具体而言,涉及一种数据查询方法及系统。

技术介绍

[0002]数据查询端向数据提供端查询数据的过程中,数据查询端的查询信息在不被泄露的条件下完成查询,且同时数据提供端的其他数据信息也要得到保护而不泄露,即数据查询端只能获得所查询的数据信息对其他数据信息会一无所知。
[0003]以不经意传输协议的匿踪查询方法为例,其通常的做法是首先生成N

1条假样本当作混淆数据,将查询信息和混淆信息按顺序组装成列表发送给数据提供端进行数据查询;接着,数据提供端生成N对公钥

私钥对,对查询到的结果分别用不同的公钥进行加密,并将结果和相应加密的公钥发送给数据查询端;然后,数据查询端使用一个随机数去获得所查询的数据所对应的私钥;最后,数据查询端利用私钥获得查询数据的信息。在上述过程中需要进行两次交互,导致查询所花费的时间较长,影响查询效率。

技术实现思路

[0004]为了至少克服现有技术中的上述不足,本申请的目的在于提供一种数据查询方法及系统,用于解决上述技术问题。
[0005]第一方面,本申请实施例提供一种数据查询方法,应用于数据查询系统,所述数据查询系统包括通信连接的数据查询端与数据提供端,所述数据提供端包括数据库,所述数据库中存储有待查询数据以及与所述待查询数据对应的哈希值,所述方法包括:
[0006]所述数据查询端生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值;
>[0007]所述数据查询端计算得到特定的加密值,并将所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;
[0008]所述数据提供端基于所述数据库中是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值生成匹配数组;
[0009]所述数据提供端计算得到所述数据库中待查询数据的加密值,基于所述待查询数据的加密值与所述匹配数组得到反馈数据,并将所述反馈数据发送给所述数据查询端;
[0010]所述数据查询端基于所述反馈数据对所述查询信息进行加密得到加密结果,基于所述加密结果确定所述数据库中是否存在与所述查询信息对应的待查询数据,若存在与所述查询信息对应的待查询数据则将所述数据提供端提供的数据进行解密得到所需查询的数据。
[0011]上述方案,只需一次交互即可获得所查询数据的信息,相比现有技术,在保持运算复杂度不变的同时降低了交互次数,整个过程的延迟更低,效率更高。
[0012]在一种可能的实现方式中,所述数据查询端生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值的步骤,包括:
[0013]随机生成若干个与所述查询信息具有相同数据类型的混淆信息;
[0014]对所述查询信息和所述混淆信息分别进行哈希计算,得到所述查询信息和所述混淆信息的哈希值。
[0015]在一种可能的实现方式中,所述数据查询端计算得到特定的加密值,并将所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端的步骤,包括:
[0016]基于确定的随机数与所述查询信息的哈希值计算得到特定的加密值;
[0017]将所述确定的随机数、所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;
[0018]其中,所述确定的随机数包括第一随机数g、第二随机数h及第三随机数r,计算得到特定的加密值y的公式为:
[0019]y=g
r
h
α
[0020]α为所述查询信息的哈希值。
[0021]在一种可能的实现方式中,所述数据提供端基于所述数据库中是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值生成匹配数组的步骤,包括:
[0022]在所述数据库中查询是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值,生成匹配数组,其中匹配数组中的第i个元素为1表示所述数据库中第i个待查询数据具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值,匹配数组中的第i个元素为0表示所述数据库中第i个待查询数据不具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值。
[0023]在一种可能的实现方式中,所述数据提供端计算得到所述数据库中待查询数据的加密值,基于所述待查询数据的加密值与所述匹配数组得到反馈数据,并将所述反馈数据发送给所述数据查询端的步骤,包括:
[0024]依次计算所述数据库中每个待查询数据的加密值;
[0025]计算得到加密参数;
[0026]依次对所述匹配数组中的元素与对应待查询数据的加密值进行异或处理,得到第一异或结果;
[0027]将所述第一异或结果与所述加密参数发送给所述数据查询端。
[0028]在一种可能的实现方式中,所述数据查询端基于所述反馈数据对所述查询信息进行加密得到加密结果,基于所述加密结果确定所述数据库中是否存在与所述查询信息对应的待查询数据,若存在与所述查询信息对应的待查询数据则将所述数据提供端提供的数据进行解密得到所需查询的数据的步骤,包括:
[0029]所述数据查询端基于所述加密参数对所述查询信息进行加密得到所述查询信息的加密结果;
[0030]将所述查询信息的加密结果与所述第一异或结果进行异或处理,得到第二异或结果;
[0031]并基于所述第二异或结果确定所述数据库中是否存在所述查询信息对应的待查询数据;
[0032]若存在所述查询信息对应的待查询数据,则对所述数据提供端提供的数据进行解
密得到所需查询的数据。
[0033]在一种可能的实现方式中,所述数据查询端基于所述加密参数对所述查询信息进行加密的加密函数f1(x)为:
[0034]f1(x)=H((y/h
i
)
k
,i)=H((g
r
h
α
/h
i
)
k
,i)
[0035]其中H为哈希函数,i为序号,k是第四随机数,第一随机数g和第二随机数h产生于第一集合,第三随机数r与第四随机数k产生于第二集合,其中,第一集合与第二集合为互质的集合。
[0036]第二方面,本申请实施例还提供一种数据查询系统,所述数据查询系统包括通信连接的数据查询端与数据提供端,所述数据提供端包括数据库,所述数据库中存储有待查询数据以及与所述待查询数据对应的哈希值,所述数据查询端包括混淆与哈希模块及第一计算模块,所述数据提供端包括存储与查询模块及第二计算模块;
[0037]所述混淆与哈希模块,用于生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值;
[0038]所述第一计算模块,用于计算得到特定的加密值,并将所述特定的加密值与所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;
[0039]所述存储与查询模块,用于基于所述数据库中是否存在本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据查询方法,其特征在于,应用于数据查询系统,所述数据查询系统包括通信连接的数据查询端与数据提供端,所述数据提供端包括数据库,所述数据库中存储有待查询数据以及与所述待查询数据对应的哈希值,所述方法包括:所述数据查询端生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值;所述数据查询端计算得到特定的加密值,并将所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;所述数据提供端基于所述数据库中是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值生成匹配数组;所述数据提供端计算得到所述数据库中待查询数据的加密值,基于所述待查询数据的加密值与所述匹配数组得到反馈数据,并将所述反馈数据发送给所述数据查询端;所述数据查询端基于所述反馈数据对所述查询信息进行加密得到加密结果,基于所述加密结果确定所述数据库中是否存在与所述查询信息对应的待查询数据,若存在与所述查询信息对应的待查询数据则将所述数据提供端提供的数据进行解密得到所需查询的数据。2.如权利要求1所述的数据查询方法,其特征在于,所述数据查询端生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值的步骤,包括:随机生成若干个与所述查询信息具有相同数据类型的混淆信息;对所述查询信息和所述混淆信息分别进行哈希计算,得到所述查询信息和所述混淆信息的哈希值。3.如权利要求2所述的数据查询方法,其特征在于,所述数据查询端计算得到特定的加密值,并将所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端的步骤,包括:基于确定的随机数与所述查询信息的哈希值计算得到特定的加密值;将所述确定的随机数、所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;其中,所述确定的随机数包括第一随机数g、第二随机数h及第三随机数r,计算得到特定的加密值y的公式为:y=g
r
h
α
α为所述查询信息的哈希值。4.如权利要求3所述的数据查询方法,其特征在于,所述数据提供端基于所述数据库中是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值生成匹配数组的步骤,包括:在所述数据库中查询是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值,生成匹配数组,其中匹配数组中的第i个元素为1表示所述数据库中第i个待查询数据具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值,匹配数组中的第i个元素为0表示所述数据库中第i个待查询数据不具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值。5.如权利要求4所述的数据查询方法,其特征在于,所述数据提供端计算得到所述数据库中待查询数据的加密值,基于所述待查询数据的加密值与所述匹配数组得到反馈数据,
并将所述反馈数据发送给所述数据查询端的步骤,包括:依次计算所述数据库中每个待查询数据的加密值;计算得到加密参数;依次对所述匹配数组中的元素与对应待查询数据的加密值进行异或处理,得到第一异或结果;将所述第一异或结果与所述加密参数发送给所述数据查询端。6.如权利要求5所述的数据查询方法,其特征在于,所述数据查询端基于所述反馈数据对所述查询信息进行加密得到加密结果,基于所述加密结果确定所述数据库中是否存在与所述查询信息对应的待查询数据,若存在与所述查询信息对应的待查询数据则将所述数据提供端提供的数据进行解密得到所需...

【专利技术属性】
技术研发人员:顾凌云郭志攀王伟李海全袁嘉骏刘奇
申请(专利权)人:上海冰鉴信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1