ImageVerifierCode 换一换
格式:PDF , 页数:14 ,大小:2.01MB ,
资源ID:649317      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/649317.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于深度学习的SM4密码算法新型区分器.pdf)为本站上传会员【自信****多点】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于深度学习的SM4密码算法新型区分器.pdf

1、2023 年 7 月 Journal on Communications July 2023 第 44 卷第 7 期 通 信 学 报 Vol.44 No.7基于深度学习的 SM4 密码算法新型区分器 王慧娇,张鑫,韦永壮,李灵琛(桂林电子科技大学计算机与信息安全学院,广西 桂林 541004)摘 要:针对大状态分组密码区分器的数据复杂度、时间复杂度和存储复杂度较高的问题,提出了一种建立长分组和长密钥分组密码算法深度学习区分器模型的方法,构建了 SM4 算法的神经区分器。借鉴密文差分能够提升区分器性能的思想,将密文对之间的部分差异信息作为训练数据的一部分,设计了神经区分器新数据输入结构,采用残差

2、神经网络模型建立神经区分器,对长分组的训练数据集进行数据预处理。同时,针对所构建的区分器存在高特异度和低敏感度的现象,提出了一种模型再学习的改进策略。实验结果表明,基于深度学习的区分器模型获得了 9 轮 SM4 神经区分器,其 49 轮区分器的准确率最高可达 100%、76.14%、65.20%、59.28%、55.89%和53.73%,所获得的差分神经区分器的复杂度和准确率远优于传统差分区分器,也是目前已知针对 SM4 密码算法最好的神经区分器,证明了深度学习方法在长分组密码安全性分析上的有效性和可行性。关键词:分组密码;深度学习;神经区分器;SM4 算法;复杂度 中图分类号:TN918 文

3、献标志码:A DOI:10.11959/j.issn.1000436x.2023141 Novel distinguisher for SM4 cipher algorithm based on deep learning WANG Huijiao,ZHANG Xin,WEI Yongzhuang,LI Lingchen School of Computer Science and Information Security,Guilin University of Electronic Technology,Guilin 541004,China Abstract:A method was p

4、roposed to construct a deep learning distinguisher model for large state block ciphers with large-block and long-key in view of the problem of high data complexity,time complexity and storage complexity of large state block cipher distinguishers,and the neural distinguishers were constructed for SM4

5、 algorithm.Drawing inspi-ration from the idea that ciphertext difference could improve the performance of distinguishers,a new input data format for neural distinguisher was designed by using partial difference information between ciphertext pairs as part of the train-ing data.The residual neural ne

6、twork model was used to construct the neural distinguisher.The training dataset for large blocks was preprocessed.Additionally,an improved strategy for model relearning was proposed to address the high spe-cificity and low sensitivity of the constructed distinguisher.Experimental results show that t

7、he proposed deep learning model for SM4 can achieve 9 rounds neural distinguisher.The accuracy of 49 rounds distinguishers can reach up to 100%,76.14%,65.20%,59.28%,55.89%and 53.73%respectively.The complexity and accuracy of the constructed dif-ferential neural distinguisher are significantly better

8、 than those of traditional differential distinguishers,and it is currently the best neural distinguisher for the block cipher SM4 to our knowledge.It also proves that the deep learning method is effective and feasible in the security analysis of block cipher of large block.Keywords:block cipher,deep

9、 learning,neural distinguisher,SM4 algorithm,complexity 收稿日期:20230419;修回日期:20230713 通信作者:韦永壮,walker_ 基金项目:国家自然科学基金资助项目(No.62162016);广西自然科学基金资助项目(No.2019GXNSFGA245004);广西科技重大专项基金资助项目(桂科 AA22068072);桂林电子科技大学研究生教育创新计划基金资助项目(No.2022YCXS088)Foundation Items:The National Natural Science Foundation of Chin

10、a(No.62162016),The Natural Science Foundation of Guangxi(No.2019GXNSFGA245004),The Science and Technology Major Project of Guangxi(No.AA22068072),Innovation Project of GUETGraduate Education(No.2022YCXS088)172 通 信 学 报 第 44 卷 0 引言 当前各种智慧系统1、物联网系统2以及大数据系统3蓬勃发展,数据和信息已成为这些系统的基础。在开放的网络环境下,信息在存储与传播中面临着严峻的

