《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > ECC處理器時(shí)間隨機(jī)化抗DPA攻擊設(shè)計(jì)
ECC處理器時(shí)間隨機(jī)化抗DPA攻擊設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第10期
陳 琳,嚴(yán)迎建,周 超,李默然
(解放軍信息工程大學(xué),河南 鄭州450000)
摘要: 為了提高ECC密碼處理器的抗差分能量攻擊能力,提出了基于軟中斷的時(shí)間隨機(jī)化抗差分能量攻擊方法。首先分析了時(shí)間隨機(jī)化抗DPA攻擊的原理;然后結(jié)合ECC處理器的運(yùn)算特征,設(shè)計(jì)了基于軟中斷的時(shí)間隨機(jī)化電路;最后搭建了功耗仿真平臺(tái)。對(duì)設(shè)計(jì)進(jìn)行仿真分析,結(jié)果表明,本設(shè)計(jì)能夠滿足抵抗DPA攻擊,同時(shí)時(shí)間隨機(jī)化部分的功耗特性在能量跡上不易被區(qū)分剔除,達(dá)到了處理器抗DPA攻擊的設(shè)計(jì)要求。
中圖分類號(hào): TP302.2
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.10.028

中文引用格式: 陳琳,嚴(yán)迎建,周超,等. ECC處理器時(shí)間隨機(jī)化抗DPA攻擊設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2015,41(10):103-106.
英文引用格式: Chen Lin,Yan Yingjian,Zhou Chao,et al. The design of anti-DPA attack with time randomization for ECC processor[J].Application of Electronic Technique,2015,41(10):103-106.
The design of anti-DPA attack with time randomization for ECC processor
Chen Lin,Yan Yingjian,Zhou Chao,Li Moran
PLA Information Engineering University,Zhengzhou 450000,China
Abstract: In order to improve the resistance to differential power attack capability of the ECC cryptographic processor, this paper presents the method of time randomization based on soft interrupt resistance to DPA attack. First the principle of the time randomization against DPA attack is analyzed; and then combined with the operational characteristics of ECC processor, this paper designs a time randomized circuit based on soft interrupt request; finally, power simulation platform is built and the design result is simulated. Simulation results show that the design can resist the DPA attack, and power characteristics of time randomization part in energy trace are not easy to be culled. The design achieves requirements of against DPA attack for ECC cryptographic processor.
Key words : ECC;cipher processor;time randomization;differential power attack;soft interrupt

 

0 引言

  橢圓曲線密碼(Elliptic Curve Cryptography,ECC)[1]的算法安全性是建立在解橢圓曲線離散對(duì)數(shù)數(shù)學(xué)難題之上的,是目前公開密鑰密碼中單位比特長(zhǎng)度安全性最高的密碼算法[2]。但是當(dāng)密碼算法在硬件實(shí)現(xiàn)時(shí),其安全性不僅依賴算法和協(xié)議的安全性,還要依賴實(shí)現(xiàn)的安全性。能量分析(Power Analysis,PA)[3]攻擊通過(guò)分析密碼設(shè)備工作時(shí)的能量消耗來(lái)獲取密碼算法的秘密信息,避開了求解數(shù)學(xué)難題,對(duì)密碼系統(tǒng)的安全造成了很大威脅。能量攻擊主要分為簡(jiǎn)單能量(Simple Power Analysis,SPA)[4]攻擊和差分能量(Differential Power Analysis,DPA)[5]攻擊。其中DPA攻擊是利用密碼設(shè)備能量消耗對(duì)數(shù)據(jù)的依賴性,利用統(tǒng)計(jì)分析手段分析固定時(shí)刻設(shè)備的能量消耗,進(jìn)而獲取運(yùn)算過(guò)程中的秘密信息,成為最具威脅的能量攻擊手段,因此有必要對(duì)密碼設(shè)備進(jìn)行抗DPA攻擊設(shè)計(jì)。

  時(shí)間是影響DPA攻擊的重要因素,DPA攻擊之所以能夠成功,是因?yàn)槊艽a設(shè)備每次執(zhí)行的相應(yīng)運(yùn)算操作都會(huì)出現(xiàn)在固定的時(shí)間點(diǎn)上,因此可以從時(shí)間角度對(duì)密碼設(shè)備進(jìn)行抗DPA攻擊設(shè)計(jì)。時(shí)間隨機(jī)化通過(guò)在密碼設(shè)備運(yùn)行過(guò)程中插入隨機(jī)時(shí)間延遲,擾亂功耗與操作和數(shù)據(jù)的關(guān)系,使統(tǒng)計(jì)分析手段失效,進(jìn)而達(dá)到抗DPA攻擊的目的。目前常用的時(shí)間隨機(jī)化技術(shù)主要有多時(shí)鐘技術(shù)[6]、門控時(shí)鐘延遲技術(shù)[7]、冗余指令延遲等,其中多時(shí)鐘技術(shù)要求系統(tǒng)中有多個(gè)時(shí)鐘源,并且會(huì)增加系統(tǒng)的控制復(fù)雜度;門控時(shí)鐘延遲技術(shù)產(chǎn)生的隨機(jī)延遲部分表現(xiàn)在能量跡上為一段直線,很容易被區(qū)分剔除;由于ECC處理器的運(yùn)算指令為多周期指令,且不同指令的周期不同,導(dǎo)致時(shí)間延遲的基本粒度較大,不利于控制。

  針對(duì)上述問(wèn)題,本文在分析了時(shí)間隨機(jī)化抗能量攻擊原理的基礎(chǔ)上,結(jié)合ECC處理器的處理特點(diǎn),有針對(duì)性的設(shè)計(jì)了基于軟中斷的可配置時(shí)間隨機(jī)化抗DPA攻擊電路,并對(duì)其進(jìn)行仿真分析,結(jié)果表明本文設(shè)計(jì)的時(shí)間隨機(jī)化電路能夠達(dá)到抗能量攻擊的目的。

