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

數(shù)字視頻是由數(shù)字圖像的時(shí)間序列構(gòu)成的,每一幅圖像稱為一幀。為了保證流暢的視覺效果,視頻顯示的幀速率即圖像序列的播放速率,通常為每秒25~30幀,視頻加密在一定時(shí)間內(nèi)必須處理大量數(shù)據(jù),因此要求有很高的處理速度。當(dāng)前的視頻加密技術(shù)還很難同時(shí)滿足安全、及時(shí)等加密要求。那么今天就給大家介紹一下基于嵌入式系統(tǒng)的數(shù)字視頻信號(hào)加密技術(shù)。

一、視頻加密的原理和方法

1、視頻加密的密碼學(xué)方法

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

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

由于密碼技術(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)加密無法識(shí)別,則不能實(shí)現(xiàn)在線傳輸和檢索功能。

2、選擇性加密方法

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

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

在視頻加密的加密算法中,除純密碼學(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ú)使用。本算法可通過增加I幀頻率來提高密級(jí),但是I幀頻率越高,計(jì)算量越大,速度就越慢。有人討論了其改進(jìn)方法,加密包括P、B幀中I塊的所有I-block,但也存在問題:

①在P、B幀中識(shí)別I塊需要一定的額外開銷;

②在某些視頻中,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ù)值來影響P、B幀正確解碼。對(duì)I幀編解碼完全沒有影響,故不能單獨(dú)使用,主要作為增強(qiáng)安全性的補(bǔ)充算法。加密數(shù)據(jù)量小,計(jì)算量小,因而速度快;不降低編碼壓縮率,只適用于視頻編碼數(shù)據(jù)。

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

把DCT系數(shù)從低頻到高頻分為基本層(baselayer)、中間層(middlelayer)和增強(qiáng)層(enhancementlayer)三部分。在0~63范圍定義兩個(gè)整數(shù)分界點(diǎn)(breakpoint),作為一個(gè)分界點(diǎn)組(breakpointgroup),確定三部分之間的邊界。定義第一個(gè)分界點(diǎn)為容損點(diǎn)(loss-tolerancebreakpoint),第二個(gè)點(diǎn)為安全點(diǎn)(securitybreakpoint)。在這個(gè)算法中,只加密基本層和中間層,可以減少計(jì)算量;保證基本層傳送,即使中間層和增強(qiáng)層丟失,接收方也能顯示出主要信息。該算法可以讓用戶根據(jù)不同的安全性級(jí)別來選擇分界點(diǎn)組合,在安全性、計(jì)算量、容錯(cuò)能力之間進(jìn)行折中。對(duì)基本層和中間層加密的密碼算法也可以另行選擇。

該加密算法只對(duì)部分DCT系數(shù)加密,減少了計(jì)算量。類似的選擇性加密的算法有:僅加密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)轭^信息所含信息量小,加密效率低,這種加密方式比較容易破譯。為便于合法收方解碼,需加入同步信息,或保留原來部分同步信息。

3、針對(duì)MPEG碼流統(tǒng)計(jì)特性的算法

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

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

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

4、DCT頻域系數(shù)亂序算法

DCT頻域系數(shù)亂序算法(Zig-ZagPermutationAlgorithm)把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)重的安全性問題。兩種附加方法也無法解決。已知明文攻擊(Known-plaintextattack)和唯密文攻擊(Ciphertextonlyattack)都可以成功破解該算法。另外,經(jīng)過加密的MPEG流大小將顯著增加,最大可增加46%,嚴(yán)重降低壓縮率。

二、新的視頻加密方法

針對(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)重要的作用,所以僅對(duì)這些少量數(shù)據(jù)運(yùn)用AES、IDEA等加密算法進(jìn)行加密,就可以取得對(duì)整個(gè)視頻碼流安全加密的效果。該視頻加密算法原理如圖所示。

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

該視頻加密算法具有如下特點(diǎn):

(1)獨(dú)立于視頻編解碼器。

(2)獨(dú)立于密碼學(xué)算法,用戶可以根據(jù)自己的要求選擇不同的加密算法,如DES、AES或IDEA等。

(3)對(duì)不同關(guān)鍵數(shù)據(jù)的選取和組合,可以提供高、中、低三個(gè)不同的加密級(jí)別,用戶可根據(jù)不同的保密要求和網(wǎng)絡(luò)帶寬進(jìn)行選擇。

(4)計(jì)算量小、加密速度快、附加帶寬少。

三、新的視頻加密方法的實(shí)現(xiàn)

1、新的視頻加密方法的硬件實(shí)現(xiàn)

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

基于嵌入式系統(tǒng)的數(shù)字視頻信號(hào)加密技術(shù)
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路解擾,還具備遙控器接收功能,通過擴(kuò)展還能夠外接兩個(gè)PCMCIA插槽。下圖是DM1105應(yīng)用的原理結(jié)構(gòu)框圖。

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

2、新的視頻加密方法的軟件實(shí)現(xiàn)

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

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

unsignedlongcodesbox[18]={

0x243F6A88L,……,0x8979FB1BL

};
unsignedlongcodepbox[4][256]={

0xD1310BA6L,……

};

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

unsignedlongkey_pbox[18];

unsignedlongkey_sbox[4][256];

(3)完成下列函數(shù):

//AES初始化函數(shù)

voidAES_Constructor(void);

voidAES_Destructor(void);

//設(shè)置AES密鑰函數(shù)

BOOLEANSetKey(constunsignedchar*key,intkeylen);

//AES加密函數(shù)

BOOLEANEncrypt(constunsignedchar*in,intinlen,unsignedchar*out,int*outlen);

//AES解密函數(shù)

BOOLEANDecrypt(constunsignedchar*in,intinlen,unsignedchar*out,int*outlen);

……

(4)初始化嵌入式系統(tǒng),用TESTKEY作為密鑰進(jìn)行初始化,對(duì)算法進(jìn)行測(cè)試。

在編譯優(yōu)化后,對(duì)代碼做進(jìn)一步優(yōu)化。首先使用TI集成開發(fā)環(huán)境的代碼分析器(profiler)對(duì)代碼進(jìn)行分析。在CCS中可以統(tǒng)計(jì)某段代碼的執(zhí)行時(shí)間,這被稱作剖析(profile)。代碼剖析可以迅速地評(píng)估程序的性能以便優(yōu)化代碼。

經(jīng)過編譯優(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ù)加密和安全問題。

小知識(shí)之嵌入式系統(tǒng)

嵌入式系統(tǒng)是一種專用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的嵌入式處理器控制板。事實(shí)上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機(jī)、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是是由單個(gè)程序?qū)崿F(xiàn)整個(gè)控制邏輯。