掌桥专利:专业的专利平台
掌桥专利
首页

一种文件加密方法及相关装置

文献发布时间:2023-06-19 11:45:49


一种文件加密方法及相关装置

技术领域

本申请涉及信息技术领域,尤其涉及一种文件加密方法及相关装置。

背景技术

随着智能终端的普及,智能终端已经成为人们日常生活的必需品,但与此同时智能终端的安全问题也日益突出:如:信息泄露、诈骗盗号、木马病毒等。因此,用户对智能终端的安全问题越发看重。为了智能终端内的信息安全,当前智能终端存储系统一般都采用全盘加密或文件加密的方式来保护智能终端内的文件信息。例如:基于现有的通用闪存存储(Universal Flash Storage,UFS)协议的文件加密方法采用的是有限密钥文件加密(total files limited keys)方法,该方法是由处理器中的可信执行环境(Trust ExecuteEnvironment,TEE)一次性把32组初始密钥Class Key配置好,再通过该初始密钥对智能终端内的文件进行加密。但是该方法在以后其他文件的加密过程中,不会再去刷新配置新的Class Key,因此,这种文件加密方法在加密过程中使用的密钥都是固定的32组初始密钥,达不到一文件一密钥的要求,加密级别较低。如果要实现一文件一密钥,那就是每进行一次文件加密前,都需要去切换TEE侧配置一次新的Class Key然后再切换至处理器中的文件管理模块去进行该文件的加密存储,这样就会导致TEE和文件管理模块的频繁交互,使得实际存储效率极低。

因此,如何在智能终端加密保存文件的情况下,同时保证文件加密的存储效率和加密级别,是亟待解决的问题。

发明内容

本申请实施例提供一种文件加密方法及相关设备,在基于UFS传输协议的情况下,同时保证文件加密的存储效率和加密级别。

第一方面,本申请实施例提供了一种文件加密装置,包括:处理器和与上述处理器耦合的通用闪存主机UFS控制器;上述处理器,用于向上述UFS控制器发送第一请求,上述第一请求用于请求对目标文件进行存储;上述UFS控制器,用于:获取上述目标文件对应的目标随机数;根据上述目标随机数和预存储的第一密钥生成上述目标文件对应的第二密钥;通过上述第二密钥对上述目标文件进行加密,得到加密后的目标文件。

通过第一方面提供的装置,UFS控制器在加密不同文件时,可以首先根据相同的初始密钥(第一密钥)和不同文件中的每一个文件对应的随机数,分别生成不同文件的密钥(第二密钥),然后再根据该不同文件中的每一个文件对应的密钥,分别对不同的文件进行加密,使得在文件加密过程中每一个文件所使用的加密密钥均不相同,其中,每一个文件都有唯一的一个随机数与之对应。可以理解的是,由于不同文件之间用于文件加密的密钥不同,可以保证在文件的加密存储后,被加密的文件不容易被攻破,造成信息泄露,该加密方式可以极大地提高文件的加密等级。其次,在每次的文件加密过程中,都可以在相同的初始密钥基础上使用不同的随机数生成文件密钥,可以避免为了提高文件的加密等级,可信执行环境TEE过于频繁的刷新初始密钥,使得文件的加密存储效率低下,浪费资源。因此,通过第一方面所提供的方法可以在基于UFS传输协议的情况下,同时保证文件加密的存储效率和加密级别。

在一种可能实现的方式中,上述UFS控制器还用于:获取上述目标文件。实施本申请实施例,可以对目标文件加密前首先获取目标文件,该目标文件可以是处理器的文件管理系统在生成该文件后,该UFS控制器主动获取的,还可以是处理器的文件管理系统在生成该文件后,该UFS控制器被动接收的。例如:文件管理模块在创建完目标文件后,直接将该目标文件发送至UFS控制器;又例如:文件管理模块在创建完目标文件后,将上述目标文件存储至临时内存中,并将存储地址与第一请求一起发送至UFS控制器,该UFS控制器根据该存储地址获取上述目标文件。

在一种可能实现的方式中,上述UFS控制器,还用于:获取上述目标文件对应的上述第一请求的描述符,上述描述符包括数据单元号DUN;上述UFS控制器,具体用于:将上述目标文件分为多个文件数据块;从上述多个文件数据块中上述DUN对应的一个文件数据块开始,依次根据上述第二密钥将上述多个文件数据块进行加密以得到上述加密后的目标文件。实施本申请实施例,UFS控制器对目标文件加密过程中,需要根据描述符中的DUN确定目标文件的初始加密对象(即,多个文件数据块中上述DUN对应的文件数据块)后,再控制目标文件执行加密存储操作,可以在保证文件加密的存储效率的情况下,提高文件的加密级别。其次,将目标文件分为多个文件数据块,然后使用分组加密算法对目标文件进行加密,也提高了文件加密的加密等级。举例来说,该分组加密算法的区块长度可以是128比特,密钥长度则可以是128比特,192比特或256比特的高级加密标准的加密算法。

在一种可能实现的方式中,上述处理器,还用于:在创建上述目标文件时,生成上述目标文件的上述目标随机数和上述描述符。实施本申请实施例,处理器中的文件管理模块创建目标文件时,可以生成上述目标文件唯一对应的目标随机数,以及目标文件对应的第一请求的描述符。因此,不同文件其所对应的随机数和描述符都是不同的,保证了文件加密的加密等级,提高了加密后的目标文件的破解难度,降低了目标文件泄露的风险。

在一种可能实现的方式中,上述装置还包括与所述处理器、上述UFS控制器分别耦合的动态随机存储器;上述处理器,还用于:将上述描述符根据上述目标随机数扩展,获得扩展后的描述符,上述扩展后的描述符包括上述目标随机数和上述DUN;向上述动态随机存储器发送上述扩展后的描述符;上述UFS控制器具体用于:根据上述第一请求,从上述动态随机存储器中获取上述扩展后的描述符;根据上述扩展后的描述符,获取上述目标随机数和上述DUN。实施本申请实施例,UFS控制器获取目标随机数的方式可以是在生成目标随机数和描述符时,将上述目标随机数添加至该描述符中,即,可以通过扩展描述符的方式,令该扩展后的描述符可以携带目标随机数被保存至动态随机存储器中,上述UFS控制器通过获取扩展后的描述符的方式获取目标随机数。这种获取目标随机数后再根据该目标随机数生成密钥,该密钥的获取方式也保证了只有目标随机数会出现在处理器的文件管理模块(即,软件层面)里,而根密钥(即,第二密钥)是硬件逻辑派生获得的,并不会被软件感知和获取,因此会使得密钥的安全系数提高。

在一种可能实现的方式中,上述装置还包括与所述处理器、上述UFS控制器分别耦合的动态随机存储器;上述处理器,还用于:向上述动态随机存储器发送上述目标随机数;将上述描述符根据上述目标随机数的存储地址以及上述目标随机数的数据长度扩展,获得扩展后的描述符,上述扩展后的描述符包括上述目标随机数的存储地址、上述目标随机数的数据长度以及上述DUN;向上述动态随机存储器发送上述扩展后的描述符;上述UFS控制器具体用于:根据上述第一请求,从上述动态随机存储器中获取上述扩展后的描述符;确定上述扩展后的描述符中的上述目标随机数的存储地址,并根据上述目标随机数的存储地址获取上述目标随机数;根据上述扩展后的描述符获取上述DUN。实施本申请实施例在基于JESD223D协议的情况下,UFS控制器可以通过获取扩展后的描述符中的存储地址来获取目标随机数。这种获取目标随机数后再根据该目标随机数生成密钥,该密钥的获取方式也保证了只有目标随机数会出现在处理器的文件管理模块(即,软件层面)里,而根密钥(即第二密钥)是硬件逻辑派生获得的,并不会被软件感知和获取,因此会使得密钥的安全系数提高,大大降低了不法分子窃取密钥后破解文件的风险。

在一种可能实现的方式中,上述装置还包括与所述处理器、上述UFS控制器分别耦合的动态随机存储器;上述处理器,还用于:向上述动态随机存储器发送上述描述符;向上述UFS控制器中的地址寄存器发送上述目标随机数的存储地址;上述UFS控制器具体用于:根据上述第一请求,从上述动态随机存储器中获取上述描述符;根据上述UFS控制器中地址寄存器存储的上述目标随机数的存储地址,获取上述目标随机数。实施本申请实施例,处理器直接发送目标随机数至UFS控制器中,UFS控制器再根据该目标随机数生成加密的密钥,这种UFS控制器可以通过直接获取目标随机数的存储地址方式来获取目标随机数的方法,也保证了只有目标随机数会出现在处理器(即,软件层面)里,而根密钥(第二密钥)是硬件逻辑派生获得的,并不会被软件感知和获取,因此会使得用于目标文件加密的密钥的安全系数提高,大大降低了不法分子窃取密钥后破解文件的风险,提高了安全等级,而且目标随机数的获取方式也不会影响目标文件的存储效率,节省了资源。

在一种可能实现的方式中,上述装置还包括:与上述UFS控制器耦合的随机数发生器,上述随机数发生器用于生成变量参数,上述变量参数用于生成上述第二密钥;上述UFS控制器,具体用于:根据上述目标随机数和上述变量参数生成第三密钥,其中,上述变量参数包括第一变量和第二变量,上述第一变量用于标识上述第二密钥的位宽,上述第二变量为预设固定位宽的随机数或者标识上述目标文件文件属性的预设固定位宽的数,其中,上述第二变量的上述预设固定位宽由上述第三密钥的位宽确定;根据上述第三密钥和预先存储的上述第一密钥通过派生算法生成上述第二密钥。实施本申请实施例可以根据目标随机数、第一变量参数和第二变量参数生成第三密钥,该第三密钥唯一对应目标文件,进而其根据第三密钥和预先存储的第一密钥生成的第二密钥也是唯一的,因此,一文件一密钥的加密方式,大大提高了文件的加密等级。同时该第二密钥根据第一密钥由硬件逻辑派生出来,软件无法感知和获取,降低了密钥被不法分子窃取后文件被解密的风险。

在一种可能实现的方式中,上述目标随机数为文件属性的随机数,上述目标随机数的位宽包括以下位宽中的一个:128位、192位、256位、512位。实施本申请实施例可以通过不同位数的随机数对目标文件进行加密。可以理解的是,目标随机数是为了对目标文件加密,不同位数的随机数其在加密过程中所使用的加密算法可能相同也有可能不同,当随机数的位数越高时,其对应的加密算法可能就越复杂,即运算过程也就更加繁琐,安全性能就越高,更有利于文件的保护。

在一种可能实现的方式中,上述装置还包括与上述UFS控制器耦合的存储器;上述UFS控制器,用于将上述加密后的目标文件存储至上述存储器;上述存储器,用于存储上述加密后的目标文件。实施本申请实施例,可以通过存储器存储加密后的目标文件,该存储器可以是智能终端的固态硬盘、UFS闪存(UFS Flash)、固态存储器等等,可以使得在智能终端加密文件后,有效保存目标文件。

在一种可能实现的方式中,上述处理器,还用于:向上述UFS控制器发送第二请求,上述第二请求用于请求对上述加密后的目标文件进行读取;上述UFS控制器,还用于:根据上述第二请求,获取上述目标文件对应的上述第二密钥,根据上述第二密钥将上述加密后的目标文件解密后读取。实施本申请实施例,可以在UFS控制器接收到读取加密文件的请求时,可以根据该读取请求获得文件加密时使用的唯一第二密钥对加密文件进行解密读取。只有在有第二密钥的情况下才能够读取目标文件,有利于目标文件的保密,同时该第二密钥是硬件逻辑派生出来,并不会保存在UFS控制器中,软件无法感知和获取,降低了被不法分子窃取的风险。

第二方面,本申请实施例提供了一种文件加密方法,包括:通过处理器向通用闪存主机UFS控制器发送第一请求,上述第一请求用于请求对目标文件进行存储;通过上述UFS控制器获取上述目标文件对应的目标随机数;通过上述UFS控制器根据上述目标随机数和预存储的第一密钥生成上述目标文件对应的第二密钥;通过上述UFS控制器根据上述第二密钥对上述目标文件进行加密,得到加密后的目标文件。

在一种可能实现的方式中,上述方法还包括:通过上述UFS控制器获取上述目标文件。

在一种可能实现的方式中,上述方法还包括:通过上述UFS控制器获取上述目标文件对应的上述第一请求的描述符,上述描述符包括数据单元号DUN;上述通过上述UFS控制器根据上述第二密钥对上述目标文件进行加密,得到加密后的目标文件,包括:通过上述UFS控制器将上述目标文件分为多个文件数据块;通过上述UFS控制器从上述多个文件数据块中上述DUN对应的一个文件数据块开始,依次根据上述第二密钥将上述多个文件数据块进行加密以得到加密后的目标文件。

在一种可能实现的方式中,上述方法还包括:通过上述处理器在创建上述目标文件时,生成上述目标文件的上述目标随机数和上述描述符。

在一种可能实现的方式中,上述方法还包括:通过上述处理器将上述描述符根据上述目标随机数扩展,获得扩展后的描述符,上述扩展后的描述符包括上述目标随机数和上述DUN;通过上述处理器向动态随机存储器发送上述扩展后的描述符;上述通过上述UFS控制器获取上述目标文件对应的目标随机数,包括:通过上述UFS控制器根据上述第一请求,从上述动态随机存储器中获取上述扩展后的描述符;通过上述UFS控制器根据上述扩展后的描述符,获取上述目标随机数和上述DUN。

在一种可能实现的方式中,上述方法还包括:通过上述处理器向动态随机存储器发送上述目标随机数;通过上述处理器将上述描述符根据上述目标随机数的存储地址以及上述目标随机数的数据长度扩展,获得扩展后的描述符,上述扩展后的描述符包括上述目标随机数的存储地址、上述目标随机数的数据长度以及上述DUN;通过上述处理器向上述动态随机存储器发送上述扩展后的描述符;上述通过上述UFS控制器获取上述目标文件对应的目标随机数,包括:通过上述UFS控制器根据上述第一请求,从上述动态随机存储器中获取上述扩展后的描述符;通过上述UFS控制器确定上述扩展后的描述符中的上述目标随机数的存储地址,并根据上述目标随机数的存储地址获取上述目标随机数;上述通过上述UFS控制器获取上述目标文件对应的上述第一请求的描述符,包括:通过上述UFS控制器根据上述扩展后的描述符获取上述DUN。

在一种可能实现的方式中,上述方法还包括:通过上述处理器向动态随机存储器发送上述描述符;通过上述处理器向上述UFS控制器中的地址寄存器发送上述目标随机数的存储地址;上述通过上述UFS控制器获取上述目标文件对应的目标随机数,包括:通过上述UFS控制器根据上述第一请求,从上述动态随机存储器中获取上述描述符;通过上述UFS控制器根据上述UFS控制器中地址寄存器存储的上述目标随机数的存储地址,获取上述目标随机数。

在一种可能实现的方式中,上述方法还包括:通过随机数发生器生成变量参数,上述变量参数用于生成上述第二密钥;上述通过上述UFS控制器根据上述目标随机数和预存储的第一密钥生成上述目标文件对应的第二密钥,包括:通过上述UFS控制器根据上述目标随机数和上述变量参数生成第三密钥,其中,上述变量参数包括第一变量和第二变量,上述第一变量用于标识上述第二密钥的位宽,上述第二变量为预设固定位宽的随机数或者标识上述目标文件文件属性的预设固定位宽的数,其中,上述第二变量的上述预设固定位宽由上述第三密钥的位宽确定;通过上述UFS控制器根据上述第三密钥和预先存储的上述第一密钥通过派生算法生成上述第二密钥。

