CN115412275A - 一种基于可信执行环境的隐私计算系统及方法 - Google Patents

一种基于可信执行环境的隐私计算系统及方法 Download PDF

Info

Publication number
CN115412275A
CN115412275A CN202210564735.1A CN202210564735A CN115412275A CN 115412275 A CN115412275 A CN 115412275A CN 202210564735 A CN202210564735 A CN 202210564735A CN 115412275 A CN115412275 A CN 115412275A
Authority
CN
China
Prior art keywords
data
encrypted
cluster
trusted
execution environment
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
Application number
CN202210564735.1A
Other languages
English (en)
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.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210564735.1A priority Critical patent/CN115412275A/zh
Publication of CN115412275A publication Critical patent/CN115412275A/zh
Priority to PCT/CN2022/135435 priority patent/WO2023226349A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书提供了一种基于可信执行环境的隐私计算系统及方法,所述隐私计算系统包括数据源和可信执行环境集群,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;所述数据源用于:基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括所述数据拥有方的部分数据;以及,将所述多个加密文件发送至所述可信执行环境集群;所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理。

Description

一种基于可信执行环境的隐私计算系统及方法
技术领域
本说明书涉及可信计算技术领域,尤其涉及一种基于可信执行环境的隐私计算系统及方法。
背景技术
针对各种场景下的隐私需求,一般有两种方式实现隐私保护,一种方式是通过同态加密(Homomorphic encryption)和零知识证明(Zero-knowledge proof)等加密技术实现隐私保护,但也随之带来了严重的性能损失。可信执行环境(Trusted ExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。然而,在相关技术中,利用TEE执行计算任务时,对于数据的加密、解密和计算均由单台计算设备完成,对于数据的隐私计算效率低下。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种基于可信执行环境的隐私计算系统及方法。
根据本说明书实施例的第一方面,提供一种基于可信执行环境的隐私计算系统,所述隐私计算系统包括数据源和可信执行环境集群,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;
所述数据源用于:基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括所述数据拥有方的部分数据;以及,将所述多个加密文件发送至所述可信执行环境集群;
所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理;其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
根据本说明书实施例的第二方面,提供一种基于可信执行环境的隐私计算方法,所述方法应用于数据源,所述方法包括:
基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括数据拥有方的部分数据;
发送所述多个加密文件至可信执行环境集群,以由所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理;其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
根据本说明书实施例的第三方面,提供一种基于可信执行环境的隐私计算方法,所述方法应用于可信执行环境集群中的任一可信计算节点,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;所述方法包括:
获取来自数据源的至少一个加密文件,所述加密文件为所述数据源基于数据拥有方的数据生成且由集群共享公钥加密得到,每个加密文件包括所述数据拥有方的部分数据;其中,所述数据源生成的其他加密文件还被发送至所述可信执行环境集群中的其他可信计算节点;
与所述其他可信计算节点对各自获取的加密文件进行并行处理;其中,所述任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,利用数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至数据拥有方。
根据本说明书实施例的第四方面,提供一种基于可信执行环境的隐私计算装置,所述装置应用于数据源,所述装置包括:
加密生成单元,用于基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括数据拥有方的部分数据;
发送单元,发送所述多个加密文件至可信执行环境集群,以由所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理;其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
根据本说明书实施例的第五方面,提供一种基于可信执行环境的隐私计算装置,所述装置应用于可信执行环境集群中的任一可信计算节点,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;所述装置包括:
获取单元,用于获取来自数据源的至少一个加密文件,所述加密文件为所述数据源基于数据拥有方的数据生成且由集群共享公钥加密得到,每个加密文件包括所述数据拥有方的部分数据;其中,所述数据源生成的其他加密文件还被发送至所述可信执行环境集群中的其他可信计算节点;
并行处理单元,用于与所述其他可信计算节点对各自获取的加密文件进行并行处理;其中,所述任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,利用数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至数据拥有方。
根据本说明书实施例的第六方面,提供一种电子设备,包括:
处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现上述第二方面或第三方面所述方法的步骤。
根据本说明书实施例的第七方面,提供一种计算机可读存储介质,其上储存有可执行指令;其中,该指令被处理器执行时,实现上述第二方面或第三方面所述方法的步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书一示例性实施例提供的一种基于可信执行环境的隐私计算系统的架构示意图;
图2是本说明书一示例性实施例提供的一种基于可信执行环境集群系统的交互流程图;
图3是本说明书一示例性实施例提供的一种集群共享公私钥的分发示意图;
图4是本说明书一示例性实施例提供的一种数据源发送加密文件的示意图;
图5是本说明书一示例性实施例提供的一种调度节点的调度示意图;
图6是本说明书一示例性实施例提供的一种数据文件的结构示意图;
图7是本说明书一示例性实施例提供的一种基于可信执行环境的隐私计算方法的流程图;
图8是本说明书一示例性实施例提供的一种基于可信执行环境的隐私计算方法的流程图;
图9是本说明书一示例性实施例提供的一种电子设备的示意结构图;
图10是本说明书一示例性实施例提供的一种基于可信执行环境的隐私计算装置的框图;
图11是本说明书一示例性实施例提供的一种基于可信执行环境的隐私计算装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”
可信执行环境(Trusted Execution Environment,TEE)常用于实现用户的隐私保护,可以近似的认为TEE是硬件中的黑箱,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。本说明书实施例涉及的可信执行环境(TEE)可以为软件提供安全的执行环境,TEE是基于CPU硬件的安全扩展,且与外部完全隔离的可信执行环境。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,比如软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的Intel SGX、ARM Trustzone(信任区)和AMD PSP(Platform Security Processor,平台安全处理器)等。
以Intel SGX(以下简称SGX)技术为例。可信计算节点可以基于SGX技术创建enclave(围圈或飞地),以作为用于执行区块链交易的TEE。其中,区块链节点利用CPU中新增的处理器指令,在内存中可以分配一部分区域EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),以用于驻留上述的enclave。上述EPC对应的内存区域被CPU内部的内存加密引擎MEE(Memory Encryption Engine)加密,该内存区域中的内容(enclave中的代码和数据)只有在CPU内核中才能够被解密,且用于加解密的密钥只有在EPC启动时生成并存储在CPU中。可见,enclave的安全边界只包含其自身和CPU,无论是特权或非特权软件都无法访问enclave,即便是操作系统管理员和VMM(virtual machine monitor,虚拟机监视器;或称为,Hypervisor)也无法影响enclave中的代码和数据,因而具有极高的安全性,并且在上述安全性保障的前提下,CPU能够在enclave中对明文形式的区块链交易进行处理,具有极高的运算效率,从而兼顾了数据安全性和计算效率。
然而,在相关技术中,利用TEE执行计算任务时,对于数据的加密、解密和计算均由单台计算设备完成,对于数据的隐私计算效率低下。有鉴于此,本说明书提供一种基于可信执行环境的隐私计算方法,通过可信执行环境集群中的多个可信计算节点并行解密计算加密文件,从而有效的提高了计算效率。
图1是本说明书一示例性实施例提供的一种基于可信执行环境的隐私计算系统的架构示意图。如图1所示,该系统架构可以包括数据源10以及可信执行环境集群11。
数据源10可以部署在包含一独立主机的物理服务器,或者该数据源10可以部署在主机集群承载的虚拟服务器(如云服务器),本说明书对此不进行限制。该数据源10可以配置有本说明书所述的一种基于可信执行环境集群的隐私计算方法,从而基于集群共享公钥对数据拥有方的数据进行加密,并生成多个加密文件发送至可信执行环境集群11,可选地,数据源10可以配置有多个存储节点,并且由多个存储节点并行对数据拥有方的数据进行加密,从而可以有效提高数据的加密速度,而不论是集中式的多个存储节点(多个存储节点均配置于同一台服务器)或者分布式架构的多个存储节点(多个控制节点分布配置于多台服务器)均可以实现对数据拥有方数据的并行加密,故本说明书对此不进行限制。
可信执行环境集群11可以部署在包含一独立主机的物理服务器,或者该可信执行环境集群11可以部署在主机集群承载的虚拟服务器(如云服务器),本说明书对此不进行限制。当可信执行环境集群11部署在一独立主机的物理服务器时,该独立主机的物理服务器可以配置有若干个可信计算节点,由该若干个可信计算节点共同并行解密计算多个加密文件,从而提高隐私计算效率。当可信执行环境集群11部署在主机集群承载的虚拟服务器(如云服务器)时,也即图1所示实施例,该可信执行环境集群11也可以配置有若干个可信计算节点,例如服务器111配置有可信计算节点A,服务器112配置有可信计算节点B,服务器113配置有可信计算节点C,服务器114配置有可信计算节点D,通过可信计算节点A、B、C和D并行解密计算多个加密文件,可以有效地提高隐私计算的效率,当然如前所述,同时也可以在服务器111中配置多个可信计算节点,本说明书对此不进行限制。
其中,数据源10和可信执行环境集群11可以通过网络(图1中未标出)进行交互,该网络可以包括多种类型的有线或无线网络。在一实施例中,该网络可以包括公共交换电话网络(Public Switched Telephone Network,PSTN)和因特网。
基于上述系统架构,可以实现对多个加密文件的并行解密处理,有效提高隐私计算的效率。
图2是本说明一示例性实施例提供的一种基于可信执行环境集群系统的交互流程图,所述隐私计算系统包括数据源和可信执行环境集群,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对,具体可以包括如下步骤。
步骤201,数据源基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括所述数据拥有方的部分数据,每个加密文件包括所述数据拥有方的部分数据。
可信执行环境集群中的可信计算节点上配置有集群共享公私钥,而集群共享公私钥可以由可信执行集群中的多个可信计算节点中的主节点分发完成,即由主节点生成代表集群身份的密钥对,并进而将该密钥对分享至各个从节点,最终使得所有可信计算节点都维护了统一的、代表集群身份的密钥对,而主节点可以由可信执行环境集群中的控制节点所确定。为了更好地理解集群共享密钥的生成分发方式,下面结合图3进行详细描述,如图3所示,图3是本说明一示例性实施例提供的一种集群共享公私钥的分发示意图。首先,每个可信计算节点分别创建TEE,并分别在各自的TEE内创建节点身份,比如节点30创建了TEE1,并在TEE1内创建了代表自身节点身份的密钥对Key-0,节点31创建了TEE2,并在TEE2内创建了代表自身节点身份的密钥对Key-1、节点32创建了TEE3,并在TEE3内创建了代表自身节点身份的密钥对Key-2等。各个可信计算节点加入集群的时机往往不同,因而创建链下TEE和节点身份的时机也不同。通常,节点需要向可信执行环境集群的控制节点发起申请,而控制节点会向发出申请的节点发起挑战,以验证该节点的硬件环境、TEE内运行的软件等,并在验证通过后将该节点加入可信执行环境集群,使得该节点成为集群可信计算节点。在需要生成集群身份时,控制节点可以将某一可信计算节点选取为主节点、其他的可信计算节点为从节点,由主节点生成代表集群身份的密钥对,并进而将该密钥对分享至各个从节点,最终使得所有可信计算节点都维护了统一的、代表集群身份的密钥对。
例如,假定节点30被选取为主节点、节点31-32等为从节点。首先,节点30在TEE1内生成代表集群身份的密钥对,即集群身份密钥对C-Key。然后,节点30分别向各个从节点发起挑战,使得节点31、节点32等从节点分别生成远程证明报告,远程证明报告产生于针对该可信计算节点上的TEE的远程证明过程。远程证明报告由认证服务器对可信计算节点产生的自荐信息进行验证后生成,该自荐信息与可信计算节点上创建的TEE相关。可信计算节点通过产生与TEE相关的自荐信息,并由认证服务器对该自荐信息进行验证后产生远程证明报告,使得远程证明报告可以用于表明可信计算节点上的TEE可信任。换言之,远程证明报告由认证服务器对可信计算节点针对自身的TEE产生的自荐信息进行验证后生成。例如,以Intel SGX技术为例,TEE为可信计算节点上创建的用于实现隐私计算的enclave,远程证明过程还涉及到可信计算节点上另一个特殊的enclave,即quoting enclave(简称QE),QE是由英特尔提供并签名的架构型enclave(Architectural Enclave)。上述enclave首先需要生成一用于本地认证的REPORT(报告)结构,并由QE基于该REPORT结构验证该enclave是否与自身处于同一平台上,而后由QE将该REPORT结构封装为一结构体QUOTE(即自荐信息),并使用EPID(enhanced privacy identification)密钥进行签名。EPID密钥不仅代表可信计算节点这一平台,还代表可信计算节点的底层硬件的可信度,还可以绑定处理器固件的版本等信息,并且只有QE才能访问到EPID密钥,以用于对上述的结构体QUOTE进行签名。在SGX技术中,上述的认证服务器可以为英特尔公司提供的IAS(Intel Attestation Service)服务器,可信计算节点向IAS服务器发送经过签名的上述结构体QUOTE,使得IAS服务器可以对签名进行验证,并向可信计算节点返回相应的远程证明报告。控制节点在获得可信计算节点的远程证明报告之后,可以根据该远程证明报告来验证相应的可信计算节点是否可信,具体指验证可信计算节点上部署的TEE是否可信,并在确定该TEE可信的情况下通过可信计算节点加入可信执行环境集群的请求,将该可信计算节点作为可信执行环境集群的成员节点。具体而言,可信计算节点在创建对应的TEE后,产生用于实现远程证明的自荐信息,该自荐信息可以用于锚定和固化TEE的信息,使得最终得到的包含该自荐信息的远程证明报告可以用于表征自身TEE的状态,并用于验证该TEE是否可信。例如,自荐信息中可以包含第一待检验哈希值,该第一待检验哈希值为TEE中预设信息的哈希值,比如该预设信息可以包括TEE内部署的所有代码、该TEE的开发者的公钥等。以Intel SGX技术为例,对应于TEE内部署的所有代码所生成的哈希值为MREnclave,对应于链下TEE的开发者的公钥所生成的哈希值为MRSigner,即第一待检验哈希值可以包括MREnclave和MRSigner。相应地,控制节点在获取远程证明报告后,可以首先根据IAS服务器的公钥对该远程证明报告进行签名验证,如果验证通过则表明该远程证明报告确实由IAS服务器生成,且在数据传输过程中未被篡改或丢失数据。控制节点可以通过任意途径获得IAS服务器的公钥,譬如远程证明报告被提供至控制节点时,还可以关联提供IAS的证书链,使得控制节点可以从该证书链中提取IAS服务器的公钥。然后,控制节点可以从远程证明报告中提取结构体QUOTE和签名验证结果。控制节点可以首先查看签名验证结果,如果签名验证结果为通过验证,表明可信计算节点的CPU持有由Intel提供的私钥,因而其自身的TEE建立在可靠的硬件平台上,可以继续执行其他验证操作;如果签名验证结果为未通过验证,控制节点可以判定隐私计算平台不可靠,无需继续其他验证操作。然后,控制节点可以从结构体QUOTE内提取上述的哈希值MREnclave和MRSigner,即待检验MREnclave和待检验MRSigner;同时,控制节点预先获得了TEE的上述预设信息的第一标准哈希值,比如为MREnclave和MRSigner的可信值(以下称之为可信MREnclave和可信MRSigner),并将待检验MREnclave与可信MREnclave进行比较、将待检验MRSigner与可信MRSigner进行比较。那么,控制节点可以将“待检验MREnclave与可信MREnclave一致,且待检验MRSigner与可信MRSigner一致”作为确认TEE可信的前提条件;换言之,如果待检验MREnclave与可信MREnclave不一致,或者待检验MRSigner与可信MRSigner不一致,控制节点就判定该可信计算节点的TEE不可信,而如果控制节点设定的所有前提条件都被满足,就可以确认该可信计算节点的TEE可信。此外,控制节点对于签名验证结果进行验证的操作,与针对待检验MREnclave和待检验MRSigner进行验证的操作之间,并不存在必然的先后顺序,两者之间可以完全独立。回到集群密钥分发,节点30可以分别接收各个从节点返回的远程证明报告和节点身份信息,并通过如前文所述的方式进行验证,以确定各个从节点是否可信。以节点31为例,假定节点30通过远程证明的方式确定该节点31可信。在上述代表节点30身份的密钥对Key-0中,譬如包含一组签名密钥对Key-0-S和一组加密密钥对Key-0-T,节点30可以采用签名密钥对Key-0-S中的签名私钥对上述的集群身份密钥对C-Key进行签名。同时,在节点31向节点30提供的节点身份信息中,包含代表节点31身份的密钥对Key-1中的公钥,比如签名密钥对Key-1-S中的签名公钥、加密密钥对Key-1-T中的加密公钥。因此,节点30可以采用加密密钥对Key-1-T中的加密公钥,对上述的集群身份密钥对C-Key及其签名数据进行加密,得到加密后密钥对,并发送至节点31。节点30也基于前文所述的方式,触发获得针对自身创建的TEE1而生成的远程证明报告,而节点30除了向节点31发送上述的加密后密钥对之外,还将该远程证明报告以及节点30自身的节点身份信息发送至节点31,以供节点31对该节点30进行验证。而节点31在验证确定节点30可信的情况下,通过自身维护的加密密钥对Key-1-T中的加密私钥对收到的加密后密钥对进行解密,得到集群身份密钥对C-Key及其签名数据;以及,节点31从节点30的节点身份信息中提取出签名密钥对Key-0-S中的签名公钥,并针对上述解密得到的签名数据进行验证,如果签名验证成功,则节点31认定解密得到的集群身份密钥对C-Key有效,确定该密钥对C-Key可以代表可信执行环境集群的集群身份。类似地,通过上述方式,主节点可以将集群身份密钥对C-Key共享至各个从节点,最终使得可信执行环境集群中的所有可信计算节点均获得该集群身份密钥对C-Key。
在一实施例中,数据源可以是大数据平台,其可以存储有数据拥有方的数据,数据拥有方的数据包括业务上相互独立的若干数据块,需要说明的是,本说明书所述的业务上相互独立的若干数据块可以指数据源对数据拥有方的数据进行划分后得到业务上相互独立的若干数据块,也可以是数据拥有方自身的数据就是由若干业务上互相独立的数据块构成的,不需要划分,本说明书对此不进行限制,而业务上相互独立可以是指若干数据块所包括的数据具有独立性,并不影响彼此的计算结果,此时数据源可以基于如前所述的集群共享公钥对数据拥有方的数据中包含的各个数据块进行逐个加密得到相应的加密数据块,并且数据源将得到的加密数据块导出为多个加密文件,每个加密文件包含一个或多个加密数据块。举例而言,数据拥有方的数据包括10份业务上相互独立的若干数据块,此时数据源可以利用集群共享公钥对着10份数据块逐个进行加密,并得到相应的10份加密数据块,此时数据源可以将该10份加密数据块导出为对应的多个加密文件,每个加密文件包含一个或多个加密数据块,例如,该10份加密数据块可以导出为对应的5个加密文件,每个加密文件包括2份加密数据块。需要说明的是,虽然在该实施例中,数据源对数据的加密是根据数据块的形式逐个进行加密的,但在一些实施例中,假设数据拥有方的数据是以数据表的形式进行存储时,也可以基于行来对数据拥有方的数据进行加密,举例来说,数据拥有方的数据是由1000行彼此计算独立的数据构成的数据表,则此时可以基于行对数据表进行逐行加密,然后将加密后的数据表进行分块,其可以为200行加密数据分成一个加密数据块,进而得到5个加密数据块,并如前所述,导出为对应的多个加密文件,每个加密文件中包含一个或多个加密数据块。通过对数据拥有方的数据进行加密,可以保证数据拥有方的数据传输过程中的隐私保护,且将数据拥有方的数据导出为多个加密文件并非一个加密文件,可以使多个可信计算节点同时并行处理多个加密文件,提高了隐私计算的效率。
数据源可以包括采用分布式架构的多个存储节点,此时可以由该多个存储节点对数据拥有方的数据进行并行加密,以生成多个加密文件。举例而言,数据源可以有100个分布式存储节点,此时由这100个分布式存储节点并行对数据拥有方的数据进行加密,假设数据拥有方的数据为1000份业务上相互独立的数据块,则可以为每个存储节点分配10份如前所述的数据块,并对其进行逐个加密,通过分布式存储节点的并行加密可以有效的提高数据加密的速度。当然,为每个存储节点的分配数据块不仅可以通过如前所述的分均分配,也可以根据存储节点的加密能力及当前负载情况进行负载均衡的分配,本说明书对此不进行限制。需要说明的是,虽然在该实施例中,存储节点是分布式架构,但数据源采用集中式的多个存储节点也可以实现数据的并行加密,例如在一台服务器上配置有多个存储节点,并由上述存储节点并行对数据拥有方的数据进行加密。通过多个存储节点的并行加密可以有效的提高数据加密的速度。
需要说明的是,当数据源存在如前所述的多个存储节点时,可以为数据源配置任务管理节点,而该任务管理节点可以为各个存储节点下达加密指令,从而使各个存储节点对数据拥有方的数据进行有序加密,举例而言,假设数据拥有方的数据为1000份业务上相互独立的数据块,则该任务管理节点可以指示存储节点A加密1000份数据块中的前300份数据块,而存储节点B加密1000份数据块中的后700份数据块。而在加密完成后,存储节点A和存储节点B可以将结果返回至上述任务管理节点,或者,存储节点A和存储节点B直接将处理结果发送至可信执行环境集群。通过任务管理节点的管理,可以使多个存储节点之间有序并行数据加密。
步骤202,数据源将所述多个加密文件发送至所述可信执行环境集群。
在一实施例中,数据源可以将包含调度信息的多个加密文件发送至可信执行环境集群,所述调度信息用于指示对相应加密文件进行处理的可信计算节点;或者,数据源基于调度信息将多个加密文件分别发送至可信执行环境集群中对应的可信计算节点。也就是说,数据源可以通过调度信息来确定加密文件的具体解密计算的可信计算节点,此时可以分为两种情况,第一种情况是数据源只是确定调度信息并将其写入加密文件中,但是数据源并不直接将多个加密文件发送至调度信息指示的可信计算节点,而是发送至可信执行环境集群即可,这样可以减轻数据源的工作压力;第二种情况是数据源直接基于调度信息将多个加密文件发送至对应的可信计算节点,如图4所示,即数据源10直接将多个加密文件根据调度信息发送至可信计算节点112-114。此时,可信执行环境集群不再需要参与加密文件的调度工作,可以专心进行加密文件的解密计算,减轻了可信执行环境集群的工作压力,提高了隐私数据的计算效率。而调度信息的确定可以有多种确定方式,如前所述,其一可以是平均的将加密文件调度至对应的可信计算节点,则此时调度信息可以指示基于平均分配后对应的可信计算节点;其二是针对各个可信计算节点计算能力和实际负载情况,负载均衡的分配加密文件,此时调度信息可以指示基于负载均衡后对应的可信计算节点,本说明书对此不进行限制。
步骤203,可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理,其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
在一实施例中,可信执行环境集群配置有调度节点,而调度节点可以用于接收数据源发送的多个加密文件,并按照预设调度策略将所述多个加密文件调度至至少一部分可信计算节点;或者,接收数据源发送的多个加密文件,并根据各个加密文件中包含的调度信息,将多个加密文件分别调度至所述调度信息所指示的可信计算节点。如图5所示,图5是本说明书一示例性实施例提供的一种调度节点的调度示意图,而调度节点501的调度方式可以分为两种,第一种为:按照预设调度策略将所述多个加密文件调度至至少一部分可信计算节点。调度节点可以预设有调度策略,而该调度策略可以为对多个文件进行平均分配的策略,也可以是基于可信计算节点的计算能力和实际负载情况负载均衡分配的策略,本说明书对此不进行限制。换言之,调度节点可以基于调度策略自行决定加密文件调度至哪个可信计算节点。另一种为:根据各个加密文件中包含的调度信息,将多个加密文件分别调度至所述调度信息所指示的可信计算节点。如前所述,数据源可以在加密文件中写入调度信息,那么此时调度节点可以基于调度信息将加密文件调度至调度信息所指示的可信计算节点。换言之,此时调度节点只是参与文件的调度,但是具体将加密文件调入至哪个可信计算节点是根据调度信息决定的,那么也可以近似的认为,此时调度节点只是基于调度信息执行调度操作,但是并不参与调度的决策。通过在可信执行环境集群配置的调度节点,可以使多个加密文件有序的调度至对应的可信计算节点,从而保证数据隐私计算的平稳进行,保证了任务执行的有序性,同时,基于调度信息或预设调度决策,可以使加密文件合理的调度至对应的可信计算节点,平衡了各个可信计算节点的计算任务,避免出现某一可信计算节点计算任务明显多于或明显少于其他可信计算节点,进而造成可信计算节点的宕机或空闲,提高了数据隐私计算任务分配的合理性。
需要说明的是,调度节点如何进行加密文件调度的上述两种方式并非是非此即彼的存在,也就是说,在某一实施例中,可以既包含方式一,又包含方式二,例如,假设调度节点一开始基于加密文件中包含的调度信息进行调度时,因为数据丢失,导致加密文件中的调度信息不完整或缺失,则此时调度节点可以根据预设调度策略将加密文件调度至可信计算节点,从而保证了加密文件调度的有序执行。
可信计算节点在完成计算后,可以基于数据拥有方的公钥对计算结果进行加密,使得数据拥有方可以利用自身的私钥对密文计算结果解密,得到计算结果。而因为可信执行环境可以配置有调度节点,所以密文计算结果的返回可以存在两种方式,第一种方式为可信计算节点将生成的密文计算结果直接发送至数据源或数据拥有方;第二种方式为在可信执行环境集群配置有调度节点的情况下,将生成的密文计算结果反馈至调度节点,以由调度节点发送至数据源或数据拥有方。当然即便在可信执行环境集群配置有调度节点的情况下,可信计算节点也可以将生成的密文计算结果直接发送至数据源或数据拥有方,本说明书对此不进行限制。
在一实施例中,数据拥有方的数据可以为包括索引区和若干个分片区的文件(如图6所示),而该索引区记载有各个分片区的摘要值,每一加密文件包括上述索引区和至少一个分片区(如图6所示)。也就是说,此时数据拥有方的数据文件可以包括索引区和若干个分片区,分片区内记载有对应的数据拥有方的部分数据。数据源基于数据拥有方的数据生成的加密文件可以包括索引区以及至少一片分片区。举例而言,数据拥有方的数据文件包括索引区和分片区1、分片区2、分片区3以及分片区4。同时,索引区记载有分片区1、分片区2、分片区3以及分片区4各自的描述信息。该描述信息中可以包括对应分片区的:长度、偏移量以及摘要值,数据源在生成所述加密文件时,可以读取索引区的描述信息,并且根据描述信息中的偏移量来定位对应分片区的起始位置,以及根据分片区的长度来读取对应长度的数据内容,从而获得完整的一个分片,进而生成对应的加密文件。另外,基于上述文件结构,可信计算节点可以读取所述解密后数据包含的索引区和分片区,计算读取的分片区的摘要值,并与读取的索引区中记载的相应分片区的摘要值进行比较;在比较结果为一致的情况下,根据读取的分片区的内容进行计算。换言之,可信计算节点在对数据进行解密后,可以计算读取的分片区对应的摘要值,并将该计算摘要值与索引区相应分片区的摘要值进行比较,从而判断得到的分片区的数据是否具有完整性,在比较结果一致的情况下(即确定得到的分片区的数据具有完整性),才根据读取的分片区的内容进行计算,从而确保了计算结果是基于完整的数据进行计算的正确计算结果,从而提高了数据隐私计算的可靠性。
基于上述可信执行环境集群系统,可以使多个可信计算节点并行解密计算隐私数据,提高了隐私数据的计算效率。同时,数据源对数据拥有方的数据也可以并行加密,提高了数据加密的效率。
图7是本说明书一示例性实施例提供的一种基于可信执行环境的隐私计算方法的流程图,所述方法应用于数据源,所述方法包括以下步骤:
步骤701,基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括数据拥有方的部分数据。
如前所述,数据拥有方的数据包括业务上相互独立的若干数据块,此时数据源可以基于集群共享公钥对所述数据拥有方的数据中包含的各个数据块进行逐个加密得到相应的加密数据块,并且将得到的加密数据块导出为所述多个加密文件,每个加密文件包含一个或多个加密数据块。
数据源可以包括采用分布式架构的多个存储节点,并且由数据源中的多个存储节点对数据拥有方的数据进行并行加密,以生成多个加密文件。
步骤702,发送所述多个加密文件至可信执行环境集群,以由所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理;其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
如前所述,数据源可以将包含调度信息的多个加密文件发送至可信执行环境集群,调度信息用于指示对相应加密文件进行处理的可信计算节点;或者,基于调度信息将所述多个加密文件分别发送至所述可信执行环境集群中对应的可信计算节点。
基于上述一种基于可信执行环境的隐私计算方法,数据源可以对数据拥有方的数据加密成多个加密文件,使得多个可信计算节点可以并行解密计算所述加密文件,提高了隐私数据的计算效率,且数据源可以利用多个存储节点,对数据拥有方的数据进行并行加密,进一步提高了隐私数据的加密效率。
图8是本说明书一示例性实施例提供的一种基于可信执行环境的隐私计算方法的流程图,所述方法应用于可信执行环境集群中的任一可信计算节点,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;所述方法包括以下步骤:
步骤801,获取来自数据源的至少一个加密文件,所述加密文件为所述数据源基于数据拥有方的数据生成且由集群共享公钥加密得到,每个加密文件包括所述数据拥有方的部分数据;其中,所述数据源生成的其他加密文件还被发送至所述可信执行环境集群中的其他可信计算节点。
任一可信计算节点可以将生成的密文计算结果直接发送至数据源或数据拥有方;或者,在可信执行环境集群配置有调度节点的情况下,将生成的密文计算结果反馈至该调度节点,以由调度节点发送至数据源或数据拥有方。
步骤802,与所述其他可信计算节点对各自获取的加密文件进行并行处理;其中,所述任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,利用数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至数据拥有方
如前所述,数据拥有方的数据可以为包括索引区和若干个分片区的文件,该索引区记载有各个分片区的摘要值,每一加密文件包括该索引区和至少一个分片区,其中任一可信计算节点对任一加密文件的处理过程还包括:读取所述解密后数据包含的索引区和分片区;计算读取的分片区的摘要值,并与读取的索引区中记载的相应分片区的摘要值进行比较;在比较结果为一致的情况下,根据读取的分片区的内容进行计算。
因为图7所述实施例和图8所述实施例实际上是图1所述实施例的单侧(数据源侧或任一可信计算节点侧)描述,所以相关之处参见系统侧详细实施例的部分说明即可。
上述说明书实施例详细地说明了一种基于可信执行环境的隐私计算方法,通过所述方法,数据源可以对数据拥有方的数据加密成多个加密文件,使得多个可信计算节点可以并行解密计算所述加密文件,提高了隐私数据的计算效率,且数据源可以利用多个存储节点,对数据拥有方的数据进行并行加密,进一步提高了隐私数据的加密效率。
与前述方法的实施例相对应,本说明书还提供了装置、电子设备以及存储介质的实施例。
图9是一示例性实施例提供的一种电子设备的示意结构图。请参考图9,在硬件层面,该设备包括处理器901、网络接口902、内存903、非易失性存储器904以及内部总线905,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器901从非易失性存储器904中读取对应的计算机程序到内存903中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图10是一示例性实施例提供的一种基于可信执行环境的隐私计算装置的框图。请参考图10,其中,该隐私计算装置具体应用于数据源,该装置包括:
加密生成单元1001,用于基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括数据拥有方的部分数据;
发送单元1002,用于发送所述多个加密文件至可信执行环境集群,以由所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理;其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
可选地,所述数据拥有方的数据包括业务上相互独立的若干数据块。
可选地,所述加密生成单元1001具体用于:
基于集群共享公钥对所述数据拥有方的数据中包含的各个数据块进行逐个加密得到相应的加密数据块;将得到的加密数据块导出为所述多个加密文件,每个加密文件包含一个或多个加密数据块。
可选地,所述数据源包括采用分布式架构的多个存储节点。
可选地,所述加密生成单元1001具体用于:
所述数据源中的多个存储节点对所述数据拥有方的数据进行并行加密,以生成所述多个加密文件。
可选地,发送单元1002具体用于:
将包含调度信息的所述多个加密文件发送至所述可信执行环境集群,所述调度信息用于指示对相应加密文件进行处理的可信计算节点;或者,基于所述调度信息将所述多个加密文件分别发送至所述可信执行环境集群中对应的可信计算节点。
图11是一示例性实施例提供的一种基于可信执行环境的隐私计算装置的框图。请参考图11,其中,该隐私计算装置具体应用于可信执行环境集群中的任一可信计算节点,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;该装置包括:
获取单元1101,用于获取来自数据源的至少一个加密文件,所述加密文件为所述数据源基于数据拥有方的数据生成且由集群共享公钥加密得到,每个加密文件包括所述数据拥有方的部分数据;其中,所述数据源生成的其他加密文件还被发送至所述可信执行环境集群中的其他可信计算节点;
并行处理单元1102,用于与所述其他可信计算节点对各自获取的加密文件进行并行处理;其中,所述任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,利用数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至数据拥有方。
可选地,所述装置还包括:
结果发送单元1103,用于将生成的密文计算结果直接发送至数据源或所述数据拥有方;或者,在所述可信执行环境集群配置有调度节点的情况下,将生成的密文计算结果反馈至所述调度节点,以由调度节点发送至数据源或所述数据拥有方。
可选地,所述数据拥有方的数据为包括索引区和若干个分片区的文件,所述索引区记载有各个分片区的摘要值,每一加密文件包括所述索引区和至少一个分片区,所述任一可信计算节点对任一加密文件的处理过程还包括:读取所述解密后数据包含的索引区和分片区;计算读取的分片区的摘要值,并与读取的索引区中记载的相应分片区的摘要值进行比较;在比较结果为一致的情况下,根据读取的分片区的内容进行计算。
基于上述基于可信执行环境的隐私计算装置,数据源可以对数据拥有方的数据加密成多个加密文件,使得多个可信计算节点可以并行解密计算所述加密文件,提高了隐私数据的计算效率,且数据源可以利用多个存储节点,对数据拥有方的数据进行并行加密,进一步提高了隐私数据的加密效率。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (18)

