数据存储方法、数据获取方法、装置及系统与流程

文档序号:14267306阅读:302来源:国知局
数据存储方法、数据获取方法、装置及系统与流程
本申请涉及存储技术,具体涉及一种数据存储方法。本申请同时涉及一种数据获取方法,一种数据提供方法及相应装置,另一种数据存储方法及相应装置,一种数据存储系统,另一种数据获取方法及相应装置,另一种数据提供方法及相应装置,一种数据获取系统,以及第三种数据获取方法。
背景技术
:大数据时代,信息越来越多,数据量呈爆炸式增长,企业及个人用户等都意识到数据的重要性、以及数据存储的重要性,在这种背景下出现了数据存储服务,即:公司或企业可以将自己的数据存储到数据存储服务方的存储服务器或者存储外设中。例如:云存储服务,即:企业或个人用户将数据外包给云服务提供商来存储和维护,使企业或个人用户只需较小的代价就能完全弥补本地软硬件资源不足、存储设备毁坏或丢失等缺陷,有利跨域用户间的数据共享和数据协作。然而存储在云端的数据完全脱离了用户的物理控制,易受到来自外部网络的有目标攻击和内部不可信管理员的恶意窥窃双重威胁。为了解决数据存储服务所面临的数据安全问题,现有技术通常采用前端数据加解密方法,即数据拥有者在前端对数据加密处理以后再提交给数据存储服务提供方,而用户访问数据时首先通过密文索引准确获取到密文数据,然后再利用相应的数据密钥在前端解密并最终获得明文数据。为了保证数据安全,通常将用于加解密数据的数据密钥采用一些特殊的方式存储在用户侧或云端,例如:以字符串的形式写入exe文件中,再将文件存储在硬盘或者内存中;或者将密钥存储在u盘中。在实际应用中,第一种方式容易造成数据密钥的泄漏,从而导致存储在数据存储服务提供方设备上的用户数据可能被窃取并解密;第二种方式需要借助额外的物理媒介,而且一旦遗失,也易于造成数据密钥的泄漏,同样无法保证用户数据的安全存储。技术实现要素:本申请实施例提供一种数据存储方法,以解决现有的设备间数据存储服务所存在的安全隐患。本申请实施例还提供一种数据获取方法,一种数据提供方法及相应装置,另一种数据存储方法及相应装置,一种数据存储系统,另一种数据获取方法及相应装置,另一种数据提供方法及相应装置,一种数据获取系统,以及第三种数据获取方法。本申请提供一种数据存储方法,其中所涉及的第一设备和第二设备彼此共享至少两对数据密钥,并分别将各自的数据密钥以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储;所述方法包括:所述第一设备根据预设策略选取数据密钥后,基于相应可信平台模块的存储根密钥对所选数据密钥的密文解密,并用解密后的数据密钥对待存储的数据加密;所述第一设备向所述第二设备发送数据存储请求,所述数据存储请求中至少携带所选数据密钥的密钥标识、以及加密后的数据密文;所述第二设备接收数据存储请求后,根据与所述第一设备相同的预设策略以及所述数据存储请求携带的密钥标识,将所述数据存储请求中的数据密文至少与相应的密钥标识对应存储。可选的,所述第一设备和所述第二设备共享的每对数据密钥的密钥标识相同或者具有对应关系。可选的,所述数据密钥包括:量子数据密钥。可选的,在所述第一设备用解密后的数据密钥对待存储的数据加密之后,还包括:所述第一设备将所述解密后的数据密钥销毁。可选的,所述预设策略为:每个数据密钥仅使用一次;所述第一设备根据预设策略选取数据密钥,包括:第一设备选取尚未被使用的数据密钥;第二设备将所述数据存储请求中的数据密文至少与相应的密钥标识对应存储,包括:第二设备将所述数据存储请求中的数据密文与相应的密钥标识对应存储。可选的,所述第一设备向所述第二设备发送数据存储请求之前,还包括:采用预设散列算法,至少根据所述待存储的数据计算散列值;所述第二设备将从所述数据存储请求中的数据密文与相应的密钥标识对应存储之后,包括:向所述第一设备返回确认应答;所述第一设备接收所述确认应答后,将所述散列值与所选数据密钥的密钥标识对应存储。可选的,所述预设策略为:每个数据密钥可以使用两次或两次以上;所述第一设备根据预设策略选取数据密钥,包括:第一设备选取任一数据密钥;所述第一设备发送的数据存储请求中还携带:所述数据的数据标识;所述第二设备将所述数据存储请求中的数据密文至少与相应的密钥标识对应存储,包括:所述第二设备将所述数据存储请求中的数据密文与相应的密钥标识及所述数据标识对应存储。可选的,所述第一设备向所述第二设备发送数据存储请求之前,还包括:采用预设散列算法,至少根据所述待存储的数据计算散列值;所述第二设备将所述数据存储请求中的数据密文与相应的密钥标识及所述数据标识对应存储之后,包括:向所述第一设备返回确认应答;所述第一设备接收所述确认应答后,将所述散列值与所选数据密钥的密钥标识及所述数据标识对应存储。可选的,所述第一设备发送的数据存储请求中还携带:所述散列值;所述第二设备接收所述数据存储请求之后,还包括:根据所述数据存储请求携带的密钥标识,获取相应的数据密钥;基于相应可信平台模块的存储根密钥对所述获取的数据密钥解密;用解密后的数据密钥对从所述数据存储请求中提取的数据密文解密得到明文数据,并采用与第一设备相同的预设散列算法、至少根据所述明文数据计算散列值;判断计算得到的散列值与所述数据存储请求中携带的散列值是否一致;并在一致时,执行所述将所述数据存储请求中的数据密文至少与相应的密钥标识对应存储的步骤。可选的,在所述第一设备向所述第二设备发送数据存储请求之前,还包括:所述第一设备用与所述第二设备共享的秘密信息对所选数据密钥的密钥标识加密;所述第一设备向所述第二设备发送的数据存储请求中携带的所选数据密钥的密钥标识,是指密钥标识密文;所述第二设备在将所述数据存储请求中的数据密文至少与相应的密钥标识对应存储之前,执行以下操作:采用所述共享的秘密信息对所述数据存储请求携带的密钥标识密文解密。可选的,所述第一设备和所述第二设备分别具有可信计算平台,在所述第一设备根据预设策略选取数据密钥之前,包括:所述第一设备和所述第二设备分别向对方发送至少包含可信证书的验证请求,并利用对方发送的验证请求中的信息对对方身份与平台的可信性进行验证;并在所述第一设备和所述第二设备均通过验证后,执行所述第一设备根据预设策略选取数据密钥后,基于相应可信平台模块的存储根密钥对所选数据密钥的密文解密的步骤;其中,所述可信证书是所述第一设备和所述第二设备分别预先根据授权中心基于系统私钥提供的相应信息获取的、与各自基于身份与平台信息的私钥对应的可信证书。可选的,所述方法在云存储服务系统中实施,所述云存储服务系统包括:云提供商子系统,和云用户子系统;所述第一设备为云用户子系统中的终端设备;所述第二设备为:云提供商子系统中的提供数据存储服务的设备。可选的,所述云提供商子系统中的提供数据存储服务的设备,包括:服务器,所述相应的可信平台模块是指所述服务器的可信平台模块;或者,无计算功能的存储外设,所述相应的可信平台模块是指为所述存储外设提供计算服务的机头服务器的可信平台模块;或者,有计算功能的存储外设,所述相应的可信平台模块是指所述存储外设的可信平台模块。可选的,所述受相应可信平台模块的存储根密钥保护的密文形式,包括:用所述存储根密钥加密后的密文;或者,用所述存储根密钥生成的存储密钥加密后的密文。此外,本申请还提供一种数据获取方法,用于获取根据上述任一项所述方法存储的数据;所述数据获取方法,包括:第一设备向第二设备发送数据获取请求,所述数据获取请求中至少携带第一数据对应的密钥标识;所述第二设备接收所述数据获取请求后,至少根据所述数据获取请求携带的密钥标识获取第一数据密文,并向第一设备返回应答,所述应答中至少携带基于所述第一数据密文的、满足所述数据获取请求的第二数据密文;所述第一设备接收所述第二设备返回的应答后,基于相应可信平台模块的存储根密钥对所述数据获取请求携带的密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的第二数据密文解密,以获取明文数据。可选的,所述第一设备向第二设备发送的数据获取请求中还携带所述第一数据的数据标识;所述第二设备至少根据接收到的数据获取请求携带的密钥标识获取第一数据密文,包括:所述第一设备根据接收到的数据获取请求携带的密钥标识及数据标识,获取所述第一数据密文。可选的,所述第一设备向所述第二设备发送的数据获取请求中不仅携带与所述第一数据对应的密钥标识,还携带用双方共享的秘密信息对所述密钥标识加密后的密钥标识密文;所述第二设备接收所述数据获取请求后,包括:用所述双方共享的秘密信息对所述数据获取请求中的密钥标识密文解密;并当解密后的密钥标识与所述数据获取请求中携带的密钥标识一致时,执行所述至少根据所述数据获取请求携带的密钥标识获取已存储的第一数据密文,并向第一设备返回应答的步骤。可选的,所述基于所述第一数据密文的、满足所述数据获取请求的第二数据密文包括:所述第一数据密文。可选的,所述第一设备已存储了采用预设散列算法计算得到的所述第一数据的散列值;所述第一设备在获取明文数据之后,包括:采用所述预设散列算法,至少根据所述明文数据计算散列值;判断已存储的所述第一数据的散列值、与计算得到的散列值是否一致,若一致,则保留所述明文数据。可选的,所述第一设备向所述第二设备发送的数据获取请求中还携带计算描述信息;所述第二设备在至少根据所述数据获取请求携带的密钥标识获取第一数据密文之后,在向所述第一设备返回应答之前,包括:基于相应可信平台模块的存储根密钥对所述密钥标识对应的数据密钥的密文解密;用解密后的数据密钥解密所述获取的第一数据密文,得到对应的明文数据;根据所述数据获取请求中携带的计算描述信息,对所述第一数据密文对应的明文数据进行计算,以获取第二数据;用所述解密后的数据密钥对所述第二数据加密,得到所述第二数据密文。可选的,在第二设备向第一设备返回应答之后,包括:用所述第二数据密文替换已存储的所述第一数据密文。可选的,所述第一设备已存储了采用预设散列算法计算得到的所述第一数据的散列值;在所述第二设备获取所述第二数据之后,还包括:采用与所述第一设备相同的预设散列算法,至少根据所述第二数据计算散列值;所述第二设备向所述第一设备返回的应答中还携带所述计算得到的散列值;所述第一设备接收所述第二设备返回的应答后,还包括:用所述应答中的散列值替换已存储的所述第一数据的散列值。可选的,所述第一设备接收所述第二设备返回的应答并获取明文数据之后,包括:采用所述预设散列算法,至少根据所述明文数据计算散列值;判断所述应答中携带的散列值、与计算得到的散列值是否一致,若一致则保留所述明文数据,并执行所述用所述应答中的散列值替换已存储的所述第一数据的散列值的步骤。可选的,所述第一设备和第二设备分别具有可信计算平台,在所述第一设备向第二设备发送数据获取请求之前,包括:所述第一设备和所述第二设备分别向对方发送至少包含可信证书的验证请求,并利用对方发送的验证请求中的信息对对方身份与平台的可信性进行验证;并在所述第一设备和所述第二设备均通过验证后,执行所述第一设备向第二设备发送数据获取请求的步骤;其中,所述可信证书是所述第一设备和所述第二设备分别预先根据授权中心基于系统私钥提供的相应信息获取的、与各自基于身份与平台信息的私钥对应的可信证书。可选的,所述方法在云存储服务网络系统中实施,所述云存储服务网络系统包括:云提供商子系统,和云用户子系统;所述第一设备为云用户子系统中的终端设备;所述第二设备为:云提供商子系统中的提供数据存储服务的设备。此外,本申请还提供一种数据提供方法,所述方法在第一设备中实施,用于向提供数据存储服务的第二设备提供待存储数据;本方法涉及的数据密钥是以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储的;所述方法,包括:根据预设策略选取数据密钥后,基于所述可信平台模块的存储根密钥对所选数据密钥的密文解密,并用解密后的数据密钥对待存储的数据加密;向所述第二设备发送数据存储请求,所述数据存储请求中至少携带所选数据密钥的密钥标识、以及加密后的数据密文。相应的,本申请还提供一种数据提供装置,包括:数据加密单元,用于根据预设策略选取数据密钥后,基于相应可信平台模块的存储根密钥对所选数据密钥的密文解密,并用解密后的数据密钥对待存储的数据加密;存储请求发送单元,用于向第二设备发送数据存储请求,所述数据存储请求中至少携带所选数据密钥的密钥标识、以及加密后的数据密文。此外,本申请还提供另一种数据存储方法,所述方法在为第一设备提供数据存储服务的第二设备上设施;本方法涉及的数据密钥是以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储的;所述方法包括:接收第一设备发送的数据存储请求,所述数据存储请求中至少携带密钥标识、以及加密后的数据密文;根据预设策略以及所述密钥标识,将所述数据密文至少与相应的密钥标识对应存储。相应的,本申请还提供一种数据存储装置,包括:存储请求接收单元,用于接收第一设备发送的数据存储请求,所述数据存储请求中至少携带密钥标识、以及加密后的数据密文;数据密文存储单元,用于根据预设策略以及所述密钥标识,将所述数据密文至少与相应的密钥标识对应存储。此外,本申请还提供一种数据存储系统,包括:根据上述任意一项所述的数据提供装置,以及根据上述任意一项所述的数据存储装置。此外,本申请还提供另一种数据获取方法,所述方法在第一设备中实施,用于从提供数据存储服务的第二设备获取数据,本方法涉及的数据密钥是以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储的;所述方法包括:向所述第二设备发送数据获取请求,所述数据获取请求中至少携带第一数据对应的密钥标识;接收所述第二设备返回的应答后,基于相应可信平台模块的存储根密钥对所述密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的、基于第一数据密文的第二数据密文解密,以获取明文数据。可选的,所述数据获取请求中还携带计算描述信息。相应的,本申请还提供一种数据获取装置,包括:获取请求发送单元,用于向所述第二设备发送数据获取请求,所述数据获取请求中至少携带第一数据对应的密钥标识;明文数据获取单元,用于接收所述第二设备返回的应答后,基于相应可信平台模块的存储根密钥对所述密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的、基于第一数据密文的第二数据密文解密,以获取明文数据。可选的,所述获取请求发送单元发送的数据获取请求中还携带计算描述信息。此外,本申请还提供另一种数据提供方法,所述方法在为第一设备提供数据存储服务的第二设备上实施;本方法涉及的数据密钥是以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储的;所述方法包括:接收第一设备发送的数据获取请求;至少根据所述数据获取请求携带的密钥标识获取第一数据密文;向所述第一设备返回应答,所述应答中至少携带基于所述第一数据密文的、满足所述数据获取请求的第二数据密文。可选的,所述数据获取请求中还携带:计算描述信息;在至少根据所述数据获取请求携带的密钥标识获取第一数据密文之后,在向所述第一设备返回应答之前,包括:基于所述可信平台模块的存储根密钥对所述密钥标识对应的数据密钥的密文解密;用解密后的数据密钥解密所述获取的第一数据密文,得到对应的明文数据;根据所述数据获取请求中携带的计算描述信息,对所述第一数据密文对应的明文数据进行计算,以获取第二数据;用所述解密后的数据密钥对所述第二数据加密,得到所述第二数据密文。相应的,本申请还提供另一种数据提供装置,包括:获取请求接收单元,用于接收第一设备发送的数据获取请求;数据密文获取单元,用于至少根据所述数据获取请求携带的密钥标识获取第一数据密文;数据密文返回单元,用于向所述第一设备返回应答,所述应答中至少携带基于所述第一数据密文的、满足所述数据获取请求的第二数据密文。可选的,所述装置还包括:用于根据第一数据密文进行计算、以生成所述第二数据密文的数据密文计算单元;所述数据密文计算单元,包括:数据密钥解密子单元,用于基于所述可信平台模块的存储根密钥对所述密钥标识对应的数据密钥的密文解密;第一数据密文解密子单元,用于用解密后的数据密钥解密所述获取的第一数据密文,得到对应的明文数据;第二数据计算子单元,用于根据所述数据获取请求中携带的计算描述信息,对所述第一数据密文对应的明文数据进行计算,以获取第二数据;第二数据加密子单元,用于用所述解密后的数据密钥对所述第二数据加密,得到所述第二数据密文。此外,本申请还提供一种数据获取系统,包括:根据上述任意一项所述的一种数据获取装置,以及根据上述任意一项所述的另一种数据提供装置。此外,本申请还提供第三种数据获取方法,所述方法用于获取根据上述任意一项所述的一种数据存储方法存储的数据,本方法涉及的第三设备与第二设备彼此共享至少两对数据密钥、且与第一设备和第二设备共享的数据密钥相同;第三设备将其与第二设备共享的数据密钥以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储;所述数据获取方法,包括:所述第三设备向所述第二设备发送数据获取请求,所述数据获取请求中至少携带第一数据对应的密钥标识;所述第二设备接收所述数据获取请求后,至少根据所述数据获取请求携带的密钥标识获取第一数据密文,并向所述第三设备返回应答,所述应答中至少携带基于所述第一数据密文的、满足所述数据获取请求的第二数据密文;所述第三设备接收所述第二设备返回的应答后,基于相应可信平台模块的存储根密钥对所述数据获取请求携带的密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的第二数据密文解密,以获取明文数据。与现有技术相比,本申请具有以下优点:本申请提供的数据存储方法,第一设备和第二设备彼此共享至少两对数据密钥,并分别将各自的数据密钥以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储;所述第一设备根据预设策略选取数据密钥后,基于相应可信平台模块的存储根密钥对所选数据密钥的密文解密,并用解密后的数据密钥对待存储的数据加密;所述第一设备向所述第二设备发送数据存储请求,所述数据存储请求中至少携带所选数据密钥的密钥标识、以及加密后的数据密文;所述第二设备接收数据存储请求后,根据与所述第一设备相同的预设策略以及所述数据存储请求携带的密钥标识,将所述数据存储请求中的数据密文至少与相应的密钥标识对应存储。由此可见,本申请提供的方法,由于第一设备和第二设备都具有相应的可信平台模块,并且彼此间的共享数据密钥都在各自可信平台模块的存储根密钥的保护之下,因此保证了数据密钥的安全性,相应地,也就保证了第一设备向第二设备上存储数据的安全性。此外,由于第一设备和第二设备彼此的共享数据密钥具有相同的或相应的密钥标识,并且双方都将密钥标识与数据密钥对应存储,同时第二设备为第一设备存储的数据密文,也是与密钥标识对应存储的,因此在保证数据密钥及数据的存储安全的同时,也为第一设备获取其存储的数据密文提供保障。附图说明图1是本申请的一种数据存储方法的实施例的流程图;图2是本申请实施例提供的第一设备向第二设备存储数据的交互示意图;图3是本申请实施例提供的云存储服务系统架构示意图;图4是本申请提供的一种数据获取方法的实施例的流程图;图5是本申请实施例提供的第一设备仅从第二设备获取数据的交互示意图;图6是本申请实施例提供的第一设备委托第二设备进行计算并获取计算后数据的交互示意图;图7是本申请的一种数据提供方法的实施例的流程图;图8是本申请的一种数据提供装置的实施例的示意图;图9是本申请的另一种数据存储方法的实施例的流程图;图10是本申请的一种数据存储装置的实施例的示意图;图11是本申请的一种数据存储系统的实施例的示意图;图12是本申请的另一种数据获取方法的实施例的流程图;图13是本申请的一种数据获取装置的实施例的示意图;图14是本申请的另一种数据提供方法的实施例的流程图;图15是本申请的另一种数据提供装置的实施例的示意图;图16是本申请的一种数据获取系统的实施例的示意图;图17是本申请的第三种数据获取方法的实施例的流程图。具体实施方式在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。在本申请中,分别提供了一种数据存储方法,一种数据获取方法,一种数据提供方法及装置,另一种数据存储方法及相应装置,一种数据存储系统,另一种数据获取方法及相应装置,另一种数据提供方法及相应装置,一种数据获取系统,以及第三种数据获取方法。在下面的实施例中逐一进行详细说明。为了便于理解,先对以下实施例中涉及的概念作简要说明。可信平台模块,是指一种设置于电子设备内部为电子设备提供可信根的可信芯片或者通过软件模拟实现上述功能的软件模块,能够利用嵌入在其内部的存储根密钥为其他密钥和数据提供安全保障。具体可以包括:tpcm(trustedplatformcontrolmodule)芯片或者tpm(trustedplatformmodule)芯片。量子数据密钥,是指具有共享量子密钥串的两个设备通过协商过程、分别从各自共享量子密钥串的相同比特位获取的相同数据密钥,两个设备可以将协商获取的量子数据密钥作为对称密钥对数据进行加解密传输。下面对本申请提供的各个实施例进行描述。请参考图1,其为本申请提供的一种数据存储方法的实施例的流程图,在执行其中的步骤101之前,第一设备和第二设备彼此共享至少两对数据密钥,并分别将各自的数据密钥以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储。其中,所述第一设备和所述第二设备共享的每对数据密钥的密钥标识相同或者具有对应关系。下面进行详细说明。第一设备和第二设备彼此共享至少两对数据密钥。例如:第一设备具有数据密钥key1和key2,第二设备也具有数据密钥key1和key2,那么第一设备和第二设备彼此共享两对数据密钥(key1,key1)和(key2,key2)。第一设备和第二设备共享的每对数据密钥的密钥标识可以相同,仍沿用上面的例子,在第一设备上,key1的密钥标识为1,key2的密钥标识为2,在第二设备上,key1、key2的密钥标识也同样分别为1和2,即:每对数据密钥的密钥标识相同;或者,每对数据密钥的密钥标识具有对应关系(即:密钥标识相应),例如,在第一设备上,key1和key2的密钥标识分别为1和2,在第二设备上,key1和key2的密钥标识分别为101和102,其中第一设备上密钥标识1对应于第二设备上的密钥标识101,第二设备上的密钥标识2对应于第二设备上的密钥标识102,在具体实施时,可以采用表格存储两个设备间的密钥标识的对应关系。优选地,第一设备和第二设备彼此共享的数据密钥可以是量子数据密钥,即:第一设备和第二设备可以通过各自的量子密钥分发设备采用bb84等协议协商出共享量子密钥串,并通过第一设备和第二设备的网络口、或者usb口等接口分别将共享量子密钥串注入第一设备和第二设备中,然后第一设备和第二设备再通过协商从共享量子密钥串中获取共享的量子数据密钥,并为每对共享的量子数据密钥指定相同的密钥标识或者在密钥标识间建立对应关系。采用这种优选实施方式,由于基于量子密钥分发技术获取共享的量子数据密钥,能够提高密钥分发过程的安全性。在下面的文字描述中,重点以量子数据密钥为例进行说明。此外,第一设备和第二设备还分别具有相应的可信平台模块。例如,第一设备本身具有tpm芯片,那么对于第一设备来说该tpm芯片就是其相应的可信平台模块;再如,第二设备为不具有计算功能的存储外设,为所述存储外设提供计算功能的服务器具有tpm芯片,存储外设相关的加解密操作都交由该tpm芯片完成,那么对于第二设备来说该tpm芯片就是其相应的可信平台模块。在分别具有相应的可信平台模块的基础上,第一设备和第二设备分别将各自的数据密钥以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储。即:第一设备和第二设备分别将各自的数据密钥用相应可信平台模块的存储根密钥(storagerootkey—srk)加密,或者用存储根密钥生成的存储密钥(storagekey—sk)加密,加密后的数据密钥密文与相应密钥标识对应存储,即:在两者之间建立对应关系。具体的,数据密钥密文与相应密钥标识可以存储在可信平台模块中,也可以存储在可信平台模块之外的存储空间中。由于srk嵌在可信平台模块内部,不会从其内部移出,sk可以在可信平台模块内部存储、或者被srk加密保护后才可以移出可信平台模块,因此srk和sk通常都具有很高的安全性,不易泄露,从而也保证了用srk或者sk加密后的数据密钥密文的安全性。下面给出一个具体的例子,请参见以下的表一和表二。在本例子中第一设备为客户端设备,第二设备为提供数据存储服务的服务端设备,第一设备和第二设备彼此共享m+1对量子数据密钥,并且每对量子数据密钥的密钥标识相同。其中,第一设备采用其存储密钥sk_c加密量子数据密钥、并与密钥标识对应存储于表一所示的量子数据密钥表中,第二设备采用其存储密钥sk_s加密量子数据密钥、并与密钥标识对应存储于表二所示的量子数据密钥表中。第一设备和第二设备可以将各自的量子数据密钥表存储在可信平台模块内部,也可以存储在可信平台模块外部的存储介质中。表一、第一设备的量子数据密钥表量子数据密钥标识量子数据密钥密文0encsk_c(q_key_0)1encsk_c(q_key_1)2encsk_c(q_key_2)…………jencsk_c(q_key_j)…………mencsk_c(q_key_m)表二、第二设备的量子数据密钥表量子数据密钥标识量子数据密钥密文0encsk_s(q_key_0)1encsk_s(q_key_1)2encsk_s(q_key_2)…………jencsk_s(q_key_j)…………mencsk_s(q_key_m)在第一设备和第二设备将受存储根密钥保护的数据密钥与密钥标识对应存储后,就可以执行彼此间的数据存储操作了。优选地,为了保证数据存储过程的安全性,第一设备和第二设备分别具有可信计算平台,并且在第一设备向第二设备存储数据之前,可以先对双方身份及平台的可信性进行验证。具体的:第一设备和第二设备分别向对方发送至少包含可信证书的验证请求,并利用对方发送的验证请求中的信息对对方身份与平台的可信性进行验证;并在第一设备和第二设备均通过验证后,再开始执行数据存储过程。其中,所述可信计算平台,是指设置有基于可信芯片或基于软件模拟的可信平台模块,且具有可信信任链传递功能的软硬件执行环境。其中基于可信芯片的可信平台模块包括:tpcm芯片或者tpm芯片。所述可信证书是所述第一设备和所述第二设备分别预先根据授权中心基于系统私钥提供的相应信息获取的、与各自基于身份与平台信息的私钥对应的可信证书。具体的,第一设备和第二设备可以在启动后分别向授权中心发送授权请求,所述请求中携带各自的身份信息和平台信息,在授权中心分别对相应请求方的身份与平台进行验证后,利用其系统私钥、为相应请求方颁发基于其身份及平台信息的私钥及可信证书。对于授权中心为多个管控节点的方式,可以由部分管控节点基于门限密钥共享机制为相应请求方颁发基于所述请求方身份及平台信息的子私钥及子证书,并由相应请求方,即:第一设备或者第二设备自己合成基于自己身份及平台信息的私钥及可信证书。第一设备和第二设备分别将自己的可信证书发送给对方,并根据接收到对方的可信证书对对方身份及平台的可信性进行验证。优选地,第一设备和第二设备还可以将自己的可信度量报告发送给对方,从而双方在进行验证时,可以先根据可信证书进行验证,再根据可信度量报告进行验证。其中,所述可信度量报告(trustedmeasurementreport),是指对可信计算平台进行可信度量得到的结果。若双方都通过验证,说明双方的身份与平台都是可信的,那么就可以执行本实施例以下描述的步骤101-103执行数据存储操作了。当然,上述对身份及平台可信性的验证过程是为了保障数据存数安全的优选实施方式,在具体实施时也可以不执行上述过程。需要说明的是,为了满足不同的应用需求,第一设备可以采用不同的预设策略使用数据密钥。所述预设策略可以是:每个数据密钥仅使用一次,即:针对不同的待存储数据采用不同的数据密钥加密,这种方式可以简称为“一密一次”;所述预设策略也可以是:每个数据密钥可以使用两次或者两次以上,即:不同的待存储数据可以采用同一个数据密钥加密,这种方式可以简称为“一密多次”。“一密一次”可以进一步提高数据存储的安全性,“一密多次”则可以重复使用数据密钥,降低第一设备和第二设备获取共享数据密钥的频率以及对存储空间的占用,在具体实施时可以根据具体需求为第一设备设置相应的预设策略,同时为第二设备也设置相同的预设策略,第二设备根据预设策略进行数据密文的存储。在以下提供的实施方式中,重点以“一密一次”为例进行说明。本实施例提供的一种数据存储方法包括如下步骤:步骤101、第一设备根据预设策略选取数据密钥后,基于相应可信平台模块的存储根密钥对所选数据密钥的密文解密,并用解密后的数据密钥对待存储的数据加密。对于预设策略为“一密一次”的实施方式,第一设备可以从已存储的数据密钥中,选择一个尚未被使用的数据密钥。由于数据密钥是密文,因此基于相应可信平台模块的存储根密钥对所选数据密钥的密文解密。具体的,可以将所选数据密钥的密文导入可信平台模块中,如果数据密钥是采用srk加密的,则用srk对数据密钥密文解密;如果数据密钥是采用sk加密的,则可以将受保护的sk导入可信平台模块,用srk解密,然后再用解密后的sk对数据密钥密文解密。随后用解密后的数据密钥对待存储的数据加密,该加密过程可以在可信平台模块内部执行,也可以在可信平台模块外部执行。在用解密后的数据密钥对待存储的数据加密后,可以将所述解密后的数据密钥销毁,即:从第一设备上删除所选数据密钥的明文,从而可以避免数据密钥的泄漏,保证数据密钥及相关密文数据的安全性。具体实施时,第一设备可以记录加密所述待存储数据所选用的数据密钥的密钥标识,例如:可以将所选数据密钥的密钥标识与所述待存储数据的数据标识对应存储。步骤102、第一设备向第二设备发送数据存储请求,所述数据存储请求中至少携带所选数据密钥的密钥标识、以及加密后的数据密文。本步骤中,第一设备向第二设备发送数据存储请求,数据存储请求中可以携带所述数据密钥的密钥标识和加密后的数据密文。为了取得更优的实施效果,本实施例还提供携带密钥标识密文、或者携带数据散列值等优选实施方式,下面逐一进行说明。优选地,第一设备向第二设备发送数据存储请求之前,可以采用预设散列算法,至少根据所述待存储的数据计算散列值。一方面,可以在数据存储请求中携带所述散列值,以供第二设备验证自己的身份以及数据的完整性;另一方面,也可以在第二设备存储完毕返回确认应答之后,将所述散列值与所选数据密钥的密钥标识对应存储,这样当第一设备需要从第二设备获取所述数据时,可以根据散列值判断获取数据的正确性。在具体实施时,可以单独采用上述两个方面所描述的任一技术方案,也可以结合实施。优选地,在第一设备向第二设备发送数据存储请求之前,为了提高传输过程中的安全性,第一设备可以用与第二设备共享的秘密信息对所选数据密钥的密钥标识加密,在这种情况下,第一设备向第二设备发送的数据存储请求中携带的所选数据密钥的密钥标识,是指密钥标识密文。例如:第一设备可以将通过授权中心获取的私钥注入到第二设备中,从而所述私钥可以作为第一设备和第二设备共享的秘密信息;或者第一设备和第二设备采用相同的预置密钥,作为双方共享的秘密信息。步骤103、第二设备接收数据存储请求后,根据与所述第一设备相同的预设策略以及所述数据存储请求携带的密钥标识,将所述数据存储请求中的数据密文至少与相应的密钥标识对应存储。第二设备接收数据存储请求后,可以在为第一设备隔离的cpu空间中执行本步骤的处理操作。与步骤102相对应,如果数据存储请求中携带的是密钥标识密文,第二设备可以采用与第一设备共享的秘密信息对密钥标识密文解密。如果数据存储请求中还携带了待存储数据的散列值,那么第二设备可以根据所述散列值对第一设备的身份和接收到的数据密文的完整性进行验证。具体包括以下处理过程:1)根据数据存储请求携带的密钥标识,获取自己存储的相应数据密钥;2)基于相应可信平台模块的存储根密钥对所述获取的数据密钥解密,具体解密过程请参见步骤101中的相关描述,此处不再赘述;3)用解密后的数据密钥对从所述数据存储请求中提取的数据密文解密得到明文数据,并采用与第一设备相同的预设散列算法、至少根据所述明文数据计算散列值;4)判断计算得到的散列值与所述数据存储请求中携带的散列值是否一致;若一致,说明针对同一密钥标识,第一设备与自己具有相同的数据密钥,因此第一设备的身份是合法的,同时也说明数据密文的完整性没有被破坏;若不一致,则说明第一设备的身份非法、和/或,数据密文的完整性被破坏。如果通过上述验证过程,说明第一设备身份合法且数据密文是完整的,第二设备可以根据与所述第一设备相同的预设策略,将所述数据存储请求中的数据密文至少与相应的密钥标识对应存储。如果第一设备和第二设备的共享数据密钥的密钥标识相同,所述相应的密钥标识与所述数据存储请求中携带的密钥标识相同;如果第一设备和第二设备的共享数据密钥的密钥标识具有对应关系,那么第二设备可以根据对应关系找到自己维护的、与数据存储请求中携带的密钥标识对应的密钥标识,例如可以查询存储密钥标识对应关系的表格,从而得到所述对应的密钥标识。具体的,对于预设策略为“一密一次”的实施方式,第二设备可以将所述数据存储请求中的数据密文与相应的密钥标识对应存储。在具体实施时,第二设备完成数据密文的存储操作后,可以向第一设备返回确认应答,第一设备接收确认应答后,将步骤101中已计算得到的散列值与其所选数据密钥的密钥标识对应存储,以供以后获取数据时可以利用所述散列值验证获取数据的正确性。至此,通过上述步骤101至103对数据存储过程进行了描述。下面在沿用表一和表二的基础上,给出一个具体例子,本例子中第一设备和第二设备共享的秘密信息为第一设备的私钥su。请参见图2,其为所述具体例子中第一设备向第二设备存储数据的交互示意图,具体包括以下处理过程:1)第一设备向第二设备发送验证请求,所述验证请求中携带第一设备的可信证书和可信度量报告;2)第二设备根据第一设备的可信证书和可信度量报告,对第一设备的身份与平台的可信性进行验证,若通过验证,即:第一设备的身份与平台可信,则执行3),否则流程终止;3)作为响应,第二设备向第一设备发送验证请求,所述验证请求中携带第二设备的可信证书和可信度量报告;4)第一设备根据第二设备的可信证书和可信度量报告,对第二设备的身份与平台的可信性进行验证,若通过验证,即:第一设备的身份与平台可信,则执行5),否则流程终止;5)第一设备选取尚未使用的量子数据密钥q_key_j,采用su对密钥标识j加密,用解密后的q_key_j对待存储数据dataj加密,并根据su和dataj计算散列值,随后在向第二设备发送的数据存储请求中携带密钥标识密文encsu(j)、数据密文encq_key_j(dataj)、以及所述散列值hashsu(dataj);6)第二设备接收第一设备发送的数据存储请求后,用su解密密钥标识密文获取密钥标识j,根据j从量子数据密钥表中获取相应的量子数据密钥q_key_j的密文,然后用解密后的q_key_j对接收到的数据密文解密,得到明文数据,根据su和明文数据计算散列值,如果计算得到的散列值与数据存储请求中携带的散列值相同,则判定第一设备身份合法并且传输过来的数据密文是完整的,并执行第7)步和第10)步,否则流程终止;7)第二设备响应第一设备,即向第一设备发送确认应答,所述确认应答中包含用su对密钥标识j的变体信息f(j)(例如:f(j)=j-1)加密后的密文,即encsu(f(j)),其中f(j)是第一设备和第二设备预先设定的变体信息计算函数,用于对量子数据密钥标识j进行变体计算,发送确认应答后,执行第10)步;8)第一设备收到第二设备的确认应答后,用su对变体信息密文解密,如果获得的值,与自己计算得到的f(j)一致,则认为第二设备合法,执行第9)步;9)第一设备验证第二设备身份后,将5)中计算得到的hashsu(dataj)存储到量子数据密钥表中的、与密钥标识j对应的表项中;10)第二设备将数据存储请求中的数据密文encq_key_j(dataj)与密钥标识j对应存储,例如可以写入存储于可信平台模块外部的量子数据密钥表中的、与密钥标识j对应的表项中,也可以导入可信平台模块内部、并与密钥标识j对应存储。第一设备和第二设备通过执行上述存储过程,可以将第一设备的待存储数据存储到第二设备上,那么第一设备和第二设备上的量子数据密钥表可以分别如以下的表三和表四所示。表三、第一设备的量子数据密钥表表四、第二设备的量子数据密钥表量子数据密钥标识量子数据密钥密文数据密文0encsk_s(q_key_0)encq_key_0(data0)1encsk_s(q_key_1)encq_key_1(data1)2encsk_s(q_key_2)encq_key_2(data2)………………jencsk_s(q_key_j)encq_key_j(dataj)………………mencsk_s(q_key_m)encq_key_m(datam)至此,通过上述描述以及一个具体的例子,以“一密一次”策略为例,对本实施例提供的数据存储方法的实施方式进行了描述。具体实施时,也可以采用“一密多次”策略,整体处理流程与“一密一次”是类似的,不同之处主要在于,采用“一密多次”策略,在步骤101中,第一设备可以任意选取一个数据密钥,在步骤102中,第一设备发送的数据存储请求中还需要携带待存储数据的数据标识,在步骤103中,第二设备将接收到的数据存储请求中的数据密文与相应的密钥标识及所述数据标识对应存储,从而通过“密钥标识+数据标识”可以找到对应的数据密文。对于第一设备存储散列值的实施方式,第一设备可以将数据存储请求中携带的散列值与所选数据密钥的密钥标识及待存储数据的数据标识对应存储。在具体实施时,本实施例提供的数据存储方法可以应用于各种应用场景中,考虑到现有的云存储技术的广泛应用,越来越多的企业或者用户将数据存储在云端的各种设备中,因此可以将上述提供的数据存储方法应用到云存储服务系统中,从而可以为云存储服务系统中的数据存储安全提供有力保障。具体的,本实施例提供的上述数据存储方法可以在云存储服务系统中实施,请参见图3,所述云存储服务系统包括:云提供商子系统和云用户子系统,云提供商子系统设置有授权中心。所述第一设备为云用户子系统中的终端设备;所述第二设备为:云提供商子系统中的提供数据存储服务的设备。针对不同的云存储服务模式,所述云提供商子系统中的提供数据存储服务的设备可以为不同的设备,例如:服务器、无计算功能的存储外设、或者有计算功能的存储外设。下面分别进行说明。1)服务器。服务器通常具有自己的可信平台模块,例如:服务器自带tpm芯片,对于服务器来说该tpm芯片就是其相应的可信平台模块。密钥标识、数据密钥密文、数据密文等信息可以存储在服务器硬盘中,针对数据密钥的加解密操作通常在可信平台模块中执行,对数据的加解密处理通常在服务器为终端设备对应的云用户授权的特定cpu隔离空间中执行。2)无计算功能的存储外设。针对这种存储外设,相应的可信平台模块是指为所述存储外设提供计算服务的机头服务器的可信平台模块。存储外设只提供数据和数据密钥的存储功能,针对数据密钥的加解密操作通常在机头服务器的可信平台模块中执行,数据的加解密处理通常在机头服务器为终端设备对应的云用户授权特定的cpu隔离空间中执行。3)有计算功能的存储外设。有计算功能的存储外设通常有自己的可信平台模块,这种存储外设不仅可以提供数据和数据密钥存储功能,而且可以由自身完成加解密工作。对数据密钥及数据的加解密操作与1)中服务器类似,此处不再赘述。针对云用户子系统中的终端设备、以及云提供商子系统中能够提供数据存储服务的设备(例如上述三种设备之一),通过实施本实施例提供的方法,能够将终端设备的数据存储到云提供商子系统的设备中,并且保证数据存储的安全性。综上所述,本实施例提供的数据存储方法,由于第一设备和第二设备都具有相应的可信平台模块,并且彼此间的共享数据密钥都在各自可信平台模块的存储根密钥的保护之下,因此保证了数据密钥的安全性,相应地,也就保证了第一设备向第二设备上存储数据的安全性。此外,由于第一设备和第二设备彼此的共享数据密钥具有相同或者相应的密钥标识,并且双方都将密钥标识与数据密钥对应存储,同时第二设备为第一设备存储的数据密文,也是与密钥标识对应存储的,因此在保证数据密钥及数据安全的同时,也为第一设备获取其存储的数据密文提供保障。在上述实施例中提供了一种数据存储方法,本申请还提供一种数据获取方法,所述方法可以用于获取基于上一实施例所述方法存储的数据。请参考图4,其为本申请提供的一种数据获取方法的实施例的流程图,本实施例与上一实施例内容相同的部分不再赘述,下面重点描述不同之处。本实施例提供的一种数据获取方法,包括以下步骤:步骤401、第一设备向第二设备发送数据获取请求,所述数据获取请求中至少携带第一数据对应的密钥标识。在执行本步骤之前,第一设备和第二设备可以对对方身份及平台的可信性进行验证,并在双方都通过验证后,再开始执行本步骤。具体的验证过程可以参见上一实施例中的相关文字,此处不再赘述。在本实施例中,所述第一数据可以是采用上一实施例所提供的数据存储方法、由第一设备存储在第二设备上的数据,也可以是在上述存储的基础上,经过第二设备计算处理的数据(可以参见本实施例后续关于第一设备委托第二设备进行计算的相关文字描述)。所述第一数据对应的密钥标识,是指第一设备将第一数据存储在第二设备上时进行加密所采用的数据密钥的密钥标识。对于在存储过程中采用“一密一次”策略的应用场景,第一设备发送的数据获取请求中可以携带所述密钥标识。对于在存储过程中采用“一密多次”策略的应用场景,第一设备发送的数据获取请求中可以携带所述密钥标识以及所述第一数据的数据标识。优选地,为了提高数据获取过程的安全性,第一设备向第二设备发送的数据获取请求中不仅可以携带与所述第一数据对应的密钥标识,还可以携带用双方共享的秘密信息对所述密钥标识加密后的密钥标识密文,以供第二设备验证其身份。所述共享的秘密信息可以是第一设备的私钥(第一设备将其注入到第二设备中)或者是双方共享的预置密钥。优选地,当第一设备有针对第一数据的计算需求时,还可以在数据获取请求中携带计算描述信息,从而可以委托第二设备完成计算操作,不仅可以充分利用第二设备的计算能力、而且可以减少通信成本。步骤402、第二设备接收数据获取请求后,至少根据所述数据获取请求携带的密钥标识获取第一数据密文,并向第一设备返回应答,所述应答中至少携带基于所述第一数据密文的、满足所述数据获取请求的第二数据密文。与步骤401相对应,第二设备接收所述数据获取请求后,如果其中还携带了密钥标识密文,第二设备可以用与第一设备共享的秘密信息对密钥标识密文解密,并判断解密后的密钥标识与数据获取请求中携带的密钥标识是否一致,若一致,说明第一设备具有与第二设备共享的秘密信息,可以判定第一设备身份合法,则第二设备可以根据数据获取请求获取已存储的第一数据密文,并向第一设备返回应答。由于第一设备和第二设备共享的每对数据密钥的密钥标识相同或者具有对应关系,因此第二设备可以先根据数据获取请求中携带的密钥标识,确定自己维护的相应密钥标识。然后,对于在存储过程中采用“一密一次”的应用场景,第二设备可以获取与所述相应密钥标识对应存储的第一数据密文;对于在存储过程中采用“一密多次”的应用场景,第二设备可以获取与所述相应密钥标识和数据获取请求携带的数据标识对应存储的第一数据密文。所述应答中携带的基于所述第一数据密文的、满足所述数据获取请求的第二数据密文,可以为所述第一数据密文,即:第二设备可以直接将第一数据密文返回。优选地,如果第二设备获取的数据获取请求中还携带了计算描述信息(例如:可以包含算法描述、以及额外的参数信息等),那么第二设备在返回给第一设备的应答中,可以携带基于第一数据密文进行计算得到的第二数据密文。具体的,第二设备在至少根据所述数据获取请求携带的密钥标识获取第一数据密文之后,可以执行以下操作:基于相应可信平台模块的存储根密钥对所述密钥标识对应的数据密钥的密文解密,即:对自己维护的所述相应密钥标识所对应的数据密钥的密文解密;用解密后的数据密钥解密已获取的第一数据密文,得到对应的明文数据;根据所述数据获取请求中携带的计算描述信息,对所述第一数据密文对应的明文数据进行计算,以获取第二数据;用所述解密后的数据密钥对所述第二数据加密,得到所述第二数据密文。最后将携带第二数据密文的应答返回给第一设备。采用这种方式免除了第一设备进行计算并将第二数据密文发送给第二设备的过程,可以减少通信成本,减少对网络带宽的占用;而且提供数据存储服务的第二设备往往具备比较强的计算能力,因此在第二设备上进行计算,可以提高计算效率。具体实施时,在第二设备获取第二数据之后,还可以采用与第一设备相同的预设散列算法,至少根据所述第二数据计算散列值,并在向第一设备返回的应答中携带所述计算得到的散列值,以供第一设备更新其存储的相应散列值。此外,在第二设备向第一设备返回应答之后,第二设备可以用第二数据密文替换已存储的第一数据密文,即:根据在存储过程中使用数据密钥的策略不同,可以替换与所述相应密钥标识对应存储的第一数据密文,或者替换与所述相应密钥标识及第一数据的数据标识对应存储的第一数据密文。步骤403、第一设备接收第二设备返回的应答后,基于相应可信平台模块的存储根密钥对所述数据获取请求携带的密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的第二数据密文解密,以获取明文数据。第一设备接收第二设备返回的应答后,基于相应可信平台模块的存储根密钥、对步骤401发送的数据获取请求携带的密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的第二数据密文解密,从而获取了所需的明文数据。下面分未委托第二设备进行计算和委托第二设备进行计算两个方面对后续操作做进一步说明。1)未委托第二设备进行计算。在这种情况下,如果第一设备已存储了采用预设散列算法计算得到的所述第一数据的散列值(根据在存储过程中使用数据密钥的策略不同,所述散列值可以是与第一数据对应的密钥标识对应存储的,也可以是与第一数据的密钥标识及数据标识对应存储的),本实施例还提供对第二设备的身份和数据完整性进行验证的优选实时方式。具体的,第一设备在获取明文数据之后,可以采用所述预设散列算法,至少根据所述明文数据计算散列值,并判断已存储的所述第一数据的散列值、与计算得到的散列值是否一致,若一致,说明第二设备知道正确的数据密钥,可以判定第二设备的身份合法,并且传输过来的第二数据密文的完整性并未被破坏,因此可以保留所述明文数据。否则,可以丢弃所述明文数据。2)委托第二设备进行计算在这种情况下,如果第一设备已存储了采用预设散列算法计算得到的所述第一数据的散列值,那么第一设备在接收所述第二设备返回的应答后,还可以用第二设备返回的应答中所携带的散列值替换已存储的所述第一数据的散列值。优选地,在替换第一数据的散列值之前,第一设备可以对第二设备身份及第二数据密文的完整性进行验证。具体的,第一设备接收所述第二设备返回的应答并获取明文数据之后,可以采用预设散列算法,至少根据所述明文数据计算散列值,并判断所述应答中携带的散列值、与计算得到的散列值是否一致,若一致,说明第二设备身份合法、并且传输过来的第二数据密文的完整性并未被破坏,因此可以保留所述明文数据,并执行用所述应答中的散列值替换已存储的所述第一数据的散列值的步骤。否则,可以丢弃所述明文数据。至此,通过上述步骤401至403对数据获取过程进行了描述。下面在沿用表三和表四的基础上,给出两个具体例子,在这两个例子中第一设备和第二设备共享的秘密信息为第一设备的私钥su,并且在之前的数据存储过程中都采用的是“一密一次”策略。请参第一个例子对应的图5,其为第一设备仅从第二设备获取数据的交互示意图,具体包括以下处理过程:1)第一设备向第二设备发送验证请求,所述验证请求中携带第一设备的可信证书和可信度量报告;2)第二设备根据第一设备的可信证书和可信度量报告,对第一设备的身份与平台的可信性进行验证,若通过验证,即:第一设备的身份与平台可信,则执行3),否则流程终止;3)作为响应,第二设备向第一设备发送验证请求,所述验证请求中携带第二设备的可信证书和可信度量报告;4)第一设备根据第二设备的可信证书和可信度量报告,对第二设备的身份与平台的可信性进行验证,若通过验证,即:第一设备的身份与平台可信,则执行5),否则流程终止;5)第一设备用su加密第一数据对应的密钥标识j,并在向第二设备发送的数据获取请求中携带密钥标识j,密钥标识密文encsu(j)、以及用于代表仅获取数据、无需进行计算的符号0;6)第二设备接收到数据获取请求后,获取其中携带的密钥标识j,并用su解密数据获取请求携带的密钥标识密文,如果解密结果与获取的密钥标识一致,则判定第一设备身份合法,执行第7)步,否则流程终止;7)第二设备通过查找如表四所示的量子数据密钥表,得到与密钥标识j对应存储的第一数据密文encq_key_j(dataj),并向第一设备返回包含第二数据密文的应答,因为无需计算,所述第二数据密文就是第一数据密文;8)第一设备接收到第二设备的应答后,用sk_c对密钥标识j对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的第二数据密文解密,以获取明文数据;并根据su和明文数据计算散列值,若计算得到的散列值与第一设备已存储的第一数据的散列值一致,则判定第二设备身份合法、并且接收到的第二数据密文是完整的,因此保留所述明文数据,否则可以丢弃所述明文数据。请参见第二个例子对应的图6,其为第一设备委托第二设备进行计算并获取计算后数据的交互示意图,具体包括以下处理过程:1)~4)与图5所示例子相同,此处不再赘述;5)第一设备用su加密第一数据对应的密钥标识j,并在向第二设备发送的数据获取请求中携带密钥标识j,密钥标识密文encsu(j)、用于代表需进行计算的符号1、以及具体的计算描述信息;6)第二设备接收到数据获取请求后,获取其中携带的密钥标识j,并用su解密数据获取请求携带的密钥标识密文,如果解密结果与数据获取请求携带的密钥标识一致,则判定第一设备身份合法,执行第7)步和第10)步,否则流程终止;7)第二设备执行以下操作:a.通过查找如表四所示的量子数据密钥表,得到与密钥标识j对应存储的第一数据密文encq_key_j(dataj);b.用存储密钥sk_s对相应的量子数据密钥密文encsk_s(q_key_j)解密;c.用解密后的量子数据密钥q_key_j解密第一数据密文encq_key_j(dataj),得到对应的明文数据dataj;d.根据数据获取请求中携带的计算描述信息,计算得到第二数据new_dataj;e.根据su和new_dataj计算散列值hashsu(new_dataj),用q_key_j对new_dataj加密得到第二数据密文encq_key_j(new_dataj);随后向第一设备返回包含所述散列值及第二数据密文的应答;8)第一设备接收到第二设备的应答后,用sk_c对密钥标识j对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的第二数据密文解密,以获取明文数据;并根据su和明文数据计算散列值,若计算得到的散列值与第一设备已存储的第一数据的散列值一致,则判定第二设备身份合法、并且接收到的第二数据密文是完整的,因此保留所述明文数据,否则可以丢弃所述明文数据;9)第一设备用所述应答中的hashsu(new_dataj)替换已存储的第一数据的散列值hashsu(dataj);10)第二设备用第二数据密文encq_key_j(new_dataj)替换与密钥标识j对应存储的第一数据密文encq_key_j(dataj)。至此,通过上述文字以及两个具体的例子,对本实施例提供的数据获取方法的实施方式进行了说明。与上一实施例类似,本实施例体提供的数据获取方法也可以应用于云存储服务系统中,所述云存储服务网络系统包括:云提供商子系统,和云用户子系统;所述第一设备为云用户子系统中的终端设备;所述第二设备为:云提供商子系统中的提供数据存储服务的设备。采用本实施例提供的数据获取方法,云用户终端设备可以从云端设备上获取已存储的数据。特别是对于计算能力有限的终端设备,可以在获取数据的同时委托云端设备进行计算,能够减少通信成本和计算成本,从而减少云用户的负担。综上所述,本实施例提供的数据获取方法,在上一实施例实现数据安全存储的基础上,在可信平台模块的存储根密钥的保护下,通过数据密钥标识、数据密钥、数据密文的对应存储关系,提供相应的数据安全获取方法。此外,本申请还提供一种数据提供方法,所述方法在第一设备中实施,用于向提供数据存储服务的第二设备提供待存储数据;本方法涉及的数据密钥是以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储的。请参考图7,其为本申请提供的一种数据提供方法的实施例的流程图,本实施例与上述方法实施例步骤相同的部分不再赘述,下面重点描述不同之处。本实施例提供的一种信息展示数据提供方法包括以下步骤:步骤701、根据预设策略选取数据密钥后,基于所述可信平台模块的存储根密钥对所选数据密钥的密文解密,并用解密后的数据密钥对待存储的数据加密。步骤702、向所述第二设备发送数据存储请求,所述数据存储请求中至少携带所选数据密钥的密钥标识、以及加密后的数据密文。在上述的实施例中,提供了一种数据提供方法,与之相对应的,本申请还提供一种数据提供装置。请参看图8,其为本申请的一种数据提供装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。本实施例提供的一种数据提供装置,包括:数据加密单元801,用于根据预设策略选取数据密钥后,基于相应可信平台模块的存储根密钥对所选数据密钥的密文解密,并用解密后的数据密钥对待存储的数据加密;存储请求发送单元802,用于向第二设备发送数据存储请求,所述数据存储请求中至少携带所选数据密钥的密钥标识、以及加密后的数据密文。此外,本申请还提供另一种数据存储方法,所述方法在为第一设备提供数据存储服务的第二设备上设施;本方法涉及的数据密钥是以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储的。请参考图9,其为本申请提供的另一种数据存储方法的实施例的流程图,本实施例与上述方法实施例步骤相同的部分不再赘述,下面重点描述不同之处。本实施例提供的另一种数据存储方法包括以下步骤:步骤901、接收第一设备发送的数据存储请求,所述数据存储请求中至少携带密钥标识、以及加密后的数据密文。步骤902、根据预设策略以及所述密钥标识,将所述数据密文至少与相应的密钥标识对应存储。在上述的实施例中,提供了另一种数据存储方法,与之相对应的,本申请还提供一种数据存储装置。请参看图10,其为本申请的一种数据存储装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。本实施例提供的一种数据存储装置,包括:存储请求接收单元1001,用于接收第一设备发送的数据存储请求,所述数据存储请求中至少携带密钥标识、以及加密后的数据密文;数据密文存储单元1002,用于根据预设策略以及所述密钥标识,将所述数据密文至少与相应的密钥标识对应存储。此外,本申请还提供一种数据存储系统,请参考图11,其为本申请提供的一种数据存储系统的实施例的示意图,该系统包括上述实施例所述的一种数据提供装置1101、以及一种数据存储装置1102。所述数据提供装置,可以部署于个人电脑、笔记本电脑、或移动终端设备(例如:智能手机)、或者服务器等设备;所述数据存储装置可以部署于个人电脑或者服务器等设备。此外,本申请还提供另一种数据获取方法,所述方法在第一设备中实施,用于从提供数据存储服务的第二设备获取数据,本方法涉及的数据密钥是以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储的。请参考图12,其为本申请提供的另一种数据获取方法的实施例的流程图,本实施例与上述方法实施例步骤相同的部分不再赘述,下面重点描述不同之处。本实施例提供的另一种数据获取方法包括以下步骤:步骤1201、向第二设备发送数据获取请求,所述数据获取请求中至少携带第一数据对应的密钥标识。所述数据获取请求中还可以携带计算描述信息。步骤1202、接收第二设备返回的应答后,基于相应可信平台模块的存储根密钥对所述密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的、基于第一数据密文的第二数据密文解密,以获取明文数据。在上述的实施例中,提供了另一种数据获取方法,与之相对应的,本申请还提供一种数据获取装置。请参看图13,其为本申请的一种数据获取装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。本实施例提供的一种数据获取装置,包括:获取请求发送单元1301,用于向所述第二设备发送数据获取请求,所述数据获取请求中至少携带第一数据对应的密钥标识;明文数据获取单元1302,用于接收所述第二设备返回的应答后,基于相应可信平台模块的存储根密钥对所述密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的、基于第一数据密文的第二数据密文解密,以获取明文数据。可选的,所述获取请求发送单元发送的数据获取请求中还携带计算描述信息。此外,本申请还提供另一种数据提供方法,所述方法在为第一设备提供数据存储服务的第二设备上实施;本方法涉及的数据密钥是以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储的。请参考图14,其为本申请提供的另一种数据提供方法的实施例的流程图,本实施例与上述方法实施例步骤相同的部分不再赘述,下面重点描述不同之处。本实施例提供的另一种数据提供方法包括以下步骤:步骤1401、接收第一设备发送的数据获取请求。步骤1402、至少根据所述数据获取请求携带的密钥标识获取第一数据密文;步骤1403、向第一设备返回应答,所述应答中至少携带基于所述第一数据密文的、满足所述数据获取请求的第二数据密文。当所述数据获取请求中还携带计算描述信息时,在至少根据所述数据获取请求携带的密钥标识获取第一数据密文之后,在向所述第一设备返回应答之前,可以执行以下操作:基于所述可信平台模块的存储根密钥对所述密钥标识对应的数据密钥的密文解密;用解密后的数据密钥解密所述获取的第一数据密文,得到对应的明文数据;根据所述数据获取请求中携带的计算描述信息,对所述第一数据密文对应的明文数据进行计算,以获取第二数据;用所述解密后的数据密钥对所述第二数据加密,得到所述第二数据密文。在上述的实施例中,提供了另一种数据提供方法,与之相对应的,本申请还提供另一种数据提供装置。请参看图15,其为本申请的另一种数据提供装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。本实施例提供的另一种数据提供装置,包括:获取请求接收单元1501,用于接收第一设备发送的数据获取请求;数据密文获取单元1502,用于至少根据所述数据获取请求携带的密钥标识获取第一数据密文;数据密文返回单元1503,用于向所述第一设备返回应答,所述应答中至少携带基于所述第一数据密文的、满足所述数据获取请求的第二数据密文。可选的,所述装置还包括:用于根据第一数据密文进行计算、以生成所述第二数据密文的数据密文计算单元;所述数据密文计算单元,包括:数据密钥解密子单元,用于基于所述可信平台模块的存储根密钥对所述密钥标识对应的数据密钥的密文解密;第一数据密文解密子单元,用于用解密后的数据密钥解密所述获取的第一数据密文,得到对应的明文数据;第二数据计算子单元,用于根据所述数据获取请求中携带的计算描述信息,对所述第一数据密文对应的明文数据进行计算,以获取第二数据;第二数据加密子单元,用于用所述解密后的数据密钥对所述第二数据加密,得到所述第二数据密文。此外,本申请还提供一种数据获取系统,请参考图16,其为本申请提供的一种数据获取系统的实施例的示意图,该系统包括上述实施例所述的一种数据获取装置1601、以及另一种数据提供装置1602。所述数据获取装置,可以部署于个人电脑、笔记本电脑、或移动终端设备(例如:智能手机)、或者服务器等设备;所述数据提供装置可以部署于个人电脑或者服务器等设备。此外,本申请还提供第三种数据获取方法,用于获取基于上述一种数据存储方法实施例所提供的方法在第二设备上存储的数据。考虑到在具体应用中,第一设备的数据以密文形式存储在第二设备上之后,第三设备(例如:经由第一设备授权的或者与第一设备之间具有信任关系的第三设备)也可能具有访问所述数据的需求,在这种情况下可以采用本实施例提供的方法,实现第三设备对第二设备上已存储数据的安全获取过程。请参考图17,其为本申请提供的第三种数据获取方法的实施例的流程图,本实施例与上述方法实施例步骤相同的部分不再赘述,下面重点描述不同之处。在本实施例中,第三设备与第二设备彼此共享至少两对数据密钥、且与第一设备和第二设备共享的数据密钥相同;与第一设备和第二设备的共享数据密钥具有相同或者相应密钥标识类似,第三设备和第二设备之间的共享数据密钥也具有相同或者相应密钥标识。第三设备所维护的、与所述第二设备共享的数据密钥可以是第二设备采用加密传输方式分发给第三设备的,并且可以由第二设备为第三设备指定相同的密钥标识、或者建立两者之间的密钥标识的对应关系。第三设备将其与第二设备共享的数据密钥以受相应可信平台模块的存储根密钥保护的密文形式、与相应密钥标识对应存储。在上述基础上,本实施例提供的第三种数据获取方法包括以下步骤:步骤1701、第三设备向第二设备发送数据获取请求,所述数据获取请求中至少携带第一数据对应的密钥标识。由于第三设备与第二设备共享的数据密钥、与第一设备和第二设备共享的数据密钥相同,也即,第一设备和第三设备之间也具有共享的数据密钥,并且共享的数据密钥可以具有相同或相应的密钥标识。第一设备将第一数据以密文形式存储在第二设备上之后,可以将第一数据的数据标识、加密所述第一数据所采用的数据密钥的密钥标识,以加密传输的方式发送给第三设备,从而第三设备可以获知自己维护的、与第一数据对应的密钥标识。当第三设备需要获取第一数据时,则可以执行本步骤向第二设备发送数据获取请求,并在数据获取请求中携带第一数据对应的密钥标识,对于“一密多次”的应用场景,在数据获取请求中还可以携带第一数据的数据标识。步骤1702、第二设备接收所述数据获取请求后,至少根据所述数据获取请求携带的密钥标识获取第一数据密文,并向第三设备返回应答,所述应答中至少携带基于所述第一数据密文的、满足所述数据获取请求的第二数据密文。第二设备可以根据数据获取请求携带的密钥标识、或者数据获取请求携带的密钥标识和数据标识,获取第一数据密文,并向第三设备返回包含第二数据密文的应答。所述第二数据密文可以是第一数据密文,如果数据获取请求中还携带计算描述信息,那么第二数据密文也可以是在第一数据密文基础上进行计算和加密操作得到的结果。步骤1703、第三设备接收第二设备返回的应答后,基于相应可信平台模块的存储根密钥对所述数据获取请求携带的密钥标识对应的数据密钥密文解密,并用解密后的数据密钥对所述应答中的第二数据密文解密,以获取明文数据。至此,通过步骤1701-1703对本实施例提供的第三种数据获取方法的实施方式进行了描述,采用本实施例提供的方法,在实现数据安全存储的基础上,在可信平台模块的存储根密钥的保护下,通过数据密钥标识、数据密钥、数据密文的对应存储关系,为非第一设备的其他设备提供相应的数据安全获取方法,便于实现不同设备间的数据共享。本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1