11、安全问题,而对数据加密之后再进行传输已经成为保密通信的基本模式。分组密码以其加解密结构一致、效率高以及软硬件实现优势,现已成为网络通信中保证数据机密性的核心算法。在分组密码设计以及后续的应用中,对其安全性进行评估是必不可少的环节。分组密码必须能够抵抗已知的密码分析才能获得强大的安全性。目前,常见的分组密码安全性分析方法主要有差分密码分析4、线性密码分析5、积分密码分析6、零相关线性密码分析7等。其中,差分密码分析是迄今为止攻击分组密码最有效的工具之一,由 Biham 等4提出。通过研究加密过程中特定明文差分的概率传播特性,利用算法迭代过程中差分统计的不平衡分布,将密文与随机置换区分开,再利用统

12、计量进行密钥恢复,其中寻找一个有效的区分器是密钥恢复的关键。深度学习(DL,deep learning)方法在各个领域(如图像处理8、自然语言处理9、辅助医疗10等)都取得了不俗的成绩。在密码学领域中引入深度学习方法也一直是研究人员的关注点。文献11评估了深度学习方法和密码学之间的各种关系,并提出了在密码分析中使用深度学习的一些可能研究方向。文献12将深度学习应用于黑箱密码分析,提出了针对 SPECK32/64 的改进型差分攻击,开创了深度神经网络辅助密码分析的先例。文献13提出了一种使用深度学习模型来扩展经典区分器的框架,并在 SPECK、SIMON 和 GIFT64 上实现。文献14采用多

13、层感知器(MLP,multilayer perceptron)和卷积神经网络(CNN,convolutional neural net-work)构建 TEA 和 RAIDEN 密码的神经区分器。文献15构建了 PRESENT 密码 36 轮的神经区分器。文献16使用神经网络给出 GIMLI、ASCON、KNOT 和 Chaskey 这 4 种密码的几种区分方法,同时证明每种区分器都具有较低的复杂度。文献17提出了 DES、Chaskey 和 PRESENT 的神经区分器,使用具有相同差分的多个密文对作为输入,增加了提取衍生特征的模块,以提高区分器的准确性。文献18基于 Inception 神

14、经网络提出了构建神经区分器的方法,得到了 SIMECK32/64 的 912 轮区分器。SM4 分组密码是中国无线局域网认证和隐私基础设施国家标准19。文献20提出了 SM4 的一种5 轮迭代差分特征,并对 16 轮 SM4 进行矩形攻击,同时也证明了 SM4 有 12 个 18 轮的差分特征。文献21阐明了 6 轮、7 轮和 12 轮 SM4 中活跃 S 盒的最小数量,并给出了 19 轮 SM4 的约 214个差分特征,最终通过 2118个选择明文对 23 轮 SM4 进行攻击。文献22基于混合整数线性规划(MILP,mixed integer linear programming)的自动化

15、搜索方法,研究了 8 bit S 盒 MILP 建模问题。文献23提出了一种新型的针对 SM4 算法的故障攻击,该攻击通过在加密算法后 4 轮中注入故障从而诱导缩减加密算法的迭代轮数,利用所得到的错误密文即可恢复出完整轮密钥信息。表 1 列出了 SM4 的部分现有攻击方式和攻击轮数。表 1 SM4 的部分现有攻击方式和攻击轮数 攻击方式 攻击轮数 文献 矩形攻击 16 文献20 差分分析 22 文献20 差分分析 23 文献21 差分分析 19 文献22 故障注入攻击 32 文献23 综上所述,将深度学习方法运用于分组密码的区分器构建中,对密码区分器构建过程采用较一致的方法进行建模,不仅降低了

