視頻加密算法的無(wú)線(xiàn)應(yīng)用

為了滿(mǎn)足無(wú)線(xiàn)視頻應(yīng)用的需求,考慮到無(wú)線(xiàn)移動(dòng)設(shè)備的有限電量和處理器的能力,根據(jù)H.264視頻編碼的結(jié)構(gòu)特性,提出了一種可分級(jí)的輕量級(jí)視頻信息安全的加密算法,該算法可以任意選擇亮度量化變換系數(shù)的加密數(shù)量,同時(shí)對(duì)運(yùn)動(dòng)矢量符號(hào)進(jìn)行加密。

一、已有的視頻加密算法

將視頻數(shù)據(jù)看作普通的二進(jìn)制數(shù)據(jù)直接加密的方法,加密與壓縮兩者不具有相容性,這類(lèi)算法稱(chēng)為直接加密算法,密碼算法采用如DES、AES、RSA等現(xiàn)代密碼體制來(lái)加密。包括對(duì)原始數(shù)據(jù)的直接加密和對(duì)壓縮后的數(shù)據(jù)進(jìn)行的加密。采用現(xiàn)代密碼學(xué)體制算法直接加密視頻數(shù)據(jù),具有較高的安全性,但由于加密數(shù)據(jù)量大,加密效率低,也帶來(lái)了高計(jì)算復(fù)雜度和視頻格式不相容的缺點(diǎn)。因此,這種算法更適合用于多媒體數(shù)據(jù)存儲(chǔ)等安全性要求很高、實(shí)時(shí)性要求不高、可操作性要求低的應(yīng)用中。

在視頻壓縮編碼過(guò)程中加密部分視頻數(shù)據(jù),加密和壓縮具有兼容性,這類(lèi)算法稱(chēng)為選擇性加密算法。通過(guò)選擇加密視頻數(shù)據(jù),可以降低加密的數(shù)據(jù)量,提高加密效率。根據(jù)視頻壓縮編碼原理來(lái)選擇關(guān)鍵數(shù)據(jù)進(jìn)行加密,可以使得安全性和壓縮效率達(dá)到更好的平衡。例如對(duì)I幀進(jìn)行加密,加密數(shù)據(jù)格式信息,對(duì)DCT系數(shù)的加密以及運(yùn)動(dòng)向量的加密。提出對(duì)多媒體的頻率域數(shù)據(jù)選擇性置亂和加密的一般性方法。Wen等提出了使用定長(zhǎng)編碼FLC(Fixed Length Code)和變長(zhǎng)編碼VLC(VariableLength Code)同時(shí)進(jìn)行加密的方法??筛兄用芊椒ǎ醇用苓^(guò)程降低數(shù)據(jù)的質(zhì)量,但是數(shù)據(jù)內(nèi)容仍然可以理解,這類(lèi)加密方法適合商業(yè)的視頻應(yīng)用。本文針對(duì)視頻無(wú)線(xiàn)應(yīng)用的特點(diǎn),提出了一種可分級(jí)的輕量級(jí)視頻加密算法,彌補(bǔ)了現(xiàn)有加密算法的不足。

二、一種可分級(jí)的輕量級(jí)視頻加密算法

1、加密算法要求

由于視頻數(shù)據(jù)具有編碼結(jié)構(gòu)特殊、數(shù)據(jù)量大、實(shí)時(shí)性要求高等特點(diǎn),傳統(tǒng)的數(shù)據(jù)加密算法,很難滿(mǎn)足實(shí)時(shí)性要求,而且會(huì)改變數(shù)據(jù)格式等,這就要求對(duì)多媒體數(shù)據(jù)采用特殊的加密方式。加密算法在實(shí)際應(yīng)用還需滿(mǎn)足以下幾個(gè)條件:

1)安全性和不可見(jiàn)性

安全性和不可見(jiàn)性是視頻信息加密的最基本要求。通過(guò)加密使得原視頻數(shù)據(jù)被置亂確保視頻信息的安全,即使視頻信息被截獲了,所能看到的圖像也是混亂而不可理解的。不同應(yīng)用場(chǎng)合對(duì)安全性的要求也是不同的,對(duì)于安全性級(jí)別要求較高的政治軍事等應(yīng)用場(chǎng)合,就必須設(shè)計(jì)安全性極高的加解密算法增加破譯的難度。然而對(duì)于普通的商業(yè)應(yīng)用,÷般認(rèn)為當(dāng)破譯密碼所需付出的代價(jià)大于直接購(gòu)買(mǎi)多媒體數(shù)據(jù)版權(quán)所需的代價(jià)時(shí),密碼系統(tǒng)是安全的。一般安全性需要的高低和處理的復(fù)雜度是成正比的。

2)壓縮比不變性

壓縮比不變性是指加解密前后的數(shù)據(jù)量保持不變。由于存儲(chǔ)設(shè)備和網(wǎng)絡(luò)帶寬的限制,視頻數(shù)據(jù)必須經(jīng)過(guò)壓縮后再進(jìn)行存儲(chǔ)和傳輸,故壓縮比是視頻壓縮標(biāo)準(zhǔn)中一個(gè)重要的性能指標(biāo)。在設(shè)計(jì)加解密算法時(shí),應(yīng)考慮到加密后對(duì)壓縮碼流的影響。使用具有壓縮率不變性的算法加密,在存儲(chǔ)過(guò)程中不改變數(shù)據(jù)占用的空間,在傳輸過(guò)程中保持傳輸速度不變。因此,理想的多媒體加密算法應(yīng)該具有壓縮率不變性。然而,加密和壓縮本身是矛盾的。在編碼的過(guò)程中設(shè)計(jì)加密算法,往往影響視頻的壓縮效率。視頻加密技術(shù)應(yīng)該盡可能的保證壓縮比不降低。

3)實(shí)時(shí)性

為了視頻信息能夠?qū)崟r(shí)傳輸和存取,加解密算法的使用不能給傳輸和存取帶來(lái)過(guò)大的延遲。如果加解密算法的使用給傳輸和存取帶來(lái)的延時(shí)過(guò)大,那么解碼器就無(wú)法順暢地解碼,這樣也就失去了視頻傳輸?shù)囊饬x。因此,要求加解密算法不能過(guò)于復(fù)雜,具有快速性的特點(diǎn),這樣可以滿(mǎn)足多媒體數(shù)據(jù)的實(shí)時(shí)性要求,保證加解密過(guò)程對(duì)編解碼時(shí)間的影響應(yīng)盡量小。

4)安全等級(jí)可控性

通過(guò)調(diào)節(jié)加密參數(shù),可以較好的控制加密強(qiáng)度。設(shè)計(jì)加密方案能夠自適應(yīng)改變加密強(qiáng)度來(lái)滿(mǎn)足不同的應(yīng)用場(chǎng)景。

2、加密算法描述

由于無(wú)線(xiàn)移動(dòng)設(shè)備有限的電量和處理器的能力,設(shè)計(jì)的加密方案要盡量加密最少的數(shù)據(jù)量以保證更好的壓縮效率和更低的代價(jià)。因此安全的選擇加密方案需要滿(mǎn)足兩個(gè)要求:被選擇加密的數(shù)據(jù)流要對(duì)視頻內(nèi)容的可理解性具有高度敏感性,同時(shí)被選擇的數(shù)據(jù)應(yīng)該與其他剩余信息獨(dú)立。加密方案根據(jù)視頻壓縮編碼原理和視頻本身的數(shù)據(jù)格式來(lái)選擇加密,這樣不用處理大量數(shù)據(jù),只處理關(guān)鍵數(shù)據(jù),對(duì)安全性和壓縮效率可以達(dá)到更好的平衡。在加密過(guò)程中,需要盡量簡(jiǎn)化加密算法,減少運(yùn)算量,減小密鑰的開(kāi)銷(xiāo),降低對(duì)計(jì)算機(jī)有限資源的占用,減少因加密造成的延遲,避免時(shí)間的過(guò)多耗費(fèi)。

本文提出了一種可分級(jí)的輕量級(jí)視頻信息安全的加密算法,該算法可以任意選擇亮度量化變換系數(shù)的加密數(shù)量,同時(shí)對(duì)運(yùn)動(dòng)矢量符號(hào)進(jìn)行加密。在視頻編碼的過(guò)程中,根據(jù)加密安全級(jí)別的不同需求,有選擇地對(duì)熵編碼前的亮度量化變換系數(shù)進(jìn)行加密。對(duì)于輸入的視頻幀,可以分為幀內(nèi)編碼和幀間編碼。幀內(nèi)編碼首先進(jìn)行幀內(nèi)預(yù)測(cè),然后對(duì)預(yù)測(cè)結(jié)果進(jìn)行變換、量化、熵編碼輸出,同時(shí)將恢復(fù)圖像作為重建幀,為后續(xù)圖像進(jìn)行運(yùn)動(dòng)估計(jì)的參考。幀間編碼則首先通過(guò)參考圖像進(jìn)行運(yùn)動(dòng)估計(jì),然后對(duì)補(bǔ)償后的殘差采用與幀內(nèi)編碼相似的處理。

直接加密DCT變換之前的系數(shù),會(huì)對(duì)編碼效率影響很大。量化是一個(gè)有損的變換,在量化之后進(jìn)行加密,后續(xù)的操作不會(huì)損失系數(shù)信息,可以保證加密后的數(shù)值可以得到正確的解密。經(jīng)過(guò)分析,在進(jìn)行熵編碼之前的量化變換系數(shù)是解碼的關(guān)鍵信息,適合加密,且加密不會(huì)過(guò)多增加編碼后的比特流。因此選擇量化變換系數(shù)進(jìn)行加密。加密過(guò)程中保持?jǐn)?shù)據(jù)格式信息(文件頭信息、幀頭信息和宏塊頭
信息等)不變。

此外,宏塊是由亮度塊和色度塊采樣組成的。由于人眼對(duì)亮度信息較色度信息更加敏感,而且壓縮后文件中亮度、色度信息分開(kāi)保存。而且運(yùn)動(dòng)估計(jì)過(guò)程只對(duì)亮度分量進(jìn)行,色度分量的運(yùn)動(dòng)則由亮度分量的運(yùn)動(dòng)矢量得到。考慮到圖像恢復(fù)時(shí)可以忽略色度信息而僅使用亮度信息進(jìn)行恢復(fù),此時(shí)對(duì)圖像中色度信息的加密將完全失去作用。因此可以只考慮亮度信息進(jìn)行加密處理,以減輕加密運(yùn)算給編碼器帶來(lái)的負(fù)擔(dān)。

從編碼過(guò)程來(lái)看,宏塊要同時(shí)進(jìn)行紋理編碼和運(yùn)動(dòng)編碼。變換量化編碼決定了圖像的紋理,運(yùn)動(dòng)向量決定了運(yùn)動(dòng)對(duì)象的信息。紋理信息和運(yùn)動(dòng)向量信息分別進(jìn)入熵編碼后輸出,兩者是獨(dú)立編碼的。如果紋理信息被加密,而不加密運(yùn)動(dòng)信息,視頻的運(yùn)動(dòng)軌跡還是可見(jiàn)的,運(yùn)動(dòng)對(duì)象的外形很容易得到。因此對(duì)運(yùn)動(dòng)矢量差值的進(jìn)行加密,為了不增加編碼負(fù)擔(dān),僅對(duì)運(yùn)動(dòng)矢量差的符號(hào)進(jìn)行加密。

在H.264的視頻編碼過(guò)程中,有四種類(lèi)型的量化變換系數(shù)。幀內(nèi)宏塊4*4和16*16兩種模式,幀間宏塊的編碼模式最終都轉(zhuǎn)化成4*4模式。對(duì)于幀內(nèi)宏塊16*16模式,DC系數(shù)是一個(gè)4*4數(shù)組(定義為T(mén)1),每個(gè)4*4的亮度塊中剩余的15個(gè)值組成AC系數(shù)(定義為T(mén)2)。在所有的幀內(nèi)宏塊和幀間宏塊的4*4編碼模式中,有15個(gè)AC系數(shù)(定義為T(mén)3)和1個(gè)DC(定義為T(mén)4)。因此,可以建立一個(gè)量化變換系數(shù)的四元組{TI,T2,T3,T4}。在實(shí)際的編碼過(guò)程中,4*4模式適合圖片細(xì)節(jié)的編碼,而16*16模式更加適合平滑區(qū)域的編碼。在編碼過(guò)程中,一般4*4模式比16*16模式使用的頻率要高。在設(shè)計(jì)的加密算法中,T4一定被加密,T1、T2和T3適當(dāng)?shù)剡M(jìn)行選擇加密。這是因?yàn)镈C系數(shù)獨(dú)立于其他的AC系數(shù),所以DC系數(shù)和AC系數(shù)的加密可以相互獨(dú)立的,也可以進(jìn)行自由的組合。

