吳震,白健,李大雙,李斌,2,曾兵,2,張正強(qiáng),2
(1.中國電子科技網(wǎng)絡(luò)信息安全有限公司,成都 6 1 0 0 4 1; 2.成都三零凱天通信實(shí)業(yè)有限公司,成都 610041;3.中國電子科技第三十研究所,成都 610041)
在公共視頻監(jiān)控領(lǐng)域的縱向多級(jí)網(wǎng)絡(luò)中,存儲(chǔ)有海量視頻數(shù)據(jù),根據(jù)數(shù)據(jù)的敏感程度,一部分?jǐn)?shù)據(jù)需要加密存儲(chǔ),一部分?jǐn)?shù)據(jù)是明文存儲(chǔ),但均存在跨級(jí)或跨域共享需求。對(duì)于加密數(shù)據(jù),由于受限于密鑰管理系統(tǒng)的跨域訪問限制及解密密鑰的安全傳輸問題,需要先解密成明文后,才能共享。為保證原有加密或非密數(shù)據(jù)的共享安全,需要采用密碼算法對(duì)跨級(jí)跨域共享數(shù)據(jù)進(jìn)行完整性、機(jī)密性保護(hù)。傳統(tǒng)密碼學(xué)中,密碼算法的設(shè)計(jì)都是建立在黑盒模型基礎(chǔ)上的:假設(shè)密碼算法的運(yùn)行環(huán)境是安全的,攻擊者只能訪問算法的輸入和輸出,不能觀察代碼執(zhí)行及動(dòng)態(tài)加解密的過程,保障數(shù)據(jù)安全的關(guān)鍵是保護(hù)好密鑰。
密碼算法的實(shí)現(xiàn)主要有硬件和軟件2種方式。采用硬件方式需使用嵌入了密碼芯片的專用存儲(chǔ)介質(zhì),密鑰經(jīng)保護(hù)后存儲(chǔ)在芯片中,安全性高,在《公共安全視頻監(jiān)控聯(lián)網(wǎng)信息安全技術(shù)要求》(GB 35114—2017)[1]中,對(duì)加密視頻的導(dǎo)出及共享推薦使用這種方式,但該方法存在使用成本高、通用性較差等問題。采用軟件方式共享快捷方便,但在軟件加解密過程中,密鑰將會(huì)出現(xiàn)在算法運(yùn)行平臺(tái)的內(nèi)存中,由于不能確保密碼算法軟件運(yùn)行環(huán)境的安全可信,攻擊者可能使用靜態(tài)分析工具、調(diào)試器、直接讀取內(nèi)存中的數(shù)據(jù)等方法找出密鑰[2],數(shù)據(jù)安全性得不到保障,也無法抵御近年來提出的時(shí)間分析、功耗分析、插入錯(cuò)誤分析等旁路攻擊[3-6]。
對(duì)于這種不可靠的密碼算法運(yùn)行環(huán)境,2002年,Chow等[7]將其命名為白盒攻擊環(huán)境(White-Box Attack Context,WBAC),其描述如下:①在同一主機(jī)中,可以同時(shí)運(yùn)行加密軟件與擁有特殊權(quán)限的攻擊軟件,并且對(duì)密碼算法在主機(jī)中的運(yùn)行過程擁有完全的控制權(quán);②主機(jī)中程序的動(dòng)態(tài)執(zhí)行過程可以被監(jiān)視;③密碼算法的實(shí)現(xiàn)原理及執(zhí)行過程是可見的,并且可被任意修改。
白盒攻擊環(huán)境也可理解為白盒攻擊模型,與黑盒攻擊模型相比,白盒攻擊模型可以認(rèn)為是最壞的模型,然而其也是現(xiàn)今信息技術(shù)迅速發(fā)展很適用的模型,用于分析在不可信環(huán)境下運(yùn)行的密碼算法。為了保證密碼算法在不可信的終端運(yùn)行而不受到威脅,科研人員設(shè)計(jì)了在白盒攻擊環(huán)境下能夠確保安全性的密碼算法,該密碼算法被稱為白盒密碼算法,其目的就是為了應(yīng)對(duì)白盒攻擊環(huán)境,將密鑰信息隱藏在密碼算法中,防止密鑰被攻擊者獲取。因此,研究安全高效的白盒密碼算法具有非常重要的意義。
目前,對(duì)白盒密碼算法的研究分為2種技術(shù)路線:①基于已有白盒密碼算法,利用混淆、擾亂等白盒密碼技術(shù)進(jìn)行設(shè)計(jì),在不改變?cè)惴üδ艿那疤嵯?,保障算法在白盒攻擊環(huán)境下的安全性;②研究一種全新的白盒密碼算法,直接可以抵抗白盒攻擊[8]。Chow等[7]在提出白盒攻擊環(huán)境的同時(shí),通過將若干步驟組合起來所構(gòu)成的函數(shù)用查找表來表示(即遍歷函數(shù)的輸入,存儲(chǔ)函數(shù)的輸出值構(gòu)成查找表,從而可隱藏該函數(shù)的內(nèi)部信息),將密鑰嵌入到查找表并使用隨機(jī)雙射來保護(hù)查找表[9],開創(chuàng)性地構(gòu)造了首個(gè)白盒AES方案及 首 個(gè) 白 盒 DES方 案[10]。2009 年,Xiao和Lai[11]提出了SMS4白盒實(shí)現(xiàn)算法,使用查找表和仿射變換相結(jié)合的方式,從白盒多樣性和白盒含混度的角度來看,該方案達(dá)到了應(yīng)用所需的安全性,也針對(duì)Billet等[12]提出的攻擊方法說明了該方案的安全性。
本文基于國家密碼管理局頒布的SM4算法設(shè)計(jì)白盒密碼算法。SM4(原SMS4)密碼算法于2006年由國家密碼管理辦公室正式發(fā)布,是一種對(duì)稱加密算法,2012年成為密碼行業(yè)標(biāo)準(zhǔn)GM/T 0002—2012[13],并于2016年成為國家標(biāo)準(zhǔn)GB/T 32907—2016[14],在2017年頒布的《公共安全視頻監(jiān)控聯(lián)網(wǎng)信息安全技術(shù)要求》(GB 35114—2017)[1]中,也將其采納為用于視頻數(shù)據(jù)加密保護(hù)的算法標(biāo)準(zhǔn)。
本文在進(jìn)行算法設(shè)計(jì)時(shí),參考了Xiao和Lai[11]提出的白盒算法實(shí)現(xiàn)思路,運(yùn)用仿射變換與查找表來保護(hù)算法運(yùn)行的內(nèi)部信息,重新設(shè)計(jì)了編碼解碼流程,并引入播放口令、設(shè)備硬件因子等混淆參數(shù)增加算法分析難度。以此為基礎(chǔ)進(jìn)行工程化,研制開發(fā)視頻數(shù)據(jù)跨級(jí)安全共享軟件,并根據(jù)系統(tǒng)運(yùn)行實(shí)際效率,對(duì)白盒密碼算法及共享軟件進(jìn)行多次優(yōu)化,實(shí)現(xiàn)跨級(jí)共享數(shù)據(jù)加解密速率大于1 Gbit/s的目標(biāo),減少視頻數(shù)據(jù)共享的加密成本,實(shí)現(xiàn)使用軟件加密方式的視頻數(shù)據(jù)安全快捷跨域共享。
SM4算法為分組密碼算法,算法的分組長度和密鑰長度均為128 bit。加密后的密文分組也是128 bit,加密過程為32輪迭代操作及最后1輪輸出的反序變換,每一輪的迭代操作稱為輪函數(shù)[15]。其解密過程類似于加密過程,但是輪密鑰使用了與加密輪密鑰相反的順序。SM4算法的整體結(jié)構(gòu)如圖1所示。圖中:MK為加密密鑰,F(xiàn)K為系統(tǒng)參數(shù),CK為固定參數(shù),dk為由MK擴(kuò)展得到的輪密鑰,F(xiàn)為輪函數(shù),F(xiàn)′為密鑰擴(kuò)展函數(shù)。
圖1 SM 4算法整體結(jié)構(gòu)Fig.1 Overall structure of SM4 algorithm
設(shè)計(jì)基于SM4算法的白盒密碼算法主要需要突破以下要點(diǎn):
1)可逆S盒變換。S盒變換指按字節(jié)進(jìn)行的代替變換,是作用在狀態(tài)中每個(gè)字節(jié)上的一種非線性字節(jié)變換。S盒變換又分為可逆S盒變換和不可逆S盒變換2種,本文設(shè)計(jì)的白盒密碼算法的基本部件主要采用可逆S盒變換,以實(shí)現(xiàn)不同輪中間查表輸出數(shù)據(jù)的隱藏。
2)仿射變換。仿射變換是平面(空間)的一個(gè)可逆變化,由一個(gè)非奇異的線性變換和一個(gè)平移變換構(gòu)成。在有限維的情況下,每個(gè)仿射變換可以由一個(gè)可逆矩陣D和一個(gè)向量b給出,對(duì)向量x的仿射變換為:y=Dx+b。
在本文的SM4白盒密碼算法設(shè)計(jì)中,使用該方法結(jié)合可逆S盒變換實(shí)現(xiàn)相鄰輪運(yùn)算過程中的中間數(shù)據(jù)隱藏,防止攻擊者直接獲取加解密過程中的中間參數(shù),繼而分析破解獲得相應(yīng)的輪密鑰,計(jì)算獲得最終密鑰。
根據(jù)SM4算法及加解密流程,本文基于查表運(yùn)算設(shè)計(jì)了SM4白盒密碼算法。該白盒密碼算法將SM4算法的每一輪運(yùn)算分成3個(gè)部分,通過將第2部分和第3部分的運(yùn)算轉(zhuǎn)換為查表運(yùn)算,并引入混淆參數(shù),從而將原始的輪密鑰隱藏進(jìn)表中,即使攻擊者在掌握整個(gè)軟件之后,使用白盒攻擊方法,也無法獲得視頻數(shù)據(jù)的加密密鑰,有效保護(hù)了密鑰在算法執(zhí)行過程中的安全。
算法主要由2個(gè)部分組成:白盒密鑰表生成模塊和基于白盒密鑰表的數(shù)據(jù)加解密模塊。
白盒密鑰表生成模塊由綁定信息生成算法、隨機(jī)數(shù)生成算法、白盒密鑰表構(gòu)造算法3部分組成,如圖2所示。
圖2 白盒密鑰表生成模塊構(gòu)成Fig.2 White-box key table generation module composition
綁定信息生成算法用于生成白盒密鑰表構(gòu)造算法的初始運(yùn)行因子,該因子源于視頻共享口令及播放設(shè)備硬件信息,目的是抵抗共享輸出數(shù)據(jù)被非法瀏覽及拷貝風(fēng)險(xiǎn),限制共享視頻數(shù)據(jù)只能在指定播放設(shè)備上被知曉共享口令的人解密查看。輸入因子必須為256 bit的數(shù)據(jù),因此使用綁定信息生成算法將視頻共享口令和指定視頻播放設(shè)備的硬件信息進(jìn)行融合。設(shè)共享口令為Password,設(shè)備硬件信息為Hi,使用SM3雜湊算法[16]作為綁定信息生成算法,算法的輸入為Password和Hi,算法的輸出結(jié)果為綁定信息即Password Hi的哈希值。
隨機(jī)數(shù)生成算法主要是生成白盒密鑰表構(gòu)造算法所需要的隨機(jī)參數(shù)信息。需要共享的視頻數(shù)據(jù)使用SM4白盒密碼算法進(jìn)行加密,而共享輸出系統(tǒng)需要對(duì)視頻密文進(jìn)行解密,因此設(shè)計(jì)的白盒密碼算法為SM4白盒解密算法,對(duì)應(yīng)的白盒密鑰表為SM4白盒解密表。隨機(jī)數(shù)生成算法產(chǎn)生SM4白盒解密表所需要的有限域Z2上的420個(gè)8×8的可逆矩陣。該算法的輸入是隨機(jī)數(shù)種子,輸出為Z2上的8×8的可逆矩陣Mi,i=1,2,…,420。
白盒密鑰表構(gòu)造算法根據(jù)實(shí)際的數(shù)據(jù)加密密鑰生成解密所需的白盒密鑰表,主要分為3個(gè)部分:①負(fù)責(zé)通過置換矩陣對(duì)輸入數(shù)據(jù)進(jìn)行混淆;②通過遍歷輸入,結(jié)合輪密鑰、置換矩陣、S盒置換進(jìn)行計(jì)算,將輪密鑰嵌入表中;③對(duì)第②部分輸出的結(jié)果進(jìn)行解混淆,如果是最后一輪,則直接輸出,否則加入新的混淆數(shù)據(jù)。
具體步驟如下:
對(duì)于第5輪~第32輪,第2類查找表的構(gòu)建方法如下:
對(duì)于第33輪~第36輪,第2類查找表的構(gòu)建方法如下:
該查找表主要用于隱藏隨機(jī)產(chǎn)生信息。
基于白盒密鑰表的數(shù)據(jù)加解密模塊中的綁定信息生成算法與白盒密鑰表構(gòu)造算法中的綁定信息生成算法相同。共享視頻接收者輸入共享口令后,綁定信息生成算法結(jié)合播放設(shè)備的硬件信息產(chǎn)生綁定信息BI,BI將作為SM4白盒解密算法的輸入。白盒加解密算法框架如圖3所示。
圖3 白盒加解密算法框架Fig.3 White-box encryption and decryption algorithm framework
SM4白盒解密算法的輸入為使用SM 4算法加密的密文視頻、白盒密鑰表和綁定信息BI,輸出為明文視頻,其是一個(gè)36輪的分組迭代算法,每一輪的具體步驟如下:
設(shè)第i輪的輸入為(xi-1,xi,xi+1,xi+2),其中,xi-1,xi,xi+1,xi+2都為32 bit。
1)利用復(fù) 合 線 性 變 換Ai,1,Ai,2,Ai,3分 別 左乘xi,xi+1,xi+2,然后將結(jié)果進(jìn)行異或,即yi=(yi,1,yi,2,yi,3,yi,4)T=Ai,1xi⊕Ai,2xi+1⊕Ai,3xi+3
2)計(jì)算yi=(yi,1,yi,2,yi,3,yi,4)T經(jīng)過第1類查找表SM4Dec變換后的結(jié)果,即
3)計(jì) 算si=xi-1=(si,1,si,2,si,3,si,4)T和ti=(ti,1,ti,2,ti,3,ti,4)T經(jīng) 過 第 2 類 查 找 表SM4Dec變換后的結(jié)果,即
經(jīng)過上述3步變換后,第i輪的輸出為xi+3=(xi+3,1,xi+3,2,xi+3,3,xi+4,4)
本節(jié)主要分析SM4白盒密碼算法面對(duì)BGE攻擊的安全性。BGE是針對(duì)Chow等[7]設(shè)計(jì)的AES白盒算法提出的一種攻擊方法。Chow等[7]設(shè)計(jì)的AES白盒算法每一輪的實(shí)現(xiàn)方式為:Outr·AESr·Inr,AESr表示AES第r輪的變換,Inr表示第r輪的輸入編碼,Outr表示第r輪的輸出編碼,且Outr=(Inr+1)-1。
BGE攻擊的主要思想是:先根據(jù)AES白盒算法的查找表把輸入編碼和輸出編碼恢復(fù)為仿射變換,然后計(jì)算出仿射變換的輸出編碼。每一輪的輸出編碼和下一輪的輸入編碼是互逆的,即Outr=(Inr+1)-1,因此除了第1輪,其他輸入編碼也可以計(jì)算出來。此時(shí),攻擊者就可以得到AESr,從而得到隱藏著的密鑰。Michiels等[17]將其改進(jìn)為一種通用攻擊方法,可以對(duì)類似算法的白盒實(shí)現(xiàn)進(jìn)行攻擊。
在本文設(shè)計(jì)的SM4白盒解密算法中,如果將查找表與下一步的線性變換結(jié)合起來考慮,將得到如下所示的合成變換,其中Qi與其逆正好相抵消,如圖4所示。
圖4 合成變換Fig.4 Synthetic transform
假設(shè)第1輪的查找表的輸入為y=(y1,y2,y3,y4),t=(t1,t2,t3,t4),經(jīng)過合成變換后的輸出為z=(z1,z2,z3,z4)。由于L可以看做是32×32的矩陣,所以可以將L分成16個(gè)8×8的子塊:
合成變換的輸入y=(y1,y2,y3,y4),t=(t1,t2,t3,t4),輸出z=(z1,z2,z3,z4)滿足如下關(guān)系:
將輸入y=(y1,0,0,0),t=(0,0,0,0)代入上述關(guān)系:
式中:
則
事實(shí)上,Aj,r可以看做是8×8的矩陣,常數(shù)項(xiàng)cj,r有8個(gè)未知項(xiàng),共有72個(gè)未知項(xiàng)。對(duì)于一對(duì)(zj,zr),將等式zj(y1,0,0,0)=Aj,rzr(y1,0,0,0)⊕cj,r展開可獲得8個(gè)線性方程,則任取9個(gè)不同的y1值,可以組成8個(gè)含有9個(gè)未知數(shù)的方程組(每個(gè)方程組有9個(gè)方程)。因此,能以低于8×93的時(shí)間復(fù)雜度求出Aj,r和cj,r。
因 為Aj,r和A′r,j可 以 求 出,而 各 分 塊 矩 陣Li,j均已知,因此可記為
視頻數(shù)據(jù)共享系統(tǒng)由基于B/S架構(gòu)的服務(wù)端系統(tǒng)及白盒視頻播放器組成,系統(tǒng)提供共享視頻文件審批、白盒加密共享數(shù)據(jù)輸出、加密視頻解密播放功能。共享視頻文件審批完成對(duì)視頻文件共享業(yè)務(wù)的審批,并管理審批日志;白盒加密共享數(shù)據(jù)輸出服務(wù)將共享的視頻文件轉(zhuǎn)換為經(jīng)SM4白盒算法加密保護(hù)的文件,并提供下載功能,實(shí)現(xiàn)視頻數(shù)據(jù)的安全輸出。共享視頻文件審批服務(wù)可支持多層組織機(jī)構(gòu)進(jìn)行協(xié)同審批;白盒加密共享數(shù)據(jù)輸出系統(tǒng)的數(shù)據(jù)加密性能可達(dá)到1 Gbit/s。通過對(duì)原有視頻文件播放器進(jìn)行改造,集成SM4白盒算法解密模塊形成白盒視頻文件播放器。
服務(wù)端系統(tǒng)由用戶身份管理模塊、關(guān)鍵參數(shù)管理模塊、視頻安全共享處理模塊、輸出視頻管理模塊、商用基本密碼處理模塊、SM4白盒密碼處理模塊組成。模塊之間的關(guān)系如圖5所示。1)用戶身份管理模塊:實(shí)現(xiàn)系統(tǒng)用戶信息的管理,包括用戶注冊(cè)、用戶登錄、用戶權(quán)限管理及用戶信息修改。
圖5 軟件模塊關(guān)系Fig.5 Software module relationship
2)關(guān)鍵參數(shù)管理模塊:對(duì)用戶提交的視頻數(shù)據(jù)的數(shù)據(jù)加密密鑰、視頻文件共享口令、硬件因子進(jìn)行存儲(chǔ)及管理。
3)視頻安全共享處理模塊:對(duì)待共享的視頻文件進(jìn)行審批處理,并調(diào)用商用基本密碼處理模塊及SM4白盒密碼處理模塊提供的接口,實(shí)現(xiàn)對(duì)共享視頻文件的白盒加密處理。
4)商用基本密碼處理模塊:使用商用密碼算法對(duì)待共享的加密敏感視頻文件進(jìn)行解密,得到明文視頻文件,如待共享的視頻文件已經(jīng)是明文,則直接返回;同時(shí)提供SM3算法接口,可實(shí)現(xiàn)對(duì)口令及硬件設(shè)備因子的哈希計(jì)算。
5)SM4白盒密碼處理模塊:結(jié)合共享口令和設(shè)備硬件因子對(duì)明文視頻數(shù)據(jù)使用SM4白盒密碼算法加密,輸出白盒密文視頻文件。
6)輸出視頻管理模塊:對(duì)白盒密文視頻文件進(jìn)行存儲(chǔ)和管理,并提供文件下載功能。
2.2.1 視頻共享
將待共享的視頻文件名、共享者下載需要的口令密碼、分享對(duì)象的設(shè)備硬件因子信息、分享原因等信息上傳至服務(wù)器,保存至數(shù)據(jù)庫。
2.2.2 視頻審核及白盒加密處理
分享者提出視頻分享請(qǐng)求后,后臺(tái)審核數(shù)據(jù)庫會(huì)新增一條審核信息,審核者根據(jù)分享者提供的信息決定是否通過分享請(qǐng)求,分享請(qǐng)求審核通過后,系統(tǒng)向視頻存儲(chǔ)服務(wù)器請(qǐng)求相應(yīng)視頻文件,如該文件已被加密,則同時(shí)向該加密共享文件所屬的密鑰管理服務(wù)器請(qǐng)求解密所需要的密鑰數(shù)據(jù),如果視頻庫中沒有相應(yīng)視頻文件信息,共享終止。
視頻安全共享輸出模塊獲得共享視頻文件及密鑰數(shù)據(jù)后,先使用原密鑰解密視頻文件,再使用SM4白盒密碼算法對(duì)明文視頻數(shù)據(jù)進(jìn)行加密處理,生成白盒加密視頻文件,以及對(duì)應(yīng)的白盒加密信息表,最后將其打包存放于服務(wù)器并生成下載鏈接。具體流程如圖6所示。
圖6 視頻審核流程Fig.6 Video audit flowchart
2.2.3 視頻下載
用戶提交正確的口令,從服務(wù)器下載已打包的白盒加密共享視頻文件。如果用戶提供的口令不正確,則不會(huì)下載文件。
2.2.4 白盒視頻解密播放
用戶將下載成功的白盒加密視頻文件通過調(diào)用白盒解密庫(需要輸入口令)提供的接口輸入,白盒解密庫先計(jì)算播放端設(shè)備硬件因子及口令的哈希值,將其與白盒加密視頻文件中保存的值對(duì)比,如正確則進(jìn)行視頻解密操作,解密成功后進(jìn)行播放顯示,否則返回口令或硬件因子不匹配的錯(cuò)誤信息。
實(shí)驗(yàn)系統(tǒng)由一臺(tái)視頻共享輸出服務(wù)器,兩臺(tái)訪問客戶端PC組成。服務(wù)器硬件配置CPU:Xeon(R)CPU E5-2630 V4@ 2.20 GHz;硬盤:2 TB;內(nèi)存:32GB。PC機(jī)硬件配置:CPU:Intel(R)Core(TM)i7-4710MQ CPU@2.50GHz,內(nèi)存:8GB,硬盤:1 TB,硬件設(shè)備通過局域網(wǎng)連接。軟件環(huán)境為:W indows Server 2008 R2 Standard操作系統(tǒng),Windows 7 SP1操作系統(tǒng),GoogleChrome瀏覽器。實(shí)驗(yàn)環(huán)境連接示意圖如圖7所示。
實(shí)驗(yàn)內(nèi)容為:視頻數(shù)據(jù)文件共享審核有效性;視頻數(shù)據(jù)共享加密口令及硬件設(shè)備因子綁定效果;使用SM4白盒算法對(duì)共享視頻數(shù)據(jù)文件加密;被共享者下載經(jīng)白盒算法加密的共享視頻文件;白盒算法加密的共享視頻文件安全播放;視頻白盒軟件數(shù)據(jù)加密輸出速率性能評(píng)估及與標(biāo)準(zhǔn)SM4算法加密輸出速率的比較。
系統(tǒng)軟件安裝部署后,默認(rèn)存在一個(gè)系統(tǒng)管理員用戶,由管理員在系統(tǒng)內(nèi)分別創(chuàng)建1個(gè)視頻共享操作者,一個(gè)視頻分享對(duì)象。視頻共享操作者選擇需要進(jìn)行共享的加密視頻文件,并填寫共享對(duì)象的名字、共享文件播放設(shè)備的標(biāo)識(shí)信息、共享密碼等信息,信息填寫完畢后,進(jìn)行提交。提交成功后,由系統(tǒng)管理員用戶進(jìn)行審核,審核通過后,后臺(tái)自動(dòng)執(zhí)行共享文件的解密及使用SM 4白盒算法進(jìn)行加密,白盒加密成功后的共享視頻文件自動(dòng)保存在視頻共享服務(wù)器中。此時(shí),視頻分享對(duì)象可登錄視頻共享服務(wù)器,查看到共享白盒視頻文件列表,輸入正確的共享密碼后,分享對(duì)象下載共享文件,并在指定的共享文件播放設(shè)備中使用白盒視頻播放器正常進(jìn)行解密播放。
實(shí)驗(yàn)操作流程如圖8所示。
圖8 視頻數(shù)據(jù)共享系統(tǒng)功能實(shí)驗(yàn)操作流程Fig.8 Experimental operation process of video data sharing system function
上述操作流程表明,視頻數(shù)據(jù)共享系統(tǒng)能夠使用SM4白盒算法實(shí)現(xiàn)加密視頻數(shù)據(jù)文件的共享,經(jīng)白盒算法處理后的視頻共享文件只能在指定硬件設(shè)備播放,同時(shí)需要輸入正確的共享口令,功能符合系統(tǒng)設(shè)計(jì)。
SM4白盒算法的性能測(cè)試:編寫腳本,在視頻共享服務(wù)器端執(zhí)行64個(gè)線程進(jìn)行數(shù)據(jù)加密,每個(gè)線程加密數(shù)據(jù)量為16Mbit,即每次傳輸數(shù)據(jù)量為64×16Mbit=1Gbit,執(zhí)行3次。線程執(zhí)行并輸出加密所需的時(shí)間,如圖9所示。
圖9 白盒加密性能測(cè)試結(jié)果輸出Fig.9 White-box encryption performance test result output
根據(jù)測(cè)試結(jié)果,白盒加密算法速率計(jì)算如表1所示。
表1 白盒加密算法速率實(shí)驗(yàn)值Table 1 Experim ental value of white-box encryp tion algorithm rate
SM4算法的性能測(cè)試:編寫程序,在視頻共享服務(wù)器端執(zhí)行64個(gè)線程對(duì)數(shù)據(jù)加密,每個(gè)線程加密數(shù)據(jù)量為16Mbit,即每次傳輸數(shù)據(jù)量為64×16Mbit=1 Gbit,執(zhí)行3次,記錄程序執(zhí)行輸出加密時(shí)間及加密速率,得到如表2所示SM4加密算法速率實(shí)驗(yàn)值。
表2 SM 4加密算法速率實(shí)驗(yàn)值Tab le 2 Experim ental value of SM 4 encryp tion algorithm rate
根據(jù)表1及表2的性能實(shí)驗(yàn)結(jié)果可知:
1)與標(biāo)準(zhǔn)SM4算法相比,SM4白盒加密算法的速率有10%左右的降低,主要是生成白盒密鑰表增加了時(shí)間消耗。
2)本文設(shè)計(jì)的SM4白盒加密算法速率平均在1Gbit/s以上,性能滿足設(shè)計(jì)要求。
1)本文提出了一種基于SM4的白盒密碼算法,實(shí)現(xiàn)了對(duì)稱加密算法執(zhí)行過程中的密鑰隱藏。解決了非信任硬件環(huán)境下,軟件加解密算法的密鑰安全問題,保障了數(shù)據(jù)的安全性。
2)對(duì)本文算法的安全性進(jìn)行了理論分析,分析結(jié)果表明,該算法能夠抵御BGE攻擊。
3)在算法基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了基于白盒密碼算法的視頻數(shù)據(jù)共享系統(tǒng),該系統(tǒng)能夠?qū)崿F(xiàn)共享視頻文件的上傳、審核、白盒加密處理、下載、安全解密播放。
4)通過實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的功能及性能。