《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 基于嵌入式系統(tǒng)的數(shù)字視頻信號加密技術(shù)

基于嵌入式系統(tǒng)的數(shù)字視頻信號加密技術(shù)

2009-07-22
作者:洪家平

??? 摘??要: 幾種常用數(shù)字視頻信號加密技術(shù)的原理與方法,分析了這些加密方法的優(yōu)點和存在的不足。提出了一種僅對視頻碼流中解碼和視頻圖像的重建起著重要作用的少部分?jǐn)?shù)據(jù)進(jìn)行高強度加密的方法,這一方法可以取得對整個視頻碼流安全加密的效果。?

??? 關(guān)鍵詞: 數(shù)字視頻; 加密技術(shù); 嵌入式系統(tǒng)

?

??? 數(shù)字視頻在許多方面與靜止圖像有相同特性,例如數(shù)據(jù)量大、結(jié)構(gòu)性強、各部分?jǐn)?shù)據(jù)的重要性不同等,視頻的幀內(nèi)編碼與靜止圖像編碼類似。數(shù)字視頻是由數(shù)字圖像的時間序列構(gòu)成的,每一幅圖像稱為一幀。為了保證流暢的視覺效果,視頻顯示的幀速率即圖像序列的播放速率,通常為每秒25~30幀,視頻加密在一定時間內(nèi)必須處理大量數(shù)據(jù),因此要求有很高的處理速度。當(dāng)前的視頻加密技術(shù)還很難同時滿足安全、及時等加密要求。?

1 視頻加密的原理和方法?

1.1 視頻加密的密碼學(xué)方法?

??? 最早的視頻信號加擾方法是模擬視頻加密技術(shù),但這種方法安全級別很低。最早的高保密級視頻加密技術(shù)是對全部視頻數(shù)據(jù)流直接用密碼技術(shù)加密和解密,故稱為圖像和視頻加密的密碼學(xué)方法,也稱之為自然加密方法。國內(nèi)大部分文獻(xiàn)稱之為傳統(tǒng)加密方法。其原理如圖1所示。?

?

?

??? 由于密碼技術(shù)已有許多安全可靠的成熟算法,以二維或多維數(shù)據(jù)表示的圖像和視頻在傳輸和存儲時都要映射成一維數(shù)據(jù),若不考慮具體的數(shù)據(jù)特征,很適合直接應(yīng)用已有的成熟密碼技術(shù)加密。其研究基本是基于純密碼科學(xué)技術(shù)的研究,安全性評價取決于所用密碼加密技術(shù)。在當(dāng)前的大多數(shù)實用圖像和視頻加密系統(tǒng)中,圖像和視頻數(shù)據(jù)被等同為一維比特流而采用DES等算法加密。也有一些新的密碼技術(shù)用于視頻加密,同時在性能上有了進(jìn)一步的改進(jìn)。?

??? 是由于圖像和視頻信號數(shù)據(jù)量很大,所以這種加密方法計算量非常大,不僅浪費資源,而且難以保證實時性。由于許多圖像信號特別是視頻信號往往要求實時在線傳輸,且大多數(shù)應(yīng)用都要求降低成本,從而限制了這種加密方法的應(yīng)用。另外,若標(biāo)志信息經(jīng)加密無法識別,則不能實現(xiàn)在線傳輸和檢索功能。?

1.2選擇性加密方法?

??? 密碼學(xué)方法雖然安全,但這種加密方法計算量非常大,往往難以實用。為解決這一對矛盾,人們研究了視頻的信源特征,把密碼原理與視頻技術(shù)結(jié)合起來,取得了一些研究成果。有人提出一種針對圖像和視頻編碼的部分?jǐn)?shù)據(jù)加密思路。圖2(a)表示密碼學(xué)方法,對所有數(shù)據(jù)用密碼技術(shù)加密;圖2(b)表示部分?jǐn)?shù)據(jù)加密方法,只對選擇的重要數(shù)據(jù)加密。?

