2. 西安邮电大学 无线网络安全技术国家工程实验室, 西安 710121
2. National Engineering Laboratory for Wireless Network Security Technology, Xi'an University of Posts & Telecommunications, Xi'an 710121, China
开放科学(资源服务)标志码(OSID):
密码学包括2个重要的分支,即密码编码学和密码分析学。在信息时代,网络安全已成为国家安全的重要组成部分,而密码编码学和密码分析学在其中扮演着不可或缺的角色。目前,网络空间中不仅存在多种数据类型,例如视频、文本、图像等,而且数据量大、冗余度高。因此,需要研究合理的数据处理方案。机器学习与密码学的结合可实现对大量密文数据的有效处理。机器学习提供了聚类分类算法来分析数据,而密码学则能保证数据安全。
密码编码学是一种保护信息在传递过程中不被第三方或者敌方所解读、利用和窃取的技术,它解决的主要问题是信息的安全性问题。在现实生活中,总会存在一些用户在未经信息持有者授权或者本就无意愿将信息共享的情况下,对所传输的信息进行非法获取、恶意篡改以及删除和伪造。密码学者对此采取的措施主要是使用密码分析技术来进一步完善所设计的密码方案并优化方案中所包含的密码算法。目前使用较多的密码分析技术都是基于Kerckhoffs[1]这一原则,即在进行密码分析时分析者是知道具体密码算法的。根据可用于密码分析的信息,密码分析攻击的手段可分为唯密文攻击和已知明文攻击、选择明文攻击、选择密文攻击和侧信道攻击。在现实情况下,密文数据是密码分析者唯一容易获得的信息。已知的密码分析技术大部分是基于某种具体密码算法或者在已知密文所使用的密码算法的前提下设计的。因此,密码分析的首要任务是对获取的密文数据所使用的密码算法进行识别。密码算法识别不仅是进一步开展密码分析的基础,同时也是发现密码算法是否存在安全隐患的一种重要方式,对增强密码算法的安全性具有重要的影响。
本文通过GMSSL对明文文本进行加密,生成与其对应的关于SM4 4种工作模式的密文文本,并利用特征提取算法对这些密文文本进行特征提取,形成后续分类模型和测试阶段所需要的特征向量。最后借助机器学习算法对国密算法SM4的4种工作模式进行模型构建和识别测试,以验证本文方案的有效性。
1 相关工作基于密文特征的密码体制识别往往都同机器学习技术互相配合[2]。2011年,MANJULA和ANITHA[3]提出基于C4.5决策树的密码体制识别方案。该方案提取了8种密文特征,对11种加密算法进行识别,包括古典算法、分组密码算法和非对称加密算法,并从训练文件数量和所用密文文件大小两方面进行试验,得到的识别率为70%~75%。2012年,CHOU等[4]提出利用支持向量机对密码体制进行识别。通过对数据集的分析发现密码的工作模式主导着分类任务的执行。该方案提取了12种密文特征,对高级加密标准(Advance Encryption Standard,AES)和数据加密标准(Data Encryption Standard,DES)分别在电码本(Electronic Codebook,ECB)模式和密码分组链接(Cipher-Block Chaining,CBC)模式下进行算法识别。实验结果表明,对每个明文使用CBC模式和随机初始向量时性能较差,而使用ECB模式时,某些数据集的性能相对较好。2013年,MISHRA等[5]提出并实现了将模式识别和决策树结合从而识别分组密码和流密码的方案。该方案包括3个子模块技术,即块长度/流检测、熵/重现分析和基于字典/决策树的方法。这3个部分的实现大幅提高了密码算法的识别率。2013年,WILLAM等[6]提出基于神经网络的区分攻击方法,其利用语言学和信息检索方法,从MARS、RC6、Rijndael、Serpent、和Twofish加密的密文中生成分类模型,然后将获取的密文集合提交到“聚类过程”,并将结果输入到分类器中,从而得到以上5种加密算法的分类结果。2014年,LOMTE等[7]对WILLAM等提出的方案做进一步研究。后者在聚类识别过程中使用单一的密钥进行加密的,而前者在训练和测试过程中设置了不同的密钥,相比较而言,识别率有所下降。2015年,吴杨等[8-9]提出了基于k均值(K-means)聚类的密码体制分层识别方案,对5种分组密码(AES、Camellia、DES、3DES、SMS4)进行两两识别,其在特征提取部分使用了密文随机性度量值的方法,大幅提高了典型分组密码的识别率,高达90%左右。2016年,MELLO等[10]在ECB模式下,对7种不同语言编写的纯文本文件使用7种密码算法进行编码。这些文件提供了6种数据挖掘算法的信息,以用于识别文本加密的算法。通过大量的元数据和大量的耗时计算,得到了非常高的识别率。2016年,TAN等[11]提出一种基于支持向量机的密码体制识别方案,对5种常见的分组密码算法进行识别,分别为AES、Blowfish、3DES、RC5和DES,其对这5种算法在4种不同的情况下进行试验,即训练和测试密文的密钥是否相同,在此基础上,利用其他4种加密算法与AES进行一一识别,当训练和测试阶段的密钥相同时其识别率较高。2017年,BARBOSA等[12]提出对加密的多媒体文件进行密码算法识别。该过程使用4种加密算法对音频和视频文件进行加密,然后将加密的文件提交给数据挖掘算法,并将其产生的混淆矩阵编译成图表。2017年,黄良韬等[13]提出基于随机森林的密码体制分层识别方案,并介绍了3种簇分方式,即CM-簇分、CSN-簇分和CSBP-簇分。首先将已加密的文件按照大的分类进行归类,然后从每一类中区分出具体的密码算法。实验结果表明,加入分层的方案较单分的密码体制识别效果更佳。在以往的密码体制识别中,多数密码算法都是在ECB模式下的,2018年,TAN等[14]提出基于CBC模式的密码体制识别方案。该方案用5种算法进行多类识别和一对一识别,在此基础上考虑了训练和测试时密钥是否相同以及初始向量是否相同的情况,其中一对一识别是将AES与其他4种算法进行识别。2019年,赵志诚等[15]采用随机性测试进行密文特征的提取,提出了基于随机森林的识别方案。该方案中对6种分组密码进行两两识别,在不同的特征下其识别率各有差异,部分特征下其识别率能达到80%以上。
上述工作主要针对不同密码算法进行识别,或者在特定工作模式下进行识别,而缺乏对分组密码工作模式的识别,特别是国密SM4分组密码算法的工作模式识别。分组密码的工作模式又对密码算法的识别起着主导作用,这将对舆论分析、互联网审查、电子取证和网络监控具有推进作用。无论是对不同算法识别还是对分组密码工作模式的识别,都利用机器学习将其视为模式分类的问题,使用机器学习的各种分类方法来尝试捕获加密后的密文文件中隐含的行为。通过机器学习算法对大量密文文本进行分析计算,生成对应的分类模型,再将测试文本投入分类器中进行比较,最后得到分类结果。这样就可以避免人为地去分析论证密码工作模式本身的区别,而是将这一行为交由机器学习去完成,通过与统计学方法的结合,智能地挖掘和分析在同一明文文本集下经由不同工作模式加密后产生的密文文本之间所隐含的不同信息。本文主要研究SM4分组密码工作模式识别方法。SM4算法是我国国家密码管理局提出的一种分组长度和密钥长度均为16字节的分组密码算法,适用于无线局域网产品。它的安全性能较高,可以抵抗差分、线性和代数等分析技术。SM4算法现已实现的工作模式有6种,在本文中用到了密文分组链接模式(CBC)、密文反馈模式(CFB)、计数器模式(CTR)、输出反馈模式(OFB)这4种。若直接使用SM4算法加密消息,它的安全性是非常脆弱的。为了在不同的场景中更好地保护明文的安全性,需要借助不同的工作模式。对工作模式的识别能够提高密码算法的安全性,从而更好地抵抗密码攻击。
本文提出基于C4.5的分组密码工作模式识别方案并对国密SM4算法的4种工作模式进行识别。首先利用加密工具在不同的工作模式下对大量的文本文件进行加密,得到密文文件;然后构造训练阶段和测试阶段所需的特征向量空间,该空间是由特征提取算法对密文文件处理后得到的,每个特征向量中包括5个值,即大写字母数量、小写字母数量、数字字符数量、其他字符数量和标签值。在此基础上,在训练阶段通过对特征空间的学习生成决策树,在测试阶段根据生成的决策树进行决策,最后将决策值与标签值相比较得到分类结果。
2 系统模型本文设计基于决策树的密码体制识别系统,系统模型如图 1所示,其中包含4个部分:1)生成特定工作模式的密文文件;2)提取密文特征;3)生成决策树模型;4)进行测试分类。
![]() |
Download:
|
图 1 分组密码工作模式识别模型 Fig. 1 Block-cipher working mode recognition model |
分组密码的工作模式[16]包括电子密码本(ECB)模式、密文分组链接模式(CBC)、密文反馈模式(CFB)、输出反馈模式(OFB)和计数器模式(CTR)。在该系统模型中,使用了国密SM4算法的4种工作模式,电子密码本模式除外。CBC模式相比较其他4种工作模式较为流行,除第一个明文分组与随机产生的初始向量[17]异或后加密生成密文外,其他明文分组都与前一个密文输出进行异或后生成相应的密文。在信息传输过程中,只要一个明文分组出现错误,则会影响其后的密文分组。因此它的加密过程不能并行化,相反解密过程不受该情况的影响,从而可实现并行计算。CFB模式首先对随机产生的初始化向量加密,将加密后的结果与明文分组相异或,而后续的过程是对前一个分组加密后的结果进行加密,然后与当前明文相异或,得到对应的密文。与CBC模式相比,CFB模式的错误传播性质更为突出,一个明文分组的错误可能会导致其后所有密文分组出现错误。不仅仅是加密,其解密过程也依赖其他的明文分组,因此,其加密过程和解密过程均不能实现并行化。OFB模式的第一步操作与CFB相同,不同的是OFB把随机初始向量加密后的结果作为下一分组的输入,对该输入加密后再与明文分组进行异或运算得到对应的密文分组。OFB模式规避了CFB模式和CBC模式由于明文出错而带来的错误传播的风险,但随之而来的是一旦密文被恶意篡改,检测工作将变得不再容易。CTR模式是将计数器进行分组,将每个计数器分组加密后与明文分组进行异或运算,得到对应的密文分组。每个分组的加密与解密过程相互独立,不会有错误传输的困扰,也因此加解密均可并行。
将明文加密成特定密码工作模式的密文文件后,再对其进行特征提取。特征提取的工作是最重要也是最难的一步,因为其本质是对密数据的处理和分析,而且它对后续模型的生成和分类的结果起着决定性的作用。特征提取的方法很多,如统计学方法、随机性检测[18-19]、密码学中的熵特性和信号中的频域特征等。本文借助统计学方法和信息熵的结合来实现密文数据的特征提取。首先利用统计学方法对密文文本中的大小写字符、数字字符以及特殊字符的个数进行统计,然后分别计算其对应的熵,以此为基础形成特征向量,进而得到特征向量空间。
对密文数据特征提取后即进入学习和分类的过程,这是机器学习算法的本质。机器学习算法包括2个阶段:第1个阶段是训练阶段,即将得到向量空间的一部分传递给决策树算法进行学习,并生成分类模型,也称决策树模型;第2个阶段为测试阶段,即将向量空间的另一部分投入到机器学习算法中进行测试,依据训练阶段生成的决策树模型来进行分类。训练阶段和测试阶段的向量空间中都包含密文的特征,而决策树算法是有监督学习算法,它的学习标签包含在训练阶段,而在测试阶段将标签隐藏,待测试完成后,用决策树模型预测的结果与测试数据所隐藏的标签进行对比,就可得到实验的结果。
在得到结果之前,要借助决策树算法[20]来生成模型以及进行分类。决策树算法包括ID3和C4.5算法,ID3算法主要借助信息熵和信息增益作为测试属性的衡量标准,而C4.5是在ID3的基础上对信息增益加以调节得到分裂信息,用分裂信息和信息增益率来划分属性。ID3在对属性的划分中往往偏向于选择样本较多的,而C4.5采用信息增益率规避了这一点,并且C4.5算法在树的构造过程中,不仅能够将连续数据进行离散化处理,而且还可以对树进行剪枝处理,从而得到更优的树。本文中选用的是C4.5,具体操作如下:
1)假设有包含N种属性的数据集S和包含K种属性的子集合A。令
信息熵:
$ H\left(\mathrm{S}\right)=-\sum\limits_{\mathrm{i}=1}^{\mathrm{N}}{p}_{i}\;\mathrm{l}\mathrm{b}\;{p}_{i} $ |
$ {H}_{\mathrm{A}}\left(\mathrm{S}\right)=\sum\limits_{i=1}^{k}\frac{\left|{\mathrm{S}}_{i}\right|}{\left|\mathrm{S}\right|}H\left({\mathrm{S}}_{i}\right) $ |
分裂信息:
$ {S}_{\mathrm{S}\mathrm{p}\mathrm{l}\mathrm{i}\mathrm{t}\mathrm{E}}\left(\mathrm{A}\right)=-\sum\limits_{i=1}^{k}\frac{\left|{\mathrm{S}}_{i}\right|}{\left|\mathrm{S}\right|}\mathrm{l}\mathrm{b}\frac{\left|{\mathrm{S}}_{i}\right|}{\left|\mathrm{S}\right|} $ |
信息增益:
$ {I}_{\mathrm{I}\mathrm{G}}(\mathrm{S}, \mathrm{A})=H\left(\mathrm{S}\right)-{H}_{\mathrm{A}}\left(\mathrm{S}\right) $ |
信息增益率:
$ {I}_{\mathrm{I}\mathrm{G}\mathrm{R}\mathrm{a}\mathrm{t}\mathrm{i}\mathrm{o}}\left(\mathrm{A}\right)=\frac{{I}_{\mathrm{I}\mathrm{G}}(\mathrm{S}, \mathrm{A})}{{S}_{\mathrm{S}\mathrm{p}\mathrm{l}\mathrm{i}\mathrm{t}\mathrm{E}}\left(\mathrm{A}\right)} $ |
2)将上一步中计算出的每一个属性的信息增益率进行比较,选择最大的一个作为决策树的节点。
3)在子节点上利用剩余的属性继续执行第1步和第2步,直到该节点为纯叶子结点。
4)对生成的决策树进行剪枝处理,包括先剪枝和后剪枝2种方法,以防止过拟合。
该算法结合密文特征提取的结果得到上文描述的信息熵、信息增益和信息增益率,对数据集进行合理高效的划分,在本地生成用于测试阶段判断分类的树结构,根据这个树结构得到所需的分类结果。
3 实验结果与分析在整个实验过程中,本文用到的实验工具包括GMSSL、VS2010和VS Code。GMSSL同OpenSSL一样,都是密码工具箱。它实现了本文所需的SM4加密算法,即在CBC模式、CFB模式、CTR模式和OFB模式下的SM4密码算法对1 000份明文文本加密,得到4种工作模式下各1 000份的密文文本。明文是随机选取的大小在1 KB~200 KB之间的文本文档,都是分组规模的倍数。密文特征提取的工作是由VS2010所提供的C语言编写的特征提取算法所完成,得到大小写字符、数字字符和特殊字符的统计个数。4 000份密文文本都会产生一组包含4个特征值的特征向量,从而构成所需的特征空间。决策树算法是在VS Code上用python语言实现,进而为训练阶段学习模型的生成以及测试阶段分类的实现提供了方法。在训练阶段和测试阶段所用的密钥空间是相同的,所有的密钥都是随机值,并且测试阶段和训练阶段文本的大小是相同的。在同一密钥空间下,对同一工作模式下的不同文本文档的密钥是不同的。本文构建了3种实验模型,分别为混合分类模型、混合文本大小分类模型和一对一分类模型。混合分类模型是将4种工作模式的样本直接投给分类器进行区分;混合文本大小分类模型是在混合分类的基础上,对密文文本进行甄选,将不同文本大小作为分类的影响因子;一对一分类模型是将4种工作模式两两组合,每组单独进行测试。在混合分类模型中,所用到的训练样本数和测试样本数是相同的并且都包含于同一个密钥空间。此外,该模型将样本数量作为测试结果的影响因子。在这3种模型中,正确率指的是测试数据根据训练模型的预测与其标签是否一致的数量(即预测结果正确的数量)与参与测试的数据数量的比值,用公式表示如下:
$ \mathrm{正}\mathrm{确}\mathrm{率}=\frac{\mathrm{预}\mathrm{测}\mathrm{结}\mathrm{果}\mathrm{正}\mathrm{确}\mathrm{的}\mathrm{数}\mathrm{量}}{\mathrm{测}\mathrm{试}\mathrm{数}\mathrm{据}\mathrm{的}\mathrm{总}\mathrm{数}\mathrm{量}} $ |
表 1给出了测试结果随着样本数量增加的变化情况。在每次测试中,4种工作模式的样本数都是平均的。当样本总数从8个增加到100个时,其正确率也逐渐增加,从16.7%增加至26.5%。当样本数较大时,测试结果的正确率更接近于稳定值25%。
![]() |
下载CSV 表 1 混合分类模型测试结果 Table 1 Test result of hybrid classification model |
在混合分类模型的基础上,混合文本大小分类模型将文本大小也考虑为其影响因素。测试结果如表 2所示。可以看出,该模型同时受到文本大小和样本数目的影响,其测试结果随着两者逐渐增大有着微小的变化。与混合分类模型相比,其测试结果更为稳定。
![]() |
下载CSV 表 2 混合文本大小分类模型测试结果 Table 2 Test result of mixed text size classification model |
通过上述分类结果可以看出,以上2种分类模型对SM4算法的4种工作模式,即密文链接模式、密文反馈模式、输出反馈模式和计数器模式,混合时的分类效果并不显著,其识别正确率范围为16%~26%。如果样本总数超过100时,其识别正确率在20%以上。
表 3给出了一对一分类模型的分类结果。将CBC、CFB、OFB和CTR进行两两组合,得到6组分类样本。在每组分类样本中,训练阶段和测试阶段的样本总数均为1 000例。其中,CBC vs CFB的识别率最高,测试结果达到97.61%。而CFB vs OFB的识别率最低,其测试结果达到97.36%。从表 3还可以看到,4种工作模式分类的结果是非常显著的,其正确率高达95%以上,只有OFB与CTR识别的结果为91.67%。通过表 1~表 3的分类结果可以看出,将4种工作模式混合传递给分类器进行分类的结果并不明显,而当对其进行一对一分类时,分类结果良好。
![]() |
下载CSV 表 3 一对一分类模型测试结果 Table 3 Test result of one-to-one classification model |
本文提出一种基于决策树C4.5算法的SM4分组密码工作模式识别方案,并分别以混合分类、混合文本大小分类、一对一分类这3种情况测试该方案的可行性和有效性。在本文方案中,训练阶段和测试阶段所用的样本数目相同,并且对明文文本加密时两阶段使用相同的密钥空间。在进行一对一分类时,CBC模式与CFB、OFB、CTR模式之间的区分正确率都在90%以上,但不足之处在于将4种工作模式混合后的区分率并不高。下一步将结合一些优化算法对C4.5算法本身进行优化,以便更好地应用于本文方案,同时对密文进行特征提取时增加提取的特征数量,进而完善特征向量空间。此外,还将尝试结合其他的机器学习算法进一步提高方案性能。
[1] |
KERCKHOFFS A. La cryptographie militaire[J]. Journal des Sciences Militaires, 1883, IX: 161-191. |
[2] |
DILEEP A D, SEKHAR C C. Identification of block ciphers using support vector machines[C]//Proceeding of IJCNN'06. Gulf Islands, Canada: [s. n. ], 2006: 2696-2701.
|
[3] |
MANJULA R, ANITHA R. Identification of encryption algorithm using decision tree[J]. Advanced Computing Communications in Computer and Information Science, 2011, 133(3): 237-246. |
[4] |
CHOU J W, LIN S D, CHENG C M. On the effectiveness of using state-of-the-art machine learning techniques to launch cryptographic distinguishing attacks[C]//Proceedings of the 5th ACM Workshop on Security and Artificial Intelligence. New York, USA: ACM Press, 2012: 105-110.
|
[5] |
MISHRA S, BHATTACHARJYA A. Pattern analysis of cipher text: a combined approach[C]//Proceedings of International Conference on Recent Trends in Information Technology. Washington D.C., USA: IEEE Press, 2013: 393-398.
|
[6] |
SOUZA W A R, TONLINSON A. A distinguishing attack with a neural network[C]//Proceedings of ICDMW'13. Washington D.C., USA: IEEE Press, 2013: 154-161.
|
[7] |
LOMTE V M, SHINDE A D. Review of a new distinguishing attack using block cipher with a neural network[J]. International Journal of Science and Research, 2014, 3(8): 733-736. |
[8] |
WU Y, WANG T, LI J D. Research on a new method of statistical detection of block cipher algorithm ciphertext[J]. Journal of Ordnance Engineering College, 2015, 27(3): 58-64. (in Chinese) 吴杨, 王韬, 李进东. 分组密码算法密文的统计检测新方法研究[J]. 军械工程学院学报, 2015, 27(3): 58-64. DOI:10.3969/j.issn.1008-2956.2015.03.011 |
[9] |
WU Y, WANG T, XING M, et al. Recognition scheme of block cipher algorithm based on distribution characteristics of ciphertext randomness measure value[J]. Journal of Communications, 2015, 36(4): 147-155. (in Chinese) 吴杨, 王韬, 邢萌, 等. 基于密文随机性度量值分布特征的分组密码算法识别方案[J]. 通信学报, 2015, 36(4): 147-155. DOI:10.3969/j.issn.1001-2400.2015.04.024 |
[10] |
MELLO F L D, XEXEO J A M. Cryptographic algorithm identification using machine learning and massive processing[J]. IEEE Latin America Transactions, 2016, 14(11): 4585-4590. DOI:10.1109/TLA.2016.7795833 |
[11] |
TAN C, JI Q B. An approach to identifying cryptographic algorithm from ciphertext[C]//Proceedings of 2016 IEEE International Conference on Communication Software and Networks. Washington D.C., USA: IEEE Press, 2016: 19-23.
|
[12] |
BARBOSA F M, VIDAL A R S F, ALMEIDA H L S, et al. Machine learning applied to the recognition of cryptographic algorithms used for multimedia encryption[J]. Revista IEEE America Latina, 2017, 15(7): 1301-1305. DOI:10.1109/TLA.2017.7959350 |
[13] |
HUANG L T, ZHAO Z C, ZHAO Y Q. Hierarchical recognition scheme of cryptosystem based on random forest[J]. Journal of Computer, 2018, 41(2): 382-399. (in Chinese) 黄良韬, 赵志诚, 赵亚群. 基于随机森林的密码体制分层识别方案[J]. 计算机学报, 2018, 41(2): 382-399. |
[14] |
TAN C, DENG X Y, ZHANG L J. Identification of block ciphers under CBC mode[J]. International Congress of Information and Communication Technology, 2018, 131: 65-71. |
[15] |
ZHAO Z C, ZHAO Y Q, LIU F M. Recognition scheme of block cipher system based on randomness test[J]. Journal of Cryptography, 2019, 6(2): 177-190. (in Chinese) 赵志诚, 赵亚群, 刘凤梅. 基于随机性测试的分组密码体制识别方案[J]. 密码学报, 2019, 6(2): 177-190. |
[16] |
PUB F. DES Modes of Operation: FIPS PUB 81[R]. US Department of Commerce, National Bureau of Standards, 1980.
|
[17] |
MENEZES A J, OORSCHOT P C, VANSTONE S A. Handbook of applied cryptography[M]. [S. l. ]: CRC Press, 1996.
|
[18] |
LI H C. Research on cipher algorithm recognition based on ciphertext features[D]. Xi'an: Xidian University, 2018. 李洪超. 基于密文特征的密码算法识别研究[D]. 西安: 西安电子科技大学, 2018. |
[19] |
ZHAO Z C. Research on cryptographic system recognition based on machine learning[D]. Zhengzhou: Strategic Support Force Information Engineering University, 2018. 赵志诚. 基于机器学习的密码体制识别研究[D]. 郑州: 战略支援部队信息工程大学, 2018. |
[20] |
QUINLAN J R. Induction of decision trees[J]. Machine Learning, 1986, 1(1): 81-106. |