姚茂群,李聰輝
(杭州師范大學信息科學與技術學院,浙江 杭州 311121)
自P. Kocher提出簡單功耗分析(simple power analysis, SPA)攻擊和差分功耗分析(differential power analysis,DPA)攻擊方法以來,研究者們的注意力不再僅集中于加強密碼算法協議的安全性方面,而且開始關注密碼元器件在運行時不可避免會產生的側信道信息方面.功耗分析攻擊作為側信道攻擊中有效且易操作的攻擊方法,近年來已受到較多的關注[1-4].功耗分析攻擊利用密碼元器件在運行時所產生的運算結果進行與功耗之間的相關性分析,攻擊者利用這種相關性可以分析出密碼元器件中的敏感數據或者秘密數據,從而造成數據泄露.當前,防范功耗分析攻擊的方法主要分為算法級和電路級兩種層次.算法級的防護方法主要有動態(tài)重構技術[5-7]、算法級掩碼技術[8-11]等.算法級的防護方法忽略了電路本身所具有的功耗特性,在密碼協議的算法上進行改進;電路級的防護技術關注于密碼元器件底部的電路結構而不是密碼算法本身,通常需要設計新型的電路邏輯單元,因而更具有通用性.電路級的防護技術又可以分為功耗恒定技術和功耗隨機化技術.功耗恒定技術主要采用雙軌預充電邏輯結構,可以使電路的功耗不隨運算結果的變化而變化.功耗隨機化技術主要利用電路級掩碼技術[12-13],通過在邏輯單元中加入隨機掩碼,使每個單元的瞬態(tài)功耗服從均衡分布.
近年來,國際上已經提出了多種電路邏輯來抵抗功耗分析攻擊,例如基于雙軌預充電邏輯結構(dual rail pre-charge logic,DRP Logic), Tiri 等提出的行波動態(tài)差分邏輯(wave dynamic differential logic,WDDL)電路[14],樂大珩提出的基于查找表差分邏輯(LUT-based differential logic, LBDL)[15],王晨旭提出的差分傳輸管預充電邏輯(differential pass-transistor pre-charge logic, DP2L)[16]等.這些電路都具有功耗恒定特性,可以在一定程度上消除邏輯電路的運算結果與功耗之間的相關性.利用Hspice對DP2L電路進行分析,發(fā)現該電路在不同輸入信號情況下,還無法達到完全的功耗恒定,仍然存在被功耗攻擊的風險.因此,本文對該邏輯電路進行改進,同時加入電路級掩碼技術.即使攻擊者獲得電路的輸入信號,由于隨機掩碼的存在,攻擊者仍然無法獲得準確的運算結果,增強其抗功耗攻擊的能力.
雙軌預充電邏輯結構被廣泛應用于具有功耗恒定特性的邏輯電路設計當中,主要利用了CMOS邏輯單元在信號輸出時的功耗特點進行設計,即該類型的電路只有在輸出信號發(fā)生“0→1”或“1→0”翻轉時才消耗能量,其他情況下不消耗能量.之后利用兩個對稱的互補單軌電路組成雙軌電路,使整個電路的輸出信號翻轉率恒定,從而達到功耗恒定的特性.在預充電階段,所有輸入信號的取值都為低電平“0”,雙軌(單軌)預充電邏輯電路的輸出也都為邏輯值“0”.在求值階段,雙軌(單軌)預充電邏輯電路輸出正常的邏輯運算值.其中對于雙軌預充電邏輯電路來說,兩個輸出端為互補信號.
當雙軌預充電邏輯電路從預充電階段進入求值階段時,兩個互補輸出端中有且僅有一個會發(fā)生“0→1”翻轉,而另一個將保持“0”不變.當從求值階段進入預充電階段時,也有且僅有一個發(fā)生“1→0”翻轉,另一個保持“0”不變,這就使雙軌預充電邏輯電路具有恒定的信號翻轉率,成為功耗恒定的理論基礎.
圖1 DP2L單軌或邏輯門Fig.1 DP2L single-rail OR gate
圖2(a)、(b)、(c)、(d)分別是輸入信號為(0,0)、(0,1)、(1,0)和(1,1)時的電源端瞬態(tài)電流.有明顯電流峰值的部分為電路進入求值階段且輸出信號發(fā)生翻轉時所產生的電源端瞬態(tài)電流,其中圖2(a)由于輸出信號未發(fā)生翻轉,產生的電流很小.每個輸入信號以2.3 ns為一個周期運行4次以保證實驗數據的準確性.由圖2可知,當輸入信號不同時,電源端的電流出現差異,這也會造成一定程度的功耗信息泄露,即存在一定程度上的功耗與運算結果的相關性,存在被功耗攻擊的風險.
圖2 DP2L單軌或邏輯門瞬態(tài)電流曲線Fig.2 Current of the power supply terminal of DP2L singel-rail OR gate
圖3 改進后的DP2L單軌或邏輯門Fig.3 Improved DP2L single-rail OR gate
DP2L電路在不同輸入信號條件下具有不同的功耗特性,對該電路進行改進.圖3為改進后的DP2L單軌輸出或邏輯門.
圖4 MDP2L單軌或邏輯門Fig.4 MDP2L single-rail OR gate
以上述改進電路為基礎,將掩碼技術引入其中,設計了具有掩碼功能的掩碼型差分傳輸管預充電邏輯(masked differential pass-transistor precharge logic, MDP2L)電路.圖4為MDP2L單軌或邏輯門,左側由兩部分組成,上半部分為或邏輯門的主要部分,下半部分為或非邏輯門的主要部分.隨機掩碼值m的取值不同時,會形成兩條不同的通路.當m=0時,q為未掩碼值的正邏輯輸出;當m=1時,q為未掩碼值的負邏輯輸出.由于隨機數的取值具有相同的可能性,因此該電路在此部分的輸出值(0/1)也具有相同的概率,在密碼芯片輸出時利用掩碼轉換為正常邏輯值.根據該設計原理,只需對掩碼的位置進行互換,就可得到相同結構的MDP2L單軌或非邏輯門.
利用Hspice軟件對圖4所示電路進行模擬仿真實驗,實驗方法與圖2所使用的方法相同,并設隨機掩碼值m為0,實驗結果如圖5所示.由圖可知,當輸出信號發(fā)生翻轉時,不管輸入信號的取值如何,電源端電流(功耗)都是近似相等的.
圖5 MDP2L單軌或邏輯門瞬態(tài)電流曲線Fig.5 Current of the power supply terminal of MDP2L single-rail OR gate
將MDP2L單軌“或”邏輯門與MDP2L單軌“或非”邏輯門相組合,就構成了MDP2L雙軌輸出“或”邏輯門(圖6).若要實現MDP2L雙軌輸出“或非”邏輯門,只需要將兩條輸出交叉換線即可.
對圖6所示的電路進行Hspice模擬仿真測試,設隨機掩碼值m為0,且以2 ns為一個周期,每個周期的輸入信號(a,b)分別為(0,0)、(0,1)、(1,0)和(1,1).有明顯電流峰值的部分為求值階段,其余都為預充電階段,實驗結果如圖7所示.由圖7可知,無論輸入信號為何值,該電源端的電流大小(功耗)都是非常接近的,即邏輯電路的運算結果與功耗之間的聯系被一定程度地削弱.隨機掩碼的存在又可使電路的輸出結果隨機化,只需在使用時將其轉換成正確的數值即可.設隨機掩碼值m為1,得到的實驗結果與圖7完全相同,即隨機掩碼的取值不影響電路運行時的功耗.
圖6 MDP2L雙軌或邏輯門Fig.6 MDP2L double-rail OR gate圖7 MDP2L雙軌或邏輯門電源端瞬態(tài)電流曲線Fig.7 Current of the power supply terminal of MDP2L double-rail OR gate
為驗證其功耗恒定特性,并與國際上同類型邏輯電路比較,引入常用的衡量功耗恒定特性的評價指標:標準化能量偏差(normalized energy deviation, NED)[14].其定義為
式中,E是邏輯電路在一個運算周期內所產生的功耗值的集合,取值范圍在[0,1],且數值越小表明功耗恒定性和抗功耗攻擊的性能越好.
表1 同類型邏輯實現的門電路標準化能量偏差對比Tab.1 NED of gate implemented using the same logic type
表1列出了國際上同類型邏輯電路實現的與門和或門的標準化能量偏差數據對比,MDP2L雙軌電路具有較低的NED值,表明該電路減少了電路運算結果與功耗之間的相關性,提高了電路抗功耗攻擊的能力.
在不同輸入信號的情況下,DP2L電路晶體管導通數目不同,可能無法完全達到功耗恒定特性.本文提出了改進后的新型DP2L電路,并以此為基礎引入掩碼技術,提出了MDP2L電路.與其他同類型電路相比,MDP2L電路具有較低的NED值,可增強其抗功耗攻擊能力,為密碼元件的安全性和可靠性提供進一步保障.