閆喜亮
(鄭州工業應用技術學院,河南新鄭451150)
密碼芯片中抗差分功耗分析攻擊的DES方案設計*
閆喜亮*
(鄭州工業應用技術學院,河南新鄭451150)
為抵抗密碼芯片中針對數據加密標準算法的功耗分析攻擊,通過分析數據加密標準算法遭受功耗分析攻擊的原理,并結合針對數據加密標準算法關鍵防御技術,給出了一種基于互補電路的中間值掩碼DES方案設計。主要是利用雙電路進行互補輸出,以保證寄存器翻轉保持功耗恒定,從而最大限度地降低功耗差異。根據算法性能分析結果表明:該方案可以抵抗差分功耗分析攻擊,且實現簡單,能夠直接應用于密碼芯片的電路設計中。
密碼芯片;數據加密標準算法;差分功耗分析攻擊;互補電路;防御措施
數據加密標準(Data Encryption Standard,DES)算法[1]作為信息處理標準于1977年被美國國家標準局采用,是目前使用非常廣泛的數據加密算法。數據加密算法是智能卡和網絡安全的關鍵技術,因而針對數據加密算法的惡意用戶破解成為密碼學領域研究的熱點問題。當前,針對數據加密算法的破解攻擊主要有兩類:一類是傳統的數學攻擊方法,主要是在數學算法的層面上進行分析,力求找出加密算法設計上的缺陷,由于數據加密算法的數學基礎比較牢固,所以針對密碼芯片中加密處理模塊進行傳統數學攻擊比較困難,而且隨著分組密鑰長度增加將更難破解;另一類是近年來比較流行的功耗分析攻擊方法,它最早是由Kocher P等人[2]于1988年提出的一種非常簡單有效的攻擊方法,通過利用適當的儀器對密碼芯片中加密模塊運行時所泄露的功耗信息進行測量,因不同操作的功耗不同,所以根據功率曲線進行統計分析來獲取相關密鑰信息以實現對密碼芯片密鑰的破譯,具有實現簡單、攻擊成功率高等特點。其中差分功耗分析攻擊DPA(Differential Power Analysis)[3]被證明是最有效率的功耗攻擊技術,且因其密鑰搜索空間小、易于實現,所以對密碼芯片安全造成較大威脅。由于差分功耗分析攻擊主要是通過對每一次電路翻轉時所表現出來的功耗差異進行相關性統計分析,如果能隱藏電路翻轉時的功耗差異,就可以使得攻擊者無法實施差分功耗攻擊,因而給出一種基于互補電路的抗差分功耗攻擊DES方案設計CCDES(Scheme of Resisting Differential Power Analysis Attack Base on Complementary Circuit for DES),其基本思想是在常規DES算法電路中設置一個互補電路,當常規電路執行操作出現電路翻轉時,互補電路則不執行電路翻轉操作,反之,當常規電路沒有出現電路翻轉時,此時互補電路則執行電路的翻轉操作,從而使這對互補電路寄存器翻轉保持恒定,獲得的功耗曲線趨于平滑,攻擊者無法判斷出功耗差異。
數據加密標準算法是迄今應用較為廣泛的迭代分組密碼算法,密鑰長度為64 bit(實際密鑰長度為56 bit,剩余8 bit作為奇偶校驗位),輸入的明文和輸出的密文長度相同,執行DES加密運算時明文被劃分為若干個64 bit的分組,進行初始置換后,與產生的密鑰執行16輪迭代變換,每一輪變換主要是由移位、置換、異或和擴散等操作構成,最后則需要執行一次逆初始變換獲得64 bit的密文分組,所有的明文分組在加密完成后獲得的所有密文分組組合即為所需的密文。DES算法的入口參數有3個:key、data和mode。其中,key為明密文加解密密鑰,data為所需加密或解密的數據,mode為算法工作模式(包括加密模式和解密模式兩種)。DES算法的具體工作流程如圖1所示。其中,S盒為非線性函數,它是實現DES算法的關鍵部分。

