文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.05.011
中文引用格式: 嚴迎建,王壽成,許紀鈞,等. 面向并發錯誤檢測機制的故障靈敏度零值分析[J].電子技術應用,2017,43(5):48-51.
英文引用格式: Yan Yingjian,Wang Shoucheng,Xu Jijun,et al. Research on fault sensitivity zero-value analysis for concurrent error detection[J].Application of Electronic Technique,2017,43(5):48-51.
0 引言
故障靈敏度分析[1](Fault Sensitivity Analysis,FSA)是利用故障產生臨界條件與中間值的相關性推斷密鑰信息的新型故障攻擊方法。近年來,FSA攻擊逐漸走向成熟,具有極強的破壞性,能夠成功破解多種防御措施。自2010年提出以來,針對故障攻擊的防御方法如波動差分邏輯[2]、掩碼預充電邏輯[3-4]等已經被其成功破解,使用傳統抗故障攻擊方法已無法抵抗故障靈敏度分析。
同時,結合零值分析的故障靈敏分析方法越來越受到關注。文獻[5]針對掩碼實現的AES算法S盒實施了FSA攻擊,并提出了零值模型攻擊方法,實現了對密鑰信息的高效破解。文獻[6]針對并發錯誤檢測機制(Concurrent Error Detection,CED)[7-8]提出了一種高效的FSA攻擊方法,不同于模板攻擊以及碰撞攻擊,該方法僅需要知道故障是否發生即可完成密鑰破解,能夠在8個小時內完全破解密鑰信息。為提升FSA攻擊效率,本文在深入分析并發錯誤檢測機制的基礎上,提出了一種高效的FSA攻擊方法。
1 零值分析的基本原理研究
零值攻擊[9]是利用密碼算法零值的特殊區分特性作為區分模型的一種攻擊方法,具有非常高的攻擊效率,對密碼芯片具有很大的威脅性。最先提出的零值攻擊方法主要用于破解乘法掩碼技術[10],其理論依據是當乘法掩碼的輸入值為0時,其掩碼的輸出值為0,與掩碼的取值無關,導致零值輸入與非零值輸入時測得的能耗具有明顯的區別。攻擊者利用這個顯著區別作為區分函數,建立了基于差分能量攻擊的攻擊模型[11]。文獻[5]提出了針對掩碼AES的故障靈敏度零值分析方法,其攻擊模型基于故障靈敏度的區分模型提出,結果表明加法掩碼同樣存在零值模型的區分。
本文以并發錯誤檢測機制防護的AES算法為攻擊對象,收集故障靈敏度信息后,統計分析故障靈敏度的零值區分模型,確定區分零值輸入和非零值輸入的區分函數,從而達到攻擊目的,具體步驟如圖1所示。通過分析發現,并發錯誤檢測機制同樣存在可以被攻擊者利用的零值區分模型,因此本文利用該區分模型對CED實現的AES算法進行攻擊分析。
2 并發錯誤檢測機制通用評估模型研究
并發錯誤檢測機制是抵御故障攻擊的常用方法,通過檢測故障的存在,并將輸出置為零,用以阻止攻擊者收集故障輸出進行故障分析。為了建立一個統一的評估系統,本文構建了一種通用的并發錯誤檢測機制的架構,通過改變不同P操作的配置參數,實現對不同冗余機制的模擬,整體結構如圖2所示。
加密時,每輪運算需要兩個時鐘周期,第一個時鐘周期內完成計算步驟,即對寄存器1中數據通過數據路徑完成加密運算,將運算結果存儲至寄存器2中;第二個時鐘周期內完成校驗步驟,即將寄存器1中的數據再次加密,并將運算結果存儲在寄存器1中作為下一輪的輸入,同時將結果與寄存器2中的數據進行對比分析。若兩個數據相同,則加密運算正確,反之加密運算發生故障。
P操作的配置通過外部連接的控制信號PRNG實現,通過配置不同的P操作能夠選擇不同的并發錯誤檢測機制:
(1)將P配置為在每一輪的運算過程中兩個時鐘周期都運行,此時的并發錯誤檢測機制可以實現時間冗余;
(2)將P配置成在第一個時鐘周期中正常運行,而第二個時鐘輪中進行列循環右移,此時的并發錯誤檢測機制可以實現基于不變的混合冗余機制;
(3)在兩個時鐘周期中隨機選擇列順序,此時可以實現一種用于抵抗側信道攻擊的防御措施。
由上述分析可知,由于密鑰替代(SubBytes,SB)僅僅是對單個獨立字節進行操作,同時P操作只在完整列中有效,圖2所示CED電路不會影響面積或者性能。與此同時,通過對行移位操作位置進行簡單有效的修正與改進,P操作的控制由固定置換轉變為動態矩陣,列交換可以以任意方式進行,同時每一輪運算也不相同,列混合可能達到的正確置換的數量增至4!=24種,大大增加了攻擊難度,具有很強的靈活性、實用性、安全性和通用性。
3 區分模型的選取方案研究
3.1 區分模型的選取規則
為了降低FSA攻擊的計算復雜度,增加成功率,區分模型的選取應該遵循以下規則:
規則1:區分模型須能夠正確反映故障靈敏度零值攻擊的本質信息。
規則2:區分模型須具有清楚的區分特性,能夠易于觀察、便于統計。
規則3:盡可能實現在算法前兩輪中選擇攻擊點。
3.2 區分模型的選取
對AES算法S盒不同輸入下所需要的計算時間進行統計分析,其結果如圖3所示,具有以下規律:一是關鍵路徑延時與電路的輸入具有很強的相關性;二是關鍵路徑延時不僅與下一狀態輸入的值有關,與上一狀態的值同樣有關;三是當S盒的輸入值存在零值時得到穩定輸出需要的時間比其他情況要少。
相關研究表明,零值輸入的規律也適用于非掩碼電路,如復合域生成的S盒。S盒由求逆運算和仿射變換的復合來設計得到,當輸入為0時,所有的乘法都為零,關鍵路徑延時非常小。而引入毛刺時鐘后,關鍵路徑越小,受到時鐘變化的影響越小,出錯的概率也會大大減小,因此存在零值和其他值的正確率可以明顯區分的情況。對于AES算法而言,明文完成初始輪密鑰加后再進入輪運算,為了使S盒的輸入為零,明文字節與密鑰字節必須相等,即xj=kj,j表示字節數,j∈{1,…,16}。這一特點在求解密鑰的過程中可以充分利用,將會降低密鑰恢復的復雜度。
綜上所述,本文選取S盒的零值輸入與非零值輸入對應的正確率作為區分模型,通過分析零值與非零時的統計特性,根據計算結果的正確率來推斷出泄露的密鑰信息。
4 實驗結果分析
4.1 攻擊方法分析
綜合考慮來說,將攻擊目標選在第一輪更加簡單、直接、高效。具體的攻擊流程如下。
由于直接計算每一個明文字節的影響是不可能的,如果運算時時鐘脈沖引起了故障,僅僅表明16個字節中至少有一個引起了故障。因此,只有通過多次重復實驗,統計出每一個字節對應的正確率,同時可以根據需求丟棄一些不符合條件的密鑰候選。
算法1中ε的設置用來減小密鑰搜索空間,每次迭代過程中,設定值越大,則丟棄的密鑰候選值越多。同時,越大的ε將會增加錯誤丟棄正確密鑰候選的幾率,當一個字節的正確密鑰候選在前面的運行中被丟棄后,算法1將會丟棄其他所有的候選值,并跳轉到算法2中恢復密鑰信息,密鑰恢復流程如算法2:
算法2: 故障靈敏度零值分析的密鑰恢復方法
輸入:明文字節j候選的正確率,j*,閾值λ
4.2 攻擊結果分析
本節主要對基于不變的并發錯誤檢測機制展開研究,此時P操作配置為置換矩陣,攻擊目標為算法運算的第一輪,攻擊模型如圖4所示。
攻擊時,由于S盒時間延遲最長,因此改變時鐘頻率時,其最容易發生故障,通過同步檢測機制的判斷,可以收集第一輪生成的結果,進而通過E(error)的值統計正確率。由于AES算法的S盒可以獨立進行運算,因此攻擊目標選擇單個S盒。以第4個S盒為例進行攻擊分析。統計S盒輸入的不同取值下的正確率,可以得到圖5。結果表明,本文設計的區分模型能夠清晰地區分零值與非零值的狀態。
得到S盒輸入的正確率分布后,根據結果即可猜測密鑰信息。只有在S盒的輸入為0時,其正確率最高且具有良好的區分度。通過分析發現,S盒的輸入就是明文P經過與輪密鑰K的異或運算得到的,因此為了使S盒的輸入為零,只需要滿足式(1)即可。
由于明文已知,選定一個P即完成一次實驗,子密鑰遍歷256次完成256次加密,可得不同明文正確率如圖6所示。當P=53H時,正確率最高,表示S盒輸入為零,此時明文字節與密鑰字節相等。因此密鑰的猜測值為K=53H(二進制為83d)。
分析發現,基于零值分析的FSA攻擊不需要建立特定模型即可完成零值與非零值的區分,一組實驗即可完成分析,降低了分析的復雜度。為了展現故障靈敏度分析與零值分析的高效性,橫向對比其他方法,如表1所示。
表1對比了3種針對并發錯誤檢測機制的AES算法的攻擊方法。通過對比發現,零值分析具有顯著的優勢,其實現的實驗條件簡單,準確性高,且其計算復雜度相較于其他兩種方法都很低。
5 結論
本文基于并行錯誤檢測機制的故障靈敏度零值分析展開研究,實現了基于故障靈敏度的高效零值攻擊。本文設計的通用并行錯誤檢測機制評估模型,能夠實現不同并行錯誤檢測方案,并能評估每種方案的抗攻擊性能。實驗結果表明,本文提出的分析方法能夠高效準確地進行故障靈敏度分析。
參考文獻
[1] LI Y,SAKIYAMA K,GOMISAWA S,et al.Fault sensitivity analysis[M].Cryptographic Hardware and Embedded Systems(CHES 2010).Springer Berlin Heidelberg,2010:320-334.
[2] KRIS T,INGRID V.A logic level design methodology for a secure DPA resistant ASIC or FPGA implementation[C].Proceedings of the conference on Design,automation and test in Europe-Volume 1.IEEE Computer Society,2004:246-251.
[3] THOMAS P,STEFAN M.Masked dual-rail pre-charge logic:DPA-resistance without routing constraints[C].Cryptographic Hardware and Embedded Systems-CHES 2005.Springer Berlin Heidelberg,2005:172-186.
[4] 常小龍,丁國良,武翠霞,等.抗電磁側信道攻擊的AES S盒設計[J].計算機工程,2011,37(17):93-95.
[5] 王茜.分組密碼算法故障靈敏度分析研究與抗故障攻擊實現[D].北京:清華大學,2014.
[6] MISCHKE O,MORADI A,GUNEYSU T.Fault sensitivity analysis meets zero-value attack[J].IEEE Computer Society,2014:59-67.
[7] GUO X,MUKHOPADHYAY D,KARRI R.Provably secure concurrent error detection against differential fault analysis[J].Iacr Cryptology Eprint Archive,2014:1-24.
[8] KARRI R,WU K,MISHRA P,et al.Concurrent error detection schemes for fault-based side-channel cryptanalysis of symmetric block ciphers[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2002,21(12):1509-1517.
[9] 汪鵬君,郝李鵬,張躍軍.防御零值功耗攻擊的AES SubByte模塊設計及其VLSI實現[J].電子學報,2012,40(11):2183-2187.
[10] AKKAR M L,GIRAUD C.An implementation of DES and AES,secure against some attacks[M].Cryptographic Hardware and Embedded Systems(CHES 2001).Springer Berlin Heidelberg,2001:309-318.
[11] JOVAN D G,TYMEN C.Multiplicative masking and power analysis of AES[C].Revised Papers From the International Workshop on Cryptographic Hardware and Embedded Systems.Springer-Verlag,2002:31-47.
[12] MORADI A,MISCHKE O,PAAR C.One attack to rule them all: collision timing attack versus 42 AES ASIC cores[J].IEEE Transactions on Computers,2013,62(9):1786-1798.
[13] MISCHKE O,MORADI A,GUNEYSU T.Fault sensitivity analysis meet zero-value attack[C].IEEE the Workshop on Fault Diagnosis & Tolerance in Cryptography.2014:59-67.
作者信息:
嚴迎建,王壽成,許紀鈞,王 忠
(解放軍信息工程大學 密碼工程學院,河南 鄭州450001)