1 時(shí)間隨機(jī)化抗DPA攻擊原理分析

  設(shè)密碼設(shè)備正常工作時(shí)的功耗采樣信號(hào)為T[i][j],其中i為采樣樣本,j為采樣點(diǎn),由DPA攻擊的原理可知,需要樣本空間N足夠大,即需要采集N組功耗數(shù)據(jù)。定義一組區(qū)分函數(shù)D[i][j]→(0,1),將采集到的功耗數(shù)據(jù)分為兩組T0={T[i][j]|D[i][j]=0},T1={T[i][j]|D[i][j]=1}。當(dāng)N足夠大時(shí),集合T0、T1中的樣本數(shù)量近似相等,設(shè)為m,則采樣點(diǎn)j處的差分功耗為:

  1.png

  差分功耗的數(shù)學(xué)期望為:

  E(TD[j])=E(T[i][j]|D[i][j]=0)-E(T[i][j]|D[i][j]=1)

  設(shè)在運(yùn)算過(guò)程中插入隨機(jī)延遲t后的功耗采樣信號(hào)為T*[i][j],攻擊者不知道插入隨機(jī)時(shí)間延遲的情況下,仍然使用攻擊正常工作設(shè)備時(shí)構(gòu)造的區(qū)分函數(shù)D[i][j]來(lái)對(duì)數(shù)據(jù)進(jìn)行分組處理,得到T={T*[i][j]|D[i][j]=0},T={T*[i][j]|D[i][j]=1},則采樣點(diǎn)j處的差分功耗為:

  2.png

  此時(shí),差分功耗的數(shù)學(xué)期望為:

  E(T[j])=E(T*[i][j]|D[i][j]=0)-E(T*[i][j]|D[i][j]=1)

  設(shè)隨機(jī)延遲t有w種可能值,延遲t等于k的概率為pk,則插入時(shí)間延遲后的采樣信號(hào)可表示為:

  T*[i][j]=T[i][j-k]

  那么,插入隨機(jī)時(shí)間延遲后的差分功耗的數(shù)學(xué)期望可以表示為:

  3.png

  由DPA攻擊的原理知,正常情況下,當(dāng)密鑰猜測(cè)正確時(shí),差分功耗曲線會(huì)在時(shí)間點(diǎn)n處出現(xiàn)尖峰,設(shè)尖峰的幅值為A,其他點(diǎn)處與區(qū)分函數(shù)D不相關(guān),所以差分功耗值約等于0,即:

  4.png

  當(dāng)插入隨機(jī)延遲?駐t后,密鑰猜測(cè)正確時(shí)的功耗曲線尖峰會(huì)分布在w+1個(gè)位置處,每個(gè)位置的差分功耗值為pk A,即:

  5.jpg

  以時(shí)間延遲t服從均勻分布為例,即pk=1/(w+1),則加入隨機(jī)延遲后的差分功耗尖峰會(huì)均勻分布在w+1個(gè)位置上,且每個(gè)尖峰的幅值為A/(w+1)。