圖1 DES算法工作流程圖
由圖1可知,DES算法所需執行的主要運算包括初始置換IP、迭代變換(16輪)、逆初始置換IP-1等。DES算法的具體執行過程如下:
輸入:64 bit明文分組M,64 bit密鑰K;
輸出:64 bit密文分組C。
步驟1初始置換運算IP,主要是將64 bit明文M的順序進行置換,獲得亂序的明文分組,并分為均為32 bit的左右兩個部分,分別為L和R。
步驟2迭代變換運算,是DES算法的核心,需要重復執行16輪,假定變量i為算法執行輪數,則有1≤i≤16,每一輪的執行步驟如下:
步驟2.1每一輪的輸入均分為Li-1和Ri-1左右兩組,每組32 bit;
步驟2.2將一輪運算的右組輸入數據Ri-1賦值給下一輪運算的左組Li作為輸入數據,即有Li=Ri-1;
步驟2.3將一輪運算的右組輸入數據Ri-1進行E盒擴展操作,變換為48 bit;
步驟2.4將擴展后的48 bit右組數據與48 bit的子密鑰Ki進行模2加操作,產生的結果分為8組,每組6 bit;
步驟2.5將加密后的8組數據通過8個S盒進行替換操作,每組6 bit的數據替換后輸出為4 bit,其中每組中的第1和第6位用于確定S盒表內的行數,中間的4位用于確定S盒表內的列數;
步驟2.6將經過S盒替換后的8組數據(此時每組數據為4 bit)經P盒置換合并成32 bit,然后再與同一輪運算的左組輸入數據Li-1進行模2加操作,產生結果作為本輪運算的右組輸入數據Ri,即有Ri=Li-1⊕f(Ri-1,Ki),其中f表示輪函數,處理過程包括步驟2.3到步驟2.6的操作;
步驟3逆初始置換運算IP-1,主要是將經過16輪迭代運算后的64 bit密文分組按照一定規律進行置換,得到新的64 bit密文分組,即為所需最終輸出的密文分組C。
差分功耗分析攻擊(DPA)是功耗分析攻擊中比較方便有效的一種,主要是通過利用不同的明文輸入所對應的功耗曲線不同,然后結合統計分析和誤差修正技術,從大量的功耗曲線中推測出密碼算法中與密鑰信息具有相關性的中間結果,最終實現對密碼算法的破解,與簡單功耗分析攻擊(SPA)相比具有更高的攻擊強度,對密碼芯片造成的安全威脅更大。目前使用的電子設備絕大部分是采用超大規模集成電路VLSI(Very Large Scale Integrated circuits)設計,所以在運行電子設備時會因電流變化產生功率消耗,其實質是集成電路內部數據改變時導致邏輯門電路發生0和1翻轉而產生功率消耗,一般為了便于監測設備運行時的功率消耗,將邏輯門電路翻轉簡化為對原始輸入數據與輸出數據之間的漢明重量HW(HammingWeight)[4]以方便進行測量。采用差分功耗分析攻擊對DES算法實施攻擊主要包括以下幾個步驟:
(1)首先在DES算法加密過程中選擇某個中間值f(d,k),其中d為已知變量,k為密鑰的一部分;
(2)其次在DES算法加密過程中采集實際功耗曲線,采集u次,一次采集v個點,構造功耗矩陣T;
(3)然后計算出假定的中間值,若所有可能子密鑰有r種,對于u次采集過程,則有中間值矩陣Z;
(4)接著利用仿真技術將中間值映射為假定功耗,一般采用漢明重量模型,則有假定功耗矩陣T';
(5)最后利用差分或相關系數的方法比較矩陣T和T',并通過相應的判別方法逐步恢復出密鑰。
目前,DES算法抵抗差分功耗分析攻擊主要有增加噪聲引入隨機延遲[5]、掩蓋相關功耗信息[6]、對數據實施隨機掩碼[7]3種方法。增加噪聲引入隨機延遲主要是為了增加功耗曲線對齊的難度,但是如果引入延遲較小則攻擊者可以通過簡單處理重新對齊功耗曲線,而如果引入延長過大則會降低加密模塊的性能。對數據實施隨機掩碼主要是消除猜測中間值與功耗的相關性,攻擊者雖然同樣可以采集到功耗值,但由于輸入增加了隨機掩碼使得攻擊者不能獲取有效中間值。對于DES算法采用布爾掩碼[8]比較容易,但對于S盒的掩碼效果并不好。還可以通過預計算存儲有效實施掩碼[9],但需要增加8個SM盒,電路面積開銷較大,實際應用效果不佳。掩蓋相關功耗信息主要是使攻擊者采集的功耗曲線平滑且差異小,主要是電路級防御措施,其中WDDL技術[10]可以有效抵抗差分功耗攻擊,但該方案需搭建雙軌模塊電路或重新設計基本單元庫,增加了設計難度且可移植性差。
所給CCDES方案的基本思路是采用兩個互補的DES模塊電路,一個電路模塊實現對明文M的DES算法加密,另一個電路模塊實現對明文反碼W的DES算法加密,由于這兩個電路模塊在執行DES加密運算時的中間值具有互補性,也就是說所給設計方案執行過程中每一運算階段的漢明重量都是恒定的,因而加密模塊在運行時表現出的功耗信息幾乎沒有差異,從而使得所給基于CCVM的DES加密方案可以達到抵抗差分功耗分析攻擊的效果。其中,所給CCDES抗功耗方案工作流程如圖2所示。

