一种基于唯密文的密码算法识别方法和系统的制作方法

文档序号:9751172阅读:1536来源:国知局
一种基于唯密文的密码算法识别方法和系统的制作方法
【技术领域】
[0001]本发明涉及密码算法识别技术领域,尤其涉及一种基于唯密文的密码算法识别方法和系统。
【背景技术】
[0002]信息的保密通信、安全存贮、完整性保护、鉴别、签名和验证等都离不开密码算法的使用,密码算法是信息保密技术的核心,密码算法的安全性有着不可估量的重要作用。Kerckhoffs对密码分析的基本假设中,阐述了密码分析者已知密码算法及其实现的全部细节,现有的密码分析技术也几乎都建立在算法已知的基础上。但在舆情分析中,我们获得的信息就只有密文,这些密文对于密码分析者来讲,采用的密码算法都是未知的。但是有一点可以确认,使用者基本上不是专业的密码学工作者,所以他们采用的密码算法一般都采用公开的密码算法。要对这些加密算法未知的密文进行解密,首当其冲就必须对密文所采用的密码算法进行识别。
[0003]目前国内外主要是利用软件逆向分析技术对密码算法进行识别,研究内容一般是提取出密码算法的软件实现特征(包括密码算法的二进制特征、韵律特征、统计特征、语法特征和语义特征等),并在此基础上建立密码算法识别模型,构建密码算法特征数据库。但存在很大局限性:
(I)基本上是从电子设备中应用软件的二进制可执行代码入手,因此需提取出目标二进制文件中包含密码算法的模块。对于代码混淆的软件,常常只能识别部分密码函数,难以识别出具体的密码算法名称。
[0004](2)需对大量汇编代码进行人工分析,自动化分析的水平低,工作量大。
[0005](3)需要得到目标软件。
[0006]通过软件逆向分析对密码算法进行识别的技术在只有密文可知的情形下是无能为力的,因此基于唯密文的密码算法识别技术凸显了其重要性和实用前景。目前该技术才处于起步阶段,在国内尚无公开的关于这方面的研究成果,在国外也仅有少部分学者进行过相关研究。但目前国外公开的基于唯密文的密码算法识别技术研究仍存在以下不足:
(I)仅仅做了一些探索性的理论研究,很多实验密文数据不符合实际情形,例如实验中所有的密文对应同一密钥,且没有严格限制测试所用的密文文件尺寸。
[0007](2)所识别密码算法未具体说明算法参数,仅仅是按算法名称来识别密码算法。事实上,例如AES算法按密钥长度(128bit,192bit和256bit)可分为三类,RC5算法按字长值(16,32和64)也可分为三类。
[0008](3)基本上只是对少数的几种分组密码算法进行识别,未发现拓展其他有价值的研究内容。

【发明内容】