2 ECC處理器的時(shí)間隨機(jī)化設(shè)計(jì)

  為了更好地在ECC處理器中實(shí)現(xiàn)時(shí)間隨機(jī)化,達(dá)到抗能量攻擊的目的,必須分析時(shí)間隨機(jī)化的設(shè)計(jì)要求和ECC處理器的特征,提出合適的設(shè)計(jì)方案。

  2.1 ECC處理器時(shí)間隨機(jī)化設(shè)計(jì)方案

  結(jié)合上一節(jié)的分析,為了兼顧安全和效率兩個(gè)方面,時(shí)間隨機(jī)化設(shè)計(jì)需要滿足以下要求:

  (1)安全性好。功耗曲線上時(shí)間延遲部分不易被區(qū)分剔除,即要求時(shí)間延遲部分的功耗特性和算法中的正常運(yùn)算操作的功耗特性相似,并且每次的延時(shí)時(shí)間隨機(jī)產(chǎn)生。

  (2)靈活性高。在正常計(jì)算過(guò)程中插入的延遲時(shí)間越長(zhǎng),抗能量攻擊效果越好,但是對(duì)算法的效率影響也越大。因此,處理器的時(shí)間隨機(jī)化設(shè)計(jì)需要滿足不同的安全需求,能夠根據(jù)具體情況選擇一個(gè)安全與效率的平衡點(diǎn),設(shè)置隨機(jī)時(shí)間延遲的范圍。

  (3)方便使用。ECC處理器上的時(shí)間隨機(jī)化設(shè)計(jì),必須方便用戶使用,用戶可以根據(jù)需要在任意時(shí)刻執(zhí)行時(shí)間隨機(jī)化程序。

  綜合上述安全性、靈活性與易用性要求,本文借鑒軟中斷[8]的思想,對(duì)密碼處理器進(jìn)行時(shí)間隨機(jī)化設(shè)計(jì)。在ECC處理器指令RAM中,存入一段不影響密碼算法正常運(yùn)算的冗余指令,利用中斷指令來(lái)執(zhí)行中斷程序,隨機(jī)地調(diào)用冗余指令,當(dāng)中斷結(jié)束后,正常程序的執(zhí)行時(shí)間發(fā)生偏移,達(dá)到時(shí)間隨機(jī)化的目的。由于時(shí)間隨機(jī)化處理過(guò)程中執(zhí)行的是冗余指令,所以其功耗特征與正常運(yùn)算的功耗特征相似,單條能量跡中不易被區(qū)分。

  2.2 基于軟中斷的時(shí)間隨機(jī)化設(shè)計(jì)

  時(shí)間隨機(jī)化設(shè)計(jì)的一個(gè)關(guān)鍵因素是延遲時(shí)間的隨機(jī)可控,既關(guān)系到抗能量攻擊的效果,又關(guān)系到對(duì)密碼運(yùn)算的性能影響。為了設(shè)計(jì)靈活的控制單元,首先分析橢圓曲線密碼處理器的特征:

  (1)主要運(yùn)算模塊較少,橢圓曲線各層次的運(yùn)算最終都是基于有限域?qū)拥倪\(yùn)算實(shí)現(xiàn)的,域運(yùn)算種類比較單一,主要包括為模乘、模逆、模加、模減等運(yùn)算;

  (2)運(yùn)算指令周期較長(zhǎng),且同一運(yùn)算指令處理不同長(zhǎng)度數(shù)據(jù)時(shí)所用周期不同。表1給出了不同長(zhǎng)度曲線對(duì)應(yīng)的基本運(yùn)算單元的時(shí)鐘周期數(shù)。