16、区分器构建的复杂度,提升了密码分析的效率,也能为分组密码安全性分析提供新的理论和技术手段。本文基于深度学习工具,采用差分密码分析的攻击思想,即发现分组密码在迭代过程中存在的差分不均匀性,提出了构建分组密码 SM4 的神经区分器模型的方法。首先构建了 SM4 的 8 轮神经区分器;其次受文献24的启发,对神经区分器的输入结构进行了重新设计,在不增加数据格式长度的同时提高了区分器的准确率并将区分器的轮数提高至9 轮。与文献22中使用 MILP 建模搜索的差分特征相比,本文构建的神经区分器在复杂度和准确率方面具有明显优势;与文献25相比,本文构建的 SM4 算法的神经区分器具有较高的轮数和准确率,并

17、针对构建的区分器提出了一种模型再学习的改进策略,实验验证了该改进策略对模型的精度和敏感度有一定提升。第 7 期 王慧娇等:基于深度学习的 SM4 密码算法新型区分器 173 1 预备知识 1.1 神经网络 深度学习作为机器学习的一个分支,通过使用深度神经网络主要应用于数据分类任务中。设x为数据集n中的一个样本,n 为数据域的维度,0,1,s?为类别标签域,分类任务的主要目标是对n中的样本 x,根据中的标签进行分类,记为n。神经网络的性能主要由误差函数来判断,常见的误差函数采用预测数据与真实数据的欧氏距离来衡量,定义为 2Er()()()xG xF x(1)其中,G 为真实分布,F 为预测分布。

18、为了量化网络模型对所有训练数据的误差,需要对整个训练数据集的误差函数求平均值,即损失函数Loss,定义为 11LossEr()LiixL(2)其中,L为训练样本的个数。神经网络的目标是最小化损失函数Loss。Loss函数由一系列网络中的可训练参数w和b参数化,其中,w为网络的权重,b为偏置。神经网络的训练阶段为一个数值优化问题,使用一种迭代方法将Loss(,)w b最小化,该方法也称为网络的优化器,其中最典型的方法是梯度下降法,表示为 (1)()()(1)()()Loss()Loss()ttttttbbbwww (3)其中,为学习率,是控制训练过程速度的超参数。训练数据通过正向传播得到神经网络

19、的预测值,然后基于预测值和真实值的差距通过反向传播更新训练参数的取值,从而达到最小化损失函数Loss。卷积神经网络是深度学习中的一个重要范式,其主要操作为卷积运算,网络的基本构件有卷积层、非线性层、池化层和全连接层26。卷积层旨在学习输入的特征表示,将正向传播的输出应用于损失函数并通过反向传播更新权重参数。通过多次迭代稳定损失后,训练过程结束。设lkw和lkb分别为第l层第k个过滤器的权重向量和偏置,,li jx为第l层(,)i j处的输入切片,则卷积神经网络第l层在位置(,)i j处的第k个特征值,li j kz为 T,lllli j kki jkzbwx(4)非线性层的主要目的是将激活函数

20、引入卷积神经网络的非线性层,提取非线性特性。典型的激活函数为Sigmoid、Tanh以及ReLU。设激活函数为()f,将卷积特征值,li j kz经过激活函数后的输出定义为 ,()lli j ki j ktf z(5)池化层通常位于2个卷积层之间,通过缩小结果特征值以获得平移不变性。全连接层位于网络的末端,用于执行分类任务。此外,卷积神经网络中可以使用一些功能层,例如,可以在卷积层之后应用批归一化(BN,batch normalization),以减少内部协变移位,这可以有效地防止梯度消失问题,并加快网络训练速度。残差网络(ResNet)是最具代表性的CNN之一,由He等27提出。ResNet

21、可以训练更深的CNN模型以实现更高的准确性。核心思想是在前一层和后一层之间建立“跳跃连接”,由一系列残差块组成,分为直接映射和残差两部分。残差块表示为 1()lllxxF x(6)其中,()lF x为残差部分,一般由2个或3个卷积运算组成;lx是直接映射部分。通过重新排列ReLU和BN的激活功能,可以设计出许多残差块变体。残差连接的思想是将输出表示为输入与输入的一个非线性变换的线性叠加。图1给出了残差连接结构。这种残差跳跃式的结构使某一层的输出可以直接跨过几层作为后面某一层的输入,其意义在于叠加多层网络而不降低模型的准确率。图 1 残差连接结构 1.2 SM4 算法描述 SM4分组密码是由国家

