CN114297692A - 基于数据处理系统的隐私数据处理方法 - Google Patents
基于数据处理系统的隐私数据处理方法 Download PDFInfo
- Publication number
- CN114297692A CN114297692A CN202111655728.4A CN202111655728A CN114297692A CN 114297692 A CN114297692 A CN 114297692A CN 202111655728 A CN202111655728 A CN 202111655728A CN 114297692 A CN114297692 A CN 114297692A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- data
- trusted execution
- execution environment
- plaintext
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 361
- 238000003672 processing method Methods 0.000 title abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 106
- 230000008569 process Effects 0.000 claims abstract description 33
- 238000004422 calculation algorithm Methods 0.000 claims description 83
- 230000015654 memory Effects 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 38
- 238000004891 communication Methods 0.000 claims description 23
- 230000007246 mechanism Effects 0.000 claims description 9
- 239000000126 substance Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 14
- 238000013175 transesophageal echocardiography Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 230000006872 improvement Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000003936 working memory Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- OTZZZISTDGMMMX-UHFFFAOYSA-N 2-(3,5-dimethylpyrazol-1-yl)-n,n-bis[2-(3,5-dimethylpyrazol-1-yl)ethyl]ethanamine Chemical compound N1=C(C)C=C(C)N1CCN(CCN1C(=CC(C)=N1)C)CCN1C(C)=CC(C)=N1 OTZZZISTDGMMMX-UHFFFAOYSA-N 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 241001441724 Tetraodontidae Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本公开涉及基于数据处理系统的隐私数据处理方法,包括:在第一用户侧:将需处理的数据划分为多个数据块,每个数据块包括多个数据行;以及将每个数据块分别进行加密,得到多个密文数据块,并将多个密文数据块传输给所述数据处理系统;以及在所述数据处理系统:将每个密文数据块分配给多个可信执行环境中的一个可信执行环境;可信执行环境将密文数据块解密为明文数据块,并对明文数据块中的多个数据行中的每个数据行进行处理,以得到明文处理结果;可信执行环境将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外;以及在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间。
Description
技术领域
本公开一个或多个实施例涉及基于数据处理系统的隐私数据处理方法、由数据处理系统实施的隐私数据处理方法、以及进行隐私数据处理的数据处理系统。
背景技术
大数据平台是指以处理海量大数据存储、计算及不间断流数据实时计算等场景为主的一套基础设施。利用大数据平台,能够实现数据互通共享,数据互通互享可最大化数据价值。
大数据平台可以利用可信执行环境(Trusted Execution Environment,TEE)来提供隐私数据处理。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的Intel SGX(Software Guard Extensions,软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform Security Processor,平台安全处理器)。
发明内容
本公开一个或多个实施例的目的之一是提供基于数据处理系统的隐私数据处理方法、由数据处理系统实施的隐私数据处理方法、以及进行隐私数据处理的数据处理系统。
根据本公开一个或多个实施例的第一方面,提供了一种基于数据处理系统的隐私数据处理方法,所述数据处理系统包括多个可信执行环境,所述方法包括:在第一用户侧:将需处理的数据划分为多个数据块,每个数据块包括多个数据行;以及将每个数据块分别进行加密,得到多个密文数据块,并将多个密文数据块传输给所述数据处理系统;以及在所述数据处理系统:将每个密文数据块分配给多个可信执行环境中的一个可信执行环境;可信执行环境将密文数据块解密为明文数据块,并对明文数据块中的多个数据行中的每个数据行进行处理,以得到明文处理结果;可信执行环境将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外;以及在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间。
根据本公开一个或多个实施例的第二方面,提供了一种由数据处理系统实施的隐私数据处理方法,所述数据处理系统包括多个可信执行环境,所述方法包括:接收来自第一用户的与需处理的数据对应的多个密文数据块,其中每个密文数据块被分别进行加密;将每个密文数据块分配给多个可信执行环境中的一个可信执行环境;将密文数据块解密为包括多个数据行的明文数据块,并对每个数据行进行处理,以得到明文处理结果;将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外;以及在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间。
根据本公开一个或多个实施例的第三方面,提供了一种基于数据处理系统的隐私数据处理方法,所述数据处理系统包括可信执行环境,所述方法包括:在第一用户侧:将需处理的数据划分为多个数据块,每个数据块包括多个数据行;以及将每个数据块分别进行加密,得到多个密文数据块,并将多个密文数据块传输给所述数据处理系统;以及在所述数据处理系统:可信执行环境从可信执行环境之外的外部存储空间读入一个密文数据块;可信执行环境将密文数据块解密为明文数据块,并对明文数据块中的多个数据行中的每个数据行进行处理,以得到明文处理结果;可信执行环境将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外;在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间;以及可信执行环境从可信执行环境之外的外部存储空间读入下一个密文数据块并对之进行上述处理,直到所述数据处理系统收到的多个密文数据块全部处理完毕。
根据本公开一个或多个实施例的第四方面,提供了一种进行隐私数据处理的数据处理系统,包括:多个可信执行环境;存储单元;通信单元,被配置为接收来自第一用户的与需处理的数据对应的多个密文数据块,其中每个密文数据块被分别进行加密;调度单元,被配置为将每个密文数据块分配给多个可信执行环境中的一个可信执行环境,其中,每个可信执行环境被配置为:将密文数据块解密为包括多个数据行的明文数据块,并对每个数据行进行处理,以得到明文处理结果;将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外,以及所述存储单元被配置为:在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的一个或多个实施例,并且连同说明书一起用于解释本公开一个或多个实施例的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开一个或多个实施例,其中:
图1是现有的基于数据处理系统的隐私数据处理方法的示意图。
图2是包括可信执行环境的数据处理系统的示意图。
图3是根据本公开一个或多个示例性实施例的基于数据处理系统的隐私数据处理方法的用户侧的处理的示意图。
图4是根据本公开一个或多个示例性实施例的基于数据处理系统的隐私数据处理方法的数据处理系统侧的处理的示意图。
图5是根据本公开一个或多个示例性实施例的基于数据处理系统的隐私数据处理方法的数据处理系统侧的处理的示意图。
图6是根据本公开一个或多个示例性实施例的基于数据处理系统的隐私数据处理方法的数据处理系统侧的处理的示意图。
图7是根据本公开一个或多个示例性实施例的进行隐私数据处理的数据处理系统的示意图。
图8是可应用于根据本公开一个或多个示例性实施例的通用硬件系统的示例性框图。
具体实施方式
为了使本技术领域的人员更好地理解本公开中的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。然而应当理解的是,本公开一个或多个实施例可以以多种不同的方式呈现出来,并不局限于下文描述的实施例。还应当理解的是,本公开一个或多个实施例能够以各种方式进行组合,从而提供更多额外的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
应当理解的是,本文中的用语仅用于描述特定的实施例,并不旨在限定。本文使用的所有术语(包括技术术语和科学术语)除非另外定义,均具有本领域技术人员通常理解的含义。为简明和/或清楚起见,公知的功能或结构可以不再详细说明。
在本文中,用语“连接”意图包含一个特征与另一个特征的物理、电性、和/或通信连接,并且这一个特征与另一个特征之间可以存在也可以不存在中间特征。当连接为通信连接时,即使提及A与B“直接连接”,只是意图强调A与B的连接之间不存在本公开一个或多个实施例所强调的一个或多个特征,但并不代表限制A与B之间不经过任何元件而连接,本领域技术人员应理解,A与B之间可以通过线缆、路由器、网关、信道、链路、网络等相连接。需要说明的是,在本公开一个或多个实施例的附图中,A与B之间的无论是直接连接还是间接连接都通过连接在A与B之间的直线或其他图形元素来表示。
在本文中,用语“A或B”包括“A和B”以及“A或B”,而不是排他地仅包括“A”或者仅包括“B”,除非另有特别说明。
在本文中,用语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开一个或多个实施例不受在上述技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
在本文中,用语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。用语“基本上”还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
另外,仅仅为了参考的目的,还可以在本文中使用“第一”、“第二”等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语“第一”、“第二”和其它此类数字词语并没有暗示顺序或次序。
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
需要说明的是:在其他实施例中并不一定按照本公开示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本公开所描述的更多或更少。此外,本公开中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本公开中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
下面先结合图1说明现有的基于数据处理系统的隐私数据处理的过程。本文的数据处理系统可以是例如上文所述的大数据平台,也可以是其他具有隐私数据处理能力的计算机系统。
对于需要数据处理系统进行隐私数据处理的业务数据,用户(例如,数据拥有方或数据提供方等)会将其加密后传输到数据处理系统,以便数据处理系统进行隐私数据处理。在用户侧,可以先将数据库中存储的需处理的数据全部下载到本地机器中,并对这些需处理的数据进行整体加密。例如,可以将全部需处理的数据保存为单个文件,并对该文件进行整体加密。需处理的数据被用户侧加密为加密文件,该加密文件只有数据处理系统的可信执行环境(本文也简称为“TEE”)可以解密。用户侧将该加密文件传输给数据处理系统,数据处理系统中的TEE读取加密文件并进行解密,直到全部数据内容被解密为明文之后,进行计算(即数据处理)。TEE将计算结果使用与该用户相关联的方式进行加密,并将加密后计算结果输出到TEE之外,数据处理系统将加密的计算结果返回给该用户。
如上所述,现有的基于数据处理系统的隐私数据处理,由于在用户侧是将全部需处理的数据进行整体加密,因此数据文件加密过程只能在单机进行,这使得在用户侧的数据处理速度慢。在数据处理系统中也只能在单个TEE中进行解密、数据处理、和加密输出,这使得在数据处理系统中的数据处理速度慢。
如图1所示,数据处理系统可以向多个用户提供隐私数据处理服务。可以将每个用户的数据单独进行处理返回计算结果,也可以将多个用户的数据进行联合处理(例如,数据碰撞)并分别对多个用户返回针对各自的计算结果。
下面结合图2对本公开实施例所涉及的数据处理系统进行说明。
数据处理系统包括TEE以及TEE之外的环境。应当理解,TEE之外的环境也可以进行数据处理(例如包括一个或多个处理器),即进行明文数据处理,并将处理结果存储至TEE之外的存储空间(例如图2中所示的“存储器”)。但为了不模糊本公开的主旨,在图2中并未示出TEE之外的与数据处理相关的功能模块。如图所示,本公开实施例所涉及的数据处理系统可以包括多个TEE,多个TEE可以实现分布式计算。
TEE之外的环境包括用户接口,数据处理系统可以通过用户接口从用户接收数据、以及将数据发送给用户。对于用户发来的需要进行隐私数据处理的数据(如上文所述,该数据为加密后的密文数据块),数据处理系统通过用户接口接收之后,在TEE中解密密文数据块。TEE是基于CPU硬件的安全扩展,且与外部完全隔离。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。随着技术的发展,TEE相比与最初提出的概念已经是更加广义的TEE。例如,服务器芯片厂商Intel,AMD等都先后推出了硬件辅助的TEE并丰富了TEE的概念和特性。现在提起的TEE通常更多指这类硬件辅助的TEE技术。不同于移动端,云端访问需要远程访问,终端用户对硬件平台不可见,因此使用TEE的第一步就是要确认TEE的真实可信。因此现在的TEE技术都引入了远程证明机制,由硬件厂商(主要是CPU厂商)背书并通过数字签名技术确保用户对TEE状态可验证。同时仅仅是安全的资源隔离也无法满足的安全需求,进一步的数据隐私保护也被提出。包括Intel SGX,AMD SEV在内的商用TEE也都提供了内存加密技术,将可信硬件限定在CPU内部,总线和内存的数据均是密文防止恶意用户进行窥探。例如,英特尔的软件保护扩展(SGX)等TEE技术隔离了代码执行、远程证明、安全配置、数据的安全存储以及用于执行代码的可信路径。在TEE中运行的应用程序受到安全保护,几乎不可能被第三方访问。
以Intel SGX技术为例,SGX提供了围圈(enclave,也称为飞地),即内存中一个加密的可信执行区域,由CPU保护数据不被窃取。以TEE采用支持SGX的CPU为例,利用新增的处理器指令,在内存中可以分配一部分区域EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),通过CPU内的加密引擎MEE(Memory Encryption Engine)对其中的数据进行加密。EPC中加密的内容只有进入CPU后才会被解密成明文。因此,在SGX中,用户可以不信任操作系统、VMM(Virtual Machine Monitor,虚拟机监控器)、甚至BIOS(BasicInput OutputSystem,基本输入输出系统),只需要信任CPU便能确保隐私数据不会泄漏。实际应用中,可以将隐私数据加密后以密文形式传递至围圈中,并通过远程证明将对应的秘钥也传入围圈。然后,在CPU的加密保护下利用数据进行运算,结果会以密文形式返回。这种模式下,既可以利用强大的计算力,又不用担心数据泄漏。
数据处理系统的用户接口接收的密文数据块可以是由用户在某一客户端对需处理的数据加密生成的,在本文统称为在用户侧进行的处理。此处的加密,可以采用对称加密,也可以采用非对称加密。相应地,TEE可以用对应的密钥解密该密文数据块,以获得明文数据。如果用户侧用对称加密方式,即用对称加密算法的密钥对明文数据加密,则相应地,TEE可以用该对称加密算法的密钥解密该密文数据块。对称加密采用的加密算法,例如是DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法等。对称加密算法的密钥,例如可以是由用户侧和TEE协商确定。
如果用非对称加密方式,即用非对称加密算法的公钥对明文数据加密,则相应地,TEE可以用该非对称加密算法的私钥解密该密文数据块。非对称加密算法,例如是RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。非对称加密算法的密钥,例如可以是由TEE生成一对公钥和私钥,并在用户侧生成密文数据块之前将公钥发送给用户侧,从而用户侧可以将明文数据用密钥加密。非对称加密算法的密钥,也可以由一个密钥管理服务器生成。通过远程证明的方式,密钥管理服务器将私钥发送至TEE,具体的,可以是传入TEE的围圈中。TEE可以包含多个围圈,而上述私钥可以被传入这些围圈中的安全围圈;例如,该安全围圈可以为QE(Quoting Enclave)围圈,而非AE(Application Enclave)围圈。对于非对称加密的公钥,可以由密钥管理服务器发送至用户侧。
用户侧也可以采用对称加密与非对称加密相结合的方式。例如,用户侧采用对称加密算法加密明文数据,即采用对称加密算法的密钥加密明文数据,并用非对称加密算法的公钥加密对称加密算法中使用的密钥。这样,TEE接收到加密数据后,可以先采用非对称加密算法的私钥进行解密,得到对称加密算法的密钥,进而用对称加密算法的密钥解密得到明文数据。
例如,密钥管理服务器通过远程证明可以将非对称加密算法的私钥发送至TEE的围圈,并将非对称加密算法的公钥发送至用户侧。因而,用户侧可以采用对称加密算法的密钥加密明文数据,并用非对称加密算法的公钥加密对称加密算法中使用的密钥。进而,用户侧可以将该密文数据块和已被加密的对称密钥(由非对称加密算法的公钥对上述对称加密算法中使用的密钥进行加密后得到)发送至数据处理系统。TEE接收到该密文数据块和加密的密钥后,可以先用非对称加密算法的私钥对该加密的密钥进行解密以得到对称加密算法的密钥,进而用该对称加密算法的密钥解密该密文数据块,得到明文数据。这种加密方式一般被称为数字信封加密。
TEE对密文数据块进行解密后,得到明文数据。具体的,TEE可以利用CPU中新增的处理器指令,在内存中可以分配一部分区域EPC,通过CPU内的加密引擎MEE对明文数据进行加密存入EPC中。EPC中加密的内容进入CPU后被解密成明文。在CPU中,对该明文数据进行运算,得到数据处理结果。然后,TEE通过将明文的数据处理结果通过密钥加密为密文处理结果,且该密文处理结果只有通过TEE进行解密,可以确保该密文处理结果本身足够安全。
TEE通过运行用于实现某一功能的代码,以实现该功能。因此,对于需要在TEE中实现的功能,需要执行相关代码。而对于在TEE中执行的代码,需要符合TEE的相关规范和要求;相应地,对于相关技术中用于实现某一功能的代码,需要结合TEE的规范和要求重新进行代码编写,不仅存在相对更大的开发量,而且容易在重新编写过程中产生漏洞(bug),影响功能实现的可靠性和稳定性。
因此,通过在TEE之外执行存储功能代码,将密文处理结果存储至TEE之外的外部存储空间,使得TEE之外执行的该存储功能代码可以为相关技术中用于实现存储功能的代码,不需要结合TEE的规范和要求重新进行代码编写,即可针对该密文处理结果实现安全可靠的存储,不仅可以在不影响安全、可靠程度的基础上,减少相关代码的开发量,而且可以通过减少TEE的相关代码而降低TCB(Trusted Computing Base,可信计算基),使得TEE技术与大数据平台技术进行结合的过程中,额外造成的安全风险处于可控范围。
在一个实施例中,可以在TEE内执行写缓存功能代码,以将明文处理结果存入TEE内的写缓存中,比如该写缓存可以对应于如图2所示的“缓存”。进一步的,TEE可以将写缓存中的数据加密后从TEE输出,以存储至外部存储空间(比如图2所示的“存储器”)。该外部存储空间可以是持久性存储介质,例如磁盘、软盘,也可以是通电后可恢复数据从而可以持久存储的内存之类。其中,写缓存功能代码可以以明文形式存储于TEE中,可以直接在TEE中执行该明文形式的缓存功能代码;或者,写缓存功能代码可以以密文形式存储于TEE之外,比如存储于上述的外部存储空间,可以在要执行写缓存功能之前,将该密文形式的写缓存功能代码读入TEE、在TEE中进行解密为明文代码,并执行该明文代码。
写缓存是指在将数据写入外部存储空间时,为了避免造成对外部存储空间的“冲击”而提供的“缓冲”机制。例如,可以采用buffer实现上述的写缓存;当然,写缓存也可以采用cache来实现,本公开并不对此进行限制。实际上,由于TEE为隔离的安全环境,而外部存储空间位于TEE之外,使得通过采用写缓存机制,可以对缓存内的数据进行批量写入外部存储空间,从而减少TEE与外部存储空间之间的交互次数,提升数据存储效率。同时,TEE在对明文数据进行计算的过程中,可能需要调取已处理的数据或已生成的处理结果,如果需调取的数据恰好位于写缓存中,可以直接从写缓存中读取该数据,这样一方面可以减少与外部存储空间之间的交互,另一方面免去了对从外部存储空间所读取数据的解密过程,从而提升在TEE中的数据处理效率。
当然,也可以将写缓存建立于TEE之外,比如可以在TEE之外执行写缓存功能代码,从而将密文处理结果存入位于TEE外的写缓存中,并进一步将写缓存中的数据存储至外部存储空间。
在一个实施例中,TEE可以从外部存储空间中读取密文处理结果,将密文处理结果读入TEE并解密为明文处理结果,然后对该明文处理结果进行进一步运算,生成需要返回给用户的返回结果,并对返回结果进行加密(例如使用上文所述的来自该用户侧的对称密钥加密)后从TEE输出,比如通过图2所示的用户接口向用户侧返回加密后的返回结果。再例如,可以从TEE内的读缓存中读取明文处理结果,根据该明文处理结果生成返回结果,对返回结果加密后从TEE输出;其中,该明文处理结果由预先在TEE内执行读缓存功能代码,从其外部存储空间中读取相应的密文处理结果,在将该密文处理结果解密为该明文处理结果后,读入TEE并存入该读缓存中。换言之,TEE从其外部存储空间中读取密文处理结果,将该密文处理结果解密为明文处理结果后,可以通过在TEE内执行读缓存功能代码,将该明文处理结果存入TEE内的读缓存中,比如该读缓存可以对应于图2所示的“缓存”。进一步地,对于TEE在执行运算时所需的数据,可以优先从该读缓存中进行数据读取,若能读取相关数据则无需从外部存储空间中读取,从而减少与外部存储空间的交互次数、免除数据解密过程。
读缓存是指在将数据从外部存储空间读入TEE后,为了减少与外部存储空间的交互次数,可以将已读取的数据以明文形式存储于TEE中的读缓存空间内。例如,可以采用cache实现上述的读缓存;当然,读缓存也可以采用buffer来实现,本公开并不对此进行限制。
TEE可以同时支持上述的读缓存机制和写缓存机制。而随着缓存技术的不断发展,同一缓存可以不仅用于实现数据读取或数据写入,甚至可以同时支持数据的读写操作,使得读缓存与写缓存之间的界线有时并不十分清晰,因而图2中仅以“缓存”进行示意,而并未具体区分其具体类型,可以根据实际需求进行配置和调整。当然,上述TEE中的缓存机制,同样可以应用于TEE之外的环境中,不过此时的数据读写仅涉及到明文读写,不需要实施数据加解密操作,在图2中并未示出,此处不再赘述。
可见,在本公开的实施例中,数据处理系统通过TEE可以确保来自用户的隐私数据仅在TEE中被解密读取或运算,而一旦离开TEE时均处于加密状态,从而在数据处理整个过程中,可以保证隐私数据的安全。
下面结合图3至图6说明根据本公开实施例的基于数据处理系统的隐私数据处理方法。
如图3所示,在用户侧,需处理的数据包括多个数据行。用户侧将需处理的数据划分为多个数据块,每个数据块包括多个数据行。在一个实施例中,需处理的数据以二维表的形式存储,每个数据行为该二维表中的一行。在一个实施例中,二维表为行无序的二维表,即需处理的数据中的各个数据行之间可以乱序,并且数据行之间不存在数据处理的依赖关系,因此,用户侧可以将各个数据行任意划分到各个数据块。然后用户侧将每个数据块分别进行加密,得到多个密文数据块,并将多个密文数据块传输给数据处理系统。
在一个实施例中,用户侧根据数据处理系统的TEE的内存处理能力划分数据块。TEE中包含能够快速访问的加密内存,其中存储的数据在进入CPU之后才会被解密,而该内存大小通常存在上限。例如,Intel SGX的快速访问加密内存的上限为128M,如果数据超过该大小就会将数据换页存储,CPU对这部分换页存储的数据的访问速度低,导致CPU对这些数据的处理性能下降。因此,在该实施例中,希望整个密文数据块(无论是解密前还是解密后)可以被全部存储在TEE的快速访问的加密内存中,从而提高TEE对数据块的处理速度。在这种情况下,用户侧可能需要预先知道TEE内存大小的上限。数据处理系统可以在用户侧划分数据块之前将TEE的内存处理能力通知用户侧。
在一个实施例中,用户侧对各个数据块的加密可以采用非对称加密的方式,例如使用数据处理系统的TEE的非对称加密算法的公钥对每个数据块分别进行加密,以得到各个密文数据块。密文数据块在进入TEE之后,TEE用非对称加密算法的私钥将收到的密文数据块进行解密,即可得到明文数据块。在一个实施例中,用户侧对各个数据块的加密可以采用对称加密和非对称加密相结合的方式,即上文所述的数字信封加密方式。用户侧使用用户密钥对每个数据块分别进行加密,并使用TEE的非对称加密算法的公钥对用户密钥进行加密,并将多个密文数据块以及加密的用户密钥传输给数据处理系统。在数据处理系统中,TEE用非对称加密算法的私钥将收到的加密的用户密钥解密以得到明文的用户密钥,并用该用户密钥将密文数据块解密为明文数据块。在这些实施例中,在数据处理系统包含多个TEE的情况下,多个TEE可以共享非对称加密算法的一对公私钥。在这些实施例中,可以由密钥管理服务器预先生成非对称加密算法的密钥。通过远程证明的方式,密钥管理服务器将非对称密钥对中的私钥传送至数据处理系统的各TEE的围圈中,并将非对称密钥对中的公钥发送至用户侧。也可以由处理系统的各TEE通过密钥协商机制得到共享的非对称加密算法的一对公私钥。其中的公钥由数据处理系统发送至用户,私钥存储在各TEE的围圈中。
数据处理系统通过用户接口从用户侧接收各个密文数据块。各个密文数据块可以被暂存在TEE之外的外部存储空间中。在数据处理系统包含多个TEE的情况下,系统将每个密文数据块调度给多个TEE中的一个TEE,TEE可以从外部存储空间读取分配给其的密文数据块,以便对该密文数据块进行隐私数据处理。在数据处理系统仅包含一个TEE的情况下,TEE可以从外部存储空间依次读入各个密文数据块并对其进行隐私数据处理,处理完毕之后读入并处理下一个密文数据块,直到数据处理系统收到的多个密文数据块全部处理完毕。
如图4所示,在TEE中,密文数据块被解密为明文数据块,其中明文数据块包括多个数据行,如同在用户侧加密前的数据块。如上所述,如果用户侧采用非对称加密算法加密数据块,则TEE用非对称加密算法的私钥将收到的密文数据块解密为明文数据块。如果用户侧采用对称加密算法和非对称加密算法相结合的方式加密数据块,则TEE用非对称加密算法的私钥将收到的加密的用户密钥解密以得到该用户的明文的用户密钥,并用该用户密钥将密文数据块解密为明文数据块。
TEE对明文数据块中的多个数据行中的每个数据行进行处理,以得到明文处理结果。如图所示,明文处理结果可以包括多个结果数据行(简称为“结果行”)。需要说明的是,结果行和明文数据块中的数据行可以是一一对应的,例如一个数据行在被处理后产生一个结果行;也可以不是一一对应的,例如一个数据行在被处理后产生多个结果行、或多个数据行在被处理后产生一个结果行。
TEE将明文处理结果加密得到密文处理结果,例如用TEE的对称加密算法的密钥将明文处理结果加密得到密文处理结果,并将密文处理结果输出到TEE之外。该对称加密算法的密钥可以被存储于TEE的围圈中。数据处理系统在TEE之外执行存储功能代码,以将密文处理结果存储至外部存储空间。
数据处理系统对用户提供隐私数据服务,通常需要向用户返回信息,本文称为“返回结果”。返回结果可以是上文所说的包括多个结果行的处理结果,也可以是处理结果进一步运算的结果。如图5所示,TEE根据明文处理结果计算得到需要返回给用户的数据处理的返回结果,并将返回结果进行加密,得到一个或多个密文结果块,并将一个或多个密文结果块输出到TEE之外。数据处理系统通过用户接口将一个或多个密文结果块传输给第一用户。密文结果块需要能够被用户解密。在用户侧采用对称加密算法和非对称加密算法相结合的方式加密数据块的情况下,TEE用从用户侧接收的用户密钥将返回结果加密以得到密文结果块。
在图5所示的示例中,TEE从TEE之外的外部存储空间读入密文处理结果,将密文处理结果解密为明文处理结果,并根据明文处理结果计算得到返回结果。应当理解,如果为了生成返回结果所需要的明文处理结果(或结果的一部分)存储在TEE内的缓存中,则TEE不需要从外部存储空间读入密文处理结果(或结果的一部分),只需要使用其缓存中的明文处理结果(或结果的一部分)即可。
在一些情况下,需要结合其他用户的数据对当前用户的数据进行计算,才能得到当前用户需返回的返回结果,例如利用基于大量用户的大数据进行数据碰撞。如图6所示,TEE从TEE之外的外部存储空间读入与当前用户相关的第一密文处理结果(例如图中的“密文处理结果1”)、以及与其他用户相关的第二密文处理结果(例如图中的“密文处理结果2”至“密文处理结果H”),分别将第一和第二密文处理结果解密为第一和第二明文处理结果(例如图中的“明文处理结果1”和“明文处理结果2”至“明文处理结果H”),并根据第一和第二明文处理结果计算得到需要返回给当前用户的返回结果。
TEE将计算得到的明文返回结果进行分块,得到一个或多个明文结果块,每个明文结果块可以包括一个或多个数据行。每个明文结果块的大小可以是与当前用户事先约定的大小,也可以是由当前用户事先通知的大小,还可以是与当前用户发来的待处理数据的数据块的大小相同的大小。TEE对每个明文结果块分别进行加密以得到一个或多个密文结果块,并将一个或多个密文结果块输出到TEE之外。
下面结合图7描述根据本公开实施例的进行隐私数据处理的数据处理系统。数据处理系统包括多个TEE、存储单元、通信单元、以及调度单元。
通信单元被配置为接收来自用户的与需处理的数据对应的多个密文数据块,其中每个密文数据块被分别进行加密。通信单元可以全部或部分地实现上文所述的用户接口的功能。调度单元被配置为将每个密文数据块分配给多个TEE中的一个TEE。调度单元可以根据每个TEE的工作负荷进行密文数据块的调度分配。每个TEE被配置为:将密文数据块解密为包括多个数据行的明文数据块,并对每个数据行进行处理,以得到明文处理结果;将明文处理结果加密得到密文处理结果,例如用TEE的对称加密算法的密钥将明文处理结果加密得到密文处理结果,并将密文处理结果输出到TEE之外。存储单元被配置为在TEE之外执行存储功能代码,以将密文处理结果存储至外部存储空间。通信单元还被配置为在接收密文数据块之前,将TEE的内存处理能力通知给第一用户,以便于第一用户侧根据TEE的内存处理能力划分数据块。
在一个实施例中,每个TEE还被配置为:与其他TEE共享非对称加密算法的一对公私钥;以及用非对称加密算法的私钥将收到的被使用非对称加密算法的公钥加密的密文数据块解密为明文数据块。在一个实施例中,通信单元还被配置为接收来自用户的加密的用户密钥。每个TEE还被配置为:与其他TEE共享非对称加密算法的一对公私钥,以及用非对称加密算法的私钥将收到的加密的用户密钥解密以得到明文的用户密钥,并用用户密钥将被使用用户密钥加密的密文数据块解密为明文数据块。
在一些实施例中,通信单元还被配置为接收来自用户的用户密钥。每个TEE还被配置为:根据明文处理结果计算得到需要返回给用户的数据处理的返回结果,并将返回结果进行加密以得到一个或多个密文结果块,例如用用户密钥将返回结果加密以得到密文结果块,并将一个或多个密文结果块输出到TEE之外。通信单元还被配置为将一个或多个密文结果块传输给用户。
在一个实施例中,每个TEE还被配置为:从TEE之外的外部存储空间读入密文处理结果,将密文处理结果解密为明文处理结果,并根据明文处理结果计算得到返回结果。在一个实施例中,每个TEE还被配置为:从TEE之外的外部存储空间读入与当前用户相关的第一密文处理结果、以及与其他用户相关的第二密文处理结果,分别将第一和第二密文处理结果解密为第一和第二明文处理结果,并根据第一和第二明文处理结果计算得到需要返回给当前用户的返回结果。
图8是可应用于根据本公开一个或多个示例性实施例的通用硬件系统800的示例性框图。现在将参考图8描述系统800,其是可以应用于本公开的各方面的硬件设备的示例。上述各实施例中的用户侧的客户端或数据处理系统中的任意一个可以包括系统800的全部或部分。系统800可以是被配置为执行处理和/或计算的任何机器,可以是但不限于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助理、智能电话、车载电脑、或其任何组合。
系统800可以包括可能经由一个或多个接口与总线802连接或与总线802通信的元件。例如,系统800可以包括总线802,以及一个或多个处理器804,一个或多个输入设备806和一个或多个输出设备808。一个或多个处理器804可以是任何类型的处理器,可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。上文所述的方法中的各个操作和/或步骤均可以通过一个或多个处理器804执行指令来实现。
输入设备806可以是可以向计算设备输入信息的任何类型的设备,可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或遥控器。输出设备808可以是可以呈现信息的任何类型的设备,可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。
系统800还可以包括非暂时性存储设备810或者与非暂时性存储设备810连接。非暂时性存储设备810可以是非暂时性的并且可以实现数据存储的任何存储设备,可以包括但不限于磁盘驱动器、光学存储设备、固态存储器、软盘、硬盘、磁带或任何其他磁介质、光盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、高速缓冲存储器、和/或任何其他存储器芯片/芯片组、和/或计算机可从其读取数据、指令和/或代码的任何其他介质。非暂时性存储设备810可以从接口拆卸。非暂时性存储设备810可以具有用于实现上述方法、操作、步骤和过程的数据/指令/代码。
系统800还可以包括通信设备812。通信设备812可以是能够与外部设备和/或与网络通信的任何类型的设备或系统,可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备、和/或芯片组,例如蓝牙设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设备、卫星通信设备、和/或类似物。
总线802可以包括但不限于工业标准体系结构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、和外围部件互连(PCI)总线。特别地,对于车载设备,总线802还可以包括控制器区域网络(CAN)总线或设计用于在车辆上应用的其他架构。
系统800还可以包括工作存储器814,其可以是可以存储对处理器804的工作有用的指令和/或数据的任何类型的工作存储器,可以包括但不限于随机存取存储器和/或只读存储设备。
软件元素可以位于工作存储器814中,包括但不限于操作系统816、一个或多个应用程序818、驱动程序、和/或其他数据和代码。用于执行上述方法、操作和步骤的指令可以包括在一个或多个应用程序818中。软件元素的指令的可执行代码或源代码可以存储在非暂时性计算机可读存储介质中,例如上述存储设备810,并且可以通过编译和/或安装被读入工作存储器814中。还可以从远程位置下载软件元素的指令的可执行代码或源代码。
还应该理解,可以根据具体要求进行变化。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现特定元件。此外,可以采用与诸如网络输入/输出设备之类的其他计算设备的连接。例如,根据本公开实施例的方法或装置中的一些或全部可以通过使用根据本公开的逻辑和算法的、用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C++)的编程硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)来实现。
还应该理解,系统800的组件可以分布在网络上。例如,可以使用一个处理器执行一些处理,而可以由远离该一个处理器的另一个处理器执行其他处理。系统800的其他组件也可以类似地分布。这样,系统800可以被解释为在多个位置执行处理的分布式计算系统。
上述对本公开一个或多个示例性实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本公开一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本公开一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本公开一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本公开一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本公开的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本公开中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本公开中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本公开一个或多个实施例的实施例而已,并不用于限制本本公开一个或多个实施例。对于本领域技术人员来说,本公开一个或多个实施例可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (44)
1.一种基于数据处理系统的隐私数据处理方法,所述数据处理系统包括多个可信执行环境,所述方法包括:
在第一用户侧:
将需处理的数据划分为多个数据块,每个数据块包括多个数据行;以及
将每个数据块分别进行加密,得到多个密文数据块,并将多个密文数据块传输给所述数据处理系统;以及
在所述数据处理系统:
将每个密文数据块分配给多个可信执行环境中的一个可信执行环境;
可信执行环境将密文数据块解密为明文数据块,并对明文数据块中的多个数据行中的每个数据行进行处理,以得到明文处理结果;
可信执行环境将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外;以及
在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间。
2.根据权利要求1所述的方法,其中,多个可信执行环境共享非对称加密算法的一对公私钥,所述方法还包括:
在所述第一用户侧,使用所述非对称加密算法的公钥对每个数据块分别进行加密;以及
在所述数据处理系统,可信执行环境用所述非对称加密算法的私钥将收到的密文数据块解密为明文数据块。
3.根据权利要求1所述的方法,其中,多个可信执行环境共享非对称加密算法的一对公私钥,所述方法还包括:
在所述第一用户侧,使用第一用户密钥对每个数据块分别进行加密以及使用所述非对称加密算法的公钥对第一用户密钥进行加密,并将多个密文数据块以及加密的第一用户密钥传输给所述数据处理系统;以及
在所述数据处理系统,可信执行环境用所述非对称加密算法的私钥将收到的加密的第一用户密钥解密以得到明文的第一用户密钥,并用第一用户密钥将密文数据块解密为明文数据块。
4.根据权利要求2或3所述的方法,其中,
所述公钥由密钥管理服务器发送至所述第一用户,所述私钥由密钥管理服务器通过远程证明发送至各可信执行环境的围圈中;或
非对称加密算法的一对公私钥由多个可信执行环境通过密钥协商机制得到,其中,所述公钥由所述数据处理系统发送至所述第一用户,所述私钥存储在各可信执行环境的围圈中。
5.根据权利要求1所述的方法,还包括:
在所述数据处理系统,可信执行环境用可信执行环境的对称加密算法的密钥将明文处理结果加密得到密文处理结果。
6.根据权利要求1所述的方法,还包括:
在所述数据处理系统:
可信执行环境根据明文处理结果计算得到需要返回给所述第一用户的数据处理的返回结果,并将返回结果进行加密,得到一个或多个密文结果块,并将一个或多个密文结果块输出到可信执行环境之外;以及
将一个或多个密文结果块传输给所述第一用户。
7.根据权利要求6所述的方法,还包括:
在所述第一用户侧,将第一用户密钥传输给所述数据处理系统;以及
在所述数据处理系统,可信执行环境用第一用户密钥将返回结果加密以得到密文结果块。
8.根据权利要求6所述的方法,还包括:
在所述数据处理系统,可信执行环境从可信执行环境之外的外部存储空间读入密文处理结果,将密文处理结果解密为明文处理结果,并根据明文处理结果计算得到返回结果。
9.根据权利要求6所述的方法,还包括:
在所述数据处理系统,可信执行环境从可信执行环境之外的外部存储空间读入与所述第一用户相关的第一密文处理结果、以及与其他用户相关的第二密文处理结果,分别将第一和第二密文处理结果解密为第一和第二明文处理结果,并根据第一和第二明文处理结果计算得到需要返回给所述第一用户的返回结果。
10.根据权利要求1所述的方法,其中,所述需处理的数据以二维表的形式存储,所述数据行为所述二维表中的行。
11.根据权利要求10所述的方法,其中,所述二维表为行无序的二维表。
12.根据权利要求1所述的方法,还包括:
在所述第一用户侧,根据所述数据处理系统的可信执行环境的内存处理能力划分数据块。
13.根据权利要求12所述的方法,还包括:
在所述数据处理系统,将可信执行环境的内存处理能力在所述第一用户侧划分数据块之前通知给所述第一用户。
14.一种由数据处理系统实施的隐私数据处理方法,所述数据处理系统包括多个可信执行环境,所述方法包括:
接收来自第一用户的与需处理的数据对应的多个密文数据块,其中每个密文数据块被分别进行加密;
将每个密文数据块分配给多个可信执行环境中的一个可信执行环境;
将密文数据块解密为包括多个数据行的明文数据块,并对每个数据行进行处理,以得到明文处理结果;
将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外;以及
在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间。
15.根据权利要求14所述的方法,其中,多个可信执行环境共享非对称加密算法的一对公私钥,每个密文数据块被使用所述非对称加密算法的公钥分别进行加密,所述方法还包括:
可信执行环境用所述非对称加密算法的私钥将收到的密文数据块解密为明文数据块。
16.根据权利要求14所述的方法,其中,多个可信执行环境共享非对称加密算法的一对公私钥,每个密文数据块被使用所述第一用户的第一用户密钥分别进行加密,所述方法还包括:
接收来自第一用户的加密的第一用户密钥;
可信执行环境用所述非对称加密算法的私钥将收到的加密的第一用户密钥解密以得到明文的第一用户密钥,并用第一用户密钥将密文数据块解密为明文数据块。
17.根据权利要求15或16所述的方法,其中,
所述公钥由密钥管理服务器发送至所述第一用户,所述私钥由密钥管理服务器通过远程证明发送至各可信执行环境的围圈中;或
非对称加密算法的一对公私钥由多个可信执行环境通过密钥协商机制得到,其中,所述公钥由所述数据处理系统发送至所述第一用户,所述私钥存储在各可信执行环境的围圈中。
18.根据权利要求14所述的方法,还包括:
可信执行环境用可信执行环境的对称加密算法的密钥将明文处理结果加密得到密文处理结果。
19.根据权利要求14所述的方法,还包括:
可信执行环境根据明文处理结果计算得到需要返回给所述第一用户的数据处理的返回结果,并将返回结果进行加密,得到一个或多个密文结果块,并将一个或多个密文结果块输出到可信执行环境之外;以及
将一个或多个密文结果块传输给所述第一用户。
20.根据权利要求19所述的方法,还包括:
接收来自所述第一用户的第一用户密钥;以及
可信执行环境用所述第一用户密钥将返回结果加密以得到密文结果块。
21.根据权利要求19所述的方法,还包括:
可信执行环境从可信执行环境之外的外部存储空间读入密文处理结果,将密文处理结果解密为明文处理结果,并根据明文处理结果计算得到返回结果。
22.根据权利要求19所述的方法,还包括:
可信执行环境从可信执行环境之外的外部存储空间读入与所述第一用户相关的第一密文处理结果、以及与其他用户相关的第二密文处理结果,分别将第一和第二密文处理结果解密为第一和第二明文处理结果,并根据第一和第二明文处理结果计算得到需要返回给所述第一用户的返回结果。
23.根据权利要求14所述的方法,还包括:
在接收密文数据块之前,将可信执行环境的内存处理能力通知给所述第一用户,以便于所述第一用户侧根据可信执行环境的内存处理能力划分数据块。
24.一种基于数据处理系统的隐私数据处理方法,所述数据处理系统包括可信执行环境,所述方法包括:
在第一用户侧:
将需处理的数据划分为多个数据块,每个数据块包括多个数据行;以及
将每个数据块分别进行加密,得到多个密文数据块,并将多个密文数据块传输给所述数据处理系统;以及
在所述数据处理系统:
可信执行环境从可信执行环境之外的外部存储空间读入一个密文数据块;
可信执行环境将密文数据块解密为明文数据块,并对明文数据块中的多个数据行中的每个数据行进行处理,以得到明文处理结果;
可信执行环境将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外;
在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间;以及
可信执行环境从可信执行环境之外的外部存储空间读入下一个密文数据块并对之进行上述处理,直到所述数据处理系统收到的多个密文数据块全部处理完毕。
25.根据权利要求24所述的方法,还包括:
在所述第一用户侧,使用可信执行环境的非对称加密算法的公钥对每个数据块分别进行加密;以及
在所述数据处理系统,可信执行环境用所述非对称加密算法的私钥将收到的密文数据块解密为明文数据块。
26.根据权利要求24所述的方法,还包括:
在所述第一用户侧,使用第一用户密钥对每个数据块分别进行加密以及使用所述非对称加密算法的公钥对第一用户密钥进行加密,并将多个密文数据块以及加密的第一用户密钥传输给所述数据处理系统;以及
在所述数据处理系统,可信执行环境用所述非对称加密算法的私钥将收到的加密的第一用户密钥解密以得到明文的第一用户密钥,并用第一用户密钥将密文数据块解密为明文数据块。
27.根据权利要求24所述的方法,还包括:
在所述数据处理系统,可信执行环境用可信执行环境的对称加密算法的密钥将明文处理结果加密得到密文处理结果。
28.根据权利要求24所述的方法,还包括:
在所述数据处理系统:
可信执行环境根据明文处理结果计算得到需要返回给所述第一用户的数据处理的返回结果,并将返回结果进行加密,得到一个或多个密文结果块,并将一个或多个密文结果块输出到可信执行环境之外;以及
将一个或多个密文结果块传输给所述第一用户。
29.根据权利要求28所述的方法,还包括:
在所述第一用户侧,将第一用户密钥传输给所述数据处理系统;以及
在所述数据处理系统,可信执行环境用所述第一用户密钥将返回结果加密以得到密文结果块。
30.根据权利要求28所述的方法,还包括:
在所述数据处理系统,可信执行环境从可信执行环境之外的外部存储空间读入密文处理结果,将密文处理结果解密为明文处理结果,并根据明文处理结果计算得到返回结果。
31.根据权利要求28所述的方法,还包括:
在所述数据处理系统,可信执行环境从可信执行环境之外的外部存储空间读入与所述第一用户相关的第一密文处理结果、以及与其他用户相关的第二密文处理结果,分别将第一和第二密文处理结果解密为第一和第二明文处理结果,并根据第一和第二明文处理结果计算得到需要返回给所述第一用户的返回结果。
32.根据权利要求24所述的方法,其中,所述需处理的数据以二维表的形式存储,所述数据行为所述二维表中的行。
33.根据权利要求32所述的方法,其中,所述二维表为行无序的二维表。
34.根据权利要求24所述的方法,还包括:
在所述第一用户侧,根据所述数据处理系统的可信执行环境的内存处理能力划分数据块。
35.根据权利要求34所述的方法,还包括:
在所述数据处理系统,将可信执行环境的内存处理能力在所述第一用户侧划分数据块之前通知给所述第一用户。
36.一种进行隐私数据处理的数据处理系统,包括:
多个可信执行环境;
存储单元;
通信单元,被配置为接收来自第一用户的与需处理的数据对应的多个密文数据块,其中每个密文数据块被分别进行加密;
调度单元,被配置为将每个密文数据块分配给多个可信执行环境中的一个可信执行环境,
其中,
每个可信执行环境被配置为:
将密文数据块解密为包括多个数据行的明文数据块,并对每个数据行进行处理,以得到明文处理结果;
将明文处理结果加密得到密文处理结果,并将密文处理结果输出到可信执行环境之外,以及
所述存储单元被配置为:
在可信执行环境之外执行存储功能代码,以将密文处理结果存储至外部存储空间。
37.根据权利要求36所述的数据处理系统,其中,每个可信执行环境还被配置为:
与其他可信执行环境共享非对称加密算法的一对公私钥;以及
用所述非对称加密算法的私钥将收到的被使用所述非对称加密算法的公钥加密的密文数据块解密为明文数据块。
38.根据权利要求36所述的数据处理系统,其中,
所述通信单元还被配置为:接收来自第一用户的加密的第一用户密钥;以及
每个可信执行环境还被配置为:与其他可信执行环境共享非对称加密算法的一对公私钥,以及用所述非对称加密算法的私钥将收到的加密的第一用户密钥解密以得到明文的第一用户密钥,并用第一用户密钥将被使用第一用户密钥加密的密文数据块解密为明文数据块。
39.根据权利要求36所述的数据处理系统,其中,每个可信执行环境还被配置为:
用可信执行环境的对称加密算法的密钥将明文处理结果加密得到密文处理结果。
40.根据权利要求36所述的数据处理系统,其中,
每个可信执行环境还被配置为:
根据明文处理结果计算得到需要返回给所述第一用户的数据处理的返回结果,并将返回结果进行加密,得到一个或多个密文结果块,并将一个或多个密文结果块输出到可信执行环境之外,以及
所述通信单元还被配置为:
将一个或多个密文结果块传输给所述第一用户。
41.根据权利要求40所述的数据处理系统,其中,
所述通信单元还被配置为:
接收来自所述第一用户的第一用户密钥,以及
每个可信执行环境还被配置为:
用所述第一用户密钥将返回结果加密以得到密文结果块。
42.根据权利要求40所述的数据处理系统,其中,每个可信执行环境还被配置为:
从可信执行环境之外的外部存储空间读入密文处理结果,将密文处理结果解密为明文处理结果,并根据明文处理结果计算得到返回结果。
43.根据权利要求40所述的数据处理系统,其中,每个可信执行环境还被配置为:
从可信执行环境之外的外部存储空间读入与所述第一用户相关的第一密文处理结果、以及与其他用户相关的第二密文处理结果,分别将第一和第二密文处理结果解密为第一和第二明文处理结果,并根据第一和第二明文处理结果计算得到需要返回给所述第一用户的返回结果。
44.根据权利要求36所述的数据处理系统,其中,所述通信单元还被配置为:
在接收密文数据块之前,将可信执行环境的内存处理能力通知给所述第一用户,以便于所述第一用户侧根据可信执行环境的内存处理能力划分数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111655728.4A CN114297692A (zh) | 2021-12-30 | 2021-12-30 | 基于数据处理系统的隐私数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111655728.4A CN114297692A (zh) | 2021-12-30 | 2021-12-30 | 基于数据处理系统的隐私数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114297692A true CN114297692A (zh) | 2022-04-08 |
Family
ID=80973988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111655728.4A Pending CN114297692A (zh) | 2021-12-30 | 2021-12-30 | 基于数据处理系统的隐私数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297692A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065487A (zh) * | 2022-08-17 | 2022-09-16 | 北京锘崴信息科技有限公司 | 隐私保护云计算方法、保护金融隐私数据的云计算方法 |
CN115277078A (zh) * | 2022-06-22 | 2022-11-01 | 抖音视界(北京)有限公司 | 用于处理基因数据的方法、装置、设备和介质 |
CN115412275A (zh) * | 2022-05-23 | 2022-11-29 | 蚂蚁区块链科技(上海)有限公司 | 一种基于可信执行环境的隐私计算系统及方法 |
CN116388987A (zh) * | 2023-06-06 | 2023-07-04 | 北京原语科技有限公司 | 隐私数据聚合方法 |
CN117786667A (zh) * | 2023-12-22 | 2024-03-29 | 北京熠智科技有限公司 | 一种用于可控计算的进程权限管理方法、系统及存储介质 |
-
2021
- 2021-12-30 CN CN202111655728.4A patent/CN114297692A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412275A (zh) * | 2022-05-23 | 2022-11-29 | 蚂蚁区块链科技(上海)有限公司 | 一种基于可信执行环境的隐私计算系统及方法 |
WO2023226349A1 (zh) * | 2022-05-23 | 2023-11-30 | 蚂蚁区块链科技(上海)有限公司 | 一种基于可信执行环境的隐私计算系统及方法 |
CN115277078A (zh) * | 2022-06-22 | 2022-11-01 | 抖音视界(北京)有限公司 | 用于处理基因数据的方法、装置、设备和介质 |
CN115065487A (zh) * | 2022-08-17 | 2022-09-16 | 北京锘崴信息科技有限公司 | 隐私保护云计算方法、保护金融隐私数据的云计算方法 |
CN115065487B (zh) * | 2022-08-17 | 2022-12-09 | 北京锘崴信息科技有限公司 | 隐私保护云计算方法、保护金融隐私数据的云计算方法 |
CN116388987A (zh) * | 2023-06-06 | 2023-07-04 | 北京原语科技有限公司 | 隐私数据聚合方法 |
CN116388987B (zh) * | 2023-06-06 | 2023-08-25 | 北京原语科技有限公司 | 隐私数据聚合方法 |
CN117786667A (zh) * | 2023-12-22 | 2024-03-29 | 北京熠智科技有限公司 | 一种用于可控计算的进程权限管理方法、系统及存储介质 |
CN117786667B (zh) * | 2023-12-22 | 2024-06-11 | 北京熠智科技有限公司 | 一种用于可控计算的进程权限管理方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088846B2 (en) | Key rotating trees with split counters for efficient hardware replay protection | |
US10601596B2 (en) | Techniques to secure computation data in a computing environment | |
CN114297692A (zh) | 基于数据处理系统的隐私数据处理方法 | |
US10484352B2 (en) | Data operations using a proxy encryption key | |
TWI585612B (zh) | 管理具有隔離元件的現場可程式設計閘陣列的使用 | |
CN110008735B (zh) | 区块链中实现合约调用的方法及节点、存储介质 | |
US11870650B2 (en) | System, method and computer program product for network function optimization based on locality and function type | |
EP3962021A1 (en) | Service processing methods, apparatuses, devices and systems | |
KR101465966B1 (ko) | 클라우드 환경에서의 데이터 암호화 처리 장치 및 방법 | |
WO2024001038A1 (zh) | 检测隐私数据泄漏的方法 | |
CN109450620B (zh) | 一种移动终端中共享安全应用的方法及移动终端 | |
CN110033265B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
US20230222230A1 (en) | Key distribution system in a secure enclave | |
JP2022523770A (ja) | セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール | |
CN111245811A (zh) | 信息加密方法、装置及电子设备 | |
CN116491104A (zh) | 基于容器的密码学硬件安全模块管理 | |
CN114357482A (zh) | 将区块链网络中的历史明文交易转为隐私交易的方法 | |
JP2022089781A (ja) | システム、方法、およびコンピュータ・プログラム製品(データ・セントリック・オブジェクトの複数段階保護) | |
Abd Elminaam et al. | SMCACC: developing an efficient dynamic secure framework for mobile capabilities augmentation using cloud computing | |
CN112788151B (zh) | 数据同步的方法、装置和系统 | |
WO2023169271A1 (zh) | 一种数据存储方法及数据处理设备 | |
CN111079159B (zh) | 用于Hypervisor多域架构的加密通信方法及系统 | |
CN108985109A (zh) | 一种数据存储方法及装置 | |
US11824984B2 (en) | Storage encryption for a trusted execution environment | |
CN112286635B (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 |