一個(gè)密碼系統(tǒng)由明文、密文、加密算法和解密算法、密鑰五部分組成。明文(T)經(jīng)過(guò)加密算法(E)、生成密文(C)、密鑰(K)是唯一能控制明文與密文之間變換的關(guān)鍵。分組加密算法包括DES、AES等算法,流密碼(序列密碼)算法的特點(diǎn)是對(duì)各個(gè)明文數(shù)據(jù)進(jìn)行變時(shí)傳輸,它通過(guò)用一個(gè)短的密鑰產(chǎn)生偽隨機(jī)序列。分組密碼算法和流密碼算法相比,分組密碼運(yùn)算復(fù)雜,流密碼系統(tǒng)操作快,易于實(shí)現(xiàn)。

本文采取如下式1)的加密方法,密文是原文和密鑰經(jīng)過(guò)異或操作獲得的。

T4系數(shù)一定被加密,T1、T2和T3可以自由地組合加密,加密進(jìn)程可以描述如下:

這里kl、k2和k3分別是T1、T2和T3的密鑰,α,β,γ分別是選擇加密T1,T2,T3用于加密的數(shù)域,例如Tl(a):T1[O],r1[1],…,Tl[a -1]。也就是說(shuō),算法可以根據(jù)加密安全級(jí)別和實(shí)際的應(yīng)用需求自適應(yīng)地調(diào)節(jié)α,β,γ的值。

然而,在熵編碼過(guò)程中,零系數(shù)的總數(shù)量和非零系數(shù)的順序是編碼的重要內(nèi)容。亮度量化變換系數(shù)作為熵編碼的輸入數(shù)據(jù),在加密時(shí),如果改變這些值將會(huì)對(duì)編碼器的壓縮比產(chǎn)生很大的影響。為了
保持熵編碼的統(tǒng)計(jì)特性和壓縮比不變性,當(dāng)量化變換系數(shù)的值為零時(shí),不進(jìn)行加密操作。

加密操作后,當(dāng)密文恰好等于零時(shí),解碼器遇到零時(shí),會(huì)跳過(guò)零值,而不進(jìn)行解密,這時(shí)解碼的流密鑰將會(huì)發(fā)生錯(cuò)位混亂。即使授權(quán)用戶(hù)用正確的密鑰解密,也會(huì)出現(xiàn)解密錯(cuò)誤,從而導(dǎo)致了嚴(yán)重的
解碼錯(cuò)誤。為了解決這個(gè)問(wèn)題,加密算法和解密算法按照如下公式3)的方式實(shí)現(xiàn),I這里Ti和Ci代表第i位的明文和密文,ki是第i位的流密鑰。

編碼器對(duì)每個(gè)加密后的密文檢測(cè),當(dāng)發(fā)現(xiàn)加密后的密文是零時(shí),用密鑰和密文值恢復(fù)出原文。這樣,在解碼器解密非零系數(shù)后,當(dāng)遇到解密之后值為零時(shí),就認(rèn)為傳輸來(lái)的密文就是正確的明文。

同時(shí),采取如下的算法對(duì)運(yùn)動(dòng)矢量差的符號(hào)進(jìn)行加密:

用1)式的方法生成偽隨機(jī)序列PS

三、實(shí)驗(yàn)結(jié)果

