主動(dòng)攻擊安全的可擴(kuò)展FGS加密算法

一、引言

流式服務(wù)中的細(xì)粒度可擴(kuò)展視頻編碼標(biāo)準(zhǔn)MPEG-4 FGS(Fine Granularity Scalability),它的基本思想是將視頻編碼分成一個(gè)可以單獨(dú)解碼的基本層碼流( Base Layer Bitstream)和一個(gè)可以在任何地點(diǎn)截?cái)嗟脑鰪?qiáng)層碼流(Enh ancement Layer Bit -stream),其中基本層碼流能夠適應(yīng)最低的網(wǎng)絡(luò)帶寬,提供一個(gè)基本的圖像質(zhì)量,增強(qiáng)層碼流能夠覆蓋一定網(wǎng)絡(luò)帶寬變化的動(dòng)態(tài)范圍,提供從基本層圖像到無損失圖像質(zhì)量的細(xì)粒度增強(qiáng),如圖1所示。

目前,針對(duì)M PEG2/4壓縮編碼視頻流的加密算法,大多采用選擇某些關(guān)鍵碼字信息進(jìn)行加密,如DC系數(shù),AC系數(shù)或運(yùn)動(dòng)向量,以及它們各自的符號(hào)位,但是這種加密算法是否安全,缺乏有效的分析和證明,另一方面,從MPEG-4 FGS的結(jié)構(gòu)(圖1)可以看到,因?yàn)樵鰪?qiáng)層是采用基本層的VOP作為參照層而獲得的,從理論上看,只對(duì)FGS基本層采用非可擴(kuò)展視頻加密處理,就可以得到對(duì)整個(gè)FGS視頻的加密效果,實(shí)際上,如果針對(duì)每一個(gè)獨(dú)立的VOP考慮,這種觀點(diǎn)是完全正確的,但是如果對(duì)整個(gè)運(yùn)動(dòng)序列和連續(xù)的VOP進(jìn)行觀測(cè)和處理,情況就完全不同,選擇性加密,就是選擇壓縮視頻流的關(guān)鍵數(shù)據(jù)進(jìn)行部分加密,這種方式是目前壓縮視頻流加密的普遍方式,對(duì)于這種方式的安全性的討論目前只限于被動(dòng)式的安全分析,即視覺效果分析,但是,對(duì)于這種方式在主動(dòng)攻擊下的安全性的討論比較欠缺,這里我們對(duì)選擇加密算法進(jìn)行時(shí)域一頻域相關(guān)性的主動(dòng)攻擊的安全性分析。

1、加密算法分析

采用選擇加密或者采用完全加密,對(duì)于系統(tǒng)安全,或者是對(duì)已知明文攻擊來說都是魯棒的,因?yàn)閷?duì)于每幀的加密所采用的偽隨機(jī)序列都是不同的,并采用了內(nèi)容獨(dú)立的RC4密鑰設(shè)定,選擇性加密模式和完全加密模式對(duì)于其它攻擊方法所表現(xiàn)出的可靠性因素也不同,在完全加密模式下,安全性依賴于加密所運(yùn)用的具體算法,采用C&S算法是足夠安全的,對(duì)于選擇性加密模式,安全性會(huì)根據(jù)視頻流的具體特點(diǎn)而不同,相關(guān)性強(qiáng)的視頻,安全性就較弱。

對(duì)于Tang的加密算法,即僅僅加密DC系數(shù),會(huì)使加密幀的某些邊緣信息暴露出來;加密AC系數(shù)的符號(hào)位只能針對(duì)AC系數(shù)的非零參數(shù),對(duì)QCIF圖像的非零AC參數(shù)進(jìn)行測(cè)試實(shí)驗(yàn)得到,如果將AC參數(shù)預(yù)測(cè)功能開啟,序列M iss-A-marican平均30kbps的碼率下才有一個(gè)非零AC參數(shù),而Coast Guard序列平均每lOOkbps才會(huì)出現(xiàn)4.3個(gè)非零的AC系數(shù),因此,如果對(duì)AC系數(shù)的符號(hào)位進(jìn)行窮取攻擊,一個(gè)8×8的塊前一個(gè)序列只需要進(jìn)行2次運(yùn)算測(cè)試,后一個(gè)序列只需進(jìn)行16次運(yùn)算測(cè)試就可以得到,對(duì)于符號(hào)位的破解在這種情況下是較為容易的,之所以非零AC系數(shù)會(huì)很少,是因?yàn)檫x擇的圖像序列具有很強(qiáng)的相關(guān)性,同時(shí)所限定的碼率很??;這樣對(duì)AC系數(shù)的翻轉(zhuǎn)處理就會(huì)失去效果。

