混沌理论应用于加密还是一个比较新的研究领域,现有的基于混沌理论的视频加密大多采用单独的低维映射,安全性不高;而高维混沌系统虽然加密性好,但由于其密钥序列复杂的产生过程与视频加密教据量大、实时性要求高的特点形成矛盾,至今仍鲜有应用。针对于此,结合像素扩散的思想,提出了一种基于三维Lorenz混沌的彩色视频加密算法,该算法遵循香农信息论中的混淆与扩散机制,视频帧中任何一个像素的解密错误都会影响整个视频的解密,具有很高的安全性。此外,该算法还具有加密速度快等优势,解决了高堆混沌系统应用于视频加密的难点。
一、Lorenz混沌系统
Lorenz系统是经典的三维混沌系统,它是由美国气象学家EN.Lorenz在研究对流实验时发现的。它的动力学方程式如式(1)所示:
Lorenz系统属于耗散系统,它是基于流体力学中的Navier-Stokes方程、热力传导方程和连续性方程构建的。σ,ρ,β是系统的参数,其取值范围是大于0的任意数值,常取σ=10,β=8/3,ρ作为变量,当保持σ,β的值不变,ρ>24.74时洛伦兹系统进入混沌状态,当ρ=28时,系统达到最佳混沌状态。
当σ=10,β=8/3,ρ=28时,洛伦兹系统产生的混沌吸引子如图1所示。
二、基于Lorenz混沌的视频加密/解密算法
数字视频在许多方面与静止的图像有相同的特性,因为视频信号本身即是由许许多多幅按照时间序列排列的连续图像组成的,每一幅图像称为帧。此外,视频数据还具有数据量大、冗余度高、实时性要求严格等特点。为了保证流畅的视觉效果,视频加密必须考虑实时在线的能力,要求很高的处理速度。基于此,本文提出了一种新的基于Lorenz混沌的视频加密算法,该算法选取能使Lorenz系统产生最佳混沌序列的参数取值σ=10,β=8/3,ρ=28。以x,y,z混沌序列作为加密密钥对视频图像进行加密。因为图像像素值的取值范围是[O,255],所以需要对产生的x,y,z混沌序列进行改进,具体过程如下:
式中,round()的含义是取靠近0的整数。经过处理后,新的混沌序列x',y',z'的取值范围是[O,1]的任意实数。
该算法的基本思想是:在视频采集的过程中,对采集的每帧图像的每个像索都加入Lorenz系统产生的伪随机序列噪声,也就是将混沌系统产生的混沌序列和每一帧的每一个像素逐位处理。首先由Lorenz系统产生x,y,z混沌序列,然后将x,y,z混沌序列分别与每帧图像中对应的R,G,B分量值以及前一个像素加密后的R,G,B分量值进行异或,从而完成对该帧的加密。在采集的过程中对每一帧图像都做如上处理,进而完成对整个视频的加密。
整个系统加密、解密的算法框图如图2和图3所示。
算法中每帧第一个像素加密的过程与其他像素不同,是用对应的混沌序列与该像素以及该帧最后一个像索的R、G、B分量值进行异或加密。本算法遵循香农信息论中混乱与扩散的设计准则,且对不同的帧能产生不同的密钥进行加密,既能满足视频实时性的要求,又具有很高的安全性。
三、彩色视频加密/解密算法的设计
1、加密算法的流程
设摄像头采集的视频帧大小为M*N,对视频进行加密的流程如下:
1)进行视频采集,输入加密密钥x,y,z的值。
2)为了使系统达到充分的混沌状态,先将Lorenz系统迭代1000次后,截取M*N组{x,y,z}的混沌序列。
3)将得到的M*N组混沌序列按式(2)进行改进,获得新的M*N组混沌序列x',y',z',对序列中的每个值取其第3,5,7位形成一个3位十进制数,并将该数与256取余,得到一个8位的密钥流,这样就得到了M*N组最终的密钥序列{xk'',yk'',zk''},其中是k∈[1,M* N]。
4)按式(3)对帧中的每个像索逐一进行加密,进而加密整个视频帧。
式中,Rk,Gk,Bk是当前待加密像素点的3个分量值,xk'',yk'',zk''分别是与当前像素分量对应的密钥序列值,Rk-1',Gk-1',Bk-1'分别是前一个已加密的像素分量值。Rk',Gk',Bk'分别是当前像素加密后的3个分置值。注意,对每帧图像中的第一个像素进行加密时,Rk-1',Gk-1',Bk-1'的取值是墩该帧图像中最后一个像素的R、G、B值。
5)显示加密后的视频帧。
6)重复步骤4和5,完成对整个视频的加密。
2、解密算法的流程
1)读取加密后的视频帧,输人解密密钥x,y,z的值。
2)重复加密的步骤2和3,得到最终的密钥序列{xk'',yk'',zk''},其中k∈[1,M* N]。
3)按式(4)先对加密帧中的第2个像察解密,直到解密完最后一个像素,求得最后一个像素的原始值,再完成对第一个像素的解密,这样整帧图像解密完成。
4)显示解密后的视频帧。
5)重复步骤3和4,完成对整个视频的解密。
四、实验及实验结果分析
1、实验结果
利用vc++6.0,结合OpenCV函数库,编写程序验证本文提出的视频加密算法。采用摄像头采集视频图像,设置采集图像的速度为30帧/s。此时视频已经看不出延迟,设置三维Lorenz加密系统的初值为x=-1. 613,y=0.452,z=3. 579,用其加密任一帧视额图像的效果如图4所示。
从实验结果上看,该算法充分利用了三维Lorenz混沌的混沌特性,具有加密速度快、实现简单、安全可靠的优势,能满足视频加密实时性要求高、数据盈大的需求。
2、实验结果分析
1)密钥空间分析
时视频图像进行加密,密钥个数过多满足不了视频加密实时性要求高的特点,过低安全性又不可靠。本算法选择x,y,z3个初值作为系统的初始密钥,比一般单独的低维混沌系统初值多,密钥空间大,产生的混沌序列更加复杂,加密性能更好。x,y,z的取值空间取决于计算机的计算精度,因此,整个Lorenz加密系统的密钥空间有1048,可以有效抵抗穷举攻击;此外,该系统还充分利用了Lorenz系统中最佳的混沌吸引子,可以产生更好的密钥序列。
2)初值敏感性分析
采用以下步骤验证系统对初始条件的敏感性:
1)使用初始条件x=0.606,y=2.257,z=5.868加密任一帧视频图像。
2)极其微小的改变上述初始条件中的任意一个值,其他值保持不变,看能否能对视频帧进行解密。
3)比较原始帧、加密帧、正确解密帧和错误解密帧的区别,如图5所示。
从图5中可以看出,本视频加密系统具有极强的初值敏感性,即使初值有极馓小的变化如0. 000000001,系统也会产生极大的雪崩效应,验证了系统的安全性和稳定性。
此外,本加密算法还遵循香农信息论中提出的混淆与扩散机制,图像内每个像素点的R,G,B分盈值不断地作为密钥扩散到其他像索值中,形成你中有我、我中有你的局面,解密时,图像中任何—个像素点的解密错误都会不断地扩散开来,进而影响整幅图像的正确解密。该算法还改变了原始图像的直方图统计特征,可以有效地抵抗统计分析攻击。
小知识之香农
香农(Shannon)提出并严格证明了“在被高斯白噪声干扰的信道中,计算最大信息传送速率C公式”:C=B log2(1+S/N)。式中:B是信道带宽(赫兹),S是信号功率(瓦),N是噪声功率(瓦)。该式即为著名的香农公式,显然,信道容量与信道带宽成正比,同时还取决于系统信噪比以及编码技术种类香农定理指出,如果信息源的信息速率R小于或者等于信道容量C,那么,在理论上存在一种方法可使信息源的输出能够以任意小的差错概率通过信道传输。该定理还指出:如果R>C,则没有任何办法传递这样的信息,或者说传递这样的二进制信息的差错率为1/2。