《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 分組密碼算法抗功耗攻擊和故障攻擊的方法
分組密碼算法抗功耗攻擊和故障攻擊的方法
2015年電子技術(shù)應(yīng)用第5期
張海峰,于艷艷
北京南瑞智芯微電子科技有限公司,北京100192
摘要: 為同時(shí)抵御差分功耗攻擊和故障攻擊,提出了一種有效的防護(hù)方法,采用流水線技術(shù)增加了正常加解密運(yùn)算的噪聲,比較同一輸入依次進(jìn)入不同級(jí)的流水線的運(yùn)算結(jié)果是否一致,可以抗故障攻擊。
中圖分類號(hào): TN43
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)05-0050-03
Design of block cipher algorithm against power analysis and fault attack
Zhang Haifeng,Yu Yanyan
Beijing NARI SmartChip Microelectronics Company Limited,Beijing 100192,China
Abstract: An effective countermeasure against differential power analysis and fault attack is presented in this paper. The pipeline method adds the noise during the normal encryption or decryption, the same input enters into the pipeline of different depth, compare the results to decide whether there is fault injected during the encryption or decryption. According the simulation, the method is effective.
Key words : differential power analysis;fault attack;pipeline;countermeasure

  

0 引言

    隨著計(jì)算機(jī)技術(shù)的發(fā)展、社會(huì)信息化程度的不斷提高,安全問題越來越受到人們的廣泛重現(xiàn),因此各種形式的專用密碼電路和密碼算法處理器被廣泛地應(yīng)用于各類產(chǎn)品中。分組密碼算法是一種最常用的加密手段,具有速度快、易于標(biāo)準(zhǔn)化和便于軟硬件實(shí)現(xiàn)等特點(diǎn)。目前比較流行的分組密碼算法有DES算法、AES算法等,其中DES[1]是目前使用非常廣泛的數(shù)據(jù)加密方法,它于1977年被美國國家標(biāo)準(zhǔn)局作為第46號(hào)聯(lián)邦信息處理標(biāo)準(zhǔn)而采用。

    傳統(tǒng)的密碼分析方法是采用數(shù)學(xué)的分析手段。近年來隨著測量分析方法的進(jìn)步,各種分析攻擊方法也不斷發(fā)展,差分功耗攻擊故障攻擊是具有代表性且對(duì)智能卡芯片威脅性較強(qiáng)的兩種攻擊方法。差分功耗攻擊是1998年由Paul Kocher等[2]提出,它利用了密碼設(shè)備運(yùn)行期間泄露的側(cè)信息與密碼算法的中間值有一定的相關(guān)性,通過多次測量側(cè)信息后進(jìn)行統(tǒng)計(jì)分析,進(jìn)而獲得密鑰信息。故障攻擊的基本原理是將密碼芯片置于強(qiáng)磁場中,或者改變芯片的電源電壓、工作頻率、溫度等,使密碼芯片中的寄存器、存儲(chǔ)器在加解密過程中產(chǎn)生隨機(jī)錯(cuò)誤,某些輸出比特從原來的0變成1或1變成0。通過對(duì)正確密文輸出和錯(cuò)誤密文輸出的比較,經(jīng)過理論分析得到芯片內(nèi)部的秘密數(shù)據(jù)信息。

    國內(nèi)外對(duì)于差分功耗攻擊和故障攻擊防御方面的研究和技術(shù)方法也不斷涌現(xiàn),防御差分功耗攻擊的方法包括:隨機(jī)掩碼、動(dòng)態(tài)雙軌電路技術(shù)、隨機(jī)偽操作等,防御故障攻擊的方法主要包括對(duì)相同的數(shù)據(jù)計(jì)算多次后比較運(yùn)算結(jié)果是否一致。但有的防御方法往往會(huì)增加實(shí)現(xiàn)代價(jià),而計(jì)算多次比較運(yùn)算結(jié)果又會(huì)降低算法運(yùn)算效率。本文以DES算法為例,提出了分組密碼算法的一種有效防護(hù)方法,可以同時(shí)抵御差分功耗攻擊和故障攻擊。采用流水線技術(shù)同一時(shí)鐘周期內(nèi)有不同的輪運(yùn)算操作疊加,增加了正常加解密運(yùn)算的噪聲,可以抵抗側(cè)信道攻擊,同一明文依次進(jìn)入不同級(jí)的流水線進(jìn)行運(yùn)算,最后比較運(yùn)算結(jié)果是否一致,可以抗故障攻擊。通過對(duì)電路的仿真和分析,驗(yàn)證了其良好的抗攻擊性能。

