1、第 49卷 第 9期2023年 9月Computer Engineering 计算机工程基于 Transformer的 SM4算法工作模式识别池亚平1,2,岳梓岩1,林雨衡1(1.北京电子科技学院 网络空间安全系,北京 100070;2.中国科学院网络测评技术重点实验室,北京 100093)摘要:密码算法识别是开展密码设备监管、密码分析等工作的前提,在对现有密码算法识别方案进行总结和分析的基础上,利用 K近邻(KNN)算法和随机性检测工具分析 SM4分组密码算法不同工作模式下密文识别准确率低的原因。针对现有方案在 SM4算法多种工作模式密文混合场景下识别准确率低的现状,证明深度学习应用于 SM
2、4分组密码算法工作模式识别问题的可行性,提出一种基于 Transformer 的 SM4 算法工作模式密文识别方案。在ECB、CBC、CFB、OFB、CTR 工作模式下对文件进行批量加密,密文文件经过数据预处理形成密文数据集,然后输入 Transformer模型进行五分类识别。实验结果表明,SM4 算法 5 种工作模式在密文混合场景下识别准确率达到94.94%,证明所提方案可有效提升 SM4分组密码算法 5种工作模式在密文混合场景下的识别准确率。将密文数据集输入卷积神经网络、循环神经网络、ResNet进行对比实验,结果表明,相较于这 3种传统神经网络,基于自注意力机制的 Transformer
3、模型识别准确率分别提升 18.38、26.96、10.44个百分点。关键词:密码算法识别;SM4算法;工作模式;深度学习;Transformer模型开放科学(资源服务)标志码(OSID):中文引用格式:池亚平,岳梓岩,林雨衡.基于Transformer的SM4算法工作模式识别 J.计算机工程,2023,49(9):109-117.英文引用格式:CHI Y P,YUE Z Y,LIN Y H.Working mode recognition for SM4 algorithm based on Transformer J.Computer Engineering,2023,49(9):109-1
4、17.Working Mode Recognition for SM4 Algorithm Based on TransformerCHI Yaping1,2,YUE Ziyan1,LIN Yuheng1(1.Department of Cyberspace Security,Beijing Electronics Science and Technology Institute,Beijing 100070,China;2.Key Laboratory of Network Assessment Technology,Chinese Academy of Sciences,Beijing 1
5、00093,China)【Abstract】Cipher algorithm recognition is a prerequisite for cryptanalysis and supervision of cryptographic equipment.Based on the summary and analyses of existing cipher algorithm recognition schemes,this study uses the K-Nearest Neighbor(KNN)algorithm and a randomness detection tool to
6、 analyze the reason for the low recognition accuracy of ciphertext in different working modes of the SM4 block cipher algorithm.To address the low recognition accuracy of correct recognition in the existing ciphertext mixed scenario scheme in multiple working modes of the SM4 block cipher algorithm,
7、the study verifies the feasibility of applying deep learning to the working mode recognition problem of the SM4 block cipher algorithm,thereby proposing a recognition scheme based on the Transformer model.The recognition scheme encrypts files in batches in Electronic CodeBook(ECB),Cipher Block Chain
8、ing(CBC),Cipher FeedBack(CFB),Output FeedBack(OFB),and CounTeR(CTR)working modes.Subsequently,the ciphertext files undergo data preprocessing to form a ciphertext dataset which is then input into the Transformer model for five-category recognition.After analyzing and comparing this experiment with s
9、imilar work in the existing literature,the recognition accuracy of the SM4 algorithm reaches 94.94%for the ciphertext-mixed scenario of five working modes,demonstrating that the scheme can effectively improve recognition accuracy.Finally,the ciphertext dataset is input into the three traditional neu
10、ral network structures,Convolutional Neural Network(CNN),Recurrent Neural Network(RNN),and ResNet,for comparative experiments.The experimental results show that,compared with these three traditional neural network,the recognition accuracy of the self-attention-based Transformer model increased by 18
11、.38,26.96,and 10.44 percentage points,respectively.【Key words】cipher algorithm recognition;SM4 algorithm;working mode;deep learning;Transformer modelDOI:10.19678/j.issn.1000-3428.0065750基金项目:国家重点研发计划(2018YFB1004100)。作者简介:池亚平(1969),女,教授,主研方向为虚拟化安全、可信计算、加密技术、软件定义网络;岳梓岩、林雨衡,硕士研究生。收稿日期:2022-09-14 修回日期:2
12、022-11-14 Email:网络空间安全文章编号:1000-3428(2023)09-0109-09 文献标志码:A 中图分类号:TP3932023年 9月 15日Computer Engineering 计算机工程0概述 为了实现关键技术安全自主可控,国产加密算法不断发展更新,SM1、SM2、SM3、SM4及 SM9算法分别在安全性、加密效率方面对标 AES、SHA256、RSA 等国际加密算法,目前被广泛应用于国家信息安全领域。在对密码系统进行监控时,多数情况下研究者只能获得通信传输中的密文,往往不能确定密码系统所采用的密码算法,导致密码分析和密码设备监控工作困难重重1。在国密算法密码
13、应用中,对应用国密算法的密码设备的数据流进行密码算法识别和分析,及时发现信息系统在数据通信过程中是否采用规范的国密算法及规范的密码工作模式,可有效加强密码设备监管、检测和主动抵御恶意入侵。此外,信息安全中的攻与防是相辅相成的,密码算法的识别研究是密码分析领域的重要分支之一,但密码算法识别本身就是变相地对密码算法进行攻击。而从密码算法的角度来看,对抗现有技术对密码算法的识别,也为密码算法设计实现带来了新的思考与考验,由此可见,密码算法识别的研究意义重大。密码算法识别目前有两方面的研究:一方面是利用逆向分析工程对加密算法进行代码层面的分析2,另一方面是在唯密文条件下对密码算法进行识别,本文研究仅针
14、对后者展开。本文对 SM4 算法 5 种工作模式下的密文特征进行可视化分析,利用实验证明深度学习在密码算法识别研究中的可行性,提出一种基于 Transformer模型的 SM4 算法工作模式识别分类方案,并通过对比 其 他 文 献 中 的 相 关 工 作,验 证 所 提 方 案 的 有效性。1相关工作 从公开文献来看,密码算法识别研究并不多见,现有方案主要针对分组密码展开研究,也取得了一些进展。在密码算法识别任务中,可利用统计检测发现不同分组密码密文的随机程度存在的差异,从而判断密文所属的密码算法。随机性测试方法多达上百种,其中美国商务部国家标准技术协会(NIST)公布的 2010 版 SP8
15、00-22 标准中的 15 种随机性检测算法(以下简称 NIST随机性检测)3最为典型。文献 4 指出除随机性相关统计检测外,还有一类统计检测方法与分组密码的分组长度、密码结构等有关,因此基于分组长度,把分组密码看作是一个随机的多输出布尔函数,将 256 个密文分组进行异或操作,统计其结果的汉明重量,通过期望值计算判断是否服从二项分布。将此方法用于 Rinjdael、Camellia 和 SM4 算法,结果表明,这 3 种算法分别从第 4 轮、第 5 轮 和 第 7 轮 开 始 呈 现 出 良 好 的 统 计性能。文献 5 根据密码学常识,提出针对密码算法识别任务中的分层思想,即先对密文按照密
16、码体制类别进行分类识别,其中包含古典密码、序列密码、公钥密码、分组密码等,再识别具体密码体制,根据此思想设计双层密码算法识别方案并基于随机森林算法进行实验,结果表明,相比传统单层识别方案,该方案准确率提升了 20%左右。文献 6 完善了密码算法识别任务框架,通过对识别分类问题中的主要难点做进一步分析,对特征提取过程的各环节进行形式化定义,并以此为基准,探究包含随机性检测、统计学中的熵、最大熵、基尼系数等在内的不同特征的属性对识别分类准确率的影响,引入集成学习技术,采用多个基学习器集成对密文进行分类识别,防止选择单一分类器而导致分类模型泛化性能不足。实验结果表明,将熵作为特征提取函数的特征表现更
17、稳定,且较文献 5 方案识别分类准确率有较大提升。在密码算法识别研究工作中,特别是在基于传统机器学习的方案中,将通过分析密文样本特征,从而识别其密码算法视作文本分类任务,各类密文特征工程的构建过程十分复杂,如随机性特征、熵相关特征等,还需要人工分析筛选有意义的分类特征。深度学习是机器学习和人工智能研究领域的延伸,利用深度学习技术,学者们已在很多领域取得重要成就。卷积神经网络(Convolutional Neural Network,CNN)被证明可以高效提取目标样本特征,被广泛应用于图像识别7等领域,并取得了显著成果。文本分类是许多数据分析应用的基础,在这一领域,相较于传统机器学习,深度学习往
18、往表现 更 佳。文 献8通 过 构 建 神 经 网 络,实 现 了MARS、RC6、Rinjdael、Serpent、Twofish 等 5 类密码算法在 ECB 模式下的正确分类,得出在密码生成的底层数学运算过程中存在固有的特性,这些特性在密文中留下了痕迹,因此,可以通过神经网络提取深层次特征来实现分类。文献 9 分别对文本、语音、图 片 形 式 的 明 文 文 件 进 行 加 密,后 对 密 文 按8 bit分块,采用累计求和的方法将分块后的密文映射为二维的向量矩阵,并将得到的二维向量通过固定卷积核的卷积网络,提取密文的卷积特征向量,最后利用随机森林模型对密文进行分类,结果表明,该方法对
19、AES、3DES、Blowfish 的识别准确率平均达到 83%。文献 10 在构造密文特征时选择基于 NIST 随机性测试,首先对密文按固定大小分块,然后对每一分块进行包括频率检验、块内频数检验、非重叠板块检验、游程检验、近似熵检验等 5 种随机性测试,得到每块密文对应的测试结果,并将每一个密文分块的随机性测试结果作为密文的二维特征向量,采用 CNN 和循环神经网络(Recurrent Neural Network,RNN)模型对密文特征进行训练,110第 49卷 第 9期池亚平,岳梓岩,林雨衡:基于 Transformer的 SM4算法工作模式识别获得了较高的识别准确率。利用深度学习技术对
20、密文进行特征提取,挖掘密文内部特征并实现分类是密码算法识别方面新的研究热点。此外,在针对分组密码的公开发表的文献中,很少对其工作模式进行分析,多数文献都默认使用分组密码 ECB模式进行加密获得密文样本。分组密码工作模式可以使算法安全性、加密效率等方面得到增强,不同的应用场景需要采用不同的工作模式。文献 11 定义了分组密码 5 种常见的工作模式,包括电码本(Electronic CodeBook,ECB)、密文分组链接(Cipher Block Chaining,CBC)、密文反馈(Cipher FeedBack,CFB)、输出反馈(Output FeedBack,OFB)、计数器模式(Cou
21、nTeR,CTR)。这 5类工作模式基本情况见表 1。对分组密码的加密模式进行识别,可以实现对密码信息系统的监管。文献 12 针对 SM4 算法的4种模式,对其加密后的密文序列从统计学与信息熵角度提取特征,而后利用决策树分类算法进行二分类识别与四分类识别,结果表明,该方法在二分类问题中表现稳定,准确率高达 90%以上,而在四分类问题中,区分率在 25%左右,与随机猜测准确率相近,识别准确率还有提升空间。通过上述分析可以看出,现有基于机器学习的SM4 算法工作模式识别准确率不高,深度学习方案尚未得到深入研究,对此,本文主要进行如下工作:1)参考现有方案中利用随机性检测工具提取密文随机性特征值的思
22、想,结合传统机器学习模型进行实验分析,发现现有密码算法识别方案应用于SM4算法工作模式分类问题中的不足。2)通过逐位累加和方式对密文数据集进行处理,输入深度学习模型,分析密文数据处理方式与深度学习方案应用于 SM4算法工作模式分类问题的可行性。3)设计一种基于 Transformer 的 SM4 算法工作模式识别方案,并增加 SM4-ECB 模式下的密文样本,丰富 SM4 算法密文样本。通过对比不同神经网络模型及文献 5 实验结果,验证该模型应用于 SM4算法工作模式分类问题的高效性。2本文工作 2.1基于随机性检测的 SM4 算法工作模式分类实验分析在现有方案中应用广泛的随机性检测方法,原理
23、是随机性检测发现不同密码算法加密所得密文的随机程度存在差异,从而判断密文所属的密码算法,另外也可通过随机性检测值分布,比较不同加密方式的加密效果。本节通过将随机性检测方法应用于SM4 算法工作模式分类问题,利用实验分析现有方案应用于该问题存在的不足之处。2.1.1实验分析涉及算法及工具介绍实 验 分 析 涉 及 的 算 法 为 K 近 邻(K-Nearest Neighbor,KNN)算法。KNN13是一种基于监督学习的分类算法,基本思想是给定一组已正确分类的数据集作为训练集,模型将测试集特征与训练集特征进行对比,计算训练数据和测试数据之间的距离,并比较待测数据与其他数据之间的距离,如果距离大
24、多数样本较近,且这部分数据属于同一类别,则判定待测数据属于该类别。文献 6 中所提出的密码体制识别方案使用该模型进行密码算法分类,本文利用 KNN 分类模型对SM4算法5种工作模式进行区分。实验分析涉及的工具为 SP800-22随机性测试套件。目前在密码测评中最常使用的随机性测试工具是 美 国 国 家 标 准 与 技 术 研 究 院 2010 年 修 订 的表 1分组密码算法的 5种工作模式 Table 1Five working modes of block cipher algorithm工作模式ECBCBCCFBOFBCTR加密机制用相同的密钥分别对明文分组独立加密加密算法的输入是上一个
25、密文组和下一个明文组的异或一次处理 s 位,上一块密文作为加密算法的输入,产生的伪随机数输出与明文异或作为下一单元的密文与 CFB类似,只是加密算法的输入是上一次加密的输出,且使用整个分组伪随机码块与输入的明文进行异或运算后产生密文输出典型应用单个数据的安全传输面向分组的通用传输、认证面向分组的通用传输、认证噪声信道上的数据流的传输,如卫星通信ATM 网络安全和 IPSec应用优点有利于并行计算;不会传递误差安全性高,适合传输长度长的报文隐藏了明文模式;分组密码转化为流模式;可以及时加密传送小于分组的数据隐藏了明文模式;分组密码转化为流模式;可以及时加密传送小于分组的数据快速流式加密;支持高效
26、并行计算缺点不能隐藏明文的模式;可能对明文进行主动攻击不利于并行计算;误差传递;需要初始化向量不利于并行计算;误差传递;唯一的 IV不利于并行计算;可能对明文主动攻击;误差传递不适合用于数据完整性认证1112023年 9月 15日Computer Engineering 计算机工程SP800-22 Rev-1a 标准,该标准包含 15 个测度指标,用于测试密码算法和伪随机数生成算法所产生序列数据的随机性。文献 14 对这 15 个测度指标进行了详细说明,此处不再赘述。需要说明的是,在对输入序列进行 15个随机性检测值计算时,部分检测值有最短长度要求,如表 2所示。2.1.2实验分析方案密码算法
27、识别分类工作中使用最为广泛的方法是基于 NIST随机性检测标准进行随机性特征提取,选择出对密文文件分类具有价值的随机性测度特征,实现对密码算法的识别分类。为探究随机性检测特征对 SM4 算法工作模式分类问题的有效性,保证将NIST随机性检测中 15项检测值统计完整,设置明文文件为 256 000 kb的文本文件,使用 GMSSL 国密算法模块15调用 SM4算法 5种工作模式对该明文文件进 行 加 密。加 密 后 得 到 的 5 份 密 文 文 件 均 为256 000 kb,将 5 份密文文件分别分割为 1 000 份,每份 256 kb,符 合 所 有 测 试 指 标 长 度 要 求。借
28、助SP800-22随机性测试套件对5 000份密文文件进行检测值提取,流程如图1所示,实验配置如表3所示。2.1.3实验分析结果将提取出的 15 维特征向量输入 KNN 模型进行训练并计算在测试集上的识别准确率,5种模式两两识别结果与混合五分类识别结果如表 4所示。表 2部分检测值长度要求 Table 2Length requirements of partial detection values 单位:bit检测方法二元矩阵秩检验重叠模块匹配检验Maurer通用统计检验线性复杂度检验要求序列最短长度37 8881 028 016387 8401 000 000图 1特征提取流程图Fig.1F
29、lowchart of feature extraction表 4识别准确率 Table 4Recognition accuracy%工作模式ECB vs CBCECB vs CFBECB vs OFBECB vs CTRCBC vs CFBCBC vs OFBCBC vs CTRCFB vs OFBCFB vs CTROFB vs CTR5种模式混合识别准确率99.4499.6599.5399.3151.4249.6450.1250.1651.2151.4134.56表 3实验环境配置 Table 3Experimental environment configuration名称操作系统CP
30、UGPU内存编程语言深度学习框架配置参数Windows 10Intel CoreTM i5-8300H CPU2.30 GHzNVIDIA GeForce RTX 1050ti8 GBPython3.8PyTorch 1.7.1112第 49卷 第 9期池亚平,岳梓岩,林雨衡:基于 Transformer的 SM4算法工作模式识别此外,以 SM4算法为例,本文选取 15项检测值中的码元频数统计检测值、游程频数统计检测值、块内频数统计检测值进行统计分布,这 3项检测值在分组密码识别中可作为显著特征值16,其中,码元频数统计检测值统计密文序列中 0比特和 1比特的比例,游程频数统计检测值统计密文序
31、列中所包含的不同长度游程的数量,块内频数统计检测值统计固定大小的密文序列中特定元素整体的比例。3项检测值的分布结果如图 2图 4所示,其中,横坐标为随机性检测特征值,纵坐标为对应密文文件数量。图 4块内频数统计检测值分布Fig.4The distribution of intra-block frequency statistical detection values图 2码元频数统计检测值分布Fig.2The distribution of symbol frequency statistics detection values图 3游程频数统计检测值分布Fig.3The distribut
32、ion of run-length frequency statistical detection values1132023年 9月 15日Computer Engineering 计算机工程从图 2中可以看出:对于 ECB 模式,密文文件数量随着特征值增大而减少,且在特征值 0.00.2区间内密文文件数量较多;对于 CBC、CFB 模式,各特征值对应的密文文件数量分布较为平均;对于 OFB模式,个别特征值对应的密文文件数量远大于平均值。从图 3 中可以看出:对于 ECB 模式,特征值分布不均匀,在特征值 0.00.2 区间内密文文件数量较多,在特征值 0.5 附近的密文文件数量明显少于两侧
33、密文文件数量;对于另外 4 种工作模式,各特征值对应的密文文件数量分布较为平均,其中 CBC模式与 OFB 模式在特征值 0.5 处的密文文件数量较多。从图 4中可以看出:对于 ECB 模式,特征值分布不均匀,在特征值 0.00.2区间内的密文文件数量较多,在特征值 0.5附近的密文文件数量明显少于两侧密文文件数量;对于另外 4种模式,特征值分布基本相同,无明显特征。通过基于随机性检测的 SM4算法工作模式分类实验结果可以明显发现,ECB 模式下的密文与其他模式下的密文进行两两识别时,识别准确率较高。从图 2图 4 的随机性检测值分布来看,ECB 模式下密文随机性表现较差,故被认为具有一定规律
34、性,其他工作模式下的密文随机性都表现良好,检测值分布均匀,可认为加密效果良好。当其他模式下密文之间两两识别或 5种模式混合识别时,其余 4种模式在随机性检测值上分布均匀,造成了识别准确率与随机猜测准确率持平,因此利用现有方案中应用广泛的随机性检测特征难以对 SM4 算法 ECB 模式之外的其他工作模式进行高效识别。2.2深度学习方案的可行性实验证明文献 17 将卷积神经网络应用于文本分类任务之中,并取得了较好的实验结果。本节通过引入深度学习技术,利用二维卷积神经网络对 SM4 算法工作模式进行分类,证明深度学习方案的可行性以及提出的数据处理方式的有效性。2.2.1实验方案本文针对 SM4密码算
35、法 5种工作模式混合的情况,提出一种基于深度学习的分类方案。首先为验证深度学习方案应用于 SM4算法工作模式分类问题的可行性,将密文视为序列型文本,将其加密模式作为标签,利用卷积神经网络模型提取密文内部特征,实现对密文所属加密模式较高的分类准确率。由于传统的一维卷积神经网络在相同卷积核情况下获得的感受野较少,在训练过程中容易出现过拟合现象18,因此本文采用二维卷积神经网络对密文特征图进行特征提取及分类。本文采用 4 000 kb 大小的文本文件进行实验,利用 GMSSL 国密算法模块调用 SM4 算法 5 种工作模式对该文本文件进行加密。加密后得到的 5份密文文件大小均为 4 000 kb,将
36、 5份密文文件分别分割为 1 000 份,每份 4 kb。对于每份密文,以十六进制读取密文文件,经归一化形成 4 096 个像素值,而后转化为 6464 像素的灰度图,用于二维卷积神经网络输入,该数据集称为数据集 A。数据集 A 获取流程如图 5 所示。训练集、测试集分布及神经网络结构分布见表 5和表 6。图 5数据集 A获取流程图Fig.5Flowchart of dataset A acquisition表 5数据集分布 Table 5The distribution of dataset单位:个类别ECB模式CBC模式CFB模式OFB模式CTR模式训练集数量800800800800800
37、测试集数量200200200200200表 6神经网络结构 Table 6Neural network structure层次Layer 1Layer 2Layer 3Layer 4FC输出维度(16,62,62)(32,30,30)(64,28,28)(128,13,13)(128,5)模型参数Conv2d(33,16),BatchNorn2d(16),ReLUConv2d(33,32),BatchNorn2d(32),ReLU,MaxPooling2d(22,stride=2)Conv2d(33,64),BatchNorn2d(64),ReLUConv2d(33,128),BatchNor
38、n2d(128),ReLU,MaxPooling2d(22,stride=2)Linear(12 632,1 024),ReLU,Linear(1 024,128),ReLU,Linear(128,5)114第 49卷 第 9期池亚平,岳梓岩,林雨衡:基于 Transformer的 SM4算法工作模式识别文献 6 指出密文组织形式对密码算法识别准确率有较大影响。因此,本文利用 Python 编写数据处理工具,实现将密文以十六进制读取并转换为二进制比特串,然后按照指定位数进行累加,将结果形成相应大小的灰度图用于神经网络输入,该数据集称为数据集 B。数据集 B 获取流程如图 6 所示。本文将原始
39、4 kb(4 096 Byte)密文按 32 bit 进行累加,后转换为 3232像素的样本灰度图输入二维卷积神经网络进行识别分类,数据集分布与表 4保持一致,在此基础上计算识别准确率。2.2.2实验结果分析如表 7 所示,通过改变训练迭代次数,该二维卷积神经网络模型在训练迭代 100 轮过程中出现最高识别准确率 53.64%,显著优于随机猜测准确率 25%,从总体结果可以看出,将原始密文转换为特征灰度图后,采用深度学习的方法可以更好地提升在 SM4算法 5种工作模式下的密文五分类问题中的识别准确率,证明利用深度学习可以从密文中获取细粒度特征,有效提升识别准确率。表 7CNN识别结果(数据集
40、A)Table 7The recognition result of CNN(dataset A)训练轮数/轮20406080100识别准确率/%41.9244.5445.6953.6453.44将数据集 B 输入该二维卷积神经网络中,实验结果如表 8所示。通过对比表 7与表 8可以看出,将数据集 A 和数据集 B 分别输入 2-CNN 中,后者的识别准确率较前者有显著提升,证明了该密文数据处理方式的有效性。表 8CNN识别结果(数据集 B)Table 8The recognition results of CNN(dataset B)训练轮数/轮20406080100识别准确率/%52.11
41、59.4566.6575.4384.502.3基于Transformer的SM4算法工作模式识别方案第 2.2 节证明了利用深度学习可以有效提升SM4算法工作模式识别准确率。在自然语言处理任务中,Google提出的 Transformer模型19被广泛应用并取得了很好的效果,该模型与传统神经网络模型结构不同,其包含的自注意力机制可兼顾上下文特征与局部细微特征,避免文本上下文语义特征20的缺失,具有出色的序列细粒度特征提取能力。因此,本文提出一种基于 Transformer 的 SM4 算法工作模式识别方案。2.3.1Transformer模型Transformer 模型整个网络结构由注意力机制
42、组成,把输入的一张图片分成 N 个无重叠固定大小的 Patch,然后将每个 Patch 全部拉成一维向量,合并得到 N 维矩阵。使用 Linear Projection 规整矩阵长 度 和 位 置 信 息,再 融 入 全 局 信 息,将 它 们 输 入Transformer 编码器进行全局注意力计算和特征提取,通过 MLP 分类后,输出多分类结果。Transformer 模型的计算复杂度主要由多头注意力模块决定,这也是模型的突出特点。注意力计算公式为 Softmax(QKT)V,当序列长度为 N、输入维度为 H 时,由于每个 token 都需要与所有 token 计算相似性,因此 QKT这项做
43、矩阵乘的复杂度为 NHHN,即平方复杂度 O(N2)。2.3.2识别方案基于 Transformer 的 SM4 算法工作模式识别方案流程如图 7所示,由于数据集 B被证明用于神经网络输入后分类效果更好,因此将数据集 B 输入该Transformer模型中分类并计算准确率。图 6数据集 B获取流程图Fig.6Flowchart of dataset B acquisition1152023年 9月 15日Computer Engineering 计算机工程2.3.3实验结果分析为验证本文将 Transformer模型应用于该问题的有效性,将数据集 B 分别输入循环神经网络、残差神经网络进行分类
44、,并与文献 12 中实验结果进行对比。Transformer 模型识别准确率如表 9 所示,不同神 经 网 络 的 识 别 准 确 率 随 着 训 练 轮 数 的 变 化 曲线如图 8 所示,其中,2-CNN、RNN、ResNet 均使用SGD(Stochastic Gradient Descent)作 为 优 化 器,Transformer 模 型 使 用 Adam(Adaptive Moment Estimation)作为优化器。可以看出,Transformer 模型经过较少轮数的模型训练,就可以达到非常高的识别准确率。图 8不同神经网络模型识别准确率Fig.8Recognition ac
45、curacy of different neural network models不同神经网络模型的识别准确率如表 10 所示,一方面证明了将密文所属加密模式分类问题视为文本分类任务进行处理,而后利用深度学习模型自主挖掘密文特征可以有效对密文所属加密模式进行区分,另一方面也证明了 Transformer模型在此类问题上的优势。3结束语 本文通过随机性检测值结合 KNN 算法实验分析,指出现有密码算法识别方案应用于 SM4 算法工作模式识别工作的不足,证明深度学习技术解决该问 题 的 可 行 性。在 此 基 础 上,提 出 一 种 基 于Transformer模型的 SM4 算法工作模式识别方案
46、,并通过对比不同神经网络模型和当前工作的最新文献实验结果,证明该方案的有效性。现有密码算法识别方案大多基于传统机器学习或构建复杂的密文特征工程,耗时费力。本文方案避免了构建复杂特征工程,且样本文件大小均为 4 kb,其引入深度学习技术,较现有其他密码算法识别方案中使用的密文样本文件显著减小。未来可探索更新颖高效的密文处理方式和神经网 络 结 构,不 断 提 升 模 型 泛 化 性,对 小 众 密 码 算法21-22进行识别。由于不同算法结构之间存在密文特征分布上的差异性23-24,因此可针对特定结构算法展开进一步识别与研究。另外,密文在现实中被包裹在各类网络协议数据包中,因此,还需要结合加密流
47、量分析25领域相关内容进行研究。表 9Transformer识别结果 Table 9The recognition result of Transformer训练轮数/轮102030识别准确率/%70.4582.7489.59训练轮数/轮404550识别准确率/%93.1994.6594.94图 7基于 Transformer分类方案流程图Fig.7Flowchart of classification scheme based on Transformer表 10不同模型实验结果对比 Table 10Comparison of experimental results by differen
48、t models%模型文献12决策树2-CNNRNNResNetTransformer样本内容SM4(CBC,CFB,OFB,CTR)SM4(ECB,CBC,CFB,OFB,CTR)SM4(ECB,CBC,CFB,OFB,CTR)SM4(ECB,CBC,CFB,OFB,CTR)SM4(ECB,CBC,CFB,OFB,CTR)识别准确率25.4076.5667.9884.5094.94116第 49卷 第 9期池亚平,岳梓岩,林雨衡:基于 Transformer的 SM4算法工作模式识别参考文献 1 丁伟,谈程.一种基于密文分析的密码识别技术 J.通信技术,2016,49(10):1382-13
49、86.DING W,TAN C.An approach of identifying cipher based on ciphertext analysis J.Communications Technology,2016,49(10):1382-1386.(in Chinese)2 李继中,舒辉.密码算法识别技术研究 J.信息网络安全,2011(11):46-49.LI J Z,SHU H.The research of crypto algorithm recognition technology J.Netinfo Security,2011(11):46-49.(in Chinese)
50、3 Information Technology Laboratory.A statistical test suite for random and pseudorandom number generators for cryptographic applications:SP800-22 Rev.1a2010 S.Washington D.C.,USA:National Institute of Standards and Technology,2010.4 陈华,冯登国,范丽敏.一种关于分组密码的新的统计检测方法 J.计算机学报,2009,32(4):595-601.CHEN H,FEN