由于一幀圖像內(nèi)的運(yùn)動(dòng)向量的數(shù)目是有限的,對(duì)于窮取攻擊來說,運(yùn)動(dòng)向量的符號(hào)位加密也不夠安全,對(duì)于運(yùn)動(dòng)向量的殘余碼進(jìn)行加密也不會(huì)有很好的效果,這是由于運(yùn)動(dòng)向量殘余碼只要很少的位數(shù),而且一個(gè)錯(cuò)誤的運(yùn)動(dòng)向量殘余碼字不會(huì)對(duì)整個(gè)圖像帶來很大的視覺混亂。

2、視頻基本層加密算法的時(shí)域一頻域相關(guān)性攻擊方法

針對(duì)基本層的加密,或者時(shí)域可擴(kuò)展FGST編碼方式下的選擇加密算法,都可以利用壓縮視頻流的時(shí)域、頻域相關(guān)性,設(shè)計(jì)主動(dòng)攻擊策略,目前絕大多數(shù)的選擇加密算法主要是選擇壓縮視頻流的DC信息,AC信息,運(yùn)動(dòng)向量,以及其它如量化參數(shù)等信息,加密時(shí)既能是整個(gè)碼字,也可以是其符號(hào)位。

對(duì)選擇加密算法的攻擊可以先從最薄弱的部分開始,例如選擇加密是運(yùn)動(dòng)向量的符號(hào)位,那么首先對(duì)運(yùn)動(dòng)向量的符號(hào)位進(jìn)行攻擊,如圖2所示,當(dāng)一個(gè)球從圖的左下角勻速運(yùn)動(dòng)到圖的右上角,球所包含的宏塊的運(yùn)動(dòng)向量經(jīng)過隨機(jī)翻轉(zhuǎn)加密,那么,從加密算法的隨機(jī)特性得出,對(duì)于像素來說,總會(huì)有將近一半的像素具有正確的運(yùn)動(dòng)向量(正負(fù)符號(hào)各半),對(duì)一個(gè)宏塊來說,也總會(huì)有將近一半的幀具有正確的運(yùn)動(dòng)向量,表現(xiàn)出整體的運(yùn)動(dòng)趨勢(shì)。

對(duì)于運(yùn)動(dòng)向量碼字加密攻擊方法,可以根據(jù)相同物體在空間和時(shí)間的運(yùn)動(dòng)相關(guān)性進(jìn)行攻擊,設(shè)小球內(nèi)宏塊a在frame-1的運(yùn)動(dòng)向量為a1,其預(yù)測(cè)運(yùn)動(dòng)向量a’1,編碼運(yùn)動(dòng)向量為a1''=a1-a1’,如果小球勻速運(yùn)動(dòng),那么宏塊a會(huì)出現(xiàn)a1''=a2''a3”=a”4,在這種情況下,如果對(duì)明文加密的密鑰相同,密文也必定相同,那么物體的運(yùn)動(dòng)依然保持一定程度的一致性,實(shí)際的測(cè)試也證明這一點(diǎn),如果對(duì)明文加密的密鑰不同,可以采用已知明文攻擊的方法,根據(jù)明文相關(guān)性的特點(diǎn),進(jìn)行選擇明密文的攻擊。

對(duì)于DC碼字加密攻擊方法,由于DCT變換后的DC值表示塊內(nèi)8×8像素的平均亮度和Cr,Cb色差值,仍然可以利用物體的空間相關(guān)性,相鄰塊可能具有相同的DC值,時(shí)間相關(guān)性表示相鄰幀的同一位置的宏塊(塊)有可能具有相同的DC值,雖然DC也采用差值編碼,但是對(duì)其的攻擊可以采用和MV攻擊方法類似的方法進(jìn)行。

對(duì)于AC系數(shù)的攻擊方法。AC系數(shù)符號(hào)位的翻轉(zhuǎn)加密,實(shí)質(zhì)上是對(duì)8×8塊DCT變換后的相應(yīng)頻率的系數(shù)進(jìn)行相位翻轉(zhuǎn),在i幀中,AC系數(shù)和原圖像與亮度值相關(guān),那么兩個(gè)相鄰I幀就有可能具有相同的AC參數(shù),相鄰塊的AC系數(shù)也有可能相同,根據(jù)這些信息,可以對(duì)AC系數(shù)的符號(hào)位采用相應(yīng)的方法進(jìn)行攻擊,在P,B幀中,AC系數(shù)與當(dāng)前圖像和預(yù)測(cè)圖像的差值相關(guān),AC系數(shù)的符號(hào)位需要采用窮舉的方法進(jìn)行測(cè)試,由于塊中有限的非零AC系數(shù)的緣故,尤其是在低碼率壓縮的情況下,測(cè)試的數(shù)量可以更少。