1 DES差分功耗分析及故障攻擊

    DES是一個(gè)分組算法,使用長度為56 bit的密鑰加密長度為64 bit的明文,獲得長度為64 bit的密文。它的加密過程如下:

    (1)給定明文m,對(duì)m進(jìn)行一個(gè)固定的初始IP置換。

    (2)然后進(jìn)行16輪完全相同的運(yùn)算,將數(shù)據(jù)與密鑰相結(jié)合。在16輪操作的每一輪中,DES都會(huì)進(jìn)行8次S盒查表操作。這S盒的輸入為6 bit的密鑰與E擴(kuò)展后的6 bit R寄存器的異或值,輸出為4 bit。32 bit的S盒輸出經(jīng)過P置換,然后與L寄存器的值進(jìn)行異或,接著將L和R的值進(jìn)行交換。

    (3)進(jìn)行初始置換的逆置換,得到密文。具體過程如圖1所示。

wdz1-t1.gif

1.1 差分功耗分析

    目前絕大多數(shù)集成電路均采用CMOS工藝制作,CMOS門級(jí)電路的功耗模型[3]為:

    Ptota1=Pswitch+Pshort_circuit+Pleakage

    其中Pswitch為邏輯門翻轉(zhuǎn)引起負(fù)載電容充放電導(dǎo)致的功耗;Pshort_circuit為短路電流導(dǎo)致的功耗;Pleakage為泄漏電流導(dǎo)致的功耗。其中Pswitch是電路功耗的主要部分,功耗大小與邏輯門是否翻轉(zhuǎn)有密切關(guān)系,因此電路中運(yùn)算數(shù)據(jù)的0、1狀態(tài)與電路的功耗必然具有一定的相關(guān)性,這個(gè)特性是DPA攻擊的物理基礎(chǔ)。

    以DES算法為例,DPA攻擊的主要步驟如下:

    (1)隨機(jī)生成大量明文,加密這些明文并記錄下加密操作時(shí)的功耗曲線。

    (2)關(guān)注第一輪第一個(gè)S盒輸出的第一比特b,猜測第一個(gè)S盒對(duì)應(yīng)的6 bit密鑰,并用其與相應(yīng)的明文計(jì)算出b。

    (3)根據(jù)b的值,將能耗曲線按照b=0和b=1分為兩類。

    (4)計(jì)算出這兩類的平均能耗曲線,并將二者相減求得差分能耗曲線。

    (5)觀察步驟(4)生成的能量曲線。若密鑰猜測正確,則步驟(3)的分組就是正確的,差分能耗曲線中將出現(xiàn)明顯的峰值。因此攻擊者通過觀察峰值來判斷密鑰的猜測是否正確。

    (6)重復(fù)步驟(2)~(5),得到其他的子密鑰。

    這樣,通過差分跡中的尖峰,就可以確定出完整的48 bit密鑰信息。再使用窮舉搜索或繼續(xù)分析下一輪等方法,可以很容易地確定出剩下的8 bit密鑰。

1.2 故障攻擊

    故障攻擊是通過將故障引入到芯片中,如改變芯片的工作頻率或工作電壓,使得芯片工作不正常,從而獲得芯片內(nèi)部關(guān)鍵信息。

    Biham和Shamir提出了對(duì)DES算法的差分故障分析[4],該攻擊的基本方法如下:攻擊者對(duì)同一明文加密兩次,其中一次正常加密,另外一次在加密的第15輪運(yùn)算時(shí)引入故障,使得芯片輸出錯(cuò)誤運(yùn)算結(jié)果。攻擊者通過記錄正確加密結(jié)果和錯(cuò)誤結(jié)果并對(duì)這兩個(gè)結(jié)果進(jìn)行數(shù)學(xué)分析,即可獲得密鑰的相關(guān)信息。 

    如圖2所示,攻擊者在第15輪的f函數(shù)運(yùn)算期間注入故障,則有:

wdz1-gs1.gif

    在該等式中只有K16是未知的,通過解方程即可獲得密鑰信息。

wdz1-t2.gif

