一种基于非线性理论的密码计算方法

文档序号:9219614阅读:832来源:国知局
一种基于非线性理论的密码计算方法【
技术领域
】[0001]本发明涉及一种信息安全的密码系统,可以保证数字信号的安全传输与保存。【
背景技术
】[0002]目前,基于非线性科学,其中特别是基于混沌的密码学研宄受到广泛的关注,其理论来源于混沌系统在未知初始状态或控制参数时,其混沌动力学行为的不可预知性,已发布了一些经典的相关密码系统,对输入的明文(plaintext),这些系统普遍用基于查找表(l〇〇k_uptable)的混沌迭代数、或混沌状态值与其他值进行某种混合以产生密文(ciphertext)〇[0003]Baptista在PhysicsLettersA提出一种基于搜索机制的密码系统Cryptographywithchaos.及之后的一系列基于该设计的改进版本,明文单位长度是一字节的0至255的整数,输出是一个字的整数,代表在混沌轨道上从一个起始混沌状态开始,混沌系统持续迭代,直到其混沌状态落入到指定区域所需要的迭代数,结果,密文规模相比明文多了一倍,从理论上来说其包含的有助于攻击的信息就大大高于明文,[0004]Pareek提出了一种称为Cryptographyusingmultipleone-dimensionalchaoticmaps的密码系统,在该系统中,密文由明文与混沌状态取整后的整数相加而得,这有助于攻击者从密文中分离出与混沌系统相关的拟混沌轨道,成为攻击整个密码系统的钥匙。[0005]基于混沌的密码系统的加密就是借助混沌轨道的不可预知性,这样的加密算法非常类似于传统的流密码,在密码系统的4种攻击手段(唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击)中,为抵抗后三种攻击,流密码系统一般需要采用密文反馈,达到明文不同,其产生的密钥流也具不同的目的,但公知的混沌密码系统这方面存在严重缺欠,导致很多系统被攻击。如上述两种混沌密码系统都存在这方面的问题。[0006]混沌系统的动力学行为在计算机上数字化实现时,由于连续域转数字域的精度问题,就存在混沌轨道的崩溃问题,这也是基于混沌的密码系统需要通过技术手段解决的问题,但这也是目前已发布的混沌加密系统容易忽视的问题。[0007]目前公知的是,这些设计在效率上普遍低于目前普遍使用的AES或DES算法,因此,吸取已有系统的设计成果,同时跳出混沌密码设计中的经典思路,设计出安全高效的非线性密码系统是所属领域技术人员致力于解决的问题。[0008]整个说明书对【
背景技术
】的任何讨论,并不代表该【
背景技术
】一定是所属领域技术人员所知晓的现有技术;整个说明书中的对现有技术的任何讨论并不代表认为该现有技术一定是广泛公知的或一定构成本领域的公知常识。【
发明内容】[0009]本发明意在提供一种高安全的密码计算方法。[0010]本方案中的一种基于非线性理论的密码计算方法,包括两个混沌系统匕和F2,它们形式为:[0011](I)[0012](2)[0013]加密方法包括以下步骤:[0014]a)明文通过方程(1)得到混沌状态的密文;[0015]b)方程(2)以方程(1)得到的密文作为初始状态开始计算;[0016]c)方程(2)的计算结果再次返回方程(1)中作为初始状态实现迭代运算,除非密文强度达到加密要求;[0017]解密方法为加密方法的逆运算。[0018]混沌系#FJPF2分别为方程(1)和方程(2),所述加密要求可以是指迭代的次数达到一定量。[0019]明文信息P由一系列m-bit的明文块组成,因而有N=2m个不同的明文块值。[0020]这两个混沌系统(即方程)都是分段线性映射(即PLCM),这个选择是由于PLCM有着比其它混沌系统如Logistic映射良好的混沌动力学行为,它们的区别在于具有不同的控制参数bJPb2,这两个参数也是加iFi的初始状态X(l,即三元组(bubxd构成密码系统的密钥Key,当的三个值均属于区间(0,1)时,方程(1,2)的迭代呈混沌动力学特征。[0021]方程(1)初步混沌加密计算后启用另一混沌方程,并且以当前混沌状态为起始状态开始迭代过程。如当前混沌议程启用的是方程(1),满足要求时方程(1)停止运行,方程(2)以方程(1)的当前混沌状态作为初始状态,开始迭代。这样,整个用于加/解密的混沌轨道由方程(1)与方程(2)的混沌轨道交错组成。这种交替使攻击者即使分离出整个用于密码学的混沌轨道,从中再分离出方程(1)或(2)的轨道也是一个数学难题。[0022]本方案作为一种高安全的密码系统,为各类需要信息安全保护的用户提供又一种有益的选择。[0023]进一步,包括发送端ST和接收端ST,每个ST由2m个单元组成,对应2-个不同的明文值,在发送端ST,一个表单元由两个部件组成,部件entry是单元在表中的位置,部件data给出单元的值;在接收端ST,一个表单元由三个部件组成,前两个部件与发送端相同,第三个部件index指示另一单元的位置,这个单元的值等于本单元的位置;[0024]在发送端ST,entry是单元的输入端口,为明文块提供输入,data是输出端口,它给出明文的密文;而在接受端ST,作为输入端口的entry输入密文,输出端口index给出对应于密文的明文;[0025]在加/解密明文/密文块前,从对应单元开始,通过交换多对ST单元的值,两个ST都将被同步动态更新。[0026]发送端ST和接收端ST分别指两个记载有数据的转换表,分别建在通讯信道的两边。[0027]在通讯两端这种不一致的结构和工作方式有利于提高解密速度,它使接受端不需再花时间寻找接收到的密文的明文,它只是简单地以密文作为ST单元的entry,将那个单元的index部件值作为明文输出。为了增强加密系统的安全性,两个ST各单元的值都不是固定的,而会在整个加/解密过程中随依赖于明文的ST更新操作变化,为了正确的加/解密,信道两端ST的更新必须保持同步。[0028]用转换表实现了查找表的功能,系统在接收端直接可得到与密文相对应的明文,无需查找表的查找过程,提高了密码系统的效率。[0029]进一步,m值为8。以匹配现有的典型计算机工作方式。[0030]进一步,定义noise并用下述公式确定混纯状态迭代次数:[0031]kt-g(xj)?noisCfmod43(10)。[0032]noise的值依赖于明文,noise决不会泄漏关于明文的任何有用信息,其作用像加密噪声。引入noise,使混沌系统产生的拟混沌轨道依赖于明文,实现密文反馈的要求,提高密码系统安全性。[0033]进一步,在加/解密过程中,系统会根据下述方程(9)的结果交替使用方程(1,2)形成混沌轨道:[0034]f(xj)>0〇rnop>100.(9)。[0035]变量nop保存当前参数的混沌系统已经加密的明文块数,0是一个方程(1)和(2)进行交替的频率因子,值越小,交替越频繁。[0036]明密文比保持1:1,密文是转换表的值,在数学上,与混沌系统的混沌轨道不存在任何相关性,使攻击者不能通过观察密文得到混沌系统用于加密的混沌轨道。[0037]这种交替能很大程度上克服数字混沌系统动力学退化,以前一个混沌方程的混沌状态作为将启动的混沌方程的初始状态,相当于对将启动混沌方程运行的一次扰动,这已经是公认的一种有效的防止混沌系统动力学行为退化的有效手段。通过扰动,克服了混沌系统在计算机的数字化实现时产生的混沌轨道崩溃问题。[0038]进一步,先定义noisedi0,ST转换表通讯两端使用方程(1)迭代多次,使ST各单元的值呈随机的初始分布。[0039]要加/解密明文/密文,ST各单元的值应该有一个随机的初始分布,并且它们在通讯信道两端要取得一致,为加/解密第一块明文,先定义noiSe(l=0,通讯两端使用方程(1)迭代100次,以防止对控制参数b的猜测,并得到加密第一个明文块的混沌状态Xl。【附图说明】[0040]图1为本发明实施例中当m=8时在通讯信道两端转换表ST的不对称结构示意图。[0041]图2为本发明实施例中加密明文单元?1前发送端ST的更新流程和加密明文单元?1前接收端ST的更新流程示意图。[0042]图3为本发明实施例中以2^2538当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1