圖2 CCDE方案工作流程圖
所給CCDES抗功耗方案中,輸入的明文M和W是互補的,根據GF(2)n的特性可以證明所給方案的中間結果同樣具有互補性。
引理1假設H是GF(2)n空間上的置換運算,如果a,b∈GF(2)n,a=ˉb,則有H(a)=H(b)。
根據引理1可知,對于CCDES方案的初始置換IP、逆置換IP-1、P置換,因M與W互補,所以IP(M)與IP(W)、IP-1(M)與IP-1(W)、P(M)與P(W)均互補。
引理2假設E是GF(2)n空間上的線性擴展運算,如果a,b∈GF(2)n,a=ˉb,則有E(a)=E(b)。
根據引理2可知,對于CCDES方案中的擴展運算E,因M與W互補,所以有E(M)與E(W)互補。
引理3假設⊕是GF(2)n空間上的異或運算,如果a,b,c∈GF(2)n,a=ˉb,則有c⊕a=c⊕b。
根據引理3可知,對于CCDES方案中的異或運算⊕,因M與W互補,所以K⊕M與K⊕W互補。
引理4假設I是GF(2)n空間上的代換運算,如果a,b∈GF(2)n,c,d∈GF(2)m,a=ˉb,當c=I(a)時,則一定存在代換運算I',使d=I'(b)滿足c=ˉd。
根據引理4可知,對于CCDES方案,一定存在與S盒互補的SF盒,因M與W互補,有S(M)與SF(W)互補。其中,所給CCDES抗功耗方案的SF盒如表1所示。與DES種S盒類似,CCDES也包含8個SF盒,每組6 bit的輸入替換后輸出為4 bit,每組中的第1位和第6位用于確定SF盒表內的行數,中間4位用于確定S盒表內的列數。在CCDES抗功耗方案中,采用所給SF盒與S盒一起可以保證運算過程中中間值的互補性。

表1 CCDES方案的SF盒
所給CCDES方案采用兩個互補的電路來實現DES加密算法的抗功耗能力,其電路面積開銷比增加了一倍,但其性能幾乎沒有損失。利用文獻[11]給出的功耗仿真實驗平臺對所給方案進行差分功耗仿真實驗,所得差分功耗曲線如圖3所示。

圖3 CCDE方案差分功耗曲線
由圖3可以看出,所給方案的差分功耗曲線總體比較平滑,無明顯尖峰,說明所給CCDES方案可以有效抵抗差分功耗分析攻擊。這主要是由于所給CCDES方案在整體運行過程中,寄存器翻轉和邏輯電路走向始終保持互補,從而使得所給方案執行加密過程中功耗差異較小。在輸入階段,明文M和W均為64 bit,計算可得HW(M|W)=64,漢明重量恒定,其中“|”表示兩個二進制串的拼接。在初始置換IP階段,明文M變換為(L0|R0),明文W變換為(Z0|Y0),計算可得HW(L0|R0|Z0|Y0)=64,漢明重量恒定。對于擴展運算E,輸入HW(Ri|Zi)=32,輸出HW(E(Ri)|E(Zi))=48,漢明重量均恒定。對于子密鑰異或運算⊕,其中輪子密鑰Ki相同,則輸出HW(E(Ri)⊕Ki|E(Zi)⊕Ki)=48,漢明重量恒定。對于S盒運算,輸出HW(S(E(Ri)⊕Ki)|S(E(Zi)⊕Ki))=32,漢明重恒定,此時Ri= S(E(Ri)⊕Ki)和Zi=S(E(Zi)⊕Ki)。對于P置換運算,HW(P(Ri)|P(Zi)))=32,漢明重量恒定。對于左右交換階段,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,漢明重量均恒定。對于逆置換IP-1階段,輸出密文C和D均為64 bit,則有HW(C|D)= 64,漢明重量恒定??梢?,所給CCDES方案在加密執行全過程中間值始終保持漢明重量恒定,大大降低了差分功耗信息的泄露,從而使得攻擊者采用差分功耗分析攻擊失效。
差分功耗分析攻擊對于DES加密算法具有較大威脅,為有效抵抗差分功耗分析攻擊,給出了一種基于互補電路的抗差分功耗分析攻擊DES方案,通過增加一個互補電路保持電路翻轉互補性,同時為了保證中間結果的互補性,互補電路采用了SF盒設計,保證了所給CCDES方案中間結果的漢明重量恒定,從而消除了電路在翻轉時泄露的功耗差異。性能分析可知,所給方案能夠有效抵抗差分功耗分析攻擊,可以很好地應用對于電路面積要求不高的各種加密應用系統中,具有很好的理論研究意義和實際推廣應用價值。
[1]應君,朱俊達,陳杭生.DES加密算法在低成本FPGA上的實現[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技術研究[J].電子器件,2003,26(2):169-172.
[4]王小娟,郭世澤,趙新杰,等.基于功耗預處理優化的LED密碼模板攻擊研究[J].通信學報,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平臺的電路級抗差分功耗分析研究[J].北京大學學報(自然科學版),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]吳克壽,李仁發,王曉棟,等.針對DES加密算法的DPA攻擊仿真平臺[J].計算機科學,2012,39(2):59-65.

閆喜亮(1968-),男,漢,河南省新鄭市人,鄭州工業應用技術學院工作,副教授、工程師,碩士,研究方向為計算機應用技術,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
項目來源:河南省基礎與前沿技術研究計劃項目(142300410283);河南省軟科學研究計劃項目(142400410179);河南省教育
廳科學技術研究重點項目(12B520063,14B520065);河南省高等學校青年骨干教師資助計劃項目(2013GGJS-230)
2016-02-07修改日期:2016-03-31