《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 一種針對分組密碼的抗能量攻擊電路設(shè)計(jì)
一種針對分組密碼的抗能量攻擊電路設(shè)計(jì)
2019年電子技術(shù)應(yīng)用第8期
嚴(yán)迎建,鄭 震
信息工程大學(xué) 三院,河南 鄭州450001
摘要: 為提高分組密碼算法電路的抗能量攻擊能力,參考掩碼技術(shù)的思想,基于取反的基本操作提出了反向交錯(cuò)的概念,對反向交錯(cuò)的關(guān)鍵性質(zhì)進(jìn)行了證明,以此為依據(jù)設(shè)計(jì)了一種反向交錯(cuò)的電路結(jié)構(gòu),并通過加入一級寄存器的方式打亂時(shí)序?qū)R,得到了優(yōu)化的電路結(jié)構(gòu),通過功耗隨機(jī)化的方法提升了算法的抗能量攻擊能力。最后將該結(jié)構(gòu)應(yīng)用到AES-128算法電路中并進(jìn)行了加解密功能、防護(hù)功能和運(yùn)算性能三方面的驗(yàn)證,結(jié)果表明本文設(shè)計(jì)的電路結(jié)構(gòu)能正確進(jìn)行加解密,且具有較好的防護(hù)效果和運(yùn)算性能。
中圖分類號(hào): TP309.7
文獻(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.
An anti-power attack circuit design for block cipher
Yan Yingjian,Zheng Zhen
3rd College,Information Engineering University,Zhengzhou 450001,China
Abstract: In order to improve the anti-power attack capability of the block cipher algorithm circuit, the concept of reverse interleaving is proposed based on the idea of masking technology. The key properties of reverse staggering are proved. An inverted interleaved circuit structure is designed, the timing alignment is disturbed by adding a first-level register, and an optimized circuit structure is obtained. The anti-energy attack capability of the algorithm is improved by power randomization. Finally, the structure is applied to the AES-128 algorithm circuit and verified by encryption, decryption, protection and computational performance. The results show that the circuit structure designed in this paper can be correctly encrypted and decrypted, and has better protection effect and computing performance.
Key words : block cipher;anti-power analysis attack;masking technique;reverse interleaving;power randomization

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ò)

    dzyj1-1-x1.gif

dzyj1-1-x2.gif

    以上結(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所示。

dzyj1-t1.gif

    分組密碼的輪運(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所示。

dzyj1-t2.gif

    較之圖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中的序列生成。

dzyj1-b1.gif

    現(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)算的輸出)。

dzyj1-t3.gif

    下面討論優(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所示。

dzyj1-t4.gif

    下面從加解密功能、抗攻擊能力和電路性能三方面對本文所設(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所示。

dzyj1-t5.gif

    圖中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所示的能量跡。

dzyj1-t6.gif

    由圖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所示。

dzyj1-t7.gif

    防護(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所示。

dzyj1-b2.gif

    分析上表可知,在加入反向交錯(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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。