CN117555946A - 一种数据查询方法、装置、计算机设备和存储介质 - Google Patents
一种数据查询方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117555946A CN117555946A CN202311569288.XA CN202311569288A CN117555946A CN 117555946 A CN117555946 A CN 117555946A CN 202311569288 A CN202311569288 A CN 202311569288A CN 117555946 A CN117555946 A CN 117555946A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- key
- data
- query
- client
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000012545 processing Methods 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 24
- 230000036961 partial effect Effects 0.000 claims description 20
- 238000011835 investigation Methods 0.000 claims description 2
- 239000003795 chemical substances by application Substances 0.000 description 59
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 230000002829 reductive effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000010365 information processing Effects 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000007788 liquid Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
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
Abstract
本公开提供了一种数据查询方法、装置、计算机设备和存储介质,其中,该方法包括:接收客户方发送的密文查询条件;其中密文查询条件为客户方基于与服务方约定的第一密钥和/或第二密钥对待查数据库的至少一个查询条件加密生成;通过匿踪查询方式从服务方的密文数据集合中查询与密文查询条件匹配的密文查询结果;其中密文数据集合是服务方基于第一密钥以及第二密钥对待查数据库中每条数据加密得到;向客户方返回密文查询结果,其中密文查询结果支持客户方利用第一密钥和第二密钥解密得到对应的明文数据。在保证数据查询的安全性和隐秘性的同时,提高客户方的数据查询效率。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据查询方法、装置、计算机设备和存储介质。
背景技术
在进行信息查询时,为了提高信息查询的安全性和隐秘性,客户方往往希望在获取查询结果的同时,不向服务方泄漏查询条件和查询结果,因此也就出现了一系列的匿踪客户方案。但是,在这些匿踪客户方案中,客户端的通信量往往与服务方的数据量成正比,而由于客户方的网络带宽通常无法满足预期,所以常规的匿踪客户方案往往存在降低数据查询效率的问题。
发明内容
本公开实施例至少提供一种数据查询方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种数据查询方法,应用于代理方,所述方法包括:
接收客户方发送的密文查询条件;其中所述密文查询条件为所述客户方基于与服务方约定的密钥对待查数据库的至少一个查询条件加密生成;
通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果;其中所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
向所述客户方返回所述密文查询结果,其中所述密文查询结果支持所述客户方利用所述密钥解密得到对应的明文数据。
第二方面,本公开实施例提供了一种数据查询方法,应用于客户方,所述方法包括:
获取对待查数据库的至少一个查询条件,并基于与服务方约定的密钥对所述查询条件进行加密生成密文查询条件;
将所述密文查询条件发送给代理方,并获取所述代理方反馈的与所述密文查询条件匹配的密文查询结果,其中所述密文查询结果为所述代理方通过匿踪查询方式从所述服务方的密文数据集合中查询得到的,所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
利用所述第一密钥和所述第二密钥对所述密文查询结果解密,得到对应的明文数据。
第三方面,本公开实施例提供了一种数据查询方法,应用于服务方,所述方法包括:
基于与客户方约定的第一密钥和第二密钥对待查数据库中每条数据进行加密,得到密文数据集合;
基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果;其中所述密文查询条件为所述客户方基于所述密钥对待查数据库的至少一个查询条件加密生成。
第四方面,本公开实施例还提供一种数据查询装置,包括:
接收模块,用于接收客户方发送的密文查询条件;其中所述密文查询条件为所述客户方基于与服务方约定的密钥对待查数据库的至少一个查询条件加密生成;
查询模块,用于通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果;其中所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
反馈模块,用于向所述客户方返回所述密文查询结果,其中所述密文查询结果支持所述客户方利用所述密钥解密得到对应的明文数据。
第五方面,本公开实施例还提供一种数据查询装置,包括:
加密模块,用于获取对待查数据库的至少一个查询条件,并基于与服务方约定的密钥对所述查询条件进行加密生成密文查询条件;
查询模块,用于将所述密文查询条件发送给代理方,并获取所述代理方反馈的与所述密文查询条件匹配的密文查询结果,其中所述密文查询结果为所述代理方通过匿踪查询方式从所述服务方的密文数据集合中查询得到的,所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
解密模块,用于利用所述密钥对所述密文查询结果解密,得到对应的明文数据。
第六方面,本公开实施例还提供一种数据查询装置,包括:
加密模块,用于基于与客户方约定的第一密钥和第二密钥对待查数据库中每条数据进行加密,得到密文数据集合;
反馈模块,用于基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果;其中所述密文查询条件为所述客户方基于所述密钥对待查数据库的至少一个查询条件加密生成。
第七方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤;或者,所述机器可读指令被所述处理器执行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤;或则所述机器可读指令被所述处理器执行时执行上述第三方面,或第三方面中任一种可能的实施方式中的步骤。
第八方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤;或者,该计算机程序被运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤;或者,该计算机程序被运行时执行上述第三方面,或第三方面中任一种可能的实施方式中的步骤。
第九方面,本公开可选实现方式还提供一种计算机程序产品,包括计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤;或者,该计算机程序被运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤;或者,该计算机程序被运行时执行上述第三方面,或第三方面中任一种可能的实施方式中的步骤。
关于上述数据查询装置、计算机设备、及计算机可读存储介质的效果描述参见上述数据查询方法的说明,这里不再赘述。
本公开实施例提供的数据查询方法、装置、计算机设备和存储介质,由于代理方可以与服务方部署在同一局域网中的不同机器中,所以代理方和服务方之间可以存在高速网络。因此,代理方在获取到客户方发送的密文查询条件后,可以利用高速网络,实现快速获取到服务方的密文数据集合并从密文数据集合中,获取与密文查询条件相匹配的目标加密数据。通过代理方将目标加密数据反馈至客户方,可以实现将客户方需要接收的数据量级从密文数据集合包括的大量加密数据减少至有限条数据,如此,既可以减少客户方与代理方之间的通信量,减弱客户方对网络带宽的要求,又可以保证客户方能够快速获取目标加密数据,提高了客户方的数据查询效率。并且,由于密文查询条件和密文数据集合均属于加密后的信息,代理方无法得知密文查询条件和密文数据集合加密所用的密钥,而密文查询条件和密文查询结果也未公开给服务方,所以代理方和服务方均无法获取客户方的查询条件和查询结果,提高了数据查询的安全性和隐秘性。整个数据查询的过程,相当于将客户方与服务方之间的通信数据量转移到了代理方与服务方之间,而由于代理方和服务方之间存在高速网络,所以即使服务方的数据量级较大,代理方也可以利用高速网络快速获取到密文数据集合,继而可以从密文数据集合中快速获取到目标加密数据并反馈至客户方,有效提高了客户方的数据查询效率。通过客户方、代理方和服务方三者之间的交互,可以在保证数据查询的安全性和隐秘性的同时,提高客户方的数据查询效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种应用于代理方的数据查询方法的流程图;
图2示出了本公开实施例所提供的一种应用于客户方的数据查询方法的流程图;
图3示出了本公开实施例所提供的一种应用于服务方的数据查询方法的流程图;
图4示出了本公开实施例所提供的一种数据查询系统的交互示意图;
图5示出了本公开实施例所提供的一种应用于代理方的数据查询装置的示意图;
图6示出了本公开实施例所提供的一种应用于客户方的数据查询装置的示意图;
图7示出了本公开实施例所提供的一种应用于服务方的数据查询装置的示意图;
图8示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,匿踪查询方式的特点在于服务方无法得知客户方的查询条件和查询结果,具体的过程即为服务方在接收到客户方发送的查询请求后,将自身存储的全部数据反馈至客户方。然后由客户方在接收到服务方反馈的全部数据后,从这些数据筛选出符合期望的目标数据。但是,针对这种查询方式而言,客户端的通信量往往与服务方的数据量成正比,在服务方存储有大量的数据时,会由于客户方的网络带宽的影响而使得数据查询效率大大降低,存在较大的查询弊端。
基于上述研究,本公开提供了一种数据查询方法、装置、计算机设备和存储介质,由于代理方可以与服务方部署在同一局域网中的不同机器中,所以代理方和服务方之间可以存在高速网络。因此,代理方在获取到客户方发送的密文查询条件后,密文查询条件可以利用高速网络,实现快速获取到服务方反馈的密文数据集合,并从密文数据集合中,获取与密文查询条件相匹配的目标加密数据作为密文查询结果。通过将的密文查询结果反馈至客户方,可以实现将客户方需要接收的数据量级从密文数据集合包括的大量加密数据减少至有限条目标加密数据,也即,客户方的通信量仅与代理方获取到的密文查询结果的量级相关。如此,既可以减少客户方与代理方之间的通信量,减弱客户方对网络带宽的要求,又可以保证客户方能够快速获取目标加密数据,提高了客户方的数据查询效率。并且,由于密文查询条件和密文数据集合均属于加密后的信息,代理方无法得知密文查询条件和密文数据集合加密所用的密钥,而密文查询条件和密文查询结果也未公开给服务方,所以代理方和服务方均无法获取客户方的查询条件和查询结果,提高了数据查询的安全性和隐秘性。整个数据查询的过程,相当于将客户方与服务方之间的通信数据量转移到了代理方与服务方之间,而由于代理方和服务方之间存在高速网络,所以即使服务方的数据量级较大,代理方也可以利用高速网络快速获取到密文数据集合,继而可以从密文数据集合中快速获取到密文查询结果并反馈至客户方,有效提高了客户方的数据查询效率。通过客户方、代理方和服务方三者之间的交互,可以在保证数据查询的安全性和隐秘性的同时,提高客户方的数据查询效率。
需要说明的是,为便于理解,本公开实施例中的客户方也可以称为查询方,服务方也可以称为被查询方,代理方也可以称为代理服务端。服务方可以部署在公有云机器上,代理方可以部署在与服务方处于同一局域网络的机器中,代理方和服务方之间部署有高速网络,两者均具有较大的网络带宽。
针对以上现有技术的方案中所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据查询方法进行详细介绍,本公开实施例所提供的数据查询方法的执行主体一般为具有一定计算能力的终端设备或其他处理设备,其中终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、个人数字助理设备(Personal Digital Assistant,PDA)、手持设备、计算机设备等;在一些可能的实现方式中,该数据查询方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为代理方为例对本公开实施例提供的数据查询方法加以说明。
如图1所示,为本公开实施例提供的一种应用于代理方的数据查询方法的流程图,其执行主体为代理方,该数据查询方法可以包括以下步骤:
S101、接收客户方发送的密文查询条件;其中所述密文查询条件为所述客户方基于与服务方约定的密钥对待查数据库的至少一个查询条件加密生成。
在本实施例中,客户方和服务方可预先约定密钥,所约定的密钥对代理方不公开;可选的,客户方和服务方可分别预先约定一个密钥,其中客户方可设定第一密钥,服务方可设定第二密钥,并相互公开,但第一密钥和第二密钥对代理方不公开。
在客户方需要从服务方的待查询数据库查询数据时,可先获取对待查数据库的至少一个查询条件,查询条件为用于查询目标数据的条件,为客户方生成的条件。针对客户方而言,一次查询可以包括一个或多个查询条件,示例性的,一次查询对应的多个查询条件可以对应于一个查询条件集合{x1,x2,…,xn},x1,x2,…,xn为不同的查询条件,查询条件例如可以为身份标识(Identity document,id),n为大于0的整数,n的取值即为查询条件的数量。
为了避免代理方知晓查询条件,客户方可根据客户方与服务方约定的密钥对每一查询条件进行加密得到密文查询条件,在客户方将密文查询条件发送给代理方后,由于代理方并不知晓客户方与服务方约定的,因此代理方无法对密文查询条件进行解密,保证了查询条件的安全性和隐秘性。
其中客户方根据客户方与服务方约定的密钥对每一查询条件进行加密可采用与服务方预先约定的目标加密方式,其中目标加密方式可以为多种加密方式中的任一种加密方式,多种加密方式可以包括但不限于对称加密方式和非对称加密方式。在具体实施时,现有技术中任一种加密方式均可以落入本公开的保护范围内。
可选的,密钥包括客户方设定的第一密钥和/或服务方设定的第二密钥,其中客户方根据第一密钥和/或第二密钥对每一查询条件进行加密,包括客户方根据第一密钥对每一查询条件进行加密、客户方根据第二密钥对每一查询条件进行加密、客户方先根据第一密钥对每一查询条件进行加密后再根据第二密钥进行加密、客户方先根据第二密钥对每一查询条件进行加密后再根据第一密钥进行加密等情况。
需要说明的是,在客户方设定第一密钥时,以及服务方设定第二密钥时,可根据目标加密方式来确定第一密钥和第二密钥,其中第一密钥和第二密钥不同,示例性的,在目标加密方式为对称加密方式的情况下,第一密钥和第二密钥可以分别为随机选取的一个加密密钥。此外,客户方和服务方之间可以以密态方式将第一密钥和第二密钥通过代理方传递给对方,以保证第一密钥和第二密钥不被代理方获知。
S102、通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果;其中所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到。
在本实施例中,服务方的待查数据库可存储和提供数据,且存储的数据可以动态更新;服务方可以预先或者实时的基于客户方与服务方约定的对待查数据库中每条数据加密得到密文数据集合(或存储于密文数据库中);代理方可通过匿踪查询方式从服务方获取密文数据集合,由于代理方不知晓客户方与服务方约定的密钥,因此代理方无法对从服务方获取到的密文数据集合进行解密,保证了密文数据集合的安全性和隐秘性。其中代理方可以在接收到客户方发送的密文查询条件后从服务方获取密文数据集合,也可以周期性的从服务方获取密文数据集合,或者由服务方周期性的向代理方发送密文数据集合,或者在密文数据集合发生更新后由服务方向代理方发送密文数据集合。可选的,代理方可从服务方获取密文数据集合的全量或部分加密数据。
在本实施例中,在获取到密文数据集合后,代理方可从密文数据集合中获取与密文查询条件匹配的部分加密数据,作为密文查询结果,由于代理方无法获取到客户方与服务方约定的密钥,因此代理方无法对密文查询结果进行解密,同时代理方也不会将密文查询结果公开给服务方,保证了密文查询结果安全性和隐秘性。
具体实施时,针对每个密文查询条件,代理方可基于匿踪查询方式从服务方获取密文数据集合,其中匿踪查询方式为非代理模式的匿踪查询方式,可以采用现有的任意可行的匿踪查询方式。可选的,代理方可以从服务方获取密文数据集合的全量加密数据,这样服务方也就无法获知被查询的数据,从而实现匿踪查询;或者代理方也可在密文查询条件的基础上进行信息混淆处理,添加混淆信息,混淆信息可以为密文查询条件以外的其他查询条件,但是由于密文查询条件是经过客户方与服务方约定的密钥加密的,因此混淆信息也需要经过客户方与服务方约定的密钥加密才不会使服务方区分出混淆信息和密文查询条件,而由于代理方不知晓客户方与服务方约定的密钥,因此可以向代理方请求混淆信息(例如经过客户方与服务方约定的密钥加密的其他查询条件),或者代理方也可收集代理方的一些历史查询条件作为混淆信息,当然也可采用其他手段获取混淆信息,或者采用其他手段对密文查询条件进行二次处理(例如信息加密操作等),进一步的,代理方可基于经过信息混淆等处理的密文查询条件向服务方请求密文数据集合的部分加密数据,该部分加密数据包括了与密文查询条件匹配的加密数据,也包括了一些其他用于混淆的加密数据,使得服务方无法确定实际被查询的数据,从而实现匿踪查询,保证了密文查询条件的安全性和隐秘性。
进一步的,代理方可以从获取到的密文数据集合中查询与密文查询条件匹配的加密数据,作为密文查询结果。
S103、向所述客户方返回所述密文查询结果,其中所述密文查询结果支持所述客户方利用所述密钥解密得到对应的明文数据。
在本实施例中,在代理方查询到与密文查询条件匹配的密文查询结果后,将密文查询结果返回给客户方,客户方可利用客户方与服务方约定的密钥解密,得到密文查询结果中包括的明文数据,从而完成数据查询。
本实施例提供的数据查询方法,通过代理方接收客户方发送的密文查询条件;其中密文查询条件为客户方基于与服务方约定的密钥对待查数据库的至少一个查询条件加密生成;通过匿踪查询方式从服务方的密文数据集合中查询与密文查询条件匹配的密文查询结果;其中密文数据集合是服务方基于所述密钥对待查数据库中每条数据加密得到;向客户方返回密文查询结果,其中密文查询结果支持客户方利用所述密钥解密得到对应的明文数据。本实施例中代理方和服务方之间可以存在高速网络,代理方可以利用高速网络实现快速获取到服务方反馈的密文数据集合,并根据客户方的密文查询条件从密文数据集合中获取与密文查询条件相匹配的密文查询结果,反馈至客户方,可以实现降低客户方需要接收的数据量级,减少客户方与代理方之间的通信量,减弱客户方对网络带宽的要求,又保证客户方能够快速获取到密文查询结果,提高了客户方的数据查询效率;并且密文查询条件和密文数据集合均属于加密后的信息,代理方无法解密密文查询条件和密文查询结果,而服务方无法获取到密文查询条件和密文查询结果,因此提高了数据查询的安全性和隐秘性。
整个数据查询的过程,相当于将客户方与服务方之间的通信数据量转移到了代理方与服务方之间,而由于代理方和服务方之间存在高速网络,所以即使服务方的数据量级较大,代理方也可以利用高速网络快速获取到密文数据集合,继而可以从密文数据集合中快速获取到密文查询结果,并反馈至客户方,有效提高了客户方的数据查询效率。通过客户方、代理方和服务方三者之间的交互,可以在保证数据查询的安全性和隐秘性的同时,提高客户方的数据查询效率。
在上述任一实施例的基础上,客户方与服务方约定的密钥可包括客户方设定的第一密钥和/或服务方设定的第二密钥;所述S101接收客户方发送的密文查询条件前,客户方可设定第一密钥,和/或服务方可设定第二密钥,并以密态的方式通过代理方传递给对方,其具体如下:
代理方接收所述客户方发送的密文形式的第一密钥,并将所述密文形式的第一密钥发送给所述服务方,其中所述密文形式的第一密钥为所述客户方采用与所述服务方约定的第一公钥加密算法对所述第一密钥进行加密得到;和/或
代理方接收所述服务方发送的密文形式的第二密钥,并将所述密文形式的第二密钥发送给所述客户方,其中所述密文形式的第二密钥为所述服务方采用与所述客户方约定的第二公钥加密算法对所述第二密钥进行加密得到。
在本实施例中,客户方在设定第一密钥后,可采用与服务方约定的第一公钥加密算法对第一密钥进行加密,具体的,可利用服务方公开的第一公钥进行加密得到密文形式的第一密钥,并将密文形式的第一密钥通过代理方传输至服务方,服务方用于利用服务方的第一私钥进行解密后得到第一密钥;
而服务方在设定第二密钥后,可采用与客户方约定的第二公钥加密算法对第二密钥进行加密,具体的,可利用客户方公开的第二公钥进行加密得到密文形式的第二密钥,并将密文形式的第二密钥通过代理方传输至客户方,客户方用于利用客户方的第二私钥进行解密后得到第二密钥。
这里,服务方拥有第一公钥加密算法(非对称加密)的第一公私钥对(即第一公钥和第一私钥),其中,第一公钥可以与服务方通过任一种安全认证方式进行安全绑定,安全认证方式例如可以为公钥基础设施(Public Key Infrastructure,PKI)数字证书,第一私钥即为用于对第一公钥进行解密的密钥,第一公钥可以用pks表示,第一私钥可以用sks表示。在安全绑定之后,服务方可以将第一公钥公开,以供客户方使用。同理,客户方拥有第二公钥加密算法的第二公私钥对(即第二公钥和第二私钥),其中,第二公钥也可以与客户方通过任一种安全认证方式进行安全绑定,例如利用PKI数字证书进行安全绑定,第二私钥为用于对第二公钥进行解密的密钥,第二公钥可以用pkc表示,第二私钥可以用skc表示。在安全绑定之后,客户方可以将第二公钥公开,以供服务方使用。
以第一密钥为第一密钥keyc、第二密钥为第二密钥keys为例进行说明,客户方在生成keyc之后,利用服务方的第一公钥pks加密第一密钥keyc,得到Cipher(keyc)。然后,客户方可以将Cipher(keyc)通过代理方发送至服务方,也可以通过其他方式发送给服务方,这里不进行具体限定。服务方在接收到Cipher(keyc)之后,利用第一私钥sks对Cipher(keyc)进行解密,得到第一密钥keyc。服务方在得到第一密钥keyc之后,可设定第二密钥keys并利用客户方公开的第二公钥pkc加密第二密钥keys,得到Cipher(keys)。然后,服务方可以将Cipher(keys)通过代理方发送至客户方,也可以通过其他方式发送给客户方。客户方在得到Cipher(keys)后,利用第二私钥skc对Cipher(keys)进行解密,得到第二密钥keys。
通过上述过程可完成第一密钥和/或第二密钥的设定和传递,且代理方无法获得第一密钥和第二密钥。
在上述任一实施例的基础上,服务方的待查数据库中的每一条数据可采用第一密钥和/或第二密钥进行加密得到密文数据集合。
可选的,服务方的待查数据库为键值数据库,待查数据库中的数据为键值数据对(key-value),例如key的取值可以为各个id,value的取值可以根据服务方的存储业务确定,例如,在服务方的存储业务为存储属性信息的业务时,value的取值可以是id对应的属性信息;在服务方的存储业务为存储特征的业务时,value的取值可以是id对应的特征。示例性的,服务方存储的一条数据可以为(id,value)。
下面以{(y1,v1),(y2,v2),…,(ym,vm)}表示待查数据库中的键值数据对,其中y1~ym表示不同的id(key),m的大小根据id的数量决定,m为大于0的整数,v1~vm表示对应id的值(value)。
而密文数据集合则是服务方利用第一密钥和/或第二密钥,对键数据和值数据分别进行加密后得到的,例如针对于待查数据库中的任一条键值数据对,服务方可以利用第一密钥和/或第二密钥对该条数据的键数据进行加密,且所使用的密钥与密文查询条件所使用的密钥相同(也即对称加密方式);利用第一密钥和/或第二密钥对该条数据的值数据进行加密。
例如,针对数据(ym,vm),服务方在利用第一密钥和第二密钥对其进行加密后,得到加密数据(Cipher(ym),Cipher(vm))。
其中包括:利用第一密钥对键数据进行加密,利用第二密钥对值数据进行加密;利用第二密钥对键数据进行加密,利用第一密钥对值数据进行加密;利用第一密钥对键数据进行加密再利用第二密钥进一步加密,利用第一密钥对值数据进行加密再利用第二密钥进一步加密;利用第二密钥对键数据进行加密再利用第一密钥进一步加密,利用第二密钥对值数据进行加密再利用第一密钥进一步加密;利用第一密钥对键数据进行加密再利用第二密钥进一步加密,利用第二密钥对值数据进行加密再利用第一密钥进一步加密;利用第二密钥对键数据进行加密再利用第一密钥进一步加密,利用第一密钥对值数据进行加密再利用第二密钥进一步加密;以及上述利用单个密钥对键数据和值数据中的一个进行加密、与利用两个密钥对键数据和值数据中的另一个进行加密的各种组合,此处不在一一举例。其中,由于查询过程通常是基于键数据实现,因此服务方对键数据的加密方式与客户方对查询条件的加密方式相同(也即对称加密方式)。
在一种示例中,假设第一密钥使用keyc表示,第二密钥使用keys表示,客户方可以利用keyc对查询条件集合{x1,x2,…,xn}中的各个查询条件,分别进行加密处理,得到密文查询条件{Cipher(x1),Cipher(x2)…,Cipher(xn)}。
服务方可以利用keyc和keys,对数据{(y1,v1),(y2,v2),…,(ym,vm)}进行加密,其中利用keyc对键数据y1,y2…,ym进行加密,利用keys对值数据进行v1,v2…,vm加密,得到密文数据集合{(Cipher(y1),Cipher(v1)),(Cipher(y2),Cipher(v2)),…,(Cipher(ym),Cipher(vm))}。
在上述任一实施例的基础上,为了对齐查询条件和服务方的待查数据库中存储的数据的长度,以便于密文查询条件能够与密文数据集合能够匹配,客户方可以先对查询条件采用进行哈希处理后,再采用第一密钥和/或第二密钥对经过目标哈希算法处理后的查询条件进行加密,得到密文查询条件;而服务方可以先对待查数据库中每条数据采用目标哈希算法进行哈希处理后,再采用客户方与服务方约定的密钥对经过目标哈希算法处理后的待查数据库中每条数据进行加密,得到密文数据集合。
示例性的,目标哈希算法可以包括MD5哈希算法、SHA哈希算法、HMAC哈希算法、Bcrypt哈希算法、一致性哈希算法、国密算法SM3、等,其中,SHA哈希算法还可以包括SHA2哈希算法和SHA3哈希算法等。需要说明的是,在具体实施时,现有技术中存在的任一种哈希算法均应该落在本公开的保护范围内。
以目标哈希算法为SHA哈希算法为例,客户方的查询条件集合为{x1,x2,…,xn},则在利用目标哈希算法对查询条件进行哈希处理后,得到的处理后的查询条件组成的条件集合为{SHAx1,SHAx2,…,SHAxn},客户方可以将处理后的查询条件采用客户方与服务方约定的密钥进行加密,得到密文查询条件,
同理,针对服务方而言,可以利用和客户方协商好使用的目标哈希算法对待查数据库中每条数据进行哈希处理,以目标哈希算法为SHA哈希算法为例,服务方的待查数据库中的数据为a1、a2、a3,在利用目标哈希算法进行哈希处理后,得到处理后的数据SHA a1、SHA a2、SHA a3。或者,服务方的待查数据库中的键值对数据为{(y1,v1),(y2,v2),…,(ym,vm)},在利用目标哈希算法进行哈希处理后,得到处理后的数据{(SHAy1,v1),(SHAy2,v2),…,(SHAym,vm)},也即对于键值对数据,由于查询条件通常为键数据,因此只需要对键数据采用目标哈希算法进行哈希处理即可,而可以不对值数据进行哈希处理。
在上述任一实施例的基础上,S102所述通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果,具体可包括:
S1021、向所述待客户方发送对所述密文数据集合的数据获取请求,并接收所述待客户方发送的所述密文数据集合中的全量或部分加密数据;
S1022、根据所述密文查询条件,从所述密文数据集合中的全量或部分加密数据中查找与所述密文查询条件匹配的密文查询结果。
在本实施例中,代理方在接收到客户方发送的密文查询条件后,可以向待客户方发送对密文数据集合的数据获取请求,其中,由于不同的客户方与服务方约定的密钥可能不同,因此数据获取请求中至少需要携带客户方的信息(如客户方标识),以便于服务方将经过与客户方约定的密钥加密的密文数据集合中的全量或部分加密数据发送给代理方。其中所发送的全量或部分加密数据的数据量远多于被查询的数据(与密文查询条件匹配的),因此服务方是无法确定与密文查询条件匹配的密文查询结果,也就无法确定密文查询条件,从而实现密文查询条件对服务方匿踪的效果。
其中对密文数据集合的数据获取请求,也可称之为匿踪查询请求,在从服务方获取密文数据集合中的全量加密数据的情况中,可以仅仅是一个获取数据的指令,其中至少携带客户方的信息即可,当然携带其他信息亦可,只要不向服务方公开客户方的密文查询条件即可。
而在从服务方获取密文数据集合中的部分加密数据的情况中,为了保证部分加密数据中包括与密文查询条件匹配的密文查询结果,可对文查询条件进行混淆处理,并基于混淆处理后的密文查询条件生成对密文数据集合的数据获取请求,其中混淆处理可采用任意可行的混淆处理,本实施例中不做限定,可选的,由于密文查询条件是经过客户方与服务方约定的密钥加密的,因此对密文查询条件添加的混淆信息也需要经过客户方与服务方约定的密钥加密才不会使服务方区分出混淆信息和密文查询条件,而由于代理方不知晓客户方与服务方约定的密钥,因此可以向代理方请求混淆信息(如经过客户方与服务方约定的密钥加密的其他查询条件),或者代理方也可收集代理方的一些历史查询条件作为混淆信息,当然也可采用其他手段获取混淆信息,或者采用其他手段对密文查询条件进行二次处理(例如信息加密操作、信息打乱、信息编码、反向编码、信息填充处理等),进一步的,代理方可基于经过混淆等处理的密文查询条件向服务方请求密文数据集合的部分加密数据,该部分加密数据包括了与密文查询条件匹配的加密数据,也包括了一些其他用于混淆的加密数据,使得服务方无法确定实际被查询的数据,从而实现匿踪查询,保证了密文查询条件的安全性和隐秘性。
当然在从服务方获取密文数据集合中的全量加密数据的情况中也可采用上述混淆处理后的密文查询条件生成对密文数据集合的数据获取请求,服务方接收到对密文数据集合的数据获取请求后返回密文数据集合中的全量加密数据即可。
当然上述实施例中代理方也可采用其他可行的匿踪查询方式从服务方查找与密文查询条件匹配的密文查询结果,本实施例中不做限定。
在上述实施例中,代理方和服务方之间可建立通信连接,并基于该通信连接向服务方发送对密文数据集合的数据获取请求,同样的,服务方通过通信连接返回密文数据集合中的全量或部分加密数据,由于代理方和服务方之间具有高速网络,所以服务方返回的密文数据集合中的全量或部分加密数据的数据量对查询速度的影响将会极小。
可以理解的,一个客户方需要查询的数据可以从多个服务方获取,代理方可以将对密文数据集合的数据获取请求分别发送至各个服务方,各个服务方可以分别向代理方返回各自的密文数据集合中的全量或部分加密数据,其中各自的密文数据集合是经过各自与客户方约定的密钥加密的数据。
在代理方获取到密文数据集合中的全量或部分加密数据后,可根据密文查询条件,从密文数据集合中的全量或部分加密数据中查找与密文查询条件匹配的密文查询结果。
示例性的,在服务方的待查数据库中的数据(ym,vm)组成的数据集合为{(0,2),(2,4),(3,5),(4,5)},第一密钥为keyc,第二密钥为keys,keyc用于对ym加密,keys用于对vm加密,查询条件集合为{1,2,3}的情况下,密文数据集合为{(Cipher(0),Cipher(2)),(Cipher(2),Cipher(4)),(Cipher(3),Cipher(5)),(Cipher(4),Cipher(5))},密文查询条件为{Cipher(1),Cipher(2),Cipher(3)},代理方可以根据密文查询条件从密文数据集合中查询匹配的目标加密数据,包括(Cipher(2),Cipher(4))和(Cipher(3),Cipher(5)),作为密文查询结果,代理方将密文查询结果发挥给客户方,客户方可利用keyc对Cipher(2)和Cipher(3)解密,得到键数据2和3,利用keys用于Cipher(4)和Cipher(5)解密,得到值数据4和5,进而最终得到的对应的明文数据为{(2,4),(3,5)},对于查询条件x=1,由于数据库中不存在对应的键数据,则可知该查询条件对应的数据为空。
另外,基于上述各实施例可知,本公开提供的数据查询方法需要客户方、服务方、代理方三方之间的交互才可以完成,所以本公开实施例还提供了一种应用于客户方的数据查询方法。如图2所示,为本公开实施例提供的一种应用于客户方的数据查询方法的流程图,可以包括以下步骤:
S201、获取对待查数据库的至少一个查询条件,并基于与服务方约定的密钥对所述查询条件进行加密生成密文查询条件;
S202、将所述密文查询条件发送给代理方,并获取所述代理方反馈的与所述密文查询条件匹配的密文查询结果,其中所述密文查询结果为所述代理方通过匿踪查询方式从所述服务方的密文数据集合中查询得到的,所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
S203、利用所述密钥对所述密文查询结果解密,得到对应的明文数据。
需要说明的是,关于上述S201~S203的具体实施步骤,可以参照前文中的各实施例,此处不再赘述。
在上述实施例的基础上,所述密钥包括所述客户方设定的第一密钥和/或所述服务方设定的第二密钥;S201所述基于与服务方预先约定的第一密钥对所述查询条件进行加密生成密文查询条件前,还包括:
生成所述第一密钥;并利用与所述服务方约定的第一公钥加密算法,对所述第一密钥进行加密,得到密文形式的第一密钥,并通过所述代理方向所述服务方传递所述密文形式的第一密钥;和/或
接收所述服务方通过所述代理方传递的密文形式的第二密钥,其中所述密文形式的第二密钥为所述服务方采用与所述客户方约定的第二公钥加密算法对所述第二密钥进行加密得到;并采用与所述第二公钥加密算法对应的第二私钥解密算法对密文形式的第二密钥进行解密,得到所述第二密钥。
需要说明的是,客户方通过代理方向服务方传递密文形式的第一密钥的过程、以及客户方接收服务方通过代理方传递的密文形式的第二密钥的过程,可以不限定执行的先后顺序。
在上述任一实施例的基础上,S201所述基于与服务方预先约定的密钥对所述查询条件进行加密生成密文查询条件,包括:
利用与所述服务方预先约定的目标哈希算法,对所述查询条件进行哈希处理,得到处理后的查询条件;
基于所述密钥对所述处理后的查询条件进行加密生成所述密文查询条件。
上述客户方侧的各实施例中,客户方先对查询条件进行加密再将加密得到的密文查询条件发送至代理方,可以保证代理方无法获取到具体的查询条件,提高了查询条件在代理方的安全性;由于而与密文查询条件匹配的密文查询结果为使用客户方与服务方约定的密钥进行加密后得到的数据,且代理方获取不到客户方与服务方约定的密钥,所以目标加密数据无法被代理方解密,提高了数据在代理方的安全性;客户方在获取到代理方反馈的密文查询结果后,利用客户方与服务方约定的密钥对密文查询结果进行解密,可以实现快速准确地获取到所需查询的数据。
另外,本公开实施例还提供了一种应用于服务方的数据查询方法。如图3所示,为本公开实施例提供的一种应用于服务方的数据查询方法的流程图,可以包括以下步骤:
S301、基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合;
S302、基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果;其中所述密文查询条件为所述客户方基于所述密钥对待查数据库的至少一个查询条件加密生成。
需要说明的是,关于上述S301~S302的具体实施步骤,可以参照前文中的各实施例,此处不再赘述。
在上述实施例的基础上,S302所述基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果,包括:
接收所述代理方发送的对所述密文数据集合的数据获取请求;
将所述密文数据集合中的全量或部分加密数据发送给所述代理方,其中所述密文数据集合中的全量或部分加密数据用于供所述代理方从其中查找与所述密文查询条件匹配的密文查询结果。
在上述任一实施例的基础上,所述密钥包括所述客户方设定的第一密钥和/或所述服务方设定的第二密钥;S301所述基于与客户方约定的密钥对待查数据库中每条数据进行加密前,还包括:
生成所述第二密钥;并利用与所述客户方约定的第二公钥加密算法,对所述第二密钥进行加密,得到密文形式的第二密钥,并通过所述代理方向所述客户方传递所述密文形式的第二密钥;和/或
接收所述客户方通过所述代理方传递的密文形式的第一密钥,其中所述密文形式的第一密钥为所述客户方采用与所述服务方约定的第一公钥加密算法对所述第一密钥进行加密得到;并采用与所述第一公钥加密算法对应的第一私钥解密算法对密文形式的第一密钥进行解密,得到所述第一密钥。
需要说明的是,服务方通过代理方向客户方传递密文形式的第二密钥的过程、以及服务方接收客户方通过代理方传递的密文形式的第一密钥的过程,可以不限定执行的先后顺序。
在上述任一实施例的基础上,S301所述基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合,包括:
利用与所述客户方预先约定的目标哈希算法,对所述待查数据库中每条数据进行哈希处理,得到处理后的每条数据;
基于所述密钥对所述处理后的每条数据进行加密,得到密文数据集合。
在上述任一实施例的基础上,所述待查数据库为键值数据库,所述待查数据库包括键值数据对;相应的,S301所述基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合,包括:
采用所述第一密钥和/或所述第二密钥对每条数据的键进行加密,得到密文形式的键;其中所述密文形式的键所使用的密钥与所述密文查询条件所使用的密钥相同;
采用所述第一密钥和/或所述第二密钥对每条数据的值进行加密,得到密文形式的值;
基于相互对应的密文形式的键和密文形式的值生成密文形式的键值数据对,基于密文形式的键值数据对得到所述密文数据集合。
上述服务方侧的各实施例中,客户方的第一密钥和服务方的第二密钥以密态的方式通过代理方传递给对方,保证不被代理方获得,可提高第一密钥和第二密钥的安全性和隐秘性,进而保证了基于密钥加密的密文查询请求和密文查询结果不被代理方解密,保证了密文查询请求和密文查询结果的安全性和隐秘性;由于服务方和代理方之间可存在高速网络,所以服务方可以将密文数据集合快速反馈至代理方,避免出现代理方获取密文数据集合的时长过长的问题;代理方在获取到密文数据集合后,通过匿踪查询方式从中获取到密文查询结果,而密文查询结果不会公开给服务方,从而服务方无法获知密文查询请求和密文查询结果,保证了密文查询请求和密文查询结果的安全性和隐秘性。
如图4所示,为本公开实施例提供的一种数据查询系统的交互示意图,其中,数据查询系统中包括客户方、代理方和服务方,以目标加密方式为对称加密方式为例进行说明。
客户方可以拥有查询条件集合{x1,x2,…,xn}以及公钥加密算法对应的第二公私钥对(pkc,skc);客户方将自己的第二公钥pkc公开。
服务方拥有存储格式为<id,value>的待查数据库{(y1,v1),(y2,v2),…,(ym,vm)}以及公钥加密算法对应的第一公私钥对(pks,sks);服务方将自己的第一公钥pks公开。
客户方可以随机选取对称加密算法的一个密钥:第一密钥keyc,并使用服务方公开的第一公钥pks加密keyc,得到Cipher(keyc)。然后可以通过将Cipher(keyc)发送至服务方。
服务方接收到Cipher(keyc)后,使用公钥加密算法的第一私钥sks进行解密,得到keyc。同时,服务方可以随机选取对称加密算法的一个密钥:第二密钥keys,并使用客户方公开的第二公钥pkc加密keys,得到Cipher(keys);将Cipher(keys)发送至客户方。利用第二公钥pkc加密第二密钥keys,得到加密后的第二密钥Cipher(keys),并将Cipher(keys)发送至客户方。
并且,服务方使用对称加密算法的keyc和keys,对数据库中的每一条数据(ym,vm)进行加密,得到每一条数据对应的加密数据,其中,keyc用于对ym进行加密处理得到(Cipher(ym),keys用于对vm进行加密处理得到Cipher(vm)。各条加密数据用于生成密文数据集合{(Cipher(y1),Cipher(v1)),(Cipher(y2),Cipher(v2)),…,(Cipher(ym),Cipher(vm))}。
举例来说,服务方的待查数据库为{(0,2),(2,4),(3,5),(4,5)},得到的密文数据集合可以为{(Cipher(0),Cipher(2)),(Cipher(2),Cipher(4)),(Cipher(3),Cipher(5)),(Cipher(4),Cipher(5))。
客户方在接收到Cipher(keys)后,利用公钥加密算法的第二私钥skc进行解密,得到keys。并且,客户方可以利用keyc对查询条件集合的每个查询条件{xn}分别进行加密处理,得到密文查询条件{Cipher(xn)}。将{Cipher(xn)}发送至代理方。
举例来说,查询条件集合为{1,2,3}的情况下,密文查询条件为{Cipher(1),Cipher(2),Cipher(3)}。
代理方在接收到密文查询条件{Cipher(xn)}后,可以生成匿踪查询请求,并基于匿踪查询请求与服务方进行非代理模式的匿踪查询。其中,代理方可以作为非代理模式的匿踪查询的客户方并且输入为与{Cipher(xn)}相关的匿踪查询请求;服务方作为非代理模式的匿踪查询的服务方且输入为基于加密数据生成的密文数据集合{(Cipher(ym),Cipher(vm)}。代理方与服务方两者之间完成非代理模式的匿踪查询后,服务方可以基于匿踪查询请求向代理方反馈密文数据集合,代理方可以基于匿踪查询方式从密文数据集合中获取目标加密数据{(Cipher(xk),Cipher(vk))},也即代理方的输出为{(Cipher(xk),Cipher(vk))},其中,(Cipher(xk),Cipher(vk))为目标加密数据,xk属于查询条件{xn}与数据库键值{ym}的交集,服务方的输出为空。之后,代理方可以将{(Cipher(xk),Cipher(vk))}反馈至客户方。
举例来说,代理方确定的目标加密数据组成的数据集合为{(Cipher(2),Cipher(4)),(Cipher(3),Cipher(5))}。
客户方在接收到{(Cipher(xk),Cipher(vk))}之后,使用对称加密算法的第一密钥keyc和第二密钥keys,分别对每一条目标加密数据进行解密,得到{(xk,vk},其中,使用keyc对Cipher(xk)进行解密得到xk,使用keys对Cipher(vk)进行解密得到vk。
举例来说,客户方解密{(Cipher(2),Cipher(4)),(Cipher(3),Cipher(5))}得到的各条目标查询数据组成为集合为{(2,4),(3,5)}。对于查询条件x=1,由于待查数据库中不存在对应的键数据,则可知该查询条件对应的目标查询数据为空。
这样,由于代理方和服务方之间部署有高速网络,可以加速代理方获取密文数据集合的效率,继而提高客户方获取目标查询数据的效率。客户方与代理方之间的通信量只跟查询条件与服务方的数据库键集合的交集相关,不再跟服务方的数据库中的数据量相关,极大降低了客户方的通信量,减弱了对客户方的网络要求。同时,由于查询条件和数据均被加密,所以可以有效保证数据查询的安全性和隐秘性。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据查询方法对应的数据查询装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据查询方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,为本公开实施例提供的一种应用于代理方的数据查询装置的示意图,包括:
接收模块501,用于接收客户方发送的密文查询条件;其中所述密文查询条件为所述客户方基于与服务方约定的密钥对待查数据库的至少一个查询条件加密生成;
查询模块502,用于通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果;其中所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
反馈模块503,用于向所述客户方返回所述密文查询结果,其中所述密文查询结果支持所述客户方利用所述密钥解密得到对应的明文数据。
在一种可能的实施方式中,所述密钥包括所述客户方设定的第一密钥和/或所述服务方设定的第二密钥;所述接收模块501在接收客户方发送的密文查询条件前,还用于接收所述客户方发送的密文形式的第一密钥;
反馈模块503还用于,将所述密文形式的第一密钥发送给所述服务方,其中所述密文形式的第一密钥为所述客户方采用与所述服务方约定的第一公钥加密算法对所述第一密钥进行加密得到;和/或
接收模块501还用于,接收所述服务方发送的密文形式的第二密钥;
反馈模块503还用于,将所述密文形式的第二密钥发送给所述客户方,其中所述密文形式的第二密钥为所述服务方采用与所述客户方约定的第二公钥加密算法对所述第二密钥进行加密得到。
在一种可能的实施方式中,所述待查数据库为键值数据库,所述待查数据库包括键值数据对;相应的,所述密文数据集合中包括由密文形式的键以及对应的密文形式的值组成的键值数据对,其中所述密文形式的键以所述第一密钥和/或所述第二密钥加密,且所述密文形式的键所使用的密钥与所述密文查询条件所使用的密钥相同;所述密文形式的值以所述第一密钥和/或所述第二密钥加密。
在一种可能的实施方式中,所述密文查询条件为所述客户方基于所述第一密钥和/或所述第二密钥对经过目标哈希算法处理后的查询条件加密生成;
所述密文数据集合为所述服务方基于所述第一密钥以及所述第二密钥对经过目标哈希算法处理后的所述待查数据库中每条数据加密得到。
在一种可能的实施方式中,所述查询模块502在通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果时,用于:
向所述待客户方发送对所述密文数据集合的数据获取请求,并接收所述待客户方发送的所述密文数据集合中的全量或部分加密数据;
根据所述密文查询条件,从所述密文数据集合中的全量或部分加密数据中查找与所述密文查询条件匹配的密文查询结果。
在一种可能的实施方式中,所述查询模块502在向所述待客户方发送对所述密文数据集合的数据获取请求时,用于:
对所述密文查询条件进行混淆处理,并基于混淆处理后的密文查询条件生成对所述密文数据集合的数据获取请求;
向所述待客户方发送对所述密文数据集合的数据获取请求。
基于同一发明构思,本公开实施例中还提供了与数据查询方法对应的数据查询装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据查询方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,为本公开实施例提供的一种应用于客户方的数据查询装置的示意图,包括:
加密模块601,用于获取对待查数据库的至少一个查询条件,并基于与服务方约定的密钥对所述查询条件进行加密生成密文查询条件;
查询模块602,用于将所述密文查询条件发送给代理方,并获取所述代理方反馈的与所述密文查询条件匹配的密文查询结果,其中所述密文查询结果为所述代理方通过匿踪查询方式从所述服务方的密文数据集合中查询得到的,所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
解密模块603,用于利用所述密钥对所述密文查询结果解密,得到对应的明文数据。
在一种可能的实施方式中,所述密钥包括所述客户方设定的第一密钥和/或所述服务方设定的第二密钥;所述加密模块601在基于与服务方预先约定的第一密钥对所述查询条件进行加密生成密文查询条件前,还用于:
生成所述第一密钥;并利用与所述服务方约定的第一公钥加密算法,对所述第一密钥进行加密,得到密文形式的第一密钥,并通过所述代理方向所述服务方传递所述密文形式的第一密钥;和/或
接收所述服务方通过所述代理方传递的密文形式的第二密钥,其中所述密文形式的第二密钥为所述服务方采用与所述客户方约定的第二公钥加密算法对所述第二密钥进行加密得到;并采用与所述第二公钥加密算法对应的第二私钥解密算法对密文形式的第二密钥进行解密,得到所述第二密钥。
在一种可能的实施方式中,所述加密模块601在基于与服务方预先约定的密钥对所述查询条件进行加密生成密文查询条件时,用于:
利用与所述服务方预先约定的目标哈希算法,对所述查询条件进行哈希处理,得到处理后的查询条件;
基于所述密钥对所述处理后的查询条件进行加密生成所述密文查询条件。
基于同一发明构思,本公开实施例中还提供了与数据查询方法对应的数据查询装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据查询方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,为本公开实施例提供的一种应用于服务方的数据查询装置的示意图,包括:
加密模块701,用于基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合;
反馈模块702,用于基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果;其中所述密文查询条件为所述客户方基于所述密钥对待查数据库的至少一个查询条件加密生成。
在一种可能的实施方式中,所述反馈模块702在基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果时,用于:
接收所述代理方发送的对所述密文数据集合的数据获取请求;
将所述密文数据集合中的全量或部分加密数据发送给所述代理方,其中所述密文数据集合中的全量或部分加密数据用于供所述代理方从其中查找与所述密文查询条件匹配的密文查询结果。
在一种可能的实施方式中,所述密钥包括所述客户方设定的第一密钥和/或所述服务方设定的第二密钥;所述加密模块701在基于与客户方约定的密钥对待查数据库中每条数据进行加密前,还用于:
生成所述第二密钥;并利用与所述客户方约定的第二公钥加密算法,对所述第二密钥进行加密,得到密文形式的第二密钥,并通过所述代理方向所述客户方传递所述密文形式的第二密钥;和/或
接收所述客户方通过所述代理方传递的密文形式的第一密钥,其中所述密文形式的第一密钥为所述客户方采用与所述服务方约定的第一公钥加密算法对所述第一密钥进行加密得到;并采用与所述第一公钥加密算法对应的第一私钥解密算法对密文形式的第一密钥进行解密,得到所述第一密钥。
在一种可能的实施方式中,所述加密模块701在基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合时,用于:
利用与所述客户方预先约定的目标哈希算法,对所述待查数据库中每条数据进行哈希处理,得到处理后的每条数据;
基于所述密钥对所述处理后的每条数据进行加密,得到密文数据集合。
在一种可能的实施方式中,所述待查数据库为键值数据库,所述待查数据库包括键值数据对;所述加密模块701在基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合时,用于:
采用所述第一密钥和/或所述第二密钥对每条数据的键进行加密,得到密文形式的键;其中所述密文形式的键所使用的密钥与所述密文查询条件所使用的密钥相同;
采用所述第一密钥和/或所述第二密钥对每条数据的值进行加密,得到密文形式的值;
基于相互对应的密文形式的键和密文形式的值生成密文形式的键值数据对,基于密文形式的键值数据对得到所述密文数据集合。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
参考图8,其示出了适于用来实现本公开实施例的计算机设备800的结构示意图,该计算机设备800可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(PortableMedia Player,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的计算机设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,计算机设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(Read Only Memory,简称ROM)802中的程序或者从存储装置808加载到随机访问存储器(Random Access Memory,简称RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有计算机设备800操作所需的各种程序和数据。处理装置801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许计算机设备800与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的计算机设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从ROM 802被安装。在该计算机程序被处理装置801执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述计算机设备中所包含的;也可以是单独存在,而未装配入该计算机设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该计算机设备执行时,使得该计算机设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据查询方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的数据查询方法的计算机程序产品,包括计算机程序,所述计算机程序包括的指令可用于执行上述方法实施例中所述的数据查询方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式、处理的个人信息种类等信息。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (20)
1.一种数据查询方法,其特征在于,应用于代理方,包括:
接收客户方发送的密文查询条件;其中所述密文查询条件为所述客户方基于与服务方约定的密钥对待查数据库的至少一个查询条件加密生成;
通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果;其中所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
向所述客户方返回所述密文查询结果,其中所述密文查询结果支持所述客户方利用所述密钥解密得到对应的明文数据。
2.根据权利要求1所述的方法,其特征在于,所述密钥包括所述客户方设定的第一密钥和/或所述服务方设定的第二密钥;
所述接收客户方发送的密文查询条件前,还包括:
接收所述客户方发送的密文形式的第一密钥,并将所述密文形式的第一密钥发送给所述服务方,其中所述密文形式的第一密钥为所述客户方采用与所述服务方约定的第一公钥加密算法对所述第一密钥进行加密得到;和/或
接收所述服务方发送的密文形式的第二密钥,并将所述密文形式的第二密钥发送给所述客户方,其中所述密文形式的第二密钥为所述服务方采用与所述客户方约定的第二公钥加密算法对所述第二密钥进行加密得到。
3.根据权利要求2所述的方法,其特征在于,所述待查数据库为键值数据库,所述待查数据库包括键值数据对;
相应的,所述密文数据集合中包括由密文形式的键以及对应的密文形式的值组成的键值数据对,其中所述密文形式的键以所述第一密钥和/或所述第二密钥加密,且所述密文形式的键所使用的密钥与所述密文查询条件所使用的密钥相同;所述密文形式的值以所述第一密钥和/或所述第二密钥加密。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述密文查询条件为所述客户方基于所述第一密钥和/或所述第二密钥对经过目标哈希算法处理后的查询条件加密生成;
所述密文数据集合为所述服务方基于所述第一密钥以及所述第二密钥对经过目标哈希算法处理后的所述待查数据库中每条数据加密得到。
5.根据权利要求1所述的方法,其特征在于,所述通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果,包括:
向所述待客户方发送对所述密文数据集合的数据获取请求,并接收所述待客户方发送的所述密文数据集合中的全量或部分加密数据;
根据所述密文查询条件,从所述密文数据集合中的全量或部分加密数据中查找与所述密文查询条件匹配的密文查询结果。
6.根据权利要求5所述的方法,其特征在于,所述向所述待客户方发送对所述密文数据集合的数据获取请求,包括:
对所述密文查询条件进行混淆处理,并基于混淆处理后的密文查询条件生成对所述密文数据集合的数据获取请求;
向所述待客户方发送对所述密文数据集合的数据获取请求。
7.一种数据查询方法,其特征在于,应用于客户方,所述方法包括:
获取对待查数据库的至少一个查询条件,并基于与服务方约定的密钥对所述查询条件进行加密生成密文查询条件;
将所述密文查询条件发送给代理方,并获取所述代理方反馈的与所述密文查询条件匹配的密文查询结果,其中所述密文查询结果为所述代理方通过匿踪查询方式从所述服务方的密文数据集合中查询得到的,所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
利用所述密钥对所述密文查询结果解密,得到对应的明文数据。
8.根据权利要求7所述的方法,其特征在于,所述密钥包括所述客户方设定的第一密钥和/或所述服务方设定的第二密钥;
所述基于与服务方预先约定的第一密钥对所述查询条件进行加密生成密文查询条件前,还包括:
生成所述第一密钥;并利用与所述服务方约定的第一公钥加密算法,对所述第一密钥进行加密,得到密文形式的第一密钥,并通过所述代理方向所述服务方传递所述密文形式的第一密钥;和/或
接收所述服务方通过所述代理方传递的密文形式的第二密钥,其中所述密文形式的第二密钥为所述服务方采用与所述客户方约定的第二公钥加密算法对所述第二密钥进行加密得到;并采用与所述第二公钥加密算法对应的第二私钥解密算法对密文形式的第二密钥进行解密,得到所述第二密钥。
9.根据权利要求7或8所述的方法,其特征在于,所述基于与服务方预先约定的密钥对所述查询条件进行加密生成密文查询条件,包括:
利用与所述服务方预先约定的目标哈希算法,对所述查询条件进行哈希处理,得到处理后的查询条件;
基于所述密钥对所述处理后的查询条件进行加密生成所述密文查询条件。
10.一种数据查询方法,其特征在于,应用于服务方,所述方法包括:
基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合;
基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果;其中所述密文查询条件为所述客户方基于所述密钥对待查数据库的至少一个查询条件加密生成。
11.根据权利要求10所述的方法,其特征在于,所述基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果,包括:
接收所述代理方发送的对所述密文数据集合的数据获取请求;
将所述密文数据集合中的全量或部分加密数据发送给所述代理方,其中所述密文数据集合中的全量或部分加密数据用于供所述代理方从其中查找与所述密文查询条件匹配的密文查询结果。
12.根据权利要求10所述的方法,其特征在于,所述密钥包括所述客户方设定的第一密钥和/或所述服务方设定的第二密钥;
所述基于与客户方约定的密钥对待查数据库中每条数据进行加密前,还包括:
生成所述第二密钥;并利用与所述客户方约定的第二公钥加密算法,对所述第二密钥进行加密,得到密文形式的第二密钥,并通过所述代理方向所述客户方传递所述密文形式的第二密钥;和/或
接收所述客户方通过所述代理方传递的密文形式的第一密钥,其中所述密文形式的第一密钥为所述客户方采用与所述服务方约定的第一公钥加密算法对所述第一密钥进行加密得到;并采用与所述第一公钥加密算法对应的第一私钥解密算法对密文形式的第一密钥进行解密,得到所述第一密钥。
13.根据权利要求10所述的方法,其特征在于,所述基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合,包括:
利用与所述客户方预先约定的目标哈希算法,对所述待查数据库中每条数据进行哈希处理,得到处理后的每条数据;
基于所述密钥对所述处理后的每条数据进行加密,得到密文数据集合。
14.根据权利要求12所述的方法,其特征在于,所述待查数据库为键值数据库,所述待查数据库包括键值数据对;所述基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合,包括:
采用所述第一密钥和/或所述第二密钥对每条数据的键进行加密,得到密文形式的键;其中所述密文形式的键所使用的密钥与所述密文查询条件所使用的密钥相同;
采用所述第一密钥和/或所述第二密钥对每条数据的值进行加密,得到密文形式的值;
基于相互对应的密文形式的键和密文形式的值生成密文形式的键值数据对,基于密文形式的键值数据对得到所述密文数据集合。
15.一种数据查询装置,其特征在于,包括:
接收模块,用于接收客户方发送的密文查询条件;其中所述密文查询条件为所述客户方基于与服务方约定的密钥对待查数据库的至少一个查询条件加密生成;
查询模块,用于通过匿踪查询方式从所述服务方的密文数据集合中查询与所述密文查询条件匹配的密文查询结果;其中所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
反馈模块,用于向所述客户方返回所述密文查询结果,其中所述密文查询结果支持所述客户方利用所述密钥解密得到对应的明文数据。
16.一种数据查询装置,其特征在于,包括:
加密模块,用于获取对待查数据库的至少一个查询条件,并基于与服务方约定的密钥对所述查询条件进行加密生成密文查询条件;
查询模块,用于将所述密文查询条件发送给代理方,并获取所述代理方反馈的与所述密文查询条件匹配的密文查询结果,其中所述密文查询结果为所述代理方通过匿踪查询方式从所述服务方的密文数据集合中查询得到的,所述密文数据集合是所述服务方基于所述密钥对所述待查数据库中每条数据加密得到;
解密模块,用于利用所述密钥对所述密文查询结果解密,得到对应的明文数据。
17.一种数据查询装置,其特征在于,包括:
加密模块,用于基于与客户方约定的密钥对待查数据库中每条数据进行加密,得到密文数据集合;
反馈模块,用于基于所述密文数据集合,与代理方通过匿踪查询方式确定与所述客户方的密文查询条件匹配的密文查询结果;其中所述密文查询条件为所述客户方基于所述密钥对待查数据库的至少一个查询条件加密生成。
18.一种计算机设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至14任意一项所述的数据查询方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至14任意一项所述的数据查询方法的步骤。
20.一种计算机程序产品,其特征在于包括计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至14任意一项所述的数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311569288.XA CN117555946A (zh) | 2023-11-22 | 2023-11-22 | 一种数据查询方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311569288.XA CN117555946A (zh) | 2023-11-22 | 2023-11-22 | 一种数据查询方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117555946A true CN117555946A (zh) | 2024-02-13 |
Family
ID=89816394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311569288.XA Pending CN117555946A (zh) | 2023-11-22 | 2023-11-22 | 一种数据查询方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117555946A (zh) |
-
2023
- 2023-11-22 CN CN202311569288.XA patent/CN117555946A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11706026B2 (en) | Location aware cryptography | |
US10581599B2 (en) | Cloud storage method and system | |
US20170310479A1 (en) | Key Replacement Direction Control System and Key Replacement Direction Control Method | |
US10063655B2 (en) | Information processing method, trusted server, and cloud server | |
US20180063105A1 (en) | Management of enciphered data sharing | |
CN113742709B (zh) | 信息的处理方法、装置、可读介质和电子设备 | |
TW201712590A (zh) | 雲端加密系統及方法 | |
CN111010283B (zh) | 用于生成信息的方法和装置 | |
CN112329044A (zh) | 信息获取方法、装置、电子设备和计算机可读介质 | |
CN112261015A (zh) | 基于区块链的信息共享方法、平台、系统以及电子设备 | |
CN115296807B (zh) | 用于预防工控网络病毒的密钥生成方法、装置、设备 | |
CN116633582A (zh) | 安全通信方法、装置、电子设备及存储介质 | |
KR101812311B1 (ko) | 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법 | |
CN111786955B (zh) | 用于保护模型的方法和装置 | |
CN117555946A (zh) | 一种数据查询方法、装置、计算机设备和存储介质 | |
CN113961931A (zh) | adb工具使用方法、装置和电子设备 | |
AU2019238635A1 (en) | Method and terminal for establishing security infrastructure and device | |
CN111314320B (zh) | 基于http的通信方法、终端、服务器和系统 | |
JP6492785B2 (ja) | 情報処理システム、情報処理方法、及び、情報処理プログラム | |
CN113783847B (zh) | 消息交互方法、装置、计算机设备和存储介质 | |
CN115378743B (zh) | 信息加密传输方法、装置、设备和介质 | |
CN113810779B (zh) | 码流验签方法、装置、电子设备和计算机可读介质 | |
CN112926076B (zh) | 一种数据处理的方法、装置和系统 | |
WO2024024103A1 (ja) | 鍵端末に秘密鍵を秘匿したまま暗号ファイルを処理するネットワークストレージ | |
CN117560150A (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 |