文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.10.028
中文引用格式: 陳琳,嚴迎建,周超,等. ECC處理器時間隨機化抗DPA攻擊設計[J].電子技術應用,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.
0 引言
橢圓曲線密碼(Elliptic Curve Cryptography,ECC)[1]的算法安全性是建立在解橢圓曲線離散對數(shù)數(shù)學難題之上的,是目前公開密鑰密碼中單位比特長度安全性最高的密碼算法[2]。但是當密碼算法在硬件實現(xiàn)時,其安全性不僅依賴算法和協(xié)議的安全性,還要依賴實現(xiàn)的安全性。能量分析(Power Analysis,PA)[3]攻擊通過分析密碼設備工作時的能量消耗來獲取密碼算法的秘密信息,避開了求解數(shù)學難題,對密碼系統(tǒng)的安全造成了很大威脅。能量攻擊主要分為簡單能量(Simple Power Analysis,SPA)[4]攻擊和差分能量(Differential Power Analysis,DPA)[5]攻擊。其中DPA攻擊是利用密碼設備能量消耗對數(shù)據(jù)的依賴性,利用統(tǒng)計分析手段分析固定時刻設備的能量消耗,進而獲取運算過程中的秘密信息,成為最具威脅的能量攻擊手段,因此有必要對密碼設備進行抗DPA攻擊設計。
時間是影響DPA攻擊的重要因素,DPA攻擊之所以能夠成功,是因為密碼設備每次執(zhí)行的相應運算操作都會出現(xiàn)在固定的時間點上,因此可以從時間角度對密碼設備進行抗DPA攻擊設計。時間隨機化通過在密碼設備運行過程中插入隨機時間延遲,擾亂功耗與操作和數(shù)據(jù)的關系,使統(tǒng)計分析手段失效,進而達到抗DPA攻擊的目的。目前常用的時間隨機化技術主要有多時鐘技術[6]、門控時鐘延遲技術[7]、冗余指令延遲等,其中多時鐘技術要求系統(tǒng)中有多個時鐘源,并且會增加系統(tǒng)的控制復雜度;門控時鐘延遲技術產(chǎn)生的隨機延遲部分表現(xiàn)在能量跡上為一段直線,很容易被區(qū)分剔除;由于ECC處理器的運算指令為多周期指令,且不同指令的周期不同,導致時間延遲的基本粒度較大,不利于控制。
針對上述問題,本文在分析了時間隨機化抗能量攻擊原理的基礎上,結合ECC處理器的處理特點,有針對性的設計了基于軟中斷的可配置時間隨機化抗DPA攻擊電路,并對其進行仿真分析,結果表明本文設計的時間隨機化電路能夠達到抗能量攻擊的目的。
1 時間隨機化抗DPA攻擊原理分析
設密碼設備正常工作時的功耗采樣信號為T[i][j],其中i為采樣樣本,j為采樣點,由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}。當N足夠大時,集合T0、T1中的樣本數(shù)量近似相等,設為m,則采樣點j處的差分功耗為:
差分功耗的數(shù)學期望為:
E(TD[j])=E(T[i][j]|D[i][j]=0)-E(T[i][j]|D[i][j]=1)
設在運算過程中插入隨機延遲t后的功耗采樣信號為T*[i][j],攻擊者不知道插入隨機時間延遲的情況下,仍然使用攻擊正常工作設備時構造的區(qū)分函數(shù)D[i][j]來對數(shù)據(jù)進行分組處理,得到T={T*[i][j]|D[i][j]=0},T={T*[i][j]|D[i][j]=1},則采樣點j處的差分功耗為:
此時,差分功耗的數(shù)學期望為:
E(T[j])=E(T*[i][j]|D[i][j]=0)-E(T*[i][j]|D[i][j]=1)
設隨機延遲t有w種可能值,延遲t等于k的概率為pk,則插入時間延遲后的采樣信號可表示為:
T*[i][j]=T[i][j-k]
那么,插入隨機時間延遲后的差分功耗的數(shù)學期望可以表示為:
由DPA攻擊的原理知,正常情況下,當密鑰猜測正確時,差分功耗曲線會在時間點n處出現(xiàn)尖峰,設尖峰的幅值為A,其他點處與區(qū)分函數(shù)D不相關,所以差分功耗值約等于0,即:
當插入隨機延遲?駐t后,密鑰猜測正確時的功耗曲線尖峰會分布在w+1個位置處,每個位置的差分功耗值為pk A,即:
以時間延遲t服從均勻分布為例,即pk=1/(w+1),則加入隨機延遲后的差分功耗尖峰會均勻分布在w+1個位置上,且每個尖峰的幅值為A/(w+1)。
2 ECC處理器的時間隨機化設計
為了更好地在ECC處理器中實現(xiàn)時間隨機化,達到抗能量攻擊的目的,必須分析時間隨機化的設計要求和ECC處理器的特征,提出合適的設計方案。
2.1 ECC處理器時間隨機化設計方案
結合上一節(jié)的分析,為了兼顧安全和效率兩個方面,時間隨機化設計需要滿足以下要求:
(1)安全性好。功耗曲線上時間延遲部分不易被區(qū)分剔除,即要求時間延遲部分的功耗特性和算法中的正常運算操作的功耗特性相似,并且每次的延時時間隨機產(chǎn)生。
(2)靈活性高。在正常計算過程中插入的延遲時間越長,抗能量攻擊效果越好,但是對算法的效率影響也越大。因此,處理器的時間隨機化設計需要滿足不同的安全需求,能夠根據(jù)具體情況選擇一個安全與效率的平衡點,設置隨機時間延遲的范圍。
(3)方便使用。ECC處理器上的時間隨機化設計,必須方便用戶使用,用戶可以根據(jù)需要在任意時刻執(zhí)行時間隨機化程序。
綜合上述安全性、靈活性與易用性要求,本文借鑒軟中斷[8]的思想,對密碼處理器進行時間隨機化設計。在ECC處理器指令RAM中,存入一段不影響密碼算法正常運算的冗余指令,利用中斷指令來執(zhí)行中斷程序,隨機地調(diào)用冗余指令,當中斷結束后,正常程序的執(zhí)行時間發(fā)生偏移,達到時間隨機化的目的。由于時間隨機化處理過程中執(zhí)行的是冗余指令,所以其功耗特征與正常運算的功耗特征相似,單條能量跡中不易被區(qū)分。
2.2 基于軟中斷的時間隨機化設計
時間隨機化設計的一個關鍵因素是延遲時間的隨機可控,既關系到抗能量攻擊的效果,又關系到對密碼運算的性能影響。為了設計靈活的控制單元,首先分析橢圓曲線密碼處理器的特征:
(1)主要運算模塊較少,橢圓曲線各層次的運算最終都是基于有限域?qū)拥倪\算實現(xiàn)的,域運算種類比較單一,主要包括為模乘、模逆、模加、模減等運算;
(2)運算指令周期較長,且同一運算指令處理不同長度數(shù)據(jù)時所用周期不同。表1給出了不同長度曲線對應的基本運算單元的時鐘周期數(shù)。
橢圓曲線密碼處理器的這些特征為時間隨機化控制帶來難度,不適合以指令條數(shù)為基本單位進行時間隨機化控制。一方面,運算指令周期較長,以指令條數(shù)為粒度進行控制會對整個算法的性能影響較大;另一方面,不同的運算指令的周期不同,且處理不同長度曲線時,同一運算指令需要的時鐘周期不一致,這樣無法精確地控制插入的延時時間??紤]到用于實現(xiàn)隨機化的冗余指令對于密碼運算沒有實際的意義,為了靈活控制隨機化的程度,設計了以時鐘周期為基本粒度的隨機延遲控制單元,如圖1所示。在執(zhí)行中斷程序時,生成一個隨機數(shù)作為延時控制計數(shù)器的計數(shù)周期,當計數(shù)器計數(shù)結束后,產(chǎn)生一個進位信號CO。利用CO信號控制中斷的返回,一方面參與生成運算模塊的結束信號Valid,結束正在執(zhí)行的冗余運算;另一方面用于生成堆棧寄存器的使能信號PP_EN和程序計數(shù)器PC的地址選擇信號SEL,控制返回斷點執(zhí)行正常程序。隨機數(shù)的值就是執(zhí)行中斷的時間,即時間隨機化的延遲時間。
采用軟中斷的時間隨機化設計,能夠保證中斷時間延遲部分的功耗特性與正常運算的功耗特性一致,在單條能量跡上無法將其區(qū)分出來。但是DPA攻擊是通過分析大量能量跡來實施的,當隨機化的首地址相同時,通過對比多條能量跡,仍然能夠?qū)⒀舆t時間短的隨機化部分區(qū)分出來,如圖2所示。
為了解決這個問題,將冗余指令RAM的首地址加上可控的隨機偏移地址作為中斷的跳轉(zhuǎn)地址,如圖3所示,這樣執(zhí)行中斷的部分就很難在能量跡中被區(qū)分剔除。
上述的延遲時間隨機化設計解決了中斷時間靈活控制的問題,跳轉(zhuǎn)地址隨機化設計解決了隨機化功耗與正常運算功耗一致性的問題。本文設計了級數(shù)可變的偽隨機數(shù)發(fā)生器,通過實際需求配置其級數(shù)來控制隨機延遲和隨機偏移地址的范圍。在此基礎上設計了帶軟中斷的橢圓曲線密碼處理器控制結構,并設計了軟中斷指令,支持時間隨機化抗能量攻擊功能,如圖4所示。
3 時間隨機化抗能量攻擊能力驗證
由于抗DPA攻擊的時間隨機化設計要求每次運算都要發(fā)生隨機時間延遲,并且時間延時部分對應的功耗不能在單條能量跡上被區(qū)分,因此從三方面對設計進行驗證:
(1)仿真驗證運算操作的執(zhí)行時間是否發(fā)生隨機延遲;
(2)采集處理器執(zhí)行密碼運算的功耗曲線,觀察時間隨機化部分的功耗特性與正常運算時的功耗特性是否一致;
(3)進行DPA攻擊仿真實驗,驗證其抗DPA攻擊效果。
3.1 隨機延遲仿真驗證
以Montgomery點乘算法[9]為例,在處理器執(zhí)行算法的過程中通過指令開啟中斷程序,任意兩次相同輸入的仿真中間結果如圖5所示。
由圖5可以看出,執(zhí)行中斷程序時,程序計數(shù)器PC(Current_PC)的值轉(zhuǎn)向冗余程序地址,每次跳轉(zhuǎn)地址不同,達到了跳轉(zhuǎn)地址隨機的設計要求,每次中斷返回時間不同,達到了時間隨機化的設計要求。
3.2 單條能量跡功耗特性一致性驗證
采集處理器在執(zhí)行加入軟中斷的算法時的功耗信息,如圖6所示。
可以看出冗余運算部分與正常運算程序的功耗特性一致,不容易被區(qū)分剔除,滿足了時間隨機化部分不可區(qū)分的設計要求。
3.3 DPA攻擊仿真驗證
為了驗證基于軟中斷的時間隨機化設計的抗能量攻擊能力,以Montgomery點乘算法為例,在執(zhí)行時啟動軟中斷程序,分別配置隨機延遲范圍為0~32個時鐘周期和0~64個時鐘周期,對其分別進行DPA攻擊實驗,并與正常運算的DPA攻擊實驗對比,結果如圖7所示。
由圖7可知,正常運算的差分功耗曲線上攻擊點位置出現(xiàn)了明顯的功耗尖峰,當加入32以內(nèi)的隨機時鐘延遲時,尖峰值分布在多個位置上,幅值明顯降低,理論上幅值是峰值的1/32,由于運算多為多周期,同一數(shù)據(jù)保持較長時間,加上噪聲等影響,導致實際效果與理論分析效果有部分差異;當加入64以內(nèi)的延遲時,差分功耗曲線上沒有明顯的尖峰值出現(xiàn),達到了時間隨機化抗DPA攻擊的要求。
4 結束語
本文分析了時間隨機化抗DPA攻擊的原理,結合ECC處理器的處理特征,設計了基于軟中斷的時間隨機化電路。搭建了功耗仿真平臺,驗證了本設計的抗DPA攻擊能力。在處理器系統(tǒng)級進行設計,與具體的算法無關,具有較強的通用性,滿足處理器的抗DPA攻擊需求。
參考文獻
[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] 倪樂.面向橢圓曲線密碼的正規(guī)基模乘單元研究與設計[D].鄭州:信息工程大學,2013.
[3] Stefan Mangard,Elisabeth Oswald,Thomas Popp.能量分析攻擊[M].北京:科學出版社,2010.
[4] 段二朋,嚴迎建,李佩之.針對AES密碼算法FPGA實現(xiàn)的CEMA攻擊[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] 樂大珩.抗能量攻擊的密碼芯片電路級防護關鍵技術研究[D].長沙:國防科學技術大學,2011.
[7] 韓軍.信息安全芯片的防御攻擊技術研究[D].上海:復旦大學,2006.
[8] 馬忠梅,馬廣云,徐英慧,等.ARM嵌入式處理器結構與應用基礎[M].北京:北京航空航天大學出版社,2002.
[9] Darrel Hankerson,Alfred Menezes,Scott Vanstone.橢圓曲線密碼學導論[M].北京:電子工業(yè)出版社,2005.