陶 槊,王曉芳,陳 濱
(合肥科技職業(yè)學院電子信息系,安徽合肥 231201)
全球視頻監(jiān)控系統(tǒng)在用攝像頭數(shù)量已達7.7億臺[1],為保證監(jiān)控系統(tǒng)的安保效能,必須對系統(tǒng)存在的漏洞與安全隱患進行防范與修補。目前常用的方法是依靠傳統(tǒng)加密方式,如3DES/AES/hash及改進算法等,對圖像元素(pixel/bit/相移)加密[2],或者對視頻編碼流實現(xiàn)全加密[3-4]?,F(xiàn)有方法的缺點是難以控制碼流的壓縮率,從而影響網(wǎng)速與視頻存儲,或者是解決方案因加密手段過于繁瑣、對設(shè)備要求過高而難以普及[5]。因此,本文采用非對稱與對稱加密分步結(jié)合的模式,在保證傳輸效率的前提下,盡量增加密鑰空間,提高系統(tǒng)的安全性。
在當前視頻監(jiān)控產(chǎn)品都在向智能化、高清化的發(fā)展趨勢下,受硬件處理能力、帶寬時延等條件的限制,只能繼續(xù)依靠H.265/HEVC(High Efficiency Video Coding)編碼標準[6]。視頻傳輸所依托的IEEE802.3架構(gòu),面對Ethernet和無線移動傳輸技術(shù)自身的諸多不足與漏洞[7],最有效的解決策略是讓視頻在生成、通信連接和調(diào)用過程中實現(xiàn)可靠的身份驗證。在信息傳送過程中,對碼流采取符合監(jiān)控特點和要求的加密方式來保護傳輸安全。
根據(jù)監(jiān)控系統(tǒng)現(xiàn)有技術(shù)與條件,選取高效算法,進行針對性改進及合理組合。連接通過連續(xù)的雙向身份驗證:利用建立連接時所包含的隨機信息不易被掌握的特點,用于生成增強ElGamal算法密鑰。在視頻中斷/重連后,不定時的交換握手驗證信息與非對稱加密公鑰,使非法入侵者難以實現(xiàn)“中間人劫持”[8]。
鑒于高清數(shù)字監(jiān)控對實時性和大流量的要求,首要工作是加密代碼的快速生成,其次是低冗余與時延、兼容現(xiàn)有產(chǎn)品編碼格式,再保證合理可靠的安全性?;诖耍肏.265特定熵編碼格式,結(jié)合改進的logistic混沌加密算法控制編碼長度,改進對稱加密RC6算法,實現(xiàn)碼流置亂,提升破解難度。
為保證監(jiān)控設(shè)備在建立連接時的及時性和可信性,本文提出利用視頻碼流和生成時間的不確定性作為參量實現(xiàn)身份驗證。在連接建立時,可以追溯發(fā)送者身份,通過連續(xù)身份檢驗保證連接雙方可靠通信。相對其他傳統(tǒng)的非對稱算法,數(shù)字簽名算法(DSA)的ElGamal算法[9]具有生成迅速、安全可靠的特點,所以在1991年被NIST(National Institute of Standards&Technology)確定為數(shù)字簽名標準(DSS)。為保證雙方驗證安全,以該算法為基礎(chǔ)進一步改進,基本過程為:監(jiān)控兩端設(shè)備內(nèi)部有各自信息串x(圖像首碼流定時截?。?,離散握手時間戳t、t1、t2(t<t1<t2),生成隨機大素數(shù)p=P(xt,t),g=G(xt,t),且p≠g,生成公鑰:
被驗證方利用收到的公鑰key(p,g,y),對要發(fā)送的驗證信息M(t,t1,t2,x)=M1M2加密:
驗證方獲得密文C=(C1C′1)(C2C′1)進行解密:
雙方互換對方的握手信息M M′,作為動態(tài)更新的雙方驗證碼,包含本機序列號、時間序列、背景參量n階矩陣抽取Dn瞬時協(xié)商函數(shù)f(t)、迭代數(shù)i等參數(shù),用于后續(xù)傳輸加密的初始信息。在系統(tǒng)脫機重新建立鏈路再鑒別身份時,由于對方需要斷網(wǎng)前一時間握手時某個瞬間的x,冒充者難以提供,無法生成正確的p或g,即無法通過雙向驗證,可有效阻止被頂替/劫持,控制端及時收到報警[8],過程見圖1所示。
圖1 收發(fā)端安全驗證過程
根據(jù)H.265視頻流編碼過程:原始圖像首先實施GoP自行條片(Slice/Tile),矩陣4分叉為CTU(Coding Tree Unit)、轉(zhuǎn)編碼單元(CU)、預(yù)測單元(PU)、變換單元(TU)基本塊,進行預(yù)測、DCT 變換(Discrete Cosine Transform)、量化、去塊濾波(deblocking filter)[10],然后進入熵編碼加密。在CABAC的DCT變換中,視頻移動快,目標能量主要集中到low_freq_coeff區(qū)間;紋理復(fù)雜圖像能量主要集中在high_freq_coeff區(qū)間。當圖像呈連續(xù)變化時,二進制流出現(xiàn)重復(fù)0/1,便于熵編碼預(yù)測。CABAC參數(shù)變換后二進制流包括:常規(guī)部分(x+y+SCF+GR1+GR2)+旁路部分(SIGN+REM)[11]。在生成過程中,常規(guī)編碼本身具有很強的上下文相關(guān)性(Context Modeling),對其能量集中區(qū)進行加密會對整個碼流的識別產(chǎn)生重要影響。而監(jiān)控產(chǎn)品出于通用性考慮,一般會在出廠時將QP(Quantization Parameter)固定(21-30),這樣就能把常規(guī)編碼復(fù)雜度控制在一定范圍內(nèi)。將TU局部熵編碼(局部SCF+旁路GR1+SIGN+REM)(64位)作為源碼,以改進的logistic算法生成語法元素(Syntax Element)的密鑰,對熵編碼RBSP(Raw Bit Sequence Payload)實體部分實施加密,見圖2。
圖2 熵編碼復(fù)合加密流程
用改進的RC6(Rivest Cipher-6)[12]對熵編碼關(guān)鍵信息分組置亂,在保證基本安全的前提下,兼容熵編碼格式,不會對HEVC視頻壓縮率造成太大的影響[13]。
(1)加密算法
基本logistic混沌的缺陷是對初值和參數(shù)敏感,映射空間窄,安全性不高,優(yōu)點是計算簡單。對原算法進行改進,引入修剪和指數(shù),得
作為新的混沌映射關(guān)系,式中k為控制系數(shù),由監(jiān)控系統(tǒng)產(chǎn)品決定;xn為序列狀態(tài),x0∈(0,1),n∈N+,這樣在k、μ未知的情況下,求解反推xn困難[15]。當μ>3.127時,即進入混沌狀態(tài),好于原logistic分岔(bifurcation)混沌的分布性(信息點x分布情況見圖3)。因為改進函數(shù)具有比原logistic更寬闊的混沌區(qū)間,把k值的確定交由前后臺雙方不定時連接隨機協(xié)商函數(shù)f(t)決定,增加其破解難度。
圖3 改進算法混沌映射分布
為保證該混沌分布的無序性和均勻性,用LE(Lyapunov Exponent)來考察此指數(shù)混沌函數(shù)的相空間相鄰軌跡的平均分布情況,用下列函數(shù)求LE[16]:
λ為LE的計算值,其中x0=0,取N=1000,設(shè)偏差間隔Δxn=0.001,k=1,求f(xn)的導(dǎo)數(shù),迭代得λ。從圖4 可知,當μ=9.142,有λmax≈0.857 3。根據(jù)傳統(tǒng)logistic 混沌計算[17],在所有參數(shù)一致的條件下,混沌區(qū)間的LE在(0.45,0.7)之間,而根據(jù)本文方法,LE最大值大于0.7,表明改進算法優(yōu)于傳統(tǒng)算法。
圖4 改進logistic混沌的LE
(2)序列發(fā)生器與密文生成
取步長Δxn=0.001,用Runge-kutta算法對改進logistic混沌序列迭代n次,生成的xn∈R,還必須對混沌后的E(xn)二進制展開,表達式為[18]
(3)碼流置亂
為確保密文安全,不能被輕易反推,采用改進的RC6算法進行碼流置亂[19]。RC6分組加密算法可以自定義視頻流加密長度塊LCi=64位,加密輪數(shù)r(由握手函數(shù)協(xié)商,r≥16),密鑰長度LKi=64位。密鑰數(shù)組,定義4 個32 位寄存器:r1-r4=熵編碼參數(shù)段,則整個加密過程表示為:
將Entropy Bitstream按照SE idx參數(shù)表對應(yīng)的MVD(Motion Vector Difference)、DC系數(shù)陣、幀內(nèi)/間參數(shù)碼流、Regular&Bypass codes局部常量部分64 bits分組進行置亂,獲得加密傳輸編碼流。收方根據(jù)bitstream段header提取字段,以逆算法解密。
搭建仿真服務(wù)器,在Visual Studio 2010中加載HM-16.18(為適應(yīng)監(jiān)控環(huán)境,選擇MV-HEVC版),實現(xiàn)標準編碼函數(shù)調(diào)用,加載HM_vc2010.sln,加/解密圖像效果如圖5所示。
圖5 加/解密圖像效果。(a)原圖像;(b)加密圖像;(c)解密圖像
從圖5(a)~(c)加/解密圖像效果可以看到,改進的算法處理直觀效果符合預(yù)期。為確定kμ取值區(qū)間,分別取多路視頻編碼加密,假設(shè)視頻硬件處理耗時平均以29幀/s計,獲得在不同分辨率(dpi)下總的平均耗時百分率統(tǒng)計表(見圖6)。從圖中可以看出,如果依據(jù)HEVC所面向的一般64位長監(jiān)控設(shè)備,最好控制4 <kμ<50,否則會快速增加監(jiān)控兩端加解密的運算處理時延。
對比幾種非對稱加密身份驗證算法模式[22-23](見表1),考慮安全性、算法效率、密鑰空間、抗攻擊性、設(shè)備要求等一系列綜合因素,本文是針對監(jiān)控環(huán)境特別設(shè)計的ElGamal算法結(jié)構(gòu),更具實用性。
為保證研究的客觀性,分別選取幾種具有代表性的混沌或復(fù)合加密算法進行評估。在仿真環(huán)境相同的條件下,對比這些視頻加密方法的效果。
信息熵是反映編碼隨機性的重要指標,用以衡量加密后圖像變換情況[21]。圖像熵值越高,表明編碼隨機性越好。信息熵的表達式如下:
其中p(xi)是圖像點xi出現(xiàn)的概率,N=256。信息熵的理想值為8。
視頻是連續(xù)變化的,存在加密圖像的相關(guān)敏感性,密文前后的變化,可以分別用像素變化強度(NPCR)和灰度平均變化強度(UACI)來考察加密效果,其表達式如下:
其中Pij,為圖像加密前后圖像像素點的灰度,M、N為圖像尺寸,理想值應(yīng)分別是99.6%與33.4%。
表2為幾個同類算法加密效果對比結(jié)果,由表2可知,本文算法的加密強度適中。
表2 各算法的信息熵、NPCR和UACI比較
算法效率可通過計算視頻生成時間獲得,如表3所示。由表3可知,文獻[13]中的logistic算法采取直接局部熵編碼,雖然耗時短,但安全性低;文獻[14]中的置換算法受算法復(fù)雜度限制不適于通用監(jiān)控產(chǎn)品;文獻[17]中的方法生成密鑰強度不足,圖像壓縮率低;文獻[19]報道的復(fù)合算法基于像素加密,編碼耗時大,算法效率低;文獻[20]中的方法隨著圖像分辨率的增加,處理耗時快速增加;本文的算法是以適度安全性為前提,針對監(jiān)控產(chǎn)品QP出廠初值固定的特點,對局部熵編碼特定分布加密來提高算法效率。結(jié)合上節(jié)LE分析可知,通過算法改進,本算法具備比多數(shù)傳統(tǒng)算法更優(yōu)的安全性[23],從功效比來看,更適用于監(jiān)控場合。
表3 各視頻生成-加密算法平均耗時統(tǒng)計(單位:min)
根據(jù)目前主流的視頻加密模式的各種優(yōu)缺點,本文針對視頻監(jiān)控系統(tǒng)的應(yīng)用場合,提出了兩點改進算法及組合:(1)利用改進的ELGamal算法實現(xiàn)監(jiān)控兩端連接的可靠身份驗證;(2)為保證視頻碼流的安全傳輸提出了一種改進的指數(shù)logistic混沌系統(tǒng)和RC6 加密算法。本文算法在不增加算法復(fù)雜度的前提下,可以提高原算法安全系數(shù)。實驗證明,該復(fù)合算法是可靠的,有很強的實用性,并給出了合理的配置參數(shù)??傊谕葪l件下,改進的算法不僅可以保證監(jiān)控視頻傳輸?shù)陌踩?,而且兼顧了碼流的處理效率,可以被推廣應(yīng)用。