袁志民 ,朱春磊 ,呂成都
(1.海軍工程大學(xué) 信息安全系,湖北 武漢 430000;2.中國(guó)人民解放軍第91208部隊(duì),山東 青島 266000)
在如今信息飛速發(fā)展的時(shí)代,智能監(jiān)控?cái)z像頭因其能夠遠(yuǎn)程監(jiān)控、錄制視頻等功能,便成了許多行政機(jī)構(gòu)、公司和家庭保障安全的不二選擇;因此,智能監(jiān)控?cái)z像頭在智能監(jiān)控、實(shí)時(shí)視頻通信和視頻動(dòng)態(tài)認(rèn)證等領(lǐng)域應(yīng)用越來(lái)越廣泛,隨之而來(lái)的視頻流數(shù)據(jù)安全問(wèn)題也日趨嚴(yán)重[1]。目前,視頻流數(shù)據(jù)安全問(wèn)題愈演愈烈,其中主要包括:網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的信令和視頻數(shù)據(jù)遠(yuǎn)程傳輸?shù)牟话踩?,即傳輸過(guò)程中數(shù)據(jù)的完整性、可用性和機(jī)密性存在被破壞的可能;視頻監(jiān)控后端系統(tǒng)的存儲(chǔ)監(jiān)控視頻數(shù)據(jù)易被竊取,或者用戶的個(gè)人信息可被任意查看;未對(duì)重要視頻流數(shù)據(jù)進(jìn)行加密處理,部分加密后的視頻數(shù)據(jù)安全性較低,無(wú)法防止重放攻擊,解密技術(shù)等攻擊手段[2-3]。
具有較高的安全性、較低的計(jì)算復(fù)雜度、壓縮比不變、數(shù)據(jù)可操作性是一個(gè)性能較好的視頻加密算法應(yīng)具備的特點(diǎn)。而本文針對(duì)智能監(jiān)控、實(shí)時(shí)視頻通信和視頻動(dòng)態(tài)認(rèn)證等視頻應(yīng)用場(chǎng)景,對(duì)現(xiàn)有視頻加密算法進(jìn)行研究,并采用理論結(jié)合實(shí)際的方法,提出一種基于SM4的選擇性視頻加密算法,達(dá)到視頻加密傳輸保密性和實(shí)時(shí)性的要求。
SM4算法為分組密碼算法,算法的分組長(zhǎng)度和密鑰長(zhǎng)度均為128 bit。加解密的算法結(jié)構(gòu)相同,都采用32輪非線性迭代結(jié)構(gòu),且輪密鑰在使用順序上相反,解密密鑰也為加密密鑰的逆序[4-6]。
該算法首先進(jìn)行參數(shù)生成,經(jīng)過(guò)輪函數(shù)的線性與非線性變換得到字,然后通過(guò)對(duì)隨機(jī)生成的主密鑰進(jìn)行密鑰擴(kuò)展算法,使加密密鑰生成輪密鑰,最后將明文輸入進(jìn)行加解密算法變換得到密文輸出。
輸出反饋模式(Output Feedback),如圖1所示,其工作原理是先通過(guò)移位寄存器輸入明文隨機(jī)數(shù),用塊加密器生成密鑰流,再將密鑰流對(duì)明文流進(jìn)行加密得到密文流,密文流輸出成為下一個(gè)隨機(jī)數(shù)再與密鑰流進(jìn)行加密生成新的密文,如此繼續(xù);解密是先用塊加密器生成相同的密鑰,再將密鑰流對(duì)密文流進(jìn)行解密得到明文流。這種工作模式十分適用于流數(shù)據(jù)的加密,因此廣泛應(yīng)用在視頻流數(shù)據(jù)的加密[7]。
OFB模式不僅具有普通流密碼算法的優(yōu)點(diǎn),而且隱藏了明文模式,還可對(duì)任意長(zhǎng)度的流數(shù)據(jù)進(jìn)行加密,并且不需要對(duì)流數(shù)據(jù)進(jìn)行分組填充。因其將分組密碼加密算法轉(zhuǎn)變成流模式,更適合于加密冗余度較大的數(shù)據(jù)(語(yǔ)音、圖像和視頻數(shù)據(jù)),且在加密過(guò)程中產(chǎn)生奇偶校驗(yàn)位,則在傳輸過(guò)程中的比特錯(cuò)誤也不會(huì)繼續(xù)向后傳播。但是OFB模式不利于并行計(jì)算;對(duì)明文的主動(dòng)攻擊是可能的;并且當(dāng)存在錯(cuò)誤碼流時(shí)具有誤差傳送,一個(gè)明文單元誤差會(huì)影響后續(xù)多個(gè)單元結(jié)果。
圖1 國(guó)產(chǎn)SM4加密算法OFB工作模式
選擇性視頻加密算法是通過(guò)對(duì)視頻數(shù)據(jù)的某些關(guān)鍵信息進(jìn)行選擇性加密的方法,可大致分為以下幾類:
(1)基于視頻幀結(jié)構(gòu)的選擇性加密。此加密方法僅僅只對(duì)數(shù)據(jù)中的關(guān)鍵幀I幀進(jìn)行加密,而這種加密方式?jīng)]有對(duì)幀與幀之間相關(guān)性大的I-Block加密,則無(wú)法達(dá)到保護(hù)數(shù)據(jù)安全性的密級(jí)。
(2)對(duì)格式頭信息的加密。視頻序列都是有一定結(jié)構(gòu)特性的圖像數(shù)據(jù),起始位置為一個(gè)格式頭信息,緊接著為圖像數(shù)據(jù)。該算法對(duì)視頻序列的格式頭信息進(jìn)行加密,使之成為隨機(jī)序列并與其它數(shù)據(jù)混合,但格式頭信息包含的關(guān)鍵數(shù)據(jù)量較小,加密后的數(shù)據(jù)安全性得不到保證。
(3)Meyer and Gadegast 提出設(shè)計(jì)了一種新的類似動(dòng)態(tài)圖像專家組(Moving Picture Experts Group,MPEG)比特流的視頻加密算法,稱之為SECMPEG[8]。此算法可以使用標(biāo)準(zhǔn)的加密算法,如:數(shù)據(jù)加密算法(Data Encryption Algorithm,DEA)、公鑰加密算法(Rivest Shamir Adleman,RSA)、SM4等,從而實(shí)現(xiàn)不同安全級(jí)別的密級(jí)。但是SECMPEG與標(biāo)準(zhǔn)MPEG比特率算法不兼容,則需要單獨(dú)設(shè)計(jì)專門的編解碼器。
只對(duì)視頻流的關(guān)鍵幀、格式頭信息等數(shù)據(jù)進(jìn)行加密會(huì)改變數(shù)據(jù)的格式,使得加密后的數(shù)據(jù)流在安全性、兼容性和可操作性上效能較差[9-12]。若要提高算法性能則可作為加密算法的一個(gè)組成部分,或與其他加密算法混合使用。
本文利用國(guó)產(chǎn)SM4算法中的輸出反饋模式(Output Feedback,OFB)將分組密碼算法變成同步的流模式。首先使移位寄存器生成n比特的明文隨機(jī)數(shù)X,將其與塊加密器產(chǎn)生密鑰流進(jìn)行簡(jiǎn)單異或,得到工作密鑰K,利用工作密鑰K對(duì)視頻流關(guān)鍵數(shù)據(jù)使用SM4算法選擇性加密,同時(shí)將工作密鑰K左移N位進(jìn)行下一次異或,如此繼續(xù)。解密時(shí),產(chǎn)生相同的密鑰流對(duì)密文進(jìn)行解密得到明文流,逐一而論。
由于明文隨機(jī)數(shù)和工作密鑰只在最終的異或過(guò)程中使用,于是可以事先對(duì)輸入的隨機(jī)數(shù)X(見(jiàn)圖2)加密,最后將明文或工作密鑰進(jìn)行并行的異或加密,則可以利用輸入全部為0的密碼分組鏈接模式(Cipher Block Chaining,CBC)生成OFB模式的密鑰流。而密鑰流可以利用快速的CBC硬件實(shí)現(xiàn)來(lái)加速OFB模式的加密過(guò)程,因此,這種方法具有較好的實(shí)用性[13]。
通過(guò)以上理論基礎(chǔ)的分析及公式的推導(dǎo),利用國(guó)產(chǎn)SM4算法的強(qiáng)安全性和選擇性視頻加密算法的實(shí)用性,將國(guó)產(chǎn)SM4算法和選擇性視頻加密算法相結(jié)合,既滿足視頻加密的安全性又保證視頻傳輸?shù)膶?shí)時(shí)性,下文將此混合加密算法推研闡述并利用實(shí)驗(yàn)進(jìn)行研究驗(yàn)證。
2.2.1 輪函數(shù)
用Z e表示e比特的向量集,Z32中的元素稱為字,Z8中的元素稱為字節(jié),寄存器首先生成一個(gè)n比特的隨機(jī)數(shù)X,使得Z+X=MX=128比特,設(shè)明文輸入(X0,X1,X2,X3)∈(Z32)4,輪密鑰為rk∈Z32,輪函數(shù)F為:
合成置換:Z32,是一個(gè)可逆變換,由非線性變換τ和線性變換L復(fù)合而成,即T(·)=L(τ(·))。
非線性變換τ由4個(gè)并行的S盒置換構(gòu)成。每個(gè)S盒為固定的8 bit輸入8 bit輸出的置換,記為Sbox()。
設(shè)輸入為A(a0,a1,a2,a3)∈(Z8)4,輸出為B(b0,b1,b2,b3)∈ (Z8)4,則:
線性變換L的輸入是非線性變換τ的輸出。設(shè)輸入為B∈Z32,輸出為C∈Z32,則:
2.2.2 密鑰生成擴(kuò)展
首先隨機(jī)生成一個(gè)主密鑰,然后注入給加密方和解密方,根據(jù)本算法中的輪密鑰由事先注入的主密鑰通過(guò)密鑰擴(kuò)展算法生成:
加密密鑰:MK=(MK0,MK1,MK2,MK3),MKi∈Z32,i=0,1,2,3;
令Ki∈Z32,i=0,1,…,35,輪密鑰為rki∈Z32,i=0,1,…,31,輪密鑰由工作密鑰生成,輪密鑰生成方法為:
首先對(duì)加密密鑰進(jìn)行運(yùn)算,可得:
然后對(duì)i=0,1,2,…,31:
最后將所得到的密文X35,X34,X33,X32進(jìn)行相對(duì)應(yīng)的運(yùn)算,得到:Length=X35+X34+X33+X32=128bit[14],K為工作密鑰;
2.2.3 加/解密算法
設(shè)密文輸出(Y0,Y1,Y2,Y3)∈(Z32)4,輪密鑰 為rki∈Z32,i=0,1,2,…,31。 反 序 變 換R為R(A0,A1,A2,A3)=(A3,A2,A1,A0),Ai∈Z32,i=0,1,2,3。 由式(1)可知,首先執(zhí)行32次迭代運(yùn)算:
由式(1)、式(6)可得,最后一輪數(shù)據(jù)進(jìn)行反序變換并得到密文輸出:
解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。
由于加密明文為128 bit,由SM4算法流程可知,加密明文長(zhǎng)度=工作密鑰K的長(zhǎng)度Length=128 bit,將視頻信息的二進(jìn)制數(shù)據(jù)流分為N個(gè)128 bit的數(shù)列,如下形式:a1,a2,a3…a2n-1,a2n。
在每一個(gè)128 bit的數(shù)據(jù)流中選擇奇數(shù)列字節(jié)組成奇隊(duì)列,偶數(shù)列字節(jié)組成偶隊(duì)列;將奇數(shù)列的數(shù)據(jù)流進(jìn)行簡(jiǎn)單異或,得到密文z1,z2…zn;
使用上述算法流程運(yùn)算得到的工作密鑰K1由SM4算法對(duì)偶隊(duì)列的第1個(gè)128 bit數(shù)據(jù)a1進(jìn)行加密,可得到密文c1;對(duì)K再使用上述算法流程加密,得到一個(gè)新的工作密鑰K2;使用得到的工作密鑰K2對(duì)偶隊(duì)列的第2個(gè)128 bit數(shù)據(jù)a2進(jìn)行加密得到密文c2;以此類推,使用Kn對(duì)偶隊(duì)列的第n個(gè)128 bit數(shù)據(jù)an進(jìn)行加密得到密文cn,其中n最大值為N。則最終的密文數(shù)據(jù):
上述加密過(guò)程如圖2所示。使用以上算法流程對(duì)視頻流數(shù)據(jù)進(jìn)行加密,可根據(jù)視頻流數(shù)據(jù)的重要程度,對(duì)相關(guān)的數(shù)據(jù)信息進(jìn)行選擇性加密。如可對(duì)視頻流數(shù)據(jù)進(jìn)行逐幀加密,也可只加密所有格式頭信息,或者對(duì)數(shù)據(jù)中一些重要的關(guān)鍵信息進(jìn)行選擇性加密等。通過(guò)公式推研,此算法具有安全性較高、計(jì)算復(fù)雜度較低、壓縮比不變、數(shù)據(jù)可操作性等。
圖2 基于SM4的選擇性視頻加密算法流程
性能測(cè)試實(shí)驗(yàn)在視頻參考軟件JSVM下進(jìn)行測(cè)試,硬件環(huán)境為配置Win7的操作系統(tǒng)、CPU為Intel Core i7-7200、8G內(nèi)存的PC機(jī)。本文采用標(biāo)準(zhǔn)序列作為測(cè)試序列,選取每個(gè)標(biāo)準(zhǔn)序列編碼的前50幀,編碼方案為第一幀為I幀,后面每一I幀與前一I幀之間相隔9個(gè)P幀或B幀,則每10幀為一序列,使用基于SM4的選擇性視頻加密算法對(duì)分組后的每一序列中的I幀進(jìn)行加密。對(duì)比視頻加密前后的安全性、壓縮比、計(jì)算復(fù)雜度和數(shù)據(jù)可操作性等方面,分析研究該視頻加密算法的性能[15]。
通過(guò)對(duì)表1的實(shí)驗(yàn)結(jié)果分析,由于該算法的主體使用SM4加密,而SM4算法采用32輪迭代結(jié)構(gòu),能夠抵抗差分攻擊、線性攻擊等攻擊手段,使得此視頻加密算法具有較高的安全性;而對(duì)壓縮后的數(shù)據(jù)進(jìn)行加密操作,能保持加密后數(shù)據(jù)量不變且壓縮比變化不大;并且對(duì)視頻數(shù)據(jù)的關(guān)鍵信息進(jìn)行選擇性加密后,使得計(jì)算復(fù)雜度減小,能夠保證序列的實(shí)時(shí)性與數(shù)據(jù)可操作性。
表1 視頻序列加密前后編碼時(shí)間、壓縮比對(duì)比
本文通過(guò)對(duì)網(wǎng)絡(luò)監(jiān)控系統(tǒng)泄露問(wèn)題的分析,結(jié)合現(xiàn)今視頻加密算法的研究成果,在國(guó)產(chǎn)SM4算法和選擇性視頻加密算法的基礎(chǔ)上提出基于SM4的選擇性視頻加密算法方案。實(shí)驗(yàn)結(jié)果表明,該視頻加密算法的加密實(shí)時(shí)性強(qiáng)、復(fù)雜度較低、安全保密性強(qiáng)、能滿足視頻安全實(shí)時(shí)傳輸?shù)囊螅?yōu)于單純國(guó)產(chǎn)SM4算法或選擇性視頻加密算法的視頻加密性能。