22、密码管理局建立的密码标准。SM4算法的加密结构为广义非平衡Feistel,其分组长度和密钥长度均为128 bit,加密轮数和密钥扩展轮数均为32。SM4分组密码算法的128 bit174 通 信 学 报 第 44 卷 明文X分为4个32 bit单元,即明文片段(X0,X1,X2,X3)。经过32轮加密和一次反序变换后输出密文Y,即(X35,X34,X33,X32)。SM4分组密码加解密结构相同,唯一不同的是解密密钥为加密密钥的逆序,图2给出了SM4分组密码算法的加密结构。SM4分组密码的加密结构由5个组件构成:轮函数(F)、合成置换(T)、非线性变换()、线性变换(L)以及S盒(Sbox)。图

23、 2 SM4 分组密码算法的加密结构 32轮的加密中间状态为123(,)iiiiXXXX,设轮密钥为rki,则轮函数F定义为 123123 (,rk)(rk)iiiiiiiiiiF XXXXXT XXX(7)其中,合成置换函数T为323222的可逆变换,由和L组成。非线性变换 由4个并行的S盒构成,每个S盒的输入都是固定的8 bit,通过查表将8 bit输 入 值 转 换 为8 bit输 出 值。设 输 入0132(,)Aa a a a,输出0123)(,Bb b b b,其中,ia和ib为8 bit,则非线性变换表示为 01230123()(,)(Sbox(),Sbox(),Sbox(),S

24、box()BAbbbbaaaa(8)线性变换L执行32 bit移位操作,其输入值为非线性变换的输出B,L定义为 ()(2)(10)(18)(24)CL BBBBBB(9)SM4加密过程使用的轮密钥由加密密钥0123(,)KK KK生成,其密钥扩展算法如下。设主密钥0123MK(MK,MK,MK,MK),令 012300112233(,)(MKFK,MKFK,MKFK,MKFK)KK KK(10)则轮密钥为 4123rk(CK),0,1,31iiiiiiiKKT KKKi(11)其中,()(13)(23)TL BBBB,FKi(i=0,1,2,3)为系统参数,CKi(i=0,1,31)为固定参数

25、。1.3 差分分析及区分器 差分密码分析由Biham等4提出,通过研究特定明文对的差分值在加密过程中的概率传播特性,即找到一条高概率差分路径,将加密数据与随机置换进行区分。定义 1 差分路径28。差分路径也称为差分特征、差分轨迹。设2,nx x,一个r轮分组密码算法的差分路径定义为 01rxxx (12)其中,0 x是输入对00(,)x x的差分,(1)ixir 是第i 轮输出对(,)iix x的差分。定 义 2 差 分 概 率28。r 轮 差 分 特 征01,rxxx 的概率是指当明文0 x和子密钥1,rkk独立、均匀随机时,明文对0 x和0 x的差分为0 x的条件下,第(1)iir 轮输出

26、ix和ix的差分为ix的概率。如果找到一条r1轮差分路径,其概率大于随机置换差分传播概率,利用该差分区分器则可以将r1轮的加密算法与随机置换进行区分,然后通过统计明文对的差分与密文对差分之间的分布规律来恢复部分密钥信息。差分区分器概率越大,攻击的数据复杂度越小;区分器的路径越长,覆盖轮数就越长,攻击的计算复杂度越小。区分器可以视为一个分类器,即是一个概率算法,它的输入是随机置换或者密码算法的密文,如果认为输入来自,则输出1,否则输出0。区分器的性能是指区分器正确识别正负样本的能力,其评价指标为准确率,即区分器的精度,定义为当输入来自密文时返回1的概率的平均值或者当输入来自随机置换时返回0的概率

27、的平均值。通常情况下,一个有效的区分器要求其准确率大于0.5。2 SM4 的新型神经区分器 在对分组密码进行攻击时,攻击者往往并不关心差分路径的中间状态,而只关心最后的输出值,这与深度学习的分类任务在形式上是一致的,都是第 7 期 王慧娇等:基于深度学习的 SM4 密码算法新型区分器 175 基于数据中隐藏的统计信息,将样本进行划分。直接选择对数据进行抽象,建立区分模型,可以简化攻击的流程。基于深度学习训练密码的区分器模型,改进模型并让模型学习到更多的密文对之间的差分特征,将有助于提升区分器的轮数和准确率。本节提出SM4算法基于神经网络的区分器(ND),使用密文对、2种输入数据结构和残差网络进

28、行模型训练,给出了ND的通用模型以及构建区分器的过程,包括输入结构、模型结构以及模型训练和验证。2.1 输入结构 SM4的明文分组长度为128 bit,分为4个32 bit单元,记为0123(,)XXXXX,使用一组差分0123(,)对明文X进行异或操作,得到0123(,)XXXXX。X和X经过SM4密码算法加密得到密文对0123(,)CCCCC和01(,CCC 23,)CC,将一半的密文C替换为随机数据。因此训练数据的样本格式为01230123(,)C C C C C C C C,给每个样本附上相应的标签 1,Dec()Dec()0,randomY CCC(13)其中,Dec()C 表示对密

29、文C进行解密,如果解密后的C和C的异或结果为,则标签为1,否则C是随机数,标签为0。将每个训练样本转化为二进制矩阵作为神经网络的输入结构。01230123(,)C C C C C C C C数据格式用作模型的输入,将其记为输入结构I,其矩阵形式表示为 012301231 0 0 0 0 0 0 00 1 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 1 0 0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 1 0 00 0 0 0 0 0 1 00 0 0 0 0 0 0 1CCCCCCCC(14)式(14)所示输入结构与文献12的神经区分器输入结构类似,即模型仅

30、接收密文对作为输入,模型在训练过程中学习的是密文对之间的特征。Benamira等24推测Gohr神经网络的第一个卷积层将输入(,)lrlrC C C C转换为01(,)LV V V及这些项的线性组合。然后,通过实验来验证他们猜想的正确性,并保持01(,)LV V V作为其网络的输入以实现更好的性能,其矩阵形式表示为 1 0 1 00 1 0 1 1 1 0 00 0 1 1lrlrCCCC (15)受此启发,为了使训练数据包含尽可能多的信息,同时也为了放大差分密码分析的基本特征,本文设计了一种新的数据输入结构I以期望找到密文内部之间的差异特征,即T01230123(,)C C C C C C

31、C CIA,其中,A是非奇异矩阵,输入数据的格式定义为 01230123011 0 0 0 0 0 0 00 1 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 1 0 0 0 0 1 0 0 0 1 0 0 00 1 0 0 0 1 0 00 0 1 0 0 0 1 00 0 0 1 0 0 0 1(,CCCCCCCCC CT2300112233,)C C CC CC CC CC(16)式(16)所示数据格式不仅包含了单个密文信息,还包含了密文对之间的部分差异,也就是密文差分之间的特征,且数据格式长度与I相同,均为8个32 bit的块,因此不会增加训练时间和内存需求。于 是

32、神 经 网 络 新 的 数 据 输 入 结 构 为012300112233(,)C C C C CC CC CC CC,相应的训练标签与式(13)中一致。2.2 模型结构 深度学习架构为简单模块的多层堆叠,所有模块均需学习,堆叠中的每个模块都变换其输入,以提高表示的选择性和不变性。通过多个非线性层,如深度为825,模型可以实现其输入的极其复杂的功能,同时这些功能对微小细节敏感。为SM4神经区分器设计的网络由3个主要组件组成:输入层、迭代层和预测层,区分器模型的网络结构如图3所示。输入层设置8个32 bit的块,对应于2种输入数据结构,用于接收网络模型的训练数据。迭代层包含3个模块,模块1(Mo

33、dule1)是一个一维卷积层,包含32个11大小的卷积核。模块2(Module2)是残差块,可以设置多个,本文使用2个残差块,残差块设置在3.2节中进行分析。每个残差块包含2个Conv1D层,每层使用32个55的176 通 信 学 报 第 44 卷 大卷积核,以便从大分组的SM4算法中提取更多的特征。为了使网络学习更稳定并缓解梯度消失的现象,在每个Conv1D层之后应用BN层,然后是具有ReLU功能的激活层。为了使数据从卷积层平滑地转换到全连接层(FC),引入模块3(Module3)来对卷积层输出的数据进行一维平坦化。模块3是全连接层,由2个隐藏层组成,每个隐藏层包含128个神经元,对应于SM

34、4的分组长度。最后是具有一个神经元的输出预测单元,输出结果为0或1。图 3 SM4 区分器模型的网络结构 模型使用Adam优化算法29、MSE损失函数和L2正则化,其损失函数为 2211(;()()|niiiL y f xyf xc wn(17)其中,()if x为神经网络的输出,n为训练样本个数,iy为真实标签,w为神经网络的参数,超参数c为惩罚因子,其值设为0.000 1。同时,采用循环学习率,即学习率随着迭代次数的增加在较小范围内呈周期变化。2.3 数据预处理 深度学习由数据驱动,训练数据集的选择会影响到神经网络模型的准确性。因此,当构建神经区分器时,所选择的数据集应尽可能随机,需要涵盖

35、所有可能的分类情况。与传统的密码分析一样,神经区分器也需要一个给定的输入差分。数据集预处理的过程如图4所示,相应的方法描述如算法1所示。算法 1 数据预处理算法 初始化128 bit的固定差分,设置生成的样本数n 1)随机生成3个包含n个元素的集合,即X、Y和KEY。X中的元素是大小为432 bit的整数矩阵,Y中的元素是0或1,其中0和1的数量各占一半。每个集合中的元素按顺序一一对应。2)将X中的元素分别与固定差分进行异或得到新集合X。3)以X、X中的元素作为明文,KEY中对应位置的key作为SM4加密算法的主密钥,得到的密文集合记为C、C。4)如果Y中的元素为0,则将对应位置的C替 图 4

