混沌理论应用于加密还是一个比较新的研究领域,现有的基于混沌理论的视频加密大多采用单独的低维映射,安全性不高;而高维混沌系统虽然加密性好,但由于其密钥序列复杂的产生过程与视频加密教据量大、实时性要求高的特点形成矛盾,至今仍鲜有应用。针对于此,结合像素扩散的思想,提出了一种基于三维Lorenz混沌的彩色视频加密算法。

一、Lorenz混沌系统

Lorenz系统是经典的三维混沌系统,它是由美国气象学家E.N.Lorenz在研究对流实验时发现的。它的动力学方程式如式(1)所示;

彩色视频加密之三维Lorenz混沌

Lorenz系统属于耗散系统,它是基于流体力学中的Navier-Stokes方程、热力传导方程和连续性方程构建的。σ,ρ,β是系统的参数,其取值范围是大于0的任意数值,常取σ=10,ρ=8/3,β作为变量,当保持σ,β的值不变,ρ>24.74时洛伦兹系统进入混沌状态,当ρ=28时,系统达到最佳混沌状态。

当σ=10,β=8/3,ρ=28时,洛伦兹系统产生的混沌吸引子如图1所示。

彩色视频加密之三维Lorenz混沌

二、基于Lorenz混沌的视频加密/解密算法

数字视频在许多方面与静止的图像有相同的特性,因为视频信号本身即是由许许多多幅按照时间序列排列的连续图像组成的,每一幅图像称为帧。此外,视频数据还具有数据量大、冗余度高、实时性要求严格等特点。为了保证流畅的视觉效果,视频加密必须考虑实时在线的能力,要求很高的处理速度。基于此,本文提出了一种新的基于Lorenz混沌的视频加密算法,该算法选取能使Lorenz系统产生最佳混沌序列的参数取值σ=10,β=8/3,ρ=28,以x,y,z混沌序列作为加密密钥对视频图像进行加密。因为图像像素值的取值范围是[0,255],所以需要对产生的x,y,z混沌序列进行改进,具体过程如下:

彩色视频加密之三维Lorenz混沌

式中,round()的含义是取靠近0的整数。经过处理后,新的混沌序列x',y',z'的取值范围是[O,1]的任意实数。

该算法的基本思想是:在视频采集的过程中,对采集的每帧图像的每个像素都加入Lorenz系统产生的伪随机序列噪声,也就是将混沌系统产生的混沌序列和每一帧的每一个像素逐位处理。首先由Lorenz系统产生x,y,z混沌序列,然后将x,y.2混沌序列分别与每帧图像中对应的R,G,B分量值以及前一个像素加密后的R,G,B分最值进行异或,从而完成对该帧的加密。在采集的过程中对每一帧图像都做如上处理,进而完成对整个视频的加密。

整个系统加密、解密的算法框图如图2和图3所示。

彩色视频加密之三维Lorenz混沌

彩色视频加密之三维Lorenz混沌

算法中每帧第一个像素加密的过程与其他像素不同,是用对应的混沌序列与该像素以及该帧最后一个像索的R、G、B分置值进行异或加密。本算法遵循香农信息论中混乱与扩散的设计准则,且对不同的帧能产生不同的密钥进行加密,既能满足视频实时性的要求,又具有很高的安全性。

三、彩色视频加密/解密算法的设计

1、加密算法的流程

设摄像头采集的视频帧大小为M*N,对视频进行加密的流程如下:

彩色视频加密之三维Lorenz混沌

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)对帧中的每个像素逐一进行加密,进而加密整个视频帧。

式中,R,G,取是当前待加密像素点的3个分量值,xk'',yk''zk''分别是与当前像素分量对应的密钥序列值,xk'',yk''zk''分别是前一个已加密的像素分量值.R’.G’,B’分别是当前像素加密后的3个分量值。注意,对每帧图像中的第一个像素进行加密时,xk'',yk''zk''的取值是取该帧图像中最后一个像素的R.G,B值.

5.显示加密后的视频帧。

6.重复步骤4和5,完成对整个视频的加密。

解密算法是加密算法的逆过程。

小知识之视频

视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。