基于動態(tài)改變中間數(shù)據(jù)存儲位置的抗攻擊方法及電路實現(xiàn)的制作方法
【專利摘要】本發(fā)明公開了一種基于動態(tài)改變加密算法中間數(shù)據(jù)存儲位置的抗功耗攻擊方法及電路實現(xiàn),通過破壞假設(shè)功耗值的獲取從而抵抗功耗攻擊,在DES算法運算時動態(tài)改變DES算法中間數(shù)據(jù)存儲的寄存器位置,將相鄰兩輪的中間數(shù)據(jù)保存在不同的寄存器中,從而有效抵抗基于漢明距離模型的功耗分析攻擊。本方法靈活性高,面積代價小,抗功耗攻擊能力強。同時此方法具有很強的擴展性,可以用于抵抗算法中其他潛在的攻擊點;也可以很好移植到到其他密碼算法中。為設(shè)計安全性高,有效抵抗功耗攻擊的密碼芯片提供了很好的解決方案和設(shè)計方法。
【專利說明】基于動態(tài)改變中間數(shù)據(jù)存儲位置的抗攻擊方法及電路實現(xiàn)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及集成電路硬件實現(xiàn)和信息安全【技術(shù)領(lǐng)域】,尤其是一種面向DES(數(shù)據(jù)加密標準)密碼算法硬件電路的抗功耗攻擊方法。
【背景技術(shù)】
[0002]隨著現(xiàn)代社會的日益信息化、數(shù)字化與網(wǎng)絡(luò)化,以密碼設(shè)備為代表的信息安全產(chǎn)品已經(jīng)滲入到國家安全和人民生活的方方面面。密碼產(chǎn)品可以采用軟件實現(xiàn),但由于硬件實現(xiàn)比軟件實現(xiàn)有更快的速度優(yōu)勢,基于硬件實現(xiàn)的密碼設(shè)備已成為研究熱點。各種基于DES (Data Encryption Standard,數(shù)據(jù)加密標準)、AES (Advanced Encryption Standard,高級加密標準)、RSA等算法的密碼芯片得到了廣泛地研究和開發(fā)。
[0003]密碼芯片也面臨著各種各樣的安全風(fēng)險,近年來以差分功耗攻擊(DifferentialPower Analysis, DPA)為代表的旁路攻擊(Side-Channel Attack, SCA,又譯為“側(cè)信道攻擊”)對密碼設(shè)備的安全性提出了嚴峻的挑戰(zhàn)。功耗攻擊是一種非入侵式攻擊,攻擊者首先大量獲取密碼設(shè)備在加解密操作時泄露的功耗信息,然后根據(jù)明文(或者密文)建立功耗的數(shù)學(xué)模型,得到大量中間值,將中間值和實際功耗進行對比分析,采用統(tǒng)計處理方法計算出相關(guān)系數(shù),從而分析出關(guān)鍵的密鑰信息。如何抵抗功耗分析攻擊(也可簡稱為抗攻擊),保護算法安全是學(xué)術(shù)界一個重要的研究點。
[0004]在采集到大量實際功耗后,功耗攻擊得以成功的關(guān)鍵在于建立準確的功耗數(shù)學(xué)模型。漢明重量模型和漢明距離模型是常見的功耗模型。在漢明重量模型中,攻擊者假設(shè)功耗與被處理數(shù)據(jù)中被置位的比特數(shù)成正比,該數(shù)據(jù)之前和之后的數(shù)據(jù)不考慮。漢明距離模型的基本思想是計算數(shù)字電路在某個特定時段內(nèi)電路中O — I轉(zhuǎn)換和I — O轉(zhuǎn)換的總數(shù),然后利用轉(zhuǎn)換的總數(shù)來刻畫電路在該時間段內(nèi)的功耗。
[0005]密碼電路由CMOS晶體管組成,基本狀態(tài)為高電平和低電平,分別表示數(shù)字電路中的邏輯“I”和邏輯“O”?;倦娐穯卧诰S持某一固定狀態(tài)時,電路的能量消耗較小,僅有少量靜態(tài)功耗;當基本單元發(fā)生“O”到“1”,或者“I”到“O”的翻轉(zhuǎn)時,電路中晶體管會瞬間導(dǎo)通,產(chǎn)生功耗較大的動態(tài)功耗??梢姅?shù)字電路的功耗主要來自于電路的狀態(tài)轉(zhuǎn)換,而并不依賴于數(shù)據(jù)本身,并且翻轉(zhuǎn)的器件越多,功耗越大。所以使用漢明距離模型能夠更好的刻畫密碼芯片電路的能量消耗,在某一時刻,如果能夠計算得到電路翻轉(zhuǎn)前的數(shù)據(jù)DO和翻轉(zhuǎn)后的數(shù)據(jù)D1,從而算出數(shù)據(jù)的漢明距離,得到數(shù)據(jù)翻轉(zhuǎn)的個數(shù),就可以和真實的功耗值建立聯(lián)系。
[0006]根據(jù)信息論知識,漢明距離是兩個等長二進制數(shù)串對應(yīng)位置不同字符的個數(shù)。假設(shè)已知兩個數(shù)據(jù)DO和D1,則兩個數(shù)據(jù)漢明距離為:
[0007]HD(D05D1) = A/i^(D0 0D1);
[0008]其中HW代表數(shù)據(jù)的漢明重量,即數(shù)據(jù)中“I”的個數(shù),比如一個4比特數(shù)據(jù)Data ‘1011’,其中有三個1,那么Data的漢明重量為3,HW(Data) = 3 表示異或操作,為
數(shù)字邏輯的基本操作之一。[0009]漢明距離模型一般用于對寄存器的功耗進行描述。通過該模型,攻擊者可以建立數(shù)據(jù)傳輸存儲時始、終態(tài)間器件翻轉(zhuǎn)個數(shù)與功耗之間的相對關(guān)系,從而進一步實施功耗攻擊。
[0010]DES分組密碼算法模塊包括初始操作,多次輪操作,輪末操作;算法每一輪都需要一個子密鑰,算法每一輪的中間結(jié)果保存在寄存器中。DES密碼算法電路在基于相關(guān)系數(shù)的差分功耗攻擊中,中間數(shù)據(jù)寄存器會泄露漢明距離,從而被用來當作假設(shè)功耗值用在攻擊分析中
[0011]攻擊者一般選取中間數(shù)據(jù)存儲的寄存器為攻擊點,攻擊者首先猜測密鑰,進一步猜測相鄰兩輪的中間值,計算漢明距離,作為寄存器變化所產(chǎn)生的功耗模型,然后采集實際功耗,將功耗模型與實際功耗(或仿真功耗)進行統(tǒng)計分析,得到正確的密鑰。
【發(fā)明內(nèi)容】
[0012]發(fā)明目的:目前DES密碼算法電路在基于相關(guān)系數(shù)的差分功耗攻擊中,中間數(shù)據(jù)寄存器會泄露漢明距離,從而被用來當作假設(shè)功耗值用在攻擊分析中。
[0013]原始DES的加密過程可以劃分為3個階段:
[0014]1.64位明文通過初始置換IP,實現(xiàn)明文的比特重排,同時把64bit明文分為Ltl和R0兩部分。Ltl是比特重排后的前32bit,R0是后32bit。
[0015]2.進行16輪迭代運算。16次迭代運算具有相同的計算結(jié)構(gòu),記做F函數(shù),包含5個操作:擴展置換,密 鑰異或,S盒替換,置換操作,異或操作。每一輪得到64比特中間數(shù)據(jù)Dn,分為左邊32比特數(shù)據(jù)1^和右邊32bit數(shù)據(jù)Rn(n = Ρ..16)。通過迭代運算,DES將子密鑰和數(shù)據(jù)結(jié)合起來,子密鑰由初始密鑰生成,此步驟是DES的核心步驟。
[0016]3.將16次迭代變換后得到的結(jié)果通過一個逆變換矩陣ΙΡ—1,得到密文輸出。DES加密硬件實現(xiàn)16輪迭代時,每一輪的中間數(shù)據(jù)Dn(η = 1..16)都保存在兩個32比特寄存器中,左邊32比特中間數(shù)據(jù)Ln,保存在32比特寄存器Lmsci中,右邊32比特中間數(shù)據(jù)Rn保存在32比特寄存器Rmsci中。攻擊者通過猜測每一輪6比特密鑰可以得到中間數(shù)據(jù)的某4比特的值,從而建立漢明距離模型。以攻擊者選取第一輪和第二輪的中間值作為攻擊點為例,攻擊者可以建立兩個漢明距離模型。
[0017]攻擊時刻1,第一輪加密結(jié)束:
[0018]功耗模型:針對Rreg。,漢明距離 HD 二 HW{K, {Abil)十 Rt {4bil ));
[0019]攻擊時刻2,第二輪加密結(jié)束:
[0020]功耗模型:針對Lragtl,漢明距離 HD = HW(L^Abit)十 L2(46/i));
[0021]進行漢明距離模型攻擊時,猜測6比特密鑰,即可猜測得到RdPR1以及!^和匕中4bit的數(shù)值,攻擊者可成功建立漢明距離模型。
[0022]本發(fā)明針對上述缺陷,通過添加冗余寄存器并改變中間數(shù)據(jù)存儲的寄存器位置,從而使得任一寄存器不再泄露相鄰兩輪的中間數(shù)據(jù)的漢明距離,以此提供一種有效的DES算法電路的抗功耗攻擊方法。
[0023]技術(shù)方案:一種基于動態(tài)改變加密算法中間數(shù)據(jù)存儲位置的抗攻擊方法,其特征在于,在DES加密算法模塊中添加控制模塊和冗余寄存器,DES分組密碼算法根據(jù)所述控制模塊產(chǎn)生的標志位,動態(tài)改變每一輪中間計算數(shù)據(jù)存儲的寄存器位置。
[0024]進一步的,所述的方法具體包括如下步驟:
[0025]步驟一,DES加密硬件實現(xiàn)需要16輪迭代,其中每一輪的中間數(shù)據(jù)保存在左右兩個32比特寄存器Lregtl和Rregtl中,左邊32比特中間數(shù)據(jù)Ln(η = 1..16),保存在32比特寄存器Lregtl中,右邊32比特中間數(shù)據(jù)Rn保存在32比特寄存器Rregtl中,在DES加密模塊中增加控制模塊及左右兩個32比特冗余寄存器Lregl和Rms1,所述控制模塊產(chǎn)生I比特標志位flag, DES加密的每一輪中間結(jié)果數(shù)據(jù)根據(jù)flag的值,選擇目標寄存器;
[0026]步驟二,初始標志位flag的值為0,flag的值根據(jù)輪數(shù)交替變化,DES算法進行奇數(shù)輪加密運算時flag為1,即第I, 3,5...15輪加密flag % I, DES算法進行偶數(shù)輪加密時flag為O,即第2,4,6..16輪加密時flag為O ;
[0027]步驟三,DES算法運算時,輸入的64比特明文通過初始置換IP,實現(xiàn)明文的比特重排,同時把64比特明文分為左右兩部分明文Ltl和Rtl,所述左邊部分明文Ltl是比特重排后的前32比特,所述右邊部分明文Rtl是比特重排后的后32比特,通過迭代運算,DES將子密鑰和數(shù)據(jù)結(jié)合起來,子密鑰由初始密鑰生成,此步驟是DES的核心步驟,此時flag為0,DES將上述左右兩部分明文分別對應(yīng)保存在所述的左右寄存器Lregtl和Rregtl中;[0028]步驟四,DES進行16輪迭代操作,16次迭代運算具有相同的結(jié)構(gòu),記做F函數(shù),包含擴展置換、密鑰異或、S盒替換、置換操作、與上一輪數(shù)據(jù)異或5個操作;上一輪64比特中間數(shù)據(jù)經(jīng)過這5個操作得到這一輪的64比特中間數(shù)據(jù),所述這一輪中間數(shù)據(jù)根據(jù)flag標志位的值保存到中間寄存器中,如果flag為0,此輪中間數(shù)據(jù)的左32比特數(shù)據(jù)Ln保存在左寄存器Lmsci中,右32比特數(shù)據(jù)R1J呆存在右寄存器Rmsci中;如果flag為1,此輪中間數(shù)據(jù)的左32比特數(shù)據(jù)Ln保存在左冗余寄存器Lms1中,右32比特數(shù)據(jù)Rn保存在右冗余寄存器RMgl中。
[0029]步驟五,將16次迭代變化的結(jié)果通過逆變換矩陣,得到密文輸出。
[0030]一種基于動態(tài)改變中間數(shù)據(jù)存儲位置的抗攻擊電路,其特征在于,該電路是采用上述抗功耗攻擊方法實現(xiàn)的具有抗功耗攻擊的DES密碼算法硬件電路,所述電路在DES加密算法模塊中添加控制模塊和冗余寄存器,DES分組密碼算法根據(jù)所述控制模塊產(chǎn)生的標志位,動態(tài)改變每一輪中間計算數(shù)據(jù)存儲的寄存器位置。
[0031]本發(fā)明的抗功耗攻擊原理說明如下:通過添加冗余中間寄存器和標志位方法,DES相鄰兩輪的中間數(shù)據(jù)不再保存在同一寄存器中,避免了相鄰兩輪數(shù)據(jù)的漢明距離的泄露。攻擊者無法成功建立漢明距離模型,以攻擊者選取Rmsci和Lregtl作為攻擊寄存器為例,在Rmsci和Lmsci第一次發(fā)生數(shù)據(jù)變化時,建立兩個漢明距離模型。
[0032]攻擊時刻1,Rreg0第一次數(shù)據(jù)變化:
[0033]功耗模型:針對Rreg。,漢明距離 HD = /7W(R0(4ft//)?/?2(輸/));
[0034]攻擊時刻2,Lreg0第一次數(shù)據(jù)變化:
[0035]功耗模型:針對Lrag。,漢明距離HD 二十 1^(4/)//));
[0036]進行漢明距離模型攻擊時,猜測6比特密鑰,可以猜測得到Rc^PR1以及!^和匕的數(shù)值,但如果不知道第一輪加密的子密鑰,無法猜測得到R2和L3,因為第二輪,第三輪的數(shù)據(jù)經(jīng)過密鑰異或、置換、S盒等操作,數(shù)據(jù)已經(jīng)完全打散,無法預(yù)測。(RnSDES第η輪中間數(shù)據(jù)右32比特數(shù)據(jù),Rn SDES第η輪中間數(shù)據(jù)左32比特數(shù)據(jù),(η = O, 1,2..16)),可見采
用動態(tài)改變加密算法中間數(shù)據(jù)存儲位置的方法后,對于Rregtl和Lregtl,攻擊者無法成功建立漢明距離模型,從而可以有效的抵抗功耗攻擊。
[0037]同理,對于對于RMgl和Lragl,建立漢明距離時,
[0038]攻擊時刻1,Rregl第一次數(shù)據(jù)變化:
[0039]功耗模型:針對Rregl,漢明距離 HD = HW(R, (4bil)十 Hi (Abil ));
[0040]攻擊時刻2,Lregl第一次數(shù)據(jù)變化:
[0041]功耗模型:針對Lregl,漢明距離HD = //F(L2(4to)?L4(4to));
[0042]攻擊者無法得到&和L4的數(shù)據(jù),無法正確建立漢明距離模型,從而有效的抵抗基于漢明距離模型的功耗攻擊。
[0043]有益效果:由于基于漢明距離模型的功耗攻擊的原理是用一定的方法凸顯出密碼算法電路在工作過程中的動態(tài)能量消耗與被處理的數(shù)據(jù)漢明距離之間的相關(guān)性,如果能夠切斷功耗與所處理數(shù)據(jù)距離之間的相關(guān)性,就可以達到抗功耗攻擊的效果。本發(fā)明只需要添加一些冗余寄存器和標志位,即可通過動態(tài)的改變算法運行中的中間數(shù)據(jù)的存儲位置來切斷實際功耗和數(shù)據(jù)之間的相關(guān)性,從而非常有效的抵御功耗攻擊。此外,該方法和電路的實現(xiàn)簡單易行,面積代價很小,相對于整個大系統(tǒng)幾乎可以忽略。最后,此方法具有很強的擴展性,可以用于抵抗算法中其他潛在的攻擊點;也可以很好移植到到其他密碼算法中。綜上,本發(fā)明為設(shè)計具有抗功耗攻擊能力的密碼芯片提供了很好的解決方案。
【專利附圖】
【附圖說明】
[0044]圖1為普通DES算法的一輪操作;
[0045]圖2為DES算法基于漢明距離模型的功耗攻擊原理;
[0046]圖3動態(tài)改變輪中間數(shù)據(jù)存儲位置的抗功耗攻擊原理圖;
[0047]圖4 一種基于動態(tài)改變加密算法中間數(shù)據(jù)存儲位置方法的電路圖;
[0048]圖5為原始DES算法功耗攻擊結(jié)果圖;
[0049]圖6本發(fā)明改進DES算法的功耗攻擊結(jié)果圖。
【具體實施方式】
[0050]下面結(jié)合附圖和具體實施例,進一步闡明本發(fā)明,應(yīng)理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
[0051]如圖1所示,DES的加密過程可以劃分為3個階段:
[0052]1.64位明文通過初始置換IP,實現(xiàn)明文的比特重排,同時把64比特明文分為Ltl和R0兩部分。U是比特重排后的前32比特明文,R0是后32比特明文。
[0053]2.進行16輪迭代運算,16次迭代運算具有相同的結(jié)構(gòu),記做F函數(shù),包含5個操作擴展置換,密鑰異或,S盒替換,置換操作,異或操作。每一輪得到64比特中間數(shù)據(jù),分為左邊32比特數(shù)據(jù)Ln和右邊32比特數(shù)據(jù)Rn(n = L...16)。通過迭代運算,DES將子密鑰和數(shù)據(jù)結(jié)合起來,子密鑰由初始密鑰生成,此步驟是DES的核心步驟。[0054]3.將16次迭代變換后得到的結(jié)果通過一個逆變換矩陣IP—1,得到密文輸出。
[0055]DES加密硬件每一輪的中間數(shù)據(jù)都保存在兩個32比特寄存器中,左邊32比特中間數(shù)據(jù)Ln (η = 1..16),保存在32比特寄存器LMg(l中,右邊32比特中間數(shù)據(jù)Rn保存在32比特寄存器RMgQ中。
[0056]如圖2所示,攻擊者通過猜測每一輪6比特密鑰可以得到中間數(shù)據(jù)的某4比特的值,從而建立漢明距離模型。以攻擊者選取第一輪和第二輪的中間值作為攻擊點為例,攻擊者可以建立兩個漢明距離模型。
[0057]攻擊時刻1,第一輪加密結(jié)束:
[0058]功耗模型:針對Rregtl,漢明距離 HD=(4/n./)十 6(4/”./));
【權(quán)利要求】
1.一種基于動態(tài)改變加密算法中間數(shù)據(jù)存儲位置的抗攻擊方法,其特征在于,在DES加密算法模塊中添加控制模塊和冗余寄存器,DES分組密碼算法根據(jù)所述控制模塊產(chǎn)生的標志位,動態(tài)改變每一輪中間計算數(shù)據(jù)存儲的寄存器位置,具體包括如下步驟: 步驟一,DES加密硬件實現(xiàn)需要16輪迭代,其中每一輪的中間數(shù)據(jù)保存在左右兩個32比特寄存器(Lregtl和Rmsci)中,在DES加密模塊中增加控制模塊及左右兩個32比特冗余寄存器(Liegl和Riegl),所述控制模塊產(chǎn)生I比特標志位flag,DES加密的每一輪中間結(jié)果數(shù)據(jù)根據(jù)flag的值,選擇目標寄存器; 步驟二,初始標志位flag的值為O,flag的值根據(jù)輪數(shù)交替變化,DES算法進行奇數(shù)輪加密運算時flag為1,DES算法進行偶數(shù)輪加密時flag為O ; 步驟三,DES算法運算時,輸入的64比特明文通過初始置換IP,實現(xiàn)明文的比特重排,同時把64比特明文分為左右兩部分明文(Ltl和Rtl),所述左邊部分明文(Ltl)是比特重排后的前32比特,所述右邊部分明文(Rtl)是比特重排后的后32比特,此時flag為0,DES將上述左右兩部分明文分別對應(yīng)保存在所述的左右寄存器(Lregtl和Rregtl)中; 步驟四,DES進行16輪迭代操作,16次迭代運算具有相同的結(jié)構(gòu),記做F函數(shù),包含擴展置換、密鑰異或、S盒替換、置換操作、與上一輪數(shù)據(jù)異或5個操作;上一輪64比特中間數(shù)據(jù)經(jīng)過這5個操作得到這一輪的64比特中間數(shù)據(jù),這一輪中間數(shù)據(jù)根據(jù)flag標志位的值保存到上述寄存器(Lregtl或Rmsci或Lms1或RMgl)中,如果flag為O,此輪中間數(shù)據(jù)的左32比特數(shù)據(jù)(Ln)保存在左寄存器U中,右32比特數(shù)據(jù)(Rn)保存在右寄存器(Rregtl)中;如果flag為1,此輪中間數(shù)據(jù)的左32比特數(shù)據(jù)(Ln)保存在左冗余寄存器(Lregl)中,右32比特數(shù)據(jù)(Rn)保存在右冗余寄存器(Rms1)中; 步驟五,將16次迭代變化的結(jié)果通過逆變換矩陣,得到密文輸出。
2.一種采用權(quán)利要求1所述的方法實現(xiàn)的具有抗功耗攻擊的DES密碼算法硬件電路,所述電路在DES加密算法模塊中添加控制模塊和冗余寄存器,DES分組密碼算法根據(jù)所述控制模塊產(chǎn)生的標志位,動態(tài)改變每一輪中間計算數(shù)據(jù)存儲的寄存器位置。
【文檔編號】H04L9/06GK103905182SQ201410173997
【公開日】2014年7月2日 申請日期:2014年4月25日 優(yōu)先權(quán)日:2014年4月25日
【發(fā)明者】單偉偉, 戴文韜, 伏星源 申請人:東南大學(xué)