36、 数据预处理过程 第 7 期 王慧娇等:基于深度学习的 SM4 密码算法新型区分器 177 换为随机数据。5)将C和C对应位置的元素进行异或,记为C。6)将C和C中对应位置的元素拼成一个大小为8 32 bit的新元素,得到新集合S,使用Y中对应位置的元素作为集合S的标签。7)返回S和Y。2.4 模型训练和验证 模型的训练实际上是监督学习的过程,正如图4所示,利用标签Y,将由C和C拼接得到的新数据集S作为一组有标记的样本进行训练,使模型学习如何将输入数据S映射到标签Y。通过深度学习,可以从已知的输入密文信息中提取特征,利用这些提取的特征可以计算出未知的密文信息,得到分类结果。初始明文X和标签向量

37、Y由随机生成器random生成训练和测试数据,以获得均匀分布的明文X和密钥KEY,训练差分为。生成的数据经过预处理后输入神经网络,经过若干次迭代后使模型趋于收敛,保存并返回训练的神经网络模型。验证集的生成方式和训练集相同。生成的验证集送入训练过的神经网络模型。如果验证数据属于随机数据并且模型输出为0,或者验证数据属于密文并且模型输出为1,则分类正确,反之分类错误。最后,返回神经网络模型的准确率。本文提出的SM4算法神经区分器模型的输出描述为后验概率Pr(1|)YS,其中,S是需要区分的样本(,)CC。该后验概率估计函数可以表示为 21(,)(),)F CCff CC(18)其中,1()f C表

38、示从密文C中提取的基本特征,21(),)ffC表示从基本特征和密文差分中提取的派生特征,且派生特征2()f需从基本特征1()f的分布中提取。如果Pr(1|)0.5YS,则区分器预测输入的样本标签为1。3 实验及结果分析 本文所有实验均在一台带有GTX 1650显卡、16 GB内存的计算机上进行。将设计的神经区分器应用于SM4算法中,对49轮SM4算法分别进行实验。训练差分使用0 x10000000200000004,即(0 0,0 1,0 2,0 4)xxxx。随机生成220个训练集样本和218个验证集样本。验证集和测试集采用相同的数据集,因为验证集仅用于验证由训练数据训练的模型性能,不参与模

39、型的参数学习过程。数据的生成并不复杂,在本文的实现中,生成大小为220的数据集只需要几十秒。通过预处理可以将生成的训练数据转换成神经网络所需的格式。数据集均以213的大小分批处理,共运行了40个epoch。采用循环学习率,将第i个epoch的学习率li设置为 39mod400.00010.001939iil(19)3.1 区分器准确率 若区分器的准确率超过0.52,则认为该区分器是有效的。图5显示了相同条件下输入结构I和I的49轮神经区分器准确率。从图5中可以看出,在2种输入结构下,训练进行了一个epoch就能达到较高的准确率。其中两者的4轮准确率均为1,在其他轮数上,输入结构I的训练过程中每