1.一种基于可信执行环境的隐私计算系统,所述隐私计算系统包括数据源和可信执行环境集群,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;
所述数据源用于:基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括所述数据拥有方的部分数据;以及,将所述多个加密文件发送至所述可信执行环境集群;
所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理;其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
2.根据权利要求1所述的系统,所述数据拥有方的数据包括业务上相互独立的若干数据块,所述基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,包括:
所述数据源基于集群共享公钥对所述数据拥有方的数据中包含的各个数据块进行逐个加密得到相应的加密数据块;
所述数据源将得到的加密数据块导出为所述多个加密文件,每个加密文件包含一个或多个加密数据块。
3.根据权利要求1所述的系统,所述数据源包括采用分布式架构的多个存储节点,所述基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,包括:
所述数据源中的多个存储节点对所述数据拥有方的数据进行并行加密,以生成所述多个加密文件。
4.根据权利要求1所述的系统,所述将所述多个加密文件发送至所述可信执行环境集群,包括:
所述数据源将包含调度信息的所述多个加密文件发送至所述可信执行环境集群,所述调度信息用于指示对相应加密文件进行处理的可信计算节点;或者,
所述数据源基于所述调度信息将所述多个加密文件分别发送至所述可信执行环境集群中对应的可信计算节点。
5.根据权利要求1所述的系统,所述可信执行环境集群配置有调度节点,所述调度节点用于:
接收所述数据源发送的所述多个加密文件,并按照预设调度策略将所述多个加密文件调度至所述至少一部分可信计算节点;或者,
接收所述数据源发送的所述多个加密文件,并根据各个加密文件中包含的调度信息,将所述多个加密文件分别调度至所述调度信息所指示的可信计算节点。
6.根据权利要求1所述的系统,所述可信执行环境集群中的可信计算节点,还用于:
将生成的密文计算结果直接发送至所述数据源或所述数据拥有方;或者,
在所述可信执行环境集群配置有调度节点的情况下,将生成的密文计算结果反馈至所述调度节点,以由调度节点发送至所述数据源或所述数据拥有方。
7.根据权利要求1所述的系统,所述数据拥有方的数据为包括索引区和若干个分片区的文件,所述索引区记载有各个分片区的摘要值,每一加密文件包括所述索引区和至少一个分片区;所述任一可信计算节点还用于:
读取所述解密后数据包含的索引区和分片区;
计算读取的分片区的摘要值,并与读取的索引区中记载的相应分片区的摘要值进行比较;
在比较结果为一致的情况下,根据读取的分片区的内容进行计算。
8.一种基于可信执行环境的隐私计算方法,所述方法应用于数据源,所述方法包括:
基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括数据拥有方的部分数据;
发送所述多个加密文件至可信执行环境集群,以由所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理;其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
9.根据权利要求8所述的方法,所述数据拥有方的数据包括业务上相互独立的若干数据块,所述基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,包括:
基于集群共享公钥对所述数据拥有方的数据中包含的各个数据块进行逐个加密得到相应的加密数据块;
将得到的加密数据块导出为所述多个加密文件,每个加密文件包含一个或多个加密数据块。
10.根据权利要求8所述的方法,所述数据源包括采用分布式架构的多个存储节点,所述基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,包括:
所述数据源中的多个存储节点对所述数据拥有方的数据进行并行加密,以生成所述多个加密文件。
11.根据权利要求8所述的方法,所述将所述多个加密文件发送至所述可信执行环境集群,包括:
将包含调度信息的所述多个加密文件发送至所述可信执行环境集群,所述调度信息用于指示对相应加密文件进行处理的可信计算节点;或者,
基于所述调度信息将所述多个加密文件分别发送至所述可信执行环境集群中对应的可信计算节点。
12.一种基于可信执行环境的隐私计算方法,所述方法应用于可信执行环境集群中的任一可信计算节点,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;所述方法包括:
获取来自数据源的至少一个加密文件,所述加密文件为所述数据源基于数据拥有方的数据生成且由集群共享公钥加密得到,每个加密文件包括所述数据拥有方的部分数据;其中,所述数据源生成的其他加密文件还被发送至所述可信执行环境集群中的其他可信计算节点;
与所述其他可信计算节点对各自获取的加密文件进行并行处理;其中,所述任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,利用数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至数据拥有方。
13.根据权利要求12所述的方法,所述方法还包括:
将生成的密文计算结果直接发送至数据源或所述数据拥有方;或者,
在所述可信执行环境集群配置有调度节点的情况下,将生成的密文计算结果反馈至所述调度节点,以由调度节点发送至数据源或所述数据拥有方。
14.根据权利要求12所述的方法,所述数据拥有方的数据为包括索引区和若干个分片区的文件,所述索引区记载有各个分片区的摘要值,每一加密文件包括所述索引区和至少一个分片区,所述任一可信计算节点对任一加密文件的处理过程还包括:
读取所述解密后数据包含的索引区和分片区;
计算读取的分片区的摘要值,并与读取的索引区中记载的相应分片区的摘要值进行比较;
在比较结果为一致的情况下,根据读取的分片区的内容进行计算。
15.一种基于可信执行环境的隐私计算装置,所述装置应用于数据源,所述装置包括:
加密生成单元,用于基于数据拥有方的数据生成由集群共享公钥加密的多个加密文件,每个加密文件包括数据拥有方的部分数据;
发送单元,用于发送所述多个加密文件至可信执行环境集群,以由所述可信执行环境集群中的至少一部分可信计算节点对所述多个加密文件进行并行处理;其中,任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,以及利用所述数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至所述数据拥有方。
16.一种基于可信执行环境的隐私计算装置,所述装置应用于可信执行环境集群中的任一可信计算节点,所述可信执行环境集群中的可信计算节点上配置有集群共享公私钥对;所述装置包括:
获取单元,用于获取来自数据源的至少一个加密文件,所述加密文件为所述数据源基于数据拥有方的数据生成且由集群共享公钥加密得到,每个加密文件包括所述数据拥有方的部分数据;其中,所述数据源生成的其他加密文件还被发送至所述可信执行环境集群中的其他可信计算节点;
并行处理单元,用于与所述其他可信计算节点对各自获取的加密文件进行并行处理;其中,所述任一可信计算节点对任一加密文件的处理过程包括:将所述任一加密文件加载至所述任一可信计算节点本地的可信执行环境中,根据集群共享私钥对所述加密文件进行解密并利用得到的解密后数据计算得到相应的明文计算结果,利用数据拥有方的身份公钥对所述明文计算结果进行加密并将得到的密文计算结果导出可信执行环境以返回至数据拥有方。
17.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求8至11或12至14中任一所述方法的步骤。
18.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求8至11或12至14中任一所述方法的步骤。
CN202210564735.1A 2022-05-23 2022-05-23 一种基于可信执行环境的隐私计算系统及方法 Pending CN115412275A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210564735.1A CN115412275A (zh) 2022-05-23 2022-05-23 一种基于可信执行环境的隐私计算系统及方法
PCT/CN2022/135435 WO2023226349A1 (zh) 2022-05-23 2022-11-30 一种基于可信执行环境的隐私计算系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210564735.1A CN115412275A (zh) 2022-05-23 2022-05-23 一种基于可信执行环境的隐私计算系统及方法