[0009]针对现有技术中的密码算法识别方法存在的上述问题,本发明公开了一种基于唯密文的密码算法识别方法和系统。
[0010]本发明公开了一种基于唯密文的密码算法识别方法,其具体包括如下五个步骤:步骤一:确定出需要对哪几种密码算法进行识别,然后对应这些需要进行识别的密码算法,分别生成密文文件,各密码算法对应的密文文件的大小和数量保持一致;步骤二:对所生成的密文文件按照一定规则提取其二进制密文数据特征,所提取的密文特征具有可识别性;步骤三:确定了提取规则,按照步骤二得到密文文件的特征,并筛选出关键特征,将关键特征作为密码算法识别模型的特征匹配数据库,结合机器学习中的识别算法,建立初步的识别模型;步骤四:对应各密码算法,分别重新生成一些密文文件,同样按照步骤二、三的特征提取筛选规则,得到这些新的密文的关键特征,进而作为识别模型的输入,对密码算法进行初步区分识别;步骤五:经过多次优化,最终得到一个稳定的识别模型,直接用于基于唯密文信息的密码算法识别。
[0011]更进一步地,上述提取其二进制密文数据特征的方法具体包括以下步骤:首先将密文文件中的密文分割成多个大小相同的密文块,然后按提取规则对每个密文块进行特征提取。
[0012]更进一步地,上述特征提取的过程具体为:对于每一个密文块,将每8位二进制密文表示为一个O?255的数值,那么该密文文件的特征为一个257维的向量,该向量的前256维分量分别表示出现O?255的频次,最后一维表示该密文块的类别属性,即用数值表示该密文对应于哪一种密码算法。
[0013]更进一步地,上述特征提取的过程具体为:对于每一个密文块,以128位密文为一个分组,统计所有分组中128个位置各位置出现I的频次之和,构成一个129维的向量,前128维表示所有分组各位置出现I的频次之和,第129维表示密文块的密码算法类别。
[0014]更进一步地,上述筛选出关键特征的方法具体包括以下的步骤:寻找多维特征的一个中心点,设置一个距离阈值,根据与这个中心点的距离来筛选出关键特征,将离中心点较远的特征去掉。
[0015]更进一步地,上述优化识别模型的具体步骤为:观察识别算法中的参数设置,密文特征以及识别效果这三者间的关系,进而对识别模型进行优化。
[0016]更进一步地,上述识别算法参数,密文特征和识别效果之间的关系确定过程为:(I)生成用于对识别模型进行参数调整的密文文件;(2)先选定一类密文特征,筛选出关键特征,然后在调整算法参数过程中观察识别率,直至获得较高识别率;(3)选取其他类别密文特征,按同样方式调整算法参数;(4)根据识别效果,选择密文特征类别和识别算法参数的最优组合。
[0017]本发明还公开了一种基于唯密文的密码算法识别系统,其具体包括密码算法确定单元、密文特征提取单元、初步模型建立单元和模型优化单元;所述密码算法确定单元用于确定出需要对哪几种密码算法进行识别,然后对应这些需要进行识别的密码算法,分别生成密文文件,各密码算法对应的密文文件的大小和数量保持一致;所述密文特征提取单元用于对所生成的密文文件按照一定规则提取其二进制密文数据特征,所提取的密文特征具有可识别性;所述初步模型建立单元用于将关键特征作为密码算法识别模型的特征匹配数据库,结合机器学习中的识别算法,建立初步的识别模型;所述模型优化单元用于对应各密码算法,分别重新生成一些密文文件,同样进行特征提取和筛选,得到这些新的密文的关键特征,进而作为识别模型的输入,对初步的识别模型进行优化,最终得到一个稳定的识别模型,直接用于基于唯密文信息的密码算法识别。
[0018]通过采用以上的技术方案,本发明的有益效果为:本发明提出一种基于唯密文的密码算法识别技术,主要解决如下的技术问题:
(I)密文数据中的特征提取技术
对于一个安全强度较高的密码算法,通常对应的二进制密文中O和I的分布是比较均衡的,提取出密文数据中与众不同的特征是关键和难点。因此,构建一种密文特征信息提取规则对密文数据进行预处理,进而提取出关键特征,是本发明首要解决的关键问题。
[0019](2)密码算法正确识别率提升技术
尽管当前有些识别技术能够识别出一些公开密码算法,但其正确识别率并不高,尤其是对于那些使用不同密钥加密的密文,正确识别率更低。目前国外文献资料上基于唯密文的密码算法识别大部分运用的仅仅只是统计方法,少部分运用了Adaboost,以及计算较复杂的人工神经网络算法,在ECB模式下的识别率大约为80%,甚至更低。本发明结合信息论,统计分析,最优化理论以及机器学习方法,从多种密码算法对应的大量密文中提取特征并建立特征匹配库,进而进行基于唯密文的密码算法识别。在ECB工作模式下,对五类常见分组密码(AES,DES,3DES,BLOWFISH和RC5)的密文进行多次算法识别测试,当密文文件大于100KB以上时,识别率能达到90%以上。如果密码算法数量减少,识别率将进一步地提高。因此,提高密码算法正确识别率是本发明突破的关键技术。
[0020](3)密文数据较少时的密码算法识别技术
目前通过密文对密码算法进行识别的研究基本上都基于训练样本和测试样本足够多、足够大的前提,从而能更好地提取密文中的模式和特征。在理论研究过程中,可以产生任意多的训练样本和测试样本,而在实际应用中,测试样本由截获到的密文经过分割得到。如果截获到的密文数据较少,会直接导致测试样本数目减少和测试样本长度变短。测试样本数目减少会导致识别结果不可靠,测试样本长度变短会导致密文
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1