李 杰 單偉偉 呂宇翔 孫華芳
(東南大學(xué)國家專用集成電路系統(tǒng)工程技術(shù)研究中心,南京 210096)
一種抗相關(guān)功耗攻擊DES算法及FPGA電路實(shí)現(xiàn)
李 杰 單偉偉 呂宇翔 孫華芳
(東南大學(xué)國家專用集成電路系統(tǒng)工程技術(shù)研究中心,南京 210096)
針對目前以差分功耗攻擊為代表的旁路攻擊技術(shù)對加密設(shè)備的安全性造成了嚴(yán)重威脅的狀況,提出了一種基于“非對稱”掩碼的新型抗差分功耗攻擊的方法,并在標(biāo)準(zhǔn)加密算法(DES)中實(shí)現(xiàn).即通過在算法的不同時(shí)刻引入不同的隨機(jī)掩碼變換,使加密設(shè)備的功耗與密鑰之間的相關(guān)性被擾亂,從而抵御相關(guān)功耗攻擊.以此方案設(shè)計(jì)了電路并采用FPGA實(shí)現(xiàn)了電路.搭建了功耗攻擊的FPGA實(shí)物平臺,分別對未加防御的DES和抗相關(guān)功耗攻擊DES算法電路進(jìn)行相關(guān)功耗攻擊實(shí)驗(yàn).實(shí)驗(yàn)結(jié)果表明,以增大5倍攻擊樣本且花費(fèi)了近5倍的破譯時(shí)間為代價(jià),仍無法攻破該方法保護(hù)的DES算法,可見“非對稱”掩碼方法對相關(guān)功耗攻擊起到了防御效果.
差分功耗攻擊;DES算法;掩碼技術(shù);抗功耗攻擊;FPGA
信息的保密性是信息安全的一個(gè)重要方面,保密的目的是防止破譯信息系統(tǒng)中的關(guān)鍵信息.近年來對信息系統(tǒng)最為引人矚目的攻擊形式是利用加密硬件執(zhí)行某種操作時(shí)泄漏的旁路信息[1](如功耗、執(zhí)行時(shí)間等)來推測真實(shí)密鑰,如簡單功耗分析(simple power analysis,SPA)和差分功耗分析(differential power analysis,DPA),由于其簡便易行且不破壞加密系統(tǒng),已成為信息安全的一大威脅.Kocher等[2]在1999年提出 DPA 技術(shù),通過測量約1 000條芯加解密操作時(shí)的功耗曲線,就可以破譯當(dāng)時(shí)市場上大部分智能卡.基于相關(guān)系數(shù)的差分功耗攻擊(correlation power analysis,CPA)[3]使攻擊者更容易利用大樣本統(tǒng)計(jì)方法獲得密鑰信息.
為抵御功耗攻擊,多種抗功耗攻擊的方法相繼誕生,例如在算法流程中插入隨機(jī)操作[4]、增加功耗噪聲[5]和采用雙軌電路設(shè)計(jì)的方法[6]等.除了以上幾種方法外,內(nèi)部數(shù)據(jù)處理流程中引入掩碼[7-10]也是一種有效對抗功耗攻擊的方法.在加密算法運(yùn)算時(shí),每一個(gè)中間值都與一個(gè)稱為“掩碼”的隨機(jī)數(shù)進(jìn)行變換,這使得功耗信息不僅與密鑰操作有關(guān),而且還與引入的隨機(jī)數(shù)相關(guān).隨機(jī)數(shù)擾亂了功耗與密鑰間的相關(guān)性,從而實(shí)現(xiàn)了抗功耗攻擊.采用單一掩碼的傳統(tǒng)掩碼技術(shù)僅能抵御基于簡單分類的傳統(tǒng)DPA攻擊[10],難以有效地防御基于數(shù)學(xué)模型進(jìn)行相關(guān)性計(jì)算的CPA攻擊.
本文提出了一種用“非對稱”掩碼技術(shù)來抵御相關(guān)功耗攻擊.該非對稱掩碼方案通過在DES算法的首輪和末輪內(nèi)的不同時(shí)刻添加不同的掩碼操作,從而有效地抵御相關(guān)功耗攻擊.改進(jìn)的抗攻擊DES采用數(shù)字電路設(shè)計(jì),并用FPGA實(shí)現(xiàn),最后對其進(jìn)行功耗攻擊實(shí)驗(yàn),以驗(yàn)證算法的抗攻擊效果.
DES算法為對稱密碼體制,主要由置換和擴(kuò)散構(gòu)成,易于用硬件實(shí)現(xiàn).由于其具有多次循環(huán)迭代的共性,在該算法的運(yùn)算過程中功耗與所做的操作及操作數(shù)之間具有一定的聯(lián)系,使其易受功耗攻擊.DPA攻擊通過將采集到的真實(shí)功耗信息與數(shù)學(xué)分析計(jì)算得到的假設(shè)功耗信息進(jìn)行統(tǒng)計(jì)分析,從而獲得兩者的相關(guān)性,當(dāng)且僅當(dāng)猜測密鑰與真實(shí)的密鑰相同時(shí),相關(guān)系數(shù)取得最大值.其中需要采用一定的功耗模型將無實(shí)際意義的數(shù)學(xué)分析映射為有物理意義的假設(shè)功耗值,通常功耗模型采用漢明距離模型,電路在某個(gè)特定時(shí)段用0→1轉(zhuǎn)換和1→0轉(zhuǎn)換的總數(shù)來表示電路的功率消耗.
CPA攻擊的一般流程為:①選擇DES執(zhí)行過程的某個(gè)中間值,用來恢復(fù)密鑰信息,這個(gè)中間值是一個(gè)函數(shù)f(d,k),其中,d為已知的明文或密文,k為密鑰信息的一部分(稱為子密鑰);② 測量DES加密過程的實(shí)際功耗跡,若采集D次加密過程,每次加密采集P個(gè)功耗點(diǎn),則獲得一個(gè)D×P的功耗矩陣,記為矩陣T;③ 計(jì)算假設(shè)的中間值,假設(shè)子密鑰k有K種可能,對于每一次加密計(jì)算出中間值,可獲得一個(gè)D×K的矩陣V;④ 將中間值映射為假設(shè)功耗值,利用步驟①和③,并采用功耗模型(漢明距離或者漢明重量模型)計(jì)算得出一個(gè)D×K的假設(shè)功耗矩陣H;⑤計(jì)算假設(shè)功耗矩陣與實(shí)際功耗矩陣之間的相關(guān)性,得出一個(gè)P×K的矩陣Z,其每一行分別對應(yīng)一種猜測的密鑰,每一列對應(yīng)在該時(shí)刻假設(shè)功耗與實(shí)際功耗之間的相關(guān)系數(shù),計(jì)算式為
式中,hd,i為矩陣 H 的元素,i=1,2,…,K,d=1,2,…,D;td,j為矩陣 T 的元素,j=1,2,…,P.⑥ 利用矩陣Z按行繪制出曲線(密鑰-相關(guān)性曲線),出現(xiàn)峰值的曲線即對應(yīng)CPA攻擊結(jié)果.
DES 算法的16 輪(i=1,2,…,16)加密操作相同,僅進(jìn)入首輪操作前需進(jìn)行的初始置換(initial permutation,IP)和第16輪輸出端需進(jìn)行的最終置換(finial permutation,F(xiàn)P)有所不同.每一輪內(nèi)的操作包括E盒置換(e box permutation)、S盒置換(S-BOX)、P盒置換(P);輪間的加密子密鑰為Ki;輪間數(shù)據(jù)被分為相同長度的Li和Ri兩部分.
基本的基于掩碼技術(shù)的DES算法抗DPA攻擊方案[10]通過在DES算法進(jìn)行初始置換時(shí)就與一個(gè)64 bit的隨機(jī)數(shù)進(jìn)行異或操作來引入掩碼值,之后在加密的每一輪內(nèi)添加相同的隨機(jī)化掩碼操作,從而使其整體功耗隨機(jī)化,因此能防御經(jīng)典DPA攻擊.但是在進(jìn)行更強(qiáng)大的基于相關(guān)系數(shù)的CPA攻擊時(shí),取IP置換后的值與首輪的輸出值并利用漢明距離模型構(gòu)造模擬功耗矩陣,可以推導(dǎo)出,二者的漢明距離與標(biāo)準(zhǔn)DES的漢明距離完全相同.因而采用漢明距離模型能有效屏蔽掩碼的作用,使得該抗攻擊方法無法抵御基于相關(guān)系數(shù)的CPA攻擊.
為克服上述方案中兩輪之間使用同一個(gè)掩碼帶來的安全隱患,本文提出一種基于“非對稱掩碼”的抗攻擊方案.其核心思想是對DES的首輪和末輪添加的掩碼值及位置均異于其他輪,使得對其采用漢明距離模型時(shí)無法消去掩碼的作用.本方案的具體流程如圖1所示,其中,X為隨機(jī)數(shù),X1~X4均為由X計(jì)算得出的隨機(jī)數(shù),X1=P(X),X2=E(X1),X3=X1⊕X,X4=I([X3,X3]).其中,P()表示P盒置換;E()表示E盒置換;I()表示IP置換,[X3,X3]表示用2個(gè)X3首尾拼接成的變量,因而X,X1,X2,X3,X4為 32,32,48,32,64 bit.
圖1 非對稱掩碼DES算法的流程圖
非對稱掩碼DES算法在首個(gè)子密鑰K1未對數(shù)據(jù)進(jìn)行操作之前,算法流程保持和原始DES流程相同,在第1輪子密鑰K1對明文進(jìn)行異或后引入掩碼X;隨后的第2~15輪的加密過程,操作方式類似,僅異或的隨機(jī)數(shù)值不同,旨在保持算法中間處理過程功能的正確性;最后在第16輪輸出前異或上掩碼X,經(jīng)過IP逆置換(FP),并加上掩碼X4還原真實(shí)的密文信息.
從該方法可以看出,僅在密鑰信息引入后,才對寄存器迭加上掩碼,此后隨機(jī)數(shù)直接影響寄存器的翻轉(zhuǎn),從而改變算法產(chǎn)生的實(shí)際功耗.若對該算法同樣采用CPA攻擊方法,仍選取IP置換后的值與首輪的輸出值為攻擊點(diǎn).以第1輪為例,該方案中IP置換后的值與首輪的輸出值之間的漢明距離為
式中,R0為明文M進(jìn)行初始置換后數(shù)據(jù)的第32~63 bit部分;R1為第1輪輸出數(shù)據(jù)的第32~63 bit部分,可見本方案的漢明距離因?yàn)榕c隨機(jī)數(shù)X1做異或運(yùn)算而變成隨機(jī)數(shù).而對應(yīng)于原始DES,漢明距離仍為
隨機(jī)數(shù)的影響被消除.可以看出,由于引入了隨機(jī)數(shù)X1,使得該方案的漢明距離與標(biāo)準(zhǔn)DES的漢明距離不同.即攻擊者利用漢明距離模型已無法表征出實(shí)際的功耗消耗.因此對CPA攻擊來說,即使猜測密鑰正確,相關(guān)系數(shù)也無法取得最大值.
DES算法包括16輪的迭代運(yùn)算,其中,除了首輪和末輪,各個(gè)中間輪操作流程完全相同.因此,16輪操作可以通過結(jié)合部分控制邏輯在不同時(shí)刻使用同一套硬件結(jié)構(gòu)實(shí)現(xiàn),即一個(gè)周期完成一輪的加密運(yùn)算.故完成一次完整的加密運(yùn)算需要16個(gè)周期.子密鑰生成方法與標(biāo)準(zhǔn)DES算法相同,僅需移位運(yùn)算和置換運(yùn)算即可實(shí)現(xiàn).此外,該算法除了掩碼型S盒,剩余置換運(yùn)算均與DES標(biāo)準(zhǔn)相同.下面對涉及掩碼操作的電路單元作進(jìn)行說明.
1)隨機(jī)數(shù)產(chǎn)生電路 本文設(shè)計(jì)中所使用的隨機(jī)數(shù)是由硬件描述的偽隨機(jī)數(shù)發(fā)生器(RNG)產(chǎn)生的,實(shí)現(xiàn)方法為線性反饋移位寄存器.
2)輪間的Mask電路 由于在每一輪迭代中,每個(gè)64位的中間結(jié)果被分為左右2部分,而且左右2部分作為相互獨(dú)立的32位數(shù)據(jù)進(jìn)行處理.
① 第1輪.左半部分異或上隨機(jī)掩碼X.右半部分在S盒的輸出端異或上隨機(jī)掩碼X,并經(jīng)P盒置換后獲得.由于在該輪S盒未經(jīng)修改,P盒置換是線性運(yùn)算,因此該輪右半部分的輸出結(jié)果異或上掩碼X1.
②第2~15輪迭代運(yùn)算.左半部分均為上一輪右半部分的輸出,即左半部分異或上隨機(jī)掩碼X1.右半部分經(jīng)E盒擴(kuò)展以及掩碼后的S盒、P盒置換后,輸出結(jié)果保持異或上掩碼X1.這樣使得算法流程保持高度的對稱性,也保證算法的功能正確.
③第16輪.左半部分異或上隨機(jī)掩碼X;右半部分的運(yùn)算與第15輪操作類似,唯一不同的僅在P盒輸出端異或上掩碼X.故使得左右2部分的輸出端分別異或上掩碼X4.
3)掩碼型S盒電路設(shè)計(jì) S-BOX替換是輪內(nèi)運(yùn)算的核心,且是非線性的,為了適應(yīng)Mask算法需要進(jìn)行修正.在本文設(shè)計(jì)的第2~16輪操作中,采用修正過的 SM-BOX[9],如
式中,P-1為P盒的逆置換運(yùn)算.采用查找表實(shí)現(xiàn)S-BOX與SM-BOX的操作.
4)最終置換 由于初始置換IP與最終置換FP為互逆的線性運(yùn)算,因此,在該方案中構(gòu)造掩碼X4進(jìn)行操作,以在算法進(jìn)行最終置換并保證算法安全性的前提下,去掉掩碼還原出正確的密文信息.
加密電路的信號接口如圖2所示,圖中,含時(shí)鐘端(clk)、復(fù)位端(reset-n)、加載掩碼信號(ld)、加載明文信號(load-i)、加/解密信號(encrypt-i)、明文(data-i)、密鑰(key-i)、密文(data-o)以及加密完成信號(ready-o).encrypt-i控制電路工作在加密狀態(tài)或者解密狀態(tài);load-i出現(xiàn)高電平時(shí)表示加密開始;ld為高電平時(shí)表示加載掩碼,電路具有抗相關(guān)功耗攻擊能力;當(dāng)ready-o出現(xiàn)高電平脈沖時(shí)則表明加密完成,密文由data-o輸出.
圖2 加密電路接口信號圖
將上述模塊用Verilog語言設(shè)計(jì),每個(gè)周期實(shí)現(xiàn)一輪的加密操作.并將該設(shè)計(jì)在ModelSim的平臺下進(jìn)行測試,利用FIPS-81標(biāo)準(zhǔn)給出的測試矢量作為明文輸入,得出的加解密結(jié)果正確.例如輸入為h’68652074696d6520,密鑰取為 h’0123456789abcdef,分別在模塊的輸入端加入激勵(lì),得到的波形如圖3所示.從波形中可以看出,時(shí)鐘周期為100 ns,一次加密過程需要16個(gè)周期完成.輸出信號有效時(shí),加密結(jié)果為h’6a271787ab8883f9,與測試向量給出的結(jié)果相同,并且在一次加密過程中,掩碼值X,X1,X2,X3,X4均保持恒定,而在不同次的加密中隨機(jī)數(shù)不同.同樣地,在FPGA平臺下,也進(jìn)行了多組矢量的測試,結(jié)果正確.因此,利用本文設(shè)計(jì)的非對稱掩碼方案實(shí)現(xiàn)的DES算法在功能上可以完全實(shí)現(xiàn)標(biāo)準(zhǔn)的DES算法的加解密功能.
圖3 非對稱掩碼DES仿真波形
本文搭建的功耗攻擊平臺實(shí)物圖如圖4所示,該平臺主要由示波器、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ì)矢量的傳輸.
圖4 FPGA功耗攻擊平臺
選取攻擊DES算法的第1輪,并以6位子密鑰為一組進(jìn)行破解.按照CPA攻擊流程,利用式(1)計(jì)算出相關(guān)系數(shù),從而通過尋找相關(guān)系數(shù)的峰值來猜測正確的密鑰值.先對原始的DES算法進(jìn)行CPA攻擊,輸入20 000組明文,固定一組密鑰,示波器的采樣頻率為1 GHz.在一次加密過程中示波器采樣8 500個(gè)功耗點(diǎn),因此生成20 000×8 500的功耗矩陣T.以6位子密鑰為一組,逐組攻擊.以猜測首六位密鑰為例,猜測的子密鑰有26=64種可能,因此測量得到的功耗矩陣H為20 000×64.
將2個(gè)矩陣的功耗數(shù)據(jù)導(dǎo)入Matlab程序后,計(jì)算出相關(guān)系數(shù)并繪制出曲線.截取前4個(gè)周期的相關(guān)系數(shù)軌跡(見圖5(a)).由圖可見,當(dāng)猜測密鑰為43(即正確的子密鑰101011)時(shí),相關(guān)系數(shù)在第1 000個(gè)功耗點(diǎn)處(約第1輪加密結(jié)束時(shí)刻)出現(xiàn)明顯峰值,即首6位子密鑰攻擊成功.運(yùn)用同樣的方法攻擊剩余的42位密鑰,即對剩余的7個(gè)S盒進(jìn)行CPA攻擊,發(fā)現(xiàn)當(dāng)猜測子密鑰與真實(shí)子密鑰相同時(shí),相關(guān)系數(shù)仍出現(xiàn)峰值,因此可從相關(guān)系數(shù)中猜測出真實(shí)的密鑰值,故CPA攻擊成功.
圖5 CPA攻擊實(shí)驗(yàn)結(jié)果
用同樣的方法在FPGA功耗攻擊環(huán)境下,對本文提出的非對稱掩碼DES算法進(jìn)行功耗攻擊.攻擊樣本增加到1×105個(gè),相關(guān)系數(shù)軌跡如圖5(b)所示.可以看出,當(dāng)猜測密鑰為43時(shí),其繪制的相關(guān)系數(shù)湮沒于其他功耗跡中.然后運(yùn)用同樣的方法攻擊剩余的42位密鑰,即對剩余的7個(gè)S盒進(jìn)行CPA攻擊,發(fā)現(xiàn)當(dāng)猜測子密鑰與真實(shí)子密鑰相同時(shí),正確密鑰產(chǎn)生的相關(guān)系數(shù)軌跡仍無出現(xiàn)明顯峰值,故無法從功耗跡中推測出正確的密鑰.
對上述不同DES核的功耗攻擊實(shí)驗(yàn)結(jié)果進(jìn)行統(tǒng)計(jì)可以看出,由于引入了非對稱掩碼隨機(jī)數(shù),使得該方案的漢明距離被隨機(jī)數(shù)改變,即攻擊者利用漢明距離模型已無法表征出實(shí)際的功耗消耗.因此對CPA攻擊來說,即使猜測密鑰正確,相關(guān)系數(shù)也無法取得最大值,即使以增加5倍的攻擊樣本為代價(jià),非對稱掩碼DES核的密鑰仍無法由相關(guān)系數(shù)獲得.而且相比處理2個(gè)2×104行的功耗矩陣運(yùn)算,處理2個(gè)10×105行的矩陣運(yùn)算花費(fèi)的時(shí)間顯著增加.實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的非對稱掩碼DES核具有良好的抗CPA攻擊效果.
本文提出了一種基于非對稱掩碼的抗功耗攻擊方法,并在DES算法上應(yīng)用.經(jīng)電路設(shè)計(jì)和FPGA實(shí)現(xiàn),在硬件抗攻擊平臺上進(jìn)行了實(shí)驗(yàn).可以看出,對其進(jìn)行CPA攻擊時(shí),以消耗至少5倍多的樣本和計(jì)算時(shí)間為代價(jià),仍然無法獲取密鑰.可見本文設(shè)計(jì)的非對稱掩碼DES方案可以有效抵御CPA攻擊.
[1] Kelsey J,Schneier B,Wagner D,et al.Side channel cryptanalysis of product ciphers[J].Journal of Computer Security,2000,8(2/3):141-158.
[2] Kocher Paul,Jaffe Joshua,Jun Benjamin.Differential power analysis[C]//19th Annual International Cryptology Conference.California,USA,1999:388-397.
[3] Mangard Stefan,Oswald Elisabeth,Popp Thomas.Poweranalysisattacks[M]. Berlin, Germany:Springer Science,2007:178-183.
[4] Zafar Y,Park J,Har D,et al.Random clocking induced DPA attack immunity in FPGA[C]//IEEE InternationalConferenceonIndustrialTechnology.Gwangju Korea,2010:1068-1070.
[5] Kamoun N,Bossuet L,Ghazel A.Correlated power noise generator as a low cost dpa countermeasures to secure hardware AES cipher[C]//3rd InternationalConference on Signals Circuits and Systems.Tunis,Tunisia,2009:1-6.
[6] Guiley S,Sauvage L,Hoogvorst P,et al.Security evaluation ofWDDL and SecLib countermeasures against power attacks[J].IEEE Transactions on Computers,2008,57(11):1482-1497.
[7] Akkar M L,Goubin L.A generic protection against high-order differential power analysis[C]//10th InternationalWorkshoponFastSoftwareEncryption.Lund,Sweden,2003:192-205.
[8] Trichina E,Korkishko L.Secure and efficient AES software implementation for smart cards[C]//5th International Workshop on Information Security Applications.Jeju,Korea,2004:425-439.
[9] Yoshikawa M,Kojima Y.Efficient random number for the masking method against DPA attacks[C]//21st International Conference on Systems Engineering.Las Vegas,NV,USA,2011:321-324.
[10] Akkar M L,Giraud C.An implementation of DES and AES,secure against some attacks[C]//Third International Workshop on Cryptographic Hardware and Embedded Systems(CHES).Paris,F(xiàn)rance,2001:309-318.
A correlation power analysis resistant DES algorithm and its circuit implementation on FPGA
Li Jie Shan Weiwei Lü Yuxiang Sun Huafang
(National ASIC System Engineering Research Center,Southeast University,Nanjing 210096,China)
With the threat of differential power analysis(DPA,a type of side channel attack)to encryption devices,a new DPA countermeasure method is proposed and implemented on data encryption standard(DES)algorithm,using“asymmetric”mask technique which introduces asymmetrical random transformation to eliminate the relevance between power consumption and the key in order to resist DPA attack.Its hardware implementation was designed and realized on FPGA(field-programmable gate array).Then,a real power analysis attack FPGA platform is built to test the proposed DES as well as the unprotected DES respectively.The experiment results show that even when the power samples and analyzing time are nearly 5 times larger than the unprotected DES,our improved DES still cannot be attacked to gain the right key by Correlation Power Analysis.Therefore,the“asymmetric”mask technique is effective in resisting correlation power analysis.
differential power analysis;data encryption standard algorithm;mask technology;power analysis attack resistance;FPGA(field-programmable gate array)
TN47
A
1001-0505(2012)06-1063-06
10.3969/j.issn.1001 -0505.2012.06.008
2012-06-06.
李杰(1969—),男,博士,研究員;單偉偉(聯(lián)系人),女,博士,副教授,wwshan@seu.edu.cn.
國家自然科學(xué)基金資助項(xiàng)目(61006029)、江蘇省基礎(chǔ)研究計(jì)劃資助項(xiàng)目(BK2010165,BK2010167).
李杰,單偉偉,呂宇翔,等.一種抗相關(guān)功耗攻擊DES算法及FPGA電路實(shí)現(xiàn)[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2012,42(6):1063-1068.[doi:10.3969/j.issn.1001 -0505.2012.06.008]