CN111061783B - 数据查询方法、相关装置和介质 - Google Patents

数据查询方法、相关装置和介质 Download PDF

Info

Publication number
CN111061783B
CN111061783B CN201910960387.8A CN201910960387A CN111061783B CN 111061783 B CN111061783 B CN 111061783B CN 201910960387 A CN201910960387 A CN 201910960387A CN 111061783 B CN111061783 B CN 111061783B
Authority
CN
China
Prior art keywords
query
ciphertext
target
query object
database
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.)
Active
Application number
CN201910960387.8A
Other languages
English (en)
Other versions
CN111061783A (zh
Inventor
李艺
西方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing Co Ltd
Filing date
Publication date
Application filed by Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN201910960387.8A priority Critical patent/CN111061783B/zh
Publication of CN111061783A publication Critical patent/CN111061783A/zh
Application granted granted Critical
Publication of CN111061783B publication Critical patent/CN111061783B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本公开提供了一种数据查询方法、相关装置和介质。该方法包括:从客户端接收具有目标查询对象的查询任务;基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送;将所述查询任务的密文发送到密文计算平台;从密文计算平台,获取对目标查询对象的查询结果,所述查询结果由所述密文计算平台基于所述查询任务的密文、和按照所述查询请求查得的查询结果的密文进行基于密文的匹配得到。本公开实施例提高了数据库查询系统中查询的安全性。

Description

数据查询方法、相关装置和介质
技术领域
本公开涉及数据库查询领域,特别涉及一种数据查询方法、相关装置和介质。
背景技术
目前的数据库查询系统中,用户通过客户端页面选择查询目标(例如,张三),经客户端服务器中转至后端数据库(例如,MySQL,关系数据库管理系统),客户端服务器获取到查询结果后进行相关处理返回给客户端,展示给用户。
上述查询过程缺点在于:用户的查询目标在整个过程中都是明文状态,很容易被窃取和利用。比如,通过获取用户查询目标的查询次数,可以分析用户的行为特征和兴趣爱好。如果这些信息被不法分子分子利用,那么将对用户会造成严重的生命财产威胁。期望有一种技术,能够在数据库端和其它第三方都不知道客户端查询目标的情况下,仍然能得到查询的内容,从而提高查询安全性。
发明内容
本公开的一个目的在于提高数据库查询系统中查询的安全性。
根据本公开的一个方面,提供了一种数据查询方法,包括:
从客户端接收具有目标查询对象的查询任务;
基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送;
将所述查询任务的密文发送到密文计算平台;
从密文计算平台,获取对目标查询对象的查询结果,所述查询结果由所述密文计算平台基于所述查询任务的密文、和按照所述查询请求查得的查询结果的密文进行基于密文的匹配得到。
在一个实施例中,所述目标查询对象包括所述数据库中的特定条目,所述查询任务包括所述特定条目的各属性的域,所述干扰查询对象包括所述数据库中的其它条目。
在一个实施例中,所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,具体包括:
获取所述数据库中的其它条目,直到获取的其它条目的数量与所述特定条目的数量之和达到预定条目阈值;
用所述特定条目和所述获取的其它条目,构造所述查询请求;
将所述查询请求发送到数据库端接口组件,由所述数据库端接口组件在所述数据库中查询所述特定条目和所述其它条目的各属性值,其中,所述按照所述查询请求查得的查询结果包括所述特定条目和所述其它条目的各属性值。
在一个实施例中,所述目标查询对象包括所述数据库中的特定条目的特定属性,所述查询任务包括所述特定条目的特定属性的域,所述干扰查询对象包括所述特定条目的其它属性、和所述数据库中的其它条目的属性。
在一个实施例中,所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,具体包括:
从所述数据库中获取所述特定条目的其它属性、和所述数据库中的其它条目的属性,直到获取的所述特定条目的属性的数量与所述其它条目的属性的数量之和达到预定属性阈值;
用所述特定条目的特定属性和所述其它属性、以及所述其它条目的属性,构造所述查询请求;
将所述查询请求发送到数据库端接口组件,由所述数据库端接口组件在所述数据库中查询所述特定条目的特定属性和所述其它属性的属性值、以及所述其它条目的属性值,其中,所述按照所述查询请求查得的查询结果包括所述特定条目的特定属性和所述其它属性的属性值、以及所述其它条目的属性值。
在一个实施例中,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文。
在一个实施例中,所述密文计算平台包括多个密文计算节点,所述第一分散处理将查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照所述预定分散规则进行分散处理,并分发给所述多个密文计算节点。
在一个实施例中,所述预定分散规则选自与客户端接口组件和数据库端接口组件共有的分散规则库,所述分散规则库中的分散规则具有索引。所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,包括:基于所述目标查询对象、为所述目标查询对象获取的干扰查询对象、以及客户端接口组件选取的预定分散规则的索引构造对数据库的查询请求,并发送给数据库端接口组件,以便所述数据库端接口组件根据该索引选取第二分散处理用的预定分散规则。
在一个实施例中,所述从密文计算平台,获取对目标查询对象的查询结果,包括:
从密文计算平台的各密文计算节点,获取对目标查询对象的分散的查询结果,所述分散的查询结果由各密文计算节点基于该密文计算节点接收到的第一分散结果、和该密文计算节点接收到的、对按照所述查询请求查得的查询结果进行第二分散处理得到的第二分散结果的基于密文的匹配得到;
将所述分散的查询结果,按照所述预定分散规则的逆规则,整合成对目标查询对象的查询结果。
在一个实施例中,所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,包括:
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句中,作为查询请求发送。
在一个实施例中,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在同一域。
在一个实施例中,所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,包括:
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中,放置成的各查询语句共同组成所述查询请求,以便发送。
在一个实施例中,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在一个域中。
根据本公开的一个方面,提供了一种数据查询方法,包括:
接收对数据库的查询请求,所述查询请求包括目标查询对象、和为所述目标查询对象获取的干扰查询对象;
在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果;
生成所述目标查询对象、和干扰查询对象的查询结果的密文,传递给密文计算平台,由所述密文计算平台根据所述查询结果的密文、和所述目标查询对象的查询任务的密文的基于密文的匹配,得到对所述目标查询对象的查询结果。
在一个实施例中,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文。
在一个实施例中,所述密文计算平台包括多个密文计算节点,所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第一分散处理将查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点。
在一个实施例中,所述预定分散规则选自与客户端接口组件和数据库端接口组件共有的分散规则库,所述分散规则库中的分散规则具有索引,所述查询请求还包括客户端接口组件选取的预定分散规则的索引;
所述生成所述目标查询对象、和干扰查询对象的查询结果的密文,包括:根据所述索引,从所述分散规则库选取第二分散处理用的预定分散规则,用于所述第二分散处理,得到所述密文。
在一个实施例中,所述查询请求包括一条查询语句,其中,所述目标查询对象、和为所述目标查询对象获取的干扰查询对象共同放在所述查询语句中。
在一个实施例中,所述在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果,包括:将针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在所述查询结果的同一域。
在一个实施例中,所述查询请求包括多条查询语句,其中,所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在所述多条查询语句中的一条查询语句中。
在一个实施例中,所述在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果,包括:将针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在所述查询结果的一个域中。
根据本公开的一个方面,提供了一种数据查询方法,包括:
从客户端接口组件,接收目标查询对象的查询任务的密文;
从数据库端接口组件,接收按照查询请求查得的查询结果的密文,所述查询请求基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象构造;
将所述查询任务的密文和所述查询结果的密文进行基于密文的匹配,从而得到对目标查询对象的查询结果。
在一个实施例中,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文。
在一个实施例中,所述数据查询方法由包括多个密文计算节点的密文计算平台执行,所述第一分散处理将所述查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照所述预定分散规则进行分散处理,分发给所述多个密文计算节点。
根据本公开的一个方面,提供了一种数据查询装置,包括:
查询任务接收单元,用于从客户端接收具有目标查询对象的查询任务;
查询请求发送单元,用于基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送;
密文发送单元,用于将所述查询任务的密文发送到密文计算平台;
查询结果获取单元,用于从密文计算平台,获取对目标查询对象的查询结果,所述查询结果由所述密文计算平台基于所述查询任务的密文、和按照所述查询请求查得的查询结果的密文的基于密文的匹配得到。
根据本公开的一个方面,提供了一种数据查询装置,包括:
查询请求接收单元,用于接收对数据库的查询请求,所述查询请求包括目标查询对象、和为所述目标查询对象获取的干扰查询对象;
查询单元,用于在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果;
查询结果密文获得单元,用于生成所述目标查询对象、和干扰查询对象的查询结果的密文,传递给密文计算平台,由所述密文计算平台根据所述查询结果的密文、和所述目标查询对象的查询任务的密文的基于密文的匹配,得到对所述目标查询对象的查询结果。
根据本公开的一个方面,提供了一种数据查询装置,包括:
查询任务密文接收单元,用于从客户端接口组件,接收目标查询对象的查询任务的密文;
查询结果密文接收单元,用于从数据库端接口组件,接收按照查询请求查得的查询结果的密文,所述查询请求基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象构造;
查询结果获得单元,用于将所述查询任务的密文和所述查询结果的密文进行匹配,从而得到对目标查询对象的查询结果。
根据本公开的一个方面,提供了一种客户端接口组件,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行以上所述的方法。
根据本公开的一个方面,提供了一种数据库端接口组件,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行以上所述的方法。
根据本公开的一个实施例,提供了一种密文计算平台,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行以上所述的方法。
根据本公开的一个实施例,提供了一种计算机可读程序介质,其存储有计算机可读指令,当所述计算机可读指令被处理器执行时,使计算机执行以上所述的方法。
本公开实施例中,客户端接口组件不是将目标查询对象直接传给数据库端接口组件去查询,而是构造若干干扰查询对象,与目标查询对象混在一起发给数据库端接口组件。这样,数据库端接口组件就不知道用户的目标查询对象具体是哪一个或哪几个,提高了查询在数据库端的安全性。为了还原出目标查询对象的查询结果,数据库端接口组件将目标和干扰查询对象的查询结果的密文发给密文计算平台,而客户端接口组件也将目标查询对象的密文发给密文计算平台。密文计算平台通过将目标查询对象的密文与目标和干扰查询对象的查询结果的密文进行基于密文的匹配,就还原出目标查询对象的查询结果。而这个过程中,密文计算平台得到的仅是目标查询对象的密文,它也不知道用户的目标查询对象具体是哪一个或哪几个,却能够返回用户需要的查询结果,提高了查询在中间平台上的安全性。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1示出了根据本公开一个实施例的数据查询系统的体系构架图;
图2示出了根据本公开一个实施例的在客户端接口组件的数据查询方法的流程图;
图3示出了根据本公开一个实施例的在数据库端接口组件的数据查询方法的流程图;
图4示出了根据本公开一个实施例的在密文计算平台的数据查询方法的流程图;
图5示出了根据本公开一个实施例的在客户端接口组件的数据查询装置的框图;
图6示出了根据本公开一个实施例的在数据库端接口组件的数据查询装置的框图;
图7示出了根据本公开一个实施例的在密文计算平台的数据查询装置的框图;
图8A和8D分别示出了根据本公开实施例的查询任务的两种帧结构,
图8B和8C示出了针对图8A的查询任务构造出的两种查询请求,图8E和8F示出了针对图8D的查询任务构造出的两种查询请求。
图9示出了根据本公开一个实施例的客户端接口组件、数据库端接口组件、密文计算平台的通用硬件结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了根据本公开一个实施例的数据查询系统的体系构架图。所述数据查询系统包括数据库侧的数据库101和数据库端接口组件102、用户侧的客户端106和客户端接口组件105、包括若干密文计算节点104的密文计算平台103。
数据查询系统是完成数据在数据库中的查询所需的一整套体系构架。
客户端106或称为用户端,是指与服务器相对应,为客户提供本地服务的程序,在本申请中是用户进行数据库查询使用的本地程序。客户端接口组件105是向密文计算节点103乃至数据库侧接口的组件,用于实现对数据库的查询请求的构造和发送前处理、以及接收到查询结果后的各种处理。
数据库101是查询对象的载体,用户的查询对象在数据库101中。查询对象是用户查询针对的项目,它可以是数据库中的特定条目,例如“张三”,也可以是数据库的特定的条目的特定属性,例如“张三”的“性别”、“年龄”。数据库中的数据按条目存储,例如条目“张三”包括张三的各种属性的数据。每个条目在数据库中分成若干个属性。例如,数据库中“张三”的数据包括“性别”、“年龄”、“政治面貌”、“籍贯”、“文化程度”等。数据库的一个例子是MySQL,即关系型数据库管理系统。它提供有JDBC接口。JDBC(Java DataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。数据库端接口组件102是向数据库进行查询、以及将查询结果进行处理后发送的组件。
密文计算平台103是以密文(即将明文数据分散处理后得到的分散结果,从分散结果中不能直接得到明文数据)的形式执行查询结果和目标查询对象的匹配处理,从而匹配出目标查询对象的查询结果的平台。如上所述,客户端接口组件105不是将目标查询对象直接传给数据库端接口102组件去查询,而是构造若干干扰查询对象,与目标查询对象混在一起发给数据库端接口组件。这样,数据库端接口组件102就不知道用户的目标查询对象具体是哪一个或哪几个,而是针对所有这些目标和干扰查询对象给出查询结果。因此,需要有一种平台,能够在这个整体的查询结果中匹配出目标查询对象的查询结果,却不知道用户的目标查询对象具体是什么,密文计算平台103是实现该功能的平台。密文计算平台103包括若干密文计算节点104。密文计算节点104可以为一实体计算设备。例如,密文计算节点104为一实体服务器、个人计算设备、构成云服务端的服务器、或者设置专用于秘密计算的专用设备等。例如,所述密文计算节点104包含专用于计算同态加密方式的处理芯片。再如,所述密文计算节点104包含基于秘密分享和SPDZ或基于四个计算节点的秘密计算架构的处理芯片等。其中,上述各示例中的处理芯片举例为包含微处理器的芯片,或包含FPGA的芯片等。又如,密文计算节点104包含乱序电路的处理芯片。密文计算节点104也可以为虚拟设备,例如由实体计算设备承载的虚拟设备。例如,一实体服务器可提供的多个虚拟设备,以作为对应的多个密文计算节点,其中,配置在一个实体服务器上的多个密文计算节点可基于单独管理的方式参与秘密计算。所配置的秘密计算方式为可由虚拟设备执行的软件程序。
将客户端接口组件105的每个查询任务的密文分别分给各密文计算节点104。将数据库端接口组件102的每个查询结果(可能是目标查询对象的查询结果,也可能是干扰查询对象的查询结果)的密文,分别分给各密文计算节点104处理。这样,各个密文计算节点104能够协同地将具有目标查询对象的查询任务的密文、与目标查询对象和干扰查询对象的密文进行基于密文的匹配,从而得到对目标查询对象的查询结果。
如图2所示,根据本公开的一个实施例,提供了一种客户端接口组件侧的数据查询方法,包括:
步骤210、从客户端接收具有目标查询对象的查询任务;
步骤220、基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送;
步骤230、将所述查询任务的密文发送到密文计算平台;
步骤240、从密文计算平台,获取对目标查询对象的查询结果,所述查询结果由所述密文计算平台基于所述查询任务的密文、和按照所述查询请求查得的查询结果的密文的基于密文的匹配得到。
下面对这些步骤分别详细描述。
在步骤210中,从客户端接收具有目标查询对象的查询任务。
目标查询对象是用户想要在数据库中查询的项目,它可以是数据库中的特定条目,例如“张三”,也可以是数据库的特定的条目的特定属性,例如“张三”的“性别”、“年龄”。数据库中的数据按条目存储,例如条目“张三”、“李四”等。每个条目在数据库中分成若干个属性,例如,条目“张三”具有“性别”、“年龄”、“籍贯”、“文化程度”等属性。在一个实施例中,条目体现为数据库中的行,属性体现为数据库中的列。在另一个实施例中,可能刚好相反。
查询任务是向数据库侧指示目标查询对象的请求消息。在一个实施例中,如图8A和8D所示,它除了包含目标查询任务外,还包括任务头901,在任务头901中可以有任务编号。在另一个实施例中,如图8A和8D所示,除了包含目标查询任务和任务头外,还包含查询任务发起者的标识903。
在一个实施例中,所述目标查询对象包括所述数据库中的特定条目,所述查询任务包括所述特定条目的各属性的域902。如图8A所示,用户要查询数据库中“张三”这个条目,在数据库中“张三”这个条目具有“性别”、“年龄”、“籍贯”、“民族”四个属性,因此,查询任务包括张三性别、张三年龄、张三籍贯、张三民族四个域。
在另一个实施例中,所述目标查询对象包括所述数据库中的特定条目的特定属性,所述查询任务包括所述特定条目的特定属性的域902。如图8D所示,用户要查询数据库中“张三”这个条目的“性别”、“年龄”两个属性,因此,查询任务仅需包括张三性别、张三年龄两个域,不需要包括四个域。
在步骤220中,基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送。
干扰查询对象是为了对目标查询对象造成干扰,由客户端接口组件选取的查询对象。将它们混入目标查询对象中,让数据库端接口组件进行查询,从而数据库端接口组件不知道哪一个或哪些是真正的目标查询对象。在一个实施例中,客户端接口组件保存有数据库所有条目的名称,也保存有数据库所有属性的名称,因此,可以利用保存的条目名称和属性名称构造干扰查询对象。
如上所述,所述目标查询对象可以包括所述数据库中的特定条目,也可以包括所述特定条目的特定属性。在一个实施例中,在所述目标查询对象包括所述数据库中的特定条目的情况下,所述干扰查询对象包括所述数据库中的其它条目。其它条目是指数据库中除了目标查询对象的条目。在该实施例中,步骤220包括:
获取所述数据库中的其它条目,直到获取的其它条目的数量与所述特定条目的数量之和达到预定条目阈值;
用所述特定条目的各属性和所述获取的其它条目的各属性,构造所述查询请求;
将所述查询请求发送到数据库端接口组件,由所述数据库端接口组件在所述数据库中查询所述特定条目和所述其它条目的各属性值,其中,所述按照所述查询请求查得的查询结果包括所述特定条目和所述其它条目的各属性值。
由于客户端接口组件事先保存有数据库所有条目的名称,也保存有数据库所有属性的名称,因此可以从中获取所述数据库中的其它条目。获取的方式可以是随机抽取,也可以是按照一定规则抽取。
如图8B和8C的例子中,预定条目阈值为5,目标查询对象为张三,因此,还需要获取数据库中的4个条目,最后抽取了李四、乔五、赵六、郑七这四个条目。
在一个实施例中,将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中,放置成的各查询语句共同组成所述查询请求。如图8B的例子中,目标查询对象为张三,干扰查询对象为李四、乔五、赵六、郑七。针对这5个对象的每个对象,分别放在一个查询语句中。目标查询对象放置的查询语句表示为908,干扰查询对象放置的查询语句表示为904。除了查询语句之外,查询请求还可以包括查询请求头905和发起者标识903。
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中的好处是,便于数据库端接口组件区分每个查询对象,减少误查询。
在另一个实施例中,将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句中,作为查询请求发送。如图8C的例子中,目标查询对象为张三,干扰查询对象为李四、乔五、赵六、郑七。将这5个对象共同放在一个查询语句907中。除了查询语句之外,查询请求还可以包括查询请求头905和发起者标识903。
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句的好处是,减少了传递多个查询对象的查询语句的开销。
客户端接口组件105将所述查询请求发送到数据库端接口组件102,由所述数据库端接口组件102在所述数据库101中查询所述特定条目和所述其它条目的各属性值。所述按照所述查询请求查得的查询结果包括所述特定条目和所述其它条目的各属性值。图8A-C的例子中,查询结果就包括李四、乔五、张三、赵六、郑七各自的性别、年龄、籍贯、民族的属性值。
上述从所述数据库中获取其它条目,直到获取的其它条目的数量与所述特定条目的数量之和达到预定条目阈值的方式的好处是,保证了干扰查询对象的足够,防止虽然加入干扰查询对象,但干扰查询对象过少,数据库侧还是能够推断或通过试错的方式找到真正的目标查询对象。
在图8C所示的所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句中的情况下,在一个实施例中,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在同一域。在图8C的例子中,相应得到的查询结果中,可能在同一域中包含李四、乔五、张三、赵六、郑七各自的性别、年龄、籍贯、民族的属性值。这样做的好处是,有利于节约查询结果的传输开销。
在图8B所示的所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中的情况下,在一个实施例中,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在一个域中。在图8B的例子中,相应得到的查询结果中,可能在一个域中包含李四的性别、年龄、籍贯、民族的属性值,在一个域中包含乔五的性别、年龄、籍贯、民族的属性值,在一个域中包含张三的性别、年龄、籍贯、民族的属性值,在一个域中包括赵六的性别、年龄、籍贯、民族的属性值,在一个域中包含郑七的性别、年龄、籍贯、民族的属性值。这样做的好处是,有利于密文计算平台进行匹配时易于区分不同的查询对象。
在一个实施例中,在所述目标查询对象包括所述数据库中的特定条目的特定属性的情况下,所述干扰查询对象包括所述特定条目的其它属性、和所述数据库中的其它条目的属性。其它属性是指特定条目的除了特定属性的属性。其它条目是指数据库中除了目标查询对象的条目。在该实施例中,步骤220包括:
从所述数据库中获取所述特定条目的其它属性、和所述数据库中的其它条目的属性,直到获取的所述特定条目的属性的数量与所述其它条目的属性的数量之和达到预定属性阈值;
用所述特定条目的特定属性和所述其它属性、以及所述其它条目的属性,构造所述查询请求;
将所述查询请求发送到数据库端接口组件,由所述数据库端接口组件在所述数据库中查询所述特定条目的特定属性和所述其它属性的属性值、以及所述其它条目的属性值,其中,所述按照所述查询请求查得的查询结果包括所述特定条目的特定属性和所述其它属性的属性值、以及所述其它条目的属性值。
由于客户端接口组件事先保存有数据库所有条目的名称,也保存有数据库所有属性的名称,因此可以从中获取所述特定条目的其它属性、和所述数据库中的其它条目的属性。获取的方式可以是随机抽取,也可以是按照一定规则抽取。
如图8E和8F的例子中,预定属性阈值为20,目标查询对象为张三的性别、年龄,因此,还需要获取数据库中的18个属性(包括张三的其它属性和数据库中其它条目的属性),最后抽取了李四性别、年龄、籍贯、民族、乔五性别、年龄、林十性别、年龄、张三籍贯、民族、赵六性别、年龄、胡六性别、年龄、郑七性别、年龄、孙九籍贯、民族,共18个属性。
在一个实施例中,将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中,放置成的各查询语句共同组成所述查询请求。如图8E的例子中,目标查询对象为张三的性别、年龄,干扰查询对象为李四性别、年龄、籍贯、民族、乔五性别、年龄、林十性别、年龄、张三籍贯、民族、赵六性别、年龄、胡六性别、年龄、郑七性别、年龄、孙九籍贯、民族,这20个属性的每一个属性分别放在一个查询语句中。目标查询对象放置的查询语句表示为908,干扰查询对象放置的查询语句表示为904。除了查询语句之外,查询请求还可以包括查询请求头905和发起者标识903。
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中的好处是,便于数据库端接口组件区分每个查询对象,减少误查询。
在另一个实施例中,将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句中,作为查询请求发送。如图8F的例子中,目标查询对象为张三的性别、年龄,干扰查询对象为李四性别、年龄、籍贯、民族、乔五性别、年龄、林十性别、年龄、张三籍贯、民族、赵六性别、年龄、胡六性别、年龄、郑七性别、年龄、孙九籍贯、民族。将这20个对象共同放在一个查询语句907中。除了查询语句之外,查询请求还可以包括查询请求头905和发起者标识903。
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句的好处是,减少了传递多个查询对象的查询语句的开销。
客户端接口组件105将所述查询请求发送到数据库端接口组件102,由所述数据库端接口组件102在所述数据库101中查询所述特定条目的特定属性值、和其它属性值、以及所述其它条目的属性值。所述按照所述查询请求查得的查询结果包括所述特定条目的特定属性值、和其它属性值、以及所述其它条目的属性值。图8D-F的例子中,查询结果就包括李四性别、年龄、籍贯、民族、乔五性别、年龄、林十性别、年龄、张三性别、年龄、籍贯、民族、赵六性别、年龄、胡六性别、年龄、郑七性别、年龄、孙九籍贯、民族的属性值。
上述从所述数据库中获取所述特定条目的其它属性、和所述数据库中的其它条目的属性,直到获取的所述特定条目的属性的数量与所述其它条目的属性的数量之和达到预定属性阈值的方式的好处是,保证了干扰查询对象的足够,防止虽然加入干扰查询对象,但干扰查询对象过少,数据库侧还是能够推断或通过试错的方式找到真正的目标查询对象。
在图8F所示的所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句中的情况下,在一个实施例中,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在同一域。在图8F的例子中,相应得到的查询结果中,可能在同一域中包含李四性别、年龄、籍贯、民族、乔五性别、年龄、林十性别、年龄、张三性别、年龄、籍贯、民族、赵六性别、年龄、胡六性别、年龄、郑七性别、年龄、孙九籍贯、民族的属性值。这样做的好处是,有利于节约查询结果的传输开销。
在图8E所示的所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中的情况下,在一个实施例中,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在一个域中。在图8E的例子中,相应得到的查询结果中,可能在一个域中包含李四的性别的属性值,在一个域中包含李四的年龄的属性值,在一个域中包含李四的籍贯的属性值……这样做的好处是,有利于密文计算平台进行匹配时易于区分不同的查询对象。
在步骤230中,将所述查询任务的密文发送到密文计算平台。
密文是指对明文加密后的数据,加密后从密文中不能推断出明文。在本公开实施例中,加密采用分散处理的方式。分散处理是指,将数据按照分散规则分成若干份,以分别交由不同密文计算节点处理。由于每个密文计算节点只得到了对应明文的部分密文分片,从这一部分无法看出或推断出整个明文,因此可以看作是加密的一种分散。
在一个实施例中,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文。虽然,该实施例中,加密采用了分散处理的方式,本领域技术人员理解,其也可以采用其它加密方式。
如上所述,密文计算节点包括多个密文计算节点。在一个实施例中,分散规则可以是等分。例如,如果密文计算平台包括三个密文计算节点,按照1:1:1将数据分成三份,分别交给三个密文计算节点处理。在另一个实施例中,分散规则可以是不等分。例如,例如,在密文计算平台包括三个密文计算节点的情况下,按照1:1:2将数据分成三份,分别交给三个密文计算节点处理。
第一分散处理将查询任务按照预定分散规则进行分散,将分散结果分发给所述多个密文计算节点,具体地说,是将查询任务中的目标查询对象按照预定分散规则进行分散,分发给所述多个密文计算节点。例如,密文计算平台包括密文计算节点A、B、C。在图8B-C的例子中,目标查询对象包括张三,张三具有性别、年龄、籍贯、民族四个属性。预定分散规则为1:1:2。将张三的性别分给密文计算节点A处理,将张三的年龄分给密文计算节点B处理,将张三的籍贯和民族分给密文计算节点C处理。在图8E-F的例子中,目标查询对象包括张三性别、年龄。预定分散规则为0:1:1。将张三的性别分给密文计算节点B处理,将张三的年龄分给密文计算节点C处理。
第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照所述预定分散规则进行分散,将分散结果分别分发给所述多个密文计算节点。也就是说,第一分散处理和第二分散处理要遵循同一分散规则,否则密文计算平台的匹配不具有同一基础。例如,密文计算平台包括密文计算节点A、B、C。在图8B-C的例子中,按照所述查询请求查得的查询结果有4个,即李四性别、年龄、籍贯、民族,作为第一个查询结果;乔五性别、年龄、籍贯、民族,作为第二个查询结果;张三性别、年龄、籍贯、民族,作为第三个查询结果;赵六性别、年龄、籍贯、民族,作为第四个查询结果。将每个查询结果按照预定分散规则1:1:2进行划分。对于第一个查询结果,将李四的性别划给密文计算节点A,将李四的年龄划给密文计算节点B,将李四的籍贯和民族划给密文计算节点C。在图8E-F的例子中,按照所述查询请求查得的查询结果有20个,即李四性别、年龄、籍贯、民族、乔五性别、年龄、林十性别、年龄、张三性别、年龄、籍贯、民族、赵六性别、年龄、胡六性别、年龄、郑七性别、年龄、孙九籍贯、民族的属性值。将每个属性值的前1/4划给密文计算节点A,将第二个1/4划给密文计算节点B,剩余的1/2划给密文计算节点C。
上述实施例中,密文计算平台包括多个密文计算节点,每个密文计算节点都只拿到了第一分散处理分散出的查询任务的一部分、和第二分散处理分散出的查询结果的一部分,无法得到整个的查询任务,提高了目标查询对象的安全性。
如上所述,第一分散处理和第二分散处理要遵循同样的预定分散规则。在一个实施例中,该预定分散规则是不变的。在另一个实施例中,该预定分散规则可以变化,但无论如何变化,第一分散处理和第二分散处理采用同样的预定分散规则。在一个实施例中,所述预定分散规则可以选自与客户端接口组件和数据库端接口组件共有的分散规则库,所述分散规则库中的分散规则具有索引。例如分散规则库中有三个规则,分别具有索引A、B、C。当第一分散处理选取分散规则A时,让第二分散处理也选取分散规则A;当第一分散处理选取分散规则B时,让第二分散处理也选取分散规则B;当第一分散处理选取分散规则C,让第二分散处理也选取分散规则C。这样,第一分散处理和第二分散处理就具有一致的基准。
为了让第一分散处理和第二分散处理能从分散规则库中选取同样的分散规则,在一个实施例中,步骤220包括:基于所述目标查询对象、为所述目标查询对象获取的干扰查询对象、以及客户端接口组件选取的预定分散规则的索引构造对数据库的查询请求,并发送给数据库端接口组件,以便所述数据库端接口组件根据该索引选取第二分散处理用的预定分散规则。
也就是说,查询请求中不但含有目标查询对象、干扰查询对象,还有预定分散规则的索引。这样,在数据库端接口组件进行查询结果的第二分散处理时,就可以按照该索引在分散规则库中选取同样的预定分散规则,从而在保证密文计算平台正确进行匹配的同时,进一步提高目标查询对象的安全性。
在步骤240中,从密文计算平台,获取对目标查询对象的查询结果,所述查询结果由所述密文计算平台基于所述第一分散结果、和对按照所述查询请求查得的查询结果进行第二分散处理得到的第二分散结果的匹配得到。
在一个实施例中,步骤240进一步包括:
从密文计算平台的各密文计算节点,获取对目标查询对象的分散的查询结果,所述分散的查询结果由各密文计算节点基于所述查询任务的密文、、和按照所述查询请求查得的查询结果的密文的基于密文的匹配得到;
将所述分散的查询结果,按照所述预定分散规则的逆规则,整合成对目标查询对象的查询结果。
如上所述,在密文是由分散处理得到的情况下,客户端接口组件将目标查询对象进行第一分散处理,得到第一分散结果,分别发给各密文计算节点。数据库接口组件得到目标查询对象和干扰查询对象的查询结果后,将查询结果进行第二分散处理,得到第二分散结果,也分别发给各密文计算节点。包括各密文计算节点的密文计算平台就可以根据这两个分散结果的基于密文的匹配,匹配出目标查询对象的分散的查询结果,发给客户端接口组件,客户端接口组件就可以按照所述预定分散规则的逆规则,整合成对目标查询对象的查询结果。例如,预定分散规则是按照1:1:2的大小比例进行分散,并分别传到相应密文计算节点A、B、C。逆规则就是按照密文计算节点A、B、C的顺序从这些密文计算节点取回分配的匹配结果,整合成对目标查询对象的整体的查询结果。
基于密文的匹配是指,在不知道对象的明文的情况下,仅根据它们的密文,识别出对应的明文是否匹配,或识别出匹配的明文。在上述实施例中,该过程为,各密文计算节点从各自得到的目标查询对象的分散的第一分散结果、以及目标查询对象和干扰查询对象的查询结果的分散的第二分散结果,得到目标查询对象的分散的查询结果。基于密文的匹配已有成熟技术。。
本公开实施例中,客户端接口组件不是将目标查询对象直接传给数据库端接口组件去查询,而是构造若干干扰查询对象,与目标查询对象混在一起发给数据库端接口组件。这样,数据库端接口组件就不知道用户的目标查询对象具体是哪一个或哪几个,提高了查询在数据库端的安全性。为了还原出目标查询对象的查询结果,数据库端接口组件将目标和干扰查询对象的查询结果的密文发给密文计算平台,而客户端接口组件也将目标查询对象进行的密文发给密文计算平台。密文计算平台通过将目标查询对象的密文与目标和干扰查询对象的查询结果的密文进行匹配,就还原出目标查询对象的查询结果。而这个过程中,密文计算平台得到的仅是目标查询对象进行分散后的结果,它也不知道用户的目标查询对象具体是哪一个或哪几个,却能够返回用户需要的查询结果,提高了查询在中间平台上的安全性。
根据本公开的一个实施例,如图3所示,还提供了一种在数据库端接口组件102的数据查询方法,包括:
步骤310、接收对数据库的查询请求,所述查询请求包括目标查询对象、和为所述目标查询对象获取的干扰查询对象;
步骤320、在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果;
步骤330、生成所述目标查询对象、和干扰查询对象的查询结果的密文,传递给密文计算平台,由所述密文计算平台根据所述查询结果的密文、和所述目标查询对象的查询任务的密文的基于密文的匹配,得到对所述目标查询对象的查询结果。
在一个实施例中,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文。
在一个实施例中,所述密文计算平台包括多个密文计算节点,所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第一分散处理将查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点。
在一个实施例中,所述预定分散规则选自与客户端接口组件和数据库端接口组件共有的分散规则库,所述分散规则库中的分散规则具有索引,所述查询请求还包括客户端接口组件选取的预定分散规则的索引。步骤330还可以包括:根据所述索引,从所述分散规则库选取第二分散处理用的预定分散规则,用于所述第二分散处理,得到所述密文。
在一个实施例中,所述查询请求包括一条查询语句,其中,所述目标查询对象、和为所述目标查询对象获取的干扰查询对象共同放在所述查询语句中。
在一个实施例中,步骤320包括:将针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在所述查询结果的同一域。
在一个实施例中,所述查询请求包括多条查询语句,其中,所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在所述多条查询语句中的一条查询语句中。
在一个实施例中,步骤320包括:将针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在所述查询结果的一个域中。
由于上述过程在前述在客户端接口组件105的数据查询方法中全部涉及,只不过描述的角度变换成在数据库端接口组件102侧描述,为节约篇幅不再赘述。
根据本公开的一个实施例,如图4所示,还提供了一种在密文计算平台103的数据查询方法,包括:
步骤410、从客户端接口组件,接收目标查询对象的查询任务的密文;
步骤420、从数据库端接口组件,接收按照查询请求查得的查询结果的密文,所述查询请求基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象构造;
步骤430、将所述查询任务的密文和所述查询结果的密文进行基于密文的匹配,从而得到对目标查询对象的查询结果。
在一个实施例中,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文。
在一个实施例中,所述数据查询方法由包括多个密文计算节点的密文计算平台执行,所述第一分散处理将所述查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照所述预定分散规则进行分散处理,分发给所述多个密文计算节点。
由于上述过程在前述在客户端接口组件105的数据查询方法中全部涉及,只不过描述的角度变换成在密文计算平台103侧描述,为节约篇幅不再赘述。
根据本公开的一个实施例,如图5所示,提供了一种在客户端接口组件的数据查询装置500,包括:
查询任务接收单元510,用于从客户端接收具有目标查询对象的查询任务;
查询请求发送单元520,用于基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送;
密文发送单元530,用于将所述查询任务的密文发送到密文计算平台;
查询结果获取单元540,用于从密文计算平台,获取对目标查询对象的查询结果,所述查询结果由所述密文计算平台基于所述查询任务的密文、和按照所述查询请求查得的查询结果的密文的基于密文的匹配得到。
在一个实施例中,所述目标查询对象包括所述数据库中的特定条目,所述查询任务包括所述特定条目的各属性的域,所述干扰查询对象包括所述数据库中的其它条目。
在一个实施例中,所述查询请求发送单元520进一步用于:
从所述数据库中获取其它条目,直到获取的其它条目的数量与所述特定条目的数量之和达到预定条目阈值;
用所述特定条目和所述获取的其它条目,构造所述查询请求;
将所述查询请求发送到数据库端接口组件,由所述数据库端接口组件在所述数据库中查询所述特定条目和所述其它条目的各属性值,其中,所述按照所述查询请求查得的查询结果包括所述特定条目和所述其它条目的各属性值。
在一个实施例中,所述目标查询对象包括所述数据库中的特定条目的特定属性,所述查询任务包括所述特定条目的特定属性的域,所述干扰查询对象包括所述特定条目的其它属性、和所述数据库中的其它条目的属性。
在一个实施例中,所述查询请求发送单元520进一步用于:
从所述数据库中获取所述特定条目的其它属性、和所述数据库中的其它条目的属性,直到获取的所述特定条目的属性的数量与所述其它条目的属性的数量之和达到预定属性阈值;
用所述特定条目的特定属性和所述其它属性、以及所述其它条目的属性,构造所述查询请求;
将所述查询请求发送到数据库端接口组件,由所述数据库端接口组件在所述数据库中查询所述特定条目的特定属性和所述其它属性的属性值、以及所述其它条目的属性值,其中,所述按照所述查询请求查得的查询结果包括所述特定条目的特定属性和所述其它属性的属性值、以及所述其它条目的属性值。
在一个实施例中,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文。
在一个实施例中,所述密文计算平台包括多个密文计算节点,所述第一分散处理将查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照所述预定分散规则进行分散处理,并分发给所述多个密文计算节点。
在一个实施例中,所述预定分散规则选自与客户端接口组件和数据库端接口组件共有的分散规则库,所述分散规则库中的分散规则具有索引。查询请求发送单元520进一步用于:基于所述目标查询对象、为所述目标查询对象获取的干扰查询对象、以及客户端接口组件选取的预定分散规则的索引构造对数据库的查询请求,并发送给数据库端接口组件,以便所述数据库端接口组件根据该索引选取第二分散处理用的预定分散规则。
在一个实施例中,查询结果获取单元540进一步用于:
从密文计算平台的各密文计算节点,获取对目标查询对象的分散的查询结果,所述分散的查询结果由各密文计算节点基于该密文计算节点接收到的第一分散结果、和该密文计算节点接收到的、对按照所述查询请求查得的查询结果进行第二分散处理得到的第二分散结果的基于密文的匹配得到;
将所述分散的查询结果,按照所述预定分散规则的逆规则,整合成对目标查询对象的查询结果。
在一个实施例中,所述查询请求发送单元520进一步用于:
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句中,作为查询请求发送。
在一个实施例中,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在同一域。
在一个实施例中,所述查询请求发送单元520进一步用于:
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中,放置成的各查询语句共同组成所述查询请求,以便发送。
在一个实施例中,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在一个域中。
上述内容的详细描述在结合图2的客户端接口组件的数据查询方法的描述中已经涉及,为节约篇幅,不再赘述。
根据本公开的一个实施例,如图6所示,提供了一种数据库端接口组件的数据查询装置600,包括:
查询请求接收单元610,用于接收对数据库的查询请求,所述查询请求包括目标查询对象、和为所述目标查询对象获取的干扰查询对象;
查询单元620,用于在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果;
第二分散结果获得单元630,用于生成所述目标查询对象、和干扰查询对象的查询结果的密文,传递给密文计算平台,由所述密文计算平台根据所述查询结果的密文、和所述目标查询对象的查询任务的密文的基于密文的匹配,得到对所述目标查询对象的查询结果。
在一个实施例中,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文。
在一个实施例中,所述密文计算平台包括多个密文计算节点,所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第一分散处理将查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点。
在一个实施例中,所述预定分散规则选自与客户端接口组件和数据库端接口组件共有的分散规则库,所述分散规则库中的分散规则具有索引,所述查询请求还包括客户端接口组件选取的预定分散规则的索引。第二分散结果获得单元630进一步用于:根据所述索引,从所述分散规则库选取第二分散处理用的预定分散规则,用于所述第二分散处理,得到所述密文。
在一个实施例中,所述查询请求包括一条查询语句,其中,所述目标查询对象、和为所述目标查询对象获取的干扰查询对象共同放在所述查询语句中。
在一个实施例中,所述查询单元620进一步用于:将针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在所述查询结果的同一域。
在一个实施例中,所述查询请求包括多条查询语句,其中,所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在所述多条查询语句中的一条查询语句中。
在一个实施例中,所述查询单元620进一步用于:将针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在所述查询结果的一个域中。
上述内容的详细描述在结合图3的数据库端接口组件的数据查询方法的描述中已经涉及,为节约篇幅,不再赘述。
根据本公开的一个实施例,如图7所示,提供了一种在密文计算平台的数据查询装置700包括:
第一分散结果接收单元710,用于从客户端接口组件,接收目标查询对象的查询任务的密文;
第二分散结果接收单元720,用于从数据库端接口组件,接收按照查询请求查得的查询结果的密文,所述查询请求基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象构造;
查询结果获得单元730,用于将所述查询任务的密文和所述查询结果的密文进行基于密文的匹配,从而得到对目标查询对象的查询结果。
在一个实施例中,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文。
在一个实施例中,所述数据查询方法由包括多个密文计算节点的密文计算平台执行,所述第一分散处理将所述查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照所述预定分散规则进行分散处理,分发给所述多个密文计算节点。
上述内容的详细描述在结合图4的密文计算平台的数据查询方法的描述中已经涉及,为节约篇幅,不再赘述。
根据本公开实施例的在客户端接口组件105的数据查询方法、在数据库端接口组件102的数据查询方法、在密文计算平台103的数据查询方法分别由客户端接口组件105、数据库端接口组件102、密文计算平台103实现。
如图9所示,客户端接口组件105、数据库端接口组件102或密文计算平台103可以以通用计算设备的形式表现。客户端接口组件105、数据库端接口组件102或密文计算平台103的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述示例性方法的描述部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图2、3或4中所示的各个步骤。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:社交操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
客户端接口组件105、数据库端接口组件102或密文计算平台103也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该总运维服务器101交互的设备通信,和/或与使得该总运维服务器101能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,总运维服务器101还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与总运维服务器101的其它模块通信。应当明白,尽管图中未示出,可以结合总运维服务器101使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (31)

1.一种数据查询方法,其特征在于,包括:
从客户端接收具有目标查询对象的查询任务;
基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送到数据库端接口组件,以由所述数据库端接口组件在所述数据库中按照所述查询请求查得查询结果,其中,所述干扰查询对象是为了对目标查询对象造成干扰而由客户端接口组件选取的查询对象;
将所述查询任务的密文发送到密文计算平台;
从密文计算平台,获取对目标查询对象的查询结果的密文,并根据对目标查询对象的查询结果的密文确定对目标查询对象的查询结果,对目标查询对象的所述查询结果的密文由所述密文计算平台基于所述查询任务的密文、和按照所述查询请求查得的查询结果的密文进行基于密文的匹配得到。
2.根据权利要求1所述的方法,其特征在于,所述目标查询对象包括所述数据库中的特定条目,所述查询任务包括所述特定条目的各属性的域,所述干扰查询对象包括所述数据库中的其它条目。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,具体包括:
获取所述数据库中的其它条目,直到获取的其它条目的数量与所述特定条目的数量之和达到预定条目阈值;
用所述特定条目和所述获取的其它条目,构造所述查询请求;
将所述查询请求发送到数据库端接口组件,由所述数据库端接口组件在所述数据库中查询所述特定条目和所述其它条目的各属性值,其中,所述按照所述查询请求查得的查询结果包括所述特定条目和所述其它条目的各属性值。
4.根据权利要求1所述的方法,其特征在于,所述目标查询对象包括所述数据库中的特定条目的特定属性,所述查询任务包括所述特定条目的特定属性的域,所述干扰查询对象包括所述特定条目的其它属性、和所述数据库中的其它条目的属性。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,具体包括:
从所述数据库中获取所述特定条目的其它属性、和所述数据库中的其它条目的属性,直到获取的所述特定条目的属性的数量与所述其它条目的属性的数量之和达到预定属性阈值;
用所述特定条目的特定属性和所述其它属性、以及所述其它条目的属性,构造所述查询请求;
将所述查询请求发送到数据库端接口组件,由所述数据库端接口组件在所述数据库中查询所述特定条目的特定属性和所述其它属性的属性值、以及所述其它条目的属性值,其中,所述按照所述查询请求查得的查询结果包括所述特定条目的特定属性和所述其它属性的属性值、以及所述其它条目的属性值。
6.根据权利要求1所述的方法,其特征在于,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文,所述查询结果的密文包括对所述查询结果进行第二分散处理得到的密文。
7.根据权利要求6所述的方法,其特征在于,所述密文计算平台包括多个密文计算节点,所述第一分散处理将查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照所述预定分散规则进行分散处理,并分发给所述多个密文计算节点。
8.根据权利要求7所述的方法,其特征在于,所述预定分散规则选自与客户端接口组件和数据库端接口组件共有的分散规则库,所述分散规则库中的分散规则具有索引,
所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,包括:基于所述目标查询对象、为所述目标查询对象获取的干扰查询对象、以及客户端接口组件选取的预定分散规则的索引构造对数据库的查询请求,并发送给数据库端接口组件,以便所述数据库端接口组件根据该索引选取第二分散处理用的预定分散规则。
9.根据权利要求7所述的方法,其特征在于,所述从密文计算平台,获取对目标查询对象的查询结果的密文,并根据对目标查询对象的查询结果的密文确定对目标查询对象的查询结果,包括:
从密文计算平台的各密文计算节点,获取对目标查询对象的分散的查询结果,所述分散的查询结果由各密文计算节点基于该密文计算节点接收到的第一分散结果、和该密文计算节点接收到的、对按照所述查询请求查得的查询结果进行第二分散处理得到的第二分散结果的基于密文的匹配得到;
将所述分散的查询结果,按照所述预定分散规则的逆规则,整合成对目标查询对象的查询结果。
10.根据权利要求1所述的方法,其特征在于,所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,包括:
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,共同放在一条查询语句中,作为查询请求发送。
11.根据权利要求10所述的方法,其特征在于,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在同一域。
12.根据权利要求1所述的方法,其特征在于,所述基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送,包括:
将所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在一条查询语句中,放置成的各查询语句共同组成所述查询请求,以便发送。
13.根据权利要求12所述的方法,其特征在于,所述按照所述查询请求查得的查询结果中,针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在一个域中。
14.一种数据查询方法,其特征在于,包括:
接收对数据库的查询请求,所述查询请求包括目标查询对象、和为所述目标查询对象获取的干扰查询对象,其中,所述干扰查询对象是为了对目标查询对象造成干扰而由客户端接口组件选取的查询对象;
在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果;
生成所述目标查询对象、和干扰查询对象的查询结果的密文,传递给密文计算平台,由所述密文计算平台根据所述查询结果的密文、和所述目标查询对象的查询任务的密文的基于密文的匹配,得到对所述目标查询对象的查询结果的密文。
15.根据权利要求14所述的方法,其特征在于,所述目标查询对象、和干扰查询对象的查询结果的密文包括对所述目标查询对象、和干扰查询对象的查询结果进行第二分散处理得到的密文,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文。
16.根据权利要求15所述的方法,其特征在于,所述密文计算平台包括多个密文计算节点,所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第一分散处理将查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点。
17.根据权利要求16所述的方法,其特征在于,所述预定分散规则选自与客户端接口组件和数据库端接口组件共有的分散规则库,所述分散规则库中的分散规则具有索引,所述查询请求还包括客户端接口组件选取的预定分散规则的索引;
所述生成所述目标查询对象、和干扰查询对象的查询结果的密文,包括:根据所述索引,从所述分散规则库选取第二分散处理用的预定分散规则,用于所述第二分散处理,得到所述目标查询对象、和干扰查询对象的查询结果的密文。
18.根据权利要求16所述的方法,其特征在于,所述查询请求包括一条查询语句,其中,所述目标查询对象、和为所述目标查询对象获取的干扰查询对象共同放在所述查询语句中。
19.根据权利要求18所述的方法,其特征在于,所述在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果,包括:将针对所述目标查询对象查询出的条目的属性值、以及针对所述干扰查询对象查询出的条目的属性值放置在所述查询结果的同一域。
20.根据权利要求16所述的方法,其特征在于,所述查询请求包括多条查询语句,其中,所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象,分别放在所述多条查询语句中的一条查询语句中。
21.根据权利要求20所述的方法,其特征在于,所述在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果,包括:将针对所述目标查询对象、和为所述目标查询对象获取的干扰查询对象中的每一个对象查询出的条目的属性值,分别放置在所述查询结果的一个域中。
22.一种数据查询方法,其特征在于,包括:
从客户端接口组件,接收目标查询对象的查询任务的密文;
从数据库端接口组件,接收按照查询请求查得的查询结果的密文,所述查询请求基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象构造,其中,所述干扰查询对象是为了对目标查询对象造成干扰而由客户端接口组件选取的查询对象;
将所述查询任务的密文和所述查询结果的密文进行基于密文的匹配,从而得到对目标查询对象的查询结果的密文。
23.根据权利要求22所述的方法,其特征在于,所述查询任务的密文包括对所述查询任务进行第一分散处理得到的密文,所述按照查询请求查得的查询结果的密文包括对所述按照查询请求查得的查询结果进行第二分散处理得到的密文。
24.根据权利要求23所述的方法,其特征在于,所述数据查询方法由包括多个密文计算节点的密文计算平台执行,所述第一分散处理将所述查询任务按照预定分散规则进行分散处理,分发给所述多个密文计算节点;所述第二分散处理将所述查询请求中目标查询对象和干扰查询对象中每一个对象的查询结果,分别按照所述预定分散规则进行分散处理,分发给所述多个密文计算节点。
25.一种数据查询装置,其特征在于,包括:
查询任务接收单元,用于从客户端接收具有目标查询对象的查询任务;
查询请求发送单元,用于基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象,构造对数据库的查询请求并发送到数据库端接口组件,以由所述数据库端接口组件在所述数据库中按照所述查询请求查得查询结果,其中,所述干扰查询对象是为了对目标查询对象造成干扰而由客户端接口组件选取的查询对象;
密文发送单元,用于将所述查询任务的密文发送到密文计算平台;
查询结果获取单元,用于从密文计算平台,获取对目标查询对象的查询结果的密文,并根据对目标查询对象的查询结果的密文确定对目标查询对象的查询结果,所述对目标查询对象的查询结果的密文由所述密文计算平台基于所述查询任务的密文、和按照所述查询请求查得的查询结果的密文的基于密文的匹配得到。
26.一种数据查询装置,其特征在于,包括:
查询请求接收单元,用于接收对数据库的查询请求,所述查询请求包括目标查询对象、和为所述目标查询对象获取的干扰查询对象,其中,所述干扰查询对象是为了对目标查询对象造成干扰而由客户端接口组件选取的查询对象;
查询单元,用于在数据库中查询,得到针对所述目标查询对象、和干扰查询对象的查询结果;
查询结果密文获得单元,用于生成所述目标查询对象、和干扰查询对象的查询结果的密文,传递给密文计算平台,由所述密文计算平台根据所述查询结果的密文、和所述目标查询对象的查询任务的密文的基于密文的匹配,得到对所述目标查询对象的查询结果的密文。
27.一种数据查询装置,其特征在于,包括:
查询任务密文接收单元,用于从客户端接口组件,接收目标查询对象的查询任务的密文;
查询结果密文接收单元,用于从数据库端接口组件,接收按照查询请求查得的查询结果的密文,所述查询请求基于所述目标查询对象、和为所述目标查询对象获取的干扰查询对象构造,其中,所述干扰查询对象是为了对目标查询对象造成干扰而由客户端接口组件选取的查询对象;
查询结果获得单元,用于将所述查询任务的密文和所述查询结果的密文进行匹配,从而得到对目标查询对象的查询结果的密文。
28.一种客户端接口组件,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-13中任一所述的方法。
29.一种数据库端接口组件,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求14-21中任一所述的方法。
30.一种密文计算平台,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求22-24中任一所述的方法。
31.一种计算机可读程序介质,其特征在于,其存储有计算机可读指令,当所述计算机可读指令被处理器执行时,使计算机执行权利要求1-24中任一所述的方法。
CN201910960387.8A 2019-10-10 数据查询方法、相关装置和介质 Active CN111061783B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910960387.8A CN111061783B (zh) 2019-10-10 数据查询方法、相关装置和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910960387.8A CN111061783B (zh) 2019-10-10 数据查询方法、相关装置和介质

Publications (2)

Publication Number Publication Date
CN111061783A CN111061783A (zh) 2020-04-24
CN111061783B true CN111061783B (zh) 2024-05-31

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103384980A (zh) * 2011-02-22 2013-11-06 三菱电机株式会社 检索系统、检索系统的检索方法、信息处理装置、检索程序、对应关键字管理装置以及对应关键字管理程序
US9118631B1 (en) * 2013-08-16 2015-08-25 Google Inc. Mixing secure and insecure data and operations at server database
CN105471826A (zh) * 2014-09-04 2016-04-06 中电长城网际系统应用有限公司 密文数据查询方法、装置和密文查询服务器
CN110019011A (zh) * 2017-11-20 2019-07-16 中移(杭州)信息技术有限公司 一种密文检索方法及设备
CN110096899A (zh) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 一种数据查询方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103384980A (zh) * 2011-02-22 2013-11-06 三菱电机株式会社 检索系统、检索系统的检索方法、信息处理装置、检索程序、对应关键字管理装置以及对应关键字管理程序
US9118631B1 (en) * 2013-08-16 2015-08-25 Google Inc. Mixing secure and insecure data and operations at server database
CN105471826A (zh) * 2014-09-04 2016-04-06 中电长城网际系统应用有限公司 密文数据查询方法、装置和密文查询服务器
CN110019011A (zh) * 2017-11-20 2019-07-16 中移(杭州)信息技术有限公司 一种密文检索方法及设备
CN110096899A (zh) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 一种数据查询方法及装置

Similar Documents

Publication Publication Date Title
CN109299110B (zh) 数据查询方法、装置、存储介质和电子设备
WO2020143620A1 (zh) 显示区块链数据的方法、区块链浏览器、用户节点和介质
US11526799B2 (en) Identification and application of hyperparameters for machine learning
US10515077B2 (en) Execution optimization of database statements involving encrypted data
US9940399B2 (en) Methods and systems for pathing analysis
US11956272B2 (en) Identifying legitimate websites to remove false positives from domain discovery analysis
CN112989412B (zh) 一种基于sql语句解析的数据脱敏方法及装置
US8868595B2 (en) Enhanced control to users to populate a cache in a database system
CN101202966B (zh) 一种用户信息的收集方法、系统及设备
US20130232133A1 (en) Systems and methods for performing a nested join operation
CN108664609B (zh) 一种数据共享的方法、网络设备及终端
CN109359237A (zh) 一种用于搜索寄宿程序的方法与设备
US20210042311A1 (en) Dynamic prioritization of attributes to determine search space size of each term, then index on those sizes as attributes
CN112307052A (zh) 一种数据管理方法、服务系统、终端及存储介质
CN113704306B (zh) 数据库的数据处理方法、装置、存储介质及电子设备
CN113377876B (zh) 基于Domino平台的数据分库处理方法、装置及平台
CN110674177B (zh) 数据查询方法、装置、电子设备和存储介质
CN114792009A (zh) 一种数据管理的方法、设备及系统
CN111061783B (zh) 数据查询方法、相关装置和介质
CN109597933B (zh) 医疗关键词精确搜索的方法、系统、设备及存储介质
CN110945506B (zh) 支持混合索引的可搜索加密
US20180276294A1 (en) Information processing apparatus, information processing system, and information processing method
CN111061783A (zh) 数据查询方法、相关装置和介质
US20210173729A1 (en) Systems and methods of application program interface (api) parameter monitoring
CN111352985A (zh) 一种基于计算机系统的数据服务平台、方法、存储介质

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant