CN111566989B - 一种密钥处理方法及装置 - Google Patents
一种密钥处理方法及装置 Download PDFInfo
- Publication number
- CN111566989B CN111566989B CN201880085208.4A CN201880085208A CN111566989B CN 111566989 B CN111566989 B CN 111566989B CN 201880085208 A CN201880085208 A CN 201880085208A CN 111566989 B CN111566989 B CN 111566989B
- Authority
- CN
- China
- Prior art keywords
- key
- file
- execution environment
- trusted execution
- environment
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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
- G06F21/6281—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 at program execution time, where the protection is within the operating system
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种密钥处理方法及装置,该方法包括:在可信执行环境中接收普通运行环境中的文件加密模块发送的初始密钥;在可信执行环境中对初始密钥进行解密处理得到文件密钥;在可信执行环境中将文件密钥存储至存储控制器的密钥寄存器中,普通运行环境中的文件加密模块被禁止访问密钥寄存器;在可信执行环境中获取密钥寄存器中文件密钥的密钥索引,密钥索引用于指示文件密钥在密钥寄存器中的存储位置;在可信执行环境中将密钥索引发送给普通运行环境中的文件加密模块。其中,普通运行环境内的文件加密模块被禁止访问可信执行环境和密钥寄存器,所以在生成文件密钥、写入文件和读取文件的过程中,文件密钥在智能设备内均是安全的。
Description
技术领域
本申请实施例涉及密钥处理技术领域,更具体的说,涉及密钥处理方法及装置。
背景技术
目前,在智能设备写入文件时,需要使用文件密钥对文件进行加密,再将加密后的文件存储至存储器内,以保证文件在智能设备内的安全性。在智能设备读取文件时,需要使用文件密钥对存储器中加密后的文件进行解密以得到文件。由于文件密钥的安全与否直接影响到智能设备内文件的安全性,所以文件密钥在智能设备中的安全性更加重要,下面简要介绍一下现有技术中文件密钥的生成方法。
当前智能设备的***主要包括普通运行环境和可信执行环境。在智能设备启动以后,可信执行环境的模块会对文件密钥的密文进行解密处理得到文件密钥,并将文件密钥发送给普通运行环境内的文件加密模块;然后,普通运行环境内的文件加密模块将文件密钥存储至内存中备用,以便于在智能设备需要写入文件或读取文件时,普通运行环境内的文件加密模块可以使用文件密钥对文件进行加密处理或解密处理。
普通运行环境内运行着很多用户安装的第三方应用软件,如果黑客利用这些第三方应用软件非法破解普通运行环境内的文件加密模块,那么便可通过文件加密模块的接口窃取内存中的文件密钥,进而通过该文件密钥解密智能设备内的文件。因此,现有技术提供的技术方案无法保证文件密钥在智能设备内的安全性。
发明内容
本申请实施例提供一种密钥处理方法及装置,以保证文件密钥在智能设备内的安全性。
本申请实施例是这样实现的:
第一方面,本申请实施例提供了一种密钥处理方法,该方法包括:在可信执行环境中接收普通运行环境中的文件加密模块发送的初始密钥;在可信执行环境中对初始密钥进行解密处理得到文件密钥,文件密钥用于加密文件;在可信执行环境中将文件密钥存储至存储控制器的密钥寄存器中,普通运行环境中的文件加密模块被禁止访问密钥寄存器;在可信执行环境中获取密钥寄存器中文件密钥的密钥索引,密钥索引用于指示文件密钥在密钥寄存器中的存储位置;在可信执行环境中将密钥索引发送给普通运行环境中的文件加密模块。
在第一方面中,普通运行环境内的文件加密模块被禁止访问可信执行环境内的模块或信息,在可信执行环境中生成文件密钥的过程中,普通运行环境内的文件加密模块无法窃取可信执行环境中生成的文件密钥,所以生成文件密钥的过程是安全的。而且,在可信执行环境中生成文件密钥以后,可信执行环境中将文件密钥存储至存储控制器的密钥寄存器中,由于普通运行环境中的文件加密模块被禁止访问密钥寄存器,普通运行环境中的文件加密模块无法窃取存储控制器的密钥寄存器中的文件密钥,所以文件密钥的存储环境也是安全的。另外,可信执行环境中仅将文件密钥的密钥索引发送给普通运行环境中的文件加密模块,以使普通运行环境中的第三方应用软件或其他模块需要写入文件或读取文件的情况下,文件加密模块可以与存储控制器相互配合,文件加密模块将密钥索引发送给存储控制器,以使存储控制器实现对文件的加密或解密,进而实现对文件的写入操作或读取操作。
在一种可能的实现方式中,在可信执行环境中对初始密钥进行解密处理得到文件密钥包括:在可信执行环境中利用第一派生密钥对初始密钥进行解密得到文件密钥。
在一种可能的实现方式中,在可信执行环境中利用第一派生密钥对初始密钥进行解密得到文件密钥之前,方法还包括:在可信执行环境中获取个人识别密码的消息认证码;在可信执行环境中获取私有密钥;在可信执行环境中获取第一加密因子;在可信执行环境中利用私有密钥和第一加密因子对消息认证码进行加密得到第一派生密钥。
在一种可能的实现方式中,在可信执行环境中利用第一派生密钥对初始密钥进行解密得到文件密钥之前,方法还包括:在可信执行环境中获取第一加密因子;在可信执行环境中获取私有密钥;在可信执行环境中利用私有密钥对第一加密因子进行加密得到第一派生密钥。
在一种可能的实现方式中,在可信执行环境中将密钥索引发送给普通运行环境中的文件加密模块以后,方法还包括:在普通运行环境中的文件加密模块接收文件的处理指令;在普通运行环境中的文件加密模块获取文件的密钥类型;在普通运行环境中的文件加密模块获取密钥类型对应的密钥索引;在普通运行环境中的文件加密模块获取初始向量,初始向量用于与文件密钥联合加密文件;在普通运行环境中的文件加密模块根据密钥索引和初始向量生成基于文件的处理请求;在普通运行环境中的文件加密模块向存储控制器发送处理请求。
在一种可能的实现方式中,在普通运行环境中文件加密模块向存储控制器发送处理请求以后,方法还包括:存储控制器接收普通运行环境中的文件加密模块发送的处理请求;存储控制器获取密钥寄存器中的密钥索引对应的文件密钥;存储控制器利用文件密钥和初始向量对文件进行加密得到文件的密文,并将文件的密文存储到存储器中;或者,存储控制器获取存储器中的文件的密文,利用文件密钥和初始向量对文件的密文进行解密得到文件。
其中,由于普通运行环境中的模块或软件被禁止访问密钥寄存器,在写入文件或读取文件的过程中,普通运行环境中的模块或软件无法窃取到密钥寄存器中存储的文件密钥,而且普通运行环境中的模块或软件也无法窃取到存储控制器在加密文件或解密文件的过程中所使用的文件密钥,因此,本申请实施例可以保证在写入文件或读取文件的过程中文件密钥是安全的。
在一种可能的实现方式中,在普通运行环境中获取初始向量包括:在普通运行环境中的文件加密模块获取存储器中初始向量的密文;在普通运行环境中的文件加密模块获取元数据密钥;在普通运行环境中的文件加密模块利用元数据密钥对初始向量的密文进行解密得到初始向量。
在一种可能的实现方式中,在普通运行环境中的文件加密模块获取初始向量后,方法还包括:在所述普通运行环境中的所述文件加密模块获取元数据密钥;在普通运行环境中的文件加密模块利用元数据密钥对初始向量进行加密得到初始向量的密文;在普通运行环境中的文件加密模块将初始向量的密文存储至存储器中。
在一种可能的实现方式中,方法还包括:在可信执行环境中对初始密钥进行解密处理得到元数据密钥;在可信执行环境中将元数据密钥发送给普通运行环境中的文件加密模块。
在一种可能的实现方式中,在可信执行环境中对初始密钥进行解密处理得到元数据密钥包括:在可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥。
在一种可能的实现方式中,在可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥之前,方法还包括:在可信执行环境中获取个人识别密码的消息认证码;在可信执行环境中获取私有密钥;在可信执行环境中获取第二加密因子;在可信执行环境中利用私有密钥和第二加密因子对消息认证码进行加密得到第二派生密钥。
在一种可能的实现方式中,在可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥之前,方法还包括:在可信执行环境中获取第二加密因子;在可信执行环境中获取私有密钥;在可信执行环境中利用私有密钥对第二加密因子进行加密得到第二派生密钥。
第二方面,本申请实施例提供了一种密钥处理方法,该方法包括:存储控制器接收普通运行环境中的文件加密模块发送的基于文件的处理请求,处理请求包括密钥索引,密钥索引用于指示文件密钥存储控制器的密钥寄存器中的存储位置;存储控制器获取密钥寄存器中的密钥索引对应的文件密钥,普通运行环境中的文件加密模块被禁止访问密钥寄存器;存储控制器利用文件密钥对文件进行加密得到文件的密文,并将文件的密文存储到存储器中;或者,存储控制器获取存储器中的文件的密文,利用文件密钥对文件的密文进行解密得到文件。
在第二方面中,由于普通运行环境中的模块或软件被禁止访问密钥寄存器,在写入文件或读取文件的过程中,普通运行环境中的模块或软件无法窃取到密钥寄存器中存储的文件密钥,而且普通运行环境中的模块或软件也无法窃取到存储控制器在加密文件或解密文件的过程中所使用的文件密钥,因此,本申请实施例可以保证在写入文件或读取文件的过程中文件密钥是安全的。
在一种可能的实现方式中,处理请求还包括初始向量;存储控制器利用文件密钥对文件进行加密得到文件的密文包括:存储控制器利用文件密钥和初始向量对文件进行加密得到文件的密文。
在一种可能的实现方式中,处理请求还包括初始向量;存储控制器利用文件密钥对文件的密文进行解密得到文件包括:存储控制器利用文件密钥和初始向量对文件的密文进行解密得到文件。
第三方面,本申请实施例提供了一种密钥处理装置,该装置包括处理器和接口,接口与存储控制器和处理器连接;处理器,用于运行软件指令以产生可信执行环境和普通运行环境并在普通运行环境中实现文件加密模块的功能,并进一步执行以下操作:在可信执行环境中接收普通运行环境中的文件加密模块发送的初始密钥;在可信执行环境中对初始密钥进行解密处理得到文件密钥,文件密钥用于加密文件;在可信执行环境中通过接口将文件密钥存储至存储控制器的密钥寄存器中,普通运行环境中的文件加密模块被禁止访问密钥寄存器;在可信执行环境中通过接口获取密钥寄存器中文件密钥的密钥索引,密钥索引用于指示文件密钥在密钥寄存器中的存储位置;在可信执行环境中将密钥索引发送给普通运行环境中的文件加密模块。
在第三方面中,普通运行环境内的文件加密模块被禁止访问可信执行环境内的模块或信息,在可信执行环境中生成文件密钥的过程中,普通运行环境内的文件加密模块无法窃取可信执行环境中生成的文件密钥,所以生成文件密钥的过程是安全的。而且,在可信执行环境中生成文件密钥以后,可信执行环境中将文件密钥存储至存储控制器的密钥寄存器中,由于普通运行环境中的文件加密模块被禁止访问密钥寄存器,普通运行环境中的文件加密模块无法窃取存储控制器的密钥寄存器中的文件密钥,所以文件密钥的存储环境也是安全的。另外,可信执行环境中仅将文件密钥的密钥索引发送给普通运行环境中的文件加密模块,以使普通运行环境中的第三方应用软件或其他模块需要写入文件或读取文件的情况下,文件加密模块可以与存储控制器相互配合,文件加密模块将密钥索引发送给存储控制器,以使存储控制器实现对文件的加密或解密,进而实现对文件的写入操作或读取操作。
在一种可能的实现方式中,处理器,具体用于在可信执行环境中利用第一派生密钥对初始密钥进行解密得到文件密钥。
在一种可能的实现方式中,处理器,还用于在可信执行环境中获取个人识别密码的消息认证码;在可信执行环境中获取私有密钥;在可信执行环境中获取第一加密因子;在可信执行环境中利用私有密钥和第一加密因子对消息认证码进行加密得到第一派生密钥。
在一种可能的实现方式中,处理器,还用于在可信执行环境中获取第一加密因子;在可信执行环境中获取私有密钥;在可信执行环境中利用私有密钥对第一加密因子进行加密得到第一派生密钥。
在一种可能的实现方式中,处理器,还用于在普通运行环境中实现文件加密模块的如下功能:接收文件的处理指令;获取文件的密钥类型;获取密钥类型对应的密钥索引;获取初始向量,初始向量用于与文件密钥联合加密文件;根据密钥索引和初始向量生成基于文件的处理请求;向存储控制器发送处理请求。
在一种可能的实现方式中,装置还包括存储控制器,存储控制器包括加密装置和密钥寄存器;存储控制器的加密装置,用于接收普通运行环境中的文件加密模块发送的处理请求;获取密钥寄存器中的密钥索引对应的文件密钥;利用文件密钥和初始向量对文件进行加密得到文件的密文,并将文件的密文存储到存储器中;或者,获取存储器中的文件的密文,利用文件密钥和初始向量对文件的密文进行解密得到文件。
在一种可能的实现方式中,处理器,还用于在普通运行环境中实现文件加密模块的如下功能:获取存储器中初始向量的密文;获取元数据密钥;利用元数据密钥对初始向量的密文进行解密得到初始向量。
在一种可能的实现方式中,处理器,还用于在普通运行环境中实现文件加密模块的如下功能:获取元数据密钥;利用元数据密钥对初始向量进行加密得到初始向量的密文;将初始向量的密文存储至存储器中。
在一种可能的实现方式中,处理器,还用于在可信执行环境中对初始密钥进行解密处理得到元数据密钥;在可信执行环境中将元数据密钥发送给普通运行环境中的文件加密模块。
在一种可能的实现方式中,处理器,具体用于在可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥。
在一种可能的实现方式中,处理器,还用于在可信执行环境中获取个人识别密码的消息认证码;在可信执行环境中获取私有密钥;在可信执行环境中获取第二加密因子;在可信执行环境中利用私有密钥和第二加密因子对消息认证码进行加密得到第二派生密钥。
在一种可能的实现方式中,处理器,还用于在可信执行环境中获取第二加密因子;在可信执行环境中获取私有密钥;在可信执行环境中利用私有密钥对第二加密因子进行加密得到第二派生密钥。
第四方面,本申请实施例提供了一种存储控制器,包括加密装置和密钥寄存器;密钥寄存器用于存储文件密钥;加密装置,用于接收普通运行环境中的文件加密模块发送的基于文件的处理请求,处理请求包括密钥索引,密钥索引用于指示文件密钥在密钥寄存器中的存储位置;获取密钥寄存器中的密钥索引对应的文件密钥,普通运行环境中的文件加密模块被禁止访问密钥寄存器;利用文件密钥对文件进行加密得到文件的密文,并将文件的密文存储到存储器中;或者,获取存储器中的文件的密文,利用文件密钥对文件的密文进行解密得到文件。
在第四方面中,由于普通运行环境中的模块或软件被禁止访问密钥寄存器,在写入文件或读取文件的过程中,普通运行环境中的模块或软件无法窃取到密钥寄存器中存储的文件密钥,而且普通运行环境中的模块或软件也无法窃取到加密装置在加密文件或解密文件的过程中所使用的文件密钥,因此,本申请实施例可以保证在写入文件或读取文件的过程中文件密钥是安全的。
在一种可能的实现方式中,处理请求还包括初始向量;加密装置,具体用于利用文件密钥和初始向量对文件进行加密得到文件的密文。
在一种可能的实现方式中,处理请求还包括初始向量;加密装置,具体用于利用文件密钥和初始向量对文件的密文进行解密得到文件。
第五方面,本申请实施例提供了一种密钥处理装置,包括:接收模块,用于在可信执行环境中接收普通运行环境中的文件加密模块发送的初始密钥;第一解密模块,用于在可信执行环境中对初始密钥进行解密处理得到文件密钥,文件密钥用于加密文件;存储模块,用于在可信执行环境中将文件密钥存储至存储控制器的密钥寄存器中,普通运行环境中的文件加密模块被禁止访问密钥寄存器;获取模块,用于在可信执行环境中获取密钥寄存器中文件密钥的密钥索引,密钥索引用于指示文件密钥在密钥寄存器中的存储位置;发送模块,用于在可信执行环境中将密钥索引发送给普通运行环境中的文件加密模块。
在第五方面中,普通运行环境内的文件加密模块被禁止访问可信执行环境内的模块或信息,在可信执行环境中生成文件密钥的过程中,普通运行环境内的文件加密模块无法窃取可信执行环境中生成的文件密钥,所以生成文件密钥的过程是安全的。而且,在可信执行环境中生成文件密钥以后,可信执行环境中将文件密钥存储至存储控制器的密钥寄存器中,由于普通运行环境中的文件加密模块被禁止访问密钥寄存器,普通运行环境中的文件加密模块无法窃取存储控制器的密钥寄存器中的文件密钥,所以文件密钥的存储环境也是安全的。另外,可信执行环境中仅将文件密钥的密钥索引发送给普通运行环境中的文件加密模块,以使普通运行环境中的第三方应用软件或其他模块需要写入文件或读取文件的情况下,文件加密模块可以与存储控制器相互配合,文件加密模块将密钥索引发送给存储控制器,以使存储控制器实现对文件的加密或解密,进而实现对文件的写入操作或读取操作。
在一种可能的实现方式中,第一解密模块,具体用于在可信执行环境中利用第一派生密钥对初始密钥进行解密得到文件密钥。
在一种可能的实现方式中,装置还包括第一加密模块;第一加密模块,用于在可信执行环境中获取个人识别密码的消息认证码;在可信执行环境中获取私有密钥;在可信执行环境中获取第一加密因子;在可信执行环境中利用私有密钥和第一加密因子对消息认证码进行加密得到第一派生密钥。
在一种可能的实现方式中,装置还包括第二加密模块;第二加密模块,用于在可信执行环境中获取第一加密因子;在可信执行环境中获取私有密钥;在可信执行环境中利用私有密钥对第一加密因子进行加密得到第一派生密钥。
在一种可能的实现方式中,装置还包括文件加密模块;文件加密模块,用于在普通运行环境中接收文件的处理指令;在普通运行环境中获取文件的密钥类型;在普通运行环境中获取密钥类型对应的密钥索引;在普通运行环境中获取初始向量;在普通运行环境中根据密钥索引和初始向量生成基于文件的处理请求;在普通运行环境中向存储控制器发送处理请求。
在一种可能的实现方式中,文件加密模块,具体用于在普通运行环境中获取存储器中初始向量的密文;在普通运行环境中获取元数据密钥;在普通运行环境中利用元数据密钥对初始向量的密文进行解密得到初始向量。
在一种可能的实现方式中,文件加密模块,还用于在所述普通运行环境中获取元数据密钥;在普通运行环境中利用元数据密钥对初始向量进行加密得到初始向量的密文;在普通运行环境中将初始向量的密文存储至存储器中。
在一种可能的实现方式中,装置还包括第二解密模块:第二解密模块,用于在可信执行环境中对初始密钥进行解密处理得到元数据密钥;发送模块,还用于在可信执行环境中将元数据密钥发送给普通运行环境中的文件加密模块。
在一种可能的实现方式中,第二解密模块,具体用于在可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥。
在一种可能的实现方式中,装置还包括第三加密模块;第三加密模块,用于在可信执行环境中获取个人识别密码的消息认证码;在可信执行环境中获取私有密钥;在可信执行环境中获取第二加密因子;在可信执行环境中利用私有密钥和第二加密因子对消息认证码进行加密得到第二派生密钥。
在一种可能的实现方式中,装置还包括第四加密模块;第四加密模块,用于在可信执行环境中获取第二加密因子;在可信执行环境中获取私有密钥;在可信执行环境中利用私有密钥对第二加密因子进行加密得到第二派生密钥。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述第一方面或第一方面的任一种可能实现方式中的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述第二方面或第二方面的任一种可能实现方式中的方法。
第八方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行上述第一方面或第一方面的任一种可能实现方式中的方法。
第九方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行上述第二方面或第二方面的任一种可能实现方式中的方法。
附图说明
图1所示的为本申请实施例提供的智能设备的***的示意图;
图2A所示的为本申请实施例提供的智能设备生成文件密钥的示意图;
图2B所示的为一种生成文件密钥的示意图;
图2C所示的为另一种生成文件密钥的示意图;
图2D所示的为一种生成元数据密钥的示意图;
图2E所示的为另一种生成元数据密钥的示意图;
图3A所示的为本申请实施例提供的智能设备写入文件的示意图;
图3B所示的为一种生成写入请求的示意图;
图3C所示的为一种加密文件的示意图;
图4A所示的为本申请实施例提供的智能设备读取文件的示意图;
图4B所示的为一种生成读取请求的示意图;
图4C所示的为一种解密文件的示意图;
图5所示的为本申请实施例提供的密钥处理方法的信令交互图;
图6所示的为本申请实施例提供的密钥处理方法的信令交互图;
图7所示的为本申请实施例提供的密钥处理方法的信令交互图;
图8所示的为本申请实施例提供的一种密钥处理装置的示意图。
具体实施方式
请参见图1所示,图1所示的为本申请实施例提供的智能设备的***的示意图。该智能设备的***包括普通运行环境10、可信执行环境20、***级芯片30、存储器40和内存50。其中,文件加密模块11和第三方应用软件12可在普通运行环境10内运行,密钥管理模块21和口令鉴权模块22可在可信执行环境20内运行,***级芯片30包括存储控制器31、处理器32和接口33,处理器32通过接口33与存储控制器31相连接,接口33可以是用于连接处理器32和存储控制器31的总线或其他连接器件,存储控制器31包括加密装置311和密钥寄存器312。例如,存储器40用于永久存储数据,如果关闭电源或断电,存储器40内的数据不会丢失,例如,存储器40可以为非易失性存储器(non-volatile memory,NVM)。例如,内存50用于暂时存放数据,如果关闭电源或断电,内存50内的数据会丢失,例如,内存50可以为易失性存储器(random access memory,RAM)。而且,存储器40的数量可以为1个或多个,本申请实施例可以使用1个或多个存储器40存储数据。
在图1所示的实施例中,普通运行环境10内的模块或软件被禁止访问可信执行环境20内的模块或信息,普通运行环境10内的文件加密模块11可将初始密钥发送给可信执行环境20内的密钥管理模块21;而且,普通运行环境10中的模块或软件被禁止访问存储控制器31中的密钥寄存器312,普通运行环境10内的文件加密模块11可将处理请求发送给存储控制器31的加密装置311,其中,处理请求可以为写入请求和读取请求。
在图1所示的实施例中,需要注意的是,本申请实施例中的处理器32可以是一种集成电路或其部分,具有信号的处理能力。上述的处理器32可以是通用处理器、数字信号处理器(digital signal processor,DSP)、人工智能处理器、微控制器或微处理器,能够读取并运行存储器40中的软件指令实现相关功能。当然,处理器32也可以读取并运行其他的存储器中的软件指令实现相关功能,并不局限于存储器40。
在图1所示的实施例中,处理器32用于运行软件指令以产生普通运行环境10和可信执行环境20,并在普通运行环境10中实现文件加密模块11的功能,以及在可信执行环境20中实现密钥管理模块21的功能。
存储控制器31可以是一个包括逻辑电路、晶体管或其他硬件的装置,用于实现对存储器40的访问和控制,并可以进一步实现对内存50的访问和控制。其中的加密装置311可以是硬件加速装置或是运行软件的处理器使得该处理器通过运行软件来实现加密装置311的相关功能。密钥寄存器312则是用于实现数据临时存储的寄存器单元。
请参见图2A所示,图2A所示的为本申请实施例提供的智能设备生成文件密钥的示意图。下面介绍本申请实施例生成文件密钥的过程:首先,普通运行环境10中的文件加密模块11将初始密钥发送给可信执行环境20中的密钥管理模块21,其中,初始密钥可以为预先生成的随机数;然后,密钥管理模块21对初始密钥进行解密处理得到文件密钥;其次,密钥管理模块21将该文件密钥存储至***级芯片30的存储控制器31的密钥寄存器312中,普通运行环境10中的文件加密模块11被禁止访问存储控制器31中的密钥寄存器312;再次,密钥管理模块21获取密钥寄存器312中文件密钥的密钥索引,该密钥索引用于指示文件密钥在密钥寄存器312中的存储位置;再次,密钥管理模块21将密钥索引发送给文件加密模块11;最后,文件加密模块11将该文件密钥对应的密钥索引存储至内存50中。
在图2A所示的实施例中,普通运行环境10内的模块或软件被禁止访问可信执行环境20内的模块或信息,在密钥管理模块21生成文件密钥的过程中,普通运行环境10内的模块或软件无法窃取密钥管理模块21生成的文件密钥,所以生成文件密钥的过程是安全的。而且,在密钥管理模块21生成文件密钥以后,密钥管理模块21将文件密钥存储至存储控制器31的密钥寄存器312中,由于普通运行环境10中的模块或软件被禁止访问存储控制器31中的密钥寄存器312,普通运行环境10中的模块或软件无法窃取存储控制器31的密钥寄存器312中的文件密钥,所以文件密钥的存储环境也是安全的。另外,可信执行环境20中的密钥管理模块21仅将文件密钥的密钥索引发送给普通运行环境10中的文件加密模块11,以使普通运行环境10中的第三方应用软件12或其他模块需要写入文件或读取文件的情况下,文件加密模块11可以与存储控制器31相互配合,文件加密模块11将密钥索引发送给存储控制器31,以使存储控制器31实现对文件的加密或解密,进而实现对文件的写入操作或读取操作。
在图2A所示的实施例中,在普通运行环境10中的文件加密模块11将初始密钥发送给可信执行环境20中的密钥管理模块21以前,普通运行环境10中的文件加密模块11便已经与可信执行环境20中的密钥管理模块21协商好当前生成的文件密钥的密钥类型,所以在文件加密模块11将该文件密钥对应的密钥索引存储至内存50中以后,文件加密模块11可以建立文件的密钥索引与密钥类型的映射关系,并将密钥索引与密钥类型的映射关系存储在内存50中。
其中,文件的密钥类型指的是加密不同文件的文件密钥。例如,文件的密钥类型可以为用户文件密钥,用户文件密钥用于加密用户文件;又如,文件的密钥类型还可以为***文件密钥,***文件密钥用于加密***文件。
请参见表1所示,表1所示的为一示例中文件加密模块11在内存50中存储的密钥索引与密钥类型的映射关系表。
密钥索引 | 密钥类型 |
Key1 | 用户文件密钥 |
Key2 | ***文件密钥 |
… | … |
表1
请参见表2所示,表2所示的为一示例中密钥寄存器312存储的密钥索引与文件密钥的映射关系表。
密钥索引 | 文件密钥 |
Key1 | 11111111 |
Key2 | 22222222 |
… | … |
表2
在图2A所示的实施例中,对于智能设备的***首次启动或恢复出厂设置的技术场景而言,在普通运行环境10中的文件加密模块11将初始密钥发送给可信执行环境20中的密钥管理模块21之前,普通运行环境10中的文件加密模块11会先利用随机数产生器生成初始密钥;然后,普通运行环境10中的文件加密模块11将初始密钥存入存储器40中。其中,在智能设备的***首次启动或恢复出厂设置的技术场景中,智能设备的***内并不存在初始密钥,所以普通运行环境10中的文件加密模块11需要生成一个初始密钥,并将初始密钥存入存储器40中,以便于智能设备在重启以后能够在存储器40中获取到初始密钥。
在图2A所示的实施例中,对于智能设备的***开机或重启的技术场景而言,在普通运行环境10中的文件加密模块11将初始密钥发送给可信执行环境20中的密钥管理模块21之前,普通运行环境10中的文件加密模块11可以直接在存储器40中获取初始密钥。其中,在智能设备的***开机或重启的技术场景中,智能设备的***的存储器40中已经存储有初始密钥,所以普通运行环境10中的文件加密模块11可以直接在存储器40中获取初始密钥。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21可以利用第一派生密钥对初始密钥进行解密得到文件密钥。具体的,在可信执行环境20中的密钥管理模块21可以利用高级加密标准(advanced encryption standard,AES)的密码分组链接模式(cipher block chaining,CBC)和第一派生密钥对初始密钥进行解密得到文件密钥。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21利用第一派生密钥对初始密钥进行解密得到文件密钥以前,需要先生成第一派生密钥,下面简要介绍一种生成第一派生密钥的具体方式:首先,在可信执行环境20中的密钥管理模块21获取口令鉴权模块22内的个人识别密码(personal identification number,PIN)的消息认证码(message authentication code,MAC);然后,在可信执行环境20中的密钥管理模块21获取***级芯片30内的私有密钥,其中,私有密钥可以为***级芯片30内一次性编程(one timeprogram,OTP)的HUK(芯片自己的私有对称密钥),该私有密钥无法被普通运行环境10内的软件或模块读取;其次,在可信执行环境20中的密钥管理模块21获取第一加密因子,其中,第一加密因子可以为由***级芯片30中的随机数产生器生成的随机数,当然,第一加密因子也可以为预先生成的固定值;最后,在可信执行环境20中的密钥管理模块21利用私有密钥和第一加密因子对消息认证码进行加密得到第一派生密钥,具体的,在可信执行环境20中的密钥管理模块21可以利用AES-CBC、私有密钥和第一加密因子对消息认证码进行加密得到第一派生密钥。
其中,在可信执行环境20中的密钥管理模块21获取口令鉴权模块22内的个人识别密码的消息认证码之前,可信执行环境20中的口令鉴权模块22会获取用户输入的个人识别密码,个人识别密码可以例如为智能设备的开机密码;然后,可信执行环境20中的口令鉴权模块22会基于个人识别密码生成消息认证码。另外,用户输入个人识别密码的方式有很多。例如,通过数字键盘输入个人识别密码;又如,通过指纹识别的方式输入个人识别密码;再如,通过脸部识别的方式输入个人识别密码。
请参见图2B所示,图2B所示的为一种生成文件密钥的示意图。请结合图2A和图2B所示,首先,可信执行环境20中的密钥管理模块21获取口令鉴权模块22的PIN的MAC,密钥管理模块21获取存储器40中的第一加密因子,密钥管理模块21获取***级芯片30内的OTP中的私有密钥HUK;然后,密钥管理模块21将PIN的MAC、私有密钥HUK和第一加密因子作为AES-CBC加密函数的参数输入,那么AES-CBC加密函数会输出第一派生密钥;其次,密钥管理模块21将第一派生密钥和初始密钥作为AES-CBC解密函数的参数输入,那么AES-CBC解密函数会输出文件密钥。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21利用第一派生密钥对初始密钥进行解密得到文件密钥以前,需要先生成第一派生密钥,下面简要介绍另一种生成第一派生密钥的具体方式:首先,在可信执行环境20中的密钥管理模块21获取第一加密因子,其中,第一加密因子可以为由***级芯片30中的随机数产生器生成的随机数,当然,第一加密因子也可以为预先生成的固定值;然后,在可信执行环境20中的密钥管理模块21获取私有密钥,其中,私有密钥可以为***级芯片30内的私有对称密钥,该私有密钥无法被普通运行环境10内的软件或模块读取;最后,在可信执行环境20中的密钥管理模块21利用私有密钥对第一加密因子进行加密得到第一派生密钥。
请参见图2C所示,图2C所示的为另一种生成文件密钥的示意图。请结合图2A和图2C所示,首先,可信执行环境20中的密钥管理模块21获取存储器40中的第一加密因子,密钥管理模块21获取***级芯片30内的OTP中的私有密钥HUK;然后,密钥管理模块21将私有密钥HUK和第一加密因子作为AES-CBC加密函数的参数输入,那么AES-CBC加密函数会输出第一派生密钥;其次,密钥管理模块21将第一派生密钥和初始密钥作为AES-CBC解密函数的参数输入,那么AES-CBC解密函数会输出文件密钥。
在一种可实现的实施例中,为了保证初始向量的安全性,在可信执行环境20中的密钥管理模块21还可以对初始密钥进行解密处理得到元数据密钥,其中,元数据密钥用于加密初始向量,初始向量用于与文件密钥联合加密文件;然后,密钥管理模块21将元数据密钥发送给普通运行环境10中的文件加密模块11;其次,普通运行环境10中的文件加密模块11建立密钥索引与元数据密钥的映射关系;最后,普通运行环境10中的文件加密模块11将密钥索引与元数据密钥的映射关系存储在内存50中。
请参见表3所示,表3所示的为一示例中文件加密模块11在内存50中存储的密钥索引与元数据密钥的映射关系表。
密钥索引 | 元数据密钥 |
Key3 | 33333333 |
Key4 | 44444444 |
… | … |
表3
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21还可以利用第二派生密钥对初始密钥进行解密得到元数据密钥。具体的,在可信执行环境20中的密钥管理模块21可以利用AES-CBC和第二派生密钥对初始密钥进行解密得到文件密钥。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21利用第二派生密钥对初始密钥进行解密得到元数据密钥以前,需要先生成第二派生密钥,下面简要介绍一种生成第二派生密钥的具体方式:首先,在可信执行环境20中的密钥管理模块21获取个人识别密码的消息认证码;然后,在可信执行环境20中的密钥管理模块21***级芯片30内的私有密钥,其中,私有密钥可以为***级芯片30内OTP的HUK,该私有密钥无法被普通运行环境10内的软件或模块读取;其次,在可信执行环境20中的密钥管理模块21获取第二加密因子,其中,第二加密因子可以为由***级芯片30中的随机数产生器生成的随机数,当然,第二加密因子也可以为预先生成的固定值;最后,在可信执行环境20中的密钥管理模块21利用私有密钥和第二加密因子对消息认证码进行加密得到第二派生密钥,具体的,在可信执行环境20中的密钥管理模块21可以利用AES-CBC、私有密钥和第二加密因子对消息认证码进行加密得到第二派生密钥。
请参见图2D所示,图2D所示的为一种生成元数据密钥的示意图。请结合图2A和图2D所示,首先,可信执行环境20中的密钥管理模块21获取口令鉴权模块22的PIN的MAC,密钥管理模块21获取存储器40中的第二加密因子,密钥管理模块21获取***级芯片30内的OTP中的私有密钥HUK;然后,密钥管理模块21将PIN的MAC、私有密钥HUK和第二加密因子作为AES-CBC加密函数的参数输入,那么AES-CBC加密函数会输出第二派生密钥;其次,密钥管理模块21将第二派生密钥和初始密钥作为AES-CBC解密函数的参数输入,那么AES-CBC解密函数会输出元数据密钥。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21利用第二派生密钥对初始密钥进行解密得到元数据密钥以前,需要先生成第二派生密钥,下面简要介绍生成第二派生密钥的具体方式:在可信执行环境20中的密钥管理模块21获取第二加密因子,其中,第二加密因子可以为由***级芯片30中的随机数产生器生成的随机数,当然,第二加密因子也可以为预先生成的固定值;在可信执行环境20中的密钥管理模块21获取私有密钥,其中,私有密钥可以为***级芯片30内的私有对称密钥,该私有密钥无法被普通运行环境10内的软件或模块读取;在可信执行环境20中的密钥管理模块21利用私有密钥对第二加密因子进行加密得到第二派生密钥。
请参见图2E所示,图2E所示的为另一种生成元数据密钥的示意图。请结合图2A和图2E所示,首先,可信执行环境20中的密钥管理模块21获取存储器40中的第二加密因子,密钥管理模块21获取***级芯片30内的OTP中的私有密钥HUK;然后,密钥管理模块21将私有密钥HUK和第二加密因子作为AES-CBC加密函数的参数输入,那么AES-CBC加密函数会输出第二派生密钥;其次,密钥管理模块21将第二派生密钥和初始密钥作为AES-CBC解密函数的参数输入,那么AES-CBC解密函数会输出元数据密钥。
请参见图3A所示,图3A所示的为本申请实施例提供的智能设备写入文件的示意图。下面介绍本申请实施例写入文件的过程:首先,普通运行环境10中的文件加密模块11接收普通运行环境10中的第三方应用软件12或其他模块发送的基于文件的写入指令;然后,文件加密模块11在内存50中获取密钥索引与密钥类型的映射关系,并根据密钥索引与密钥类型的映射关系获取文件的密钥类型对应的密钥索引;其次,文件加密模块11会利用随机数产生器生成一个随机数,并将该随机数作为文件的初始向量,其中,每个文件的初始向量是不同的,随机数产生器可以设置在普通运行环境10、可信执行环境20或***级芯片30内;再次,文件加密模块11将初始向量存储至存储器40中文件的数据头内,其中,文件包括数据头和数据区,文件的数据头用于存储初始向量等数据,文件的数据区用于存储文件的内容;再次,文件加密模块11根据密钥索引和初始向量生成基于文件的写入请求,文件加密模块11再将写入请求发送至存储控制器31的加密装置311中;再次,存储控制器31内的加密装置311获取写入请求中的密钥索引和初始向量,加密装置311获取密钥寄存器312中的密钥索引对应的文件密钥;最后,加密装置311利用文件密钥和初始向量对文件进行加密得到文件的密文,并将文件的密文存储到存储器40中文件的数据区内。
在图3A所示的实施例中,由于普通运行环境10中的模块或软件被禁止访问存储控制器31中的密钥寄存器312,在写入文件的过程中,普通运行环境10中的模块或软件无法窃取到密钥寄存器312中存储的文件密钥,而且普通运行环境10中的模块或软件也无法窃取到加密装置311在加密文件的过程中所使用的文件密钥,因此,本申请实施例可以保证在写入文件的过程中文件密钥是安全的。
在一种可实现的实施例中,为了保证初始向量的安全性,在文件加密模块11生成初始向量以后,文件加密模块11还可以利用元数据密钥对初始向量进行加密得到初始向量的密文,然后,文件加密模块11会将初始向量的密文存储至存储器40中文件的数据头内。当然,初始向量并不是文件加密或解密所必须的,在加密过程中,加密装置311可以仅使用文件密钥对文件进行加密得到文件的密文,在解密过程中,加密装置311可以仅使用文件密钥对文件的密文进行解密得到文件。
其中,如果初始向量的密文被存储至存储器40中文件的数据头内,在文件加密模块11接收普通运行环境10中的第三方应用软件12或其他模块发送的基于文件的读取指令时,那么文件加密模块11需要先在存储器40中该文件的数据头内获取到初始向量的密文;然后,文件加密模块11需要基于密钥索引与元数据密钥的映射关系获取密钥索引对应的元数据密钥;其次,文件加密模块11利用元数据密钥对初始向量的密文进行解密得到初始向量。此时,文件加密模块11便可以获取到初始向量。
请参见图3B所示,图3B所示的为一种生成写入请求的示意图。请结合图3A和图3B所示,首先,普通运行环境10中的文件加密模块11接收普通运行环境10中的第三方应用软件12或其他模块发送的基于文件的写入指令,文件加密模块11基于密钥类型与密钥索引的映射关系获取文件的密钥类型对应的密钥索引;然后,文件加密模块11利用随机数产生器生成一个随机数,并将该随机数作为文件的初始向量,再将初始向量存储至存储器40中文件的数据头内;最后,文件加密模块11根据密钥索引和初始向量生成基于文件的写入请求。
请参见图3C所示,图3C所示的为一种加密文件的示意图。请结合图3A和图3C所示,首先,文件加密模块11将写入请求发送至存储控制器31的加密装置311中;然后,存储控制器31内的加密装置311获取写入请求中的密钥索引和初始向量;其次,加密装置311获取密钥寄存器312中的密钥索引对应的文件密钥;再次,加密装置311将文件、文件密钥和初始向量作为AES加密函数的参数输入,那么AES加密函数会输出文件的密文;最后,加密装置311将文件的密文存储到存储器40中文件的数据区内。
请参见图4A所示,图4A所示的为本申请实施例提供的智能设备读取文件的示意图。下面介绍本申请实施例读取文件的过程:首先,普通运行环境10中的文件加密模块11接收普通运行环境10中的第三方应用软件12或其他模块发送的基于文件的读取指令;然后,文件加密模块11在内存50中获取密钥索引与密钥类型的映射关系,并根据密钥索引与密钥类型的映射关系获取文件的密钥类型对应的密钥索引;其次,文件加密模块11在存储器40中文件的数据头内获取初始向量,其中,文件包括数据头和数据区,文件的数据头用于存储初始向量等数据,文件的数据区用于存储文件的内容;再次,文件加密模块11根据密钥索引和初始向量生成基于文件的读取请求,文件加密模块11再将读取请求发送至存储控制器31的加密装置311中;再次,加密装置311获取读取请求中的密钥索引和初始向量,加密装置311获取密钥寄存器312中的密钥索引对应的文件密钥;再次,加密装置311利用文件密钥和初始向量对存储器中的文件的密文进行解密得到文件,再将解密得到的文件存入内存50中;最后,普通运行环境10中的第三方应用软件12或其他模块在内存50中读取该文件。
在一种可实现的实施例中,由于普通运行环境10中的模块或软件被禁止访问存储控制器31中的密钥寄存器312,在读取文件的过程中,普通运行环境10中的模块或软件无法窃取到密钥寄存器312中存储的文件密钥,普通运行环境10中的模块或软件也无法窃取到加密装置311在解密文件的过程中所使用的文件密钥,因此,本申请实施例可以保证在读取文件的过程中文件密钥是安全性的。
在一种可实现的实施例中,如果文件加密模块11预先利用元数据密钥对初始向量加密得到初始向量的密文,且将初始向量的密文存储到存储器40中文件的数据头内,那么文件加密模块11需要先获取存储器40中文件的数据头内的初始向量的密文;然后,文件加密模块11会基于密钥索引与元数据密钥的映射关系获取密钥索引对应的元数据密钥,并利用元数据密钥对初始向量的密文进行解密得到初始向量,进而得到初始向量。
请参见图4B所示,图4B所示的为一种生成读取请求的示意图。请结合图4A和图4B所示,首先,普通运行环境10中的文件加密模块11接收普通运行环境10中的第三方应用软件12或其他模块发送的基于文件的读取指令;然后,文件加密模块11在内存50中获取密钥索引与密钥类型的映射关系,并根据密钥索引与密钥类型的映射关系获取文件的密钥类型对应的密钥索引;其次,文件加密模块11在存储器40中文件的数据头内获取初始向量;再次,文件加密模块11根据密钥索引和初始向量生成基于文件的读取请求。
请参见图4C所示,图4C所示的为一种解密文件的示意图。请结合图4A和图4C所示,首先,文件加密模块11再将读取请求发送至存储控制器31的加密装置311中;然,存储控制器31内的加密装置311获取读取请求中的密钥索引和初始向量;其次,加密装置311获取密钥寄存器312中的密钥索引对应的文件密钥;再次,加密装置311将文件的密文、文件密钥和初始向量作为AES解密函数的参数输入,那么AES解密函数会输出文件;再次,加密装置311将文件存储到内存50中;最后,普通运行环境10中的第三方应用软件12或其他模块在内存50中读取该文件。
请参见图2A和图5所示,图5所示的为本申请实施例提供的密钥处理方法的信令交互图,图2A所示的智能设备可以执行图5所示的方法。图5所示的方法可以保证生成文件密钥的过程是安全的,该方法包括以下步骤。
步骤S11、在普通运行环境10中的文件加密模块11将初始密钥发送给可信执行环境20中的密钥管理模块21。其中,初始密钥可以为预先生成的随机数。例如,假设初始密钥为2068134157937。
步骤S12、在可信执行环境20中的密钥管理模块21对初始密钥进行解密处理得到文件密钥,文件密钥用于加密文件。其中,密钥管理模块21对初始密钥进行解密处理得到文件密钥具体可以包括以下步骤:在可信执行环境20中的密钥管理模块21利用第一派生密钥对初始密钥进行解密得到文件密钥。在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21利用第一派生密钥对初始密钥进行解密得到文件密钥以前,需要先生成第一派生密钥,下面简要介绍生成第一派生密钥的具体方式:在可信执行环境20中的密钥管理模块21获取个人识别密码的消息认证码;在可信执行环境20中的密钥管理模块21获取私有密钥,其中,私有密钥可以为***级芯片30内的私有对称密钥,该私有密钥无法被普通运行环境10内的文件加密模块11读取;在可信执行环境20中的密钥管理模块21获取第一加密因子,其中,第一加密因子可以为预先生成的随机数;在可信执行环境20中的密钥管理模块21利用私有密钥和第一加密因子对消息认证码进行加密得到第一派生密钥。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21利用第一派生密钥对初始密钥进行解密得到文件密钥以前,需要先生成第一派生密钥,下面简要介绍生成第一派生密钥的具体方式:在可信执行环境20中的密钥管理模块21获取第一加密因子,其中,第一加密因子可以为预先生成的随机数;在可信执行环境20中的密钥管理模块21获取私有密钥,其中,私有密钥可以为***级芯片30内的私有对称密钥,该私有密钥无法被普通运行环境10内的文件加密模块11读取;在可信执行环境20中的密钥管理模块21利用私有密钥对第一加密因子进行加密得到第一派生密钥。
步骤S13、在可信执行环境20中的密钥管理模块21将文件密钥存储至存储控制器31的密钥寄存器312中。其中,普通运行环境10中的文件加密模块11被禁止访问存储控制器31中的密钥寄存器312。另外,存储控制器31可以为***级芯片30内的一个装置。
步骤S14、在可信执行环境20中的密钥管理模块21获取密钥寄存器312中文件密钥的密钥索引。其中,密钥索引用于指示文件密钥在密钥寄存器312中的存储位置,存储控制器31可以根据密钥索引获取到密钥寄存器312中的文件密钥。
步骤S15、在可信执行环境20中的密钥管理模块21将密钥索引发送给普通运行环境10中的文件加密模块11。其中,由于普通运行环境10中的文件加密模块11被禁止访问存储控制器31中的密钥寄存器312,所以普通运行环境10中的文件加密模块11无法根据密钥索引获取到密钥寄存器312中的文件密钥。
步骤S16、在普通运行环境10中的文件加密模块11将该文件密钥的密钥索引存储至内存50中。
其中,文件加密模块11将该文件密钥的密钥索引存储至内存50中的目的在于,如果普通运行环境10中的第三方应用软件12或其他模块需要写入文件或读取文件,那么文件加密模块11可以将内存50中的密钥索引发送给存储控制器31,以使存储控制器31实现对文件的加密或解密,进而实现对文件的写入操作或读取操作。
在图5所示的实施例中,普通运行环境10内的文件加密模块11被禁止访问可信执行环境20内的模块或信息,在密钥管理模块21生成文件密钥的过程中,普通运行环境10内的文件加密模块11无法窃取密钥管理模块21生成的文件密钥,所以生成文件密钥的过程是安全的。而且,在密钥管理模块21生成文件密钥以后,密钥管理模块21将文件密钥存储至存储控制器31的密钥寄存器312中,由于普通运行环境10中的文件加密模块11被存储控制器31禁止访问存储控制器31中的密钥寄存器312,普通运行环境10中的文件加密模块11无法窃取存储控制器31的密钥寄存器312中的文件密钥,所以文件密钥的存储环境也是安全的。另外,可信执行环境20中的密钥管理模块21仅将文件密钥的密钥索引发送给普通运行环境10中的文件加密模块11,以使普通运行环境10中的第三方应用软件12或其他模块需要写入文件或读取文件的情况下,文件加密模块11可以与存储控制器31相互配合,文件加密模块11将密钥索引发送给存储控制器31,以使存储控制器31实现对文件的加密或解密,进而实现对文件的写入操作或读取操作。
在一种可实现的实施例中,为了保证初始向量的安全性,在可信执行环境20中的密钥管理模块21还可以对初始密钥进行解密处理得到元数据密钥,其中,元数据密钥用于加密初始向量,初始向量用于与文件密钥联合加密文件;在可信执行环境20中的密钥管理模块21将元数据密钥发送给普通运行环境10中的文件加密模块11。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21对初始密钥进行解密处理得到元数据密钥具体可以包括以下步骤:在可信执行环境20中的密钥管理模块21利用第二派生密钥对初始密钥进行解密得到元数据密钥。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21利用第二派生密钥对初始密钥进行解密得到元数据密钥以前,需要先生成第二派生密钥,下面简要介绍生成第二派生密钥的具体方式:在可信执行环境20中的密钥管理模块21获取个人识别密码的消息认证码;在可信执行环境20中的密钥管理模块21获取私有密钥,其中,私有密钥可以为***级芯片30内的私有对称密钥,该私有密钥无法被普通运行环境10内的文件加密模块11读取;在可信执行环境20中的密钥管理模块21获取第二加密因子,其中,第二加密因子可以为预先生成的随机数;在可信执行环境20中的密钥管理模块21利用私有密钥和第二加密因子对消息认证码进行加密得到第二派生密钥。
在一种可实现的实施例中,在可信执行环境20中的密钥管理模块21利用第二派生密钥对初始密钥进行解密得到元数据密钥以前,需要先生成第二派生密钥,下面简要介绍生成第二派生密钥的具体方式:在可信执行环境20中的密钥管理模块21获取第二加密因子,其中,第二加密因子可以为预先生成的随机数;在可信执行环境20中的密钥管理模块21获取私有密钥,其中,私有密钥可以为***级芯片30内的私有对称密钥,该私有密钥无法被普通运行环境10内的文件加密模块11读取;在可信执行环境20中的密钥管理模块21利用私有密钥对第二加密因子进行加密得到第二派生密钥。
请参见图3A和图6所示,图6所示的为本申请实施例提供的密钥处理方法的信令交互图,图3A所示的智能设备可以执行图6所示的方法。图6所示的方法可以保证在写入文件的过程中文件密钥是安全的,该方法包括以下步骤。
步骤S21、在普通运行环境10中的文件加密模块11接收文件的写入指令。其中,写入指令可以是普通运行环境10中的第三方应用软件12或其他模块生成的。
步骤S22、在普通运行环境10中的文件加密模块11获取文件的密钥类型。其中,文件加密模块11预先设置好每个文件的密钥类型。例如,对于用户文件,密钥类型为A类型;又如,对于***文件,密钥类型为B类型。
步骤S23、在普通运行环境10中的文件加密模块11获取密钥类型对应的密钥索引;其中,在普通运行环境10中的文件加密模块11接收到可信执行环境20的密钥管理模块21发送的密钥索引时,便建立了密钥索引与密钥类型的映射关系,所以在普通运行环境10中的文件加密模块11可以基于密钥索引与密钥类型的映射关系,获取密钥类型对应的密钥索引。
步骤S24、在普通运行环境10中的文件加密模块11获取初始向量。其中,在普通运行环境10中的文件加密模块11每次接收到文件的写入指令时,文件加密模块11均会生成一个新的初始向量,该初始向量可以为随机数。
步骤S25、在普通运行环境10中的文件加密模块11根据密钥索引和初始向量生成基于文件的写入请求。步骤S26、在普通运行环境10中的文件加密模块11向存储控制器31的加密装置311发送写入请求。步骤S27、在存储控制器31内的加密装置311获取写入请求中的密钥索引和初始向量。步骤S28、在存储控制器31中的加密装置311获取密钥寄存器312中的密钥索引对应的文件密钥。步骤S29、在存储控制器31中的加密装置311利用文件密钥和初始向量对文件进行加密得到文件的密文。步骤S30、在存储控制器31中的加密装置311将文件的密文存储到存储器40中。
在图6所示的实施例中,由于普通运行环境10中的模块或软件被存储控制器31禁止访问存储控制器31中的密钥寄存器312,在写入文件的过程中,普通运行环境10中的模块或软件无法窃取到密钥寄存器312中存储的文件密钥,而且普通运行环境10中的模块或软件也无法窃取到加密装置311在加密文件的过程中所使用的文件密钥,因此,本申请实施例可以保证在写入文件的过程中文件密钥是安全的。
在一种可实现的实施例中,为了保证初始向量的安全性,在普通运行环境10中的文件加密模块11可以利用元数据密钥对初始向量进行加密得到初始向量的密文;在普通运行环境10中的文件加密模块11将初始向量的密文存储至存储器40中。
请参见图4A和图7所示,图7所示的为本申请实施例提供的密钥处理方法的信令交互图,图4A所示的智能设备可以执行图5所示的方法。图7所示的方法可以保证在读取文件的过程中文件密钥是安全的,该方法包括以下步骤。
步骤S31、在普通运行环境10中的文件加密模块11接收文件的读取指令。其中,读取指令可以是普通运行环境10中的第三方应用软件12或其他模块生成的。
步骤S32、在普通运行环境10中的文件加密模块11获取文件的密钥类型。其中,文件加密模块11预先设置好每个文件的密钥类型。例如,对于用户文件,密钥类型为A类型;又如,对于***文件,密钥类型为B类型。
步骤S33、在普通运行环境10中的文件加密模块11获取密钥类型对应的密钥索引;其中,在普通运行环境10中的文件加密模块11接收到可信执行环境20的密钥管理模块21发送的密钥索引时,便建立了密钥索引与密钥类型的映射关系,所以在普通运行环境10中的文件加密模块11可以基于密钥索引与密钥类型的映射关系,获取密钥类型对应的密钥索引。
步骤S34、在普通运行环境10中的文件加密模块11获取初始向量。其中,在普通运行环境10中的文件加密模块11每次接收到文件的写入指令时,文件加密模块11均会生成一个新的初始向量,该初始向量可以为随机数。
步骤S35、在普通运行环境10中的文件加密模块11根据密钥索引和初始向量生成基于文件的读取请求。步骤S36、在普通运行环境10中的文件加密模块11向存储控制器31的加密装置311发送读取请求。步骤S37、在存储控制器31内的加密装置311获取读取请求中的密钥索引和初始向量。步骤S38、在存储控制器31中的加密装置311获取密钥寄存器312中的密钥索引对应的文件密钥。步骤S39、在存储控制器31中的加密装置311获取存储器40中的文件的密文。步骤S40、在存储控制器31中的加密装置311利用文件密钥和初始向量对文件的密文进行解密得到文件。
在一种可实现的实施例中,由于普通运行环境10中的模块或软件被存储控制器31禁止访问存储控制器31中的密钥寄存器312,在读取文件的过程中,普通运行环境10中的模块或软件无法窃取到密钥寄存器312中存储的文件密钥,普通运行环境10中的模块或软件也无法窃取到加密装置311在解密文件的过程中所使用的文件密钥,因此,本申请实施例可以保证在读取文件的过程中文件密钥是安全性的。
在一种可实现的实施例中,如果普通运行环境10中的文件加密模块11预先利用元数据密钥对初始向量加密得到初始向量的密文,且将初始向量的密文存储到存储器40中,那么普通运行环境10中的文件加密模块11获取初始向量的具体过程包括以下步骤:在普通运行环境10中的文件加密模块11获取存储器40中初始向量的密文;在普通运行环境10中的文件加密模块11获取元数据密钥;在普通运行环境10中的文件加密模块11利用元数据密钥对初始向量的密文进行解密得到初始向量。
请参见图8所示,图8所示的为本申请实施例提供的一种密钥处理装置的示意图。该密钥处理装置包括以下模块:
接收模块101,用于在可信执行环境中接收普通运行环境中的文件加密模块发送的初始密钥;具体详细的实现方式,请参考上述图5所示的方法实施例中步骤S11的详细描述。结合图1,接收模块101位于图1的密钥管理模块21中。
第一解密模块102,用于在可信执行环境中对初始密钥进行解密处理得到文件密钥,文件密钥用于加密文件;具体详细的实现方式,请参考上述图5所示的方法实施例中步骤S12的详细描述。结合图1,第一解密模块102位于图1的密钥管理模块21中。
存储模块103,用于在可信执行环境中将文件密钥存储至存储控制器的密钥寄存器中,普通运行环境中的文件加密模块被禁止访问存储控制器中的密钥寄存器;具体详细的实现方式,请参考上述图5所示的方法实施例中步骤S13的详细描述。结合图1,存储模块103位于图1的密钥管理模块21中。
获取模块104,用于在可信执行环境中获取密钥寄存器中文件密钥的密钥索引,密钥索引用于指示文件密钥在密钥寄存器中的存储位置;具体详细的实现方式,请参考上述图5所示的方法实施例中步骤S14的详细描述。结合图1,获取模块104位于图1的密钥管理模块21中。
发送模块105,用于在可信执行环境中将密钥索引发送给普通运行环境中的文件加密模块;具体详细的实现方式,请参考上述图5所示的方法实施例中步骤S15的详细描述。结合图1,发送模块105位于图1的密钥管理模块21中。
在一种可实现的实施例中,第一解密模块102,具体用于在可信执行环境中利用第一派生密钥对初始密钥进行解密得到文件密钥。具体详细的实现方式,请参考上述图5所示的方法实施例中对应的详细描述。
在一种可实现的实施例中,密钥处理装置还包括第一加密模块106;第一加密模块106,用于在可信执行环境中获取个人识别密码的消息认证码;在可信执行环境中获取私有密钥;在可信执行环境中获取第一加密因子;在可信执行环境中利用私有密钥和第一加密因子对消息认证码进行加密得到第一派生密钥。具体详细的实现方式,请参考上述图5所示的方法实施例中对应的详细描述。结合图1,第一加密模块106位于图1的密钥管理模块21中。
在一种可实现的实施例中,密钥处理装置还包括第二加密模块107;第二加密模块107,用于在可信执行环境中获取第一加密因子;在可信执行环境中获取私有密钥;在可信执行环境中利用私有密钥对第一加密因子进行加密得到第一派生密钥。具体详细的实现方式,请参考上述图5所示的方法实施例中对应的详细描述。结合图1,第二加密模块107位于图1的密钥管理模块21中。
在一种可实现的实施例中,密钥处理装置还包括第二解密模块108:第二解密模块,用于在可信执行环境中对初始密钥进行解密处理得到元数据密钥,元数据密钥用于加密初始向量,初始向量用于与文件密钥联合加密文件;发送模块105,还用于在可信执行环境中将元数据密钥发送给普通运行环境中的文件加密模块。具体详细的实现方式,请参考上述图5所示的方法实施例中对应的详细描述。结合图1,第二解密模块108位于图1的密钥管理模块21中。
在一种可实现的实施例中,第二解密模块108,具体用于在可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥。具体详细的实现方式,请参考上述图5所示的方法实施例中对应的详细描述。
在一种可实现的实施例中,密钥处理装置还包括第三加密模块109;第三加密模块109,用于在可信执行环境中获取个人识别密码的消息认证码;在可信执行环境中获取私有密钥;在可信执行环境中获取第二加密因子;在可信执行环境中利用私有密钥和第二加密因子对消息认证码进行加密得到第二派生密钥。具体详细的实现方式,请参考上述图5所示的方法实施例中对应的详细描述。结合图1,第三加密模块109位于图1的密钥管理模块21中。
在一种可实现的实施例中,密钥处理装置还包括第四加密模块110;第四加密模块110,用于在可信执行环境中获取第二加密因子;在可信执行环境中获取私有密钥;在可信执行环境中利用私有密钥对第二加密因子进行加密得到第二派生密钥。具体详细的实现方式,请参考上述图5所示的方法实施例中对应的详细描述。结合图1,第四加密模块110位于图1的密钥管理模块21中。
在一种可实现的实施例中,密钥处理装置还包括文件加密模块111;文件加密模块111,用于在普通运行环境中接收文件的处理指令;在普通运行环境中获取文件的密钥类型;在普通运行环境中获取密钥类型对应的密钥索引;在普通运行环境中获取初始向量;在普通运行环境中根据密钥索引和初始向量生成基于文件的处理请求;在普通运行环境中向存储控制器发送处理请求。具体详细的实现方式,请参考上述图6所示的方法实施例中步骤S21至步骤S26的详细描述,以及请参考上述图7所示的方法实施例中步骤S31至步骤S36的详细描述。结合图1,文件加密模块111等同于图1的文件加密模块11中。
在一种可实现的实施例中,文件加密模块111,还用于在普通运行环境中利用元数据密钥对初始向量进行加密得到初始向量的密文;在普通运行环境中将初始向量的密文存储至存储器中。具体详细的实现方式,请参考上述图6或图7所示的方法实施例中对应的详细描述。
在一种可实现的实施例中,文件加密模块111,具体用于在普通运行环境中获取存储器中初始向量的密文;在普通运行环境中获取元数据密钥;在普通运行环境中利用元数据密钥对初始向量的密文进行解密得到初始向量。具体详细的实现方式,请参考上述图6或图7所示的方法实施例中对应的详细描述。
需理解,在以上图8对应的实施例中,每个模块以软件形式实现,例如参考图1,其中的文件加密模块11、密钥管理模块21、第三方应用软件12和口令鉴权模块22都是以软件模块的形式存在。但在实际应用中,其中的一个或多个模块可以由硬件实现。具体实施例中各个模块的功能时以软件还是硬件来实现可以是由设计人员自由选择的。
需要说明的是,当上述实施例中涉及软件实现的功能时,相关软件或软件中的模块可存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本申请所使用的,盘(Disk)和碟(di sc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
需理解,相关软件或软件中的模块可以被图1所示的处理器32执行以实现之前实施例所对应的方法流程。此外,以上实施例仅用以说明本申请的技术方案而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,然而本领域的普通技术人员应当理解:其依然可对前述各实施例所记载的技术方案进行修改,或对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (28)
1.一种密钥处理方法,其特征在于,所述方法包括:
在可信执行环境中接收普通运行环境中的文件加密模块发送的初始密钥;
在所述可信执行环境中对所述初始密钥进行解密处理得到文件密钥,所述文件密钥用于加密文件;
在所述可信执行环境中将所述文件密钥存储至存储控制器的密钥寄存器中,所述普通运行环境中的文件加密模块被禁止访问所述密钥寄存器;
在所述可信执行环境中获取所述密钥寄存器中所述文件密钥的密钥索引,所述密钥索引用于指示所述文件密钥在所述密钥寄存器中的存储位置;
在所述可信执行环境中将所述密钥索引发送给所述普通运行环境中的文件加密模块;
在所述普通运行环境中的所述文件加密模块接收所述文件的处理指令;
在所述普通运行环境中的所述文件加密模块响应于所述处理指令获取所述文件的密钥类型;
在所述普通运行环境中的所述文件加密模块获取所述密钥类型对应的所述密钥索引;
在所述普通运行环境中的所述文件加密模块获取存储器中初始向量的密文,所述初始向量用于与所述文件密钥联合加密所述文件或者与所述文件密钥联合解密所述文件的密文,所述初始向量为预先生成的随机数,每个文件的初始向量是不同的;
在所述普通运行环境中的所述文件加密模块获取元数据密钥;
在所述普通运行环境中的所述文件加密模块利用所述元数据密钥对所述初始向量的密文进行解密得到所述初始向量;
在所述普通运行环境中的所述文件加密模块根据所述密钥索引和所述初始向量生成基于所述文件的处理请求;
在所述普通运行环境中的所述文件加密模块向所述存储控制器发送所述处理请求。
2.根据权利要求1所述的密钥处理方法,其特征在于,在所述可信执行环境中对初始密钥进行解密处理得到文件密钥包括:
在所述可信执行环境中利用第一派生密钥对所述初始密钥进行解密得到文件密钥。
3.根据权利要求2所述的密钥处理方法,其特征在于,在所述可信执行环境中利用第一派生密钥对所述初始密钥进行解密得到文件密钥之前,所述方法还包括:
在所述可信执行环境中获取个人识别密码的消息认证码;
在所述可信执行环境中获取私有密钥;
在所述可信执行环境中获取第一加密因子;
在所述可信执行环境中利用所述私有密钥和所述第一加密因子对所述消息认证码进行加密得到第一派生密钥。
4.根据权利要求2所述的密钥处理方法,其特征在于,在可信执行环境中利用第一派生密钥对初始密钥进行解密得到文件密钥之前,所述方法还包括:
在所述可信执行环境中获取第一加密因子;
在所述可信执行环境中获取私有密钥;
在所述可信执行环境中利用所述私有密钥对所述第一加密因子进行加密得到第一派生密钥。
5.根据权利要求1所述的密钥处理方法,其特征在于,在所述普通运行环境中的所述文件加密模块向所述存储控制器发送所述处理请求以后,所述方法还包括:
所述存储控制器接收所述普通运行环境中的文件加密模块发送的所述处理请求;
所述存储控制器响应于所述处理请求获取所述密钥寄存器中的所述密钥索引对应的文件密钥;
所述存储控制器利用所述文件密钥和所述初始向量对所述文件进行加密得到所述文件的密文,并将所述文件的密文存储到存储器中;
或者,所述存储控制器获取所述存储器中的所述文件的密文,利用所述文件密钥和所述初始向量对所述文件的密文进行解密得到所述文件。
6.根据权利要求1所述的密钥处理方法,其特征在于,在所述普通运行环境中的所述文件加密模块获取元数据密钥前,所述方法还包括:
在所述可信执行环境中对所述初始密钥进行解密处理得到元数据密钥;
在所述可信执行环境中将所述元数据密钥发送给所述普通运行环境中的文件加密模块。
7.根据权利要求6所述的密钥处理方法,其特征在于,在所述可信执行环境中对所述初始密钥进行解密处理得到元数据密钥包括:
在所述可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥。
8.根据权利要求7所述的密钥处理方法,其特征在于,在所述可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥之前,所述方法还包括:
在所述可信执行环境中获取个人识别密码的消息认证码;
在所述可信执行环境中获取私有密钥;
在所述可信执行环境中获取第二加密因子;
在所述可信执行环境中利用所述私有密钥和所述第二加密因子对所述消息认证码进行加密得到第二派生密钥。
9.根据权利要求7所述的密钥处理方法,其特征在于,在所述可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥之前,所述方法还包括:
在所述可信执行环境中获取第二加密因子;
在所述可信执行环境中获取私有密钥;
在所述可信执行环境中利用所述私有密钥对所述第二加密因子进行加密得到第二派生密钥。
10.一种密钥处理方法,其特征在于,所述方法包括:
存储控制器接收普通运行环境中的文件加密模块发送的基于文件的处理请求,所述处理请求包括密钥索引和初始向量,所述密钥索引用于指示文件密钥在存储控制器中的密钥寄存器中的存储位置,所述初始向量用于与所述文件密钥联合加密所述文件或者与所述文件密钥联合解密所述文件的密文,所述初始向量为预先生成的随机数,每个文件的初始向量是不同的;
所述存储控制器获取所述密钥寄存器中的所述密钥索引对应的文件密钥,所述普通运行环境中的文件加密模块被禁止访问所述密钥寄存器;
所述存储控制器利用所述文件密钥和所述初始向量对所述文件进行加密得到所述文件的密文,并将所述文件的密文存储到存储器中;
或者,所述存储控制器获取存储器中的所述文件的密文,利用所述文件密钥和所述初始向量对所述文件的密文进行解密得到所述文件。
11.一种密钥处理装置,其特征在于,所述装置包括处理器和接口,所述接口与存储控制器和所述处理器连接;
所述处理器,用于运行软件指令以产生可信执行环境和普通运行环境并在所述普通运行环境中实现文件加密模块的功能,并进一步执行以下操作:
在所述可信执行环境中接收所述普通运行环境中的文件加密模块发送的初始密钥;在所述可信执行环境中对所述初始密钥进行解密处理得到文件密钥,所述文件密钥用于加密文件;在所述可信执行环境中通过所述接口将所述文件密钥存储至存储控制器的密钥寄存器中,所述普通运行环境中的文件加密模块被禁止访问所述密钥寄存器;在所述可信执行环境中通过所述接口获取所述密钥寄存器中所述文件密钥的密钥索引,所述密钥索引用于指示所述文件密钥在所述密钥寄存器中的存储位置;在所述可信执行环境中将所述密钥索引发送给所述普通运行环境中的文件加密模块;
所述处理器,还用于在所述普通运行环境中实现所述文件加密模块的如下功能:接收所述文件的处理指令;获取所述文件的密钥类型;获取所述密钥类型对应的密钥索引;获取存储器中初始向量的密文,所述初始向量用于与所述文件密钥联合加密所述文件或者与所述文件密钥联合解密所述文件的密文,所述初始向量为预先生成的随机数,每个文件的初始向量是不同的;获取元数据密钥;利用所述元数据密钥对所述初始向量的密文进行解密得到所述初始向量;根据所述密钥索引和所述初始向量生成基于所述文件的处理请求;向所述存储控制器发送所述处理请求。
12.根据权利要求11所述的密钥处理装置,其特征在于:
所述处理器,具体用于在所述可信执行环境中利用第一派生密钥对所述初始密钥进行解密得到文件密钥。
13.根据权利要求12所述的密钥处理装置,其特征在于:
所述处理器,还用于在所述可信执行环境中获取个人识别密码的消息认证码;在所述可信执行环境中获取私有密钥;在所述可信执行环境中获取第一加密因子;在所述可信执行环境中利用所述私有密钥和所述第一加密因子对所述消息认证码进行加密得到第一派生密钥。
14.根据权利要求12所述的密钥处理装置,其特征在于:
所述处理器,还用于在所述可信执行环境中获取第一加密因子;在所述可信执行环境中获取私有密钥;在所述可信执行环境中利用所述私有密钥对所述第一加密因子进行加密得到第一派生密钥。
15.根据权利要求11所述的密钥处理装置,其特征在于,所述装置还包括所述存储控制器,所述存储控制器包括加密装置和所述密钥寄存器;
所述存储控制器的加密装置,用于接收所述普通运行环境中的文件加密模块发送的所述处理请求;获取所述密钥寄存器中的所述密钥索引对应的文件密钥;利用所述文件密钥和所述初始向量对所述文件进行加密得到所述文件的密文,并将所述文件的密文存储到存储器中;或者,获取所述存储器中的所述文件的密文,利用所述文件密钥和所述初始向量对所述文件的密文进行解密得到所述文件。
16.根据权利要求11所述的密钥处理装置,其特征在于:
所述处理器,还用于在所述可信执行环境中对所述初始密钥进行解密处理得到元数据密钥;在所述可信执行环境中将所述元数据密钥发送给所述普通运行环境中的文件加密模块。
17.根据权利要求16所述的密钥处理装置,其特征在于:
所述处理器,具体用于在所述可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥。
18.根据权利要求17所述的密钥处理装置,其特征在于:
所述处理器,还用于在所述可信执行环境中获取个人识别密码的消息认证码;在所述可信执行环境中获取私有密钥;在所述可信执行环境中获取第二加密因子;在所述可信执行环境中利用所述私有密钥和所述第二加密因子对所述消息认证码进行加密得到第二派生密钥。
19.根据权利要求17所述的密钥处理装置,其特征在于:
所述处理器,还用于在所述可信执行环境中获取第二加密因子;在所述可信执行环境中获取私有密钥;在所述可信执行环境中利用所述私有密钥对所述第二加密因子进行加密得到第二派生密钥。
20.一种存储控制器,其特征在于,包括加密装置和密钥寄存器;
所述密钥寄存器用于存储文件密钥;
所述加密装置,用于接收普通运行环境中的文件加密模块发送的基于文件的处理请求,所述处理请求包括密钥索引和初始向量,所述密钥索引用于指示文件密钥在所述密钥寄存器中的存储位置,所述初始向量用于与所述文件密钥联合加密所述文件或者与所述文件密钥联合解密所述文件的密文,所述初始向量为预先生成的随机数,每个文件的初始向量是不同的;获取所述密钥寄存器中的所述密钥索引对应的文件密钥,所述普通运行环境中的文件加密模块被禁止访问所述密钥寄存器;利用所述文件密钥和所述初始向量对所述文件进行加密得到所述文件的密文,并将所述文件的密文存储到存储器中;或者,获取存储器中的所述文件的密文,利用所述文件密钥和所述初始向量对所述文件的密文进行解密得到所述文件。
21.一种密钥处理装置,其特征在于,包括:
接收模块,用于在可信执行环境中接收普通运行环境中的文件加密模块发送的初始密钥;
第一解密模块,用于在所述可信执行环境中对所述初始密钥进行解密处理得到文件密钥,所述文件密钥用于加密文件;
存储模块,用于在所述可信执行环境中将所述文件密钥存储至存储控制器的密钥寄存器中,所述普通运行环境中的文件加密模块被禁止访问所述密钥寄存器;
获取模块,用于在所述可信执行环境中获取所述密钥寄存器中所述文件密钥的密钥索引,所述密钥索引用于指示所述文件密钥在所述密钥寄存器中的存储位置;
发送模块,用于在所述可信执行环境中将所述密钥索引发送给所述普通运行环境中的文件加密模块;
所述装置还包括文件加密模块;
所述文件加密模块,用于在所述普通运行环境中接收文件的处理指令;在所述普通运行环境中获取所述文件的密钥类型;在所述普通运行环境中获取所述密钥类型对应的密钥索引;在所述普通运行环境中获取存储器中的初始向量的密文,所述初始向量用于与所述文件密钥联合加密所述文件或者与所述文件密钥联合解密所述文件的密文,所述初始向量为预先生成的随机数,每个文件的初始向量是不同的;在所述普通运行环境中获取元数据密钥;在所述普通运行环境中利用所述元数据密钥对所述初始向量的密文进行解密得到所述初始向量;在所述普通运行环境中根据所述密钥索引和所述初始向量生成基于所述文件的处理请求;在所述普通运行环境中向所述存储控制器发送所述处理请求。
22.根据权利要求21所述的密钥处理装置,其特征在于:
所述第一解密模块,具体用于在所述可信执行环境中利用第一派生密钥对所述初始密钥进行解密得到文件密钥。
23.根据权利要求22所述的密钥处理装置,其特征在于,所述装置还包括第一加密模块;
所述第一加密模块,用于在所述可信执行环境中获取个人识别密码的消息认证码;在所述可信执行环境中获取私有密钥;在所述可信执行环境中获取第一加密因子;在所述可信执行环境中利用所述私有密钥和所述第一加密因子对所述消息认证码进行加密得到第一派生密钥。
24.根据权利要求22所述的密钥处理装置,其特征在于,所述装置还包括第二加密模块;
所述第二加密模块,用于在所述可信执行环境中获取第一加密因子;在所述可信执行环境中获取私有密钥;在所述可信执行环境中利用所述私有密钥对所述第一加密因子进行加密得到第一派生密钥。
25.根据权利要求21所述的密钥处理装置,其特征在于,所述装置还包括第二解密模块:
所述第二解密模块,用于在所述可信执行环境中对所述初始密钥进行解密处理得到元数据密钥;
所述发送模块,还用于在所述可信执行环境中将所述元数据密钥发送给所述普通运行环境中的文件加密模块。
26.根据权利要求25所述的密钥处理装置,其特征在于:
所述第二解密模块,具体用于在所述可信执行环境中利用第二派生密钥对初始密钥进行解密得到元数据密钥。
27.根据权利要求26所述的密钥处理装置,其特征在于,所述装置还包括第三加密模块;
所述第三加密模块,用于在所述可信执行环境中获取个人识别密码的消息认证码;在所述可信执行环境中获取私有密钥;在所述可信执行环境中获取第二加密因子;在所述可信执行环境中利用所述私有密钥和所述第二加密因子对所述消息认证码进行加密得到第二派生密钥。
28.根据权利要求26所述的密钥处理装置,其特征在于,所述装置还包括第四加密模块;
所述第四加密模块,用于在所述可信执行环境中获取第二加密因子;在所述可信执行环境中获取私有密钥;在所述可信执行环境中利用所述私有密钥对所述第二加密因子进行加密得到第二派生密钥。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/091282 WO2019237304A1 (zh) | 2018-06-14 | 2018-06-14 | 一种密钥处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111566989A CN111566989A (zh) | 2020-08-21 |
CN111566989B true CN111566989B (zh) | 2022-06-07 |
Family
ID=68841689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880085208.4A Active CN111566989B (zh) | 2018-06-14 | 2018-06-14 | 一种密钥处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11405202B2 (zh) |
EP (1) | EP3787219A4 (zh) |
CN (1) | CN111566989B (zh) |
WO (1) | WO2019237304A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111212044B (zh) * | 2019-12-24 | 2022-11-01 | 视联动力信息技术股份有限公司 | 一种数据的传输方法、装置和存储介质 |
CN113449293A (zh) * | 2021-07-14 | 2021-09-28 | 上海交通大学 | 基于可信执行环境的密文搜索***与方法 |
CN114143117B (zh) * | 2022-02-08 | 2022-07-22 | 阿里云计算有限公司 | 数据处理方法及设备 |
CN116743357B (zh) * | 2022-09-30 | 2024-03-12 | 荣耀终端有限公司 | 密钥存储方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539979A (zh) * | 2009-04-29 | 2009-09-23 | 北京红旗贰仟软件技术有限公司 | 一种电子文档控制保护方法和装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5495533A (en) * | 1994-04-29 | 1996-02-27 | International Business Machines Corporation | Personal key archive |
US20050262361A1 (en) * | 2004-05-24 | 2005-11-24 | Seagate Technology Llc | System and method for magnetic storage disposal |
WO2006109307A2 (en) * | 2005-04-13 | 2006-10-19 | Discretix Technologies Ltd. | Method, device, and system of selectively accessing data |
US10615967B2 (en) * | 2014-03-20 | 2020-04-07 | Microsoft Technology Licensing, Llc | Rapid data protection for storage devices |
CN104392188B (zh) * | 2014-11-06 | 2017-10-27 | 三星电子(中国)研发中心 | 一种安全数据存储方法和*** |
CN105812332A (zh) * | 2014-12-31 | 2016-07-27 | 北京握奇智能科技有限公司 | 数据保护方法 |
CN104778794B (zh) | 2015-04-24 | 2017-06-20 | 华为技术有限公司 | 移动支付装置和方法 |
US10270591B2 (en) * | 2015-06-30 | 2019-04-23 | Activevideo Networks, Inc. | Remotely managed trusted execution environment for digital-rights management in a distributed network with thin clients |
US9697371B1 (en) * | 2015-06-30 | 2017-07-04 | Google Inc. | Remote authorization of usage of protected data in trusted execution environments |
US10181946B2 (en) * | 2015-07-20 | 2019-01-15 | Intel Corporation | Cryptographic protection of I/O data for DMA capable I/O controllers |
CN105260663B (zh) * | 2015-09-15 | 2017-12-01 | 中国科学院信息工程研究所 | 一种基于TrustZone技术的安全存储服务***及方法 |
US10581617B2 (en) * | 2015-12-23 | 2020-03-03 | Mcafee, Llc | Method and apparatus for hardware based file/document expiry timer enforcement |
CN105912272B (zh) | 2016-04-14 | 2019-03-01 | 华为技术有限公司 | 一种控制多个安全应用软件的运行的装置和方法 |
US10181951B2 (en) * | 2016-05-13 | 2019-01-15 | Blackberry Limited | Protected encryption key recovery |
US10423804B2 (en) * | 2016-06-12 | 2019-09-24 | Apple Inc. | Cryptographic separation of users |
BR112018073991A2 (pt) | 2016-08-09 | 2019-02-26 | Huawei Technologies Co., Ltd. | sistema em chip e dispositivo de processamento |
CN106980794B (zh) * | 2017-04-01 | 2020-03-17 | 北京元心科技有限公司 | 基于TrustZone的文件加解密方法、装置及终端设备 |
CN107743133B (zh) * | 2017-11-30 | 2020-06-09 | 中国石油大学(北京) | 移动终端及其基于可信安全环境的访问控制方法和*** |
CN108155986A (zh) * | 2017-12-14 | 2018-06-12 | 晶晨半导体(上海)股份有限公司 | 一种基于可信执行环境的密钥烧录***及方法 |
EP3776315A1 (en) * | 2018-03-27 | 2021-02-17 | Telefonaktiebolaget LM Ericsson (publ) | Trusted execution environment instances licenses management |
US10922441B2 (en) * | 2018-05-04 | 2021-02-16 | Huawei Technologies Co., Ltd. | Device and method for data security with a trusted execution environment |
-
2018
- 2018-06-14 EP EP18922834.9A patent/EP3787219A4/en active Pending
- 2018-06-14 WO PCT/CN2018/091282 patent/WO2019237304A1/zh unknown
- 2018-06-14 CN CN201880085208.4A patent/CN111566989B/zh active Active
-
2020
- 2020-12-07 US US17/114,052 patent/US11405202B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539979A (zh) * | 2009-04-29 | 2009-09-23 | 北京红旗贰仟软件技术有限公司 | 一种电子文档控制保护方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20210091945A1 (en) | 2021-03-25 |
EP3787219A1 (en) | 2021-03-03 |
CN111566989A (zh) | 2020-08-21 |
US11405202B2 (en) | 2022-08-02 |
EP3787219A4 (en) | 2021-04-28 |
WO2019237304A1 (zh) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347888B2 (en) | Blockchain-based user privacy data providing methods and apparatuses | |
CN111566989B (zh) | 一种密钥处理方法及装置 | |
US11089018B2 (en) | Global unique device identification code distribution method | |
KR101657613B1 (ko) | 보안 저장 장치에 저장된 디지털 컨텐츠의 백업 | |
US9721071B2 (en) | Binding of cryptographic content using unique device characteristics with server heuristics | |
US20060232826A1 (en) | Method, device, and system of selectively accessing data | |
KR20190018869A (ko) | 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법 | |
CN110324358B (zh) | 视频数据管控认证方法、模块、设备和平台 | |
CN103931137A (zh) | 用于保护内容的方法和存储设备 | |
US20220366030A1 (en) | Password Management Method and Related Apparatus | |
US8798261B2 (en) | Data protection using distributed security key | |
KR102328057B1 (ko) | 단말 정보에 기반하여 문서 파일의 암호화가 수행되도록 지원하는 문서 보안 서비스 서버 및 그 동작 방법 | |
JP2015104020A (ja) | 通信端末装置、通信端末関連付けシステム、通信端末関連付け方法、及びコンピュータプログラム | |
US8234501B2 (en) | System and method of controlling access to a device | |
WO2015154469A1 (zh) | 数据库的操作方法及装置 | |
US20150200777A1 (en) | Data securing method, data securing system and data carrier | |
KR102542213B1 (ko) | 네트워크 기반 스토리지의 데이터 실시간 암복호화 보안 시스템 및 방법 | |
CN113468545A (zh) | 文件加解密方法、装置及*** | |
CN107967432B (zh) | 一种安全存储装置、***及方法 | |
WO2019216847A2 (en) | A sim-based data security system | |
CN106209381A (zh) | 一种照片加解密方法及其*** | |
CN112804195A (zh) | 一种数据安全存储方法及*** | |
KR100952300B1 (ko) | 저장매체의 안전한 데이터 관리를 위한 단말 장치, 메모리및 그 방법 | |
CN110909391A (zh) | 一种基于risc-v的安全存储方法 | |
CN115361140B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |