文档详情

基于Logistic映射和VC平台的数字图像迭代混沌加密算法.doc

发布:2018-02-26约6.51千字共11页下载文档
文本预览下载声明
基于VC平台的数字图像迭代混沌加密算法 摘要 随着互联网的发展,越来越多的信息需要通过网络来传输,这些信息不仅包括文本、声音、数字图像以及多媒体等。数字图像已经广泛用于人们的生活,然而应用得越广泛,它的安全性就越重要。本文根据混沌信号的类随机特性和对系统参数的敏感性特点研究了混沌(chaos)在图片加密及解密过程中的应用。加密解密算法在VC平台上实现。 关键词:混沌 Logistic方程 MATLAB Visual C++平台 1引言 混沌理论(Chaos theory)是一种兼具质性思考与量化分析的方法。用于探讨动态系统 (如:人口移动、化学反应、气象变化、社会行为等) 中某些无法用单一的数据关系而必须用整体的、连续的数据关系才能加以解释及预测的行为。混沌是一种复杂的非线性、非平衡的动力学过程,是系统从有序突然变为无序状态的一种演化理论,是对确定性系统中出现的内在“随即过程”形成的途径,机制的探讨。其特点为:(1)混沌系统的行为是许多有序行为的集合,而每个有序分量在正常条件下,都不起主导作用;(2)混沌看起来试为随机,但都是确定的;(3)混沌系统对初值条件极为敏感,对于两个相同的混沌系统,若使其处于稍异的初态就会迅速变成完全不同的状态。这就是所谓的“蝴蝶效应”原理。 混沌和密码学之间具有天然的联系和结构上的某种相似性,利用混沌系统,可以产生数量众多、非相关、类似噪声、可以再生的混沌序列,这种序列难于重构和预测,从而使密码分析者难以破译。所以,只要加以正确的利用,就完全可以将混沌理论用于序列密码的设计中。混沌的轨道混合特性对应于系统加密系统的扩散特性,混沌信号的类似随机特性和对系统参数的敏感性对应于传统加密系统的混乱特性。可见混沌具有的优异混合特性保证了混沌加密器的扩散和混乱作用可以和传统加密算法一样好。另外,很多混沌体系本身就与密码学中的Feistel网络结构是非常相似的,例如保准映射、Henon映射等。所以算法设计正确合理,就完全可能将混沌理论用于分组密码中。 2混沌理论在加密中的具体实现 (一)混沌序列密码的加密原理。众所周之,加密的一般过程是将明文的信息序列变换成可逆的类随机序列。解密过程是对数学变换逆变换的猜测处理过程,将得到的类随机序列还原为明文。而混沌加密主要是利用由混沌系统迭代产生的序列,作为加密变换的一个因子序列,混沌加密的理论依据是混沌的自相似性,使得局部选取的混沌密钥集,在分布形态上都与整体相似。混沌系统对初始状态高度的敏感性,复杂的动力学行为,分布上不符合概率统计学原理,是一种拟随机的序列,其结构复杂,可以提供具有良好的随机性、相关性和复杂性的拟随机序列,使混沌系统难以重构、分析和预测。 (二)混沌加密方案设计。假设{Pn}是明文信息序列,{Kn}是密钥信息序列,由Logistic混沌方程迭代产生序列后,进行二值化处理后所得整数混沌序列,{Cn}是密文信息序列。 加密算法设计为:{Cn}={Pn} ⊕{Kn}; 解密算法设计为:{Pn}={Cn} ⊕{Kn}; 基于Logistic混沌映射的加密原理图如图1所示,解密过程是加密的逆过程。初始值xo和U是Logistic方程的参数,同时是加密系统的密钥参数K={Xo,u}。 图 1 基于Logistic映射的加密、解密原理图 因为混沌系统对初始条件的敏感依赖性,对于仅有微小差别的初值,混沌系统在迭代了一定次数后便会产生截然不同的混沌序列。 为了使相近初始值的混沌序列互相间更加不相关,在进行实验仿真的时候可对混沌序列经过1000次以上迭代后取值,可以有效地放大误差使得对初始条件的攻击无效,使加密效果更好,安全性更高。由于加密的是数字量,所以必须使用一种方法将这个由实数构成的序列{xn)映射成由整数构成的伪随机序列,来充当加密密钥。本文选用的方法:在迭代1000次后连续取迭代后的序列8个一组,判断它们的大小,若是大于0.4则数字化为1,否则为0。 3 Logistic混沌理论基础 混沌是在确定性系统中出现的,Logistic方程的倍周期分岔会导致混沌。Logistic方程为: X(n+1) = u * X(n) * (1 – X(n)) 这里X(n)取值范围为[0,1],u的取值范围为[3.6,4.0]。此方程可以用于“人口”或“虫口”的演化模型。此处需要指出的是u的范围本来可以取[0,4],但是因为我们迭代的次数过大,相当于无穷,所以当u3.569945627时,亦即周期2^n趋于无穷时混沌才出现。所以,这里u的值取3.6。 4 Logistic方程的Matlab仿真 4.1 倍周期分岔 以u为横坐标,X为纵坐标,画出倍周期分岔达到混沌的过程,以下是matlab源程序: function fenchatu () clear; clf; u=2.6:0
显示全部
相似文档