?

?

??? 在視頻加密的算法中,除純密碼學(xué)方法之外,對選擇性加密方法研究得比較多,其中又以對加密變換(DCT)系數(shù)的算法為多。主要有以下幾種:?

??? (1) 僅對I幀加密算法?

??? 僅對I幀DCT系數(shù)塊加密,具有擴(kuò)散作用,使P、B幀利用運動補償進(jìn)行差值編碼的相應(yīng)塊不加密也難以正確解碼,達(dá)到了選擇部分?jǐn)?shù)據(jù)加密減少計算量的目的。該算法由于減少了加密數(shù)據(jù)量,因而節(jié)約30%~50%的加解密時間,提高了加、解密速度,且不改變原視頻編碼數(shù)據(jù)碼流量大小,因而不影響壓縮率。但這種算法不安全,場景變換和運動劇烈的P、B幀(P、B幀內(nèi)的I塊)會被正確解碼,在保密要求高的場合不能單獨使用。本算法可通過增加I幀頻率來提高密級,但是I幀頻率越高,計算量越大,速度就越慢。有人討論了其改進(jìn)方法,加密包括P、B幀中I塊的所有I-block,但也存在問題:①在P、B幀中識別I塊需要一定的額外開銷;②在某些視頻中,P、B幀中的I塊數(shù)量與I幀中數(shù)量相近,因此,減少數(shù)據(jù)量不明顯,還不如改用純密碼(Naive)算法。?

??? (2) 加密運動矢量算法?

??? 隨機(jī)改變運動矢量的符號位或同時改變符號位和數(shù)值來影響P、B幀正確解碼。對I幀編解碼完全沒有影響,故不能單獨使用,主要作為增強安全性的補充算法。加密數(shù)據(jù)量小,計算量小,因而速度快;不降低編碼壓縮率,只適用于視頻編碼數(shù)據(jù)。?

??? (3) DCT塊系數(shù)分層加密算法?

??? 把DCT系數(shù)從低頻到高頻分為基本層(base layer)、中間層(middle layer)和增強層(enhancement layer)三部分。在0~63范圍定義兩個整數(shù)分界點(breakpoint),作為一個分界點組(breakpoint group),確定三部分之間的邊界。定義第一個分界點為容損點(loss-tolerance breakpoint),第二個點為安全點(security breakpoint)。在這個算法中,只加密基本層和中間層,可以減少計算量;保證基本層傳送,即使中間層和增強層丟失,接收方也能顯示出主要信息。該算法可以讓用戶根據(jù)不同的安全性級別來選擇分界點組合,在安全性、計算量、容錯能力之間進(jìn)行折中。對基本層和中間層加密的密碼算法也可以另行選擇。該算法只對部分DCT系數(shù)加密,減少了計算量。類似的選擇性加密的算法有:僅加密DC系數(shù)或加密DC系數(shù)和少量低頻AC系數(shù)、隨機(jī)改變DCT系數(shù)符號等。?

??? (4) 僅加密頭信息算法?

??? 將頭信息加密,再與其他數(shù)據(jù)隨機(jī)混合,使接收方難以按原數(shù)據(jù)結(jié)構(gòu)區(qū)分結(jié)構(gòu)信息和視頻信息并解碼。該算法不降低壓縮率,計算量小。但是安全性較低,因為頭信息所含信息量小,加密效率低,這種加密方式比較容易破譯。為便于合法收方解碼,需加入同步信息,或保留原來部分同步信息。?

1.3 針對MPEG碼流統(tǒng)計特性的算法?

??? 針對MPEG碼流統(tǒng)計特性(Statistical behavior of MPEG)的算法稱為VEA(Video Encryption Algorithm)算法。經(jīng)壓縮編碼的碼流因去除相關(guān)性,具有一定的隨機(jī)性。將I幀(撇開頭標(biāo)志等特殊碼流)分為8或16(通常16)大塊(chunk),在任何chunk中,沒有重復(fù)的字節(jié)模式。據(jù)此提出下面的VEA算法。?

