文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190546
中文引用格式: 嚴迎建,鄭震. 一種針對分組密碼的抗能量攻擊電路設計[J].電子技術應用,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 引言
在密碼設備的運行過程中,會不可避免地泄漏出功耗、電磁、時間等信息,攻擊者可以通過這些信息獲得密鑰的相關信息。攻擊者通過設備泄漏出的能耗信息進行攻擊的方式稱為能量攻擊。能量攻擊實施的依據(jù)是密碼設備的能量消耗依賴于設備所執(zhí)行的密碼算法的中間值[1]。要抵御這種攻擊可以試圖降低甚至消除這種依賴性,實現(xiàn)功耗的隨機化。
目前主要的防護技術有隱藏技術和掩碼技術等。隱藏技術主要是使算法運行過程中的功耗盡可能地隨機,從而達到防護目的;掩碼技術分為布爾掩碼、多項式掩碼和內(nèi)積掩碼等,主要通過變換算法運行中間值或掩蓋中間結(jié)果,增加了攻擊者破譯密碼的難度。
在掩碼技術的范疇內(nèi),MIYAJAN A等人在文獻[2]中介紹了一種針對AES的掩碼方案,使用卡諾圖來降低運算復雜度,使用單指令多數(shù)據(jù)技術執(zhí)行并行處理,該方案所實現(xiàn)的加密周期較短,但就資源消耗方面來看其占用了較多資源,是一種犧牲資源提升運算速率的方案;GROSS H等人在文獻[3]中實現(xiàn)了在與專用電路相同的成本下對多元高階能量攻擊的抵抗,該方案具有較高的靈活性,但其適用范圍較??;李浪等[4]設計了一種基于隨機選擇變換的掩碼方案,通過隨機產(chǎn)生等概率漢明重量的掩碼組,對S盒使用隨機轉(zhuǎn)置矩陣變換,對不同的輪函數(shù)加以相應的掩碼防護,該方案保護了算法運行過程的中間值,但是運算效率降低較為明顯;PU S等[5]針對SM4算法提出并實現(xiàn)了一種基于布爾矩陣的具有可證明安全性的掩碼方案,但經(jīng)實驗評估,該方案的總體性能較為一般。此外還有很多學者對掩碼技術進行了不同方面的研究,總的來說,目前國內(nèi)外對掩碼技術的研究較為廣泛,但其依然具有較大的可挖掘性。
1 反向交錯
以上結(jié)果表明,當樣本量N足夠大時,對加入了反向交錯結(jié)構(gòu)的電路實施能量攻擊時,相關系數(shù)的值將大大減小且逼近0。因此,可通過加入反向交錯結(jié)構(gòu)來增強分組密碼算法電路的抗能量攻擊能力。
2 反向交錯的電路設計
為滿足反向交錯的條件,應使算法運行過程的中間值隨機地在取反與不取反之間交替。
參考分組密碼算法電路實現(xiàn)的相關理論可知,在分組密碼的輪運算中插入反向交錯的電路結(jié)構(gòu)難度較大,因此,本文主要考慮在輪運算的外部插入防護單元。為實現(xiàn)密碼運算中間數(shù)值的取反,本文在寄存器前后加入反向器,通過隨機數(shù)控制選擇端口,進而控制數(shù)值是否取反?;倦娐方Y(jié)構(gòu)如圖1所示。
分組密碼的輪運算中S盒等非線性映射的存在使得在進行輪運算F之前必須將取反的中間值變換成正確值,否則不能得到正確的加解密結(jié)果。另一方面,數(shù)值不取反將導致被攻擊時算法的中間值與防護之前沒有變化,不能實現(xiàn)算法運行過程中的功耗隨機化。
因此,圖1中的基礎電路結(jié)構(gòu)僅能防御針對寄存器R1的能量攻擊,而對于針對密碼運算部件(即輪運算F中的部件)的攻擊則無法達到預期的防護效果,為實現(xiàn)功耗的隨機化,須對電路結(jié)構(gòu)作進一步優(yōu)化。
為實現(xiàn)整體電路的功耗隨機化,本文結(jié)合打亂時序?qū)R[6-8]的對策,參考插入互補寄存器[9-10]的方法,在寄存器R1后加入一級寄存器R2,通過控制數(shù)據(jù)選擇器,隨機地延長加密周期以實現(xiàn)對時序的打亂,具體電路結(jié)構(gòu)如圖2所示。
較之圖1中的基本電路結(jié)構(gòu),優(yōu)化后結(jié)構(gòu)的控制信號變?yōu)閮蓚€信號的邏輯與。圖2中,控制信號Sel是通過隨機數(shù)發(fā)生器生成的隨機數(shù),根據(jù)電路的結(jié)構(gòu)進行分析易知,要使整個結(jié)構(gòu)實現(xiàn)功耗隨機化,控制信號Sel應根據(jù)隨機數(shù)首比特的不同按照表1中的序列生成。
現(xiàn)有對分組密碼的能量攻擊均選擇首輪或末輪為攻擊點,所以對反向交錯結(jié)構(gòu)的設計主要考慮到對首輪和末輪的防護。當算法運行到首輪或末輪時,寄存器R2被R1賦值,電路通過寄存器R2來控制電路進行時序的打亂:當控制信號為1時,寄存器R2保證了電路對時序進行打亂;控制信號為0時,寄存器R2無效,數(shù)據(jù)選擇器均為0輸入端有效,電路正常進行輪運算。當算法運行到中間輪次時,通過兩級取反保證了輪運算輸入的正確性,電路正常加密。
由圖2分析可得,根據(jù)控制信號Sel產(chǎn)生的隨機數(shù)的首比特不同,被攻擊樣本的時序可分為兩種,如圖3所示(F(n)表示第n輪運算的輸出)。
下面討論優(yōu)化的反向交錯結(jié)構(gòu)在首輪和末輪的抗攻擊能力:
(1)首輪運算抗攻擊能力
當攻擊者對輪運算外部的寄存器進行攻擊時,不同樣本在電路的第一個時鐘周期內(nèi),F(xiàn)(0)和~F(0)交替出現(xiàn),符合反向交錯的條件;當攻擊者對輪運算內(nèi)部的密碼運算部件進行攻擊時,在兩種時序下,第二個時鐘周期(即第二輪運算)中輪運算的輸入分別為F(0)和隨機數(shù),攻擊者無法獲取信息泄漏。
(2)末輪運算抗攻擊能力
對于不同樣本,在第n+1個時鐘周期內(nèi),數(shù)據(jù)選擇器的置數(shù)端為0,寄存器R2無效,而寄存器R1在兩種時序下分別為F(隨機數(shù))和F(n-1),攻擊者無法對輪運算外部的寄存器進行攻擊;在兩種時序下,第n+1和第n+2個時鐘周期之間的取值分別為F(隨機數(shù))和F(n)、F(n-1)和F(n),攻擊者同樣無法獲取信息泄漏。
綜上所述,圖2中優(yōu)化的反向交錯結(jié)構(gòu)在分組密碼運算的首輪和末輪均能夠?qū)崿F(xiàn)功耗隨機化,具有良好的抗能量攻擊能力。
3 反向交錯電路的應用與驗證
為對本文提出的反向交錯結(jié)構(gòu)的抗能量攻擊性能進行驗證,將優(yōu)化后的結(jié)構(gòu)加入到AES-128算法電路中,其整體電路如圖4所示。
下面從加解密功能、抗攻擊能力和電路性能三方面對本文所設計的結(jié)構(gòu)進行驗證,并與未防護的電路進行對比。
3.1 加解密功能驗證
基于優(yōu)化反向交錯結(jié)構(gòu)的AES-128算法具有兩種不同加密時序,以加密功能為例,使用VCS對加入防護前的電路和圖4中的電路進行功能仿真,得到結(jié)果如圖5所示。
圖中clk為時鐘信號,load為加載信號,trng_128為隨機數(shù),data_in為明文輸入,data_o為密文輸出,key為密鑰,state為寄存器,sel為控制信號。仿真驗證的結(jié)果表明,經(jīng)防護的AES-128電路能夠在12個時鐘周期內(nèi),以2種不同加密時序順利實現(xiàn)加密功能。
3.2 防護能力驗證
對防護效果進行驗證時,首先在Verilog硬件語言中對所設計的電路進行實現(xiàn),而后運用Vivado軟件合成.bit格式的文件并下載至Chipwhisperer實驗開發(fā)板中,得到如圖6所示的能量跡。
由圖6可知,在加入優(yōu)化的反向交錯結(jié)構(gòu)后,算法電路的加密延長了一個時鐘周期,但每個周期內(nèi)功耗特性與防護前基本一致,符合預期效果。
對加密的能量跡進行采集后,進一步對加入防護前后的電路進行攻擊并對比,對優(yōu)化的反向交錯結(jié)構(gòu)的防護能力進行分析。對防護前后的電路分別實施攻擊,結(jié)果如圖7所示。
防護前,攻擊樣本量為600時即可得到正確密鑰值,正確密鑰對應的相關系數(shù)值為0.225;防護后,樣本量為10 000時相關系數(shù)的值出現(xiàn)了多個尖峰,仍不足以得到正確密鑰值,攻擊前所設定的正確密鑰值對應的相關系數(shù)值降至0.016。根據(jù)以上結(jié)果可知,加入反向交錯的電路結(jié)構(gòu)能夠大大提升電路的抗能量攻擊能力。
3.3 性能驗證
對電路性能進行分析時在 Design Compiler上進行綜合實現(xiàn),對加入反向交錯結(jié)構(gòu)的電路進行性能評估,并與防護前的電路進行對比,結(jié)果如表2所示。
分析上表可知,在加入反向交錯結(jié)構(gòu)后,組合邏輯的增加導致了關鍵延遲增加,電路的最大頻率有小幅度的降低;加密周期數(shù)的增加使得防護后的吞吐率有所降低;但由于兩級寄存器的加入,時序收斂更加容易,使面積和等效與非門數(shù)目不增反降,一定程度上減小了資源消耗。隨機數(shù)的引入,對能量消耗起到了很好的混淆效果,使得能量攻擊難度加大。綜上所述,加入反向交錯結(jié)構(gòu)的電路基本達到了防護效果和電路性能的相對平衡。
4 結(jié)論
本文從功耗隨機化的角度出發(fā),提出了反向交錯的定義,設計出了滿足反向交錯的基本電路結(jié)構(gòu)并進行了優(yōu)化。最后將優(yōu)化的電路結(jié)構(gòu)應用到AES-128算法中,進行了多方面的驗證,結(jié)果證明本文設計的反向交錯的電路結(jié)構(gòu)具有較強的抗能量攻擊能力和較好的電路性能,具有較高的可參考性。
同時本文存在一些可改進的方面:設計電路時思路不夠靈活,選取的元件種類較為單一;優(yōu)化結(jié)構(gòu)中加入的寄存器R2利用率較低;時序分析較為簡單,在進行驗證時利用的部分工具和實際攻防有一定差別。
下一步將針對電路的最高頻率和吞吐率有所下降的問題進行進一步的優(yōu)化,使性能達到更優(yōu)水平。
參考文獻
[1] 馮登國,周永彬,劉繼業(yè),等.能量分析攻擊[M].北京:科學出版社,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隨機變換掩碼方案及抗DPA分析[J].密碼學報,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].東南大學學報(英文版),2017,33(3):260-265.
作者信息:
嚴迎建,鄭 震
(信息工程大學 三院,河南 鄭州450001)