專利名稱:一種防止基于功耗分析的des算法攻擊的方法及測試電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種防止基于功耗分析的DES算法攻擊的方法及測試電路,具體是一種防止基于功耗分析對DES算法進(jìn)行攻擊的方法及電路,能夠利用非對稱掩碼加密運(yùn)算防止對DES算法芯片的功耗攻擊,屬于集成電路安全技術(shù)領(lǐng)域。
背景技術(shù):
美國國家安全局(NIST)于1977年公布由IBM的計(jì)算機(jī)密碼學(xué)研究項(xiàng)目組研制的一種加密算法,批準(zhǔn)它作為非機(jī)要部門的數(shù)據(jù)加密標(biāo)準(zhǔn),簡稱DES。DES算法是迄今為止世界上最為廣泛使用和流行的一種對稱密碼算法。雖然DES現(xiàn)在已被新的加密標(biāo)準(zhǔn)AES替代,但是國內(nèi)很多加密芯片仍然在使用DES算法,它對現(xiàn)代對稱加密算法的發(fā)展和應(yīng)用起了奠基性的作用。實(shí)現(xiàn)的DES算法進(jìn)行物理攻擊以獲取其中的密鑰,常見的物理攻擊方法包括時(shí)間分析攻擊法,電磁輻射法和功耗攻擊法,其中功耗攻擊法是最有效的攻擊方法。1999年,Kocher提出簡單功耗攻擊(SPA, Simple Power Analysis)和差分功耗攻擊(DPA, Differential Power Analysis)方法。并利用這種方法成功地對DES加密的智能卡進(jìn)行了攻擊。集成電路的制造使用了大量的CMOS (Complementary Metal OxideSemiconductor互補(bǔ)金屬氧化物半導(dǎo)體)管,這導(dǎo)致了加密不同的密鑰所消耗的功耗不同。這樣,在程序運(yùn)行過程中,功耗的變化會(huì)反映出所使用密鑰的內(nèi)容,這就是基于功耗分析而進(jìn)行攻擊的基礎(chǔ)。 簡單功耗分析是在DES算法芯片進(jìn)行加密和解密過程中,直接測量芯片的功耗狀況,在固定的時(shí)刻進(jìn)行采樣以獲得足夠多的樣本值。通過對加密和解密所消耗的功耗進(jìn)行分析,把這些功耗與相應(yīng)的密鑰對應(yīng)起來,從而達(dá)到攻擊的目的。差分功耗分析是通過統(tǒng)計(jì)分析和糾錯(cuò)技術(shù)從采集的功耗信息中抽取出密鑰相關(guān)的信息。通常情況下,簡單功耗分析需要知道目標(biāo)代碼的應(yīng)用細(xì)節(jié)。因此,只有在保證一定信噪比的情況下,簡單功耗分析才能有效。而差分功耗分析對信噪比的要求要小得多,但需要得到大量的不同樣本的功耗值,以及對所對應(yīng)的樣本進(jìn)行統(tǒng)計(jì)分析才能得到相應(yīng)的密鑰。對DES芯片進(jìn)行功耗攻擊方法通常是首先,選擇DES執(zhí)行過程的某個(gè)中間值,這個(gè)中間值要被密鑰操作,在大部分攻擊場景中,一般選取明文或者密文作為這個(gè)中間值;然后,測量DES加密過程的實(shí)際功耗,若采集D次加密過程,每次加密采集T個(gè)功耗點(diǎn),則獲得一個(gè)DXT的功耗矩陣,記為矩陣T ;并計(jì)算假設(shè)的中間值,假設(shè)密鑰k有K種可能,對于每一次加密計(jì)算出中間值,可獲得一個(gè)DXK的矩陣V ;然后將中間值映射為模擬功耗值,并采用功耗模型(漢明距離或者漢明重量模型),計(jì)算得出一個(gè)DXK的矩陣,記為H矩陣;再計(jì)算模擬功耗矩陣與實(shí)際功耗矩陣之間的相關(guān)性,得出一個(gè)KXT的矩陣,記為Z矩陣,其每一行分別對應(yīng)一種猜測的密鑰,每一列對應(yīng)在該時(shí)刻模擬功耗與實(shí)際功耗之間的相關(guān)系數(shù),計(jì)算公式如式I所示;最后利用Z矩陣按行繪制出曲線(密鑰一相關(guān)性曲線),出現(xiàn)峰值的曲線即對應(yīng)功耗攻擊結(jié)果。
權(quán)利要求
1.一種防止基于功耗分析的DES算法攻擊的方法,其特征在于包括如下步驟 在首個(gè)子密鑰K1未對數(shù)據(jù)進(jìn)行操作之前,加密算法流程保持和DES流程相同,在第一輪子密鑰K1對明文進(jìn)行異或后引入掩碼X ; 隨后的第2至第15輪的加密過程,操作方式類似,僅異或的隨機(jī)數(shù)數(shù)值不相同; 最后在第16輪加密過程輸出前異或上掩碼X,經(jīng)過IP逆置換并加上掩碼X4還原真實(shí)的密文信息。
2.如權(quán)利要求1所述的防止基于功耗分析的DES算法攻擊的方法,其特征在于所述掩碼X為隨機(jī)數(shù),掩碼X廣X4均為由X計(jì)算得出的隨機(jī)數(shù),計(jì)算方法為=X1=P (X),X2=EP (X1),Xf Χ,ΦΧ. X4=IP ([X3,X3]),其中P O表示P盒置換,EP O表示E盒置換,IP O表示IP置換,[Χ3, Χ3]表示用兩個(gè)掩碼X3首尾拼接成的變量,因而掩碼X為32bit,掩碼X1為32bit,掩碼X2為48bit,掩碼X3為32bit,掩碼X4為64bit。
3.一種防止基于功耗分析的DES算法攻擊的測試電路,其特征在于主要由示波器,PC機(jī),差分探頭,電源,子板和母板構(gòu)成;示波器通過接在串聯(lián)于母板與電源之間的電阻兩端的差分探頭,實(shí)時(shí)地記錄母板運(yùn)行加密運(yùn)算時(shí)產(chǎn)生的電流,將電流值換算成相應(yīng)的功耗值后,通過網(wǎng)線將功耗數(shù)據(jù)傳輸至PC機(jī);PC機(jī)除了接收和處理功耗數(shù)據(jù)外,還要向母板發(fā)送激勵(lì);其中,F(xiàn)PGA作為母板,分別燒錄了原始DES算法和本文改進(jìn)的DES算法的鏡像文件;此外,利用集成了 UART接口的一個(gè)微處理器作為子板,為母板和PC機(jī)提供了接口,方便PC與FPGA間激勵(lì)矢量的傳輸。
全文摘要
本發(fā)明公開了一種防止基于功耗分析的DES算法攻擊的方法及測試電路,在首個(gè)子密鑰K1未對數(shù)據(jù)進(jìn)行操作之前,算法流程保持和原始DES流程相同,在第一輪子密鑰K1對明文進(jìn)行異或后引入掩碼X;隨后的第2至第15輪的加密過程,操作方式類似,僅異或的隨機(jī)數(shù)數(shù)值不相同,旨在保持算法中間處理過程功能的正確性;最后在第16輪輸出前異或上掩碼X,經(jīng)過IP逆置換(FP)并加上掩碼X4還原真實(shí)的密文信息。由于DES的首輪和末輪添加的掩碼值及位置均異于其他輪,即非對掩加密,使得對其采用漢明距離模型時(shí)無法消去掩碼的作用,從而達(dá)到對DES算法的功耗攻擊的防護(hù),保證DES密鑰安全的目的。
文檔編號(hào)H04L9/06GK103067155SQ20121057875
公開日2013年4月24日 申請日期2012年12月27日 優(yōu)先權(quán)日2012年12月27日
發(fā)明者劉波, 孫華芳, 時(shí)龍興, 李 杰, 金海坤, 郭銀濤, 呂宇翔, 單偉偉 申請人:東南大學(xué)