本文提出了用三维Lorenz混沌系统和Matlab仿真工具实现混沌数字视频加密。利用Matlab工具产生AVI视频信号,同时,利用混沌序列对初始条件和系统参数非常敏感的特性,采用驱动响应式同步的加密算法方案,对产生的AVI视频进行加解密,最后通过将混沌序列的初始条件和系统参数进行微弱调整,对仿真结果进行深入分析。
1 AVI 频文件结构特点
音频视频交错格式AVI(Audio Video Interleaved)是将语音和影像同步组合在一起的文件格式。它对视频文件采用了一种有损压缩方式,但压缩比较高,AVI支持256色和RLE压缩,一个AVI文件可以包含多个不同类型的媒体流,它以一系列的位图来存储视频信息,并在文件中加入以数字形式存储的数字化视频信息。
AVI包含三部分:文件头、数据块和索引块。其中文件头包括文件的通用信息,定义数据格式及压缩算法等参数。数据块包含实际数据流,即图像和声音序列数据,是文件的主体,也是决定文件容量的主要部分。视频文件的大小等于该文件的数据率乘以该视频播放的时间长度。索引块包括数据块列表和它们在文件中的位置,以提供文件内数据随机存取能力。
2 Lorenz混沌系统与离散化处理
使用一个Lorenz混沌系统来进行AVI视频文件的加密和解密,Lorenz系统的无量纲状态方程数学表达式为[14]:
根据式(1)和式(2)以及上述参数,可以得到Lorenz混沌系统中吸引子的数值仿真结果,图1所示为x-y方向上的Lorenz混沌系统吸引子相图。
3 基于Lorenz混沌系统的视频加密算法设计
3.1 AVI视频文件的读入
利用随机采样到的一段AVI视频进行混沌加密,由于Matlab中只支持ZJmedia Umcompress RGB24编码方式的AVI视频文件,因此首先有必要把采集到的这段视频文件进行转换处理,使其能够无障碍地载入到Matlab工具中。利用专业的转换软件Winavi进行操作,视频经过相应的处理之后,读入到Matlab工具当中去。
3.2 视频加密方案
根据密码学原理,首先要把视频信息进行置乱处理,然后利用混沌系统来进行扩散加密。
利用式(2)中的混沌系统状态方程,经过离散化之后来实现数字视频混沌加密。在驱动响应式同步的基础上,加入信号后再形成一个闭环和反馈,使驱动系统和响应系统有同步信号,工作原理如图2所示。
通过在Matlab软件上编程之后验证可以得到,Lorenz系统完全能够实现驱动响应式同步,其仿真结果如图3所示,其中横坐标代表发送端信号x(n),而纵坐标则为接收端的信号x′(n),从图中可以看出,二者是严格同步的。
4 Matlab仿真结果及分析
4.1 仿真结果
在Matlab7.1的工作平台下,按照上文提出的加密方案编写相应的程序对视频文件“original.avi”进行加密与解密,Lorenz系统的初始值(x0,y0,z0)取为(0.01,0.02,0.03),图4~图7是加解密的实验结果,其中图4显示的是原始视频中的最后一帧原始图像,图5是最后一帧原始图像经过混沌系统加密后的效果图,图6是在系统参数完全一致以及初始条件(x1,y1,z1)改为(10,20,10)的情况下解密出来的图像效果图,图7则是修改了系统参数b为30.000 01之后的效果图。
4.2 结果分析
在采用上述加密算法之后,用Matlab仿真工具编程对“original.avi”进行仿真实现,由结果可以发现,由于是视频加密,因此只能分析单一的一帧图像,如图5所示,是加密之后最后一帧的图像,加密效果相当不错,完全看不出视频文件的内容。当在Lorenz混沌系统初始条件(x0,y0,z0)不同和而系统参数(a,b,c)完全匹配的情况下,得到解密的最后一帧的图像如图6所示,完全和原始图像一样,解密效果非常明显。然后,调整系统参数b,把b的值重新取为30.000 01时,得到如图7所示的解密效果图,解密出来的图像已经无法看清了,非常模糊,这说明此种加密算法具有很高的安全性,该系统的安全性主要来自于发送端与接收端参数失配的高度敏感性。
根据以上仿真结果和分析,混沌本身具有实现密码的许多优点,其内在的带有确定性的随机性和计算复杂度低的特点具有很大的吸引力。目前,国内外学者将混沌加密理论应用到视频加密的还不多,主要集中在直接加密方面,没有利用视频数据本身的特性和选择性加密的优点,没有很好地结合视频压缩标准方面的研究,因此很难提高其实用性和实时性。将混沌加密与选择性加密相结合,是今后混沌保密算法方面一个重要的发展方向。