在一种可能实现的方式中,上述目标随机数为文件属性的随机数,上述目标随机数的位宽包括以下位宽中的一个:128位、192位、256位、512位。

在一种可能实现的方式中,上述方法还包括:通过上述UFS控制器将上述加密后的目标文件存储至存储器;通过上述存储器存储上述加密后的目标文件。

在一种可能实现的方式中,上述方法还包括:通过上述处理器向上述UFS控制器发送第二请求,上述第二请求用于请求对上述加密后的目标文件进行读取;通过上述UFS控制器根据上述第二请求,获取上述目标文件对应的上述第二密钥,根据上述第二密钥将上述加密后的目标文件解密后读取。

第三方面,本申请实施例提供了一种文件加密装置,包括:第一发送单元,用于通过处理器向通用闪存主机UFS控制器发送第一请求,上述第一请求用于请求对目标文件进行存储;第一获取单元,用于通过上述UFS控制器获取上述目标文件对应的目标随机数;密钥单元,用于通过上述UFS控制器根据上述目标随机数和预存储的第一密钥生成上述目标文件对应的第二密钥;加密单元,用于通过上述UFS控制器根据上述第二密钥对上述目标文件进行加密,得到加密后的目标文件。

在一种可能实现的方式中,上述装置还包括:第二获取单元,用于通过上述UFS控制器获取上述目标文件。

在一种可能实现的方式中,上述装置还包括:第三获取单元,用于通过上述UFS控制器获取上述目标文件对应的上述第一请求的描述符,上述描述符包括数据单元号DUN;上述加密单元,具体用于:通过上述UFS控制器将上述目标文件分为多个文件数据块;通过上述UFS控制器从上述多个文件数据块中上述DUN对应的一个文件数据块开始,依次根据上述第二密钥将上述多个文件数据块进行加密以得到上述加密后的目标文件。

在一种可能实现的方式中,上述装置还包括:第一生成单元,用于通过上述处理器在创建上述目标文件时,生成上述目标文件的上述目标随机数和上述描述符。

在一种可能实现的方式中,上述装置还包括:第一扩展单元,用于通过上述处理器将上述描述符根据上述目标随机数扩展,获得扩展后的描述符,上述扩展后的描述符包括上述目标随机数和上述DUN;第二发送单元,用于通过上述处理器向动态随机存储器发送上述扩展后的描述符;上述第一获取单元,具体用于:通过上述UFS控制器根据上述第一请求,从上述动态随机存储器中获取上述扩展后的描述符;通过上述UFS控制器根据上述扩展后的描述符,获取上述目标随机数和上述DUN。

在一种可能实现的方式中,上述装置还包括:第三发送单元,用于通过上述处理器向动态随机存储器发送上述目标随机数;第二扩展单元,用于通过上述处理器将上述描述符根据上述目标随机数的存储地址以及上述目标随机数的数据长度扩展,获得扩展后的描述符,上述扩展后的描述符包括上述目标随机数的存储地址、上述目标随机数的数据长度以及上述DUN;第三发送单元,用于通过上述处理器向上述动态随机存储器发送上述扩展后的描述符;上述第一获取单元,具体用于:通过上述UFS控制器根据上述第一请求,从上述动态随机存储器中获取上述扩展后的描述符;通过上述UFS控制器确定上述扩展后的描述符中的上述目标随机数的存储地址,并根据上述目标随机数的存储地址获取上述目标随机数;上述第三获取单元,具体用于:通过上述UFS控制器根据上述扩展后的描述符获取上述DUN。

在一种可能实现的方式中,上述装置还包括:第四发送单元,用于通过上述处理器向动态随机存储器发送上述描述符;通过上述处理器向上述UFS控制器中的地址寄存器发送上述目标随机数的存储地址;上述第一获取单元,具体用于:通过上述UFS控制器根据上述第一请求,从上述动态随机存储器中获取上述描述符;通过上述UFS控制器根据上述UFS控制器中地址寄存器存储的上述目标随机数的存储地址,获取上述目标随机数。

在一种可能实现的方式中,上述装置还包括:第二生成单元,用于通过随机数发生器生成变量参数,上述变量参数用于生成上述第二密钥;上述密钥单元具体用于:通过上述UFS控制器根据上述目标随机数和上述变量参数生成第三密钥,其中,上述变量参数包括第一变量和第二变量,上述第一变量用于标识上述第二密钥的位宽,上述第二变量为预设固定位宽的随机数或者标识上述目标文件文件属性的预设固定位宽的数,其中,上述第二变量的上述预设固定位宽由上述第三密钥的位宽确定;通过上述UFS控制器根据上述第三密钥和预先存储的上述第一密钥通过派生算法生成上述第二密钥。

在一种可能实现的方式中,上述目标随机数为文件属性的随机数,上述目标随机数的位宽包括以下位宽中的一个:128位、192位、256位、512位。

在一种可能实现的方式中,上述装置还包括:第一存储单元,用于通过上述UFS控制器将上述加密后的目标文件存储至存储器;第二存储单元,用于通过上述存储器存储上述加密后的目标文件。

在一种可能实现的方式中,上述装置还包括:第五发送单元,用于通过上述处理器向上述UFS控制器发送第二请求,上述第二请求用于请求对上述加密后的目标文件进行读取;解密单元,用于通过上述UFS控制器根据上述第二请求,获取上述目标文件对应的上述第二密钥,根据上述第二密钥将上述加密后的目标文件解密后读取。

第四方面,本申请实施例提供了一种芯片系统,该芯片系统包括用于支持上述第一方面中所涉及文件加密的任意一个装置,该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

第五方面,本申请实施例提供了一种计算机存储介质,用于储存为上述第一方面提供的一种文件加密装置所用的计算机软件指令,其包含用于执行上述第一方面所设计的程序。

第六方面,本申请实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第一方面中的文件加密装置所执行的流程。

附图说明

为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。

图1A是本申请实施例提供的一种加密保存录音文件时的应用场景示意图。

图1B是本申请实施例提供的一种保存下载文件的应用场景示意图。

图1C是本申请实施例提供的一种基于UFS控制器的文件加密架构示意图。

图1D是本申请实施例提供的另一种基于UFS控制器的文件加密架构示意图。

图2是本申请实施例提供的一种文件加密装置示意图。

图3是本申请实施例提供的一种文件加密方法的流程示意图。

图4是本申请实施例提供的一种传输请求描述符UTRD的结构示意图。

图5是本申请实施例提供的一种扩展后的描述符UTRD的结构示意图。

图6是本申请实施例提供的一种应用于UFS控制器内的文件加密算法框架示意图。

图7是本申请实施例提供的另一种文件加密装置的结构示意图。

图8是本申请实施例提供的又一种文件加密装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例进行描述。

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。

首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。

(1)通用闪存存储(Universal Flash Storage,UFS),是一种设计用于数码相机、智能终端等电子产品使用的闪存存储规范。在提供高数据传输速度和稳定性的同时,也可以减少用户对于市面上各种存储卡格式的混淆和不同存储卡转接器的使用。其中,UFS闪存(UFS Flash)是手机系统中主流存储媒介之一,可以为手机套片系统的存储媒介,手机SOC芯片和UFS Flash之间交换数据基于mipi ufs协议实现。

(2)固态驱动器(Solid State Drive,SSD),或称固态硬盘,是用固态电子存储芯片阵列而制成的硬盘。SSD由控制单元和存储单元(Flash芯片、DRAM芯片)组成,其芯片的工作温度范围很宽,应用领域广泛。固态硬盘的存储介质通常为两种,一种是采用闪存(Flash芯片)作为存储介质,另外一种是采用DRAM作为存储介质。

(3)高级加密标准(Advanced Encryption Standard,AES),AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。(Rijndael加密法因支持更大的区块,其矩阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤,分别是AddRoundKey,SubBytes,ShiftRows,和MixColumns。

(4)密钥获取函数(Key Derivation Functions,KDF),又可以称为密钥派生函数。密钥派生函数的作用是从一个共享的秘密比特串中派生出密钥数据。在密钥协商过程中,密钥派生函数的作用在密钥交换所获得的共享的秘密比特串上,从中产生所需要的会话密钥,或进一步加密所需要的密钥数据。

(5)中央处理器(Central Processing Unit),简称CPU,是一个计算机的运算核心和控制核心,是信息处理、程序运行的最终执行单元。CPU包含运算逻辑部件、寄存器部件和控制部件等,并具有处理指令、执行操作、控制时间、处理数据等功能。

(6)可信执行环境(Trust execute environment,TEE),它是处理器CPU上的一块区域。这块区域的作用是给数据和代码的执行提供一个更安全的空间,并保证它们的机密性和完整性。

(7)寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)。

(8)物理块(block),是数据库中的最小存储和处理单位,包含块本身的头信息数据或PL/SQL代码。块的大小是可以在安装时选择“自定义安装”来指定,block的容量大小一般在数百KB至数MB之间,每个block包括多个页(page),page的容量大小一般为4KB的倍数(如4KB或者16KB)。

(9)双倍速率同步动态随机存储器(Double Data Rate,DDR),使指定地址、数据的输送和输出主要步骤既独立执行,又保持与CPU完全同步;DDR使用了DLL(Delay LockedLoop,延时锁定回路提供一个数据滤波信号)技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每16次输出一次,并重新同步来自不同存储器模块的数据。

(10)动态随机存取存储器(Dynamic Random Access Memory,DRAM),利用电容内存储电荷的多寡来代表0和1,这就是一个二进制位元(bit),内存的最小单位。即,DRAM是最为常见的系统内存。DRAM只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。

为了便于理解本发明实施例,以下示例性列举本申请中文件加密方法所应用的场景,可以包括如下两个场景:

场景一,用户在使用智能终端时,可以对所产生的相关文件加密保存。

当用户的在使用智能终端(如,手机)时,为了更好的保护用户使用该智能终端时所产生的隐私,需要将使用该智能终端时所产生的文件(如:打游戏时的游戏视频文件,电话通话时录音的音频文件,照相机拍摄的图像文件,编辑备忘录时的文本文件,上网浏览时的浏览记录等等)加密保存,避免因智能终端信息被不法分子的攻击盗取,造成用户的隐私泄露。例如:请参考附图1A,图1A是本申请实施例提供的一种加密保存录音文件时的应用场景示意图。如图1A所示,用户在使用完毕手机的录音功能时,智能终端可以通过SOC芯片将该录音后的音频文件加密后,放入存储器中保存。因此,用户在使用智能终端时,其所产生的相关数据可以加密保存,以保证用户的隐私不被泄露。

场景二,用户通过智能终端连接互联网,下载相关数据文件后,可以对数据文件进行加密保存。

当用户用手机在上网时,浏览到心仪的图片、视频、文件等等,可以将该文件加密保存至手机中,不仅可以更好的存储该文件,还可以防止隐私信息泄露。例如:请参考附图1B,图1B是本申请实施例提供的一种保存下载文件的应用场景示意图。如图1B所示,用户在上网下载文件后,可以通过文件控制模块和UFS控制器控制其加密后,放入存储器中存储,加密后的文件,大大降低了被加密的文件被窃取的风险。因此,用户在使用智能终端下载或接收其他智能终端发送的文件时,对该文件进行加密存储,可以大大避免了重要的信息或者隐私信息泄露机会。

可以理解的是,上述两种应用场景的只是本发明实施例中的几种示例性的实施方式,本发明实施例中的应用场景包括但不仅限于以上应用场景。例如:通过蓝牙接收的文件进行加密保存、智能终端运行相关应用后产生的系统文件加密保存等等。

基于本申请中对应的应用场景,也为了便于理解本发明实施例,下面先对本申请实施例所基于的其中一种系统架构进行描述。请参见图1C,图1C是本申请实施例提供的一种基于UFS控制器的文件加密架构示意图,图1C所示的架构主要以SOC芯片为主体,从文件加密存储的角度进行描述,可应用于上述图1A与上述图1B所示的应用场景中。本申请提出的基于UFS控制器的文件加密方法可以应用于该系统架构。该系统架构中包含了处理器101和与所述处理器101耦合的通用闪存主机控制器(Universal Flash Storage HostController,UFSHC),即UFS控制器102,还可以包括:以及与所述UFS控制器102耦合的存储器103、双倍速率动态随机存储控制器(Double Data Rate DRAM controller,DDRC)104,其中,若该加密架构应用在智能终端(如:手机、平板电脑等),UFS控制器102相当于智能终端的固态硬盘(Solid State Disk,SSD),可以理解的是,固态硬盘可以配置在不同的设备中,在不同的设备中对应不同主控的形式,本申请实施例对主控的形式不作限定,比如服务器或者个人电脑等;存储器103相当于UFS闪存(UFS Flash)、固态存储器等等,用于存储加密后的目标文件;双倍速率动态随机存储控制器104用于控制智能终端的临时内存或运行内存,如,动态随机存储器(Dynamic Random Access Memory,DRAM)、双倍速率同步动态随机存储器(Double Data Rate,DDR)等。可选的,请参见图1D,图1D是本申请实施例提供的另一种基于UFS控制器的文件加密架构示意图。在图1C的基础上,该基于UFS控制器的文件加密架构还可以包括与所述UFS控制器102耦合的随机数发生器105。以图1D以处理器101、UFS控制器102、双倍速率动态随机存储控制器104和随机数发生器105集成在SOC芯片内部为例进行说明;可选地,UFS控制器102可以为独立于处理器101的处理器件,通过与处理器101、存储器103连接,执行文件存储、文件读取以及文件加密等操作;而双倍速率动态随机存储控制器103也可以为独立的存储器件,用于控制动态随机存储器存储处理器101生成该目标文件的目标随机数和描述符等等,在此不再赘述。

具体地,当处理器101创建文件时,可以同步生成该文件的目标随机数和描述符,其中,该目标随机数(Meta Data)是随机生成的,带有文件属性的随机数;该描述符在本申请中可以理解为是UFS传输协议传输请求描述符(UTP Transfer Request Descriptor,UTRD)。所述处理器,还用于向所述UFS控制器发送第一请求,所述第一请求用于请求对目标文件进行存储或加密存储。

当UFS控制器102接收到处理器101关于目标文件的第一请求后,可以根据该第一请求去获取第一请求对应的目标文件的目标随机数;再根据所述目标随机数和预存储的第一密钥生成该目标文件对应的第二密钥;然后通过所述第二密钥对所述目标文件进行加密,得到加密后的目标文件;将所述加密后的目标文件存储至所述存储器。

与所述UFS控制器102耦合的随机数发生器105,可以生成变量参数,所述变量参数用于生成用于文件加密的第二密钥。使用第二密钥加密后,该变量参数以及目标随机数和加密后的文件可以一起保存到存储器103中。以便在读取文件时,根据该目标文件对应的变量参数和目标随机数确定第二秘钥,然后再使用相同的第二秘钥去对加密后的文件进行解密读取。其中,随机数发生器104可以是真随机数发生器。

可以理解的是,在配置了处理器101、与所述处理器101耦合的UFS控制器102、以及与所述UFS控制器102耦合的存储器103之后的具体的文件加密场景也适用本申请实施例图示的系统架构,在此不再赘述。

还可以理解的是,存储器与动态随机存储器是两种不同的存储器,存储器用于存储加密后的文件,是长时间存储数据的存储器,即智能终端/系统断电后其存储的加密文件也不会丢失,如:手机内的手机内存;而动态随机存储器是用于临时存储加密前的目标文件、用于存储随机数、描述符等,是短时间存储数据的存储器,即智能终端/系统断电后其存储的临时文件、存储随机数、描述符等会丢失,如:手机内的运行内存。

需要说明是的,处理器101、UFS控制器102以及双倍速率动态随机存储控制器104,可以集成在一个芯片中,也可以分别集成在不同的芯片中,本申请实施例对此不作具体的限定。

还需要说明的是,图1C与图1D所示的文件加密系统架构只是本申请实施例中的部分示例性的实施方式,本申请实施例中的文件加密系统架构包括但不仅限于以上文件加密系统架构。

结合图1C和图1D所示的系统架构,本申请实施例还提供了一种应用于智能手机终端的文件加密装置图示,可以应用于图1D所示系统架构,请参见图2,图2是本申请实施例提供的一种文件加密装置示意图。如图2所示,本申请实施例中文件加密装置10可以包括处理器101、与所述处理器101耦合的UFS控制器102、与所述UFS控制器102耦合的存储器103、与所述UFS控制器102和双倍速率动态随机存储控制器104(DDRC)耦合的动态随机存储器DRAM113以及与所述UFS控制器102耦合的随机数发生器105。其中,处理器101的内置逻辑模块可以包括:可信执行环境(Trust Execute Environment,TEE)211和文件管理模块212等。UFS控制器102的内置逻辑模块可以包括:密钥库(Key Store)221等,该密钥库221相当于UFS控制器内部的存储器,其中,密钥库221中还可以包括用于存储目标随机数的存储地址的地址寄存器。动态随机存储器DRAM113的内置逻辑模块可以包括第一存储模块231和第二存储模块232。其中,

处理器中的TEE211可以用于配置文件加密过程中的第一密钥。例如:在文件加密装置所属的智能终端的系统上电启动后或者初始化UFS控制器时,可信执行环境TEE将第一密钥(Class Key)配置到UFS控制器的Key Store中。一般情况下,UFS控制器中只有32组ClassKey,因此使用效率最高的方案之一可以是在初始化UFS控制器时,由TEE一次性配置32组ClassKey至UFS控制器的Key Store中。

处理器中的文件管理模块212可以创建目标文件以进行存储或读取等,还可以在创建目标文件时,同步生成该文件的目标随机数和传输请求描述符UTRD,用于该文件的加密存储和解密读取。

UFS控制器102中的密钥库(Key Store)221相当于UFS控制器内部的存储器/寄存器用于存储处理器中的TEE下发的第一密钥。其中,在一种可能的实现方式中,该存储器还可以包括地址寄存器,该地址寄存器用于保存目标随机数的存储地址,方便UFS控制器根据寄存器存储的存储地址直接获取所述目标随机数,以便目标文件加密。

动态随机存储器113中的第一存储模块231可以用于存储目标随机数。

动态随机存储器113中的第二存储模块232可以用于存储传输请求描述符UTRD。可以理解的是,第一存储模块231与第二存储模块232可以是同一个动态随机存储器中的不同存储区域,也可以是两个不同的动态随机存储器,本申请实施例对比不作具体限定。

随机数发生器105,可以生成变量参数,所述变量参数包括第一变量和第二变量,所述第一变量用于标识所述第二密钥的位宽,所述第二变量为预设固定位宽的随机数或者标识所述目标文件文件属性的预设固定位宽的数,其中,所述第二变量的所述预设固定位宽由所述第三密钥的位宽确定;根据所述第三密钥和预先存储的所述第一密钥通过派生算法生成所述第二密钥。其中,随机数发生器105可以是真随机数发生器。

还需要说明的是,图2所示的文件加密装置结构只是本申请实施例中的部分示例性的实施方式,本申请实施例中的文件加密装置结构包括但不仅限于以上文件加密装置结构。

基于图1C和图1D提供的系统架构,以及图2提供的文件加密装置的结构,结合本申请中提供的文件加密方法,对本申请中提出的技术问题进行具体分析和解决。

参见图3,图3是本申请实施例提供的一种文件加密方法的流程示意图,该方法可应用于上述图1C和图1D中所示的文件加密系统架构和图2所示的文件加密装置中,其中,图2所示的文件加密装置10可以用于支持并执行图3中所示的方法流程步骤S301-步骤S306。

步骤S301:通过处理器向通用闪存主机UFS控制器发送第一请求。

具体地,通过处理器向通用闪存主机UFS控制器发送第一请求,所述第一请求用于请求对目标文件进行存储。可以理解的是,处理器中的文件管理模块可以向UFS控制器发送用于请求对目标文件进行存储的第一请求,例如:该第一请求在本申请中可以为UFS输运请求(UFS Transport ProtocolTransfer Request),即,UTP Transfer Request。可选的,所述第一请求还可以用于请求对目标文件进行加密存储。

可选的,通过所述UFS控制器获取所述目标文件。可以理解的是,当接收到第一请求后,UFS控制器可以获取第一请求中标识或携带的目标文件对其进行加密。其中,UFS控制器获取文件的方式可以包括:UFS控制器接收处理器中的文件管理模块发送的目标文件,例如:文件管理模块在创建完目标文件后,直接将该目标文件发送至UFS控制器;或者,UFS控制器再根据处理器中的文件管理模块发送的第一请求去动态随机存储器(即,临时内存)中获取目标文件,其中,所述动态随机存储器可以用于临时存储处理器中的文件管理模块创建的目标文件,例如:文件管理模块在创建完目标文件后,将所述目标文件存储至动态随机存储器中,并将存储地址与第一请求一起发送至UFS控制器,该UFS控制器根据该存储地址获取所述目标文件。

可选的,通过所述处理器在创建所述目标文件时,生成所述目标文件的所述目标随机数和所述描述符。可以理解的是,处理器中的文件管理模块创建目标文件,可以生成所述目标文件的目标随机数(Meta Data)和传输请求描述符UTRD。其中,该目标随机数可以与目标文件唯一对应,是文件唯一性的标识符,即可以理解的是,不同的文件之间,其文件所对应的随机数之间也不相同,因此,使用与目标文件唯一对应的随机数对目标文件进行加密时可以更好的提高目标文件的加密等级,保证目标文件的信息安全。描述符在本申请实施例可以用于在目标文件加密时提供数据单元编号(Data Unit Numbe,DUN),还需要说明的是,文件对应的描述符有多种(如:用于读取的描述符),不同的命令或请求都会对应不同的描述符,即,不同类型的描述符对应不同的功能。在本申请中所提到的描述符可以理解为是UFS传输协议传输请求描述符(UTP Transfer Request Descriptor,UTRD),当UFS控制器获取到处理器发送的传输请求时,UFS控制器就会去获取该UTRD,以通过UFS控制器实现该UTRD对应的命令和/或功能。同时,在创建所述目标文件时,生成所述目标文件的所述目标随机数和所述描述符,可以保证不同文件其所对应的随机数和描述符都是不同的,保证了文件加密的加密等级,提高了不法分子对加密后的目标文件的的破解难度。

可选的,所述目标随机数为文件属性的随机数,所述目标随机数的位宽包括以下位宽中的一个:128位、192位、256位、512位。需要说明的是,本申请对目标随机数的具体位宽,不做具体的限定,例如:目标随机数的位宽可以为128bit、192bit、256bit、512bit。除了以上四种位宽外,不排除其他数值的位宽同样适用于本申请实施例用于文件加密。可以理解是,目标随机数是为了对目标文件加密,不同位数的随机数其在加密过程中所使用的加密算法可能相同也有可能不同,当随机数的位数越高时,其对应的加密算法可能就越复杂,即运算过程也就更加繁琐,安全性能就越高,更有利于文件的保护。

步骤S302:通过UFS控制器获取目标文件对应的目标随机数。

具体地,通过所述UFS控制器获取所述目标文件对应的目标随机数(Meta Data)。在本申请实施例中,目标随机数可以用于在加密过程中与初始密钥一起,生成用于加密目标文件的文件密钥(即,本申请中的第二密钥),因为目标文件只唯一对应一个目标随机数,所以根据目标随机数确定的文件密钥,可以确保文件密钥的唯一性,因此,UFS控制器在对文件加密前需要首先获得目标随机数。

