譚銳能1,2,盧元元1,田椒陵1,2
(1. 深圳大學(xué)信息工程學(xué)院,廣東 深圳 518060;2. 國(guó)民技術(shù)股份有限公司,廣東 深圳 5180 57)
抗側(cè)信道攻擊的SM4多路徑乘法掩碼方法
譚銳能1,2,盧元元1,田椒陵1,2
(1. 深圳大學(xué)信息工程學(xué)院,廣東 深圳 518060;2. 國(guó)民技術(shù)股份有限公司,廣東 深圳 5180 57)
SM4是國(guó)內(nèi)于2006年公布的第1個(gè)商用的分組密碼算法。為提高SM4算法安全性,抵御功耗分析、電磁輻射等側(cè)信道攻擊,提出一種抗側(cè)信道攻擊的SM4多路徑乘法掩碼方法。該方法在輪函數(shù)中采用多條數(shù)據(jù)路徑,并對(duì)引進(jìn)隨機(jī)數(shù)后的S盒用有限域乘法求逆變換加以改進(jìn),使中間結(jié)果與標(biāo)準(zhǔn)SM4算法的中間結(jié)果完全不同,從而掩蓋SM4加密過程中的所有關(guān)鍵信息,增加側(cè)信道分析的難度。實(shí)驗(yàn)結(jié)果表明,與標(biāo)準(zhǔn)SM4算法和普通的SM4乘法掩碼算法相比,該方法在芯片的功耗和硬件資源增加不大的情況下,能有效消除中間數(shù)據(jù)所產(chǎn)生的能量消耗,增強(qiáng)算法安全性,可成功抵御各種側(cè)信道攻擊。
側(cè)信道攻擊;有限域求逆;乘法掩碼;SM4算法;多路徑掩碼方法
傳統(tǒng)密碼分析學(xué)認(rèn)為一個(gè)密碼算法在數(shù)學(xué)上安全就絕對(duì)安全,這一思想被Kelsey等學(xué)者在1998年提出的側(cè)信道攻擊(Side-channel Attacks, SCA)[1]理論所打破。側(cè)信道攻擊與傳統(tǒng)密碼分析不同,側(cè)信道攻擊利用功耗、電磁輻射等方式所泄露的能量信息與內(nèi)部運(yùn)算操作數(shù)之間的相關(guān)性,通過對(duì)所泄露的信息與已知輸入或輸出數(shù)據(jù)之間的關(guān)系作理論分析,選擇合適的攻擊方案,獲得與安全算法有關(guān)的關(guān)鍵信息。側(cè)信道攻擊的特點(diǎn)是代價(jià)小、效率高,已經(jīng)成為密碼分析領(lǐng)域常用的攻擊方式。
隨著側(cè)信道攻擊技術(shù)的發(fā)展,我國(guó)公布的第1個(gè)商用的分組密碼——SM4算法密碼[2],受到了嚴(yán)重的威脅。圍繞SM4密碼算法分析和防御的研究已經(jīng)成為國(guó)內(nèi)密碼算法研究的一個(gè)重點(diǎn)?;诖?,本文提出一種抗側(cè)信道攻擊的SM4多路徑乘法掩碼方法。
在密碼攻擊與防御的博弈中,防御各種不同類型側(cè)信道分析攻擊的技術(shù)也得到了相應(yīng)的發(fā)展[3-4]。針對(duì)已有的側(cè)信道攻擊技術(shù),可以采用各種策略盡可能地消除算法執(zhí)行過程中被處理中間數(shù)據(jù)與泄露能量、電磁輻射信息之間的對(duì)應(yīng)關(guān)系,達(dá)到抵御側(cè)信道攻擊的目的。目前主要的防護(hù)方法有[5-6]:(1)算法級(jí)的優(yōu)化,從算法實(shí)現(xiàn)的層次上,改寫或優(yōu)化加解密算法,使運(yùn)算過程中的操作次數(shù)和順序與密鑰無(wú)關(guān);(2)隨機(jī)掩碼技術(shù),利用隨機(jī)數(shù)對(duì)硬件的輸入和輸出數(shù)據(jù)進(jìn)行處理,由于隨機(jī)數(shù)參與密碼算法運(yùn)算,把與密鑰相關(guān)的數(shù)據(jù)進(jìn)行了掩蔽,攻擊者就難以從外部觀測(cè)到的功耗變化中分析出中間數(shù)據(jù);(3)功耗平衡技術(shù),從電路邏輯類型的選擇和設(shè)計(jì)上,改進(jìn)邏輯和算術(shù)運(yùn)算電路的實(shí)現(xiàn)方法,降低邏輯門和觸發(fā)器的狀態(tài)翻轉(zhuǎn)情況與密鑰的相關(guān)性,使電路在各種密鑰和數(shù)據(jù)的情況下,系統(tǒng)的總功耗沒有顯著的區(qū)別。
在上述的側(cè)信道分析攻擊防護(hù)方法中,使用隨機(jī)數(shù)作為掩碼來(lái)掩蔽運(yùn)算過程中操作數(shù)的方法成為加密算法抵御側(cè)信道攻擊的常用和有效方法。掩碼技術(shù)的基本思想[7]是破壞算法執(zhí)行過程的中間數(shù)據(jù)與泄露信息之間的對(duì)應(yīng)關(guān)系,使得中間數(shù)據(jù)的值與一個(gè)無(wú)法確定的隨機(jī)數(shù)掩碼有關(guān),不再完全依賴于密鑰的某個(gè)子序列,掩碼的隨機(jī)性消除中間數(shù)據(jù)所產(chǎn)生的能量消耗特征與明文和密鑰之間的相關(guān)性。掩碼運(yùn)算有乘法掩碼[8]、隨機(jī)掩碼[9]、固定值掩碼[10]等。
文獻(xiàn)[11]提出掩碼方法,它給出一個(gè)能抵御側(cè)信道攻擊的掩碼模型,通過對(duì)中間數(shù)據(jù)進(jìn)行掩蓋使差分功耗分析變得難以進(jìn)行,運(yùn)用該模型使DPA(Differential Power Analysis)的區(qū)分函數(shù)對(duì)功耗曲線的劃分“出錯(cuò)”,從而使差分后的結(jié)果無(wú)法正確顯示出高的相關(guān)優(yōu)度[12]。文獻(xiàn)[13]將掩碼技術(shù)應(yīng)用于DES(Data Encryption Standard)加密算法,設(shè)計(jì)了一種能抵御功耗攻擊的安全DES算法,采用隨機(jī)數(shù)對(duì)中間數(shù)據(jù)進(jìn)行掩蓋,并在查詢S盒存儲(chǔ)單元之前進(jìn)行求逆運(yùn)算,還原了輸入數(shù)據(jù),最終取得了良好的抗攻擊效果。研究表明,分組密碼加密運(yùn)算中每一輪都會(huì)受到側(cè)信道的威脅[14],而掩碼技術(shù)的實(shí)現(xiàn)往往需要十分大的硬件實(shí)現(xiàn)代價(jià),所以如何在實(shí)現(xiàn)代價(jià)、處理速度和安全性之間進(jìn)行權(quán)衡是掩碼方案設(shè)計(jì)必須考慮的因素。
文獻(xiàn)[15]將隨機(jī)掩碼用于抗DPA攻擊,但是每輪次必須重新生成一個(gè)隨機(jī)數(shù)掩碼因子,同時(shí)每輪必須根據(jù)隨機(jī)掩碼因子計(jì)算新的S盒,增加了實(shí)現(xiàn)的代價(jià),不利于硬件實(shí)現(xiàn)。掩蓋S盒需要重構(gòu)出偽S 盒并在查表后進(jìn)行校正,由于查表為非線性操作, 往往需要消耗大量的存儲(chǔ)空間。在針對(duì)AES(Advanced Encryption Standard)算法的功耗分析的防護(hù)研究中,為了解決這個(gè)問題,文獻(xiàn)[16-17]分別提出了AES算法的乘法掩碼改進(jìn)方案,這2個(gè)方案均易于硬件實(shí)現(xiàn)。由于AES的線性運(yùn)算環(huán)節(jié)的掩蔽和恢復(fù)都比較簡(jiǎn)單,因此方案的重點(diǎn)在于非線性單元的掩蔽和恢復(fù),上述2種方案把邏輯掩碼轉(zhuǎn)換為乘法掩碼,并對(duì)S盒上的乘法求逆運(yùn)算進(jìn)行了隨機(jī)掩碼,但是文獻(xiàn)[18]認(rèn)為,由于基于有限域乘法的掩碼無(wú)法對(duì)全“0”字節(jié)進(jìn)行擾亂,易受零值攻擊,因此該方法仍存在漏洞。文獻(xiàn)[19]針對(duì)SM4算法提出了SM4的乘法掩碼方案,該方案易于硬件實(shí)現(xiàn),但掩碼只局限于明文,對(duì)密鑰沒有采取相關(guān)的防御措施,同時(shí)也易受零值攻擊,算法安全性不強(qiáng)。文獻(xiàn)[20]提出了抵御側(cè)信道分析的AES雙路徑掩碼方法,因?yàn)椴捎秒p路徑掩碼,能有效抵御零值攻擊,安全性有了很大的提高,但是掩碼操作只限于輪函數(shù),沒有對(duì)整個(gè)加密過程進(jìn)行掩碼。
本文在文獻(xiàn)[19-20]的基礎(chǔ)上,提出一種SM4的多路徑乘法掩碼方法。該方法在乘法掩碼的基礎(chǔ)上,在輪函數(shù)中采用多條數(shù)據(jù)路徑并同時(shí)對(duì)密鑰進(jìn)行掩碼,從而實(shí)現(xiàn)SM4加解密過程所有關(guān)鍵信息的全部掩蓋。本文給出該掩碼方案的實(shí)現(xiàn)步驟,對(duì)該方案進(jìn)行了芯片設(shè)計(jì)并作了對(duì)比實(shí)驗(yàn)。
SM4算法是一種類似于AES算法,分組長(zhǎng)度與密鑰長(zhǎng)度均為128 bit的對(duì)稱密碼算法,其加密算法與密鑰擴(kuò)展算法都采用32輪非線性迭代結(jié)構(gòu),解密與加密結(jié)構(gòu)相同,只是輪密鑰的使用順序相反。輪函數(shù)運(yùn)算主要由32 bit異或運(yùn)算、S盒查表操作以及32 bit循環(huán)左移等構(gòu)成[2]。
3.1 加解密算法設(shè)明文輸入為:
其中,F(xiàn)為輪函數(shù);T為合成置換;R為反序變換;Xi, Xi+1, Xi+2,Xi+3為第i輪輪函數(shù)輸入;Xi+4為第i輪輪函數(shù)輸出。
合成置換T是字(32 b it)到字的可逆變換,由非線性變換τ和線性變換L復(fù)合而成,即T(·)=L[τ(·)]。
非線性變換τ由4個(gè)并行的S盒構(gòu)成,每個(gè)S盒為固定的8 bit置換,記為Sbox(·)。設(shè)τ的輸入和輸出分別為A= (a0, a1, a2, a3),B=(b0,b1,b2,b3),(ai∈GF(28),bi∈GF (28), i=0,1,2,3),則有:
非線性變換τ的輸出是線性變換L的輸入。設(shè)L的輸入為B∈GF(232),輸出為C∈GF(232),則:
其中,B<<<i表示將B循環(huán)左移i位。SM4的解密變換與加密變換結(jié)構(gòu)相同,不同的僅是輪密鑰的使用順序。
3.2 密鑰擴(kuò)展算法
SM4加密算法的輪密鑰由加密密鑰通過密鑰擴(kuò)展算法得到,密鑰擴(kuò)展算法與加/解密算法的結(jié)構(gòu)基本相同,經(jīng)過32輪迭代運(yùn)算生成32個(gè)子密鑰。主要不同點(diǎn)在密鑰擴(kuò)展的T變換中,將線性變換L修改為L(zhǎng)′,這里L(fēng)′( B)=B⊕(B <<<13)⊕(B <<<23)。
3.3 基于有限域求逆構(gòu)造S盒的方法
基于有限域求逆運(yùn)算來(lái)構(gòu)造S盒的方法是由文獻(xiàn)[21]提出,目的是為了節(jié)約內(nèi)存,不用存儲(chǔ)256 B yte的S盒。該方法在每輪運(yùn)算中,通過2次相同的仿射變換和一次GF(28)上的乘法求逆變換求出相應(yīng)S盒的對(duì)應(yīng)值,其運(yùn)算結(jié)構(gòu)如圖1所示[22]。
圖1 基于有限域求逆構(gòu)造S盒的運(yùn)算結(jié)構(gòu)
在圖1中,ai和bi分別表示τ變換的第i個(gè)S盒的輸入和輸出字節(jié)(i=0,1,2,3),仿射變換通過循環(huán)矩陣A和行向量C進(jìn)行,A是8×8 bit方陣,C是8 bit行向量,它們均是系統(tǒng)參數(shù)。A和C的具體定義以及仿射函數(shù)和求逆函數(shù)的定義在文獻(xiàn)[19-22]中有詳細(xì)介紹,限于篇幅,本文不再贅述。解密過程的S盒變換和加密過程相同,只是仿射變換變成仿射逆變換。
4.1 SM 4乘法掩碼方法
在各種抗側(cè)信道分析的方法中,使用隨機(jī)數(shù)來(lái)掩蓋加密運(yùn)算過程中關(guān)鍵信息的方法得到了廣泛的應(yīng)用。文獻(xiàn)[19]中方案的主要思想是在輸入數(shù)據(jù)之前,用隨機(jī)掩碼因子進(jìn)行掩蔽,在運(yùn)算到最終結(jié)果時(shí)再把隨機(jī)掩碼因子移除,從而恢復(fù)正確的結(jié)果。在每輪運(yùn)算過程中,線性環(huán)節(jié)可以通過簡(jiǎn)單的異或等運(yùn)算進(jìn)行掩蓋和恢復(fù),因此掩碼算法的重點(diǎn)在于非線性環(huán)節(jié)的掩蓋與恢復(fù)。在SM4算法的加密過程中,S盒是唯一的非線性的單元。該方案對(duì)圖1所示求逆構(gòu)造S盒的運(yùn)算過程進(jìn)行了掩碼處理,掩碼后的S盒運(yùn)算如圖2所示。圖2中Mi是隨機(jī)掩碼因子M的一個(gè)字節(jié),M1i是Mi經(jīng)過仿射變換后的值,M2i是M1i經(jīng)過仿射變換后的值。
圖2 引入掩碼的S盒運(yùn)算過程
該方案介紹了去掩碼的方法。設(shè)掩碼后輪函數(shù)的輸出為Xi′′+4,則有:
即掩碼后輪函數(shù)輸出再與L(MAA)做一個(gè)異或運(yùn)算,所得輸出Xi′+4恢復(fù)為無(wú)掩碼輪函數(shù)輸出Xi+4與隨機(jī)數(shù)M的異或結(jié)果。這樣經(jīng)過32輪帶掩碼的加密運(yùn)算后,所得結(jié)果是原密文與隨機(jī)數(shù)M的異或,只需將這一結(jié)果再與M異或,即可去掉掩碼,得到正確的密文。
該SM4掩碼方案運(yùn)用有限域乘法求逆的算法計(jì)算S盒,因此,稱為乘法掩碼方案,其優(yōu)點(diǎn)在于輪函數(shù)的輸入、輸出及所有的中間結(jié)果都被有效掩蓋,并且易于硬件實(shí)現(xiàn)。該方案重點(diǎn)在于對(duì)明文的掩碼,缺少對(duì)密鑰掩碼的措施,并且具有易受零值攻擊的弱點(diǎn)。分析者只要對(duì)密鑰擴(kuò)展進(jìn)行側(cè)信道分析,就有可能獲取正確的輪密鑰。
4.2 雙路徑的隨機(jī)掩碼方法
傳統(tǒng)算法的輪函數(shù)只涉及到一條數(shù)據(jù)路徑,安全性不強(qiáng),文獻(xiàn)[20]針對(duì)AES提出一種抵御側(cè)信道分析的雙路徑掩碼方法,在輪函數(shù)中開辟2條數(shù)據(jù)路徑,增加了掩碼強(qiáng)度,使安全性得到提高。掩碼方案主要針對(duì)明文加密算法的整個(gè)過程,密鑰擴(kuò)展則仍與常規(guī)算法相同。雙路徑掩碼方案的主要步驟為:
(1)用隨機(jī)數(shù)函數(shù)產(chǎn)生一個(gè)32 bit隨機(jī)數(shù)r。
(2)采用隨機(jī)數(shù)r對(duì)S盒進(jìn)行掩蓋。設(shè)S盒的輸入和輸出分別為X、Y,查表有Y=S( X),根據(jù)同樣的輸入X和輸出Y,令Y=S′( X⊕r),得到掩蓋后的S′盒。
(3)再隨機(jī)產(chǎn)生一個(gè)16×16 bi t的矩陣作為S1′盒,針對(duì)步驟2中得出的S′盒,計(jì)算S2′=S′⊕S1′,即將2個(gè)S盒的所有元素相異或,得出新的S2′盒。由于Y=S′( X⊕r)= S1′⊕S2′(X⊕r ),根據(jù)異或運(yùn)算規(guī)則和S盒查表方法,可推得:
式(6)中用到了2個(gè)S盒,因此開辟了2條數(shù)據(jù)路徑。由于該方案同時(shí)引入了隨機(jī)數(shù)和隨機(jī)S盒,且有2條數(shù)據(jù)路徑,因此對(duì)輪函數(shù)內(nèi)的關(guān)鍵信息進(jìn)行了有效的掩蓋。但由于缺少對(duì)輪輸出結(jié)果的保護(hù)措施,而且輪密鑰也沒有得到保護(hù),因此算法存在漏洞。
4.3 SM4的多路徑乘法掩碼方法
雙路徑法引入隨機(jī)數(shù)和隨機(jī)S盒進(jìn)行雙路徑掩碼,對(duì)輪函數(shù)內(nèi)的信息掩碼效果強(qiáng),遺憾的是對(duì)輪輸出沒有掩碼。考慮到乘法掩碼法可以掩蓋輪函數(shù)的輸入、輸出及所有中間結(jié)果,如果將雙路徑法和乘法掩碼法綜合應(yīng)用,則可發(fā)揮兩者的長(zhǎng)處,既利用多路徑增強(qiáng)掩碼的效果,又掩蓋了所有的信息。基于這一考慮,本文提出SM4的多路徑乘法掩碼方法。本方法在SM4乘法掩碼的基礎(chǔ)上,借鑒文獻(xiàn)[20] 的AES雙路徑掩碼思路,實(shí)現(xiàn)SM4的多路徑乘法掩碼操作。除此之外,本文方案還對(duì)密鑰擴(kuò)展進(jìn)行相應(yīng)的掩碼操作,克服了文獻(xiàn)[19-20]未對(duì)輪密鑰加以保護(hù)的缺點(diǎn),實(shí)現(xiàn)了加解密過程中所有關(guān)鍵信息的全部掩蓋,同時(shí)開辟了多條數(shù)據(jù)路徑,增加了算法的安全性。
本文方案的關(guān)鍵在于如何綜合乘法掩碼和多路徑掩碼2種方法來(lái)構(gòu)造τ變換。由乘法掩碼的思想可知,引進(jìn)一個(gè)隨機(jī)數(shù)M時(shí),S盒的運(yùn)算轉(zhuǎn)化為帶掩碼的運(yùn)算,相當(dāng)于τ變換作出了改變,將改變后的τ變換記為Mτ,其中,S盒記為SM盒。Mτ包括4個(gè)SM盒變換,SM盒與原S盒同樣是16×16 bit,可以根據(jù)原S盒和隨機(jī)數(shù)M確定SM盒的所有值。當(dāng)SM盒確定后,即可進(jìn)行多路徑的處理。
在多路徑操作中,將另一個(gè)隨機(jī)數(shù)N與輪函數(shù)的輸入異或,實(shí)現(xiàn)對(duì)SM盒的再一次掩蓋。令rki′=rki⊕N,由式(1)可知,只需將掩碼后的輪密鑰rki′取代原來(lái)的輪密鑰rki,就實(shí)現(xiàn)了輪函數(shù)的輸入與N的異或運(yùn)算。本文方案中對(duì)密鑰擴(kuò)展用隨機(jī)數(shù)N進(jìn)行乘法掩碼,掩碼后擴(kuò)展輪函數(shù)的輸出(即輪密鑰)是原輪密鑰與N異或的結(jié)果,也就是rki′。
對(duì)SM4中的SM盒查表,其輸入X和輸出Y全部滿足Y=SM(X),根據(jù)同樣的輸入X和輸出Y,令Y= SM′(X⊕N),可得到用隨機(jī)數(shù)N掩蓋后的SM′,再隨機(jī)產(chǎn)生一個(gè)16×16 bit的矩陣作為S1′盒,計(jì)算SM′2=SM′ ⊕S1′,求出新的SM′2盒,由式(6)可知:
式(7)中有2個(gè)S盒,即雙通道的τ變換。至此,實(shí)現(xiàn)了加密過程的雙重掩碼,即乘法掩碼后的雙路徑掩碼。按這一思路,如果產(chǎn)生更多的隨機(jī)S盒,則可實(shí)現(xiàn)更多路徑的乘法掩碼。由于單純的多路徑掩碼的輸出是不含掩碼因子的,因此SM4多路徑乘法掩碼方案中的去掩碼過程只需針對(duì)乘法掩碼進(jìn)行,SM4乘法掩碼方案中的去掩碼方法已在4.1節(jié)中做過介紹。
SM4多路徑乘法掩碼方案的詳細(xì)步驟如下:
(1)產(chǎn)生2個(gè)不同的32 bit隨機(jī)數(shù)M、N。
(2)初始密鑰掩碼。
將用戶輸入的128 bit初始密鑰(MK0, MK1, MK2, MK3)與系統(tǒng)定義的參數(shù)異或,得(K0, K1, K2, K3),再分別與N異或,得到(K0′,K1′,K2′,K3′)。
(3)密鑰擴(kuò)展掩碼。
本文方案中密鑰擴(kuò)展算法采用乘法掩碼,掩碼隨機(jī)數(shù)為。SM4的密鑰擴(kuò)展算法與加密算法類同,都可由式(1)表示。由式(1)和乘法掩碼算法得到SM4密鑰擴(kuò)展輪函數(shù)的流程如圖3所示。
圖3 密鑰擴(kuò)展掩碼的輪函數(shù)
其中,τN為引入隨機(jī)數(shù)N的τ變換(4個(gè)S盒的變換),(Ki′,Ki+1′,Ki+2′,Ki +3′)為輪密鑰擴(kuò)展的輸入,Ki′+4為輪密鑰擴(kuò)展的輸出。圖3中最后一個(gè)步驟是與L(NAA)的異或運(yùn)算,這是乘法掩碼方法去掩碼的重要步驟,最終有Ki′+4= Ki +4⊕N 。由于輪密鑰擴(kuò)展函數(shù)的輸出就是明文加密算法中的輪密鑰,即rki′=Ki′+4,因此有rki′=rki⊕N ??梢姡捎贸朔ㄑ诖a不僅使密鑰擴(kuò)展函數(shù)得到掩蓋,還使得每輪輸出的密鑰都與隨機(jī)數(shù)N有關(guān)。異或運(yùn)算滿足交換律,圖3中的最后2個(gè)異或運(yùn)算交換順序也是可以的,這里把L(NAA)的異或運(yùn)算放在最后,是為了保證所有的中間數(shù)據(jù)都被有效掩蓋,其中,A為系統(tǒng)參數(shù)。
(4)明文掩碼。
將輸入的128 bit明文(X0, X1, X2, X3)分別與32 bit隨機(jī)數(shù)M異或,得到(X0′, X1′, X2′, X3′)。
(5)多路徑輪函數(shù)掩碼(以雙路徑為例)。
明文加密的輪函數(shù)掩碼采用雙路徑乘法掩碼,用到2個(gè)隨機(jī)數(shù)M、N和一個(gè)隨機(jī)S盒S1′。由式(1)和式(7)可得輪函數(shù)掩碼的流程如圖4所示,其中,τ1′代表4個(gè)并行的S1′盒,τM′2代表4個(gè)并行的SM′2盒。τ 變換后再做L變換,由于L是線性變換,由其定義式(4)可知,有L( B1⊕B2)= L( B1)⊕L( B2),即可將式(7)中S1′盒、SM′2盒變換(即τ1′和τM′2變換)的結(jié)果分別做L變換,再來(lái)異或。圖4分成2條數(shù)據(jù)路徑進(jìn)行τ變換和L變換,將L變換后的兩路數(shù)據(jù)進(jìn)行異或運(yùn)算。最后與L(MAA)相異或,即可恢復(fù)出只帶一個(gè)隨機(jī)數(shù)的輪加密結(jié)果為(Xi+4′=Xi+4⊕M )。電路實(shí)現(xiàn)時(shí),將這個(gè)與L(MAA)相異或的運(yùn)算放在最后,可保證所有的中間數(shù)據(jù)都有效掩蓋,不會(huì)在系統(tǒng)中存在側(cè)信道攻擊的漏洞。
圖4 S M4雙路徑乘法掩碼的輪函數(shù)去掩碼
經(jīng)過32輪運(yùn)算后,有:
最后通過異或運(yùn)算可以恢復(fù)正確的密文,即:
側(cè)信道攻擊關(guān)鍵是利用所泄露的能量信息與內(nèi)部運(yùn)算操作數(shù)之間的相關(guān)性,通過理論分析,獲得與安全算法有關(guān)的關(guān)鍵信息。而本文方案對(duì)原算法進(jìn)行了多方面的安全防御工作,各關(guān)鍵攻擊點(diǎn)的中間結(jié)果均被隨機(jī)掩碼,隨機(jī)量服從均勻分布且具有獨(dú)立性。對(duì)輸入明文和密鑰進(jìn)行隨機(jī)掩碼,在32輪運(yùn)算后才進(jìn)行去掩碼的操作,確保中間數(shù)據(jù)不僅僅與密鑰相關(guān),而且還與未知的隨機(jī)數(shù)有關(guān)。在密鑰擴(kuò)展中引入掩碼操作,增大了對(duì)密鑰擴(kuò)展過程進(jìn)行側(cè)信道攻擊難度,從而使攻擊者不能從密鑰擴(kuò)展中直接獲取密鑰。S盒是SM4算法中唯一一個(gè)非線性的運(yùn)算,功耗消耗最大,同時(shí)也是最易遭受攻擊的點(diǎn)。本文引入了多路徑的乘法掩碼方法,S盒的查表運(yùn)算轉(zhuǎn)換為帶掩碼的運(yùn)算,同時(shí)由于多路徑掩碼方法的引入,由原來(lái)的一路掩碼變?yōu)槎嗦费诖a不僅增加了側(cè)信道攻擊的難度,而且克服了基于有限域乘法的掩碼無(wú)法對(duì)全“0”字節(jié)進(jìn)行擾亂的缺點(diǎn)。
通過分析可以得出,在整個(gè)加密過程中的中間數(shù)據(jù)都被有效的掩蓋,不會(huì)發(fā)生保密信息通過功耗泄露出去的情況,能抵御多種側(cè)信道攻擊。
本文作者對(duì)多路徑的SM4乘法掩碼算法進(jìn)行了VLSI設(shè)計(jì),考慮到該方案中的多條數(shù)據(jù)路徑涉及到相同的L變換,可以對(duì)L變換進(jìn)行復(fù)用,采用時(shí)序折疊方式將一路運(yùn)算結(jié)果先暫存起來(lái),再進(jìn)行另一路的計(jì)算,這樣延長(zhǎng)了算法運(yùn)算時(shí)間,但可以減少硬件的實(shí)現(xiàn)代價(jià)。
在SMIC 0.18 μm COMS工藝下,分別完成了標(biāo)準(zhǔn)SM4算法、普通版SM4乘法掩碼算法和本文提出的SM4多路徑乘法掩碼算法電路模塊的RTL代碼設(shè)計(jì),在相同的條件下進(jìn)行了邏輯綜合和布局布線,得到3個(gè)電路網(wǎng)表E1,E2 和E3。驗(yàn)證分析平臺(tái)是采用荷蘭Riscure公司開發(fā)的Inspector4.2側(cè)信道分析平臺(tái),對(duì)3種方案的FPGA實(shí)現(xiàn)進(jìn)行分析。實(shí)驗(yàn)抓取加密時(shí)的電路電流軌跡進(jìn)行采樣,因?yàn)殡娫措妷簽楹愣ㄖ?,因此電路的功耗軌跡可以用電流軌跡表示,兩者在功耗分析上是等價(jià)的。令加密密鑰為MK= (0x01234567,0x89abcdef,0xfedcba98,0x76543210),共進(jìn)行了20萬(wàn)組隨機(jī)明文仿真測(cè)試,記錄相應(yīng)的密文和電流軌跡。電流軌跡采樣后,用Inspector4.2側(cè)信道分析平臺(tái)進(jìn)行差分功耗分析測(cè)試。因?yàn)镾盒是SM4算法電路中功率消耗最大,也是最容易遭受攻擊的點(diǎn),所以對(duì)上述3種SM4密碼算法電路第1輪的S盒輸出進(jìn)行DPA攻擊。對(duì)第1輪S盒輸出的前4個(gè)字節(jié)進(jìn)行相關(guān)性分析,分析結(jié)果如圖5~圖7所示,圖中曲線為相關(guān)性曲線,每個(gè)字節(jié)用一條曲線表示,如果相關(guān)性曲線中出現(xiàn)明顯的尖峰,說明該部分運(yùn)算有明顯信息泄露,攻擊者以此為攻擊點(diǎn)則可能猜測(cè)出該輪的子秘鑰。
圖5 標(biāo)準(zhǔn)版SM4相關(guān)性分析結(jié)果
圖6 普通版SM4乘法掩碼相關(guān)性分析結(jié)果
圖7 本文的掩碼方案相關(guān)性分析結(jié)果
從圖5可以看出,標(biāo)準(zhǔn)版SM4算法的S盒輸出部分相關(guān)性明顯,有凸起的尖峰,采集2 0 00組加解密曲線進(jìn)行DPA分析,就能推導(dǎo)出完整的初始密鑰。從圖6可以看出,加入乘法掩碼后的SM4算法,S盒輸出部分相關(guān)性明顯降低,但仍有細(xì)微的尖峰出現(xiàn),仍存在DPA攻擊的隱患,采集20 000組加解密曲線進(jìn)行DPA分析,就能推導(dǎo)出完整的初始密鑰。從圖7可以看出,S盒輸出部分沒有明顯的尖峰,采集20 0000組加解密曲線進(jìn)行DPA分析,不能獲取任何有意義的信息。實(shí)驗(yàn)結(jié)果證明了本文的SM4掩碼方案能有效地抵御側(cè)信道攻擊。
上述3個(gè)電路模塊的性能指標(biāo)對(duì)比如表1所示。在相同的頻率下,本文算法實(shí)現(xiàn)面積比普通SM4乘法掩碼算法增加20%,但抵御側(cè)信道分析能力大大增強(qiáng)。對(duì)于安全等級(jí)要求高的安全密碼芯片來(lái)說,安全性比實(shí)現(xiàn)代價(jià)更重要。
表1 3種算法實(shí)現(xiàn)電路的性能比較
隨著側(cè)信道分析技術(shù)的發(fā)展,SM4算法的安全性受到了嚴(yán)重的考驗(yàn),因此,對(duì)抗側(cè)信道分析的SM4算法進(jìn)行研究有著非常重要的意義。本文在研究已有的SM4掩碼技術(shù)的基礎(chǔ)上,提出一種多路徑的SM4乘法掩碼方案。該方案綜合乘法掩碼和多路徑掩碼的優(yōu)點(diǎn),且進(jìn)行了密鑰擴(kuò)展的掩碼操作,使加解密過程中的所有關(guān)鍵數(shù)據(jù)都被掩蓋,數(shù)據(jù)與操作的相關(guān)性被消除,能有效抵御側(cè)信道攻擊。實(shí)驗(yàn)測(cè)試結(jié)果表明,該方案硬件實(shí)現(xiàn)代價(jià)較低,適合于加密芯片軟硬件實(shí)現(xiàn),具有良好的掩碼效果。
[1] Kelsey J, Schneier B, Wangner D. Side Channel Cryptanalysis of Product Ciphers[C]//Proc. of the 5th European Symposium on Research in Computer Security. Louvain-la-Neuve, Belgium: [s. n.], 1998: 97-110.
[2] 國(guó)家商用密碼管理局. GM/T 0002-2012 SM4分組密碼算法[S]. 2012.
[3] 鄭新建, 張翌維, 沈緒榜. SPA和DPA攻擊與防御技術(shù)新進(jìn)展[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2009, 30(4): 726-731.
[4] 李 浪, 李仁發(fā), Sha E H M. 安全SoC抗功耗攻擊研究綜述[J]. 計(jì)算機(jī)科學(xué), 2009, 36(6): 16-18.
[5] 白雪飛. 抗功耗分析攻擊的SMS4密碼算法VLSI設(shè)計(jì)技術(shù)研究[D]. 合肥: 中國(guó)科學(xué)技術(shù)大學(xué), 2008.
[6] 李 浪, 李仁發(fā). PFM: 一種抗高階功耗的SMS4算法[J].通信學(xué)報(bào), 2010, 31(5): 87-92.
[7] 沈 薇. SMS4算法的能量分析攻擊及其防御研究[D]. 西安:西安電子科技大學(xué), 2009.
[8] Jovan D, Goh C. Christophe T ymen Multi-phcatrvc Masking and Power Analysis of AES[C]//Proc. of the 4th International Workshop on Cryptographic Hardware and Embedde d Systems. Redwood City, USA: [s. n.], 2002: 102-108.
[9] Messer ges T S. Securing the AES Finalists A gainst Power Analysis Attacks[C]//Proc. of the 7th International Workshop on Fast Software Encryption. New York, USA: Springer, 2000: 355-361.
[10] Chang H, Kim K. Securing AES Against Second-order DPA by Simple Fixed-value Masking[C]//Proc. of CSS’03. Kitakyushu, Japan: [s. n.], 2003: 145-150.
[11] Chari S, Jutla C, Ra o J R, et al. A Cautionary Note Regarding Evaluation of AES Candidates on Smartcards[C]//Proc. of the 2nd AES Candidate Conference. Rome, Italy: [s. n.], 1999: 250-258.
[12] Pramstaller N, Guerkaynak F K, Haene S. Tow Ards an AES Cryp To-chip Resistant to Differential Power Analysis[C]//Proc. of the 30th European Solid-state Circuits Conference. Leuven, Belgium: [s. n.], 2004: 260-267.
[13] 蔣惠萍, 毛志剛. 一種抗差分功耗攻擊的改進(jìn)DES算法及其硬件實(shí)現(xiàn)[J]. 計(jì)算機(jī)學(xué)報(bào), 2004, 27(3): 334-338.
[14] Fahn P N, Pearson P K. IP A: A Ne w Class of Po wer Attacks[C]//Proc. of the 1st International W orkshop on Cryptographic Hardware and Embedded Systems. Worchester, USA: Springer, 1999: 118-123.
[15] Messer ges T. Sec uring the AE S Finalists Against Power Analysis Attacks[C]//Proc. of the 7th International Workshop on Fast Software Encryption. New York, USA: Springer, 2000: 266-275.
[16] Mehdi L A, Christophe G: An Implementation of DES and AES, Secure ag ainst Some Attacks[C]//Proc. o f the 3rd International W orkshop on Cr yptographic Hardware and Embedded Systems. Paris, France: Springer, 2001: 666-670.
[17] Elena T, Domenico D S, Lucia G. Simplified A daptive Multiplicative Masking for AES[C]//Proc. of the 4th International W orkshop on Cr yptographic Hardware and Embedded Syste ms. Redwood City, US A: [s. n.], 2002: 321-328.
[18] Golic J, Tymen C. Multiplicative Masking and Power Analysis of AES[C]//Proc. of the 4th International W orkshop on Cryptographic Hardware and Embedded Systems. Redwood City, USA: [s. n.], 2002: 156-162.
[19] 徐艷華. 抗攻擊的SMS4密碼算法集成電路設(shè)計(jì)研究[D].合肥: 中國(guó)科學(xué)技術(shù)大學(xué), 2009.
[20] 張翌維, 龔冰冰, 劉列恩, 等. 抵御側(cè)信道分析的AES雙路徑掩碼方法[J]. 計(jì)算機(jī)工程, 2012, 38(13): 108-111.
[21] Liu F en, Ji Wen, Hu Lei, et al. Analysis of t he SMS4 Block Cipher[C]//Proc. of Australasian Conference on I nformation Security and Priv acy. Berlin, Germany: Springer, 2007: 321-326.
[22] 徐艷華, 白雪飛, 郭 立. 適合SMS4算法硬件實(shí)現(xiàn)的S盒構(gòu)造新方法[J]. 中國(guó)科學(xué)技術(shù)大學(xué)學(xué)報(bào), 2 009, 39(11): 1165-1170.
編輯 索書志
SM4 Multi-path Multiplicative Masking Method Against Side-channel Attack
TAN Rui-neng1,2, LU Yuan-yuan1, TIAN Jiao-ling1,2
(1. College of Information Engineering, Shenzhen University, Shenzhen 518060, China; 2. Nationz Technologies Co., Ltd., Shenzhen 518057, China)
SM4 is the first bloc cipher published in the year of 2006 by the government of China. In order to resist Side-channel Attack (SCA) such as power analysis and electromagnetic radiation, a multi-path multiplicative masking method is proposed for SM4 algorithm to improve the security of SM4 algorithm. Through multi data paths, and transform S box by multiplicative inversion in the finite fie ld when the random number is joined, which makes all intermediate variables among the proposed SM4 scheme different from that of the standard method. It not only realizes the cover of all the key information in encryption process, but also enhances the difficulties of SCA. Through compared with the traditional algorithm and the existing schemes, the experim ental results show that the mask scheme can weaken the correlation between the energy consumption characteristics and the operating of the intermediate data effectively without increasing much power and hardware resources. Thus the proposed method bears all kinds of side-channel attacks and the security of the new SM4 is improved.
Side-channel Attack(SCA); finite field inverse; multiplicative masking; SM4 algorithm; multi-path masking method
10.3969/j.issn.1000-3428.2014.05.022
國(guó)家自然科學(xué)基金資助面上項(xiàng)目(61070252)。
譚銳能(1988-),男,碩士研究生,主研方向:網(wǎng)絡(luò)信息安全;盧元元,教授;田椒陵,碩士研究生。
2013-03-29
2013-05-29E-mail:tanruineng@126.com
1000-3428(2014)05-0103-06
A
TP309