一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种密码算法识别方法及相关装置与流程

2022-09-15 05:34:31 来源:中国专利 TAG:


1.本技术涉及信息安全技术领域,尤其涉及一种密码算法识别方法及相关装置。


背景技术:

2.密码算法作为数据传输安全与否的核心,被广泛应用于通信网络、存储设备等多个领域,然而,随着密码算法的广泛应用,对于不同的密码算法,攻击者也会选择不同攻击方式进行攻击,因此,无论是要提高密码算法的安全性,还是要更好地进行密码分析工作,对密码算法的识别都是至关重要的。
3.目前,为了实现对密码算法的识别,出现了各式各样的密码算法的识别方法。
4.例如,在传统机器学习进行密码算法的识别过程中,首先获取待识别密码算法对应的加密码流(密文)和加密密码,再将加密码流和加密密码输入预先训练的神经网络,从而利用训练的神经网络对加密码流和加密密码对应的加密算法进行识别,进而得到加密码流和加密密码对应的预测加密算法。
5.然而,采用上述的密码算法识别方法,通过神经网络,识别出与加密码流和加密密码,对应的密码算法,会因传统机器学习通常是基于单一或者较少的统计特征,对密码算法进行识别,从而导致对密码算法的识别不准确。
6.因此,采用上述方式,密码算法的识别准确率较低。


技术实现要素:

