加密程序的分析方法、装置及电子设备制造方法及图纸

技术编号:35648092 阅读:16 留言:0更新日期:2022-11-19 16:42
本申请公开了一种加密程序的分析方法、装置及电子设备。其中,该方法包括:获取加密程序的N个运行轨迹以及N个输出结果,其中,输出结果为加密程序加密后的文件,每个输出结果对应一个运行轨迹,输出结果包括至少一个字节,运行轨迹中至少包含有加密程序在运算过程中生成的J个中间值;穷举输出结果中第M个字节所对应的K个密钥;根据预先构建的选择函数以及密钥对输出结果进行逆向分析,得到模拟值,其中,模拟值为选择函数根据输出结果以及密钥预测的预测中间值;确定模拟值与中间值之间的相关度;根据相关度确定第M个字节的正确密钥。本申请解决了现有技术中对加密程序的分析效率低的技术问题。的技术问题。的技术问题。

【技术实现步骤摘要】
加密程序的分析方法、装置及电子设备


[0001]本申请涉及信息安全领域,具体而言,涉及一种加密程序的分析方法、装置及电子设备。

技术介绍

[0002]目前,在针对软件层面的加密程序的分析方法主要采用的是通过DBI(Dynamic Binary Instrumentation)等二进制插桩工具获取加密程序在运行过程的内存读写轨迹,并针对密码算法的首轮进行逐字节密钥穷举分析,进而提取密钥。
[0003]但是,通过二进制插桩工具获取密钥的过程中需要加密程序的输入没有被保护,换言之,需要确保加密程序没有被外部输入编码组件所编码,并且加密程序中密码算法的首轮没有被混淆(冗余轮、混淆轮)等影响,否则,二进制插桩工具是无法获取得到正确的密码的。
[0004]然而,随着近年来针对密码算法的首轮的保护力度加大,编码技术、反调试技术被应用于保护加密程序。例如:通过针对加密程序进行外部输入编码,将加密程序的真实输入隐藏,从而导致二进制插桩工具无法进行侧信道攻击,或者,在密码算法的首轮增加冗余轮等混淆组件,从而也会导致二进制插桩工具无法提取密钥或提取的密钥为假密钥。
[0005]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0006]本申请实施例提供了一种加密程序的分析方法、装置及电子设备,以至少解决现有技术中对加密程序的分析效率低的技术问题。
[0007]根据本申请实施例的一个方面,提供了一种加密程序的分析方法,包括:获取加密程序的N个运行轨迹以及N个输出结果,其中,输出结果为加密程序加密后的文件,每个输出结果对应一个运行轨迹,输出结果包括至少一个字节,运行轨迹中至少包含有加密程序在运算过程中生成的J个中间值;穷举输出结果中第M个字节所对应的K个密钥;根据预先构建的选择函数以及密钥对输出结果进行逆向分析,得到模拟值,其中,模拟值为选择函数根据输出结果以及密钥预测的预测中间值,K个密钥对应K个模拟值,每个密钥对应一个模拟值;确定模拟值与中间值之间的相关度;根据相关度确定第M个字节的正确密钥。
[0008]进一步地,加密程序的分析方法还包括:步骤1,获取未加密的文件;步骤2,依据模拟器运行加密程序,并根据加密程序对未加密的文件进行加密,得到运行轨迹以及输出结果,其中,模拟器为一种调用加密程序进行模拟加密操作的应用程序;步骤3,循环执行N次步骤1与步骤2,得到N个运行轨迹以及N个输出结果。
[0009]进一步地,加密程序的分析方法还包括:确定模拟值为第一比特序列,中间值为第二比特序列,其中,第一比特序列与第二比特序列均为由数值1和/或数值0组成的序列;在第一比特序列的C位置上为数值0时,确定第二比特序列的C位置上的值为第一集合中的值;在第一比特序列的C位置上为数值1时,确定第二比特序列的C位置上的值为第二集合中的
值;根据第一集合与第二集合确定相关度。
[0010]进一步地,加密程序的分析方法还包括:确定第一集合中数值1的数量为第一数量,第二集合中数值1的数量为第二数量;确定第一集合中所有数值的总数量为第三数量,第二集合中所有数值的数量为第四数量;计算第一数量与第三数量的比值,得到第一比值;计算第二数量与第四数量的比值,得到第二比值;根据第一比值与第二比值确定相关度。
[0011]进一步地,加密程序的分析方法还包括:计算第一比值与第二比值的绝对值;确定差值的绝对值,得到相关度,其中,J个中间值对应J个相关度,每个中间值对应一个相关度。
[0012]进一步地,加密程序的分析方法还包括:检测模拟值对应的J个相关度中是否存在至少一个相关度大于预设阈值;在模拟值对应的J个相关度中存在至少一个相关度大于预设阈值的情况下,确定模拟值对应的密钥为第M个字节的候选密钥;根据候选密钥确定第M个字节的正确密钥。
[0013]进一步地,加密程序的分析方法还包括:从N*K个密钥中确定所有的候选密钥,其中,N*K个密钥为N个输出结果中在第M个字节对应的全部密钥;根据每个候选密钥的相关度对所有的候选密钥进行排序,得到排序结果;根据排序结果,确定相关度最大的候选密钥为第M个字节的正确密钥。
[0014]根据本申请实施例的另一方面,还提供了一种加密程序的分析装置,包括:获取模块,用于获取加密程序的N个运行轨迹以及N个输出结果,其中,输出结果为加密程序加密后的文件,每个输出结果对应一个运行轨迹,输出结果包括至少一个字节,运行轨迹中至少包含有加密程序在运算过程中生成的J个中间值;穷举模块,用于穷举输出结果中第M个字节所对应的K个密钥;分析模块,用于根据预先构建的选择函数以及密钥对输出结果进行逆向分析,得到模拟值,其中,模拟值为选择函数根据输出结果以及密钥预测的预测中间值,K个密钥对应K个模拟值,每个密钥对应一个模拟值;第一确定模块,用于确定模拟值与中间值之间的相关度;第二确定模块,用于根据相关度确定第M个字节的正确密钥。
[0015]根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的加密程序的分析方法。
[0016]根据本申请实施例的另一方面,还提供了一种电子设备,电子设备包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的加密程序的分析方法。
[0017]在本申请的技术方案中,采用根据选择函数以及密钥对加密程序的输出结果进行逆向分析的方式,首先获取加密程序的N个运行轨迹以及N个输出结果,然后穷举输出结果中第M个字节所对应的K个密钥,随后根据预先构建的选择函数以及密钥对输出结果进行逆向分析,得到模拟值,并确定模拟值与中间值之间的相关度,最后根据相关度确定第M个字节的正确密钥。其中,输出结果为加密程序加密后的文件,每个输出结果对应一个运行轨迹,输出结果包括至少一个字节,运行轨迹中至少包含有加密程序在运算过程中生成的J个中间值;模拟值为选择函数根据输出结果以及密钥预测的预测中间值,K个密钥对应K个模拟值,每个密钥对应一个模拟值。
[0018]由上述内容可知,本申请根据预先构建的选择函数以及穷举得到的密钥对输出结
果进行逆向分析,从而逆向模拟出加密程序的密码算法在对文件进行加密时生成的中间值,由于本申请是逆向分析的方式,因此可以规避由于加密程序进行了外部输入编码后导致的无法准确获取得到正确密钥的问题,同时由于逆向分析时是分析的加密过程中的末轮,因此还可以规避由于密码算法在首轮增加了冗余轮等混淆组件导致的无法提取正确密钥的问题,从而提高了正确密钥的获取效率,进而提升了对加密程序的分析效率。
[0019]由此可见,通过本申请的技术方案,达到了确保获取加密程序的正确密钥的目的,实现了提高正确密钥的获取效率的效果,进而解决了现有技术中对加密程序的分析效率低的技术问题。
附图说明
[0020]此处所说明的附图用来提供对本申请的进一步理解本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加密程序的分析方法,其特征在于,包括:获取加密程序的N个运行轨迹以及N个输出结果,其中,所述输出结果为所述加密程序加密后的文件,每个所述输出结果对应一个所述运行轨迹,所述输出结果包括至少一个字节,所述运行轨迹中至少包含有所述加密程序在运算过程中生成的J个中间值;穷举所述输出结果中第M个字节所对应的K个密钥;根据预先构建的选择函数以及所述密钥对所述输出结果进行逆向分析,得到模拟值,其中,所述模拟值为所述选择函数根据所述输出结果以及所述密钥预测的预测中间值,所述K个密钥对应K个模拟值,每个密钥对应一个模拟值;确定所述模拟值与所述中间值之间的相关度;根据所述相关度确定所述第M个字节的正确密钥。2.根据权利要求1所述的方法,其特征在于,获取加密程序的N个运行轨迹以及N个输出结果,包括:步骤1,获取未加密的文件;步骤2,依据模拟器运行所述加密程序,并根据所述加密程序对所述未加密的文件进行加密,得到所述运行轨迹以及所述输出结果,其中,所述模拟器为一种调用所述加密程序进行模拟加密操作的应用程序;步骤3,循环执行N次步骤1与步骤2,得到所述N个运行轨迹以及所述N个输出结果。3.根据权利要求2所述的方法,其特征在于,确定所述模拟值与所述中间值之间的相关度,包括:确定所述模拟值为第一比特序列,所述中间值为第二比特序列,其中,所述第一比特序列与所述第二比特序列均为由数值1和/或数值0组成的序列;在所述第一比特序列的C位置上为所述数值0时,确定所述第二比特序列的C位置上的值为第一集合中的值;在所述第一比特序列的C位置上为所述数值1时,确定所述第二比特序列的C位置上的值为第二集合中的值;根据所述第一集合与所述第二集合确定所述相关度。4.根据权利要求3所述的方法,其特征在于,根据所述第一集合与所述第二集合确定所述相关度,包括:确定所述第一集合中所述数值1的数量为第一数量,所述第二集合中所述数值1的数量为第二数量;确定所述第一集合中所有数值的总数量为第三数量,所述第二集合中所有数值的数量为第四数量;计算所述第一数量与所述第三数量的比值,得到第一比值;计算所述第二数量与所述第四数量的比值,得到第二比值;根据所述第一比值与所述第二比值确定所述相关度。5.根据权利要求4所述的方法,其特征在于,根据所述第一比值与所述第二比值确定所述相关度,包括:计算所述第一比值与所述第二比值的差值;确定所...

【专利技术属性】
技术研发人员:孙涛李文越何伊圣周溥璇
申请(专利权)人:山石网科通信技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1