專利名稱::H.264中基于變換域的dct系數(shù)分層置亂方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于一種圖像傳輸加密方法,具體是視頻編碼標(biāo)準(zhǔn)H.264中基于變換域的DCT系數(shù)分層置亂方法。
背景技術(shù):
:H.264是由ITU-T和IS0/IEC聯(lián)合制定的新一代視頻編碼標(biāo)準(zhǔn),能提供比H.263和MPEG-4更高的壓縮性能,在圖像編碼質(zhì)量相同時(shí),能夠節(jié)省30%50%的碼率。新標(biāo)準(zhǔn)優(yōu)異的壓縮性能使其在數(shù)字電視廣播、視頻實(shí)時(shí)通信、網(wǎng)絡(luò)流媒體傳遞以及多媒體短信等各個(gè)領(lǐng)域發(fā)揮重要作用,有力地促進(jìn)多媒體產(chǎn)業(yè)的快速發(fā)展。但視頻存儲(chǔ)和傳輸?shù)膹V泛性和便利性也使其在開放網(wǎng)絡(luò)環(huán)境中存在一些很棘手的問(wèn)題,例如非法攔截、信息泄露、數(shù)據(jù)篡改、數(shù)據(jù)刪添等。因此如何既充分利用視頻服務(wù)的便利,又能實(shí)施更加有效的H.264視頻加密方法就成為一個(gè)迫在眉睫的現(xiàn)實(shí)問(wèn)題。目前的視頻加密方法根據(jù)壓縮和變換方式的不同,可分為基于早期標(biāo)準(zhǔn)(如H.263,MPEG-2和MPEG-4等)的加密方式和基于H.264的加密方式;根據(jù)編碼流程又大致可分為編碼前信源數(shù)據(jù)加密、預(yù)測(cè)后預(yù)測(cè)模式加密、變換域DCT系數(shù)加密、熵編碼加密以及編碼后數(shù)據(jù)加密等。基于H.264的DCT系數(shù)加密算法曹穽等在"H.264標(biāo)準(zhǔn)中基于DCT的視頻加密研究"(中國(guó)圖象圖形學(xué)報(bào),2005年,第8期)一文中提出了三種基于4X4007\變換的&264視頻加密算法,這些算法最i;的特點(diǎn)是加密過(guò)程取在量化之后熵編碼之前,實(shí)現(xiàn)簡(jiǎn)單,密鑰開銷較小,但在安全性、壓縮比和信噪比上都各自存在缺點(diǎn)。下面對(duì)這三種算法分別進(jìn)行分析算法一對(duì)DCT系數(shù)符號(hào)的翻盤分析此算法對(duì)所有4X4塊中的DCT系數(shù)符號(hào)位進(jìn)行加密,實(shí)現(xiàn)簡(jiǎn)單且不影響壓縮比,但符號(hào)加密沒(méi)有改變系數(shù)的大小和統(tǒng)計(jì)特性,安全性較低。算法二對(duì)4x4塊的隨機(jī)洗牌(B—Shuffling)分析將同一宏塊中每個(gè)4X4塊作為基本單元進(jìn)行隨機(jī)置亂,而保持塊內(nèi)系數(shù)相對(duì)位置不變。去掉n個(gè)全零塊和相似塊,則一個(gè)16X16宏塊的加密復(fù)雜度為16!/n!,安全性較高。其缺點(diǎn)是(1)由于每個(gè)4X4單元內(nèi)信息完全保留,攻擊者可以利用塊間相關(guān)性(如邊緣連續(xù)性,色彩和紋理相似性等)進(jìn)行破譯;(2)洗牌過(guò)程改變了相鄰塊系數(shù)的統(tǒng)計(jì)特性,并且系數(shù)的位置出現(xiàn)了巨大變動(dòng),因而對(duì)信噪比和壓縮比都有較大的影響。算法三非零高低頻系數(shù)之間洗牌((LScrambling)分析考慮到實(shí)際編碼時(shí)存在全零塊和量化后系數(shù)許多為零等情況,我們假設(shè)非零系數(shù)占總系數(shù)的1/3,則每個(gè)4X4塊系數(shù)置亂空間為(16/3)!"5!,整個(gè)宏塊置亂空間為(5!)16,安全性較高;若將同一個(gè)8X8或16X16塊中非零系數(shù)進(jìn)行置亂,則安全性更高。與算法[2][3]相比較,其優(yōu)點(diǎn)是洗牌過(guò)程只改變了塊內(nèi)非零系數(shù)的統(tǒng)計(jì)特性,對(duì)壓縮比影響相對(duì)較小,但由于4X4塊內(nèi)非零系數(shù)數(shù)量很少,因此也更容易使用FBA攻擊來(lái)進(jìn)行解密。另外,中國(guó)專利200310114727.4加密和壓縮多媒體數(shù)據(jù)的方法與設(shè)備,其主要技術(shù)內(nèi)容是在DCT變換后熵編碼之前加密DC和AC系數(shù),屬于變換域加密方法。該方法對(duì)所有系數(shù)進(jìn)行加密,雖然安全性很高,但同時(shí)也對(duì)壓縮比影響非常大,即使每個(gè)系數(shù)只加密2位,其壓縮比影響將超過(guò)l倍。EP1033880"DigitalImageScramblingforImageCodingSystems",其主要技術(shù)內(nèi)容是對(duì)DCT系數(shù)的符號(hào)位、尺度和運(yùn)動(dòng)矢量符號(hào)位分別進(jìn)行隨機(jī)置亂。其中,DCT系數(shù)和運(yùn)動(dòng)矢量的符號(hào)位置亂方法相同。在置亂DCT系數(shù)的尺度時(shí),采取對(duì)各個(gè)編碼塊中具有相同編號(hào)的子帶內(nèi)系數(shù)集中進(jìn)行置亂。缺點(diǎn)是對(duì)基于塊編碼的視頻編碼結(jié)構(gòu)(如H.264,MPEG-4等),其實(shí)時(shí)性影響很大,難以進(jìn)行實(shí)時(shí)編碼。
發(fā)明內(nèi)容本發(fā)明提供了H.264中基于變換域的DCT系數(shù)分層置亂方法,提高了H.264標(biāo)準(zhǔn)中視頻的加密性。本發(fā)明的技術(shù)方案如下H.264中基于變換域的DCT系數(shù)分層置亂方法,其特征在于包括以下內(nèi)容-在H.264編碼時(shí),選擇將一幀圖像分成m(m^l)個(gè)Slice,每個(gè)Slice包含了n(n》l)個(gè)宏塊。具體地,每個(gè)宏塊又以4X4為基本單位分成16個(gè)子塊Z^.。,Z^,i,…,Zm,^,每個(gè)子塊包含16個(gè)DCT系數(shù),即Zm.n,i={Cm,n,i,。,Cm.^,…,C—,15}(m禮n》1,0《i《15);將同一宏塊中每個(gè)子塊Zm,n.i(m》l,n》l,0《i《15)包含的二維系數(shù)矩陣映射成一維系數(shù)矩陣,映射函數(shù)為Zigzag排序;同一宏塊的16個(gè)子塊全部映射后,可得到對(duì)應(yīng)的16個(gè)一維系數(shù)矩陣,再將這些系數(shù)矩陣組合成一個(gè)二維16X16系數(shù)矩陣;將此二維16X16系數(shù)矩陣按系數(shù)能量Zigzag排序,分成16層Layer0,Layer1,…,Layer15,構(gòu)成DCT系數(shù)分層模型,其中Layeri={Cm,"。,Cm,M.!,…,C^,i.J(m》l,n》l,0《i《15);在DCT系數(shù)分層模型中,LayerO為直流DC系數(shù)層,其中C^i.。代表同一宏塊中每個(gè)子塊Z叭i(m》1,n》l,0《i《15)的直流(DC)系數(shù);其余Layeri(1《i《15)為交流AC系數(shù)層,每個(gè)交流AC系數(shù)層中包含有16個(gè)交流AC系數(shù);在對(duì)圖像加密時(shí),可以每層分配一個(gè)密鑰,也可以根據(jù)需要若干層共用一個(gè)密鑰,逐層置亂。所述的可以每層分配一個(gè)密鑰,也可以根據(jù)需要若干層共用一個(gè)密鑰是指,直流DC系數(shù)層和交流AC系數(shù)層可以每層分配一個(gè)密鑰,也可以根據(jù)需要直流DC系數(shù)層和若干個(gè)交流AC系數(shù)層共用一個(gè)密鑰,或者直流DC系數(shù)層使用一個(gè)密鑰,若干個(gè)交流AC系數(shù)層共用一個(gè)密鑰。本發(fā)明性能分析(1)、安全性分析本發(fā)明通過(guò)構(gòu)建DCT系數(shù)分層模型,將每層系數(shù)分別進(jìn)行隨機(jī)置亂,屬塊間置亂算法。以下將主要分析DCLSA算法在窮舉攻擊、FBA攻擊和塊間相關(guān)性攻擊時(shí)的安全性。與B—Shuffling和C_Scrambling算法相比較,DCLSA算法對(duì)FBA攻擊和塊間相關(guān)性攻擊具有較高的安全性,如表1所示。這是由于算法采用了分層置亂思想,將每幀所有Slice包含的宏塊中每個(gè)4X4塊能量相當(dāng)?shù)腄CT系數(shù)進(jìn)行了隨機(jī)置亂,因而(1)置亂過(guò)程幾乎不影響置亂后塊內(nèi)系數(shù)能量大小的Zigzag排序,可以有效地防止FAB攻擊;(2)置亂過(guò)程改變了每個(gè)4X4塊內(nèi)信息,這就保證了DCLSA算法對(duì)塊間相關(guān)性攻擊的安全性。表1不同加密算法抗攻擊能力比較<table>tableseeoriginaldocumentpage6</column></row><table>DCLSA算法還具有較大的明文搜索空間。以一個(gè)宏塊為例,B_Shuffling算法的明文搜索空間為M產(chǎn)16!/n!,其中n為宏塊中全零塊和相似塊的數(shù)量;C—Scrambling算法的實(shí)際搜索空間為M2=(5!)t6。本發(fā)明DCLSA算法的明文搜索空間非常大,以分別置亂同一宏塊中前5層系數(shù)為例,另考慮到每層系數(shù)能量相當(dāng),假設(shè)每層系數(shù)有l(wèi)/3相等,則一個(gè)宏塊的明文搜索空間為M^(16!/5!)5。因此,這三種算法的明文搜索空間滿足關(guān)系M,〈M2〈M3。即DCLSA算法的明文搜索空間最大,安全性最高。另外,算法的實(shí)際窮舉空間應(yīng)為min(l明文搜索空間l,|密鑰空間|},其中I,l為集合的勢(shì)。因?yàn)镈CLSA算法可以采取一層或若干層共用一個(gè)密鑰,所以其密鑰空間遠(yuǎn)小于明文搜索空間。以352X288視頻序列為例,每個(gè)圖組使用的密鑰流長(zhǎng)度為352X288Xj/(16X16):396Xj位,其中j為密鑰數(shù),因此采用窮舉攻擊來(lái)進(jìn)行解密是很困難的。又由于密鑰序列在每個(gè)圖組的實(shí)時(shí)變化,算法還可以防止已知明文攻擊。(2)、信噪比與壓縮比分析從信噪比的影響來(lái)看,DCLSA算法改變了相鄰塊系數(shù)的統(tǒng)計(jì)特性,對(duì)信噪比有些許影響,而且這種影響是隨機(jī)的,即可能優(yōu)化信噪比,也可能降低信噪比,如表2所示。與塊間置亂算法B—Shuffling相比較,DCLSA算法可以獲得更優(yōu)的信噪比。表2加密前后信噪比和壓縮比比較(測(cè)試條件JM82,100幀,ilnterval=9,blnterval=l)視頻序列信噪比(dB)壓縮比<table>tableseeoriginaldocumentpage7</column></row><table>從壓縮比的影響來(lái)看,C_Scrambling算法只是破壞了塊內(nèi)非零系數(shù)的統(tǒng)計(jì)特性,與以往的塊內(nèi)系數(shù)置亂和分段置亂算法相比較,可獲得較高的壓縮比;B_Shuffling算法雖然沒(méi)改變塊內(nèi)系數(shù)的統(tǒng)計(jì)特性,但系數(shù)位置出現(xiàn)了巨大變動(dòng),對(duì)壓縮比也有一定的影響,如表2所示。通過(guò)比較,DCLSA算法對(duì)壓縮比影響最小,這是由于分層置亂幾乎不影響塊內(nèi)系數(shù)能量大小的Zigzag排序,而且系數(shù)位置的變動(dòng)相對(duì)較小。圖l為Zi(0《i《15)系數(shù)矩陣映射。圖2為DCT系數(shù)分層模型。圖3通用型分層置亂算法圖4逼近攻擊(去色度信息)。(a)設(shè)置所有DC系數(shù)為O(b)設(shè)置所有AC系數(shù)為O圖5為密鑰分發(fā)與更新。圖6分層置亂的試驗(yàn)效果圖。具體實(shí)施方式本發(fā)明利用H.264中4X4DCT變換的特點(diǎn),通過(guò)構(gòu)建DCT系數(shù)分層模型,給出了一種新的DCLSA算法。H.264中基于變換域的DCT系數(shù)分層置亂方法I、DCT系數(shù)分層模型在模型建立之前,在化264編碼時(shí),首先選擇將一幀圖像分成m(m》1)個(gè)Slice,每個(gè)Slice包含了n(n^l)個(gè)宏塊。具體地,每個(gè)宏塊又以4X4為基本單位分成16個(gè)子塊Zm,n,。,Z^"…,Zm,,15,每個(gè)子塊包含16個(gè)DCT系數(shù),即ZCm,,u,...,Cra,n,uJ(m》l,n》l,0《i《15)。St印l:將同一宏塊中每個(gè)4X4子塊Z^.i(m^1,n》l,0《i《15)包含的二維系數(shù)矩陣映射成一維系數(shù)矩陣,映射函數(shù)為Zigzag排序,如圖1所示。St印2:—個(gè)宏塊按St印1映射16次后,可得到對(duì)應(yīng)的16個(gè)一維系數(shù)矩陣,再將這些系數(shù)矩陣組合成一個(gè)二維16X16系數(shù)矩陣,如圖2所示。St印3:將此二維系數(shù)矩陣按行順序(即按系數(shù)能量Zigzag排序)分成16層(Layer0,Layer1,…,Layer15),建立圖2的分層模型,其中Layeri={C屮.i,o,Cni山…'C一,i.J(m》l,n》l,0《i《15)。2、DCLSA算法實(shí)現(xiàn)從系數(shù)矩陣映射過(guò)程可以看出,",M,。代表宏塊中Zm^(m》1,n》l,0《i《15)塊的直流(DC)系數(shù),其余為交流(AC)系數(shù)。即Layer0包含了宏塊中16個(gè)4X4子塊的直流DC系數(shù),將其定義為直流DC系數(shù)層;Layeri(l《i《15)包含了宏塊中16個(gè)能量相當(dāng)?shù)慕涣鰽C系數(shù),將其定義為交流AC系數(shù)層i(l《i《15)。圖3是一通用型分層置亂算法,可以根據(jù)安全性要求選擇其中的一層或多層系數(shù)分別進(jìn)行隨機(jī)置亂。值得一提的是,若僅加密DC系數(shù)層或僅加密AC系數(shù)層,則無(wú)法防止逼近攻擊,如圖4所示,甚至可以使用模式識(shí)別技術(shù)近似恢復(fù)原有視頻圖像,因而本發(fā)明對(duì)DC系數(shù)層和AC系數(shù)層都進(jìn)行置亂。同時(shí)考慮到每個(gè)4X4子塊右下角系數(shù)經(jīng)量化后很多為零值,假設(shè)非零系數(shù)占總系數(shù)的1/3,則圖2中Layer4之后絕大部分系數(shù)均為零,所以本發(fā)明在試驗(yàn)中只對(duì)前5層(Layer0,Layer1,…,Layer4)系數(shù)分別進(jìn)行了隨機(jī)置亂,置亂層次越多,安全性越高。3、密鑰生成與分配如圖5所示,密鑰分發(fā)以幀為基本單位,每個(gè)密鑰序列的更新單位為圖組。為了節(jié)省密鑰開銷和減小計(jì)算資源消耗,在試驗(yàn)中采用密鑰公甩方法。若圖像大小為HXW,則密鑰序列的長(zhǎng)度為HXWXj/(16X16)。每幀開始加密時(shí),密鑰序列指針復(fù)位,逐層置亂,直到該幀結(jié)束。對(duì)于多用戶共享系統(tǒng)中新用戶開始接入系統(tǒng)時(shí)的密鑰同步,本發(fā)明在H.264中的序列參數(shù)集和圖像參數(shù)集之間填充經(jīng)加密后的32位二進(jìn)制序列p曲…P3,。雖然增加了些許碼長(zhǎng),但對(duì)一個(gè)圖組來(lái)說(shuō)是忽略不計(jì)的。又因?yàn)閮煞N參數(shù)集所在的NALU(網(wǎng)絡(luò)適配層單元)起始碼相同,因此需要保證填充序列p,P2…W內(nèi)部不出現(xiàn)與起始碼相同的二進(jìn)制串,這樣就不會(huì)引起解碼出錯(cuò)。新用戶接入系統(tǒng)時(shí),首先從碼流中解析出填充序列,并使用會(huì)話密鑰對(duì)其解密,然后利用該解密序列快速計(jì)算出當(dāng)前圖組密鑰序列,最終實(shí)現(xiàn)密鑰重同步。該方法的優(yōu)點(diǎn)在于當(dāng)網(wǎng)絡(luò)傳輸中出現(xiàn)丟包、丟幀等情況時(shí),通過(guò)每幀開始加密時(shí)將密鑰序列指針復(fù)位,不會(huì)影響下一幀的正常解密;在碼流中插入填充信息,不僅可實(shí)現(xiàn)密鑰重同步,而且兼容標(biāo)準(zhǔn)碼流;密鑰存儲(chǔ)空間小,如HXW圖像的密鑰存儲(chǔ)數(shù)量為HXWXj〃16X16)。4、實(shí)驗(yàn)結(jié)果采用標(biāo)準(zhǔn)的Mobile(352X288,去色度信息)序列進(jìn)行測(cè)試,加密后的圖像如圖6所示。從加密效果可以看出,當(dāng)僅對(duì)DC系數(shù)層(LayerO)進(jìn)行置亂時(shí),圖像視覺(jué)安全性較差;隨著置亂層次的增加,圖像變得越來(lái)越混亂。直至加密前五層后,圖像基本難以辨別,而且其視覺(jué)效果與置亂所有層的安全性相當(dāng),這是由于第五層之后的系數(shù)絕大部分為零值。因此為了節(jié)省計(jì)算資源,我們?cè)诒驹囼?yàn)中對(duì)前5層系數(shù)進(jìn)行了隨機(jī)置亂,同時(shí)也可根據(jù)安全性要求選擇不同層系數(shù)進(jìn)行置亂,實(shí)現(xiàn)加密編碼。權(quán)利要求1、H.264中基于變換域的DCT系數(shù)分層置亂方法,其特征在于包括以下內(nèi)容-在H.264編碼時(shí),選擇將一幀圖像分成m(m^1)個(gè)Slice,每個(gè)Slice包含了n(n》l)個(gè)宏塊,具體地,每個(gè)宏塊又以4X4為基本單位分成16個(gè)子塊Z^,。,Z……,Z^,每個(gè)子塊包含16個(gè)DCT系數(shù),即Z^i二K^,i,。,C^i,,,…,C將同一宏塊中每個(gè)子塊Zm.n.i(m》l,n》l,0《i《15)包含的二維系數(shù)矩陣映射成一維系數(shù)矩陣,映射函數(shù)為Zigzag排序;同一宏塊的16個(gè)子塊全部映射后,可得到對(duì)應(yīng)的16個(gè)一維系數(shù)矩陣,再將這些系數(shù)矩陣組合成一個(gè)二維16X16系數(shù)矩陣;將此二維16X16系數(shù)矩陣按系數(shù)能量Zigzag排序,分成16層Layer0,Layer1,…,Layer15,構(gòu)成DCT系數(shù)分層模型,其中Layeri={C….0,C…山...,Cm,,U5}(m》l,n》l,0《i《15);在DCT系數(shù)分層模型中,LayerO為直流DC系數(shù)層,其中Cm,M.。代表同一宏塊中每個(gè)子塊Z^.i(m》1,n》l,0《i《15)的直流(DC)系數(shù);其余Layeri(1《i《15)為交流AC系數(shù)層,每個(gè)交流AC系數(shù)層中包含有16個(gè)交流AC系數(shù);在對(duì)圖像加密時(shí),可以每層分配一個(gè)密鑰,也可以根據(jù)需要若干層共用一個(gè)密鑰,逐層置亂。全文摘要本發(fā)明公開了H.264中基于變換域的DCT系數(shù)分層置亂方法,是在H.264編碼時(shí),將一幀圖像分成m(m≥1)個(gè)Slice,每個(gè)Slice包含了n(n≥1)個(gè)宏塊,每個(gè)宏塊又以4×4為基本單位分成16個(gè)子塊Z<sub>m,n,0</sub>,Z<sub>m,n,1</sub>,…,Z<sub>m,n,5</sub>,每個(gè)子塊包含16個(gè)DCT系數(shù),即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);建立與宏塊相對(duì)應(yīng)的DCT系數(shù)分層模型,分成直流DC系數(shù)層,和其余15個(gè)交流AC系數(shù)層;在對(duì)圖像加密時(shí),可以每層分配一個(gè)密鑰,也可以根據(jù)需要若干層共用一個(gè)密鑰,逐層置亂。本發(fā)明安全性高。文檔編號(hào)H04N7/26GK101146224SQ20071013204公開日2008年3月19日申請(qǐng)日期2007年9月20日優(yōu)先權(quán)日2007年9月20日發(fā)明者包先雨,吳從中,娜夏,尤小泉,援李,李小紅,蔣建國(guó),曙詹,齊美彬申請(qǐng)人:合肥工業(yè)大學(xué)