一种基于lenet5-svm的分组加密识别方法
技术领域
1.本发明涉及密码体制识别技术领域,具体涉及一种基于lenet5-svm的分组加密识别方法。
背景技术:
2.密码学是一门古老的科学。自人类社会出现战争起便出现了密码,并逐渐形成了一门独立的学科。1946年电子计算机出现后被用于密码破译,密码学进入电子时代。当前,信息技术与产业处在高速发展阶段,除了电子政务、电子商务、电子金融外,还出现了云计算、大数据处理、三网融合等必须确保信息安全的新型信息系统,这为密码技术提供了更广阔的应用空间。研究密码编码的科学成为密码编码学,研究密码破译的科学成为密码分析学,密码编码学和密码分析学共同组成密码学。密码分析的实质就是分析者在不知道密钥的情况下,对所截获的密文或明-密文对进行分析、假设、推断和证实等工作来恢复明文。或者是首先试图找出密钥,进而利用解密算法恢复明文。如果密码分析者能够根据密文系统地确定出明文或密钥,或者能够根据明文-密文对系统地确定出密钥、则我们说这个密码是可破译的。但是,在不知道加密算法的情况下,对密文的破解工作非常困难和费时。若能知道该密文的加密算法则可针对性地进行密文分析破解。因此,将密文按照加密算法进行分类对密码分析学具有重要的意义。
3.分组加密算法,也叫块加密(block cyphers),是一种对称加密算法,一次加密明文中的一个块。将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组。分组加密算法中,有ecb,cbc,cfb,ofb这几种算法模式。分组加密算法作为一个使用频繁的信息加密方法,适合加密大量数据,但是由于分组加密算法对同一明文加密的密文是唯一的,导致黑客可以对已知密文进行逆运算,从而得出对应明文,这削弱了密文的安全性,传统的分组加密算法并没有解决这种密文唯一性的问题。而且传统分组加密算法效率较低,在安全芯片中运行速度不够高,对数据进行安全操作的效率也比较低。
4.卷积神经网络,是一种专门用来处理具有类似网格结构的数据的神经网络。卷积网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。卷积神经网络主要由输入层、卷积层、池化层、全连接层、softmax 层这5层结构组成。支持向量机(svm)是一种监督机器学习算法,可用于分类或回归挑战。它主要用于分类问题。支持向量机作为一种典型的数据分类方法,已经被广泛应用在临床决策、信用评估、语音识别等领域当中。svm也可以解决多维度分类问题,将低维数据映射到高维超曲面,使得样本数据在高维上线性可分。虽然越来越多的研究者将机器学习方法应用到密码体制识别领域,但目前的研究仅仅是模式化地把密码体制识别任务套入机器学习分类任务的框架,忽略了密码体制和密文的特殊性,所以需要从密文特征提取和单分识别两个部分考虑。然而,目前大部分研究仍仅从机器学习部分展开,这样就导致密码体制识别的准确率有待提高。
技术实现要素:
5.本发明的目的是针对现有技术存在的上述问题,提供一种基于lenet5-svm 的分组加密识别方法,解决现有分组密码算法识别方法存在的效率低、准确性不高、有效识别信息少等问题。
6.本发明的上述目的通过以下技术手段实现:
7.一种基于lenet5-svm的分组加密识别方法,包括以下步骤:
8.步骤s1、构建密文数据集、lenet5神经网络、以及svm分类器,密文数据集由密文文件构成;
9.步骤s2、将密文文件转化为密文串,对密文串进行量化和映射,形成密文映射矩阵;
10.步骤s3、将预处理得到的密文映射矩阵进行卷积和池化获得密文特征;
11.步骤s4、对密文映射矩阵进行正则化处理;
12.步骤s5、将正则化处理后的密文映射矩阵输入到lenet5神经网络,对lenet5 神经网络进行训练并输出密文特征向量和对应的权重;
13.步骤s6、将密文特征向量和对应的权重输入到svm分类器,对svm分类器进行训练,svm分类器采用rbf核函数进行分类,并通过超参数自适应方法调整svm分类器的惩罚系数c和参数gamma,使得svm分类器获得最佳准确率;
14.步骤s7、将用户提交的密文文件依次经过训练好的lenet5神经网络和svm 分类器处理,获得对应的分类结果。
15.如上所述的步骤s2包括以下步骤:
16.步骤s201、对密文文件进行线性变化,再对线性变换后的密文文件进行分块得到密文块;
17.步骤s202、采用累加求和对划分的密文块进行量化,得到转化后的密文数据;
18.步骤s203、将密文数据按顺序分割得到大小为密文映射矩阵。
19.如上所述的步骤s3包括以下步骤:
20.步骤s301、将预处理得到的密文映射矩阵进行卷积;
21.步骤s302、通过池化下采样,得到下采样密文矩阵;
22.步骤s303、将下采样密文矩阵展平,得到密文特征。
23.如上所述的步骤s5包括以下步骤:
24.步骤s501、输入密文映射矩阵,经过滤波器第一次卷积并输出;
25.步骤s502、将步骤s501的输出送入第一池化层进行下采样后,再经过滤波器第二次卷积得到输出;
26.步骤s503、将步骤s502的输出送入与第一池化层相同的第二池化层,展开得到高维密文特征向量;
27.步骤s504、将步骤s503的输出进行多次全连接操作,最终得到密文特征向量,并使用softmax分类得到密文特征向量对应的权重。
28.本发明相对于现有技术,具有以下有益效果:
29.相较于传统的分组密文识别模型,本发明创新性地将lenet5神经网络模型和支持向量机(svm)模型结合,建立lenet5-svm模型。提出cnpo特征提取方法,将其用于svm模型训
练上,提取的密文特征效果优于随机性特征和传统的熵特征,能更好反应密文的分布特性。较传统的随机性检测和密文熵特征分类准确率提升10%左右。
附图说明
30.图1为密文预处理的流程示意图;
31.图2为不同块大小的准确率变化曲线(epoch=45);
32.图3为cnpo_192密文特征的提取示意图;
33.图4为cnpo_192密文特征的特征值示意图;
34.图5为指定方差随机数的svm分类过程示意图;
35.图6为lenet5神经网络训练流程;
36.图7为lenet5神经网络结构示意图;
37.图8为数据处理流程图;
38.图9为svm参数自适应效果;
39.图10为密文数据集中的各类密文文件的占比示意图;
40.图11为分类结果示意图。
具体实施方式
41.为了便于本领域普通技术人员理解和实施本发明,下面结合实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
42.本发明实施例提供一种基于lenet5-svm的分组加密识别方法,包括以下步骤:
43.步骤s1、构建密文数据集、lenet5神经网络、以及svm分类器,密文数据集是由文本、图片、音频等多媒体数据经过分组密码算法加密得到的密文文件组成;基于sklearn中的svc模块构建svm分类器;
44.步骤s2、密文文件预处理:先将密文文件转化为01密文串,然后对密文串进行量化和映射,形成密文映射矩阵。其流程如图1所示,具体包括以下步骤:
45.步骤s201、对密文文件进行线性变化,再对线性变换后的密文文件进行分块得到密文块,密文块的大小为block
×
1024/8000,其中block取8或16或32;
46.步骤s202、采用累加求和对划分的密文块进行量化,得到1024维的转化后的密文数据;
47.步骤s203、将密文数据按顺序分割得到大小为32*32密文映射矩阵。
48.密文预处理主要涉及到密文块大小的选取。本实施例中,将block分别取值为8、16、32bit,分别生成对应密文映射矩阵进行实验,并根据损失函数选择最佳分块。本发明选取lenet5网络模型执行aes-3des二分类任务,对3种分块方法准确性进行测试,实验结果见图2;
49.从图2中可以看到,block=8bit的块分效果较好,无论是达到训练完成时间还是准确率都优于16bit和32bit分块的情况。此外8bit分块处理所需密文大小最小,有利于复杂密文场景下进行分类,因此后续均使用8bit块分方法进行密文预处理。
50.步骤s3、密文特征提取:将预处理得到的密文映射矩阵进行卷积和池化操作得到
最终的64维(cnpo_64)、75维(cnpo_75)、192维(cnpo_192)密文特征。 cnpo_192提取过程如图3所示;
51.步骤s301、对于每一个密文数据,将预处理得到的32*32的密文映射矩阵进行一次卷积,其中卷积的输入通道为1,输出通道为3;
52.步骤s302、通过两次池化下采样,得到3个8*8的下采样密文矩阵;
53.步骤s303、将下采样密文矩阵展平,得到192维密文特征。
54.为了说明cnpo密文特征在不同的加密算法之间有较好的区分度,图4展示了aes和3des两种约3600个加密密文的cnpo_192密文特征某一维特征的分布图。可见两种密文的特征值有较为明显的分界,3des的特征值集中在0~0.7而aes的特征值集中在0.8以上。
55.步骤s4、对密文映射矩阵进行正则化处理;
56.步骤s5、将正则化处理后的密文映射矩阵输入到lenet5神经网络,对lenet5 神经网络进行训练并输出密文特征向量和对应的权重,lenet5神经网络训练流程如图6;
57.步骤s501、输入32
×
32
×
1的密文映射矩阵,经过6
×5×
5的滤波器第一次卷积 (c1)得到28
×
28
×
6的输出;
58.步骤s502、将步骤s501的输出送入第一池化层(p1)进行2x2的下采样后,再经过16
×5×
5的滤波器第二次卷积(c2)得到10
×
10
×
16的输出;
59.步骤s503、将步骤s502的输出送入与第一池化层p1相同的第二池化层p2,展开得到400维的高维密文特征向量;
60.步骤s504、将步骤s503的输出进行三次全连接操作,最终得到10维的密文特征向量,并使用softmax分类得到密文特征向量对应的权重。
61.步骤s6、将密文特征向量和对应的权重输入到支持向量机(svm分类器);
62.通过超参数自适应方法调整惩罚系数c和参数gamma以得到效果更好的 svm分类器。优化惩罚系数c和参数gamma,通过对svm分类器进行训练,实现 svm分类器的惩罚系数c和参数gamma的自适应选取。根据交叉验证得到图9,其中acc代表准确率,c和gamma自适应得到最佳准确率,步长分别为0.15和0.005。
63.为解决目标维度的爆炸性增长使计算特征空间的内积变得及其困难的问题, svm分类器采用准确率高的rbf核函数进行分类,rbf核函数类似于高斯分布,能够把原始特征映射到无穷维。通过调整rbf核函数的类型kernel和惩罚系数c 得到效果更好的svm分类器。
64.图5展示了对svm分类器的惩罚项系数c可视化测试,随机生成200个二元数据,训练调参得到的决策边界如下(其中实线表示决策边界,虚线表示最大间隔边界),说明惩罚系数c可以降低拟合精度而获得更好的拟合效果。
65.步骤s7、将用户提交的密文文件依次经过训练好的lenet5神经网络和支持向量机(svm分类器)处理,获得对应的分类结果。
66.本实施例中,lenet5神经网络的激活函数选取原模型使用的sigmoid函数,池化层选择最大池化层,损失函数选取为crossentropyloss函数,优化器选择为 adam。lenet5神经网络结构如图7所示;
67.待识别的密文文件的分组密码体制包括aes、3des、blowfish、中的至少一种;
68.相较于传统的分组密文识别模型,本发明创新性地将lenet5神经网络模型和支持
向量机(svm)模型结合。使用卷积神经网络在细粒度层次提取密文特征向量,得到密文embedding特征再经过支持向量机(svm分类器)进行分类。较传统的随机性检测和密文熵特征分类准确率提升15%左右。
69.本发明采用lenet5-svm算法构造分类器,并以提取到的密文特征向量和对应的权重作为分类器的输入,经支持向量机(svm分类器)的训练与测试,最终完成对分组密码体制的识别任务。
70.为了验证本发明提供的基于lenet5-svm算法的分组密码体制识别方法的有效性,提供以下验证实验。
71.(一)数据准备
72.鉴于在网络上获取大量加密后的密文数据较为困难,且存在数据安全、算法安全等问题,因此本实施例自制了大量密文文件完成模型训练。这些密文文件的“明文”(下称原数据)数据集的选择参考部分文献使用的数据集。考虑到现实生活中密文数据大都是由文本、图片、音频等多媒体加密得到的,因此本发明训练模型时所用的数据集也包含了这些格式的原数据。考虑到图片和音频文件中所包含的信息具有更多的信道特性,为了避免模型对信道的学习,训练模型的数据着重使用了多种音频和图片原数据。所有原数据均从对应的官网下载,并给出对应地址。对这些原数据进行3des、aes、blowfish三种加密算法加密,最终得到了约49.5g的密文数据集,密文文件约18.76万个。各类密文文件占比如图10所示;
73.本发明整合了目前各大开源平台所提供的加密工具包。对称加密和哈希加密的接口实现基于cryptodome第三方库中的cipher板块。字符串密文加密之前先进行字节转化,针对不同种加密的性质,本发明对加密对象做了不同的处理。不同的对称加密对象设置不同的加密块大小以及秘钥长度。最终得到的密文均为16 进制文本文件。
74.按照图片密文、音频密文、文本密文混合比10:10:1的比例混合构成密文数据集,本方法在网络上爬取部分图片和文本加密后进行测试。
75.(二)分类结果评价标准
76.在本发明所研究的密码体制识别任务中,注重的是分类器对所有密码体制识别的准确率,本发明以查准率/查全率作为评价分类器性能的标准。
77.查准率/查全率,利用混淆矩阵对模型进行评价,其目的是通过显示每个加密算法的正确分类数和预测分类数来获得分类模型的有效度量。混淆矩阵总共产生四种结果如表1所示,tp(真正例)、tn(真反例)、fp(假正例)和fn(假反例)。
78.表1分类混淆矩阵表
[0079][0080]
根据机器学习的常见衡量指标,项目选择准确率acc作为衡量模型是否达到预期效果的指标,针对二分问题还是用精确率precision和召回率recall进行衡量。
[0081]
准确率acc=(tp+tn)/(tp+fn+fp+tn)
[0082]
精确率precision=tp/(tp+fp)
[0083]
召回率recall=tp/(tp+fn)
[0084]
(三)实验结果
[0085]
表2密文特征准确率对比表
[0086][0087][0088]
由表2可知本方法所提出的cnpo密文特征对比已有文献中所使用的随机性检测和熵特征,具有更好的分类效果。与下文相比较可知,本方法提出的cnpo 特征提取方法在效果上完全超过之前的文献。
[0089]
使用svm分类器对密文进行二分类,其分类结果如图11所示。
[0090]
表3 lenet5-svm二分类测试结果准确率
[0091]
分类lenet5-svm3des,aes95.36%3des,blowfish97.12%aes,blowfish96.57%
[0092]
由表3可知,lenet5-svm分类方法准确率较高,超过95%。
[0093]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种基于lenet5-svm的分组加密识别方法,其特征在于,包括以下步骤:步骤s1、构建密文数据集、lenet5神经网络、以及svm分类器,密文数据集由密文文件构成;步骤s2、将密文文件转化为密文串,对密文串进行量化和映射,形成密文映射矩阵;步骤s3、将预处理得到的密文映射矩阵进行卷积和池化获得密文特征;步骤s4、对密文映射矩阵进行正则化处理;步骤s5、将正则化处理后的密文映射矩阵输入到lenet5神经网络,对lenet5神经网络进行训练并输出密文特征向量和对应的权重;步骤s6、将密文特征向量和对应的权重输入到svm分类器,对svm分类器进行训练,svm分类器采用rbf核函数进行分类,并通过超参数自适应方法调整svm分类器的惩罚系数c和参数gamma,使得svm分类器获得最佳准确率;步骤s7、将用户提交的密文文件依次经过训练好的lenet5神经网络和svm分类器处理,获得对应的分类结果。2.根据权利要求1所述的一种基于lenet5-svm的分组加密识别方法,其特征在于,所述的步骤s2包括以下步骤:步骤s201、对密文文件进行线性变化,再对线性变换后的密文文件进行分块得到密文块;步骤s202、采用累加求和对划分的密文块进行量化,得到转化后的密文数据;步骤s203、将密文数据按顺序分割得到大小为密文映射矩阵。3.根据权利要求2所述的一种基于lenet5-svm的分组加密识别方法,其特征在于,所述的步骤s3包括以下步骤:步骤s301、将预处理得到的密文映射矩阵进行卷积;步骤s302、通过池化下采样,得到下采样密文矩阵;步骤s303、将下采样密文矩阵展平,得到密文特征。4.根据权利要求3所述的一种基于lenet5-svm的分组加密识别方法,其特征在于,所述的步骤s5包括以下步骤:步骤s501、输入密文映射矩阵,经过滤波器第一次卷积并输出;步骤s502、将步骤s501的输出送入第一池化层进行下采样后,再经过滤波器第二次卷积得到输出;步骤s503、将步骤s502的输出送入与第一池化层相同的第二池化层,展开得到高维密文特征向量;步骤s504、将步骤s503的输出进行多次全连接操作,最终得到密文特征向量,并使用softmax分类得到密文特征向量对应的权重。
技术总结
本发明公开了一种基于LeNet5-SVM的分组加密识别方法,构建密文数据集、LeNet5神经网络、以及SVM分类器;根据密文文件获得密文映射矩阵;对密文映射矩阵进行卷积和池化获得密文特征;正则化密文映射矩阵;将密文映射矩阵输入到LeNet5神经网络进行训练并输出密文特征向量和对应的权重到SVM分类器,对SVM分类器进行训练;将用户提交的密文文件依次经过训练好的LeNet5神经网络和SVM分类器处理,获得对应的分类结果。本发明相较于传统的分组密文识别模型,本发明创新性地将LeNet5神经网络和SVM分类器结合。使用卷积神经网络在细粒度层次提取密文特征。较传统的随机性检测和密文熵特征分类准确率得到提升。分类准确率得到提升。分类准确率得到提升。
技术研发人员:彭波 王卫锋 程才 胡继强 刘睿 姜慧 宋燕舞 杨洁 文品 朱思旻 潘斯武 张婷
受保护的技术使用者:中信数智(武汉)科技有限公司
技术研发日:2021.11.29
技术公布日:2022/3/8