7.本技术实施例提供了一种密码算法识别方法及相关装置,用以提高密码算法的识别准确率。
8.第一方面,本技术实施例提供了一种密码算法识别方法,所述方法包括:
9.获取密文数据;其中,密文数据是基于待识别密码算法加密的;
10.基于密文数据的序列特征,获得密文数据的随机特征向量;其中,随机特征向量表征:待识别密码算法的加解密方式;
11.分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量;
12.将目标特征向量对应的候选密码算法作为待识别密码算法。
13.第二方面,本技术实施例还提供了一种密码算法识别装置,所述装置包括:
14.获取模块,用于获取密文数据;其中,密文数据是基于待识别密码算法加密的;
15.生成模块,用于基于密文数据的序列特征,获得密文数据的随机特征向量;其中,随机特征向量表征:待识别密码算法的加解密方式;
16.筛选模块,用于分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量;
17.确定模块,用于将目标特征向量对应的候选密码算法作为待识别密码算法。
18.在一种可能的实施例中,在获取密文数据之前,所述生成模块还用于:
19.针对各种候选密码算法,分别执行以下操作:
20.获取基于一种候选密码算法加密的样本数据;
21.基于样本数据的序列特征,获得样本数据的候选特征向量;
22.将候选特征向量与一种候选密码算法关联保存至特征向量集合中。
23.在一种可能的实施例中,在基于样本数据的序列特征,获得样本数据的候选特征向量时,所述生成模块具体用于:
24.基于样本数据的编码类型,对编码序列进行特征统计,获得至少一个序列特征;
25.基于至少一个序列特征,获得样本数据的候选特征向量。
26.在一种可能的实施例中,在将候选特征向量与一种候选密码算法关联保存至特征向量集合中之后,所述生成模块还用于:
27.在设定时间范围内,基于预设的损失函数,对样本数据进行密码算法识别,并记录对样本数据的算法识别次数,以及记录识别结果为一种候选密码算法的正确识别次数;
28.基于算法识别次数和正确识别次数,获得一种候选密码算法的算法识别置信度;
29.若算法识别置信度小于预设的置信度阈值,则丢弃候选特征向量和一种候选密码算法。
30.在一种可能的实施例中,在分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量时,所述筛选模块具体用于:
31.分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,获得各随机特征向量各自对应的相似度排名;
32.基于获得的各个相似度排名,从各随机特征向量中,筛选出满足相似度条件的目标特征向量。
33.在一种可能的实施例中,在分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度时,所述筛选模块具体用于:
34.针对各候选特征向量,分别执行以下操作:
35.基于预设的各个分类器,获得一个候选特征向量与随机特征向量之间的各个子相似度;其中,每个子相似度表征:一个候选特征向量与随机特征向量中,一组特征属性维度之间的相似性程度;
36.基于获得的各个子相似度,获得一个候选特征向量与随机特征向量的向量相似度。
37.第三方面,提出了一种电子设备,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述第一方面所述的密码算法识别方法的步骤。
38.第四方面,提出一种计算机可读存储介质,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行上述第一方面所述的密码算法识别方法的步骤。
39.第五方面,提供一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行如第一方面所述的密码算法识别方法步骤。
40.本技术有益效果如下:
41.在本技术实施例所提供的密码算法识别方法中,获取基于待识别密码算法加密的密文数据;接着,基于密文数据的序列特征,获得密文数据的随机特征向量,其中,随机特征向量表征:待识别密码算法的加解密方式;进一步地,分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量;最终,将目标特征向量对应的候选密码算法作为待识别密码算法。
42.采用这种方式,根据密文数据的序列特征,获得密文数据的随机特征向量,从而基于各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量,进而将目标特征向量对应的候选密码算法作为待识别密码算法,避免了现有技术中,因传统机器学习通常是基于单一或者较少的统计特征,对密码算法进行识别,从而导致对密码算法的识别不准确的技术弊端,故而,提高了密码算法的识别准确率。
43.此外,本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
44.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
45.图1示例性示出了本技术实施例提供的一种训练模型的模型训练整体流程示意图;
46.图2示例性示出了本技术实施例提供的一种获得各种候选密码算法及其各自对应的候选特征向量之间的对应关系的方法流程示意图;
47.图3示例性示出了本技术实施例提供的一种构建分类器的逻辑示意图;
48.图4示例性示出了本技术实施例提供的一种是否保留候选特征向量及其对应候选密码算法的逻辑示意图;
49.图5示例性示出了本技术实施例提供的一种密码算法识别方法的方法流程示意图;
50.图6示例性示出了本技术实施例提供的一种获取目标特征向量的具体应用场景示意图;
51.图7示例性示出了本技术实施例提供的一种获取向量相似度的逻辑示意图;
52.图8示例性示出了本技术实施例提供的一种获取向量相似度的具体应用场景示意图;
53.图9示例性示出了本技术实施例提供的一种基于图5的具体应用场景示意图;
54.图10示例性示出了本技术实施例提供的一种密码算法识别装置的结构示意图;
55.图11示例性示出了本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
56.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例
中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本技术文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术技术方案保护的范围。
57.需要说明的是,在本技术的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。a与b连接,可以表示:a与b直接连接和a与b通过c连接这两种情况。另外,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
58.此外,本技术技术方案中,对数据的采集、传播、使用等,均符合国家相关法律法规要求。
59.(1)密码体制识别:密码体制也称之为密码系统,是指完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的一个系统,对于一个密码体制的正确描述,需要用数学方法清楚地描述其中的各种对象、参数、解决问题所使用的算法等。因此,密码体制识别即对密码系统中的使用的密码算法的识别,是基于密文的某些特征在机器的辅助下识别出密文使用了何种密码算法,为了便于描述,本文中,密码体制识别也称为密码算法识别。
60.(2)分组密码:将明文分成多个等长的块(block),这些块也被称为分组,加密和解密过程就是在这些等长的分组上,进行替代操作、换位操作或移位、异或等操作,替代操作将明文中的字符用密文字符或其他字符替代,换位操作则是将分组中的字符简单的置换,需要说明的是,分组密码加密或解密后的明文数据与密文数据的长度保持不变。
61.(3)流密码:采用伪随机序列来代替随机序列作为密钥。在流密码中,密钥生成算法以主密钥为种子,产生大量的伪随机序列作为密钥流,明文数据与密钥流中的数据顺次对应加密,得到密文数据。解密过程中则用同样的方法生成密钥流,进行密文数据的解密。
62.(4)电子密码本(英文:electronic code book,缩写:ecb):ecb模式下,在加密过程中使用相同的密钥分别对每一分块进行加密,相同的明文数据经过加密后的密文数据会相同,使得该工作模式在某些情况下,并不能提供完整的数据保密性。
63.(5)密文分组链接(英文:cipher block chaining,缩写:cbc):cbc模式下,首先令未加密的明文块与前一个已经加密的密文块进行异或操作,之后再进行加密。相比于ecb模式,具有更高的保密性。
64.下面对本技术实施例的设计思想进行简要介绍:
65.目前,随着大数据、人工智能和物联网等技术的发展,信息安全已经成为越来越多谈论关注的焦点,其中,密码算法是信息安全中不可或缺的因素,其安全性直接影响到数据传输、存储、身份认证等环节。
66.进一步地,随着计算机和通信技术的发展,信息技术在日常生活中的应用越来越广泛。大量的信息通过互联网等公共通信系统传输和存储,故而,对于敏感信息的保护也变得越来越重要。
67.为了保证信息存储和通信过程的安全,各种密码算法被广泛应用在网络通信、存储设备等领域。随着密码算法的广泛应用,密码体制的安全性也备受关注,对于不同的密码
体制,攻击者也会选择不同的攻击方法进行攻击。由此可见,无论是要提高密码算法的安全性还是更好地进行密码分析的工作,对密码算法的识别都是必要的。
68.因此,为了更好的进行敏感信息安全的保护,分析与识别保密系统所采用的密码算法,对于评估信息系统安全性、密码分析和攻击、非法通信监控、恶意代码识别等有着重要的理论意义。同时,抵抗密码算法识别的能力也可作为衡量密码算法安全性的一种指标,为密码算法设计提供一定的参考。
69.在现有技术中,传统密码算法的识别包括以下两个方面:
70.1、通过软件逆向工程的方法,反编译软件中可执行程序的代码,或逆向分析硬件的电路结构,分析软件或硬件中所使用的密码算法。
71.2、基于密文数据特征的识别方案。
72.其中,基于软件的反汇编代码,识别软件中的密码算法的技术已被广泛应用在各类安全审计中,但该方法要求分析者必须拥有被分析的软件或硬件实体,其应用场景有限,且其研究方法不属于密码分析学的范畴。
73.此外,由于密码算法具有扩散和混淆两个重要特性,扩散和混淆使明文数据和密钥的特征被隐藏在由密码算法生成的近似随机的数据中,故而,不同的密码算法所产生的密文数据在统计特性上具有一定的差异,这些差异可以作为密码算法识别的重要依据,因此,后续很多研究都采用基于密文数据特征的识别方案。
74.然而,目前基于密文数据特征的密码算法识别研究较少,且大多基于统计特征和单一的分类、聚类方法,缺少对于多维度随机性特征的提取。
75.有鉴于此,为了提高了密码算法的识别准确率,本技术实施例中,提出了一种基于集成学习的密码算法识别方法,具体包括:获取基于待识别密码算法加密的密文数据;接着,基于密文数据的序列特征,获得密文数据的随机特征向量,其中,随机特征向量表征:待识别密码算法的加解密方式;进一步地,分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量;最终,将目标特征向量对应的候选密码算法作为待识别密码算法。
76.特别地,以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术实施例及实施例中的特征可以相互组合。
77.参阅图1所示,其为本技术实施例提供的一种训练模型的模型训练整体流程示意图,该模型训练整体流程示意图包括:数据加密模块101、特征提取模块102以及集成学习模块103,其中,数据加密模块101与特征提取模块102连接,特征提取模块102与集成学习模块103连接,需要说明的是,该训练模型用于密码算法的识别。
78.此外,本技术实施例对上述模块的数量不做任何限制,如图1所示,仅以数据加密模块101、特征提取模块102以及集成学习模块103为例进行描述,下面对上述各模块及其各自的功能进行简要介绍。
79.数据加密模块101用于接收目标终端发送的明文数据和数据加密请求,并从数据加密请求中,获得相应密码算法的标识信息;接着,从预设的密码算法集合中,选取出与标识信息相匹配的目标密码算法;最终,按照目标密码算法,对明文数据进行加密,获得相应的密文数据。
80.具体的,为了实现密码算法识别,首先需要构建输入数据,输入数据是将明文数据经过n种密码算法进行加密得到的密文数据,由于涉及到密码算法,所以需要对密码算法进行配置,例如:密码算法的工作模式(ecb或cbc)、训练阶段和测试阶段的密钥选择,不同的选择会对效果有着一定的影响。以最好效果为例,即所有的密码算法都选择ecb工作模式,并且训练阶段和测试阶段对同一密码算法加密的密文数据都使用相同的密钥,其中,密文数据的生成表达式具体如下:
81.edatai=encrypt(datai)
82.其中,edatai表示密文数据,datai表示明文数据,encrypt(*)表示对明文数据datai进行加密的密码算法。
83.由此可见,数据加密模块101的输入为明文数据,输出为密文数据,且存储了各种候选密码算法,可用于对输入的明文数据进行加密处理,获得相应的密文数据,以便后续训练模型的密码算法识别。
84.特征提取模块102用于对数据加密模块101输出的密文数据进行随机特征提取,即获取到基于待识别密码算法加密的密文数据之后,基于密文数据的序列特征,获得密文数据的随机特征向量;其中,随机特征向量表征:待识别密码算法的加解密方式。
85.需要说明的是,本技术实施例中,采用的随机特征是nist随机性特征其中的部分测试的统计特征,将得到的密文数据输入进特征提取模块,分别运行不同的nist随机性测试,得到密文数据的测试返回值,并将获得的各个测试返回值作为密文数据的特征数据值,从而得到相应的随机特征向量。
86.在此过程中,考虑到密文分块时,可能带来的密文数据损失并且需保证密文块需要符合随机性测试的长度要求,故针对nist中的16种随机试验进行特征选择,并提取同一测试的多维随机性测试返回值作为特征数据值,从而有效的丰富密文特征信息,相较于直接使用16种随机测试的结果作为特征,本技术实施例,通过密文分块及特征筛选找出贡献度较大的特征,最终构建14维高质量特征信息。
87.由此可见,特征提取模块102的输入为密文数据,输出为随机特征向量,且存储了各种nist随机性测试手段,可用于对输入的密文数据进行随机性特征提取,获得相应的随机特征向量,以便后续训练模型的密码算法识别。
88.集成学习模块103用于对特征提取模块输出的随机特征向量进行向量匹配,从而确定待识别密码算法的类别,即分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量。
89.下面结合上述的训练模型整体流程,以及参考附图来描述本技术示例性实施方式提供的密码算法识别方法,需要注意的是,上述系统架构仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。
90.需要说明的是,在训练模型获取到的基于待识别密码算法加密的密文数据之前,训练模型需要预先获得各种候选密码算法及其各自对应的候选特征向量之间的对应关系,参阅图2所示,针对各种候选密码算法,分别执行以下操作:
91.s201:获取基于一种候选密码算法加密的样本数据。
92.具体的,在执行步骤s201时,训练模型可从数据加密模块,获得基于上述一种候选密码算法加密的样本数据。
93.s202:基于样本数据的序列特征,获得样本数据的候选特征向量。
94.具体的,在执行步骤s202时,训练模型在获取到样本数据之后,基于样本数据的编码类型,以及特征提取模块,对编码序列进行特征统计,获得至少一个序列特征,从而基于至少一个序列特征,获得样本数据的候选特征向量。
95.需要说明的是,本技术实施例中,编码类型可为样本数据采用的进制编码类型,本文中,样本数据采用二进制编码为例进行描述,即样本数据的数据编码包括“0”码和“1”码。
96.示例性的,训练模型可通过特征提取模块,获取样本数据的编码数据对应的14个序列特征,具体如下:
97.a.频率检验(frequency test):该检验主要是看0和1在整个编码序列中所占的比例。该检验的目的是,确定序列中的1和0数,是否与真正的理想随机序列中的1和0数近似相同,简记为:f
frequency

