基于广义猫映射和H. 264的视频加密
扫描二维码
随时随地手机看文章
引言
随着宽带网和无线网的发展,分布式多媒体广泛应用在视频点播系统、视频广播系统、视频会议系统和监视系统等方面,这对多媒体信息提出了不同程度的安全要求⑴。其图像和视频信息有固定的格式、海量数据特点和播放或传输的实时性要求,都使得釆用通用的数据加密方法遇到了巨大的困难,特别是对于视频信息,目前的加密方案还有待进一步提高。
早期的安全方法主要依赖于对媒体访问者的身份认证,而视频数据本身并没有被加密,因此,存在着传输过程中易被窃取、解码、播放的问题。针对这种情况,尤其是军事、政治、经济等敏感场合对保密性和安全性的特殊要求,促进了对视频加密算法的研究。
本文提出了一种基于广义猫映射和H.264的视频加密方案,利用猫映射的拉抻与折叠和具有初值敏感的特性,实现对每一帧原始视频图像进行置乱,然后对加密后的视频流进行H.264编码,从而获得了在较低比特率下的高质量视频。
1 H.264算法
1.1 算法特点
H.264在1997年ITU的视频编码专家组(Vid-eoCodingExpertsGroup)提出时被称为H.26L,在ITU与ISO合作研究后被称为MPEG4Parti0(MPEG4AVC)或H.264(JVT)。该算法既保留了以往压缩技术的优点和精华,又具有其他压缩技术无法比拟的许多优点:其中低码流(LowBitRate)是其优点之一,与MPEG2和MPEG4ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8和MPEG4的1/3;其次是高质量的图像,H.264能提供连续、流畅的高质量图像(DVD质量);另外,H.264的容错能力强,H.264提供有解决在不稳定网络环境下容易发生的丢包等错误的必要工具;而且网络适应性强,H.264提供有网络适应层(NetworkAdaptationLayer),该特点使得H.264的文件能容易地在不同的网络上传输。
1.2 H.264编码器
H.264编码模块的结构如图1所示。编码器采用的是预测和变换的混合编码方式。编码器处理输入的帧或场F.以宏块编码为单位来进行帧内编码或帧间编码。采用帧间预测编码的预测值PREDC图中用P表示)是由当前片中已编码的参考图像经运动补偿(MC)后得出的。
为了提高预测精度,以提高压缩比,实际的参考图像可在过去或未来(指显示次序上)已编码解码重建和滤波的帧中进行选择。预测值F和当前块相减后,可产生一个残差块D,经块变换、量化后产生一组量化后的变换系数”,再经嫡编码与解码所需的一些边信息(预测模式量化参数、运动矢量等)一起组成一个压缩后的码流,经NAL(网络自适应层)后供传输和存储用。采用帧内预测编码的预测值可由已编码的宏块得到。
1.3 H.264解码器
H.264的解码模块结构图如图2所示,图中,由编码器的NAL输出一个压缩后的H.264压缩比特流,经嫡解码得到量化后的一组变换系数X,再经反量化、反变换,得到残差D”。利用从该比特流中解码出的头信息,解码器就可产生一个预测块PRED,它和编码器中的原始PRED是相同的。当该解码器产生的PRED与残差D”相加后,就会产生uFn,再经滤波,最后得到重建的F”,这个F„就是最后的解码输出图像。
2 猫映射
猫映射最早是由Arnold引入的,因为经常用一张猫脸演示而得名,其方程如下:
(1)式中,行列式C的值为1,即该映射是一个二维保面积、可逆映射,没有吸引子「町。实际上,猫映射包括拉伸和折叠两个过程,乘以矩阵C,使*、了变大,相当于拉伸,取模使了、J又折回单位矩阵内,相当于折叠,矩阵C的特征值为:
相应的李氏指数为:
因此,该系统是混沌的。
从几何方面考虑,可将猫映射作以推广,称为广义猫映射。首先将相空间推广为:
{0,l,2,・“,N—l}X{0,l,2,“・,N—l}
即只取0到N-1的正整数,其次将方程推广为最一般的二维可逆保面积方程,如式(2)所示:
式中a,b,c,d为正整数,其保面积性要求
是:ad-bc=1
广义猫映射实际上是对一个最一般的二维可逆保面积映射加了取正整数的限制,这样,其很可能不再是混沌的,因为状态空间变成有限的了。但从几何上看,仍然具有猫映射的拉伸和折叠的性质,这个性质导致原来相邻的两点(i,j)和(i,j+1)经迭代几次后不再相邻了,即仍然具有一定程度的初值敏感性,利用这一点,一幅图像经迭代若干次之后,就可达到保密效果。
广义猫映射的逆映射如下式所示:
需要注意的是,只要正映射的系统取整数,则逆映射的系数也取整数,这是一个明显的优点。它保证了加、解密都是整数运算,因而不会引入误差,只需要把加密了的图像按逆映射迭代相应次数就可以解密。
3 猫映射视频加密、解密流程
猫映射的视频加密流程如图3所示。加密时,首先获取YUV420视频流;然后将其分解成帧数据;再通过加密算法得到加密后的帧数据;最后把加密后的帧数据送往H,264编码器,得到H.264码流。解密流程是个相反的过程:即先将H.264码流通过H.264解码器得到加密后的帧数据;再将加密后的帧数据通过解密算法得到解密后的帧数据;最后将得到的每一帧数据组合成YUV420数据。
加密算法采用的是广义猫映射,根据公式(2),可对每一帧图像进行像数点置乱,(xn,yn)代表着像数点坐标,而(xn+1,yn+1)代表着(xn,yn)猫映射后的新坐标。解密算法则采用广义猫映射的逆映射。
4 实验结果及分析
实验平台可以在linuxFedora13操作系统下,H.264编码器采用开源代码x264,H.264解码器采用开源代码ffmpeg-O.6,测试序列采用的是akiyo_qcif.yuv,根据公式(2)要求,其相空间为{0,1,2,…,N—1}X{0,1,2,…,N~1},所以,用工具把akiyo_qcif.yuv裁剪为y空间,大小为128X128,“、p空间都为64X64。设定x64帧率25f/s,码率为256kb/s,帧数为300帧,a=l,b=19a
原始视频流可以直接由H.264编码器编码得到H.264视频流,文件大小为316.5KB,编码时间为5.497s。原始视频流第一帧图像y分量图像如图4所示。原始视频流经过加密后得到的H.264视频流文件大小为316.5KB,编码时间为5.5s,直接送入解码器得到的第一帧了分量图像如图5所示,通过解密流程后的第一帧y分量图像如图6所示,当参数失配时(如a=l,b=l),则通过解密流程后的第一帧夕分量图
从实验结果得知,解密算法可以很好的解密原始图像,在错误密钥的情况下(即参数失配的情况下),从图7可以看出,不能正确解密原始图像。从H.264文件大小上看,在相同码流情况下,通过加密算法并没有加大文件大小,从而保证了压缩比。而且编码时间接近,算法简单。但由于H.264编码算法是基于消除空间相关性和时间相关性的算法,而猫映射打乱了原来图像的时间和空间的相关性,因此,不可避免地会带来图像更大的失真。为了客观地评价解密图像的性能,设计引入了均方误差MSE,定义如下:
式⑷中,p(x,y)代表原始图像在(z,y)处的灰度值”(w)代表解密图像在3以)处的灰度值,M,N代表图像大小,对上述密钥的实验结果是:MSE=20。
5 结语
在信息高速流通的时代,不仅要大量存储和传输图像,而且往往要求在保证质量和安全性的前提下,以较小的空间存储图像,并以较少的比特率传输图像。本文将H.264协议和猫映射结合起来实现视频压缩,不但可以实现视频加密,而且加密算法十分简单。