3、視頻基本層加密算法的安全性測(cè)試

我們對(duì)FGS的基本層加密做以下選擇性實(shí)驗(yàn),首先將一個(gè)QCIF的視頻流壓縮為較低碼率(50kbps)的基本層,和較高碼率的增強(qiáng)層,總碼率為1.OMbps。然后將基本層的像素值值設(shè)置為0(或者別的固定值),然后進(jìn)行FGS流的重構(gòu)。通過對(duì)不同類型的視頻剪輯的測(cè)試,得到了有趣的結(jié)果。如果觀察每一個(gè)單獨(dú)的量構(gòu)幀,那么會(huì)顯示明顯的隨機(jī)特性,不可能獲得更多有用的信息,但如果對(duì)重構(gòu)幀進(jìn)行播放,此時(shí)運(yùn)動(dòng)對(duì)象的輪廓會(huì)較為清楚地顯現(xiàn).更為嚴(yán)重的是,這種運(yùn)動(dòng)對(duì)象和它的行動(dòng),可以通過人的觀察獲得正確語義描述。在許多應(yīng)用中,視頻加密系統(tǒng)的這種信息泄漏是不可接受的,從一個(gè)視頻流的相鄰幀間的強(qiáng)相關(guān)性進(jìn)行解釋,當(dāng)基本層中的參考幀非常相關(guān)的情況下,這些序列的增強(qiáng)幀會(huì)澄漏較多的有用信息,也就是說,僅僅對(duì)基本層進(jìn)行加密不能保證整個(gè)MPEG4FGS視頻流的安全。

二、基于主動(dòng)攻擊安全的可擴(kuò)展FGS加密算法

本文提出的對(duì)FGS的基本層和增強(qiáng)層同時(shí)進(jìn)行加密,其加密算法原理圖如圖3所示,圖中分別給出了三種加密模型:基于細(xì)粒度時(shí)域可擴(kuò)展編碼FGST (fine granularity scalable temporal)的VOP加密模型,基于C&S(chain&sum)的VOP加密模型和基于RC4(二進(jìn)制加法瀧密碼算法)的VOP加密模型。從圖中看到,基本層既可以是選擇加密,也可以是完全加密;增強(qiáng)層采用選擇加密,也就是選擇偽隨機(jī)序列異或增強(qiáng)層的DCT系效符號(hào)位進(jìn)行加密,不同的幀采用不同的隨機(jī)序列,以避免相同的隨機(jī)序列在不同的幀中重復(fù)使用,這種重復(fù)使用對(duì)于流加密來說是一個(gè)最大的安全隱患。

本算法可以應(yīng)用于任何的網(wǎng)絡(luò)分布模型,在超分布模型中,內(nèi)容加密和許可證是分別進(jìn)行分發(fā)的,許可證一般分發(fā)到特定的用戶;只有合法的被允許的機(jī)器才可以對(duì)保護(hù)的內(nèi)容進(jìn)行訪問,為了最大意義的安全,對(duì)每個(gè)節(jié)目視頻采用不同的加密密鑰。

1、基本層加密算法

基本層加密采用C&S加密算法。C&S(chain&sum)加密算法由Jakubowski和Venkatesan最近提出,主要是基于CBC-MAC(塊加密鏈、消息提取碼)的加密算法,用于加密單元的加密運(yùn)算既可以是選擇加密,也可以是完全加密,在選擇加密情況下,加密域包括:比特位數(shù)量DC值(intra_dc_coef-ficient和dct-dc_differential),DCT系效符號(hào)位,運(yùn)動(dòng)向量符號(hào)位(horizontal_mv_data和vertical_mv_data)和運(yùn)動(dòng)向量余效(horizontal_mv_residual和vertiC81—mv- residual)。對(duì)于每一幀數(shù)據(jù),這些數(shù)據(jù)被提取出來形成消息序列,然后采用C&S的方法進(jìn)行加密,密文再放圓FGS流的原位置中替換原效據(jù),在完全加密情況下,基本層每幀中除了VOP頭信息以外的熵編碼視頻數(shù)據(jù)均被C&S算法加密。