007.jpg

  橢圓曲線密碼處理器的這些特征為時(shí)間隨機(jī)化控制帶來(lái)難度,不適合以指令條數(shù)為基本單位進(jìn)行時(shí)間隨機(jī)化控制。一方面,運(yùn)算指令周期較長(zhǎng),以指令條數(shù)為粒度進(jìn)行控制會(huì)對(duì)整個(gè)算法的性能影響較大;另一方面,不同的運(yùn)算指令的周期不同,且處理不同長(zhǎng)度曲線時(shí),同一運(yùn)算指令需要的時(shí)鐘周期不一致,這樣無(wú)法精確地控制插入的延時(shí)時(shí)間。考慮到用于實(shí)現(xiàn)隨機(jī)化的冗余指令對(duì)于密碼運(yùn)算沒(méi)有實(shí)際的意義,為了靈活控制隨機(jī)化的程度,設(shè)計(jì)了以時(shí)鐘周期為基本粒度的隨機(jī)延遲控制單元,如圖1所示。在執(zhí)行中斷程序時(shí),生成一個(gè)隨機(jī)數(shù)作為延時(shí)控制計(jì)數(shù)器的計(jì)數(shù)周期,當(dāng)計(jì)數(shù)器計(jì)數(shù)結(jié)束后,產(chǎn)生一個(gè)進(jìn)位信號(hào)CO。利用CO信號(hào)控制中斷的返回,一方面參與生成運(yùn)算模塊的結(jié)束信號(hào)Valid,結(jié)束正在執(zhí)行的冗余運(yùn)算;另一方面用于生成堆棧寄存器的使能信號(hào)PP_EN和程序計(jì)數(shù)器PC的地址選擇信號(hào)SEL,控制返回?cái)帱c(diǎn)執(zhí)行正常程序。隨機(jī)數(shù)的值就是執(zhí)行中斷的時(shí)間,即時(shí)間隨機(jī)化的延遲時(shí)間。

001.jpg

  采用軟中斷的時(shí)間隨機(jī)化設(shè)計(jì),能夠保證中斷時(shí)間延遲部分的功耗特性與正常運(yùn)算的功耗特性一致,在單條能量跡上無(wú)法將其區(qū)分出來(lái)。但是DPA攻擊是通過(guò)分析大量能量跡來(lái)實(shí)施的,當(dāng)隨機(jī)化的首地址相同時(shí),通過(guò)對(duì)比多條能量跡,仍然能夠?qū)⒀舆t時(shí)間短的隨機(jī)化部分區(qū)分出來(lái),如圖2所示。

002.jpg

  為了解決這個(gè)問(wèn)題,將冗余指令RAM的首地址加上可控的隨機(jī)偏移地址作為中斷的跳轉(zhuǎn)地址,如圖3所示,這樣執(zhí)行中斷的部分就很難在能量跡中被區(qū)分剔除。

  上述的延遲時(shí)間隨機(jī)化設(shè)計(jì)解決了中斷時(shí)間靈活控制的問(wèn)題,跳轉(zhuǎn)地址隨機(jī)化設(shè)計(jì)解決了隨機(jī)化功耗與正常運(yùn)算功耗一致性的問(wèn)題。本文設(shè)計(jì)了級(jí)數(shù)可變的偽隨機(jī)數(shù)發(fā)生器,通過(guò)實(shí)際需求配置其級(jí)數(shù)來(lái)控制隨機(jī)延遲和隨機(jī)偏移地址的范圍。在此基礎(chǔ)上設(shè)計(jì)了帶軟中斷的橢圓曲線密碼處理器控制結(jié)構(gòu),并設(shè)計(jì)了軟中斷指令,支持時(shí)間隨機(jī)化抗能量攻擊功能,如圖4所示。

003.jpg

3 時(shí)間隨機(jī)化抗能量攻擊能力驗(yàn)證

  由于抗DPA攻擊的時(shí)間隨機(jī)化設(shè)計(jì)要求每次運(yùn)算都要發(fā)生隨機(jī)時(shí)間延遲,并且時(shí)間延時(shí)部分對(duì)應(yīng)的功耗不能在單條能量跡上被區(qū)分,因此從三方面對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證:

  (1)仿真驗(yàn)證運(yùn)算操作的執(zhí)行時(shí)間是否發(fā)生隨機(jī)延遲;

  (2)采集處理器執(zhí)行密碼運(yùn)算的功耗曲線,觀察時(shí)間隨機(jī)化部分的功耗特性與正常運(yùn)算時(shí)的功耗特性是否一致;

  (3)進(jìn)行DPA攻擊仿真實(shí)驗(yàn),驗(yàn)證其抗DPA攻擊效果。

  3.1 隨機(jī)延遲仿真驗(yàn)證

  以Montgomery點(diǎn)乘算法[9]為例,在處理器執(zhí)行算法的過(guò)程中通過(guò)指令開啟中斷程序,任意兩次相同輸入的仿真中間結(jié)果如圖5所示。

