(天津大學(xué) 電子信息工程學(xué)院 天津 300072)
摘 要:為應(yīng)對日益嚴重的盜版問題,提出了一種針對AVS標準的視頻信息加密算法。通過加密運動矢量,使得視頻圖像重建時無法找到匹配的參考塊,并通過誤差擴散,引起視頻圖像錯亂,從而達到對視頻信息加密的目的。加密算法不改變碼流結(jié)構(gòu),因此,接收端未經(jīng)解密的視頻碼流可以由標準解碼器正常解碼,但是解碼重建的視頻圖像質(zhì)量明顯下降,而經(jīng)解密的視頻重建圖像可完全恢復(fù)到加密前的水平。實驗結(jié)果表明,提出的加密方案具有良好的加密效果,其算法復(fù)雜度低,對編碼效率影響也很小,基本上不影響視頻的主客觀質(zhì)量。
關(guān)鍵詞:音/視頻碼流標準;視頻加密;運動矢量;指數(shù)哥倫布碼
中圖分類號:TP391;TP309.7文獻標志碼:A
文章編號:1001-3695(2009)05-1908-03
Digital video encryption in AVS compressed stream for realtime transmission
SONG Xingguang LIU Yu SU Yuting
(School of Electronic Information Engineering Tianjin University Tianjin300072 China)
Abstract:Given the increasingly serious problem on copyright piracy,presented a video encryption method for the AVS standard. By encrypting the motion vectors,it was impossible to achieve the corresponding reference blocks in reconstruction. Furthermore,utilized error propagation to confuse the images.Thus video data could be encrypted efficiently.Such an algorithm brings no change to the structure of the data stream so it could be decoded by a normal decoder without decrypting,but decreased the quality of the reconstructed image obviously.However the reconstructed image by decoding with decrypting was almost the same as the original one.Simulating results show that the presented encrypting method has low complexity trivial impact on coding efficiency and almost no degrading on the subjective and objective video quality.
Key words:audio video coding standard(AVS); video encryption; motion vector; ExpGolomb code
0 引言
隨著多媒體技術(shù)和計算機網(wǎng)絡(luò)的迅猛發(fā)展,使得數(shù)字信息(圖像、文本、音/視頻)等多媒體信息的獲取與傳播變得越來越容易,尤其是視頻點播、視頻會議和視頻監(jiān)控系統(tǒng)等更是得到了日趨廣泛應(yīng)用,這就對數(shù)字產(chǎn)品的版權(quán)保護和特殊視頻的安全通信提出了相應(yīng)的要求。另一方面,版權(quán)保護以及傳輸帶寬限制,視頻信息往往以壓縮的形式存儲和傳播,因此,需要結(jié)合具體的視頻壓縮編碼標準來設(shè)計視頻信息安全方案。
早期的安全方案主要是訪問權(quán)限控制,視頻信息本身沒有被加密,在傳輸過程中很容易被竊取。近年來,視頻加密算法得到了廣泛研究,并且已經(jīng)開始應(yīng)用于視頻信息的版權(quán)保護和安全傳輸?shù)阮I(lǐng)域。根據(jù)不同層次的安全等級和應(yīng)用場景,視頻加密算法應(yīng)當(dāng)在復(fù)雜度、安全性、編碼效率和碼流結(jié)構(gòu)一致性之間進行適當(dāng)?shù)恼壑小τ谲娛隆⒄蔚让舾幸曨l信息的保護,要保證視頻信息完全不可見,算法應(yīng)具有較高的安全性,這樣需要加密的數(shù)據(jù)量就較大,算法復(fù)雜度就比較高,實時性必然就會下降;而對于視頻點播等多媒體商業(yè)領(lǐng)域,視頻信息的價值相對較低,破解的代價很可能超過直接購買正版產(chǎn)品的價值,而且在某些場景中需要視頻信息具有一定的可視性以吸引消費者購買正版產(chǎn)品,因此,這類算法應(yīng)當(dāng)在保證適當(dāng)安全性的前提下,提高實時性,并且盡量減少對重建圖像質(zhì)量的影響。
1 視頻選擇性加密技術(shù)
視頻數(shù)據(jù)編碼結(jié)構(gòu)特殊、信息量大,采用傳統(tǒng)加密技術(shù)(AES、DES等)對視頻數(shù)據(jù)進行加密復(fù)雜度高、運算量大,很難滿足視頻數(shù)據(jù)實時傳輸播放的要求,而且傳統(tǒng)加密方法會改變視頻數(shù)據(jù)格式,這就要求對視頻信息采用特殊的加密算法。選擇性地對視頻圖像重建具有關(guān)鍵作用的部分進行加密,從而通過加密盡量少的數(shù)據(jù),實現(xiàn)足夠強度的加密效果。
選擇性加密算法通過對視頻數(shù)據(jù)格式的分析,選擇加密視頻圖像重建中的關(guān)鍵數(shù)據(jù),如宏塊頭部信息[1]、DCT系數(shù)[2~4]、預(yù)測模式[5,6]、運動矢量[7]、量化參數(shù)和環(huán)路濾波系數(shù)[8]等信息。這些算法根據(jù)安全需求選擇性地加密視頻數(shù)據(jù)中的關(guān)鍵信息,隨著安全需求的提高,需要加密的數(shù)據(jù)量就越大,計算量也就越大,而且這類算法的加密過程處在熵編碼之前,這樣必然會影響熵編碼的效率。基于熵編碼的加密方案可以很好地克服這些問題,具有代表性的有Kankanhalli等人[9]提出的置亂變長編碼Huffman表的算法;Lian等人[10]提出的基于CAVLC(基于上下文的自適應(yīng)變長編碼)的加密方案、包等;文獻[11,12]提出的基于上下文的自適應(yīng)變長編碼(CAVLC)和基于上下文的自適應(yīng)二進制算術(shù)編碼標準(CABAC)的熵編碼加密方案。
運動矢量是視頻圖像重建的關(guān)鍵信息,Bhargava[13]已經(jīng)在實驗中證明,加密運動矢量符號位視頻質(zhì)量最差,加密效果最好,安全級別最高。但是Liu等人[7]已經(jīng)證明出運動矢量符號位加密算法無法防止MVR(motion vector restoration)攻擊,不能滿足視頻高安全性的要求。因此,本文針對AVS視頻編碼標準,提出了一種適于實時傳輸?shù)膲嚎s域視頻信息加密算法,不僅加密運動矢量的符號,而且對其幅值進行了加密,使得視頻重建時指向錯誤的非匹配宏塊,引起視頻錯亂,從而加密視頻數(shù)據(jù)。
2 加密方案
AVS視頻信息加密方案如圖1所示。把加密過程取在AVS熵編碼之后,這樣不會影響現(xiàn)有視頻壓縮編碼系統(tǒng)的正常運作,可以最大限度地利用現(xiàn)有硬件資源。AVS編碼標準中,有符號整數(shù)語法元素,包括運動矢量、量化參數(shù)增量等以指數(shù)哥倫布碼的形式編碼傳輸。因此,首先將壓縮碼流中包含運動矢量的哥倫布碼編碼數(shù)據(jù)分離出來,并經(jīng)過解碼重建運動矢量,對運動矢量進行加密,而后將加密的運動矢量再編碼,并與其他碼流成分(如頭部信息、宏塊編碼模式等)進行復(fù)合,重新形成視頻碼流。
解密過程與標準解碼過程相結(jié)合,取在P幀運動矢量差解碼之后,每當(dāng)從壓縮碼流中解碼得到P幀運動矢量差時,結(jié)合密鑰,對其進行解密,然后再進行后續(xù)的視頻解碼過程。
2.1 加密算法
本文加密算法沒有加密所有的運動矢量,而是只加密P幀中的運動矢量,這是因為B幀圖像的重建需要I幀和P幀,因此,如果P幀或I幀解碼錯誤,就算B幀解碼得到了正確的運動矢量和殘差,也會由于其參考的P幀或I幀圖像錯亂而得不到正確的圖像,而且本文所提出的加密算法主要應(yīng)用于視頻點播等多媒體商業(yè)領(lǐng)域,安全性要求較低,而且在某些場景中需要視頻信息具有一定的可視性以吸引消費者購買正版產(chǎn)品,因此,加密算法只需要加密P幀。
本文基于運動矢量差中兩個分量的奇偶性設(shè)計加密算法,對于碼流中每個來自P幀的運動矢量差(dx,dy),根據(jù)奇偶性可分為(奇,奇),(奇,偶),(偶,奇),(偶,偶)四種情況,在混沌密鑰流序列的引導(dǎo)下分別作如下加密處理。
1)如果為(奇,偶)或(偶,奇)
改變dx和dy的符號并根據(jù)混沌密鑰值隨機交換dx和dy的值。
2)如果為(奇,奇)
a)如果混沌密鑰值為1,則改變dx和dy的符號并交換dx與dy。
b)否則混沌密鑰值為0,則選擇dx和dy中絕對值大的分量(假設(shè)|dx|≥|dy|)。
如果k mod 2=0,dx=sign(dx)×(|dx|+k) (保持奇數(shù),下同)。
否則,k mod 2=1,dx=sign(dx)×(|dx|+k+|dy|)。
3)如果為(偶,偶)
a)如果混沌密鑰值為0,則改變dx和dy的符號并交換dx與dy。
b)否則混沌密鑰值為1,則選擇dx和dy中絕對值大的分量(假設(shè)|dx|≥|dy|)。
如果k mod 2=0,dx=sign(dx)×(|dx|+k)(保持偶數(shù),下同)
否則,k mod 2=1,dx=sign(dx)×(|dx|+2×k)。
上述加密算法中,k為正整數(shù)的加密調(diào)節(jié)因子,用來調(diào)節(jié)加密過程中運動矢量殘差的修改幅度,它同時影響著加密后圖像質(zhì)量的下降程度和碼率的變化。為使加密后圖像的質(zhì)量大幅度下降,同時保證加密引起的碼率變化不大,k取值可通過實驗折中選取。此外,本文加密算法的最小加密同步單位為一個圖組,每個圖組的加密過程都是在獨立的混沌密鑰流序列的引導(dǎo)下進行,這樣可以使每個圖組獨立解密而互不影響,尤其是在網(wǎng)絡(luò)傳輸加密視頻的過程中,出現(xiàn)了丟幀、丟包時,只會影響當(dāng)前圖組的正常解密,而不會影響到下一個圖組的正常解密。
2.2 解密算法
解密算法為加密算法的逆過程,其流程如下:
對于解碼得到的每個來自P幀的運動矢量殘差
1)如果為(奇,偶)或(偶,奇)
改變dx和dy的符號并根據(jù)混沌密鑰值隨機交換dx和dy的值。
2)如果為(奇,奇)
a)如果混沌密鑰值為1,則改變dx和dy的符號并交換dx與dy。
b)否則混沌密鑰值為0,則選擇dx和dy中絕對值大的分量(假設(shè)|dx|≥|dy| )。
如果k mod 2=0,dx=sign(dx)×(|dx|-k)
否則k mod 2=1,dx=sign(dx)×(|dx|-k-|dy|)。
3)如果為(偶,偶)
a)如果混沌密鑰值為0,則改變dx和dy的符號并交換dx與dy。
b)否則混沌密鑰值為1,則選擇dx和dy中絕對值大的分量(假設(shè)|dx|≥|dy| )。
如果k mod 2=0,dx=sign(dx)×(|dx|-k)。
否則k mod 2=1,dx=sign(dx)×(|dx|-2×k)。
2.3 密鑰的產(chǎn)生和分發(fā)
混沌密鑰流序列由基于Logistic映射的混沌序列發(fā)生器產(chǎn)生。系統(tǒng)初始化時,加密方給定混沌序列發(fā)生器的初值,得到第一個圖組的混沌密鑰流序列,下一個圖組的混沌密鑰流序列由初值重新產(chǎn)生。此外,k為加密調(diào)節(jié)因子,它的取值影響著加密強度和加密過程給碼率帶來的變化,作為本文算法的第二層密鑰,它的取值通過實驗選取。
結(jié)合RSA公鑰密碼算法,加密方利用合法用戶的公鑰和RSA加密算法來加密混沌序列發(fā)生器的初值和k,接著將該公鑰加密后的密文發(fā)送給合法用戶,用戶只需要利用自己的私鑰就可以解密密文得到混沌序列發(fā)生器的初值和k,從而可以根據(jù)解密算法解密經(jīng)過加密的視頻圖像。
3 實驗結(jié)果
本算法已在AVS的參考軟件RM52i上進行了仿真,仿真硬件環(huán)境為Intel Pentium D CPU 2.8 GHz,1 GB內(nèi)存;軟件環(huán)境為Windows XP SP2,Visual C++ 6.0。分別測試標準測試序列了foreman(CIF) 199幀、flower(CIF)199幀、vectracolor(CIF)139幀、football(CIF)87幀、stefan(CIF)87幀,實驗中加密強度調(diào)節(jié)因子k取40,視頻幀格式為IBPBP,I幀之間的距離為15幀。
3.1 安全性
分別對測試序列按照本文加密算法加密后進行解碼播放,可發(fā)現(xiàn)整個視頻圖像已經(jīng)發(fā)生錯亂,無法觀賞,如圖2所示,(a)為接收端解密后的復(fù)原圖像;(b)為接收端未解密的加密圖像。可見,本文提出的加密方案安全性較高。
本文算法采用了密鑰流序列引導(dǎo)下的視頻加密方案。實驗過程中,一個GOP包含14個P幀,一個CIF格式的P幀包含396個宏塊,每個宏塊又可以劃分為16×16、16×8、8×16或8×8的塊,因此混沌密鑰流序列長度至少在5×103以上,在這種情況下采取窮舉攻擊是不現(xiàn)實的。
3.2 壓縮比
壓縮比變化率r定義為
r=|rcompress-rcompress_encrypt|/rcompress×100%(1)
其中:rcompress表示僅僅進行壓縮操作后的視頻數(shù)據(jù)量;rcompress_encrypt表示進行壓縮和加密操作后的視頻數(shù)據(jù)量。因此,r反映了加密過程導(dǎo)致的壓縮比改變量。由于本文加密算法只選擇P幀的運動矢量進行加密,并且只有部分加密操作會改變指數(shù)哥倫布碼碼長,故加密過程導(dǎo)致的壓縮比的改變很小,從而反映加密過程對碼率的影響很小。本文加密算法的壓縮比變化率如表1所示。
3.3 計算復(fù)雜度和數(shù)據(jù)可操作性
現(xiàn)有視頻加密算法普遍存在加密復(fù)雜度高的問題,從而影響了視頻加密傳輸?shù)膶崟r性。本文加密算法直接面對碼流,加密過程只需要對P幀運動矢量殘差進行熵解碼、線性運算、熵編碼的操作,涉及的數(shù)據(jù)量少,計算復(fù)雜度低。
由于本文加密算法直接面向碼流,保留了編碼過程中的全部格式信息,解碼端在不解密的條件下可以進行正常的解碼。另外,由于加密采用的流密碼,并且最小加密同步單位為圖組,使得因網(wǎng)絡(luò)傳輸密文造成的誤碼和丟幀所帶來的錯誤不會大面積擴散,進一步提高了算法的實用性。
4 結(jié)束語
本文提出了一種有效地針對AVS視頻碼流的加密算法,算法通過加密運動矢量,使得視頻圖像重建時無法找到匹配的參考塊,引起視頻圖像錯亂,從而達到對視頻信息加密的目的。算法不改變視頻碼流結(jié)構(gòu),加密后的視頻碼流未經(jīng)解密仍可由標準解碼器解碼,但解碼重建的視頻圖像主觀質(zhì)量嚴重下降,已不具有可視性,而在對碼流中的運動矢量差解密之后,解碼得到的視頻圖像質(zhì)量可完全恢復(fù)到加密前的水平。此外,該算法簡單有效,計算復(fù)雜度低,加密數(shù)據(jù)量小,對碼率的影響很小,適合于實時加密傳輸。
參考文獻:
[1]ADNAN A,GHASSAN A R,SAUD A S.Improved selective encryption techniques for security transmission of MPEG video bitstreams[C]//Proc of the 6th IEEE International Conference on Image Processing. Kobe Japan:[s.n.],1999:256260.
[2]TANG L.Methods for encrypting and decrypting MPEG video data efficiently[C]//Proc of the 4th ACM International Multimedia Conference.Boston,USA:[s.n.],1996:219230.
[3]TOSUM A S,F(xiàn)ENG W C.Efficient multilayer coding and encryption of MPEG video streams[C]// Proc of IEEE International Conference on Multimedia and Exposition.New York City USA:[s.n.],2000:119122.
[4]SHI Changgui,BHARGAVA B.A fast MPEG video encryption algorithm[C]//Proc of the 6th ACM International Multimedia Conference.Bristol,UK:[s.n.],1998:8188.
[5]AHN J,SHIM H J.Digital video scrambling method using intra prediction mode[C]//Proc of Pacific Rim Conference on Multimedia.Tokyo Japan:[s.n.],2004:386393.
[6]LIAN S G,SUN J S,LIU G J.Efficient video encryption scheme based on advanced video coding[J].Multimedia Tools Appl Springer Science,2008,38(1):7589.
[7]LIU Z LI X. Motion vector encryption in multimedia streaming[C]//Proc of the 10th International Multimedia Modeling Conference. Brisbane Australia.[s.n.],2004:6471.
[8]SPINSANTE S,CHIARALUCE F,GAMBI E.Masking video encryption by partial encryption of H.264/AVC coding parameters[C]//Proc of the 13th European Signal Processing Conference.Antalya,Turkey:[s.n.],2005:48.
[9]KANKANHALLI M S,GUAN T T.Compressed domain scramble/descrambler for digital video[J].IEEE Trans on Consumer Electronics,2002,48(2):356365.
[10]LIAN S G,LIU Z,REN Z.Secure advanced video coding based on selective encryption algorithms[J]. IEEE Trans on Consumer Electronics,2006,52(2):621629.
[11]包先雨,蔣建國.H.264/AVC標準中基于CABAC的數(shù)字視頻加密研究[J].電子學(xué)報,2007,28(6):10011006.
[12] 包先雨,蔣建國,李援. 一種適合于H.264實時視頻傳輸?shù)男滦图用芊桨竅J].電子學(xué)報,2006,34(11):10031006.
[13]BHARGAVA B.MPEG video encryptionalgorithms[J].Multimedia Tools and Applications,2004,24(1):5779.