1.本发明涉及密码算法识别技术领域,尤其涉及一种基于密文特征的通用密码算法识别方法。
背景技术:
2.随着网络的飞速发展,网络空间已经成为第五大国家主权空间。而密码是保障网络与信息安全的核心技术和基础支撑。但在实际应用中,密码技术的弃用、乱用、误用等问题会对系统造成严重的安全隐患。商用密码应用安全性评估(简称“密评”)正是为了避免或纠正密码应用过程中可能出现的安全性问题,更加明确、科学地规范密码算法的应用和管理。密评是指在采用商用密码技术、产品和服务集成建设的网络和信息系统中,对其密码应用的合规性、正确性和有效性进行评估的活动。建立完善的密评制度,开展密评工作,是贯彻落实密码法、维护网络空间安全、规范商用密码应用的客观要求。
3.随着密码法的发布实施,以及密评工作的广泛推进,在密码应用合规性检测中有一项重要的检测-算法合规性检测。目前,密码算法识别、检测的主要包括两类技术:(1)通过逆向工程,采用反编译软件中可执行的程序代码等方法,分析出软件或硬件中所使用的加密算法。(2)基于机器学习算法实现基于密文特征识别密码算法。通过使用统计学方法,分析密文特征,在唯密文条件下,分析出密文所使用的加密算法。现阶段,上述的第一类技术已经相对成熟,并已经被广泛应用在各类安全审计中。第二类技术可以弥补基于逆向工程识别技术的不足,但该技术尚处于起步阶段,国内从近几年才开始有少量公开的研究成果,国外也仅有少数学者研究,很多内容需要更加深入研究。
技术实现要素:
4.为了更好地建立密码系统的安全监测预警、安全风险评估机制,本发明提供一种基于密文特征的通用密码算法识别方法。
5.本发明提供的基于密文特征的通用密码算法识别方法,包括以下步骤:
6.步骤1:检测机构r生成待检测信息数据集im并发送至检测机构服务器s;
7.步骤2:检测机构服务器s根据所述待检测信息数据集im生成训练用密文数据集cdf,并使用所述训练用密文数据集cdf进行密码算法识别训练得到分类器clf;
8.步骤3:待检测机构服务器as使用待检测密码系统生成待检测密文数据集cd
nf
并发送至检测机构服务器s;
9.步骤4:检测机构服务器s提取所述待检测密文数据集cd
nf
中的密文特征数据集cf
nf
并使用所述分类器clf进行密码算法识别,根据识别结果生成密码系统检测结果并发送给检测机构r。
10.进一步地,步骤1具体包括:
11.检测机构r根据给定的k种待检测密码算法和待检测密码算法的安全性评价,生成待检测信息数据集im=(i1,i2,
…
,ik),其中ia表示密码算法id为a的密码算法的待检测信
息,ia=(tca,caa),tca表示密码算法id为a的密码算法参数,caa表示密码算法id为a的安全性评价参数,a=1,2,3
……
,k。
12.进一步地,步骤2中,生成训练用密文数据集cdf,具体包括:
13.检测机构服务器s根据待检测信息数据集im中的tc参数,使用密码系统在每种密码算法下,对p个随机明文文件mdr用随机密钥kr加密生成密文文件,构成训练用密文数据集cdf=(tcd1,tcd2,
…
,tcdk);
14.其中,tcda表示在密码算法id为a的密码算法下所生成的密文数据子集,tcda=(cd
ra1
,cd
ra2
,
…
,cd
rap
),cd
rab
表示在密码算法id为a的密码算法下使用随机密钥kr对第b个随机明文文件加密所生成的密文文件,b=1,2,3
……
,p。
15.进一步地,步骤2中,使用所述训练用密文数据集cdf进行密码算法识别训练得到分类器clf,具体包括:
16.检测机构服务器s选取x种密文特征提取算法对cdf进行密文特征提取;并根据待检测信息数据集im中的ca参数,生成带标签的密文特征集cff=(fea1,fea2,
…
,feak);其中,feaa为从tcda中提取的密文特征子集,feaa=(f
a1
,f
a2
,
…
,f
ap
),f
ab
为从密文文件cd
rab
中提取的密文特征子集,f
ab
=(fea
a1
,fea
a2
,
…
,fea
adim
,caa),dim为密文特征维数;
17.检测机构服务器s选取分类算法alg构建分类器clf,使用密文特征集cff对分类器clf进行密码算法识别训练,得到训练好的分类器clf。
18.进一步地,步骤3具体包括:
19.待检测机构服务器as使用待检测密码系统在其所支持的所有密码算法下,对q个随机明文文件mdr用随机密钥kr加密生成密文文件,构成待检测密文数据集cd
nf
=(fcd1,fcd2,
…
,fcdj);
20.其中,参数j为待检测密码系统中密码算法的种类数,fcdc表示在第c种密码算法下所生成的密文数据子集,fcdc=(icd
rc1
,icd
rc2
,
…
,icd
rcq
),icd
rcd
表示在第c种密码算法下使用随机密钥kr对第d个随机明文文件加密所生成的密文文件,c=1,2,3
……
,j,d=1,2,3
……
,q。
21.进一步地,步骤4中,提取所述待检测密文数据集cd
nf
中的密文特征数据集cf
nf
并使用所述分类器clf进行密码算法识别,具体包括:
22.检测机构服务器s使用选取的x种密文特征提取算法对cd
nf
做密文特征提取,生成不带标签的密文特征集cf
nf
=(tfea1,tfea2,
…
,tfeaj);
23.其中,tfeac表示从fcdc中提取的密文特征子集,tfeac=(tf
c1
,tf
c2
,
…
,tf
cq
),tf
cd
表示从密文文件icd
rbd
中提取的密文特征子集,tf
cd
=(tfea
c1
,tfea
c2
,
…
,tfea
cdim
),dim为密文特征维数;
24.检测机构服务器s使用训练好的分类器clf对cf
nf
进行密码算法识别,生成识别结果数据集clf
result
=(ctr1,ctr2,
…
,ctrj);其中,ctri为分类器clf识别出的密码算法,i=1,2,3
……
,j。
25.进一步地,步骤4中,根据识别结果生成密码系统检测结果并发送给检测机构r,具体包括:
26.检测机构服务器s根据clf
result
中的识别结果,对应im中的ca参数,生成密码系统检测结果cr
result
=(ir1,ir2,
…
,irk),其中,iro=(ctro,cao)o=1,2,3
……
,k。
27.本发明的有益效果:
28.(1)能够在检测机构非物理接触加密设备的前提下,仅通过获得的密文文件完成密码系统的检测工作,保护待检测机构的隐私数据以及核心业务安全。
29.(2)支持多种密文特征提取方法以及机器学习分类算法,检测机构可根据实际需求选择适合的密文特征提取方法以及机器学习分类算法。
30.(3)训练分类器的密文特征集可维护以便后续工作使用,即在对分类器进行训练时可将之前在同种特征提取方法下生成的密文特征集加入到本次训练用的数据集中,以提高识别准确率。
31.(4)弥补了基于逆向工程识别技术的不足,为算法合规性检测提供新的技术手段和工具。
附图说明
32.图1为本发明实施例提供的一种基于密文特征的通用密码算法识别方法的流程示意图之一;
33.图2为本发明实施例提供的一种基于密文特征的通用密码算法识别方法的流程示意图之二;
34.图3为现有技术中的特征选择的流程示意图;
35.图4为本发明实施例提供的三种密码算法在两种类型特征下的识别准确率比较结果。
具体实施方式
36.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.实施例1
38.结合图1和图2所示,本发明实施例提供一种基于密文特征的通用密码算法识别方法(简称gcaibcf方案),包括以下步骤:
39.s101:检测机构r生成待检测信息数据集im并发送至检测机构服务器s;
40.作为一种可实施方式,检测机构r根据给定的k种待检测密码算法和待检测密码算法的安全性评价,生成待检测信息数据集im=(i1,i2,
…
,ik),其中ia表示密码算法id为a的密码算法的待检测信息,ia=(tca,caa),tca表示密码算法id为a的密码算法参数,caa表示密码算法id为a的安全性评价参数,a=1,2,3
……
,k。
41.s102:检测机构服务器s根据所述待检测信息数据集im生成训练用密文数据集cdf,并使用所述训练用密文数据集cdf进行密码算法识别训练得到分类器clf;
42.作为一种可实施方式,本步骤包括以下子步骤:
43.s1021:测机构服务器s根据待检测信息数据集im中的tc参数,使用密码系统在每种密码算法下,对p个随机明文文件mdr用随机密钥kr加密生成密文文件,构成训练用密文数据集cdf=(tcd1,tcd2,
…
,tcdk);
44.其中,tcda表示在密码算法id为a的密码算法下所生成的密文数据子集,tcda=(cd
ra1
,cd
ra2
,
…
,cd
rap
),cd
rab
表示在密码算法id为a的密码算法下使用随机密钥kr对第b个随机明文文件加密所生成的密文文件,b=1,2,3
……
,p。
45.s1022:检测机构服务器s选取x种密文特征提取算法对cdf进行密文特征提取;并根据待检测信息数据集im中的ca参数,生成带标签的密文特征集cff=(fea1,fea2,
…
,feak);其中,feaa为从tcda中提取的密文特征子集,feaa=(f
a1
,f
a2
,
…
,f
ap
),f
ab
为从密文文件cd
rab
中提取的密文特征子集,f
ab
=(fea
a1
,fea
a2
,
…
,fea
adim
,caa),dim为密文特征维数。
46.具体地,密文特征提取主要包括两个步骤:特征提取和特征选择。密文特征有熵特征、概率特征等。特征提取的方法可以采用主成分分析(pca)、线性判别分析(lda)等。特征选择是从原始特征数据集中删除冗余的特征,减少有效特征的数量,提高模型的精确度。特征选择的方法可以采用过滤法(filter)、包裹法(wrapper)等。具体流程如图3所示。
47.s1023:检测机构服务器s选取分类算法alg构建分类器clf,使用密文特征集cff对分类器clf进行密码算法识别训练,得到训练好的分类器clf。
48.具体地,可以采用经典的单层分类器算法,如决策树、逻辑回归、svm、朴素贝叶斯等算法;也可以采用集成学习算法,如混合随机森林与逻辑回归算法。
49.s103:待检测机构服务器as使用待检测密码系统生成待检测密文数据集cd
nf
并发送至检测机构服务器s;
50.具体地,待检测机构服务器as使用待检测密码系统在其所支持的所有密码算法下,对q个随机明文文件mdr用随机密钥kr加密生成密文文件,构成待检测密文数据集cd
nf
=(fcd1,fcd2,
…
,fcdj);
51.其中,参数j为待检测密码系统中密码算法的种类数,fcdc表示在第c种密码算法下所生成的密文数据子集,fcdc=(icd
rc1
,icd
rc2
,
…
,icd
rcq
),icd
rcd
表示在第c种密码算法下使用随机密钥kr对第d个随机明文文件加密所生成的密文文件,c=1,2,3
……
,j,d=1,2,3
……
,q。
52.s104:检测机构服务器s提取所述待检测密文数据集cd
nf
中的密文特征数据集cf
nf
并使用所述分类器clf进行密码算法识别,根据识别结果生成密码系统检测结果并发送给检测机构r。
53.作为一种可实施方式,本步骤包括以下步骤:
54.s1041:检测机构服务器s使用选取的x种密文特征提取算法对cd
nf
做密文特征提取,生成不带标签的密文特征集cf
nf
=(tfea1,tfea2,
…
,tfeaj);
55.其中,tfeac表示从fcdc中提取的密文特征子集,tfeac=(tf
c1
,tf
c2
,
…
,tf
cq
),tf
cd
表示从密文文件icd
rbd
中提取的密文特征子集,tf
cd
=(tfea
c1
,tfea
c2
,
…
,tfea
cdim
),dim为密文特征维数。
56.s1042:检测机构服务器s使用训练好的分类器clf对cf
nf
进行密码算法识别,生成识别结果数据集clf
result
=(ctr1,ctr2,
…
,ctrj);其中,ctri为分类器clf识别出的密码算法,i=1,2,3
……
,j。
57.s1043:检测机构服务器s根据clf
result
中的识别结果,对应im中的ca参数,生成密码系统检测结果cr
result
=(ir1,ir2,
…
,irk),其中,iro=(ctro,cao)o=1,2,3
……
,k。
58.本发明实施例提供的基于密文特征的通用密码算法识别方法,具有以下优点:
59.(1)能够在检测机构非物理接触加密设备的前提下,仅通过获得的密文文件完成密码系统的检测工作,保护待检测机构的隐私数据以及核心业务安全。
60.(2)支持多种密文特征提取方法以及机器学习分类算法,检测机构可根据实际需求选择适合的密文特征提取方法以及机器学习分类算法。
61.(3)训练分类器的密文特征集可维护以便后续工作使用,即在对分类器进行训练时可将之前在同种特征提取方法下生成的密文特征集加入到本次训练用的数据集中,以提高识别准确率。
62.(4)弥补了基于逆向工程识别技术的不足,为算法合规性检测提供新的技术手段和工具。
63.为了验证本发明所提供的通用密码算法识别方法的有效性,本发明还提供有下述实验。
64.一、实验对象及相关设置
65.选择由python的crypto密码算法库、openssl密码库以及gmssl国密密码库所提供的的aes,blowfish,camellia,cast,des,3des,rc2,sm4共8种密码算法的cbc模式作为密码算法识别研究对象,分为安全与不安全两类。其中blowfish,des,3des,rc2归为不安全的密码算法,而aes,camellia,cast,sm4归为安全的密码算法,称这8种算法及其安全性为检测信息数据集im。实验中所用的明文是由python的crypto加密模块,使用fortuna accumulator方法生成的随机数据,共产生1000个明文文件,每个大小均为512kb。加密密钥和初始化向量使用crypto的cipher加密模块生成,其中加密密钥选用固定16位字符串密钥。8种密码算法的基本参数设置如表1所示。
66.表1 8种密码算法的基本参数
67.密码算法密钥工作模式参数规模实现方式aes选定cbc固定参数cryptoblowfish选定cbc固定参数cryptocamellia选定cbc固定参数opensslcast选定cbc固定参数cryptodes选定cbc固定参数crypto3des选定cbc固定参数cryptorc2选定cbc固定参数cryptosm4选定cbc固定参数gmssl
68.实验过程中,检测机构r生成待检测信息数据集im并发送给检测机构服务器s,检测机构服务器s针对检测机构r发来的信息数据集im,使用生成的800份明文和im中包含的8种密码算法进行加密,每种加密算法得到的密文均为800份,总共产生6400份密文文本,然后检测机构服务器s基于表2中罗列的包括部分nist随机性测试和文献“李洪超.基于密文特征的密码算法识别研究[d].西安电子科技大学,2018”中提及的熵测试算法在内的14类共计40种特征开展密码算法识别任务,生成并维护带标签的密文特征数据集cff。通过随机森林算法来对特征进行筛选,筛选出重要性较高的特征,与未筛选过的特征分别进行密码算法分类识别任务,比较两种情景下的分类结果。分类器采用随机森林、逻辑回归、混合随机森林和逻辑回归算法构造密码算法识别分类器,并以提取到的各类密文特征数据作为分
类器的输入,对分类器模型进行训练。
[0069]
待检测机构服务器as使用200份明文和8种密码算法进行加密,每种密码算法得到密文均为200份,总共产生1600份密文,记为cd
nf
,并发送给检测机构服务器s,用来进行密码算法识别测试。检测机构服务器s用上述所提的特征提取方法对cd
nf
提取特征后,生成不带标签的密文特征集cf
nf
,将cf
nf
输入到上述训练好的分类器模型中,检测机构服务器s给出密码算法识别结果clf
result
,将测试识别的平均准确率作为识别效果的度量,完成对8种密码算法的识别分类任务,并生成密码系统检测结果cr
result
发送给检测机构r,最终判断密码系统的安全性。
[0070]
表2对密文提取的特征列表
[0071]
[0072][0073]
二、分类结果评价标准
[0074]
准确率(accuracy):被正确预测的样本占总样本的比例;
[0075]
精确率/查准率(precision):预测为true的样本中真正为true的比例;
[0076]
查全率/召回率(recall):所有正样本中能够被正确预测的比例;
[0077]
f1分数(f1-score),用来平衡查准率和查全率。
[0078]
通过使用混淆矩阵对模型进行评价,混淆矩阵共产生四种结果,即真阳性(tp)、真阴性(tn)、假阳性(fp)和假阴性(fn)。
[0079]
令tp、tn、fp、fn分别表示其对应的样本数,四种指标的计算方法如下:
[0080][0081][0082][0083][0084]
三、实验结果与分析
[0085]
针对提取到的40组特征,使用随机森林算法进行特征选择,根据特征的重要程度降序排列如表3所示。可以看出,第36组特征与第37组特征之间的重要程度相差跨度较大,可以认为后4组特征为无效冗余特征,因此选取特征重要程度大于0.024的36组特征作为特征选择后的特征。
[0086]
表3特征的重要程度降序排列
[0087]
[0088][0089]
将筛选出的特征重要程度大于0.024的特征构造为新的包含36组特征的特征集,与未进行特征选择的包含40组特征的特征集分别进行密码算法识别分类任务,三种分类算法及分类结果如表4所示,实验比较了准确度、精密度、召回率和f1得分。比较表4中的三种密码算法在两种类型特征下的识别准确率如图4所示。目前可以以最高23.1%的准确率从8种分组密码算法中识别出目标文件的加密算法,并判断其安全性,显著优于随机猜测12.5%的准确率。
[0090]
通过对比多种分类器在使用全部特征和仅使用重要程度大于0.024的特征两种情况下密码算法识别准确率的差异,可以发现rf的识别准确率提高了1%,lr的识别准确率提高了0.75%,hrflr的识别准确率提高了1.87%,在仅使用重要程度大于0.024的特征时的密码算法识别准确率均一定程度上优于使用全部特征时的密码算法识别准确率。这个结果表明当特征维度很高时,特征向量中包含了大量的无效特征和冗余特征,这些无效特征会降低分类器的性能。而在进行特征选择之后,筛选出在分类任务中更有效的特征,可以使分类器的识别效果更好。
[0091]
通过对比不同分类器在相同情况下的实验结果,可以发现随机森林算法和逻辑回归算法的密码算法识别准确率相差不大,随机森林算法的结果基本要稍好于逻辑回归,混合随机森林和逻辑回归算法的识别准确率要显著高于单一的随机森林和逻辑回归算法,说明不同分类器会对密码算法识别准确率产生一定的影响,基于集成学习的密码算法识别分
类器性能更优,更加适用于密码算法分类任务。
[0092]
同时实验结果表明本发明所提方案适用于商用密码应用安全性评估工作中的密码算法检测环节。
[0093]
表4三种分类算法对两种类型特征的密码算法识别结果
[0094][0095]
本发明主要应用于商用密码应用安全性评估工作中的密码算法检测环节,能够在检测机构非物理接触加密设备的前提下,仅通过获得的密文文件来有效地识别出用户密码系统中的密码算法,并判断其密码算法是否符合要求,以及其密码算法是否存在风险隐患。
[0096]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
转载请注明原文地址:https://tc.8miu.com/read-173.html