CN106330435A - 一种密钥变换方法、装置及终端 - Google Patents
一种密钥变换方法、装置及终端 Download PDFInfo
- Publication number
- CN106330435A CN106330435A CN201510381277.8A CN201510381277A CN106330435A CN 106330435 A CN106330435 A CN 106330435A CN 201510381277 A CN201510381277 A CN 201510381277A CN 106330435 A CN106330435 A CN 106330435A
- Authority
- CN
- China
- Prior art keywords
- key
- matrix
- input data
- map table
- protection
- 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.)
- Withdrawn
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种密钥变换方法、装置及终端,涉及通信领域。该方法包括:获取矩阵库中的一目标矩阵,所述目标矩阵为可逆矩阵;在使用初始密钥对目标文件进行加密后,根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥;将所述保护密钥以及所述保护密钥的密钥恢复文件存储到动态库文件中;其中,所述保护密钥能够通过所述密钥恢复文件逆变换恢复为初始密钥。本发明实施例对初始密钥的变换,使得在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
Description
技术领域
本发明涉及通信领域,特别是指一种密钥变换方法、装置及终端。
背景技术
Android安卓作为新兴的操作系统,已经得到广大开发者以及许多厂商的支持,基于Android平台的应用程序数目也飞速增长。然而Android平台下软件保护技术研究尚处于起步阶段,代码的开源性又使得开发者中很容易掺杂恶意攻击者。Android系统为应用开发者提供了更多的功能接口,其中很多系统底层接口,提高了系统的可扩展性,但同时也为恶意软件提供了便利,针对安卓系统的木马等恶意软件也更容易被实现,目前已有的针对安卓系统的恶意软件可以通过伪装的方式,骗取用户安装并授予一定的权限,之后滥用这些权限在后台执行一些特定行为,包括窃取用户隐私骗取资费等行为。然而与之并生的安全问题却始终没有得到良好的解决,安全威胁越来越多,且威胁程度也在逐步加深,无论对开发者还是用户都带来了不良的影响。
基于这种考虑需要对Android软件进行保护。软件加固是站在第三方的角度提出的,用来实现对任意应用进行代码的加固,这就要求加固系统具有通用性。能在不获得应用代码的前提下完成加固流程,且能在一定程度上增加应用的安全性,防止来自恶意攻击者的威胁,其中包括:非法复制和非授权使用,即盗版:恶意修改软件代码逻辑或功能,即篡改;通过逆向工程获取核心算法及关键数据并移植到自己的软件中,即逆向工程。
传统的Android软件保护手段方式为对APK安装包文件进行加壳加固,现有的加壳方式一般对DEX可执行文件进行加密保护后将其隐藏。在这个过程中,对DEX文件加密的密钥一般存储于内存中或者明文写入文件中,攻击者一旦获得,将能解密DEX文件,从而破解原程序。
发明内容
本发明的目的是提供一种密钥变换方法、装置及终端,将加密密钥变换后存储在文件中,实现在未经允许的情况下无法获得明文的加密密钥。
为达到上述目的,本发明的实施例提供一种密钥变换方法,所述方法包括:
获取矩阵库中的一目标矩阵,所述目标矩阵为可逆矩阵;
在使用初始密钥对目标文件进行加密后,根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥;
将所述保护密钥以及所述保护密钥的密钥恢复文件存储到动态库文件中;其中,所述保护密钥能够通过所述密钥恢复文件逆变换恢复为初始密钥。
其中,所述矩阵库的构建步骤具体包括:
获取满足第一规则的所有矩阵,得到一矩阵集,所述第一规则是矩阵为N×N的二元矩阵,其中,N为大于等于2的整数;
在所述矩阵集中获取预设数量的满足第二规则的所有矩阵,得到矩阵库,所述第二规则是矩阵为可逆矩阵。
其中,所述根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥,具体为:
将所述初始密钥乘以所述目标矩阵,得到的运算结果为保护密钥;或者
根据所述目标矩阵生成一变换表,在所述变换表中查找所述初始密钥的变换结果,将所述变换结果作为保护密钥。
其中,所述根据所述目标矩阵生成一变换表,具体包括:
设置第一输入数据和第二输入数据;
将所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵,得到所有输出结果;
根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
其中,所述根据所述目标矩阵生成一变换表,具体包括:
设置第一输入数据和第二输入数据;
获取第一输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第一输出结果;
获取第二输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第二输出结果;
根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
其中,所述第一输入数据和所述第二输入数据为十六进制数。
其中,所述在所述变换表中查找所述初始密钥的变换结果,具体包括:
根据所述第一输入数据和第二输入数据的数据形式,将所述初始密钥进行数据形式的变换,得到变换初始密钥;
根据所述变换初始密钥,在所述变换表中查找对应的变换结果。
其中,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表。
为达到上述目的,本发明的实施例还提供了一种密钥变换方法,所述方法包括:
获取保存在动态库文件中的密钥恢复文件和保护密钥;
根据所述密钥恢复文件对所述保护密钥进行逆变换,得到初始密钥。
其中,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表;
相应的,所述根据所述密钥恢复文件对所述保护密钥进行逆变换,得到初始密钥,具体包括:
将所述保护密钥乘以所述目标矩阵的逆矩阵,得到的运算结果为初始密钥;或者
在所述变换表中查找对应所述保护密钥的第一输入数据和第二输入数据,得到的所有第一输入数据和第二输入数据为初始密钥。
为达到上述目的,本发明的实施例还提供了一种密钥变换装置,所述装置包括:
第一获取模块,用于获取矩阵库中的一目标矩阵,所述目标矩阵为可逆矩阵;
保护密钥生成模块,用于在使用初始密钥对目标文件进行加密后,根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥;
存储模块,用于将所述保护密钥以及所述保护密钥的密钥恢复文件存储到动态库文件中;其中,所述保护密钥能够通过所述密钥恢复文件逆变换恢复为初始密钥。
其中,所述装置还包括:
第二获取模块,用于获取满足第一规则的所有矩阵,得到一矩阵集,所述第一规则是矩阵为N×N的二元矩阵,其中,N为大于等于2的整数;
第三获取模块,用于在所述矩阵集中获取预设数量的满足第二规则的所有矩阵,得到矩阵库,所述第二规则是矩阵为可逆矩阵。
其中,所述保护密钥生成模块具体为:
第一保护密钥生成子模块,用于将所述初始密钥乘以所述目标矩阵,得到的运算结果为保护密钥;
第二保护密钥生成子模块,用于根据所述目标矩阵生成一变换表,在所述变换表中查找所述初始密钥的变换结果,将所述变换结果作为保护密钥。
其中,所述第二保护密钥生成子模块包括:
第一设置单元,用于设置第一输入数据和第二输入数据;
运算单元,用于将所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵,得到所有输出结果;
第一变换表生成单元,用于根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
其中,所述第二保护密钥生成子模块包括:
第二设置单元,用于设置第一输入数据和第二输入数据;
第一获取单元,用于获取第一输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第一输出结果;
第二获取单元,用于获取第二输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第二输出结果;
第二变换表生成单元,用于根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
其中,所述第一输入数据和所述第二输入数据为十六进制数。
其中,所述第二保护密钥生成子模块包括:
数据形式变换单元,用于根据所述第一输入数据和第二输入数据的数据形式,将所述初始密钥进行数据形式的变换,得到变换初始密钥;
查找单元,用于根据所述变换初始密钥,在所述变换表中查找对应的变换结果。
其中,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表。
为达到上述目的,本发明的实施例还提供了一种密钥变换装置,其中,所述装置包括:
第二获取模块,用于获取保存在动态库文件中的密钥恢复文件和保护密钥;
保护密钥逆变换模块,用于根据所述密钥恢复文件对所述保护密钥进行逆变换,得到初始密钥。
其中,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表;
相应的,所述保护密钥逆变换模块包括:
第一初始密钥逆变换子模块,用于将所述保护密钥乘以所述目标矩阵的逆矩阵,得到的运算结果为初始密钥;
第二初始密钥逆变换子模块,用于在所述变换表中查找对应所述保护密钥的第一输入数据和第二输入数据,得到的所有第一输入数据和第二输入数据为初始密钥。
为达到上述目的,本发明的实施例还提供了一种终端,包括如上所述的密钥变换装置。
为达到上述目的,本发明的实施例还提供了一种终端,包括如上所述的密钥变换装置。
本发明的上述技术方案的有益效果如下:
本发明实施例的密钥变换方法,在矩阵库中获取到一可逆矩阵作为目标矩阵后,将对目标文件加密的初始密钥根据该目标矩阵进行变换,生成保护密钥,并将该保护密钥和其密钥恢复文件存储到动态文件库中。这样,安装包打包后,应用终端运行安装包时,可通过动态文件中的密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密。对初始密钥的变换,使得在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
附图说明
图1为本发明实施例对初始密钥变换的密钥变换方法的步骤流程图;
图2为本发明实施例的密钥变换方法中生成变换表的具体步骤流程图一;
图3为本发明实施例的密钥变换方法中生成变换表的具体步骤流程图二;
图4为本发明实施例对保护密钥逆变换的密钥变换方法的步骤流程图;
图5为本发明实施例对初始密钥变换的密钥变换装置的结构示意图;
图6为本发明实施例对保护密钥逆变换的密钥变换装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的软件保护使用加密密钥对DEX文件加密后,加密密钥存储于内存中或者明文写入文件中,易被攻击者获得用于解密DEX文件,破解原程序,安全性低的问题,提供一种密钥变换方法,将加密密钥变换后存储在文件中,实现在未经允许的情况下无法获得明文的加密密钥。
如图1所示,本发明实施例的一种密钥变换方法,所述方法包括:
步骤11,获取矩阵库中的一目标矩阵,所述目标矩阵为可逆矩阵;
步骤12,在使用初始密钥对目标文件进行加密后,根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥;
步骤13,将所述保护密钥以及所述保护密钥的密钥恢复文件存储到动态库文件中;其中,所述保护密钥能够通过所述密钥恢复文件逆变换恢复为初始密钥。
本发明实施例的密钥变换方法,在矩阵库中获取到一可逆矩阵作为目标矩阵后,将对目标文件加密的初始密钥根据该目标矩阵进行变换,生成保护密钥,并将该保护密钥和其密钥恢复文件存储到动态文件库中。这样,安装包打包后,应用终端运行安装包时,可通过动态文件中的密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密。对初始密钥的变换,使得在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
进一步的,所述矩阵库的构建步骤具体包括:
步骤14,获取满足第一规则的所有矩阵,得到一矩阵集,所述第一规则是矩阵为N×N的二元矩阵,其中,N为大于等于2的整数;
步骤15,在所述矩阵集中获取预设数量的满足第二规则的所有矩阵,得到矩阵库,所述第二规则是矩阵为可逆矩阵。
由于常用的初始密钥为128位,为了便于变换运算,在构建矩阵库时,首先获取所有N×N的二元矩阵得到一矩阵集作为待选矩阵,N为大于等于2的整数。而由于密钥的使用性质,需要在变换后也能够快捷的恢复,所以,再次挑选矩阵集中可逆的矩阵,同时为了保证选取目标矩阵时能够具有较大的随机性,挑选构建矩阵库的可逆矩阵数量要达到预设数量,该预设数量可以由工作人员进行设置。
进一步的,步骤12具体为:
步骤121a,将所述初始密钥乘以所述目标矩阵,得到的运算结果为保护密钥;或者
步骤121b,根据所述目标矩阵生成一变换表,在所述变换表中查找所述初始密钥的变换结果,将所述变换结果作为保护密钥。
获取到目标矩阵后,就可对初始密钥进行变换,可以直接使用目标矩阵,用初始密钥乘以该目标矩阵,得到的结果即为保护密钥,对于二元运算,乘法即与运算。如目标矩阵是M矩阵,
将128位的初始密钥分成多个8位数据,每个8位数据依次乘该矩阵M,得到变换结果。
也可以根据该目标矩阵线生成一变换表,通过查找表的方式,查找出初始密钥的变换结果,得到最终的保护密钥。
其中,如图2所示,步骤121b中,根据所述目标矩阵生成一变换表,具体包括:
步骤121b1a,设置第一输入数据和第二输入数据;
步骤121b2a,将所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵,得到所有输出结果;
步骤121b3a,根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
上述步骤中是变换表的生成方式,首先会设置两个输入数据,第一输入数据和第二输入数据,将这两个数据的每一种组合情况都乘以目标矩阵,得到所有输出结果,然后根据第一输入数据和第二输入数据的取值和输出结果,最终生成变换表。
其中,所述第一输入数据和所述第二输入数据为十六进制数。
如第一输入数据为X,第二输入数据为Y,X和Y的取值范围为0~f,组合数据XY乘以已选定的目标矩阵后,得到的所有输出结果,生成变换表即如下所示:
由于运算的特殊性,还应该了解到其中第一输入数据X和第二输入数据Y的组合数据与目标矩阵相乘的运算结果等于输入组合数据是0Y(0表示X取0)的输出结果和X0(0表示Y取0)的输出结果相异或,因此,如图3所示,步骤121b中,根据所述目标矩阵生成一变换表,具体包括:
步骤121b1b,设置第一输入数据和第二输入数据;
步骤121b2b,获取第一输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第一输出结果;
步骤121b3b,获取第二输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第二输出结果;
步骤121b4b,根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
通过步骤121b1b-121b4b变换表的生成方式,相当只获取上表所示查找表中输出结果的第一行和第一列。
不论变换表的具体实现形式,在变换表生成后,既可以进行初始密钥到保护密钥的变换了,步骤121b中,在所述变换表中查找所述初始密钥的变换结果,具体包括:
步骤121b4a/121b5b,根据所述第一输入数据和第二输入数据的数据形式,将所述初始密钥进行数据形式的变换,得到变换初始密钥;
步骤121b5a/121b65b,根据所述变换初始密钥,在所述变换表中查找对应的变换结果。
对于上述两种变换表的实现形式,查找表时,都要先根据第一输入数据和第二输入数据的数据形式将初始密码进行一下变换,方便直接查找,以第一输入数据和第二输入数据为十六进制数为例,如二进制初始密码的一组8位01101010数据转化为十六进制数是6A,那么,在查找表中,查找第一输入数据为6,第二输入数据为A对应的输出结果,然后将初始密码的对应的所有输出结果按照同样的方式找出来,就得到了变换结果也就是保护密钥。另外对于第二种形式的变换表,在确定了变换初始密钥后,若不能在表中直接查找到,就需要先查找对应的0Y的输出结果和X0的输出结果,然后再进行异或得到的结果才为变换结果即保护密钥。
由于对初始密钥的变换方式不同,因此,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表。
若是使用目标矩阵直接对初始密钥进行变换的,在进行逆变换时,只要使用该目标矩阵的逆矩阵,保护密钥乘以逆矩阵,得到的运算结果就是初始密钥。这样,密钥恢复文件为该目标矩阵或该目标矩阵的逆矩阵,当然,在密钥恢复文件为该目标矩阵时,进行逆变换前,还要根据该目标矩阵得到其对应的逆矩阵。若是使用目标矩阵的变换表对初始密钥进行变换的,在进行逆变换时,可通过变换表逆向查找,查找对应保护密钥的输入数据,也就能够得到初始密钥。当然,若变换表只保存了输出结果,就还需要目标矩阵的逆矩阵,通过输出结果和逆矩阵相乘得到输入数据来获得初始密钥。
综上所述,本发明实施例的方法,在矩阵库中获取到一可逆矩阵作为目标矩阵后,将对目标文件加密的初始密钥根据该目标矩阵进行变换,生成保护密钥,并将该保护密钥和其密钥恢复文件存储到动态文件库中。这样,安装包打包后,应用终端运行安装包时,可通过动态文件中的密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密。对初始密钥的变换,使得在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
如图4所示,本发明的实施例还提供了一种密钥变换方法,所述方法包括:
步骤21,获取保存在动态库文件中的密钥恢复文件和保护密钥;
步骤22,根据所述密钥恢复文件对所述保护密钥进行逆变换,得到初始密钥。
该实施例中,运行安装包时,要获取存在动态库文件中的密钥恢复文件和保护密钥,然后通过密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密,实现在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
其中,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表;
相应的,步骤22,具体包括:
将所述保护密钥乘以所述目标矩阵的逆矩阵,得到的运算结果为初始密钥;或者
在所述变换表中查找对应所述保护密钥的第一输入数据和第二输入数据,得到的所有第一输入数据和第二输入数据为初始密钥。
由于对初始密钥的变换方式不同,因此,密钥恢复文件为目标矩阵、目标矩阵的逆矩阵或目标矩阵的对应的变换表。
具体的,若是使用目标矩阵直接对初始密钥进行变换的,在进行逆变换时,只要使用该目标矩阵的逆矩阵,保护密钥乘以逆矩阵,得到的运算结果就是初始密钥。这样,密钥恢复文件为该目标矩阵或该目标矩阵的逆矩阵,当然,在密钥恢复文件为该目标矩阵时,进行逆变换前,还要根据该目标矩阵得到其对应的逆矩阵。若是使用目标矩阵的变换表对初始密钥进行变换的,在进行逆变换时,可通过变换表逆向查找,查找对应保护密钥的输入数据,也就能够得到初始密钥。此时,密钥恢复文件只有变换表就可以。当然,若变换表只保存了输出结果,就还需要目标矩阵的逆矩阵,通过输出结果和逆矩阵相乘得到输入数据来获得初始密钥。
综上所述,本发明实施例的方法,获取存在动态库文件中的密钥恢复文件和保护密钥,然后通过密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密,实现在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
需要说明的是,该方法是对应上述密钥变换方法的方法,上述密钥变换方法的实现方式适用于该方法,也能达到相同的技术效果。
如图5所示,本发明的实施例还提供了一种密钥变换装置,所述装置包括:
第一获取模块10,用于获取矩阵库中的一目标矩阵,所述目标矩阵为可逆矩阵;
保护密钥生成模块20,用于在使用初始密钥对目标文件进行加密后,根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥;
存储模块30,用于将所述保护密钥以及所述保护密钥的密钥恢复文件存储到动态库文件中;其中,所述保护密钥能够通过所述密钥恢复文件逆变换恢复为初始密钥。
其中,所述装置还包括:
第二获取模块,用于获取满足第一规则的所有矩阵,得到一矩阵集,所述第一规则是矩阵为N×N的二元矩阵,其中,N为大于等于2的整数;
第三获取模块,用于在所述矩阵集中获取预设数量的满足第二规则的所有矩阵,得到矩阵库,所述第二规则是矩阵为可逆矩阵。
其中,所述保护密钥生成模块具体为:
第一保护密钥生成子模块,用于将所述初始密钥乘以所述目标矩阵,得到的运算结果为保护密钥;
第二保护密钥生成子模块,用于根据所述目标矩阵生成一变换表,在所述变换表中查找所述初始密钥的变换结果,将所述变换结果作为保护密钥。
其中,所述第二保护密钥生成子模块包括:
第一设置单元,用于设置第一输入数据和第二输入数据;
运算单元,用于将所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵,得到所有输出结果;
第一变换表生成单元,用于根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
其中,所述第二保护密钥生成子模块包括:
第二设置单元,用于设置第一输入数据和第二输入数据;
第一获取单元,用于获取第一输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第一输出结果;
第二获取单元,用于获取第二输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第二输出结果;
第二变换表生成单元,用于根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
其中,所述第一输入数据和所述第二输入数据为十六进制数。
其中,所述第二保护密钥生成子模块包括:
数据形式变换单元,用于根据所述第一输入数据和第二输入数据的数据形式,将所述初始密钥进行数据形式的变换,得到变换初始密钥;
查找单元,用于根据所述变换初始密钥,在所述变换表中查找对应的变换结果。
其中,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表。
本发明实施例的装置,在矩阵库中获取到一可逆矩阵作为目标矩阵后,将对目标文件加密的初始密钥根据该目标矩阵进行变换,生成保护密钥,并将该保护密钥和其密钥恢复文件存储到动态文件库中。这样,安装包打包后,应用终端运行安装包时,可通过动态文件中的密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密。对初始密钥的变换,使得在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
需要说明的是,该装置是对应上述对初始密钥进行变换的密钥变换方法的装置,上述密钥变换方法的实现方式适用于该装置,也能达到相同的技术效果。
如图6所示,本发明的实施例还提供了一种密钥变换装置,其中,所述装置包括:
第二获取模块40,用于获取保存在动态库文件中的密钥恢复文件和保护密钥;
保护密钥逆变换模块50,用于根据所述密钥恢复文件对所述保护密钥进行逆变换,得到初始密钥。
其中,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表;
相应的,所述保护密钥逆变换模块包括:
第一初始密钥逆变换子模块,用于将所述保护密钥乘以所述目标矩阵的逆矩阵,得到的运算结果为初始密钥;
第二初始密钥逆变换子模块,用于在所述变换表中查找对应所述保护密钥的第一输入数据和第二输入数据,得到的所有第一输入数据和第二输入数据为初始密钥。
本发明实施例的装置,获取存在动态库文件中的密钥恢复文件和保护密钥,然后通过密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密,实现在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
需要说明的是,该装置是对应上述对保护密钥逆变换恢复为初始密钥的密钥变换方法的装置,上述密钥变换方法的实现方式适用于该装置,也能达到相同的技术效果。
本发明的实施例还提供了一种终端,包括如上所述的密钥变换装置。
本发明实施例的终端,在矩阵库中获取到一可逆矩阵作为目标矩阵后,将对目标文件加密的初始密钥根据该目标矩阵进行变换,生成保护密钥,并将该保护密钥和其密钥恢复文件存储到动态文件库中。这样,安装包打包后,应用终端运行安装包时,可通过动态文件中的密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密。对初始密钥的变换,使得在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
需要说明的是,该终端是对应上述对初始密钥进行变换的密钥变换方法的终端,上述密钥变换方法的实现方式适用于该终端,也能达到相同的技术效果。
本发明的实施例还提供了一种终端,包括如上所述的密钥变换装置。
本发明实施例的终端,获取存在动态库文件中的密钥恢复文件和保护密钥,然后通过密钥恢复文件将保护密钥逆变换恢复为初始密钥,再使用初始密钥对目标文件解密,实现在未经允许的情况下无法获得明文的加密密钥,从而无法解密目标文件,提升了安全性能。
需要说明的是,该终端是对应上述对保护密钥逆变换恢复为初始密钥的密钥变换方法的终端,上述密钥变换方法的实现方式适用于该终端,也能达到相同的技术效果。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (22)
1.一种密钥变换方法,其特征在于,所述方法包括:
获取矩阵库中的一目标矩阵,所述目标矩阵为可逆矩阵;
在使用初始密钥对目标文件进行加密后,根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥;
将所述保护密钥以及所述保护密钥的密钥恢复文件存储到动态库文件中;其中,所述保护密钥能够通过所述密钥恢复文件逆变换恢复为初始密钥。
2.根据权利要求1所述的密钥变换方法,其特征在于,所述矩阵库的构建步骤具体包括:
获取满足第一规则的所有矩阵,得到一矩阵集,所述第一规则是矩阵为N×N的二元矩阵,其中,N为大于等于2的整数;
在所述矩阵集中获取预设数量的满足第二规则的所有矩阵,得到矩阵库,所述第二规则是矩阵为可逆矩阵。
3.根据权利要求1所述的密钥变换方法,其特征在于,所述根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥,具体为:
将所述初始密钥乘以所述目标矩阵,得到的运算结果为保护密钥;或者
根据所述目标矩阵生成一变换表,在所述变换表中查找所述初始密钥的变换结果,将所述变换结果作为保护密钥。
4.根据权利要求3所述的密钥变换方法,其特征在于,所述根据所述目标矩阵生成一变换表,具体包括:
设置第一输入数据和第二输入数据;
将所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵,得到所有输出结果;
根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
5.根据权利要求3所述的密钥变换方法,其特征在于,所述根据所述目标矩阵生成一变换表,具体包括:
设置第一输入数据和第二输入数据;
获取第一输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第一输出结果;
获取第二输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第二输出结果;
根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
6.根据权利要求4或5所述的密钥变换方法,其特征在于,所述第一输入数据和所述第二输入数据为十六进制数。
7.根据权利要求4或5所述的密钥变换方法,其特征在于,所述在所述变换表中查找所述初始密钥的变换结果,具体包括:
根据所述第一输入数据和第二输入数据的数据形式,将所述初始密钥进行数据形式的变换,得到变换初始密钥;
根据所述变换初始密钥,在所述变换表中查找对应的变换结果。
8.根据权利要求3所述的密钥变换方法,其特征在于,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表。
9.一种密钥变换方法,其特征在于,所述方法包括:
获取保存在动态库文件中的密钥恢复文件和保护密钥;
根据所述密钥恢复文件对所述保护密钥进行逆变换,得到初始密钥。
10.根据权利要求9所述的密钥变换方法,其特征在于,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表;
相应的,所述根据所述密钥恢复文件对所述保护密钥进行逆变换,得到初始密钥,具体包括:
将所述保护密钥乘以所述目标矩阵的逆矩阵,得到的运算结果为初始密钥;或者
在所述变换表中查找对应所述保护密钥的第一输入数据和第二输入数据,得到的所有第一输入数据和第二输入数据为初始密钥。
11.一种密钥变换装置,其特征在于,所述装置包括:
第一获取模块,用于获取矩阵库中的一目标矩阵,所述目标矩阵为可逆矩阵;
保护密钥生成模块,用于在使用初始密钥对目标文件进行加密后,根据所述目标矩阵对所述初始密钥进行变换,生成保护密钥;
存储模块,用于将所述保护密钥以及所述保护密钥的密钥恢复文件存储到动态库文件中;其中,所述保护密钥能够通过所述密钥恢复文件逆变换恢复为初始密钥。
12.根据权利要求11所述的密钥变换装置,其特征在于,所述装置还包括:
第二获取模块,用于获取满足第一规则的所有矩阵,得到一矩阵集,所述第一规则是矩阵为N×N的二元矩阵,其中,N为大于等于2的整数;
第三获取模块,用于在所述矩阵集中获取预设数量的满足第二规则的所有矩阵,得到矩阵库,所述第二规则是矩阵为可逆矩阵。
13.根据权利要求11所述的密钥变换装置,其特征在于,所述保护密钥生成模块具体为:
第一保护密钥生成子模块,用于将所述初始密钥乘以所述目标矩阵,得到的运算结果为保护密钥;
第二保护密钥生成子模块,用于根据所述目标矩阵生成一变换表,在所述变换表中查找所述初始密钥的变换结果,将所述变换结果作为保护密钥。
14.根据权利要求13所述的密钥变换装置,其特征在于,所述第二保护密钥生成子模块包括:
第一设置单元,用于设置第一输入数据和第二输入数据;
运算单元,用于将所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵,得到所有输出结果;
第一变换表生成单元,用于根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
15.根据权利要求13所述的密钥变换装置,其特征在于,所述第二保护密钥生成子模块包括:
第二设置单元,用于设置第一输入数据和第二输入数据;
第一获取单元,用于获取第一输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第一输出结果;
第二获取单元,用于获取第二输入数据为0时,所述第一输入数据和第二输入数据的组合数据乘以所述目标矩阵得到的第二输出结果;
第二变换表生成单元,用于根据第一输入数据和第二输入数据的取值和所述输出结果,生成变换表。
16.根据权利要求14或15所述的密钥变换装置,其特征在于,所述第一输入数据和所述第二输入数据为十六进制数。
17.根据权利要求14或15所述的密钥变换装置,其特征在于,所述第二保护密钥生成子模块包括:
数据形式变换单元,用于根据所述第一输入数据和第二输入数据的数据形式,将所述初始密钥进行数据形式的变换,得到变换初始密钥;
查找单元,用于根据所述变换初始密钥,在所述变换表中查找对应的变换结果。
18.根据权利要求13所述的密钥变换装置,其特征在于,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表。
19.一种密钥变换装置,其特征在于,所述装置包括:
第二获取模块,用于获取保存在动态库文件中的密钥恢复文件和保护密钥;
保护密钥逆变换模块,用于根据所述密钥恢复文件对所述保护密钥进行逆变换,得到初始密钥。
20.根据权利要求19所述的密钥变换装置,其特征在于,所述密钥恢复文件为所述目标矩阵、所述目标矩阵的逆矩阵或所述目标矩阵的对应的变换表;
相应的,所述保护密钥逆变换模块包括:
第一初始密钥逆变换子模块,用于将所述保护密钥乘以所述目标矩阵的逆矩阵,得到的运算结果为初始密钥;
第二初始密钥逆变换子模块,用于在所述变换表中查找对应所述保护密钥的第一输入数据和第二输入数据,得到的所有第一输入数据和第二输入数据为初始密钥。
21.一种终端,其特征在于,包括如权利要求11-18任一项所述的密钥变换装置。
22.一种终端,其特征在于,包括如权利要求19或20所述的密钥变换装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510381277.8A CN106330435A (zh) | 2015-07-02 | 2015-07-02 | 一种密钥变换方法、装置及终端 |
PCT/CN2016/083934 WO2017000726A1 (zh) | 2015-07-02 | 2016-05-30 | 一种密钥变换方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510381277.8A CN106330435A (zh) | 2015-07-02 | 2015-07-02 | 一种密钥变换方法、装置及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106330435A true CN106330435A (zh) | 2017-01-11 |
Family
ID=57607816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510381277.8A Withdrawn CN106330435A (zh) | 2015-07-02 | 2015-07-02 | 一种密钥变换方法、装置及终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106330435A (zh) |
WO (1) | WO2017000726A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107181593A (zh) * | 2017-06-05 | 2017-09-19 | 上海爱信诺航芯电子科技有限公司 | 一种微控制器目标代码保护方法及系统 |
CN107612683A (zh) * | 2017-09-30 | 2018-01-19 | 上海众人网络安全技术有限公司 | 一种加解密方法、装置、系统、设备和存储介质 |
CN109450881A (zh) * | 2018-10-26 | 2019-03-08 | 天津海泰方圆科技有限公司 | 一种数据传输系统、方法及装置 |
CN109818734A (zh) * | 2017-11-21 | 2019-05-28 | 中国移动通信有限公司研究院 | 一种基本密钥分发方法、装置和介质 |
CN111641636A (zh) * | 2020-05-28 | 2020-09-08 | 中国联合网络通信集团有限公司 | 物联网数据安全通信的方法、系统、设备及存储介质 |
CN113613246A (zh) * | 2021-10-08 | 2021-11-05 | 江苏倍斯特物联网技术有限公司 | 一种通信数据的传输方法及设备 |
CN113656810A (zh) * | 2021-07-16 | 2021-11-16 | 五八同城信息技术有限公司 | 应用程序加密方法、装置、电子设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111544893B (zh) * | 2020-04-30 | 2023-09-01 | 福建天晴在线互动科技有限公司 | 一种基于游戏中防止代码流程伪造的加固方法及其系统 |
CN111737689B (zh) * | 2020-06-10 | 2023-07-14 | 北京奇艺世纪科技有限公司 | 数据处理方法、处理器、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697372A (zh) * | 2004-05-13 | 2005-11-16 | 华为技术有限公司 | 密钥存储方法 |
CN102355350A (zh) * | 2011-06-30 | 2012-02-15 | 北京邮电大学 | 一种用于移动智能终端的文件加密方法和系统 |
CN103259643A (zh) * | 2012-08-14 | 2013-08-21 | 苏州大学 | 一种矩阵全同态加密方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101311942B (zh) * | 2007-05-23 | 2011-08-24 | 西门子(中国)有限公司 | 对软件进行加密、解密的方法及加密、解密的装置 |
FR2948518A1 (fr) * | 2009-07-23 | 2011-01-28 | France Telecom | Procede de conversion d'un premier chiffre en un deuxieme chiffre |
CN104009835A (zh) * | 2014-05-16 | 2014-08-27 | 南京邮电大学 | 一种云存储系统中可并行计算的文件加密解密方法 |
-
2015
- 2015-07-02 CN CN201510381277.8A patent/CN106330435A/zh not_active Withdrawn
-
2016
- 2016-05-30 WO PCT/CN2016/083934 patent/WO2017000726A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697372A (zh) * | 2004-05-13 | 2005-11-16 | 华为技术有限公司 | 密钥存储方法 |
CN102355350A (zh) * | 2011-06-30 | 2012-02-15 | 北京邮电大学 | 一种用于移动智能终端的文件加密方法和系统 |
CN103259643A (zh) * | 2012-08-14 | 2013-08-21 | 苏州大学 | 一种矩阵全同态加密方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107181593A (zh) * | 2017-06-05 | 2017-09-19 | 上海爱信诺航芯电子科技有限公司 | 一种微控制器目标代码保护方法及系统 |
CN107612683A (zh) * | 2017-09-30 | 2018-01-19 | 上海众人网络安全技术有限公司 | 一种加解密方法、装置、系统、设备和存储介质 |
CN107612683B (zh) * | 2017-09-30 | 2020-10-27 | 上海众人网络安全技术有限公司 | 一种加解密方法、装置、系统、设备和存储介质 |
CN109818734A (zh) * | 2017-11-21 | 2019-05-28 | 中国移动通信有限公司研究院 | 一种基本密钥分发方法、装置和介质 |
CN109818734B (zh) * | 2017-11-21 | 2021-07-27 | 中国移动通信有限公司研究院 | 一种基本密钥分发方法、装置和介质 |
CN109450881A (zh) * | 2018-10-26 | 2019-03-08 | 天津海泰方圆科技有限公司 | 一种数据传输系统、方法及装置 |
CN111641636A (zh) * | 2020-05-28 | 2020-09-08 | 中国联合网络通信集团有限公司 | 物联网数据安全通信的方法、系统、设备及存储介质 |
CN113656810A (zh) * | 2021-07-16 | 2021-11-16 | 五八同城信息技术有限公司 | 应用程序加密方法、装置、电子设备及存储介质 |
CN113613246A (zh) * | 2021-10-08 | 2021-11-05 | 江苏倍斯特物联网技术有限公司 | 一种通信数据的传输方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2017000726A1 (zh) | 2017-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330435A (zh) | 一种密钥变换方法、装置及终端 | |
EP2329622B1 (en) | Message authentication code pre-computation with applications to secure memory | |
US9274976B2 (en) | Code tampering protection for insecure environments | |
CN110008745B (zh) | 一种加密方法、计算机设备和计算机存储介质 | |
US8428251B2 (en) | System and method for stream/block cipher with internal random states | |
US8966279B2 (en) | Securing the implementation of a cryptographic process using key expansion | |
CN105940439A (zh) | 使用排列应对对密码算法的旁通道攻击的对策 | |
CN108964872B (zh) | 一种基于aes的加密方法及装置 | |
CN106470102A (zh) | 密码装置、具有密码装置的存储装置、其加密和解密方法 | |
CN104012030A (zh) | 用于保护对称加密密钥的系统及方法 | |
US8699702B2 (en) | Securing cryptographic process keys using internal structures | |
CN105024803A (zh) | 白箱实现中的行为指纹 | |
US20150363333A1 (en) | High performance autonomous hardware engine for inline cryptographic processing | |
CN108494546A (zh) | 一种白盒加密方法、装置及存储介质 | |
US20210036864A1 (en) | Method and system for generating a keccak message authentication code (kmac) based on white-box implementation | |
CN105184115A (zh) | 用于将隐式完整性或可信性检查包括到白箱实现中的方法 | |
CN105095695A (zh) | 经由白箱实现的不正确功能行为实现授权 | |
CN107094074A (zh) | 一种数据加密方法及数据加密装置 | |
CN105022937A (zh) | 用于将白箱实现紧附到周围程序的接口兼容方式 | |
CN105978680A (zh) | 在白盒实现方案中实现填充 | |
US11194933B2 (en) | Circuits supporting improved side channel and fault injection attack resistance | |
CN114760052A (zh) | 银行物联网平台密钥生成方法、装置、电子设备及介质 | |
CN101997680B (zh) | 一种直接支持证书管理的安全芯片 | |
CN105024808A (zh) | 无需改变密钥的安全性补丁 | |
CN111314051B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170111 |