Publications (1)

Publication Number Publication Date
CN115412275A true CN115412275A (zh) 2022-11-29

Family

ID=84158201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210564735.1A Pending CN115412275A (zh) 2022-05-23 2022-05-23 一种基于可信执行环境的隐私计算系统及方法

Country Status (2)

Country Link
CN (1) CN115412275A (zh)
WO (1) WO2023226349A1 (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289185A1 (en) * 2013-03-20 2014-09-25 Marklogic Corporation Apparatus and Method for Policy Based Rebalancing in a Distributed Document-Oriented Database
CN111064569A (zh) * 2019-12-09 2020-04-24 支付宝(杭州)信息技术有限公司 可信计算集群的集群密钥获取方法及装置
CN111880826A (zh) * 2020-07-28 2020-11-03 平安科技(深圳)有限公司 云业务应用升级方法、装置、电子设备和存储介质
CN112835855A (zh) * 2021-02-22 2021-05-25 北京众享比特科技有限公司 一种基于区块链的文件存储方法和系统
CN112926051A (zh) * 2021-03-25 2021-06-08 支付宝(杭州)信息技术有限公司 多方安全计算方法和装置
WO2021184962A1 (zh) * 2020-03-18 2021-09-23 支付宝(杭州)信息技术有限公司 生成共享合约密钥的方法及装置
WO2021184968A1 (zh) * 2020-03-18 2021-09-23 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN114297692A (zh) * 2021-12-30 2022-04-08 支付宝(杭州)信息技术有限公司 基于数据处理系统的隐私数据处理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783272B2 (en) * 2017-12-08 2020-09-22 Nec Corporation Method and system of preserving privacy for usage of lightweight blockchain clients
CN111082934B (zh) * 2019-12-31 2021-04-06 支付宝(杭州)信息技术有限公司 基于可信执行环境的跨域安全多方计算的方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289185A1 (en) * 2013-03-20 2014-09-25 Marklogic Corporation Apparatus and Method for Policy Based Rebalancing in a Distributed Document-Oriented Database
CN111064569A (zh) * 2019-12-09 2020-04-24 支付宝(杭州)信息技术有限公司 可信计算集群的集群密钥获取方法及装置
WO2021184962A1 (zh) * 2020-03-18 2021-09-23 支付宝(杭州)信息技术有限公司 生成共享合约密钥的方法及装置
WO2021184968A1 (zh) * 2020-03-18 2021-09-23 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN111880826A (zh) * 2020-07-28 2020-11-03 平安科技(深圳)有限公司 云业务应用升级方法、装置、电子设备和存储介质
CN112835855A (zh) * 2021-02-22 2021-05-25 北京众享比特科技有限公司 一种基于区块链的文件存储方法和系统
CN112926051A (zh) * 2021-03-25 2021-06-08 支付宝(杭州)信息技术有限公司 多方安全计算方法和装置
CN114297692A (zh) * 2021-12-30 2022-04-08 支付宝(杭州)信息技术有限公司 基于数据处理系统的隐私数据处理方法

Also Published As

Publication number Publication date
WO2023226349A1 (zh) 2023-11-30

Similar Documents

Publication Publication Date Title
US11516011B2 (en) Blockchain data processing methods and apparatuses based on cloud computing
CN111988141B (zh) 共享集群密钥的方法及装置
CN111181720B (zh) 基于可信执行环境的业务处理方法及装置
CN111090888B (zh) 验证合约的方法及装置
CN111092726B (zh) 生成共享合约密钥的方法及装置
CN111082934B (zh) 基于可信执行环境的跨域安全多方计算的方法及装置
WO2021184973A1 (zh) 访问外部数据的方法及装置
EP3937046B1 (en) Trusted startup methods and apparatuses of blockchain integrated station
CN110162992B (zh) 数据处理方法、数据处理装置和计算机系统
CN109886040B (zh) 数据处理方法、装置、存储介质及处理器
CN111008228A (zh) 区块链中账户隐私信息的查询方法及装置
CN111523110B (zh) 基于链代码的权限查询配置方法及装置
CN111090874A (zh) 调用合约的方法及装置
US20160087995A1 (en) Procedure For Platform Enforced Storage in Infrastructure Clouds
CN113312630B (zh) 实现可信调度的方法及装置
EP4018612B1 (en) Verifiability for execution in trusted execution environment
CN113569265B (zh) 一种数据处理方法、系统及装置
CN115412275A (zh) 一种基于可信执行环境的隐私计算系统及方法
CN115048672A (zh) 基于区块链的数据审计方法和装置、处理器及电子设备
CN114968088A (zh) 文件存储方法、文件读取方法及装置
CN114546271B (zh) 基于区块链的数据读写方法及装置、系统
CN116522356A (zh) 数据查询方法及装置
CN114896621A (zh) 应用服务的获取方法、加密方法、装置、计算机设备
CN116226883A (zh) 密码服务方法、装置、电子设备及存储介质
CN115952519A (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