基本層采取選擇加密或選擇完全加密,都不會(huì)影響視頻效據(jù)的熵編碼,因?yàn)镃&S加密算法保持被加密數(shù)據(jù)的大小,不會(huì)對(duì)FGS的壓縮效率帶來負(fù)面影響,選擇加密算法與MPEG4 FGS格式是全兼容的,就是說,一個(gè)FGS的標(biāo)準(zhǔn)播放器可以播放選擇加密的視頻流,這一點(diǎn)比完全加密算法具有優(yōu)勢(shì)。完全加密具有較高的保密性,但在不解密或者是解密錯(cuò)誤的情況下,播放加密視頻會(huì)使標(biāo)準(zhǔn)的FGS播放器崩潰。

通常情況下,采用基本層加密方法必須等到一幀圖像的所有加密數(shù)據(jù)都收集到后才可以進(jìn)行解密,這就需要緩存區(qū)必須存儲(chǔ)整個(gè)幀的基本層,同時(shí)還需要記住每一個(gè)加密域的位置和比特效,還必須進(jìn)行兩次基本層數(shù)據(jù)的提取,其中一次進(jìn)行解密運(yùn)算,另一次進(jìn)行解壓縮運(yùn)算,這對(duì)于某些應(yīng)用環(huán)境是不適宜的.如果客戶端的處理器能力或資源存在限制,可以采用流加密算法,如使用RC4算法來替代以上兩種方式所采用的C&S算法。

本文提出的基本層加密方法如下:在每幀基本層的頭信息中,產(chǎn)生不同的隨機(jī)數(shù),由它和加密密鑰作為流加密的密鑰,對(duì)每幀生成不同的隨機(jī)序列對(duì)幀效據(jù)進(jìn)行異或處理。對(duì)于一般長度的視頻流,采用32位的隨機(jī)數(shù)對(duì)于每幀來說已經(jīng)足夠,確保了一個(gè)視頻流中不同幀的隨機(jī)序列不同,除非隨機(jī)數(shù)產(chǎn)生碰撞,但如果選擇好的隨機(jī)序列發(fā)生器,這種概率就會(huì)非常小,因?yàn)镽C4存在極大的可能狀態(tài)(大約2的1700次方)。這就保證了加密內(nèi)容的安全性.插入的隨機(jī)數(shù)被作為增強(qiáng)層加密所采用的C&S算法的預(yù)MAC值。

2、增強(qiáng)層加密算法

增強(qiáng)層加密采用RC4加密算法,RC4是一種二進(jìn)制加法流密碼算法,它使用可變長度密鑰,從8到2048位。算法的核心部分是一個(gè)密鑰流的發(fā)生函數(shù),產(chǎn)生的流序列和明文進(jìn)行異或運(yùn)算以獲得密文。

從基本層獲得的預(yù)MAC值用于增強(qiáng)幀的加密,它和加密密鑰一起作為RC4算法的一個(gè)輸入,產(chǎn)生一個(gè)隨機(jī)序列來與增強(qiáng)層的DCT系數(shù)的符號(hào)位進(jìn)行異或處理,可以設(shè)定任意的字串如uenhancement layer一來作為RC4的另一個(gè)輸入,以保證基本層和增強(qiáng)層產(chǎn)生的RC4隨機(jī)序列的不同。通過RC4產(chǎn)生的偽隨機(jī)序列被捧列成和原圖像大小相同的二進(jìn)制矩陣,增強(qiáng)層中DCT系效的符號(hào)位一旦在增強(qiáng)層出現(xiàn),就和偽隨機(jī)二進(jìn)制矩陣的相同位置上的位進(jìn)行異或,這種情況下,即使在傳輸過程中出現(xiàn)某個(gè)包丟失,也可以容易地將所接受到的其它包和正確的隨機(jī)位對(duì)齊,進(jìn)行解密處理。

對(duì)于FGST VOPs的情況,某些FGST VOPs可能使用相同的基本層幀作為參考幀,以上描述的方法會(huì)對(duì)不同的FGST VOPs產(chǎn)生相同的隨機(jī)序列,造成對(duì)安全性不利的影響,為避免這種情況發(fā)生,在每個(gè)FGST VOP的頭信息中插入幀序列號(hào),這個(gè)序列號(hào)作為RC4的輸入,這樣對(duì)于具有相同參考基本幀的FGST VOPs就會(huì)產(chǎn)生不同偽隨機(jī)序列。幀計(jì)數(shù)器可以被不同的FGST VOPs組重復(fù)使用,因?yàn)橛伤鶇⒖嫉幕緦荧@得的預(yù)MAC也會(huì)作為RC4的密鑰輸入。對(duì)于絕大多效的應(yīng)用,每幀2到3個(gè)比特就足夠使用了。這種加入幀計(jì)效囂的方法比利用增強(qiáng)層幀的時(shí)間戳要好,因?yàn)閭鬏斶^程的中間階段一些標(biāo)準(zhǔn)的操作需要改變時(shí)間戳,如果某些FGST VOPs被丟失,解密操作就不能對(duì)以后的FGST VOPs產(chǎn)生正確的隨機(jī)序列。

