CN117033448B - 基于可信执行环境的数据查询方法以及系统 - Google Patents
基于可信执行环境的数据查询方法以及系统 Download PDFInfo
- Publication number
- CN117033448B CN117033448B CN202311290014.7A CN202311290014A CN117033448B CN 117033448 B CN117033448 B CN 117033448B CN 202311290014 A CN202311290014 A CN 202311290014A CN 117033448 B CN117033448 B CN 117033448B
- Authority
- CN
- China
- Prior art keywords
- data
- multiparty
- client
- calculation
- execution plan
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000004364 calculation method Methods 0.000 claims abstract description 396
- 230000007246 mechanism Effects 0.000 claims abstract description 188
- 238000012545 processing Methods 0.000 claims abstract description 109
- 230000008520 organization Effects 0.000 claims description 118
- 230000005540 biological transmission Effects 0.000 claims description 69
- 238000004422 calculation algorithm Methods 0.000 claims description 44
- 238000012795 verification Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 9
- 238000002955 isolation Methods 0.000 abstract description 10
- 238000013175 transesophageal echocardiography Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000001010 compromised effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 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
- 230000003287 optical effect Effects 0.000 description 1
- 239000004984 smart glass Substances 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/2455—Query execution
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供基于可信执行环境的数据查询方法以及系统,其中所述基于可信执行环境的数据查询方法,应用于数据服务平台的第一客户端,该方法包括:响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划;在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求;接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,且将所述多方计算结果返回至所述第一机构;实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,提高了查询效率,并且SQL支持性较好。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种基于可信执行环境的数据查询方法。
背景技术
随着传统企业数字化和互联网技术的快速发展,数据已经成为当代社会中不可或缺的生产要素之一,目前不同领域之间数据联合、数据分析挖掘允许企业从不同角度来审视问题,探索潜在的商机,并制定更为精准的战略计划。
而在进行跨机构之间的联合查询任务时,为避免数据泄露和滥用,保证数据隐私及安全问题,通常基于多方安全技术在客户端之间构建安全计算协议,或基于加密数据库技术在云服务端存储密文数据,在密文上做计算,但上面的方案都需要依赖于密码学技术,会存在计算开销大、复杂SQL(Structured Query Language,结构化查询语言)支持性较差的问题;因此,亟需一种基于可信执行环境的数据查询方法,解决联合查询的效率低、SQL语法兼容性不足、安全性不足等问题。
发明内容
有鉴于此,本说明书实施例提供了四种基于可信执行环境的数据查询方法。本说明书一个或者多个实施例同时涉及四种基于可信执行环境的数据查询装置,两种基于可信执行环境的数据查询系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种基于可信执行环境的数据查询方法,应用于数据服务平台的第一客户端,所述方法包括:响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划;在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,且将所述多方计算结果返回至所述第一机构,其中,所述第二数据为所述处理端根据所述第二数据信息从所述第二客户端获取。
根据本说明书实施例的第二方面,提供了一种基于可信执行环境的数据查询装置,应用于数据服务平台的第一客户端,所述装置包括:计划生成模块,被配置为响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划;请求发送模块,被配置为在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;结果获得模块,被配置为接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,且将所述多方计算结果返回至所述第一机构,其中,所述第二数据为所述处理端根据所述第二数据信息从所述第二客户端获取。
根据本说明书实施例的第三方面,提供了一种基于可信执行环境的数据查询方法,应用于数据服务平台的服务端,所述服务端配置有可信执行环境,所述方法包括:接收第一客户端发送的多方计算请求,其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,所述第二机构为应用于所述数据服务平台的第二客户端对应的机构;根据所述第二数据信息从所述第二客户端获取所述第二机构的第二数据;根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端。
根据本说明书实施例的第四方面,提供了一种基于可信执行环境的数据查询装置,应用于数据服务平台的服务端,所述服务端配置有可信执行环境,所述装置包括:请求接收模块,被配置为接收第一客户端发送的多方计算请求,其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,所述第二机构为应用于所述数据服务平台的第二客户端对应的机构;数据获取模块,被配置为根据所述第二数据信息从所述第二客户端获取所述第二机构的第二数据;结果发送模块,被配置为根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端。
根据本说明书实施例的第五方面,提供了一种基于可信执行环境的数据查询方法,应用于数据服务平台的第二客户端,所述第二客户端配置有可信执行环境,所述方法包括:接收第一客户端发送的多方计算请求,其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,第二机构为除所述第一客户端之外的、应用于所述数据服务平台的其他客户端对应的机构;根据所述第二数据信息获取所述第二机构的第二数据;根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端。
根据本说明书实施例的第六方面,提供了一种基于可信执行环境的数据查询装置,应用于数据服务平台的第二客户端,所述第二客户端配置有可信执行环境,所述装置包括:请求接收模块,被配置为接收第一客户端发送的多方计算请求,其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,第二机构为除所述第一客户端之外的、应用于所述数据服务平台的其他客户端对应的机构;数据获取模块,被配置为根据所述第二数据信息获取所述第二机构的第二数据;结果发送模块,被配置为根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端。
根据本说明书实施例的第七方面,提供了一种基于可信执行环境的数据查询方法,应用于数据服务平台的第二客户端,所述方法包括:接收服务端发送的数据获取请求,其中,所述服务端应用于所述数据服务平台,所述数据获取请求中携带有用于多方计算的第二机构的第二数据信息,第二机构为所述第二客户端对应的机构;根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端,以使所述服务端根据多方计算执行计划,对第一数据和所述第二数据进行计算获得多方计算结果,并将所述多方计算结果返回至第一客户端,其中,所述多方计算执行计划为应用于所述数据服务平台的第一客户端,根据数据查询执行计划确定,且所述数据查询执行计划为所述第一客户端响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析后生成,所述第一数据为所述第一客户端向所述服务端发送的、用于多方计算的所述第一机构的数据。
根据本说明书实施例的第八方面,提供了一种基于可信执行环境的数据查询装置,应用于数据服务平台的第二客户端,所述装置包括:请求接收模块,被配置为接收服务端发送的数据获取请求,其中,所述服务端应用于所述数据服务平台,所述数据获取请求中携带有用于多方计算的第二机构的第二数据信息,第二机构为所述第二客户端对应的机构;数据发送模块,被配置为根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端,以使所述服务端根据多方计算执行计划,对第一数据和所述第二数据进行计算获得多方计算结果,并将所述多方计算结果返回至第一客户端,其中,所述多方计算执行计划为应用于所述数据服务平台的第一客户端,根据数据查询执行计划确定,且所述数据查询执行计划为所述第一客户端响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析后生成,所述第一数据为所述第一客户端向所述服务端发送的、用于多方计算的所述第一机构的数据。
根据本说明书实施例的第九方面,提供了一种基于可信执行环境的数据查询系统,该系统包括应用于数据服务平台的第一客户端、第二客户端和配置有可信执行环境的服务端,其中:所述第一客户端,被配置为响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划;在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;所述服务端,被配置为接收第一客户端发送的多方计算请求,其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,所述第二机构为应用于所述数据服务平台的第二客户端对应的机构;根据所述第二数据信息确定所述第二机构对应的第二客户端;向所述第二客户端发送数据获取请求;所述第二客户端,被配置为接收所述服务端发送的数据获取请求,并根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端;所述服务端,还被配置为接收所述第二数据,并根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端;所述第一客户端,还被配置为接收所述多方计算结果并将所述多方计算结果返回至所述第一机构。
根据本说明书实施例的第十方面,提供了一种基于可信执行环境的数据查询系统,该系统包括应用于数据服务平台的第一客户端、第二客户端,其中:第一客户端,被配置为响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的第二客户端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;第二客户端,被配置为接收第一客户端发送的多方计算请求,其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,第二机构为除所述第一客户端之外的、应用于所述数据服务平台的其他客户端对应的机构,根据所述第二数据信息获取所述第二机构的第二数据,根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端;第一客户端,还被配置为接收所述多方计算结果并将所述多方计算结果返回至所述第一机构。
根据本说明书实施例的第十一方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述基于可信执行环境的数据查询方法的步骤。
根据本说明书实施例的第十二方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述基于可信执行环境的数据查询方法的步骤。
根据本说明书实施例的第十三方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述基于可信执行环境的数据查询方法的步骤。
本说明书一个实施例提供一种基于可信执行环境的数据查询方法,应用于数据服务平台的第一客户端,该方法通过响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划;在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,且将所述多方计算结果返回至所述第一机构,其中,所述第二数据为所述处理端根据所述第二数据信息从所述第二客户端获取。
基于此,该基于可信执行环境的数据查询方法通过第一客户端对第一机构发送的数据查询请求进行解析,生成数据查询执行计划,在确定数据查询计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,以使在该处理端完成多方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
附图说明
图1a是本说明书一个实施例提供的一种应用于服务端-客户端架构的、基于可信执行环境的数据查询方法的场景示意图;
图1b是本说明书一个实施例提供的另一种应用于客户端-客户端架构的、基于可信执行环境的数据查询方法的场景示意图;
图2是本说明书一个实施例提供的一种应用于数据服务平台的第一客户端的、基于可信执行环境的数据查询方法的流程图;
图3是本说明书一个实施例提供的一种应用于数据服务平台的服务端的、基于可信执行环境的数据查询方法的流程图;
图4是本说明书一个实施例提供的一种应用于数据服务平台的第二客户端的、基于可信执行环境的数据查询方法的流程图;
图5是本说明书一个实施例提供的另一种应用于数据服务平台的第二客户端的、基于可信执行环境的数据查询方法的流程图;
图6是本说明书一个实施例提供的一种应用于数据服务平台的第一客户端的、基于可信执行环境的数据查询装置的结构示意图;
图7是本说明书一个实施例提供的一种应用于数据服务平台的服务端的、基于可信执行环境的数据查询装置的结构示意图;
图8是本说明书一个实施例提供的一种应用于数据服务平台的第二客户端的、基于可信执行环境的数据查询装置的结构示意图;
图9是本说明书一个实施例提供的另一种应用于数据服务平台的第二客户端的、基于可信执行环境的数据查询装置的结构示意图;
图10是本说明书一个实施例提供的一种基于可信执行环境的数据查询系统的结构示意图;
图11是本说明书一个实施例提供的另一种基于可信执行环境的数据查询系统的结构示意图;
图12是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
此外,需要说明的是,本说明书一个或多个实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
TEE:Trusted Execution Environment,可信执行环境,是一种保证应用程序和数据安全的软硬件组合技术,它是一个安全的软件环境,能够保证它运行的程序和数据不受恶意操作或篡改,以确保安全运行移动应用和服务。
REE:Rich Execution Environment,是所有移动设备通用的环境,运行通用的OS(Opreating System,操作系统)。
目前不同领域之间数据联合数据分析挖掘允许企业从不同角度来审视问题,探索潜在的商机,并制定更为精准的战略计划,例如,零售企业可以与物流公司合作,通过整合销售数据和物流数据来优化供应链流程。然而,上述场景面临着数据隐私和安全问题,在分享敏感信息时,企业必须确保数据保护措施得当,防止数据泄露和滥用。
目前主流的软件方案采用将多方数据加密上云,在云端构建全密文存储的数据库,通过可搜索加密技术,包括属性保护加密算法(Property-Preserving Encryption,PPE),保序加密算法(Order-Preserving Encryption,OPE),同态加密(HomomorphicEncryption, HE),不经意随机访问(ORAM)等方法,实现云端数据库服务器在不可见“查询请求明文”和“数据内容明文”的情况下,在密文上进行查询操作,并将匹配的结果(密文)集返回给用户,但是上述算法需要将数据加密存储于服务端,当服务端被攻击时存在严重安全隐患,并且密码学方案计算开销大,同时不支持复杂的查询语句。
在本说明书中,提供了四种基于可信执行环境的数据查询方法,本说明书同时涉及四种基于可信执行环境的数据查询装置,两种基于可信执行环境的数据查询系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1a,图1a是本说明书一个实施例提供的一种应用于服务端-客户端架构的、基于可信执行环境的数据查询方法的场景示意图。
具体的,图1a中包括客户端A、客户端B以及配置有可信执行环境的服务端,客户端A及客户端B中包括SQL解析模块和单方算子库,服务端包括服务端REE和服务端TEE两部分,服务端REE中包括多方算子库,服务端TEE中包括数据加噪模块、认证模块、密钥协商模块。
机构A的数据存储在客户端A,机构B的数据存储在客户端B,具体的,客户端A以及客户端B内不存在TEE硬件环境,需要借助有TEE硬件环境的服务端来构建联合查询,其中,机构A对应的客户端A、机构B对应的客户端B均应用于数据服务平台,且配置有可信执行环境的服务端为数据服务平台对应的服务端,因此,客户端A与配置有可信执行环境的服务端之间能互相通信,客户端B与配置有可信执行环境的服务端之间也能互相通信,该服务端可以为物理服务器,也可以为云服务器,在此不做限定。
以机构A发送数据查询请求A为例,对该基于可信执行环境的数据查询方法进行详细说明;客户端A响应于机构A发送的数据查询请求A,并通过SQL解析模块对数据查询请求A中的查询语句进行解析,即生成抽象语法树,根据抽象语法树生成逻辑计划,再根据逻辑计划生成物理执行计划,以及该物理执行计划对应的算子,算子可以理解为SQL语句执行过程中各个步骤的具体动作。
在确定该物理执行计划对应的算子涉及其他机构的数据,如机构B的数据b时,需要让服务端的TEE来完成多方计算,而在这之前,服务端的TEE 需要提供远程证明能力,证明 TEE 本身环境的安全,以及运行在 TEE 里面的可信应用程序的完整性;具体的,在客户端A向服务端发起多方计算请求时,该多方计算请求中携带有用于多方计算的机构A的数据a、机构B的数据b的数据信息(如字段名)以及根据物理执行计划确定的多方计算执行计划;服务端TEE的认证模块计算得到多方计算执行计划的哈希值并组成认证报告返回给客户端A,客户端A自身也计算得到多方计算执行计划的哈希值,客户端A在确定这两个哈希值一致的情况下,完成了对服务端的TEE环境和多方计算完整性的验证,可以授权服务端执行多方计算。
实际应用中,服务端REE可以接触到客户端的数据,为了保证服务端REE无法获得客户端的明文数据,需要在服务端TEE通过密钥协商模块和客户端之间利用密钥协商算法协商出数据传输使用的密钥,即客户端A根据数据传输密钥向服务端发送多方计算请求,服务端的TEE利用数据传输密钥对多方计算请求解密后,得到多方计算请求中携带的数据a、数据b的数据信息以及多方计算执行计划。
服务端根据数据b的数据信息从客户端B中获取机构B中的数据b;然后根据多方计算执行计划对数据a、数据b进行计算得到多方计算结果,并将多方计算结果发送至客户端A中,以使客户端A将多方计算结果返回至机构A中。
实际应用中,为避免数据查询方通过构造多个类似的查询语句,对多个查询结果输出之间的差异进行分析,来获取有关敏感信息,通过服务端TEE的数据加噪模块在查询结果中引入适度的噪音,混淆数据的敏感性;具体的,在查询结果中的数据为数值型数据的情况下,可对数值型的查询结果加入随机噪声;而在查询结果中的数据为非数值型数据的情况下,可对非数值型的查询结果采用指数机制并引入一个打分函数,对每一种可能的输出都得到一个分数,归一化之后作为查询返回的概率值。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过第一客户端对第一机构发送的数据查询请求进行解析,生成数据查询执行计划,在确定数据查询计划中存在多方计算的情况下,向配置有可信执行环境的服务端发送多方计算请求,以使在该服务端完成多方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
参见图1b,图1b是本说明书一个实施例提供的另一种应用于客户端-客户端架构的、基于可信执行环境的数据查询方法的场景示意图。
具体的,图1b中包括客户端A、配置有可信执行环境的客户端B;机构A的数据存储在客户端A,机构B的数据存储在客户端B;客户端B包括客户端B REE和客户端B TEE两部分。
客户端A中包括SQL解析模块和单方算子库,客户端B的REE中包括SQL解析模块和单方算子库,客户端B的TEE中包括多方算子库、数据加噪模块、认证模块、密钥协商模块。
仍以机构A发送数据查询请求A为例,对该基于可信执行环境的数据查询方法进行详细说明;客户端A响应于机构A发送的数据查询请求A,并通过客户端A中的SQL解析模块对数据查询请求A中的查询语句进行解析,即生成抽象语法树,根据抽象语法树生成逻辑计划,再根据逻辑计划生成物理执行计划,以及该物理执行计划对应的算子。
在确定该物理执行计划对应的算子涉及其他机构的数据,如机构B的数据b时,首先需要对参与查询的机构进行通信代价计算,计算得到通信代价最大的机构,将通信代价最大的机构对应的客户端作为执行多方计算的客户端,以减少了全局的总通信量,由该执行多方计算的客户端汇总多方数据完成多方计算。
类似的,客户端A需要向执行多方计算的客户端,如客户端B发起认证请求,执行多方计算的客户端通过认证模块完成认证,保证执行多方计算的客户端TEE环境可靠和多方计算的完整性;需要在所有客户端的TEE内通过密钥协商模块利用密钥协商算法协商出数据传输使用的密钥;以及通过数据加噪模块对对查询结果进行加噪,具体实现可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过第一客户端对第一机构发送的数据查询请求进行解析,生成数据查询执行计划,在确定数据查询计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,以使在该处理端完成多方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
参见图2,图2示出了本说明书一个实施例提供的一种应用于数据服务平台的第一客户端的、基于可信执行环境的数据查询方法的流程图,具体包括以下步骤。
步骤202:响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划。
其中,第一机构,可以理解为,发起数据查询请求的数据方,例如上述实施例中发起数据查询请求的机构A;第一客户端,可以理解为,发起数据查询请求的数据方对应的客户端,如上述实施例中机构A对应的客户端A;数据查询请求,可以理解为,一个SQL查询请求,例如数据查询请求可以为where a>10 and b+a<=100的SQL查询语句,该SQL查询语句的含义为,查询出机构A的数据a中大于10以及机构B的数据b和机构A的数据a相加小于等于100的数据。
数据查询执行计划,可以理解为,基于对数据查询请求中查询语句的拆解,生成抽象语法树,再根据抽象语法树生成逻辑计划,再基于逻辑计划生成的物理执行计划,具体的,对SQL查询语句拆分字符串,提取关键字,字符串,数值等,然后按照定义的语法规则组装成抽象语法树结构;逻辑计划可以理解为,如何执行SQL查询语句和计算的分步骤逻辑的计划;物理执行计划可以理解为,由逻辑计划转换成的、可以在机器上运行的物理计划。
沿用上述实施例中机构A发起数据查询请求A为例进行详细说明,机构A对应的客户端A在客户端A本地完成SQL语法解析,抽象语法树的生成,根据抽象语法树生成逻辑计划,再基于逻辑计划生成物理执行计划。
步骤204:在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构。
其中,多方计算,可以理解为,需要对来自不同数据方的多方数据进行计算的计算;
处理端,可以理解为,进行多方计算的处理端,具体的,处理端可以为服务端,也可以为第二客户端;
多方计算请求,可以理解为,对来自不同数据方的多方数据进行计算的请求;
第一数据,可以理解为,第一机构中涉及到多方计算的数据;
第二机构,可以理解为,多方计算中涉及到的、除第一机构之外的其他机构;
第二数据信息,可以理解为,其他机构中涉及到多方计算的数据信息,数据信息可以理解为数据的属性信息,如字段名、字段类型等;
多方计算执行计划,可以理解为,物理执行计划中涉及多方计算的执行计划。
具体的,在确定物理执行计划中存在需要对来自不同数据方的多方数据进行计算的计算任务时,向配置有TEE硬件环境的处理端发送对来自不同数据方的多方数据进行计算的请求。
在一个或多个实施例中,在向处理端发送多方计算请求之前,为保证数据在互联网中的通信安全,以及处理端的REE无法获得明文数据,需要在客户端与处理端之间利用密钥协商算法协商出数据传输时的数据传输密钥。具体实现方式如下所述:
所述向配置有可信执行环境的处理端发送多方计算请求之前,还包括:
根据预设密钥协商算法,确定与所述处理端的数据传输密钥,并将所述数据传输密钥发送至所述处理端;
相应地,所述向配置有可信执行环境的处理端发送多方计算请求,包括:
根据所述数据传输密钥向配置有可信执行环境的处理端发送多方计算请求。
其中,预设密钥协商算法可以采取基于RSA的密钥协商协议、基于ECDH(EllipticCurve Diffie-Hellman)密钥协商结合密钥导出函数(Key Derivation Function,KDF)等方式实现,在此不做限定。
数据传输密钥,可以理解为,数据在进行通信传输时使用的密钥。
具体的,以预设密钥协商算法为RSA密钥协商算法为例,第一客户端根据RSA密钥协商算法,确定与处理端的数据传输密钥,并将数据传输密钥发送至处理端,以使处理端能根据该数据传输密钥对第一客户端的加密数据进行解密。
在客户端与处理端确定数据传输密钥的情况下,第一客户端根据数据传输密钥向处理端发送多方计算请求。
本说明书实施例提供的基于可信执行环境的数据查询方法,可以通过预设密钥协商算法,确定与处理端的数据传输密钥,以根据数据传输密钥将多方计算请求发送至处理端,保证了第一数据出域安全可靠,防止出现数据被泄露等安全问题。
在一个或多个实施例中,为保证处理端能够按照指定的计算逻辑执行多方计算,并保证多方计算是在TEE中进行,需要TEE提供远程证明能力,证明TEE本身环境的安全以及运行在TEE 里面的可信应用程序的完整性。具体实现方式如下所述:
所述在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,包括:
在确定所述数据查询执行计划中存在多方计算的情况下,向所述处理端发送认证请求,其中,所述认证请求中携带有所述多方计算执行计划;
接收所述处理端根据所述多方计算执行计划确定的第一校验信息,并根据所述第一校验信息生成并返回的认证报告;
校验所述认证报告,在校验通过的情况下,向配置有可信执行环境的处理端发送多方计算请求。
其中,认证请求可以理解为,验证处理端的TEE环境和多方计算的完整性的请求;第一校验信息,可以理解为,计算多方计算执行计划得到的结果信息,如计算多方计算执行计划得到的哈希值;认证报告,可以理解为,验证处理端的TEE环境和多方计算的完整性的报告,该报告中包含第一校验信息。
具体的,第一客户端在确定数据查询执行计划中存在多方计算的情况下,向处理端发送验证处理端的TEE环境和多方计算的完整性的请求,该请求中携带有多方计算执行计划,并在接收到处理端发送的、包含计算多方计算执行计划得到的哈希值的认证报告之后,对该认证报告中的哈希值进行校验,在校验通过的情况下,向处理端发送多方计算请求。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过向处理端发送认证请求,获得处理端根据认证请求返回的认证报告,对该认证报告进行校验,从而完成对处理端的验证,确保多方计算执行计划能够正确运行在处理端的TEE中,并保证多方计算中多方数据的完整性。
在一个或多个实施例中,在第一客户端中也根据多方计算执行计划确定一个校验信息,在确定该校验信息与上述处理端中确定的第一校验信息一致的情况下,认为处理端能够按照指定的计算逻辑执行,并且保证多方计算中多方数据的完整性。具体实现方式如下所述:
所述校验所述认证报告,在校验通过的情况下,向配置有可信执行环境的处理端发送多方计算请求,包括:
根据所述多方计算执行计划确定第二校验信息;
将所述第二校验信息与所述认证报告中的第一校验信息进行匹配;
在匹配通过的情况下,向配置有可信执行环境的处理端发送多方计算请求。
其中,第二校验信息,可以理解为,第一客户端计算多方计算执行计划得到的结果信息,如计算多方计算执行计划得到的哈希值。
具体的,在第一客户端中也通过计算多方计算执行计划得到一个哈希值,在客户端本地计算多方计算执行计划得到的哈希值为多方计算完整的哈希值,在将第一客户端获得的哈希值与处理端获得的哈希值匹配的情况下,证明在处理端中可以保证多方计算执行计划能够正确运行在TEE中,并保证多方计算中多方数据的完整性。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过匹配客户端和处理端获得的多方计算执行计划的哈希值,验证处理端的TEE环境和多方计算中多方数据的完整性,即保证在处理端完成的多方计算中的多方数据不会被纂改。
步骤206:接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,且将所述多方计算结果返回至所述第一机构,其中,所述第二数据为所述处理端根据所述第二数据信息从所述第二客户端获取。
其中,多方计算结果,可以理解为,对应查询语句中涉及多方计算的查询结果。
具体的,沿用上例,客户端A接收处理端发送的多方计算结果,该多方计算结果为处理端根据多方计算执行计划,对机构A的数据a以及机构b的数据b进行查询得到的查询结果,客户端A在获得该查询结果之后将查询结果返回至机构A中,以使机构A获得其数据查询请求对应的查询结果。
在一个或多个实施例中,数据查询执行计划中还可以存在单方计算,单方计算的可以在第一客户端根据单方计算执行计划在第一客户端本地执行。具体实现方式如下所述:
所述生成数据查询执行计划之后,还包括:
在确定所述数据查询执行计划中存在单方计算的情况下,根据所述数据查询执行计划确定单方计算执行计划;
根据所述单方计算执行计划,对所述第一机构的第一数据进行计算获得单方计算结果,其中,所述第一机构的第一数据为用于单方计算的数据。
其中,单方计算可以理解为,对来自单个数据方的单方数据进行计算的计算任务;单方计算执行计划,可以理解为,数据查询计划中涉及单方计算的执行计划;单方计算结果,可以理解为,对应查询语句中涉及单方计算的查询结果。
具体的,在第一客户端确定数据查询计划中存在单方计算的情况下,即存在单个数据方的单方数据时,确定数据查询计划中涉及单方计算的单方计算执行计划;根据单方计算执行计划对第一机构中用于单方计算的第一数据进行计算,获得单方计算结果。
本说明书实施例提供的基于可信执行环境的数据查询方法,数据查询执行计划中可以存在单方计算,在此情况下,在客户端本地完成单方计算,高效安全的获得单方计算结果,提高查询效率。
在一个或多个实施例中,数据查询执行计划中可以既存在单方计算也存在多方计算,此种情况下,可以由第一客户端计算获得单方计算结果,由处理端计算获得多方计算结果并返回至第一客户端,第一客户端根据单方计算结果以及处理端发送的多方计算结果确定目标计算结果,并将目标计算结果返回至第一机构。具体实现方式如下所述:
所述接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果之后,还包括:
根据所述单方计算结果以及所述多方计算结果,确定目标计算结果,并将所述目标计算结果返回至所述第一机构。
其中,目标计算结果,可以理解为,数据查询请求对应的数据查询结果。
具体的,沿用上例,在客户端A本地完成a>10的计算,得到单方计算结果,在处理端完成b+a<=100的计算,得到多方计算结果,客户端A对单方计算结果以及多方计算结果进行整合,获得数据查询请求(where a>10 and b+a<=100)对应的数据查询结果,并将该数据查询结果返回至机构A。
本说明书实施例提供的基于可信执行环境的数据查询方法,客户端通过将单方计算结果以及多方计算结果进行整合,获得数据查询请求对应的数据查询结果,并返回至第一机构,以使第一机构高效安全的获得其需要的数据查询结果。
在一个或多个实施例中,为避免数据查询方通过构造多个类似的查询语句,对多个查询结果输出之间的差异进行分析,来获取有关敏感信息,在查询结果中引入适度的噪音,混淆数据的敏感性。具体实现方式如下所述:
所述接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,包括:
接收所述处理端发送的、根据所述多方计算执行计划,对所述第一数据和第二数据进行计算并加噪获得的多方计算结果。
实际应用中,数据查询方可以通过构造多个类似的数据查询语句,对多个数据查询结果之间的差异进行分析,来获取有关敏感信息;为了进一步保护非数据查询方的数据安全,对数据查询结果应用差分隐私技术;通过在数据查询结果中引入适度的噪音,混淆数据的敏感性,可以有效地抵御差分攻击。
本说明书实施例提供的基于可信执行环境的数据查询方法,处理端在多方计算结果中引入适度的噪音,并将加噪后的多方计算结果返回至第一客户端,避免了攻击方通过对多个数据查询结果之间的差异进行分析,获取有关敏感信息,保证了多个数据方的数据安全。
参见图3,图3示出本说明书一个实施例提供的一种应用于数据服务平台的服务端的、基于可信执行环境的数据查询方法的流程图,其中,该服务端配置有可信执行环境,具体包括以下步骤。
步骤302:接收第一客户端发送的多方计算请求,其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,所述第二机构为应用于所述数据服务平台的第二客户端对应的机构。
在一个或多个实施例中,配有可信执行环境的服务端接收到的多方计算请求为第一客户端响应于第一机构发送的数据查询请求发送的,该数据查询请求中存在多个数据方的数据。具体实现方式如下所述:
所述接收第一客户端发送的多方计算请求,包括:
接收第一客户端响应于所述第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,并在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送的多方计算请求。
具体实现可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,在数据查询方发起的数据查询请求中存在多方数据的情况下,处理端才能接收到第一客户端发送的多方计算请求,可解决多客户端之间的数据查询场景,并提高了联合数据查询的查询效率。
在一个或多个实施例中,服务端在接收第一客户端发送的认证请求之前,首先接收第一客户端的认证请求,完成第一客户端对服务端TEE的认证。具体实现方式如下所述:
所述接收第一客户端发送的多方计算请求之前,包括:
接收所述第一客户端发送的认证请求,其中,所述认证请求中携带有所述多方计算执行计划;
根据所述多方计算执行计划确定第一校验信息,并根据所述第一校验信息生成认证报告,并将所述认证报告返回至所述第一客户端。
具体实现可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过接收第一客户端发送的认证请求,返回根据该认证请求生成的认证报告,以使第一客户端对该认证报告进行校验,从而完成对服务端的验证,确保多方计算执行计划能够正确运行在服务端的TEE中,并保证多方计算中多方数据的完整性。
在一个或多个实施例中,为保证数据的安全性,尤其在数据传输的过程中不被窃取或泄露,提前协商好数据传输密钥,利用数据传输密钥来传输数据。具体实现方式如下所述:
所述接收第一客户端发送的多方计算请求之前,还包括:
接收所述第一客户端根据预设密钥协商算法,确定并发送的数据传输密钥;
相应地,所述接收第一客户端发送的多方计算请求,包括:
接收第一客户端根据所述数据传输密钥发送的多方计算请求。
具体的,在服务端接收到第一客户端根据数据传输密钥发送的多方计算请求后,通过数据传输密钥对该多方计算请求进行解密,进而获得多方计算请求中携带的用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划。
并且,在服务端完成多方计算得到多方计算结果的情况下,也需要通过数据传输密钥将多方计算结果发送至第一客户端。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过接收第一客户端根据预设密钥协商算法,确定的数据传输密钥,可以对第一客户端根据数据传输密钥发送的多方计算请求进行解密,进而获得解密后的多方数据,完成多方计算,保证了数据出域安全可靠,防止出现数据被泄露等安全问题。
步骤304:根据所述第二数据信息从所述第二客户端获取所述第二机构的第二数据。
具体的,服务端可以根据第二数据信息,如数据的字段名,确定该数据信息对应的数据为第二机构的第二数据,从而从第二机构对应的第二客户端中获取该第二数据。
在一个或多个实施例中,在根据第二数据信息确定了其对应的机构以及机构对应的客户端之后,向该客户端发送数据获取请求,从而。具体实现方式如下所述:
所述根据所述第二数据信息从所述第二客户端获取所述第二机构的第二数据,包括:
根据所述第二数据信息确定所述第二机构对应的第二客户端;
向所述第二客户端发送数据获取请求;
接收所述第二客户端根据所述数据获取请求发送的所述第二机构的第二数据。
其中,数据获取请求,可以理解为,获取数据方中用于多方计算数据的请求。
具体的,首先客户端根据第二数据信息确定该第二数据信息对应的数据,为第二机构的第二数据;从而确定第二机构对应的客户端为第二客户端,向该第二客户端发送获取第二机构中第二数据的请求,该请求中携带有第二数据信息,以使第二客户端根据该第二数据信息从第二机构中获取第二数据,将该第二数据返回至服务端。
需要说明的是,第二客户端与服务端进行数据传输时,也通过数据传输密钥进行数据传输,具体可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过第二数据信息确定其对应的机构以及客户端,通过给对应的客户端发送数据获取请求,获取对应机构中用于多方计算的数据,实现了服务端获取到所有用于多方计算的多方数据,以在服务端完成多方计算。
步骤306:根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端。
具体实现可参见上述实施例,在此不再赘述。
在一个或多个实施例中,根据数据加噪算法对于不同类型的多方计算结果进行数据加噪,实现准确的针对不同类型的数据进行数据加噪,以保证多个数据方的数据安全。具体实现方式如下所述:
所述发送所述多方计算结果至所述第一客户端,包括:
根据所述多方计算结果中数据的类型确定数据加噪算法;
根据所述数据加噪算法对所述多方计算结果中不同类型的数据进行数据加噪,并将数据加噪后的多方计算结果返回至所述第一客户端。
其中,数据加噪算法,可以理解为,对数据进行数据加噪的方式算法,如Laplace(拉普拉斯机制)、高斯机制或指数机制等。
数据加噪,可以理解为,给原始数据加扰动,保护数据隐私。
具体的,多方计算结果中的数据可分为两大类,一类为数值型数据,例如年龄、收入等连续型数据;另外一类是非数值型数据,例如性别、家庭地址等离散型变量;对于数值型数据,可以采用Laplace(拉普拉斯机制)或高斯机制进行数据加噪;对于非数值型数据,可以采用指数机制并引入一个打分函数,对每一种可能的输出都得到一个分数,归一化之后作为查询返回的概率值,以完成数据加噪,然后将数据加噪后的多方计算结果返回至第一客户端。
本说明书实施例提供的基于可信执行环境的数据查询方法,服务端中对不同类型的多方计算结果,根据数据加噪算法进行数据加噪,并将加噪后的多方计算结果返回至第一客户端,避免了攻击方通过对多个数据查询结果之间的差异进行分析,获取有关敏感信息,保证了多个数据方的数据安全。
参见图4,图4示出本说明书一个实施例提供的一种应用于数据服务平台的第二客户端的、基于可信执行环境的数据查询方法的流程图,其中,该第二客户端配置有可信执行环境,具体包括以下步骤。
步骤402:接收第一客户端发送的多方计算请求,其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,第二机构为除所述第一客户端之外的、应用于所述数据服务平台的其他客户端对应的机构。
具体的,在第二客户端配置有可信执行环境的情况下,可以接收来自第一客户端发送的多方计算请求,不过,需要说明的是,在客户端配置有TEE环境的情况下,第二客户端的选择为通过计算通信代价最大的机构确定;例如,客户端A对应机构A,客户端B对应机构B;在客户端A对机构A发送的数据查询请求A进行解析后确定,数据查询请求A中涉及数据a,数据b以及数据c,其中数据a为机构A的数据,数据b以及数据c为机构B的数据,此时,客户端B将机构B的数据b以及数据c发送至客户端A,比客户端A将机构A的数据a发送至客户端B的通信代价大,所以将客户端B作为执行多方计算的客户端,即第二客户端。
在一个或多个实施例中,获取到的多方计算请求为第一客户端响应于第一机构的数据查询请求,在确定该数据查询请求对应的数据查询计划存在多方计算的情况下发送的。具体实现方式如下所述:
所述接收第一客户端发送的多方计算请求,包括:
接收第一客户端响应于所述第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,并在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的第二客户端发送的多方计算请求。
具体实现可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,在数据查询方发起的数据查询请求中存在多方数据的情况下,第二客户端才能接收到第一客户端发送的多方计算请求,可解决多客户端之间的数据查询场景,并提高了联合数据查询的查询效率。
在一个或多个实施例中,第二客户端在接收第一客户端发送的认证请求之前,首先接收第一客户端的认证请求,完成第一客户端对第二客户端TEE的认证。具体实现方式如下所述:
所述接收第一客户端发送的多方计算请求之前,包括:
接收所述第一客户端发送的认证请求,其中,所述认证请求中携带有所述多方计算执行计划;
根据所述多方计算执行计划确定第一校验信息,并根据所述第一校验信息生成认证报告,并将所述认证报告返回至所述第一客户端。
具体实现可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过接收第一客户端发送的认证请求,返回根据该认证请求生成的认证报告,以使第一客户端对该认证报告进行校验,从而完成对第二客户端的验证,确保多方计算执行计划能够正确运行在第二客户端的TEE中,并保证多方计算中多方数据的完整性。
在一个或多个实施例中,为保证数据的安全性,尤其在数据传输的过程中不被窃取或泄露,提前协商好数据传输密钥,利用数据传输密钥来传输数据。具体实现方式如下所述:
所述接收第一客户端发送的多方计算请求之前,还包括:
接收所述第一客户端根据预设密钥协商算法,确定并发送的数据传输密钥;
相应地,所述接收第一客户端发送的多方计算请求,包括:
接收第一客户端根据所述数据传输密钥发送的多方计算请求。
具体实现可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过接收第一客户端根据预设密钥协商算法,确定的数据传输密钥,可以对第一客户端根据数据传输密钥发送的多方计算请求进行解密,进而获得解密后的多方数据,完成多方计算,保证了数据出域安全可靠,防止出现数据被泄露等安全问题。
步骤404:根据所述第二数据信息获取所述第二机构的第二数据。
具体的,第二客户端可以根据第二数据信息,如数据的字段名,确定该数据信息对应的数据为第二机构的第二数据,进而从第二机构中获取该第二数据。
步骤406:根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端。
具体实现可参见上述实施例,在此不再赘述。
在一个或多个实施例中,根据数据加噪算法对于不同类型的多方计算结果进行数据加噪,实现准确的针对不同类型的数据进行数据加噪,以保证多个数据方的数据安全。具体实现方式如下所述:
所述发送所述多方计算结果至所述第一客户端,包括:
根据所述多方计算结果中数据的类型确定数据加噪算法;
根据所述数据加噪算法对所述多方计算结果中不同类型的数据进行数据加噪,并将数据加噪后的多方计算结果返回至所述第一客户端。
本说明书实施例提供的基于可信执行环境的数据查询方法,根据数据加噪算法对不同类型的多方计算结果,进行数据加噪,并将加噪后的多方计算结果返回至第一客户端,避免了攻击方通过对多个数据查询结果之间的差异进行分析,获取有关敏感信息,保证了多个数据方的数据安全。
参见图5,图5示出本说明书一个实施例提供的另一种应用于数据服务平台的第二客户端的、基于可信执行环境的数据查询方法的流程图,具体包括以下步骤。
步骤502:接收服务端发送的数据获取请求,其中,所述服务端应用于所述数据服务平台,所述数据获取请求中携带有用于多方计算的第二机构的第二数据信息,第二机构为所述第二客户端对应的机构。
具体实现可参见上述实施例,在此不再赘述。
在一个或多个实施例中,为保证数据的安全性,尤其在数据传输的过程中不被窃取或泄露,提前协商好数据传输密钥,利用数据传输密钥来传输数据。具体实现方式如下所述:
所述接收服务端发送的数据获取请求之前,还包括:
根据预设密钥协商算法,确定与所述服务端的数据传输密钥,并将所述数据传输密钥发送至所述服务端,以使所述服务端根据所述数据传输密钥发送数据获取请求;
相应地,所述根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端,包括:
根据所述数据获取请求将所述第二机构的第二数据通过所述数据传输密钥发送至所述服务端。
具体实现可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,可以通过预设密钥协商算法,确定与服务端的数据传输密钥,以根据数据传输密钥将第二数据发送至服务端,保证了数据出域安全可靠,防止出现数据被泄露等安全问题。
步骤504:根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端,以使所述服务端根据多方计算执行计划,对第一数据和所述第二数据进行计算获得多方计算结果,并将所述多方计算结果返回至第一客户端,其中,所述多方计算执行计划为应用于所述数据服务平台的第一客户端,根据数据查询执行计划确定,且所述数据查询执行计划为所述第一客户端响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析后生成,所述第一数据为所述第一客户端向所述服务端发送的、用于多方计算的所述第一机构的数据。
具体可参见上述实施例,在此不再赘述。
本说明书实施例提供的基于可信执行环境的数据查询方法,通过数据获取请求将第二机构的第二数据发送至服务端,确保服务端能获取到用于多方计算的第二数据,以对第一数据和第二数据进行计算获得多方计算结果,保证了能在服务端的TEE环境内完成多方计算。
与上述方法实施例相对应,本说明书还提供了基于可信执行环境的数据查询装置实施例,图6示出了一种应用于数据服务平台的第一客户端的、基于可信执行环境的数据查询装置的结构示意图;如图6所示,该装置包括:
计划生成模块602,被配置为响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划;
请求发送模块604,被配置为在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;
结果获得模块606,被配置为接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,且将所述多方计算结果返回至所述第一机构,其中,所述第二数据为所述处理端根据所述第二数据信息从所述第二客户端获取。
所述装置,还包括:
单方计算模块,被配置为在确定所述数据查询执行计划中存在单方计算的情况下,根据所述数据查询执行计划确定单方计算执行计划;根据所述单方计算执行计划,对所述第一机构的第一数据进行计算获得单方计算结果,其中,所述第一机构的第一数据为用于单方计算的数据。
所述装置,还包括:
目标结果返回模块,被配置为根据所述单方计算结果以及所述多方计算结果,确定目标计算结果,并将所述目标计算结果返回至所述第一机构。
可选地,所述请求发送模块604,进一步被配置为:
在确定所述数据查询执行计划中存在多方计算的情况下,向所述处理端发送认证请求,其中,所述认证请求中携带有所述多方计算执行计划;
接收所述处理端根据所述多方计算执行计划确定的第一校验信息,并根据所述第一校验信息生成并返回的认证报告;
校验所述认证报告,在校验通过的情况下,向配置有可信执行环境的处理端发送多方计算请求。
可选地,所述请求发送模块604,进一步被配置为:
根据所述多方计算执行计划确定第二校验信息;
将所述第二校验信息与所述认证报告中的第一校验信息进行匹配;
在匹配通过的情况下,向配置有可信执行环境的处理端发送多方计算请求。
所述装置,还包括:
密钥协商模块,被配置为根据预设密钥协商算法,确定与所述处理端的数据传输密钥,并将所述数据传输密钥发送至所述处理端。
可选地,所述请求发送模块604,进一步被配置为:
根据所述数据传输密钥向配置有可信执行环境的处理端发送多方计算请求。
可选地,所述结果获得模块606,进一步被配置为:
接收所述处理端发送的、根据所述多方计算执行计划,对所述第一数据和第二数据进行计算并加噪获得的多方计算结果。
可选地,所述请求发送模块604,进一步被配置为:
所述处理端包括服务端或者第二客户端。
基于此,该基于可信执行环境的数据查询装置通过第一客户端对第一机构发送的数据查询请求进行解析,生成数据查询执行计划,在确定数据查询计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,以使在该处理端完成多方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
与上述方法实施例相对应,本说明书还提供了基于可信执行环境的数据查询装置实施例,图7示出了本说明书一个实施例提供的一种应用于数据服务平台的服务端的、基于可信执行环境的数据查询装置的结构示意图,其中,该服务端配置有可信执行环境;如图7所示,该装置包括:
请求接收模块702,被配置为接收第一客户端发送的多方计算请求,
其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,所述第二机构为应用于所述数据服务平台的第二客户端对应的机构;
数据获取模块704,被配置为根据所述第二数据信息从所述第二客户端获取所述第二机构的第二数据;
结果发送模块706,被配置为根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端。
可选地,所述请求接收模块702,进一步被配置为:
接收第一客户端响应于所述第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,并在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送的多方计算请求。
可选地,所述数据获取模块704,进一步被配置为:
根据所述第二数据信息确定所述第二机构对应的第二客户端;
向所述第二客户端发送数据获取请求;
接收所述第二客户端根据所述数据获取请求发送的所述第二机构的第二数据。
所述装置,还包括:
报告返回模块,被配置为接收所述第一客户端发送的认证请求,其中,所述认证请求中携带有所述多方计算执行计划;根据所述多方计算执行计划确定第一校验信息,并根据所述第一校验信息生成认证报告,并将所述认证报告返回至所述第一客户端。
所述装置,还包括:
密钥确定模块,被配置为接收所述第一客户端根据预设密钥协商算法,确定并发送的数据传输密钥。
可选地,所述请求接收模块702,进一步被配置为:
接收第一客户端根据所述数据传输密钥发送的多方计算请求。
可选地,所述结果发送模块706,进一步被配置为:
根据所述多方计算结果中数据的类型确定数据加噪算法;
根据所述数据加噪算法对所述多方计算结果中不同类型的数据进行数据加噪,并将数据加噪后的多方计算结果返回至所述第一客户端。
基于此,该基于可信执行环境的数据查询装置通过在服务端完成多方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
与上述方法实施例相对应,本说明书还提供了基于可信执行环境的数据查询装置实施例,图8示出了本说明书一个实施例提供的一种应用于数据服务平台的第二客户端的、基于可信执行环境的数据查询装置的结构示意图,其中,该第二客户端配置有可信执行环境;如图8所示,该装置包括:
请求接收模块802,被配置为接收第一客户端发送的多方计算请求,
其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,第二机构为除所述第一客户端之外的、应用于所述数据服务平台的其他客户端对应的机构;
数据获取模块804,被配置为根据所述第二数据信息获取所述第二机构的第二数据;
结果发送模块806,被配置为根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端。
可选地,所述请求接收模块802,进一步被配置为:
接收第一客户端响应于所述第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,并在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的第二客户端发送的多方计算请求。
所述装置,还包括:
报告返回模块,被配置为接收所述第一客户端发送的认证请求,其中,所述认证请求中携带有所述多方计算执行计划;根据所述多方计算执行计划确定第一校验信息,并根据所述第一校验信息生成认证报告,并将所述认证报告返回至所述第一客户端。
所述装置,还包括:
密钥确定模块,被配置为接收所述第一客户端根据预设密钥协商算法,确定并发送的数据传输密钥。
可选地,所述请求接收模块802,进一步被配置为:
接收第一客户端根据所述数据传输密钥发送的多方计算请求。
可选地,所述结果发送模块806,进一步被配置为:
根据所述多方计算结果中数据的类型确定数据加噪算法;
根据所述数据加噪算法对所述多方计算结果中不同类型的数据进行数据加噪,并将数据加噪后的多方计算结果返回至所述第一客户端。
基于此,该基于可信执行环境的数据查询装置通过第一客户端对第一机构发送的数据查询请求进行解析,生成数据查询执行计划,在确定数据查询计划中存在多方计算的情况下,向配置有可信执行环境的第二客户端发送多方计算请求,以使在第二客户端完成多方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
与上述方法实施例相对应,本说明书还提供了基于可信执行环境的数据查询装置实施例,图9示出了本说明书一个实施例提供的另一种应用于数据服务平台的第二客户端的、基于可信执行环境的数据查询装置的结构示意图;如图9所示,该装置包括:
请求接收模块902,被配置为接收服务端发送的数据获取请求,
其中,所述服务端应用于所述数据服务平台,所述数据获取请求中携带有用于多方计算的第二机构的第二数据信息,第二机构为所述第二客户端对应的机构;
数据发送模块904,被配置为根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端,以使所述服务端根据多方计算执行计划,对第一数据和所述第二数据进行计算获得多方计算结果,并将所述多方计算结果返回至第一客户端,
其中,所述多方计算执行计划为应用于所述数据服务平台的第一客户端,根据数据查询执行计划确定,且所述数据查询执行计划为所述第一客户端响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析后生成,
所述第一数据为所述第一客户端向所述服务端发送的、用于多方计算的所述第一机构的数据。
所述装置,还包括:
密钥确定模块,被配置为根据预设密钥协商算法,确定与所述服务端的数据传输密钥,并将所述数据传输密钥发送至所述服务端,以使所述服务端根据所述数据传输密钥发送数据获取请求。
可选地,所述数据发送模块904,进一步被配置为:
根据所述数据获取请求将所述第二机构的第二数据通过所述数据传输密钥发送至所述服务端。
基于此,该基于可信执行环境的数据查询装置通过向配置有可信执行环境的服务端发送第二数据,在该服务端完成方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
与上述方法实施例相对应,本说明书还提供了基于可信执行环境的数据查询系统实施例,图10示出了本说明书一个实施例提供的一种基于可信执行环境的数据查询系统的结构示意图,其中,该系统包括应用于数据服务平台的第一客户端、第二客户端和配置有可信执行环境的服务端;如图10所示,其中:
第一客户端1002,被配置为响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,
在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的服务端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;
服务端1004,被配置为接收第一客户端发送的多方计算请求,
其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,所述第二机构为应用于所述数据服务平台的第二客户端对应的机构,
根据所述第二数据信息确定所述第二机构对应的第二客户端;
向所述第二客户端发送数据获取请求;
第二客户端1006,被配置为接收所述服务端发送的数据获取请求,并根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端;
所述服务端1004,还被配置为接收所述第二数据,并根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端;
所述第一客户端1002,还被配置为接收所述多方计算结果并将所述多方计算结果返回至所述第一机构。
基于此,该基于可信执行环境的数据查询系统通过第一客户端对第一机构发送的数据查询请求进行解析,生成数据查询执行计划,在确定数据查询计划中存在多方计算的情况下,向配置有可信执行环境的服务端发送多方计算请求,以使在该服务端完成多方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
与上述方法实施例相对应,本说明书还提供了基于可信执行环境的数据查询系统实施例,图11示出了本说明书一个实施例提供的另一种基于可信执行环境的数据查询系统的结构示意图,其中,该系统包括应用于数据服务平台的第一客户端和配置有可信执行环境的第二客户端;如图11所示,其中:
第一客户端1102,被配置为响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,
在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的第二客户端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;
第二客户端1104,被配置为接收第一客户端发送的多方计算请求,
其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,第二机构为除所述第一客户端之外的、应用于所述数据服务平台的其他客户端对应的机构,
根据所述第二数据信息获取所述第二机构的第二数据,
根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端;
第一客户端1102,还被配置为接收所述多方计算结果并将所述多方计算结果返回至所述第一机构。
基于此,该基于可信执行环境的数据查询系统通过第一客户端对第一机构发送的数据查询请求进行解析,生成数据查询执行计划,在确定数据查询计划中存在多方计算的情况下,向配置有可信执行环境的第二客户端发送多方计算请求,以使在该第二客户端完成多方计算,实现了基于可信执行环境的联合查询,通过硬件提供的隔离环境,保护多方计算任务的机密性和完整性,不需依赖于密码学技术,提高了查询效率,并且SQL支持性较好。
上述为本实施例的一种基于可信执行环境的数据查询系统的示意性方案。需要说明的是,该基于可信执行环境的数据查询系统的技术方案与上述的基于可信执行环境的数据查询方法的技术方案属于同一构思,基于可信执行环境的数据查询系统的技术方案未详细描述的细节内容,均可以参见上述基于可信执行环境的数据查询方法的技术方案的描述。
图12示出了根据本说明书一个实施例提供的一种计算设备1200的结构框图。该计算设备1200的部件包括但不限于存储器1210和处理器1220。处理器1220与存储器1210通过总线1230相连接,数据库1250用于保存数据。
计算设备1200还包括接入设备1240,接入设备1240使得计算设备1200能够经由一个或多个网络1260通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备1240可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)。
在本说明书的一个实施例中,计算设备1200的上述部件以及图12中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图12所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1200可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备1200还可以是移动式或静止式的服务器。
其中,处理器1220用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述基于可信执行环境的数据查询方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的基于可信执行环境的数据查询方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述基于可信执行环境的数据查询方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述基于可信执行环境的数据查询方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的基于可信执行环境的数据查询方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述基于可信执行环境的数据查询方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述基于可信执行环境的数据查询方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的基于可信执行环境的数据查询方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述基于可信执行环境的数据查询方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据专利实践的要求进行适当的增减,例如在某些地区,根据专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (23)
1.一种基于可信执行环境的数据查询方法,其特征在于,应用于数据服务平台的第一客户端,所述第一客户端无配置有可信执行环境,所述方法包括:
响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划;
在确定所述数据查询执行计划中存在单方计算的情况下,根据所述数据查询执行计划确定单方计算执行计划;
根据所述单方计算执行计划,对所述第一机构的单方数据进行计算获得单方计算结果,其中,所述第一机构的单方数据为用于单方计算的数据;
在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;
接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,根据所述单方计算结果以及所述多方计算结果,确定目标计算结果,并将所述目标计算结果返回至所述第一机构,其中,所述第二数据为所述处理端根据所述第二数据信息从所述第二客户端获取。
2.根据权利要求1所述的基于可信执行环境的数据查询方法,其特征在于,所述在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送多方计算请求,包括:
在确定所述数据查询执行计划中存在多方计算的情况下,向所述处理端发送认证请求,其中,所述认证请求中携带有所述多方计算执行计划;
接收所述处理端根据所述多方计算执行计划确定的第一校验信息,并根据所述第一校验信息生成并返回的认证报告;
校验所述认证报告,在校验通过的情况下,向配置有可信执行环境的处理端发送多方计算请求。
3.根据权利要求2所述的基于可信执行环境的数据查询方法,其特征在于,所述校验所述认证报告,在校验通过的情况下,向配置有可信执行环境的处理端发送多方计算请求,包括:
根据所述多方计算执行计划确定第二校验信息;
将所述第二校验信息与所述认证报告中的第一校验信息进行匹配;
在匹配通过的情况下,向配置有可信执行环境的处理端发送多方计算请求。
4.根据权利要求1-3任意一项所述的基于可信执行环境的数据查询方法,其特征在于,所述向配置有可信执行环境的处理端发送多方计算请求之前,还包括:
根据预设密钥协商算法,确定与所述处理端的数据传输密钥,并将所述数据传输密钥发送至所述处理端;
相应地,所述向配置有可信执行环境的处理端发送多方计算请求,包括:
根据所述数据传输密钥向配置有可信执行环境的处理端发送多方计算请求。
5.根据权利要求1-3任意一项所述的基于可信执行环境的数据查询方法,其特征在于,所述接收所述处理端根据所述多方计算执行计划,对所述第一数据和第二数据进行计算获得并发送的多方计算结果,包括:
接收所述处理端发送的、根据所述多方计算执行计划,对所述第一数据和第二数据进行计算并加噪获得的多方计算结果。
6.根据权利要求1-3任意一项所述的基于可信执行环境的数据查询方法,其特征在于,所述处理端包括服务端或者第二客户端。
7.一种基于可信执行环境的数据查询方法,其特征在于,应用于数据服务平台的服务端,所述服务端配置有可信执行环境,所述方法包括:
接收第一客户端发送的多方计算请求,
其中,所述第一客户端无配置有可信执行环境,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,所述第二机构为应用于所述数据服务平台的第二客户端对应的机构;
根据所述第二数据信息从所述第二客户端获取所述第二机构的第二数据;
根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端,以使所述第一客户端在确定数据查询执行计划中存在单方计算的情况下,根据所述单方计算对应的单方计算执行计划,对所述第一机构的单方数据进行计算获得单方计算结果,并根据所述单方计算结果以及所述多方计算结果,确定目标计算结果,并将所述目标计算结果返回至所述第一机构。
8.根据权利要求7所述的基于可信执行环境的数据查询方法,其特征在于,所述接收第一客户端发送的多方计算请求,包括:
接收第一客户端响应于所述第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,并在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的处理端发送的多方计算请求。
9.根据权利要求7所述的基于可信执行环境的数据查询方法,其特征在于,所述根据所述第二数据信息从所述第二客户端获取所述第二机构的第二数据,包括:
根据所述第二数据信息确定所述第二机构对应的第二客户端;
向所述第二客户端发送数据获取请求;
接收所述第二客户端根据所述数据获取请求发送的所述第二机构的第二数据。
10.根据权利要求7所述的基于可信执行环境的数据查询方法,其特征在于,所述接收第一客户端发送的多方计算请求之前,包括:
接收所述第一客户端发送的认证请求,其中,所述认证请求中携带有所述多方计算执行计划;
根据所述多方计算执行计划确定第一校验信息,并根据所述第一校验信息生成认证报告,并将所述认证报告返回至所述第一客户端。
11.根据权利要求7所述的基于可信执行环境的数据查询方法,其特征在于,所述接收第一客户端发送的多方计算请求之前,还包括:
接收所述第一客户端根据预设密钥协商算法,确定并发送的数据传输密钥;
相应地,所述接收第一客户端发送的多方计算请求,包括:
接收第一客户端根据所述数据传输密钥发送的多方计算请求。
12.根据权利要求7所述的基于可信执行环境的数据查询方法,其特征在于,所述发送所述多方计算结果至所述第一客户端,包括:
根据所述多方计算结果中数据的类型确定数据加噪算法;
根据所述数据加噪算法对所述多方计算结果中不同类型的数据进行数据加噪,并将数据加噪后的多方计算结果返回至所述第一客户端。
13.一种基于可信执行环境的数据查询方法,其特征在于,应用于数据服务平台的第二客户端,所述第二客户端配置有可信执行环境,所述方法包括:
接收第一客户端发送的多方计算请求,
其中,所述第一客户端无配置有可信执行环境,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,第二机构为除所述第一客户端之外的、应用于所述数据服务平台的其他客户端对应的机构;
根据所述第二数据信息获取所述第二机构的第二数据;
根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端,以使所述第一客户端在确定数据查询执行计划中存在单方计算的情况下,根据所述单方计算对应的单方计算执行计划,对所述第一机构的单方数据进行计算获得单方计算结果,并根据所述单方计算结果以及所述多方计算结果,确定目标计算结果,并将所述目标计算结果返回至所述第一机构。
14.根据权利要求13所述的基于可信执行环境的数据查询方法,其特征在于,所述接收第一客户端发送的多方计算请求,包括:
接收第一客户端响应于所述第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,并在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的第二客户端发送的多方计算请求。
15.根据权利要求13所述的基于可信执行环境的数据查询方法,其特征在于,所述接收第一客户端发送的多方计算请求之前,包括:
接收所述第一客户端发送的认证请求,其中,所述认证请求中携带有所述多方计算执行计划;
根据所述多方计算执行计划确定第一校验信息,并根据所述第一校验信息生成认证报告,并将所述认证报告返回至所述第一客户端。
16.根据权利要求13所述的基于可信执行环境的数据查询方法,其特征在于,所述接收第一客户端发送的多方计算请求之前,还包括:
接收所述第一客户端根据预设密钥协商算法,确定并发送的数据传输密钥;
相应地,所述接收第一客户端发送的多方计算请求,包括:
接收第一客户端根据所述数据传输密钥发送的多方计算请求。
17.根据权利要求13所述的基于可信执行环境的数据查询方法,其特征在于,所述发送所述多方计算结果至所述第一客户端,包括:
根据所述多方计算结果中数据的类型确定数据加噪算法;
根据所述数据加噪算法对所述多方计算结果中不同类型的数据进行数据加噪,并将数据加噪后的多方计算结果返回至所述第一客户端。
18.一种基于可信执行环境的数据查询方法,其特征在于,应用于数据服务平台的第二客户端,所述方法包括:
接收服务端发送的数据获取请求,
其中,所述服务端应用于所述数据服务平台,所述数据获取请求中携带有用于多方计算的第二机构的第二数据信息,第二机构为所述第二客户端对应的机构;
根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端,以使所述服务端根据多方计算执行计划,对第一数据和所述第二数据进行计算获得多方计算结果,并将所述多方计算结果返回至第一客户端,实现所述第一客户端在确定数据查询执行计划中存在单方计算的情况下,根据所述单方计算对应的单方计算执行计划,对第一机构的单方数据进行计算获得单方计算结果,并根据所述单方计算结果以及所述多方计算结果,确定目标计算结果,并将所述目标计算结果返回至所述第一机构,
其中,所述第一客户端无配置有可信执行环境,所述多方计算执行计划为应用于所述数据服务平台的第一客户端,根据数据查询执行计划确定,且所述数据查询执行计划为所述第一客户端响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析后生成,
所述第一数据为所述第一客户端向所述服务端发送的、用于多方计算的所述第一机构的数据。
19.根据权利要求18所述的基于可信执行环境的数据查询方法,其特征在于,所述接收服务端发送的数据获取请求之前,还包括:
根据预设密钥协商算法,确定与所述服务端的数据传输密钥,并将所述数据传输密钥发送至所述服务端,以使所述服务端根据所述数据传输密钥发送数据获取请求;
相应地,所述根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端,包括:
根据所述数据获取请求将所述第二机构的第二数据通过所述数据传输密钥发送至所述服务端。
20.一种基于可信执行环境的数据查询系统,其特征在于,所述系统包括应用于数据服务平台的第一客户端、第二客户端和配置有可信执行环境的服务端,其中:
所述第一客户端,被配置为响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,
在确定所述数据查询执行计划中存在单方计算的情况下,根据所述数据查询执行计划确定单方计算执行计划,根据所述单方计算执行计划,对所述第一机构的单方数据进行计算获得单方计算结果,其中,所述第一机构的单方数据为用于单方计算的数据,
在确定所述数据查询执行计划中存在多方计算的情况下,向配置有可信执行环境的服务端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;
所述服务端,被配置为接收第一客户端发送的多方计算请求,
其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,所述第二机构为应用于所述数据服务平台的第二客户端对应的机构,
根据所述第二数据信息确定所述第二机构对应的第二客户端,
向所述第二客户端发送数据获取请求;
所述第二客户端,被配置为接收所述服务端发送的数据获取请求,并根据所述数据获取请求将所述第二机构的第二数据发送至所述服务端;
所述服务端,还被配置为接收所述第二数据,并根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端;
所述第一客户端,还被配置为接收所述多方计算结果,根据所述单方计算结果以及所述多方计算结果,确定目标计算结果,并将所述目标计算结果返回至所述第一机构。
21.一种基于可信执行环境的数据查询系统,其特征在于,所述系统包括应用于数据服务平台的第一客户端和配置有可信执行环境的第二客户端,其中:
所述第一客户端,被配置为响应于第一机构发送的数据查询请求,对所述数据查询请求进行解析,生成数据查询执行计划,
在确定所述数据查询执行计划中存在单方计算的情况下,根据所述数据查询执行计划确定单方计算执行计划,根据所述单方计算执行计划,对所述第一机构的单方数据进行计算获得单方计算结果,其中,所述第一机构的单方数据为用于单方计算的数据,
在确定所述数据查询执行计划中存在多方计算的情况下,向第二客户端发送多方计算请求,其中,所述多方计算请求中携带有用于多方计算的所述第一机构的第一数据、第二机构的第二数据信息以及根据所述数据查询执行计划确定多方计算执行计划,且所述第二机构为应用于数据服务平台的第二客户端对应的机构;
所述第二客户端,被配置为接收第一客户端发送的多方计算请求,
其中,所述多方计算请求中携带有用于多方计算的第一机构的第一数据、第二机构的第二数据信息以及多方计算执行计划,所述第一机构为应用于所述数据服务平台的所述第一客户端对应的机构,第二机构为除所述第一客户端之外的、应用于所述数据服务平台的其他客户端对应的机构,
根据所述第二数据信息获取所述第二机构的第二数据,
根据所述多方计算执行计划,对所述第一数据和所述第二数据进行计算获得多方计算结果,并发送所述多方计算结果至所述第一客户端;
所述第一客户端,还被配置为接收所述多方计算结果,根据所述单方计算结果以及所述多方计算结果,确定目标计算结果,并将所述目标计算结果返回至所述第一机构。
22.一种计算设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1-21任意一项所述基于可信执行环境的数据查询方法的步骤。
23.一种计算机可读存储介质,其特征在于,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1-21任意一项所述基于可信执行环境的数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311290014.7A CN117033448B (zh) | 2023-10-08 | 2023-10-08 | 基于可信执行环境的数据查询方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311290014.7A CN117033448B (zh) | 2023-10-08 | 2023-10-08 | 基于可信执行环境的数据查询方法以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117033448A CN117033448A (zh) | 2023-11-10 |
CN117033448B true CN117033448B (zh) | 2024-03-22 |
Family
ID=88645193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311290014.7A Active CN117033448B (zh) | 2023-10-08 | 2023-10-08 | 基于可信执行环境的数据查询方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117033448B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111049825A (zh) * | 2019-12-12 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种基于可信执行环境的安全多方计算方法和系统 |
CN111181720A (zh) * | 2019-12-31 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 基于可信执行环境的业务处理方法及装置 |
CN111382174A (zh) * | 2018-12-28 | 2020-07-07 | 百度在线网络技术(北京)有限公司 | 多方数据联合查询方法、装置、服务器和存储介质 |
CN114637995A (zh) * | 2020-12-15 | 2022-06-17 | 福瑞斯技术有限公司 | 具有多种异构tee实施的方法和系统 |
CN115065457A (zh) * | 2022-06-15 | 2022-09-16 | 抖音视界(北京)有限公司 | 数据查询方法及装置 |
CN115577376A (zh) * | 2022-10-26 | 2023-01-06 | 中国电子科技集团公司第三十研究所 | 一种多方联合数据的安全共享利用方法 |
-
2023
- 2023-10-08 CN CN202311290014.7A patent/CN117033448B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382174A (zh) * | 2018-12-28 | 2020-07-07 | 百度在线网络技术(北京)有限公司 | 多方数据联合查询方法、装置、服务器和存储介质 |
CN111049825A (zh) * | 2019-12-12 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种基于可信执行环境的安全多方计算方法和系统 |
CN111181720A (zh) * | 2019-12-31 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 基于可信执行环境的业务处理方法及装置 |
CN114637995A (zh) * | 2020-12-15 | 2022-06-17 | 福瑞斯技术有限公司 | 具有多种异构tee实施的方法和系统 |
CN115065457A (zh) * | 2022-06-15 | 2022-09-16 | 抖音视界(北京)有限公司 | 数据查询方法及装置 |
CN115577376A (zh) * | 2022-10-26 | 2023-01-06 | 中国电子科技集团公司第三十研究所 | 一种多方联合数据的安全共享利用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117033448A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3916604B1 (en) | Method and apparatus for processing privacy data of block chain, device, storage medium and computer program product | |
US10693657B2 (en) | Method and apparatus for verifying processed data | |
CN111934879B (zh) | 一种内外网系统数据传输加密方法、装置、设备和介质 | |
US11556630B2 (en) | Private password constraint validation | |
US11997107B2 (en) | Decentralized techniques for verification of data in transport layer security and other contexts | |
CN109981576B (zh) | 密钥迁移方法和装置 | |
US20210241270A1 (en) | System and method of blockchain transaction verification | |
Li et al. | An efficient blind filter: Location privacy protection and the access control in FinTech | |
Yan et al. | A lightweight authentication and key agreement scheme for smart grid | |
CN108549824A (zh) | 一种数据脱敏方法及装置 | |
CN113569263A (zh) | 跨私域数据的安全处理方法、装置及电子设备 | |
CN116992458A (zh) | 基于可信执行环境的可编程数据处理方法以及系统 | |
CN116436682A (zh) | 数据处理方法、装置及系统 | |
CN117033448B (zh) | 基于可信执行环境的数据查询方法以及系统 | |
CN116502732A (zh) | 基于可信执行环境的联邦学习方法以及系统 | |
CN116383246A (zh) | 联合查询方法以及装置 | |
Sombatruang et al. | Internet Service Providers' and Individuals' Attitudes, Barriers, and Incentives to Secure {IoT} | |
CN114117388A (zh) | 设备注册方法、设备注册装置、电子设备以及存储介质 | |
CN112769565A (zh) | 密码加密算法的升级方法、装置、计算设备和介质 | |
Xu et al. | Practical and privacy-preserving geo-social-based POI recommendation | |
Chen et al. | Formal analysis and verification for three-party authentication protocol of RFID | |
WO2022244129A1 (ja) | 管理装置、金融機関端末、及び管理方法 | |
Vazquez Sandoval et al. | A Formal Security Analysis of the Authentication Protocol for Decentralized Key Distribution and End-to-End Encrypted Email | |
de Resende | Security Enhancing Technologies for Cloud-of-Clouds | |
Ye et al. | An Improved Protocol for Verifiable Polynomial Cloud Outsourcing Computation |
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 |