步骤S303:通过UFS控制器获取目标文件对应的第一请求的描述符。

具体地,通过所述UFS控制器获取所述目标文件对应的所述第一请求的描述符,所述描述符包括数据单元号DUN。请参见图4,图4是本申请实施例提供的一种传输请求描述符UTRD的结构示意图。在目标文件加密过程中,所述UFS控制器需要根据传输请求描述符UTRD中的DUN值(例如:图4所示中的DW1和DW3行所示)确定目标文件的初始加密对象,而且所述目标描述符还包括存储命令的存储地址等(如图4所示中的DW4和DW5行所示),该存储命令可以用于所述UFS控制器根据该存储命令控制目标文件执行加密存储操作。

可以理解的是,本申请实施例对执行步骤S302与步骤S303之间的先后顺序不作具体限定。例如:本申请实施例可以先获取目标文件对应的目标随机数再获取描述符,也可以先获取描述符再获取目标文件对应的目标随机数,还可以目标文件对应的目标随机数与描述符同时获取。

可选的,通过所述处理器将所述描述符根据所述目标随机数扩展,获得扩展后的描述符,所述扩展后的描述符包括所述目标随机数和所述DUN;通过所述处理器向动态随机存储器发送所述扩展后的描述符。所述通过所述UFS控制器获取所述目标文件对应的目标随机数,包括:通过所述UFS控制器根据所述第一请求,从所述动态随机存储器中获取所述扩展后的描述符;通过所述UFS控制器根据所述扩展后的描述符,获取所述目标随机数和所述DUN。可以理解的是,UFS控制器要想通过目标随机数对目标文件进行加密,首先必须要先获取到该目标随机数,而目标随机数是由处理器中的文件管理模块与描述符一起生成的,因此,UFS控制器可以通过获取扩展后的描述符来获取目标随机数,即,在基于JESD223D协议的情况下,UFS控制器获取目标随机数的方式之一。请参见图5,图5是本申请实施例提供的一种扩展后的描述符UTRD的结构示意图。例如,如图5所示,128位的目标随机数处于扩展后的描述符UTRD的DW8-DW11行区域内,需要说明的是,当目标随机数的位数增加时,扩展后的描述符UTRD的行数也随之增加。可以理解的是,处理器中的文件管理模块在生成目标随机数和描述符时,将目标随机数添加至描述符UTRD中,即,可以通过扩展描述符的方式,令该扩展后的描述符UTRD可以携带目标随机数被保存至动态随机存储器中,进而所述UFS控制器可以通过获取扩展后的描述符的方式获取目标随机数,获取目标随机数后再根据该目标随机数生成密钥,该密钥的获取方式保证了只有目标随机数会出现在处理器的文件管理模块(即,软件层面)里,而根密钥(即,第二密钥)是硬件逻辑派生出来的,并不会被软件感知和/或获取,因此会使得密钥的安全系数提高。

可选的,通过所述处理器向动态随机存储器发送所述目标随机数;通过所述处理器将所述描述符根据所述目标随机数的存储地址以及所述目标随机数的数据长度扩展,获得扩展后的描述符,所述扩展后的描述符包括所述目标随机数的存储地址、所述目标随机数的数据长度以及所述DUN;通过所述处理器向所述动态随机存储器发送所述扩展后的描述符;所述通过所述UFS控制器获取所述目标文件对应的目标随机数,包括:通过所述UFS控制器根据所述第一请求,从所述动态随机存储器中获取所述扩展后的描述符;通过所述UFS控制器确定所述扩展后的描述符中的所述目标随机数的存储地址,并根据所述扩展后的描述符中的所述目标随机数的存储地址获取所述目标随机数;所述通过所述UFS控制器获取所述目标文件对应的所述第一请求的描述符,包括:通过所述UFS控制器根据所述扩展后的描述符获取所述DUN。

可以理解的是,处理器中的文件管理模块在生成目标随机数并将该目标随机数存储至动态随机存储器后,可以将目标随机数的存储地址和目标随机数的数据长度添加至描述符UTRD中,即,可以通过扩展描述符的方式,令该扩展后的描述符UTRD可以携带目标随机数的存储地址和数据长度,进而所述UFS控制器可以通过该存储地址和数据长度获取目标随机数,并且扩展后的描述符也可以获取DUN值。例如:扩展方式可以为,在图4所示的描述符中再添加DW8和DW9两行,其中DW8行可以以DW4行的形式添加,DW8行包括了目标随机数的存储地址,DW9行可以以DW5行的形式添加,DW9行包括了目标随机数的数据长度。因此,在基于JESD223D协议的情况下,UFS控制器可以通过获取扩展后的描述符中的存储地址来获取目标随机数。这种获取目标随机数后再根据该目标随机数生成密钥,该密钥的获取方式也保证了只有目标随机数会出现在处理器的文件管理模块(即,软件层面)里,而根密钥(即,第二密钥)第二密钥是根据第一密钥由硬件逻辑派生出来的,并不会被软件感知和获取,因此会使得密钥的安全系数提高,大大降低了不法分子窃取密钥后破解文件的风险。

可选的,通过所述处理器向动态随机存储器发送所述描述符;通过所述处理器向所述UFS控制器中的地址寄存器发送所述目标随机数的存储地址;所述通过所述UFS控制器获取所述目标文件对应的目标随机数,包括:通过所述UFS控制器根据所述第一请求,从所述动态随机存储器中获取所述描述符;通过所述UFS控制器根据所述UFS控制器中地址寄存器存储的所述目标随机数的存储地址,获取所述目标随机数。可以理解的是,UFS控制器要想通过目标随机数对目标文件进行加密,首先必须要先获取到该目标随机数,而目标随机数是由处理器中的文件管理模块与描述符一起生成的,因此,UFS控制器除了可以通过获取扩展后的描述符来获取目标随机数外,还可以接收文件管理模块直接发送至密钥库的地址寄存器中的目标随机数的存储地址,根据该存储地址获取目标随机数。即,可以控制UFS控制器在基于扩展协议的IO Memory/Register Space的情况下,在Register Space(密钥库)中新增Meta Data(目标随机数)的Address地址寄存器,实现方式可以参考该协议中的UTRLBA/UTRLBAU registers部分。还可以理解的是,通过所述处理器向动态随机存储器发送所述目标随机数进行存储。

例如:当UFS控制器收到一个UTP Transfer Request(第一请求)时,通过Address寄存器读取Meta Data的存储地址,再根据该存储地址获取Meta Data。同时UFS控制器也可以在收到一个UTP Transfer Request(第一请求)时通过UTRLBA/UTRLBAU registers从Memory Space(存储器)中读取描述符UTRD。这种文件管理模块直接发送目标随机数至UFS控制器中,UFS控制器再根据该目标随机数生成加密的密钥,该方法也保证了只有目标随机数会出现在处理器的文件管理模块(即,软件层面)里,而第一密钥只存在于可信执行环境TEE和UFS控制器里,使得密钥的安全系数提高。综上所述,本申请实施例可以通过至少三种获取方式获取目标随机数,然后再根据获取的目标随机数生成密钥的方式,保证了密钥只在硬件中存在并不会出现在软件层面,而软件层面只保存有目标随机数,大大降低了密钥泄露的风险,提高了目标文件的加密等级,而且这种目标随机数的获取方式也不会影响目标文件的存储效率,节省了资源。

步骤S304:通过UFS控制器根据目标随机数和预存储的第一密钥生成目标文件对应的第二密钥。

