基于神经网络混沌吸引子的公钥密码加密和解密方法

文档序号:7955047阅读:189来源:国知局
专利名称:基于神经网络混沌吸引子的公钥密码加密和解密方法
技术领域
本发明涉及信息加密技术领域,特别是涉及一种基于神经网络混沌吸引子的公钥密码加密和解密方法。
背景技术
国际互联网(Internet)在过去的30多年中得到了蓬勃的发展,已成为人们进行信息交流的主要方式。许多敏感信息包括商务机密、军事机密和个人机密信息等都需要通过互联网进行快速便捷的传递,这就对网络通信的安全性提出了较高的要求。
现代网络通信的安全性主要基于密码学。其中,与对称密码系统相比较,公钥密码系统具有方便密码管理和密钥数量少等主要优点。自1976年Diffie W和Hellman M提出公钥密码系统的思想以来,提出了众多的公钥密码算法,但是真正具有实用价值的不多,主要是RSA公钥密码算法。而RSA公钥密码算法存在两个难以克服的缺点,一是算法的安全性依赖于因数分解的困难性,随着计算机技术和数论理论的发展,可分解的因数越来越大,因此,该算法只能依靠提高密钥的长度来提高计算安全性,密钥长度的增加会带来许多新的问题,如增加密钥管理的难度、密钥空间急剧缩小和进一步降低加密与解密的速度等;第二个主要缺点加密与解密的速度比较慢,由于算法中存在着许多大指数运算和模运算,计算量比较大,所以数据的加密速度和解密速度都比较慢,目前最快也只有45.8kbps,这样的加密速度很难满足下一代互联网的安全通信中实时性要求。而近来研究比较多的椭圆曲线公钥密码算法,与RSA相比,虽然可以用较短的密钥达到较长RSA密钥的保密效果,但是它仍存在计算量大、数据的加密速度和解密速度都比较慢的问题,且如何有效地将需要加密的信息数据编码成为椭圆曲线上的点这一问题还没有解决好。
为了满足下一代互联网多媒体实时性安全通信的要求,既需要选用复杂性高的加密算法,以增强信息的安全性,又希望所选用的加密算法能以并行方式实现快速运算,以缩短加密和解密的时间来保证实时通信。其中,既能实现快速并行运算又有混沌动力学复杂行为的人工神经网络一直被认为是用来设计下一代互联网通信所需的加密算法的最佳选择之一。

发明内容
本发明的目的在于提供一种安全性高、加密速度快、更有利于机密信息控制的基于神经网络混沌吸引子的公钥密码加密方法。
本发明的另一个目的在于提供一种解密速度快的基于神经网络混沌吸引子的公钥密码解密方法。
为实现上述目的,本发明的技术解决方案是本发明是一种基于神经网络混沌吸引子的公钥密码加密方法,其步骤如下(1)密钥的输入信息的发送方首先从键盘或其它终端设备向加密器输入自己的私有密钥Hs和接受方经认证过的合法的公钥Tr及其相应的吸引子集,在加密器中计算出新的共享密钥T^=HsTrHs′=HsHrT0Hr′Hs′,]]>并且将Tr所对应的吸引子集转换为 所对应的吸引子集,暂存在加密器的内存中。(2)吸引子编码从键盘或其它输入设备向加密器输入编码矩阵M,在加密器中利用编码矩阵M对共享密钥 的吸引子 进行编码,得到一组编码系列,暂存在加密器缓存中。(3)明文的编码处理从键盘或其它存贮设备中读取需要加密传送的明文,利用第二步的吸引子编码,将明文Y映射到编码明文Yx={S^μ}]]>中;(4)密文的生成在加密器中有一具有时变特性的伪随机数生成器,利用它生成一由0和1所组成的数组,作为OHNN基于突触矩阵 的初始状态S(0),按突触矩阵为 时进行迭代运算,得到一个稳定状态S(∞),并与 相比较;如果S(∞)等 则说明S(0)为 吸引域中一个状态,这个随机数S(0)就作为明文Y所对应的密文X输出,在公共信道中传输。如果S(∞)不等于 则伪随机数生成器重新产生新的一组数组,依上述方法重新进行计算和比较,直至找到一个随机数的稳定状态S(∞)等于 为止,之后再输入新的明文处理,产生新的相应的密文,直至明文全部被加密为止。
所述的密钥的产生步骤(1)一组需要保密通信的用户,共同使用一个经过仔细选择的突触联结矩阵T0,组内用户共同确定一编码矩阵M,每个用户在n阶方阵交换族中随机选择一个互不同的变换矩阵;(2)每个使用者将自己的公开密钥及其对应的混沌吸引子集,连同用户名、地址等其他信息用数字签名方式保存在认证中心公钥信息库中,并获得该认证中心颁发的公钥证书,并在每次数据加密通信之前通过公钥证书对通信双方进行身份认证;(3)利用带认证的Diffie-Hellman密钥交换协议进行密钥交换,生成共享密钥。
本发明是一种基于神经网络混沌吸引子的公钥密码解密方法,包括以下步骤(1)接收方首先对发送方的身份进行认证,根据发送方所提供的身份信息,通过数字签名和公钥证书检查与核对对方的身份,如果身份认证信息是正确的,发送方是合法的用户,才对密文进行解密处理,否则,对接受到的信息隔离删除,并发出警报,通知系统管理员。(2)解密的过程为首先从键盘或其他输入设备输入自己的私有密钥Hr以及发送方的合法公钥Ts,在解密器中计算新的联接突触矩阵T^=HrTsHr′=HrHsT0Hs′Hr′]]>及其相应新的吸引子集 生成新的混沌吸引子集;其次生成编码明文,从接收硬盘中读取和输入密文X,利用联接突触矩阵为 时进行神经网络的迭代运算,得到相应的一个稳定状态S(∞),而S(∞)等于 即编码明文Yx={S^μ};]]>最后恢复原明文,利用编码矩阵M,将编码明文Yx={S^μ}]]>解码为原明文Y,从而完成密文的解密,恢复原明文。
采用上述方案后,本发明与经典的RSA方法相比,具有相比具有如下方面优点(1)安全性高,本密码系统方法的安全性是基于高阶奇异矩阵分解的困难性,而不像RSA方法那样只是基于单个大数因式分解的困难性上。形如T=HT0H’奇异矩阵分解的计算复杂性至少在O(n2)以上。
(2)加密速度快目前用Java兑现本方法,加密速度在1mbps以上,解密速度比加密速度更快。加密速度是RSA方法(45.8kbps)的20多倍。
(3)更适合现代的组加密通信需求根据本方法,每个组可以选择一个不同的T0,组内可以实现加密通信;不同组之间则不能,更有利于机密信息的控制,符合现代军事和商务加密通信的需求。
下面结合附图和具体实施例对本发明作进一步的说明。


图1是本发明的加密算法流程图;图2是本发明的解密算法流程图;图3是本发明的芯片实体核心结构图。
具体实施例方式
一、本发明的加密和解密方法本发明是一种基于神经网络混沌吸引子的公钥密码加密和解密方法,包括以下步骤第1步密钥产生与分配一组需要保密通信的用户,共同使用一个经过仔细选择的突触联结矩阵T0,组内用户还应共同确定一种较理想的明文编码和解码方法,即编码矩阵M。每个用户在n阶方阵交换族中随机选择一个互不同的变换矩阵,譬如用户i所选择的Hi,计算Ti=HiT0Hi′及其相应的混沌吸引子集(根据公式1),将Hi保密,而将Ti公开。然后每个使用者将自己的公开密钥及其对应的混沌吸引子集,连同用户名、地址等其他信息用数字签名方式保存在某认证中心公钥信息库中,并获得该认证中心颁发的公钥证书,并在每次数据加密通信之前通过公钥证书对通信双方进行身份认证;然后利用带认证的Diffie-Hellman密钥交换协议进行密钥交换,防止中间者攻击;最后才所生成的共享密钥。
第2步信息加密(如图1所示)整个信息加密的加密步骤如下(1)密钥的输入信息的发送方首先从键盘或其它终端设备向加密器输入自己的私有密钥Hs和接受方经认证过的合法的公钥Tr及其相应的吸引子集,在加密器中计算出新的共享密钥T^=HsTrHs′=HsHrT0Hr′Hs′,]]>并且将Tr所对应的吸引子集转换为 所对应的吸引子集,暂存在加密器的内存中。
(2)吸引子编码从键盘或其它输入设备向加密器输入编码矩阵M,在加密器中利用编码矩阵M对共享密钥 的吸引子 进行编码,得到一组编码系列,暂存在加密器缓存中。
(3)明文的编码处理从键盘或其它存贮设备中读取需要加密传送的明文,利用第二步的吸引子编码,将明文Y映射到编码明文Yx={S^μ}]]>中。
(4)密文的生成在加密器中有一具有时变特性的伪随机数生成器,利用它生成一由0和1所组成的数组,作为OHNN基于突触矩阵 的初始状态S(0),按突触矩阵为 时进行迭代运算,得到一个稳定状态S(∞),并与 相比较;如果S(∞)等于 则说明S(0)为 吸引域中一个状态,这个随机数S(0)就作为明文Y所对应的密文X输出,在公共信道中传输。如果S(∞)不等于 则伪随机数生成器重新产生新的一组数组,依上述方法重新进行计算和比较,直至找到一个随机数的稳定状态S(∞)等于 为止,之后再输入新的明文处理,产生新的相应的密文,直至明文全部被加密为止。
(5)所产生的密文在公共网络中传输。
第3步信息解密(如图2所示)密文解密的步骤如下(1)接收方首先对发送方的身份进行认证,根据发送方所提供的身份信息,通过数字签名和公钥证书检查与核对对方的身份,如果身份认证信息是正确的,发送方是合法的用户,才对密文进行解密处理,否则,对接受到的信息隔离删除,并发出警报,通知系统管理员。
(2)解密的过程为首先从键盘或其他输入设备输入自己的私有密钥Hr以及发送方的合法公钥Ts,在解密器中计算新的联接突触矩阵T^=HrTsHr′=HrHsT0Hs′Hr′]]>及其相应新的吸引子集 生成新的混沌吸引子集;其次生成编码明文,从接收硬盘中读取和输入密文X,利用联接突触矩阵为 时进行神经网络的迭代运算,得到相应的一个稳定状态S(∞),而S(∞)等于 即编码明文Yx={S^μ};]]>最后恢复原明文,利用编码矩阵M,将编码明文Yx={S^μ}]]>解码为原明文Y,从而完成密文的解密,恢复原明文。
二、本发明的原理如果连接突触矩阵T不同,则OHNN的吸引子及其相应的吸引域都会随之发生改变,而T=HT0H′,T0一般是不变的,只要改变H,就可以改变T。如果随机变换矩阵H是两个可交换矩阵的乘积,如H=HaHb=HbHa……………………………………………(1)则可根据Diffie-Hellman公钥密码体制的思想来构造新的密码系统。在矩阵理论上,可交换矩阵不仅是存在的,而且可以构成交换族,如n阶车轮矩阵,就至少有n个矩阵可以满足公式(1),可两两交换,构成一个交换族。
这样,根据Diffie-Hellman公钥密码体制的思想,在一组通信用户中共同选取一个联结突触矩阵T0,它为n阶奇异方阵。每个用户在n阶方阵交换族中随机选取一个变换方阵,如用户A任意选取一个非奇异变换方阵Ha,首先计算Ta=HaT0Ha′,然后将Ha保密,而把Ta公开。当同一组内的用户A与B需要保密通信时,因为HaHb=HbHa,则有T^=HaTbHa′=HaHbT0Hb′Ha′=HbHaT0Ha′Hb′=HbTaHb′---(2)]]>以此作为他们之间保密通信的共同密钥,用户A(或用户B)均可以根据自己的私钥和对方的公钥很容易地计算出公共密钥、吸引子及其相应的吸引域。
为了进一步增强信息传输安全,防止中间欺骗者攻击,采用带认证的Diffie-Hellman密钥交换协议,对保密通信的双方用数字签名和公钥证书来相互认证对方的身份是否合法。
三、算法的硬件集成方案本发明利用VHDL进行该方案的专用芯片设计,所得到的具体的芯片实体核心结构如图3所示。
在该专用芯片设计中主要包括三部分(1)数据类型的设置;(2)子函数程序包的编写;(3)加密、解密模块的完成和实体主程序的综合。
(1)数据类型的设置在芯片电路中,数据类型直接关系芯片内的总线和存储单元,因此,在数据类型设置时,主要考虑的是吸引子的地址长度、突出矩阵行列数以及突出矩阵的元素值大小和输入输出的数据类型。根据密码系统的安全性要求,我们须选择N=32的神经网络,并随机选择32个混沌吸引子来进行明文编码,就可实现一个明文为5bit二进制数和密文为32bit二进制数的密码系统。这样,在VHDL中我们设置两个整数1data=4和mdata=31,两个矢量即输入下标从0到1data的逻辑二进制矢量minvector和输出下标从0到mdata的逻辑二进制位矢量maxvector,以及元素值取{0,-1,1)、规模为(0,mdata)×(0,mdata)的突出矩阵Tij,还有输入芯片选通位CS,加密或解密功能控制管脚DE等。
(2)子函数程序包的编写考虑到程序的移植性问题,主要编写的子函数有相关数据类型的转换函数、32bit二进制矢量随机数的产生函数、随机数向吸引子收敛的计算过程函数以及两32bit二进制矢量的相等比较函数。·相关数据类型的转换由于自定义了多个数据子类型,所以在各个数的相互转换过程中需编写相应子程序。如functionconvmininteger(argminvecto r)return integer和functionconvmaxinteger(argmaxvector)return integer,二进制转为整数可由原来的初始值加上该位值,然后乘上权2再作为初始值,累计之。即如一个二进制值“11101010”可计为(((((((1)×2+1)×2+1)×2+0)×2+1)×2+0)×2+1)×2+0。相反的,整数转换为二进制的函数如function convmaxvector(arginteger)return maxvector和function convminvector(arginteger)return minvector,则是将整数除以2,从低位开始填入余数,再将余数做为该整数,继续循环以上操作直到除尽为止。
·32bit二进制矢量随机数的产生在VHDL语言环境中,整数是32bit二进制值,因此,由随机函数首先生成一个随机的整数后,就可调用类型转换函数生成32bit的二进制矢量随机数。
·随机数向吸引子收敛的计算过程依照Hopfield神经网络运动方程式(1)进行矩阵运算,其中为了保证运算的收敛性,设置了10次式(1)的迭代运算。
·两个32bit二进制矢量的相等比较设计了一个子函数functionequal(Lmaxvector;Rmaxvector)retrurn boolean,该函数将两个矢量进行逐位比较,如果每一位都相等,送出true,反之,如果有一位不相等,则返回并送出false。
(3)加密、解密模块的完成和实体主程序的综合加密模块、解密模块和实体主程序在加密模块中,采用输入明文pt进行触发,由输入管脚cs,en控制触发条件,将随机数所趋向的吸引子是否与输入pt所对应的吸引子相等作为输出密文的控制条件,即若不相等就产生新的随机数,若相等就将随机数作为密文输出。在解密模块中,采用输入密文ct进行触发,仍由cs,en控制触发条件,并以密文所趋向的吸引子是否与吸引子集中的32bit二进制矢量maxvector相等作为搜索的条件,即若相等就将相应地址输出作为明文输出,否则继续搜索。
四、实际应用的范例前面所设计的专用芯片可集成到各种保密通信设备中,具有较高的实用价值,例如集成在一块通信ISA卡,可与RS422标准接口相连。
在此ISA卡中,利用由FPGAs或其他方式来兑现的专用加解密芯片,实现数据加解密功能,UART 8250把并行数据转换成串行数据,二片74LS688实现地址译码,三片MAX756作为隔离芯片,二片MAX491实现串行数据与RS422的电平转换。此ISA卡占用I/O口地址3E8H~3EFH(8250),3E0H(加密功能),3E1H(解密功能),CPU第11号中断。软件接口部分采用TC进行编写,包含初始化、加密发送、解密接收等模块。
通过两台计算机的实际通信调试实验,表明我们所设计的加解密芯片方案是可行的。由于此芯片的密码算法具有高度安全性,该芯片不仅可被广泛应用于商业、军事等计算机网络安全通信中,还可被应用于信用卡、电话卡上作为网络传输中实现安全的身份认证等,所以此芯片具有较大的潜在市场。
权利要求
1.一种基于神经网络混沌吸引子的公钥密码加密方法,其特征在于包括以下其步骤(1)密钥的输入信息的发送方首先从键盘或其它终端设备向加密器输入自己的私有密钥Hs和接受方经认证过的合法的公钥Tr及其相应的吸引子集,在加密器中计算出新的共享密钥T^=HsTrHs′=HsHrT0Hr′Hs′,]]>并且将Tr所对应的吸引子集转换为 所对应的吸引子集,暂存在加密器的内存中。(2)吸引子编码从键盘或其它输入设备向加密器输入编码矩阵M,在加密器中利用编码矩阵M对共享密钥 的吸引子 进行编码,得到一组编码系列,暂存在加密器缓存中。(3)明文的编码处理从键盘或其它存贮设备中读取需要加密传送的明文,利用第二步的吸引子编码,将明文Y映射到编码明文Yx={S^μ}]]>中;(4)密文的生成在加密器中有一具有时变特性的伪随机数生成器,利用它生成一由0和1所组成的数组,作为OHNN基于突触矩阵 的初始状态S(0),按突触矩阵为 时进行迭代运算,得到一个稳定状态S(∞),并与 相比较;如果S(∞)等于 则说明S(0)为 吸引域中一个状态,这个随机数S(0)就作为明文Y所对应的密文X输出,在公共信道中传输。如果S(∞)不等于 则伪随机数生成器重新产生新的一组数组,依上述方法重新进行计算和比较,直至找到一个随机数的稳定状态S(∞)等于 为止,之后再输入新的明文处理,产生新的相应的密文,直至明文全部被加密为止。
2.根据权利要求所述的基于神经网络混沌吸引子的公钥密码加密方法,其特征在于所述的密钥的产生步骤(1)一组需要保密通信的用户,共同使用一个经过仔细选择的突触联结矩阵T0,组内用户共同确定一编码矩阵M,每个用户在n阶方阵交换族中随机选择一个互不同的变换矩阵;(2)每个使用者将自己的公开密钥及其对应的混沌吸引子集,连同用户名、地址等其他信息用数字签名方式保存在认证中心公钥信息库中,并获得该认证中心颁发的公钥证书,并在每次数据加密通信之前通过公钥证书对通信双方进行身份认证;(3)利用带认证的Diffie-Hellman密钥交换协议进行密钥交换,生成共享密钥。
3.一种基于神经网络混沌吸引子的公钥密码解密方法,其特征在于包括以下步骤(1)接收方首先对发送方的身份进行认证,根据发送方所提供的身份信息,通过数字签名和公钥证书检查与核对对方的身份,如果身份认证信息是正确的,发送方是合法的用户,才对密文进行解密处理,否则,对接受到的信息隔离删除,并发出警报,通知系统管理员。(2)解密的过程为首先从键盘或其他输入设备输入自己的私有密钥Hr以及发送方的合法公钥Ts,在解密器中计算新的联接突触矩阵T^=HrTsHr′=HrHsT0Hs′Hr′]]>及其相应新的吸引子集 生成新的混沌吸引子集;其次生成编码明文,从接收硬盘中读取和输入密文X,利用联接突触矩阵为 时进行神经网络的迭代运算,得到相应的一个稳定状态S(∞),而S(∞)等于 即编码明文Yx={S^μ};]]>最后恢复原明文,利用编码矩阵M,将编码明文Yx={S^μ}]]>解码为原明文Y,从而完成密文的解密,恢复原明文。
全文摘要
本发明公开了一种基于神经网络混沌吸引子的公钥密码加密方法,包括以下步骤密钥的输入、吸引子编码、明文的编码处理、密文的生成。由于本发明安全性是基于高阶奇异矩阵分解的困难性,而不像RSA方法那样只是基于单个大数因式分解的困难性上,因而具有安全性高、加密速度快、更适合现代的组加密通信需求、更符合现代军事和商务加密通信的需求等优点。
文档编号H04L9/30GK1881874SQ20061003530
公开日2006年12月20日 申请日期2006年4月26日 优先权日2006年4月26日
发明者刘年生, 郭东辉 申请人:集美大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1