98.b.块内频数检验(frequency test within a block):此检验主要是看长度为m位的子块中“1”码的比例,其中,m为大于2的任意整数。该检验的目的是,判定m位的子块内“1”码的频率,是否跟理想随机序列的那样近似于m/2,在文中,分别将密文数据分为32、64和128块,执行该测试提取得到的特征有:32维、64维、128维,依次简记为:f
fwb32
、f
fwb64
、f
fwb128

99.c.游程检验(runs test):此检验主要是看在整个编码序列中游程的总数,游程指的是一个没有间断的相同数序列,即游程或者是“1111”或者是“0000”,一个长度为k的游程包含k个相同的位。该检测的目的是,判定不同长度的“1”游程的数目以及“0”游程的数目,是否跟理想随机序列的期望值相一致。
100.具体的讲,就是该检验手段判定在这样的“0”、“1”子块之间的振荡是否太快或太慢,简记为:f
runs

101.d.块内最长游程检验(test for the longest run of ones in a block):该检验主要是看长度为m位的子块中的最长“1”游程,该检验的目的是,判定待检验序列的最长“1”游程的长度,是否同理想随机序列的相同,简记为:f
lrob

102.e.二元矩阵秩检验(binary matrix rank test):该检验主要是看在整个编码序列中的分离子矩阵的秩。该检验目的是,核对源序列中固定长度子链间的线性依赖关系,本文中,分别将密文分为32、64块,执行该测试提取得到的特征有:32维、64维、共2种,依次简记为:f
bmr32
、f
bmr64