40、个epoch的准确率均高于输入结构I。图5中有个别点偏离平均值是因为训练过程中该时刻的学习率为周期内的较大值(采用的循环学习率方案)。训练进行单个epoch在GTX1650显卡上大约需要180 s,因此完整的训练周期可以在不到3 h内完成,且在开始训练的15 min内就可以获得较高的准确率。实验结果表明,深度学习区分器可以很容易地学习加密数据和随机数据在少轮数下的特征,但随着加密轮数的增加,区分器准确率将持续下降。根据分组密码的混淆和扩散,迭代轮数越多,明文和密文之间的统计信息就越弱。对于9轮SM4,采用输入结构I的模型准确率小于0.52,未能获得符合条件的区分器,即模型无法通过挖掘训练数据中

41、包含的信息来学习得到有效的区分函数,原因是神经区分器在学习阶段未能构建出密码的差分分布表的良好近似值,因此无法使用该信息对密文进行分类。4种输入结构下区分器的准确率对比如表2所示。模型的准确率是指在训练过程中的某个epoch,其验证准确率最大,模型会记录并保存该epoch时的神经网络训练参数。重复多次实验,模型的准确率始终在一个较小的范围内波动。通过实验结果可以看出,在相同实验条件下,新的输入结构I较原输入结构I准确率有所提升,其中5轮和6轮的提升较明显。SM4密码算法的神经区分器轮数也从原模型的8轮提升至9轮,得到的9轮准确率最高178 通 信 学 报 第 44 卷 图 5 SM4 的 49

42、 轮神经区分器准确率 表 2 4 种输入结构下区分器的准确率对比 区分器轮数 输入结构 I 输入结构 I 文献24 文献30 4 1.000 0 1.000 0 1.000 0 1.000 0 5 0.739 40.695103 0.757 63.751103 0.750 12.391103 0.748 23.362103 6 0.636 11.310103 0.648 83.160103 0.642 43.218103 0.640 82.561103 7 0.580 21.160103 0.591 41.415103 0.591 62.013103 0.590 21.831103 8 0.5

43、48 81.600103 0.553 75.187103 0.550 31.946103 0.549 72.157103 9 0.535 61.714103 0.533 41.437103 0.532 71.166103 第 7 期 王慧娇等:基于深度学习的 SM4 密码算法新型区分器 179 可达0.537 3。这表明,将密文对之间的部分差异信息作为训练数据能够让模型学习到更多的隐藏特征,对提升区分器的准确率具有一定优势,且能够得到更高轮数的区分器。因此本文后面均基于新的数据输入结构I构造的区分器进行实验。文献30同样提出了一种异于I的数据输入结构,使用左半密文对的值并结合右半密文对之间的差

44、异作为输入数据,记为(,)llC CV。文献24和文献30提出的网络输入结构是应用在SPECK32/64轻量级分组密码算法中,为了体现所提方案的优越性,本文将其类比到SM4密码算法中,使用本文的模型进行实验,表2给出了实验的对比结果。从表2可以看出,输入结构I在5、6、8、9轮均优于文献24和文献30,仅7轮略低于文献24。模型的损失也称为模型的目标函数,是衡量预测分布与实际分布之间距离的指标,即评估预测结果与真实样本之间的差异。为使模型的准确率尽可能高,需要训练一系列参数来拟合该函数。但在实际训练过程中有时候会出现过拟合的现象,即训练损失很小而验证损失很大,这将导致模型训练失败。本文构造的神

