发明内容
本说明书实施例旨在提供一种更有效的数据处理方法和装置,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种数据处理方法,所述方法在数据管理方执行,所述数据管理方包括第一可信执行环境、并且存储有至少一份第一加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述方法包括:
接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
对于每份所述授权信息,
在验证通过的情况中,在第一可信执行环境中使用与该份授权信息对应的第一密钥对相应的第一加密数据进行解密,以获取相应的明文数据;
在第一可信执行环境中对所述相应的明文数据重新加密,以获取第二加密数据,其中所述第二加密数据的解密密钥为第二密钥;
由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境;以及
将所述第二加密数据提供给所述第二可信执行环境。
本说明书另一方面提供一种数据处理方法,所述方法在数据管理方执行,所述数据管理方包括第一可信执行环境、并且存储有至少一份第一加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述方法包括:
接收数据使用方的数据请求,所述数据请求用于请求所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
对于每份所述授权信息,
在验证通过的情况中,在第一可信执行环境中使用与该份授权信息对应的第一密钥对相应的第一加密数据进行解密,以获取相应的明文数据;以及
由所述第一可信执行环境将相应的明文数据安全传输给所述第二可信执行环境。
在一个实施例中,所述安全传输为加密传输。
在一个实施例中,所述第一可信执行环境与所述第二可信执行环境位于一个平台中、或位于不同的平台中。
在一个实施例中,所述认证信息中包括所述第二可信执行环境中安装并正在运行的第一程序的第一代码哈希值,其中,所述每份授权信息包括所述至少一个程序各自的代码哈希值,其中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证包括,对于每份所述授权信息,验证所述第一代码哈希值是否为该份授权信息中包括的一个代码哈希值。
在一个实施例中,每份所述授权信息中包括第一代码哈希值、和与所述第一代码哈希值对应的第三密钥,所述第三密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,其中,所述方法还包括,对于每份所述授权信息,在验证通过的情况中,还由所述第一可信执行环境将所述第三密钥安全传输给所述第二可信执行环境。
在一个实施例中,所述方法还包括,在由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境之后,在所述第一可信执行环境中删除所述第二密钥。
在一个实施例中,所述数据管理方还包括数据存储模块,其中,所述至少一份第一加密数据、和所述至少一个第二加密数据被存储在所述数据存储模块中。
在一个实施例中,所述方法还包括,在将所述第二加密数据提供给所述第二可信执行环境之后,在所述存储模块中删除所述第二加密数据。
在一个实施例中,所述方法还包括,在由所述第一可信执行环境将相应的明文数据安全传输给所述第二可信执行环境之后,在所述第一可信执行环境中删除所述相应的明文数据。
在一个实施例中,对所述明文数据重新加密包括,通过所述第二密钥对所述明文数据进行对称加密。
在一个实施例中,所述第二密钥通过随机生成而获取。
本说明书另一方面提供一种数据处理方法,所述方法在数据使用方执行,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述方法包括:
向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份第一加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第二密钥,其中,所述第二密钥用于解密第二加密数据,所述第二加密数据由所述第一可信执行环境对与该份授权信息对应的明文数据重新加密所获取;从所述数据管理方获取所述第二加密数据;并在所述第二可信执行环境中使用所述第二密钥对所述第二加密数据进行解密,以获取相应的明文数据;以及
在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
本说明书另一方面提供一种数据处理方法,所述方法在数据使用方执行,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述方法包括:
向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份第一加密数据分别对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文信息;以及
在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
在一个实施例中,所述第一程序具有第一代码哈希值,其中,每份授权信息中包括第一代码哈希值、及与所述第一代码哈希值对应的第三密钥,所述第三密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,所述方法还包括,
对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第三密钥;
在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第三密钥是否一致;以及
在各个所述第三密钥一致的情况中,在所述第二可信执行环境中使用所述第三密钥对所述计算结果进行加密,以获取加密计算结果。
在一个实施例中,所述方法还包括,在获取加密计算结果之后,将所述加密计算结果发送给所述计算结果使用方。
在一个实施例中,从所述数据管理方获取所述第二加密数据包括,从所述数据管理方读取所述第二加密数据。
本说明书另一方面提供一种数据处理装置,所述装置在数据管理方实施,所述数据管理方包括第一可信执行环境、并且存储有至少一份第一加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:
第一接收单元,配置为,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
第二接收单元,配置为,从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
验证单元,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
针对每份所述授权信息的,
解密单元,配置为,在验证通过的情况中,在第一可信执行环境中使用与该份授权信息对应的第一密钥对相应的第一加密数据进行解密,以获取相应的明文数据;
重新加密单元,配置为,在第一可信执行环境中对所述相应的明文数据重新加密,以获取第二加密数据,其中所述第二加密数据的解密密钥为第二密钥;
第一安全传输单元,配置为,由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境;以及
提供单元,配置为,将所述第二加密数据提供给所述第二可信执行环境。
本说明书另一方面提供一种数据处理装置,所述装置在数据管理方执行,所述数据管理方包括第一可信执行环境、并且存储有至少一份第一加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:
第一接收单元,配置为,接收数据使用方的数据请求,所述数据请求用于请求所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
第二接收单元,配置为,从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
验证单元,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
针对每份所述授权信息的,
解密单元,配置为,在验证通过的情况中,在第一可信执行环境中使用与该份授权信息对应的第一密钥对相应的第一加密数据进行解密,以获取相应的明文数据;以及
安全传输单元,配置为,由所述第一可信执行环境将相应的明文数据安全传输给所述第二可信执行环境。
在一个实施例中,所述认证信息中包括所述第二可信执行环境中安装并正在运行的第一程序的第一代码哈希值,其中,所述每份授权信息包括所述至少一个程序各自的代码哈希值,其中,所述验证单元还配置为,对于每份所述授权信息,验证所述第一代码哈希值是否为该份授权信息中包括的一个代码哈希值。
在一个实施例中,每份所述授权信息中包括第一代码哈希值、和与所述第一代码哈希值对应的第三密钥,所述第三密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,其中,所述装置还包括,第二安全传输单元,配置为,对于每份所述授权信息,在验证通过的情况中,还由所述第一可信执行环境将所述第三密钥安全传输给所述第二可信执行环境。
在一个实施例中,所述装置还包括第一删除单元,配置为,在由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境之后,在所述第一可信执行环境中删除所述第二密钥。
在一个实施例中,所述数据管理方还包括数据存储模块,其中,所述至少一份第一加密数据、和所述至少一个第二加密数据被存储在所述数据存储模块中。
在一个实施例中,所述装置还包括第二删除单元,配置为,在将所述第二加密数据提供给所述第二可信执行环境之后,在所述存储模块中删除所述第二加密数据。
在一个实施例中,所述装置还包括删除单元,配置为,在由所述第一可信执行环境将相应的明文数据安全传输给所述第二可信执行环境之后,在所述第一可信执行环境中删除所述相应的明文数据。
在一个实施例中,所述重新加密单元还配置为,通过所述第二密钥对所述明文数据进行对称加密。
本说明书另一方面提供一种数据处理装置,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:
第一发送单元,配置为,向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份第一加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
第二发送单元,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
针对每份所述授权信息的,第一接收单元,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第二密钥,其中,所述第二密钥用于解密第二加密数据,所述第二加密数据由所述第一可信执行环境对与该份授权信息对应的明文数据重新加密所获取;获取单元,配置为,从所述数据管理方获取所述第二加密数据;解密单元,配置为,在所述第二可信执行环境中使用所述第二密钥对所述第二加密数据进行解密,以获取相应的明文数据;以及
计算单元,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
本说明书另一方面提供一种数据处理装置,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:
第一发送单元,配置为,向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份第一加密数据分别对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
第二发送单元,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
针对每份所述授权信息的第一接收单元,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文信息,其中,所述明文信息由所述第一可信执行环境基于与该份授权信息对应的第一密钥、及相应的第一加密数据获取;以及
计算单元,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
在一个实施例中,所述第一程序具有第一代码哈希值,其中,每份授权信息中包括第一代码哈希值、及与所述第一代码哈希值对应的第三密钥,所述第三密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,所述装置还包括,
第二接收单元,配置为,对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第三密钥;
确定单元,配置为,在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第三密钥是否一致;以及
加密单元,配置为,在各个所述第三密钥一致的情况中,在所述第二可信执行环境中使用所述第三密钥对所述计算结果进行加密,以获取加密计算结果。
在一个实施例中,所述装置还包括第三发送单元,配置为,在获取加密计算结果之后,将所述加密计算结果发送给所述计算结果使用方。
在一个实施例中,所述获取单元还配置为,从所述数据管理方读取所述第二加密数据
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
通过根据本说明书实施例的数据处理方案,通过数据授权系统(数据管理方)在设计上避免了机构(数据提供方)原始密钥注入到业务方(数据使用方)的TEE的可能性,保证了即使业务方的TEE被破解,破解者也只能窥探所访问的数据明文,其他使用相同机构密钥加密的数据仍然可以得到有效保护。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的数据处理系统100的示意图。如图1所示,系统100包括数据提供方11、数据提供方12、数据管理方13、数据使用方14以及结果使用方15。其中数据提供方11/12例如为银行、税务局、房产局等拥有原始数据的一方;数据管理方13相当于数据托管平台,包括第一可信执行环境(TEE)131和存储模块132,可由数据提供方11/12将数据或加密数据及其授权信息预先上传至数据管理方,并进行数据的使用授权,从而使得数据提供方不需在数据使用时实时在线;数据使用方14例如为信用评估机构、贷款机构、保险公司等服务提供商,其包括第二TEE141;结果使用方15例如为数据使用方14的服务对象,如企业、个人等。数据提供方11可在验证第一TEE的可信性之后,将本地拥有的明文数据X的第一加密数据X上传至数据管理方13的存储模块132,并将相应的用于解密的第一密钥和授权信息安全传输至数据管理方13的第一TEE131,以由第一TEE进行对该第一明文数据的使用授权管理。数据提供方12可以与数据提供方11类似地将其本地的明文数据Y的第一加密数据Y上传给存储模块132,并将相应的第一密钥和授权信息安全传输至第一TEE131。例如在数据使用方14向数据管理方13请求使用明文数据X时,第一TEE可根据相应的授权信息对第二TEE141进行验证,并在验证通过之后,使用相应的解密密钥对第一加密数据X进行解密,以获取明文数据X,并使用第二密钥对明文数据X重新加密,以获取第二加密数据X,之后,将第二加密数据X传输给数据使用方,并将该第二密钥安全传输给第二TEE,以授权数据使用方14使用该明文数据X。数据使用方可通过上述类似的方法向数据管理方请求使用明文数据Y。从而,数据使用方例如可在第二TEE141中基于明文数据X和明文数据Y进行模型计算。数据使用方14在例如基于明文数据X和明文数据Y进行计算而获取计算结果之后,可基于第一TEE安全传输至第二TEE的计算结果密钥对该计算结果进行加密,并将加密的计算结果发送给提供所述计算结果密钥的结果使用方15。从而,通过该方式可避免将数据提供方的原始密钥(第一密钥)注入第二TEE141,从而可有效保护数据提供方的原始密钥、及通过该原始密钥加密的其它数据。
图1及上述描述只是对本说明书实施例的简单概述,并不限定本说明书实施例的范围,例如,在系统100中不限于包括两个数据提供方,可包括一个数据提供方,也可包括多个数据提供方,其都与上述类似地将其本地的数据托管给数据管理方13,例如,在所述数据管理方中对明文数据的重新加密不限于对称加密,也可以为非对称加密。另外,为了保护数据提供方的密钥,还可以通过如下的方法:在第一TEE中通过第一密钥对第一加密数据解密,以获取相应的明文数据,并由第一TEE将该明文数据安全传输给第二TEE。
图2示出根据本说明书实施例基于数据使用授权的数据处理示意图。具体地,图2示出在数据管理方、数据使用方与结果使用方之间进行的数据处理过程。其中,所述数据处理过程在数据管理方、数据使用方、及结果使用方各方的计算设备或终端中完成。如上文所述,数据管理方相当于数据托管平台,其中存储有由例如银行的数据提供方提供的原始数据,数据使用方例如为信用评估机构,其例如通过从数据管理方得到授权使用所述原始数据,从而基于该原始数据计算例如个人的信用情况,以提供给结果使用方,所述结果使用方例如为信用评估机构的服务对象,其例如为贷款机构等。其中,数据管理方和数据使用方都包括各自的安全执行环境(TEE,Trusted Execution Environment),所述安全执行环境例如可通过SGX、Trust Zone等技术实现。下文中,为便于描述,将数据管理方中的安全执行环境称为第一TEE,将数据使用方中的安全执行环境称为第二TEE。可以理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。其中,所述数据管理方通过第一TEE对数据使用方进行验证以对其授权,数据使用方在所述第二TEE中运行有例如第一程序,并通过第一程序基于所述原始数据计算相应的结果(例如信用评估值)。
所述数据管理方除了包括第一TEE之外,还包括存储模块,存储模块中存储有至少一份第一加密数据,在所述第一TEE中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息。图3示出数据管理方的存储模块和第一TEE中存储的数据的示意图。如图3所示,存储模块中存储有第一加密数据X和第一加密数据Y,其中,第一加密数据X例如由数据提供方A向数据管理方预先上传,其对应于明文数据X,第一加密数据Y例如由数据提供方B向数据管理方预先上传,其对应于明文数据Y。可以理解,所述第一加密数据X/Y不限于存储于存储模块中,例如,第一加密数据X/Y可存储于第一TEE中、或者第一加密数据X/Y可存储于云盘中等等。
第一TEE中存储有信息A和信息B,其中信息A与第一加密数据X相关,其中包括第一密钥A和授权信息A,信息B与第一加密数据Y相关,其中包括第一密钥B和授权信息B。其中,第一密钥A用于对明文数据X进行加密和解密,授权信息A为关于明文数据X的授权信息,第二密钥B用于对明文数据Y进行加密和解密,授权信息B为关于明文数据Y的授权信息。图3中虽然只示意示出了两份加密数据和与其分别对应的两份信息,然而,第一TEE中不限于只存储两份信息,而是可以存储与多份加密数据分别对应的多份信息。另外,图3中的信息A和信息B分别对应于不同的数据提供方,本说明书实施例不限于此,信息A和信息B可对应于一个数据提供方,即,数据提供方A与数据提供方B可以为一个数据提供方,也就是说,明文数据X和明文数据Y可由一个数据提供方提供。在上述描述中,第一加密数据X表示该加密数据是通过对明文数据X进行加密所获取的数据,第一加密数据Y可同样地解释,信息A、第一密钥A和授权信息A表示其都与数据提供方A相关,信息B、第一密钥B和授权信息B可同样地解释。
所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息。
图4示意示出信息A中的授权信息的具体内容。如图4所示,在信息A中,除第一密钥之外,还包括如“第一密钥A”下方的黑框所示的授权信息A,所述授权信息A包括对应的第一代码哈希值和第三密钥C、对应的第二代码哈希值和第三密钥D、以及第三代码哈希值。其中,第一代码哈希值、第二代码哈希值和第三代码哈希值例如分别为第一程序、第二程序和第三程序的代码哈希值,其中,第一程序、第二程序和第三程序是被(数据提供方)允许使用明文是数据X的程序。例如,该信息A对应的明文数据X可以为个人在预定时段内的交易数据,该交易数据可用于个人信用评估的第一程序的计算、个人消费倾向的第二程序的计算、特定人群消费水平的第三程序的计算等。第三密钥C例如为第一结果使用方C的公钥,所述第三密钥C用于对所述第一程序的计算结果进行加密、由与该计算结果对应的第一计算结果使用方C提供,即,第一程序基于明文数据X的计算结果只允许授权给第一结果使用方C使用。类似地,第三密钥D例如为第二结果使用方D的公钥,即,所述第三密钥D用于对所述第二程序的计算结果进行加密,第二程序基于明文数据X的计算结果只允许授权给第二结果使用方D使用。而在上述信息A中并没有与第三代码哈希值对应的密钥,也就是说,第三程序基于明文数据X的计算结果(例如上述特定人群消费水平)不涉及隐私数据,不需要进行加密。可以理解,所述授权信息中不限于包括各个所述程序的代码哈希值,而是根据授权的方式不同可包括不同的信息,例如,所述授权信息中可包括各个所述程序的代码签名、加密数据等等。另外,所述第三密钥C/D不限于为相应结果使用方的公钥,在对计算结果的加密方式为对称加密的情况中,所述第三密钥C/D也可以为相应结果使用方的密钥,用于对计算结果加密、并对加密计算结果解密。其中,第三密钥中的“第三”用于与本文中的“第一密钥”和“第二密钥”相区分。
下面详细描述图2中的各个步骤。如图2所示,首先,在步骤201,由数据使用方向数据管理方发送数据请求,所述数据请求用于请求使用数据管理方中存储的至少一份明文数据。
数据使用方例如为信用评估机构,其在对用户进行信用评估时,可向数据管理方请求与该用户相关的例如两份数据,该两份数据例如分别由银行和税务部门向数据管理方预先提供,其例如为与图3中所示的第一加密数据X和第一加密数据Y分别对应的明文数据X和明文数据Y。所述数据使用方例如还可以为云计算平台,其例如接收信用评估机构的委托通过计算模型对用户的信用评估进行计算。
数据使用方包括第二可信执行环境(即第二TEE),在该第二TEE中运行有预定程序(例如第一程序),以用于基于上述明文数据X和明文数据Y进行例如F(X,Y)(即计算模型)的计算,从而通过第二TEE的安全机制,在计算过程中不会对外泄露明文数据X和明文数据Y。在一个实施例中,第二TEE与第一TEE位于一个平台中,例如,在支付宝平台中,可同时进行数据的托管、以及对用户进行信用评估,即所述支付宝平台既是数据管理方,也是数据使用方。在该情况中,由于相关的数据使用授权、数据使用都是在第一TEE和第二TEE中进行,即通过硬件对数据隐私进行保护,从而即使数据管理方与数据使用方为同一方,也不影响数据的安全性。在第一TEE和第二TEE在一个平台的情况中,可由第二TEE向第一TEE发送数据使用请求。可以理解,在该情况中,也可以由第二TEE向数据管理方发送数据使用请求、或者由数据使用方向数据管理方或第一TEE发送数据使用请求。
在一个实施例中,第一TEE与第二TEE位于不同的平台中,例如支付宝平台为数据管理方,其包括第一TEE,而云计算平台为数据使用方,云计算平台中包括第二TEE。在第一TEE和第二TEE在不同平台的情况中,可由数据使用方平台向数据管理方平台发送数据使用请求。类似地,也可以由数据使用方平台向第一TEE发送数据使用请求,或者也可由第二TEE向数据管理方平台或第一TEE发送数据使用请求。
在步骤202,向数据管理方发送认证信息,所述认证信息由所述第二可信执行环境生成。
数据使用方可在发送数据请求之后主动将第二TEE生成的认证信息发送给数据管理方,也可以在数据管理方向数据使用方发送验证请求之后,将由第二TEE生成的认证信息发送给数据管理方。
第二TEE基于内部机制生成认证信息,以供数据管理方进行验证。所述认证信息例如包括所述第二TEE的签名信息、硬件信息和软件信息等。其中,所述签名信息例如通过第二TEE的硬件密钥生成;所述硬件信息例如包括,各种硬件的指标,比如CPU主频,内存容量等等;所述软件信息包括各个程序的代码哈希值、代码名称、版本、运行日志等。如本领域技术人员可知,TEE可通过内存硬件执行对其中运行程序的“测量”,例如获取该程序的代码哈希值、该程序在特定执行点的内存占有的哈希值等等,从而在所述认证信息中包括对所述程序的“测量”信息(例如,代码哈希值),由于该“测量”信息由该TEE自身实体(内存硬件)执行,而不涉及任何软件、操作系统,因此是真实可信的。可以理解,所述认证信息不限于如上所述,例如,所述认证信息不必需包括签名信息、软件信息等,而可以只包括软件信息,以供第一TEE进行对第二TEE中运行程序的验证。
在一个实施例中,第一TEE与第二TEE位于一个平台中,所述认证信息为平台内(Intra-Platform)认证信息,例如,在SGX技术中,生成文件“REPORT”作为所述平台内认证信息。在一个实施例中,第一TEE与第二TEE位于不同平台中,所述认证信息为平台间(Inter-Platform)认证信息。例如,在SGX技术中,TEE生成文件“QUOTE”作为所述平台间认证信息,以用于进行远程认证(RA,remote attestation)。平台内认证信息和平台间认证信息可具有不同的文件格式,加密方式等。例如,所述平台内认证信息(如REPROT)可采用对称加密方式,所述平台间认证信息(如QUOTE)可采用非对称加密方式等。
在一个实施例中,所述认证信息中包括与第二TEE中的运行程序(如第一程序)相关的信息,为了不泄露运行程序中的模型数据(如参数、算法等),由第二TEE向第一TEE安全传输该认证信息。在计算模型不需要进行保护的情况中,也可由数据使用方或第二TEE向数据管理方发送所述认证信息,并且数据管理方在接收所述认证信息之后将所述认证信息发送给第一TEE。
在步骤203,在所述第一TEE中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证。
第一TEE在获取所述认证信息之后,在其内部通过基于该认证信息和数据使用方请求的至少一份数据各自对应的授权信息进行验证。例如,参考图3,数据使用方请求使用明文数据X和明文数据Y,第一TEE中与明文数据X对应的信息A中的授权信息例如包括可使用明文数据X的各个程序各自的代码哈希值,与明文数据Y对应的信息B中的授权信息例如包括可使用明文数据Y的各个程序各自的代码哈希值。第一TEE需要基于认证信息、信息A和信息B进行验证。第一TEE可以基于所述认证信息验证所述第二TEE是否为可信执行环境,例如通过预先获取的第二TEE的硬件公钥验证所述签名信息是否为所述第二TEE的签名信息、验证所述第二TEE的硬件配置是否与预先获取的配置相符等等。第一TEE还可以基于所述认证信息中包括的第二TEE中运行程序(第一程序)的“测量”哈希值(第一代码哈希值),验证该“测量”哈希值是否与所述信息A中包括的多个代码哈希值中的一个匹配,以确定所述第二TEE中运行的程序是否是可以授权使用所述明文数据X的程序。并类似地,验证该“测量”哈希值是否与所述信息B中包括的多个代码哈希值中的一个匹配。其中,针对各份授权信息的验证可以先后进行、也可以并行进行,本发明对此并不限制。
如上文所述,所述授权信息中不限于包括各个程序的代码哈希值,例如还可以包括各个程序的代码签名、代码加密数据等。例如,在授权信息中为代码签名的情况中,第一TEE可基于代码签名和预先从例如数据提供方获取的相应代码的公钥,获取相应的代码哈希值,以用于上述验证。
在本说明书实施例中,基于认证信息的验证过程不限于如上所述,例如,所述认证信息中可能不包括第二TEE的硬件信息、签名信息等,相应地,数据管理方可通过为第二TEE提供技术支持的第三方服务器(如为围圈(Enclave)提供验证服务的Intel服务器)验证第二TEE的签名信息、硬件配置等。
可以理解,对于基于不同技术获取的TEE,其提供的认证信息的具体内容、形式等会有一些差别,然而,其提供的认证信息都可使得数据使用者能够进行相应的验证,以确定该TEE是否为安全执行环境,和/或确定其中运行的程序是否是可授权的程序。
步骤204-步骤208是针对数据使用方请求的至少一份明文数据对应的每份授权信息执行的步骤,图2中只示意示出了对一份授权信息执行的情况,而在实际中,可针对至少一份授权信息的每份授权信息依次地、或并行地执行步骤204-步骤208。在下面的描述中,描述了针对一份授权信息(例如如图3中所示的授权信息A)执行步骤204-208作为示例。本领域技术人员可以理解,对于所述至少一份授权信息中的其它授权信息,可同样地执行步骤204-208。
在步骤204,在验证通过的情况中,在第一可信执行环境中使用与该份授权信息对应的第一密钥对相应的第一加密数据进行解密,以获取相应的明文数据。如图3中所示,在数据管理方的存储模块中存储有第一加密数据X,在第一TEE中存储有与第一加密数据X对应的第一密钥A和授权信息A。在针对授权信息A的对认证信息的验证通过之后,第一TEE通过从存储模块中获取第一加密数据X,并使用第一密钥A对第一加密数据X进行解密,从而可获取相应的明文数据X。
在步骤205,在第一TEE中对所述明文数据重新加密,以获取第二加密数据,其中所述第二加密数据的解密密钥为第二密钥。
在一个实施例中,在第一TEE中对明文数据X进行对称加密。即,例如,通过随机生成的方式获取第二密钥,并使用该第二密钥对明文数据X进行加密,从而获取第二加密数据X,同时,该第二密钥即为用于对第二加密数据X进行解密的密钥。其中,与上文所述类似,第二加密数据X表示其为通过对明文数据加密所获取的加密数据,下文出现的第二加密数据Y可同样地解释。当在第一TEE中获取第二加密数据X之后,可将第二加密数据X存入图3所示的存储模块中。可以理解,所述第二加密数据X不限于被存入存储模块中,其例如可被存入云盘中。可以理解,可以以同样的方式对图3中所示的第一加密数据Y进行解密并重新加密,以获取第二加密数据Y。
图5示意示出在进行该步骤205之后,在数据管理方中包括的数据的示意图。如图5所示,在存储模块中包括第一加密数据X、第二加密数据X、第一加密数据Y、以及第二加密数据Y,在第一TEE中包括信息A和信息B,在信息A中除包括图3中所示的第一密钥A和授权信息A之外,还包括第二密钥A,同样地,在信息B中还包括第二密钥B,其中,第二密钥A表示其为与数据提供方A相关的第二密钥,第二密钥B可同样地解释。
可以理解,对明文数据X进行加密的方式不限于对称加密的方式,也可以为非对称加密的方式。即,例如通过随机生成的方式生成用于加密的密钥和用于解密的第二密钥,并用所述加密密钥对所述明文数据X进行加密,以获取第二加密数据X。可以理解,上述对称加密的密钥和非对称加密的密钥不限于通过随机生成的方式获取,例如,可通过预定方式生成所述密钥。另外,所述密钥可以实时生成,也可以预先生成,本说明书对此不进行限定。
在步骤206,由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境。
所述安全传输例如为加密传输,通过在传输之前对待传输的数据进行加密,并在传输到接收方之后进行解密以使得接收方获取明文数据,保障了在传输过程中不会被恶意的第三方窃取明文数据,保障了数据传输的安全性。可以理解所述安全传输不限于加密传输,而可以采用本领域技术人员可获取的任意保障数据安全性的传输方式,如通过量子通信的安全传输方式等等。
第一TEE在进行上述步骤205之后,将用于解密第二加密数据X的第二密钥A安全传输至第二TEE,以授权第二TEE中的第一程序使用所述明文数据X。
在一个实施例中,在由所述第一TEE将所述第二密钥A安全传输给所述第二TEE之后,在所述第一TEE中删除所述第二密钥。所述删除可在所述安全传输之后立即进行,也可以在所述安全传输之后预定时段后,在确定所述安全传输没有问题之后进行。
在步骤207,由数据管理方将所述第二加密数据提供给所述第二可信执行环境。
在一个实施例中,数据管理方将存储模块中存储的第二加密数据X发送给第二TEE。在一个实施例中,由数据使用方从数据管理方的存储模块中读取第二加密数据X。例如,在明文数据X为例如银行提供的个人交易数据的情况中,数据使用方例如可以基于个人身份标识(例如身份证号码等)、数据提供方标识(如银行标识)、数据标识等读取与该个人相关的第二加密数据X。
在一个实施例中,在所述第二加密数据X由数据管理方存入云盘中的情况中,数据管理方可将第二加密数据X的下载地址提供给数据使用方,以供其下载。
在一个实施例中,在将所述第二加密数据提供给所述第二可信执行环境之后,在所述存储模块中删除所述第二加密数据。同样地,所述删除可在所述传输之后立即进行,也可以在所述传输之后预定时段后进行。
在一个实施例中,如图4所示,信息A中的授权信息A中还可能包括与部分哈希代码值分别对应的结果使用方的第三密钥。例如,在所述授权信息中包括与第一代码哈希值对应的第三密钥C。在该情况中,在基于授权信息A的验证通过之后,第一TEE还将第三密钥C安全传输给第二TEE,以用于对计算结果进行加密。
在步骤208,由所述数据使用方在所述第二可信执行环境中使用所述第二密钥对所述第二加密数据进行解密,以获取相应的明文数据。
图6示意示出在数据使用方中执行的图2中的步骤208-步骤211。如图6中所示,数据使用方在从数据管理方获取例如第二密钥A和第二加密数据X之后,通过步骤208,使用第二密钥A对第二加密数据X解密,从而可获取明文数据X。类似地,通过使用从数据管理方获取的第二密钥B对第二加密数据Y解密,从而可获取明文数据Y。
在步骤209,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
如图6所示,所述第一程序例如基于数据X和数据Y进行F(X,Y)的计算,其中F(X,Y)对应于特定计算模型,通过在第二TEE中运行所述第一程序,使用F(X,Y)基于X和Y进行计算,从而获取计算结果。
在一个实施例中,在步骤210,使用第三密钥对计算结果进行加密。
所述第一程序例如具有第一代码哈希值,其中,如图4所示,所述数据使用者请求的至少一份明文数据对应的每份授权信息中例如包括第一代码哈希值、及与所述第一代码哈希值对应的第三密钥(例如第三密钥C),所述第三密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供。所述方法还包括,对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的所述第三密钥(第三密钥C);在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第三密钥是否一致,即确定从第一TEE接收的对应于第二加密数据X的第三密钥与对应于第二加密数据Y的第三密钥是否一致;以及,在各个所述第三密钥一致的情况中,在所述第二可信执行环境中使用所述第三密钥对所述计算结果进行加密,以获取加密计算结果,即,在所述第三密钥都是第三密钥C的情况中,使用第三密钥C对计算结果进行加密。可以理解,在上述情况中,第三密钥可以为非对称加密的加密密钥,即公钥,当将该加密的计算结果发送给结果使用方C之后,结果使用方C将使用其私钥C对该加密的计算结果进行解密。然而,本实施例不限于此,例如,所述第三密钥可以为对称加密的密钥,即,结果使用方C在解密时也使用该第三密钥进行解密。
在步骤211,第二TEE在获取加密的计算结果之后,将该加密的计算结果发送给结果使用方C。在步骤212,结果使用方C使用其私钥C对该加密的计算结果进行解密,从而获取计算结果。
可以理解,在获取加密的计算结果之后,数据使用方可将该加密结果发送给结果使用方,或者也可以由结果使用方主动从数据使用方读取所述加密结果。
在一个实施例中,如上文参考图4中所述,当第二TEE中的运行程序(如第三程序)的计算结果不涉及隐私,不需要进行加密的情况中,可不执行图6中所示的步骤210和步骤211,第二TEE在获取明文的计算结果之后,可将该计算结果直接发送给结果使用方,或由结果使用方读取该计算结果。
图7示出根据本说明书实施例的基于数据使用授权的另一数据处理示意图。其中,所述数据处理在数据管理方、数据使用方及结果使用方三方执行,对所述三方的具体描述可参考上文对图2的相应描述。如图7所示,所示数据处理包括以下步骤:在步骤701,由数据使用方向数据管理方发送数据请求,所述数据请求用于请求所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;在步骤702,由所述数据使用方向数据管理方发送认证信息,所述认证信息由所述第二可信执行环境生成;在步骤703,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;对于每份授权信息,执行步骤704-705,其中,在步骤704,在验证通过的情况中,在第一可信执行环境中使用与该份授权信息对应的第一密钥对相应的第一加密数据进行解密,以获取相应的明文数据;在步骤705,由所述第一可信执行环境将相应的明文数据安全传输给所述第二可信执行环境;在一个实施例中,在由所述第一可信执行环境将相应的明文数据安全传输给所述第二可信执行环境之后,在所述第一可信执行环境中删除所述相应的明文数据;在步骤706,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果;以及,在一个实施例中,在步骤707,在第二TEE中使用相应的第三密钥对计算结果加密,在步骤708,由数据使用方将加密的计算结果发送给结果使用方;在步骤709,由结果使用方使用私钥解密,以获取计算结果。
图7所示的处理过程与图2所示的处理过程不同在于,在第一TEE中获取明文数据之后,将明文数据直接安全传输给第二TEE,而省去了对明文数据重新加密,并安全传输第二密钥、提供第二加密数据的步骤。
通过图2和图7所示的数据处理过程,在完成对数据使用方授权使用明文数据的同时,可避免将数据提供方的原始密钥(即第一密钥)提供给数据使用方,从而可保护所述原始密钥不被泄漏,进而进一步保护了数据提供方与该原始密钥相关的其它数据。
图8示出根据本说明书实施例的一种数据处理装置800,所述装置在数据管理方实施,所述数据管理方包括第一可信执行环境、并且存储有至少一份第一加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:
第一接收单元801,配置为,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
第二接收单元802,配置为,从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
验证单元803,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
针对每份所述授权信息的,
解密单元804,配置为,在验证通过的情况中,在第一可信执行环境中使用与该份授权信息对应的第一密钥对相应的第一加密数据进行解密,以获取相应的明文数据;
重新加密单元805,配置为,在第一可信执行环境中对所述相应的明文数据重新加密,以获取第二加密数据,其中所述第二加密数据的解密密钥为第二密钥;
第一安全传输单元806,配置为,由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境;以及
提供单元807,配置为,将所述第二加密数据提供给所述第二可信执行环境。
在一个实施例中,所述认证信息中包括所述第二可信执行环境中安装并正在运行的第一程序的第一代码哈希值,其中,所述每份授权信息包括所述至少一个程序各自的代码哈希值,其中,所述验证单元803还配置为,对于每份所述授权信息,验证所述第一代码哈希值是否为该份授权信息中包括的一个代码哈希值。
在一个实施例中,每份所述授权信息中包括第一代码哈希值、和与所述第一代码哈希值对应的第三密钥,所述第三密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,其中,所述装置还包括,第二安全传输单元808,配置为,对于每份所述授权信息,在验证通过的情况中,还由所述第一可信执行环境将所述第三密钥安全传输给所述第二可信执行环境。
在一个实施例中,所述装置还包括第一删除单元809,配置为,在由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境之后,在所述第一可信执行环境中删除所述第二密钥。
在一个实施例中,所述数据管理方还包括数据存储模块,其中,所述至少一份第一加密数据、和所述至少一个第二加密数据被存储在所述数据存储模块中。
在一个实施例中,所述装置还包括第二删除单元810,配置为,在将所述第二加密数据提供给所述第二可信执行环境之后,在所述存储模块中删除所述第二加密数据。
在一个实施例中,所述重新加密单元805还配置为,通过所述第二密钥对所述明文数据进行对称加密。
图9示出根据本说明书实施例的一种数据处理装置900,所述装置在数据管理方执行,所述数据管理方包括第一可信执行环境、并且存储有至少一份第一加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:
第一接收单元91,配置为,接收数据使用方的数据请求,所述数据请求用于请求所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
第二接收单元92,配置为,从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
验证单元93,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
针对每份所述授权信息的,
解密单元94,配置为,在验证通过的情况中,在第一可信执行环境中使用与该份授权信息对应的第一密钥对相应的第一加密数据进行解密,以获取相应的明文数据;以及
安全传输单元95,配置为,由所述第一可信执行环境将相应的明文数据安全传输给所述第二可信执行环境。
在一个实施例中,所述装置还包括删除单元96,配置为,在由所述第一可信执行环境将相应的明文数据安全传输给所述第二可信执行环境之后,在所述第一可信执行环境中删除所述相应的明文数据。
图10示出根据本说明书实施例的一种数据处理装置1000,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:
第一发送单元1001,配置为,向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份第一加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
第二发送单元1002,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
针对每份所述授权信息的,第一接收单元1003,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第二密钥,其中,所述第二密钥用于解密第二加密数据,所述第二加密数据由所述第一可信执行环境对与该份授权信息对应的明文数据重新加密所获取;获取单元1004,配置为,从所述数据管理方获取所述第二加密数据;解密单元1005,配置为,在所述第二可信执行环境中使用所述第二密钥对所述第二加密数据进行解密,以获取相应的明文数据;以及
计算单元1006,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
在一个实施例中,所述第一程序具有第一代码哈希值,其中,每份授权信息中包括第一代码哈希值、及与所述第一代码哈希值对应的第三密钥,所述第三密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,所述装置还包括,
第二接收单元1007,配置为,对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第三密钥;
确定单元1008,配置为,在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第三密钥是否一致;以及
加密单元1009,配置为,在各个所述第三密钥一致的情况中,在所述第二可信执行环境中使用所述第三密钥对所述计算结果进行加密,以获取加密计算结果。
在一个实施例中,所述装置还包括第三发送单元1010,配置为,在获取加密计算结果之后,将所述加密计算结果发送给所述计算结果使用方。
在一个实施例中,所述获取单元1004还配置为,从所述数据管理方读取所述第二加密数据。
图11示出根据本说明书实施例的一种数据处理装置1100,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:
第一发送单元111,配置为,向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份第一加密数据分别对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份第一加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
第二发送单元112,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
第一接收单元113,配置为,针对每份所述授权信息的,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文信息,其中,所述明文信息由所述第一可信执行环境基于与该份授权信息对应的第一密钥、及相应的第一加密数据获取;以及
计算单元114,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
在根据本说明书实施例的数据处理方案中,利用TEE、RA技术搭建了数据提供方可信赖的数据授权系统,通过技术层面而非第三方信赖来保证中间数据授权平台不会窥探、篡改数据提供方的数据,同时运行速度快,支持任何代码可表示的融合计算,更有效率、更加通用;为数据授权系统、数据提供方以及数据使用方提出了一整套协议流程,通过该流程可以保证数据的隐私性,多方数据的合规使用;在设计上达成了可以针对数据使用行为授权、可选择性地对数数据融合的输出结果进行访问控制两个特性,以满足实际多方数据融合的通用入口、出口权限控制;数据授权系统在设计上避免了机构原始密钥注入到业务方的TEE的可能性,保证了即使业务方的TEE被破解,破解者也只能窥探所访问的数据明文,其他使用相同机构密钥加密的数据仍然可以得到有效保护;数据授权系统作为中间层,为数据提供方和数据使用方解耦,数据提供方一次上传即可,数据使用方多次使用不需要数据提供方重复上传,在重复使用数据时可以有效提升数据访问效率;数据授权系统在设计上允许数据提供方事先离线上传好即可,数据提供方无需部署数据提供服务来实时配合融合业务传输数据,提升易用性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。