呂 慧,趙躍華
(江蘇大學 計算機科學與通信工程學院,江蘇 鎮(zhèn)江 212013)
隨著科技的不斷進步,內(nèi)嵌密碼模塊的智能設備和嵌入式設備已廣泛應用于各類信息產(chǎn)品與通信系統(tǒng)中。密碼芯片的安全問題也成為了當今社會人們非常關(guān)注的問題。在紛繁復雜的各類攻擊方式中,側(cè)信道攻擊是最有效的攻擊方式之一,對諸如智能卡這樣的智能設備的實際安全性造成了極大的威脅。
AES算法作為新一代高級加密標準,是一種迭代型分組密碼算法,在各類信息產(chǎn)品中應用十分廣泛。本文主要研究基于AES加密的密碼芯片能量分析攻擊技術(shù)與防御技術(shù)。
掩碼方法是目前使用最廣泛的抗能量分析攻擊方法,國內(nèi)外專家學者對掩碼方法進行了深入的研究,首先提出的是隨機掩碼的概念,之后提出了固定值掩碼方案。隨著加密和破譯技術(shù)的不斷進步,在抗一階能量分析攻擊的防御技術(shù)趨于成熟時,學者們又把目光投向了高階能量分析攻擊的防御方法上。文獻[1-3]對抗高階能量分析攻擊方法進行了深入研究,Rivain等[1]研究了高階掩碼型S盒的設計過程,文獻[2]利用仿射掩碼來實現(xiàn)抗高階能量分析,文獻[3]則是采用加法掩碼和乘法掩碼相結(jié)合的方法。考慮到現(xiàn)實應用的可能性,本文以資源受限的智能卡設備為研究對象,在現(xiàn)有掩碼算法分析研究的基礎上,提出了一種改進的掩碼防御算法。該算法綜合考慮了實現(xiàn)的安全性和資源開銷,且能夠抵抗一階和二階差分能量分析攻擊,是一種安全性高、易于實現(xiàn)的掩碼防御算法。
AES算法是NIST于2000年宣布用于替代DES的分組密碼標準,也是目前最完善的密碼體系,因此針對AES的能量分析攻擊及其防御措施成為研究的熱點。AES算法是一種靈活的算法,密鑰長度一般有128bit、192bit和256 bit 3種,本文以128 bit為例來說明。AES將每一個分組,128 bit的輸入和128 bit的密鑰都作為一個以字節(jié)為單位的4×4矩陣(State),AES是迭代型密碼,128 bit密鑰的情況共有10輪運算。核心算法就是輪函數(shù)對State的重復作用。輪函數(shù)由4個可逆的內(nèi)部函數(shù)構(gòu)成,包括:輪密鑰加(AddRoundKey)、字節(jié)代換(SubBytes)、行移位(ShiftRows)和列混淆(MixColumns)。
在AES算法的4個內(nèi)部函數(shù)中,SubBytes是AES算法中唯一的非線性變換,往往通過查表來實現(xiàn)。MixColumns操作把狀態(tài)的每一列看作GF(28)域上的多項式,并與一個固定的多項式 C(x)={03}x3+{01}x2+{01}x+{02}相乘,然后模多項式x4+1取余,列混淆運算過程如式1所示。
輸入的128 bit的密鑰經(jīng)過密鑰擴展函數(shù)KeyExpansion之后擴展成11個密鑰塊,提供給輪函數(shù)作輪密鑰加運算。除了第一輪運算之前有一個AddRoundKey,和最后一輪運算省略MixColumns操作之外,其余9輪運算的輪函數(shù)完全相同。AES算法加解密過程如圖1所示。
圖1 AES算法加解密流程圖Fig.1 The flow chart of AESencryption and decryption algorithm
智能卡現(xiàn)在已經(jīng)廣泛應用于各類密碼設備中,用以提供強有力的用戶認證,并安全地儲存密碼信息。然而,1998年,當Kocher等指出能量分析攻擊能夠有效地揭示出智能卡中的秘密信息時,人們對密碼設備安全性的傳統(tǒng)看法瞬間崩塌。
能量分析攻擊的基本思想是通過分析密碼設備的能量消耗獲得其密鑰,而這種攻擊主要利用了兩類能量消耗依賴性:數(shù)據(jù)依賴性和操作依賴性。常見的能量分析攻擊類型主要有:簡單能量分析攻擊 (SPA)、差分能量分析攻擊(DPA)、高階差分能量分析攻擊(HO-DPA)以及相關(guān)性能量分析攻擊等。
能量分析攻擊能夠?qū)嵤┑囊罁?jù)是密碼設備的能量消耗依賴于設備所執(zhí)行的密碼算法的中間值,因此,要試圖抵御這種攻擊,就要降低甚至消除這種依賴性,使得密碼設備的能量消耗獨立于設備所執(zhí)行的密碼算法的中間值。目前已公開的抗能量分析攻擊的各種對策本質(zhì)上可以分為隱藏技術(shù)和壓那么技術(shù)兩大類。
目前,針對AES算法的抗能量分析研究已取得大量的研究成果。Messerges提出了隨機掩碼算法,在每一輪加密運算時都產(chǎn)生一組隨機掩碼,然后分別將它們與輪密鑰和明文進行異或運算,將掩碼操作后的輸出進行相應的輪函數(shù)運算。在該隨機掩碼機制中,每一輪的輪函數(shù)都需要生成一個新的隨機掩碼值,并需要根據(jù)這個掩碼值實時計算出其相對應的掩碼型S盒,需要很大的軟硬件開銷。
為了解決隨機掩碼防御機制需要很大軟硬件開銷的難題,文獻[4]提出了一種新的掩碼機制,即乘法掩碼。在該防御策略中,用于對輸入信息保護的掩碼和用于對輸出信息進行恢復的修正掩碼是相同的。因此不需要再重新計算和保存掩碼后的S盒,能有效降低掩碼防御算法的軟硬件開銷。然而,文獻[5]指出,乘法掩碼并不能有效抵抗能量分析攻擊和零值攻擊。
Messerges等提出了一種簡化的固定值掩碼方法[6],該方法需要預先產(chǎn)生q組單字節(jié)掩碼值并計算相對應的掩碼型S盒,并將掩碼值及其相對應的S盒保存在ROM中。執(zhí)行加密算法前,密碼設備先在q組掩碼值中隨機選取一組,加密過程中,就使用該掩碼值及其對應掩碼型S盒對明文進行掩碼。固定值掩碼與隨機掩碼方法相比,資源占用量更少,所需存儲空間也更少,因而更具有現(xiàn)實意義。但文獻[7]指出該方法不能抗二階能量分析攻擊,無法滿足實際應用的需求,并在此基礎上作出了改進,對AES的四輪運算分別用不同的掩碼值進行掩碼,但是該方法仍然存在著信息泄漏的風險,在抗二階DPA和CPA攻擊上仍然存在著安全隱患。
固定值掩碼方法不能抗二階差分能量攻擊,其原因主要在于該掩碼加密算法執(zhí)行過程中,存在著一輪以上使用了同樣的掩碼值的情況,攻擊者可通過關(guān)聯(lián)進行差分統(tǒng)計來消除這一掩碼。實驗證明,掩碼的橫向重用和縱向重用都會使得加密算法易受二階差分能量分析攻擊和相關(guān)性能量分析攻擊。本文在簡化的固定值掩碼方法的基礎上,為提高加密設備抗二階能量分析攻擊的能力,提出了一種改進的掩碼防御算法。其基本設計思想如下:
1)為了解決固定值掩碼方法一輪以上使用了相同的掩碼值的問題,本文根據(jù)高級加密標準AES算法自身的特性,對AES算法的四輪運算,對應四組掩碼值,預先計算并分別存放在不同的寄存器中,每輪加密運算過程中的3步運算(列混淆操作除外),從不同的寄存器中隨機抽取3個掩碼值分別進行掩碼,從而降低了多輪采用同一掩碼值的可能性。
2)對于AES算法中的MixColumns操作,該操作需對同一列中不同行的字節(jié)進行混合,操作過程中相同的掩碼值相互抵消就會暴露中間值。因此,為了確保所有的中間值都能夠被掩碼,本文對該處算法狀態(tài)的每一行都采用一個單獨的掩碼值進行掩碼。預先計算p組單字節(jié)掩碼值R={m0,m1,…,mp-1}及其經(jīng)過MixColumns操作后的相對應的輸出掩碼值R,={m’0,m’1,…,m’p-1},將其存儲在 ROM 中,每輪加密運算時,從R中隨機選取4個,對狀態(tài)字節(jié)的每一行分別進行掩碼,操作結(jié)束后再用相對應的R,來消除掩碼。列混淆操作的具體掩碼過程如圖2所示。
圖2 列混淆操作的掩碼過程Fig.2 Masking process of MixColumns operation
公設:設密碼運算過程中變量 z1,z2,…,zn,如果存在一個函數(shù) f能夠使得等式 z=f(z1,z2,…,zn)成立,則稱可以實施高階功耗攻擊。
文中的改進掩碼算法中,所有的中間值均被掩碼,所以一定能夠抵抗一階SPA和DPA攻擊。同時,對加密算法的每輪4個函數(shù)操作均采取不同的掩碼值集合進行掩碼,因而不存在中間變量滿足 z=f(z1,z2,…,zn),所以該算法能夠防御二階DPA攻擊。
文中提出的改進算法需要4個寄存器來存儲四輪運算的掩碼值集合,并且需要完成對掩碼型S盒和MixColumns操作的預計算,對內(nèi)存的需求有所增加,但該方法實現(xiàn)簡單,更容易實現(xiàn)硬件電路的設計。與文獻[6]中的方法相比,本文增加了一個MixColumns的預計算和存儲,對MixColumns操作的狀態(tài)字節(jié)分行掩碼,進一步提高了算法抗二階DPA攻擊的安全性。許多文獻提出的抗高階能量分析方法都是針對高階S盒的設計[1,8],由于S盒非線性函數(shù)的特性,這類方法的實現(xiàn)過程比較復雜,對硬件電路設計的要求也比較高。因此,本文提出的算法在保證安全性的同時更具可行性。
文中用FPGA實現(xiàn)了文獻[7]提出的固定值掩碼方法和本文提出的掩碼方法,搭建能量分析平臺,在加密算法執(zhí)行期間,F(xiàn)PGA向數(shù)字示波器發(fā)送觸發(fā)信號,采集采樣電阻兩端的能量消耗曲線,并將數(shù)據(jù)傳送到計算機,計算機運用MATLAB軟件對采集到的數(shù)據(jù)進行統(tǒng)計分析,從而獲得相關(guān)的密鑰信息。本文通過對5 000條明文進行加密,得到能量消耗數(shù)據(jù),統(tǒng)計分析后得到的結(jié)果如圖3和圖4所示。實驗證明兩種方法均可以抵抗一階SPA攻擊和DPA攻擊,但文獻[7]中提出的掩碼算法并不能完全抵抗二階DPA攻擊,圖3中的尖峰表示該掩碼方案中存在著中間值未被掩碼,從而導致信息泄漏,攻擊者可以從中猜測出正確的密鑰。而圖4則表明了本文提出的改進的固定值掩碼算法能夠抵抗二階差分能量分析攻擊。
圖3 文獻[7]中掩碼方案二階差分能量攻擊結(jié)果Fig.3 Results of masking method in ref.[7]for second-order DPA attacks
圖4 本文改進掩碼方法二階差分能量攻擊結(jié)果Fig.4 Results of the improved masking method in this paper for second order DPA attacks
能量分析攻擊由于其成本消耗低,攻擊效率高等特點,已成為當今智能卡等嵌入式設備安全最大的威脅。智能卡等設備由于其自身資源的有限性,因此,采用固定值掩碼方案來抗能量攻擊是一種比較實用可行的方法。固定值掩碼方法相對于隨機掩碼算法來說,占用了更少的資源,實現(xiàn)了更快的加解密速度。
然而,隨著攻擊技術(shù)的不斷發(fā)展,各類攻擊方法越來越復雜多樣,有些算法已經(jīng)不能達到實際應用中的安全要求。所以,我們需要對固定值掩碼方法進一步地研究與改進,以提高其抗高階能量分析攻擊的能力。
本文對固定值掩碼方案進行了深入地研究,并在此基礎上提出了一種改進的固定值掩碼方法,進一步的工作是實現(xiàn)對掩碼型加密算法的優(yōu)化,以及其在智能卡等設備上的硬件實現(xiàn)[9-10]。
[1]Rivain M,Prouff E.Provably Secure Higher-Order Masking of AES[C]//In:Mangard S, Standaert F-X (eds.) CHES 2010.LNCS,Springer,Heidelberg,2010:413-427.
[2]Fumaroli G,Martinelli A,Prouff E,Rirain M.Affine Masking against Higher-Order Side Channel Analysis[C]//In selected Areas in Cryptography, ser.LNCS, vol.6544.Springer,2010:262-280.
[3]A M-L,Giraud C.An Implementation of DES and AES,Secure against Some attacks [A].In:Workshop on Cryptographic Hardware and Embedded Systems CHES 2005, LNCS 2163[C]//Berlin:Springer-Verlag,2005:309-318.
[4]Mehd I,Laurent Akker,Giraud C.An Implemention of DES and AES,Secure against Some Attacks[A].Workshop on Cryptographic Hardware and Embedded Systems CHES 2001[C].Springer-Verlag,2001.
[5]Golic J D,Tymen C.Multiplicative Masking and Power Analysis of AES[A].Workshop on Cryptographic Hardware and Embedded Systems CHES 2002[C]//Lecture Notes in Computer Science.Volume 2623.Springer-Verlag,2003:198-212.
[6]Messerges Thomas S.Securing the AES Finalists Against Power Analysis Attacks[C].Proceedings of Fast Software Encryption Workshop 2000, Spinger-Verlag,2000.
[7]李浪.簡單固定值掩碼二階差分功耗攻擊方法及其防御措施[J].小型微型計算機系統(tǒng),2010,31(9):1894-1898.LI Lang.Simple fixed value masking for second-order differential power attack methods and its defense measures[J].Small Microcomputer System, 2010,31(9):1894-1898.
[8]Ahmed W,mahmood H,Siddique U.The Efficient Implementation of S8 AESAlgorithm[J].Proceedings of the World Congress on Engineering,2011,WCE 2011:1215-1219.
[9]Regazzoni F,Wang Y,Standaert F.FPGA Implementation of the AES Masked Against Power Analysis Attacks[C]//In COSADE, February,2011:56-66.
[10]Genelle L, Prouff E, Quisquater M.Montgomery’s trick and fast implementation of masked AES[C].In:Nitaj, A.,Pointcheval, D.(eds.)AFRICACRYPT 2011.:153-169.