103.f.线性复杂度检验(linear complexity test):此检验主要是看线性反馈移位寄存器的长度。该检验的目的是,判定编码序列的复杂程度,是否达到可视为是理想随机序列的程度,其中,理想随机序列的特点是有较长的线性反馈移位寄存器,若一个线性反馈移位寄存器太小的话,则意味着该编码序列非随机,简记为:f
lc

104.g.序列检验(serial test):该检验主要是看整个编码序列中所有可能的重叠m位子块的频率。该检验的目的是,判定各个m位重叠子块的数目,是否跟理想随机序列情况下预期的值相近似,其中,理想随机序列具有均匀性,即对于每个m位子块出现的概率应该是一样的,简记为:f
serial

105.h.近似熵检验(approximate entropy test):此检验同序列检验一样,近似熵检验主要看整个编码序列中所有可能的重叠m位子块的频率。该检验的目的是,将两相邻长度为m位的重叠子块的频数与随机情况下预期的频数相比较,简记为:f
ae

106.i.累加和检验(cumulative sums test):该检验主要是看随机游动的最大偏移,其中,随机游动被定义为序列中调整后的-1, 1的累加和。该检验的目的是,判定整个编码序列的累加和,相对于预期的累加和过大还是过小,故而,这个累加和可视作随机游动,需要说明的是,对于理想随机序列,随机游动的偏离应该在0附近,而对于非随机序列,这个随机游动偏离将会比0大很多,简记为:f
cs

