实验报告混沌同步控制与图像加密.docx
- 文档编号:3397680
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:12
- 大小:528.55KB
实验报告混沌同步控制与图像加密.docx
《实验报告混沌同步控制与图像加密.docx》由会员分享,可在线阅读,更多相关《实验报告混沌同步控制与图像加密.docx(12页珍藏版)》请在冰豆网上搜索。
实验报告混沌同步控制与图像加密
混沌同步控制与图像加密
―――《混沌实验教学平台的设计与实现》中期期报告
(华南师范大学物理与电信工程学院指导老师:
李军学生:
王龙杰、张丹伟、杨土炎)摘要:
基于混沌系统的某些独特性质,如初值敏感性,本文讨论了混沌理论的两个重要运用,即基于Lorenz混沌系统的同步控制和基于Logistic混沌映射的图像加密。
在讨论与分析的基础上,利用MATLAB软件进行数值计算与模拟,得到较好的效果。
关键词:
Lorenz混沌系统;同步控制;Logistic混沌映射;图像加密;MATLAB
基于Lorenz混沌系统的同步控制
一.引言
混沌是自然界及人类社会中的一种普遍现象,至今为止,在学术界对“混沌”还没有统一的被普遍接受的定义。
混沌运动是确定性和随机性的对立统一,即它具有确定性和随机性,所谓确定性是指混沌运动是在确定性系统中发生的,可以用动力学方程形式表述,这与完全随机运动有着本质的区别;所谓运动具有随机性,是指不能像经典力学中的机械运动那样由某时刻状态可以预言以后任何时刻的运动状态,混沌运动倒是像其他随机运动或噪声那样,其运动状态是不可预言的,换言之,混沌运动在相空间中没有确定的轨道。
混沌运动对初始状态(条件)具有敏感的依赖性,只要对系统施加非常微小的扰动,就可能把系统从一个不稳定的周期运动转变到另一个不稳定的周期运动上去,也可能转变到另一稳定的运动状态上,通
过这个特性,我们可以利用混沌有意义的一面,而避其有害的一面。
Lorenz系统作为第一个混沌模型,是混沌发展史上的一个里程碑,具有举足轻重的地位。
对Lorenz系统的深入研究无疑已经极大地推动了混沌学的发展。
人们发现混沌控制在众多领域中有着广阔的应用前景,尤其在电子学、电力系统、保密
通信和振荡发生器设计等领域有着巨大的应用前景,因此引起了广泛的重视。
由于混沌行为对初始状态的敏感依赖性,受到噪声、干扰以及系统不稳定的影响,特别是在混沌同步中,实
际系统中很难观测到混沌同步。
自从1990年,Pecora和Carroll提出了混沌同步的概念和
方法以后,随着混沌同步研究的不断深入,混沌控制与同步的研究工作得到了长足的发展,并
逐渐成为混沌与控制领域研究的热点。
对于相近的混沌轨道,通过相同的非线性系统控制,最终可能导致完全不相关的状态。
但在实际应用中,往往要求控制得到相关的状态或所需要的同步结果,本文采用了加入反馈控制量的方法使其耦合,最终达到所要求的同步。
在计算机上的仿真结果显示,能在短时间内实现耦合同步控制。
Lorenz系统同步控制
1963年,Lorenz在研究大气对流时,在三维自治系统中发现了第一个混沌吸引子。
用动
现在我们用一
力学变量连续反馈来控制和驱动系统的运动是力学与电子工程中常用的方法。
取驱动信号为Lorenz系统产生的变量x,构成响应系统:
d^=_c(u「V)u0
dt
dv
au—v—uwv0dt
dw,z、
b(uv-w)w0dt
可以看出,由于系数(uo,Vo,Wo)的存在,两个系统的初始值是不同的。
我们知道,
当Lorenz系统方程中参数取值为:
a=28,b二&3,c=10时,系统经过一段时间演化
后将会进入混沌状态,那么,如果能够实现这两个系统的同步控制,则相应系统最终也会进
入同样的混沌,当然我们希望所需时间越短越好。
下面,我们利用MATLAB软件进行数值
模拟,程序如下:
1.驱动系统微分方程:
functiondY=Lorenz_driven(T,Y)
a=28;b=8/3;c=10;
dY=[-c*(Y
(1)-Y
(2));a*Y
(1)-Y
(2)-Y
(1)*Y(3);b*(Y
(1)*Y
(2)-Y(3))];
2•响应系统:
function[Y1]=Lorenz_response(tspan);
globalY;globalT;
yinit=[0.1,0.1,20];
y(1:
3)=yinit;
tstart=0;tstep=0.1;wholetimes=200;steps=1;
iteratetimes=wholetimes/steps;
S=output;
fori=1:
iteratetimes
tspan=tstart:
0.5*tstep:
(tstart+tstep*steps);
[t,Y1]=ode45(@Lorenz_driven,tspan,y);
y=Y1(3,:
);y
(1)=S(i+1,2);
tstart=tstart+tstep*steps;results(i,:
)=Y1(3,:
);
end
subplot(3,1,2);plot(results(:
1),results(:
3),'b-');title('响应');
subplot(3,1,3);
plot(Y(:
1),Y(:
3),'k-',results(:
1),results(:
3),'b-');title('驱动-响应叠加');
fori=1:
iteratetimes
TT(1,i)=i*tstep;
end
figure
(2);
subplot(2,1,1);
plot(T,Y(:
3),'k-');title('驱动');
subplot(2,1,2);
plot(TT,results(:
3),'k-');title('响应');
3.驱动系统的输出:
functions=output;
globalY;globalT;
tstart=0;tstep=0.1;wholetimes=200;tspan=tstart:
tstep:
wholetimes*tstep;
[T,Y]=ode45(@Lorenz_driven,tspan,[0.10.10.1]);s=[T,Y];
figure
(1);subplot(3,1,1);
plot(Y(:
1),Y(:
3),'k-');
title('驱动');
[0.1,0.1,20],
,可以看到以下
其中,我们设置驱动系统的初值为[0.1,0.1,0.1],而响应系统的初值为
显然Z的初值相差很大。
在MATLAB界面窗口输入指令:
Lorenz_response
X-Z相图图像:
50
驱动
0L
-10
-5
0
5
10
15
改变相图的输出平面为Y-Z:
其对应的Z的时域响应图像分别是:
6
4
2
0246
8101214161820
三.结论
数值仿真的结果表明只要响应系统与驱动系统有相同的方程结构和参数,无论初值如
何选取,都能迅速达到两个系统的混沌同步。
基于混沌同步的原理,我们可以提出一种混沌
通信设计方案。
信息信号调制到混沌变量x(t)成为混沌传输信号s(x,m),只要响应系统
与驱动系统满足同步条件,两个系统就能达到同步,所以驱动系统的方程结构和参数空间(a,
b,c)的一组数可作为信号解调的密钥,控制两个系统的同步,从而将信息信号复原,实现混
沌保密通信。
运用控制手段,能消除初始状态对运动不确定性的影响,使混沌系统的运动最终
按照人们的意愿发展。
因此,开展此类研究对混沌同步控制在实际应用中具有特别重要的价值。
基于Logistic混沌映射的图像加密
Logisitc混沌
由于混沌系统具有伪随机性、不确定性和对初始条件与系统参数的极为敏感性,其自身
在图像加密领域表现出良好的
的动力学特性使混沌现象天生具备了应用于保密安全的条件,
应用前景。
利用混沌系统的初值敏感性可以提供数量众多、
Xn厂Xn(1—Xn)[0,1]
(1)
该序列具有初值敏感、表现形式复杂、类噪声等特点。
这些特性使得混沌序列在分布上不符合概率统计学原理,难以重构和预测,应用于密码学具有保密性强、随机性好、密钥量大、更换密钥方便等特点,是生成密钥流的理想序列。
2.加密算法
算法原理步骤:
第一步:
读取原图像Ximage为MixN参数矩阵,根据Logistic映射
(1),利用密钥keyl、key2分别生成两组混沌序列a和b,其中密钥即为序列初始值x0
第二步:
按照一定的权重(如4:
6)将两组混沌序列叠加,取整并令其值为[0,256],
生成置乱矩阵e,取整算法:
e=round(256*(0.4*a+0.6*b))
第三步:
对原图像进行加密处理。
将参数矩阵与置乱矩阵e中相对应的元素按一定权重叠加(如1:
99),生成加密图像Yimage,即卩
Yimage=0.01*Ximage+(1-0.01)*e
第四步:
解密,即加密的逆过程,但必须知道密钥key1和可用可用key2。
置乱度定义:
衡量图像加密效果的一个最重要的标准是置乱程度,一般定义置乱度(SM)来评估图
像的置乱程度,它的计算为
mn
迟迟(Xj-~j)2SM(X,X)=,⑵
(Xj-rj)2
i=1j=1
其中X-{xij}mn表示原始图像,X-{xij}mn表示置乱图像,R-{rij}mn表示与原始图像相同大小的均匀分布噪声图像。
3.举例与分析
下面以一副256X256的图像lena.gif为例,根据上述算法利用MATLAB^件进行图像
加密,加密程序如下:
functionjiami
clc;
clearall;
globalM;
globalN;
globalXimage;
globalYimage;
Ximage=double(imread('C:
\ProgramFiles\MATLAB71\work\lena.gif'));key1=0.1;
key=4;
[M,N]=size(Ximage);
figure
(1)imshow(Ximage,[]);
Ximage=double(Ximage);
for(i=1:
M)
for(j=1:
N)
key1=key*key1*(1-key1);
a(i,j)=key1;
end
endkey2=0.2;
for(i=1:
M)
for(j=1:
N)
key2=key*key2*(1-key2);
b(i,j)=key2;
end
end
x=0.4*a+0.6*b;
e=round(x*256);
tt=0.01;
Yimage=tt*Ximage+(1-tt)*e;
figure
(2)
imshow(Yimage,[]);
%%置乱度分析
Yimage=double(Yimage);
sx=sum(sum((Ximage-256*rand(M,N)).A2));
DD=sy/sx%置乱度
comeback;%解密
解密程序:
globalXimage;
globalYimage;
key1=input('请输入密钥keyl:
');
key=4;
for(i=1:
M)
for(j=1:
N)
key1=key*key1*(1-key1);
a(i,j)=key1;
end
end
key2=input('请输入密钥key2:
');
for(i=1:
M)
for(j=1:
N)
key2=key*key2*(1-key2);
b(i,j)=key2;
end
end
x=0.4*a+0.6*b;
e=round(x*256);
tt=0.01;
Zimage=(Yimage-(1-tt)*e)/tt;
figure(3)
imshow(Zimage,[]);
程序中密钥key1=0.1,key2=0.2,原图和加密图如下所示,显然加密效果明显,根据置乱度计算公式
(2),其置乱度SM=0.8305。
⑻原图像
(b)加密图像
为了恢复原图,必须在MATLAB面窗口输入两个密钥,easel:
“请输入密匙1:
0.1请
输入密匙2:
0.1999”;ease2:
“请输入密匙1:
0.1请输入密匙2:
0.2”;ease3:
“请输入密匙1:
0.1001请输入密匙2:
0.2”。
从图像中可以看出,基于该算法的图像加密具有很好的保密性,只要密钥稍微有错就不可能成功解。
经调试,只要密钥误差超过10」5数量级
就不能完整获得原图。
ease1
参考文献:
1.
1997
《TheEsseneeofChaos》(《混沌的本质》)E.N.洛仑兹,气象出版社,北京
2.《精通MATLAB7王正林文U明,电子工业出版社,北京2007
3.
34卷第
《一种基于混沌映射的图像加密算法》黄怡然,尹成群,华北电力大学学报,第
4期2007年7月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 混沌 同步 控制 图像 加密