CN112711774A - 数据处理方法、装置、设备及存储介质 - Google Patents
数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112711774A CN112711774A CN202110316999.0A CN202110316999A CN112711774A CN 112711774 A CN112711774 A CN 112711774A CN 202110316999 A CN202110316999 A CN 202110316999A CN 112711774 A CN112711774 A CN 112711774A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- fragment
- target
- fragments
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据处理方法、装置、设备及存储介质,属于数据安全领域。该方法应用于具有可信执行环境的计算机设备中,该方法包括:接收数据提供方发送的加密数据分片;对加密数据分片进行解密,得到加密数据分片对应的原始数据分片;在安全区域中对原始数据分片进行数据密封处理,得到密封后的数据分片,密封后的数据分片存储于安全区域外的存储空间中;响应于计算机设备处于目标运算过程中,从存储空间中提取目标运算过程所需的目标数据分片,并对目标数据分片进行运算,目标数据分片是密封后的数据分片的子集。通过释放内存空间的方式提高了数据处理的运算效率,同时保障数据在计算机设备之间传输时的隐私安全。
Description
技术领域
本申请涉及数据安全领域,特别涉及一种数据处理方法、装置、设备及存储介质。
背景技术
可信执行环境(Trust Execution Environment,TEE)是指中央处理器(CentralProcessing Unit,CPU)中与设备的操作系统并行运行的独立区域。可信执行环境包括用于进行数据运算的安全区域(Enclave)。
由于安全区域所允许使用的内存资源通常都是有限的。示意性的,在Enclave中运行机器学习模型的训练任务,通过对机器学习算法进行分割,然后对分割后的算法数据进行处理,将不需要保护的算法数据存放在TEE之外进行处理,将需要保护的算法数据在TEE中进行处理,以缓解被占用的内存空间。
上述技术方案中,由于机器学习算法的执行过程较为复杂,需要对机器学习算法进行较为精细的划分,划分难度较大,且划分后的执行过程集中在有限的内存空间中执行,使得机器学习算法在可信执行环境中的执行效率较低。
发明内容
本申请实施例提供了一种数据处理方法、装置、设备及存储介质,通过利用数据密封密钥对数据分片进行数据加密,使得数据分片可以存储在安全区域的外部存储空间,内存空间得以释放,数据分片的运算不再拘泥于有限的内存空间,数据处理效率提高。所述技术方案包括如下方案。
根据本申请的一个方面,提供了一种数据处理方法,所述方法应用于具有可信执行环境TEE的计算机设备中,所述可信执行环境包括用于运行可信应用的安全区域Enclave,所述方法包括如下步骤:
接收数据提供方发送的加密数据分片,所述加密数据分片是所述数据提供方使用加密公钥加密处理后得到的,所述加密公钥是所述安全区域向所述数据提供方提供的;
对所述加密数据分片进行解密,得到所述加密数据分片对应的原始数据分片;
在所述安全区域中对所述原始数据分片进行数据密封处理,得到密封后的数据分片,所述密封后的数据分片存储于所述安全区域外的存储空间中;
响应于所述计算机设备处于目标运算过程中,从所述存储空间中提取所述目标运算过程所需的目标数据分片,并对所述目标数据分片进行运算,所述目标数据分片是所述密封后的数据分片的子集。
根据本申请的另一方面,提供了一种数据处理装置,所述装置包括如下部分:
接收模块,用于接收数据提供方发送的加密数据分片,所述加密数据分片是所述数据提供方使用加密公钥加密处理后得到的,所述加密公钥是所述安全区域向所述数据提供方提供的;
解密模块,用于对所述加密数据分片进行解密,得到所述加密数据分片对应的原始数据分片;
密封模块,用于在所述安全区域中对所述原始数据分片进行数据密封处理,得到密封后的数据分片,所述密封后的数据分片存储于所述安全区域外的存储空间中;
提取模块,用于响应于所述计算机设备处于目标运算过程中,从所述存储空间中提取所述目标运算过程所需的目标数据分片,并对所述目标数据分片进行运算,所述目标数据分片是所述密封后的数据分片的子集。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的数据处理方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的数据处理方法。
根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如上方面所述的数据处理方法。
本申请实施例提供的技术方案带来的有益效果至少包括如下效果。
通过对接收到的数据分片进行密封处理,使得密封后的数据分片可以存储于安全区域之外的存储空间,在计算机设备需要对目标数据分片进行计算时,只需将目标数据分片从存储空间提取出来即可,使得对数据分片的运算不依赖于有限的内存空间,从而在保证数据不被泄露的前提下,提高了数据处理的运算效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机系统的框图;
图2是本申请一个示例性实施例提供的数据处理方法的流程图;
图3是本申请另一个示例性实施例提供的数据处理方法的流程图;
图4是本申请另一个示例性实施例提供的数据处理方法的流程图;
图5本申请一个示例性实施例提供的服务端进行远程证明的框架图;
图6是本申请一个示例性实施例提供的数据密封处理的示意图;
图7是本申请一个示例性实施例提供的区块链系统的结构示意图;
图8是本申请一个示例性实施例提供的区块结构的示意图;
图9是本申请一个示例性实施例提供的数据处理装置的框图;
图10是本申请一个示例性实施例提供的计算机设备的装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行介绍。
隐私计算(Privacy Computing):是在保证原始数据不外泄的前提下,进行数据的安全分析及计算的一种技术。在数据流通的过程中,数据处于“可用不可见”的状态,这也是解决当前跨机构数据合作与用户及商业隐私保护之间矛盾的有效方案,已在金融、医疗、政务等领域开始推广应用。作为隐私计算的重要实现方式,可信执行环境技术借助底层硬件实现的对于关键应用与敏感数据的保护,是当前在计算场景不断革新的背景下,从根本上提高计算安全性的技术方法之一。
可信执行环境:是指中央处理器中与设备的操作系统并行运行的独立区域,确保TEE中加载的代码和数据的机密性和完整性得到保护,被授权的可信应用程序(TrustedApplication,TA)可以在TEE中执行。示意性的,当用户使用移动设备访问公司邮箱时,需要有可信应用程序,以防止重要信息泄露,如利用可信应用程序对公司邮箱的帐号和密码进行管理,只有在可信执行环境下才能够查看公司邮箱中的邮件。
软件保护扩展(Software Guard Extensions,SGX):是指基于英特尔的第六代处理器之后的一组扩展指令集。该扩展指令集为应用程序在安全区域(Enclave)中开辟一段受保护的内存空间,从而保证应用程序在可信执行环境中运行。该受保护的内存空间实行严格的访问控制和加密操作来提供对应用程序数据机密性和代码完整性的保护。
远程证明(Remote Attestation):是指一个验证实体能通过从不可信执行平台发来的证明确保应用程序的执行,向验证实体传输证明,保证远程不可信计算平台上的代码未被篡改的行为。当一项计算任务存在多方协作时,比如数据提供方需要将数据传递给数据计算方,那么就需要检验数据计算方的进程的确是在TEE环境运行的。在这一情况下,数据计算方需要能够提供新鲜的“证明”,来证实己方的确是符合数据提供方预期的运行状态,这一运行状态除了TEE环境以外,也进一步包括对于所运行程序代码相关信息的核验。在数据提供方成功验证数据计算方传递过来的证明之后,数据提供方也验证了数据计算方的身份和计算环境,便可以建立一条安全、可信的信道,用于后续的数据传输会话。
数字证书(Digital Certificate):又被命名为数字标识,是指在互联网通讯中标志通讯各方身份的数字认证,通过该数字认证来识别各方的身份。数字证书的基本架构是公开密钥,即利用一对密钥实施加密和解密,其中密钥包括公钥和私钥,私钥主要用于签名和解密,由用户自定义,只有用户自己知道,公钥用于签名验证和加密,可被多个用户共享。数字证书由数字证书颁发机构(Certificate Authority,CA)签发,CA是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
云计算(Cloud Computing):指互联网技术(Internet Technology,IT)基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(UtilityComputing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
区块链(Blockchain):是指用分布式数据库识别、传播和记载信息的智能化对等网络。区块链技术是基于去中心化的对等网络,用开源程序把密码学原理、时序数据和共识机制相结合,保障分布式数据库中各节点的连贯和持续,使信息能即时验证、可追溯、但难以篡改且无法屏蔽,使得区块链形成隐私性高、高效、安全的共享系统。区块链中的每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台,平台产品服务以及应用服务层。
本申请实施例提供的数据处理方法可以应用于具有较强的数据处理能力的计算机设备中。在一种可能的实施方式中,本申请实施例提供的数据处理方法可以应用于个人计算机、工作站或服务器中,即可以通过个人计算机、工作站或服务器在安全可信的执行环境下进行数据处理,保证数据安全的同时提高数据的处理效率。
图1示出了本申请一个示例性实施例提供的计算机系统的示意图。该计算机系统100包括第一计算机设备101和第二计算机设备102,其中,第一计算机设备101与第二计算机设备102之间通过通信网络进行数据通信。示意性的,通信网络可以是有线网络也可以是无线网络,且该通信网络可以是局域网、城域网以及广域网中的至少一种。
在一些实施例中,第一计算机设备101是数据提供方,第二计算机设备102是数据计算方;在另一些实施例中,第一计算机设备101是数据计算方,第二计算机设备102是数据提供方;在另一些实施例中,数据计算方和数据提供方可以是同一台计算机设备,如第一计算机设备101或第二计算机设备102。数据提供方向数据计算方提供待处理的原始数据,数据计算方在可信执行环境下对原始数据进行处理,将处理后的结果返回给数据计算方。
示意性的,以第一计算机设备101是数据提供方,第二计算机设备102是数据计算方。
第二计算机设备102中运行有可信执行环境,该可信执行环境包括安全区域,第二计算机设备102在安全区域中对数据进行处理。第一计算机设备101将数据进行分片,并对数据分片进行加密,第二计算机设备102通过生成可信证明与第一计算机设备101之间建立可信通道。第一计算机设备101向第二计算机设备102发送请求,第二计算机设备102在接收到请求后将数据机构颁发的证书文件返回至第一计算机设备101,第一计算机设备101对证书文件进行验证,验证成功后,第一计算机设备101将加密后的数据分片发送至第二计算机设备102,第二计算机设备102对数据分片进行解密后,对数据分片对应的算法过程进行划分,得到多个算法子过程,按照多个算法子过程对数据分片进行运算,得到运算后的结果。第二计算机设备102对运算后的结果进行加密,并返回至第一计算设备101。第一计算机设备101对运算结果进行解密,将解密后的运算结果按照协议发送至目标用户。
在一些实施例中,第二计算机设备102中的可信执行环境中运行有可信应用程序,该可信应用程序用于对第一计算机设备101发送的数据进行运算。该可信应用程序可以是用于聚类分析的程序、用于训练机器学习模型的程序等。
在一些实施例中,第一计算机设备101和第二计算机设备102可以是笔记本电脑、台式计算机、平板电脑、个人计算机、服务器、工作站等,本申请实施例对计算机设备的类型不加以限定。
示意性的,当上述计算机设备为服务器时,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可以理解的是,上述计算机系统100包括多个计算机设备,该多个计算机设备可以是数据提供方,即多个数据提供方将数据发送至同一台第二计算机设备中进行数据处理;或,该多个计算机设备可以是数据计算方,即数据提供方将数据发送至多个计算机设备进行数据运算。下述实施例仅以第一计算机设备和第二计算机设备为例进行说明。
本申请提供的数据处理方法,基于可信执行环境下,对于大规模数据在TEE节点进行高效运算,完成如聚类算法、机器学习模型的训练、预测等具有复杂逻辑的算法,借助TEE机制,并结合远程证明、可信通道、数据密封等技术,保证数据在整个算法的运算过程中的安全性。在运算结果正确的同时,不会泄露参与方的原始数据或中间态数据的任何信息,本申请可以应用于云代理计算、数据合规运算、联邦学习等多个参与方参与的场景。
图2示出了本申请一个示例性实施例提供的数据处理方法的流程图,该方法可应用于如图1所示的计算机系统中的第一计算机设备101或第二计算机设备102中或该计算机系统中的其它计算机设备中。该方法包括如下步骤。
步骤201,接收数据提供方发送的加密数据分片,加密数据分片是数据提供方使用加密公钥加密处理后得到的,加密公钥是安全区域向数据提供方提供的。
数据提供方是指为数据处理提供原始数据的一方。示意性的,数据提供方包括政府部门、机构(如医院、学校)、企业、个人(用户)中的至少一种类型。本申请实施例以数据提供方对应的计算机设备为第一计算机设备101来举例说明。
示意性的,数据提供方将需要进行数据处理的原始数据上传至第一计算机设备101。在一些实施例中,第一计算机设备101通过接收文档(如电子表格)获取原始数据,或第一计算机设备101存储有原始数据,或第一计算机设备101从对应的数据库中获取数据,数据库运行于服务器中。本申请实施例对第一计算机设备101获取原始数据的方式不加以限定。
第一计算机设备101对接收到的原始数据进行数据分片处理,数据分片处理是指将数据分成至少两个部分。在分布式存储系统中,数据分片分散存储在多台计算机设备上。数据分片处理的方式包括如下方式。
1)根据划号分段的方式确定数据分片。根据划号分段的方式确定数据分片是指每台计算机设备上存放相同大小的号段区间,比如,把键值(key)在[1,10000]的数据放在第一台设备上,把键值在[10001,20000]的数据放在第二台设备上,依次类推,直到将所有数据划分完毕。
2)根据取模算法确定数据分片。根据取模算法确定数据分片是指假设有N台设备,编号为0至N-1,通过哈希值公式即可确定数据所在的设备编号,从而对数据进行划分,示意性的,哈希值公式可以是Hash(key)%N。
3)根据检索表确定数据分片。根据检索表确定数据分片是指在检索表中存储有数据的键值和计算机设备的映射关系,通过键值查找检索表就可以确定数据分片。
4)根据一致性哈希算法确定数据分片。一致性哈希(Consistent Hashing,CH)算法是指在移除或添加一台计算机设备时,能够尽可能小地改变已存在的服务请求与处理请求的计算机设备之间的映射关系。
本申请实施例以数据处理方法应用于第二计算机设备102为例,即第二计算机设备102为数据计算方对应的计算机设备。该计算机设备102是具有可信执行环境的计算机设备,可信执行环境包括用于运行可信应用的安全区域。该安全区域中生成加密公钥和加密私钥,第二计算机设备102将加密公钥发送至第一计算机设备101中,以便第一计算机设备101调用加密公钥对数据进行加密。
第一计算设备101在接收到加密公钥后,对数据分片进行加密处理,得到加密数据分片。第一计算机设备101对数据分片进行加密时可以使用对称加密算法或非对称加密算法,本申请实施例以第一计算机设备101使用对称加密算法为例进行说明。对称加密算法是指加密和解密使用相同密钥的加密算法,如高级加密标准算法(Advanced EncryptionStandard,AES)。
加密处理是第一计算机设备101调用加密公钥进行加密的过程,加密公钥和加密私钥组合成相关联的密钥对,加密公钥向外界公开,加密私钥使用者自己保留。本申请实施例中加密公钥用于对数据分片进行加密,加密私钥用于对经过加密公钥加密后的数据分片进行解密。
步骤202,对加密数据分片进行解密,得到加密数据分片对应的原始数据分片。
第一计算机设备101将加密数据分片发送至第二计算机设备102中,由于安全区域中对应生成有加密私钥,该加密私钥与加密公钥相关联,则安全区域调用加密私钥对数据分片进行解密,得到原始数据对应的数据分片(即原始数据分片)。
步骤203,在安全区域中对原始数据分片进行数据密封处理,得到密封后的数据分片,密封后的数据分片存储于安全区域外的存储空间中。
数据密封处理(Data Sealing)是指可信执行环境支持的一种密钥映射机制,即在安全区域中单独生成一种密封密钥对,该密封密钥对区别于加密公钥和加密私钥这一密钥对,该密封密钥对用于对位于安全区域中的数据分片进行密封(加密)或解封(解密),且经过加密处理后的数据片段可存储于安全区域之外的存储空间中,如存储空间为本地磁盘。可信执行环境包括一个或多个安全区域,每个安全区域对应有各自的密钥映射机制,即安全区域A对生成的密封密钥对a和安全区域B生成的密封密钥对b不同,密封密钥对a中的密封公钥对数据分片E加密后,需要用密封密钥对a中的密封私钥对数据分片E解密,密封密钥对b中的密封私钥无法对数据分片E进行解密。
步骤204,响应于计算机设备处于目标运算过程中,从存储空间中提取目标运算过程所需的目标数据分片,并对目标数据分片进行运算,目标数据分片是密封后的数据分片的子集。
根据步骤201至步骤203,第一计算机设备101会向第二计算机设备102发送较多的数据分片,在存储空间中存储有较多的密封后的数据分片,第二计算机设备102对每个密封后的数据分片进行对应的运算处理。示意性的,目标运算为矩阵C和矩阵D相乘,第二计算机设备102从存储空间中提取与矩阵C和矩阵D相关的数据分片,这些数据分片即为目标数据分片。示意性的,第二计算机设备102将目标数据分片提取至安全区域中进行目标运算,以保证目标数据分片不被泄露。
综上所述,本实施例提供的方法,通过对接收到的数据分片进行密封处理,使得密封后的数据分片可以存储于安全区域之外的存储空间,在计算机设备需要对目标数据分片进行计算时,只需将目标数据分片从存储空间提取出来即可,使得对数据分片的运算不依赖于有限的内存空间,从而在保证数据不被泄露的前提下,提高了数据处理的运算效率。
图3示出了本申请另一个示例性实施例提供的数据处理方法的流程图。该方法可应用于如图1所示的计算机系统中的第一计算机设备101或第二计算机设备102中或该计算机系统中的其它计算机设备中。该方法包括如下步骤。
步骤301,接收数据提供方发送的加密数据分片,加密数据分片是数据提供方使用加密公钥加密处理后得到的,加密公钥是安全区域向数据提供方提供的。
数据提供方是指为数据处理提供原始数据的一方。示意性的,数据提供方包括政府部门、机构(如医院、学校)、企业、个人(用户)中的至少一种类型。本申请实施例以数据提供方对应的计算机设备为第一计算机设备101来举例说明。
在第一计算机设备101接收到原始数据后,对接收到的原始数据进行数据分片处理,数据分片处理是指将数据分成至少两个部分。每部分对应有一个或多个数据分片文件,即第一计算机设备101接收到的原始数据以数据分片文件的形式进行划分。
本申请实施例以数据处理方法应用于第二计算机设备102为例,即第二计算机设备102为数据计算方对应的计算机设备。该计算机设备102是具有可信执行环境的计算机设备,可信执行环境包括用于运行可信应用的安全区域。该安全区域中生成加密公钥和加密私钥,第二计算机设备102将加密公钥发送至第一计算机设备101中,以便第一计算机设备101调用加密公钥对数据进行加密。
本申请实施例以第一计算机设备101使用对称加密算法为例进行说明,如该对称加密算法为AES-GCM算法(Advanced Encryption Standard-Galois Counter Mode),即基于高级加密标准的对称加密算法,该对称加密算法采用计数器模式(Counter,CTR),并携带有伽罗华消息认证码(GMAC,Galois Message Authentication Code mode)。GCM模式即是融合了GMAC和CTR两种模式下的认证加密模式。伽罗华消息认证码是利用伽罗华域(GaloisField,GF,又被命名为有限域)乘法运算来计算消息的MAC值(Message AuthenticationCode, 消息认证码)。消息认证码是一种用来确认消息完整性并进行认证的技术,通过输入消息与共享密钥,可以生成一段固定长度的数据,该固定长度的数据为MAC值。收发双方需要提前共享一个密钥,发送者使用密钥生成消息的MAC值,并将MAC值与消息一起发送,接收者通过共享密钥计算收到消息的MAC值,并将该MAC值与随消息一起发送来的MAC值进行比较,从而判断消息是否被篡改过(即消息的完整性)。对于篡改者,由于没有共享密钥,也无法计算出篡改后的消息对应的MAC值。
第一计算机设备通过随机选取固定长度的分片加密密钥key1,通过调用分片加密密钥key1对数据分片进行加密,在第一计算设备101在接收到加密公钥后,调用加密公钥对分片加密密钥key1进行加密,得到最终第一计算机设备101需要发送的加密数据分片。
步骤302,对加密数据分片进行解密,得到加密数据分片对应的原始数据分片。
加密数据分片对应有分片信息,分片信息包括分片加密密钥,分片信息通过加密公钥进行加密。步骤302可替换为步骤3021和步骤3022。
步骤3021,调用与加密公钥对应的加密私钥对分片信息进行解密,得到分片加密密钥。
在第一计算机设备对原始数据进行分片处理后,对数据分片进行加密。第一计算机设备101随机选取固定长度(如16字节)的分片加密密钥(key1),并使用分片加密密钥对数据分片进行加密,该加密过程使用的是对称加密算法。示意性的,第一计算机设备使用同一分片加密密钥加密所有的数据分片,或针对不同的数据分片使用不同的分片加密密钥进行加密,本申请实施例以使用同一分片加密密钥加密所有的数据分片为例进行说明。
在第一计算机设备101执行上述加密过程时,第二计算机设备102需要向第一计算机设备101证明其具备可信执行环境,证明方式是第二计算机设备102生成认证信息、第一密钥对和第二密钥对,第一密钥对包括签名公钥和签名私钥,第二密钥对包括加密公钥和加密私钥。第二计算机设备102将加密公钥和签名公钥随认证信息发送至第一计算机设备101处,其中,第二计算机设备102通过与签名公钥对应的签名私钥对认证信息进行签名。第一计算机设备101使用签名公钥验证签名,使用加密公钥对分片加密密钥和分片信息进行加密。
在第二计算机设备102接收到第一计算机设备101发送的加密数据分片后,安全区域调用加密私钥对分片信息进行解密,从而得到分片信息中携带的分片加密密钥。
步骤3022,调用分片加密密钥对加密数据分片进行解密,得到加密数据分片对应的原始数据分片。
根据对称加密算法,安全区域调用分片加密密钥对加密数据分片进行解密,得到原始数据分片。
步骤303,在安全区域中对原始数据分片进行数据密封处理,得到密封后的数据分片,密封后的数据分片存储于安全区域外的存储空间中。
数据密封处理是指可信执行环境支持的一种密钥映射机制,即在安全区域中单独生成一种密封密钥对,该密封密钥对区别于加密公钥和加密私钥这一密钥对,该密封密钥对用于对位于安全区域中的数据分片进行密封(加密)或解封(解密),且经过加密处理后的数据片段可存储于安全区域之外的存储空间中,如存储空间为本地磁盘。可信执行环境包括一个或多个安全区域,每个安全区域对应有各自的密钥映射机制,即安全区域A对生成的密封密钥对a和安全区域B生成的密封密钥对b不同,密封密钥对a中的密封公钥对数据分片E加密后,需要用密封密钥对a中的密封私钥对数据分片E解密,密封密钥对b中的密封私钥无法对数据分片E进行解密。如图5所示,示意性的,软件保护扩展安全区域51是英特尔软件保护扩展安全区域,即Intel SGX。软件保护扩展安全区域51生成第一密钥对和第二密钥对后,通过数据密封处理对签名私钥SK1(53)和加密私钥SK2(54)进行密封,即通过数据密封密钥对签名私钥SK1(53)和加密私钥SK2(54)进行加密。
如图6所示,安全区域61为软件保护扩展安全区域,在安全区域中将算法划分为多个算法子过程,以算法子过程1为例,在算法子过程1产生算法结果1后,对算法结果1进行数据密封处理,将密封后的算法结果1存储在文件系统62中,在需要该算法结果1时,将算法结果1从文件系统62中读取至安全区域61中继续进行运算。
步骤304,响应于计算机设备处于目标运算过程中,将目标数据分片从存储空间读取至安全区域内。
示意性的,目标运算为特征值计算,第二计算机设备102从存储空间中提取与特征值相关的数据分片,这些数据分片即为目标数据分片。示意性的,第二计算机设备102将目标数据分片通过数据解封接口读取至安全区域中进行特征值计算,以保证目标数据分片不被泄露。
步骤305,在安全区域内,对目标数据分片进行解封处理,得到解封后的目标数据分片。
解封处理又被命名为数据解封处理,与数据密封处理是相对的过程,也属于可信执行环境支持的一种密钥映射机制。通过数据密封密钥对目标数据分片进行解密处理,步骤305可替换为步骤3051和步骤3052。
步骤3051,获取数据密封密钥,数据密封密钥是在安全区域中生成的。
步骤3052,调用数据密封密钥对目标数据分片进行解密,得到解封后的目标数据分片,目标数据分片是经过数据密封密钥加密后存储在存储空间中的数据分片。
获取在安全区域中生成的数据密封密钥(Sealing Key)。由于数据密封处理和数据解封处理是通过对称加密算法实现的,数据密封处理和数据解封处理均可以通过数据密封密钥来完成。
步骤306,对解封后的目标数据分片进行运算,得到解封后的目标数据分片对应的目标运算结果,目标运算结果存储于存储空间中。
在安全区域内对解封后的目标数据分片进行运算,得到目标运算结果。示意性的,再次调用数据密封密钥对目标运算结果进行密封处理,将加密后的目标运算结果存储在存储空间中。即第二计算机设备102需要对数据分片进行运算时,从存储空间中将目标数据分片读取至安全区域中,在安全区域中计算出运算结果后,若该运算结果不需要参与下一阶段的运算,则再次通过数据密封处理将运算结果存储在安全区域之外的存储空间中。
步骤307,响应于计算机设备处于目标运算过程中且产生中间态分片文件,将中间态分片文件缓存在缓存内存区域,中间态分片文件包括运算过程中产生的中间态数据。
中间态分片文件是指数据处理的过程中产生的中间运算结果对应的数据文件。如,计算机设备执行算法A,该算法A包括三个步骤,其中第一个步骤、第二个步骤产生的运算结果属于中间态分片文件中的数据;又如,计算机设备执行算法A后执行算法B,且算法A的运算结果是算法B的输入,则算法A执行后产生的运算结果也属于中间态分片文件中的数据。
可以理解的是,计算机设备执行的算法越多,过程越复杂,产生的中间态分片文件越多。因此计算机设备可以在安全区域中预留出缓存内存区域,以方便存储中间态分片文件。在一些实施例中,若存在大量的中间态分片文件,则占用大量的缓存内存区域,因此还可通过如下两种方式中的至少一种对中间态分片文件进行存储。
1、响应于计算机设备产生第一中间态分片文件和第二中间态分片文件,且第一中间态分片文件和第二中间态分片文件的使用频率低于次数阈值,将第一中间态分片文件和第二中间态分片命名为同一文件名称,并存储在缓存内存区域。
中间态分片文件过多时,且中间态分片文件不会被多个运算过程(或运算子过程)进行重复调用,则将不同的中间态分片文件或不同阶段产生的中间态分片文件进行数据密封时,可以复用同一个文件名称,以达到释放安全区域的效果。示意性的,使用频率是第一中间态分片文件和第二中间态分片文件对应的总使用次数,或使用频率是第一中间态分片文件的使用次数,即第一中间态分片文件的使用频率低于次数阈值即满足条件,或使用频率是第二中间态分片文件的使用次数,即第二中间态分片文件的使用频率低于次数阈值即满足条件。
2、响应于计算机设备产生第一中间态分片文件和第二中间态分片文件,且第一中间态分片文件和第二中间态分片文件的使用频率低于次数阈值,将第一中间态分片文件和第二中间态分片文件存储在同一存储路径下。
同理,可以通过将中间态分片文件存储至同一存储路径下来节省安全区域的内存空间。
步骤308,从缓存内存区域中调用中间态分片文件,对中间态分片文件进行运算。
在一些实施例中,步骤307、步骤308与步骤306同步执行。
在一些实施例中,中间态分片文件也可通过数据密封密钥进行加密处理后,将中间态分片文件存储在安全区域之外的存储空间中,在需要中间态分片文件参与运算时,将中间态分片文件从存储空间读取至安全区域中,经过解封处理后进行运算。
步骤309,获取分片加密密钥,分片加密密钥是数据提供方随机生成的密钥。
响应于第一计算机设备将加密数据分片和分片信息发送至第二计算机设备,由于第一计算机设备是通过加密公钥对数据分片和分片信息进行加密的,则第二计算机设备调用加密私钥对分片信息进行解密,从而得到分片加密密钥。
步骤310,响应于计算机设备得到数据处理结果,调用分片加密密钥对数据处理结果进行加密,得到加密后的数据处理结果。
通过对称加密算法对数据处理结果(最终运算结果)进行加密处理,即利用分片加密密钥对数据处理结果进行加密。
步骤311,将加密后的数据处理结果发送至数据提供方。
由于采用对称加密算法,使得第一计算机设备在接收到数据处理结果后,利用分片加密密钥可以对第二计算机设备发送的数据处理结果进行解密。
综上所述,本实施例提供的方法,通过对接收到的数据分片进行密封处理,使得密封后的数据分片可以存储于安全区域之外的存储空间,在计算机设备需要对目标数据分片进行计算时,只需将目标数据分片从存储空间提取出来即可,使得对数据分片的运算不依赖于有限的内存空间,从而在保证数据不被泄露的前提下,提高了数据处理的运算效率。
本实施例提供的方法,还通过将数据分片从存储空间读取至安全区域内,并通过数据密封密钥进行解密,基于可信执行环境下保证数据处理过程的安全性,同时将数据分片通密封处理存储在安全区域之外的存储空间中,释放了内存空间,提高了数据处理的运算效率。
本实施例提供的方法,还通过为中间态分片文件预留缓存内存空间,使得计算机设备对中间态分片文件的调用更加方便,且不影响安全区域中数据的正常运算,提高了数据处理的运算效率。
本实施例提供的方法,还通过将使用频率低于次数阈值的中间态分片文件命名为同一文件名称,或存储在同一存储路径下,将不常用的中间态分片文件进行归类,使得内存空间得到释放,从而提高了数据处理的运算效率。
本实施例提供的方法,还通过使用分片加密密钥对数据处理结果进行加密,使得数据计算方提供的数据处理结果不易于泄露,且在数据提供方接收到数据时,同样可以使用分片加密密钥进行解密得到最终数据处理结果。
本申请实施例提供的方法,还通过使用加密公钥对分片加密密钥进行加密,通过“加密公钥+分片加密密钥”双保险的方式,保证了数据传输过程中的安全性,同时完成了对数据计算方对应的执行环境进行检验,提高了数据处理的运算效率。
图4示出了本申请另一个示例性实施例提供的数据处理方法的流程图。以客户端(Client)对应上述实施例中的第一计算机设备101,以服务端(Server)对应上述实施例中的第二计算机设备102为例,该方法包括如下步骤。
步骤S1,客户端获取原始数据。
数据提供方和数据计算方可以在同一台计算机设备中实现,示意性的,以客户端为数据提供方,以服务端为数据计算方。原始数据是指待数据计算方进行数据处理的数据。在一些实施例中,该原始数据是用户(数据使用者)自行上传的数据,或,该原始数据是从其它计算机设备中接收到的数据,或,该原始数据是从数据文件中导出的数据。本申请实施例对原始数据的获取方式不加以限定。
在一些实施例中,数据处理方法还包括步骤S21,即数据预处理。该数据预处理用于“保护”待处理的原始数据,使得数据计算方或恶意入侵的其它计算机设备不易于识别出原始数据,起到“混淆视听”的作用。数据预处理的方式包括但不限于如下方式:噪音添加、哈希变换、转置变换等。
步骤S2,客户端对原始数据进行分片加密处理。
客户端对原始数据进行数据分片处理,即将原始数据划分成至少两份数据分片文件。示意性的,每个数据分片(即数据分片文件)的尺寸大小是相同的。在一些实施例中,在数据分到最后时,最后一部分数据分片的尺寸与其他数据分片的尺寸是不同的。
分片尺寸的选取需要结合数据类型、后续算法的执行过程、安全区域的内存上限等因素来确定。示意性的,分片尺寸为15MB,对整体数据根据选定的分片尺寸(BatchSize),逐行或者逐列地对数据进行切分,得到一系列数据分片文件。
在客户端完成数据分片后,还需要对数据分片进行加密处理。客户端随机选取固定长度(如16字节)的分片加密密钥(key1),并使用分片加密密钥通过对称加密算法对所有数据分片进行加密。示意性的,对称加密算法为AES-GCM算法。
步骤S3,客户端与服务端通过远程证明建立可信通道。
在客户端进行数据分片的同时,服务端生成可信证明,以证明可信执行环境的环境信息和代码信息是安全的。
客户端和服务端通过远程证明的方式建立可信通道,该可信通道用于客户端向服务端传输数据分片,服务端向客户端传输运算后的结果。通过步骤S4至步骤S6对建立可信通道的过程进行说明。
步骤S4,服务端生成认证信息。
首选,计算机设备在可信执行环境中运行安全区域,然后在安全区域中生成可信证明,可信证明用于向数据提供方证明计算机设备具有可信执行环境。即在安全区域中生成认证信息,认证信息用于表征安全区域对应的可信执行环境信息。
服务端运行有安全区域。以英特尔的软件保护扩展机制为例(Intel SGX)进行说明。服务端生成基于SGX指令集的认证信息(Quote),该认证信息用于向客户端提供可信执行环境的验证信息。示意性的,远程证明可通过SGX IAS(Software Guard ExtensionsIntel Attestation Server,软件保护扩展的服务端证明)实现,使得服务端生成的认证信息与SGX IAS具有一样的字段信息。该字段信息可以是MRENCLAVE字段、MESIGNER字段。MRENCLAVE字段表示安全区域标识,即生成一个该安全区域独有的密钥,同一台计算机设备的同一个安全区域才能对数据进行解密操作。MESIGNER字段表示签名者标识,即基于安全区域的签名者(计算机设备的拥有者)生成一个密钥,同一台计算机设备上的不同安全区域均能对数据进行解密操作,且安全区域之间可以互相对彼此区域内部的数据进行解密操作,方便迭代新版本且使不同的安全区域之间共享数据。
步骤S5,服务端生成密钥对。
在安全区域中生成第一密钥对和第二密钥对,第一密钥对包括签名公钥和签名私钥,第二密钥对包括加密私钥和加密公钥。在安全区域中生成数据密封密钥,数据密封密钥用于对需要存储在安全区域之外的数据进行数据密封处理。如将数据分片1进行密封处理后,将密封后的数据分片1存储至安全区域之外的存储空间中。
第一密钥对用于对验证证书进行签名和验证签名,第二密钥对用于对数据进行服务端和客户端之间传输的消息或数据进行加密和解密。示意性的,通过椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)进行签名,通过非对称加密算法RSA算法(RSA algorithm)对数据或消息进行加密。将签名公钥作为验证证书的公钥,将认证信息与加密公钥作为验证证书的扩展字段,根据签名公钥和扩展字段生成证书请求文件(Certificate Signing Request,CSR),并将该证书请求文件保存在执行目录下。此外,安全区域还生成数据密封密钥(Sealing Key),利用数据密封密钥对签名私钥SK1和加密私钥SK2加密后,存储在执行目录下。
数据密封密钥是TEE支持的一种密钥映射机制,以Intel SGX为例,在对数据进行密封时,由CPU指令对既定的入参进行计算,生成相应的数据密封密钥。并在Enclave中使用数据密封密钥对数据进行加密,加密后的数据可以存储于Enclave的外部,如存储于本地磁盘中。
基于TEE内执行的CPU指令(EGETKEY)将当前Enclave的MRENCLAVE字段作为生成数据密封密钥的参数指令之一,根据参数指令进行运算,因此,每个Enclave对应有唯一数据密封密钥,使得Enclave对数据的加密(密封)和解密(解封)的过程只能在同一Enclave内进行。
步骤S6,服务端生成签发证书。
安全区域根据证书请求文件生成验证证书,该验证证书是经过数据提供方(即客户端)信任的数字证书颁发机构(Certificate Authority,CA)对证书请求文件进行签名后生成的。如图5所示,软件保护扩展安全区域51生成证书请求文件52,并将证书请求文件52发送至数字证书颁发机构55,经过数字证书颁发机构55签名后,生成验证证书56。示意性的,该验证证书56的格式为X.509。
可以理解的是,上述步骤S1至步骤S3与步骤S4至S7可以同步执行。
步骤S7,服务端与客户端之间进行远程证明。
示意性的,本申请实施例以服务端为数据计算方,由于安全区域存在于服务端的可信执行环境中,因此,在进行远程证明的过程中,需要对服务端进行单向远程证明的认证。
客户端向服务端发起验证请求,服务端接收数据提供方发送的验证请求,该验证请求中携带有用于验证可信执行环境的验证标识。示意性的,该验证标识为字符串nounce,该字符串nounce的长度为固定长度(128bit)。该字符串nounce用于提示服务端进入远程证明过程,即服务端在接收到含有字符串nounce的验证请求时,进入远程证明过程。
服务端通过签名私钥对验证标识进行签名,得到签名后的验证标识,签名私钥是在安全区域中生成的。示意性的,服务端在接收到验证标识(字符串nounce)后,使用签名私钥SK1对字符串nounce进行签名,将验证证书与签名后的字符串nounce一起发送至客户端。
服务端将签名后的验证标识和验证证书发送至数据提供方,验证证书是根据数据提供方信任的数字证书颁发机构签名后的证书请求文件生成的。
响应于签名后的验证标识和验证证书发送至数据提供方,接收数据提供方发送的授权信息,授权信息用于表征计算机设备具有对数据分片进行数据处理的权限,其中,通过验证是指验证证书的证书格式符合设定格式,验证证书对应的扩展字段合法,且验证标识的签名合法。
客户端对接收到验证证书的合法性进行检验,检验过程为:首先检验验证证书的格式是否为X.509格式,并验证扩展字段中的Quote是否合法,即验证Quote中的安全区域标识和签名者标识是否与双方确认的基线值是否一致,若安全区域标识和签名者标识与基线值一致,则Quote是合法的。如果上述验证通过,则客户端从验证证书中提取签名公钥,利用签名公钥对Quote进行签名验证,在签名验证通过后向服务端发送授权信息,该授权信息用于表示服务端具有进行数据处理的权限。
步骤S8,客户端将数据分片传递至服务端。
客户端根据授权信息在服务端之间建立可信通道,该可信通道用于客户端向服务端传输数据和接收服务端的计算结果。
数据分片对应有分片信息(Metadata)。分片信息包括数据分片的尺寸大小,该尺寸大小包括第一个分片文件的大小、最后一个分片文件的大小、后续算法所需的其他数据信息以及分片加密密钥key1。客户端从验证证书的扩展字段中,提取加密公钥,并调用加密公钥对分片加密密钥key1和分片信息进行加密。客户端将加密后的数据分片和分片信息通过可信通道发送至服务端。示意性的,数据传递至服务端的协议可以是GRPC协议,也可以是其他网络通信协议。可信通道的建立是基于应用层数据加密,此外,还可以对网络层进行加密,或对传输层进行加密,或对网络层和传输层均进行加密,或对网络层和传输层均不进行加密。GRPC协议是一个高性能、通用的开源RPC框架,主要面向移动应用开发并基于HTTP/2协议标准而设计。
步骤S9,服务端从数据分片中提取信息。
服务端从接收到的数据分片和分片信息中中提取信息,安全区域调用加密私钥SK2对数据分片对应的分片信息进行解密,得到分片加密密钥key1,安全区域调用分片加密密钥key1对数据分片进行解密。在对数据分片进行相应运算后,调用数据密封密钥对运算结果进行加密,存储在安全区域外的存储空间中,如本地磁盘(文件系统)中。上述实施例中通过数据密封密钥进行加密、解密时使用的算法为AES-GCM算法,有利于提高加解密操作执行的高效性。通过将运算结果转移至内存空间之外,将计算过程与内存空间的强依赖关系转变为弱依赖关系,提高了运算效率。
步骤S91,服务端对算法过程进行划分,得到算法子过程1。
步骤S92,服务端对算法过程进行划分,得到算法子过程2。
步骤S93,服务端对算法过程进行划分,得到算法子过程n。
对于给定的算法或运算方式,根据算法或运算方式的执行过程,将算法或运算方式划分为多个算法子过程,比如,将某一聚类算法划分为线性处理、相似度矩阵计算、特征值计算、矩阵乘积、降维操作、层次聚类等多个算法子过程。服务端通过步骤S91至步骤S93将算法过程划分为n个算法子过程(n为正整数)。如图6所示,安全区域61为软件保护扩展安全区域,在安全区域中将算法划分为多个算法子过程,以算法子过程1为例,在算法子过程1产生算法结果1后,对算法结果1进行数据密封处理,将密封后的算法结果1存储在文件系统62中,在需要该算法结果1时,将算法结果1从文件系统62中读取至安全区域61中继续进行运算。
在每一个算法子过程Ti执行前,Enclave将加密数据分片Enc(Batchi)通过数据解封接口读取至Enclave内,通过数据密封密钥解密加密数据分片Enc(Batchi),得到解密后Batchi。对于算法子过程Ti,使用分块算法Ai,对每一个加密数据分片进行算法操作Ai(Batchi),得到新的算法结果Batchi+1=Ai(Batchi)后,对新的算法结果Batchi+1通过数据密封密钥加密,得到另一加密数据分片Enc(Batchi+1),并再次将该数据加密分片Enc(Batchi+1)保存至本地文件系统。依次类推,服务端根据上述过程完成所有的算法子过程,并得到算法的最终结果。
可以理解的是,在存储数据时,若需要将数据存储在安全区域之外的存储空间时,需要对数据进行密封处理,即通过数据密封密钥对数据进行加密处理;在客户端对原始数据进行加密时,通过自身生成的分片加密密钥对数据进行加密,然后再通过加密公钥对分片加密密钥进行加密;服务端在接收到加密的数据时,需要先调用加密私钥对数据进行解密,得到分片加密密钥,然后利用分片加密密钥对数据进行解密,得到原始数据。
上述算法子过程包括一个或者多个分片文件共同参与运算,生成一个或多个分片文件的过程,如矩阵乘法或者相似性矩阵,需要所有分片文件两两参与计算,分别生成O(p×q)或O(q2)量级的分片文件输出,其中p、q为运算过程中输入的分片文件的尺寸。
对于上述运算过程,可以进一步优化加速,首先,在安全区域内部利用多线程加速计算过程;此外,如果算法子过程中需要反复用到的某些中间态数据或常量值,可以预留合理的内存区域(如10MB至20MB)来缓存这类数据,进一步加快算法子过程的执行速度。
此外,由于每个算法子过程之间都依赖于对数据进行密封、解封操作,该操作会产生大量的中间态分片文件,安全区域可能需要反复调用中间态分片文件进行后续运算,可信执行环境需要在大量的中间态分片文件中索引目标中间态分片文件,当中间态分片文件过多时,索引目标中间态分片文件也需要占据优先的内存空间。因此当某一中间态分片文件的内容不会被多个算法子过程重复调用时(占绝大多数情况),在不同阶段的分片文件进行数据密封时,可以复用同一个文件路径与文件名称,从而节省内存空间。避免因中间态分片文件的文件名称调用频率过高而造成页交换问题,从而在数据处理的过程中,保证稳定而高效的运算效率。
步骤S10,服务端对运算结果进行加密后,向客户端发送加密结果。
服务端使用分片加密密钥key1对算法的最终结果进行加密,并将加密后的最终结果发送至客户端。
步骤S11,客户端对加密结果进行解密,得到解密结果。
客户端在接收到加密后的最终结果后,使用分片加密密钥key1对加密后的最终结果进行解密,得到算法的最终结果。根据数据处理结果的使用协议,将算法的最终结果发送至数据使用者处。
需要说明的是,运行于安全区域的代码逻辑可结合TEE SDK,比如各类SGX SDK实现,也可通过库操作系统(Library OS,LibOS)实现,从而避免对复杂逻辑,如加解密逻辑进行TEE SDK下的代码重构,库操作系统的实现方式包括但不限于Graphene-SGX、Scone等,这样可以大大降低服务端算法工作负载逻辑的开发门槛,便于进行整体方案的调试和优化,提升方案的易用性。
库操作系统本质是由某一种高级编程语言实现的一系列库(Libraries),这些Libraries都是被模块化了的软件栈(stack),用以实现原操作系统内核中某些计算机资源的管理功能。库操作系统工作在应用层,通过对计算机资源的管理与调度功能,让应用程序直接访问涉及的计算机资源,为应用程序提供所需的运行环境。
综上所述,本申请实施例提供的数据处理方法产生如下有益效果。
(1)高安全性。基于硬件的安全性保障,通过引入可信执行环境的安全机制,整个数据运算完全在可信执行环境中执行;同时采用远程证明、可信通道、数据密封处理等技术,实现对数据传输过程和数据运算过程的全流程保密,有效保障数据隐私。
(2)支持海量数据计算。采用数据分片与算法分片的方法,使得计算机设备能够在安全区域中执行复杂的数据运算,即使安全区域的内存空间的容量受限,本申请实施例提供的数据处理方法也在运算过程中通过主动对数据进行分片划分来避免产生被动页交换的问题,从而保证了运算过程的高效。
(3)轻量级的算法设计。采用对称加密算法完成数据运算过程中所需的加解密操作,在保证安全性的同时,保证运算过程的效率,同时可以有效防范量子计算攻击。
(4)延展与易用性。本申请涉及的数据处理方法不仅适用于单节点对应的可信执行环境中的数据运算,也可以应用于多个参与方对应的分布式可信执行环境中,同时在可信执行环境中的运算过程可结合库操作系统(LibOS)实现,代码开发简单,具有很强的易用性。
在一些实施例中,上述数据提供方对应的第一计算机设备或数据计算方对应的第二计算机设备可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。其中,节点包括硬件层、中间层、操作系统层和应用层。在多个参与方进行数据融合的情况下,通过本申请实施例提供的数据处理方法,保证数据传输过程中对于数据隐私的保护。
图7是本申请一个示例性实施例提供的分布式系统300应用于区块链系统的结构示意图,由多个节点400(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端500形成,节点之间形成组成的点对点(P2P)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol )协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图7示出的区块链系统中各节点的功能,涉及的功能包括如下功能。
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能。
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括如下业务。
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易,即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;钱包还支持查询电子货币地址中剩余的电子货币。比如,将要增加的数据提供方提供的数据(经过分片加密密钥加密处理)发送至区块链系统中,区块链系统中其他节点对该起交易(即在区块链中增加的数据提供方提供的数据)进行验证,其他节点验证成功后,该起交易(数据提供方提供的数据)才能被存储至区块链中。
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。比如,数据提供方对应的第一计算机设备和数据计算方对应的第二计算机设备可以共享数据对应的运算结果。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易;例如当第二计算机设备向第一计算机设备发送的认证信息满足智能合约中规定的条件后,第二计算机设备才能接收到第一计算机设备发送的数据;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
图8是本申请一个示例性实施例提供的区块结构(Block Structure)的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可以结合参考上述方法实施例中相应的记载,本文不再赘述。
图9示出了本申请的一个示例性实施例提供的数据处理装置的结构示意图。该装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分,该装置包括如下部分:
接收模块910,用于接收数据提供方发送的加密数据分片,加密数据分片是数据提供方使用加密公钥加密处理后得到的,加密公钥是安全区域向数据提供方提供的;
解密模块920,用于对加密数据分片进行解密,得到加密数据分片对应的原始数据分片;
密封模块930,用于在安全区域中对原始数据分片进行数据密封处理,得到密封后的数据分片,密封后的数据分片存储于安全区域外的存储空间中;
提取模块940,用于响应于计算机设备处于目标运算过程中,从存储空间中提取目标运算过程所需的目标数据分片,并对目标数据分片进行运算,目标数据分片是密封后的数据分片的子集。
在一个可选的实施例中,该装置包括解封模块950和数据处理模块960;
提取模块940,用于响应于计算机设备处于目标运算过程中,将目标数据分片从存储空间读取至安全区域内;
解封模块950,用于在安全区域内,对目标数据分片进行解封处理,得到解封后的目标数据分片;
数据处理模块960,用于对解封后的目标数据分片进行运算,得到解封后的目标数据分片对应的目标运算结果,目标运算结果存储于存储空间中。
在一个可选的实施例中,该装置包括获取模块970;
获取模块970,用于获取数据密封密钥,数据密封密钥是在安全区域中生成的;
解封模块950,用于调用数据密封密钥对目标数据分片进行解密,得到解封后的目标数据分片,目标数据分片是经过数据密封密钥加密后存储在存储空间中的数据分片。
在一个可选的实施例中,该安全区域包括缓存内存区域;
提取模块940,用于响应于计算机设备处于目标运算过程中且产生中间态分片文件,将中间态分片文件缓存在缓存内存区域,中间态分片文件包括运算过程中产生的中间态数据;
数据处理模块960,用于从缓存内存区域中调用中间态分片文件,对中间态分片文件进行运算。
在一个可选的实施例中,提取模块940,用于响应于计算机设备产生第一中间态分片文件和第二中间态分片文件,且第一中间态分片文件和第二中间态分片文件的使用频率低于次数阈值,将第一中间态分片文件和第二中间态分片命名为同一文件名称,并存储在缓存内存区域;或,响应于计算机设备产生第一中间态分片文件和第二中间态分片文件,且第一中间态分片文件和第二中间态分片文件的使用频率低于次数阈值,将第一中间态分片文件和第二中间态分片文件存储在同一存储路径下。
在一个可选的实施例中,该装置包括发送模块980和加密模块990;
获取模块970,用于获取分片加密密钥,分片加密密钥是数据提供方随机生成的密钥;
加密模块990,用于响应于计算机设备得到数据处理结果,调用分片加密密钥对数据处理结果进行加密,得到加密后的数据处理结果;
发送模块980,用于将加密后的数据处理结果发送至数据提供方。
在一个可选的实施例中,加密数据分片对应有分片信息,分片信息包括分片加密密钥,分片信息通过加密公钥进行加密;
解密模块920,用于调用与加密公钥对应的加密私钥对分片信息进行解密,得到分片加密密钥;调用分片加密密钥对加密数据分片进行解密,得到加密数据分片对应的原始数据分片。
在一个可选的实施例中,该装置包括签名模块800;
接收模块910,用于接收数据提供方发送的验证请求,验证请求中携带有用于验证可信执行环境的验证标识;
签名模块800,用于通过签名私钥对验证标识进行签名,得到签名后的验证标识,签名私钥是在安全区域中生成的;
发送模块980,用于将签名后的验证标识和验证证书发送至数据提供方,验证证书是根据数据提供方信任的证书颁发机构CA签名后的证书请求文件CSR生成的;
接收模块910,用于响应于验证证书和验证标识通过验证,接收数据提供方发送的授权信息,授权信息用于表征计算机设备具有对加密数据分片进行数据处理的权限;
其中,通过验证是指验证证书的证书格式符合设定格式,验证证书对应的扩展字段合法,且验证标识的签名合法。
在一个可选的实施例中,数据处理模块960,用于运行安全区域;在安全区域中生成可信证明,可信证明用于向数据提供方证明计算机设备具有可信执行环境。
在一个可选的实施例中,数据处理模块960,用于在安全区域中生成第一密钥对和第二密钥对,第一密钥对包括签名公钥和签名私钥,第二密钥对包括加密公钥和加密私钥;在安全区域中生成数据密封密钥,数据密封密钥用于原始数据分片进行数据密封处理;在安全区域中生成认证信息,认证信息用于表征安全区域对应的环境信息。
图10示出了本申请一个示例性实施例提供的计算机设备1000的结构框图。该计算机设备1000可以是如图1所示的第一计算机设备或第二计算机设备。该计算机设备1000可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器。计算机设备1000还可能被称为用户设备、便携式终端等其他名称。
通常,计算机设备1000包括有:处理器1001和存储器1002。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、10核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1001所执行以实现本申请实施例中提供的数据处理方法。
在一些实施例中,计算机设备1000还可选包括有:外围设备接口1003和至少一个外围设备。具体地,外围设备包括:射频电路1004、触摸显示屏1005、摄像头组件1006、音频电路1007、定位组件1008和电源1009中的至少一种。
外围设备接口1003可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等。射频电路1004可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
触摸显示屏1005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。触摸显示屏1005还具有采集在触摸显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。触摸显示屏1005用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,触摸显示屏1005可以为一个,设置计算机设备1000的前面板;在另一些实施例中,触摸显示屏1005可以为至少两个,分别设置在计算机设备1000的不同表面或呈折叠设计;在另一些实施例中,触摸显示屏1005可以是柔性显示屏,设置在计算机设备1000的弯曲表面上或折叠面上。甚至,触摸显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。触摸显示屏1005可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头用于实现视频通话或自拍,后置摄像头用于实现照片或视频的拍摄。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能,主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能。在一些实施例中,摄像头组件1006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1007用于提供用户和计算机设备1000之间的音频接口。音频电路1007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还可以包括耳机插孔。
定位组件1008用于定位计算机设备1000的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1008可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1009用于为计算机设备1000中的各个组件进行供电。电源1009可以是交流电、直流电、一次性电池或可充电电池。当电源1009包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备1000还包括有一个或多个传感器1010。该一个或多个传感器1010包括但不限于:加速度传感器1011、陀螺仪传感器1012、压力传感器1013、指纹传感器1014、光学传感器1015以及接近传感器1016。
加速度传感器1011可以检测以计算机设备1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1011可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1011采集的重力加速度信号,控制触摸显示屏1005以横向视图或纵向视图进行用户界面的显示。加速度传感器1011还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1012可以检测计算机设备1000的机体方向及转动角度,陀螺仪传感器1012可以与加速度传感器1011协同采集用户对计算机设备1000的3D动作。处理器1001根据陀螺仪传感器1012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1013可以设置在计算机设备1000的侧边框和/或触摸显示屏1005的下层。当压力传感器1013设置在计算机设备1000的侧边框时,可以检测用户对计算机设备1000的握持信号,根据该握持信号进行左右手识别或快捷操作。当压力传感器1013设置在触摸显示屏1005的下层时,可以根据用户对触摸显示屏1005的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1014用于采集用户的指纹,以根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1001授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1014可以被设置计算机设备1000的正面、背面或侧面。当计算机设备1000上设置有物理按键或厂商Logo时,指纹传感器1014可以与物理按键或厂商Logo集成在一起。
光学传感器1015用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1015采集的环境光强度,控制触摸显示屏1005的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1005的显示亮度;当环境光强度较低时,调低触摸显示屏1005的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1015采集的环境光强度,动态调整摄像头组件1006的拍摄参数。
接近传感器1016,也称距离传感器,通常设置在计算机设备1000的正面。接近传感器1016用于采集用户与计算机设备1000的正面之间的距离。在一个实施例中,当接近传感器1016检测到用户与计算机设备1000的正面之间的距离逐渐变小时,由处理器1001控制触摸显示屏1005从亮屏状态切换为息屏状态;当接近传感器1016检测到用户与计算机设备1000的正面之间的距离逐渐变大时,由处理器1001控制触摸显示屏1005从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图10中示出的结构并不构成对计算机设备1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请还提供一种计算机设备,该计算机设备包括:处理器和存储器,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的数据处理方法。
本申请还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的数据处理方法。
本申请还提供一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取计算机指令,处理器执行计算机指令,使得计算机设备执行如上述各方法实施例提供的数据处理方法。
作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法应用于具有可信执行环境TEE的计算机设备中,所述可信执行环境包括用于运行可信应用的安全区域Enclave,所述方法包括:
接收数据提供方发送的加密数据分片,所述加密数据分片是所述数据提供方使用加密公钥加密处理后得到的,所述加密公钥是所述安全区域向所述数据提供方提供的;
对所述加密数据分片进行解密,得到所述加密数据分片对应的原始数据分片;
在所述安全区域中对所述原始数据分片进行数据密封处理,得到密封后的数据分片,所述密封后的数据分片存储于所述安全区域外的存储空间中;
响应于所述计算机设备处于目标运算过程中,从所述存储空间中提取所述目标运算过程所需的目标数据分片,并对所述目标数据分片进行运算,所述目标数据分片是所述密封后的数据分片的子集。
2.根据权利要求1所述的方法,其特征在于,所述响应于所述计算机设备处于目标运算过程中,从所述存储空间中提取所述目标运算过程所需的目标数据分片,并对所述目标数据分片进行运算,包括:
响应于所述计算机设备处于所述目标运算过程中,将所述目标数据分片从所述存储空间读取至所述安全区域内;
在所述安全区域内,对所述目标数据分片进行解封处理,得到解封后的目标数据分片;
对所述解封后的目标数据分片进行运算,得到所述解封后的目标数据分片对应的目标运算结果,所述目标运算结果存储于所述存储空间中。
3.根据权利要求2所述的方法,其特征在于,所述对所述目标数据分片进行解封处理,得到解封后的目标数据分片,包括:
获取数据密封密钥,所述数据密封密钥是在所述安全区域中生成的;
调用所述数据密封密钥对所述目标数据分片进行解密,得到所述解封后的目标数据分片,所述目标数据分片是经过所述数据密封密钥加密后存储在所述存储空间中的数据分片。
4.根据权利要求1至3任一所述的方法,其特征在于,所述安全区域包括缓存内存区域;
所述方法还包括:
响应于所述计算机设备处于所述目标运算过程中且产生中间态分片文件,将所述中间态分片文件缓存在所述缓存内存区域,所述中间态分片文件包括运算过程中产生的中间态数据;
从所述缓存内存区域中调用所述中间态分片文件,对所述中间态分片文件进行运算。
5.根据权利要求4所述的方法,其特征在于,所述响应于所述计算机设备处于所述目标运算过程中且产生中间态分片文件,将所述中间态分片文件缓存在所述缓存内存区域,包括:
响应于所述计算机设备产生第一中间态分片文件和第二中间态分片文件,且所述第一中间态分片文件和所述第二中间态分片文件的使用频率低于次数阈值,将所述第一中间态分片文件和所述第二中间态分片命名为同一文件名称,并存储在所述缓存内存区域;
或,
响应于所述计算机设备产生所述第一中间态分片文件和所述第二中间态分片文件,且所述第一中间态分片文件和所述第二中间态分片文件的使用频率低于所述次数阈值,将所述第一中间态分片文件和所述第二中间态分片文件存储在同一存储路径下。
6.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
获取分片加密密钥,所述分片加密密钥是所述数据提供方随机生成的密钥;
响应于所述计算机设备得到数据处理结果,调用所述分片加密密钥对所述数据处理结果进行加密,得到加密后的数据处理结果;
将所述加密后的数据处理结果发送至所述数据提供方。
7.根据权利要求1至3任一所述的方法,其特征在于,所述加密数据分片对应有分片信息,所述分片信息包括分片加密密钥,所述分片信息通过所述加密公钥进行加密;
所述对所述加密数据分片进行解密,得到所述加密数据分片对应的原始数据分片,包括:
调用与所述加密公钥对应的加密私钥对所述分片信息进行解密,得到所述分片加密密钥;
调用所述分片加密密钥对所述加密数据分片进行解密,得到所述加密数据分片对应的原始数据分片。
8.根据权利要求1至3任一所述的方法,其特征在于,所述接收数据提供方发送的加密数据分片之前,包括:
接收所述数据提供方发送的验证请求,所述验证请求中携带有用于验证所述可信执行环境的验证标识;
通过签名私钥对所述验证标识进行签名,得到签名后的验证标识,所述签名私钥是在所述安全区域中生成的;
将所述签名后的验证标识和验证证书发送至所述数据提供方,所述验证证书是根据所述数据提供方信任的证书颁发机构CA签名后的证书请求文件CSR生成的;
响应于所述验证证书和所述验证标识通过验证,接收所述数据提供方发送的授权信息,所述授权信息用于表征所述计算机设备具有对所述加密数据分片进行数据处理的权限;
其中,所述通过验证是指所述验证证书的证书格式符合设定格式,所述验证证书对应的扩展字段合法,且所述验证标识的签名合法。
9.根据权利要求8所述的方法,其特征在于,所述接收所述数据提供方发送的验证请求之前,包括:
运行所述安全区域;
在所述安全区域中生成可信证明,所述可信证明用于向所述数据提供方证明所述计算机设备具有所述可信执行环境。
10.根据权利要求9所述的方法,其特征在于,所述在所述安全区域中生成可信证明,包括:
在所述安全区域中生成第一密钥对和第二密钥对,所述第一密钥对包括签名公钥和所述签名私钥,所述第二密钥对包括所述加密公钥和加密私钥;
在所述安全区域中生成数据密封密钥,所述数据密封密钥用于所述原始数据分片进行所述数据密封处理;
在所述安全区域中生成认证信息,所述认证信息用于表征所述安全区域对应的环境信息。
11.一种数据处理装置,其特征在于,所述装置包括:
接收模块,用于接收数据提供方发送的加密数据分片,所述加密数据分片是所述数据提供方使用加密公钥加密处理后得到的,所述加密公钥是安全区域向所述数据提供方提供的;
解密模块,用于对所述加密数据分片进行解密,得到所述加密数据分片对应的原始数据分片;
密封模块,用于在所述安全区域中对所述原始数据分片进行数据密封处理,得到密封后的数据分片,所述密封后的数据分片存储于所述安全区域外的存储空间中;
提取模块,用于响应于计算机设备处于目标运算过程中,从所述存储空间中提取所述目标运算过程所需的目标数据分片,并对所述目标数据分片进行运算,所述目标数据分片是所述密封后的数据分片的子集。
12.根据权利要求11所述的装置,其特征在于,所述装置包括解封模块和数据处理模块;
所述提取模块,用于响应于所述计算机设备处于所述目标运算过程中,将所述目标数据分片从所述存储空间读取至所述安全区域内;
所述解封模块,用于在所述安全区域内,对所述目标数据分片进行解封处理,得到解封后的目标数据分片;
所述数据处理模块,用于对所述解封后的目标数据分片进行运算,得到所述解封后的目标数据分片对应的目标运算结果,所述目标运算结果存储于所述存储空间中。
13.根据权利要求12所述的装置,其特征在于,该装置包括获取模块;
所述获取模块,用于获取数据密封密钥,所述数据密封密钥是在所述安全区域中生成的;
所述解封模块,用于调用所述数据密封密钥对所述目标数据分片进行解密,得到所述解封后的目标数据分片,所述目标数据分片是经过所述数据密封密钥加密后存储在所述存储空间中的数据分片。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1至10任一项所述的数据处理方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如权利要求1至10任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110316999.0A CN112711774B (zh) | 2021-03-25 | 2021-03-25 | 数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110316999.0A CN112711774B (zh) | 2021-03-25 | 2021-03-25 | 数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112711774A true CN112711774A (zh) | 2021-04-27 |
CN112711774B CN112711774B (zh) | 2023-01-10 |
Family
ID=75550210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110316999.0A Active CN112711774B (zh) | 2021-03-25 | 2021-03-25 | 数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112711774B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948810A (zh) * | 2021-05-12 | 2021-06-11 | 支付宝(杭州)信息技术有限公司 | 一种可信计算程序调用方法、装置、电子设备及存储介质 |
CN112989319A (zh) * | 2021-05-12 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种实现可信计算的方法、装置、电子设备及存储介质 |
CN113221166A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 一种获取区块链数据的方法、装置、电子设备及存储介质 |
CN113407492A (zh) * | 2021-06-18 | 2021-09-17 | 中国人民银行清算总中心 | 文件分片存储、分片文件重组方法及装置、文件保护系统 |
CN113507483A (zh) * | 2021-07-27 | 2021-10-15 | 平安国际智慧城市科技股份有限公司 | 即时通讯方法、装置、服务器及存储介质 |
CN113515726A (zh) * | 2021-06-23 | 2021-10-19 | 北京顶象技术有限公司 | 一种防止企业产品授权文件外泄的方法及装置 |
CN113538140A (zh) * | 2021-07-05 | 2021-10-22 | 杭州宇链科技有限公司 | 一种基于可信执行环境与门限签名的数据交易方法 |
CN113672973A (zh) * | 2021-07-20 | 2021-11-19 | 深圳大学 | 基于可信执行环境的risc-v架构的嵌入式设备的数据库系统 |
CN113691581A (zh) * | 2021-07-08 | 2021-11-23 | 杭州又拍云科技有限公司 | 一种高效的cdn刷新分片的方法 |
CN114253738A (zh) * | 2021-11-02 | 2022-03-29 | 上海交通大学 | 可信执行环境的内存锁定方法 |
CN117272390A (zh) * | 2023-11-17 | 2023-12-22 | 海之景科技集团有限公司 | 信息安全的数据处理方法、装置、设备及存储介质 |
CN117786667A (zh) * | 2023-12-22 | 2024-03-29 | 北京熠智科技有限公司 | 一种用于可控计算的进程权限管理方法、系统及存储介质 |
CN118332055A (zh) * | 2024-06-12 | 2024-07-12 | 杭州易靓好车互联网科技有限公司 | 基于人工智能的保险信息数据保护方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101822A (zh) * | 2018-07-10 | 2018-12-28 | 西安交通大学 | 一种解决多方计算中数据隐私泄露问题的方法 |
CN109800584A (zh) * | 2018-10-24 | 2019-05-24 | 中国科学院信息工程研究所 | 一种基于Intel SGX机制的身份或属性加密计算方法和系统 |
CN110889696A (zh) * | 2019-11-27 | 2020-03-17 | 杭州趣链科技有限公司 | 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质 |
CN111611222A (zh) * | 2020-04-27 | 2020-09-01 | 上海鼎茂信息技术有限公司 | 一种基于分布式存储的数据动态处理方法 |
-
2021
- 2021-03-25 CN CN202110316999.0A patent/CN112711774B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101822A (zh) * | 2018-07-10 | 2018-12-28 | 西安交通大学 | 一种解决多方计算中数据隐私泄露问题的方法 |
CN109800584A (zh) * | 2018-10-24 | 2019-05-24 | 中国科学院信息工程研究所 | 一种基于Intel SGX机制的身份或属性加密计算方法和系统 |
CN110889696A (zh) * | 2019-11-27 | 2020-03-17 | 杭州趣链科技有限公司 | 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质 |
CN111611222A (zh) * | 2020-04-27 | 2020-09-01 | 上海鼎茂信息技术有限公司 | 一种基于分布式存储的数据动态处理方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113221166A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 一种获取区块链数据的方法、装置、电子设备及存储介质 |
CN112989319A (zh) * | 2021-05-12 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种实现可信计算的方法、装置、电子设备及存储介质 |
CN112948810A (zh) * | 2021-05-12 | 2021-06-11 | 支付宝(杭州)信息技术有限公司 | 一种可信计算程序调用方法、装置、电子设备及存储介质 |
CN113407492B (zh) * | 2021-06-18 | 2024-03-26 | 中国人民银行清算总中心 | 文件分片存储、分片文件重组方法及装置、文件保护系统 |
CN113407492A (zh) * | 2021-06-18 | 2021-09-17 | 中国人民银行清算总中心 | 文件分片存储、分片文件重组方法及装置、文件保护系统 |
CN113515726B (zh) * | 2021-06-23 | 2022-03-25 | 北京顶象技术有限公司 | 一种防止企业产品授权文件外泄的方法及装置 |
CN113515726A (zh) * | 2021-06-23 | 2021-10-19 | 北京顶象技术有限公司 | 一种防止企业产品授权文件外泄的方法及装置 |
CN113538140A (zh) * | 2021-07-05 | 2021-10-22 | 杭州宇链科技有限公司 | 一种基于可信执行环境与门限签名的数据交易方法 |
CN113691581A (zh) * | 2021-07-08 | 2021-11-23 | 杭州又拍云科技有限公司 | 一种高效的cdn刷新分片的方法 |
CN113672973A (zh) * | 2021-07-20 | 2021-11-19 | 深圳大学 | 基于可信执行环境的risc-v架构的嵌入式设备的数据库系统 |
CN113672973B (zh) * | 2021-07-20 | 2024-04-16 | 深圳大学 | 基于可信执行环境的risc-v架构的嵌入式设备的数据库系统 |
CN113507483A (zh) * | 2021-07-27 | 2021-10-15 | 平安国际智慧城市科技股份有限公司 | 即时通讯方法、装置、服务器及存储介质 |
CN113507483B (zh) * | 2021-07-27 | 2023-04-18 | 平安国际智慧城市科技股份有限公司 | 即时通讯方法、装置、服务器及存储介质 |
CN114253738A (zh) * | 2021-11-02 | 2022-03-29 | 上海交通大学 | 可信执行环境的内存锁定方法 |
CN114253738B (zh) * | 2021-11-02 | 2024-05-24 | 上海交通大学 | 可信执行环境的内存锁定方法 |
CN117272390B (zh) * | 2023-11-17 | 2024-03-22 | 海之景科技集团有限公司 | 信息安全的数据处理方法、装置、设备及存储介质 |
CN117272390A (zh) * | 2023-11-17 | 2023-12-22 | 海之景科技集团有限公司 | 信息安全的数据处理方法、装置、设备及存储介质 |
CN117786667A (zh) * | 2023-12-22 | 2024-03-29 | 北京熠智科技有限公司 | 一种用于可控计算的进程权限管理方法、系统及存储介质 |
CN117786667B (zh) * | 2023-12-22 | 2024-06-11 | 北京熠智科技有限公司 | 一种用于可控计算的进程权限管理方法、系统及存储介质 |
CN118332055A (zh) * | 2024-06-12 | 2024-07-12 | 杭州易靓好车互联网科技有限公司 | 基于人工智能的保险信息数据保护方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112711774B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112711774B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110602089B (zh) | 基于区块链的医疗数据存储方法、装置、设备及存储介质 | |
CN110971414B (zh) | 生成签名的方法、装置、终端及服务器 | |
CN110245144B (zh) | 协议数据管理方法、装置、存储介质及系统 | |
CN110598482B (zh) | 基于区块链的数字证书管理方法、装置、设备及存储介质 | |
CN111245745B (zh) | 消息发送方法、装置、节点设备及存储介质 | |
CN110401715B (zh) | 资源收集任务管理方法、装置、存储介质及系统 | |
CN112257876B (zh) | 联邦学习方法、装置、计算机设备及介质 | |
CN108964903B (zh) | 密码存储方法及装置 | |
CN110290146B (zh) | 分享口令的生成方法、装置、服务器及存储介质 | |
WO2021208615A1 (zh) | 用户邀请方法、装置、计算机设备及计算机可读存储介质 | |
CN111080443B (zh) | 基于区块链的业务处理方法、装置、设备及存储介质 | |
CN110597924B (zh) | 基于区块链的用户标识处理方法、装置、设备及存储介质 | |
CN110826103A (zh) | 基于区块链的文档权限处理方法、装置、设备及存储介质 | |
CN110598879A (zh) | 基于区块链的垃圾回收方法、装置、设备及存储介质 | |
CN111935166B (zh) | 通信认证方法、系统、电子设备、服务器及存储介质 | |
CN110598386B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN112073421A (zh) | 通信处理方法、装置、终端及存储介质 | |
CN111212074B (zh) | 基于区块链的资格认定方法、装置、设备及存储介质 | |
CN110677262B (zh) | 基于区块链的信息公证方法、装置及系统 | |
CN113852459B (zh) | 密钥协商方法、设备及计算机可读存储介质 | |
CN112231768B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN110889264B (zh) | 多媒体信息处理方法、装置、设备及存储介质 | |
KR20210014084A (ko) | 블록체인을 이용한 전자 데이터 제공 방법 및 그 시스템 | |
CN110597840A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40042941 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |