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

文档序号:9219614阅读:来源:国知局
11(1Z2= 41加密265KB文件后收集的n#Vi 分布示意图。
[0043] 图4为本发明实施例中以Z1= 253,Z2= 41,Z3= 80?加密265KB文件后的明、密 文分布示意图。
[0044] 图5为本发明实施例中以Z1= 253,Z2= 41,Z3= 73加密265KB文件后收集到的 密文的一阶差分分布不意图。
【具体实施方式】
[0045] 下面通过【具体实施方式】对本发明作进一步详细的说明:
[0046] 2. 2主要技术方案
[0047] 在我们的发明设计中,存在两个混沌系统,它们形式为:
[0048] (1)
[0049] (2)
[0050] 这两个混沌系统都是分段线性映射(PLCM),这个选择是由于PLCM有着比其它混 沌系统如Logistic映射良好的混沌动力学行为,它们的区别在于具有不同的控制参数h 和132,这两个参数也是加iFi的初始状态Xd,即三元组(but^Xd)构成密码系统的密钥 Key,当的三个值均属于区间(0,1)时,方程(1,2)的迭代呈混沌动力学特征。
[0051] 明文信息P由一系列m-bit的明文块组成,因而有N=2m个不同的明文块值。
[0052] 2. 2. 1转换表的结构及功能
[0053] 如图1所示,当m=8时在通讯信道两端转换表ST的不对称结构,转换表具有比 查找表更高的性能,进行通讯的两端称为发送端和接收端。
[0054] 两个转换表(为简化描述,我们以后称它为ST)分别建在通讯信道的两边,结构如 图1 :每个ST由2m个单元组成,对应2-个不同的明文值,两端的ST结构不相同:在发送端, 一个表单元由两个部件组成,部件entry是单元在表中的位置,部件data给出单元的值;在 接收端,一个表单元由三个部件组成,前两个部件与发送端相同,第三个部件index指示另 一单元的位置,这个单元的值等于本单元的位置。为简化描述,用ut、\分别表示发送端和 接受端的表单元,但当讨论对发送端和接受端都适用时,用u表示,进一步,u(i).data指第 i个单元的值,u(i).index指第i个单元的index值,u(i).entry=i。三个部件的值属于 相同的整数域巾,对于m-bit明文块,巾={0, 1,…,2m-l},三个部件间存在一一对应的、 在相同域巾上的强非线性关系,对m= 8,巾={0, 1,…,255},如图1,以后若无特别说明, 都是以m= 8讨论问题。
[0055] 在发送端,ut(i).entry是单元的输入端口,为明文块提供输入,ut(i).data是输 出端口,它给出明文i的密文是ut(i).data;而在接受端,作为输入端口的uji).entry输 入密文i,输出端口uji).index给出对应于密文i的明文。在通讯两端这种不一致的结 构和工作方式有利于提高解密速度,它使接受端不需再花时间寻找接收到的密文的明文, 它只是简单地以密文作为ST单元的entry,将那个单元的index部件值作为明文输出。例 如:在图1中,发送端收到明文"253",发送端ST的第253个单元就会给出相应的明文即 ut (253) = "3",当密文"3"被传到接收端,就可以从接收端ST的的第3个单元的index部 件直接得到相应的明文u,(3). = "253"。为了增强加密系统的安全性,两个ST各单元的值 都不是固定的,而会在整个加/解密过程中随依赖于明文的ST更新操作变化。
[0056]在加/解密第i个明文/密文块Pi/^前,从第ph个单元开始,通过交换多对ST 单元的值,两个ST都将被同步动态更新,这意谓着一旦一个明文块被加密后,在紧接着它 的下一个明文块被加密前,原来对应着它的密文就会被改变。以Si表示起始表单元的位置, 从这个单元开始,多对单元的值将被交换;Vi表示将要执行交换的两个单元的间隔;^表示 当前整个交换过程要进行交换的单元对数,
[0057] 设Xi是当前混沌状态,0.a1&2…a」…是其二进制表示,方程(3)给出&i,
[0058]
(3)
[0059] 定义三个通过截取Xi而得的其二进制表示分别为:xaa15,xm=a16*"a3(l,xh =b31…a45的变量,得两个核心变换如:
[0060]
(4) (5)
[0062] 这样,\及1^的值就由以下两式决定:
[0063]Vi=g(x^modZi{0,1, 2, 3......255} (6)
[0064] ni=g(xi)modZ2Z2G{0, 1, 2, 3......, 255} (7)
[0065] 我们详细描述这整个交换过程如下:
[0066] 首先,让Si=p^,获得起始单元位置值,执行.y,_G(.s',. +v,.)mod/V以将第Si单元 与第81+¥1单元的值互换;然后,从第si+Vi+1单元开始继续交换rig对表单元,也就是,
[0071] 其中N= 2m,最后,最初的第Pi_i单元中的值ut (Pi_i) ?data,即对应明文Pi_i的密 文,再被交换到第(s+r^XVi+rii-DmodN单元中去,这一步是对应图2(a)中的最后一步,结 果,就第Ph表单元而言,它实际的交换间隔v/由方程(8)给出:
[0072]v'j=niVi+nj-lmodN. (8)
[0073] 这过程的最后一步能增加算出交换间隔Vi的难度,否则,^有可能在加密值 为vJPh的明文时被泄漏;在本次ST更新后,明文vJPh被处理以前,第vJPh单元 uJVi+PH)没有被包含在任何一次更新过程中的概率r= (l-2ni/N)T (t代表期间执行过 的更新过程数)是存在的,设叫的数学期望等于41/2,ST包含256个单元,这个可能性算 出为:
[0077] 从上面的计算可以看出,当期间的更新过程少于13次时,表单有 10%的可能没有被交换过,只有当次数大于32次时,没有交换过的概率才小于1/256,也才 能\确保不被猜测到。
[0078] 图2中左方的流程(a)是加密明文单元pi前发送端ST的更新流程;流程(b)是 加密明文单元pi前接收端ST的更新流程;
[0079] 接收端的ST更新过程与发送端相似,两者的不同就在于前者还要多采取一些步 骤来处理index部件,以保证每次更新后都能正确解密,其详细的更新步骤由图2 (b)给出。
[0080] 为了正确的加/解密,信道两端ST的更新必须保持同步,即在加/解密第i块信 息前后,ut(j).data=ur(j).data(j= {0, 1,......255})必须被满足。两边的ST更新都与 变量11〇&力紧密相关:
[0081]noise^ut (Pi^+nj/2XVj+rii/2-1).data. (4)
[0082] 这样,noisej^值依赖于明文ph,再,Ph仅决定noise#斤取表单元值的位置, 11〇1861决不会泄漏关于明文的任何有用信息,其作用像加密噪声。
[0083] 方程(5)扩散性能良好,它使加密p^vJPni与之前所有的noise相关,从而与 Pi之前的整个明文块序列相关,也就是,整个加密过程与明文紧密相关,只要两个明文中间 有一个块不同,那么这块以后的两个明文的加密过程将完全不同,这正是流密码设计的基 本要求。
[0084] 应该给Zi选择较大的值,给Z2较小值;Zi较大可以保证更新过程使各个位置的表 单元被选到的机会趋于相等,即使h较小;Z2决定表单元交换对数的上限,为了提高系统效 率,在保证安全的基础上应该尽可能小。且二者均应为素数。
[0085]本发明中,建议Z1= 253,Z2= 41。
[0086] 2. 2. 2加密解密设计
[0087] 在加/解密过程中,系统会根据方程(9)的结果交替使用方程(1,2)形成混沌轨 道。
[0088] f(xj) > 0 〇rnop> 100. (9)
[0089]Or指逻辑或操作,当方程(9)值为真(true),加密系统停止当前混沌方程的迭代, 启用另一混沌方程,并且以当前混沌状态为起始状态开始迭代过程。如,当前混沌议程启用 的是方程(1),当方程(9)得真,方程⑴停止运行,方程⑵以方程⑴的当前混沌状态作 为初始状态,开始迭代。这样,整个用于加/解密的混沌轨道由方程(1)与方程(2)的混沌 轨道交错组成。这种交替使攻击者即使分离出整个用于密码学的混沌轨道,从中再分离出 方程(1)或(2)的轨道也是一个数学难题。
[0090] 变量nop保存当前参数的混沌系统已经加密的明文块数
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1