摘 要: 簡要介紹了DES的加密過程,將差分" title="差分">差分能量分析DPA(Differential Power Analysis)的原理運(yùn)用于該算法,提出了區(qū)分函數(shù)的選取原則,并針對差分能量分析的假設(shè),介紹了幾種對抗這種攻擊的策略。
關(guān)鍵詞: DES DPA 差分能量分析 區(qū)分函數(shù)
傳統(tǒng)的密碼分析理論認(rèn)為,對密碼芯片的分析僅依賴于輸入明文和輸出密文。而在實(shí)際應(yīng)用中,分析人員可以獲得其它的信息。例如對于有引腳的芯片,很容易獲得引腳上的電流或者電壓。通過這些電流或電壓的變化,可以用有別于傳統(tǒng)的方法獲得密鑰的信息。
1 DES加密過程
DES(Data Encryption Standard)被認(rèn)為是加密技術(shù)的兩大里程碑之一。在上個世紀(jì)得到了廣泛的應(yīng)用。這里給出其中一輪加密過程,如圖1。其它如擴(kuò)展置換、密鑰產(chǎn)生等具體過程見參考文獻(xiàn)[1]。
在整個DES加密流程中,只有S盒(S-box)是唯一的非線性函數(shù),是整個加密算法的安全核心。圖2給出了S盒的圖示。
圖2中的每個S盒都是一個4×16的查找表" title="查找表">查找表。在加密過程中,將與子密鑰K異或后的48bits均分為8組,分別對應(yīng)8個S盒,記每組為(a0a1a2a3a4a5)。根據(jù)這6位輸入,在對應(yīng)的S盒查找表中找到對應(yīng)的4位數(shù)據(jù)作為輸出。查找表中的對應(yīng)關(guān)系如下:由(a0 a5)決定對應(yīng)的S盒的行,由(a1a2a3a4)決定對應(yīng)的S盒的列。由這個行和列確定的數(shù)(4位二進(jìn)制表示)作為該S盒的輸出。
由于S盒在DES加密算法中的特殊地位,使得很多攻擊方法都是針對S盒的。
2 DPA原理在DES上的應(yīng)用
Differential Power Analysis最早由Kocher et al提出[2],現(xiàn)在許多研究人員指出它對智能卡(Smart Card)是一種有效的攻擊[2~6]。其理論基礎(chǔ)是:在加密過程中要消耗能量,而消耗的能量隨處理的數(shù)據(jù)不同會有微小的變化。根據(jù)這種變化確定所處理的數(shù)據(jù)是0 還是1,從而有可能猜出加密算法中所使用的密鑰。
在具體討論這種攻擊前,對所用符號做如下約定:
Si[j]:第i個明文在時間點(diǎn)j時的能量消耗" title="能量消耗">能量消耗抽樣值;
D(·):引入的區(qū)分函數(shù);
A0[j]:集合S0中所有信號在j時刻的平均能量消耗;
A1[j]:集合S1中所有信號在j時刻的平均能量消耗;
△D[j]:兩集合的平均信號能量差異。
首先,要能夠測得整個加密流程中S盒的能量消耗曲線?;诮y(tǒng)計的理論,要求記錄足夠的樣本點(diǎn)Si[j]。這里隱含了一個假設(shè):S盒中對不同比特處理時,能量消耗差異發(fā)生在一個特定的時間,而且正好在該點(diǎn)的±△時間范圍內(nèi)進(jìn)行抽樣,因此能夠記錄下不同的能量消耗曲線。這個假設(shè)可以作為抗DPA攻擊對策的一個切入點(diǎn)。
另外還需要讓這些能量曲線反映出關(guān)于密鑰的信息。這是整個DPA過程中的關(guān)鍵。在這兒,引入了區(qū)分函數(shù)D(·),有的地方也記為selection function[2]。從上面的" title="面的">面的(1)和(2)式中可以看到,該函數(shù)的作用是將樣本曲線映射到兩個不相交的集合上。
下一步,對這兩個集合中的樣本在時間點(diǎn)j的樣本值進(jìn)行平均,得到時間點(diǎn)j時的平均能量消耗。由于Si[j]包含信號和噪聲這兩部分的能量消耗,而根據(jù)隨機(jī)過程的知識,知道其中大部分均值為0。關(guān)于噪聲的模型可見參考文獻(xiàn)[4]。因而這種平均可以在一定程度上降低隨機(jī)噪聲對信號的影響。
由上面可以看到:當(dāng)|△D[j]|較大時,說明由區(qū)分函數(shù)劃分的兩個信號的能量消耗在j時刻差異較大。而這種能量消耗差異,正是由密鑰和待處理數(shù)據(jù)相互作用而產(chǎn)生的。如果選擇的區(qū)分函數(shù)合適,即在理想的情況下,D函數(shù)正好將所有在j時刻芯片處理數(shù)據(jù)為1的Si[j]選到集合S1;相應(yīng)地,在j時刻,芯片處理的數(shù)據(jù)為0的所有Si[j]被D函數(shù)映射到集合S0中,這時能量消耗差異很明顯。
目前發(fā)表的文獻(xiàn)中均只給出了具體的區(qū)分函數(shù),下面給出區(qū)分函數(shù)的一般選取原則:
(1)區(qū)分函數(shù)是關(guān)于密鑰的函數(shù)D(Ki);
(2)區(qū)分函數(shù)在正確的輸入下應(yīng)當(dāng)重現(xiàn)加密芯片所處理的某一比特值。
如將該函數(shù)定義為:
即D值等于第i個樣本在第一輪非線性變換中的第一個" title="第一個">第一個S盒輸出的4bits中的第一個比特。其中P6表示明文經(jīng)過初始置換后作為第一個S盒輸入的6bits,K1表示猜測的第一輪密鑰中用于第一個S盒的輸入部分。如果猜測的密鑰正確,那么D值就一定會等于實(shí)際加密過程中第一個S盒的第一位輸出。即這一時刻所有輸出為1的Si[j]都會被映射到集合S1,因此會使得△D[j]出現(xiàn)峰值。相反,如果密鑰不正確,就會使得某些輸出值為1的Si[j]被映射到集合S0中,這時△D[j]的峰值會變小。這樣,就可以猜出一部分密鑰了。依照這種方法,猜測全部S盒的48bits密鑰所需的次數(shù)為26×8次,另外8比特密鑰可以用窮舉法求得。這個結(jié)果比單純地應(yīng)用窮舉搜索有了明顯的改進(jìn)。其它一些區(qū)分函數(shù)的例子見參考文獻(xiàn)[2,4,5]。
3 對策
基于DPA攻擊的假設(shè),可以提出一些對策。
假設(shè)1.攻擊者能夠記錄能量消耗差異。一種簡單的對策是引入噪聲,降低信噪比SNR,使得能量消耗差異減小。但這種引入噪聲的方法仍會受到改進(jìn)的DPA攻擊。參考文獻(xiàn)[4]指出,通過選擇特別的區(qū)分函數(shù),可以提高SNR。前面(6)式給出的D函數(shù)一次只確定一個比特的值,設(shè)改進(jìn)的D函數(shù)一次確定d個比特的值,如d=4,這時D函數(shù)的值可取后者信噪比約為前者的d倍。但在這種方法中,樣本曲線被映射到3個不相交的集合上。
第一個集合中D函數(shù)的值為d個0,第二個集合中D函數(shù)的值為d個1,第三個集合不用。其不利之處是需要的樣本點(diǎn)數(shù)會增加。
另一種對策是在加密過程中引入隨機(jī)延遲,這樣,特定時刻的實(shí)際能量消耗差異就不能被準(zhǔn)確記錄。
假設(shè)2.能量消耗的差異可以反映出密鑰的信息??梢酝ㄟ^對S盒的輸入做一些隨機(jī)的改變來掩飾密鑰的信息。一種常用的方法是用異或這一線性運(yùn)算,對S盒的輸入做隨機(jī)的改變。這需要對S盒的輸出也做一個相應(yīng)的修正,使得最后加密的結(jié)果不受異或這一線性運(yùn)算的影響。另外一種方法是在加密過程中用兩個不同的處理器,它們處理的數(shù)據(jù)寬度不同,因而消耗的能量也不一樣,再用一個隨機(jī)序列發(fā)生器來產(chǎn)生選擇信號,可以隨機(jī)地選擇不同的處理器。具體的硬件電路見參考文獻(xiàn)[6]。其它有關(guān)FPGA和ASIC在降低信息泄漏方面的專門研究,本文不做討論。但如果能防止信息泄漏,這將從根本上抵抗DPA攻擊。
應(yīng)該注意到,筆者是把智能卡作為攻擊對象,因而可能得到足夠的樣本點(diǎn),并知道明文和密文。這在其它的密碼系統(tǒng)上,并不是必然的事實(shí)。但目前智能卡得到了廣泛的應(yīng)用,因此這種攻擊的潛在危害較大。以上僅以DES的S盒部分說明了DPA攻擊,但就DPA的基本原理,它可以被應(yīng)用于其它的密碼算法上,如橢圓曲線[7]、AES[8](Advanced Encryption Standard)等。對DPA的防范措施還有待進(jìn)一步研究。
參考文獻(xiàn)
1 陳 運(yùn).信息加密原理.成都:電子科技大學(xué)出版社,1996
2 P.Kocher,J.Jaffe, B.Jun.Introduction to Differential Power Analysis and Related Attacks.1998.http://www.cryptography.com
3 Xi Xi Chen. Differential Power Analysis Countermeasures for DES. 2002
4 Thomas S.Messerges,Ezzat A.Dabbish,Robert H.Sloan.Exam-ining Smart-Card Security under the Threat of Power Analy- sis Attacks. IEEE TRANSACTIONS ON COMPUTERS,2002;51(5)
5 Jean.Sebastien Coron ,Louis Goubin.On Boolean and Arith-metic Masking against Differential Power Analysis.CHES2000,vol.1965 of Lecture Notes in Computer Science
6 Luca Benini,Alberto Macii,Enrico Macii,Elvira,etc.Energy-Aware Design Techniques for Differential Power Analysis Protection.Anaheim, California, USA DAC 2003, June
7 Jean-Sebastien Coron. Resistance Against Differential Power Analysis for Elliptic Curve Cryptosystems.Cryptographic Hard-ware and Embedded System,vol.1717 of Lecture Notes in Computer Science, 1999
8 [韓]Hwasun Chang. A Study on Securing AES against Dif-ferential Power Analysis. School of Engineering Information and Communications University, A Thesis for the Degree of Master,2004