CN106533663B - 数据加密方法、加密方设备及数据解密方法、解密方设备 - Google Patents
数据加密方法、加密方设备及数据解密方法、解密方设备 Download PDFInfo
- Publication number
- CN106533663B CN106533663B CN201610971331.9A CN201610971331A CN106533663B CN 106533663 B CN106533663 B CN 106533663B CN 201610971331 A CN201610971331 A CN 201610971331A CN 106533663 B CN106533663 B CN 106533663B
- Authority
- CN
- China
- Prior art keywords
- key
- hardware
- encryption
- file
- software
- 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 61
- 206010001488 Aggression Diseases 0.000 abstract 1
- 230000008569 process Effects 0.000 description 7
- 238000013475 authorization Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 241000764238 Isis Species 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了数据加密方法、加密方设备及数据解密方法、解密方设备,该数据加密方法可以包括:通过创建硬件密钥,并且将该硬件密钥与加密方设备绑定,再由该硬件密钥,创建该硬件密钥的子密钥,生成第一文件,并且利用该硬件密钥加密子密钥,与此同时创建软件加密密钥,利用该软件加密密钥加密目标数据,生成第二文件,最后利用子密钥加密软件加密密钥生成第三文件。由于将硬件密钥与加密方设备绑定,然后使用硬件密钥的子密钥对软件密钥进行加密,即使采用穷举法等暴力方式对软件密钥进行破解,获取到软件密钥也不能够解密出目标数据,从而能够提高被加密的目标数据的安全性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及数据加密方法、加密方设备及数据解密方法、解密方设备。
背景技术
随着科技和互联网技术的飞速发展,在带给人们便利的同时,也存在着很多安全隐患。在如今社会,信息安全已成为人们密切关注的问题,涉及到私人敏感数据、技术、财务、军工等机密数据。
目前,为了防止用户个人信息等敏感数据被窃取,产生了大量的加密软件,对需要保护的数据进行加密。在加密过程中,通过加密算法和加密密钥将明文转变为密文,而在解密算法中解密则是通过解密算法和解密密钥将密文恢复为明文。
然而,在密钥已经确定时,明文与密码是一一对应的关系,可以采用穷举法等暴力方式进行破解,造成目标数据泄露。因此,被加密的目标数据的安全性较低。
发明内容
本发明实施例提供了数据加密方法、加密方设备及数据解密方法、解密方设备,能够提高被加密的目标数据的安全性。
本发明实施例提供了一种数据加密方法,该方法可以应用于加密方设备,可以包括以下步骤:
创建硬件密钥,将所述硬件密钥与所述加密方设备绑定;
根据所述硬件密钥,创建所述硬件密钥的子密钥;
利用所述硬件密钥加密所述子密钥,生成第一文件;
创建软件加密密钥;
利用所述软件加密密钥加密目标数据,生成第二文件;
利用所述子密钥加密所述软件加密密钥,生成第三文件。
优选的,所述创建硬件密钥,将所述硬件密钥与所述加密方设备绑定,包括:
利用安装于所述加密方设备的TPM(Trusted Platform Module,可信赖平台模块)安全芯片创建所述硬件密钥,利用所述TPM安全芯片保存所述硬件密钥。
优选的,所述创建硬件密钥,包括:
根据公式一确定密钥长度;
其中,所述公式一为:n=q×p;
其中,q用于表征第一预设质数、p用于表征第二预设质数、n用于表征所述密钥长度;
根据所述密钥长度和公式二,确定小于等于所述密钥长度的数中与所述密钥长度互质的数的第一数量;
其中,所述公式二为:
其中,为所述第一数量;
确定随机一个与所述第一数量互质的第一目标数,且所述第一目标数为小于所述第一数量的正数;
根据所述第一数量、所述第一目标数和公式三,确定第二目标数;
其中,所述公式三为:
其中,e为所述第一目标数,d为所述第二目标数;
根据所述第一目标数、所述第二目标数和所述密钥长度,确定所述硬件密钥包括:私钥和公钥,其中所述私钥为(n,d),所述公钥为(n,e);
所述利用所述硬件密钥加密所述子密钥,生成第一文件,包括:
根据公式四和所述公钥,加密所述子密钥,生成第一文件,其中,所述公式四为:
C≡M^emod n;
其中,C为所述第一文件,M为所述子密钥。
优选的,在所述利用所述子密钥加密所述软件加密密钥之后,进一步包括:
判断利用所述子密钥加密所述软件加密密钥是否成功,若是,则删除所述软件加密密钥,生成所述第三文件;否则,利用所述软件加密密钥,解密所述第二文件,获取所述目标数据。
本发明实施例提供了一种加密方设备,该加密方设备可以包括:加密硬件单元和加密软件单元,其中,
所述加密硬件单元,用于创建硬件密钥,将所述硬件密钥与所述加密方设备绑定,根据所述硬件密钥,创建所述硬件密钥的子密钥,利用所述硬件密钥加密所述子密钥,生成第一文件,以及利用所述子密钥加密软件加密密钥,生成第三文件;
所述加密软件单元,用于创建所述软件加密密钥,利用所述软件加密密钥加密目标数据,生成第二文件。
优选地,所述加密硬件单元,在执行所述创建硬件密钥时,用于:根据公式一确定密钥长度;根据所述密钥长度和公式二,确定小于等于所述密钥长度的数中与所述密钥长度互质的数的第一数量;确定随机一个与所述第一数量互质的第一目标数,且所述第一目标数为小于所述第一数量的正数;根据所述第一数量、所述第一目标数和公式三,确定第二目标数;根据所述第一目标数、所述第二目标数和所述密钥长度,确定所述硬件密钥,所述硬件密钥包括:私钥和公钥;
其中,所述私钥为(n,d),所述公钥为(n,e);e为所述第一目标数,d为所述第二目标数;
所述公式一为:n=q×p;
q用于表征第一预设质数、p用于表征第二预设质数、n用于表征所述密钥长度;
所述公式二为:
为所述第一数量;
其中,所述公式三为:
所述加密硬件单元,在执行所述利用所述硬件密钥加密所述子密钥,生成第一文件时,用于:根据公式四和所述公钥,加密所述子密钥,生成第一文件,其中,所述公式四为:
C≡M^emod n;
其中,C为所述第一文件,M为所述子密钥。
优选的,所述加密硬件单元,包括:TPM安全芯片,其中,
所述TMP安全芯片,安装于所述加密方设备中,具体用于创建所述硬件密钥,并保存所述硬件密钥。
优选的,所述加密硬件单元,在执行所述利用所述子密钥加密所述软件加密密钥之后,进一步用于判断利用所述子密钥加密所述软件加密密钥是否成功,若是,则删除所述软件加密密钥,生成所述第三文件,否则,向所述加密软件单元输出加密失败信号;
所述加密软件单元,进一步用于在接收到所述加密硬件单元输出的所述加密失败信号后,利用所述软件加密密钥,解密所述第二文件,获取所述目标数据。
本发明实施例提供了一种数据解密方法,该方法可以应用于解密方设备,可以包括以下步骤:
利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥;
利用所述子密钥,解密所述第三文件,获取软件加密密钥;
利用所述软件加密密钥,解密所述第二文件,获取目标数据。
优选的,在所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件之前,进一步包括:
从安装于所述解密方设备的TPM安全芯片获取所述硬件密钥;
和/或,
所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,包括:
根据公式五和所述硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,其中,所述公式五为:
M≡C^dmod n;
其中,C为所述第一文件,M为所述子密钥,(n,d)为所述硬件密钥中的私钥,n为密钥长度。
本发明实施例提供了一种解密方设备,该解密方设备可以包括解密硬件单元和解密软件单元,其中,
所述解密硬件单元,用于利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,以及利用所述子密钥,解密所述第三文件,获取软件加密密钥;
所述解密软件单元,用于利用所述软件加密密钥,解密所述第二文件,获取目标数据。:
优选的,所述解密硬件单元,包括:TPM安全芯片,其中,
所述TMP安全芯片,安装于所述解密方设备中,保存有所述硬件密钥;
所述TMP安全芯片,用于在所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件之前,进一步用于获取保存的所述硬件密钥。
优选的,所述解密硬件单元,在执行所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥时,用于:根据公式五和所述硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,其中,所述公式五为:
M≡C^d mod n;
其中,C为所述第一文件,M为所述子密钥,(n,d)为所述硬件密钥中的私钥,n为密钥长度。
本发明实施例提供了数据加密方法、加密方设备及数据解密方法、解密方设备,通过创建硬件密钥,并且将该硬件密钥与加密方设备绑定,再由该硬件密钥,创建该硬件密钥的子密钥,并且利用该硬件密钥加密子密钥,与此同时创建软件加密密钥,利用该软件加密密钥加密目标数据,最后利用子密钥加密软件加密密钥。由于将硬件密钥与加密方设备绑定,然后使用硬件密钥的子密钥对软件密钥进行加密,即使采用穷举法等暴力方式对软件密钥进行破解,获取到软件密钥也不能够解密出目标数据,从而能够提高被加密的目标数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种数据加密方法的流程图;
图2是本发明一个实施例提供的一种加密方设备的结构示意图;
图3是本发明一个实施例提供的另一种加密方设备的结构示意图;
图4是本发明一个实施例提供的一种数据解密方法的流程图;
图5是本发明一个实施例提供的又一种解密方设备的结构示意图;
图6是本发明一个实施例提供的再一种解密方设备的结构示意图;
图7是本发明一个实施例提供的一种从数据加密到数据解密的方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种数据加密方法,该方法可以应用于加密方设备,可以包括以下步骤:
步骤101:创建硬件密钥,将所述硬件密钥与所述加密方设备绑定。
步骤102:根据所述硬件密钥,创建所述硬件密钥的子密钥。
步骤103:利用所述硬件密钥加密所述子密钥,生成第一文件。
步骤104:创建软件加密密钥。
步骤105:利用所述软件加密密钥加密目标数据,生成第二文件。
步骤106:利用所述子密钥加密所述软件加密密钥,生成第三文件。
在图1所示的实施例中,通过创建硬件密钥,并且将该硬件密钥与加密方设备绑定,再由该硬件密钥,创建该硬件密钥的子密钥,并且利用该硬件密钥加密子密钥,与此同时创建软件加密密钥,利用该软件加密密钥加密目标数据,最后利用子密钥加密软件加密密钥。由于将硬件密钥与加密方设备绑定,然后使用硬件密钥的子密钥对软件密钥进行加密,即使采用穷举法等暴力方式对软件密钥进行破解,获取到软件密钥也不能够解密出目标数据,从而能够提高被加密的目标数据的安全性。
在本发明一个实施例中,为了提高硬件密码的安全性,所述创建硬件密钥,将所述硬件密钥与所述加密方绑定,包括:
利用安装于所述加密方设备的TPM安全芯片创建所述硬件密钥,利用所述TPM安全芯片保存所述硬件密钥。
值得说明的是,TPM安全芯片是指符合TPM标准的安全芯片,它能有效地保护PC、防止非法用户访问。在该实施例中,通过TPM安全芯片创建硬件密码,而该硬件密码由TPM安全芯片中随机数计算而出,从而无法导出到TPM安全芯片外,因此TPM安全芯片生成的密钥只能由该TPM安全芯片使用。又由于该TPM安全芯片与加密方设备绑定,因此除该加密方设备以外的任何物理设备均无法获取该硬件密钥,从而提高了硬件密码的安全性,进一步提高了被加密的目标数据的安全性硬件密码的安全性。
在该实施例中,创建硬件密钥需要使用TPM创建根密钥命令,该命令须获取TPM安全芯片所有者的授权值,才能正常使用;同时也要获取创建的根密钥的授权值,才可以创建根密钥;创建根密钥的子密钥时需输入根密钥的授权值。根密钥创建完毕后,以及创建子密钥后,需要对根密钥和子密钥进行加。而在加载过程中,可能存在TPM安全芯片中的句柄未使用完毕的情况,从而造成无法加载新的密钥的问题,因此引起加载失败,故在加载失败后须返回TPM安全芯片加载失败的错误提示信息。
在本发明一个实施例中,为了确保硬件密钥的安全性,所述创建所述硬件密钥,包括:
根据公式一确定密钥长度;
其中,所述公式一为:n=q×p;
其中,q用于表征第一预设质数、p用于表征第二预设质数、n用于表征所述密钥长度;
根据所述密钥长度和公式二,确定小于等于所述密钥长度的数中与所述密钥长度互质的数的第一数量;
其中,所述公式二为:
其中,为所述第一数量;
确定随机一个与所述第一数量互质的第一目标数,且所述第一目标数为小于所述第一数量的正数;
根据所述第一数量、所述第一目标数和公式三,确定第二目标数;
其中,所述公式三为:
其中,e为所述第一目标数,d为所述第二目标数;
根据所述第一目标数、所述第二目标数和所述密钥长度,确定所述硬件密钥,所述硬件密钥包括:私钥和公钥,其中,所述私钥为(n,d),所述公钥为(n,e);
所述利用所述硬件密钥加密所述子密钥,生成第一文件,包括:
根据公式四和所述公钥,加密所述子密钥,生成第一文件,其中,所述公式四为:
C≡M^emod n;
其中,C为所述第一文件,M为所述子密钥。
值得说明的是,n的长度用于表征密钥长度。例如:在一个密钥中,n=3233,若将n写成二进制形式就是110010100001,一共有12位,所以这个密钥就是12位。而密钥的长度也可以是1024位,重要场合也可以是2048位。欧拉函数是指小于等于n的数中与n互质的数的数目。表示e与互质,其中 表示e和d的乘积被除的余数为1。同样可以使用上述方法创建硬件密钥的子密钥,使子密钥的安全性更高。
例如:p=61,q=53,则n=61×53=3233;则其中e为任意小于且与互质的数,这里取e=17,则d=2753。因此,得到一对非对称密钥(3233,17)和(3233,2753),其中公钥是(3233,17),私钥是(3233,2753)。
在该实施例中,对于子密钥的加密,可以将子密钥比特串分组,并且使每个分组对应的十进制数小于n,然后对子密钥的每个分组M,利用公式四进行加密。其中,公式四表征M的e次方除以n的余数是C。
在本发明一个实施例中,在所述利用所述子密钥加密所述软件加密密钥之后,进一步包括:
判断利用所述子密钥加密所述软件加密密钥是否成功,若是,则删除所述软件加密密钥,生成所述第三文件;否则,利用所述软件加密密钥,解密所述第二文件,获取所述目标数据。
在该实施例中,使用硬件密钥子密钥加密软件加密密钥时,可能会出现当前获取的当前授权值与创建硬件密码是获取的授权值不用,而导致加密失败的情况,因此需要判断硬件密钥子密钥加密软件加密密钥是否成功。
如图2所示,本发明实施例提供了一种加密方设备,该物理设备可以包括:加密硬件单元201和加密软件单元202,其中,
所述加密硬件单元201,用于创建硬件密钥,将所述硬件密钥与所述加密方设备绑定,根据所述硬件密钥,创建所述硬件密钥的子密钥,利用所述硬件密钥加密所述子密钥,生成第一文件,以及利用所述子密钥加密软件加密密钥,生成第三文件;
所述加密软件单元202,用于创建所述软件加密密钥,利用所述软件加密密钥加密目标数据,生成第二文件。
在本发明一个实施例中,所述加密硬件单元,在执行所述创建硬件密钥时,用于:根据公式一确定密钥长度;根据所述密钥长度和公式二,确定小于等于所述密钥长度的数中与所述密钥长度互质的数的第一数量;确定随机一个与所述第一数量互质的第一目标数,且所述第一目标数为小于所述第一数量的正数;根据所述第一数量、所述第一目标数和公式三,确定第二目标数;根据所述第一目标数、所述第二目标数和所述密钥长度,确定所述硬件密钥,所述硬件密钥包括:私钥和公钥;
其中,所述私钥为(n,d),所述公钥为(n,e);e为所述第一目标数,d为所述第二目标数;
所述公式一为:n=q×p;
q用于表征第一预设质数、p用于表征第二预设质数、n用于表征所述密钥长度;
所述公式二为:
为所述第一数量;
其中,所述公式三为:
所述加密硬件单元,在执行所述利用所述硬件密钥加密所述子密钥,生成第一文件时,用于:根据公式四和所述公钥,加密所述子密钥,生成第一文件,其中,所述公式四为:
C≡M^emod n;
其中,C为所述第一文件,M为所述子密钥。
如图3所示,在本发明一个实施例中,为了提高硬件密码的安全性,所述加密硬件单元,包括:TPM安全芯片301,其中,
所述TMP安全芯片301,安装于所述加密方设备中,具体用于创建所述硬件密钥,并保存所述硬件密钥。
值得说明的是,TPM安全芯片是指符合TPM标准的安全芯片,它能有效地保护PC、防止非法用户访问。在该实施例中,通过TPM安全芯片创建硬件密码,而该硬件密码由TPM安全芯片中随机数计算而出,从而无法导出到TPM安全芯片外,因此TPM安全芯片生成的硬件密钥只能由该TPM安全芯片使用。又由于该TPM安全芯片与加密方设备绑定,因此除该加密方设备以外的任何物理设备均无法获取该硬件密钥,从而提高了硬件密码的安全性,进一步提高了被加密的目标数据的安全性硬件密码的安全性。
在本发明一个实施例中,为了确保加密硬件单元对加密软件单元加密成功,所述加密硬件单元,在执行所述利用所述子密钥加密所述软件加密密钥之后,进一步用于判断利用所述子密钥加密所述软件加密密钥是否成功,若是,则删除所述软件加密密钥,生成所述第三文件,否则,向所述加密软件单元输出加密失败信号;
所述加密软件单元,进一步用于在接收到所述加密硬件单元输出的所述加密失败信号后,利用所述软件加密密钥,解密所述第二文件,获取所述目标数据。
在该实施例中,加密成功后删除软件加密密钥,能够有效保护软件密钥不被盗取泄露;而在加密失败后恢复获取目标数据,能有效防止目标数据的丢失。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图4所示,本发明实施例提供了一种数据解密方法,该方法可以应用于解密方设备,可以包括以下步骤:
步骤401:利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥。
步骤402:利用所述子密钥,解密所述第三文件,获取软件加密密钥。
步骤403:利用所述软件加密密钥,解密所述第二文件,获取目标数据。
在该实施例中,一个密钥由一个公钥和一个私钥组成,使用公钥通过加密算法加密数据后,需要使用相应的私钥进行解密。
在本发明一个实施例中,为了能够成功解密数据,在所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件之前,进一步包括:
从安装于所述解密方设备的TPM安全芯片获取所述硬件密钥。
值得说明的是,TPM安全芯片是指符合TPM标准的安全芯片,它能有效地保护PC、防止非法用户访问。在该实施例中,通过TPM安全芯片创建硬件密码,而该硬件密码由TPM安全芯片中随机数计算而出,从而无法导出到TPM安全芯片外,因此TPM安全芯片生成的密钥只能由该TPM安全芯片使用。而对于想解密该TPM安全芯片加密的数据,也只能使用该TPM安全芯片获取硬件密钥进行解密。
在本发明一个实施例中,为了能够获取到硬件密钥的子密钥,所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,包括:
根据公式五和所述硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,其中,所述公式五为:
M≡C^dmod n;
其中,C为所述第一文件,M为所述子密钥,(n,d)为所述硬件密钥中的私钥,n为密钥长度。
在该实施例中,通过公式五,能够顺利的将包含有子密钥的密文转换为明文,从而获取到硬件密钥的子密钥。其中,公式五表征C的d次方除以n的余数为M。
如图5所示,本发明实施例提供了一种解密方设备,该设备可以包括:解密硬件单元501和解密软件单元502,其中,
所述解密硬件单元501,用于利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,以及利用所述子密钥,解密所述第三文件,获取软件加密密钥;
所述解密软件单元502,用于利用所述软件加密密钥,解密所述第二文件,获取目标数据。
如图6所示,在本发明一个实施例中,为了能够成功解密被加密数据,所述解密硬件单元,包括:TPM安全芯片601,其中,
所述TMP安全芯片601,安装于所述解密方设备中,保存有所述硬件密钥;
所述TMP安全芯片601,用于在所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件之前,进一步用于获取保存的所述硬件密钥。
值得说明的是,TPM安全芯片是指符合TPM标准的安全芯片,它能有效地保护PC、防止非法用户访问。在该实施例中,通过TPM安全芯片创建硬件密码,而该硬件密码由TPM安全芯片中随机数计算而出,从而无法导出到TPM安全芯片外,因此TPM安全芯片生成的密钥只能由该TPM安全芯片使用。而对于想解密该TPM安全芯片加密的数据,也只能使用该TPM安全芯片获取硬件密钥进行解密。
在本发明一个实施例中,为了能够顺利的获取到硬件密钥的子密钥,所述解密硬件单元,在执行所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥时,用于:根据公式五和所述硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,其中,所述公式五为:
M≡C^dmod n;
其中,C为所述第一文件,M为所述子密钥,(n,d)为所述硬件密钥中的私钥,n为密钥长度。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
下面以TMP安全芯片为硬件加密单元为例,对从数据加密到数据解密的方法进行详细说明。
如图7所示,本发明实施例提供了一种从数据加密到数据解密的方法,该方法可以包括以下步骤:
步骤701:利用安装于加密方设备的TPM安全芯片创建硬件密钥,并利用TPM安全芯片保存硬件密钥。
在该步骤中,TPM安全芯片采用存储加密的方式保存密钥,即每一个密钥的私钥都由其父密钥加密保护,该结构的最顶层为根密钥,也就是本实施例中的硬件密钥。根密钥根据TPM安全芯片中随机数计算而出,无法导出到TPM芯片外,因此该TPM安全芯片生成的密钥的私钥只能由该TPM使用。
步骤702:根据硬件密钥,创建硬件密钥的子密钥。
在该步骤中,根密钥创建完毕后,根据根密钥由上述给出的公式创建子密钥,并对所创建的所有密钥进行加载。在加载密钥时可能存在TPM安全芯片中的句柄未使用完毕的情况,造成无法加载新的密钥的问题,故创建密钥并加载失败后,须返回TPM安全芯片错误提示信息。
步骤703:利用硬件密钥加密子密钥,生成第一文件。
在该步骤中,硬件密钥创建并加密子密钥后,会将明文转换为密文,也就是生成第一文件。
步骤704:创建软件加密密钥。
在该步骤中,使用OpenSSL(Open Secure Sockets Layer,开放式安全套接层协议)创建AES(Advanced Encryption Standard,高级加密标准)对称密钥。使用OpenSSL中的AES_set_encrypt_key接口生成密钥,进行软件加密密钥的创建。
步骤705:利用软件加密密钥加密目标数据,生成第二文件。
在该步骤中,使用OpenSSL创建的AES对称密钥对目标数据进行加密,通过使用AES_cbc_encrypt接口加密目标数据,将公钥和目标数据加密成密文,生成第二文件。
步骤706:利用子密钥加密软件加密密钥,判断利用子密钥加密软件加密密钥是否成功,若是,则执行步骤707;否则,执行步骤708。
在该步骤中,使用TPM安全芯片创建的密钥加密OpenSSL创建的软件加密密钥。
步骤707:删除软件加密密钥,生成第三文件。
在该步骤中,将软件加密密钥删除,可以有效的防止软件加密密钥被窃取而泄露。
步骤708:利用软件加密密钥,解密第二文件,获取目标数据。
在该步骤中,在加密失败时,利用软件加密密钥恢复目标数据,能够有效的防止目标数据丢失的情况。
步骤709:从安装于解密方设备的TPM安全芯片获取硬件密钥。
在该步骤中,由于硬件密钥是由TPM安全芯片中随机数计算而出,无法导出到该TPM安全芯片外,因此在解密过程中,使用同一个TPM安全芯片才能够获取到硬件密钥。
步骤710:利用硬件密钥,解密第一文件,获取硬件密钥的子密钥。
在该步骤中,使用硬件密钥将第一文件,也就是子密钥的密文转换为明文,获取硬件密钥的子密钥。
步骤711:利用子密钥,解密第三文件,获取软件加密密钥。
在该步骤中,使用子密钥将第三文件,也就是软件加密密钥的密文转换为明文,从而获取软件加密密钥。
步骤712:利用软件加密密钥,解密第二文件,获取目标数据。
在该步骤中,使用软件加密密钥将第二文件,也就是包含有目标数据的密文转换为明文,从而获取目标数据。
综上,本发明的实施例至少具有以下有益效果:
1、在本发明的实施例中,通过创建硬件密钥,并且将该硬件密钥与加密方设备绑定,再由该硬件密钥,创建该硬件密钥的子密钥,并且利用该硬件密钥加密子密钥,与此同时创建软件加密密钥,利用该软件加密密钥加密目标数据,最后利用子密钥加密软件加密密钥。由于将硬件密钥与加密方设备绑定,然后使用硬件密钥的子密钥对软件密钥进行加密,即使采用穷举法等暴力方式对软件密钥进行破解,获取到软件密钥也不能够解密出目标数据,从而能够提高被加密的目标数据的安全性。
2、在本发明的实施例中,通过使用TPM安全芯片创建硬件密钥,而该硬件密码由TPM安全芯片中随机数计算而出,从而无法导出到TPM安全芯片外,因此TPM安全芯片生成的密钥只能由该TPM安全芯片使用。又由于该TPM安全芯片与加密方设备绑定,因此除该加密方设备以外的任何物理设备均无法获取该硬件密钥,从而提高了硬件密码的安全性,进一步提高了被加密的目标数据的安全性硬件密码的安全性。
3、在本发明的实施例中,通过使用公式一、公式二以及公式三创建硬件密钥,并且根据硬件密钥创建和加密硬件密钥的子密钥,使硬件密钥和子密钥的安全性更高。
4、在本发明的实施例中,通过判断子密钥加密软件加密密钥是否成功,一方面,子密钥加密软件加密密钥成功,删除软件加密密钥,可以保证软件加密密钥的安全;另一方面,子密钥加密软件加密密钥不成功,恢复目标数据,可以防止目标数据的丢失。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种数据加密方法,其特征在于,应用于加密方设备,包括:
创建硬件密钥,将所述硬件密钥与所述加密方设备绑定;
根据所述硬件密钥,创建所述硬件密钥的子密钥;
利用所述硬件密钥加密所述子密钥,生成第一文件;
创建软件加密密钥;
利用所述软件加密密钥加密目标数据,生成第二文件;
利用所述子密钥加密所述软件加密密钥,生成第三文件。
2.根据权利要求1所述的方法,其特征在于,
所述创建硬件密钥,包括:
根据公式一确定密钥长度;
其中,所述公式一为:n=q×p;
其中,q用于表征第一预设质数、p用于表征第二预设质数、n用于表征所述密钥长度;
根据所述密钥长度和公式二,确定小于等于所述密钥长度的数中与所述密钥长度互质的数的第一数量;
其中,所述公式二为:
其中,为所述第一数量;
确定随机一个与所述第一数量互质的第一目标数,且所述第一目标数为小于所述第一数量的正数;
根据所述第一数量、所述第一目标数和公式三,确定第二目标数;
其中,所述公式三为:
其中,e为所述第一目标数,d为所述第二目标数;
根据所述第一目标数、所述第二目标数和所述密钥长度,确定所述硬件密钥,所述硬件密钥包括:私钥和公钥,其中,所述私钥为(n,d),所述公钥为(n,e);
所述利用所述硬件密钥加密所述子密钥,生成第一文件,包括:
根据公式四和所述公钥,加密所述子密钥,生成第一文件,其中,所述公式四为:
C≡M^e mod n;
其中,C为所述第一文件,M为所述子密钥;
所述创建硬件密钥,将所述硬件密钥与所述加密方设备绑定,包括:
利用安装于所述加密方设备的可信赖平台模块TPM安全芯片创建所述硬件密钥,利用所述TPM安全芯片保存所述硬件密钥;
和/或,
在所述利用所述子密钥加密所述软件加密密钥之后,进一步包括:
判断利用所述子密钥加密所述软件加密密钥是否成功,若是,则删除所述软件加密密钥,生成所述第三文件;否则,利用所述软件加密密钥,解密所述第二文件,获取所述目标数据。
3.一种加密方设备,其特征在于,使用权利要求1加密方法的加密设备,包括:加密硬件单元和加密软件单元,其中,
所述加密硬件单元,用于创建硬件密钥,将所述硬件密钥与所述加密方设备绑定,根据所述硬件密钥,创建所述硬件密钥的子密钥,利用所述硬件密钥加密所述子密钥,生成第一文件,以及利用所述子密钥加密软件加密密钥,生成第三文件;
所述加密软件单元,用于创建所述软件加密密钥,利用所述软件加密密钥加密目标数据,生成第二文件。
4.根据权利要求3所述的加密方设备,其特征在于,
所述加密硬件单元,在执行所述创建硬件密钥时,用于:根据公式一确定密钥长度;根据所述密钥长度和公式二,确定小于等于所述密钥长度的数中与所述密钥长度互质的数的第一数量;确定随机一个与所述第一数量互质的第一目标数,且所述第一目标数为小于所述第一数量的正数;根据所述第一数量、所述第一目标数和公式三,确定第二目标数;根据所述第一目标数、所述第二目标数和所述密钥长度,确定所述硬件密钥,所述硬件密钥包括:私钥和公钥;
其中,所述私钥为(n,d),所述公钥为(n,e);e为所述第一目标数,d为所述第二目标数;
所述公式一为:n=q×p;
q用于表征第一预设质数、p用于表征第二预设质数、n用于表征所述密钥长度;
所述公式二为:
为所述第一数量;
其中,所述公式三为:
所述加密硬件单元,在执行所述利用所述硬件密钥加密所述子密钥,生成第一文件时,用于:根据公式四和所述公钥,加密所述子密钥,生成第一文件,其中,所述公式四为:
C≡M^e mod n;
其中,C为所述第一文件,M为所述子密钥。
5.根据权利要求3或4所述的加密方设备,其特征在于,所述加密硬件单元,包括:TPM安全芯片,其中,
所述TPM安全芯片,安装于所述加密方设备中,具体用于创建所述硬件密钥,并保存所述硬件密钥;
所述加密硬件单元,在执行所述利用所述子密钥加密所述软件加密密钥之后,进一步用于判断利用所述子密钥加密所述软件加密密钥是否成功,若是,则删除所述软件加密密钥,生成所述第三文件,否则,向所述加密软件单元输出加密失败信号;
所述加密软件单元,进一步用于在接收到所述加密硬件单元输出的所述加密失败信号后,利用所述软件加密密钥,解密所述第二文件,获取所述目标数据。
6.一种数据解密方法,其特征在于,应用于解密设备解密权利要求1加密方法加密的数据,包括:
利用与解密方设备绑定的硬件密钥,解密第一文件,获取硬件密钥的子密钥;
利用子密钥,解密第三文件,获取软件加密密钥;
利用所述软件加密密钥,解密第二文件,获取目标数据。
7.根据权利要求6所述的方法,其特征在于,
在所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件之前,进一步包括:
从安装于所述解密方设备的TPM安全芯片获取所述硬件密钥;
和/或,
所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,包括:
根据公式五和所述硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,其中,所述公式五为:
M≡C^d mod n;
其中,C为所述第一文件,M为所述子密钥,(n,d)为所述硬件密钥中的私钥,n为密钥长度。
8.一种解密方设备,其特征在于,使用权利要求6的解密方法的设备,包括:解密硬件单元和解密软件单元,其中,
解密硬件单元,用于利用与所述解密方设备绑定的硬件密钥,解密第一文件,获取硬件密钥的子密钥,以及利用子密钥,解密第三文件,获取软件加密密钥;
所述解密软件单元,用于利用所述软件加密密钥,解密第二文件,获取目标数据。
9.根据权利要求8所述的解密方设备,其特征在于,
所述解密硬件单元,包括:TPM安全芯片,其中,
所述TPM安全芯片,安装于所述解密方设备中,保存有所述硬件密钥;
所述TPM安全芯片,用于在所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件之前,进一步用于获取保存的所述硬件密钥;
所述解密硬件单元,在执行所述利用与所述解密方设备绑定的硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥时,用于:根据公式五和所述硬件密钥,解密所述第一文件,获取所述硬件密钥的子密钥,其中,所述公式五为:
M≡C^d mod n;
其中,C为所述第一文件,M为所述子密钥,(n,d)为所述硬件密钥中的私钥,n为密钥长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610971331.9A CN106533663B (zh) | 2016-11-01 | 2016-11-01 | 数据加密方法、加密方设备及数据解密方法、解密方设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610971331.9A CN106533663B (zh) | 2016-11-01 | 2016-11-01 | 数据加密方法、加密方设备及数据解密方法、解密方设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106533663A CN106533663A (zh) | 2017-03-22 |
CN106533663B true CN106533663B (zh) | 2019-06-25 |
Family
ID=58326603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610971331.9A Active CN106533663B (zh) | 2016-11-01 | 2016-11-01 | 数据加密方法、加密方设备及数据解密方法、解密方设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106533663B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483187A (zh) * | 2017-08-02 | 2017-12-15 | 浪潮(北京)电子信息产业有限公司 | 一种基于可信密码模块的数据保护方法及装置 |
CN108235807B (zh) * | 2018-01-15 | 2020-08-04 | 福建联迪商用设备有限公司 | 软件加密终端、支付终端、软件包加密及解密方法及系统 |
CN110324138B (zh) * | 2018-03-29 | 2022-05-24 | 阿里巴巴集团控股有限公司 | 数据加密、解密方法及装置 |
CN109067701A (zh) * | 2018-06-25 | 2018-12-21 | 顺丰科技有限公司 | 一种备用加解密方法、装置及加解密系统 |
CN109120399A (zh) * | 2018-08-10 | 2019-01-01 | 广东工业大学 | 一种基于非对称加密的数据加密方法、解密方法及系统 |
CN112765617A (zh) * | 2020-12-23 | 2021-05-07 | 北京连山科技股份有限公司 | 一种数据异地协同保护方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026451A (zh) * | 2007-02-02 | 2007-08-29 | 清华大学 | 条件接收系统中基于产品和用户分别分组的密钥分配方法 |
CN103995991A (zh) * | 2014-05-07 | 2014-08-20 | 华中师范大学 | 一种软件版权保护中绑定硬件信息与密钥的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291214B (zh) * | 2007-04-19 | 2011-08-10 | 华为技术有限公司 | 一种生成组密钥的方法、系统和设备 |
JP5365072B2 (ja) * | 2007-12-11 | 2013-12-11 | ソニー株式会社 | 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラム |
US9800407B2 (en) * | 2013-08-30 | 2017-10-24 | Qualcomm Incorporated | Methods and apparatuses for prime number generation and storage |
CN105827601A (zh) * | 2016-03-11 | 2016-08-03 | 李华 | 移动设备数据加密应用方法及系统 |
-
2016
- 2016-11-01 CN CN201610971331.9A patent/CN106533663B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026451A (zh) * | 2007-02-02 | 2007-08-29 | 清华大学 | 条件接收系统中基于产品和用户分别分组的密钥分配方法 |
CN103995991A (zh) * | 2014-05-07 | 2014-08-20 | 华中师范大学 | 一种软件版权保护中绑定硬件信息与密钥的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106533663A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106533663B (zh) | 数据加密方法、加密方设备及数据解密方法、解密方设备 | |
KR101010040B1 (ko) | 파일의 암호화·복호화 방법, 장치, 프로그램 및 이프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
US9043610B2 (en) | Systems and methods for data security | |
US8509449B2 (en) | Key protector for a storage volume using multiple keys | |
KR20080093635A (ko) | 메시지의 무결성 유지를 위한 메시지 암호화 방법 및 장치,메시지의 무결성 유지를 위한 메시지 복호화 방법 및 장치 | |
EP2353251A1 (en) | Apparatus for verifying and for generating an encrypted token and methods for same | |
EP1636664A2 (en) | Proof of execution using random function | |
EP2290871A2 (en) | Encryption method and apparatus using composition of ciphers | |
KR20080025121A (ko) | 비대칭 개인키로부터 비밀키 생성 | |
US20150256343A1 (en) | Securely Generating and Storing Passwords in a Computer System | |
CN110298186B (zh) | 一种基于动态可重构密码芯片的无密钥数据加解密方法 | |
KR101458479B1 (ko) | 세션상태정보의 암호화 및 복호화 방법 | |
CN104866784A (zh) | 一种基于bios加密的安全硬盘、数据加密及解密方法 | |
JP2024511236A (ja) | コンピュータファイルのセキュリティ暗号化方法、復号化方法および読み取り可能な記憶媒体 | |
CN110233729B (zh) | 一种基于puf的加密固态盘密钥管理方法 | |
US20080165954A1 (en) | System for encrypting and decrypting data using derivative equations and factors | |
CN111949999A (zh) | 管理数据的设备和方法 | |
JP5171787B2 (ja) | サインクリプションシステムおよびサインクリプション生成方法 | |
CN117424699A (zh) | 基于cbc加密模式的aes对称加密优化方法及系统 | |
JP2009200990A (ja) | ディスク暗号鍵の生成及びリカバリ方法並びに機密情報管理システム | |
JPH10271104A (ja) | 暗号化方法及び復号化方法 | |
CN110855429A (zh) | 一种基于tpm的软件密钥保护方法 | |
CN1607511B (zh) | 数据保护方法及保护系统 | |
KR101440680B1 (ko) | 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치 | |
Bansal et al. | RSA encryption and decryption system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |