混沌算法

2024-08-25

混沌算法(共8篇)

混沌算法 篇1

近20年来,基于混沌搜索路径的集中优化算法有了很大的发展,出现了混沌神经网络[1],混沌模拟退火[2],混沌禁忌搜索[3]和混沌搜索[4]等相关算法,这些只是一些确定的优化算法例子。基于混沌的搜寻策略可以获得很好的性能并且避免了局部最优,该方法比任意搜寻更有效率。

在混沌控制及同步问题中,如何获得混沌动态系统的不确定参数是一个很重要的问题。近几年,人们提出了很多不同的方法来解决混沌系统的参数识别问题。基于卡尔曼滤波,Annan和Hargreaves介绍了一种有效识别混沌系统参数的方法;基于Lyapunov函数理论,Parlitz和Chen etal通过同步方法来估计混沌系统的参数[5],Lietal对该方法进行了相关讨论。

现给出了一种称作CFS的搜索算法,通过构造一个合适的适应度函数,将混沌系统的参数估计问题转化为参数优化问题来解决参数辨识问题。在CFS算法中,引进组织变量得到鱼群的组织自律过程。在算法中,有两种选择邻居的途径。Lorenz系统和Logistic系统的仿真结果表明了所提出算法对于混沌系统参数优化的有效性。

1混沌鱼群优化算法

受到鱼天性行为的启发,提出了一种称为CFS(混沌鱼群)的优化方法。该算法从混乱视角来描述:单个鱼的混沌行为和鱼群的智能组织行为的适应性,从而解决优化问题。假设:鱼能够找到食物来源,并能记住最好食物来源的信息。鱼之间交换信息。在自我组织搜寻过程中,有如下两个连续过程发生:(1)鱼混乱行走导致的不协调过程,鱼的组织能力很弱,单个鱼在混乱行走时拥有信息素或者可视标志作为间接联系的形式去帮助其它鱼获得适合的食物来源,这一阶段持续到单个行为导致的组织影响足够大时;(2)产生协调阶段。纵观整个自我组织过程,鱼间交换信息且进行比较并记住这种信息。

鱼的搜索区域对应于问题的搜索空间。所提算法搜寻最优所在的搜索空间通常记做Rl,l为连续空间的实际数目。假设有K只鱼,它们位于搜索区域S且它们试图记住SR的函数关系。在S中的每个s对于所考虑的问题都是有效的解决办法。由于仅考虑搜索空间为连续空间的情况(S=Rl)。第i个鱼的位置记为数学变量si=(zi1,…,zil),其中i=1,2,…,K。显然,每个变量可为任意有限维。在行动过程中,每个鱼单个受到群体的有组织过程的影响。从数学角度看,单个鱼的运动策略假设为当前位置、由该鱼找到的最佳位置、相邻的其他成员,组织变量函数如下表示:

zid(n)=g[zid(n-1),pid(n-1),yi(n)] (1)

式(1)中:n表示当前步数,n-1表示先前步数;

zid(n)表示鱼单个i的第d维的当前状态;

pid(n-1)表示有第i个鱼和相邻的鱼在n-1步之前找到的最佳位置;yi(n)表示组织变量的当前状态;g表示非线性函数。

问题的焦点是定义规则:一只鱼可以移动的期望方式。期望的单个鱼的搜索行为最初是混乱的,最初的组织变量行为对单个鱼的影响相当小。伴随组织变量不断的改变,最终,该组织变量行为对单个鱼的影响越来越强烈。当组织变量的影响足够大时,鱼的无序行为就消失了。然后鱼在它们能找到在搜索空间内做进一步的搜索和移动。在整个过程当中,它们和周边不断地交换着信息。

为了获得最初的混沌搜索,Sole[7]介绍的混沌系统方程xn+1=xn+1eu(1-xn)被介绍进入本文的准启发式方程。由于成功消耗组织变量yi(n)的引入导致单个鱼混沌行为的调整,并引领单个移动到新的位置最终获得最好的状态。为了实现个体之间的信息交换和以最好的状态到达新的位置,提出(pid(n-1)-zid(n-1))。pid(n-1)是根据广泛应用于诸如遗传算法和禁忌搜索的最优化理论来选择的。因此,获得了混沌鱼群的动态优化系统如下:

{yi(n)=yi(n-1)(1+ri)zid(n)=zid(n-1)e(1-ayi(n))(3-ψdzid(n-1))+(pid(n-1)-zid(n-1))e-2ayi(n)+b(2)

式(2)中,a是一个足够大的正常量并可以选择a=200,b是一个常量并0≤b≤1/3,ψd决定了在d元空间内的选择搜索范围,ri>0是一个正常数并小1,由受组织因素作用的鱼i所确定, yi(n)=0.999,其他变量的定义同方程(1)。

前文提到,鱼经常通过一些直接或间接的方式交换信息,它们之间的组织就随着时间逐渐变强,最终所有的鱼走到食物源头。方程(2)描述搜索过程中的混沌鱼群,yi(n)是用来控制混乱过程中鱼的行走方式,并且它最初对鱼行为的影响是非常微弱的。这就是说,yi(n)对状态混沌系统的影响较小。随着时间的发展,组织变量yi(n)通过ri的影响变得越来越大。而pidyi(n)的影响使得混沌系统最终趋于最优或近似最优状态。

riψd在算法中是两个重要的参数。ri作用于混沌鱼群的收敛速度。如果组织因素ri非常大,且“混乱”搜索的时间较小,则系统收敛较快。因此,不能达到预期的最优或近似最优状态。如果组织因素ri非常小,且“混乱”搜索的时间较长,则系统收敛慢并且运行时间会很长。随着时间的发展,小的改变是必须的, ri的取值通常是选择0≤ri≤0.5,ri的格式可以根据具体的问题和运行时间来设计。

为了表示每只鱼都有不同的ri,现设置ri=0.1+0.2·rand(),这里rand()是一个在[0,1]均匀分布的随机数。在“混乱”的搜索后,收敛速度将主要通过

zid(n)=zid(n-1)+eb[pid(n-1)-zid(n-1)]

决定。ψd主要影响了该方法的搜索范围。通过分析方程(2),得知,如果参数ψd很小,则算法的搜索范围较大,反之亦然。如果间隔的搜索是[0,ωd],便可以获得一个近似公式ωd=7.5/ψdψd的值应该根据具体的优化问题适当地选择。

通过各种模拟,发现上述模型的混沌鱼群方程(2)在约束搜索寻优积极或消极的间隔。也就是说,如果ψd>0,方程(2)可用于实现在所有zid≥0时间间隔内的搜索过程。如果ψd<0,方程(2)可用于所有zid≤0的时间间隔内的搜索过程。当所有最优值位于积极的间隔(或消极的间隔),方程(2)能够有效地解决数值优化问题。然而,最优值可以位于整个实数范围内。为了解决这一问题的搜索区域,现给出了比方程(2)更加完美的CFS模型:

式(3)中0≤Vi≤1决定鱼i的搜索区域,且拥有在不同问题空间搜索的优势。如果Vi=1/2,这意味着和方程(2)相比,鱼i的混沌吸引子向负的方向移动一半。Vi应该按照具体的优化问题适当取值。方程(3)为一般的混沌鱼群算法模型。在这个模型中可以选择单个鱼的zid(0)=(7.5/ψd)(1-Vi)rand(),ψd>0作为初始位置。

原则上, 一个区域可以是任何有限指令集。在它们附近的参数空间内, 这些邻居不一定是单个个体, 而是拓扑空间内单个个体。该方法中, 相邻鱼是根据它们有限的距离空间定义的。这是一种动态的邻居。当然,在空间中可以使用任意距离的定义, 例如拓扑距离和规范距离。这里, 假设有两个鱼的位置(zi1, …, zil)和(zj1, …, zjl),而i, j=1, 2, …, K并且ij; i, j意味着第ij个鱼,那么两只鱼之间的距离为(zi1-zj1)2+(zi2-zj2)2+(zil-zjl)2

现定义了两种方法的邻居选择。第一种是最近的固定数量的邻居,定义最近的m个鱼作为鱼i的邻居。例如,定义最近的3条鱼作为邻居,一条鱼的邻居可能会随着时间的变化而改变;第二种是邻居的数量选择是考虑到随着迭代的步骤,邻居数量会增加的情况。这是由于鱼行为的自组性的影响。组织的影响将变得比以前更加强且邻里之间的鱼会增加。也就是说,最近邻居的数量是随着时间的推移或迭代步骤增加而动态改变的。这里定义q为伴随迭代步骤增加的单个鱼数量。由于每个单独的轨迹是调整向邻居,鱼群收敛或集群在搜索空间中的最优区域。如果单个鱼不能从它们的邻居获得最好的食物来源的信息,搜索的一些鱼便会失败。

2混沌系统的参数识别

将描述通过混沌鱼群算法混沌系统的参数估计过程:

x˙=G(x,θ)(4)

让式(4)作为一个持续的非线性混沌系统,x=(x1,,xΝ)Τ为混沌系统的状态向量,x˙x的导数,θ=(θ1,…,θt)是混沌系统的未知参数向量。

下面给出持续混沌系统参数识别过程。在搜索空间中随机生成所有鱼的最初位置,鱼x的初始位置为θ^i0=(θ^il0θ^il0)Τ;i=1,2,…,K这里θ^θ的估计。未知参数的搜索范围是通过ψd选择的,其中d指的是搜索范围dth元素的搜索空间变量。基于可衡量的状态向量

定义如式(5)目标函数。

f(e)=t=0W[(x1(t)-xi1n(t)]2++

[xN(t)-xniN(t)2] (5)

式(5)中t=0,1,2…,W。因此,把参数估计的问题转化为用CFS算法寻找θ^i0=(θ^il0θ^il0)Τ的最优值,所以未知变量f在整体上被缩小。对于每一步,公式(4)中θ^in将会被取代。利用非线性方程(4),将会得到状态向量xin(t)=[xi1(t),,xil(t)]Τ。在每一个重复步骤中,由公式(5)衡量的已辨识出参数的性能。如果所有的鱼达到最终的状态,参数估计的过程将结束并输出结果。

现在讨论如何获得状态向量x(t),仿真是用未知的四阶龙格-库塔矩阵在Matlab的环境下运行。任意选择一个点作为初始状态,并且初始时刻设为0。让混沌系统从初始时刻运行到Wh。那么可以得到在时刻0h,1h,2h,…,Mh下的状态向量x(t)=[x1(t),,xΝ(t)]Τ,这里步长h=0.01和上述连续混沌系统的辨识过程是相似的,由此可以解决在非线性混沌系统匹配上的参数估计问题。

3仿真实例

通过数值仿真证实了CFS算法对混沌系统参数估计的作用。CFS的参数选择是基于快速收敛率,达到了预期的结果。由于篇幅有限,这里仅选择著名的Logistic系统和Lorenz系统[8]为代表[9]验证本文算法。系统描述为:

xn+1=λ(1-xn)xn (6)

{x1=θ1(x2-x1)x2=(θ2-x3)x1-x2x3=x1x2-θ3x3(7)

在(6)式、(7)式分别所示的Logistic和Lorenz系统里x1、x2、x3、xn是状态变量,θ1、θ2、θ3、λ是未知的正常数参数。在模拟中设置参数值为θ1=10、θ2=28、θ3=8/3,λ=4此时该系统处于混沌状态。设置方程(2)中的混沌鱼群参数y(0)=0.999,a=200,b=2/3,K=20, ψ1=0.5,ψ2=0.15,ψ3=0.75,ri=0.1+0.2·rand()。W=30是目标函数(5)的参数。邻居的数量是19,这是第一个类邻居形式。

为了观察鱼群的非线性动态搜索过程作为一个整体,分别绘制Logistic和Lorenz系统的所有鱼的搜索值如图1—图3和图4。从图4中,可以看到经过本文鱼群算法的处理,最终算法收敛到了Lorenz系统相应的参数值上,所以说该混沌鱼群模型可以作为一个有效的优化模型,是混沌系统参数参数辨识的有效工具。

4总结

利用仿生学搜索算法—CFS(混沌鱼群)算法,成功的研究了混沌系统参数辨识问题。CFS是一个确定性混沌优化方法,它的灵感来自大自然真正的鱼行为,它有别于传统鱼群算法。是一个通过混乱的视角来描述单个鱼的自适应混沌行为和智能组织行动鱼群优化问题的解决方法。该方法包括混沌动态学和swarm-based搜索。Lorenz系统和Logisti系统仿真结果表明了该算法的有效性和可行性。此方法可以解决工程上的许多优化问题。

参考文献

[1] Aihara K,Takabe T,Toyoda M.Chaotic neural networks.Phys LettA,1990;44:333—340

[2] Chen L,Aihara K.Chaotic simulated annealing by a neural networkmodel with transient chaos.Neurl Networks,1995;8:15—30

[3] Hasegawa M,Ikeguchi T,Aihara K,et al.A novel chaotic search forquadratic assignment problems.Eur J Operat Res,2002;139:543—56

[4] Li B,Jiang W.Optimizing complex functions by chaos search.Int JCybernet Syst,1998;29:409—419

[5] Lie J,Chen S,Xie J.Parameter identificat and control of uncertainunifie chaotic system via adaptive extending equilibrium manifold ap-proach.Chaos,Solitons&Fractals,2004;19:533—540

[6]杨万利,王铁宁.非线性动力学理论及应用.北京:国防工业出版社,2007

[7]彭书华,李邓化,苏中,等.一类不确定混沌系统的模糊滑模控制与同步.计算机工程与设计,2010;31(6):1291—1293

[8] Kehui Sun,J.Sprott C.Dynamics of simplified Lorenz system.Int JBifurcat Chaos,2009;19:1357—1366

[9] Yassen M T.Chaos control of chaotic dynamical systems using backstepping design.Chaos,Solitons&Fractals,2006;27:537—548

混沌算法 篇2

关键词:FPGA;混沌伪随机序列;均匀化普适算法;统计测试

中图分类号:TN918.2 文献标识码:A 文章编号:1674-7712 (2012) 18-0024-02

PRNG即高质量伪随机序列发生器,在作为一种随机数源的混沌系统时可以对PRNG进行构造,但是在加密时,出现参数空间过小及其它一些新的问题。在现有理论基础上,大多数的混沌系统对于PRNG构造时的均匀性分布还存在不足,这就使得混沌系统在电子信息技术领域内的应用受到了限制。因此,本文提出一种普适算法,对均匀化普适算大进行分析与研究。

一、原理

二、系统结构研究

本文研究的重点也就是对下位机的原理进行讨论。

(一)下位机结构

如图3所示为下位机整体框架图,主要由四个单元构成,包含二进制尾数缓存器、双精度尾数序列缓存器、异步收发控制器、均匀化算法实现单元,其中核心单元为均匀化算法单元,该算法的速度直接和计算结果的均匀性有一定连续,所以是研究的关键。

(二)各单元的设计

(2)二进制尾数缓存器。UART所接收到的串行数据可以通过该设备获取,获取后分配到均匀化算法单元,然后计算出初始值,在datardy信号上升的时候,就会触发均匀化算法单元,对其进行计算。

(3)均匀化普适算法单元。该系统中,最关键的部分就是均匀化普适算法单元,该单元的主要功能是对ini-over信号上升进行监测,然后对初始值输出端口的值进行读取,让读取的值进行均勻化的转换,采用两个进程同时对其进行运算,该方法虽然在设计上占用了较大的资源,但是其运算速度得到大幅度的提高。Count信号在算法单元中的作用是延时,系统时钟提供时钟信号,通过功能仿真,时钟上升沿之后,就可以完成运算。这个时候,将data-rdy设置为1,并通知尾数序列缓存器运算单元,完成这些步骤之后,运算也就可以完成。

三、结束语

本文主要提出了在串口通信基础上的均匀化算法的FPGA实现的方案,通过实践验证,将该方案应用于混沌系统之中,可以有效的改善伪随机序列的诸多均匀性质,例如局部均匀性、游程分布等,这就为制作混沌加密芯片提供了一种性能优良的技术。

参考文献:

[1]盛利元,肖燕予,盛拮.将混沌序列变换成均匀伪随机序列的普适算法[J].物理学报,2008,7.

[2]周悦,朱灿焰,汪一鸣.Logistic数字混沌序列性能分析[J].现代电子技术,2006,9.

[3]冯伟.基于FPGA的超混沌PN序列产生与性能分析[J].杭州电子科技大学学报,2011,1.

[4]张占锋,盛利元,刘长水.混沌伪随机序列均匀化普适算法的FPGA实现[J].计算机测量与控制,2009,12.

[5]陈桂宏,杨斌,佟向坤.混沌序列变换成均匀伪随机序列的普适算法的FPGA实现[J].科技广场,2011,5.

混沌算法 篇3

1 相互迭代的优化设计

1.1 Logistic映射混沌序列优化

Logistic模型一开始是表达昆虫种群增长量的模型,也叫做虫口模型。下面设计针对Logistic混沌序列进行优化,Logistic模型的动力学过程如下:

式中的参数较为经典的取值是σ=10,r=28,b=8 3。当σ,b仍取值为10和8 3,此时如果r>24.75,那么系统处于混沌状态。由于系统输出的实值混沌序列存在如下缺点:x,y,z的值域各不相同,不利于批处理;x,y,z局部取值呈现单调性,易受线性预测攻击;x,y,z自相关特性非理想的δ函数,互相关特性非理想的零特性,难以保证不可预测性,而且系统多输出特性也得不到充分利用。为了尽可能地避免这些缺陷,提出了一种改进方法对混沌序列做优化,设计了一个模型,方程如下所示:

式中:x′,y′,z′是经过优化后的序列;m是控制参数,能够起到提升序列取值的不规则性;round()是最接近整数函数,能够实现混沌优化序列。

1.2 优化算法过程

通过式(2)可以得到经过优化处理的3个混沌序列x′,y′,z′,形成3个置乱矩阵,利用其分别对RGB彩色图像的3个分量做置乱加密处理。通过优化后的混沌序列可以形成对应的置乱矩阵PM×N。该置乱矩阵中的任意一个元素Pij都在[1,2,…,M×N]的范围里,如果有Pij=Pkl,且只有满足i=k,j=1时才成立。如果M=4,N=4时,那么P就是4×4的矩阵,通过优化混沌序列从而形成16个实数值的混沌序列,把这些序列按照从大到小进行排序,用1~16做标识,那么就能够得到序列:4,6,7,3,1,2,8,15,10,12,14,13,16,11,9,5。以行排列为4×4的置乱矩阵P4×4为:

通过使用非线性置乱的方法,把图像IM×N中子元素和对应的PM×N中的元素做置乱处理,这里设计的详细过程如下:

算法程序的过程如下:

先定义一个寄存器变量ch。

再进行加密处理。

2 数据加密的安全性的分析

一个较好的加密算法,不仅要其安全可靠性能高,而且要其运行的速率快。在前面的叙述中,已经知晓混沌方程进行迭代是能够生成伪随机数列的。密钥循环一次大概能够加密100 kb视频数据信息。又因为由于周期很长,并且还是伪随机数列,所以在安全方面的性能得到了较好的保障。另外,鉴别时效性主要是取决于验证程序能不能较为快速的加密。在进行验证时,选取了约1 GB大小的各种不同类型的视频文件。凭借较大信息量的视频文件能够很明确地显示出程序加密地速度的快慢。先对一个710 MB扩展名为“dvd.mp4”以及一个970 MB扩展名为“soldier.rmvb”视频文件进行测试,其测试所得数据结果见图1。

在做验证加密时会生成一些文件。其中,文件hundun1.mp4与hundun2.rmvb都无法打开,然而文件decode1.mp4与decode2.rmvb能够打开。经验证可以知道解密之后的视频和最初的视频是一样的。另外,还可知加密以及解密所需要的时间不超过1 min。该时间是把生成密钥流以及加密视频的所需时间计算在内的,其速率是超过10 MB/s。由此可知,利用混沌加密的算法的适用性强。该方法不仅能够确保安全,同时具有较快的加密速率。假如破解视频所耗的成本比视频自身所拥有的价值还要大,于是进行破解就显得多余。虽然对于安全要求非常高的场合是不适用的,然而在人们日常生活若需加密的视频文件时,使用该方法是较好的方法。加密系统的关键性能是自身抵抗外界攻击的能力,若抵抗能力越强,说明该系统安全系数越高。破解人员对加密系统的攻击实质就是此系统密钥流进行的攻击,因此混沌Logistic映射的抵抗攻击的性能实际上就是等同于整个加密系统抵抗攻击能力。如果N>μ,μ=3.569 945 6时,Logistic映射处于混沌状态,当周期N无限接近于∞时,如果攻击人员采用穷举法的方式做蛮力攻击,那么要进行2N次,所以考虑到实际情况以及成本的因素,都不可能顺利完成的。在实际应用里,不可能满足精度无穷大的要求,如果在没有采用参数μ动态累加产生器的情况下,序列周期是N′,此时有攻击人员采取穷举法做蛮力攻击,那么就得做N′次运行。然而,在采用参数μ动态累加产生器的情况下,序列周期是22′rN,此时有攻击人员采取穷举法做蛮力攻击,那么得做2′2rN次运行。加密算法,关键的优势功能是在整体的加密结构进行了优化处理、科学的安排及长度为128的密钥。如果进行强力攻击效果最突出,则以位方式得到密钥得进行2128次加密运算,就会耗费1012年的时间。面对IDEA采取强力的方式进行攻击,那么生成解密子密钥的速度远远不及加密子密钥速度。可以看出,解密需要耗费的时间会很多。综上所述,采用混沌利用混沌算法生成高性能的密钥,并且利用IDEA优质性能以及高质量的加密体系,确保了整个加密系统具备了很高的安全性能。

3 图像应用数据的加密实验

3.1 实验设计

本文图像采用图2(a)所示,把分量图合成为彩色图像后的加密图像见图2(b)。这里迭代过程应用了1 000次。

3.2 保密性测试优势

为了验证算法的保密性性优势,图3进行如下实验:(a)为参数r的偏差为10-10次方时的错误解密图像;(b)为初值xo的偏差为10-10次方时的错误解密图像。从算法改进结果来看图像已经发生了视觉方面的色彩改变,显然图像必将梗难破译,有理论分析可知对图像加密的需要进行3MN次操作,显然这一结果验证了算法保密性方面的优势。

3.3 抗攻击测试

为了分析图像的抗抗击性,图4分别进行如下实验:(a)加密后的图片经过压缩改进的解密图像;(b)则采用高斯噪声后的解密图像,从图片视觉表现来看,算法显然实现了解密图像效果保持,这验证了算法有较强抗攻击能力。

4 算法对比

空域复合加密算法与比特移位加密算法的比较如表1所示。

由表1可知,与改进的混沌加密算法对照,本文算法有主要的三个优点:第一,在有限精度下密钥空间从1016≈253扩大到1048≈2158,很大程度上提高了抗密钥穷举攻击的能力;第二,一次能加密多个比特,并且比特移位操作速度远远大于比特异或操作,所以该算法加密速度比空域复合算法的速度快。第三,因为xi的随机性,在加密的流程中破坏了原图像像素的独立性,使得破译的难度加大。

5 结语

设计过程中,采用复合混沌方程是形成密钥流的方式,由于混沌方程能够因为反复迭代生成类似的随机数列,把其数列当成是加密程序的密钥与加密算法的要求是相当吻合。若密钥完全是随机的,则想破译密很难实现。因此,密钥随机性越强,加密算法就越安全。设计加密时,直接使用异或方式加密,该方法的加密速率是很高的。另外,还要定义一个寄存器变量,采用此变量存取加密时形成的字符,同时也提升了加密的速度。最后,测试程序执行所需花费的时间,也验证了此程序能够快速加密的功能。

摘要:采用了Logistic和Henon的相互迭代的复合混沌的模型,通过混沌序列的优化和置乱算法完成混沌加密的设计。算法改进结果表明:其保证了安全性的同时实现了较快的加密速度;解密图像效果发现算法有很强的抗攻击能力。通过和传统的空域复合加密算法进行对比得出改进算法在抗密钥穷举攻击的能力、加密速度比、破译的难度等方面具有优势。

一种改进的混沌图像加密算法 篇4

关键词:混沌扰动,Logistic映射,有限精度效应,数字化混沌,图像加密

0 引 言

混沌信号由于其初值敏感性, 且是由非线性的确定系统产生的貌似随机的运动轨迹, 在信息安全领域得到广泛的应用。理想的混沌信号是无限精度的, 但在实际工程应用中, 无论是由数字计算机还是专用的数字信号处理器实现混沌序列, 其混沌迭代过程都由有限字长的加法器、乘法器等基本运算单元来实现, 其参数和运算过程的结果都是存储在有限字长的存储单元中。理想的无限精度混沌信号必然变成了有限精度的数字信号, 因而相对于原先的理想混沌信号或混沌系统就会产生量化误差, 降低了混沌信号的随机性, 从而影响其在信息安全领域的应用。具体说来, 量化误差主要包括:

(1) 将混沌系统输入信号、参数用有限字长表示时产生的量化误差;

(2) 在数字运算过程中, 为了限制位数而进行尾数处理, 及为了防止溢出而压缩信号电平的运算误差, 主要是是乘积量化误差;

(3) 量化误差通过混沌系统后产生的扩散误差或传播误差。

上述的三种量化误差跟混沌信号的表示方法、运算方式、字节长短、尾数的处理方式以及混沌系统结构形式等有关。文献[1] 参照逻辑斯谛映射构造了一个简单非线性数字控制系统, 结合数值分析和动力学基本方法, 分析A/D转换、系数以及乘积运算量化效应在该系统中的表现, 揭示量化在非线性控制系统中的一些独特性质。研究表明, 由于量化效应的影响, 一些非线性控制系统不可能由数字系统实现, 而一些理想状态下的混沌系统则可能转变为稳定的周期系统。

目前补偿数字化混沌系统动力特性退化的方式主要有三种, 分别为:提高精度;使用级联的多个混沌系统;对混沌系统施以主动的扰动。实际应用表明, 对混沌系统进行扰动是目前所知的最简单有效的一种方式。现有对混沌系统的扰动方法主要有两类:扰动混沌系统参数和扰动混沌系统变量。在扰动混沌系统变量方面, 文献[2]提出的使用线性反馈移位寄存器 (LFSR) 产生二序列的扰动策略, 文献[3]使用简单满足均匀分布的伪随机数发生器 (PRNG) 对混沌变量进行扰动。文献[4]用m序列随机改变混沌函数的参数, 并在混沌函数的输出中加入非线性m序列的扰动, 进一步提高混沌序列的复杂性。但应当看到, 应用这类策略扰动的数字化混沌系统, 其产生的混沌伪随机序列周期上限会受到扰动信号周期的制约。

在此首先以典型的混沌映射Logistic映射为例, 讨论了输入信号量化误差、系统参数量化误差和运算量化误差对混沌特性的影响。然后, 提出基于混沌扰动的Logistic映射实现, 有效改善了有限精度效应问题, 并且由于应用混沌序列扰动, 其生成的伪随机序列周期不受扰动信号周期的限制。理论分析和仿真结果表明, 该方案可以有效地补偿数字化混沌系统动力学特性的退化, 产生具有良好统计特性的混沌序列, 并且计算复杂度小, 安全性高。最后, 给出了基于混沌扰动的混沌图像加密算法, 并对其加密效果进行性能分析。

1 Logistic映射有限字长效应研究

Logistic映射的定义为:

undefined

式中:x为自变量;μ为系统参数。Logistic映射数字实现时默认采用的是定点数表示、舍入处理。用Matlab/Simulink仿真如图1所示。

根据文献[1]的分析表明, 输入信号、系统参数和运算量化误差均会影响到混沌序列的生成。

2 基于混沌扰动的混沌序列实现

为减小有限字长效应对混沌特性的影响, 采用混沌序列对混沌系统进行扰动, 形成的基于混沌扰动的系统结构如图2所示, 其中序列d (t) 通过如下方法形成扰动向量undefined, 扰动过程为c (t) =pt (t) +d (t) 。文献[2,3,4]中的扰动序列d (t) 为m序列, 其生成的混沌序列的最大问题是受m序列的周期影响, 最终也变成周期序列。以A/D运算量化后的Logistic混沌系统为例, A/D转换的字长取4 b的定点数, 设m序列的阶数为6, 其特征多项式为1+x5+x6。Logistic系统初始条件为x0=0.5, 参数μ=2。在扰动过程中, 产生的Logistic序列的值可能超出[-1, 1]的范围, 故需要对值的大小进行比较和处理, 即将加入扰动后的输出与1 (或-1) 比较, 若结果大于1 (或小于-1) , 则进行减1 (或加1) 处理, 否则不做处理。结果如图3所示。由图3可知, 经过m序列扰动改进的系统具有一定的混沌特性, 经过更长的一段时间后呈现周期化, 周期为63。

根据图2, 混沌序列为Logistic混沌系统, 序列扰动也为Logistic混沌序列 (也可以选择其他混沌系统) 。A/D转换的字长取4 b的定点数。在扰动过程中, 产生的Logistic序列的值可能超出[-1, 1]的范围, 故需要对值的大小进行比较和处理, 即将加入扰动后的输出与1 (或-1) 比较, 若结果大于1 (或小于-1) , 则进行减1 (或加1) 处理, 否则不做处理。设扰动的Logistic混沌序列的初值为0.1, 参数μ=2。Logistic系统输入u=0.5δ (n) , 参数μ=2。系统输出结果如图4所示。

结果表明, 系统在较长一段时间内呈现混沌状态。可见, 基于混沌序列扰动的混沌系统其有限字长效应得到大大改善, 随机性得到大大增强。

3 基于混沌扰动的图像加密原理

下面讨论基于混沌扰动的混沌图像加密方案[5,6,7,8], 如图5所示。

从图5可以发现, 图像的保密性能主要取决于加密矩阵和置换矩阵的随机性。

3.1 加、解密算法

加密算法步骤如下:

(1) 选取Logistic映射1初值和系统参数为密钥K1= (x11, μ11, x12, μ12) , Logistic映射2初值和系统参数为密钥K2= (x21, μ21, x22, μ22) 。其中x11, x12, x21, x22∈ (-1, +1) ;μ11, μ12, μ21, μ22∈ (1.75, 2];{x11, μ11, x21, μ21}为式 (1) 的混沌系统初值和系统参数;{x12, μ12, x22, μ22}为用于扰动的混沌系统的初值和系统参数;

(2) 利用密钥和图2所示的基于混沌扰动的Logistic映射生成异或矩阵P。由于灰度图像一般为256级, 其值在0~255之间, 为此, 要将Logistic序列做一些适当的变换, 把 (-1, 1) 区间上的值映射到集{0, 1, 2, …, 255}, 可由Matlab 7.0中的abs () 和floor () 函数完成, 即:xi′=abs[floor (256xi) ]。其中, xi是图7所示的经Logistic映射扰动后的Logistic混沌序列, 其随机性与式 (1) 所示的系统相比较大大增强。floor () 函数为向负方向取整函数。这样, 由混沌实数列和floor () 函数可得到整数序列x1′, x2′, x3′…。其中, xi′∈{0, 1, 2, …, 255}, i∈{0, 1, 2, …};

(3) 利用密钥和图2所示的基于混沌扰动的Logistic映射生成置换矩阵P。根据图2, 生成经Logistic映射扰动后的Logistic混沌序列, 对此序列按从小到大的顺序进行排序, 由各个元素位置的变化可以得到一个排序置换, 此置换可以在Matlab 7.0中利用排序函数“sort () ”直接得到, 并排成置换矩阵Zm×n, 其中zi, j∈{1, 2, 3, …, m×n}, i=1, 2, …, m;j=1, 2, …, n。根据置换矩阵, 对加密后的图像进行置换, 从而得到图像密文;

(4) 利用异或矩阵P进行图像加密;

(5) 利用置换矩阵Z进行图像置换。

解密算法是加密算法的逆运算, 在解密算法中, 首先利用与加密密钥相同的密钥产生异或矩阵P和置换矩阵Z, 异或矩阵与加密中的异或矩阵相同, 置换矩阵是加密算法中转换矩阵的逆置换, 在图像解密过程中, 先进行置换运算, 再进行异或运算。

用Matlab 7.0, 结合上述算法, 对“lenna.jpg” (256×256) 图像进行加密/解密的仿真实验, 密钥选取为:K1=K2= (0.5, 2, -0.5, 1.9) , 加密和解密图像如图6所示。其中:图6 (a) 为原始图像;图6 (b) 为密钥为K1=K2= (0.5, 2, -0.5, 1.9) 加密后的图像;图6 (c) 为错误密钥K1=K2= (0.5, 2, -0.5, 1.8) 解密后的图像, 图6 (d) 为正确密钥解密后的图像。

从上述对数字图像进行的加密和解密实验效果可知, 根据密文根本不能得出原始明文的相关信息, 只有使用正确的密钥去解密才能正确恢复明文。同时可以看到, 即使解密密钥中的一个变量仅有微小差异, 也根本得不到原始明文的任何有关信息。此外, 如果使用不同的初始密钥对同样的明文进行加密, 那么得到的密文也是完全不同的。

3.2 算法性能分析

3.2.1 直方图

图7所示实验结果清楚表明, 与原始图像直方图比较, 基于混沌扰动的Logistic映射加密图像直方图有很大的不同, 它非常均匀。因此, 经本文算法加密后图像在传输中具有更好的隐蔽性。

3.2.2 相关性

原始图像中相邻像素的相关性是很大的, 为了破坏统计攻击, 必须降低相邻像素的相关性。本文采用式 (2) ~式 (6) 计算原始图像和加密图像的m× (n/2) 对像素点测试其在水平和垂直方向的相关系数, 其测试值如表1所示。

undefined

式中:x和y表示两个图像的像素灰度值。在实际数值计算时采用如式 (4) ~式 (6) 的E (x) , D (x) 和cov (x, y) 的离散形式:

undefined

3.2.3 算法安全性能分析

从上述实验结果及其分析可知, 必须正确输入密钥, 即初始值 (x11, x12, x21, x22) 和系统参数 (μ11, μ12, μ21, μ22) 全部正确才能对加密图像正确解密。因此该算法对图像加密的密钥空间在Matlab 7.0试验平台上可达到1060, 其中初始值 (x11, x12, x21, x22) 和参数 (μ11, μ12, μ21, μ22) 的空间数量级均为1015。非授权者若用穷举法进行破密, 很难在有限的时间内破密成功。

根据Kerckhoffs准则, 加密算法要与密钥完全分开是现代密码体制的要求。上述实验结果表明本文提出的算法可以公开, 完全符合现代密码体制的要求。

4 结 语

这里提出的基于混沌扰动的数字化混沌扰动方案能够克服数字化混沌系统的短周期效应, 对系统的动力学特性退化进行了有效的补偿。该方法的引入为混沌动力学从理论模型投向实际应用提供了可行的途径。并将该方案应用于图像加密, 对加密后图像的统计特性分析表明了该方案的可行性。

参考文献

[1]王亮, 汪秉文.基于逻辑斯谛映射的非线性控制系统量化效应[J].华中科技大学学报:自然科学版, 2008, 36 (8) :34-37.

[2]周红, 凌燮亭.有限精度混沌系统的m序列扰动实现[J].电子学报, 1997, 25 (7) :95-97.

[3]Sang Tao, Wang Ruili, Yan Yixun.Perturbance-based Algo-rithm to Expand Cycle Length of Chaotic Key Stream[J].Eleetronies Letters, 1998, 34 (9) :873-874.

[4]Li Shujun, Mou Xuanqin.On the Security of a Chaotic En-cryption Scheme:Problems with Computerized Chaos in Fi-nite Computing Precision[J].Computer Physics Communi-cations, 2003, 153:52-58.

[5]Kwok H S, Wallace K S Tang.A Fast Image Encryption-systemBased on Chaotic Maps with Finite Precision Representation[J].Chaos, Solitons and Fractals, 2007, 32:1 518-1 529.

[6]Kwok-Wo Wong, Bernie Sin-Hung Kwok.An Efficient Dif-fusion Approach for Chaos-based Image Encryption[J].Chaos, Solitons and Fractals, 2009, 41:2 652-2 663.

[7]管春阳, 高飞.一种基于混沌序列的加密算法[J].北京理工大学学报, 2003, 23 (3) :363-366.

基于组合混沌映射的图像加密算法 篇5

随着网络技术和多媒体技术的迅速发展, 数字图像正在成为人们网络信息交流的重要载体, 所以图像的安全性自然成为人们所关心的问题。传统的加密算法并不适合进行图像加密, 如DES, AES, RSA, 因为用它们加密之后的图象相邻像素点的相关性很大, 不适合保密。应用混沌映射进行图像加密与传统算法相比, 有很多相似但又不同的特性[1,2,3]。例如, 传统加密算法对密钥敏感, 然而混沌映射对初始值和参数值敏感;传统加密算法通过多轮加密来扰乱和扩散数据, 而混沌映射通过迭代把初始区域扩散到整个相空间。传统加密是定义在有限集合, 而混沌映射是定义在实数集。现已有很多的专家学者应用混沌映射进行图像加密, 如YEN J C使用CKBA的加密方法[4];SCHARINGER J使用kolmogorov流的图像加密算法[5];Zhi-Hong Guan使用CAT映射进行图像置换加密[6]等等。

Logistic映射和Chen映射[7]都是典型的混沌映射, 它们都具有初值敏感性和参数敏感性。用Logistic映射产生的混沌序列通过排序来改变图像中各像素点的位置, 达到混淆的目的, 在此基础上, 应用Chen混沌系统对Logistic加密的结果通过改变各点的像素值再进行加密。由于混沌系统所独有的特性, 使得双重加密的结果更加安全。

2 加密算法

2.1 应用Logistic映射进行加密

Logistic映射的表达式如 (1) 所示, 它是一个典型的混沌映射。

其中Xn∈[0, 1], 当参数b取值范围为 (3.569, 4]时, 系统具有混沌特性。

一般用它产生的混沌序列直接对信息进行加密, 但是在计算机有限的精度下, Logistic映射进行迭代的结果会出现重复, 这会给密码分析者带来攻击的机会。如在3位有效数字下, 其有一个13个值的循环, (0.109, 0.338, 0.950, 0.190, 0.610, 0.946, 0.204, 0.650, 0.910, 0.328, 0.882, 0.416, 0.972, 0.109) 。如果把Logistic映射产生的双精度序列进行一下排序, 进而对图像的各像素点位置进行排序, 以此来达到置换像素点位置的目的, 就可以避免重复所带来的不安全性。

用MATLAB进行仿真实验, 其步骤如下:

a.选取一个M×N的灰度图像。

b.给定参数b值和Logistic映射的初值x0, 让系统迭代M×N次, 产生M×N个值, 并对其进行排序。

c.把图像的二维顺序按照先行后列的顺序变成一维顺序, 并根据步骤b最后的顺序相应的对图像进行排序。

d.恢复步骤c为二维图像, 即为加密之后的图像。

经过Logistic映射加密之后的图像已经达到了图像混乱的目的, 但是并没有改变原始图像中各像素点的像素值, 为了增加系统的安全性, 将加密后的图像再送入Chen混沌系统, 改变各像素点的值。

2.2 应用Chen混沌映射进行加密

Chen混沌系统的表达式如 (2) 所示, 它也是一个典型的混沌系统。

其中 (x, y, z) 为系统轨迹; (a, b, c) 为系统参数。当a=35, b=3, c=28时, 系统有一个奇怪吸引子, 处于混沌状态。Chen混沌系统的参数更多, 相对也更安全。用此系统对Logistic映射加密后的图像再进行加密的步骤如下:

a.给定Chen的初值x0, y0, z0, 让系统迭代M×N次。

b.将每次产生的三个序列值按照公式 (3) 进行计算:

其中函数fra是求三个序列平均值的小数部分;计算机的有限精度是15位, 小数最多占用14位, 所以将其放大1014使之变成正整数;图像的灰度值是在 (0-255) 之间, 所以将放大的正整数对256求余, 使结果也在 (0-255) 这个区间。

c.将Ki转化成二进制;将第一次加密产生的图像的各像素点的值也转化成二进制, 并将Ki与其逐个进行异或处理, 共M×N次。

d.将M×N个结果再转化成十进制, 变回二维图像, 完成第二次加密。

这样, 图象中各点的位置和像素点的值都发生了变化, 从而达到了混乱和扩散的要求, 增加了加密的安全性。其安全性主要在于混沌系统对初值的极其敏感性, 系统的初值有一个微小的变化, 其混沌轨道会发生根本的变化, 即所谓的“蝴蝶效应”。为了验证算法的可行性, 我们通过实验来进行仿真分析。

3 仿真实验

选取一幅104×102的灰度图像, 令Logistic映射中的参数b=4, 初值X0=0.7, 则原始图像和第一次加密之后的图像如图1所示。

令Chen混沌系统的初始值x0=-9.036, y0=0.768, z0=29.263, 则第二次加密之后的图像如图2中 (a) 所示;用所有正确的初值进行解密图象如图2 (b) 所示。

从图1和图2中可以看出, 经过Logistic映射后, 已经把图象的各像素点的位置进行了重新的排序;经过Chen混沌系统后, 已经混乱的图象, 通过改变其像素值, 再次进行了加密。

经过大量的实验, 对两个混沌映射选择不同的参数值, 加密之后的图像效果都是“面目全非”的;选择不同的图像, 以及不同大小的图像都能得到同样的加密效果, 这说明用此方法起到了很好的加密作用。

为了验证加密算法的有效性, 可以对该方法进行安全性分析。

4 安全性分析

4.1 密钥量分析

采用Logistic映射和Chen混沌系统进行双重加密的关键技术就是混沌系统本身的初值敏感性。如果我们将Logistic映射的初值x0和Chen混沌系统的初值x0, y0, z0都进行保密, 把他们当作密钥来处理, 按照计算机的双精度来计算, 密钥量可以达到1060, 可见整个系统的密钥空间是很大的。

4.2 敏感性分析

既然混沌加密的安全性就在于它的初始值敏感性, 那么当截获者对得到的密文图像进行破解时, 如果针对两次加密的初始值有一点点偏差的情况下, 也不能还原出原始图像。图3 (a) 是对两次加密的图像图2 (a) 用x0=-9.036, y0=0.768, z0=29.263000001进行解密的图像。我们看到初始值z0仅仅和原来有微小的差异, 可是却没有还原到图1 (b) 的状态;图3 (b) 是针对图1 (b) 用X0=0.700001进行解密的图像, 同样是小的差异, 也没有还原出原始的图像。按照十进制小数双精度为15位来进行穷举攻击, 对4个参数的攻击难度也将达到1060, 所以用穷举法进行攻击显然是不行的。

4.3 统计分析

该加密方法已经改变了图像各点的像素值, 即加密后图像的灰度直方图也发生了变化, 图4是原始图像的灰度直方图, 图5是加密后图像的灰度直方图。从图中可以看出, 原始图像的像素值在某些点出现的频率很高, 比如像素值为100左右和210左右, 而加密后的直方图呈现正态分布。攻击者通过像素值出现频率的大小来破解显然是困难的, 这样就可以有效抵抗用统计方法进行的攻击。

4.4 时间复杂度分析

本算法中, 生成混沌序列主要是通过迭代, 若问题的规模为m, 则生成混沌序列的时间复杂度为O (m) 。为线性阶的时间复杂度, 而且时间复杂度较低。为检测算法的时间开销, 对不同大小的8位和24位BMP位图进行了大量的加解密实验。实验所采用的硬件系统是Pentium42.8G CPU, 512M DDR内存;软件系统为WindowsXP操作系统, MATLAB编程平台。在实验中, 对数据大小为2.25M的1024×768的24位BMP图像加密所用的时间约为0.38s, 解密所用的时间约为0.42s。该速度可以满足要求, 可见算法的效率较高。

4.5 空间复杂度分析

算法主要空间开销是保存混沌序列所使用的4个1维数组, 每个数组大小等于图像像素数。若待加密图像大小为M×N, 采用int型数组, 则总的大小为M×N×4个int型空间。可见空间开销只与图像大小有关, 与图像位数无关。例如, 对一幅1024×768的图像, 其空间开销约为1024×768×4/ (1024×1024) ≈3M。若问题规模为m, 则算法空间复杂度为O (m) 。

4.6 图像处理攻击分析

若加密图像被攻击者进行恶意破坏, 如加噪、滤波、剪切等图像操作, 测试结果表明:对加密图像轻微剪切并不影响图像解密操作。图6 (a) 是对加密图像剪切掉12.5%的图像, 图6 (b) 是相应解密图像;图6 (c) 是对加密图像剪切掉25%的图像, 图6 (d) 是相应解密图像。可见剪切12.5%对图像的恢复没有太大影响, 即便剪切掉25%, 也可清晰的看到原始图像轮廓。所以, 该方法可抵抗一定程度的剪切攻击。实验显示, 对加噪和滤波等图像处理攻击也有一定抗干扰能力。

5 结论

把混沌理论和密码学相结合是最近几年的事情, 但是已经显示出很强的发展趋势。Logistic映射和Chen映射都是典型的混沌映射, 本文利用混沌映射具有的初值敏感性对原始图像进行了双重加密。通过实验分析发现, 加密之后的图像满足了混淆和扩散, 不仅改变了像素点的位置, 还改变了像素点的值;具有密钥量大、抗初值攻击、抗统计和抗图像处理攻击等优点, 从而增加了系统的安全性。当然还有很多需要改进的地方, 如何选择一个好的混沌映射一直是人们所关心的问题。

参考文献

[1]Kocarev L.“Chaos-based cryptography:a brief overview.”IEEE Circ System Magzine, vol.1, no.3, pp.6-21, 2001.

[2]Chen G R, Mao Y B and Chui C K.“A symmetric image encryption scheme based on 3D chaotic cat maps”.Chaos, Solitons and Fractals, vol.21, pp.749-761, 2004.

[3]Kocarev L, Jakimovski G.“Chaos and cryptography:from chaotic maps to encryption algorithms”.IEEE Trans Circ System-I, vol.48, no.2, pp.163-169, 2001.

[4]Yen J C, Guo J I.“A new chaotic key-based design for image encryption anddecryption.”Proc IEEE Int Conference Circuits and Systems, vol.4, pp.49-52, 2000.

[5]Scharinger J.“Fast encryption of image data using chaotic kolmogorov flows.”Electron Imageing, vol.7, no.2, pp.318-325, 1998.

[6]Zhi-Hong Guan, Fangjun Huang and Wenjie Guan.“Chaos-based image encryption algorithm.”Physics Letters A346, pp.153-157, 2005.

混沌算法 篇6

关键词:信息安全,密码学,混沌加密,数字图像,多混沌系统

随着计算机硬件的发展,计算机的运算速度不断提高,对很多加密算法的抗破译能力提出了挑战。经研究证明原有的一些加密方法在现有技术条件下己经不具备足够的安全性[1],因此继续研究加密技术和设计新型有效的加密算法已经成为迫切的需要。一些新兴的密码技术如量子密码技术、混沌密码技术、基于生物特征的识别理论与技术相继出现[2],这其中混沌现象以其独特的动力学特征在现代密码技术被广泛应用。

1 混沌图像加密算法设计

目前常用的一维混沌系统有Logistic系统、Rossler系统.、Tent系统、lorenz系统等。在对一维混沌加密系统进行简单的变换加密后,会转化为一种平凡混沌加密系统,难以保障其安全性[3,4,5]。

针对这种情况,本文提出一种基于多混沌的数字图像加密算法,其基本思想是利用三个不同的混沌模型,在加密算法中实现不同的功能。第一个混沌模型经过多次迭代,产生置换矩阵,对原始图像作置乱变换;第二个模型则决定各像素被修改的次序;第三个混沌模型迭代产生密钥流,依照第二个模型决定的修改次序,对置换后图像中各像素的值进行修改。

1.1 算法中用到的混沌模型

首先介绍算法中使用的三个混沌映射模型[6]。

1)第一个混沌映射模型

该模型选用了混合光学双稳模型,其迭代方程为:

当A=6,B=3时,已知该模型处于混沌状态。本论文的加密算法中,该模型用来产生置换矩阵,以便对输入的明文进行初始置换。

2)第二个混沌映射模型

该模型选用了分段线性混沌映射:

当0

3)第三个混沌映射模型

该混沌映射模型采用了目前应用最为广泛的Logistic映射:

该映射在3.5699456<μ<4时,其Lyapunov指数为正,处于混沌状态。本论文的算法中,该模型用来产生最终的密钥流,即上面提到的产生密钥流的第二级混沌系统。

1.2 图像像素位置置乱算法

考虑一幅大小为M×N,具有S级灰度的图像,设(i,j)为像素P所处的坐标,(i',j')为经过置乱后,像素P所处的坐标。其中1≤i≤M,1≤j≤N;1≤i'≤M,1≤j'≤N。图像像素位置置乱算法即要求设计映射f,使得:

映射f同时应该满足以下条件:坌(i1,j1),(i2,j2),若(i1,j1)≠(i2,j2),则(i1',j1')≠(i2',j2')。其中(i1,j1)=(i2,j2)表示i1=i2并且j1=j2。这个条件表明,图像像素置乱算法应该是一一映射的。本文利用混沌模型1,迭代产生图像置乱算法。

1.3 图像像素值替代算法

对一幅大小为M×N,具有S级灰度的图像,设rij为经过置乱后坐标(i,j)处的像素值,其中1≤i≤M,1≤j≤N。r'ij为执行完替代操作后,坐标(i,j)处的图像像素值。图像像素值替代算法即要求设计映射T,使得:

本文利用混沌模型2和3,迭代产生图像像素值替代算法。替代算法分为两步,首先利用混沌模型2产生图像像素的替代次序矩阵;然后利用混沌模型3生产密钥流,按照替代次序矩阵对图像的每一个像素加密。

2 多级混沌图形加密算法的实现

2.1 加密算法的密钥设计

本文提出的加密算法综合使用了上述3种混沌模型,每一种混沌模型的初始值和参数(共7个)都可以作为密钥。但是为了保证算法中采用的映射模型处于混沌状态,定义混合光学双稳模型中的参数A=6,B=3,定义Logistic映射中的参数μ=4,剩余的4个值作为算法的初始密钥,由用户输入。所以初始密钥K是一个4元组,包含4个子密钥:

K=(X,P,Y,Z)。

其中:

X:模型(4-1)的初值,要求0

P:模型(4-2)的参数,要求0

Y:模型(4-2)的初值,要求0

Z:模型(4-3)的初值,要求0

2.2 加密算法的实现步骤

多级混沌加密算法的实现步骤描述如下:

1)输入密钥K(X,P,Y,Z)。

2)打开待加密的图形。

3)根据像像素位置置乱算法f,对图像进行置乱处理。

4)根据图像像素值替代算法T,对图像像素值进行替换操作。

5)输出加密后的图形。

2.3 加密算法的原理图

总体上讲,上述加密算法由三个操作完成,分别是:扩展、置换和异或。其中扩展是将16位初始明文扩展为32位信息。置换是将扩展后的32位信息根据置换矩阵P进行置换,以达到“混乱”的目的;其中用到的置换矩阵由混沌模型(1)生成。异或是将置换后的结果与密钥流Keyi(i=1,2,3,……)进行异或操作,生成最终的密文;其中密钥流是通过混沌模型(2)和(3)的联合作用产生的。

初始密钥K包含4个子密钥X,P,Y,Z,分别对应3个混沌模型的初始值与参数,加密时由用户输入。

算法的原理如图1所示。

2.4 算法的实现细节讨论

该多级混沌加密算法用C++语言设计,对算法的具体实现作如下讨论:

2.4.1 算法中,对3个混沌模型的迭代分别得到不同的混沌序列

为了获得更好的伪随机性,可以舍弃初始若干次迭代所得的值,而选取第k次以后的迭代值。在本算法具体实现时,取k的值为20,即舍弃初始20次迭代的值,选取从第21次开始的迭代结果保存并使用。

2.4.2 图像像素值替代算法T中第5步,对密钥和置乱后的图形像素值进行了异或操作

对于具有S级灰度的图像,置乱后的图形像素值是S位的二进制代码。为了使混沌系统产生的实数密钥能够和S位像素值进行异或操作,以二进制代码的形式读取密钥矩阵,并取其低S位进行异或操作。实验中,S取值为8或者16。

2.5 解密过程

在解密过程中,密钥X,P,Y,Z与加密时的密钥完全一致。密钥X仍然用于生成置换矩阵,密钥P,Y,Z分别是另外2个混沌模型的初始值和参数,经过混沌迭代后,产生替换次序矩阵和密钥矩阵,用于解密。密文图形经过与密钥矩阵的异或,再进行反向置换操作,可以正确地恢复成明文图形。

3 结论

本文提出一种基于多混沌的数字图像加密算法,利用三个不同的混沌模型对数字图像进行多次置换、置乱,实现对数字图像的加密。该加密算法具有实现简单、加密速度快、安全性较高的特点。同时本算法是对称加密算法,解密时根据初始密钥进行加密过程的逆操作,就能够实现正确的解密,恢复原始信息。

参考文献

[1]杨波.现代密码学[M].北京:清华大学出版社,2003.

[2]龙冬阳.应用编码与计算机密码学[M].北京:清华大学出版社,2005.

[3]高俊山.徐松源.基于混沌理论的加密过程的研究[J].自动化技术与应用,2001,(6):13-16.

[4]Yang T,Yang L B,Yang C M.Breaking chaotic switching using generalized synchronization Examples[J].IEEE Trans.Circuits Syst.I,1998,45(10):1062.

[5]Yang T,Yang L B,Yang C M.Application of neural networks to unmasking chaotic secure communication[J].Phys D,1998,124:248.

[6]姜丽.多级混沌加密算法的研究与应用[D].华东理工大学硕士学位论文,2003.

[7]E.N.Lorenz.混沌本质[M].北京:气象出版社,1997.

混沌算法 篇7

混沌现象是指在非线性动态系统中出现的确定性和类似随机的过程,这种过程非周期、不收敛,但有界,并且对初始值和外部参数有极其敏感的依赖性,即初始条件的微小差异会随着时间的推移,以李雅普诺夫指数规律相互分离,最终变成运动轨迹或特性完全不同的2条轨迹。混沌是一种复杂的动力学系统,可以提供数量众多、非相关、类随机、易于产生和再生的信号,并且只要一个映射公式和初始值就可以产生混沌序列,不必存储各个序列点的值。混沌之所以能被用于加密技术,是因为其具有如下独特性质:

1)内在随机性:它与外在随机性的不同之处在于,混沌系统是由完全确定性的方程来描述的,无需附加任何随机元素,但系统仍会表现出类似随机性的行为。

2)对初始条件的敏感依赖性:只要初始条件稍有差别或微小扰动就会使系统的最终状态出现巨大的差异。

3)长期不可预测性:由于初始条件的微小差异可能对以后的时间演化产生巨大的影响,因此不能长期预测将来某一时刻的动力学特性。

4)确定性:混沌是由确定性系统产生的,是一个真实的物理系。当我们取相同的初值时,产生的混沌序列是一定的。

5)遍历性:混沌变量能在一定范围内按其自身规律不重复的遍历所有的状态。

混沌是确定系统中出现的类随机现象,混沌系统具有对初始条件和系统参数的极端敏感性,以及混沌序列长期演化结果的不可预测性,这些特性使得混沌系统极具密码学价值,非常适用于序列加密。

2 混沌序列加密思想

混沌序列加密的基本原理是利用混沌系统产生的混沌序列作为加密密钥序列,利用该序列对明文进行加密,密文经信道传输,接收方利用同样的混沌系统产生的解密密钥把明文提取出来,实现解密。也就是说混沌序列加密的关键,就是利用混沌序列做出密钥流生成器,混沌序列加密算法主要研究混沌密钥流的生成算法。

混沌系统是确定性非线性系统产生的类似随机性的行为,它属于确定性系统而又难于预测。混沌系统对初值和系统参数极端敏感,相同的混沌系统在具有微小差别的初始条件下,系统的长期行为将发生巨大的变化;混沌系统的长期行为不可预测;混沌本身是一个确定性非线性系统产生的类似随机性的行为,只要系统参数和初始条件给定,混沌现象本身可以重复;混沌具有伪随机性,类似噪声。

利用混沌系统,可以产生周期无限长、非相关、类似噪声、又确定可以再生的混沌序列,这种序列难于重构和预测,从而使敌方和非法入侵者难于破译,非常适合应用于信息的加密,其随机性、抗破译能力均优于传统的随机序列。这些我使得混沌序列能够成为一种优秀的加密序列,产生非常好的加密效果。

3 混沌序列加密方法设计与实现

3.1 混沌序列加密方法和特点

首先,利用混沌系统产生序列,再对混沌序列进行适当的处理,然后利用处理后得到的序列与明文进行作用,得到密文。密钥为混沌系统的初始值或系统参数。

为了取得更好的加密效果,我们可以利用多种混沌系统对同一明文进行多次加密,还可以利用经典密码学的方法对序列进行加密处理,从而提高加密效果,极大地增加非法入侵者破译的难度。解密是加密的逆过程,我们可以利用密钥产生混沌序列,与密文进行相互作用从而恢复出明文信息。

混沌序列加密方法的特点是:

1)有非常好的随机性,类似噪声,难于和破译,其随机性远远优于传统的随机序列发生器产生的随机序列。

2)密钥空间大,混沌系统一般有多个参数。

3)混沌系统难于重构,因此,混沌序列也难于重构,从而抗破译能力比传统的随机序列发生器产生的随机序列强。

4)混沌序列产生方便,与非线性反馈移位寄存器相比,提供了更大的灵活性。

3.2 混沌序列加密方法设计与实现

Logistic序列的遍历统计特性等同于零均值白噪声,具有良好的随机性、相关性和复杂性,使得对其进行正确的长期预测不可能,可用于信息加密。

假设{Pn}是明文信息序列,{Kn}是密钥信息序列,由Logistic方程迭代产生后进行处理后所得,{Cn}是密文信息序列。

加密算法设计为:{Cn}={Pn}⊕{Kn}

解密算法设计为:{Pn}={Cn}⊕{Kn}

基于Logistic混沌映射的加密原理图如图1所示,解密过程是加密的逆过程。初始值x0和u是Logistic方程的参数,同时是加密系统的密钥参数。

因为混沌系统对初始条件的敏感依赖性,对于仅有微小差别的初值,混沌系统在迭代了一定次数后便会产生截然不同的混沌序列。为了使相近初始值的混沌序列互相间更加不相关,本方案的混沌序列经过1000次以上迭代后取值,可以有效地放大误差使得对初始条件的攻击无效,是加密效果更好,安全性更高。由于加密的是数字量,所以必须使用一种方法将这个由实数构成的序列{Xn}映射成由整数构成的伪随机序列来充当加密密钥。这种映射中最简单的一种莫过于选取Xn小数点后的几位有效数字构成整数。

4 软件仿真结果

以Logistic为例研究用离散混沌系统产生混沌序列,对文本、图像信息进行加密解密仿真。程序界面如图2所示。

4.1 对文本文件加密解密

取密钥参数u=3.8999,x0=0.736,加密解密文本文件仿真结果如图3,a为加密前的明文,b为加密后的密文,c为正确解密的明文。由于混沌系统对初始条件敏感依赖性,所以改变x0=0.7361,解密后的明文如图d)。可见,即使密钥存在细微的差别,也不能够对密文正确地解密。

4.2 对图像文件加密解密

对一幅256×256Lena图像进行加密解密仿真结果如图4所示。a)是原始图像,加密后的结果如图b)所示,采用相同的密钥解密后的结果如图c),当密钥存在微小的差别时,解密后的结果如图d)所示。

5 安全性分析

因为Logistic是最简单的一维混沌映射,实现非常简单,所以该加密方案具有很好的运算速度。因此,在实时性要求高的情况下可以采用Logistic映射的混沌加密方案。与现有的序列密码加密方法相比,基于混沌系统的序列密码加密方法可以说是一种安全性较高、有效的加密方法。

由于有限精度效应造成的短周期现象,低维混沌序列的保密性是不够的。混沌序列的有限精度实现是决定它能否在实际中应用的关键。

摘要:为获得一种基于混沌序列的图像加密算法,提出混沌序列对称加密算法对数字图像进行加密。设计了基于Logistic映射模型的混沌序列对称加密算法,实现对数字图像的混沌加密及解密。实验结果证明,算法简单易行,安全性好。

关键词:图像加密,混沌序列,加密,Logistic映射

参考文献

[1]Lorenz E N..Deterministic non-Period Flow[J].Atoms.1963,20:130-141

[2]Kocarev L,Jakimoski G,Stojanovski T,et al.From Chaotic Maps to Encryption Schemes[C].In Proc.IEEE Int.Sym.CAS.1998,4:514-517.

[3]张申如,王挺昌.混沌二进制序列的安全性研究[J].通讯保密,1995(4):42-46.

[4]茅耀斌.基于混沌的图像加密与数字水印技术研究[D].南京理工大学博士论文,2003.

[5]郝柏林.从抛物线谈起—混沌动力学引论[M].上海科学技术出版社,1993.

[6]关新平.混沌控制及其在保密通信中的应用[M].国防工业出版社,2002:62-63.

一种基于混沌的数字图像加密算法 篇8

随着多媒体和网络通信技术的不断发展和迅速普及,以及存储设备性价比的提高,数字图像已成为人们获取信息的主要手段之一。而图像所包含信息往往涉及军事机密,商业机密或者个人隐私,因此网络上的图像数据有很多是不希望被未授权者浏览或编辑的,这就要求发送方和接收方进行保密通信的,信息安全与保密显得越来越重要。目前,国内外学术界正在探讨使用一些非传统的方法进行图像信息加密与隐藏[1]。

混沌加密是近年来兴起的一个研究课题,基于混沌理论的保密通信、信息加密和信息隐藏技术的研究已成为国际非线性科学和信息科学两个领域交叉融合的热门前沿课题之一,也是国际上高科技研究的一个新领域。混沌现象是在非线性动力系统中出现的确定性、类似随机的过程,这种过程既非周期又非收敛,并且对初值具有极其敏感的依赖性。混沌系统所具有的这些基本特性恰好能够满足保密通信及密码学的基本要求,因此新型的混沌加密方式为图像加密提供了一种新的有效途径。

因此,本论文主要探讨了基于混沌理论的数字图像加密算法,改进了基于Logistic映射图像加密方法。通常的方法是首先产生一幅与待加密图像尺寸相同的混沌图像,然后用该混沌图像与原始图像进行异或运算。为了进一步打乱像素值,提高加密的安全性,增加破译难度,本文的算法对异或运算结果的每一像素的灰度值进行循环移位,得到最终的加密图像,当需要对加密图像进行解密时,只要把加密图像的每一像素值像反方向循环移位,然后再与相应的混沌图像进行异或运算即可。这种方法具有密钥空间大,加密解密速度快,容易实现等优点。本文最后又提出对加密图像进行JPEG2000格式的压缩编码从而适用于网络传输。接收端在解码后方可进行解密。

2 混沌加密原理

混沌理论(Chaotic Theory)是近三十年才兴起的科学革命,它与相对论及量子力学被列为二十世纪的最伟大发现和科学传世之作。量子力学质疑微观世界的物理因果律,而混沌理论则否定了包括宏观世界拉普拉斯((Laplace)式的决定型因果律。混沌是非线性系统所独有且广泛存在的一种非周期运动形式,其覆盖面涉及到自然科学和社会科学的几乎每一个分支。混沌运动只出现在非线性动力系统中,它是既普遍又极复杂的现象。它的定常状态不是通常概念下确定性运动的三种状态:静止、周期运动和准周期运动,而是一种始终局限于有限区域且轨道永不重复的、性态复杂的运动。把在某些确定性非线性系统中,不需要附加任何随机因素,其系统内部存在着非线性的相互作用所产生的类随机现象称为“混沌”、“自发混沌”、“动力学随机性”、“内在随机性”等等[2]。

混沌加密密码是序列密码,混沌序列密码系统(见图1)的加密端和解密端是两个独立的,完全相同的混沌系统,两系统间不存在藕合关系,明文信息在加密端加密后直接发往解密端,解密端可以在全部接收后再解密。该方法的安全性依赖于混沌信号的超长周期、类随机性、混沌系统对初始状态及系统参数的敏感性。混沌序列密码加密方法灵活多变,可以充分利用混沌信号的特性构造复杂的加密函数。

基于混沌的图像加密方法具有较好的安全特性,目前基于混沌的图像加密方法总体上可以划分为扰乱图像像素值和置乱图像像素位置,以及这两种方法的结合。扰乱图像像素值通过改变原图像像素点的灰度值实现图像的加密,置乱图像像素位置通过将原图像的像素位置重新排列进行置乱,使攻击者难以辩认原始图像,以达到图像加密的目的。

3 Logistic映射原理

Logistic映射是一种非常简单却被广泛应用的经典混沌映射[4]。Logistic映射有多种描述方式,本文采用的Logistic映射系统定义如下:

这个最简单的映射蕴含着现代混沌理论的基本思想,包括倍周期到混沌、分岔图等非线性理论的基本框架和模式[5]。

该混沌映射具有如下属性[6]:

(1)当系统参数3.5699456﹤µ≤4时,Logistic映射处于混沌状态。

(2)混沌序列具有规律性,尽管{Xn}体现出随机性质,但它是由确定性方程(1)导出的,初值X0确定后X n便已确定,即其随机性是内在的,这就是混沌运动的规律性。

(3)混沌序列具有遍历性。混沌运动的遍历性是指混沌变量能在一定范围内按其自身规律不重复地遍历所有状态。

(4)对初值具有敏感性。初值X0的微小变化将导致序列{Xn}远期行为的巨大差异。

Logistic映射具有类随机性、周期性、初值敏感性的特点,这使得其适用于图像加密。本文提出一种基于Logistic混沌序列进行像素值替代及循环移位[4]的加密算法。

4 算法设计

设PM×N,CM×N分别表示大小为M×N的图像,P(x,y)(x∈[0,M-1],y∈[0,N-1])表示图像P在点(x,y)处的灰度值,C(x,y)(x∈[0,M-1],y∈[0,N-1])表示点(x,y)经过加密后所对应的灰度值。基于像素灰度值替代的加密算法设计如下:

(1)给定Logistic系统的参数μ,初值x0,及正整数a作为放大参数,正整数b作为移位参数;

(2)根据式(1)生成一个长度为M×N的实数混沌序列GM×N,其中每一项用G(x,y)(x∈[0,M-1],y∈[0,N-1])表示;

(3)取出混沌序列每个元素G(x,y)小数点后第b和b+1位小数值,并用该两位数对24进行求模取余运算,得到0~23之间的整数作为相同像素位置处P’(x,y)循环移位的位数b’;

(4)将混沌序列GM×N放大a倍后取整,每一项顺序与oxFFFFFF进行按位与运算,得到一个取值在[0,224]之间的离散序列,该离散序列构成一幅大小为M×N的混沌图像;

(5)顺序取原始图像P中的每一点P(x,y)与混沌图像G中对应的点G(x,y)按二进制位进行异或操作,得到每一像素点加密后的灰度值P’(x,y);

(6)利用步骤(3)得到的对应像素点的b’值作为循环移位的位数,将P’(x,y)按照密钥指定的移动方向(左移或者右移)进行循环移位,得C(x,y);

(7)步骤(6)进行完毕,所有的C(x,y)构成最终的加密图像CM×N。

在基于混沌和循环移位的图像加密过程中,密钥由Logistic映射的参数值μ和初始值x0、放大倍数a、小数位数b、以及循环右移/左移决定。记密钥为Key(μ,x0,a,b,R/L)。

解密过程与加密过程几乎完全相同,只是循环移位的方向与加密时相反,且对于已加密图像,应先进行循环移位,再与混沌图像进行按二进制位异或。

编码过程采用2 4位彩色图像位图,考虑到计算机存储和运算的方便,为每一像素分配4字节即32比特位的内存空间,其中高8为默认为0,后24位依次是RGB分量,每种分量从高到低各占8位。

编码实现过程中主要用到了图像的打开,图像的缩放,图像的绘制,图像的逻辑运算及循环移位等技术。

5 JPEG2000与混沌加密集成

本文提出的基于Logistic映射的混沌图像加密算法是基于位图图像的加密算法,所以加密后的图像是位图图像,为了便于网络传输,同时考虑到算法的实用性和通用性,所以需要对加密后的图像进行无损压缩,在分析比较了多种现在常见的几种无损压缩标准之后,基于JPEG2000压缩编码标准的诸多先进性和优越性,可以将JPEG压缩编码标准集成到本文的混沌图像加密系统中。JPEG2000压缩编码标准与混沌图像加密算法的集成方法示意图如下:

(1)读取待加密图像,按照本文提出的基于Logistic映射的混沌图像加密算法对原始图像进行像素值替代及循环移位加密,得到加密图像;

(2)步骤(1)得到的加密图像作为JPEG2000压缩标准编码的输入,进行压缩,得到加密后的压缩图像;

(3)压缩后的加密图像可以通过网络进行传输;

(4)由于JPEG2000压缩标准编码是一种无损压缩,所以网络的接收端通过解密系统对图像进行解压后,所得加密图像与步骤(1)得到的加密图像几乎完全一致;

(5)步骤(4)所得的加密图像作为Logistic混沌解密算法的输入,进行解密便可得到原始图像。

以上过程既可以保证秘密通信,同时不会占用太多的网络信号。

6 实验与分析

本文的算法是基于Microsoft Visual Studio 2005平台实现的。编码过程采用2 4位彩色图像位图。编码实现过程中主要用到了图像的打开,图像的缩放,图像的绘制,图像的逻辑运算及循环移位等技术。图像的逻辑运算是针对位图所有像素的二进制集合进行按位运算的。其中异或运算的法则是当运算的两个数取值不同时,结果为1,相同则为0,异或运算具有可逆性,所以异或加密后的图像再次与同一混沌图像相异或便可以解密。

循环移位也具有可还原性。以24位位图循环右移3位为例:加密时,原始值右移3位与左移24-3=21位的结果按位或,再按位与0xFFFFFF将高8位置0得结果值;解密时,结果值右移21位与左移3位的结果按位或,再按位与0xFFFFFF将高8位0,即可得原始值。

运行可执行文件,并输入加密密钥K e y(3.897654321,0.3689754,12,2,L),然后任意选择一张待加密图像,图3和4分别是原始图像和加密图像。

在解密密钥与加密密钥保持完全一致的情况下,可得正确的解密图像,如图5所示。

修改解密密钥为Key(3.897654322,0.3689754,122,L),与加密密钥Key(3.897654321,0.3689754,12,2,L)仅混沌参数μ有10-9的微小差异,所得的解密图像如图6所示;可见参数和初值的微小差异都会导致图像不能被正确解密。同样,改变解密密钥中a和b的值也将导致无法正确解密。

对于循环移位的方向,如果加密时选择左移,在算法内部自动实现解密时右移。如果解密时选择右移,虽然可以模糊地分辨出原始图像的大概轮廓,但仍然无法完全正确地解密。图7是解密密钥为(3.897654321,0.3689754,12,2,R)的结果。

由实验结果可知,参数和初始值的微小差异都会导致已加密图像完全不能正确解密。经作者多次反复实验发现,算法对初始值的敏感程度与放大倍数a有关,即a的值越大,系统对初始值的敏感程度越高。这也是在算法设计时要对生成的混沌序列进行放大的缘故。循环移位的方向错误亦不能正确解密。

6 结束语

由实现过程及实验结果可知,本文提出的算法具有易于实现,运算速度快,密钥空间大,安全性高,可以抵御唯密文攻击等优点。

在对加密密钥取不同的值进行反复实验过程中,发现密钥有一定的局限性。首先表现为密钥的各个参数都有一定的取值范围,超出取值范围的数值将不能得到理想的加密效果,甚至完全不能加密;其次,对于混沌系数和初值,要求有较多的小数位数,小数位数越多,往往加密效果越好;然而,对于整数的放大倍数a,取值不应太小;小数位数值b则不应太大,以免出现全0导致移位失效。

摘要:提出了一种基于Logisitic映射的混沌图像加密算法,为了提高算法的安全性,采用循环移位进一步扰乱图像像素值,得到最终的加密图像。实验证明该算法具有易于实现,计算速度快、密钥空间大、可以抵抗唯密文攻击等优点。

关键词:图像加密,混沌系统,Logistic映射,循环移位

参考文献

[1]冈萨雷斯,伍兹,阮球琪等.数字图像处理[M].北京:电子工业出版社,2007.

[2]William Stallings.密码编码学与网络安全[M].北京:电子工业出版社,2006.

[3]韩凤英.基于混沌系统的数字图像加密算法研究[D].湖南;中南大学,2007.

[4]刘刚,王立香.一种新的基于混沌的图像加密算法[J].电视技术,2008 32(12);22-24.

[5]吴妮妮,李娅.一种改进的基于混沌理论的图像加密算法[J].西华大学学报(自然科学版),2009,28(4);54-57.

[6]杨夷梅,杨玉军.一种基于混沌理论的图像加密算法[J].计算机安全,2009,(2);25-28.

上一篇:建设工程合同管理刍议下一篇:新型海洋生物有机肥