一种基于深度自编码器的信息加密方法与流程

文档序号:11388756阅读:328来源:国知局
一种基于深度自编码器的信息加密方法与流程

本发明涉及信息安全技术领域,更具体地说,涉及一种基于深度自编码器的信息加密方法。



背景技术:

加密是防止信息泄露所采取的主要安全保密措施,是最常用的安全保密手段;加密的基本思想是利用诸如算法等一些技术方法把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术的应用是多方面的,最为广泛的应用是在互联网上信息的传输,而最为重要的应用更是用在军事上如作战命令等信息的传递。

现有的加密技术是数据算法加密,通常的做法是:强大的算法配以简单的密钥。以des为例,des算法的密钥长度只有8字节,这么做的优点是密钥简单且无须花很大的成本存储或记忆,强大的算法使得通过逆运算破解很困难。但是随着技术的发展,计算机运算能力越来越快,使得暴力破解这种加密方法变得越来越简单;在信息传递的过程中,黑客可以通过一些数据包嗅探工具来抓包、分析并窥探到算法信息,将被截取的加密信息进行破译,这样就会导致重要信息泄露,造成隐私安全威胁,尤其是在军事战时情报工作上,很可能因为加密信息泄露,造成惨痛结果。

综上所述,现有技术中的信息加密方案存在容易被暴力破解进而导致信息安全性较低的问题。



技术实现要素:

本发明的目的是提供一种基于深度自编码器的信息加密方法,以解决现有技术中的信息加密方案存在的容易被暴力破解进而导致信息安全性较低的问题。

为了实现上述目的,本发明提供如下技术方案:

一种基于深度自编码器的信息加密方法,包括:

获取ansi编码的全部字符并组成数据集,以及获取预先设置的深度自编码器网络,所述深度自编码器网络包括编码部分及解码部分;

将所述深度自编码器网络中除最后一层外的每层均与该层相邻的下一层、及与该层具有对应结构的额外一层组成自编码器网络模型,对各自编码器网络模型进行训练得到初始化权值,并利用该初始化权值对所述深度自编码部分中对应两层间的权值进行初始化,得到初始化的深度自编码部分;

基于所述数据集使用随机梯度下降算法结合反向传播算法对初始化的深度自编码器网络进行调整,得到最优深度自编码器网络;

利用所述最优深度自编码器网络的编码部分实现信息加密及利用所述深度自编码器网络的解码部分实现密文解密。

优选的,对各自编码器网络模型进行训练得到初始化权值,包括:

基于自编码器原理使用bp算法对各自编码器网络模型进行训练得到初始化权值。

优选的,利用所述最优深度自编码器网络实现信息加密及密文解密,包括:

将待加密信息转化成ansi编码,并将与该ansi编码对应的列向量输入至所述最优深度自编码器网络的编码部分,得到对应的密文;

将所述密文输入至所述最优深度自编码器网络的解码部分,得到对应的列向量,将该列向量对应的ansi编码转化成对应待加密信息。

优选的,还包括:

定期对所述深度自编码器网络的指定层包含的神经元个数进行预设修改,并执行所述组成自编码器网络模型的步骤。

优选的,还包括:

定期对所述深度自编码器网络中指定两层对应的自编码器网络模型进行重新训练,并利用训练得到的初始化权值更新该指定两层之间的权值。

优选的,预先设置深度自编码器网络,包括:

设置包括有七层的深度自编码器网络,其中第一层和第七层的神经元个数均为32,第二层和第六层的神经元个数均为20,第三层和第五层的神经元个数均为12,第四层的神经元个数为4,其中第一层至第四层组成编码部分,第四层至第七层组成解码部分。