004.jpg

  由圖5可以看出,執(zhí)行中斷程序時(shí),程序計(jì)數(shù)器PC(Current_PC)的值轉(zhuǎn)向冗余程序地址,每次跳轉(zhuǎn)地址不同,達(dá)到了跳轉(zhuǎn)地址隨機(jī)的設(shè)計(jì)要求,每次中斷返回時(shí)間不同,達(dá)到了時(shí)間隨機(jī)化的設(shè)計(jì)要求。

  3.2 單條能量跡功耗特性一致性驗(yàn)證

  采集處理器在執(zhí)行加入軟中斷的算法時(shí)的功耗信息,如圖6所示。

005.jpg

  可以看出冗余運(yùn)算部分與正常運(yùn)算程序的功耗特性一致,不容易被區(qū)分剔除,滿足了時(shí)間隨機(jī)化部分不可區(qū)分的設(shè)計(jì)要求。

  3.3 DPA攻擊仿真驗(yàn)證

  為了驗(yàn)證基于軟中斷的時(shí)間隨機(jī)化設(shè)計(jì)的抗能量攻擊能力,以Montgomery點(diǎn)乘算法為例,在執(zhí)行時(shí)啟動(dòng)軟中斷程序,分別配置隨機(jī)延遲范圍為0~32個(gè)時(shí)鐘周期和0~64個(gè)時(shí)鐘周期,對(duì)其分別進(jìn)行DPA攻擊實(shí)驗(yàn),并與正常運(yùn)算的DPA攻擊實(shí)驗(yàn)對(duì)比,結(jié)果如圖7所示。

006.jpg

  由圖7可知,正常運(yùn)算的差分功耗曲線上攻擊點(diǎn)位置出現(xiàn)了明顯的功耗尖峰,當(dāng)加入32以內(nèi)的隨機(jī)時(shí)鐘延遲時(shí),尖峰值分布在多個(gè)位置上,幅值明顯降低,理論上幅值是峰值的1/32,由于運(yùn)算多為多周期,同一數(shù)據(jù)保持較長(zhǎng)時(shí)間,加上噪聲等影響,導(dǎo)致實(shí)際效果與理論分析效果有部分差異;當(dāng)加入64以內(nèi)的延遲時(shí),差分功耗曲線上沒(méi)有明顯的尖峰值出現(xiàn),達(dá)到了時(shí)間隨機(jī)化抗DPA攻擊的要求。

4 結(jié)束語(yǔ)

  本文分析了時(shí)間隨機(jī)化抗DPA攻擊的原理,結(jié)合ECC處理器的處理特征,設(shè)計(jì)了基于軟中斷的時(shí)間隨機(jī)化電路。搭建了功耗仿真平臺(tái),驗(yàn)證了本設(shè)計(jì)的抗DPA攻擊能力。在處理器系統(tǒng)級(jí)進(jìn)行設(shè)計(jì),與具體的算法無(wú)關(guān),具有較強(qiáng)的通用性,滿足處理器的抗DPA攻擊需求。

參考文獻(xiàn)

  [1] Victor Miller.Use of elliptic curves in cryptography[A].In:H.C.Williams.Advances in Cryptography-CRYPTO′85[C].Heidelberg:Springer-Verlag,1986:417-426.

  [2] 倪樂(lè).面向橢圓曲線密碼的正規(guī)基模乘單元研究與設(shè)計(jì)[D].鄭州:信息工程大學(xué),2013.

  [3] Stefan Mangard,Elisabeth Oswald,Thomas Popp.能量分析攻擊[M].北京:科學(xué)出版社,2010.

  [4] 段二朋,嚴(yán)迎建,李佩之.針對(duì)AES密碼算法FPGA實(shí)現(xiàn)的CEMA攻擊[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(8):2926-2930.

  [5] BUCEK J,NOVOTNY M.Differential power analysis under constrained budget:low cost education of hackers[C].DigitalSystem Design(DSD),2013 Euromicro Conference on.IEEE,2013:645-648.

  [6] 樂(lè)大珩.抗能量攻擊的密碼芯片電路級(jí)防護(hù)關(guān)鍵技術(shù)研究[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2011.

  [7] 韓軍.信息安全芯片的防御攻擊技術(shù)研究[D].上海:復(fù)旦大學(xué),2006.

  [8] 馬忠梅,馬廣云,徐英慧,等.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2002.

  [9] Darrel Hankerson,Alfred Menezes,Scott Vanstone.橢圓曲線密碼學(xué)導(dǎo)論[M].北京:電子工業(yè)出版社,2005.


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