閆喜亮
(鄭州工業(yè)應(yīng)用技術(shù)學(xué)院,河南新鄭451150)
密碼芯片中抗差分功耗分析攻擊的DES方案設(shè)計(jì)*
閆喜亮*
(鄭州工業(yè)應(yīng)用技術(shù)學(xué)院,河南新鄭451150)
為抵抗密碼芯片中針對(duì)數(shù)據(jù)加密標(biāo)準(zhǔn)算法的功耗分析攻擊,通過(guò)分析數(shù)據(jù)加密標(biāo)準(zhǔn)算法遭受功耗分析攻擊的原理,并結(jié)合針對(duì)數(shù)據(jù)加密標(biāo)準(zhǔn)算法關(guān)鍵防御技術(shù),給出了一種基于互補(bǔ)電路的中間值掩碼DES方案設(shè)計(jì)。主要是利用雙電路進(jìn)行互補(bǔ)輸出,以保證寄存器翻轉(zhuǎn)保持功耗恒定,從而最大限度地降低功耗差異。根據(jù)算法性能分析結(jié)果表明:該方案可以抵抗差分功耗分析攻擊,且實(shí)現(xiàn)簡(jiǎn)單,能夠直接應(yīng)用于密碼芯片的電路設(shè)計(jì)中。
密碼芯片;數(shù)據(jù)加密標(biāo)準(zhǔn)算法;差分功耗分析攻擊;互補(bǔ)電路;防御措施
數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)算法[1]作為信息處理標(biāo)準(zhǔn)于1977年被美國(guó)國(guó)家標(biāo)準(zhǔn)局采用,是目前使用非常廣泛的數(shù)據(jù)加密算法。數(shù)據(jù)加密算法是智能卡和網(wǎng)絡(luò)安全的關(guān)鍵技術(shù),因而針對(duì)數(shù)據(jù)加密算法的惡意用戶破解成為密碼學(xué)領(lǐng)域研究的熱點(diǎn)問(wèn)題。當(dāng)前,針對(duì)數(shù)據(jù)加密算法的破解攻擊主要有兩類:一類是傳統(tǒng)的數(shù)學(xué)攻擊方法,主要是在數(shù)學(xué)算法的層面上進(jìn)行分析,力求找出加密算法設(shè)計(jì)上的缺陷,由于數(shù)據(jù)加密算法的數(shù)學(xué)基礎(chǔ)比較牢固,所以針對(duì)密碼芯片中加密處理模塊進(jìn)行傳統(tǒng)數(shù)學(xué)攻擊比較困難,而且隨著分組密鑰長(zhǎng)度增加將更難破解;另一類是近年來(lái)比較流行的功耗分析攻擊方法,它最早是由Kocher P等人[2]于1988年提出的一種非常簡(jiǎn)單有效的攻擊方法,通過(guò)利用適當(dāng)?shù)膬x器對(duì)密碼芯片中加密模塊運(yùn)行時(shí)所泄露的功耗信息進(jìn)行測(cè)量,因不同操作的功耗不同,所以根據(jù)功率曲線進(jìn)行統(tǒng)計(jì)分析來(lái)獲取相關(guān)密鑰信息以實(shí)現(xiàn)對(duì)密碼芯片密鑰的破譯,具有實(shí)現(xiàn)簡(jiǎn)單、攻擊成功率高等特點(diǎn)。其中差分功耗分析攻擊DPA(Differential Power Analysis)[3]被證明是最有效率的功耗攻擊技術(shù),且因其密鑰搜索空間小、易于實(shí)現(xiàn),所以對(duì)密碼芯片安全造成較大威脅。由于差分功耗分析攻擊主要是通過(guò)對(duì)每一次電路翻轉(zhuǎn)時(shí)所表現(xiàn)出來(lái)的功耗差異進(jìn)行相關(guān)性統(tǒng)計(jì)分析,如果能隱藏電路翻轉(zhuǎn)時(shí)的功耗差異,就可以使得攻擊者無(wú)法實(shí)施差分功耗攻擊,因而給出一種基于互補(bǔ)電路的抗差分功耗攻擊DES方案設(shè)計(jì)CCDES(Scheme of Resisting Differential Power Analysis Attack Base on Complementary Circuit for DES),其基本思想是在常規(guī)DES算法電路中設(shè)置一個(gè)互補(bǔ)電路,當(dāng)常規(guī)電路執(zhí)行操作出現(xiàn)電路翻轉(zhuǎn)時(shí),互補(bǔ)電路則不執(zhí)行電路翻轉(zhuǎn)操作,反之,當(dāng)常規(guī)電路沒(méi)有出現(xiàn)電路翻轉(zhuǎn)時(shí),此時(shí)互補(bǔ)電路則執(zhí)行電路的翻轉(zhuǎn)操作,從而使這對(duì)互補(bǔ)電路寄存器翻轉(zhuǎn)保持恒定,獲得的功耗曲線趨于平滑,攻擊者無(wú)法判斷出功耗差異。
數(shù)據(jù)加密標(biāo)準(zhǔn)算法是迄今應(yīng)用較為廣泛的迭代分組密碼算法,密鑰長(zhǎng)度為64 bit(實(shí)際密鑰長(zhǎng)度為56 bit,剩余8 bit作為奇偶校驗(yàn)位),輸入的明文和輸出的密文長(zhǎng)度相同,執(zhí)行DES加密運(yùn)算時(shí)明文被劃分為若干個(gè)64 bit的分組,進(jìn)行初始置換后,與產(chǎn)生的密鑰執(zhí)行16輪迭代變換,每一輪變換主要是由移位、置換、異或和擴(kuò)散等操作構(gòu)成,最后則需要執(zhí)行一次逆初始變換獲得64 bit的密文分組,所有的明文分組在加密完成后獲得的所有密文分組組合即為所需的密文。DES算法的入口參數(shù)有3個(gè):key、data和mode。其中,key為明密文加解密密鑰,data為所需加密或解密的數(shù)據(jù),mode為算法工作模式(包括加密模式和解密模式兩種)。DES算法的具體工作流程如圖1所示。其中,S盒為非線性函數(shù),它是實(shí)現(xiàn)DES算法的關(guān)鍵部分。
圖1 DES算法工作流程圖
由圖1可知,DES算法所需執(zhí)行的主要運(yùn)算包括初始置換IP、迭代變換(16輪)、逆初始置換IP-1等。DES算法的具體執(zhí)行過(guò)程如下:
輸入:64 bit明文分組M,64 bit密鑰K;
輸出:64 bit密文分組C。
步驟1初始置換運(yùn)算IP,主要是將64 bit明文M的順序進(jìn)行置換,獲得亂序的明文分組,并分為均為32 bit的左右兩個(gè)部分,分別為L(zhǎng)和R。
步驟2迭代變換運(yùn)算,是DES算法的核心,需要重復(fù)執(zhí)行16輪,假定變量i為算法執(zhí)行輪數(shù),則有1≤i≤16,每一輪的執(zhí)行步驟如下:
步驟2.1每一輪的輸入均分為L(zhǎng)i-1和Ri-1左右兩組,每組32 bit;
步驟2.2將一輪運(yùn)算的右組輸入數(shù)據(jù)Ri-1賦值給下一輪運(yùn)算的左組Li作為輸入數(shù)據(jù),即有Li=Ri-1;
步驟2.3將一輪運(yùn)算的右組輸入數(shù)據(jù)Ri-1進(jìn)行E盒擴(kuò)展操作,變換為48 bit;
步驟2.4將擴(kuò)展后的48 bit右組數(shù)據(jù)與48 bit的子密鑰Ki進(jìn)行模2加操作,產(chǎn)生的結(jié)果分為8組,每組6 bit;
步驟2.5將加密后的8組數(shù)據(jù)通過(guò)8個(gè)S盒進(jìn)行替換操作,每組6 bit的數(shù)據(jù)替換后輸出為4 bit,其中每組中的第1和第6位用于確定S盒表內(nèi)的行數(shù),中間的4位用于確定S盒表內(nèi)的列數(shù);
步驟2.6將經(jīng)過(guò)S盒替換后的8組數(shù)據(jù)(此時(shí)每組數(shù)據(jù)為4 bit)經(jīng)P盒置換合并成32 bit,然后再與同一輪運(yùn)算的左組輸入數(shù)據(jù)Li-1進(jìn)行模2加操作,產(chǎn)生結(jié)果作為本輪運(yùn)算的右組輸入數(shù)據(jù)Ri,即有Ri=Li-1⊕f(Ri-1,Ki),其中f表示輪函數(shù),處理過(guò)程包括步驟2.3到步驟2.6的操作;
步驟3逆初始置換運(yùn)算IP-1,主要是將經(jīng)過(guò)16輪迭代運(yùn)算后的64 bit密文分組按照一定規(guī)律進(jìn)行置換,得到新的64 bit密文分組,即為所需最終輸出的密文分組C。
差分功耗分析攻擊(DPA)是功耗分析攻擊中比較方便有效的一種,主要是通過(guò)利用不同的明文輸入所對(duì)應(yīng)的功耗曲線不同,然后結(jié)合統(tǒng)計(jì)分析和誤差修正技術(shù),從大量的功耗曲線中推測(cè)出密碼算法中與密鑰信息具有相關(guān)性的中間結(jié)果,最終實(shí)現(xiàn)對(duì)密碼算法的破解,與簡(jiǎn)單功耗分析攻擊(SPA)相比具有更高的攻擊強(qiáng)度,對(duì)密碼芯片造成的安全威脅更大。目前使用的電子設(shè)備絕大部分是采用超大規(guī)模集成電路VLSI(Very Large Scale Integrated circuits)設(shè)計(jì),所以在運(yùn)行電子設(shè)備時(shí)會(huì)因電流變化產(chǎn)生功率消耗,其實(shí)質(zhì)是集成電路內(nèi)部數(shù)據(jù)改變時(shí)導(dǎo)致邏輯門電路發(fā)生0和1翻轉(zhuǎn)而產(chǎn)生功率消耗,一般為了便于監(jiān)測(cè)設(shè)備運(yùn)行時(shí)的功率消耗,將邏輯門電路翻轉(zhuǎn)簡(jiǎn)化為對(duì)原始輸入數(shù)據(jù)與輸出數(shù)據(jù)之間的漢明重量HW(HammingWeight)[4]以方便進(jìn)行測(cè)量。采用差分功耗分析攻擊對(duì)DES算法實(shí)施攻擊主要包括以下幾個(gè)步驟:
(1)首先在DES算法加密過(guò)程中選擇某個(gè)中間值f(d,k),其中d為已知變量,k為密鑰的一部分;
(2)其次在DES算法加密過(guò)程中采集實(shí)際功耗曲線,采集u次,一次采集v個(gè)點(diǎn),構(gòu)造功耗矩陣T;
(3)然后計(jì)算出假定的中間值,若所有可能子密鑰有r種,對(duì)于u次采集過(guò)程,則有中間值矩陣Z;
(4)接著利用仿真技術(shù)將中間值映射為假定功耗,一般采用漢明重量模型,則有假定功耗矩陣T';
(5)最后利用差分或相關(guān)系數(shù)的方法比較矩陣T和T',并通過(guò)相應(yīng)的判別方法逐步恢復(fù)出密鑰。
目前,DES算法抵抗差分功耗分析攻擊主要有增加噪聲引入隨機(jī)延遲[5]、掩蓋相關(guān)功耗信息[6]、對(duì)數(shù)據(jù)實(shí)施隨機(jī)掩碼[7]3種方法。增加噪聲引入隨機(jī)延遲主要是為了增加功耗曲線對(duì)齊的難度,但是如果引入延遲較小則攻擊者可以通過(guò)簡(jiǎn)單處理重新對(duì)齊功耗曲線,而如果引入延長(zhǎng)過(guò)大則會(huì)降低加密模塊的性能。對(duì)數(shù)據(jù)實(shí)施隨機(jī)掩碼主要是消除猜測(cè)中間值與功耗的相關(guān)性,攻擊者雖然同樣可以采集到功耗值,但由于輸入增加了隨機(jī)掩碼使得攻擊者不能獲取有效中間值。對(duì)于DES算法采用布爾掩碼[8]比較容易,但對(duì)于S盒的掩碼效果并不好。還可以通過(guò)預(yù)計(jì)算存儲(chǔ)有效實(shí)施掩碼[9],但需要增加8個(gè)SM盒,電路面積開(kāi)銷較大,實(shí)際應(yīng)用效果不佳。掩蓋相關(guān)功耗信息主要是使攻擊者采集的功耗曲線平滑且差異小,主要是電路級(jí)防御措施,其中WDDL技術(shù)[10]可以有效抵抗差分功耗攻擊,但該方案需搭建雙軌模塊電路或重新設(shè)計(jì)基本單元庫(kù),增加了設(shè)計(jì)難度且可移植性差。
所給CCDES方案的基本思路是采用兩個(gè)互補(bǔ)的DES模塊電路,一個(gè)電路模塊實(shí)現(xiàn)對(duì)明文M的DES算法加密,另一個(gè)電路模塊實(shí)現(xiàn)對(duì)明文反碼W的DES算法加密,由于這兩個(gè)電路模塊在執(zhí)行DES加密運(yùn)算時(shí)的中間值具有互補(bǔ)性,也就是說(shuō)所給設(shè)計(jì)方案執(zhí)行過(guò)程中每一運(yùn)算階段的漢明重量都是恒定的,因而加密模塊在運(yùn)行時(shí)表現(xiàn)出的功耗信息幾乎沒(méi)有差異,從而使得所給基于CCVM的DES加密方案可以達(dá)到抵抗差分功耗分析攻擊的效果。其中,所給CCDES抗功耗方案工作流程如圖2所示。
圖2 CCDE方案工作流程圖
所給CCDES抗功耗方案中,輸入的明文M和W是互補(bǔ)的,根據(jù)GF(2)n的特性可以證明所給方案的中間結(jié)果同樣具有互補(bǔ)性。
引理1假設(shè)H是GF(2)n空間上的置換運(yùn)算,如果a,b∈GF(2)n,a=ˉb,則有H(a)=H(b)。
根據(jù)引理1可知,對(duì)于CCDES方案的初始置換IP、逆置換IP-1、P置換,因M與W互補(bǔ),所以IP(M)與IP(W)、IP-1(M)與IP-1(W)、P(M)與P(W)均互補(bǔ)。
引理2假設(shè)E是GF(2)n空間上的線性擴(kuò)展運(yùn)算,如果a,b∈GF(2)n,a=ˉb,則有E(a)=E(b)。
根據(jù)引理2可知,對(duì)于CCDES方案中的擴(kuò)展運(yùn)算E,因M與W互補(bǔ),所以有E(M)與E(W)互補(bǔ)。
引理3假設(shè)⊕是GF(2)n空間上的異或運(yùn)算,如果a,b,c∈GF(2)n,a=ˉb,則有c⊕a=c⊕b。
根據(jù)引理3可知,對(duì)于CCDES方案中的異或運(yùn)算⊕,因M與W互補(bǔ),所以K⊕M與K⊕W互補(bǔ)。
引理4假設(shè)I是GF(2)n空間上的代換運(yùn)算,如果a,b∈GF(2)n,c,d∈GF(2)m,a=ˉb,當(dāng)c=I(a)時(shí),則一定存在代換運(yùn)算I',使d=I'(b)滿足c=ˉd。
根據(jù)引理4可知,對(duì)于CCDES方案,一定存在與S盒互補(bǔ)的SF盒,因M與W互補(bǔ),有S(M)與SF(W)互補(bǔ)。其中,所給CCDES抗功耗方案的SF盒如表1所示。與DES種S盒類似,CCDES也包含8個(gè)SF盒,每組6 bit的輸入替換后輸出為4 bit,每組中的第1位和第6位用于確定SF盒表內(nèi)的行數(shù),中間4位用于確定S盒表內(nèi)的列數(shù)。在CCDES抗功耗方案中,采用所給SF盒與S盒一起可以保證運(yùn)算過(guò)程中中間值的互補(bǔ)性。
表1 CCDES方案的SF盒
所給CCDES方案采用兩個(gè)互補(bǔ)的電路來(lái)實(shí)現(xiàn)DES加密算法的抗功耗能力,其電路面積開(kāi)銷比增加了一倍,但其性能幾乎沒(méi)有損失。利用文獻(xiàn)[11]給出的功耗仿真實(shí)驗(yàn)平臺(tái)對(duì)所給方案進(jìn)行差分功耗仿真實(shí)驗(yàn),所得差分功耗曲線如圖3所示。
圖3 CCDE方案差分功耗曲線
由圖3可以看出,所給方案的差分功耗曲線總體比較平滑,無(wú)明顯尖峰,說(shuō)明所給CCDES方案可以有效抵抗差分功耗分析攻擊。這主要是由于所給CCDES方案在整體運(yùn)行過(guò)程中,寄存器翻轉(zhuǎn)和邏輯電路走向始終保持互補(bǔ),從而使得所給方案執(zhí)行加密過(guò)程中功耗差異較小。在輸入階段,明文M和W均為64 bit,計(jì)算可得HW(M|W)=64,漢明重量恒定,其中“|”表示兩個(gè)二進(jìn)制串的拼接。在初始置換IP階段,明文M變換為(L0|R0),明文W變換為(Z0|Y0),計(jì)算可得HW(L0|R0|Z0|Y0)=64,漢明重量恒定。對(duì)于擴(kuò)展運(yùn)算E,輸入HW(Ri|Zi)=32,輸出HW(E(Ri)|E(Zi))=48,漢明重量均恒定。對(duì)于子密鑰異或運(yùn)算⊕,其中輪子密鑰Ki相同,則輸出HW(E(Ri)⊕Ki|E(Zi)⊕Ki)=48,漢明重量恒定。對(duì)于S盒運(yùn)算,輸出HW(S(E(Ri)⊕Ki)|S(E(Zi)⊕Ki))=32,漢明重恒定,此時(shí)Ri= S(E(Ri)⊕Ki)和Zi=S(E(Zi)⊕Ki)。對(duì)于P置換運(yùn)算,HW(P(Ri)|P(Zi)))=32,漢明重量恒定。對(duì)于左右交換階段,Ri+1=P(Ri)⊕Li,Li+1=Ri,Zi+1= P(Zi)⊕Yi,Yi+1=Zi,則有HW(Ri+1|Zi+1)=32,HW(Li+1|Yi+1)=32,漢明重量均恒定。對(duì)于逆置換IP-1階段,輸出密文C和D均為64 bit,則有HW(C|D)= 64,漢明重量恒定??梢?jiàn),所給CCDES方案在加密執(zhí)行全過(guò)程中間值始終保持漢明重量恒定,大大降低了差分功耗信息的泄露,從而使得攻擊者采用差分功耗分析攻擊失效。
差分功耗分析攻擊對(duì)于DES加密算法具有較大威脅,為有效抵抗差分功耗分析攻擊,給出了一種基于互補(bǔ)電路的抗差分功耗分析攻擊DES方案,通過(guò)增加一個(gè)互補(bǔ)電路保持電路翻轉(zhuǎn)互補(bǔ)性,同時(shí)為了保證中間結(jié)果的互補(bǔ)性,互補(bǔ)電路采用了SF盒設(shè)計(jì),保證了所給CCDES方案中間結(jié)果的漢明重量恒定,從而消除了電路在翻轉(zhuǎn)時(shí)泄露的功耗差異。性能分析可知,所給方案能夠有效抵抗差分功耗分析攻擊,可以很好地應(yīng)用對(duì)于電路面積要求不高的各種加密應(yīng)用系統(tǒng)中,具有很好的理論研究意義和實(shí)際推廣應(yīng)用價(jià)值。
[1]應(yīng)君,朱俊達(dá),陳杭生.DES加密算法在低成本FPGA上的實(shí)現(xiàn)[J].電子器件,2006,29(3):895-897.
[2]Kocher P,Jaffe J,Jun B.Introcuction to Differential Power Analysis and Related Attacks[EB/OL].http://www.Cryptography.com/ dpa/technical,1998.
[3]蔣惠萍,毛志剛.防止差分功耗分析的安全DES模塊的MASK技術(shù)研究[J].電子器件,2003,26(2):169-172.
[4]王小娟,郭世澤,趙新杰,等.基于功耗預(yù)處理優(yōu)化的LED密碼模板攻擊研究[J].通信學(xué)報(bào),2014,35(3):157-167.
[5]Zafar Y,Park J,Har D,et al.Random Clocking Induced DPA Attack Immunity in FPGA[C]//Proceedings of the 2010 IEEE International Conference on Industrial Technology.Piscataway: IEEE,2010:1068-1079.
[6]Yoshikawa M,Kojima Y.Efficient Random Number for the Masking Method Against DPA Attacks[C]//Proceedings of the 2011 21st International Conference on Systems Engineering.Piscataway:IEEE,2011:321-324.
[7]黃穎,崔小欣,魏為,等.基于FPGA平臺(tái)的電路級(jí)抗差分功耗分析研究[J].北京大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,50(4):652-656.
[8]Akkar M L,Giraud C.An Implementation of DESand AES,Secure Against Some Attacks[C]//CHES 2001,LNCS 2162.Berlin: Springer,2001:309-318.
[9]Standaert F X,Rouvroy G,Quisquater J J.FPGA Implementations of the DES and Triple-DES Masked Against Power Analysis Attacks[C]//Proceedings of 2006 International Conference on Field Programmable Logic and Applications.Piscataway:IEEE,2006:1-4.
[10]Tiri K,Hwang D,Hodjat A,et al.A Side-Channel Leakage Free Coprocessor IC in 0.18μm CMOS for Embedded AES-Based Cryptographic and Biometric Processing[C]//Proceedings of the 2005 42nd Design Automation Conference.Piscataway:IEEE,2005: 222-227.
[11]吳克壽,李仁發(fā),王曉棟,等.針對(duì)DES加密算法的DPA攻擊仿真平臺(tái)[J].計(jì)算機(jī)科學(xué),2012,39(2):59-65.
閆喜亮(1968-),男,漢,河南省新鄭市人,鄭州工業(yè)應(yīng)用技術(shù)學(xué)院工作,副教授、工程師,碩士,研究方向?yàn)橛?jì)算機(jī)應(yīng)用技術(shù),zzhxxyjwc@163.com。
Scheme Design of Resisting Differential Power Analysis Attack for DES in Cryptographic Chip*
YAN Xiliang*
(Zhengzhou University of Industrial Technology,Xinzheng He’nan 451150,China)
In order to resist power analysis attacks aiming to the data encryption standard algorithm in cryptographic chips,a scheme design ofmiddle value masking for data encryption standard algorithm based on complementary circuit is proposed according to the principle and the resistance countermeasures of power analysis attacks aiming to data encryption standard algorithm.The scheme mainly carries out the complementary output by using the double ciruit in order to ensure keeping the power consumption constant of register in roll-in-over and to decrease the difference of power consumption farthest.Performance analysis results demonstrate that the scheme can resist differential power analysis attacks and make easy to be implemented,and can be applied in the circuit design of cryptographic chips directly.
cryptographic chip;data encryption standard algorithm;differential power analysis attack;complementary circuit;resistance countermeasures
C:6150P
10.3969/j.issn.1005-9490.2017.01.032
TP309
:A
:1005-9490(2017)01-0166-05
項(xiàng)目來(lái)源:河南省基礎(chǔ)與前沿技術(shù)研究計(jì)劃項(xiàng)目(142300410283);河南省軟科學(xué)研究計(jì)劃項(xiàng)目(142400410179);河南省教育
廳科學(xué)技術(shù)研究重點(diǎn)項(xiàng)目(12B520063,14B520065);河南省高等學(xué)校青年骨干教師資助計(jì)劃項(xiàng)目(2013GGJS-230)
2016-02-07修改日期:2016-03-31