??? 設(shè)一個I幀的某個chunk為如下形式:a1,a2,a3,a4,...,a2n-1,a2n。選擇奇數(shù)號的字節(jié)組成奇隊列(Odd List),選擇偶數(shù)號的字節(jié)組成偶隊列(Even List)。將兩個新數(shù)據(jù)流異或。選擇一種加密函數(shù)(例如DES)來加密偶隊列a2,a4,...,a2n。得到的密文為:c1,c2,…,cn,E(a2,a4,…,a2n)。如果a2,a4,…,a2n沒有重復(fù)模式(repeated pattern),說明具有足夠隨機(jī)性,a2,a4,…,a2n對a1,a3,…,a2n-1的簡單異或,是一次一密亂碼本(one-time pad)加密,這是被公認(rèn)為非常保密的。VEA算法密級就決定于函數(shù)E。?

??? 該方法只加密部分視頻流,待加密數(shù)據(jù)分為兩半,一半用密碼方法(函數(shù)E)加密,另一半用簡單異或,因此總體減少了計算量,提高了計算速度。該方法不影響壓縮率,適用于壓縮的視頻編碼數(shù)據(jù),而且壓縮效果越好,加密效果也越好。?

1.4 DCT頻域系數(shù)亂序算法?

??? DCT頻域系數(shù)亂序算法(Zig-Zag Permutation Algorithm)把DCT頻域系數(shù)8×8塊按隨機(jī)的順序映射成1×64矢量,而不按ZIG-ZAG順序。有人首先提供了三步基本算法,但設(shè)計者自己指出,基本算法對已知明文攻擊是脆弱的,因此提供了兩種附加方法增強算法的安全性。?

??? (1) 對DC系數(shù)另用DES加密。?

??? (2) 產(chǎn)生兩張不同的順序置亂序列表,隨機(jī)選用。?

??? DCT頻域系數(shù)亂序算法速度很快。但存在嚴(yán)重的安全性問題。兩種附加方法也無法解決。已知明文攻擊(Known-plaintext attack)和唯密文攻擊(Ciphertext only attack)都可以成功破解該算法。另外,經(jīng)過加密的MPEG流大小將顯著增加,最大可增加46%,嚴(yán)重降低壓縮率。?

2 新的視頻加密方法?

??? 針對視頻數(shù)據(jù)具有層次結(jié)構(gòu)性強、數(shù)據(jù)量大以及實時傳輸要求高的特點,本系統(tǒng)采用了一種新式的視頻加密算法。其主要思想為:僅對視頻碼流中的少部分重要數(shù)據(jù)進(jìn)行高強度的加密。因為視頻碼流中各部分?jǐn)?shù)據(jù)的重要性不同,某些關(guān)鍵數(shù)據(jù)(如視頻宏塊中的直流分量值DC,交流分量值A(chǔ)C和位移矢量MV等)雖然數(shù)據(jù)量比較小,但是對視頻碼流的解碼和視頻圖像的重建起著至關(guān)重要的作用,所以僅對這些少量數(shù)據(jù)運用AES、IDEA等加密算法進(jìn)行加密,就可以取得對整個視頻碼流安全加密的效果。該視頻加密算法原理如圖3所示。?

?

?

??? 該視頻加密算法具有如下特點:(1)獨立于視頻編解碼器。(2)獨立于密碼學(xué)算法,用戶可以根據(jù)自己的要求選擇不同的加密算法,如DES、AES或IDEA等。(3)對不同關(guān)鍵數(shù)據(jù)的選取和組合,可以提供高、中、低三個不同的加密級別,用戶可根據(jù)不同的保密要求和網(wǎng)絡(luò)帶寬進(jìn)行選擇。(4)計算量小、加密速度快、附加帶寬少。?

