一种基于神经网络的加密算法识别方法和装置与流程

文档序号:29424902发布日期:2022-03-26 14:55阅读:282来源:国知局
一种基于神经网络的加密算法识别方法和装置与流程

1.本技术涉及数据处理技术领域,尤其涉及一种基于神经网络的加密算法识别方法和装置。


背景技术:

2.数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。目前的加解密方案五花八门,且必须一一对应,如何准确、便捷地识别加密算法成为亟需解决的技术问题。


技术实现要素:

3.鉴于上述问题,提出了本技术以便提供一种克服上述问题或者至少部分地解决上述问题的基于神经网络的加密算法识别方法和装置,可以准确、便捷地识别加密算法。所述技术方案如下:
4.第一方面,提供了一种基于神经网络的加密算法识别方法,该方法包括以下步骤:
5.获取待识别加密算法对应的加密码流和加密密码;
6.将所述加密码流和加密密码输入预先训练的神经网络,利用所述训练的神经网络对所述加密码流和加密密码对应的加密算法进行识别,得到所述加密码流和加密密码对应的预测加密算法。
7.在一种可能的实现方式中,所述方法还包括:
8.构建初始神经网络,获取样本加密码流和样本加密密码及对应的实际加密算法;
9.将所述样本加密码流和样本加密密码输入所述初始神经网络,利用所述初始神经网络对所述样本加密码流和样本加密密码对应的加密算法进行预测,得到预测加密算法;
10.根据所述预测加密算法与所述样本加密码流和样本加密密码对应的实际加密算法进行比对,得到训练的神经网络的一次训练准确度;
11.以此类推,继续获取其它样本加密码流和其它样本加密密码及对应的实际加密算法,利用所述其它样本加密码流和其它样本加密密码对训练的神经网络继续进行训练,每次训练后都求取对应的训练准确度;
12.在训练的过程中判断训练准确度的变化是否小于预设阈值,若是,则停止训练,得到最后训练的神经网络;若否,则继续训练,直至训练准确度的变化小于预设阈值。
13.在一种可能的实现方式中,利用下面的公式根据所述预测加密算法与所述样本加密码流和样本加密密码对应的实际加密算法进行比对,得到训练的神经网络的一次训练准确度:
14.15.其中μ(t)表示神经网络经过第t次训练后的训练准确度;d
t,a
(i)表示神经网络经过第t次训练后将第a个加密算法的加密码流和加密密码进行输入后输出的解密码流中的第i个二进制数值;sa(i)表示第a个加密算法的未加密码流中的第i个二进制数值;n表示第a个加密算法的未加密码流中二进制数的位数;δ{}表示零检验函数,若括号内的数值为0时函数值为1,反之为0;m表示加密算法的总数;
16.当t=1时,即为训练的神经网络的一次训练准确度μ(1)。
17.在一种可能的实现方式中,利用下面的公式在训练的过程中判断训练准确度的变化是否小于预设阈值,并控制训练的神经网络的训练使能:
[0018][0019]
其中h(k)表示神经网络经过第k次训练后的训练使能控制值;μ(k)表示神经网络经过第k次训练后的训练准确度;μ(k-b)表示神经网络经过第k-b次训练后的训练准确度;
[0020]
若h(k)=1表示神经网络的训练使能为开启状态,则对神经网络继续进行训练;
[0021]
若h(k)=0表示神经网络的训练使能为关闭状态,则对神经网络停止训练;神经网络对样本加密码流和样本加密密码及对应的实际加密算法都至少要训练5次,并且在训练5次后计算对应的训练准确度。
[0022]
在一种可能的实现方式中,利用下面的公式根据神经网络的训练次数以及神经网络的每一次训练准确度判断神经网络的学习算法是否需要加入优化算法进行优化:
[0023][0024]
其中r表示神经网络的学习算法的优化算法使能控制值;k0表示神经网络的最终训练次数;μ(k
0-5)表示神经网络第k
0-5次训练后的准确度;
[0025]
若r=1表示神经网络的学习算法的优化算法使能打开,即需要加入优化算法对神经网络进行优化;
[0026]
若r=0表示神经网络的学习算法的优化算法使能关闭,即不需要加入优化算法对神经网络进行优化。
[0027]
第二方面,提供了一种基于神经网络的加密算法识别装置,包括:
[0028]
获取模块,用于获取待识别加密算法对应的加密码流和加密密码;
[0029]
识别模块,用于将所述加密码流和加密密码输入预先训练的神经网络,利用所述训练的神经网络对所述加密码流和加密密码对应的加密算法进行识别,得到所述加密码流和加密密码对应的预测加密算法。
[0030]
在一种可能的实现方式中,所述装置还包括训练模块,用于构建初始神经网络,获取样本加密码流和样本加密密码及对应的实际加密算法;
[0031]
将所述样本加密码流和样本加密密码输入所述初始神经网络,利用所述初始神经
网络对所述样本加密码流和样本加密密码对应的加密算法进行预测,得到预测加密算法;
[0032]
根据所述预测加密算法与所述样本加密码流和样本加密密码对应的实际加密算法进行比对,得到训练的神经网络的一次训练准确度;
[0033]
以此类推,继续获取其它样本加密码流和其它样本加密密码及对应的实际加密算法,利用所述其它样本加密码流和其它样本加密密码对训练的神经网络继续进行训练,每次训练后都求取对应的训练准确度;
[0034]
在训练的过程中判断训练准确度的变化是否小于预设阈值,若是,则停止训练,得到最后训练的神经网络;若否,则继续训练,直至训练准确度的变化小于预设阈值。
[0035]
在一种可能的实现方式中,所述训练模块还用于:
[0036]
利用下面的公式根据所述预测加密算法与所述样本加密码流和样本加密密码对应的实际加密算法进行比对,得到训练的神经网络的一次训练准确度:
[0037][0038]
其中μ(t)表示神经网络经过第t次训练后的训练准确度;d
t,a
(i)表示神经网络经过第t次训练后将第a个加密算法的加密码流和加密密码进行输入后输出的解密码流中的第i个二进制数值;sa(i)表示第a个加密算法的未加密码流中的第i个二进制数值;n表示第a个加密算法的未加密码流中二进制数的位数;δ{}表示零检验函数,若括号内的数值为0时函数值为1,反之为0;m表示加密算法的总数;
[0039]
当t=1时,即为训练的神经网络的一次训练准确度μ(1)。
[0040]
在一种可能的实现方式中,所述训练模块还用于:
[0041]
利用下面的公式在训练的过程中判断训练准确度的变化是否小于预设阈值,并控制训练的神经网络的训练使能:
[0042][0043]
其中h(k)表示神经网络经过第k次训练后的训练使能控制值;μ(k)表示神经网络经过第k次训练后的训练准确度;μ(k-b)表示神经网络经过第k-b次训练后的训练准确度;
[0044]
若h(k)=1表示神经网络的训练使能为开启状态,则对神经网络继续进行训练;
[0045]
若h(k)=0表示神经网络的训练使能为关闭状态,则对神经网络停止训练;神经网络对样本加密码流和样本加密密码及对应的实际加密算法都至少要训练5次,并且在训练5次后计算对应的训练准确度。
[0046]
在一种可能的实现方式中,所述训练模块还用于:
[0047]
利用下面的公式根据神经网络的训练次数以及神经网络的每一次训练准确度判断神经网络的学习算法是否需要加入优化算法进行优化:
[0048][0049]
其中r表示神经网络的学习算法的优化算法使能控制值;k0表示神经网络的最终训练次数;μ(k
0-5)表示神经网络第k
0-5次训练后的准确度;
[0050]
若r=1表示神经网络的学习算法的优化算法使能打开,即需要加入优化算法对神经网络进行优化;
[0051]
若r=0表示神经网络的学习算法的优化算法使能关闭,即不需要加入优化算法对神经网络进行优化。
[0052]
借由上述技术方案,本技术实施例提供的基于神经网络的加密算法识别方法和装置,首先获取待识别加密算法对应的加密码流和加密密码,进而将加密码流和加密密码输入预先训练的神经网络,利用训练的神经网络对加密码流和加密密码对应的加密算法进行识别,得到加密码流和加密密码对应的预测加密算法。可以看到,本技术实施例可以通过神经网络来准确、便捷地识别加密算法。
附图说明
[0053]
为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
[0054]
图1示出了根据本技术实施例的基于神经网络的加密算法识别方法的流程图;
[0055]
图2示出了根据本技术实施例的基于神经网络的加密算法识别装置的结构图;以及
[0056]
图3示出了根据本技术另一实施例的基于神经网络的加密算法识别装置的结构图。
具体实施方式
[0057]
下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本技术的示例性实施例,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
[0058]
需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。
[0059]
本技术实施例提供了一种基于神经网络的加密算法识别方法,如图1所示,该基于神经网络的加密算法识别方法可以包括以下步骤s101至s102:
[0060]
步骤s101,获取待识别加密算法对应的加密码流和加密密码;
[0061]
步骤s102,将加密码流和加密密码输入预先训练的神经网络,利用训练的神经网
络对加密码流和加密密码对应的加密算法进行识别,得到加密码流和加密密码对应的预测加密算法。
[0062]
本技术实施例首先获取待识别加密算法对应的加密码流和加密密码,进而将加密码流和加密密码输入预先训练的神经网络,利用训练的神经网络对加密码流和加密密码对应的加密算法进行识别,得到加密码流和加密密码对应的预测加密算法。可以看到,本技术实施例可以通过神经网络来准确、便捷地识别加密算法。
[0063]
本技术实施例中提供了一种可能的实现方式,上文步骤s102中提及的神经网络可以通过以下步骤a1至a3来训练得到:
[0064]
步骤a1,构建初始神经网络,获取样本加密码流和样本加密密码及对应的实际加密算法;
[0065]
步骤a2,将样本加密码流和样本加密密码输入初始神经网络,利用初始神经网络对样本加密码流和样本加密密码对应的加密算法进行预测,得到预测加密算法;
[0066]
步骤a3,根据预测加密算法与样本加密码流和样本加密密码对应的实际加密算法进行比对,得到训练的神经网络的一次训练准确度;
[0067]
以此类推,继续获取其它样本加密码流和其它样本加密密码及对应的实际加密算法,利用其它样本加密码流和其它样本加密密码对训练的神经网络继续进行训练,每次训练后都求取对应的训练准确度;
[0068]
在训练的过程中判断训练准确度的变化是否小于预设阈值,若是,则停止训练,得到最后训练的神经网络;若否,则继续训练,直至训练准确度的变化小于预设阈值。这里的预设阈值可以根据实际需求来设置,本实施例对此不作限制。本实施例通过对神经网络进行训练,可以提到后续识别的效率和准确性。
[0069]
本技术实施例中提供了一种可能的实现方式,可以利用下面的公式根据预测加密算法与样本加密码流和样本加密密码对应的实际加密算法进行比对,得到训练的神经网络的一次训练准确度:
[0070][0071]
其中μ(t)表示神经网络经过第t次训练后的训练准确度;d
t,a
(i)表示神经网络经过第t次训练后将第a个加密算法的加密码流和加密密码进行输入后输出的解密码流中的第i个二进制数值;sa(i)表示第a个加密算法的未加密码流中的第i个二进制数值;n表示第a个加密算法的未加密码流中二进制数的位数;δ{}表示零检验函数,若括号内的数值为0时函数值为1,反之为0;m表示加密算法的总数;
[0072]
当t=1时,即为训练的神经网络的一次训练准确度μ(1)。
[0073]
本实施例可以根据神经网络对市面上主流的加密方案进行一次训练的预测加密结果与实际的加密算法进行比对,得到神经网络的一次训练准确度,以及建立起每次训练后准确度的求取公式,便于后续对神经网络算法的控制,并且还可以侧面知晓神经网络算法是否准确。
[0074]
本技术实施例中提供了一种可能的实现方式,可以利用下面的公式在训练的过程中判断训练准确度的变化是否小于预设阈值,并控制训练的神经网络的训练使能:
[0075][0076]
其中h(k)表示神经网络经过第k次训练后的训练使能控制值;μ(k)表示神经网络经过第k次训练后的训练准确度;μ(k-b)表示神经网络经过第k-b次训练后的训练准确度;
[0077]
若h(k)=1表示神经网络的训练使能为开启状态,则对神经网络继续进行训练;
[0078]
若h(k)=0表示神经网络的训练使能为关闭状态,则对神经网络停止训练;神经网络对样本加密码流和样本加密密码及对应的实际加密算法都至少要训练5次,并且在训练5次后计算对应的训练准确度;若训练准确度连续5次都小于预设阈值,则认为当前训练结束,并且记录当前的k值并记作k0即为神经网络的最终训练次数。
[0079]
本实施例根据每次训练后对应的训练准确度判断神经网络的准确度是否保持稳定,并控制神经网络的训练使能,进而保证神经网络对市面上主流的加密方案达到最大化的训练,进而提高神经网络预测加密算法的可靠性以及准确性。
[0080]
本技术实施例中提供了一种可能的实现方式,可以利用下面的公式根据神经网络的训练次数以及神经网络的每一次训练准确度判断神经网络的学习算法是否需要加入优化算法进行优化:
[0081][0082]
其中r表示神经网络的学习算法的优化算法使能控制值;k0表示神经网络的最终训练次数;μ(k
0-5)表示神经网络第k
0-5次训练后的准确度;
[0083]
若r=1表示神经网络的学习算法的优化算法使能打开,即需要加入优化算法对神经网络进行优化;
[0084]
若r=0表示神经网络的学习算法的优化算法使能关闭,即不需要加入优化算法对神经网络进行优化。
[0085]
本实施例根据神经网络的最终训练次数以及神经网络的每一次训练准确度判断神经网络学习算法是否需要加入优化算法进行优化,由于神经网络会存在优化算法,但是加入优化算法又会增加算法时间,进而通过判断神经网络学习算法的学习精度判断出是否需要加入优化算法,进而可以在保证准确率的情况下又提高了效率。
[0086]
需要说明的是,实际应用中,上述所有可能的实施方式可以采用结合的方式任意组合,形成本技术的可能的实施例,在此不再一一赘述。
[0087]
基于上文各个实施例提供的基于神经网络的加密算法识别方法,基于同一发明构思,本技术实施例还提供了一种基于神经网络的加密算法识别装置。
[0088]
图2示出了根据本技术实施例的基于神经网络的加密算法识别装置的结构图。如图2所示,该基于神经网络的加密算法识别装置可以包括获取模块210和识别模块220。
[0089]
获取模块210,用于获取待识别加密算法对应的加密码流和加密密码;
[0090]
识别模块220,用于将加密码流和加密密码输入预先训练的神经网络,利用训练的神经网络对加密码流和加密密码对应的加密算法进行识别,得到加密码流和加密密码对应的预测加密算法。
[0091]
本技术实施例中提供了一种可能的实现方式,如图3所示,上文图2展示的装置还可以包括训练模块310,用于构建初始神经网络,获取样本加密码流和样本加密密码及对应的实际加密算法;
[0092]
将样本加密码流和样本加密密码输入初始神经网络,利用初始神经网络对样本加密码流和样本加密密码对应的加密算法进行预测,得到预测加密算法;
[0093]
根据预测加密算法与样本加密码流和样本加密密码对应的实际加密算法进行比对,得到训练的神经网络的一次训练准确度;
[0094]
以此类推,继续获取其它样本加密码流和其它样本加密密码及对应的实际加密算法,利用其它样本加密码流和其它样本加密密码对训练的神经网络继续进行训练,每次训练后都求取对应的训练准确度;
[0095]
在训练的过程中判断训练准确度的变化是否小于预设阈值,若是,则停止训练,得到最后训练的神经网络;若否,则继续训练,直至训练准确度的变化小于预设阈值。
[0096]
本技术实施例中提供了一种可能的实现方式,上文图3展示的训练模块310还用于:
[0097]
利用下面的公式根据预测加密算法与样本加密码流和样本加密密码对应的实际加密算法进行比对,得到训练的神经网络的一次训练准确度:
[0098][0099]
其中μ(t)表示神经网络经过第t次训练后的训练准确度;d
t,a
(i)表示神经网络经过第t次训练后将第a个加密算法的加密码流和加密密码进行输入后输出的解密码流中的第i个二进制数值;sa(i)表示第a个加密算法的未加密码流中的第i个二进制数值;n表示第a个加密算法的未加密码流中二进制数的位数;δ{}表示零检验函数,若括号内的数值为0时函数值为1,反之为0;m表示加密算法的总数;
[0100]
当t=1时,即为训练的神经网络的一次训练准确度μ(1)。
[0101]
本技术实施例中提供了一种可能的实现方式,上文图3展示的训练模块310还用于:
[0102]
利用下面的公式在训练的过程中判断训练准确度的变化是否小于预设阈值,并控制训练的神经网络的训练使能:
[0103][0104]
其中h(k)表示神经网络经过第k次训练后的训练使能控制值;μ(k)表示神经网络经过第k次训练后的训练准确度;μ(k-b)表示神经网络经过第k-b次训练后的训练准确度;
[0105]
若h(k)=1表示神经网络的训练使能为开启状态,则对神经网络继续进行训练;
[0106]
若h(k)=0表示神经网络的训练使能为关闭状态,则对神经网络停止训练;神经网络对样本加密码流和样本加密密码及对应的实际加密算法都至少要训练5次,并且在训练5次后计算对应的训练准确度。
[0107]
本技术实施例中提供了一种可能的实现方式,上文图3展示的训练模块310还用于:
[0108]
利用下面的公式根据神经网络的训练次数以及神经网络的每一次训练准确度判断神经网络的学习算法是否需要加入优化算法进行优化:
[0109][0110]
其中r表示神经网络的学习算法的优化算法使能控制值;k0表示神经网络的最终训练次数;μ(k
0-5)表示神经网络第k
0-5次训练后的准确度;
[0111]
若r=1表示神经网络的学习算法的优化算法使能打开,即需要加入优化算法对神经网络进行优化;
[0112]
若r=0表示神经网络的学习算法的优化算法使能关闭,即不需要加入优化算法对神经网络进行优化。
[0113]
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置、模块的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
[0114]
本领域普通技术人员可以理解:本技术的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干程序指令,用以使得一电子设备(例如个人计算机,服务器,或者网络设备等)在运行所述程序指令时执行本技术各实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0115]
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的电子设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被电子设备的处理器执行时,所述电子设备执行本技术各实施例所述方法的全部或部分步骤。
[0116]
以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:在本技术的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1