為了評(píng)估所提出算法的性能,用不同類(lèi)型的QCIF序列對(duì)提出的算法進(jìn)行測(cè)試。考慮到移動(dòng)應(yīng)用的低比特率和低延遲的特點(diǎn),采用H.264的基本層進(jìn)行編碼。在加密的過(guò)程中,沒(méi)有改變格式的同步信息。這樣,任何H.264的播放器都可以解碼,但僅有解密密鑰的播放器可以正確播放視頻流。

1、安全性

加密的主要目的是使得非授權(quán)的用戶(hù)得不到清晰的視頻圖像,因?yàn)榭梢杂脙煞N途徑來(lái)評(píng)估加密的效果,解碼后視頻的可視質(zhì)量和客觀(guān)的PSNR值。我們僅以提出的算法在最小的,中間的以及最大限度三種情況為代表進(jìn)行測(cè)試,使用(α,β,γ,1)四元組來(lái)進(jìn)行表示加密的參數(shù)情況。

以各種測(cè)試視頻序列為例,表1列舉各種測(cè)試序列在四元組(0,O,0,O)、(O,0,0,1)、(8,7,7,1)和(16,15,15,1)這四種情況下的PSN R值比較。圖1顯示了foreman和bus測(cè)試序列的解碼視覺(jué)效果圖。

加密算法隨著(α,β,γ,1)值的增加可以完成更好的安全性能。在網(wǎng)絡(luò)帶寬和處理能力允許的情況下,(α,β,γ,1)的值越大,系統(tǒng)的安全性越高。此外,系統(tǒng)采用了傳統(tǒng)的流密碼算法進(jìn)行加密,可以確保算法的安全性。

在實(shí)際應(yīng)用中,本文提出的可分級(jí)的加密方案可以根據(jù)應(yīng)用的需求以及要保護(hù)數(shù)據(jù)的敏感程度,來(lái)選擇不同的安全等級(jí),使得視頻圖像的不可理解的程度隨安全等級(jí)的不同而變化。同時(shí),該方法中的各個(gè)安全等級(jí)依次遞增,高安全等級(jí)的加密操作包含低安全等級(jí)的操作,這樣易于在傳輸過(guò)程中動(dòng)態(tài)地改變安全等級(jí),而不會(huì)出現(xiàn)由于安全等級(jí)的改變,使得應(yīng)用不同安全等級(jí)的數(shù)據(jù),在加解密時(shí)出現(xiàn)沖突,以致解碼端不能正確解密。

2、壓縮比

保持實(shí)時(shí)視頻系統(tǒng)中的壓縮比,是視頻加密算法的一個(gè)重要指標(biāo),用R來(lái)表示壓縮比增加率,R=(加密后的文件大小一原始文件大?。嘉募笮 1?顯示了不同視頻測(cè)試序列在上述四種情況下的加密前后的R值比較。

從比較結(jié)果得出,提出的算法使得比特率的增加不大,在實(shí)際應(yīng)用的需求下,通過(guò)選擇合適的參數(shù)可以降低比特率的增加。由于加密算法沒(méi)有擾亂文件的DCT系數(shù)的統(tǒng)計(jì)關(guān)系,而且加密采取的是位操作,因此可以保持編碼長(zhǎng)度,使得加密后的壓縮文件大小的增加不大。

3、帶寬代價(jià)

加密后的編碼比特率并沒(méi)有大幅地增加。由于移動(dòng)設(shè)備電源電量有限,算法使用了比快密碼速度快而且硬件復(fù)雜度低的流密碼算法進(jìn)行加密。而且,編碼選取了加密過(guò)程中重要的極少部分?jǐn)?shù)據(jù)進(jìn)行加密,因此加密算法的計(jì)算復(fù)雜度相對(duì)較低,可以滿(mǎn)足移動(dòng)視頻應(yīng)用的要求。

小知識(shí)之無(wú)線(xiàn)應(yīng)用

“無(wú)線(xiàn)應(yīng)用”(wireless application),是指在無(wú)線(xiàn)網(wǎng)絡(luò)承載的基礎(chǔ)上的各種軟件應(yīng)用,可以是大型軟件,例如移動(dòng)辦公、電子醫(yī)療;也可以是小型軟件,如:聽(tīng)歌、看電影、聊天工具等。