基于H.264/AVC视频安全级别可分的加密方案

2013-08-13 05:06陈志玉宋建新
电视技术 2013年5期
关键词:宏块安全级别加密算法

陈志玉,宋建新

(南京邮电大学图像处理与图像通信实验室,江苏 南京 210003)

随着设备处理能力的增强和网络带宽的快速增大,近些年已经出现了许多视频应用,比如视频会议、视频点播、视频监控、可视电话等。因为数字视频非常容易被复制和修改,所以其安全问题已成关注焦点。

多媒体数据需要完全加密还是选择性加密,这取决于应用的需求。比如,军事和法律应用需要完全加密。然而,大部分应用所需的安全级别都比较低,所以这些应用只需要选择性加密(SE)。SE只加密明文的一部分,它有两个主要的优势:第一,减少了计算量,因为只有部分明文被加密;第二,被加密的比特流含有原来比特流的属性。

到目前为止,人们已经提出了基于H.264/AVC的加密方案。比如,基于DCT域[1-2]和运动矢量域的加密方案,它们满足了安全性的要求,但是改变了码率大小,实时性和可操作性也很差[3]。为了解决这些问题,充分利用了H.264/AVC编码器结构和码流结构的特点,提出了一种安全级别可分的选择性加密方案[4]。在这个方案中,仅仅选取SPS、PPS和I帧的部分数据被加密[5]。在宏块级别,将选取数量不固定的宏块进行加密,这样就得到了安全级别可分的加密方案。由于预测误差的可传播性,所以在解码端没有加密的数据也将会被加密。因此,这个方案减少了计算量,适用于需求不同安全级别的应用[6-7]。使用了AES加密算法的CFB模式,这是一种流加密算法,可以及时加密传送小于分组的数据。

1 H.264/AVC和AES加密算法概述

1.1 H.264/AVC 概述

H.264/AVC是由ITU-T和ISO/IEC联合制定的,并且是当前最新的视频压缩编码标准,它包含了许多新添加的功能,能提供比H.263,MPEG-2和MPEG-4更高的压缩性能。下面介绍H.264中SPS,PPS和I帧。

与以往标准不同,H.264的分层结构取消了序列层和图像层,将原本属于序列层和图像层头部的大部分句法元素游离出来形成序列参数集(SPS)和图像参数集(PPS)。SPS和PPS包含了图像解码时所用到的相同信息,比如H.264支持的档次profile_idc、指明选择熵编码的语法元素entropy_coding_mode_flag、图像的亮度、色度分量以像素为单位的高和宽等。但是,在SPS中PPS并不是所有的语法元素都可以加密。本文只加密了部分可加密的语法元素。在解码端,图像要使用SPS和PPS中的参数进行解码。

I帧通常是每个GOP(画面组)的第一帧,它包括IDR(即时解码刷新)帧和非IDR帧。I帧是一个序列的第一帧图像通过帧内预测编码得到的,它是帧间压缩编码里的重要帧,后面的图像将参考它进行编码。当I帧为IDR帧时,IDR图像之后的图像永远不会引用IDR图像之前的图像的数据来解码。解码时仅用I帧的数据就可重构完整图像。

1.2 AES 加密算法

AES加密算法[8]输入分组密码算法,它对明文进行加密迭代的次数,称为轮数。轮数是由密钥的长度和数据块的大小决定的。一般密钥的长度K为128,192或256比特。用Nk代表密钥串的字数(1字=32 bit),加密轮数与密钥长度的关系见表1。由于外部输入的加密密钥K长度有限,所以在AES中要用到一个密钥扩展程序把外部密钥K扩展成更长的比特串,以生成各轮的加密密钥。

表1 加密轮数与密钥长度的关系

在AES加密算法中,对于一个明文块序列{X1,X2,…,Xn},每个Xi都用同一个密钥K加密,得到密文块序列{Y1,Y2,…,Yn}。为了加密一个数据块Xi,首先将128位分组数据与扩展密钥进行异或运算;接着,将得到的结果进行迭代,迭代包括4个步骤,分别是S盒变换SubBytes()、行变换ShiftRows()、列变换MixColumns()和与扩展密钥的异或AddRoundKey();最后将经迭代后的数据通过Sub-Bytes()、ShiftRows()和AddRoundKey()处理后得到最终的密文块Yi。