3 新的視頻加密方法的實現(xiàn)?

3.1 新的視頻加密方法的硬件實現(xiàn)?

??? 圖4所示是基于對上述新的視頻加密算法而設(shè)計的一種采用嵌入式主處理器DM1105和加密配置芯片DM2016的數(shù)字視頻加密系統(tǒng)。?

?

?

??? DM1105主要應(yīng)用于衛(wèi)星、有線信號以及地面?zhèn)鬏數(shù)臄?shù)字電視、IP數(shù)據(jù)的接收,也可以用于8/16位CCIR656標(biāo)準(zhǔn)YUV視頻信號的接收。DM1105內(nèi)集成了DVB標(biāo)準(zhǔn)解擾算法,可以同時進(jìn)行32路解擾,還具備遙控器接收功能,通過擴(kuò)展還能夠外接兩個PCMCIA插槽。圖5是DM1105應(yīng)用的原理結(jié)構(gòu)框圖。 ?

?

?

3.2 新的視頻加密方法的軟件實現(xiàn)?

??? 示例采用C語言實現(xiàn)基于嵌入式系統(tǒng)的AES加密運算。?

??? (1)先定義sbox 和pbox,并初始化,將它們放入code 中:?

??? unsigned long code sbox[18] = {?

??? 0x243F6A88L , ……, 0x8979FB1BL?

??? };?

??? unsigned long code pbox[ 4 ] [256 ] = {?

??? 0xD1310BA6L , ……?

??? };?

??? (2) 定義兩個全局變量key_pbox 和key_sbox ,存儲初始化后的子密鑰:?

??? 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)行初始化,對算法進(jìn)行測試。?

??? 在編譯優(yōu)化后,對代碼做進(jìn)一步優(yōu)化。首先使用TI集成開發(fā)環(huán)境的代碼分析器(profiler)對代碼進(jìn)行分析。在CCS中可以統(tǒng)計某段代碼的執(zhí)行時間,這被稱作剖析(profile)。代碼剖析可以迅速地評估程序的性能以便優(yōu)化代碼。經(jīng)過編譯優(yōu)化和代碼優(yōu)化后,AES算法在該嵌入式系統(tǒng)中具有高速數(shù)據(jù)處理能力,在保證安全性目標(biāo)的同時,又不影響數(shù)字視頻信號對通信實時性要求,從而有助于解決數(shù)字電視傳輸控制網(wǎng)絡(luò)中實時數(shù)據(jù)加密和安全問題。?

??? 本文介紹了幾種常用視頻加密算法,分析了這幾種算法的優(yōu)缺點,提出了一種僅對視頻碼流中解碼和視頻圖像的重建起著至關(guān)重要作用的少部分?jǐn)?shù)據(jù)進(jìn)行高強度加密的方法,并利用嵌入式芯片DM1105和加密配置芯片DM2016組成一個加密、解密系統(tǒng)來實現(xiàn)上述數(shù)字視頻信號的加密。?

參考文獻(xiàn)?

[1] 張鐳,張川,徐正全.基于H.323協(xié)議的視頻加密網(wǎng)關(guān)的設(shè)計[J].計算機(jī)工程,2006(14):138-140.?

[2] 廉士國,孫金生,王執(zhí)銓.幾種典型視頻加密算法的性能評價[J].中國圖像圖形學(xué)報2004(4):483-490.?

[3] 李偉,劉樹波,徐正全.基于TM1300的嵌入式網(wǎng)絡(luò)視頻編碼器的設(shè)計[J].武漢大學(xué)學(xué)報,2004(3):110-113.?

[4] 洪家平. 嵌入式系統(tǒng)加密技術(shù)在數(shù)字電視中的應(yīng)用研究[J]. 電子技術(shù)應(yīng)用,2008(9).?

[5] 洪家平.AES在嵌入式系統(tǒng)起動加載程序中的應(yīng)用[J].信息安全與通信保密,2007(2).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。