這種增強(qiáng)層加密方法,具有恢復(fù)原來未加密的增強(qiáng)層錯(cuò)誤的能力,它可以支持FGS壓縮所提供的增強(qiáng)層上的所有操作和功能,由于在絕大部分應(yīng)用當(dāng)中,基本層一般被重點(diǎn)保護(hù)以防止包丟失和位镥誤,由于其碼率較低,處理的計(jì)算負(fù)荷不會(huì)很大,所以碼率切割等操作一般都只在增強(qiáng)層上進(jìn)行。

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

本文所提出的算法方案以C++語言進(jìn)行實(shí)現(xiàn),所有的測(cè)試基于P4 2.8GHZ Dell PC,512M內(nèi)存,我們?cè)谠摥h(huán)境下對(duì)許多的QCIF視頒序列進(jìn)行了測(cè)試,結(jié)果如下。

對(duì)于MPEG提供的akyio序列,基本層的碼率為7.65kbps,增強(qiáng)層的碼率為2.581Mbps。

采用選擇加密算法進(jìn)行加密時(shí),加密位的數(shù)據(jù)占基本層全部數(shù)據(jù)位的15. 72%,基本層加密運(yùn)算的處理速度為25Mbps,基本層和增強(qiáng)層同時(shí)加密時(shí)總速度為7905 MbpsI采用完全加密算法進(jìn)行加密時(shí),基本層加密處理速度為55mbps,基本層和增強(qiáng)層同時(shí)加密時(shí)總速度為17391 Mbps。加密速度比選擇加密時(shí)要快,這是由于采用基本層加密時(shí),雖然C&S算法的速度比較快,但是對(duì)加密碼字的提取和加密后碼字的放回需要花費(fèi)較多的時(shí)間。

從實(shí)驗(yàn)結(jié)果可以看到,加密/解密算法的速度相對(duì)于C&S算法/RC4或RC5算法要低,這是因?yàn)闆]有針對(duì)某個(gè)特定的硬件平臺(tái)進(jìn)行匯編代碼優(yōu)化的緣故。

在實(shí)驗(yàn)中,我們對(duì)視頻流中兩個(gè)連續(xù)視頻點(diǎn)(a點(diǎn)和b點(diǎn))的圖像進(jìn)行了抓拍,得到的加密圖像如圖4所示。

其中圖4(a1)、(b1)為兩個(gè)視頻點(diǎn)的原始圖像。(a2)、(b2)為加密基本層后得到的圖像,(a3),(b3)為同時(shí)加密基本層和增強(qiáng)層后得到的圖像。從圖4中可以看到,采用基本層加密沒有獲得很好的加密效果,如果采用基本層和增強(qiáng)層同時(shí)加密,將獲得十分理想的加密效果。

四、結(jié)論

本文通過對(duì)傳統(tǒng)視頻流加密算法的安全性分析,提出了針對(duì)MPEG4 FGS視頓流的基于主動(dòng)攻擊安全的可擴(kuò)展FGS加密算法,即基本層和增強(qiáng)層同時(shí)進(jìn)行加密,加密支持FGST特殊情況下的加密要求,支持FGS流格式所具有的可擴(kuò)展的功能和特性,加密只需一次,就可以使傳輸?shù)闹虚g階段直接在密文上進(jìn)行處理而不需要解密過程,使系統(tǒng)資源得到最大的利用。這種加密方式不會(huì)對(duì)FGS的視頻恢復(fù)和壓縮效率帶來負(fù)面影響,而在提高視頻安全性的同時(shí),視頻回放沒有出現(xiàn)掉包現(xiàn)象,獲得了理想的效果。

小知識(shí)之視頻流視頻流是指視頻數(shù)據(jù)的傳輸,例如,它能夠被作為一個(gè)穩(wěn)定的和連續(xù)的流通過網(wǎng)絡(luò)處理。因?yàn)榱鲃?dòng),客戶機(jī)瀏覽器或插件能夠在整個(gè)文件被傳輸完成前顯示多媒體數(shù)據(jù)。視頻流技術(shù)基于 2 密鑰技術(shù),視頻譯碼技術(shù)和可升級(jí)的視頻分發(fā)技術(shù)發(fā)展。