AES加密算法支持5种加密模式,分别是ECB(电子密码本)模式、CBC(加密块链)模式、CFB(加密反馈)模式、OFB(输出反馈)模式和CTR(对抗)模式。本文采用CFB模式,CFB模式的流程图如图1所示。

图1 CFB流密码加密流程图

图1中,⊕是XOR运算;Zi是由加密器Ek生成;密文块Yi由式(1)得到

2 提出的安全可分级的SE方案

根据H.264/AVC标准的数据结构特点和具体实现的流程,提取SPS,PPS和I帧的码流数据来进行加密。考虑到不同的视频应用所要求的安全级别不同,在宏块级别只取一帧中部分宏块去加密,安全级别要求高的取较多的宏块数,否则取少的宏块数。这样可以在满足安全性要求的情况下使得计算消耗低、实时性好。下面从三步来描述所提出的方案。

第一步,只对帧内编码模式下的一个单独宏块进行加密,分析由预测误差引起的加密传播。如图2所示,选择I帧的第一宏块码流进行加密,分析对其相邻宏块的影响,在这里对于亮度分量取它相邻的10个宏块,对于色度分量只取3个宏块,按照Zigzag扫描如图3所示。因为在帧内编码时,宏块都要参考前面已经编码的宏块进行编码,在解码时要根据已经解码的加密宏块进行解码,这可能引起图片严重的失真。所以,利用这种特性把加密从已加密宏块传到未加密宏块。在后面实验部分将分析一个单独宏块加密,对其后相邻宏块影响的程度和范围。

第二步,根据第一步分析的结果,可以得到一个加密宏块的分布图。通常都是从第一个宏块开始加密,因为它对后面宏块影响最大。因为很多的B帧和P帧都是参考I帧编码的,所以I帧之后的图片解码时由于误差的传播引起了失真,达到了加密的效果。针对不同的安全级别,加密宏块分布密集度也不同。在后面将给出不同安全级别对应的加密比例。

第三步,有时候P帧和B帧是帧内编码,在这种情况下仅仅I帧被加密不能提供足够的安全级别。为了达到视频更高级别的安全性,还要用AES的CFB模式对SPS和PPS中能加密的语法元素进行加密,如图2所示。

3 实验分析与结果

为了验证提出方案的性能,使用4个标准视频序列,它们都是CIF格式,每个视频序列压缩编码50帧。基于JM10.1平台编程实现所提出的方案。量化步长设置为QP=12。

3.1 加密一个单独宏块

根据提出的方案,首先加密I帧中一个单独宏块加密对其他宏块的影响。从图4可以看出,加密一个单独宏块对其相邻宏块的影响大。图4b是加密第一个宏块,可以看出对整幅图像的颜色影响都很大;图4c是对第181个宏块加密,可以看到相邻宏块失真严重。

图4 加密一个单独宏块

从图4可以看出,由于加密的传播性,一个单独宏块加密对其相邻的宏块造成了影响,但是影响的具体程度不是很清楚。因此,利用PSNR估量宏块的质量。通过实验数据画出paris序列的I帧PSNR曲线图,如图5所示。

图5 1个加密宏块附近10个宏块的亮度分量和色度分量的PSNR值

从图5可以看出,仅仅加密一个宏块,它对第1,2,4宏块影响最严重,它们达到了安全性级别,所以不再对这3个宏块进行加密。由于不同的视频中运动对象、色度、亮度等不同,所以一个加密宏块对其相邻宏块的影响范围有可能更大,程度更深。

3.2 安全性可分级方案

由于预测差错的传播,不必把整帧都加密,根据3.1的结论,对I帧使用“田”形加密方式。通过实验得到了相应安全级别的加密比例,如表2所示。下面给出4种序列加密比例和相应的PSNR值。

表2 3种安全级别的加密比例和PSNR值

