視頻加密算法的無線應用

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

一、已有的視頻加密算法

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

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

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

1、加密算法要求

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

1)安全性和不可見性

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

2)壓縮比不變性

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

3)實時性

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

4)安全等級可控性

通過調(diào)節(jié)加密參數(shù),可以較好的控制加密強度。設(shè)計加密方案能夠自適應改變加密強度來滿足不同的應用場景。

2、加密算法描述

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

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

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

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

從編碼過程來看,宏塊要同時進行紋理編碼和運動編碼。變換量化編碼決定了圖像的紋理,運動向量決定了運動對象的信息。紋理信息和運動向量信息分別進入熵編碼后輸出,兩者是獨立編碼的。如果紋理信息被加密,而不加密運動信息,視頻的運動軌跡還是可見的,運動對象的外形很容易得到。因此對運動矢量差值的進行加密,為了不增加編碼負擔,僅對運動矢量差的符號進行加密。

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

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

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

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

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

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

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

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

同時,采取如下的算法對運動矢量差的符號進行加密:

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

三、實驗結(jié)果

為了評估所提出算法的性能,用不同類型的QCIF序列對提出的算法進行測試。考慮到移動應用的低比特率和低延遲的特點,采用H.264的基本層進行編碼。在加密的過程中,沒有改變格式的同步信息。這樣,任何H.264的播放器都可以解碼,但僅有解密密鑰的播放器可以正確播放視頻流。

1、安全性

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

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

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

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

2、壓縮比

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

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

3、帶寬代價

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

小知識之無線應用

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