实验报告:混沌同步控制与图像加密
混沌同步限制与图像加密 ―――《混沌试验教学平台的设计与实现》中期期报告 (华南师范高校 物理与电信工程学院 指导老师 :李军 学生:王龙杰、张丹伟、杨土炎 ) 摘要:基于混沌系统的某些独特性质,如初值敏感性,本文探讨了混沌理论的两个重要运用,即基于Lorenz混沌系统的同步限制和基于Logistic混沌映射的图像加密。在探讨与分析的基础上,利用MATLAB软件进行数值计算与模拟,得到较好的效果。 关键词:Lorenz混沌系统; 同步限制; Logistic混沌映射; 图像加密; MATLAB 基于Lorenz 混沌系统的同步限制 一. 引言 混沌是自然界及人类社会中的一种普遍现象,至今为止,在学术界对“混沌”还没有统一的被普遍接受的定义。混沌运动是确定性和随机性的对立统一,即它具有确定性和随机性,所谓确定性是指混沌运动是在确定性系统中发生的,可以用动力学方程形式表述,这与完全随机运动有着本质的区分;所谓运动具有随机性,是指不能像经典力学中的机械运动那样由某时刻状态可以预言以后任何时刻的运动状态,混沌运动倒是像其他随机运动或噪声那样,其运动状态是不行预言的,换言之,混沌运动在相空间中没有确定的轨道。混沌运动对初始状态(条件)具有敏感的依靠性,只要对系统施加特别微小的扰动,就可能把系统从一个不稳定的周期运动转变到另一个不稳定的周期运动上去,也可能转变到另一稳定的运动状态上,通过这个特性,我们可以利用混沌有意义的一面,而避其有害的一面。Lorenz系统作为第一个混沌模型,是混沌发展史上的一个里程碑,具有举足轻重的地位。对Lorenz系统的深化探讨无疑已经极大地推动了混沌学的发展。 人们发觉混沌限制在众多领域中有着广袤的应用前景,尤其在电子学、电力系统、保密通信和振荡发生器设计等领域有着巨大的应用前景,因此引起了广泛的重视。由于混沌行为对初始状态的敏感依靠性,受到噪声、干扰以及系统不稳定的影响,特殊是在混沌同步中,实际系统中很难观测到混沌同步。自从1990年, Pecora和Carroll提出了混沌同步的概念和方法以后,随着混沌同步探讨的不断深化,混沌限制与同步的探讨工作得到了长足的发展,并渐渐成为混沌与限制领域探讨的热点。对于相近的混沌轨道,通过相同的非线性系统限制,最终可能导致完全不相关的状态。但在实际应用中,往往要求限制得到相关的状态或所须要的同步结果,本文采纳了加入反馈限制量的方法使其耦合,最终达到所要求的同步。在计算机上的仿真结果显示,能在短时间内实现耦合同步限制。 二. Lorenz系统同步限制 1963 年,Lorenz 在探讨大气对流时,在三维自治系统中发觉了第一个混沌吸引子。用动力学变量连续反馈来限制和驱动系统的运动是力学与电子工程中常用的方法。现在我们用一个混沌信号去驱动另一个混沌系统。设驱动系统为Lorenz 系统: 取驱动信号为Lorenz 系统产生的变量x ,构成响应系统: 可以看出,由于系数(,,)的存在,两个系统的初始值是不同的。我们知道,当Lorenz系统方程中参数取值为:,, 时,系统经过一段时间演化后将会进入混沌状态,那么,假如能够实现这两个系统的同步限制,则相应系统最终也会进入同样的混沌,当然我们希望所需时间越短越好。下面,我们利用MATLAB软件进行数值模拟,程序如下: 1.驱动系统微分方程: function dY=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); global Y; global T; yinit = [0.1,0.1,20]; y(1:3) = yinit; tstart = 0; tstep = 0.1; wholetimes = 200; steps = 1; iteratetimes = wholetimes/steps; S=output; for i=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( 驱动-响应叠加 ); for i=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.驱动系统的输出: function s=output; global Y; global T; tstart = 0; tstep = 0.1; wholetimes = 200; tspan=tstart:tstep:wholetimes*tstep; [T,Y] = ode45(@Lorenz_driven,tspan,[0.1 0.1 0.1]); s=[T,Y]; figure(1); subplot(3,1,1); plot(Y(:,1),Y(:,3), k- ); title( 驱动 ); 其中,我们设置驱动系统的初值为[0.1,0.1,0.1],而响应系统的初值为[0.1,0.1,20],明显Z的初值相差很大。在MATLAB界面窗口输入指令:Lorenz_response ,可以看到以下X-Z相图图像: 变更相图的输出平面为Y-Z: 其对应的Z的时域响应图像分别是: 三. 结论 数值仿真的结果表明只要响应系统与驱动系统有相同的方程结构和参数,无论初值如何选取, 都能快速达到两个系统的混沌同步。基于混沌同步的原理,我们可以提出一种混沌通信设计方案。信息信号调制到混沌变量x(t) 成为混沌传输信号s(x, m) ,只要响应系统与驱动系统满意同步条件,两个系统就能达到同步,所以驱动系统的方程结构和参数空间(a, b,