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