混沌密码及其应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2008.10
83
网络安全技术与应用混沌密码及其应用
陈卓
湖北工业大学计算机学院 湖北 430068
摘要:本文介绍了近年来混沌加密相关问题的研究进展,分析了混沌模型中与密码学密切相关的特性,并举例介绍了利用混沌序列密码进行信息加密的过程。
关键词:序列密码;混沌序列;混沌模型
0 引言
由于混沌动力学系统所具有的一些固有特点如迭代不重复性和初始值的敏感性,使得所产生的混沌序列具备优良的密码学特性。20世纪80年代末,英国数学家Matthews最早提出了混沌序列密码的概念,他研究了Logistic混沌映射作为序列密钥流生成器问题。1990年混沌分组密码被提出,研究表明混沌具有分组密码所要求的扩散、混乱等特性。1993年Hwu Fengi提出了一种混沌公钥密码。过去的十年中,随着对混沌理论研究的不断深入,混沌理论的应用范围也不断扩展。混沌在密码学中的应用成了热门的研究领域,大量的混沌加密算法被提出。目前,混沌密码可用于信息加密、保密通信、扩频通信、智能卡加密、数字水印等等技术,因此混沌密码学被列入现代密码学的重要研究前沿。
1 序列密码的原理
传统密码体制可以分为对称密码体制和非对称密码体制,对称密码体制有两种方式:序列密码和分组密码。分组密码算法的要求是:分组长度要足够大,密钥空间要足够大,由密钥确定的置换算法要足够复杂,加密和解密运算简单,差错传播尽可能的小。
序列密码也称为流密码(Stream Cipher),对应于分组密码,序列密码具有软件硬件实现简单、便于硬件实现、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信和外交通信。
一个典型的序列密码每次加密一个字节的明文,也可设计成每次操作一比特或者大于一个字节的单元。图1 给出了一个典型的序列密码的结构图,在该结构中,密钥输入到一个伪随机数(比特)发生器,该伪随机数发生器产生一串随机的8比特数。发生器的输出称为密钥流,通过与同一时刻一个字节的明文流进行异或操作产生密文流。
通过设计合适的伪随机数发生器,序列密码可以提供和相应的密钥长度分组密码相当的安全性,序列密码的主要优点是,其相对于分组密码来说,往往速度更快而且需要编写的代码更少,例如序列算法RC4,仅仅几十行代码就可实现,表1列出了RC4与三种常见的对称分组密码执行速度的对比。
图1 序列密码结构图
表1 奔腾Ⅱ上对称密码的速度对比
序列密码的主要特点为:
(1)加密/解密运算是简单的模2加运算;
(2)密码强度主要依靠密钥流的随机性,因此如何设计一个好的密钥流发生器,使其产生随机的密钥流是序列密码体制的关键所在。
若密钥流发生器生成的密钥流是一个完全随机的非周期序列,则可用它实现一次一密体制,根据Shannon 理论,这种体制具有理论保密性,但是这种密钥流生成器需要无限存储单元和复杂的逻辑函数,在实际的基于数字逻辑(数字电子计算机)的密钥流生成器中只能采用有限的存储单元和确定的算法。
目前,密钥流生成器有多种结构,但多数是用线性反馈移位寄存器或非线性反馈移位寄存器作驱动器来产生一系列状态序列,然后这些状态序列经过非线性组合后得到密钥序列。流密码的强度完全依赖与密钥流产生器所生成序列的随机性和不可预测性,其核心问题是密钥流生成器的设计。
2 混沌序列密码2.1 混沌特性
最早将混沌系统应用于密码学的思想可以追溯到1949年,香农出版的经典文章“Communication Theory of SecuritySystem”。自从二十世纪80年代以来,应用混沌系统构造新型密码系统的想法得到了越来越多的关注,
这一想法来源于
本文由湖北省教育厅青年基金(2004Q002)湖北工业大学高层次人才科研基金资助。
作者简介:陈卓(1969-),女,博士,副教授,研究方向:网络安全协议分析、无线网络安全。
2008.10
84
网络安全技术与应用混沌系统和密码学系统之间的自然联系:强混沌系统的动力学特性大致对应着高强度密码学系统的某些安全特征,而具有良好混合性的传统密码系统又暗含着拟混沌现象。
什么是混沌呢?混沌是一种貌似无规则的运动,指在确定性系统中出现的类似随机的过程。一个确定性系统是这样一种动力学系统:它由确定的常微分方程、偏微分方程、差分方程或一些迭代方程描述,方程中的系数都是确定的,这样,给出初值,系统以后的运动应该是完全确定的,即未来完全包含于过去之中,当初值有微小变化时,系统的变化也应该不会太大。但是六十年代人们发现有一些系统,虽然描述它们的方程是确定的,但系统对初值有极强的敏感性,即初值有极微小的变化,将引起系统后来不可预测的改变。这种系统从物理上看运动似乎是随机的。这种对初值的敏感性,或者说确定性系统内在的随机性就是混沌。
Logistic模型是混沌模型中的一种,它的迭代方程如下:
yn+1=靬n(1-yn)
当烊≈荡笥.5699,方程将进入混沌区。图2是当
3.78时的迭代方程曲线。
图 2 3.78时的Logistic模型迭代方程曲线
在混沌区的数据有两个特性:迭代不重复性和初值敏感性。迭代不重复性是指当选定适当的系数使某迭代方程进入混沌状态时,方程将进入无限不循环迭代,因此不会出现重复的迭代值,这种迭代的结果可以用来产生随机序列。在理论意义上混沌序列是完全意义上的随机而不是伪随机。
而初值敏感性是指只要初值有10-6的差异,其迭代方程的迭代轨迹就会大相径庭,因此初始值成为迭代序列的最关键的因素,将这些特点应用到加密理论中,可以形成较为完善的混沌加密算法。
对当前的分组加密算法而言,为确保安全强度,分组密码设计时的分组长度和密钥长度不断增加,这也不可避免地影响了加密的速度,而序列密码在速度上有很大优势,现在混沌序列密码在安全和速度上又提供了一种新的选择。
2.2 采用混沌序列密码进行信息的加密
如果密钥流生成器是一个混沌系统,它虽然只有有限的存储空间和有限复杂的逻辑,但却可以用确定的系数和确定的迭代方程,输出混沌密钥流序列,得到的混沌序列作适当处理(比如扰码以使“0”与“1”的分布尽量均匀、加入同步机制等)后,即可用作密钥流。图3为一个混沌序列流密码系统框图。
图3 混沌序列密码系统框图
要构造一个混沌序列密码,首先要构造一个混沌序列,如采用如下迭代方程构造混沌序列 :
Yn+1=Asin2(Yn-YB)
A和YB是方程的系数,随着参数A和YB的变化,系统将会进入混沌状态,如A=4,YB=2.5,
这时方程进入混沌状态。混沌加序列密码其加密以位为单位,因此需要将被加密的信息按位读出,然后将给定方程的初值Y0进行迭代运算,判断迭代值Yi的大小,
当Yi>2*A/3时取1,否则取0,然后将此位与文件中读出的位信息相异或,其异或的结果即为密文信息,写入文件,新形成的文件即为密文文件。
加密和解密所使用的迭代方程的系数和初始值必须完全相同,因为只要初始信息有 的差距其迭代序列就会大相径庭。解密与加密过程基本相同,不同的是解密时读出的是密文, 与相同的迭代序列异或的结果就是原来的明文。
文件加密算法的过程如下:(1)打开一个文件并过滤头信息;
(2)从文件中以bit为单位读数据p;
(3)根据迭代方程生成的混沌序列{Yi},并获得一个bit密钥值;
if Yi>2×A/3 then Si=1 else Si=0 (i=1,2,….8); k=Si(4)通过异或计算:c=p xor k,获得密文比特c;(5)把c写入一个新文件中;重复(1)到(5)直到文件结束。
构造混沌序列的映射可以是是一维映射,如果使用二维的Smale映射、Henon映射或三维的Lorenz系统,可以方便地获得更复杂的序列。
3 结语
目前混沌密码系统的研究领域有许多课题有待进一步研究,引入混沌系统的密码不仅具有优良统计学和拓扑学特性,而且设计简单,易于实现。由于混沌系统的这些优良特性,混沌加密算法得到了越来越多的重视,混沌已成为密码学中新的丰富的资源。
参考文献
[1]Murali K.Heterogeneous chaotic systems based cryptography.
Phys Lett A.2000.