付興兵,周 楠,吳 鋌
(杭州電子科技大學,浙江 杭州 310018)
隨著威脅的日益增加,社會發展需要越來越多的網絡空間安全人才。國家分別批準設立了網絡空間安全一級學科的碩士點和博士點,以加速我國的網絡空間安全人才培養。密碼學在網絡空間安全人才培養中是不可缺少的重要環節,對密碼學的研究和密碼人才的培養具有重要意義。
密碼算法設計在攻擊者出現的情況下用來保護數據或通信。若這些算法利用了密鑰,則它們的安全性依賴于密鑰的安全性,因此攻擊者主要的目標是提取密鑰。在傳統的黑盒環境下,攻擊者僅訪問密碼算法的輸入與輸出。然而,越來越多的軟件在由惡意第三方所擁有和控制的不可信開放平臺上執行,這就需要配置強密碼算法。在黑盒環境不充足的情況下,攻擊者能完全訪問密碼算法的軟件實現,從而完全控制它的執行環境。白盒密碼可用于數字內容保護系統中,如數字版權管理和付費電視系統,近年來更用于移動支付。提取密鑰會危及內容安全,白盒密碼的目的是在白盒環境下保護密碼算法和密鑰的機密性。
傳統上,密碼原語被設計用來保護在黑盒攻擊模型下的數據和密鑰。在這種模型下,通信的端點是可信的,這樣密碼執行就不能被觀察或篡改。這種假設在現在的數字版權管理、付費電視機頂盒和智能手機中是不適合的,因此需要白盒密碼來解決。在白盒密碼環境下,攻擊者對密碼的軟件實現完全可見,能完全控制執行平臺,但并不能提取密鑰信息。
周等人[1]在2002年提出了白盒密碼,目的是保護在不可信環境下密碼算法的軟件實現,主要目標是保護在白盒環境下密鑰的機密性。周等人[1-2]首先提出了數據加密標準(Data Encryption Standard,DES)和高級加密標準(Advanced Encryption Standard,AES)的白盒實現。它們的方法是要找到算法表示為以隨機和密鑰相關的表的查找網絡,后又提出了對DES和AES的白盒實現[3-6]。然而,所有這些方法都通過密鑰提取和表分解攻擊被攻破了。Biryukov等人[7]提出了專用的白盒分組密碼,基于仿射-非線性-仿射-非線性-仿射(Affine,Nonlinear,Affine,Nonlinear,Affine,ASASA)結構。此結構由2個秘密的非線性層和3個秘密的仿射層組成,且仿射層和非線性層交織在一起。ASASA結構的白盒實現使用查找表。在白盒環境下,ASASA對密鑰提取的安全性依賴于對ASASA的分解問題的困難性。在白盒環境下的表分解攻擊應是計算上困難的,使得代碼提升攻擊是困難的。然而,對ASASA的分解攻擊[8-9]已經提出。文獻[10]提出了基于空間困難性的分組密碼,在白盒下的分解安全性基于在標準黑盒下的密鑰恢復困難性。然而,由于安全性優先設計策略,此方案會造成嚴重的性能開銷,需要多次AES調用以加密單一的分組。文獻[11]設計了專門的白盒分組密碼SPNbox和小的分組密碼,具有較好的效率和常量的執行時間。文獻[12-13]提出了差分計算分析方法,能從白盒實現中自動提取密鑰。文獻[14]實現了和文獻[10-11]同樣的目標,但它提供了安全性證明保證且開銷較小。文獻[15]焦距在不可壓縮性上,且這種不可壓縮性能減輕代碼量和提升攻擊。他們提出了基于單向置換標準假設的不可壓縮的白盒加密方案,而先前的工作多是基于公鑰類型的假設和基于非標準的對稱類型的假設。文獻[16]使用硬件綁定和混淆用于安全存儲,定義了白盒密鑰派生函數,與硬件功能進行綁定,建模安全的存儲功能。方案的安全性能規約到不可區分性混淆和偽隨機函數安全假設。
下面闡述白盒密碼的一些相關概念[17]。
分組密碼。一條nb比特的分組密碼E是一個確定性函數。它在一把nk比特的密鑰k的作用下映射nb比特的明文分組m成一條nb比特的密文分組c:

式中,nb和nk分別為分組密碼大小和密鑰大小。
理想分組密碼。如果分組密碼E指定的在上的個置換的分組密碼系列是從個不同的轉換中隨機均勻選擇的,則此分組密碼E是理想分組密碼。即使是理想分組密碼,也容易遭到黑盒攻擊。這種攻擊并不利用分組密碼的內部結構。
在設計新的分組密碼時,需要考慮混淆和擴散。
混淆指的是密文比特依賴于明文比特和密鑰比特的復雜方式,目標是使這種關系盡可能復雜,以便攻擊者要利用這種關系是困難的,甚至是不可能的。獲得混淆的基本部件是非線性的替換盒(S-boxes),典型的是以查找表來實現。然而,對查找表的存儲需求會對輸入大小造成限制。
擴展指的是每個明文比特和每個密鑰比特對密文比特的影響程度,目標是使影響盡可能大。它具有一個特性,即翻轉一明文比特或一密鑰比特會導致以1/2的概率翻轉密文比特,這種特性叫雪崩效應。獲得擴散的基本分量如下:(1)線性擴散盒(D-盒),包含大量的線性運算;(2)對比特級或比特束級的置換,通常也叫比特轉換或束轉換。與非線性的S-boxes不同,這些擴散分量的輸入大小通常沒有約束。
查找表。查找表L映射m到n比特,是給定函數f:的特定表示。此查找表共需要2m×n比特的存儲空間。由于此空間大小與表的輸入大小m成指數關系,當m較大時,存儲需求不切實際。
非線性的替換和線性的擴散是大多數分組密碼設計的關鍵。它通常由Feistel密碼和替換置換網絡兩種分組密碼構造。這兩種構造屬于迭代分組密碼,即乘積密碼。乘積密碼是通過多次替代簡單的密鑰相關的輪函數生成的分組密碼。盡管簡單的密鑰輪函數能充當弱分組密碼,但是通過多次輪函數的迭代會導致強分組密碼。
攻擊模型。攻擊模型指定攻擊者的能力,以試圖攻破分組密碼。這種能力要以低于窮舉密鑰搜索的復雜性進行攻擊。
黑盒模型。在這種模型下,通信信道的授權終端用戶——發送方和接收方假定是可信的。這種假設在早期的密碼中是有效的,但現在密碼應用廣泛,黑盒密碼已經不夠。黑盒模型是一種保守模型,即攻擊者被限制在分組密碼的輸入/輸出行為上。這里輸入對應于明文和密鑰,輸出對應于密文。黑盒模型有唯密文攻擊、已知明文攻擊、選定明文攻擊、選定密文攻擊以及自適應選定明文/密文攻擊等,阻止對內部操作或數據的觀察或篡改。
灰盒模型。這種模型不再假定通信信道的端點是可信的,攻擊者能對實現進行有限的訪問。對密碼算法實現的攻擊而不是對算法的攻擊,指的是實現攻擊。常見的是側信道分析攻擊,如執行時間、能耗和電磁輻射。灰盒密碼涉及到密碼體制的硬件實現,攻擊者能篡改物理設備以獲得與密鑰相關的側信道信息。
白盒模型。此模型和灰盒模型一樣,終端用戶是不可信的,且此模型下攻擊者能完全訪問密碼軟件的執行,能對執行平臺實施完全控制。
攻擊的整體復雜性可分為時間復雜性、存儲復雜性和數據復雜性。
對白盒密碼的研究可大致分為對稱白盒密碼和公鑰白盒密碼。現在主要的研究都集中在對稱白盒密碼上,下面對其進行分類闡述。
基于仿射-非線性(Affine,Nonlinear,AS)結構的白盒密碼都已經被攻破。Bogdanov等人[10]提出了基于空間困難性的白盒密碼。后來,Bogdanov等人[11]提出了實用的白盒密碼方案。他們的方案也是基于空間困難性的白盒密碼方案,而且具有較好的效率。它們的比較如表1所示。
針對之前的一些工作[10-11]沒有進行白盒密碼的安全性證明,文獻[14-16]實現了不可壓縮性的目的,也提供了安全性證明。它們的比較如表2所示。
大多數的白盒密碼實現都是基于固定密鑰。在一些白盒密碼應用中,要求更新密鑰。文獻[18-20]分別給出了基于動態密鑰的白盒密碼,比較如表3所示。

表1 基于空間困難性的白盒密碼的比較

表2 基于安全性證明的白盒密碼的比較

表3 動態白盒密碼的對比
白盒密碼由于可用在移動支付上,因此對它的研究將會越來越受到重視。當前可在國際5大知名數據庫IEEE、ACM、Elsevier、Springer和Wiles下載白盒密碼的經典論文,或國際Proquest學位論文數據庫或國內的中文數據庫進行下載相關的白盒密碼的經典論文進行研究,也可研究學習美日歐和國內白盒密碼發明專利進行研究。此外,可在Github上找到白盒密碼的源代碼進行研究,可開展討論班、學術會議和與企業合作進行實際研發,以用于生產和生活。
在網絡空間安全碩士點和博士點一級學科的教學中,密碼學是不可缺少的一個重要環節。白盒密碼是密碼學的一個重要分支,可用于數字版權管理、移動支付等領域。本文對白盒密碼的相關概念、分類和研究方法進行闡述,可為研究生的后續研究打下基礎。