一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据查询方法及系统与流程

2022-05-08 08:05:30 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体而言,涉及一种数据查询方法及系统。


背景技术:

2.数据查询端向数据提供端查询数据的过程中,数据查询端的查询信息在不被泄露的条件下完成查询,且同时数据提供端的其他数据信息也要得到保护而不泄露,即数据查询端只能获得所查询的数据信息对其他数据信息会一无所知。
3.以不经意传输协议的匿踪查询方法为例,其通常的做法是首先生成n-1条假样本当作混淆数据,将查询信息和混淆信息按顺序组装成列表发送给数据提供端进行数据查询;接着,数据提供端生成n对公钥-私钥对,对查询到的结果分别用不同的公钥进行加密,并将结果和相应加密的公钥发送给数据查询端;然后,数据查询端使用一个随机数去获得所查询的数据所对应的私钥;最后,数据查询端利用私钥获得查询数据的信息。在上述过程中需要进行两次交互,导致查询所花费的时间较长,影响查询效率。


技术实现要素:

4.为了至少克服现有技术中的上述不足,本技术的目的在于提供一种数据查询方法及系统,用于解决上述技术问题。
5.第一方面,本技术实施例提供一种数据查询方法,应用于数据查询系统,所述数据查询系统包括通信连接的数据查询端与数据提供端,所述数据提供端包括数据库,所述数据库中存储有待查询数据以及与所述待查询数据对应的哈希值,所述方法包括:
6.所述数据查询端生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值;
7.所述数据查询端计算得到特定的加密值,并将所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;
8.所述数据提供端基于所述数据库中是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值生成匹配数组;
9.所述数据提供端计算得到所述数据库中待查询数据的加密值,基于所述待查询数据的加密值与所述匹配数组得到反馈数据,并将所述反馈数据发送给所述数据查询端;
10.所述数据查询端基于所述反馈数据对所述查询信息进行加密得到加密结果,基于所述加密结果确定所述数据库中是否存在与所述查询信息对应的待查询数据,若存在与所述查询信息对应的待查询数据则将所述数据提供端提供的数据进行解密得到所需查询的数据。
11.上述方案,只需一次交互即可获得所查询数据的信息,相比现有技术,在保持运算复杂度不变的同时降低了交互次数,整个过程的延迟更低,效率更高。
12.在一种可能的实现方式中,所述数据查询端生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值的步骤,包括:
13.随机生成若干个与所述查询信息具有相同数据类型的混淆信息;
14.对所述查询信息和所述混淆信息分别进行哈希计算,得到所述查询信息和所述混淆信息的哈希值。
15.在一种可能的实现方式中,所述数据查询端计算得到特定的加密值,并将所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端的步骤,包括:
16.基于确定的随机数与所述查询信息的哈希值计算得到特定的加密值;
17.将所述确定的随机数、所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;
18.其中,所述确定的随机数包括第一随机数g、第二随机数h及第三随机数r,计算得到特定的加密值y的公式为:
19.y=g
rhα
20.α为所述查询信息的哈希值。
21.在一种可能的实现方式中,所述数据提供端基于所述数据库中是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值生成匹配数组的步骤,包括:
22.在所述数据库中查询是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值,生成匹配数组,其中匹配数组中的第i个元素为1表示所述数据库中第i个待查询数据具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值,匹配数组中的第i个元素为0表示所述数据库中第i个待查询数据不具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值。
23.在一种可能的实现方式中,所述数据提供端计算得到所述数据库中待查询数据的加密值,基于所述待查询数据的加密值与所述匹配数组得到反馈数据,并将所述反馈数据发送给所述数据查询端的步骤,包括:
24.依次计算所述数据库中每个待查询数据的加密值;
25.计算得到加密参数;
26.依次对所述匹配数组中的元素与对应待查询数据的加密值进行异或处理,得到第一异或结果;
27.将所述第一异或结果与所述加密参数发送给所述数据查询端。
28.在一种可能的实现方式中,所述数据查询端基于所述反馈数据对所述查询信息进行加密得到加密结果,基于所述加密结果确定所述数据库中是否存在与所述查询信息对应的待查询数据,若存在与所述查询信息对应的待查询数据则将所述数据提供端提供的数据进行解密得到所需查询的数据的步骤,包括:
29.所述数据查询端基于所述加密参数对所述查询信息进行加密得到所述查询信息的加密结果;
30.将所述查询信息的加密结果与所述第一异或结果进行异或处理,得到第二异或结果;
31.并基于所述第二异或结果确定所述数据库中是否存在所述查询信息对应的待查询数据;
32.若存在所述查询信息对应的待查询数据,则对所述数据提供端提供的数据进行解
密得到所需查询的数据。
33.在一种可能的实现方式中,所述数据查询端基于所述加密参数对所述查询信息进行加密的加密函数f1(x)为:
34.f1(x)=h((y/hi)k,i)=h((g
rhα
/hi)k,i)
35.其中h为哈希函数,i为序号,k是第四随机数,第一随机数g和第二随机数h产生于第一集合,第三随机数r与第四随机数k产生于第二集合,其中,第一集合与第二集合为互质的集合。
36.第二方面,本技术实施例还提供一种数据查询系统,所述数据查询系统包括通信连接的数据查询端与数据提供端,所述数据提供端包括数据库,所述数据库中存储有待查询数据以及与所述待查询数据对应的哈希值,所述数据查询端包括混淆与哈希模块及第一计算模块,所述数据提供端包括存储与查询模块及第二计算模块;
37.所述混淆与哈希模块,用于生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值;
38.所述第一计算模块,用于计算得到特定的加密值,并将所述特定的加密值与所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;
39.所述存储与查询模块,用于基于所述数据库中是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值生成匹配数组;
40.所述第二计算模块,用于计算得到所述数据库中待查询数据的加密值,基于所述待查询数据的加密值与所述匹配数组得到反馈数据,并将所述反馈数据发送给所述数据查询端;
41.所述第一计算模块,还用于基于所述反馈数据对所述查询信息进行加密得到加密结果,基于所述加密结果确定所述数据库中是否存在与所述查询信息对应的待查询数据,若存在与所述查询信息对应的待查询数据则将所述数据提供端提供的数据进行解密得到所需查询的数据。
42.在一种可能的实现方式中,所述混淆与哈希模块具体用于:
43.随机生成若干个与所述查询信息具有相同数据类型的混淆信息;
44.对所述查询信息和所述混淆信息分别进行哈希计算,得到所述查询信息和所述混淆信息的哈希值。
45.在一种可能的实现方式中,所述第一计算模块具体用于:
46.基于确定的随机数与所述查询信息的哈希值计算得到特定的加密值;
47.将所述确定的随机数、所述特定的加密值以及所述查询信息和所述混淆信息的哈希值发送给所述数据提供端;
48.其中,所述确定的随机数包括第一随机数g、第二随机数h及第三随机数r,计算得到特定的加密值y的公式为:
49.y=g
rhα
50.α为所述查询信息的哈希值。
51.所述第一计算模块还具体用于:
52.基于所述加密参数对所述查询信息进行加密得到所述查询信息的加密结果;
53.将所述查询信息的加密结果与所述第一异或结果进行异或处理,得到异或结果;
54.并基于所述异或结果确定所述数据库中是否存在所述查询信息对应的待查询数据;
55.若存在所述查询信息对应的待查询数据,则对所述数据提供端提供的数据进行解密得到所需查询的数据。
56.基于上述任意一个方面,首先,数据查询端生成查询信息以及混淆信息,计算得到查询信息和混淆信息的哈希值,并计算得到特定的加密值,将特定的加密值以及查询信息和混淆信息的哈希值发送给数据提供端;接着,数据提供端基于数据库中是否存在与查询信息和混淆信息的哈希值匹配的哈希值生成匹配数组,计算得到数据库中待查询数据的加密值,并基于待查询数据的加密值与匹配数组得到反馈数据;最后,数据查询端在存在与查询信息对应的待查询数据时将数据提供端提供的数据进行解密得到所需查询的数据。上述方案,只需一次交互即可获得所查询数据的信息,相比现有技术,在保持运算复杂度不变的同时降低了交互次数,整个过程的延迟更低,效率更高。
附图说明
57.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要调用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
58.图1为本技术实施例提供的数据查询方法的应用场景示意图;
59.图2为本技术实施例提供的数据查询方法的流程示意图;
60.图3为本技术实施例提供的数据查询系统的方框示意图。
具体实施方式
61.下面结合说明书附图对本技术进行具体说明,方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。
62.为了克服现有技术中的不足,本技术实施例提供一种能够提高查询效率的数据查询方法,请参照图1,图1为本技术实施例提供的数据查询方法的应用场景示意图,在图1中数据查询系统10包括通信连接的数据查询端100及数据提供端200。数据提供端200可以为数据查询端100提供数据信息查询服务。
63.在本技术实施例中,数据查询端100可以是,但不限于智能手机、个人数字助理、平板电脑、个人计算机、笔记本电脑、虚拟现实终端设备等。在具体实施过程中,可能有多个数据查询端100接入该数据提供端200,图1中仅示出两个。其中,数据查询端100与数据提供端200之间可以通过https协议进行通信连接。
64.在本技术实施例中,数据提供端200可以是单个物理服务器,也可以是一个由多个用于执行不同数据处理功能的物理服务器构成的服务器组。服务器组可以是集中式的,也可以是分布式的(例如,数据提供端200可以是分布式系统)。在一些可能的实施方式中,如数据提供端200采用单个物理服务器,可以基于不同业务功能为该物理服务器分配不同的逻辑服务器组件。
65.可以理解,图1所示的数据查询系统10仅为一种可行的示例,在其它可行的实施例
中,该数据查询系统10也可以仅包括图1所示组成部分的其中一部分或者还可以包括其它的组成部分。
66.请参照图2,图2示例了本技术实施例提供的数据查询方法的流程示意图,本技术实施例提供的数据查询方法可以由数据查询系统10执行,为了便于说明本技术的技术方案,下面结合图2对该数据查询方法的流程步骤进行详尽说明。
67.步骤s101,数据查询端100生成查询信息以及混淆信息,并计算得到查询信息和混淆信息的哈希值。
68.在本技术实施例,步骤s101可以通过以下方式实现。
69.首先,随机生成若干个混淆信息,其中,混淆信息的数据类型与查询信息的数据类型相同。在一种可能的场景中,查询信息可以待查询用户的用户id,混淆信息可以是随机构造的用户id,例如,待查询用户的用户id为一串字符,则随机生成若干个与待查询用户的用户id的数据结构相同的用户id作为混淆信息。在生成若干个混淆信息后,将查询信息与混淆信息进行混合,将查询信息放到第α位。
70.然后,对查询信息和混淆信息分别进行哈希计算,得到查询信息和混淆信息的哈希值。
71.对混合后的查询信息与混淆信息分别进行哈希计算,得到查询信息和混淆信息的哈希值。
72.在本技术实施例中,在步骤s101之前还包括在数据提供端200的数据库中预先存储待查询数据以及与待查询数据对应的哈希值。
73.步骤s102,数据查询端100计算得到特定的加密值,并将特定的加密值以及查询信息和混淆信息的哈希值发送给数据提供端200。
74.在本技术实施例,步骤s102可以通过以下方式实现。
75.首先,基于确定的随机数与查询信息的哈希值计算得到特定的加密值。
76.具体地,确定的随机数可以包括第一随机数g、第二随机数h及第三随机数r,计算得到特定的加密值y的公式为:
77.y=g
rhα
78.α为查询信息的哈希值。
79.然后,将确定的随机数、特定的加密值以及查询信息和混淆信息的哈希值发送给数据提供端200。
80.具体地,将第一随机数g、第二随机数h、第三随机数r以及查询信息和混淆信息的哈希值发送给数据提供端200。
81.步骤s103,数据提供端200基于数据库中是否存在与查询信息和混淆信息的哈希值匹配的哈希值生成匹配数组。
82.在本技术实施例中,在数据库中查询是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值,生成匹配数组b[i],其中匹配数组b[i]中的第i个元素为1表示所述数据库中第i个待查询数据具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值,匹配数组b[i]中的第i个元素为0表示所述数据库中第i个待查询数据不具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值。
[0083]
步骤s104,数据提供端200计算得到数据库中待查询数据的加密值,基于待查询数
据的加密值与匹配数组得到反馈数据,并将反馈数据发送给数据查询端100。
[0084]
在本技术实施例中,步骤s104可以通过以下方式实现。
[0085]
首先,依次计算所述数据库中每个待查询数据的加密值。
[0086]
具体地,可以通过以下方式计算数据库中每个待查询数据的加密值,例如,针对数据库中的第i个待查询数据,该第i个待查询数据的加密函数
[0087]
f1(i)=h((y/hi)k,i)=h((g
rhαhi
)k,i)
[0088]
h为哈希函数,i为序号,k是第四随机数,第一随机数g和第二随机数h产生于第一集合,第三随机数r与第四随机数k产生于第二集合,其中,第一集合与第二集合为互质的集合,第一集合可以为64比特的随机数的生成元集,第二集合可以为32比特的集合。其中,群中元素可以由最小数目个群元的乘积生成,这组群元称为该群的生成元,生成元的数目为有限群的秩。
[0089]
接着,计算得到加密参数。
[0090]
具体地,选取合适的第四随机数k,采用如下方式计算得到加密参数a,a=gk。
[0091]
然后,依次对匹配数组中的元素与对应待查询数据的加密值进行异或处理,得到第一异或结果。
[0092]
依次将数据库中第i个待查询数据的b[i]与加密值h((y/hi)k,i)进行异或处理,得到第一异或结果
[0093]
最后,将第一异或结果与加密参数发送给所述数据查询端100。
[0094]
步骤s105,数据查询端100基于反馈数据对查询信息进行加密得到加密结果,基于加密结果确定数据库中是否存在与查询信息对应的待查询数据,若存在与查询信息对应的待查询数据则将数据提供端200提供的数据进行解密得到所需查询的数据。
[0095]
在本技术实施例中,步骤s105可以通过以下方式实现。
[0096]
首先,基于所述加密参数对所述查询信息进行加密得到所述查询信息的加密结果。
[0097]
在本技术实施例中,第α个查询信息(即真实查询信息)的加密结果为h(ar,α)。
[0098]
接着,将所述查询信息的加密结果与所述第一异或结果进行异或处理,得到第二异或结果。
[0099]
将h(ar,α)与第一异或结果ci异或处理,得到第二异或结果。
[0100]
然后,并基于所述第二异或结果确定所述数据库中是否存在所述查询信息对应的待查询数据。
[0101]
若第二异或结果为1,则表明数据库中存在所述查询信息对应的待查询数据;若第二异或结果为0,则表明数据库中不存在所述查询信息对应的待查询数据。
[0102]
最后,若存在所述查询信息对应的待查询数据,则对所述数据提供端200提供的数据进行解密得到所需查询的数据。
[0103]
本技术实施例提供的上述方法,只需一次交互即可获得所查询数据的信息,相比现有技术,在保持运算复杂度不变的同时降低了交互次数,整个过程的延迟更低,效率更高。
[0104]
本技术实施例还提供一种数据查询系统10,请参照图3,数据查询系统10包括通信
连接的数据查询端100及数据提供端200,数据提供端200包括数据库,数据库中存储有待查询数据以及与待查询数据对应的哈希值,数据查询端100包括混淆与哈希模块110及第一计算模块120,数据提供端200包括存储与查询模块210及第二计算模块220。
[0105]
所述混淆与哈希模块110,用于生成查询信息以及混淆信息,并计算得到所述查询信息和所述混淆信息的哈希值。
[0106]
在本技术所述混淆与哈希模块110通过以下方式实现。
[0107]
首先,随机生成若干个混淆信息,其中,混淆信息的数据类型与查询信息的数据类型相同。在一种可能的场景中,查询信息可以待查询用户的用户id,混淆信息可以是随机构造的用户id,例如,待查询用户的用户id为一串字符,则随机生成若干个与待查询用户的用户id的数据结构相同的用户id作为混淆信息。在生成若干个混淆信息后,将查询信息与混淆信息进行混合,将查询信息放到第α位。
[0108]
然后,对查询信息和混淆信息分别进行哈希计算,得到查询信息和混淆信息的哈希值。
[0109]
对混合后的查询信息与混淆信息分别进行哈希计算,得到查询信息和混淆信息的哈希值。
[0110]
所述第一计算模块120,用于计算得到特定的加密值,并将所述特定的加密值与所述查询信息和所述混淆信息的哈希值发送给所述数据提供端200。
[0111]
在本技术实施例中,第一计算模块120具体通过以下方式实现。
[0112]
首先,基于确定的随机数与查询信息的哈希值计算得到特定的加密值。
[0113]
具体地,确定的随机数可以包括第一随机数g、第二随机数h及第三随机数r,计算得到特定的加密值y的公式为:
[0114]
y=g
rhα
[0115]
α为查询信息的哈希值。
[0116]
然后,将确定的随机数、特定的加密值以及查询信息和混淆信息的哈希值发送给数据提供端200。
[0117]
具体地,将第一随机数g、第二随机数h、第三随机数r以及查询信息和混淆信息的哈希值发送给数据提供端200。
[0118]
所述存储与查询模块130,用于基于所述数据库中是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值生成匹配数组。
[0119]
在本技术实施例中,存储与查询模块210具体通过以下方式实现。
[0120]
在本技术实施例中,在数据库中查询是否存在与所述查询信息和所述混淆信息的哈希值匹配的哈希值,生成匹配数组,其中匹配数组中的第i个元素b[i]为1表示所述数据库中第i个待查询数据具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值,匹配数组中的第i个元素b[i]为0表示所述数据库中第i个待查询数据不具有与所述查询信息或所述混淆信息的哈希值匹配的哈希值。
[0121]
所述第二计算模块220,用于计算得到所述数据库中待查询数据的加密值,基于所述待查询数据的加密值与所述匹配数组得到反馈数据,并将所述反馈数据发送给所述数据查询端100。
[0122]
在本技术实施例中,第二计算模块220具体通过以下方式实现。
[0123]
首先,依次计算所述数据库中每个待查询数据的加密值。
[0124]
具体地,可以通过以下方式计算数据库中每个待查询数据的加密值,例如,针对数据库中的第i个待查询数据,该第i个待查询数据的加密函数
[0125]
f1(i)=h((y/hi)k,i)=h((g
rhα
/hi)k,i)
[0126]
h为哈希函数,i为序号,k是第四随机数,第一随机数g和第二随机数h产生于第一集合,第三随机数r与第四随机数k产生于第二集合,其中,第一集合与第二集合为互质的集合,第一集合可以为64比特的随机数的生成元集,第二集合可以为32比特的集合。其中,群中元素可以由最小数目个群元的乘积生成,这组群元称为该群的生成元,生成元的数目为有限群的秩。
[0127]
接着,计算得到加密参数。
[0128]
具体地,选取合适的第四随机数k,采用如下方式计算得到加密参数a,a=gk。
[0129]
然后,依次对匹配数组中的元素与对应待查询数据的加密值进行异或处理,得到第一异或结果。
[0130]
依次将数据库中第i个待查询数据的b[i]与加密值h((y/hi)k,i)进行异或处理,得到第一异或结果
[0131]
最后,将第一异或结果与加密参数发送给所述数据查询端100。
[0132]
所述第一计算模块150,还用于基于所述反馈数据对所述查询信息进行加密得到加密结果,基于所述加密结果确定所述数据库中是否存在与所述查询信息对应的待查询数据,若存在与所述查询信息对应的待查询数据则将所述数据提供端200提供的数据进行解密得到所需查询的数据。
[0133]
在本技术实施例中,第一计算模块120具体通过以下方式实现。
[0134]
首先,基于所述加密参数对所述查询信息进行加密得到所述查询信息的加密结果。
[0135]
在本技术实施例中,第α个查询信息(即真实查询信息)的加密结果为h(ar,α)。
[0136]
接着,将所述查询信息的加密结果与所述第一异或结果进行异或处理,得到第二异或结果。
[0137]
将h(ar,α)与第一异或结果ci异或处理,得到第二异或结果。
[0138]
然后,并基于所述第二异或结果确定所述数据库中是否存在所述查询信息对应的待查询数据。
[0139]
若第二异或结果为1,则表明数据库中存在所述查询信息对应的待查询数据;若第二异或结果为0,则表明数据库中不存在所述查询信息对应的待查询数据。
[0140]
最后,若存在所述查询信息对应的待查询数据,则对所述数据提供端200提供的数据进行解密得到所需查询的数据。
[0141]
综上所述,本技术实施例提供的数据查询方法及系统,首先,数据查询端生成查询信息以及混淆信息,计算得到查询信息和混淆信息的哈希值,并计算得到特定的加密值,将特定的加密值以及查询信息和混淆信息的哈希值发送给数据提供端;接着,数据提供端基于数据库中是否存在与查询信息和混淆信息的哈希值匹配的哈希值生成匹配数组,计算得到数据库中待查询数据的加密值,并基于待查询数据的加密值与匹配数组得到反馈数据;
最后,数据查询端在存在与查询信息对应的待查询数据时将数据提供端提供的数据进行解密得到所需查询的数据。上述方案,只需一次交互即可获得所查询数据的信息,相比现有技术,在保持运算复杂度不变的同时降低了交互次数,整个过程的延迟更低,效率更高。
[0142]
以上所描述的实施例仅仅是本技术的一部分实施例,而不是全部的实施例。通常在附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,在附图中提供的本技术的实施例的详细描述并非旨在限制本技术的保护范围,而仅仅是表示本技术的选定实施例。基于此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献