2 DES算法抗差分功耗攻擊和故障攻擊設(shè)計(jì)

    流水線的概念在數(shù)字電路中應(yīng)用得很廣,它是加快數(shù)字電路的有效手段,在分組密碼算法中應(yīng)用得同樣很廣泛,如DES、AES等分組加密算法都有相關(guān)的流水線實(shí)現(xiàn)方案。

    本文通過把流水線技術(shù)與抗差分功耗分析和故障攻擊相結(jié)合,同一明文進(jìn)入不同級(jí)的流水線進(jìn)行運(yùn)算,其他級(jí)流水線的輸入為隨機(jī)數(shù),這樣在同一時(shí)鐘周期內(nèi)有不同的運(yùn)算操作疊加,增加了正常運(yùn)算的噪聲,可以抵抗差分功耗攻擊;通過比較同一明文的運(yùn)算結(jié)果是否一致,來檢測運(yùn)算過程中是否有故障注入,可以抵抗故障攻擊。

    如圖3所示,DES算法采用四級(jí)流水線,每級(jí)流水線進(jìn)行4輪運(yùn)算。圖中虛線部分表示隨機(jī)數(shù)參與該級(jí)流水線運(yùn)算。

wdz1-t3.gif

    首先產(chǎn)生所需的隨機(jī)數(shù),一個(gè)隨機(jī)數(shù)用于確定這四級(jí)流水線中哪兩級(jí)的輸入為真實(shí)的明文P,兩個(gè)隨機(jī)數(shù)作為隨機(jī)明文進(jìn)入另外兩級(jí)流水線,兩個(gè)隨機(jī)數(shù)分別作為密鑰用于為兩個(gè)隨機(jī)明文產(chǎn)生隨機(jī)輪密鑰。

    這里不妨假設(shè)前兩級(jí)流水線的輸入為真實(shí)的明文,后兩級(jí)輸入為隨機(jī)數(shù)。待真實(shí)明文的兩級(jí)流水線運(yùn)算完成后對(duì)這兩個(gè)密文進(jìn)行比較,若一致則說明運(yùn)算過程中沒有注入故障,可輸出正確密文;否則返回錯(cuò)誤信息。

    當(dāng)然,為增加抗攻擊能力,本文的方法可以與其他防護(hù)方法相結(jié)合,如每一級(jí)的流水線在實(shí)現(xiàn)時(shí)可以引入隨機(jī)掩碼,這樣抗差分功耗攻擊的效果會(huì)更好一些。

3 實(shí)驗(yàn)仿真及分析

    以DES算法中輪輸出的寄存器為攻擊點(diǎn),采用漢明距離模型,通過仿真實(shí)驗(yàn)對(duì)本文防護(hù)方法的有效性進(jìn)行驗(yàn)證。

    對(duì)標(biāo)準(zhǔn)的DES算法和本文的防護(hù)方法分別進(jìn)行VLSI設(shè)計(jì),采樣后采用Riscure公司的Inspector側(cè)信道分析平臺(tái)對(duì)其FPGA實(shí)現(xiàn)進(jìn)行分析,結(jié)果如圖4所示。對(duì)于標(biāo)準(zhǔn)的DES算法,分析第一輪中的第一個(gè)S盒,當(dāng)猜測到密鑰為0x00時(shí)會(huì)出現(xiàn)明顯的尖峰,這說明密鑰猜測正確;對(duì)于本文的防護(hù)方法,當(dāng)猜測到密鑰仍為0x00時(shí)沒有出現(xiàn)明顯的尖峰,說明本方法可以有效的抵抗功耗分析。

wdz1-t4.gif

4 結(jié)論

    本文以DES算法為例,給出了一種既可以抵抗差分功耗分析,又可以抵抗故障攻擊的分組密碼算法防護(hù)方法,采用流水線技術(shù)不僅增加了正常加解密運(yùn)算的噪聲,同一明文依次進(jìn)入不同級(jí)的流水線比較運(yùn)算結(jié)果是否一致,可以抗故障攻擊。通過實(shí)驗(yàn)驗(yàn)證,本方法可以有效地抵抗攻擊。

參考文獻(xiàn)

[1] FIPS PUB 4623,Data Encryption Standard,F(xiàn)ederal Information Processing Standards Publication Reaffirmed 1999 October 25,U.S.Department of Commerce/National Institute of Standards and Technology.

[2] KOCHER P,JAFFE J,JUN B.Differential power analysis[C].Proceeding of Advances in cryptography(CRYPTO’99),1999:388-397.

[3] 韓軍,曾曉洋,湯庭鰲.DES密碼電路的抗差分功耗分析設(shè)計(jì)[J].半導(dǎo)體學(xué)報(bào),2005,26(8):1646.

[4] BIHAME E,SHAMIR A.Differential fault analysis of secret key cryptosystems[C].Proceeding of Advances in Cryptology,1997,1294:513-525.

[5] 張麗娜,陳建華,張家宏,等.基于ASIC的有效DES/3DES流水線設(shè)計(jì)[J].計(jì)算機(jī)工程,2007,33(2).

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