??? 摘??要: 幾種常用數(shù)字視頻信號(hào)加密技術(shù)的原理與方法,分析了這些加密方法的優(yōu)點(diǎn)和存在的不足,。提出了一種僅對(duì)視頻碼流中解碼和視頻圖像的重建起著重要作用的少部分?jǐn)?shù)據(jù)進(jìn)行高強(qiáng)度加密的方法,,這一方法可以取得對(duì)整個(gè)視頻碼流安全加密的效果。?
??? 關(guān)鍵詞: 數(shù)字視頻; 加密技術(shù); 嵌入式系統(tǒng)
?
??? 數(shù)字視頻在許多方面與靜止圖像有相同特性,例如數(shù)據(jù)量大,、結(jié)構(gòu)性強(qiáng)、各部分?jǐn)?shù)據(jù)的重要性不同等,,視頻的幀內(nèi)編碼與靜止圖像編碼類(lèi)似,。數(shù)字視頻是由數(shù)字圖像的時(shí)間序列構(gòu)成的,每一幅圖像稱(chēng)為一幀,。為了保證流暢的視覺(jué)效果,,視頻顯示的幀速率即圖像序列的播放速率,通常為每秒25~30幀,,視頻加密在一定時(shí)間內(nèi)必須處理大量數(shù)據(jù),,因此要求有很高的處理速度。當(dāng)前的視頻加密技術(shù)還很難同時(shí)滿(mǎn)足安全,、及時(shí)等加密要求,。?
1 視頻加密的原理和方法?
1.1 視頻加密的密碼學(xué)方法?
??? 最早的視頻信號(hào)加擾方法是模擬視頻加密技術(shù),但這種方法安全級(jí)別很低,。最早的高保密級(jí)視頻加密技術(shù)是對(duì)全部視頻數(shù)據(jù)流直接用密碼技術(shù)加密和解密,,故稱(chēng)為圖像和視頻加密的密碼學(xué)方法,也稱(chēng)之為自然加密方法,。國(guó)內(nèi)大部分文獻(xiàn)稱(chēng)之為傳統(tǒng)加密方法,。其原理如圖1所示。?
?
?
??? 由于密碼技術(shù)已有許多安全可靠的成熟算法,,以二維或多維數(shù)據(jù)表示的圖像和視頻在傳輸和存儲(chǔ)時(shí)都要映射成一維數(shù)據(jù),,若不考慮具體的數(shù)據(jù)特征,很適合直接應(yīng)用已有的成熟密碼技術(shù)加密,。其研究基本是基于純密碼科學(xué)技術(shù)的研究,,安全性評(píng)價(jià)取決于所用密碼加密技術(shù),。在當(dāng)前的大多數(shù)實(shí)用圖像和視頻加密系統(tǒng)中,圖像和視頻數(shù)據(jù)被等同為一維比特流而采用DES等算法加密,。也有一些新的密碼技術(shù)用于視頻加密,同時(shí)在性能上有了進(jìn)一步的改進(jìn),。?
??? 是由于圖像和視頻信號(hào)數(shù)據(jù)量很大,所以這種加密方法計(jì)算量非常大,,不僅浪費(fèi)資源,而且難以保證實(shí)時(shí)性,。由于許多圖像信號(hào)特別是視頻信號(hào)往往要求實(shí)時(shí)在線傳輸,,且大多數(shù)應(yīng)用都要求降低成本,從而限制了這種加密方法的應(yīng)用,。另外,,若標(biāo)志信息經(jīng)加密無(wú)法識(shí)別,則不能實(shí)現(xiàn)在線傳輸和檢索功能,。?
1.2選擇性加密方法?
??? 密碼學(xué)方法雖然安全,,但這種加密方法計(jì)算量非常大,往往難以實(shí)用,。為解決這一對(duì)矛盾,,人們研究了視頻的信源特征,把密碼原理與視頻技術(shù)結(jié)合起來(lái),,取得了一些研究成果,。有人提出一種針對(duì)圖像和視頻編碼的部分?jǐn)?shù)據(jù)加密思路。圖2(a)表示密碼學(xué)方法,,對(duì)所有數(shù)據(jù)用密碼技術(shù)加密,;圖2(b)表示部分?jǐn)?shù)據(jù)加密方法,只對(duì)選擇的重要數(shù)據(jù)加密,。?
?
?
??? 在視頻加密的算法中,,除純密碼學(xué)方法之外,對(duì)選擇性加密方法研究得比較多,,其中又以對(duì)加密變換(DCT)系數(shù)的算法為多,。主要有以下幾種:?
??? (1) 僅對(duì)I幀加密算法?
??? 僅對(duì)I幀DCT系數(shù)塊加密,具有擴(kuò)散作用,,使P,、B幀利用運(yùn)動(dòng)補(bǔ)償進(jìn)行差值編碼的相應(yīng)塊不加密也難以正確解碼,達(dá)到了選擇部分?jǐn)?shù)據(jù)加密減少計(jì)算量的目的,。該算法由于減少了加密數(shù)據(jù)量,,因而節(jié)約30%~50%的加解密時(shí)間,提高了加,、解密速度,,且不改變?cè)曨l編碼數(shù)據(jù)碼流量大小,,因而不影響壓縮率。但這種算法不安全,,場(chǎng)景變換和運(yùn)動(dòng)劇烈的P,、B幀(P、B幀內(nèi)的I塊)會(huì)被正確解碼,,在保密要求高的場(chǎng)合不能單獨(dú)使用,。本算法可通過(guò)增加I幀頻率來(lái)提高密級(jí),但是I幀頻率越高,,計(jì)算量越大,,速度就越慢。有人討論了其改進(jìn)方法,,加密包括P,、B幀中I塊的所有I-block,但也存在問(wèn)題:①在P,、B幀中識(shí)別I塊需要一定的額外開(kāi)銷(xiāo),;②在某些視頻中,P,、B幀中的I塊數(shù)量與I幀中數(shù)量相近,,因此,減少數(shù)據(jù)量不明顯,,還不如改用純密碼(Naive)算法,。?
??? (2) 加密運(yùn)動(dòng)矢量算法?
??? 隨機(jī)改變運(yùn)動(dòng)矢量的符號(hào)位或同時(shí)改變符號(hào)位和數(shù)值來(lái)影響P、B幀正確解碼,。對(duì)I幀編解碼完全沒(méi)有影響,,故不能單獨(dú)使用,主要作為增強(qiáng)安全性的補(bǔ)充算法,。加密數(shù)據(jù)量小,,計(jì)算量小,因而速度快,;不降低編碼壓縮率,,只適用于視頻編碼數(shù)據(jù)。?
??? (3) DCT塊系數(shù)分層加密算法?
??? 把DCT系數(shù)從低頻到高頻分為基本層(base layer),、中間層(middle layer)和增強(qiáng)層(enhancement layer)三部分,。在0~63范圍定義兩個(gè)整數(shù)分界點(diǎn)(breakpoint),作為一個(gè)分界點(diǎn)組(breakpoint group),確定三部分之間的邊界,。定義第一個(gè)分界點(diǎn)為容損點(diǎn)(loss-tolerance breakpoint),,第二個(gè)點(diǎn)為安全點(diǎn)(security breakpoint)。在這個(gè)算法中,,只加密基本層和中間層,,可以減少計(jì)算量,;保證基本層傳送,即使中間層和增強(qiáng)層丟失,,接收方也能顯示出主要信息,。該算法可以讓用戶(hù)根據(jù)不同的安全性級(jí)別來(lái)選擇分界點(diǎn)組合,在安全性,、計(jì)算量,、容錯(cuò)能力之間進(jìn)行折中。對(duì)基本層和中間層加密的密碼算法也可以另行選擇,。該算法只對(duì)部分DCT系數(shù)加密,,減少了計(jì)算量。類(lèi)似的選擇性加密的算法有:僅加密DC系數(shù)或加密DC系數(shù)和少量低頻AC系數(shù),、隨機(jī)改變DCT系數(shù)符號(hào)等。?
??? (4) 僅加密頭信息算法?
??? 將頭信息加密,,再與其他數(shù)據(jù)隨機(jī)混合,,使接收方難以按原數(shù)據(jù)結(jié)構(gòu)區(qū)分結(jié)構(gòu)信息和視頻信息并解碼。該算法不降低壓縮率,,計(jì)算量小,。但是安全性較低,因?yàn)轭^信息所含信息量小,,加密效率低,,這種加密方式比較容易破譯。為便于合法收方解碼,,需加入同步信息,,或保留原來(lái)部分同步信息。?
1.3 針對(duì)MPEG碼流統(tǒng)計(jì)特性的算法?
??? 針對(duì)MPEG碼流統(tǒng)計(jì)特性(Statistical behavior of MPEG)的算法稱(chēng)為VEA(Video Encryption Algorithm)算法,。經(jīng)壓縮編碼的碼流因去除相關(guān)性,,具有一定的隨機(jī)性。將I幀(撇開(kāi)頭標(biāo)志等特殊碼流)分為8或16(通常16)大塊(chunk),,在任何chunk中,,沒(méi)有重復(fù)的字節(jié)模式。據(jù)此提出下面的VEA算法,。?
??? 設(shè)一個(gè)I幀的某個(gè)chunk為如下形式:a1,,a2,a3,,a4,,...,a2n-1,,a2n,。選擇奇數(shù)號(hào)的字節(jié)組成奇隊(duì)列(Odd List),,選擇偶數(shù)號(hào)的字節(jié)組成偶隊(duì)列(Even List)。將兩個(gè)新數(shù)據(jù)流異或,。選擇一種加密函數(shù)(例如DES)來(lái)加密偶隊(duì)列a2,,a4,...,,a2n,。得到的密文為:c1,c2,,…,,cn,E(a2,,a4,,…,a2n),。如果a2,,a4,…,,a2n沒(méi)有重復(fù)模式(repeated pattern),,說(shuō)明具有足夠隨機(jī)性,a2,,a4,,…,a2n對(duì)a1,a3,…,a2n-1的簡(jiǎn)單異或,是一次一密亂碼本(one-time pad)加密,這是被公認(rèn)為非常保密的,。VEA算法密級(jí)就決定于函數(shù)E,。?
??? 該方法只加密部分視頻流,待加密數(shù)據(jù)分為兩半,,一半用密碼方法(函數(shù)E)加密,,另一半用簡(jiǎn)單異或,因此總體減少了計(jì)算量,,提高了計(jì)算速度,。該方法不影響壓縮率,適用于壓縮的視頻編碼數(shù)據(jù),,而且壓縮效果越好,,加密效果也越好。?
1.4 DCT頻域系數(shù)亂序算法?
??? DCT頻域系數(shù)亂序算法(Zig-Zag Permutation Algorithm)把DCT頻域系數(shù)8×8塊按隨機(jī)的順序映射成1×64矢量,,而不按ZIG-ZAG順序,。有人首先提供了三步基本算法,但設(shè)計(jì)者自己指出,基本算法對(duì)已知明文攻擊是脆弱的,,因此提供了兩種附加方法增強(qiáng)算法的安全性,。?
??? (1) 對(duì)DC系數(shù)另用DES加密,。?
??? (2) 產(chǎn)生兩張不同的順序置亂序列表,隨機(jī)選用,。?
??? DCT頻域系數(shù)亂序算法速度很快,。但存在嚴(yán)重的安全性問(wèn)題。兩種附加方法也無(wú)法解決,。已知明文攻擊(Known-plaintext attack)和唯密文攻擊(Ciphertext only attack)都可以成功破解該算法,。另外,經(jīng)過(guò)加密的MPEG流大小將顯著增加,,最大可增加46%,,嚴(yán)重降低壓縮率。?
2 新的視頻加密方法?
??? 針對(duì)視頻數(shù)據(jù)具有層次結(jié)構(gòu)性強(qiáng),、數(shù)據(jù)量大以及實(shí)時(shí)傳輸要求高的特點(diǎn),,本系統(tǒng)采用了一種新式的視頻加密算法。其主要思想為:僅對(duì)視頻碼流中的少部分重要數(shù)據(jù)進(jìn)行高強(qiáng)度的加密,。因?yàn)橐曨l碼流中各部分?jǐn)?shù)據(jù)的重要性不同,,某些關(guān)鍵數(shù)據(jù)(如視頻宏塊中的直流分量值DC,交流分量值A(chǔ)C和位移矢量MV等)雖然數(shù)據(jù)量比較小,,但是對(duì)視頻碼流的解碼和視頻圖像的重建起著至關(guān)重要的作用,所以?xún)H對(duì)這些少量數(shù)據(jù)運(yùn)用AES,、IDEA等加密算法進(jìn)行加密,,就可以取得對(duì)整個(gè)視頻碼流安全加密的效果。該視頻加密算法原理如圖3所示,。?
?
?
??? 該視頻加密算法具有如下特點(diǎn):(1)獨(dú)立于視頻編解碼器,。(2)獨(dú)立于密碼學(xué)算法,用戶(hù)可以根據(jù)自己的要求選擇不同的加密算法,,如DES,、AES或IDEA等。(3)對(duì)不同關(guān)鍵數(shù)據(jù)的選取和組合,,可以提供高,、中、低三個(gè)不同的加密級(jí)別,,用戶(hù)可根據(jù)不同的保密要求和網(wǎng)絡(luò)帶寬進(jìn)行選擇,。(4)計(jì)算量小、加密速度快,、附加帶寬少,。?
3 新的視頻加密方法的實(shí)現(xiàn)?
3.1 新的視頻加密方法的硬件實(shí)現(xiàn)?
??? 圖4所示是基于對(duì)上述新的視頻加密算法而設(shè)計(jì)的一種采用嵌入式主處理器DM1105和加密配置芯片DM2016的數(shù)字視頻加密系統(tǒng)。?
?
?
??? DM1105主要應(yīng)用于衛(wèi)星,、有線信號(hào)以及地面?zhèn)鬏數(shù)臄?shù)字電視,、IP數(shù)據(jù)的接收,,也可以用于8/16位CCIR656標(biāo)準(zhǔn)YUV視頻信號(hào)的接收。DM1105內(nèi)集成了DVB標(biāo)準(zhǔn)解擾算法,,可以同時(shí)進(jìn)行32路解擾,,還具備遙控器接收功能,通過(guò)擴(kuò)展還能夠外接兩個(gè)PCMCIA插槽,。圖5是DM1105應(yīng)用的原理結(jié)構(gòu)框圖,。 ?
?
?
3.2 新的視頻加密方法的軟件實(shí)現(xiàn)?
??? 示例采用C語(yǔ)言實(shí)現(xiàn)基于嵌入式系統(tǒng)的AES加密運(yùn)算。?
??? (1)先定義sbox 和pbox,,并初始化,將它們放入code 中:?
??? unsigned long code sbox[18] = {?
??? 0x243F6A88L , ……, 0x8979FB1BL?
??? };?
??? unsigned long code pbox[ 4 ] [256 ] = {?
??? 0xD1310BA6L , ……?
??? };?
??? (2) 定義兩個(gè)全局變量key_pbox 和key_sbox ,存儲(chǔ)初始化后的子密鑰:?
??? unsigned long key_pbox[18 ];?
??? unsigned long key_sbox[ 4 ] [256 ];?
??? (3) 完成下列函數(shù):?
??? //AES初始化函數(shù)?
??? void AES_Constructor(void);?
??? void AES_Destructor(void);?
??? //設(shè)置AES密鑰函數(shù)?
??? BOOLEAN SetKey(const unsigned char *key, int keylen);?
??? //AES加密函數(shù)?
??? BOOLEAN Encrypt(const unsigned char *in, int inlen, ?
??? unsigned char *out, int *outlen);?
??? //AES解密函數(shù)?
??? BOOLEAN Decrypt(const unsigned char *in, int inlen, ?
??? unsigned char *out, int *outlen);?
??? ……?
??? (4) 初始化嵌入式系統(tǒng),用TESTKEY作為密鑰進(jìn)行初始化,對(duì)算法進(jìn)行測(cè)試,。?
??? 在編譯優(yōu)化后,對(duì)代碼做進(jìn)一步優(yōu)化,。首先使用TI集成開(kāi)發(fā)環(huán)境的代碼分析器(profiler)對(duì)代碼進(jìn)行分析,。在CCS中可以統(tǒng)計(jì)某段代碼的執(zhí)行時(shí)間,這被稱(chēng)作剖析(profile),。代碼剖析可以迅速地評(píng)估程序的性能以便優(yōu)化代碼,。經(jīng)過(guò)編譯優(yōu)化和代碼優(yōu)化后,AES算法在該嵌入式系統(tǒng)中具有高速數(shù)據(jù)處理能力,,在保證安全性目標(biāo)的同時(shí),,又不影響數(shù)字視頻信號(hào)對(duì)通信實(shí)時(shí)性要求,從而有助于解決數(shù)字電視傳輸控制網(wǎng)絡(luò)中實(shí)時(shí)數(shù)據(jù)加密和安全問(wèn)題,。?
??? 本文介紹了幾種常用視頻加密算法,,分析了這幾種算法的優(yōu)缺點(diǎn),提出了一種僅對(duì)視頻碼流中解碼和視頻圖像的重建起著至關(guān)重要作用的少部分?jǐn)?shù)據(jù)進(jìn)行高強(qiáng)度加密的方法,,并利用嵌入式芯片DM1105和加密配置芯片DM2016組成一個(gè)加密,、解密系統(tǒng)來(lái)實(shí)現(xiàn)上述數(shù)字視頻信號(hào)的加密。?
參考文獻(xiàn)?
[1] 張鐳,張川,徐正全.基于H.323協(xié)議的視頻加密網(wǎng)關(guān)的設(shè)計(jì)[J].計(jì)算機(jī)工程,,2006(14):138-140.?
[2] 廉士國(guó),孫金生,王執(zhí)銓.幾種典型視頻加密算法的性能評(píng)價(jià)[J].中國(guó)圖像圖形學(xué)報(bào)2004(4):483-490.?
[3] 李偉,劉樹(shù)波,徐正全.基于TM1300的嵌入式網(wǎng)絡(luò)視頻編碼器的設(shè)計(jì)[J].武漢大學(xué)學(xué)報(bào),2004(3):110-113.?
[4] 洪家平. 嵌入式系統(tǒng)加密技術(shù)在數(shù)字電視中的應(yīng)用研究[J]. 電子技術(shù)應(yīng)用,2008(9).?
[5] 洪家平.AES在嵌入式系統(tǒng)起動(dòng)加載程序中的應(yīng)用[J].信息安全與通信保密,2007(2).