文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190546
中文引用格式: 嚴(yán)迎建,,鄭震. 一種針對(duì)分組密碼的抗能量攻擊電路設(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]中介紹了一種針對(duì)AES的掩碼方案,,使用卡諾圖來降低運(yùn)算復(fù)雜度,,使用單指令多數(shù)據(jù)技術(shù)執(zhí)行并行處理,該方案所實(shí)現(xiàn)的加密周期較短,,但就資源消耗方面來看其占用了較多資源,,是一種犧牲資源提升運(yùn)算速率的方案;GROSS H等人在文獻(xiàn)[3]中實(shí)現(xiàn)了在與專用電路相同的成本下對(duì)多元高階能量攻擊的抵抗,,該方案具有較高的靈活性,,但其適用范圍較小,;李浪等[4]設(shè)計(jì)了一種基于隨機(jī)選擇變換的掩碼方案,,通過隨機(jī)產(chǎn)生等概率漢明重量的掩碼組,對(duì)S盒使用隨機(jī)轉(zhuǎn)置矩陣變換,,對(duì)不同的輪函數(shù)加以相應(yīng)的掩碼防護(hù),,該方案保護(hù)了算法運(yùn)行過程的中間值,但是運(yùn)算效率降低較為明顯,;PU S等[5]針對(duì)SM4算法提出并實(shí)現(xiàn)了一種基于布爾矩陣的具有可證明安全性的掩碼方案,,但經(jīng)實(shí)驗(yàn)評(píng)估,該方案的總體性能較為一般,。此外還有很多學(xué)者對(duì)掩碼技術(shù)進(jìn)行了不同方面的研究,,總的來說,,目前國內(nèi)外對(duì)掩碼技術(shù)的研究較為廣泛,但其依然具有較大的可挖掘性,。
1 反向交錯(cuò)
以上結(jié)果表明,,當(dāng)樣本量N足夠大時(shí),對(duì)加入了反向交錯(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ù)值是否取反,。基本電路結(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)僅能防御針對(duì)寄存器R1的能量攻擊,,而對(duì)于針對(duì)密碼運(yùn)算部件(即輪運(yùn)算F中的部件)的攻擊則無法達(dá)到預(yù)期的防護(hù)效果,為實(shí)現(xiàn)功耗的隨機(jī)化,,須對(duì)電路結(jié)構(gòu)作進(jìn)一步優(yōu)化,。
為實(shí)現(xiàn)整體電路的功耗隨機(jī)化,本文結(jié)合打亂時(shí)序?qū)R[6-8]的對(duì)策,,參考插入互補(bǔ)寄存器[9-10]的方法,,在寄存器R1后加入一級(jí)寄存器R2,通過控制數(shù)據(jù)選擇器,,隨機(jī)地延長(zhǎng)加密周期以實(shí)現(xiàn)對(duì)時(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)有對(duì)分組密碼的能量攻擊均選擇首輪或末輪為攻擊點(diǎn),,所以對(duì)反向交錯(cuò)結(jié)構(gòu)的設(shè)計(jì)主要考慮到對(duì)首輪和末輪的防護(hù),。當(dāng)算法運(yùn)行到首輪或末輪時(shí),寄存器R2被R1賦值,,電路通過寄存器R2來控制電路進(jìn)行時(shí)序的打亂:當(dāng)控制信號(hào)為1時(shí),寄存器R2保證了電路對(duì)時(shí)序進(jìn)行打亂,;控制信號(hào)為0時(shí),,寄存器R2無效,數(shù)據(jù)選擇器均為0輸入端有效,,電路正常進(jìn)行輪運(yùn)算,。當(dāng)算法運(yùn)行到中間輪次時(shí),通過兩級(jí)取反保證了輪運(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)攻擊者對(duì)輪運(yùn)算外部的寄存器進(jìn)行攻擊時(shí),,不同樣本在電路的第一個(gè)時(shí)鐘周期內(nèi),,F(xiàn)(0)和~F(0)交替出現(xiàn),符合反向交錯(cuò)的條件,;當(dāng)攻擊者對(duì)輪運(yùn)算內(nèi)部的密碼運(yùn)算部件進(jìn)行攻擊時(shí),,在兩種時(shí)序下,第二個(gè)時(shí)鐘周期(即第二輪運(yùn)算)中輪運(yùn)算的輸入分別為F(0)和隨機(jī)數(shù),,攻擊者無法獲取信息泄漏,。
(2)末輪運(yùn)算抗攻擊能力
對(duì)于不同樣本,在第n+1個(gè)時(shí)鐘周期內(nèi),,數(shù)據(jù)選擇器的置數(shù)端為0,,寄存器R2無效,而寄存器R1在兩種時(shí)序下分別為F(隨機(jī)數(shù))和F(n-1),,攻擊者無法對(duì)輪運(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)證
為對(duì)本文提出的反向交錯(cuò)結(jié)構(gòu)的抗能量攻擊性能進(jìn)行驗(yàn)證,將優(yōu)化后的結(jié)構(gòu)加入到AES-128算法電路中,,其整體電路如圖4所示,。
下面從加解密功能、抗攻擊能力和電路性能三方面對(duì)本文所設(shè)計(jì)的結(jié)構(gòu)進(jìn)行驗(yàn)證,,并與未防護(hù)的電路進(jìn)行對(duì)比,。
3.1 加解密功能驗(yàn)證
基于優(yōu)化反向交錯(cuò)結(jié)構(gòu)的AES-128算法具有兩種不同加密時(shí)序,以加密功能為例,,使用VCS對(duì)加入防護(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)證
對(duì)防護(hù)效果進(jìn)行驗(yàn)證時(shí),首先在Verilog硬件語言中對(duì)所設(shè)計(jì)的電路進(jìn)行實(shí)現(xiàn),,而后運(yùn)用Vivado軟件合成.bit格式的文件并下載至Chipwhisperer實(shí)驗(yàn)開發(fā)板中,,得到如圖6所示的能量跡。
由圖6可知,,在加入優(yōu)化的反向交錯(cuò)結(jié)構(gòu)后,,算法電路的加密延長(zhǎng)了一個(gè)時(shí)鐘周期,但每個(gè)周期內(nèi)功耗特性與防護(hù)前基本一致,,符合預(yù)期效果,。
對(duì)加密的能量跡進(jìn)行采集后,進(jìn)一步對(duì)加入防護(hù)前后的電路進(jìn)行攻擊并對(duì)比,,對(duì)優(yōu)化的反向交錯(cuò)結(jié)構(gòu)的防護(hù)能力進(jìn)行分析,。對(duì)防護(hù)前后的電路分別實(shí)施攻擊,結(jié)果如圖7所示。
防護(hù)前,,攻擊樣本量為600時(shí)即可得到正確密鑰值,,正確密鑰對(duì)應(yīng)的相關(guān)系數(shù)值為0.225;防護(hù)后,,樣本量為10 000時(shí)相關(guān)系數(shù)的值出現(xiàn)了多個(gè)尖峰,,仍不足以得到正確密鑰值,攻擊前所設(shè)定的正確密鑰值對(duì)應(yīng)的相關(guān)系數(shù)值降至0.016,。根據(jù)以上結(jié)果可知,,加入反向交錯(cuò)的電路結(jié)構(gòu)能夠大大提升電路的抗能量攻擊能力。
3.3 性能驗(yàn)證
對(duì)電路性能進(jìn)行分析時(shí)在 Design Compiler上進(jìn)行綜合實(shí)現(xiàn),,對(duì)加入反向交錯(cuò)結(jié)構(gòu)的電路進(jìn)行性能評(píng)估,,并與防護(hù)前的電路進(jìn)行對(duì)比,結(jié)果如表2所示,。
分析上表可知,,在加入反向交錯(cuò)結(jié)構(gòu)后,組合邏輯的增加導(dǎo)致了關(guān)鍵延遲增加,,電路的最大頻率有小幅度的降低;加密周期數(shù)的增加使得防護(hù)后的吞吐率有所降低,;但由于兩級(jí)寄存器的加入,,時(shí)序收斂更加容易,使面積和等效與非門數(shù)目不增反降,,一定程度上減小了資源消耗,。隨機(jī)數(shù)的引入,對(duì)能量消耗起到了很好的混淆效果,,使得能量攻擊難度加大,。綜上所述,加入反向交錯(cuò)結(jié)構(gòu)的電路基本達(dá)到了防護(hù)效果和電路性能的相對(duì)平衡,。
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í)序分析較為簡(jiǎn)單,在進(jìn)行驗(yàn)證時(shí)利用的部分工具和實(shí)際攻防有一定差別,。
下一步將針對(duì)電路的最高頻率和吞吐率有所下降的問題進(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)