CN110401538B - 数据加密方法、系统以及终端 - Google Patents
数据加密方法、系统以及终端 Download PDFInfo
- Publication number
- CN110401538B CN110401538B CN201810375283.6A CN201810375283A CN110401538B CN 110401538 B CN110401538 B CN 110401538B CN 201810375283 A CN201810375283 A CN 201810375283A CN 110401538 B CN110401538 B CN 110401538B
- Authority
- CN
- China
- Prior art keywords
- password
- verification
- encryption
- hash value
- key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012795 verification Methods 0.000 claims abstract description 128
- 238000004422 calculation algorithm Methods 0.000 claims description 90
- 238000007726 management method Methods 0.000 claims description 31
- 238000012986 modification Methods 0.000 claims description 20
- 230000004048 modification Effects 0.000 claims description 20
- 238000013500 data storage Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种数据加密方法、系统以及终端,其中的方法包括:可信部件接收到在可信环境中输入的校验密码,如果对校验密码验证成功,则基于预设的密钥管理规则以及在可信环境中输入的操作信息,对加密密钥以及加密密钥与用户密码的关联关系进行相应的操作,基于加密密钥对数据进行加密并存储加密后的数据。本发明的方法、系统以及终端,可以在可信环境中输入和验证用户密码,防止密码被监听、截取、泄露;在可信环境中加密和存储数据,显著增强了安全性;能够用一个密码来管理和保护多个不同的加密密钥;可以在修改密码时不改变加密密钥,不需要重新加密目标数据,可以保证数据的安全性。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种数据加密方法、系统以及终端。
背景技术
目前,终端大多集成了可信执行环境(TEE,Trusted Execution Environment)、富执行环境(REE,Rich Execution Environment)。REE由客户端应用(CA,ClientApplication)以及应用操作系统组成。TEE由可信应用(TA,TrustedApplication)、以及可信操作系统(Trusted OS,Trusted Operating System)组成。REE支持丰富的应用,但REE存在一定的安全风险。现有的数据加密和存储方法通常具有以下缺陷:在不可信环境下输入和校验用户密码,有泄漏风险;在不可信环境下进行数据的加密和存储,有被攻击的风险;对于已加密数据,无法修改密码,或需要用新密码重新加密所有数据;用相同密码加密的所有数据,其加密密钥相同。因此,需要一种新的数据加密机制。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种数据加密方法、系统以及终端。
根据本发明的一个方面,提供一种数据加密方法,包括:可信部件接收到在可信环境中输入的校验密码;所述可信部件基于预设的密码验证规则对所述校验密码进行验证;如果验证成功,则所述可信部件基于预设的密钥管理规则以及在可信环境中输入的操作信息,对加密密钥以及所述加密密钥与用户密码的关联关系进行相应的操作,和/或基于所述加密密钥对数据进行加密并存储加密后的数据。
可选地,所述可信部件包括:在可信执行环境TEE中运行的可信应用TA、安全单元SE。
可选地,通过运行在所述TEE中的可信用户接口TUI输入所述校验密码、所述操作信息;或,通过所述SE独占控制的键盘或触控设备输入所述校验密码、所述操作信息。
可选地,所述可信部件基于预设的密码验证规则对所述校验密码进行验证包括:所述可信部件基于第一散列算法计算所述校验密码的第一散列值;判断所述第一散列值与预设的用户密码散列值是否相同,如果是,则确定对所述校验密码验证成功,如果否,则确定对所述校验密码验证失败。
可选地,如果确定对所述校验密码验证失败,则提示重新输入校验密码进行验证;当验证失败的次数达到预设的验证次数阈值时,则所述可信部件禁止输入校验密码并停止对校验密码进行验证。
可选地,所述可信部件基于预设的密钥管理规则以及在可信环境中输入的操作信息对加密密钥以及所述加密密钥与用户密码的关联关系进行相应的操作包括:所述可信部件获取在可信环境中输入的操作信息,其中,操作信息包括:密钥生成信息;所述可信部件基于所述密钥生成信息确定加密算法,生成与此加密算法对应的、具有预设的密钥长度的加密密钥;所述可信部件基于第二散列算法计算用户密码的第二散列值,使用所述第二散列值作为密钥加密所述加密密钥,获得加密密钥密文;所述可信部件建立所述用户密码散列值与所述加密密钥密文的关联关系并存储。
可选地,所述可信部件生成密钥列表文件,在所述密钥列表文件中存储所述用户密码散列值以及与所述用户密码散列值相关联的所有加密密钥密文。
可选地,所述第一散列算法和所述第二散列算法包括:MD5、SHA1、SHA-2系列、SM3;其中,所述第一散列算法和所述第二散列算法不相同。
可选地,所述可信部件基于预设的密钥管理规则以及在可信环境中输入的操作信息对加密密钥以及所述加密密钥与用户密码的关联关系进行相应的操作还包括:所述可信部件获取在可信环境中输入的操作信息,其中,操作信息包括:用户密码修改指令以及新用户密码;所述可信部件基于所述第二散列值解密与所述用户密码散列值相关联的所有加密密钥密文,获得所述加密密钥;所述可信部件将所述新用户密码替换旧的用户密码,并基于所述第二散列算法计算所述新用户密钥的第三散列值,使用所述第三散列值作为密钥加密所述加密密钥,获得新加密密钥密文;所述可信部件基于所述第一散列算法计算所述新用户密码的第四散列值,建立所述第四散列值与所述新加密密钥密文的新关联关系并存储。
可选地,所述可信部件将所述第四散列值以及与所述第四散列值相关联的所有新加密密钥密文存储在所述密钥列表文件中,用以替换原有的用户密码散列值以及与原有的用户密码散列值相关联的所有加密密钥密文。
可选地,所述可信部件基于所述加密密钥对数据进行加密并存储加密后的数据包括:所述可信部件获取输入的操作信息,其中,操作信息包括:目标数据以及加密操作信息;所述可信部件基于所述第二散列值解密与所述加密操作信息对应的加密密钥密文,获得指定的加密密钥;所述可信部件使用所述指定的加密密钥作为密钥,采用与所述加密操作信息对应的加密算法对所述目标数据进行加密,获得所述目标数据的密文并存储。
可选地,所述加密算法包括:DES、3DES、AES-128、AES-256、SM4。
根据本发明的另一方面,提供一种数据加密系统,包括:可信部件,包括:密码与密钥管理模块,用于接收到在可信环境中输入的校验密码,基于预设的密码验证规则对所述校验密码进行验证;如果验证成功,则基于预设的密钥管理规则以及在可信环境中输入的操作信息对加密密钥以及所述加密密钥与用户密码的关联关系进行相应的操作;加解密模块,用于基于所述加密密钥对数据进行加密;数据存储模块,用于存储加密后的数据。
可选地,所述可信部件包括:在可信执行环境TEE中运行的可信应用TA、安全单元SE。
可选地,通过运行在所述TEE中的可信用户接口TUI输入所述校验密码、所述操作信息;或,通过所述SE独占控制的键盘或触控设备输入所述校验密码、所述操作信息。
可选地,所述密码与密钥管理模块,包括:密码验证单元,用于基于第一散列算法计算所述校验密码的第一散列值;判断所述第一散列值与预设的用户密码散列值是否相同,如果是,则确定对所述校验密码验证成功,如果否,则确定对所述校验密码验证失败。
可选地,所述密码验证单元,用于如果确定对所述校验密码验证失败,则提示重新输入校验密码进行验证;当验证失败的次数达到预设的验证次数阈值时,则禁止输入校验密码并停止对校验密码进行验证。
可选地,所述密码与密钥管理模块,包括:密钥生成单元,用于获取在可信环境中输入的操作信息,其中,操作信息包括:密钥生成信息;基于所述密钥生成信息确定加密算法,生成与此加密算法对应的、具有预设的密钥长度的加密密钥;密钥关联单元,用于基于第二散列算法计算用户密码的第二散列值;使用所述第二散列值作为密钥加密所述加密密钥,获得加密密钥密文;建立所述用户密码散列值与所述加密密钥密文的关联关系并存储。
可选地,所述密钥关联单元,用于生成密钥列表文件,在所述密钥列表文件中存储所述用户密码散列值以及与所述用户密码散列值相关联的所有加密密钥密文。
可选地,所述第一散列算法和所述第二散列算法包括:MD5、SHA1、SHA-2系列、SM3;其中,所述第一散列算法和所述第二散列算法不相同。
可选地,所述密码与密钥管理模块,包括:密码修改单元,用于获取在可信环境中输入的操作信息,其中,操作信息包括:用户密码修改指令以及新用户密码;基于所述第二散列值解密与所述用户密码散列值相关联的所有加密密钥密文,获得所述加密密钥;将所述新用户密码替换旧的用户密码,并基于所述第二散列算法计算所述新用户密钥的第三散列值;使用所述第三散列值作为密钥加密所述加密密钥,获得新加密密钥密文;基于所述第一散列算法计算所述新用户密码的第四散列值,建立所述第四散列值与所述新加密密钥密文的新关联关系并存储。
可选地,所述密码修改单元,用于将所述第四散列值以及与所述第四散列值相关联的所有新加密密钥密文存储在所述密钥列表文件中,用以替换原有的用户密码散列值以及与原有的用户密码散列值相关联的所有加密密钥密文。
可选地,所述加解密模块,用于获取输入的操作信息,其中,操作信息包括:目标数据以及加密操作信息;基于所述第二散列值解密与所述加密操作信息对应的加密密钥密文,获得指定的加密密钥;使用所述指定的加密密钥作为密钥,采用与所述加密操作信息对应的加密算法对所述目标数据进行加密,获得所述目标数据的密文;所述数据存储模块,用于存储所述目标数据的密文。
可选地,所述加密算法包括:DES、3DES、AES-128、AES-256、SM4。
根据本发明的又一方面,提供一种数据加密系统,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的数据加密方法。
根据本发明的又一方面,提供一种终端,包括如上所述的数据加密系统。
根据本发明的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该指令被一个或多个处理器执行时实现如上所述的方法的步骤。
本发明的数据加密方法、系统以及终端,可信部件接收到在可信环境中输入的校验密码,如果对校验密码验证成功,则基于预设的密钥管理规则以及在可信环境中输入的操作信息,对加密密钥以及加密密钥与用户密码的关联关系进行相应的操作,基于加密密钥对数据进行加密并存储加密后的数据;可以在可信环境中输入和验证用户密码,防止密码被监听、截取、泄露;在可信环境中加密和存储数据,显著增强了安全性;能够用一个密码来管理多个不同的加密密钥;可以在修改密码时不改变加密密钥,不需要重新加密目标数据,可以保证数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明的数据加密方法的一个实施例的流程示意图;
图2A至2C为根据本发明的数据加密方法的一个实施例的应用环境示意图;
图3为根据本发明的数据加密装置的一个实施例的模块示意图;
图4为根据本发明的数据加密装置的一个实施例中的密码与密钥管理模块的模块示意图;
图5为根据本发明的数据加密装置的另一个实施例的模块示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:智能手机、个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
下文中的“第一”、“第二”仅用于描述上相区别,并没有其它特殊的含义。
图1为根据本发明的数据加密方法的一个实施例的流程示意图,如图1所示:
步骤101,可信部件接收到在可信环境中输入的校验密码。
步骤102,可信部件基于预设的密码验证规则对校验密码进行验证。
步骤103,如果验证成功,则可信部件基于预设的密钥管理规则以及在可信环境中输入的操作信息,对加密密钥以及加密密钥与用户密码的关联关系进行相应的操作。用户密码为用于预设的密码,用于对用户输入的校验密码进行验证。
步骤104,基于加密密钥对数据进行加密并存储加密后的数据。
上述实施例中的数据加密方法,在可信环境下输入和校验密码并在可信环境下进行数据的加密和存储,能够显著增强密码和数据的安全性。
在一个实施例中,可信部件包括在可信执行环境TEE中运行的可信应用TA、安全单元SE等。安全单元SE(secure element)为可实现密钥等敏感数据的存储和密码运算的高安全性硬件部件。安全元件SE可以是软硬件及相关协议结合的安全模块,可嵌入使用的智能卡级应用程序,可以是eSE、SIM以及SD卡等各种内置移动设备的安全元件,也可以是可穿戴设备,如蓝牙手环、蓝牙Key等。可以通过运行在TEE中的可信用户接口TUI输入校验密码、操作信息,也可以通过SE独占控制的键盘或触控设备输入校验密码、操作信息等。
如图2A所示,拥有TEE功能的智能手机基于TrustZone技术架构,系统运行环境被隔离成Normal World(REE)和Secure World(TEE)两个世界。TEE下可以运行可信应用TA和可信用户界面TUI。TUI能够提供安全输入保证,确保用户应用界面和触控、键盘操作不被监控。
TA借助TEE提供的安全存储能力,能保证存储数据的真实性、完整性、保密性以及原子性。基于TEE环境并通过在TUI下输入密码,在TA中存储和校验密码,在TA中生成和存储加密密钥,在TA中加密和存储数据,可以增强密码和数据的安全性。
如图2B所示,在拥有安全单元SE的智能移动终端上,通常能通过TEE访问SE中的安全模块(Applet)实现安全功能。SE具有物理安全特性,能提供更高级别的安全防护。在TEE+SE环境下,通过在TUI下输入密码,在SE中存储和校验密码,在SE中生成和存储加密密钥,在SE中加密和存储数据,能够增强密码和数据的安全性。
如图2C所示,在不需要丰富执行环境的设备上,可以由SE完全控制终端设备。在SE环境下,通过在SE独占控制下的键盘或触控设备上输入密码,在SE中存储和校验密码,在SE中生成和存储加密密钥,在SE中加密和存储数据,增强密码和数据的安全性。
在不同可信环境架构下,各个功能组件分别运行于可信环境的不同部件中,可信部件的功能如下表1所示:
TEE环境下 | TEE+SE环境下 | SE环境下 | |
输入密码 | TUI | TUI | SE独占外设 |
存储和校验密码 | TA | SE | SE |
生成和存储加密密钥 | TA | SE | SE |
加密和存储数据 | TA | SE | SE |
表1-可信部件的功能表
在一个实施例中,可信部件基于预设的密码验证规则对校验密码进行验证可以有多种方法。可信部件基于第一散列算法计算校验密码的第一散列值,判断第一散列值与预设的用户密码散列值是否相同,如果是,则确定对校验密码验证成功,如果否,则确定对校验密码验证失败。如果确定对校验密码验证失败,则提示重新输入校验密码进行验证。当验证失败的次数达到预设的验证次数阈值时,则可信部件禁止输入校验密码并停止对校验密码进行验证。
例如,在设置、修改、校验密码时,可以由用户在TUI下输入密码或使用SE独占控制的触控或键盘设备输入密码后,由可信部件的密码与密钥管理模块进行存储和校验密码。为了保证用户密码不被泄露,可信部件的密码与密钥管理模块仅存储用户密码的散列值[算法A],不存储用户密码的明文,校验用户输入的校验密码时,先计算用户输入的校验密码的散列值[算法A],与之前存储的用户密码的散列值[算法A]进行比较,如果一致则校验通过,否则校验失败,用户密码检验的重试次数减1,如果用户密码校验的重试次数为0时,则将用户输入的密码锁死,密码锁死后不再校验密码。
在一个实施例中,可信部件获取在可信环境中输入的操作信息,其中,操作信息包括:密钥生成信息等。可信部件基于密钥生成信息确定加密算法,生成与此加密算法对应的、具有预设的密钥长度的加密密钥。可信部件基于第二散列算法计算用户密码的第二散列值,使用第二散列值作为密钥加密加密密钥,获得加密密钥密文。可信部件建立用户密码散列值与加密密钥密文的关联关系并存储。可以生成密钥列表文件,在密钥列表文件中存储用户密码散列值以及与用户密码散列值相关联的所有加密密钥密文。第一散列算法和第二散列算法包括MD5、SHA1、SHA-2系列、SM3等,第一散列算法和第二散列算法不相同。
可以生成和存储多个不同的加密密钥用于对不同用途的数据进行加密,所有加密密钥都由用户密码来保护和管理。生成加密密钥时,需要用户在TUI下输入用户密码或使用SE独占控制的触控或键盘设备输入校验密码,如果校验密码验证正确,则生成加密密钥,如果校验密码验证不正确,则终止加密密钥生成操作。如果有可信任服务管理模块TSM,则可以通过TSM与SE建立安全通道,在安全通道保护下执行加密密钥生成操作,不需要验证用户密码。
例如,由可信部件的密码与密钥管理模块生成符合加密算法要求的密钥长度的随机数作为加密密钥。加密算法包括DES、3DES、AES-128、AES-256、SM4等。可以在生成加密密钥前指定加密算法,也可以根据密钥用途设置预定的加密算法。计算用户密码的散列值[算法B],采用的散列算法采用不同于计算散列值[算法A]所用的散列算法,例如散列值[算法A]使用SHA-256计算,则散列值[算法B]不能再使用SHA-256,可以使用SHA-1。使用散列值[算法B]作为密钥,加密由可信部件的密码与密钥管理模块生成的加密密钥,得到加密密钥密文。可信部件的密码与密钥管理模块维护一个密钥列表文件,密钥列表文件中内容如下所示:
密钥列表文件中保存了用户密码的散列值[算法A]与所有的加密密钥的密文,可信部件的密码与密钥管理模块不存储用户密码的明文和加密密钥的保护密钥(即密码的散列值[算法B])。
在一个实施例中,可信部件获取在可信环境中输入的操作信息,其中,操作信息包括:用户密码修改指令以及新用户密码。可信部件基于第二散列值解密与用户密码散列值相关联的所有加密密钥密文,获得加密密钥。可信部件将新用户密码作为新的用户密码,并基于第二散列算法计算新用户密钥的第三散列值,使用第三散列值作为密钥加密加密密钥,获得新加密密钥密文。
可信部件基于第一散列算法计算新用户密码的第四散列值,建立第四散列值与新加密密钥密文的新关联关系并存储。可信部件将第四散列值以及与第四散列值相关联的所有新加密密钥密文存储在密钥列表文件中,用以替换用户密码散列值以及与用户密码散列值相关联的所有加密密钥密文。
例如,在修改用户密码时,需要用户在TUI下输入新旧密码或使用SE独占控制的触控或键盘设备输入新旧密码。验证旧密码的正确性,如果旧密码正确,则使用新密码修改用户密码,如果旧密码不正确,则终止修改操作。计算旧密码(当前保存的用户密码)的散列值[算法B],使用散列值[算法B]解密密钥列表文件中的所有加密密钥密文,得到加密密钥明文。计算新密码(新修改的用户密码)的散列值[算法B],对加密密钥明文做加密,得到新的加密密钥密文。计算新密码的散列值[算法A],将新密码的散列值[算法A]、所有加密密钥的新密文写入密钥列表文件,替换原先存储的内容。
由于密码的散列值[算法A]与加密密钥的密文都和用户密码相关联,可信部件的密码与密钥管理模块可以保证密码的散列值[算法A]与所有加密密钥的密文作为一个完整数据块更新到文件中,而不会发生只更新了部分内容的情况。在修改用户密码时,并不改变加密密钥的明文,而是更新了加密密钥的密文,因此不需要重新加密目标数据。
在一个实施例中,可信部件获取在输入的操作信息,其中,操作信息包括:目标数据以及加密操作信息。目标数据和加密操作信息可以在可信环境中输入,也可以是外部输入的,用户密码必须在可信环境中输入。可信部件基于第二散列值解密与加密操作信息对应的加密密钥密文,获得指定的加密密钥。可信部件使用指定的加密密钥作为密钥,采用与加密操作信息对应的加密算法对目标数据进行加密,获得目标数据的密文并存储。加密算法包括:DES、3DES、AES-128、AES-256、SM4等。
例如,加密数据时,需要用户在TUI下输入用户密码或使用SE独占控制的触控或键盘设备输入校验密码。如果校验密码验证成功,计算用户密码的散列值[算法B],用散列值[算法B]解密指定的加密密钥,得到指定加密密钥的明文。使用加密密钥的明文作为密钥,使用指定加密算法对目标数据进行加密(加密过程在可信环境中执行),得到目标数据的密文。密文数据将保存在可信环境的数据存储模块中。
在一个实施例中,本发明提供一种数据加密系统包括:可信部件30,如图3所示,可信部件30包括:密码与密钥管理模块31、加解密模块32和数据存储模块33。
密码与密钥管理模块31接收到在可信环境中输入的校验密码,基于预设的密码验证规则对校验密码进行验证。如果验证成功,则密码与密钥管理模块31基于预设的密钥管理规则以及在可信环境中输入的操作信息对加密密钥以及加密密钥与用户密码的关联关系进行相应的操作。加解密模块32基于加密密钥对数据进行加密。数据存储模块33存储加密后的数据。
可信部件可以为在可信执行环境TEE中运行的可信应用TA、安全单元SE等。通过运行在TEE中的可信用户接口TUI输入校验密码、操作信息;或者,通过SE独占控制的键盘或触控设备输入校验密码、操作信息。
如图4所示,密码与密钥管理模块31包括:密码验证单元311、密钥生成单元312、密钥关联单元313和密码修改单元314。密码验证单元311基于第一散列算法计算校验密码的第一散列值。密码验证单元311判断第一散列值与预设的用户密码散列值是否相同,如果是,则确定对校验密码验证成功,如果否,则确定对校验密码验证失败。
如果确定对校验密码验证失败,则密码验证单元311提示重新输入校验密码进行验证。当验证失败的次数达到预设的验证次数阈值时,则密码验证单元311禁止输入校验密码并停止对校验密码进行验证。
密钥生成单元312获取在可信环境中输入的操作信息,其中,操作信息包括:密钥生成信息。密钥生成单元312基于密钥生成信息确定加密算法,生成与此加密算法对应的、具有预设的密钥长度的加密密钥。密钥关联单元313基于第二散列算法计算用户密码的第二散列值,使用第二散列值作为密钥加密此加密密钥,获得加密密钥密文,建立用户密码散列值与加密密钥密文的关联关系并存储。
密钥关联单元313生成密钥列表文件,在密钥列表文件中存储用户密码散列值以及与用户密码散列值相关联的所有加密密钥密文。第一散列算法和第二散列算法包括:MD5、SHA1、SHA-2系列、SM3;其中,第一散列算法和第二散列算法不相同。
密码修改单元314获取在可信环境中输入的操作信息,其中,操作信息包括:用户密码修改指令以及新用户密码。密码修改单元314基于第二散列值解密与用户密码散列值相关联的所有加密密钥密文,获得加密密钥。密码修改单元314将新用户密码作为新的用户密码,并基于第二散列算法计算新用户密钥的第三散列值。密码修改单元314使用第三散列值作为密钥加密加密密钥,获得新加密密钥密文。
密码修改单元314基于第一散列算法计算新用户密码的第四散列值,建立第四散列值与新加密密钥密文的新关联关系并存储。密码修改单元314将第四散列值以及与第四散列值相关联的所有新加密密钥密文存储在密钥列表文件中,用以替换用户密码散列值以及与用户密码散列值相关联的所有加密密钥密文。
在一个实施例中,加解密模块32获取输入的操作信息,其中,操作信息包括:目标数据以及加密操作信息。加解密模块32基于第二散列值解密与加密操作信息对应的加密密钥密文,获得指定的加密密钥;加解密模块32使用指定的加密密钥作为密钥,采用与加密操作信息对应的加密算法对目标数据进行加密,获得目标数据的密文。数据存储模块33存储目标数据的密文。
图5为根据本发明公开的数据加密系统的另一个实施例的模块示意图。如图5所示,该装置可包括存储器51、处理器52、通信接口53以及总线54。存储器51用于存储指令,处理器52耦合到存储器51,处理器52被配置为基于存储器51存储的指令执行实现上述的数据加密方法。
存储器51可以为高速RAM存储器、非易失性存储器(NoN-volatile memory)等,存储器51也可以是存储器阵列。处理器52可以为中央处理器CPU,或专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明公开的数据加密方法的一个或多个集成电路。
在一个实施例中,本发明提供一种终端,包括如上任一实施例中的数据加密系统。终端可以为智能手机、平板电脑等。
在一个实施例中,本公开还提供一种计算机可读存储介质,其中计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一实施例涉及的数据加密方法。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
上述实施例中的数据加密方法、系统以及终端,可信部件接收到在可信环境中输入的校验密码,如果对校验密码验证成功,则基于预设的密钥管理规则以及在可信环境中输入的操作信息,对加密密钥以及加密密钥与用户密码的关联关系进行相应的操作,基于加密密钥对数据进行加密并存储加密后的数据;可以在可信环境中输入和验证用户密码,防止密码被监听、截取、泄露;在可信环境中加密和存储数据,显著增强了安全性;能够用一个密码来管理多个不同的加密密钥;可以在修改密码时不改变加密密钥,不需要重新加密目标数据,可以保证数据的安全性。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (21)
1.一种数据加密方法,其特征在于,包括:
可信部件接收到在可信环境中输入的校验密码;
所述可信部件基于预设的密码验证规则对所述校验密码进行验证;
如果验证成功,则所述可信部件基于预设的密钥管理规则以及在可信环境中输入的操作信息,对加密密钥以及所述加密密钥与用户密码的关联关系进行相应的操作,和基于所述加密密钥对数据进行加密并存储加密后的数据;
所述可信部件基于预设的密码验证规则对所述校验密码进行验证包括:
所述可信部件基于第一散列算法计算所述校验密码的第一散列值;
判断所述第一散列值与预设的用户密码散列值是否相同,如果是,则确定对所述校验密码验证成功,如果否,则确定对所述校验密码验证失败;
所述可信部件基于预设的密钥管理规则以及在可信环境中输入的操作信息对加密密钥以及所述加密密钥与用户密码的关联关系进行相应的操作包括:
所述可信部件获取在可信环境中输入的操作信息,其中,操作信息包括:密钥生成信息;
所述可信部件基于所述密钥生成信息确定加密算法,生成与此加密算法对应的、具有预设的密钥长度的加密密钥;
所述可信部件基于第二散列算法计算用户密码的第二散列值,使用所述第二散列值作为密钥加密所述加密密钥,获得加密密钥密文;
所述可信部件建立所述用户密码散列值与所述加密密钥密文的关联关系并存储;所述可信部件基于预设的密钥管理规则以及在可信环境中输入的操作信息对加密密钥以及所述加密密钥与用户密码的关联关系进行相应的操作还包括:
所述可信部件获取在可信环境中输入的操作信息,其中,操作信息包括:用户密码修改指令以及新用户密码;
所述可信部件基于所述第二散列值解密与所述用户密码散列值相关联的所有加密密钥密文,获得所述加密密钥;
所述可信部件将所述新用户密码替换旧的用户密码,并基于所述第二散列算法计算所述新用户密码的第三散列值,使用所述第三散列值作为密钥加密所述加密密钥,获得新加密密钥密文;
所述可信部件基于所述第一散列算法计算所述新用户密码的第四散列值,建立所述第四散列值与所述新加密密钥密文的新关联关系并存储。
2.如权利要求1所述的方法,其特征在于,
所述可信部件包括:在可信执行环境TEE中运行的可信应用TA、安全单元SE。
3.如权利要求2所述的方法,其特征在于,还包括:
通过运行在所述TEE中的可信用户接口TUI输入所述校验密码、所述操作信息;或者,
通过所述SE独占控制的键盘或触控设备输入所述校验密码、所述操作信息。
4.如权利要求1所述的方法,其特征在于,
如果确定对所述校验密码验证失败,则提示重新输入校验密码进行验证;
当验证失败的次数达到预设的验证次数阈值时,则所述可信部件禁止输入校验密码并停止对校验密码进行验证。
5.如权利要求1所述的方法,其特征在于,还包括:
所述可信部件生成密钥列表文件,在所述密钥列表文件中存储所述用户密码散列值以及与所述用户密码散列值相关联的所有加密密钥密文。
6.如权利要求1所述的方法,其特征在于,还包括:
所述第一散列算法和所述第二散列算法包括:MD5、SHA1、SHA-2系列、SM3;其中,所述第一散列算法和所述第二散列算法不相同。
7.如权利要求1所述的方法,其特征在于,
所述可信部件将所述第四散列值以及与所述第四散列值相关联的所有新加密密钥密文存储在所述密钥列表文件中,用以替换原有的用户密码散列值以及与原有的用户密码散列值相关联的所有加密密钥密文。
8.如权利要求1所述的方法,其特征在于,所述可信部件基于所述加密密钥对数据进行加密并存储加密后的数据包括:
所述可信部件获取输入的操作信息,其中,操作信息包括:目标数据以及加密操作信息;
所述可信部件基于所述第二散列值解密与所述加密操作信息对应的加密密钥密文,获得指定的加密密钥;
所述可信部件使用所述指定的加密密钥作为密钥,采用与所述加密操作信息对应的加密算法对所述目标数据进行加密,获得所述目标数据的密文并存储。
9.如权利要求8所述的方法,其特征在于,
所述加密算法包括:DES、3DES、AES-128、AES-256、SM4。
10.一种数据加密系统,其特征在于,包括:
可信部件,包括:
密码与密钥管理模块,用于接收到在可信环境中输入的校验密码,基于预设的密码验证规则对所述校验密码进行验证;如果验证成功,则基于预设的密钥管理规则以及在可信环境中输入的操作信息对加密密钥以及所述加密密钥与用户密码的关联关系进行相应的操作;
加解密模块,用于基于所述加密密钥对数据进行加密;
数据存储模块,用于存储加密后的数据;
所述密码与密钥管理模块,包括:
密码验证单元,用于基于第一散列算法计算所述校验密码的第一散列值;判断所述第一散列值与预设的用户密码散列值是否相同,如果是,则确定对所述校验密码验证成功,如果否,则确定对所述校验密码验证失败;
密钥生成单元,用于获取在可信环境中输入的操作信息,其中,操作信息包括:密钥生成信息;基于所述密钥生成信息确定加密算法,生成与此加密算法对应的、具有预设的密钥长度的加密密钥;
密钥关联单元,用于基于第二散列算法计算用户密码的第二散列值;使用所述第二散列值作为密钥加密所述加密密钥,获得加密密钥密文;建立所述用户密码散列值与所述加密密钥密文的关联关系并存储;
密码修改单元,用于获取在可信环境中输入的操作信息,其中,操作信息包括:用户密码修改指令以及新用户密码;基于所述第二散列值解密与所述用户密码散列值相关联的所有加密密钥密文,获得所述加密密钥;将所述新用户密码替换旧的用户密码,并基于所述第二散列算法计算所述新用户密码的第三散列值;使用所述第三散列值作为密钥加密所述加密密钥,获得新加密密钥密文;基于所述第一散列算法计算所述新用户密码的第四散列值,建立所述第四散列值与所述新加密密钥密文的新关联关系并存储。
11.如权利要求10所述的系统,其特征在于,
所述可信部件包括:在可信执行环境TEE中运行的可信应用TA、安全单元SE。
12.如权利要求11所述的系统,其特征在于,还包括:
通过运行在所述TEE中的可信用户接口TUI输入所述校验密码、所述操作信息;或者,
通过所述SE独占控制的键盘或触控设备输入所述校验密码、所述操作信息。
13.如权利要求10所述的系统,其特征在于,
所述密码验证单元,用于如果确定对所述校验密码验证失败,则提示重新输入校验密码进行验证;当验证失败的次数达到预设的验证次数阈值时,则禁止输入校验密码并停止对校验密码进行验证。
14.如权利要求10所述的系统,其特征在于,
所述密钥关联单元,用于生成密钥列表文件,在所述密钥列表文件中存储所述用户密码散列值以及与所述用户密码散列值相关联的所有加密密钥密文。
15.如权利要求10所述的系统,其特征在于,
所述第一散列算法和所述第二散列算法包括:MD5、SHA1、SHA-2系列、SM3;其中,所述第一散列算法和所述第二散列算法不相同。
16.如权利要求10所述的系统,其特征在于,
所述密码修改单元,用于将所述第四散列值以及与所述第四散列值相关联的所有新加密密钥密文存储在所述密钥列表文件中,用以替换原有的用户密码散列值以及与原有的用户密码散列值相关联的所有加密密钥密文。
17.如权利要求10所述的系统,其特征在于,
所述加解密模块,用于获取输入的操作信息,其中,操作信息包括:目标数据以及加密操作信息;基于所述第二散列值解密与所述加密操作信息对应的加密密钥密文,获得指定的加密密钥;使用所述指定的加密密钥作为密钥,采用与所述加密操作信息对应的加密算法对所述目标数据进行加密,获得所述目标数据的密文;
所述数据存储模块,用于存储所述目标数据的密文。
18.如权利要求17所述的系统,其特征在于,
所述加密算法包括:DES、3DES、AES-128、AES-256、SM4。
19.一种数据加密系统,其特征在于,包括:
存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至9中任一项所述的数据加密方法。
20.一种终端,其特征在于:
包括如权利要求10至19任一项所述的数据加密系统。
21.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被一个或多个处理器执行时实现权利要求1至9任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810375283.6A CN110401538B (zh) | 2018-04-24 | 2018-04-24 | 数据加密方法、系统以及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810375283.6A CN110401538B (zh) | 2018-04-24 | 2018-04-24 | 数据加密方法、系统以及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110401538A CN110401538A (zh) | 2019-11-01 |
CN110401538B true CN110401538B (zh) | 2022-04-22 |
Family
ID=68322339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810375283.6A Active CN110401538B (zh) | 2018-04-24 | 2018-04-24 | 数据加密方法、系统以及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110401538B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929266B (zh) * | 2019-11-29 | 2021-09-03 | 广州小鹏汽车科技有限公司 | 基于安全加固架构的系统、加解密方法、车联网终端和车辆 |
CN111177701B (zh) * | 2019-12-11 | 2022-09-13 | 北京握奇智能科技有限公司 | 基于可信执行环境和安全芯片的密码功能服务实现方法和设备 |
CN113536285A (zh) * | 2020-04-13 | 2021-10-22 | 成都鼎桥通信技术有限公司 | 终端设备的专用密码加密方法和装置 |
CN111666560A (zh) * | 2020-05-28 | 2020-09-15 | 南开大学 | 一种基于可信执行环境的密码管理方法和系统 |
CN111475832B (zh) * | 2020-06-24 | 2021-01-12 | 腾讯科技(深圳)有限公司 | 一种数据管理的方法以及相关装置 |
CN113962676A (zh) * | 2020-07-20 | 2022-01-21 | 华为技术有限公司 | 交易验证的方法、装置 |
CN114117406A (zh) * | 2021-09-30 | 2022-03-01 | 深圳前海微众银行股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595530A (zh) * | 2012-08-17 | 2014-02-19 | 华为技术有限公司 | 软件密钥更新方法和装置 |
CN104915584A (zh) * | 2015-06-03 | 2015-09-16 | 深圳市沃特沃德科技有限公司 | 基于指纹特征的智能移动终端随机加解密系统 |
CN105227537A (zh) * | 2014-06-16 | 2016-01-06 | 华为技术有限公司 | 用户身份认证方法、终端和服务端 |
CN106529308A (zh) * | 2015-09-10 | 2017-03-22 | 深圳市中兴微电子技术有限公司 | 一种数据加密方法、装置及移动终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9215249B2 (en) * | 2012-09-29 | 2015-12-15 | Intel Corporation | Systems and methods for distributed trust computing and key management |
-
2018
- 2018-04-24 CN CN201810375283.6A patent/CN110401538B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595530A (zh) * | 2012-08-17 | 2014-02-19 | 华为技术有限公司 | 软件密钥更新方法和装置 |
CN105227537A (zh) * | 2014-06-16 | 2016-01-06 | 华为技术有限公司 | 用户身份认证方法、终端和服务端 |
CN104915584A (zh) * | 2015-06-03 | 2015-09-16 | 深圳市沃特沃德科技有限公司 | 基于指纹特征的智能移动终端随机加解密系统 |
CN106529308A (zh) * | 2015-09-10 | 2017-03-22 | 深圳市中兴微电子技术有限公司 | 一种数据加密方法、装置及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110401538A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110401538B (zh) | 数据加密方法、系统以及终端 | |
CN100447763C (zh) | 一种安全芯片及基于该芯片的信息安全处理设备和方法 | |
US9054865B2 (en) | Cryptographic system and methodology for securing software cryptography | |
CN108768963B (zh) | 可信应用与安全元件的通信方法和系统 | |
US11050562B2 (en) | Target device attestation using a trusted platform module | |
US20230325516A1 (en) | Method for file encryption, terminal, electronic device and computer-readable storage medium | |
US20180204004A1 (en) | Authentication method and apparatus for reinforced software | |
CN111193740B (zh) | 加密方法、装置、解密方法、计算机设备和存储介质 | |
CN110177111B (zh) | 一种信息验证方法、系统及装置 | |
WO2018112482A1 (en) | Method and system for distributing attestation key and certificate in trusted computing | |
CN112257086A (zh) | 一种用户隐私数据保护方法及电子设备 | |
GB2556638A (en) | Protecting usage of key store content | |
EP3057029B1 (en) | Improved encryption and authentication method and apparatus | |
EP3885954B1 (en) | Security reinforcement architecture, encryption and decryption method, car networking terminal, and vehicle | |
US20240113898A1 (en) | Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity | |
CN107548542B (zh) | 经强化完整性及安全性的用户认证方法 | |
US10025918B2 (en) | Apparatus and method for password authentication | |
WO2022052665A1 (zh) | 无线终端及无线终端在Uboot模式下的接口访问鉴权方法 | |
CN111338841A (zh) | 数据处理方法、装置、设备和存储介质 | |
US8832443B2 (en) | Methods and systems for increasing the security of private keys | |
CN108242997B (zh) | 安全通信的方法与设备 | |
CN116432241A (zh) | 一种文本加密系统及方法 | |
CN112825093B (zh) | 安全基线检查方法、主机、服务器、电子设备及存储介质 | |
KR20180102387A (ko) | 어플리케이션 보안 방법 및 이를 수행하기 위한 시스템 | |
CN117034250A (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 |