文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190546
中文引用格式: 嚴(yán)迎建,鄭震. 一種針對分組密碼的抗能量攻擊電路設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(8):109-112,117.
英文引用格式: Yan Yingjian,Zheng Zhen. An anti-power attack circuit design for block cipher[J]. Application of Electronic Technique,2019,45(8):109-112,117.
0 引言
在密碼設(shè)備的運(yùn)行過程中,會(huì)不可避免地泄漏出功耗、電磁、時(shí)間等信息,攻擊者可以通過這些信息獲得密鑰的相關(guān)信息。攻擊者通過設(shè)備泄漏出的能耗信息進(jìn)行攻擊的方式稱為能量攻擊。能量攻擊實(shí)施的依據(jù)是密碼設(shè)備的能量消耗依賴于設(shè)備所執(zhí)行的密碼算法的中間值[1]。要抵御這種攻擊可以試圖降低甚至消除這種依賴性,實(shí)現(xiàn)功耗的隨機(jī)化。
目前主要的防護(hù)技術(shù)有隱藏技術(shù)和掩碼技術(shù)等。隱藏技術(shù)主要是使算法運(yùn)行過程中的功耗盡可能地隨機(jī),從而達(dá)到防護(hù)目的;掩碼技術(shù)分為布爾掩碼、多項(xiàng)式掩碼和內(nèi)積掩碼等,主要通過變換算法運(yùn)行中間值或掩蓋中間結(jié)果,增加了攻擊者破譯密碼的難度。
在掩碼技術(shù)的范疇內(nèi),MIYAJAN A等人在文獻(xiàn)[2]中介紹了一種針對AES的掩碼方案,使用卡諾圖來降低運(yùn)算復(fù)雜度,使用單指令多數(shù)據(jù)技術(shù)執(zhí)行并行處理,該方案所實(shí)現(xiàn)的加密周期較短,但就資源消耗方面來看其占用了較多資源,是一種犧牲資源提升運(yùn)算速率的方案;GROSS H等人在文獻(xiàn)[3]中實(shí)現(xiàn)了在與專用電路相同的成本下對多元高階能量攻擊的抵抗,該方案具有較高的靈活性,但其適用范圍較小;李浪等[4]設(shè)計(jì)了一種基于隨機(jī)選擇變換的掩碼方案,通過隨機(jī)產(chǎn)生等概率漢明重量的掩碼組,對S盒使用隨機(jī)轉(zhuǎn)置矩陣變換,對不同的輪函數(shù)加以相應(yīng)的掩碼防護(hù),該方案保護(hù)了算法運(yùn)行過程的中間值,但是運(yùn)算效率降低較為明顯;PU S等[5]針對SM4算法提出并實(shí)現(xiàn)了一種基于布爾矩陣的具有可證明安全性的掩碼方案,但經(jīng)實(shí)驗(yàn)評估,該方案的總體性能較為一般。此外還有很多學(xué)者對掩碼技術(shù)進(jìn)行了不同方面的研究,總的來說,目前國內(nèi)外對掩碼技術(shù)的研究較為廣泛,但其依然具有較大的可挖掘性。
1 反向交錯(cuò)
以上結(jié)果表明,當(dāng)樣本量N足夠大時(shí),對加入了反向交錯(cuò)結(jié)構(gòu)的電路實(shí)施能量攻擊時(shí),相關(guān)系數(shù)的值將大大減小且逼近0。因此,可通過加入反向交錯(cuò)結(jié)構(gòu)來增強(qiáng)分組密碼算法電路的抗能量攻擊能力。
2 反向交錯(cuò)的電路設(shè)計(jì)
為滿足反向交錯(cuò)的條件,應(yīng)使算法運(yùn)行過程的中間值隨機(jī)地在取反與不取反之間交替。
參考分組密碼算法電路實(shí)現(xiàn)的相關(guān)理論可知,在分組密碼的輪運(yùn)算中插入反向交錯(cuò)的電路結(jié)構(gòu)難度較大,因此,本文主要考慮在輪運(yùn)算的外部插入防護(hù)單元。為實(shí)現(xiàn)密碼運(yùn)算中間數(shù)值的取反,本文在寄存器前后加入反向器,通過隨機(jī)數(shù)控制選擇端口,進(jìn)而控制數(shù)值是否取反?;倦娐方Y(jié)構(gòu)如圖1所示。
分組密碼的輪運(yùn)算中S盒等非線性映射的存在使得在進(jìn)行輪運(yùn)算F之前必須將取反的中間值變換成正確值,否則不能得到正確的加解密結(jié)果。另一方面,數(shù)值不取反將導(dǎo)致被攻擊時(shí)算法的中間值與防護(hù)之前沒有變化,不能實(shí)現(xiàn)算法運(yùn)行過程中的功耗隨機(jī)化。
因此,圖1中的基礎(chǔ)電路結(jié)構(gòu)僅能防御針對寄存器R1的能量攻擊,而對于針對密碼運(yùn)算部件(即輪運(yùn)算F中的部件)的攻擊則無法達(dá)到預(yù)期的防護(hù)效果,為實(shí)現(xiàn)功耗的隨機(jī)化,須對電路結(jié)構(gòu)作進(jìn)一步優(yōu)化。
為實(shí)現(xiàn)整體電路的功耗隨機(jī)化,本文結(jié)合打亂時(shí)序?qū)R[6-8]的對策,參考插入互補(bǔ)寄存器[9-10]的方法,在寄存器R1后加入一級寄存器R2,通過控制數(shù)據(jù)選擇器,隨機(jī)地延長加密周期以實(shí)現(xiàn)對時(shí)序的打亂,具體電路結(jié)構(gòu)如圖2所示。
較之圖1中的基本電路結(jié)構(gòu),優(yōu)化后結(jié)構(gòu)的控制信號(hào)變?yōu)閮蓚€(gè)信號(hào)的邏輯與。圖2中,控制信號(hào)Sel是通過隨機(jī)數(shù)發(fā)生器生成的隨機(jī)數(shù),根據(jù)電路的結(jié)構(gòu)進(jìn)行分析易知,要使整個(gè)結(jié)構(gòu)實(shí)現(xiàn)功耗隨機(jī)化,控制信號(hào)Sel應(yīng)根據(jù)隨機(jī)數(shù)首比特的不同按照表1中的序列生成。
現(xiàn)有對分組密碼的能量攻擊均選擇首輪或末輪為攻擊點(diǎn),所以對反向交錯(cuò)結(jié)構(gòu)的設(shè)計(jì)主要考慮到對首輪和末輪的防護(hù)。當(dāng)算法運(yùn)行到首輪或末輪時(shí),寄存器R2被R1賦值,電路通過寄存器R2來控制電路進(jìn)行時(shí)序的打亂:當(dāng)控制信號(hào)為1時(shí),寄存器R2保證了電路對時(shí)序進(jìn)行打亂;控制信號(hào)為0時(shí),寄存器R2無效,數(shù)據(jù)選擇器均為0輸入端有效,電路正常進(jìn)行輪運(yùn)算。當(dāng)算法運(yùn)行到中間輪次時(shí),通過兩級取反保證了輪運(yùn)算輸入的正確性,電路正常加密。
由圖2分析可得,根據(jù)控制信號(hào)Sel產(chǎn)生的隨機(jī)數(shù)的首比特不同,被攻擊樣本的時(shí)序可分為兩種,如圖3所示(F(n)表示第n輪運(yùn)算的輸出)。
下面討論優(yōu)化的反向交錯(cuò)結(jié)構(gòu)在首輪和末輪的抗攻擊能力:
(1)首輪運(yùn)算抗攻擊能力
當(dāng)攻擊者對輪運(yùn)算外部的寄存器進(jìn)行攻擊時(shí),不同樣本在電路的第一個(gè)時(shí)鐘周期內(nèi),F(xiàn)(0)和~F(0)交替出現(xiàn),符合反向交錯(cuò)的條件;當(dāng)攻擊者對輪運(yùn)算內(nèi)部的密碼運(yùn)算部件進(jìn)行攻擊時(shí),在兩種時(shí)序下,第二個(gè)時(shí)鐘周期(即第二輪運(yùn)算)中輪運(yùn)算的輸入分別為F(0)和隨機(jī)數(shù),攻擊者無法獲取信息泄漏。
(2)末輪運(yùn)算抗攻擊能力
對于不同樣本,在第n+1個(gè)時(shí)鐘周期內(nèi),數(shù)據(jù)選擇器的置數(shù)端為0,寄存器R2無效,而寄存器R1在兩種時(shí)序下分別為F(隨機(jī)數(shù))和F(n-1),攻擊者無法對輪運(yùn)算外部的寄存器進(jìn)行攻擊;在兩種時(shí)序下,第n+1和第n+2個(gè)時(shí)鐘周期之間的取值分別為F(隨機(jī)數(shù))和F(n)、F(n-1)和F(n),攻擊者同樣無法獲取信息泄漏。
綜上所述,圖2中優(yōu)化的反向交錯(cuò)結(jié)構(gòu)在分組密碼運(yùn)算的首輪和末輪均能夠?qū)崿F(xiàn)功耗隨機(jī)化,具有良好的抗能量攻擊能力。
3 反向交錯(cuò)電路的應(yīng)用與驗(yàn)證
為對本文提出的反向交錯(cuò)結(jié)構(gòu)的抗能量攻擊性能進(jìn)行驗(yàn)證,將優(yōu)化后的結(jié)構(gòu)加入到AES-128算法電路中,其整體電路如圖4所示。
下面從加解密功能、抗攻擊能力和電路性能三方面對本文所設(shè)計(jì)的結(jié)構(gòu)進(jìn)行驗(yàn)證,并與未防護(hù)的電路進(jìn)行對比。
3.1 加解密功能驗(yàn)證
基于優(yōu)化反向交錯(cuò)結(jié)構(gòu)的AES-128算法具有兩種不同加密時(shí)序,以加密功能為例,使用VCS對加入防護(hù)前的電路和圖4中的電路進(jìn)行功能仿真,得到結(jié)果如圖5所示。
圖中clk為時(shí)鐘信號(hào),load為加載信號(hào),trng_128為隨機(jī)數(shù),data_in為明文輸入,data_o為密文輸出,key為密鑰,state為寄存器,sel為控制信號(hào)。仿真驗(yàn)證的結(jié)果表明,經(jīng)防護(hù)的AES-128電路能夠在12個(gè)時(shí)鐘周期內(nèi),以2種不同加密時(shí)序順利實(shí)現(xiàn)加密功能。
3.2 防護(hù)能力驗(yàn)證
對防護(hù)效果進(jìn)行驗(yàn)證時(shí),首先在Verilog硬件語言中對所設(shè)計(jì)的電路進(jìn)行實(shí)現(xiàn),而后運(yùn)用Vivado軟件合成.bit格式的文件并下載至Chipwhisperer實(shí)驗(yàn)開發(fā)板中,得到如圖6所示的能量跡。
由圖6可知,在加入優(yōu)化的反向交錯(cuò)結(jié)構(gòu)后,算法電路的加密延長了一個(gè)時(shí)鐘周期,但每個(gè)周期內(nèi)功耗特性與防護(hù)前基本一致,符合預(yù)期效果。
對加密的能量跡進(jìn)行采集后,進(jìn)一步對加入防護(hù)前后的電路進(jìn)行攻擊并對比,對優(yōu)化的反向交錯(cuò)結(jié)構(gòu)的防護(hù)能力進(jìn)行分析。對防護(hù)前后的電路分別實(shí)施攻擊,結(jié)果如圖7所示。
防護(hù)前,攻擊樣本量為600時(shí)即可得到正確密鑰值,正確密鑰對應(yīng)的相關(guān)系數(shù)值為0.225;防護(hù)后,樣本量為10 000時(shí)相關(guān)系數(shù)的值出現(xiàn)了多個(gè)尖峰,仍不足以得到正確密鑰值,攻擊前所設(shè)定的正確密鑰值對應(yīng)的相關(guān)系數(shù)值降至0.016。根據(jù)以上結(jié)果可知,加入反向交錯(cuò)的電路結(jié)構(gòu)能夠大大提升電路的抗能量攻擊能力。
3.3 性能驗(yàn)證
對電路性能進(jìn)行分析時(shí)在 Design Compiler上進(jìn)行綜合實(shí)現(xiàn),對加入反向交錯(cuò)結(jié)構(gòu)的電路進(jìn)行性能評估,并與防護(hù)前的電路進(jìn)行對比,結(jié)果如表2所示。
分析上表可知,在加入反向交錯(cuò)結(jié)構(gòu)后,組合邏輯的增加導(dǎo)致了關(guān)鍵延遲增加,電路的最大頻率有小幅度的降低;加密周期數(shù)的增加使得防護(hù)后的吞吐率有所降低;但由于兩級寄存器的加入,時(shí)序收斂更加容易,使面積和等效與非門數(shù)目不增反降,一定程度上減小了資源消耗。隨機(jī)數(shù)的引入,對能量消耗起到了很好的混淆效果,使得能量攻擊難度加大。綜上所述,加入反向交錯(cuò)結(jié)構(gòu)的電路基本達(dá)到了防護(hù)效果和電路性能的相對平衡。
4 結(jié)論
本文從功耗隨機(jī)化的角度出發(fā),提出了反向交錯(cuò)的定義,設(shè)計(jì)出了滿足反向交錯(cuò)的基本電路結(jié)構(gòu)并進(jìn)行了優(yōu)化。最后將優(yōu)化的電路結(jié)構(gòu)應(yīng)用到AES-128算法中,進(jìn)行了多方面的驗(yàn)證,結(jié)果證明本文設(shè)計(jì)的反向交錯(cuò)的電路結(jié)構(gòu)具有較強(qiáng)的抗能量攻擊能力和較好的電路性能,具有較高的可參考性。
同時(shí)本文存在一些可改進(jìn)的方面:設(shè)計(jì)電路時(shí)思路不夠靈活,選取的元件種類較為單一;優(yōu)化結(jié)構(gòu)中加入的寄存器R2利用率較低;時(shí)序分析較為簡單,在進(jìn)行驗(yàn)證時(shí)利用的部分工具和實(shí)際攻防有一定差別。
下一步將針對電路的最高頻率和吞吐率有所下降的問題進(jìn)行進(jìn)一步的優(yōu)化,使性能達(dá)到更優(yōu)水平。
參考文獻(xiàn)
[1] 馮登國,周永彬,劉繼業(yè),等.能量分析攻擊[M].北京:科學(xué)出版社,2010.
[2] MIYAJAN A,HUANG C H,AL-SOMANI T F.Speedup higher-order masking of AES using normal basis and SIMD[C].International Conference on Computer Engineering & Systems,2017.
[3] GROSS H,MANGARD S,KORAK T .An efficient side-channel protected AES implementation with arbitrary protection order[C].Cryptographers′ Track at the RSA Conference.Springer,Cham,2017.
[4] 李浪,歐雨,鄒祎.一種AES隨機(jī)變換掩碼方案及抗DPA分析[J].密碼學(xué)報(bào),2018,5(4):112-124.
[5] PU S,GUO Z,LIU J,et al.Boolean matrix masking for SM4 block cipher algorithm[C].International Conference on Computational Intelligence & Security.IEEE,2018.
[6] FOLGADO D,BARANDAS M,MATIAS R,et al.Time alignment measurement for time series[J].Pattern Recognition,2018,81:268-279.
[7] BHATTACHARYA S,REBEIRO C,MUKHOPADHYAY D.A formal security analysis of even-odd sequential prefetching in profiled cache-timing attacks[C].Hardware & Architectural Support for Security & Privacy,2016.
[8] YI J,DANESHRAD B,POTTIE G J.A practical approach to joint timing, frequency synchronization and channel estimation for concurrent transmissions in a MANET[J].IEEE Transactions on Wireless Communications,2017,16(6):3461-3475.
[9] TANIMURA K,DUTT N.ExCCel: Exploration of complementary cells for efficient DPA attack resistivity[C].IEEE International Symposium on Hardware-oriented Security & Trust,2010.
[10] Zhang, Baoning,Ge Wei,Wang Zhen.A distributed crossdomain register filefor reconfigurable cryptographic processor[J].東南大學(xué)學(xué)報(bào)(英文版),2017,33(3):260-265.
作者信息:
嚴(yán)迎建,鄭 震
(信息工程大學(xué) 三院,河南 鄭州450001)