付興兵,周 楠,吳 鋌
(杭州電子科技大學(xué),浙江 杭州 310018)
隨著威脅的日益增加,社會發(fā)展需要越來越多的網(wǎng)絡(luò)空間安全人才。國家分別批準(zhǔn)設(shè)立了網(wǎng)絡(luò)空間安全一級學(xué)科的碩士點(diǎn)和博士點(diǎn),以加速我國的網(wǎng)絡(luò)空間安全人才培養(yǎng)。密碼學(xué)在網(wǎng)絡(luò)空間安全人才培養(yǎng)中是不可缺少的重要環(huán)節(jié),對密碼學(xué)的研究和密碼人才的培養(yǎng)具有重要意義。
密碼算法設(shè)計(jì)在攻擊者出現(xiàn)的情況下用來保護(hù)數(shù)據(jù)或通信。若這些算法利用了密鑰,則它們的安全性依賴于密鑰的安全性,因此攻擊者主要的目標(biāo)是提取密鑰。在傳統(tǒng)的黑盒環(huán)境下,攻擊者僅訪問密碼算法的輸入與輸出。然而,越來越多的軟件在由惡意第三方所擁有和控制的不可信開放平臺上執(zhí)行,這就需要配置強(qiáng)密碼算法。在黑盒環(huán)境不充足的情況下,攻擊者能完全訪問密碼算法的軟件實(shí)現(xiàn),從而完全控制它的執(zhí)行環(huán)境。白盒密碼可用于數(shù)字內(nèi)容保護(hù)系統(tǒng)中,如數(shù)字版權(quán)管理和付費(fèi)電視系統(tǒng),近年來更用于移動支付。提取密鑰會危及內(nèi)容安全,白盒密碼的目的是在白盒環(huán)境下保護(hù)密碼算法和密鑰的機(jī)密性。
傳統(tǒng)上,密碼原語被設(shè)計(jì)用來保護(hù)在黑盒攻擊模型下的數(shù)據(jù)和密鑰。在這種模型下,通信的端點(diǎn)是可信的,這樣密碼執(zhí)行就不能被觀察或篡改。這種假設(shè)在現(xiàn)在的數(shù)字版權(quán)管理、付費(fèi)電視機(jī)頂盒和智能手機(jī)中是不適合的,因此需要白盒密碼來解決。在白盒密碼環(huán)境下,攻擊者對密碼的軟件實(shí)現(xiàn)完全可見,能完全控制執(zhí)行平臺,但并不能提取密鑰信息。
周等人[1]在2002年提出了白盒密碼,目的是保護(hù)在不可信環(huán)境下密碼算法的軟件實(shí)現(xiàn),主要目標(biāo)是保護(hù)在白盒環(huán)境下密鑰的機(jī)密性。周等人[1-2]首先提出了數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)和高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)的白盒實(shí)現(xiàn)。它們的方法是要找到算法表示為以隨機(jī)和密鑰相關(guān)的表的查找網(wǎng)絡(luò),后又提出了對DES和AES的白盒實(shí)現(xiàn)[3-6]。然而,所有這些方法都通過密鑰提取和表分解攻擊被攻破了。Biryukov等人[7]提出了專用的白盒分組密碼,基于仿射-非線性-仿射-非線性-仿射(Affine,Nonlinear,Affine,Nonlinear,Affine,ASASA)結(jié)構(gòu)。此結(jié)構(gòu)由2個(gè)秘密的非線性層和3個(gè)秘密的仿射層組成,且仿射層和非線性層交織在一起。ASASA結(jié)構(gòu)的白盒實(shí)現(xiàn)使用查找表。在白盒環(huán)境下,ASASA對密鑰提取的安全性依賴于對ASASA的分解問題的困難性。在白盒環(huán)境下的表分解攻擊應(yīng)是計(jì)算上困難的,使得代碼提升攻擊是困難的。然而,對ASASA的分解攻擊[8-9]已經(jīng)提出。文獻(xiàn)[10]提出了基于空間困難性的分組密碼,在白盒下的分解安全性基于在標(biāo)準(zhǔn)黑盒下的密鑰恢復(fù)困難性。然而,由于安全性優(yōu)先設(shè)計(jì)策略,此方案會造成嚴(yán)重的性能開銷,需要多次AES調(diào)用以加密單一的分組。文獻(xiàn)[11]設(shè)計(jì)了專門的白盒分組密碼SPNbox和小的分組密碼,具有較好的效率和常量的執(zhí)行時(shí)間。文獻(xiàn)[12-13]提出了差分計(jì)算分析方法,能從白盒實(shí)現(xiàn)中自動提取密鑰。文獻(xiàn)[14]實(shí)現(xiàn)了和文獻(xiàn)[10-11]同樣的目標(biāo),但它提供了安全性證明保證且開銷較小。文獻(xiàn)[15]焦距在不可壓縮性上,且這種不可壓縮性能減輕代碼量和提升攻擊。他們提出了基于單向置換標(biāo)準(zhǔn)假設(shè)的不可壓縮的白盒加密方案,而先前的工作多是基于公鑰類型的假設(shè)和基于非標(biāo)準(zhǔn)的對稱類型的假設(shè)。文獻(xiàn)[16]使用硬件綁定和混淆用于安全存儲,定義了白盒密鑰派生函數(shù),與硬件功能進(jìn)行綁定,建模安全的存儲功能。方案的安全性能規(guī)約到不可區(qū)分性混淆和偽隨機(jī)函數(shù)安全假設(shè)。
下面闡述白盒密碼的一些相關(guān)概念[17]。
分組密碼。一條nb比特的分組密碼E是一個(gè)確定性函數(shù)。它在一把nk比特的密鑰k的作用下映射nb比特的明文分組m成一條nb比特的密文分組c:
式中,nb和nk分別為分組密碼大小和密鑰大小。
理想分組密碼。如果分組密碼E指定的在上的個(gè)置換的分組密碼系列是從個(gè)不同的轉(zhuǎn)換中隨機(jī)均勻選擇的,則此分組密碼E是理想分組密碼。即使是理想分組密碼,也容易遭到黑盒攻擊。這種攻擊并不利用分組密碼的內(nèi)部結(jié)構(gòu)。
在設(shè)計(jì)新的分組密碼時(shí),需要考慮混淆和擴(kuò)散。
混淆指的是密文比特依賴于明文比特和密鑰比特的復(fù)雜方式,目標(biāo)是使這種關(guān)系盡可能復(fù)雜,以便攻擊者要利用這種關(guān)系是困難的,甚至是不可能的。獲得混淆的基本部件是非線性的替換盒(S-boxes),典型的是以查找表來實(shí)現(xiàn)。然而,對查找表的存儲需求會對輸入大小造成限制。
擴(kuò)展指的是每個(gè)明文比特和每個(gè)密鑰比特對密文比特的影響程度,目標(biāo)是使影響盡可能大。它具有一個(gè)特性,即翻轉(zhuǎn)一明文比特或一密鑰比特會導(dǎo)致以1/2的概率翻轉(zhuǎn)密文比特,這種特性叫雪崩效應(yīng)。獲得擴(kuò)散的基本分量如下:(1)線性擴(kuò)散盒(D-盒),包含大量的線性運(yùn)算;(2)對比特級或比特束級的置換,通常也叫比特轉(zhuǎn)換或束轉(zhuǎn)換。與非線性的S-boxes不同,這些擴(kuò)散分量的輸入大小通常沒有約束。
查找表。查找表L映射m到n比特,是給定函數(shù)f:的特定表示。此查找表共需要2m×n比特的存儲空間。由于此空間大小與表的輸入大小m成指數(shù)關(guān)系,當(dāng)m較大時(shí),存儲需求不切實(shí)際。
非線性的替換和線性的擴(kuò)散是大多數(shù)分組密碼設(shè)計(jì)的關(guān)鍵。它通常由Feistel密碼和替換置換網(wǎng)絡(luò)兩種分組密碼構(gòu)造。這兩種構(gòu)造屬于迭代分組密碼,即乘積密碼。乘積密碼是通過多次替代簡單的密鑰相關(guān)的輪函數(shù)生成的分組密碼。盡管簡單的密鑰輪函數(shù)能充當(dāng)弱分組密碼,但是通過多次輪函數(shù)的迭代會導(dǎo)致強(qiáng)分組密碼。
攻擊模型。攻擊模型指定攻擊者的能力,以試圖攻破分組密碼。這種能力要以低于窮舉密鑰搜索的復(fù)雜性進(jìn)行攻擊。
黑盒模型。在這種模型下,通信信道的授權(quán)終端用戶——發(fā)送方和接收方假定是可信的。這種假設(shè)在早期的密碼中是有效的,但現(xiàn)在密碼應(yīng)用廣泛,黑盒密碼已經(jīng)不夠。黑盒模型是一種保守模型,即攻擊者被限制在分組密碼的輸入/輸出行為上。這里輸入對應(yīng)于明文和密鑰,輸出對應(yīng)于密文。黑盒模型有唯密文攻擊、已知明文攻擊、選定明文攻擊、選定密文攻擊以及自適應(yīng)選定明文/密文攻擊等,阻止對內(nèi)部操作或數(shù)據(jù)的觀察或篡改。
灰盒模型。這種模型不再假定通信信道的端點(diǎn)是可信的,攻擊者能對實(shí)現(xiàn)進(jìn)行有限的訪問。對密碼算法實(shí)現(xiàn)的攻擊而不是對算法的攻擊,指的是實(shí)現(xiàn)攻擊。常見的是側(cè)信道分析攻擊,如執(zhí)行時(shí)間、能耗和電磁輻射?;液忻艽a涉及到密碼體制的硬件實(shí)現(xiàn),攻擊者能篡改物理設(shè)備以獲得與密鑰相關(guān)的側(cè)信道信息。
白盒模型。此模型和灰盒模型一樣,終端用戶是不可信的,且此模型下攻擊者能完全訪問密碼軟件的執(zhí)行,能對執(zhí)行平臺實(shí)施完全控制。
攻擊的整體復(fù)雜性可分為時(shí)間復(fù)雜性、存儲復(fù)雜性和數(shù)據(jù)復(fù)雜性。
對白盒密碼的研究可大致分為對稱白盒密碼和公鑰白盒密碼?,F(xiàn)在主要的研究都集中在對稱白盒密碼上,下面對其進(jìn)行分類闡述。
基于仿射-非線性(Affine,Nonlinear,AS)結(jié)構(gòu)的白盒密碼都已經(jīng)被攻破。Bogdanov等人[10]提出了基于空間困難性的白盒密碼。后來,Bogdanov等人[11]提出了實(shí)用的白盒密碼方案。他們的方案也是基于空間困難性的白盒密碼方案,而且具有較好的效率。它們的比較如表1所示。
針對之前的一些工作[10-11]沒有進(jìn)行白盒密碼的安全性證明,文獻(xiàn)[14-16]實(shí)現(xiàn)了不可壓縮性的目的,也提供了安全性證明。它們的比較如表2所示。
大多數(shù)的白盒密碼實(shí)現(xiàn)都是基于固定密鑰。在一些白盒密碼應(yīng)用中,要求更新密鑰。文獻(xiàn)[18-20]分別給出了基于動態(tài)密鑰的白盒密碼,比較如表3所示。
表1 基于空間困難性的白盒密碼的比較
表2 基于安全性證明的白盒密碼的比較
表3 動態(tài)白盒密碼的對比
白盒密碼由于可用在移動支付上,因此對它的研究將會越來越受到重視。當(dāng)前可在國際5大知名數(shù)據(jù)庫IEEE、ACM、Elsevier、Springer和Wiles下載白盒密碼的經(jīng)典論文,或國際Proquest學(xué)位論文數(shù)據(jù)庫或國內(nèi)的中文數(shù)據(jù)庫進(jìn)行下載相關(guān)的白盒密碼的經(jīng)典論文進(jìn)行研究,也可研究學(xué)習(xí)美日歐和國內(nèi)白盒密碼發(fā)明專利進(jìn)行研究。此外,可在Github上找到白盒密碼的源代碼進(jìn)行研究,可開展討論班、學(xué)術(shù)會議和與企業(yè)合作進(jìn)行實(shí)際研發(fā),以用于生產(chǎn)和生活。
在網(wǎng)絡(luò)空間安全碩士點(diǎn)和博士點(diǎn)一級學(xué)科的教學(xué)中,密碼學(xué)是不可缺少的一個(gè)重要環(huán)節(jié)。白盒密碼是密碼學(xué)的一個(gè)重要分支,可用于數(shù)字版權(quán)管理、移動支付等領(lǐng)域。本文對白盒密碼的相關(guān)概念、分類和研究方法進(jìn)行闡述,可為研究生的后續(xù)研究打下基礎(chǔ)。