針對DES密碼芯片的CPA攻擊仿真設計方案
1.2 功耗泄漏模型
目前絕大多數(shù)密碼芯片都是基于CMOS工藝,CMOS邏輯電路的動態(tài)功耗取決于邏輯門的翻轉(zhuǎn)率。單個邏輯門的功耗可以表示為:
式中, f表示邏輯門最大變化率,P0→1表示0→1轉(zhuǎn)換的概率,CL是邏輯門的負載電容,VDD是電源電壓。功耗分析正是以式 (1)中動態(tài)功耗對數(shù)據(jù)的依賴性為理論基礎(chǔ)的。整個電路硬件內(nèi)部結(jié)構(gòu)非常復雜,動態(tài)功耗取決于整個邏輯電路的整體翻轉(zhuǎn)率的統(tǒng)計特性和電路所采用的工藝。為簡單起見,可以簡化地認為電路的總功耗與整體翻轉(zhuǎn)率成一定的正比關(guān)系?;谶@種相關(guān)性建立起來的功耗模型能夠反映出當前密碼算法電路所處理的數(shù)據(jù)引起的瞬時功耗的變化情況。功耗分析攻擊是通過對多次測量得到的功耗曲線,進行統(tǒng)計分析出電路中相應數(shù)據(jù)位的變化來破解密鑰的。
功耗泄漏模型一般是在寄存器級建立。攻擊者經(jīng)常把攻擊點選在DES密碼算法首輪或最后一輪的寄存器輸出處,記輸出時刻為t,則瞬時能耗T(t1)如下:
式中,D0(t0)代表寄存器中在前1個時刻t0所存儲的二進制序列, D0(t1)代表寄存器中在下1個時刻t1所存儲的二進制序列,δ代表轉(zhuǎn)換時的1個因子。通過比較前后時刻相應碼字的變化,當碼字由0→1時,總模擬功耗值加1;當碼字由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)起來,對應時刻的相關(guān)系數(shù)也是最大的。而用錯誤的猜測密鑰計算出來的中間結(jié)果與功耗之間不具有相關(guān)性或僅有弱相關(guān)性,其相關(guān)系數(shù)很小。根據(jù)這一原理,可以用仿真的方法對密碼算法電路進行攻擊,根據(jù)攻擊的難度可以判斷抗功耗分析性能。
評論