本发明提供了一种基于深度自编码器的信息加密方法,该方法包括:获取ansi编码的全部字符并组成数据集,以及获取预先设置的深度自编码器网络,所述深度自编码器网络包括编码部分及解码部分;将所述深度自编码器网络中除最后一层外的每层均与该层相邻的下一层、及与该层具有对应结构的额外一层组成自编码器网络模型,对各自编码器网络模型进行训练得到初始化权值,并利用该初始化权值对所述深度自编码部分中对应两层间的权值进行初始化,得到初始化的深度自编码部分;基于所述数据集使用随机梯度下降算法结合反向传播算法对初始化的深度自编码器网络进行调整,得到最优深度自编码器网络;利用所述最优深度自编码器网络的编码部分实现信息加密及利用所述深度自编码器网络的解码部分实现密文解密。本申请通过上述过程训练出最优深度自编码器网络,进而基于该自编码器网络实现信息的加密及解密,具体来说,通过最优深度自编码器网络的编码部分对信息进行加密,替代遗忘的数据加密算法,使得加密工作进行黑箱操作,从而使得信息在传输过程中无法被非法截获并暴力破解,进而有效提高了信息安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种基于深度自编码器的信息加密方法的流程图;

图2为本发明实施例提供的一种基于深度自编码器的信息加密方法中深度自编码器网络为七层时的结构图;

图3为本发明实施例提供的一种基于深度自编码器的信息加密方法中深度自编码器网络为七层时对应3层自编码器网络模型组成图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,其示出了本发明实施例提供的一种基于深度自编码器的信息加密方法的流程图,可以包括:

s11:获取ansi编码的全部字符并组成数据集,以及获取预先设置的深度自编码器网络,深度自编码器网络包括编码部分及解码部分。

不同的国家和地区制定了不同的标准,由此产生了gb2312、gbk、big5、shift_jis等各自的编码标准,这些使用1至4个字节来代表一个字符的各种汉字延伸编码方式,称为ansi编码。在简体中文windows操作系统中,ansi编码代表gbk编码;在日文windows操作系统中,ansi编码代表shift_jis编码。不同ansi编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段ansi编码的文本中。在本发明中,用户可以根据具体需要选择任意一种ansi编码的编码标准,但选好特定编码标准后,自编码器网络仅能对该特定编码标准进行加密和解密,也即通过深度自编码网络实现信息加密时需要将待加密信息转化成与选取的编码标准相同的ansi编码后实现加密,而通过最优深度自编码网络实现密文解密时得到的ansi编码也为与选取的编码标准相同的ansi编码;若要更换其他编码标准,则更换其他编码标准后必须对自编码器网络的权值和阈值进行重新训练,重新训练完成后即可实现对所更换的编码标准进行加密和解密。

本申请中由ansi编码的所有字符组成的数据集作为深度自编码器网络的训练集及其在使用bp算法进行微调时所对应的标签,并且本申请中深度自编码器网络的训练集和测试集完全一样,由此可以保证训练出来的深度自编码器网络在编码和解码过程中正确率为100%。另外,深度自编码器网络的层数一般是大于3的奇数个,其中位于最中间的中间层及该层前一侧的全部层可以组成编码部分,位于最中间的中间层及该层后一侧的全部层可以组成解码部分,且无论怎样对深度自编码器网络进行修改,都需要保证整个深度自编码器网络各层神经元个数关于中间层对称。

s12:将深度自编码器网络中除最后一层外的每层均与该层相邻的下一层、及与该层具有对应结构的额外一层组成自编码器网络模型,对各自编码器网络模型进行训练得到初始化权值,并利用该初始化权值对深度自编码部分中对应两层间的权值进行初始化,得到初始化的深度自编码部分。

其中深度自编码器网络中除最后一层外的每层在对应自编码器网络模型中作为第一层,该层在深度自编码器网络中相邻的下一层作为对应自编码器网络模型中的第二层,额外增加的一层作为第三层,其中自编码器网络模型中第三层包含的神经元个数与第一层相同,区别在于第一层具有阈值,而第三层并不具有,该阈值为训练所得。可见自编码器网络模型的数量为深度自编码器网络包括的层数的总数减去2,以深度自编码器网络为如图2所示的网络为准进行说明,其中每个①代表对应层的阈值,则得到的5个自编码器网络模型分别如图3所示,按照图3从左往右、从上往下的顺序,基于数据集依次对每个自编码器网络模型进行训练,训练时每个自编码器网络模型的输入向量和标签向量完全相同,将得到的初始化权值及初始化阈值作为深度自编码器网络中(除最后一层)外的所有权值和阈值,也即对整个深度自编码器网络(除了最后一层)的所有权值w1、w2、w3、w4、w5和阈值b1、b2、b3、b4、b5较优的进行初始化,得到较优初始化的深度自编码器网络。需要说明的是,由一个自编码器网络模型训练得到的权值和阈值作为组成该自编码器网络模型的两层之间的权值和阈值。