45、经区分器损失函数的拟合较好,以8轮区分器的训练为例,训练过程中训练集和验证集的损失曲线如图6所示。从图6可以看出,训练损失和验证损失曲线基本吻合,说明模型训练有效。图 6 SM4 的 8 轮区分器模型损失曲线 图7给出了本文提出的区分器在不同样本大小下的准确率。从图7中可以看出,对于4轮SM4区分器,213个样本即可达到1.00的准确率;5轮和6轮区分器训练数据量的下界分别为25和28;7轮和8轮区分器训练数据量的下界分别为210和214;对于9轮区分器,需要218个训练样本才能达到0.52的准确率。图 7 SM4 的 49 轮神经区分器在不同样本大小下的准确率 3.2 残差块设置 鉴于神经网

46、络参数的选择会在一定程度上影响模型的精度,本文对残差块的设置进行了相关消融实验。实验采用的网络输入结构为I,对模型结构设置不同的残差块数量进行实验,并保持模型的其他结构相同。在相同实验条件下,针对7轮SM4算法,分别对不设置残差块和设置若干个残差块的模型结构进 行 了 实 验,初 始 训 练 差 分 使 用0 x10000000200000004,实验结果如表3所示。表3结果表明,去除残差模块会使模型的性能降低约2%,说明残差结构能够提升网络模型的性能。随着残差块的数量增加,网络层次加深,而模型的性能提升微小,且每增加一个残差块会增加2个卷积层,神经网络需要多训练10 432个参数,因此综合考

47、虑模型性能和训练成本,本文的神经网络结构中采用2个残差块。表 3 不同残差块数量的模型性能 残差块数量/个 准确率 0 0.575 94.167103 1 0.590 82.529103 2 0.591 41.415103 3 0.591 31.302103 4 0.591 51.420103 5 0.591 41.319103 6 0.591 61.173103 7 0.591 41.530103 8 0.591 71.216103 9 0.591 71.197103 10 0.591 71.104103 3.3 区分器对比 神经区分器与传统差分区分器都属于选择明文攻击。通过研究选择的明文对

48、差分在加密过程中180 通 信 学 报 第 44 卷 的传播概率特征,将分组密码与随机置换进行区分,当使用传统的差分密码分析进行密钥恢复攻击时,需要找到轮数较多、概率较高的差分区分器,也就是找到良好的输入差分。在传统差分区分器构造过程中,通过寻找差分路径得到一对或几对差分对。目前,主流的寻找差分路径的方式主要为自动化搜索,包括基于SMT(satisfiability modulo theories)的自动化搜索和基于MILP的自动化搜索。通过固定输入差分和输出差分,利用自动化搜索找到差分路径后统计并计算差分对的概率。基于深度学习的差分神经区分器利用一个给定的输入差分,将密文对或者密文信息作为训

49、练集进行神经网络模型的训练来构造区分器。而这些密文对的输出差分并不是固定的,因此,通过深度学习训练的差分神经区分器可以视为多合一的区分器。因此,基于深度学习的差分神经区分器可以更有效地利用输入差分。文献22基于MILP改进了搜索高概率差分特征的方法,并提出了优化的SM4差分轨迹,构造了一个19轮SM4算法的差分区分器。文献31将差分区分器准确率定义为对应轮数下的差分特征的概率。本文提出的深度学习区分器虽然达不到传统区分器的轮数,但已达到的轮数相较于文献22具有更好的性能。表4给出了两者的数据复杂度(选择明文个数)、时间复杂度(加密次数)、存储复杂度(字节)和准确率的对比。除了与传统差分方法进行

50、比较,本文还与其他深度学习方法进行了实验对比。文献16在选择GIMLI置换的区分器时,列举了若干种深度学习模型进行训练,本文选择并实现了其中的3种模型:MLP、MLP和CNN,将其分别应用于SM4算法。其中,MLP和MLP是基于多层感知器构造的模型,CNN是基于卷积神经网络构造的模型。实验结果表明,本文提出的基于残差网络的深度学习模型的准确率均高于这3种模型,具体结果如表5所示。文献25基于卷积残差网络对SM4构建了38轮差分神经区分器,其模型的训练样本量与本文相当,实验结果对比如表6所示。从表6可以看出,文献25的5轮准确率高于本文,从6轮开始准确率接近0.5,区分器的性能较弱,且8轮的准确

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服