CN114911851A - 数据查询方法、装置及存储介质 - Google Patents
数据查询方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114911851A CN114911851A CN202210816048.4A CN202210816048A CN114911851A CN 114911851 A CN114911851 A CN 114911851A CN 202210816048 A CN202210816048 A CN 202210816048A CN 114911851 A CN114911851 A CN 114911851A
- Authority
- CN
- China
- Prior art keywords
- data
- keyword
- data information
- polynomial
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据查询方法、装置及存储介质,涉及计算机领域,该方法应用于客户端,包括:确定覆盖待查询关键字区间的最小二叉树节点数据集合;将最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合;对运算数据集合进行加密,并将加密处理后的运算数据集合发送给服务器,其中,服务器中包含多个关键字以及与每个关键字分别对应的数据信息,基于每个关键字分别创建有一个相对应的多项式;接收服务器发送的与待查询关键字区间对应的数据信息;对数据信息进行解密处理。本申请可以在保证客户端和服务器数据隐私的情况下,实现对一个数据区间的查询,且效率较高。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据查询方法、装置及存储介质。
背景技术
关键字搜索是一种基本的数据库操作,在此过程中,保护服务器和客户端双方发送数据的隐私十分重要。其中,服务器拥有由多个关键字以及与每个关键字对应的数据信息组成的数据库,而客户端可以发送包含关键字的查询请求,并接收与这些关键字相关的查询结果,实际应用中,用户通过客户端向服务器发送包含关键字的数据查询请求,如果数据库中存在客户端发送的查询请求中包含的关键字,则输出一组与该关键字对应的数据信息,否则输出查询结果为空的指示信息,其中,关键字可以是任意长度的字符串。
然而,在相关技术中,关键字搜索只能实现对单一值的查询,当用户需要查询某个区间的数据时,需要依次输入该区间内的值进行多次查询,效率较低。
发明内容
本申请的多个方面提供一种数据查询方法、装置及存储介质,可以在保证客户端和服务器数据隐私的情况下,实现对一个数据区间的查询,且效率较高。
本申请实施例提供一种数据查询方法,应用于客户端,所述方法包括:
确定覆盖待查询关键字区间的最小二叉树节点数据集合;
将所述最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合;
对所述运算数据集合进行加密,并将加密处理后的运算数据集合发送给服务器,其中,所述服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,基于每个所述关键字分别创建有一个相对应的多项式,所述多项式用于根据所述加密处理后的运算数据集合确定与所述待查询关键字区间对应的数据信息;
接收所述服务器发送的与所述待查询关键字区间对应的数据信息;
对所述数据信息进行解密处理。
本申请实施例还提供一种数据查询方法,应用于服务器,所述服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,所述方法包括:
基于每个所述关键字分别创建一个相对应的多项式;
接收客户端发送的数据查询请求,所述数据查询请求中包含加密处理后的运算数据集合,其中,所述运算数据集合由覆盖待查询关键字区间的最小二叉树节点数据集合转换得到;
基于所述加密处理后的运算数据集合及各所述关键字分别对应的多项式,确定与所述待查询关键字区间对应的数据信息;
将与所述待查询关键字区间对应的数据信息发送给所述客户端。
本申请实施例还提供一种数据查询方法,应用于客户端,所述方法包括:
确定覆盖待查询关键字区间的最小二叉树节点数据集合;
根据所述最小二叉树节点数据集合中的数据创建一个多项式,所述多项式用于辅助服务器确定与所述待查询关键字区间对应的数据信息;
对所述多项式中的系数进行加密处理,并将加密处理后的多项式系数发送给所述服务器,其中,所述服务器中具有字符串集合,所述字符串集合由多个关键字拆分得到,每个所述关键字分别对应有一个数据信息;
接收所述服务器基于所述字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定的与所述待查询关键字区间对应的数据信息;
对所述数据信息进行解密处理。
本申请实施例还提供一种数据查询方法,应用于服务器,所述服务器中具有字符串集合,所述字符串集合由多个关键字拆分得到,每个所述关键字分别对应有一个数据信息,所述方法包括:
接收客户端发送的数据查询请求,所述数据查询请求中包含加密处理后的多项式系数,其中,所述多项式系数对应的多项式根据覆盖待查询关键字区间的最小二叉树节点数据集合中的数据创建得到;
基于所述字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定与所述待查询关键字区间对应的数据信息;
将与所述待查询关键字区间对应的数据信息发送给所述客户端。
本申请实施例还提供一种数据查询装置,应用于客户端,所述装置包括:
确定模块,用于确定覆盖待查询关键字区间的最小二叉树节点数据集合;
转换模块,用于将所述最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合;
加密模块,用于对所述运算数据集合进行加密,并将加密处理后的运算数据集合发送给服务器,其中,所述服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,基于每个所述关键字分别创建有一个相对应的多项式,所述多项式用于根据所述加密处理后的运算数据集合确定与所述待查询关键字区间对应的数据信息;
接收模块,用于接收所述服务器发送的与所述待查询关键字区间对应的数据信息;
解密模块,用于对所述数据信息进行解密处理。
本申请实施例还提供一种数据查询装置,应用于服务器,所述服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,所述装置包括:
创建模块,用于基于每个所述关键字分别创建一个相对应的多项式;
接收模块,用于接收客户端发送的数据查询请求,所述数据查询请求中包含加密处理后的运算数据集合,其中,所述运算数据集合由覆盖待查询关键字区间的最小二叉树节点数据集合转换得到;
确定模块,用于基于所述加密处理后的运算数据集合及各所述关键字分别对应的多项式,确定与所述待查询关键字区间对应的数据信息;
发送模块,用于将与所述待查询关键字区间对应的数据信息发送给所述客户端。
本申请实施例还提供一种数据查询装置,应用于客户端,所述装置包括:
确定模块,用于确定覆盖待查询关键字区间的最小二叉树节点数据集合;
创建模块,用于根据所述最小二叉树节点数据集合中的数据创建一个多项式,所述多项式用于辅助服务器确定与所述待查询关键字区间对应的数据信息;
加密模块,用于对所述多项式中的系数进行加密处理,并将加密处理后的多项式系数发送给所述服务器,其中,所述服务器中具有字符串集合,所述字符串集合由关键字拆分得到,每个所述关键字分别对应有一个数据信息;
接收模块,用于接收所述服务器基于所述字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定的与所述待查询关键字区间对应的数据信息;
解密模块,用于对所述数据信息进行解密处理。
本申请实施例还提供一种数据查询装置,应用于服务器,所述服务器中具有字符串集合,所述字符串集合由多个关键字拆分得到,每个所述关键字分别对应有一个数据信息,所述装置包括:
接收模块,用于接收客户端发送的数据查询请求,所述数据查询请求中包含加密处理后的多项式系数,其中,所述多项式系数对应的多项式根据覆盖待查询关键字区间的最小二叉树节点数据集合中的数据创建得到;
确定模块,用于基于所述字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定与所述待查询关键字区间对应的数据信息;
发送模块,用于将与所述待查询关键字区间对应的数据信息发送给所述客户端。
本申请实施例还提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述数据查询方法。
本申请实施例通过确定覆盖待查询关键字区间的最小二叉树节点数据集合,在覆盖待查询关键字区间的同时,有效地减小了待查询的数据量,提高了数据查询效率。通过将最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合,并对运算数据集合进行加密,并将加密处理后的运算数据集合发送给服务器,接收服务器发送的与待查询关键字区间对应的数据信息,可以得到加密状态的与待查询关键字区间对应的数据信息,再对该数据信息解密即可完成整个关键字区间查询工作。即本申请可以在保证客户端和服务器数据隐私的情况下,实现对一个数据区间的查询,且效率较高。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种数据查询方法的流程图;
图2为本申请实施例提供的一种对数据信息进行校验的方法的流程图;
图3为本申请实施例提供的一种数据查询方法的流程图;
图4为本申请实施例提供的另一种数据查询方法的流程图;
图5为本申请实施例提供的另一种数据查询方法的流程图;
图6为本申请实施例提供的一种数据查询装置的结构示意图;
图7为本申请实施例提供的一种数据查询装置的结构示意图;
图8为本申请实施例提供的另一种数据查询装置的结构示意图;
图9为本申请实施例提供的另一种数据查询装置的结构示意图;
图10为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
关键字搜索是一种基本的数据库操作,在此过程中,保护服务器和客户端双方发送数据的隐私十分重要。其中,服务器拥有由多个关键字以及与每个关键字对应的数据信息组成的数据库,而客户端可以发送包含关键字的查询请求,并接收与这些关键字相关的查询结果,实际应用中,用户通过客户端向服务器发送包含关键字的数据查询请求,如果数据库中存在客户端发送的查询请求中包含的关键字,则输出一组与该关键字对应的数据信息,否则输出查询结果为空的指示信息,其中,关键字可以是任意长度的字符串。然而,目前关键字搜索只能实现对单一值的查询,当用户需要查询某个区间的数据时,需要依次输入该区间内的值进行多次查询,效率较低。基于此,本申请实施例提供了一种数据查询方法。
图1为本申请实施例提供的一种数据查询方法的流程图,该方法应用于客户端,如图1所示,该方法包括:
步骤101、确定覆盖待查询关键字区间的最小二叉树节点数据集合。
步骤102、将最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合。
步骤103、对运算数据集合进行加密,将加密处理后的运算数据集合发送给服务器,其中,服务器中包含多个关键字以及与每个关键字分别对应的数据信息,基于每个关键字分别创建有一个相对应的多项式,多项式用于根据加密处理后的运算数据集合确定与待查询关键字区间对应的数据信息。
步骤104、接收服务器发送的与待查询关键字区间对应的数据信息。
步骤105、对数据信息进行解密处理。
需要说明的是,为了保证服务器能够顺利的完成相关计算,客户端会预先创建一对相匹配的公钥和私钥。实际应用时,步骤103会使用该公钥对运算数据集合进行加密,并将加密处理后的运算数据集合和该公钥分别发送给服务器。而后,服务器根据该公钥和加密处理后的运算数据集合确定与待查询关键字区间对应的数据信息,并将该数据信息发回给客户端。客户端使用该私钥对数据信息进行解密处理。
在本实施例中,待查询关键字区间内可以包含一个单一的关键字数据,也可以包含由多个连续的关键字数据组成的关键字区间。例如,其可以为2,也可以为2-7的区间,在实际应用中,若用户想查询20岁到50岁区间内的员工信息,那么此时,该待查询关键字区间即为20-50。
应理解,若一个区间内包含的关键字数据较多,那么在进行数据查询时需要耗费
大量时间,基于此,本申请在得到待查询关键字区间后,首先会基于最佳覆盖范围(Best
Range Covering,简称BRC)对该待查询关键字区间的数据进行转换,得到一个数据量较小
的字符串集合,即,确定覆盖该待查询关键字区间的最小二叉树节点数据集合。以区间2-7
为例,其最小二叉树节点数据集合即为{“01”,“1”},简单理解就是,对2-7中的每个数进行
二进制转换并对转换后的字符串由左至右进行拆分,拆分后得到的字符串都会与该最小二
叉树节点数据集合存在交集,举例来说,对2进行二进制转换,可以得到字符串“10”,那么,
其由左至右拆分后即可得到字符串“1”和“10”,其中,“1”与该最小二叉树节点数据集合存
在交集;再比如,对7进行二进制转换,可以得到字符串“111” 那么,其由左至右拆分后即可
得到字符串“1”、“11”、“111”,其中,“1”与该最小二叉树节点数据集合存在交集。为了兼容
最大区间,例如,位长为m,区间为{0,},此时,覆盖待查询关键字区间的最小二叉树
节点数据集合就是空格,即‘ ’,为了兼容这种情况,可以将其它最小二叉树节点数据集合
中的数据,以及其拆分后的字符串都加上空格。举例来说,对6进行二进制转换,可以得到字
符串“110”,那么为了满足上述兼容的情况,需要将6转换为‘ 110’(即带空格的形式),并且
对其由左至右完整拆分后,也需要对拆分后的每个字符串加上空格‘ ’。
在实际应用中,由于后续会基于paillier加密算法在服务器中完成隐私查询,且服务器中创建有用于根据加密处理后的运算数据集合确定与待查询关键字区间对应的数据信息的多项式。基于该多项式的结构,在确定出该最小二叉树节点数据集合后,需要将最小二叉树节点数据集合转换成能够进行多项式计算的运算数据集合并加密。
将最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合的具体步骤如下:将最小二叉树节点数据集合转换为数字形式的数据集合。基于预设数学算法,将数字形式的数据集合转换为用于进行多项式计算的运算数据集合。
具体实施时,需要先将最小二叉树节点数据集合中的每个字符串都转换为数字的形式,以便后续对其进行加密并代入服务器中的多项式。而对于将字符串转换为数字的方法,可以为:先确定字符串中每一位的ASCII码值,再用对应位的ASCII码值乘以权重,最后,将一个字符串中多位ASCII码值与权重的乘积相加即可。举例来说,假设该字符串为“01”,而其中,“0”对应的ASCII码值为48,“1” 对应的ASCII码值为49,那么转化后的数字即为48×28×0+49×28×1=48+12544=12592。
为了便于理解,先对服务器中的多项式形式进行介绍,该多项式可以为P(x)=a0 x0+a1x1+…+anxn,其中,P(x)为待查询的数据信息,a为多项式系数,即已知数据,而x则是需要代入的上述处理后的数字形式的数据,即上述“12592”。基于该多项式的结构,可以将上述数字形式的数据集合转换为用于进行多项式计算的运算数据集合,举例来说,将12592转换为125920,125921…12592n。此时,即可采用paillier加密算法对125920,125921…12592n进行加密并发送给服务器。其中,服务器中包含了由多个关键字,以及与每个关键字对应的数据信息构成的数据库,基于每个关键字分别创建有一个相对应的多项式,基于该多项式以及加密处理后的运算数据集合可以确定与待查询关键字区间对应的数据信息。
下面介绍一下多项式的创建过程:
以针对字符串“110”为例创建多项式,那么首先对“110”从左到右进行完整拆分,得到“1”、“11”、“110”,其次,采用上述方法,将每个拆分后的字符串转换为数字形式的数据,然后构造N次多项式,其中,N的数值等于对字符串的拆分个数,以上述“110”为例,其拆分后形成了3个字符串,则对其就构造3次多项式。简单来说,就是使该多项式P(x)在3个x点取值为该关键字对应的数据信息,举个简单的例子,假设P(x)=(x-1)×(x-2)×(x-3)+100,存在3个x点1,2,3,使P(x)取值为该关键字对应的数据信息100,基于此,该式展开可得,P(x)=x3-6x2+11x+94,此仅以一简单示例,不以此为限。
具体实施时,举例来说,假设数字形式的数据集合中包含12592、25801、48093等多个数据,那么,其转化后的运算数据集合即为:125920,125921…12592n,258010,258011…25801n,480930,480931…48093n等,将12592、25801、48093等多个数据的幂次方加密后,分别代入多个P(x)=a0 x0+a1x1+…+anxn形式的多项式中,由于多项式系数{ai}是已知的,{xi}是密文的形式,基于paillier加密算法的同态特性,这里可以得到P(x)的密文,即,可得到加密状态下每个数字形式的数据对应的数据信息,即分别得到12592对应的数据信息、25801对应的数据信息、48093对应的数据信息,随后将其发送给客户端即可。此外,需要说明的是,基于多项式特性,这里每个数字形式的数据对应得到的数据信息可能会有多个,但是符合条件的只有一个,这就需要将其返回到客户端后,由客户端对其进行校验,确定出真正符合条件的数据信息,具体的校验过程会在下文中说明。此外,还可能存在一种情况:即待查询关键字区间与服务器的关键字不存在交集,此时,就会出现校验失败的情况。
客户端在分别得到加密状态下的12592对应的数据信息、25801对应的数据信息、48093对应的数据信息后,对上述数据信息进行解密,即可得到与待查询关键字区间对应的数据信息。应理解,由于客户端分别存储有与“12592”、“25801”、“48093”对应的私钥,因此可以对服务器返回的数据信息进行解密。
综上,本申请通过确定覆盖待查询关键字区间的最小二叉树节点数据集合,在覆盖待查询关键字区间的同时,有效地减小了待查询的数据量,提高了数据查询效率。通过将最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合,并对运算数据集合进行加密,并将加密处理后的运算数据集合发送给服务器,接收服务器发送的与待查询关键字区间对应的数据信息,可以得到加密状态的与待查询关键字区间对应的数据信息,再对该数据信息解密即可完成整个关键字区间查询工作。即本申请可以在保证客户端和服务器数据隐私的情况下(不会将服务器中除与待查询关键字区间对应的数据信息以外的数据发送给客户端,也不会让服务器获取客户端具体的待查询关键字区间),实现对一个数据区间的查询,且效率较高。
图2为本申请实施例提供的一种对数据信息进行校验的方法的流程图。如图2所示,该方法包括:
步骤201、对解密处理后的数据信息进行校验。
具体实施时,可以获取数据信息的第一长度对应的第一哈希数据,以及除第一长度外的第二长度对应的第二哈希数据,若第一哈希数据等于第二哈希数据,则确认校验通过。
举例来说,假设待校验的数据信息的长度为256位,则取低32位的哈希值作为校验值,若剩余224位的哈希值与该32位的哈希值相等,则确认校验通过。否则,则认为校验失败。需要说明的是,上述低32位的哈希值存储在解密后的数据信息中,而剩余224位的哈希值是通过计算得到,在得到剩余224位的哈希值后,将其与该低32位的哈希值进行比较即可。
步骤202、若校验通过,则确定数据信息为与待查询关键字区间对应的数据查询结果。
在实际应用中,在对服务器反馈的数据信息进行校验后,若校验通过,则确定数据信息为与待查询关键字区间对应的数据查询结果。若校验不通过,则将不通过的数据删除即可。
本申请实施例通过对服务器反馈的数据信息进行校验,并将校验通过的数据信息确定为与待查询关键字区间对应的数据查询结果,保证了关键字区间查询的准确性。
图3为本申请实施例提供的一种数据查询方法的流程图,应用于服务器,该服务器中具有包含待查询关键字区间的关键字集合,如图3所示,该方法包括:
步骤301、基于每个关键字分别创建一个相对应的多项式。
步骤302、接收客户端发送的数据查询请求,数据查询请求中包含加密处理后的运算数据集合,其中,运算数据集合由覆盖待查询关键字区间的最小二叉树节点数据集合转换得到。
步骤303、基于加密处理后的运算数据集合及各关键字分别对应的多项式,确定与待查询关键字区间对应的数据信息。
步骤304、将与待查询关键字区间对应的数据信息发送给客户端。
在本实施例中,基于关键字集合中的每个关键字分别创建一个相对应的多项式,包括:基于预设规则,对每个关键字分别进行拆分,得到每个关键字对应的多个拆分数据。根据每个关键字对应的多个拆分数据,分别创建与每个关键字相对应的一个多项式。
以针对字符串“110”为例创建多项式,那么首先对“110”从左到右进行完整拆分,得到“1”、“11”、“110”,其次,采用上述方法,将每个拆分后的字符串转换为数字形式的数据,然后构造N次多项式,其中,N的数值等于对字符串的拆分个数,以上述“110”为例,其拆分后形成了3个字符串,则对其就构造3次多项式。简单来说,就是使该多项式P(x)在3个x点取值为该关键字对应的数据信息,举个简单的例子,假设P(x)=(x-1)×(x-2)×(x-3)+100,存在3个x点1,2,3,使P(x)取值为该关键字对应的数据信息100,基于此,该式展开可得,P(x)=x3-6x2+11x+94,此仅以一简单示例,不以此为限。
本实施例中上述步骤的具体实现方式和技术效果与上述实施例中步骤101-步骤105的执行过程和技术效果相类似,具体可参考上述陈述内容,在此不再赘述。
本申请实施例提供的数据查询方法,基于每个关键字分别创建一个相对应的多项式,以便后续根据客户端发送的待查询关键字区间确定与之相对应的数据信息。通过接收包含加密处理后的运算数据集合的数据查询请求,并基于加密处理后的运算数据集合及各关键字分别对应的多项式,可以确定与待查询关键字区间对应的数据信息,之后,将与待查询关键字区间对应的数据信息发送给客户端即完成了整个关键字区间查询工作。即本申请可以在保证客户端和服务器数据隐私的情况下,实现对一个数据区间的查询,且效率较高。
图4为本申请实施例提供的另一种数据查询方法的流程图,该方法应用于客户端,如图4所示,该方法包括:
步骤401、确定覆盖待查询关键字区间的最小二叉树节点数据集合。
步骤402、根据最小二叉树节点数据集合中的数据创建一个多项式,该多项式用于辅助服务器确定与待查询关键字区间对应的数据信息。
步骤403、对多项式中的系数进行加密处理,并将加密处理后的多项式系数发送给服务器,其中,服务器中具有字符串集合,字符串集合由多个关键字拆分得到,每个关键字分别对应有一个数据信息。
步骤404、接收服务器基于字符串集合、每个关键字对应的数据信息,以及加密处理后的多项式系数确定的与待查询关键字区间对应的数据信息。
步骤405、对数据信息进行解密处理。
需要说明的是,为了保证服务器能够顺利的完成相关计算,客户端会预先创建一对相匹配的公钥和私钥。实际应用时,步骤403会使用该公钥对多项式中的系数进行加密,并将加密处理后的多项式中的系数和该公钥分别发送给服务器。而后,服务器根据该公钥和加密处理后的多项式中的系数确定与待查询关键字区间对应的数据信息,并将该数据信息发回给客户端。客户端使用该私钥对数据信息进行解密处理。
在本实施例中,待查询关键字区间内可以包含一个单一的关键字数据,也可以包含由多个连续的关键字数据组成的关键字区间。例如,其可以为2,也可以为2-7的区间,在实际应用中,若用户想查询20岁到50岁区间内的员工信息,那么此时,该待查询关键字区间即为20-50。
应理解,若一个区间内包含的关键字数据较多,那么在进行数据查询时需要耗费大量时间,基于此,本申请在得到待查询关键字区间后,首先会基于最佳覆盖范围(BestRange Covering,简称BRC)对该待查询关键字区间的数据进行转换,得到一个数据量较小的字符串集合,即,确定覆盖该待查询关键字区间的最小二叉树节点数据集合。以区间2-7为例,其最小二叉树节点数据集合即为{“01”,“1”},简单理解就是,对2-7中的每个数进行二进制转换并对转换后的字符串由左至右进行拆分,拆分后得到的每个字符串都会与该最小二叉树节点数据集合存在交集,举例来说,对2进行二进制转换,可以得到字符串“10”,那么,其由左至右拆分后即可得到字符串“1”和“10”,其中,“1”与该最小二叉树节点数据集合存在交集;再比如,对7进行二进制转换,可以得到字符串“111” 那么,其由左至右拆分后即可得到字符串“1”、“11”、“111”,其中,“1”与该最小二叉树节点数据集合存在交集。为了兼容最大区间,例如,位长为m,区间为{0,},此时,覆盖待查询关键字区间的最小二叉树节点数据集合就是空格,即‘ ’,为了兼容这种情况,可以将其它最小二叉树节点数据集合中的数据,以及其拆分后的字符串都加上空格。举例来说,对6进行二进制转换,可以得到字符串“110”,那么为了满足上述兼容的情况,需要将6转换为‘ 110’,并且对其由左至右完整拆分后,也需要对拆分后的每个字符串加上空格‘’。
在确定最小二叉树节点数据集合后,基于最小二叉树节点数据集合中的数据创建一个多项式,假设该最小二叉树节点数据集合中包括字符串“110”、“111”等,那么,将“110”、“111”等字符串都转换为数字的形式,具体转换方法可参考上述实施例。假设最小二叉树节点数据集合中共有3个字符串,其转换为整数后分别为1、2、3,那么此时,对其构造3次多项式。简单来说,就是使该多项式存在3个x点使P(x)取0,基于此,构造的多项式可以为P(x)=(x-1)×(x-2)×(x-3),展开可得,P(x)=x3-13x2-6,此仅以一简单示例,不以此为限。
根据上述多项式示例可知,该多项式为P(x)=a0 x0+a1x1+…+anxn结构,其中,多项式系数{ai}是已知数据,对a0、a1…an进行加密处理,并将加密处理后的多项式系数发送给服务器。其中,服务器中具有字符串集合,字符串集合由多个关键字拆分得到。假设该关键字集合中的某个关键字为“110”,那么,对该关键字从左到右进行完整拆分后可得到一个字符串集“1,11,110”,将该字符串集中的每个字符串均采用上述实施例步骤102的具体实现方式转换为数字形式,并将转换后的多个数字形式的数据分为作为上述多项式中的x,代入上述多项式,即可得到多个P(x),举例来说,假设关键字集合中的某个关键字i拆分后得到3个字符串,该3个字符串转换为数字形式后为4、5、6,分别将4、5、6代入上述P(x)=a0x0+a1x1+…+anxn多项式,即可得到加密状态下的P(4)、P(5)和P(6),而由于4、5、6为关键字i经过拆分后进行数字转换得到,因此,P(4)、P(5)和P(6)对应的数据信息均为Pi,此时,即可将P(4)+Pi(也就是与待查询关键字区间对应的数据信息)发送给客户端。需要说明的是,为了避免服务器中拆分的关键字泄露至客户端,可以将加密状态下的P(4)乘以一个随机数,再加上Pi一同发送给客户端,同样的,将加密状态下的P(5)乘以一个随机数,再加上Pi一同发送给客户端,将加密状态下的P(6)乘以一个随机数,再加上Pi一同发送给客户端,该示例只是为了便于理解,并不以此为限。
客户端在接收到上述数据信息后,对其进行解密,即可得到与待查询关键字区间对应的数据信息。
综上,本申请通过确定覆盖待查询关键字区间的最小二叉树节点数据集合,在覆盖待查询关键字区间的同时,有效地减小了待查询的数据量,提高了数据查询效率。通过根据最小二叉树节点数据集合中的数据创建一个多项式,并对多项式中的系数进行加密处理,将加密处理后的多项式系数发送给服务器,接收服务器基于字符串集合、每个关键字对应的数据信息,及加密处理后的多项式系数确定的与待查询关键字区间对应的数据信息,再对数据信息进行解密处理,即可完成整个关键字区间查询工作。即本申请可以在保证客户端和服务器数据隐私的情况下,实现对一个数据区间的查询,且效率较高。
在本实施例中,对数据信息进行解密处理之后,该方法还包括:对解密处理后的数据信息进行校验;若校验通过,则确定数据信息为与待查询关键字区间对应的数据查询结果。
具体实施时,对解密处理后的数据信息进行校验,包括:获取数据信息的第一长度对应的第一哈希数据,以及除第一长度外的第二长度对应的第二哈希数据;若第一哈希数据等于第二哈希数据,则确认校验通过。
本实施例中上述步骤的具体实现方式和技术效果与上述实施例中步骤201-步骤202的执行过程和技术效果相类似,具体可参考上述陈述内容,在此不再赘述。
图5为本申请实施例提供的一种数据查询方法的流程图,该方法应用于服务器,该服务器中具有字符串集合,字符串集合由多个关键字拆分得到,每个关键字分别对应有一个数据信息,如图5所示,该方法包括:
步骤501、接收客户端发送的数据查询请求,数据查询请求中包含加密处理后的多项式系数,其中,多项式系数对应的多项式根据覆盖待查询关键字区间的最小二叉树节点数据集合中的数据创建得到。
步骤502、基于字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定与待查询关键字区间对应的数据信息。
步骤503、将与待查询关键字区间对应的数据信息发送给客户端。
本实施例中上述步骤的具体实现方式和技术效果与上述实施例中步骤401-步骤405的执行过程和技术效果相类似,具体可参考上述陈述内容,在此不再赘述。
综上,本申请通过接收客户端发送的包含加密处理后的多项式系数的数据查询请求,而多项式系数对应的多项式根据覆盖待查询关键字区间的最小二叉树节点数据集合中的数据创建得到,在覆盖待查询关键字区间的同时,有效地减小了待查询的数据量,提高了数据查询效率。基于字符串集合、每个关键字对应的数据信息,及加密处理后的多项式系数确定与待查询关键字区间对应的数据信息,并将与待查询关键字区间对应的数据信息发送给客户端,即可完成整个关键字区间查询工作。即本申请可以在保证客户端和服务器数据隐私的情况下,实现对一个数据区间的查询,且效率较高。
图6为本申请实施例提供的一种数据查询装置的结构示意图,该装置应用于客户端,如图6所示,该装置包括:
确定模块601,用于确定覆盖待查询关键字区间的最小二叉树节点数据集合。
转换模块602,用于将最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合。
加密模块603,用于对运算数据集合进行加密,并将加密处理后的运算数据集合发送给服务器,其中,服务器中包含多个关键字以及与每个关键字分别对应的数据信息,基于每个关键字分别创建有一个相对应的多项式,多项式用于根据加密处理后的运算数据集合确定与待查询关键字区间对应的数据信息。
接收模块604,用于接收服务器发送的与待查询关键字区间对应的数据信息。
解密模块605,用于对数据信息进行解密处理。
在一种可选的实施例中,最小二叉树节点数据集合中的数据均为字符串形式,转换模块602还用于:将最小二叉树节点数据集合转换为数字形式的数据集合;基于预设数学算法,将数字形式的数据集合转换为用于进行多项式计算的运算数据集合。
在一种可选的实施例中,该装置还包括:校验模块,用于:对解密处理后的数据信息进行校验;若校验通过,则确定数据信息为与待查询关键字区间对应的数据查询结果。进一步地,该校验模块还用于:获取数据信息的第一长度对应的第一哈希数据,以及除第一长度外的第二长度对应的第二哈希数据;若第一哈希数据等于第二哈希数据,则确认校验通过。
图7为本申请实施例提供的一种数据查询装置的结构示意图,该装置应用于服务器,该服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,如图7所示,该装置包括:
创建模块701,用于基于每个关键字分别创建一个相对应的多项式。
接收模块702,用于接收客户端发送的数据查询请求,数据查询请求中包含加密处理后的运算数据集合,其中,运算数据集合由覆盖待查询关键字区间的最小二叉树节点数据集合转换得到。
确定模块703,用于基于加密处理后的运算数据集合及各关键字分别对应的多项式,确定与待查询关键字区间对应的数据信息。
发送模块704,用于将与待查询关键字区间对应的数据信息发送给客户端。
在一种可选的实施例中,创建模块701用于:基于预设规则,对每个关键字分别进行拆分,得到每个关键字对应的多个拆分数据;根据每个关键字对应的多个拆分数据,分别创建与每个关键字相对应的一个多项式。
图8为本申请实施例提供的另一种数据查询装置的结构示意图,该装置应用于客户端,如图8所示,该装置包括:
确定模块801,用于确定覆盖待查询关键字区间的最小二叉树节点数据集合。
创建模块802,用于根据最小二叉树节点数据集合中的数据创建一个多项式,多项式用于辅助服务器确定与待查询关键字区间对应的数据信息。
加密模块803,用于对多项式中的系数进行加密处理,并将加密处理后的多项式系数发送给服务器,其中,服务器中具有字符串集合,字符串集合由包含待查询关键字区间的多个关键字拆分得到,每个关键字分别对应有一个数据信息。
接收模块804,用于接收服务器基于字符串集合、每个关键字对应的数据信息,以及加密处理后的多项式系数确定的与待查询关键字区间对应的数据信息。
解密模块805,用于对数据信息进行解密处理。
在一种可选的实施例中,该装置还包括:校验模块,用于:对解密处理后的数据信息进行校验;若校验通过,则确定数据信息为与待查询关键字区间对应的数据查询结果。进一步地,该校验模块还用于:获取数据信息的第一长度对应的第一哈希数据,以及除第一长度外的第二长度对应的第二哈希数据;若第一哈希数据等于第二哈希数据,则确认校验通过。
图9为本申请实施例提供的一种数据查询装置的结构示意图,该装置应用于服务器,该服务器中具有字符串集合,该字符串集合由多个关键字拆分得到,每个关键字分别对应有一个数据信息,如图9所示,该装置包括:
接收模块901,用于接收客户端发送的数据查询请求,数据查询请求中包含加密处理后的多项式系数,其中,多项式系数对应的多项式根据覆盖待查询关键字区间的最小二叉树节点数据集合中的数据创建得到;
确定模块902,用于基于字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定与待查询关键字区间对应的数据信息;
发送模块903,用于将与待查询关键字区间对应的数据信息发送给客户端。
为了实现上述目的,根据本申请的另一方面,还提供了一种电子设备。该电子设备可以为智能电视、智能投影等。如图10所示,该电子包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行所述指令,以实现上述数据查询方法。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本申请上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的微控制单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的微控制单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个微控制单元 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (21)
1.一种数据查询方法,其特征在于,应用于客户端,所述方法包括:
确定覆盖待查询关键字区间的最小二叉树节点数据集合;
将所述最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合;
对所述运算数据集合进行加密,并将加密处理后的运算数据集合发送给服务器,其中,所述服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,基于每个所述关键字分别创建有一个相对应的多项式,所述多项式用于根据所述加密处理后的运算数据集合确定与所述待查询关键字区间对应的数据信息;
接收所述服务器发送的与所述待查询关键字区间对应的数据信息;
对所述数据信息进行解密处理。
2.根据权利要求1所述的方法,其特征在于,所述最小二叉树节点数据集合中的数据均为字符串形式,所述将所述最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合,包括:
将所述最小二叉树节点数据集合转换为数字形式的数据集合;
基于预设数学算法,将所述数字形式的数据集合转换为用于进行多项式计算的运算数据集合。
3.根据权利要求1所述的方法,其特征在于,所述对所述数据信息进行解密处理之后,所述方法还包括:
对所述解密处理后的数据信息进行校验;
若校验通过,则确定所述数据信息为与所述待查询关键字区间对应的数据查询结果。
4.根据权利要求3所述的方法,其特征在于,所述对所述解密处理后的数据信息进行校验,包括:
获取所述数据信息的第一长度对应的第一哈希数据,以及除所述第一长度外的第二长度对应的第二哈希数据;
若所述第一哈希数据等于所述第二哈希数据,则确认校验通过。
5.一种数据查询方法,其特征在于,应用于服务器,所述服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,所述方法包括:
基于每个所述关键字分别创建一个相对应的多项式;
接收客户端发送的数据查询请求,所述数据查询请求中包含加密处理后的运算数据集合,其中,所述运算数据集合由覆盖待查询关键字区间的最小二叉树节点数据集合转换得到;
基于所述加密处理后的运算数据集合及各所述关键字分别对应的多项式,确定与所述待查询关键字区间对应的数据信息;
将与所述待查询关键字区间对应的数据信息发送给所述客户端。
6.根据权利要求5所述的方法,其特征在于,所述基于每个所述关键字分别创建一个相对应的多项式,包括:
基于预设规则,对每个所述关键字分别进行拆分,得到每个所述关键字对应的多个拆分数据;
根据每个所述关键字对应的多个拆分数据,分别创建与每个所述关键字相对应的一个多项式。
7.一种数据查询方法,其特征在于,应用于客户端,所述方法包括:
确定覆盖待查询关键字区间的最小二叉树节点数据集合;
根据所述最小二叉树节点数据集合中的数据创建一个多项式,所述多项式用于辅助服务器确定与所述待查询关键字区间对应的数据信息;
对所述多项式中的系数进行加密处理,并将加密处理后的多项式系数发送给所述服务器,其中,所述服务器中具有字符串集合,所述字符串集合由多个关键字拆分得到,每个所述关键字分别对应有一个数据信息;
接收所述服务器基于所述字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定的与所述待查询关键字区间对应的数据信息;
对所述数据信息进行解密处理。
8.根据权利要求7所述的方法,其特征在于,所述对所述数据信息进行解密处理之后,所述方法还包括:
对所述解密处理后的数据信息进行校验;
若校验通过,则确定所述数据信息为与所述待查询关键字区间对应的数据查询结果。
9.根据权利要求8所述的方法,其特征在于,所述对所述解密处理后的数据信息进行校验,包括:
获取所述数据信息的第一长度对应的第一哈希数据,以及除所述第一长度外的第二长度对应的第二哈希数据;
若所述第一哈希数据等于所述第二哈希数据,则确认校验通过。
10.一种数据查询方法,其特征在于,应用于服务器,所述服务器中具有字符串集合,所述字符串集合由多个关键字拆分得到,每个所述关键字分别对应有一个数据信息,所述方法包括:
接收客户端发送的数据查询请求,所述数据查询请求中包含加密处理后的多项式系数,其中,所述多项式系数对应的多项式根据覆盖待查询关键字区间的最小二叉树节点数据集合中的数据创建得到;
基于所述字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定与所述待查询关键字区间对应的数据信息;
将与所述待查询关键字区间对应的数据信息发送给所述客户端。
11.一种数据查询装置,其特征在于,应用于客户端,所述装置包括:
确定模块,用于确定覆盖待查询关键字区间的最小二叉树节点数据集合;
转换模块,用于将所述最小二叉树节点数据集合转换为用于进行多项式计算的运算数据集合;
加密模块,用于对所述运算数据集合进行加密,并将加密处理后的运算数据集合发送给服务器,其中,所述服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,基于每个所述关键字分别创建有一个相对应的多项式,所述多项式用于根据所述加密处理后的运算数据集合确定与所述待查询关键字区间对应的数据信息;
接收模块,用于接收所述服务器发送的与所述待查询关键字区间对应的数据信息;
解密模块,用于对所述数据信息进行解密处理。
12.根据权利要求11所述的装置,其特征在于,所述最小二叉树节点数据集合中的数据均为字符串形式,所述转换模块还用于:
将所述最小二叉树节点数据集合转换为数字形式的数据集合;
基于预设数学算法,将所述数字形式的数据集合转换为用于进行多项式计算的运算数据集合。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:校验模块,用于:
对所述解密处理后的数据信息进行校验;
若校验通过,则确定所述数据信息为与所述待查询关键字区间对应的数据查询结果。
14.根据权利要求13所述的装置,其特征在于,所述校验模块还用于:
获取所述数据信息的第一长度对应的第一哈希数据,以及除所述第一长度外的第二长度对应的第二哈希数据;
若所述第一哈希数据等于所述第二哈希数据,则确认校验通过。
15.一种数据查询装置,其特征在于,应用于服务器,所述服务器中包含多个关键字以及与每个所述关键字分别对应的数据信息,所述装置包括:
创建模块,用于基于每个所述关键字分别创建一个相对应的多项式;
接收模块,用于接收客户端发送的数据查询请求,所述数据查询请求中包含加密处理后的运算数据集合,其中,所述运算数据集合由覆盖待查询关键字区间的最小二叉树节点数据集合转换得到;
确定模块,用于基于所述加密处理后的运算数据集合及各所述关键字分别对应的多项式,确定与所述待查询关键字区间对应的数据信息;
发送模块,用于将与所述待查询关键字区间对应的数据信息发送给所述客户端。
16.根据权利要求15所述的装置,其特征在于,所述创建模块用于:
基于预设规则,对每个所述关键字分别进行拆分,得到每个所述关键字对应的多个拆分数据;
根据每个所述关键字对应的多个拆分数据,分别创建与每个所述关键字相对应的一个多项式。
17.一种数据查询装置,其特征在于,应用于客户端,所述装置包括:
确定模块,用于确定覆盖待查询关键字区间的最小二叉树节点数据集合;
创建模块,用于根据所述最小二叉树节点数据集合中的数据创建一个多项式,所述多项式用于辅助服务器确定与所述待查询关键字区间对应的数据信息;
加密模块,用于对所述多项式中的系数进行加密处理,并将加密处理后的多项式系数发送给所述服务器,其中,所述服务器中具有字符串集合,所述字符串集合由关键字拆分得到,每个所述关键字分别对应有一个数据信息;
接收模块,用于接收所述服务器基于所述字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定的与所述待查询关键字区间对应的数据信息;
解密模块,用于对所述数据信息进行解密处理。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:校验模块,用于:
对所述解密处理后的数据信息进行校验;
若校验通过,则确定所述数据信息为与所述待查询关键字区间对应的数据查询结果。
19.根据权利要求18所述的装置,其特征在于,所述校验模块还用于:
获取所述数据信息的第一长度对应的第一哈希数据,以及除所述第一长度外的第二长度对应的第二哈希数据;
若所述第一哈希数据等于所述第二哈希数据,则确认校验通过。
20.一种数据查询装置,其特征在于,应用于服务器,所述服务器中具有字符串集合,所述字符串集合由多个关键字拆分得到,每个所述关键字分别对应有一个数据信息,所述装置包括:
接收模块,用于接收客户端发送的数据查询请求,所述数据查询请求中包含加密处理后的多项式系数,其中,所述多项式系数对应的多项式根据覆盖待查询关键字区间的最小二叉树节点数据集合中的数据创建得到;
确定模块,用于基于所述字符串集合、每个所述关键字对应的数据信息,以及加密处理后的多项式系数确定与所述待查询关键字区间对应的数据信息;
发送模块,用于将与所述待查询关键字区间对应的数据信息发送给所述客户端。
21.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-10中任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210816048.4A CN114911851B (zh) | 2022-07-12 | 2022-07-12 | 数据查询方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210816048.4A CN114911851B (zh) | 2022-07-12 | 2022-07-12 | 数据查询方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114911851A true CN114911851A (zh) | 2022-08-16 |
CN114911851B CN114911851B (zh) | 2022-10-14 |
Family
ID=82772770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210816048.4A Active CN114911851B (zh) | 2022-07-12 | 2022-07-12 | 数据查询方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911851B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673307A (zh) * | 2009-10-21 | 2010-03-17 | 中国农业大学 | 空间数据索引方法及系统 |
CN102073718A (zh) * | 2011-01-10 | 2011-05-25 | 清华大学 | 一种对概率数据库查询结果予以解释与擦改的系统及方法 |
CN104408177A (zh) * | 2014-12-15 | 2015-03-11 | 西安电子科技大学 | 基于云文档系统的密文检索方法 |
CN107124276A (zh) * | 2017-04-07 | 2017-09-01 | 西安电子科技大学 | 一种安全的数据外包机器学习数据分析方法 |
CN107203723A (zh) * | 2017-04-06 | 2017-09-26 | 华南农业大学 | 基于散列表方法的多公共云上的文件存储及其检索方法 |
KR20170122048A (ko) * | 2016-04-26 | 2017-11-03 | 한국전자통신연구원 | 블룸 필터와 이진 트리를 이용한 암호 데이터 검색 시스템 및 그 방법 |
CN108156140A (zh) * | 2017-12-13 | 2018-06-12 | 西安电子科技大学 | 一种支持数值属性比较的多关键字可搜索加密方法 |
CN109299295A (zh) * | 2018-09-04 | 2019-02-01 | 南通科技职业学院 | 蓝印花布图像数据库搜索方法 |
CN110176984A (zh) * | 2019-05-28 | 2019-08-27 | 创意信息技术股份有限公司 | 一种用于安全字符串模式匹配的数据结构构造及匹配方法 |
CN114547146A (zh) * | 2022-02-22 | 2022-05-27 | 哈尔滨工业大学 | 时序数据压缩查询方法、装置、计算设备及存储介质 |
-
2022
- 2022-07-12 CN CN202210816048.4A patent/CN114911851B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673307A (zh) * | 2009-10-21 | 2010-03-17 | 中国农业大学 | 空间数据索引方法及系统 |
CN102073718A (zh) * | 2011-01-10 | 2011-05-25 | 清华大学 | 一种对概率数据库查询结果予以解释与擦改的系统及方法 |
CN104408177A (zh) * | 2014-12-15 | 2015-03-11 | 西安电子科技大学 | 基于云文档系统的密文检索方法 |
KR20170122048A (ko) * | 2016-04-26 | 2017-11-03 | 한국전자통신연구원 | 블룸 필터와 이진 트리를 이용한 암호 데이터 검색 시스템 및 그 방법 |
CN107203723A (zh) * | 2017-04-06 | 2017-09-26 | 华南农业大学 | 基于散列表方法的多公共云上的文件存储及其检索方法 |
CN107124276A (zh) * | 2017-04-07 | 2017-09-01 | 西安电子科技大学 | 一种安全的数据外包机器学习数据分析方法 |
CN108156140A (zh) * | 2017-12-13 | 2018-06-12 | 西安电子科技大学 | 一种支持数值属性比较的多关键字可搜索加密方法 |
CN109299295A (zh) * | 2018-09-04 | 2019-02-01 | 南通科技职业学院 | 蓝印花布图像数据库搜索方法 |
CN110176984A (zh) * | 2019-05-28 | 2019-08-27 | 创意信息技术股份有限公司 | 一种用于安全字符串模式匹配的数据结构构造及匹配方法 |
CN114547146A (zh) * | 2022-02-22 | 2022-05-27 | 哈尔滨工业大学 | 时序数据压缩查询方法、装置、计算设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王谐谦: ""面向键值对存储的范围过滤器研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114911851B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI734368B (zh) | 實現隱私保護的數據同態加解密方法及裝置 | |
JP7486529B2 (ja) | プライベート情報検索に応用される準同型暗号化方法 | |
US20200366460A1 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
US10554385B2 (en) | Method for providing encrypted data in a database and method for searching on encrypted data | |
US20180198601A1 (en) | String Matching in Encrypted Data | |
JP4722620B2 (ja) | 暗号化文書検索方法および暗号化文書検索システム | |
JP6180177B2 (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
JP5966877B2 (ja) | 復号方法、復号プログラム、復号装置、および鍵生成方法 | |
CN112800088A (zh) | 基于双向安全索引的数据库密文检索系统及方法 | |
US11177944B1 (en) | Method and system for confidential string-matching and deep packet inspection | |
JP2017515195A (ja) | 断熱量子計算を介してデジタル論理制約問題を解く | |
CN102314580A (zh) | 一种基于向量和矩阵运算的支持计算的加密方法 | |
WO2024077948A1 (zh) | 匿踪查询方法、装置和系统及存储介质 | |
US20170262546A1 (en) | Key search token for encrypted data | |
US9037846B2 (en) | Encoded database management system, client and server, natural joining method and program | |
CN114048448A (zh) | 基于区块链的动态可搜索加密方法及装置 | |
CN114826703A (zh) | 基于区块链的数据搜索细粒度访问控制方法及系统 | |
Akavia et al. | Secure search on encrypted data via multi-ring sketch | |
Peng et al. | LS-RQ: A lightweight and forward-secure range query on geographically encrypted data | |
EP4181456A1 (en) | Secure integer comparison using binary trees | |
US11233646B2 (en) | Searchable encryption method | |
CN114327261A (zh) | 数据文件的存储方法及数据安全代理 | |
Hoang et al. | A multi-server oblivious dynamic searchable encryption framework | |
CN117150557A (zh) | 一种基于安全多方计算的支持压缩的隐私信息检索方法及系统 | |
CN114911851B (zh) | 数据查询方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |