联系我们 |
 |
合作经济与科技杂志社
地址:石家庄市建设南大街21号
邮编:050011
电话:0311-86049879 |
|
|
经济/产业 |
混沌现象是非线性动态系统中出现的确定性的伪随机过程。这种过程是非周期性的,整体上稳定而在局部上具有扩张性,它对初始条件的敏感性以及混沌信号的宽带性是好的密码系统的重要特征。
混沌加密是利用混沌系统产生混沌序列作为密钥序列,利用该序列对明文加密,密文经信道传输,接收方用混沌同步的方法将明文信号提取出来实现解密。比起一般的加密技术,混沌加密更难破解,且混沌加密利用混沌系统对初始条件的极端敏感性和难以预测性,具有运算速度快、保真度高、密钥量大、安全性好以及足够的带宽和较强的实时功能,是加密领域的一种新方法,有着广阔的应用前景。
一、混沌预备知识
关于混沌的定义很多,现在还没有一个统一的结论。目前,最普遍的定义是:混沌是指发生在确定性系统中的貌似随机的不规则运动,一个确定性理论描述的系统,其行为却表现为不确定性——不可重复、不可预测——这就是混沌现象。进一步研究表明,混沌是非线性动力系统的固有特性,是非线性系统普遍存在的现象。
(一)混沌的数学定义。一个一维离散非线性动力系统可以定义为:x■=f(x■)。设V为紧度量空间,连续映射f:V?邛V,如果满足以下条件:(1)对初值的敏感依赖;(2)拓扑传递性;(3)f的周期点在V中稠密;则称f是在V上的混沌映射。
(二)两类混沌映射介绍
1、Logistic映射。Logistic映射是一类非常简单却被广泛研究的动力系统。它的定义如下:x■=?滋xk(1-x■),其中当?滋∈(3.57,4]时,系统为混沌状态,其Lyapunov指数大于0。
2、正弦平方映射。其定义如下:x■=sin2(barcsin(■)),其中x0∈R,且0<x0<1,当b>1,n>25时,其Lyapunov指数?姿=In(b)大于零,系统工作在混沌状态。
以上混沌系统形式简单,只要有混沌映射的参数和初始条件就可以方便地产生、复制混沌序列。
二、混沌加密序列的产生
由文献所知,低维平凡加密过程难以保障信息安全。本文即采用两个实数值混沌映射的迭加产生的非平凡混沌的新序列。该新序列由Logistic映射和正弦平方映射两映射迭加。
即:由正弦平方映射x■=sin2(barcsin(■))产生一个序列x■:k=0,1,2,…,
再将新序列x■代入Logistic映射迭代所需要次数,得到最终的加密序列x′■。
取b=5,?滋=3.8,初值x0分别取0.51以及0.49时,该映射如图1所示。(图1)
由此可见,该映射是非周期性映射,且对初值的敏感依赖,符合混沌映射的特征,可以认为该映射为混沌映射。
三、加密算法设计
(一)算法模型分析。数据加密是为了使数据信息的传输和存储不为本系统以外的人所知,而对数据进行的保密处理。加密的目的是为了隐蔽信息,不易破解。可以从用户的输入得到混沌映射的运行参数,控制参数越多,无疑破解的难度越大,即密钥的长度越长。获得控制参数后,把两个混沌映射在初始一定的次数后把它们做乘运算得到伪随机数列,然后取出待加密数据进行异或运算得到加密数据。解密是加密的逆过程。
(二)图像加密算法
第一步:输入密钥M,N,确定原始图像IR=(i,j,color);(M>25)
第二步:输入混沌映射的初始值x0,用正弦混沌映射生成混沌序列:x■,x1,x2,…,从第M个数据开始取加密序列,记为x■■,x■■,x■■,…;
第三步:将x■■,x■■,x■■,…根据Logistic映射迭代N次,生成加密混沌序列x■■,x■■,x■■,…;
第四步:将每个像素的灰度值与加密的混沌序列相加形成图像新的灰度值IR=(i,j,color');
第五步:终止算法。
(三)图像解密算法
第一步:输入密钥M,N,确定原始图像IR=(i,j,color);
第二步:输入混沌映射的初始值x■,用正弦混沌映射生成混沌序列:x■,x1,x2,…,从第M个数据开始取加密序列,记为x■■,x■■,x■■,…;
第三步:将x■■,x■■,x■■,…根据Logistic映射迭代N次,生成加密混沌序列x■■,x■■,x■■,…;
第四步:将每个像素的灰度值减去加密的混沌序列形成图像新的灰度值IR=(i,j,color');
第五步:终止算法。
(四)文本加密算法
第一步:输入密钥M,N,确定原始文本数据T=(i);(M>25)
第二步:输入混沌映射的初始值x0,用正弦混沌映射生成混沌序列:x■,x1,x2,…,从第M个数据开始取加密序列,记为x■■,x■■,x■■,…;
第三步:将x■■,x■■,x■■,…根据Logistic映射迭代N次,生成加密混沌序列x■■,x■■,x■■,…;
第四步:将每个像素的灰度值与加密的混沌序列相加形成图像新的灰度值T=(i');
第五步:终止算法。
(五)文本解密算法
第一步:输入密钥M,N,确定原始图像T=(i');
第二步:输入混沌映射的初始值x0,用正弦混沌映射生成混沌序列:x■,x1,x2,…,从第M个数据开始取加密序列,记为x■■,x■■,x■■,…;
第三步:将x■■,x■■,x■■,…根据Logistic映射迭代N次,生成加密混沌序列x■■,x■■,x■■,…;
第四步:将每个像素的灰度值减去加密的混沌序列形成图像新的灰度值T=(i);
第五步:终止算法。
四、仿真结果及分析
在计算机上进行仿真时,这里取算法里的M=30,N=100,即从第一位起取正弦映射数列,随后Logistic映射数列迭代100次后开始输出序列,对每一个字节数据进行混合运算后的异或运算。
仿真结果1:对png格式的图片文件进行加密和解密,结果如图2所示。(图2)左图为原图片;中间图片为加密后图片;右边图片为解密后图片。
当密钥取值错误时解密后将得不到原图,如将密钥N=100改成N=101,将得到图3。(图3)左图为原图片;中间图片为加密后图片;右边图片为解密后图片。
仿真结果2:明文:Welcome to Southern Yangtze University. 密文及解密数据见图4。(图4)其中,c表示加密后数据;d表示解密后数据。
当密钥取值错误时解密后将得不到原文本,如将密钥N=100改成N=101,将得到图5。(图5)其中,c表示加密后数据;e表示解密后数据。
上述仿真结果表明,该算法具有很好的保密性,较难破译。
五、算法分析
该算法具有很好的保密性,且较难破译。混沌加密产生的伪随机流具有很好的随机性,且复杂性远远大于两种单一混沌映射加密的复杂性之和。且由于混沌参数对初值的敏感性,即使有很小的值的变化,也会得到迥异的结果。本算法得到的伪随机数列,改进了由于计算机精度使混沌序列为周期序列的过程,更加适合产生长周期的伪随机数列。
该加密算法在加密图像时,由于涉及到各个像素灰度值的更改,每次更改的迭代次数为N次,势必增加对系统的资源的利用,延长加密所需要的时间。
六、结论
本文提出的基于混沌理论的数据加密算法,改进了由于计算机的精度问题使得混沌序列退化为周期序列的问题,从而使得加密序列具有良好的随机性。实验结果显示,用这种序列对数据进行加密,它是安全可靠的,而且也具有很好的应用前景。■ |
|
|
|