詹志飛
(重慶師范大學(xué)物理學(xué)與信息技術(shù)學(xué)院,重慶 400047)
H.264是由ITU-T和ISO/IEC聯(lián)合制定的新一代視頻編碼標準.相對于以前的標準H.263和MPEG4,H.264具有更高的壓縮效率.圖像重建質(zhì)量相同時,H.264能夠節(jié)省30%~50%的碼率.其原因為H.264在預(yù)測、變換、量化以及熵編碼等方面有了重要改進.主要表現(xiàn)在:
1)H.264引入了幀內(nèi)預(yù)測的方法,利用相鄰宏塊的相關(guān)性對待編碼的宏塊進行預(yù)測,對預(yù)測殘差進行變換編碼,以消除空間冗余.
2)在運動預(yù)測與運動補償上,采用了可變塊大小、多幀運動估計、亞像素精度的運動估計以及去塊效應(yīng)濾波等技術(shù)來降低時間冗余度.
4)熵編碼方面,H.264建議了兩種方案,即CABAC和CAVLC.其中CAVLC是基于符號概率的統(tǒng)計編碼方法,各類語法元素使用統(tǒng)一的碼表,并根據(jù)已編碼語法元素的情況動態(tài)調(diào)整編碼中使用的碼表,以求達到更高的編碼效率;CABAC是基于區(qū)間劃分的算術(shù)編碼方法,編碼效率很高,但缺點是算法相對復(fù)雜,編解碼速度較慢.
新標準H.264優(yōu)異的壓縮性能必將使其在多媒體應(yīng)用的各個領(lǐng)域發(fā)揮重要作用,如視頻點播、視頻監(jiān)控和視頻會議等.因而其安全加密技術(shù)正成為研究的熱點.
本文在分析和總結(jié)前人工作的基礎(chǔ)上,提出了一種魯棒的H.264加密方案.
人們對加密后的多媒體視頻數(shù)據(jù)不但要求安全性高,而且要求實時性好、不改變壓縮比以及支持直接碼率控制等.最近十年來,根據(jù)多媒體視頻內(nèi)容的保密需求,出現(xiàn)了許多相應(yīng)的視頻加密算法.
為了減少加解密的處理時間,文獻[1]提出了一種僅針對I幀加密的視頻加密算法,并指出由于P幀和B幀以I幀作為參考幀,可以在一定程度上繼承I幀的安全性.這種算法相對于全加密將處理時間減少了80%~85%.但文獻[2]證明了其安全性較低,并對其作了一定的改進,即加密I幀和P/B幀中的所有I塊.這種策略雖只將處理時間減少到全加密所需要的65%~75%,但是提高了安全性.然而,文獻[2]也注意到播放加密后的碼流時泄露了重要的運行信息.為了克服此問題,文獻[3]提出了一種對I宏塊和預(yù)測宏塊頭信息選擇加密的算法,并給出了三種安全等級的改進.
如果直接置亂塊內(nèi) DCT系數(shù),將顯著地改變系數(shù)分析的統(tǒng)計特性,壓縮比降低明顯.文獻[4]提出將塊內(nèi)64個DCT系數(shù)按頻帶劃分為三段,然后根據(jù)不同的安全性要求選擇相應(yīng)的段置亂加密.但其壓縮比仍降低了15%~25%.[9]為了盡量不影響壓縮比,文獻[5]提出加密DCT系數(shù)符號位的方法,但文獻[8]指出加密所有系數(shù)符號位將使運算復(fù)雜度增加15%~20%.
文獻[6]利用H.264的幀內(nèi)塊編碼特性,提出了一種簡單有效的數(shù)字視頻置亂方法.該算法僅對 I幀中的4х4和16х16塊預(yù)測模式分別進行隨機置亂.只要修改幀內(nèi)預(yù)測模式,視頻序列就很容易被置亂.但是從算法性能分析和實驗結(jié)果可以看出,這種算法的安全性比較低,主要原因為:①僅對 I幀進行了置亂,雖然視頻變得模糊,但其運動信息還是清晰可見的;[2]②采用了定長偽隨機序列,難以抵抗已知明文攻擊,如果序列周期不夠長,攻擊者通過Friedman窮舉攻擊就能夠猜測出原始序列;③根據(jù)H.264標準和統(tǒng)計測試結(jié)果表明,當(dāng)QP = 30時,大約只有50%左右4х4塊的預(yù)測模式采用三位二進制編碼,即對于一幀GIF圖像如果全部采用4х4塊編碼,其窮舉空間為[352х288/(4х4)/2]3= 31794757632.
據(jù)野外鉆探成果顯示,該場地鉆探深度內(nèi)主要巖性為灰?guī)r。中風(fēng)化基巖巖體較完整,根據(jù)物探聲波測試報告,本場地中等風(fēng)化基巖完整性系數(shù)0.56~0.67,為較完整巖體。對各中風(fēng)化巖體基本質(zhì)量等級評價如下:灰?guī)r飽和單軸抗壓強度標準值53.24 MPa,屬較硬巖,巖體較完整,確定本場地灰?guī)r巖體基本質(zhì)量等級為III級。
根據(jù)以上算法的分析,針對H.264視頻流的具體特性,提出了一種加密方案(圖1).在幀內(nèi),沿用4х4塊預(yù)測模式置亂;在幀間,對具有相同數(shù)目運動矢量的預(yù)測塊進行了塊間置亂;對整數(shù)變換系數(shù),只對拖尾系數(shù)(±1)符號位進行加密;為了降低計算復(fù)雜度,對運動矢量采用選擇加密.所有置亂和加密過程都是由一個密鑰生成分布系統(tǒng)控制.
圖1 H.264視頻加密方案
文獻[6]中提出的幀內(nèi)預(yù)測模式置亂是簡單而且有效的,其安全性主要取決于其使用的偽隨機序列.由于定長偽隨機序列很難抵抗已知明文攻擊和窮舉攻擊.在此,對其作了改進:將定長偽隨機序列變成混沌序列生成器生成的隨機序列.對于4х4塊預(yù)測模式置亂過程如下:
預(yù)測模式new=預(yù)測模式old⊕3比特偽隨機序列其中⊕為異或運算.
這種方法簡單易實現(xiàn).由于預(yù)測模式new和預(yù)測模式old的長度相同,即運算前后的碼長相同,按上述方法置亂后沒有改變壓縮比;而且由于使用了混沌偽隨機序列,安全性較高.
H.264提供16х16、16х8、8х16和8х8四種宏塊劃分方式,還能將8х8宏塊進一步劃分成8 х4、4х8和4х4子宏塊.每個宏塊都有明確數(shù)目的運動矢量,因此,對于一對具有相同數(shù)目運動矢量的塊,如16х8塊和8х16塊,8х4塊和4х8塊,它們之間可以用來置亂.方法如下:
生成1比特偽隨機序列
將具有相同數(shù)目運動矢量的預(yù)測塊進行了置亂,實現(xiàn)簡單,沒有增加計算復(fù)雜度和改變壓縮比.
由于在4х4塊中,非零系數(shù)數(shù)目為0~16,拖尾系數(shù)(±1)數(shù)目為0~3.如果±1的個數(shù)大于3個,只有最后3個被視為拖尾系數(shù),其余均被視為普通的非零系數(shù).如果對所有非零系數(shù)都加密的話,顯然計算復(fù)雜度很大.在這里,只對拖尾系數(shù)的符號位進行加密.加密過程如下:
拖尾系數(shù)的符號位new=拖尾系數(shù)的符號位old⊕3比特偽隨機序列
文獻[8]指出,如果對所有DCT系數(shù)的符號位都加密,計算復(fù)雜度增加15%~20%.很難滿足實時性要求.這里只對 DCT系數(shù)中一類特殊的系數(shù)——拖尾系數(shù)(±1,4х4塊中最多3個)符號位進行了簡單的異或運算,幾乎沒有增加計算復(fù)雜度,顯然也不影響壓縮比.
文獻[7]指出,運動矢量數(shù)據(jù)占據(jù)了超過一半的視頻流帶寬,忽視它們的安全顯然不明智.文獻[7]還利用運動矢量具有聚集的特征,提出了一種視頻恢復(fù)算法,只需要運動矢量就可以恢復(fù)出低分辨率的運動對象等重要信息.可見,對運動矢量的加密顯得非常重要.運動矢量數(shù)據(jù)量很大,為了降低計算復(fù)雜度,對運動矢量采用選擇加密,加密過程如下:
計數(shù)器用來記錄已經(jīng)被預(yù)測的某種宏塊塊數(shù);間隔塊數(shù)為經(jīng)驗值,可以在實驗中選定,文獻[3]中指出其最佳值為3;N的值取3時加密效果最佳.這種方法既有效地加密了視頻流中重要的運動信息,同時很大程度地降低了計算復(fù)雜度,能夠滿足實時性要求.MV.x和MV.y前后長度相同,也沒有改變壓縮比.
采用了二維的超混沌系統(tǒng)進行加密,密鑰空間大,加解密速度快.用戶密鑰是用來生成二維混沌序列生成器的初始值.初始值一旦確定,就可以得到隨機性能很好的混沌序列.將此混沌序列量化成二進制序列,然后用于幀內(nèi)、幀間置亂和拖尾系數(shù)符號位加密以及運動矢量的選擇加密.
解密是加密的逆過程,如對運動矢量進行解密時,授權(quán)用戶擁有加密時同樣的密鑰,就可以生成同樣的密鑰序列.從序列中讀入加密時使用的同樣的N位隨機序列,進行異或操作,就可以重建原始圖像序列.解密過程如下:
該加密方案對整個視頻流進行了完全的加密.相對于文獻[3,5~7]中的加密算法,該方法具有更高的安全性.其采用了二維混沌序列生成器生成的流密碼對整個視頻流進行加密,算法的安全性較高.對于窮舉攻擊分析,入侵者如果想獲取用戶密鑰,必須破譯二維混沌系統(tǒng).如果混沌序列生成器的初始值長度為64位,則其窮舉空間為2128.因此,采用窮舉攻擊來進行解密是極為困難的.
該方案主要由簡單的異或運算和選擇加密所組成,計算復(fù)雜度相對來說是比較低的.幀間預(yù)測模式置亂只是簡單地對具有相同數(shù)目的運動矢量進行置亂,不增加計算復(fù)雜度.對數(shù)據(jù)量最大的運動矢量,采用選擇加密(每間隔兩個預(yù)測塊加密一次);對整數(shù)變換系數(shù),只對拖尾系數(shù)符號位進行加密.
從整個加密過程可以看出,該方案對壓縮比幾乎沒有影響.主要原因在于其加密過程都是在碼流存儲時作一些簡單的置亂或加密操作,沒有改變DCT系數(shù)的統(tǒng)計特性.
采用標準的視頻序列Foreman.cif和Mobile.cif進行測試,加密后的I幀、P幀和B幀圖像它們都不可辨別.可見,該方案對I、P和B幀都有很好的加密效果,安全性較高.
根據(jù)最新視頻編碼標準H.264視頻流的具體特性,在分析了現(xiàn)有的視頻加密算法,取其所長,提出了一種魯棒的H.264加密方案.該方法的特點是:
1)安全性.不僅對整個視頻都進行了加密,包括幀內(nèi)、幀間、運動矢量和整數(shù)變換系數(shù),還采用了二維混沌序列生成器,增加了流密碼算法的安全性.
2)實時性.整個加密過程都只采用了簡單的異或運算,并選擇加密了運動矢量和整數(shù)變換系數(shù)中的拖尾系數(shù),能夠滿足視頻流實時性要求.
3)壓縮比.相對于DCT系數(shù)置亂或DCT系數(shù)分段置亂方法,幾乎不影響壓縮比.
4)所有置亂和加密都不影響編碼過程,支持直接碼率控制;采用了流密碼加密,將碼流控制精度保持在位一級,誤碼彈性較好.
[1] G A Spanos, T B Maples. Security for Real-time MPEG Compressed Video in Distributed Multimedia Applications// Proc of the 15thAnnual International Conference on Computers and Communications. Scottsdale, USA, 1996:72-78.
[2] A M Alattar, G I A1-Regib. Evaluation of Selective Encryption Techniques for Secure Transmission of MPEG Video Bit-streams// Proc of the 1999 IEEE Symposium on Circuits and Systems. Orlando, USA, 1999:340-343.
[3] A M Alattar, G I A1-Regib, S A Semari. Improved Selective Encryption Techniques for Secure Transmission of MPEG Video Bit-Streams// Proc of the IEEE International Conference on Image Processing. Kobe, Japan, 1999:256-260
[4] A S Tosun, W C Feng. Efficient Multilayer Coding and Encryption of MPEG Video Streams// Proc of IEEE International Conference on Multimedia and Expo. New York, USA, 2000:119-122.
[5] C G Shi, B Bhargava. A fast MPEG Video Encryption Algorithm// Proc of the 6thACM International Multimedia Conference. Bristol, UK, 1998:81-88.
[6] J Ahn, H J Shim, B Jeon, et al. Digital Video Scrambling Method Using Intra Prediction Mode/// Proc of 2004 Pacific-Rim Conference on Multimedia. Springer-Verlag, 2004:386-393.
[7] Z Liu, X Li. Motion Vector Encryption in Multimedia Streaming// Proc of the 10thInternational Multimedia Modeling Conference. 2004:64-71.
[8] W Zeng, S Lei. Efficient frequency domain selective scrambling of digital video[J]. IEEE Transactions on Multimedia, 2003, 5(1):118-129.
[9]廉士國,王執(zhí)銓.基于熵編碼加密的MPEG視頻加密算法研究[J].小型微型計算機系統(tǒng),2004,25(12):2207-2210.