具体地,通过所述UFS控制器根据所述目标随机数和预存储的第一密钥生成所述目标文件对应的第二密钥,其中,第一密钥是硬件配置的初始密钥,第二密钥是用于对目标文件加密的密钥,通过随机数和初始密钥的结合生成用于加密目标文件的文件密钥,可以保证一文件一密钥,提高了加密后目标文件的安全系数。需要说明的是,预存储的第一密钥Class Key(即,初始密钥)是由处理器中的可信执行环境TEE在系统上电启动后或者初始化UFS控制器时,一次性配置至UFS控制器的Key Store中的,本申请实施例在避免了可信执行环境TEE和UFS控制器之间的频繁交互的情况下,通过目标随机数与第一密钥生成了用于文件加密的第二密钥,做到了一文一密,被攻破的可能几乎为零,提高了文件密钥的安全系数,大大降低了被攻破的可能性,同时也提高了使用效率高。

可以理解的是,因为第一密钥是由TEE发送到UFS控制器,但是,第一密钥保存在UFS控制器无法被软件读取,又因为第二密钥是由第一密钥派生获得,所以用于文件加密只有目标随机数会出现在文件管理模块里(软件层面),第一密钥只存在于TEE和UFSHC里面,安全系数提高,所以本申请实施例中的硬件可以实现安全认证(Protection Profile forMobile Device,MDPP)3.0的密钥体系。

可选的,在生成第二密钥之前,还可以通过随机数发生器生成变量参数,所述变量参数用于生成所述第二密钥;所述通过所述UFS控制器根据所述目标随机数和预存储的第一密钥生成所述目标文件对应的第二密钥,包括:通过所述UFS控制器根据所述目标随机数和所述变量参数生成第三密钥,其中,所述变量参数包括第一变量和第二变量,所述第一变量用于标识所述第二密钥的位宽,所述第二变量为预设固定位宽的随机数或者标识所述目标文件文件属性的预设固定位宽的数,其中,所述第二变量的所述预设固定位宽由所述第三密钥的位宽确定;通过所述UFS控制器根据所述第三密钥和预先存储的所述第一密钥通过派生算法生成所述第二密钥。

可以理解是的,根据目标随机数、第一变量参数和第二变量参数生成第三密钥,该第三密钥唯一对应目标文件,进而,其根据第三密钥和预先存储的第一密钥生成的第二密钥也是唯一的,因此,一文件一密钥的加密方式,大大提高了文件的加密等级,降低了文件被窃取的风险。其中,例如:请参考附图6,图6是本申请实施例提供的一种应用于UFS控制器内的文件加密算法框架示意图。如图6所示,第三密钥Fix Data可以根据目标随机数,第一变量L,第二变量label通过根密钥模块fix data GEN生成。即,Fix data Gen有三个输入变量,Mata Data、label、L,输出一个固定位宽的第三密钥Fix Data。其中,L变量是个表示第三密钥的固定位宽的数值,Label变量可以由硬件随机数发生器trng随机产生可以表示目标文件的属性,也可以是一个固定位宽的数值。例如:第三密钥可以由Mata Data、label、L三个变量直接拼接获得。在一种可能实现的方式中,第三密钥Fix Data产生的具体算法还可以详见NIST Special Publication 800-108协议,本申请此处不再赘述。

还可以理解的是,生成第三密钥后,还需要通过所述UFS控制器根据所述第三密钥和预先存储的所述第一密钥通过派生算法生成用于文件加密的第二密钥。还可以理解的是,该第二密钥是硬件逻辑派生出来的,软件无法感知和获取,降低了被不法分子窃取的风险。其中,该派生算法(Key Derivation Functions,KDF)也可以被称为密钥获取函数,该KDF可以包括以下算法中的一个:CMAC算法、HMAC算法等等。例如:如图6所示,第二密钥FEK可以根据第三密钥Fix Data和第一密钥Class Key通过密钥派生模块NIST-KDF生成,其使用的派生算法为256位的CMAC算法。其中,第二密钥FEK的位宽由第三密钥Fix Data和第一密钥Class Key确定。在一种可能实现的方式中,第二密钥FEK产生的具体算法还可以详见NIST Special Publication 800-108协议,本申请此处不再赘述。

步骤S305:通过UFS控制器根据第二密钥对目标文件进行加密,得到加密后的目标文件。

具体地,通过所述UFS控制器根据所述第二密钥对所述目标文件进行加密,得到加密后的目标文件。实施本申请实施例,获得目标文件唯一对应的第二密钥后,可以根据该第二密钥通过加密算法对目标文件进行加密后保存,其中,该加密算法可以为对称式加密算法,例如:加密算法可以包括以下方法中的至少一个:高级加密标准(Advanced EncryptionStandard,AES)、数据加密标准(Data Encryption Standard Lightweight Extension,DESL)、国际数据加密算法(International Data Encryption Algorithm,IDEA)等等。

可选的,所述通过所述UFS控制器根据所述第二密钥对所述目标文件进行加密,得到加密后的目标文件,包括:通过所述UFS控制器将所述目标文件分为多个文件数据块;通过所述UFS控制器从所述多个文件数据块中所述DUN对应的一个文件数据块开始,依次根据所述第二密钥将所述多个文件数据块进行加密以得到所述加密后的目标文件。可以理解的是,本申请实施例可以将目标文件分为多组文件数据块,然后使用高级加密标准中的分组加密算法对目标文件进行加密,该分组加密算法区块长度可以为128比特,密钥长度则可以是128比特,192比特或256比特的加密算法,可以极大的提高文件加密存储的效率,同时也提高了文件加密的加密等级。其中,分组文件块的大小可以为128bit比特、256比特等等,本申请实施例对此不作限定。例如,如图6所示,图6中的plaintext[j]为第j个block的数据明文,大小为128bit;图6中的i为调整参数,在UFS控制器的加密引擎中,第一个block的调整参数初始化于UTRD中的DUN值,后续block的调整参数会根据第一个UTRD中的DUN值进行补偿调整;a[j]是和block[j]相关的计算分量;Cipher Text[j]为第j个block数据明文加密后得到的密文;图6中的AES-ENC(AES128分组加密算法)/AES-DEC(AES128分组解密算法)作为基础加密单元/基础解密单元对目标文件进行加密/解密。UFS控制器从DRAM中获取预定长度(如:128bit)的文件数据(即图6中的plaintext[j])后,用FEK作为文件密钥,以及输入的i等参数,加密后存储到存储器中,最后通知处理器中的文件管理模块存储完成。

步骤S306:通过存储器存储加密后的目标文件。

具体地,通过存储器存储所述加密后的目标文件,加密后存储到所述存储器中,最后通知处理器中的文件管理模块存储完成。可以理解的是,该存储器可以是智能终端的固态硬盘、UFS闪存(UFS Flash)、固态存储器等等,可以使得在智能终端加密文件后,有效保存目标文件。

可选的,通过所述处理器向所述UFS控制器发送第二请求,所述第二请求用于请求对所述加密后的目标文件进行读取;通过所述UFS控制器根据所述第二请求,获取所述目标文件对应的所述第二密钥,根据所述第二密钥将所述加密后的目标文件解密后读取。可以理解是,UFS控制器接收到读取加密文件的请求时,可以根据该读取请求派生出来的第二秘钥对加密文件进行读取并解密。只有在有第二密钥的情况下才能够读取目标文件,有利于目标文件的保密,同时该第二密钥是硬件逻辑派生出来的,软件无法感知和获取,降低了被不法分子窃取的风险。例如:ufshc从ufs device中指定地址读取预定长度的数据后(与加密时获取的文件的预定长度一致),用FEK作为文件密钥,以及输入的i等参数,解密后存储到DRAM指定地址中,最后通知处理器中的文件管理模块读取完成。