s13:基于数据集使用随机梯度下降算法结合反向传播算法对初始化的深度自编码器网络进行调整,得到最优深度自编码器网络。

首先对该深度自编码器网络最后一层的权值和阈值进行随机初始化,基于数据集使用随机梯度下降算法结合反向传播算法对整个深度自编码器网络(即较优初始化的深度自编码器网络)的所有权值和偏差进行最后的微调,得到最优深度自编码器网络。

s14:利用最优深度自编码器网络的编码部分实现信息加密及利用深度自编码器网络的解码部分实现密文解密。

其中,利用编码部分可以实现对待加密信息的加密,当需要对密文进行解密时,利用解码部分实现即可,从而利用最优深度自编码器网络实现信息的加解密。

本申请通过上述过程训练出最优深度自编码器网络,进而基于该自编码器网络实现信息的加密及解密,具体来说,通过最优深度自编码器网络的编码部分对信息进行加密,替代遗忘的数据加密算法,使得加密工作进行黑箱操作,从而使得信息在传输过程中无法被非法截获并暴力破解,进而有效提高了信息安全性。

另外需要说明的是,本申请公开的上述技术方案提供的加解密方法的加密和解密过程简单,计算量小,通信时传输速度快,无法暴力破解,无法逆向破译,加密和解密的规则可以灵活改变。针对难以破解这点以深度自编码器网络的层数为7层,从左至右分别具有的神经元个数为32、20、12、4、12、20、32,对应的影响该深度自编码器网络正确编码和解码(即权值和阈值)的变量个数为32×20+20×12+12×4+4×12+12×20+20×32+32+20+12+4+12+20=1936,而这些变量的取值为0到1之间的小数位数可以根据需要而自定义的实数,并且这些变量在深度自编码器网络的每次最终训练后所取的值都是完全不同,而且这些变量只要跟训练结束后的值不是完全一样,则无法进行正确的解码,即使是这1936个变量中的其中一个变量稍微有点改变,得出的文本内容也是毫无逻辑毫无关联的随机文字,可见,本申请中公开的加密方法暴力难破可能性为零,信息安全保密等级高。

本发明实施例提供的一种基于深度自编码器的信息加密方法,对各自编码器网络模型进行训练得到初始化权值,可以包括:

基于自编码器原理使用bp算法对各自编码器网络模型进行训练得到初始化权值。

本申请中通过自编码器原理使用bp算法实现上述训练,使得训练过程简单易实现,提高了对应的工作效率。

本发明实施例提供的一种基于深度自编码器的信息加密方法,利用最优深度自编码器网络实现信息加密及密文解密,可以包括:

将待加密信息转化成ansi编码,并将与该ansi编码对应的列向量输入至最优深度自编码器网络的编码部分,得到对应的密文;

将密文输入至最优深度自编码器网络的解码部分,得到对应的列向量,将该列向量对应的ansi编码转化成对应待加密信息。

具体来说,举例说明上述加密过程及解密过程,加密过程可以包括:首先确定待加密信息,将待加密信息中的字符转换成其对应32位二进制的ansi编码,该编码转化成一个32*1的列向量,将该列向量作为编码部分的输入,得到一个实数作为该待加密信息中对应字符的密文。上述密文完成传输后需要进行的解密过程可以包括:密文作为最优深度自编码器解码部分的输入,得到密文对应的网络输出列向量,该列向量对应得到一个32位二进制的ansi编码,最后32位二进制的ansi编码转换成其对应的字符即为解密信息(即和最初的待加密信息完全相同)。从而通过深度自编码器网络简单便捷的实现加密过程及解密过程。

本发明实施例提供的一种基于深度自编码器的信息加密方法,还可以包括:

定期对深度自编码器网络的指定层包含的神经元个数进行预设修改,并执行组成自编码器网络模型的步骤。

需要说明的是,进行神经元个数的改变时只能对除了第一层和最后一层外的其它层包含的神经元个数进行改变,而指定层可以由用户根据实际需要由除第一层和最后一层之外的其它层中选取,当然不管如何改变神经元个数都需要使得自编码器网络两侧基于最中间一层对称。改变上述神经元个数并重新执行训练对应自编码器网络模型及后续步骤后,能够实现加密及解密规则的改变,进一步保证了信息安全性。另外还可以根据用户需要对深度自编码器网络的层数进行改变,也即不仅可以对深度自编码器网络的广度(神经元个数)进行改变,还可以对自编码器网络的深度(网络层数)进行改变,但是无论进行哪种改变,深度自编码器网络都需基于中间层对称,并且实现上述改变后再执行训练自编码器网络模型及后续步骤则可以实现加密及解密规则的改变。

本发明实施例提供的一种基于深度自编码器的信息加密方法,还可以包括:

定期对深度自编码器网络中指定两层对应的自编码器网络模型进行重新训练,并利用训练得到的初始化权值更新该指定两层之间的权值。

其中指定两层可以根据用户实际需要进行确定,具体来说,进行上述重新训练可以得到新的初始化权值及阈值,进而将得到的值代替原对应的值则可以实现加密及解密规则的改变,进一步提高了信息安全性。

需要说明的是,在不改变深度自编码器网络结构下的前提下,仅仅对网络的权值和阈值重新进行训练,也可达到完全改变其加密和解密规则的效果;另外,也可通过改变深度自编码器网络结构(层数和除输入层、输出层外各层神经元个数)实现信息加密等级的改变,增加层数和各层神经元个数,即网络的神经元总个数增加,将达到提升信息保密安全等级的效果,如将图2中仅对layerl2和layerl6同时由原来的20个神经元改为21个神经元,则该网络的信息保密安全等级将有所提升,但必须保证修改后的深度自编码器网络仍是对称结构。由于本深度自编码器网络相对来说结构并不复杂,其训练时的计算量并不是很大,由此其训练所需时间也较短,可以满足用户对上述深度自编码器网络的权值和阈值进行定期重新训练更改信息加密解密规则的要求,从而使信息的保密安全等级更高。

本发明实施例提供的一种基于深度自编码器的信息加密方法,预先设置深度自编码器网络,可以包括:

设置包括有七层的深度自编码器网络,其中第一层和第七层的神经元个数均为32,第二层和第六层的神经元个数均为20,第三层和第五层的神经元个数均为12,第四层的神经元个数为4,其中第一层至第四层组成编码部分,第四层至第七层组成解码部分。

需要说明的是,ansi编码若使用2个字节来表示1个字符,而2个字节即是16位二进制,这就表示深度自编码器网络的输入层神经元个数必须为16个,输出层为了与输入层对应,神经元个数必须同样也是16个,在本发明中,为了兼容各类型的ansi编码标准,深度自编码器网络的输入层神经元个数设定为32个,由此满足各类编码标准可能使用1至4个字节来代表一个字符的要求。对于本例使用2个字节来表示1个字符的ansi编码,仅需要将多出的另外16个未用到神经元输入0即可,也可专门针对具体某个类型的ansi编码设计深度自编码器网络的输入层神经元个数。如图2所示,其中layerl1~layerl7分别表示第一层至第七层,32d、20d、12d、4d分别表示神经元的个数为32、20、12、4,w1表示第一层与第二层之间的权值,w2表示第二层与第三层之间的权值,w3表示第三层与第四层之间的权值,w4表示第四层与第五层之间的权值,w5表示第五层与第六层之间的权值,w6表示第六层与第七层之间的权值,b1表示第一层与第二层之间的阈值,b2表示第二层与第三层之间的阈值,b3表示第三层与第四层之间的阈值,b4表示第四层与第五层之间的阈值,b5表示第五层与第六层之间的阈值,b6表示第六层与第七层之间的阈值。由此实现深度自编码部分的初步设置,供后续对该网络实现对应的训练及应用。

本申请公开的上述技术方案与现有技术中对应技术方案原理一致的部分并未详细说明,以免过多赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1