摘 要: "側(cè)信道分析已嚴(yán)重威脅到密碼算法應(yīng)用安全,為提高SM4算法抵御側(cè)信道分析的能力,提出一種門限掩碼方案。首先,完成對SM4算法S盒的復(fù)合域分解;其次,基于二共享設(shè)計門限掩碼方案,使用隨機(jī)數(shù)將S盒輸入進(jìn)行二共享拆分,通過復(fù)合域運(yùn)算和S盒門限掩碼進(jìn)行電路重構(gòu),并基于S盒復(fù)用降低硬件開銷;最后進(jìn)行線性層操作后將兩個輸出結(jié)果通過異或完成去掩碼操作。對SM4算法門限掩碼方案的FPGA實現(xiàn)仿真結(jié)果和安全性測試結(jié)果表明,本掩碼方案能夠有效抵抗CPA攻擊,實現(xiàn)面積相對較低。
關(guān)鍵詞: "SM4; 門限掩碼; 復(fù)合域; S盒; 現(xiàn)場可編程門陣列
中圖分類號: "TP309.2 """文獻(xiàn)標(biāo)志碼: A
文章編號: "1001-3695(2022)02-043-0572-05
doi:10.19734/j.issn.1001-3695.2021.08.0302
Design and implementation of threshold masking schema on SM4 algorithm
Wu Xiaonian, Li Jinlin, Pan Sheng, Li Junbang, Zhang Runlian
(Guangxi Key Laboratory of Cryptography amp; Information Security, Guilin University of Electronic Technology, Guilin Guangxi 541004, China)
Abstract: "Side channel analysis has seriously threatened the application security of cryptographic algorithms.In order to improve the ability of SM4 algorithm to resist side channel analysis,this paper proposed a threshold masking scheme for SM4 algorithm.Firstly,it decomposed the S-box of SM4 algorithm.Then this paper designed the threshold masking method based on two sharing pattern for SM4.According to the method,the schema split the S-box input into two shares by using random number,and rebuilt the circuit by composite field operation and the S-box threshold masking,and reduced the hardware cost by reusing S-boxes.After the linear layer operation,the schema carried out unmasked operation by XOR the two output results.The simulation results and security test results of FPGA implementation for SM4 threshold masking schema show that the mas-king scheme can effectively resist CPA attack,and its implementation area is lower.
Key words: nbsp;SM4; threshold masking; composite field; S-box; FPGA
0 引言
側(cè)信道分析(side-channel analysis,SCA)[1,2]通過捕獲密碼算法在運(yùn)行過程中所泄露的信息進(jìn)而進(jìn)行密鑰恢復(fù)。相比于傳統(tǒng)的密碼分析方法,側(cè)信道攻擊更加高效且實現(xiàn)成本相對較低,對密碼算法及其應(yīng)用形成了嚴(yán)重威脅。SM4算法是我國自主設(shè)計的分組密碼算法,于2012年被國家商用密碼管理局確定為國家密碼行業(yè)標(biāo)準(zhǔn),成為我國第一個官方公布的商業(yè)密碼算法[3],并于2021年6月正式被選為國際標(biāo)準(zhǔn)算法。SM4算法原用于中國無線標(biāo)準(zhǔn),目前已被推廣應(yīng)用于無線通信、車聯(lián)網(wǎng)、安全通信協(xié)議等領(lǐng)域。SM4算法能夠抵御多種密碼算法分析方法,如代數(shù)攻擊、弱密鑰分析等,但SM4算法在側(cè)信道攻擊下仍然岌岌可危。設(shè)計針對SM4算法的掩碼防護(hù)方案以保護(hù)算法運(yùn)行安全和應(yīng)用安全已迫在眉睫。
側(cè)信道分析發(fā)展迅速,最早于1996年由Kocher[4]提出,隨后,故障攻擊、功耗分析(differential power analysis,DPA)[5]、簡單功耗分析、模板攻擊(template attack,TA)[6]、相關(guān)功耗分析(correlation power analysis,CPA)[7]、互信息分析、相關(guān)碰撞功耗分析等紛紛被提出;在CHES2016會議上,Battistello等人[8]提出的水平側(cè)信道攻擊(horizontal-SCA attack,HSCA)進(jìn)一步提高了側(cè)信道攻擊的能力。
掩碼技術(shù)是一種能夠有效抵御側(cè)信道攻擊的防護(hù)技術(shù),其通過對密碼算法的運(yùn)算過程進(jìn)行數(shù)據(jù)遮蔽,提高攻擊者進(jìn)行密碼分析的難度,從而進(jìn)行有效的防護(hù)[9]。為實現(xiàn)對SM4算法的防護(hù),文獻(xiàn)[10]基于復(fù)合域分解設(shè)計了掩碼方案,采用模塊重用和改變計算順序等方法減少電路面積,并通過實驗驗證該方案能有效抵抗DPA攻擊和零值攻擊;文獻(xiàn)[11]給出了基于復(fù)合域的S盒掩碼方案,同樣通過重用減少計算開銷,降低硬件成本,并通過理論分析和仿真CPA驗證了該方法的有效性,但其僅通過MATLAB仿真,未能進(jìn)行實際測試驗證和綜合評測;文獻(xiàn)[12]在其提出的SM4算法門限S盒實現(xiàn)方案中,通過構(gòu)造秘密共享函數(shù)代替仿射變換,使用隨機(jī)數(shù)將S盒的輸入進(jìn)行二共享拆分以抵御側(cè)信道攻擊,并通過安全性分析和實驗驗證了可抵御一階DPA攻擊;文獻(xiàn)[13]使用一個隨機(jī)生成器生成隨機(jī)的明文和密鑰,通過隨機(jī)明文和密鑰與正確的明文和密鑰進(jìn)行隨機(jī)加密而破壞正常的功耗曲線,從而抵抗DPA。
隨著SM4算法在不同領(lǐng)域中的逐步應(yīng)用,在加強(qiáng)對SM4算法防護(hù)的同時需要進(jìn)一步降低其硬件開銷,但現(xiàn)有防護(hù)方法的硬件實現(xiàn)面積都相對較高。為提高SM4算法抵御側(cè)信道攻擊的能力并降低其硬件開銷,本文設(shè)計和實現(xiàn)了一種門限掩碼防護(hù)方案,該方法基于復(fù)合域分解完成S盒的分解,以降低硬件實現(xiàn)面積;在門限掩碼方案中將32 bit的S盒輸入使用隨機(jī)數(shù)將其進(jìn)行二共享拆分,拆分后的兩個輸入進(jìn)行復(fù)合域運(yùn)算,其結(jié)果通過線性層之后再將兩個輸出進(jìn)行異或得到該輪的正確結(jié)果。本方案在初始時構(gòu)造一個隨機(jī)數(shù),并通過隨機(jī)數(shù)對輸入的隨機(jī)化,使得復(fù)合域電路中的運(yùn)算所產(chǎn)生的功耗與真正的明文無關(guān),破壞中間值與功耗曲線的相關(guān)性,可有效抵抗CPA攻擊;在后續(xù)操作中不再使用隨機(jī)數(shù),并通過電路優(yōu)化以降低硬件開銷。
1 SM4算法概述
SM4算法[3]是一個四分支的廣義非平衡Feistel結(jié)構(gòu),分組長度和密鑰長度均為128 bit,加解密算法和密鑰擴(kuò)展算法都采用32 輪非線性迭代結(jié)構(gòu),每一輪迭代完成32 bit的加/解密運(yùn)算。解密算法的結(jié)構(gòu)與加密算法相同,但輪密鑰的使用順序相反,算法結(jié)構(gòu)如圖1所示。圖1中,SM4算法每一輪的輪操作包括輪密鑰加、S盒替換和線性操作。每一輪的輸入為4個32 bit的字,在與密鑰異或后經(jīng)過4個S盒和1個線性層完成一輪的加密。
2 SM4算法掩碼防護(hù)方案設(shè)計
掩碼運(yùn)算包括線性操作和非線性操作。對于SM4算法,線性操作使用布爾異或運(yùn)算實現(xiàn)對數(shù)據(jù)的遮蔽;而對于非線性操作S盒,將采用門限掩碼防護(hù)。門限(threshold implementations,TI)掩碼[14,15]是一種將秘密拆分存儲的防護(hù)技術(shù),其將秘密消息拆分成 n 個樣本,每個樣本由不同用戶管理,少于 n 個用戶都無法恢復(fù)秘密信息,只有集齊 n 個用戶協(xié)作才可恢復(fù)秘密消息。門限方案能夠在毛刺出現(xiàn)的情況下有效地抵抗側(cè)信道攻擊。由于在對S盒進(jìn)行門限掩碼時,其硬件實現(xiàn)性能會影響整個算法的綜合性能,如電路面積、吞吐量和功耗等,所以需要先對S盒進(jìn)行復(fù)合域分解以降低S盒硬件實現(xiàn)成本。
2.1 SM4算法S盒分解
SM4算法的S盒分解是將GF(28)域上的乘法求逆運(yùn)算變?yōu)镚F(((22)2)2)域上的求逆,最后通過簡單的邏輯運(yùn)算在電路上實現(xiàn),降低硬件實現(xiàn)成本。復(fù)合域的求逆過程采用了圖2所示的實現(xiàn)框架[16]。
文獻(xiàn)[14]給出了圖2中SM4算法S盒的代數(shù)表達(dá)式如下:
S( x )=I( x · A "1+C 1)· A "2+C 2 ""(1)
其中: I 為求逆,常量 C 1和C 2相同,C 1=C "2=(1 1 0 0 1 0 1 1); S盒的仿射變換的矩陣 A 1與A "2相同,為式(2)中的矩陣 A 。文獻(xiàn)[17]則基于式(1)構(gòu)建出的S盒的仿射變換運(yùn)算如下:
a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 "= x·A=A·x T = "1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 1 "·
x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 "= "x 0""x 1""x 2""x 5""x 7 x 0""x 1""x 2""x 3""x 6 x 1""x 2""x 3""x 4""x 7 x 0""x 2""x 3""x 4""x 5 x 1""x 3""x 4""x 5""x 6 x 2""x 4""x 5""x 6""x 7 x 0""x 3""x 5""x 6""x 7 x 0""x 1""x 4""x 6""x 7 """""(2)
在對S盒輸入進(jìn)行仿射變換后,將GF(28)域上的求逆運(yùn)算通過同構(gòu)映射變?yōu)镚F((24)2),其電路如圖3所示。其中 γ "1、 γ "0分別為S盒輸入的8 bit數(shù)據(jù)映射后的高4位和低4位, v 為GF((24)2)域不可約多項式的常數(shù),取 v ={1001}, δ "1和 δ "0對應(yīng)求逆后的高4位和低4位。進(jìn)一步地,將GF((24)2)域上的求逆運(yùn)算同樣通過同構(gòu)映射變?yōu)镚F(((22)2)2)。
2.2 門限掩碼防護(hù)方案
為抵抗DPA攻擊,破壞中間值與功耗曲線的相關(guān)性,本文在設(shè)計SM4算法的門限掩碼方案中,將32 bit的S盒輸入先使用隨機(jī)數(shù)進(jìn)行二共享拆分,拆分后的兩個輸入再進(jìn)行復(fù)合域運(yùn)算。通過隨機(jī)數(shù)對S盒輸入的隨機(jī)化使得復(fù)合域電路中的運(yùn)算所產(chǎn)生的功耗與真正的明文無關(guān),達(dá)到防護(hù)的目的。
首先構(gòu)造了一個隨機(jī)數(shù) m,以m和x""m(x 為S盒8 bit數(shù)據(jù)輸入)作為雙輸入的兩組8 bit數(shù)據(jù)輸入,將真實值 x 的信息分割成二分量。在其他操作中不再添加隨機(jī)數(shù)進(jìn)行環(huán)掩碼,減少隨機(jī)數(shù)的使用。具體操作過程如下:
1)仿射變換重構(gòu)
S盒仿射變換運(yùn)算為 y=x· A ""C 。設(shè)S盒8 bit數(shù)據(jù)輸入為 x ,將數(shù)據(jù) x 拆分為 x "1和 x "2兩組,且 x=x 1""x 2,則y 變換為
y=x· A ""C=(x 1""x 2)· A ""C=x 1· A ""x 2· A ""C ""(3)
將 y拆分為y 1和y "2,結(jié)果為
y 1=x 1· A ""C
y 2=x 2· A """(4)
2)有限域乘法器重構(gòu)
根據(jù)文獻(xiàn)[14]中的乘法器拆分方法,對于乘法運(yùn)算 out=u""v ,將乘法器的兩個輸入 u、v 分別拆分為 u=u 1""u 0,v=v 1""v 0;乘法器的輸出out=out 3""out 2""out 1""out "0,則有
out 3""out 2""out 1""out 0=(u 1""u 0)""(v 1""v 0)=
(u 1""v 1)""(u 1""v 0)""(u 0""v 1)""(u 0""v 0) ""(5)
根據(jù)圖3,在進(jìn)入GF(24)求逆器之前的運(yùn)算包含一個乘法器和平方器;令 γ 1=a,γ 0=b 作為GF(28)求逆輸入,將平方器 vγ2 1 看做一個函數(shù)square (x),以a作為 square (x)的輸入,c 作為GF(24)求逆前的乘法與平方結(jié)合的輸出結(jié)果,則有
c=((a""b)""b)"""square (a) ""(6)
將式(5)(6)結(jié)合,拆分后的運(yùn)算可表示為
c 3=((a 1""b 1)""b 1)"""square (a 1)
c 2=((a 1""b 1)""b 0)
c 1=((a 0""b 0)""b 1)
c 0=((a 0""b 0)""b 0)"""square (a 0) """(7)
基于上述仿射變換重構(gòu)和乘法器重構(gòu)對圖3電路進(jìn)行重構(gòu),實現(xiàn)S盒的門限掩碼。重構(gòu)后的電路分為三步完成,基于上述雙輸入和雙輸出思路,具體實現(xiàn)步驟如下:
a)將帶有掩碼的8 bit數(shù)據(jù) x""m 以及掩碼 m 作為兩組,輸入到分組仿射變換以及同構(gòu)映射部件,分別輸出 a 1、a 0、b 1、b "0,再將其輸入到乘法器與平方器,根據(jù)式(7)得到輸出 c 3、c 2、c 1、c "0,如圖4所示。
b)在GF(24)域上求逆。首先將第一步輸出的 c 3、c 2、c 1、c "0分成兩組( c 3,c 2)、(c 1,c 0);進(jìn)行異或操作,令d 1=c 3""c 2,d 0=c 1""c "0;再將 d 1、d "0分別進(jìn)行高低位分解為( e 1,f 1)、(e 0,f 0);最后通過乘法器和平方器得到如式(8)所示輸出g 3、g 2、g 1、g "0。
g 3=((e 1""f 1)""f 1)"""square (e 1)
g 2=((e 1""f 1)""f 0)
g 1=((e 0""f 0)""f 1)
g 0=((e 0""f 0)""f 0)"""square (e 0) """(8)
進(jìn)一步將輸出進(jìn)行異或分組,令 h 1=g 3""g 2,h 0=g 1""g 0 ;再進(jìn)入到GF(22)求逆器進(jìn)行平方運(yùn)算,輸出 i 1、i 0 ;將其作為輸入進(jìn)入到兩個GF(22)乘法器,分別輸出 j 3、j 2、j 1、j 0和k 3、k 2、k 1、k 0。j i(i =0,1,2,3)計算如式(9)所示, k i 計算方法相同。
j 3=e 1""i 1
j 2=e 1""i 0
j 1=e 0""i 1
j 0=e 0""i 0 """(9)
最后將 j i和k i進(jìn)行合成,即將j i和k i 進(jìn)行連接,以“‖”表示連接符,則結(jié)果表示為 l 3=(j 3‖k 3),l 2=(j 2‖k 2),l 1=(j 1‖k 1),l 0=(j 0‖k 0) ;再將其輸入到下一步,電路如圖5所示。
c)以 l 3、l 2、l 1、l "0作為輸入進(jìn)行異或分組,令 n 1=l 3""l 2,n 0=l 1""l 0 ;將結(jié)果輸入到兩個GF(24)乘法器中,分別得出輸出結(jié)果 p 3、p 2、p 1、p 0和q 3、q 2、q 1、q "0,計算方法同式(9);同樣再將兩組輸出進(jìn)行連接,獲得 t 3=(p 3‖q 3),t 2=(p 2‖q 2),t 1=(p 1‖q 1),t 0=(p 0‖q 0);再進(jìn)行異或操作,令z 1=t 3""t 2,z 0=t 1""t 0;最后對z 1、z 0進(jìn)行逆同構(gòu)映射和仿射變換得到輸出結(jié)果x′""m′和m′ ,電路如圖6所示。
通過上述三步完成SM4 算法S盒門限掩碼運(yùn)算,得到輸出 m′和x′""m′ ,而將這兩個輸出經(jīng)過線性層操作后,再將兩個輸出進(jìn)行異或完成去掩碼操作,從而構(gòu)造出SM4算法的掩碼方案。具體操作過程如下:a)隨機(jī)生成兩個32 bit數(shù) m 1、m "2;b)根據(jù)算法運(yùn)算,由 (MK 3,MK 2,MK 1,MK 0)""(FK 3,F(xiàn)K 2,F(xiàn)K 1,F(xiàn)K 0) 得到( K 0,K 1,K 2,K 3),再與掩碼M 2=(m 2,m 2,m 2,m 2)進(jìn)行異或得到(K′ 0,K′ 1,K′ 2,K′ 3) ;c)密鑰擴(kuò)展函數(shù)的掩碼結(jié)構(gòu)與輪函數(shù)結(jié)構(gòu)相似,但輪密鑰生成不同,其計算方法為 rk′ i=K′ i+4=K′ i""T′(K′ i+1""K′ i+2""K′ i+3""CK i""m 1) ;d)在明文 X進(jìn)入輪轉(zhuǎn)之前,與M 1=(m 1,m 1,m 1,m 1)異或進(jìn)行掩蓋,得到(X′ 0,X′ 1,X′ 2,X′ 3) ;e)進(jìn)入輪函數(shù),因為密鑰擴(kuò)展中并沒有進(jìn)行去掩操作,所以輪密鑰自身攜帶了掩碼值 m 2,與rk′ i 異或后,S盒的輸入就攜帶了 m 1""m 2 ,通過門限S盒后得到兩個輸出并進(jìn)行線性變換 L ,再進(jìn)行異或去掉輸入S盒時帶有的掩碼 m 1""m 2 ;f)在32輪后得到結(jié)果( X′ 32,X′ 33,X′ 34,X′ 35) ,再將 (X′ 32,X′ 33,X′ 34,X′ 35) 與 M "1進(jìn)行異或,得到正確結(jié)果 (Y 0,Y 1,Y 2,Y 3)=(X 35,X 34,X 33,X 32) 。
SM4算法掩碼方案結(jié)構(gòu)如圖7所示。
3 SM4算法掩碼方案的FPGA實現(xiàn)與仿真
3.1 SM4算法FPGA硬件電路設(shè)計
在SM4硬件實現(xiàn)中,沒有掩碼的SM4每一輪的加/解密運(yùn)算都在一個時鐘周期內(nèi)完成加/解密。而為了抵抗毛刺攻擊,掩碼的中間值需要使用寄存器保存,因此增加了掩碼實現(xiàn)的SM4的每一輪都需要多個時鐘。由于在算法運(yùn)行中都是先等待密鑰擴(kuò)展模塊計算輪子密鑰完畢才進(jìn)行加/解密運(yùn)算,所以對掩碼實現(xiàn)中占用面積最大的四個并行S盒進(jìn)行復(fù)用,即將密鑰擴(kuò)展和加/解密運(yùn)算中的S盒復(fù)用,減少了四個經(jīng)過掩碼后的S盒的面積。值得注意的是,密鑰擴(kuò)展出來的子密鑰使用芯片中的RAM存儲,這樣可以不占用邏輯門面積。SM4算法硬件電路結(jié)構(gòu)如圖8所示。
3.2 時序仿真與時序分析及驗證
采用Verilog HDL編程完成掩碼方案實現(xiàn),并在仿真工具Vivado 2017.4環(huán)境下進(jìn)行仿真。仿真的明文為123456789abc "deffedcba9876543210,密鑰為123456789abcdeffedcba9876543210, 密文為681edf34d206965e86b3e94f536e4246,加密仿真和解密仿真如圖9和10所示。
圖9、10顯示完成門限掩碼的SM4算法在解密后能夠獲得與加密前一樣的結(jié)果,都是正確的,且端口輸出的電平也在預(yù)定的結(jié)果之內(nèi)。
4 實驗測試及結(jié)果分析
4.1 SM4算法FPGA實現(xiàn)綜合評測
本文設(shè)計并完成了基于門限掩碼方案的SM4算法的FPGA硬件實現(xiàn)。采用Synopsys公司版本號為L-2016.03-SP1的綜合工具Design Compiler,選取工藝庫SMIC 130 nm(工作電壓1.2 V,溫度25 ℃)評估上述ASIC硬件實現(xiàn),在所有的綜合中均使用了典型的工作條件,并與幾種掩碼實現(xiàn)結(jié)果對比如表1所示。
表1中,吞吐率/面積表示電路的品質(zhì)因數(shù),在不考慮電路翻轉(zhuǎn)率情況下,相同吞吐率下的面積越小則功耗將越低,即計算的值越高越好。文獻(xiàn)[10,12,13]和本文門限掩碼實現(xiàn)方法都是添加了掩碼防護(hù)的SM4算法硬件實現(xiàn)??傮w來看,本文門限掩碼方案因掩碼方法的優(yōu)化及電路優(yōu)化,面積較小,實現(xiàn)成本較低,吞吐率/面積的結(jié)果最好。
4.2 安全性測試及分析
將未進(jìn)行掩碼防護(hù)的SM4算法和添加了門限掩碼防護(hù)的SM4算法用Verilog HDL編寫并完成仿真后,將生成的比特流文件燒錄進(jìn)SPARTAN-6 XC6SLX9型號芯片的開發(fā)板,采用側(cè)信道分析平臺采集系統(tǒng)實現(xiàn)的能量跡進(jìn)行CPA分析。采集波形所用的示波器為PicoScope3206D。在以下所有實驗中,加密算法所用密鑰均為0,…,15。
1)對未進(jìn)行掩碼防護(hù)的SM4算法的測試分析
將未加掩碼的原始SM4算法編寫并完成仿真后燒錄進(jìn)FPGA開發(fā)板,通過采集設(shè)備采集的波形如圖11所示,其中,32輪加密的結(jié)果非常清晰。
采集30萬條能量跡進(jìn)行CPA[1]攻擊,選取的攻擊點(diǎn)為最后四輪S盒輸出值,得到最后四輪的子密鑰,再進(jìn)行主密鑰的恢復(fù),結(jié)果如圖12所示。其中,ths.key為用于加密的原始主密鑰,round_key為得到的最后四輪子密鑰,對這四個子密鑰使用recover_key函數(shù)恢復(fù)出了正確的主密鑰。
2)對添加門限掩碼的SM4算法的測試分析
基于本文的門限掩碼方案進(jìn)行實現(xiàn),將加掩碼后的SM4加密算法編寫并完成仿真后燒錄進(jìn)開發(fā)板,得到的波形如圖13所示。從波形上看,難以區(qū)分算法的加密過程。
采集30萬條能量跡對掩碼后的SM4算法進(jìn)行CPA攻擊,選取的攻擊點(diǎn)同樣是最后四輪S盒的輸出值,得到最后四輪的子密鑰再進(jìn)行主密鑰的恢復(fù),結(jié)果如圖14所示。其中,采用recover_key函數(shù)對得到的最后四輪子密鑰round_key進(jìn)行主密鑰恢復(fù),結(jié)果與原始主密鑰ths.key都不相同,攻擊失敗,這表明本文的門限掩碼方案成功實現(xiàn)了對SM4算法的防護(hù),抵抗了CPA攻擊。
5 結(jié)束語
本文基于FPGA設(shè)計和實現(xiàn)了SM4算法及其掩碼防護(hù)方案,針對SM4算法S盒,基于復(fù)合域分解降低了硬件面積;在對S盒構(gòu)造門限掩碼方案時,使用隨機(jī)數(shù)對S盒輸入進(jìn)行隨機(jī)化實現(xiàn)防護(hù),并通過電路重構(gòu)和優(yōu)化降低硬件成本。針對SM4算法的門限掩碼方案的FPGA硬件實現(xiàn)及時序仿真驗證了實現(xiàn)的正確性,而對硬件實現(xiàn)的綜合測評和安全性攻擊表明本文方案的有效性,能夠成功抵抗CPA攻擊,并具有更低的實現(xiàn)成本。在今后的工作中,將考慮在掩碼中減少隨機(jī)數(shù)的使用,以進(jìn)一步降低硬件面積。
參考文獻(xiàn):
[1] "Kocher P,Jaffe J,Jun B.Differential power analysis[C]//Proc of the 19th Annual International Cryptology Conference.Berlin:Springer,1999:388-397.
[2] Robyns P,Quax P,Lamotte W.Improving CEMA using correlation optimization[J]. Trans on Cryptographic Hardware and Embedded Systems ,2019(1):1-24.
[3] "Office of State Commercial Cipher Administration.Block cipher for WLAN products-SMS4[EB/OL].http://www.oscca.gov.cn/sca/c100061/201611/1002423/files/330480f731f64e1ea75138211ea0dc27.pdf.
[4] Kocher P C.Timing attacks on implementations of Diffie-Hellman,RSA,DSS,and other systems[C]//Proc of the 16th Annual International Cryptology Conference on Advances in Cryptology.Berlin:Springer,1996:104-113.
[5] Boneh D,Demillo R A,Lipton R J.On the importance of checking cryptographic protocols for faults[C]//Proc of International Confe-rence on Theory and Application of Cryptographic Techniques.Berlin:Springer,1997:37-51.
[6] Charis S,Rao J R,Rohatgi P.Template attacks[C]//Proc of International Workshop on Cryptographic Hardware and Embedded Systems.Berlin:Springer,2002:13-28.
[7] Brier E,Clavier C,Olivier F.Correlation power analysis with a leakage model[C]//Proc of International Workshop on Cryptographic Hardware and Embedded Systems.Berlin:Springer,2004:16-29.
[8] Battistello A,Coron J S,Prouff E, et al .Horizontal side-channel attacks and countermeasures on the ISW masking scheme[C]//Proc of International Conference on Cryptographic Hardware and Embedded Systems.Berlin:Springer,2016:23-39.
[9] Nikova S,Rechberger C,Rijmen V.Threshold implementations against side-channel attacks and glitches[C]//Proc of the 8th International Conference on Information and Communications Security.Berlin:Springer,2006:529-545.
[10] Bai Xuefei,Xu Yanhua,Guo Li.Securing SMS4 cipher against diffe-rential power analysis and its VLSI implementation[C]//Proc of the 11th IEEE Singapore International Conference on Communication Systems.Piscataway,NJ:IEEE Press,2009:167-172.
[11] Liang Hao,Wu Liji,Zhang Xiangmin, et al .Design of a masked S-box for SM4 based on composite field[C]//Proc of 10th International Conference on Computational Intelligence and Security.Piscataway,NJ:IEEE Press,2014:387-391.
[12] 李新超,鐘衛(wèi)東,張帥偉,等.一種基于門限實現(xiàn)的SM4算法S盒實現(xiàn)方案[J].計算機(jī)工程與應(yīng)用,2018, 54 (17):83-88,140. (Li Xinchao,Zhong Weidong,Zhang Shuaiwei, "et al .New S-box of SM4 based on threshold implementation[J]. Computer Engineering and Applications ,2018, 54 (17):83-88,140.)
[13] Lu Tong,Zhou Fang,Wu Ning, et al .Implementation of SM4 based on random state to resist DPA[C]//Proc of the 4th IEEE International Conference on Electronics Technology.Piscataway,NJ:IEEE Press,2021:717-721.
[14] Ueno R,Homma N,Aoki T.A systematic design of tamper-resistant Galois-field arithmetic circuits based on threshold implementation with( d +1) input shares[C]//Proc of the 47th IEEE International Symposium on Multiple-Valued Logic.Piscataway,NJ:IEEE Press,2017:136-141.
[15] Wei Yongzhuang,Yao Fu,Pasalic E, et al .New second-order threshold implementation of AES[J]. IET Information Security ,2018, 13 (2):117-124.
[16] Liu Fen,Ji Wen,Hu Lei, et al .Analysis of the SMS4 block cipher[C]//Proc of the 12th Australasian Conference Information Security and Privacy.Berlin:Springer,2007:158-170.
[17] 徐艷華,白雪飛,郭立.適合SMS4算法硬件實現(xiàn)的S盒構(gòu)造新方法[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2009, 39 (11):1164-1170. (Xu Yanhua,Bai Xuefei,Guo Li.A new algorithm of S-box for hardware implementation of SMS4[J]. Journal of University of Science amp; Technology of China ,2009, 39 (11):1164-1170.)