107.j.随机游动检验(random excursions test):此检验主要是看一个累加和随机游动中,具有k个节点的循环的个数,累加和随机游动由于将关于“0”,“1”的部分和序列转化成适当的
“‑
1”、“ 1”序列产生的,故而,一个随机游动循环由单位步长的一个序列组成,这个序列的起点和终点均是0。该检验的目的是,确定在一个循环内的特殊状态对应的节点数,是否与在随机序列中预计达到的节点数相背离,简记为:f
re

108.k.随机游动状态频数检验(random excursions variant test):该检验主要是看累计和随机游动中经历的特殊状态的总数。该检验目的是,判定随机游动中实际经历多个状态的值与预期值之间的偏离程度,简记为:f
rev

109.综上,将密文数据经过上述特征提取模块,得到对应的候选特征向量,具体表示方式如下:
110.fi=[f
frequency.i
,f
fwb32.iffwb64.i
,f
fwb128.i
,f
runs.i
,f
lrob.i
,f
bmr32.i
,
[0111]fbmr64.i
,f
lc.i
,f
serial.i
,f
ae.i
,f
cs.i
,f
re.i
,f
rev.i
]
[0112]
其中,fi表示候选密码算法i对应的候选特征向量。
[0113]
示例性的,上述一种密码算法的候选特征向量可表示为:
[0114]
f1=[f
frequency.1
,f
fwb32.1ffwb64.1
,f
fwb128.1
,f
runs.1
,f
lrob.1
,f
bmr32.1
,
[0115]fbmr64.1
,f
lc.1
,f
serial.1
,f
ae.1
,f
cs.1
,f
re.1
,f
rev.1
]
[0116]
s203:将候选特征向量与一种候选密码算法关联保存至特征向量集合中。
[0117]
具体的,在执行步骤s203时,训练模型在获得样本数据的候选特征向量之后,将候选特征向量与上述一种候选密码算法进行关联,即构建候选特征向量与上述一种候选密码算法之间的对应关系,并将候选特征向量与上述一种候选密码算法保存至特征向量集合中。
[0118]
此外,参阅图3所示,训练模型在构造完随机特征向量之后,便需要构造分类器,在本技术实施例中,提供了一种集成学习算法,集成学习会组合多种分类器来完成学习任务,即首先生成一批个体分类器,之后再利用特定策略将它们结合起来,个体分类器的学习过程与正常情形时的学习流程相同,即利用训练数据集训练学习算法,通过将多个体分类器组合起来,得到一个强分类器,使得集成学习得到比只使用单一的分类器更好的泛化性能。
[0119]
目前,可将集成学习方法分为两大类:boosting、bagging,在本技术实施例中使用的是:极端梯度提升(英文extreme gradient boosting,xgboost)算法分类器,也简称为xgboost分类器,较单一的分类器有着明显的效果提升,同时与其余集成学习方法也有一定的优势。
[0120]
具体的,首先从训练数据中训练一个基分类器,再根据基分类器的表现对训练样本进行调整,使之前基分类器验证出错的训练样本受到更多的关注,从而基于调整后的样本分布来训练下一个分类器,如此重复进行,直至基分类器的数目达到指定的值,最后将所有的基分类器加权结合。
[0121]
进一步地,将上述的随机特征向量,输入xgboost分类器,便可基于候选随机向量与密码算法之间的对应关系,获得随机特征向量对应的待识别密码算法的种类,其中,具体映射关系如下:
[0122]mtrain
=xgboost(fi)
[0123]
其中,m
train
表示训练得到的候选密码算法,fi表示候选随机密码i对应的候选特征向量。
[0124]
可选的,基于上述的候选特征向量的生成,以及候选特征向量与候选密码算法之间建立关联之后,参阅图4所示,训练模型还可在设定时间范围内,基于预设的损失函数,对样本数据进行密码算法识别,并记录对样本数据的算法识别次数,以及记录识别结果为上述一种候选密码算法的正确识别次数;接着,基于算法识别次数和正确识别次数,获得一种候选密码算法的算法识别置信度;最终,若算法识别置信度小于预设的置信度阈值,则丢弃候选特征向量和上述一种候选密码算法,若算法识别置信度不小于预设的置信度阈值,则保留候选特征向量和上述一种候选密码算法。
[0125]
需要说明的是,为了提高密码算法的识别准确率,本技术实施例所提供的损失函数(loss函数),是在交叉熵loss基础上的变种focal loss,旨在解决在真实场景下,可能会存在训练样本不均衡的情况。focal loss本质上就是一个解决分类问题中样本不平衡、分类难度差异的一个loss,对于那些原本预测置信度不好的样本,保留交叉熵损失中的大部分损失,对于那些原本预测置信度很好地样本,大幅减小其交叉熵损失,这样,训练模型会更加专注于优化样本少的那些损失,其具体公式如下:
[0126][0127]
其中,y
ture
=1表示预测正确标签即正样本;y
ture
=0表示预测错误标签即负样本;y
pred
表示预测概率;α和γ可根据实际情况设置,在本技术实施例中,α=2和γ=0.25,其中,α主要用来平衡正负样本自身的比例不均,即负样本越多,则α越小,这样就可以降低负样本的影响,γ主要用来调节简单样本权重降低的速率,起到了平滑作用。
[0128]
示例性的,假定训练模型在设定的5min内,基于focal loss函数,对上述样本数据进行密码算法识别,并记录对样本数据的算法识别次数为500次,以及记录识别结果为上述一种候选密码算法的正确识别次数498次,则易知上述一种候选密码算法的算法识别置信度为99.6%;进一步地,假定预设的置信度阈值为95%,可知算法识别置信度99.6%不小于预设的置信度阈值95%,则保留候选特征向量和上述一种候选密码算法。
[0129]
可选的,假定训练模型在设定的5min内,基于focal loss函数,对上述样本数据进行密码算法识别,并记录对样本数据的算法识别次数为500次,以及记录识别结果为上述一种候选密码算法的正确识别次数465次,则易知上述一种候选密码算法的算法识别置信度为93%;进一步地,仍以预设的置信度阈值为95%为例,可知算法识别置信度93%小于预设的置信度阈值95%,则丢弃候选特征向量和上述一种候选密码算法,此外,需进一步提供对于该候选密码算法的识别准确度。
[0130]
进一步地,基于上述的方法步骤,训练模型便可对实时获取到的基于待识别密码算法加密的密文数据进行密码算法识别,参阅图5所示,其为本技术实施例提供的一种密码
算法识别方法的方法实施流程图,该方法的具体实施流程如下:
[0131]
s501:获取密文数据。
[0132]
具体的,在执行步骤s501时,训练模型可从数据加密模块,获得基于待识别密码算法加密的密文数据。
[0133]
s502:基于密文数据的序列特征,获得密文数据的随机特征向量。
[0134]
具体的,在执行步骤s502时,训练模型在获取到密文数据之后,可基于样本数据的编码类型,以及特征提取模块,对编码序列进行特征统计,获得密文数据的至少一个序列特征,从而基于获得的至少一个序列特征,获得密文数据的随机特征向量;其中,随机特征向量表征:待识别密码算法的加解密方式。
[0135]
示例性的,基于上述向量表示方法,密文数据的随机特征向量可表示为:
[0136]fs
=[f
frequency.s
,f
fwb32.s
,f
fwb64.s
,f
fwb128.s
,f
runs.s
,f
lrob.s
,f
bmr32.s
,
[0137]fbmr64.s
,f
lc.s
,f
serial.s
,f
ae.s
,f
cs.s
,f
re.s
,f
rev.s
]
[0138]
s503:分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量。
[0139]
具体的,参阅图6所示,在执行步骤s503时,训练模型在获取到随机特征向量之后,分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,获得各随机特征向量各自对应的相似度排名,再基于获得的各个相似度排名,从各随机特征向量中,筛选出满足相似度条件的目标特征向量。
[0140]
需要说明的是,参阅图7所示,训练模型在获取预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度的过程中,针对各候选特征向量,分别执行以下操作:基于预设的各个分类器,获得一个候选特征向量与随机特征向量之间的各个子相似度,其中,每个子相似度表征:一个候选特征向量与随机特征向量中,一组特征属性维度之间的相似性程度;最终,基于获得的各个子相似度,获得一个候选特征向量与随机特征向量的向量相似度。
[0141]
需要指出的是,此处的各分类器为上述训练过程构建的xgboost分类器对应的各基分类器。
[0142]
示例性的,参阅图8所示,其为本技术实施例提供的一种获取向量相似度的具体应用场景示意图,训练模型基于预设的各个分类器(比如,classifier1、classifier1、classifier2、classifier3和classifier4),获得一个候选特征向量canfeat.vector和随机特征向量raneigen.vector之间的各个子相似度,依次记作:sub.sim1、sub.sim2、sub.sim3和sub.sim4,从而基于获得的各个子相似度(sub.sim1、sub.sim2、sub.sim3和sub.sim4),获得一个canfeat.vector和随机特征向量raneigen.vector的向量相似度vector.sim,其中,向量相似度的计算公式具体如下:
[0143]
βv=μ1β1 μ2β2 μ3β3 μ4β4[0144]
其中,βv表示向量相似度vector.sim,β1、β2、β3和β4依次表示子相似度sub.sim1、sub.sim2、sub.sim3和sub.sim4,μ1、μ2、μ3和μ4依次表示分类器classifier1、classifier2、classifier3、和classifier4各自对应的加权因子,且μ1 μ2 μ3 μ4=1,均可根据实际情况进行设定。
[0145]
s504:将目标特征向量对应的候选密码算法作为待识别密码算法。
[0146]
具体的,在执行步骤s504时,训练模型再获取到目标特征向量之后,基于候选特征向量与候选密码算法之间的对应关系,确定目标特征向量对应的候选密码算法,并将目标特征向量对应的候选密码算法作为待识别密码算法。
[0147]
进一步地,基于上述的方法步骤,参阅图9所示,其为本技术实施例提供的一种密码算法识别的具体应用场景示意图,训练模型通过数据加密模块,在获取基于待识别密码算法iden.pass.al加密的密文数据ciphertext.data之后,便可根据特征提取模块,基于密文数据ciphertext.data的序列特征seq.chars,获得相应的随机特征向量raneigen.vector,再根据集成学习模块,分别基于预设的特征向量集合中各候选特征向量(比如,raneigen.vector1、raneigen.vector2、raneigen.vector3和raneigen.vector4),各自与随机特征向量之间的向量相似度,依次为:92%、87%、99%、78%,筛选出满足预设的相似度条件simi.condition的目标特征向量raneigen.vector3,进而将目标特征向量raneigen.vector3对应的候选密码算法can.cryp.al3作为待识别密码算法iden.pass.al。
[0148]
综上所述,在本技术实施例所提供的密码算法识别方法中,获取基于待识别密码算法加密的密文数据;接着,基于密文数据的序列特征,获得密文数据的随机特征向量,其中,随机特征向量表征:待识别密码算法的加解密方式;进一步地,分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量;最终,将目标特征向量对应的候选密码算法作为待识别密码算法。
[0149]
采用这种方式,根据密文数据的序列特征,获得密文数据的随机特征向量,从而基于各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量,进而将目标特征向量对应的候选密码算法作为待识别密码算法,避免了现有技术中,因传统机器学习是基于单一或者较少的统计特征,对密码算法进行识别,从而导致对密码算法的识别不准确的技术弊端,故而,提高了密码算法的识别准确率。
[0150]
进一步地,基于相同的技术构思,本技术实施例还提供了一种密码算法识别装置,该密码算法识别装置用以实现本技术实施例的上述的密码算法识别方法流程。参阅图10所示,该密码算法识别装置包括:获取模块1001、生成模块1002、筛选模块1003以及确定模块1004,其中:
[0151]
获取模块1001,用于获取密文数据;其中,密文数据是基于待识别密码算法加密的;
[0152]
生成模块1002,用于基于密文数据的序列特征,获得密文数据的随机特征向量;其中,随机特征向量表征:待识别密码算法的加解密方式;
[0153]
筛选模块1003,用于分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量;
[0154]
确定模块1004,用于将目标特征向量对应的候选密码算法作为待识别密码算法。
[0155]
在一种可能的实施例中,在获取密文数据之前,所述生成模块1002还用于:
[0156]
针对各种候选密码算法,分别执行以下操作:
[0157]
获取基于一种候选密码算法加密的样本数据;
[0158]
基于样本数据的序列特征,获得样本数据的候选特征向量;
[0159]
将候选特征向量与一种候选密码算法关联保存至特征向量集合中。
[0160]
在一种可能的实施例中,在基于样本数据的序列特征,获得样本数据的候选特征向量时,所述生成模块1002具体用于:
[0161]
基于样本数据的编码类型,对编码序列进行特征统计,获得至少一个序列特征;
[0162]
基于至少一个序列特征,获得样本数据的候选特征向量。
[0163]
在一种可能的实施例中,在将候选特征向量与一种候选密码算法关联保存至特征向量集合中之后,所述生成模块1002还用于:
[0164]
在设定时间范围内,基于预设的损失函数,对样本数据进行密码算法识别,并记录对样本数据的算法识别次数,以及记录识别结果为一种候选密码算法的正确识别次数;
[0165]
基于算法识别次数和正确识别次数,获得一种候选密码算法的算法识别置信度;
[0166]
若算法识别置信度小于预设的置信度阈值,则丢弃候选特征向量和一种候选密码算法。
[0167]
在一种可能的实施例中,在分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,筛选出满足预设的相似度条件的目标特征向量时,所述筛选模块1003具体用于:
[0168]
分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度,获得各随机特征向量各自对应的相似度排名;
[0169]
基于获得的各个相似度排名,从各随机特征向量中,筛选出满足相似度条件的目标特征向量。
[0170]
在一种可能的实施例中,在分别基于预设的特征向量集合中各候选特征向量,各自与随机特征向量之间的向量相似度时,所述筛选模块1003具体用于:
[0171]
针对各候选特征向量,分别执行以下操作:
[0172]
基于预设的各个分类器,获得一个候选特征向量与随机特征向量之间的各个子相似度;其中,每个子相似度表征:一个候选特征向量与随机特征向量中,一组特征属性维度之间的相似性程度;
[0173]
基于获得的各个子相似度,获得一个候选特征向量与随机特征向量的向量相似度。
[0174]
基于相同的技术构思,本技术实施例还提供了一种电子设备,该电子设备可实现本技术上述实施例提供的密码算法识别方法流程。在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。如图11所示,该电子设备可包括:
[0175]
至少一个处理器1101,以及与至少一个处理器1101连接的存储器1102,本技术实施例中不限定处理器1101与存储器1102之间的具体连接介质,图11中是以处理器1101和存储器1102之间通过总线1100连接为例。总线1100在图11中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1100可以分为地址总线、数据总线、控制总线等,为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器1101也可以称为控制器,对于名称不做限制。
[0176]
在本技术实施例中,存储器1102存储有可被至少一个处理器1101执行的指令,至少一个处理器1101通过执行存储器1102存储的指令,可以执行前文论述的一种密码算法识别方法。处理器1101可以实现图10所示的装置中各个模块的功能。
[0177]
其中,处理器1101是该装置的控制中心,可以利用各种接口和线路连接整个该控
制设备的各个部分,通过运行或执行存储在存储器1102内的指令以及调用存储在存储器1102内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
[0178]
在一种可能的设计中,处理器1101可包括一个或多个处理单元,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。在一些实施例中,处理器1101和存储器1102可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0179]
处理器1101可以是通用处理器,例如cpu、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的一种密码算法识别方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0180]
存储器1102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1102可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器1102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器1102还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0181]
通过对处理器1101进行设计编程,可以将前述实施例中介绍的一种密码算法识别方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图5所示的实施例的一种密码算法识别方法的步骤。如何对处理器1101进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0182]
基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种密码算法识别方法。
[0183]
在一些可能的实施方式中,本技术提供一种密码算法识别方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种密码算法识别方法中的步骤。
[0184]
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
[0185]
此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的
结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0186]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0187]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个服务器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0188]
可使用一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如java、c 等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。
[0189]
在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算装置,或者,可以连接到外部计算装置(例如,利用因特网服务提供商来通过因特网连接)。
[0190]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0191]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0192]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献