其中,加密比率(ER)为一帧中加密的宏块数与全部宏块数之比。下面以bus序列为例,通过实验给出不同安全级别的加密后第1帧和第50帧图像,如图6所示。图6a、图6e为原始图像,图6b、图6f是安全级别较低的图像,图6c、图6g是安全级别中等的图像,图6d、图6h是安全级别高的图像。可以看出随着加密比率越大,图像质量就会越差,安全级别也就越高。

由于只对I帧加密,从视觉上来看,没有把视频信息完全覆盖掉。所以在对I帧部分宏块加密的基础上,再对SPS和PPS的部分语法元素加密。实验结果如图7所示,可以看出,视频信息已经完全模糊,加密效果好。

3.3 性能分析

安全性方面:本来采用加密算法是AES的CFB模式,AES是新一代加密标准,至今还没找到对其有效的攻击。

从文献[9]知道AES对视频数据提供足够的安全保护。同时,本文对SPS和PPS进行加密,导致攻击者不能得到解码所用的参数。I帧部分宏块加密,导致本身和参考其编码的图像不能解码。由于预测差错的传播,使得攻击者不能解码。因此,本文提出的方案满足了视频安全性要求,并且可以满足不同安全性的要求。

压缩率方面:在本方案中,利用AES加密算法加密,使得加密前后数据的长度不变。因此,本方案没有改变压缩率的大小。

实时性方面:本方案采用的选择性加密,大大减少了加密的数据量,并且加密过程和视频压缩过程同步进行。又因为采用的加密算法是AES的CFB模式,它是一种流密码加密方式,实时性很强,所以,本文所提出的方案满足了实时性的要求。

4 总结

本文中提出了基于H.264/AVC标准的安全级别可分的加密方案,对I帧部分宏块和SPS、PPS的部分语法元素进行加密。由于预测误差的传播性,加密宏块会引起其附近宏块的加密。根据这个现象,利用“田”型加密的方式对一帧进行加密处理,这减少了加密的数据量。从实验结果可以看出,本方案是有效的。

然而,本方案也有不足之处,没有考虑宏块选取的智能性。人为地设想会有偏差,所以,之后的工作是设计一种智能选取宏块的方案,以求加密数据量更少。

[1]YANG S,SUN S.A video encryption method based on chaotic maps in DCT domain [J].Progress in Natural Science,2008,18(10):1299-1304.

[2]刘博文,柏森,刘程浩,等.基于骑士巡游的灰度图像加密压缩算法[J].电视技术,2012,36(9):10-13.

[3]STUTZ T,UHL A.A survey of H.264 AVC/SVC encryption[J].IEEE Trans.Circuits and Systems for Video Technology,2010,22(3):25-39.

[4]VISWANATHAN S,SAAYAN M.A partial encryption scheme for AVC video[C]//Proc.ESPA 2012.[S.l.]:IEEE Press,2012:208-211.

[5]ZAFAR S,MARC C,WILLIAN P.Fast protection of H.264/AVC by selective encryption of CAVLC and CABAC for I and P frames[J].IEEE Trans.Circuits and Systems for Video Technology,2011,21(5):565-576.

[6]LEI B Y,LO K T,LEI H J.A new H.264 video encryption scheme based on chaotic cipher[C]//Proc.ICCCAS 2010.[S.l.]:IEEE Press,2010:373.

[7]WU C,KUO C.Design of integrated multimedia compression and encryption systems[J].IEEE Trans.Multimedia,2005(7):828-839.

[8]何明星,林昊.AES算法原理及其实现[J].计算机应用研究,2002(12):61-63.

[9]National policy on the use of the advanced encryption standard(AES)to protect national security systems and national security information[EB/OL].[2012-06-12].http://csrc.nist.gov/groups/ST/toolkit/documents/aes/CNSS15FS.pdf.

猜你喜欢
宏块安全级别加密算法
基于Packet tracer防火墙的基本配置仿真实验的设计与实现
基于运动估计与补偿的雷达拼图预测分析*
混沌参数调制下RSA数据加密算法研究
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
数据库加密技术及其应用研究
基于KVM视频的H.264预测模式选择算法
对称加密算法RC5的架构设计与电路实现
IP网络丢包条件下的H.264高清视频实时解码问题分析