《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 针对DES密码芯片的CPA攻击仿真
针对DES密码芯片的CPA攻击仿真
严迎建, 樊海锋, 徐金甫, 任
摘要: 为研究密码芯片抗功耗分析性能,构造了一个功耗分析研究平台,结合DES算法在平台上进行了相关性功耗分析(CPA)攻击仿真实验。根据猜测部分密钥时的模拟功耗与猜测整个密钥时模拟功耗之间的相关系数大小来确定猜测密钥的正确性,由此可以确定整个密钥。这种功耗分析仿真方法,能够揭示未经防御的DES算法面临CPA攻击时的脆弱性。
關(guān)鍵詞: DES算法 软件仿真
Abstract:
Key words :

    摘 要: 為研究密碼芯片抗功耗分析性能,構(gòu)造了一個功耗分析研究平臺,結(jié)合DES算法在平臺上進(jìn)行了相關(guān)性功耗分析(CPA)攻擊仿真實驗。根據(jù)猜測部分密鑰時的模擬功耗與猜測整個密鑰時模擬功耗之間的相關(guān)系數(shù)大小來確定猜測密鑰的正確性,由此可以確定整個密鑰。這種功耗分析仿真方法,能夠揭示未經(jīng)防御的DES算法面臨CPA攻擊時的脆弱性。
    關(guān)鍵詞: 相關(guān)性功耗分析; 仿真; DES

 

  隨著智能卡、掌上電腦和移動電話的不斷普及應(yīng)用,人們需要對一些信息隱私進(jìn)行保護(hù),因此信息安全問題日益突出。安全產(chǎn)品或者密碼系統(tǒng)都必須面對如何防御各種攻擊的問題。傳統(tǒng)攻擊方法是一種數(shù)學(xué)攻擊方法,主要通過大量數(shù)學(xué)計算來搜索密碼系統(tǒng)的密鑰。強力攻擊就是其中一個典型的例子:它嘗試所有的密鑰組合,直至找到正確的密鑰。但是隨著密鑰長度的增加,這種攻擊的難度也急劇增加。近年來,出現(xiàn)了一種新的攻擊方法,通常被稱為旁道攻擊。它是根據(jù)密碼芯片在加解密時所泄漏的一些微弱的旁道信息,如功耗、時間、電磁輻射及差錯信息等進(jìn)行攻擊。攻擊者利用旁道泄漏信息,結(jié)合統(tǒng)計學(xué)等學(xué)科的知識,能夠在短時間內(nèi)成功破解一些密碼算法的密鑰。
在旁道攻擊方法中,功耗分析方法應(yīng)用得最為廣泛和成熟,因為功耗信息最容易測量和分析。研究針對密碼芯片的功耗分析方法是為了檢驗芯片是否具有抗功耗分析能力或是檢驗密碼芯片抗功耗分析攻擊能力的大小。相關(guān)性功耗分析是功耗分析中一種,相關(guān)性功耗分析每次考慮的相關(guān)位比傳統(tǒng)的差分功耗分析多,所以更具有威脅性。
1 DES密碼算法的硬件結(jié)構(gòu)及功耗泄漏模型
1.1 DES密碼算法的硬件結(jié)構(gòu)

DES密碼算法是分組加密算法,能夠?qū)潭ㄩL度的一組明文進(jìn)行加解密,如果采用ASIC方式實現(xiàn),固定長度意味著運算時的中間結(jié)果所需要的存儲寬度是相同的。DES密碼算法的輪結(jié)構(gòu)也是相同的,每輪運算可以共用一個硬件結(jié)構(gòu)體,所不同的是每輪運算時所用的子密鑰是不同的。DES算法的結(jié)構(gòu)特點適合ASIC方式實現(xiàn),其通用的硬件結(jié)構(gòu)如圖1所示。

 

 

  在ASIC方式實現(xiàn)的硬件電路中,攻擊者經(jīng)常針對寄存器進(jìn)行攻擊。之所以選擇寄存器攻擊主要原因有:
(1)寄存器在ASIC中通常被用來做存儲器,包括暫存一些與密鑰相關(guān)的關(guān)鍵數(shù)據(jù)。
(2)與反相器、“與非門”等非時序邏輯相比較,寄存器的功耗大一些。
(3)寄存器是時鐘沿觸發(fā)電路,易于在時序上定位。
1.2 功耗泄漏模型
目前絕大多數(shù)密碼芯片都是基于CMOS工藝,CMOS邏輯電路的動態(tài)功耗取決于邏輯門的翻轉(zhuǎn)率。單個邏輯門的功耗可以表示為:

式中, f表示邏輯門最大變化率,P0→1表示0→1轉(zhuǎn)換的概率,CL是邏輯門的負(fù)載電容,VDD是電源電壓。功耗分析正是以式 (1)中動態(tài)功耗對數(shù)據(jù)的依賴性為理論基礎(chǔ)的。整個電路硬件內(nèi)部結(jié)構(gòu)非常復(fù)雜,動態(tài)功耗取決于整個邏輯電路的整體翻轉(zhuǎn)率的統(tǒng)計特性和電路所采用的工藝。為簡單起見,可以簡化地認(rèn)為電路的總功耗與整體翻轉(zhuǎn)率成一定的正比關(guān)系?;谶@種相關(guān)性建立起來的功耗模型能夠反映出當(dāng)前密碼算法電路所處理的數(shù)據(jù)引起的瞬時功耗的變化情況。功耗分析攻擊是通過對多次測量得到的功耗曲線,進(jìn)行統(tǒng)計分析出電路中相應(yīng)數(shù)據(jù)位的變化來破解密鑰的。
功耗泄漏模型一般是在寄存器級建立。攻擊者經(jīng)常把攻擊點選在DES密碼算法首輪或最后一輪的寄存器輸出處,記輸出時刻為t,則瞬時能耗T(t1)如下:

  式中,D0(t0)代表寄存器中在前1個時刻t0所存儲的二進(jìn)制序列, D0(t1)代表寄存器中在下1個時刻t1所存儲的二進(jìn)制序列,δ代表轉(zhuǎn)換時的1個因子。通過比較前后時刻相應(yīng)碼字的變化,當(dāng)碼字由0→1時,總模擬功耗值加1;當(dāng)碼字由1→0時,總模擬功耗值加1×(1-δ)。δ的大小根據(jù)算法實現(xiàn)的平臺統(tǒng)計分析得到,對于一般的CMOS邏輯電路,δ通常取值為0.17。
2 CPA攻擊原理
功耗模型一般是基于所處理數(shù)據(jù)的線性漢明距建立。如1.2節(jié)所述的瞬時功耗為:

  式中所示的相關(guān)系數(shù)說明部分密鑰位猜測正確時,中間計算結(jié)果與加密器件的瞬時功耗在被攻擊時刻能夠關(guān)聯(lián)起來,對應(yīng)時刻的相關(guān)系數(shù)也是最大的。而用錯誤的猜測密鑰計算出來的中間結(jié)果與功耗之間不具有相關(guān)性或僅有弱相關(guān)性,其相關(guān)系數(shù)很小。根據(jù)這一原理,可以用仿真的方法對密碼算法電路進(jìn)行攻擊,根據(jù)攻擊的難度可以判斷抗功耗分析性能。
3 功耗分析仿真平臺
建立的仿真平臺如圖2所示。仿真平臺主要由邏輯模擬器、功耗估算器和功耗分析模塊組成??驁D中應(yīng)用Mentor公司提供的ModelSim作為邏輯模擬器,邏輯模擬器輸入有:所設(shè)計密碼電路的硬件語言描述代碼、電路的激勵文件和一些反標(biāo)延遲信息等。輸出的密碼電路的功耗仿真結(jié)果是以vcd格式存儲的文本文件,這個vcd文件包含了所有的信號模擬變化以及相應(yīng)的仿真時刻標(biāo)簽,然后用VisualC++對vcd文本文件進(jìn)行處理,得到模擬功耗數(shù)據(jù),最后用MatLab對模擬功耗數(shù)據(jù)進(jìn)行統(tǒng)計分析,推測密鑰信息。

 


由于邏輯模擬器的仿真結(jié)果中包含所有信號的變化和相應(yīng)的仿真時刻標(biāo)簽,這些vcd格式的文件能夠用功耗模型估算密碼電路的瞬時模擬功耗,因此,只需要統(tǒng)計與密鑰具有相關(guān)性的關(guān)鍵寄存器的變化即可。
要統(tǒng)計DES密碼芯片中每個時鐘周期的模擬功耗值,可以通過統(tǒng)計關(guān)鍵寄存器中在相鄰時鐘周期內(nèi)0、1的變化情況。根據(jù)式(2)所示已經(jīng)建立的功耗模型,將電路所處理的數(shù)據(jù)變化轉(zhuǎn)換為模擬功耗變化即可。
4 DES算法的CPA攻擊仿真及結(jié)果分析
  基于所建立的功耗分析仿真平臺,結(jié)合分組密碼算法DES算法進(jìn)行功耗分析攻擊實驗。下面是CPA攻擊的詳細(xì)步驟及結(jié)果分析。
