[发明专利]一种加密方法有效
申请号: | 201410645104.8 | 申请日: | 2014-11-10 |
公开(公告)号: | CN104392154A | 公开(公告)日: | 2015-03-04 |
发明(设计)人: | 孙吉平;韩勇 | 申请(专利权)人: | 北京深思数盾科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
地址: | 100872 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 加密 方法 | ||
技术领域
本发明涉及数据安全技术,特别是涉及一种加密方法。
背景技术
目前,常用的密码学算法库提供的应用程序接口API,都需要把密钥作为参数来进行传递,而很多加密方法的密钥(如RSA密钥)是几个大数,在API接口定义中,大数的数据结构往往是一个dword类型的数组,或字节数组。例如RSA2048中,模数是2048位,即256字节,调用加解密API时,传递的是数组指针,而数组则是内存中连续存放的密钥数据,破解者只要找到调用API的入口,再逐步查找堆栈,即有可能获得整个密钥。
目前的加密和保护工具,主要功能是对加密程序的代码进行保护(乱序、混淆、反跟踪)等,没有对数据做针对性的处理。如外壳工具虽然能对文件的数据段整体加密,但运行时,在API的入口处,仍然可以找到明文的连续密钥。这是因为密码学算法本身要求这样的数据结构,并且在运算时数据必须是明文的。
目前尚未提出一种能够对密钥进行有效保护,防止破解者从加密程序文件、内存中获得密钥的有效方法。
发明内容
有鉴于此,本发明的主要目的在于提供一种加密方法,该方法可以对密钥进行有效保护。
为了达到上述目的,本发明提出的技术方案为:
一种加密方法,包括:
a、根据当前用于加密的密钥,将加密程序源代码中与所述密钥相关的变量参数转化为相应的常量参数,对所述转化后得到的加密程序源代码进行编译;
b、利用所述编译后得到的加密程序,对待加密数据进行加密。
综上所述,本发明提出的加密方法,在利用密钥进行加密前,根据密钥的实际数值,对加密程序的源代码进行修改,对其中与密钥相关的变量参数进行固化,转化为相应的常量参数,可以有效隐藏加密时所使用的密钥,防止破解者从加密程序文件、内存中获得密钥,从而可以对密钥进行有效保护。
附图说明
图1为本发明实施例一的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:根据密钥的实际取值,将加密程序中与密钥相关的变量参数转化为取值固定的固化参数(如宏、常量),这样,可以实现隐藏密钥的目的,提高密钥的安全性。
图1为本发明实施例一的流程示意图,如图1所示,该实施例主要包括:
步骤101、根据当前用于加密的密钥,将加密程序源代码中与所述密钥相关的变量参数转化为相应的常量参数,对所述转化后得到的加密程序源代码进行编译。
本步骤,用于将加密程序源代码中与所述密钥相关的变量参数进行固化,以达到隐藏密钥的目的,防止破解者从加密程序文件、内存中获得密钥。
较佳地,本步骤可以采用下述步骤实现:
步骤a1、对于加密程序源代码中以密钥为参数的每个函数,将所述密钥从函数参数集合中删除。
步骤a2、将所述函数的函数体中以密钥整体取值为参数的每个运算逻辑函数代码,根据所述密钥计算出相应的运算结果,将所述运算逻辑函数代码替换为以所述运算结果为值的常量参数。
这里,通过将密钥参数代替为相应的固定的运算结果,即以常量参数替换算法源代码中的密钥参数,从而可以起到隐藏密钥的效果。
例如:对于如下代码:
void func(byte*data,byte*key/*密钥*/)
{
int key_len=getKeyLength(key);//getKeyLength是另一个函数,用于在运行时获取密钥的长度。
}
经过转化后为:
void func(byte*data)
{
int key_len=KEY_LENGTH;//由于密钥已经固化了,其长度也是确定的了。
}
步骤a3、对于所述源代码中每个有密钥的部分数值参与运算的循环结构,将该循环结构展开,得到等效的T组运算代码,所述T为循环结构所限定的循环执行次数上限,并根据所述密钥的实际取值,对每组运算代码中以密钥的部分数值为参数的运算代码进行修改,所述修改包括将所述密钥的部分数值对应的变量参数替换为相应的以所述密钥的部分数值为固定取值的常量参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技有限公司,未经北京深思数盾科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410645104.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种支持最小特权的用户按需授权方法
- 下一篇:软件授权的叠加控制装置和方法