第1章 混沌密码算法概论
1.1 引言
随着现代科学技术的不断进步,人类那种与生俱来的冲动、探索和追求精神,总是力图去深入理解自然界中的秩序,用理性的语言去揭开人类万世景仰的自然奥妙。人们发现当循环在更高的层次上轮回时,那遵循确定性不变的、精确定律的系统并不总是以可预言的规则方式运作。人们也不再一味地把这个世界看成是线性的,而是认识到了非线性才是丰富多彩世界的真正主宰;简单的定律可能产生不简单的性态,秩序能孕育出自身特有的混沌;从简单中发现了复杂,而又从复杂中找到了简单,这种辩证关系,不论在自然界还是在人类社会的各种层次,都具有惊人的相似性。20世纪两位大科学家爱因斯坦和玻尔的著名争论:“世界是确定性的还是随机性的?”,显然已找到了答案:确定性中包含了随机性,即混沌是自然界的普遍特性。或许复杂性科学的任务至少是从随机性中找到其确定性,从无序的背后找出有序,从混沌的边缘和万物错综复杂的变化中发现复杂性的共同规律。
混沌波形的自同步特性的发现极大地促进了混沌在保密通信中的应用研究,许多的研究课题应运而生,成为近年来该领域的一个研究热点。混沌在数字通信领域,至少有三个方面的应用前景,即压缩、调制和加密。确定性混沌系统所产生的混沌信号具有的不可预测性和貌似随机的特性,对于通信工程应用,尤其是保密通信工程应用,极具吸引力。混沌和密码具有一些相同的特性,*主要的相似性是对变量和参数的敏感性[1]。混沌与密码之间的一个重要的区别就是混沌被定义在实数域上,而密码体系被定义在有限整数域上。然而这两个学科可以互为补偿,相互受益。例如,新的混沌密码算法可以从混沌系统导出,而混沌的定量分析技术可以从密码学中得到发展。
现今使用的加密方法可分为三种:序列密码算法、分组密码算法和公钥密码算法。分组密码算法以数据加密标准(Data Encryption Standard,DES)和高级加密标准(Advanced Encryption Standard,AES)为代表,这种方法的特点是加密端与解密端使用相同的密钥,加密过程分组进行,安全性依赖于加密算法对混淆与扩散两个基本技术的合理应用。公钥密码算法的典型代表是RSA(Rivest-Shamir-Adleman)算法,这种方法的特点是加密端与解密端使用不同的密钥,对话的每一方都有一对密钥,一个是公开密钥,供发送方加密信息;另一个是私有密钥,用于解密,该方法的安全性依赖于大素数分解的难度。序列密码又称流密码,加密过程为:首先将特定的种子密钥——会话密钥注入序列密码发生器;然后用序列密码发生器产生的伪随机比特序列与明文比特流进行逐位异或得到密文。使用序列密码加密时不受明文长度限制,只要产生的序列密码的周期足够大,就可以加密任何长度的文件,非常灵活。此外,与前两种加密算法相比较,序列密码加密速度*快。因此,特别适合于数据量大、实时性要求较高的加密场合,序列密码加密的安全性依赖于序列密码的随机程度。该方法是军方使用较多的一种加密方法,常用的产生序列密码的算法主要有线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)和非线性反馈移位寄存器(Nonlinear Feedback Shift Register,NLFSR)。
1.2 非线性、混沌、复杂性
公认的发现混沌现象的第一位学者是伟大的法国数学、物理学家庞加莱(Poincare),他在研究天体的三体运动时,发现了三体引力相互作用能产生惊人的复杂行为,确定性动力学方程的某些解有不可预见性,这就是动力学混沌现象。但是,由于当时数学工具的简单,认识能力的局限,人们对混沌学的研究在20世纪60年代才真正开始。几百年来,物理学家一直钟情于线性系统,数学家钟情于线性方程,线性系统因其方程可解,整体正好等于部分之和而为科学家所推崇。然而自然界就其本质来说是非线性的,非线性系统一般无解析解,不能简单叠加,人工难于求解,从而使科学家多年以来一直对其敬而远之。高速电子计算机的出现,改变了世界的面貌,它的影响深入到每一个角落,科学家们也确实求得了许多非线性方程的解。人们似乎觉得有了计算机后,不仅可以准确地预报未来的天气,以便未雨绸缪;还可以驾驭庞大的战争机器,决胜千里之外。好像它无所不能,没有什么做不到的,但其实不然,美国气象学家洛伦茨(Lorenz)在20世纪60年代提出的“蝴蝶效应”,否定了长期天气预报的可能性。他用计算机做数值计算,观察这个非线性系统的演化行为,在计算观察中确实看到了这个确定性系统的有规则行为,同时也发现了同一系统在某些条件下可出现非周期的无规则行为。他敏感地意识到:一串事件可能有一个临界点,在这一点上,微小的变化可导致指数倍放大的变化,而混沌系统意味这些点无处不在。这表明在非线性系统中一切都是相互关联的,这种关联敏感到令人不可思议的地步。在适当的条件下,确定性系统的前景可能会变得完全不可预测,这是由混沌的随机复杂性所确定的。非线性导致了混沌,而混沌又表现出了令人震惊的复杂性,这也促进了人们对复杂性的深入研究[2]。
由于复杂性的问题涉及自然、社会、思维的各个领域,所以很难对复杂性做一个统一的定义。迄今为止国际上已提出了多种适用于不同范围的复杂性定义,如随机复杂性、算法复杂性、描述复杂性、程序复杂性、逻辑长度复杂性等[3],而与混沌复杂性关联*紧密的是随机复杂性和算法复杂性。
1.2.1 混沌的定性复杂性
1. 混沌方程随参数变化的复杂性分析
混沌不仅出现在代数方程和一维及高维映射方程中,而且出现在自治和非自治常微分方程、偏微分方程以及泛函方程中。混沌方程具有典型的随机复杂性,带有普遍性,下面以*简单的一维Logistic映射为例进行说明。
(1.2.1)
式中,为控制参数。
不难看出Logistic映射数字流混沌输出仿真随着值的增大,依次呈现出不动点分叉(周期2, 周期4, )阵发混沌带混沌态的从简单到复杂的变化性态。然而,在阵发混沌带内以及阵发混沌带到混沌态之间又存在着从混沌态进入周期态(周期3)的由复杂到简单的变化形式。按照李-约克(Li-Yorke)定理:“周期3蕴涵混沌”,显然将又会有混沌产生,且苏联学者Sarkovskii的Sarkovskii序,明确了随后发生的周期(为任意数)序列,可以求得第二个点,出现Explosive分叉,Logistic图上又演变成一个充满整个区间的吸引子。通过研究还发现当时,不仅包含着整数周期还包含有不动点轨迹,理论上还可证明有下面两个定理成立[4]。
定理1.2.1 Logistic映射,如果存在或,使得①,或②,则该映射均收敛于一个稳定的不动点。并在时,满足条件①、②的两个不动点是同一个点,并有。
一般文献中均认为当时,Logistic映射进入混沌态并表现出复杂的动力学特性,并未指明尚存在不动点。
该定理明确了以下两点:
(1) 由于区间上的取值是无限的,满足条件①、②的点也有无穷多个,即存在无穷多个不动点;
(2) 在每一个值下,至少存在两个不动点吸引子的初值、以1为模互补。
定理1.2.2 Logistic映射,如果为整数,则该映射是一个稳定的不动点,且为有限字长的不动点。
显然满足该条件的点只有三个,即,可分别代入证明。在混沌保密通信中此三点不可取,因为它们是有限字长的稳定不动点,此时无加密作用。
图1.2.1中,当时,迭代二次便被吸引到不动点0.75;当时迭代三次被吸引到不动点;而当时迭代一次就被吸引到不动点0.75,因为这些不动点是有限字长不动点。
图1.2.1 μ=4时三个特殊点的吸引子
表1.2.1给出Logistic映射随参数μ值变化的不同性态情况,混沌系统随参数的复杂性状变化,不仅表现在离散映象系统,而且表现在连续系统中,它们极具相似性。
表1.2.1 Logistic映射随μ值变化的不同性态
表1.2.2给出著名的Lorenz系统当两个参数固定时系统行为特性随参数的复杂变化。
表1.2.2 Lorenz系统特性随参数的变化
2. 固定参数下混沌的随机复杂性
在某一参数下混沌表现出宽带类噪特性,具有白噪声的统计特性。混沌映射可用确定性的差分方程来描述,但在一定条件下的表现却是随机的,下面以*简单的混沌映射Logistic映射为例说明。
对于一般的混沌映射,概率密度可由Perron-Frobenius方程得到:
(1.2.2)
在满映射下,轨迹点的概率密度为:
(1.2.3)
混沌序列由轨迹量化得到:
(1.2.4)
式中,为符号函数,N是任意截取的混沌序列的周期,在此定义序列为序列。
序列的自相关函数为:
(1.2.5)
式中,为以初值开始的第次和第次迭代。由混沌的遍历理论知,对于每个可积函数和几乎所有的初始值都有:
(1.2.6)
定义,则:
(1.2.7)
由于时,是偶对称的,所以是奇对称的,而也是偶对称的,于是式(1.2.7)积分为零,从而:
(1.2.8)
由式(1.2.8)可见,序列的自相关函数是函数,具有理想的自相关特性,混沌序列易于产生,任意给定二个初值,即便这二个初值之差很微小,由混沌对初始条件的极端敏感性知,经过一定时间的演化,产生的将是完全互不相关的二个序列,它们的互相关函数为:
(1.2.9)
上述推导中,应用了随机过程中联合概率的独立性,由混沌特性及式(1.2.9)可知,序列易于产生、数目极多、周期极长且互不相关,可根据过程辨识的需要做任意长周期截断。
展开