实施本申请实施例,UFS控制器可以通过处理器发送的第一请求,获取目标文件对应的随机数;再根据该随机数和预先存储的第一密钥加密后生成第二密钥,最后根据该第二密钥对该目标文件加密。首先在加密不同文件时,可以在相同的初始密钥(第一密钥)的基础上,通过不同文件分别对应的不同随机数,生成不同的文件密钥(第二密钥),最后根据不同文件对应的不同的文件密钥分别对不同的文件加密,其中,每一个文件都有一个唯一的文件密钥与之对应。可以理解的是,由于不同文件之间用于文件加密的密钥不同,可以保证在文件的加密存储后,被加密的文件不容易被攻破,造成信息泄露,该加密方式可以极大地提高文件的加密等级。其次,在每次的文件加密过程中,都可以在相同的初始密钥基础上使用不同的随机数生成文件密钥,可以避免为了提高文件的加密等级,可信执行环境TEE过于频繁的刷新初始密钥,使得文件的加密存储效率低下,浪费资源。再者,这种UFS控制器先获取目标随机数后,再根据该目标随机数生成文件加密的密钥,这种密钥的获取方式保证了加密密钥只存在于硬件层面里,第二密钥是硬件逻辑派生出来的,并不会被软件感知和获取,因此会使得密钥的安全系数大大提高,并且做到了一文一密,被攻破的可能几乎为零,同时也提高了目标文件的加密级别。最后芯片实现能保证TEE和文件管理模块的功能隔离,安全性能最佳,文件存储效率不受影响。

上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的相关装置。

请参见图7,图7是本申请实施例提供的另一种文件加密装置的结构示意图,该文件加密装置20可以包括第一发送单元701,第一获取单元702,密钥单元703,加密单元704,还可以包括第二获取单元705,第三获取单元706,第一生成单元707,第一扩展单元708,第二发送单元709,第三发送单元710,第二扩展单元711,第三发送单元7122,第四发送单元713,第二生成单元714,第五发送单元715,第一存储单元716,第二存储单元717,和解密单元718。其中,各个单元的详细描述如下。

第一发送单元701,用于通过处理器向通用闪存主机UFS控制器发送第一请求,所述第一请求用于请求对目标文件进行存储;

第一获取单元702,用于通过所述UFS控制器获取所述目标文件对应的目标随机数;

密钥单元703,用于通过所述UFS控制器根据所述目标随机数和预存储的第一密钥生成所述目标文件对应的第二密钥;

加密单元704,用于通过所述UFS控制器根据所述第二密钥对所述目标文件进行加密,得到加密后的目标文件。

在一种可能实现的方式中,所述装置还包括:第二获取单元705,用于通过所述UFS控制器获取所述目标文件。

在一种可能实现的方式中,所述装置还包括:第三获取单元706,用于通过所述UFS控制器获取所述目标文件对应的所述第一请求的描述符,所述描述符包括数据单元号DUN;所述加密单元704,具体用于:通过所述UFS控制器将所述目标文件分为多个文件数据块;通过所述UFS控制器从所述多个文件数据块中所述DUN对应的一个文件数据块开始,依次根据所述第二密钥将所述多个文件数据块进行加密以得到所述加密后的目标文件。

在一种可能实现的方式中,所述装置还包括:第一生成单元707,用于通过所述处理器在创建所述目标文件时,生成所述目标文件的所述目标随机数和所述描述符。

在一种可能实现的方式中,所述装置还包括:第一扩展单元708,用于通过所述处理器将所述描述符根据所述目标随机数扩展,获得扩展后的描述符,所述扩展后的描述符包括所述目标随机数和所述DUN;第二发送单元709,用于通过所述处理器向动态随机存储器发送所述扩展后的描述符;所述第一获取单元702,具体用于:通过所述UFS控制器根据所述第一请求,从所述动态随机存储器中获取所述扩展后的描述符;通过所述UFS控制器根据所述扩展后的描述符,获取所述目标随机数和所述DUN。

在一种可能实现的方式中,所述装置还包括:第三发送单元710,用于通过所述处理器向动态随机存储器发送所述目标随机数;第二扩展单元711,用于通过所述处理器将所述描述符根据所述目标随机数的存储地址以及所述目标随机数的数据长度扩展,获得扩展后的描述符,所述扩展后的描述符包括所述目标随机数的存储地址、所述目标随机数的数据长度以及所述DUN;第三发送单元712,用于通过所述处理器向所述动态随机存储器发送所述扩展后的描述符;所述第一获取单元702,具体用于:通过所述UFS控制器根据所述第一请求,从所述动态随机存储器中获取所述扩展后的描述符;通过所述UFS控制器确定所述扩展后的描述符中的所述目标随机数的存储地址,并根据所述目标随机数的存储地址获取所述目标随机数;所述第三获取单元706,具体用于:通过所述UFS控制器根据所述扩展后的描述符获取所述DUN。

在一种可能实现的方式中,所述装置还包括:第四发送单元713,用于通过所述处理器向动态随机存储器发送所述描述符;通过所述处理器向所述UFS控制器中的地址寄存器发送所述目标随机数的存储地址;所述第一获取单元702,具体用于:通过所述UFS控制器根据所述第一请求,从所述动态随机存储器中获取所述描述符;通过所述UFS控制器根据所述UFS控制器中地址寄存器存储的所述目标随机数的存储地址,获取所述目标随机数。

在一种可能实现的方式中,所述装置还包括:第二生成单元714,用于通过随机数发生器生成变量参数,所述变量参数用于生成所述第二密钥;所述密钥单元703具体用于:通过所述UFS控制器根据所述目标随机数和所述变量参数生成第三密钥,其中,所述变量参数包括第一变量和第二变量,所述第一变量用于标识所述第二密钥的位宽,所述第二变量为预设固定位宽的随机数或者标识所述目标文件文件属性的预设固定位宽的数,其中,所述第二变量的所述预设固定位宽由所述第三密钥的位宽确定;通过所述UFS控制器根据所述第三密钥和预先存储的所述第一密钥通过派生算法生成所述第二密钥。

在一种可能实现的方式中,所述目标随机数为文件属性的随机数,所述目标随机数的位宽包括以下位宽中的一个:128位、192位、256位、512位。

在一种可能实现的方式中,所述装置还包括:第一存储单元715,用于通过所述UFS控制器将所述加密后的目标文件存储至存储器;第二存储单元716,用于通过所述存储器存储所述加密后的目标文件。

在一种可能实现的方式中,所述装置还包括:第五发送单元717,用于通过所述处理器向所述UFS控制器发送第二请求,所述第二请求用于请求对所述加密后的目标文件进行读取;解密单元718,用于通过所述UFS控制器根据所述第二请求,获取所述目标文件对应的所述第二密钥,根据所述第二密钥将所述加密后的目标文件解密后读取。

需要说明的是,本申请实施例中所描述的文件加密装置20中各功能单元的功能可参见上述图3中所述的方法实施例中步骤S301-步骤S306的相关描述,此处不再赘述。

如图8所示,图8是本申请实施例提供的又一种文件加密装置的结构示意图,该装置30包括至少一个处理器801,至少一个存储器802、至少一个UFS控制器803。此外,该设备还可以包括天线等通用部件,在此不再详述。

处理器801可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。

UFS控制器803,可以是固态硬盘,由控制单元和存储单元构成。

存储器802可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,所述存储器802用于存储执行以上方案的应用程序代码,并由处理器801和UFS控制器803来控制执行。所述处理器801和UFS控制器803用于执行所述存储器802中存储的应用程序代码。

存储器802存储的代码可执行以上图3提供的文件加密方法,比如通过处理器向通用闪存主机UFS控制器发送第一请求,所述第一请求用于请求对目标文件进行存储;通过所述UFS控制器获取所述目标文件对应的目标随机数;通过所述UFS控制器根据所述目标随机数和预存储的第一密钥生成所述目标文件对应的第二密钥;通过所述UFS控制器根据所述第二密钥对所述目标文件进行加密,得到加密后的目标文件。

需要说明的是,本申请实施例中所描述的文件加密装置30中各功能单元的功能可参见上述图3中所述的方法实施例中的步骤S301-步骤S306相关描述,此处不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务端或者网络设备等,具体可以是计算机设备中的处理器)执行本申请各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(Read-Only Memory,缩写:ROM)或者随机存取存储器(Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 一种数据库文件加密方法、解密方法和相关装置
  • 一种文件加密方法及相关装置
技术分类

06120113047305