专利名称::H.264中基于变换域的dct系数分层置乱方法
技术领域:
:本发明属于一种图像传输加密方法,具体是视频编码标准H.264中基于变换域的DCT系数分层置乱方法。
背景技术:
:H.264是由ITU-T和IS0/IEC联合制定的新一代视频编码标准,能提供比H.263和MPEG-4更高的压縮性能,在图像编码质量相同时,能够节省30%50%的码率。新标准优异的压縮性能使其在数字电视广播、视频实时通信、网络流媒体传递以及多媒体短信等各个领域发挥重要作用,有力地促进多媒体产业的快速发展。但视频存储和传输的广泛性和便利性也使其在开放网络环境中存在一些很棘手的问题,例如非法拦截、信息泄露、数据篡改、数据删添等。因此如何既充分利用视频服务的便利,又能实施更加有效的H.264视频加密方法就成为一个迫在眉睫的现实问题。目前的视频加密方法根据压縮和变换方式的不同,可分为基于早期标准(如H.263,MPEG-2和MPEG-4等)的加密方式和基于H.264的加密方式;根据编码流程又大致可分为编码前信源数据加密、预测后预测模式加密、变换域DCT系数加密、熵编码加密以及编码后数据加密等。基于H.264的DCT系数加密算法曹穽等在"H.264标准中基于DCT的视频加密研究"(中国图象图形学报,2005年,第8期)一文中提出了三种基于4X4007\变换的&264视频加密算法,这些算法最i;的特点是加密过程取在量化之后熵编码之前,实现简单,密钥开销较小,但在安全性、压縮比和信噪比上都各自存在缺点。下面对这三种算法分别进行分析算法一对DCT系数符号的翻盘分析此算法对所有4X4块中的DCT系数符号位进行加密,实现简单且不影响压縮比,但符号加密没有改变系数的大小和统计特性,安全性较低。算法二对4x4块的随机洗牌(B—Shuffling)分析将同一宏块中每个4X4块作为基本单元进行随机置乱,而保持块内系数相对位置不变。去掉n个全零块和相似块,则一个16X16宏块的加密复杂度为16!/n!,安全性较高。其缺点是(1)由于每个4X4单元内信息完全保留,攻击者可以利用块间相关性(如边缘连续性,色彩和纹理相似性等)进行破译;(2)洗牌过程改变了相邻块系数的统计特性,并且系数的位置出现了巨大变动,因而对信噪比和压縮比都有较大的影响。算法三非零高低频系数之间洗牌((LScrambling)分析考虑到实际编码时存在全零块和量化后系数许多为零等情况,我们假设非零系数占总系数的1/3,则每个4X4块系数置乱空间为(16/3)!"5!,整个宏块置乱空间为(5!)16,安全性较高;若将同一个8X8或16X16块中非零系数进行置乱,则安全性更高。与算法[2][3]相比较,其优点是洗牌过程只改变了块内非零系数的统计特性,对压縮比影响相对较小,但由于4X4块内非零系数数量很少,因此也更容易使用FBA攻击来进行解密。另外,中国专利200310114727.4加密和压縮多媒体数据的方法与设备,其主要技术内容是在DCT变换后熵编码之前加密DC和AC系数,属于变换域加密方法。该方法对所有系数进行加密,虽然安全性很高,但同时也对压縮比影响非常大,即使每个系数只加密2位,其压縮比影响将超过l倍。EP1033880"DigitalImageScramblingforImageCodingSystems",其主要技术内容是对DCT系数的符号位、尺度和运动矢量符号位分别进行随机置乱。其中,DCT系数和运动矢量的符号位置乱方法相同。在置乱DCT系数的尺度时,采取对各个编码块中具有相同编号的子带内系数集中进行置乱。缺点是对基于块编码的视频编码结构(如H.264,MPEG-4等),其实时性影响很大,难以进行实时编码。
发明内容本发明提供了H.264中基于变换域的DCT系数分层置乱方法,提高了H.264标准中视频的加密性。本发明的技术方案如下H.264中基于变换域的DCT系数分层置乱方法,其特征在于包括以下内容-在H.264编码时,选择将一帧图像分成m(m^l)个Slice,每个Slice包含了n(n》l)个宏块。具体地,每个宏块又以4X4为基本单位分成16个子块Z^.。,Z^,i,…,Zm,^,每个子块包含16个DCT系数,即Zm.n,i={Cm,n,i,。,Cm.^,…,C—,15}(m礼n》1,0《i《15);将同一宏块中每个子块Zm,n.i(m》l,n》l,0《i《15)包含的二维系数矩阵映射成一维系数矩阵,映射函数为Zigzag排序;同一宏块的16个子块全部映射后,可得到对应的16个一维系数矩阵,再将这些系数矩阵组合成一个二维16X16系数矩阵;将此二维16X16系数矩阵按系数能量Zigzag排序,分成16层Layer0,Layer1,…,Layer15,构成DCT系数分层模型,其中Layeri={Cm,"。,Cm,M.!,…,C^,i.J(m》l,n》l,0《i《15);在DCT系数分层模型中,LayerO为直流DC系数层,其中C^i.。代表同一宏块中每个子块Z叭i(m》1,n》l,0《i《15)的直流(DC)系数;其余Layeri(1《i《15)为交流AC系数层,每个交流AC系数层中包含有16个交流AC系数;在对图像加密时,可以每层分配一个密钥,也可以根据需要若干层共用一个密钥,逐层置乱。所述的可以每层分配一个密钥,也可以根据需要若干层共用一个密钥是指,直流DC系数层和交流AC系数层可以每层分配一个密钥,也可以根据需要直流DC系数层和若干个交流AC系数层共用一个密钥,或者直流DC系数层使用一个密钥,若干个交流AC系数层共用一个密钥。本发明性能分析(1)、安全性分析本发明通过构建DCT系数分层模型,将每层系数分别进行随机置乱,属块间置乱算法。以下将主要分析DCLSA算法在穷举攻击、FBA攻击和块间相关性攻击时的安全性。与B—Shuffling和C_Scrambling算法相比较,DCLSA算法对FBA攻击和块间相关性攻击具有较高的安全性,如表1所示。这是由于算法采用了分层置乱思想,将每帧所有Slice包含的宏块中每个4X4块能量相当的DCT系数进行了随机置乱,因而(1)置乱过程几乎不影响置乱后块内系数能量大小的Zigzag排序,可以有效地防止FAB攻击;(2)置乱过程改变了每个4X4块内信息,这就保证了DCLSA算法对块间相关性攻击的安全性。表1不同加密算法抗攻击能力比较<table>tableseeoriginaldocumentpage6</column></row><table>DCLSA算法还具有较大的明文搜索空间。以一个宏块为例,B_Shuffling算法的明文搜索空间为M产16!/n!,其中n为宏块中全零块和相似块的数量;C—Scrambling算法的实际搜索空间为M2=(5!)t6。本发明DCLSA算法的明文搜索空间非常大,以分别置乱同一宏块中前5层系数为例,另考虑到每层系数能量相当,假设每层系数有l/3相等,则一个宏块的明文搜索空间为M^(16!/5!)5。因此,这三种算法的明文搜索空间满足关系M,〈M2〈M3。即DCLSA算法的明文搜索空间最大,安全性最高。另外,算法的实际穷举空间应为min(l明文搜索空间l,|密钥空间|},其中I,l为集合的势。因为DCLSA算法可以采取一层或若干层共用一个密钥,所以其密钥空间远小于明文搜索空间。以352X288视频序列为例,每个图组使用的密钥流长度为352X288Xj/(16X16):396Xj位,其中j为密钥数,因此采用穷举攻击来进行解密是很困难的。又由于密钥序列在每个图组的实时变化,算法还可以防止已知明文攻击。(2)、信噪比与压縮比分析从信噪比的影响来看,DCLSA算法改变了相邻块系数的统计特性,对信噪比有些许影响,而且这种影响是随机的,即可能优化信噪比,也可能降低信噪比,如表2所示。与块间置乱算法B—Shuffling相比较,DCLSA算法可以获得更优的信噪比。表2加密前后信噪比和压縮比比较(测试条件JM82,100帧,ilnterval=9,blnterval=l)视频序列信噪比(dB)压缩比<table>tableseeoriginaldocumentpage7</column></row><table>从压縮比的影响来看,C_Scrambling算法只是破坏了块内非零系数的统计特性,与以往的块内系数置乱和分段置乱算法相比较,可获得较高的压縮比;B_Shuffling算法虽然没改变块内系数的统计特性,但系数位置出现了巨大变动,对压縮比也有一定的影响,如表2所示。通过比较,DCLSA算法对压縮比影响最小,这是由于分层置乱几乎不影响块内系数能量大小的Zigzag排序,而且系数位置的变动相对较小。图l为Zi(0《i《15)系数矩阵映射。图2为DCT系数分层模型。图3通用型分层置乱算法图4逼近攻击(去色度信息)。(a)设置所有DC系数为O(b)设置所有AC系数为O图5为密钥分发与更新。图6分层置乱的试验效果图。具体实施方式本发明利用H.264中4X4DCT变换的特点,通过构建DCT系数分层模型,给出了一种新的DCLSA算法。H.264中基于变换域的DCT系数分层置乱方法I、DCT系数分层模型在模型建立之前,在化264编码时,首先选择将一帧图像分成m(m》1)个Slice,每个Slice包含了n(n^l)个宏块。具体地,每个宏块又以4X4为基本单位分成16个子块Zm,n,。,Z^"…,Zm,,15,每个子块包含16个DCT系数,即ZCm,,u,...,Cra,n,uJ(m》l,n》l,0《i《15)。St印l:将同一宏块中每个4X4子块Z^.i(m^1,n》l,0《i《15)包含的二维系数矩阵映射成一维系数矩阵,映射函数为Zigzag排序,如图1所示。St印2:—个宏块按St印1映射16次后,可得到对应的16个一维系数矩阵,再将这些系数矩阵组合成一个二维16X16系数矩阵,如图2所示。St印3:将此二维系数矩阵按行顺序(即按系数能量Zigzag排序)分成16层(Layer0,Layer1,…,Layer15),建立图2的分层模型,其中Layeri={C屮.i,o,Cni山…'C一,i.J(m》l,n》l,0《i《15)。2、DCLSA算法实现从系数矩阵映射过程可以看出,",M,。代表宏块中Zm^(m》1,n》l,0《i《15)块的直流(DC)系数,其余为交流(AC)系数。即Layer0包含了宏块中16个4X4子块的直流DC系数,将其定义为直流DC系数层;Layeri(l《i《15)包含了宏块中16个能量相当的交流AC系数,将其定义为交流AC系数层i(l《i《15)。图3是一通用型分层置乱算法,可以根据安全性要求选择其中的一层或多层系数分别进行随机置乱。值得一提的是,若仅加密DC系数层或仅加密AC系数层,则无法防止逼近攻击,如图4所示,甚至可以使用模式识别技术近似恢复原有视频图像,因而本发明对DC系数层和AC系数层都进行置乱。同时考虑到每个4X4子块右下角系数经量化后很多为零值,假设非零系数占总系数的1/3,则图2中Layer4之后绝大部分系数均为零,所以本发明在试验中只对前5层(Layer0,Layer1,…,Layer4)系数分别进行了随机置乱,置乱层次越多,安全性越高。3、密钥生成与分配如图5所示,密钥分发以帧为基本单位,每个密钥序列的更新单位为图组。为了节省密钥开销和减小计算资源消耗,在试验中采用密钥公甩方法。若图像大小为HXW,则密钥序列的长度为HXWXj/(16X16)。每帧开始加密时,密钥序列指针复位,逐层置乱,直到该帧结束。对于多用户共享系统中新用户开始接入系统时的密钥同步,本发明在H.264中的序列参数集和图像参数集之间填充经加密后的32位二进制序列p曲…P3,。虽然增加了些许码长,但对一个图组来说是忽略不计的。又因为两种参数集所在的NALU(网络适配层单元)起始码相同,因此需要保证填充序列p,P2…W内部不出现与起始码相同的二进制串,这样就不会引起解码出错。新用户接入系统时,首先从码流中解析出填充序列,并使用会话密钥对其解密,然后利用该解密序列快速计算出当前图组密钥序列,最终实现密钥重同步。该方法的优点在于当网络传输中出现丢包、丢帧等情况时,通过每帧开始加密时将密钥序列指针复位,不会影响下一帧的正常解密;在码流中插入填充信息,不仅可实现密钥重同步,而且兼容标准码流;密钥存储空间小,如HXW图像的密钥存储数量为HXWXj〃16X16)。4、实验结果采用标准的Mobile(352X288,去色度信息)序列进行测试,加密后的图像如图6所示。从加密效果可以看出,当仅对DC系数层(LayerO)进行置乱时,图像视觉安全性较差;随着置乱层次的增加,图像变得越来越混乱。直至加密前五层后,图像基本难以辨别,而且其视觉效果与置乱所有层的安全性相当,这是由于第五层之后的系数绝大部分为零值。因此为了节省计算资源,我们在本试验中对前5层系数进行了随机置乱,同时也可根据安全性要求选择不同层系数进行置乱,实现加密编码。权利要求1、H.264中基于变换域的DCT系数分层置乱方法,其特征在于包括以下内容-在H.264编码时,选择将一帧图像分成m(m^1)个Slice,每个Slice包含了n(n》l)个宏块,具体地,每个宏块又以4X4为基本单位分成16个子块Z^,。,Z……,Z^,每个子块包含16个DCT系数,即Z^i二K^,i,。,C^i,,,…,C将同一宏块中每个子块Zm.n.i(m》l,n》l,0《i《15)包含的二维系数矩阵映射成一维系数矩阵,映射函数为Zigzag排序;同一宏块的16个子块全部映射后,可得到对应的16个一维系数矩阵,再将这些系数矩阵组合成一个二维16X16系数矩阵;将此二维16X16系数矩阵按系数能量Zigzag排序,分成16层Layer0,Layer1,…,Layer15,构成DCT系数分层模型,其中Layeri={C….0,C…山...,Cm,,U5}(m》l,n》l,0《i《15);在DCT系数分层模型中,LayerO为直流DC系数层,其中Cm,M.。代表同一宏块中每个子块Z^.i(m》1,n》l,0《i《15)的直流(DC)系数;其余Layeri(1《i《15)为交流AC系数层,每个交流AC系数层中包含有16个交流AC系数;在对图像加密时,可以每层分配一个密钥,也可以根据需要若干层共用一个密钥,逐层置乱。全文摘要本发明公开了H.264中基于变换域的DCT系数分层置乱方法,是在H.264编码时,将一帧图像分成m(m≥1)个Slice,每个Slice包含了n(n≥1)个宏块,每个宏块又以4×4为基本单位分成16个子块Z<sub>m,n,0</sub>,Z<sub>m,n,1</sub>,…,Z<sub>m,n,5</sub>,每个子块包含16个DCT系数,即Z<sub>m,n,i</sub>={C<sub>m,n,i</sub>,0,C<sub>m,n,i</sub>,1,…,C<sub>m,n,i,15</sub>}(m≥1,n≥1,0≤i≤15);建立与宏块相对应的DCT系数分层模型,分成直流DC系数层,和其余15个交流AC系数层;在对图像加密时,可以每层分配一个密钥,也可以根据需要若干层共用一个密钥,逐层置乱。本发明安全性高。文档编号H04N7/26GK101146224SQ20071013204公开日2008年3月19日申请日期2007年9月20日优先权日2007年9月20日发明者包先雨,吴从中,娜夏,尤小泉,援李,李小红,蒋建国,曙詹,齐美彬申请人:合肥工业大学