(1)用仿真的方法進(jìn)行攻擊的第1步是產(chǎn)生1個仿真功耗文件
任意選擇1 000個隨機明文和1個固定但隨機的密鑰。每輪加密之后(1個時鐘周期),記錄下寄存器中數(shù)據(jù)二進(jìn)制序列的變化情況,根據(jù)建立的功耗泄漏模型,統(tǒng)計模擬功耗值。這樣仿真器就產(chǎn)生1個包含N×16的矩陣M1。
(2)選擇寄存器中M個最高位,用與步驟(1)相同的明文及密鑰進(jìn)行仿真實驗
仿真器統(tǒng)計寄存器中位的變化數(shù)目,結(jié)果存儲在矩陣1 000×1的矩陣M2中,在這個驗證實驗中,選擇M為8,然后計算M1的所有列和M2的相關(guān)系數(shù),如下:
ci=C(M1(1:1000,1),M2)     (7)
式中,i=1,…10, M1(1:1000), i代表矩陣M1的第i列向量。步驟(1)和步驟(2)都用了同樣的明文的密鑰,所不同的是它們考慮的位變化的數(shù)目不同。第(2)步產(chǎn)生的值是第(1)步初始化密鑰加操作計算值的預(yù)測。如果計算是正確的,M2和M1的第一列的相關(guān)系數(shù)比其他列要高得多。圖3為預(yù)測的情況。

 


(3)重復(fù)步驟(2),但使用一個不同的密鑰
這時產(chǎn)生1個功耗文件矩陣M3。與第(2)步一樣計算M3和M1所有列的相關(guān)系數(shù):

式中,i=1,…10。由于實驗中使用了一個不同的密鑰產(chǎn)生M3,所以M3和M1所有列的相關(guān)系數(shù)將是很小的(或者說是沒有相關(guān)性),包括第1列。通過計算得出如圖4所示的相關(guān)系數(shù)圖,圖中的曲線表明其結(jié)果和預(yù)測的相同。

 


(4)對所有8 bit密鑰組合進(jìn)行實驗
對這個實驗進(jìn)行拓展,對密鑰的最高L=8比特所有可能性進(jìn)行猜測,也就是對這8 bit進(jìn)行強力攻擊,這樣就能產(chǎn)生1個1 000×2L的矩陣M4。8 bit密鑰組合中必有一個是正確的密鑰,而且只有這個密鑰計算出的第1輪功耗變化與第1輪是統(tǒng)計相關(guān)的(相關(guān)系數(shù)比較大),由此可以通過這種方法推測出密鑰。式(9)表示了所有的密鑰猜測與M1的第一輪之間相關(guān)系數(shù)的大小。圖5為M1的第1列和M4的所有列之間的相關(guān)系數(shù)。從圖中可以看出,所猜測的密鑰只有1Ahex=30dec時具有較高的相關(guān)性,所以正確的密鑰是(30)dec

  
式中,i=0,…2L-1。
通過功耗仿真的方法可以對DES密碼芯片進(jìn)行成功的攻擊,根據(jù)攻擊的難度大小,也就是所得到的相關(guān)系數(shù)的大小,可以判斷一個密碼芯片抗功耗分析攻擊能力的大小,這樣就能夠在設(shè)計階段評估密碼芯片的抗功耗分析攻擊的能力大小,為密碼芯片設(shè)計者提供參考,以便及時添加相應(yīng)的抗功耗分析的防御措施。
抗功耗分析性能的評估標(biāo)準(zhǔn)在很多文獻(xiàn)中只是簡單提到過,且沒有統(tǒng)一的標(biāo)準(zhǔn)。本文中采用了KrisTri所用的評估標(biāo)準(zhǔn)MTD(Measurements To Disclosure),也就是對于某個密碼芯片來說,能夠破解1 bit密鑰所需要的隨機明文數(shù)目。本文模擬攻擊過程也可以用這種標(biāo)準(zhǔn)來衡量密碼芯片的抗功耗分析性能。
為研究密碼芯片的抗功耗分析性能,搭建了功耗分析仿真平臺,并結(jié)合DES分組加密算法進(jìn)行了相關(guān)性功耗分析攻擊實驗。實驗結(jié)果表明,搭建的仿真平臺是有效的,且說明未經(jīng)過防御的DES算法容易受到相關(guān)性功耗分析的威脅。


參考文獻(xiàn)
[1]  韓軍,曾曉洋,湯庭鰲.DES密碼電路的抗差分功耗分析設(shè)計[J]. 半導(dǎo)體學(xué)報,2005(8).
[2]  張詠,范明鈺,王宇飛.對于DES的差分能量分析攻擊及其防范對策[J].電子技術(shù)應(yīng)用,2005,31(5).
[3]  陳開顏,趙強,張鵬,等.DES加密實現(xiàn)的差分功耗分析仿真[J].軍械工程學(xué)院學(xué)報,2006(6),18(3).
[4]  KOCHER P, JAFFE J, JUN B. Differential power analysis [A].WIENER M,editor. Advances in Cryptology: Prodeeding  of CRYPTO’99[C].Volume 1666 in Lecture Notes in  Computer Science, Santa Bartara, California, USA, Springer-August,1999:388-397
[5]  BRIER E, CLAVIER C, OLIVIER F. Correlation power analysis with a leakage model[A]. JOYE M, QUISQUATER
J J, editor. Cryptographic Hardware Embedded System CHES 2004, USA, Volume 3156 of Lecture Notes in Computer Science, Springer-Verlag, 2004:16-29.

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容