您好, 访客   登录/注册

基于数据加密的Hopfield神经网络技术研究

来源:用户上传      作者: 辛海涛

  基金项目:黑龙江省自然基金资助,项目名称《联想记神经网络研究》项目编号F2007-015;黑龙江省教育厅科技项目资助,项目名称《基于联想记忆的混沌神经网络模型研究》,项目编号:11531065
  
  [摘要] 本文首先介绍了数据加密的基本原理,在此基础上说明了神经网络在数据加密的实现过程,并以Hopfield神经网络为例详细阐述了加密、仿真过程及破译复杂度,为神经网络在数据加密中的应用开辟了一条新路。
  [关键词] 神经网络加密密钥
  
  一、引言
  密码系统是用于加密解密的系统,明文和加密密钥作为密码系统的输入参数,经过一定的加密变化处理后得到输出密文。一个完整的密码系统包括明文空间,密钥空间,以及算法。加密算法主要要考虑的因素有两个,一是混乱,即明文与密钥以及密文之间的关系尽量复杂化,使破译者无法理出相互间的依赖关系。二是扩散,是指让明文中的每一位包括密钥中的每一位直接或者间接影响输出密文中的许多位或让密文中的每一位受制于输入密文以及密钥中的若干位,把联想记忆神经网络用于加密,利用网络迭代的非线性变化达到混乱的目的,采用分组密码增加算法的扩散性。
  目前,还找不出一种对所有样本都可逆的Hopfield网络,所以无法单纯的靠网络来加密。如果利用不可逆的网络,就必须把原文构造成网络的稳定点。这样就相当于把受畸变的样本作为密文。很显然,具有高容错能力的网络的安全性能也相对较高,并且构造这样的网络难度也较大,所以我们换个思考问题的方式把通过网络最终迭代的样本最为加密的密钥。这样既提高了密钥计算的难度,同时也提高了密文的安全性。
  联想记忆神经网络的用途很广泛,目前主要应用于动态联想记忆、混沌优化及预测、模式分类和模式识别上,本文主要研究它在数据加密的应用上。
  二、加密过程
  密码体制分两大类,单钥密钥和双钥密钥,本文采用了传统的单钥密钥,即系统的保密性取决于密钥的安全性。当然,如果不对外公开加密算法,该密码系统的安全级别会更高。传统的加密系统中,加密算法和解密算法的操作通常是在一组密钥的控制下进行的,分别称为加密密钥和解密密钥加密。具体的加密及解密过程如上图所示。
  本文的加密原理是把原网络的样本和作为密钥的添加大量噪声的样本一起传输过去,假设该密码系统中包含n1个神经网络,其中有个n2网络样本,有n3个是作为密钥的,它们不参与网络权值的计算。我们假设属于网络1的样本数为,属于网络2的样本数为,属于网络n1的样本数为,这样,同时还要传输的是神经网络的参数,其中包括各个网络的起始位置,样本的个数,以及网络的维数,有的还需要包括迭代的次数。因为由于我们网络样本选取的随机性,很多样本并不是网络的稳定点。为了该加密系统的安全,网络参数我们通过安全通道传输,而网络的样本则接在密文后边传输过去。事实上,我们可以用不同的神经网络作为密钥的载体,这里我们采用的是离散的Hopfiled网络,为了方便阐述该密码系统,假设作为单个网络的样本是连续存放的,在该网络前面的样本按照网络的维数划分成几个该网络的样本。当然,作为网络样本的向量分散存放会使破译的难度大大增加,但是同时也增大的密钥空间。
  三、加密算法
  假设有一个长度为256的明文,我们将其分组进行加密,分别与我们按上述过程生成的密钥进行异或,或者利用别的更高级加密算法。
  加密的重点在于密钥的生成,因此为了方便说明加密原理,关于加密算法我们就简单的使用生成一个2进制序列,和原文异或,完全可以反复利用密钥对原文多次不同算法的加密。
  四、破译复杂度
  首先破译者要知道密文的长度,这样才能得出网络样本。破译者无法知道我们使用了几个网络,也无法得知我们各个网络的维数以及样本个数,本为仅计算在最简单情况下破译的代价,最简单的情况只用一个网络。我们假设网络样本总数为n,考虑到网络的样本至少有2个,所以网络的样本维数应在2到之间,相应的网络可能有种情况。由于我们采用的并不是hopfield网络的稳定点,所以破译者无法通过网络的存储上先来帮助其排出上述的任何一种情况,加上破译者无法知道我们的样本需要迭代的次数,如果我们采用n个网络,那么破译者首先要知道我们使用了几个网络,所以破译的复杂度在原来的基础上扩大了几何级数倍。所以我们认为计算代价很大,在不知道密钥的情况下在有限时间内是不可解的。
  对于网络的参数传输我们传输几对这样的序列,当然在传输的时候是连续的,分别是网络的起始位置,网络的维数,样本产生密钥需要迭代的次数。如果分散传输,就大大的增大了网络的参数,因为我们要指出是第几个网络的样本,第几个网络的输入, 如果更复杂的,同一个网络的输入我们可以规定不同的迭代次数。
  五、仿真过程及结果
  我们生成一个64位的密钥来举例说明,我们用两个Hopfiled网络,网络一的样本维数是4,网络二的样本是维数是5,网络一的样本为(1,0,1,0),(0,0,1,1),(1,1,0,0)网络二的样本为(1,1,0,1,0),(0,1,1,0,0),我们把其中的0换成-1,首先我们根据hebb规则计算出两个网络的权值,该规则的公式为
  我们把网络样本代入计算,网络一的权值为,网络二的权值为我们让网络一的6个输入迭代5次作为密钥,让网络二的8个输入迭代3次作为密钥,其中网络一的6个输入模式分别是(1,1,1,1),(0,1,0,1),(0,0,0,1),(1,1,1,0),(0,1,0,0),(1,1,0,1),网络二的8个输入样本分别是(1,1,1,0,0),(0,0,0,1,1),(0,0,1,0,1),(1,0,0,1,1),(1,1,0,1,1),(1,0,1,0,1),(0,1,0,1,0),(1,1,0,0,1),我们通过仿真得到迭代的结果分别是(1,1,0,0),(0,1,0,1),(0,0,1,1),(1,1,0,0),(1,1,0,1),(1,1,0,1),以及(0,1,1,0,0),(1,0,0,1,1),(0,0,1,0,1),(1,0,0,1,1),(1,1,0,1,1),(0,0,1,0,1),(1,1,0,1,0),(1,1,0,1,1)由于我们选取的网络样本数较小,维数较低,所以有一部分密钥暴露在明文的后边,但只要我们规定合理的网络样本,网络维数,以及具体输入的迭代次数,要完全隐藏密钥的信息是完全可行的。
  假设我们要秘密传送的网络参数是(24,4,3,5),(55,5,2,6),其中它们代表的意义分别是网络开始的位置,网络的样本维数,网络的样本数,输入样本需要迭代的次数。
  接受方按照把明文后的向量截取下来,对照通过相对安全的通道传输过来的网络参数,把该向量的第24位,每四位截取一个向量,共截取3个网络样本,按照协议的公式计算出网络的权值,并把其前边的样本也按四个每组截成若干个输入,进入网络迭代5次得出的结果,和从第24+4*3到第54位的数按5个一组输入从第55位开始取10位数分解成2个5维的样本构成的网络进行迭代3次的结果便是密钥,将密钥和密文异或变得出明文。
  本文采用基本的Hopfiled网络作为加密模型,简单的外积法计算权值。事实上,我们可以利用各种网络模型以及改进的权值计算方法来获得网络的权值,只要传递给接受方相应的参数,这样既增大的破译的难度,又使该算法有很大的灵活性。
  本算法也存在一定有待改善的缺陷,由于网络的一些样本在迭代有限步内就成为网络的冗余吸引子,继续迭代也不再发生变化,这是一个明显的安全漏洞,所以我们对加密模型的研究还在于尽量使用不收敛的网络输入,这样能提高该密码系统的安全性。
  六、结论
  数据加密技术是现代信息社会急需的热门技术之一,本文主要分析Hopfiled联想记忆神经网络在数据加密上的用途,详细介绍了加密的原理及过程。对于采用神经网络的方法实现数据加密提供了一种新的思路。
  
  参考文献:
  [1]Ohta Masaya. Chaotic Neural Networks with Reinforced self-feedbacks and Its application to N-queen Problem [J]. Mathematics and Computers in Simulation,2002,59(4): 305-317
  [2]Adachi M,Aihara K. Associative Dynamics in a Chaotic Neural Network [J]. Neural Networks,1997,10(1): 83-98
  [3]He G G,Gao Z T,Zhu P,et al. Controlling Chaos in a Chaotic NeuralNetwork[J]. Neural Networks,2003,16(8): 1195-1200
  [4]何国光朱萍曹志彤等:混沌神经网络的Lyapunov指数与混沌区域[J]. 浙江大学学报,2004,31(7):387-390
  [5]Xinshun Xu,Zheng Tang,Jiahai Wang. A method to improve the transiently chaotic neural network [J]. Neurocomputing 67(2005): 456-463
  [6]谢传泉何晨:混沌神经网络模型中的模拟退火策略[J].上海交通大学学报,2002,37(3):323-326


转载注明来源:https://www.xzbu.com/3/view-1482355.htm