袁潤(rùn)杰, 朱翔, 韓建偉, 李悅, 馬英起, 上官士鵬, 王添
1. 中國(guó)科學(xué)院國(guó)家空間科學(xué)中心, 北京 100190
2. 中國(guó)科學(xué)院大學(xué), 北京 100049
隨著集成電路設(shè)計(jì)制造過(guò)程全球化的發(fā)展, 硬件木馬造成的安全問(wèn)題日益突出. 硬件木馬是設(shè)計(jì)者在芯片或者電子系統(tǒng)中故意植入的特殊模塊或缺陷模塊, 在被某些特殊條件觸發(fā)后能夠?qū)崿F(xiàn)對(duì)芯片的功能破壞或者信息泄露. 硬件木馬普遍具有隱藏性高、難以觸發(fā)、設(shè)計(jì)靈活、易于植入等特性, 這導(dǎo)致針對(duì)芯片安全的研究與防護(hù)具有很高難度[1,2].
目前主要的硬件木馬檢測(cè)方法有失效分析檢測(cè)方法、邏輯測(cè)試檢測(cè)方法、側(cè)信道檢測(cè)方法及軟件檢測(cè)方法等. 失效分析屬于破壞性檢測(cè), 需對(duì)被測(cè)電路逐層掃描后進(jìn)行逆向分析, 從而檢測(cè)木馬功能及位置[3].這將嚴(yán)重破壞芯片, 具有檢測(cè)難度大、成本高等缺點(diǎn). 邏輯測(cè)試檢測(cè)方法通過(guò)生成測(cè)試向量, 檢測(cè)芯片輸入、輸出及寄存器信息等電路狀態(tài), 從而分析木馬電路的功能[4–7]. 該檢測(cè)方法成本低, 但是針對(duì)不同功能、觸發(fā)概率的硬件木馬, 檢測(cè)難度大、消耗時(shí)間長(zhǎng). 側(cè)信道檢測(cè)方法基于對(duì)芯片功耗、瞬間信號(hào)、泄露電流、電磁輻射等的分析判斷硬件木馬功能與位置, 但受電路工藝偏差影響嚴(yán)重[8–14]. 軟件檢測(cè)方法可以利用機(jī)器學(xué)習(xí)對(duì)門級(jí)、寄存器級(jí)等網(wǎng)表硬件電路進(jìn)行檢測(cè), 針對(duì)特定特征的硬件木馬甄別程度高[15–17]. 但是需要獲取電路的網(wǎng)表級(jí)代碼, 應(yīng)用場(chǎng)景受限.
激光注入技術(shù)具有較高的時(shí)間和空間分辨性, 是高效的故障注入手段之一[18,19]. 本文創(chuàng)新點(diǎn)在于首次提出將激光注入技術(shù)應(yīng)用于硬件木馬檢測(cè)的方法, 可以彌補(bǔ)現(xiàn)階段檢測(cè)方法的不足, 以形成更為高效、精準(zhǔn)的檢測(cè)方法. 基于激光注入技術(shù)的硬件木馬檢測(cè)方法具有直接性強(qiáng)、應(yīng)用場(chǎng)景廣泛的特點(diǎn). 通過(guò)激光快速掃描主動(dòng)激活芯片中的硬件木馬, 可以達(dá)到快速識(shí)別的功能. 相比于邏輯測(cè)試通過(guò)生成測(cè)試向量激活硬件木馬的方法更為直接; 相比于側(cè)信道檢測(cè)方法, 基本不受電路工藝偏差影響. 這是一種器材經(jīng)濟(jì)性出色、實(shí)施方便、可控性高的非破壞性檢測(cè)方法. 由于激光作用于木馬觸發(fā)結(jié)構(gòu)的輸出信號(hào)存儲(chǔ)節(jié)點(diǎn), 只有含有邏輯觸發(fā)結(jié)構(gòu)的硬件木馬可以被此檢測(cè)方法激活.
本文以基于Xilinx 公司XC7K325T 芯片為載體的異步累加器硬件木馬作為研究對(duì)象, 使用激光注入技術(shù)成功激活不同觸發(fā)條件的異步累加器硬件木馬, 詳細(xì)闡述了該實(shí)驗(yàn)的流程和方法, 分析了不同組合邏輯硬件木馬觸發(fā)結(jié)構(gòu)對(duì)其激活概率的影響, 具體通過(guò)以下幾個(gè)部分展開: (1) 異步累加器硬件木馬的特征及FPGA 實(shí)現(xiàn); (2) 激光故障注入實(shí)驗(yàn)原理及裝置; (3) 激光注入激活硬件木馬實(shí)驗(yàn)過(guò)程及結(jié)果; (4) 上述實(shí)驗(yàn)結(jié)果的總結(jié)與展望.
硬件木馬主要由觸發(fā)結(jié)構(gòu)和負(fù)載結(jié)構(gòu)組成, 其中負(fù)載結(jié)構(gòu)的功能為實(shí)現(xiàn)攻擊行為, 觸發(fā)結(jié)構(gòu)的功能為控制木馬攻擊時(shí)機(jī)[2]. 密碼芯片是實(shí)現(xiàn)信息保密性、安全性的核心硬件載體, 易成為硬件木馬的攻擊對(duì)象.本文以基于FPGA 實(shí)現(xiàn)的AES 加密電路為研究對(duì)象, 植入設(shè)計(jì)的異步累加器硬件木馬, 開展激光故障注入激活硬件木馬的研究.
累加器型硬件木馬通常具有一定激活時(shí)間, 屬于延時(shí)激活硬件木馬. 累加器型硬件木馬可以分為同步累加器和異步累加器硬件木馬. 其中異步累加器硬件木馬屬于組合型硬件木馬, 木馬觸發(fā)條件與內(nèi)部信號(hào)組合邏輯相關(guān), 屬于內(nèi)部激活型硬件木馬. 異步累加器硬件木馬結(jié)構(gòu)如圖1 所示, 其觸發(fā)結(jié)構(gòu)僅由多位比較器與計(jì)數(shù)器組成, 通過(guò)設(shè)計(jì)組合邏輯可控制木馬激活時(shí)機(jī), 具有結(jié)構(gòu)簡(jiǎn)單、觸發(fā)概率低等特點(diǎn).
圖1 異步累加器型硬件木馬Figure 1 Asynchronous accumulator hardware Trojan
AES 高級(jí)加密算法屬于對(duì)稱加密算法, 算法加解密使用同一密鑰, 流程如圖2 所示. 明文與密鑰進(jìn)入AES 加密核心后生成密文, 再與密鑰輸入AES 解密核心輸出明文. AES 是基于有限域運(yùn)算的SPN 結(jié)構(gòu)迭代分組密碼, 本文所使用AES 算法分組長(zhǎng)度為128 位, 加密輪數(shù)為10 輪. 首先將明文與初始密鑰執(zhí)行異或運(yùn)算, 再進(jìn)行10 輪運(yùn)算后輸出密文. 每輪的具體操作依次為: 字節(jié)變換、行移位、列混淆以及輪密鑰加運(yùn)算, 其中第10 輪不執(zhí)行列混合運(yùn)算.
圖2 AES 高級(jí)加密算法加解密流程Figure 2 Encrypt and decrypt process of AES
本文使用Xilinx 公司XC7K325T 芯片作為實(shí)驗(yàn)對(duì)象, 該芯片使用28 nm 工藝, 含有326 080 個(gè)可配置邏輯塊(configurable logic block, CLB), 基本CLB 的邏輯資源如表1 所示.
表1 單CLB 邏輯資源Table 1 Resources of single CLB
在FPGA 的邏輯單元中, “或”、“與” 的邏輯功能由LUT 實(shí)現(xiàn), 其功能如圖3 所示. 在芯片初始化階段, LUT 將寫入不同地址對(duì)應(yīng)的1 bit 輸出數(shù)據(jù), 并存儲(chǔ)在16 bit 的SRAM 中. 電路運(yùn)行階段, LUT 根據(jù)不同的地址輸入, 輸出1 bit 信號(hào)控制硬件木馬負(fù)載結(jié)構(gòu)的狀態(tài). 對(duì)于“與” 的狀態(tài), 只有地址線“dcba”為“0xFF” 時(shí), 輸出線輸出高電平, 其余情況輸出低電平; 對(duì)于“或” 的狀態(tài), 地址線“dcba” 中含有大于等于一位為高電平時(shí), 輸出線則輸出高電平, 否則輸出低電平.
圖3 LUT 原理圖Figure 3 Principle of LUT
本文基于FPGA 實(shí)現(xiàn)原型硬件木馬用于激光注入實(shí)驗(yàn), 硬件木馬FPGA 實(shí)現(xiàn)方法如圖4 所示.FPGA 的主要功能是將上位機(jī)輸入的明文與密鑰在AES 加密核心中加密, 將密文返回上位機(jī). 其中“加密控制模塊” 的功能為解析上位機(jī)命令, 將128 位明文、密鑰輸入至“AES 加密核心模塊”; “AES 加密核心模塊” 進(jìn)行加密操作. 所設(shè)計(jì)的異步累加器硬件木馬植入于兩個(gè)模塊之間, 所傳輸?shù)拿魑摹癉ata”被硬件木馬觸發(fā)結(jié)構(gòu)采集, 當(dāng)其與木馬觸發(fā)模塊的組合邏輯比較器預(yù)設(shè)值相同時(shí), 觸發(fā)結(jié)構(gòu)產(chǎn)生一個(gè)觸發(fā)信號(hào)輸入至負(fù)載結(jié)構(gòu); 負(fù)載結(jié)構(gòu)篡改所傳輸數(shù)據(jù), 并將錯(cuò)誤數(shù)據(jù)傳入“AES 加密核心模塊”, 完成篡改數(shù)據(jù)的功能.
圖4 硬件木馬功能示意圖Figure 4 Function of hardware Trojan
通過(guò)改變硬件木馬觸發(fā)結(jié)構(gòu)的組合邏輯, 可以實(shí)現(xiàn)不同功能. 本文以探究激光注入激活硬件木馬的機(jī)理作為實(shí)驗(yàn)?zāi)康? 將以基礎(chǔ)的“或門”、“與門” 組合邏輯硬件木馬作為實(shí)驗(yàn)對(duì)象. 在兩模塊數(shù)據(jù)傳輸時(shí), 所傳輸數(shù)據(jù)“Data” 中(除最低位) 任意選擇9、4、2 位數(shù)據(jù)與木馬比較器預(yù)設(shè)值進(jìn)行異或運(yùn)算, 再將所有異或運(yùn)算結(jié)果進(jìn)行“與”、“或” 運(yùn)算, 如圖5 所示. 邏輯門輸出的信號(hào)作為硬件木馬的觸發(fā)信號(hào), 直接影響硬件木馬的狀態(tài).
圖5 硬件木馬觸發(fā)結(jié)構(gòu)功能Figure 5 Trigger mechanism of hardware Trojan
AES 電路總計(jì)占用1769 個(gè)LUT, 其中硬件木馬電路占用2 至14 個(gè)LUT, 硬件木馬規(guī)模占整體電路的比重為0.11% 至0.79%, 具有較低的資源占用率. 在輸入數(shù)據(jù)不滿足木馬觸發(fā)條件下, 硬件木馬將不對(duì)電路產(chǎn)生影響.
2.4.1 “或” 組合邏輯硬件木馬設(shè)計(jì)
本文設(shè)計(jì)的累加器硬件木馬觸發(fā)條件為9 位相或、4 位相或、2 位相或, 其分別占用14 個(gè)、5 個(gè)、1個(gè)查找表(look-up-table, LUT) 以及若干觸發(fā)器, 觸發(fā)結(jié)構(gòu)等效門數(shù)量分別為21、9、3. 其中4 位相或硬件木馬結(jié)構(gòu)圖如圖6 所示, 以此為例進(jìn)行討論.
圖6 4 位觸發(fā)結(jié)構(gòu)硬件木馬邏輯圖Figure 6 Diagram of 4-bit trigger mechanism of hardware Trojan
4 位相或觸發(fā)結(jié)構(gòu)邏輯單元“CLB 1” 至“CLB 4” 分別占用一個(gè)查找表, 功能為分別判斷4 位二進(jìn)制數(shù)據(jù)“Data 1” 至“Data 4” 是否與木馬設(shè)定值相同, 分別輸出相應(yīng)信號(hào)至“CLB load” 中. 邏輯單元“CLB load” 負(fù)責(zé)判斷是否激活木馬功能, 并輸出負(fù)載信號(hào). 其中“或門” 的實(shí)現(xiàn)取決于“LUT load”SRAM 中存儲(chǔ)的數(shù)據(jù), 該LUT 通過(guò)多路選擇器控制是否激活硬件木馬. 若激活硬件木馬, MUX 線路選擇輸入信號(hào)“LUT Load” 翻轉(zhuǎn), 并輸出“Data 0” 的反值, 將錯(cuò)誤數(shù)據(jù)傳輸至后續(xù)模塊. 其余9 位相或、2位相或電路結(jié)構(gòu)與上述類似.
2.4.2 “與” 組合邏輯硬件木馬設(shè)計(jì)
將觸發(fā)條件為9 位相與、4 位相與、2 位相與運(yùn)算的3 組異步累加器硬件木馬作為實(shí)驗(yàn)對(duì)象, 其分別占用14 個(gè)、5 個(gè)、1 個(gè)查找表以及若干觸發(fā)器, 觸發(fā)結(jié)構(gòu)等效門數(shù)量分別為22、6、2, 其中4 位相與硬件木馬結(jié)構(gòu)如圖6 所示.
4 位相與觸發(fā)結(jié)構(gòu)邏輯單元“CLB 1” 至“CLB 4” 分別占用一個(gè)查找表, 功能為分別判斷4 位二進(jìn)制數(shù)據(jù)“Data 1” 至“Data 4” 是否與木馬設(shè)定值相同, 分別輸出相應(yīng)信號(hào)至“CLB load” 中. 邏輯單元“CLB load” 負(fù)責(zé)判斷是否激活木馬功能, 并輸出負(fù)載信號(hào). 其中“與門” 的實(shí)現(xiàn)取決于“LUT load”SRAM 中存儲(chǔ)的數(shù)據(jù), 該LUT 通過(guò)多路選擇器控制是否激活硬件木馬. 若激活硬件木馬, MUX 線路選擇輸入信號(hào)翻轉(zhuǎn), 并輸出“Data 0” 的反, 將錯(cuò)誤數(shù)據(jù)傳輸至后續(xù)模塊. 其余9 位相與、2 位相與電路結(jié)構(gòu)與上述類似.
圖6 所示的反相器和多路選擇器構(gòu)成硬件木馬的負(fù)載結(jié)構(gòu), 其功能是在收到觸發(fā)信號(hào)后將“Data 0”取反并取代原始數(shù)據(jù).
為防止激光注入對(duì)AES 加密功能產(chǎn)生影響, 本研究使用PlanAhead 分別約束硬件木馬電路與AES加密電路至芯片不同位置. 由于該系列FPGA 背部襯底方向向上, 實(shí)際情況中硬件木馬位置與所約束位置左右相對(duì), 如圖7 所示. 通過(guò)控制激光掃描區(qū)域以避免激光對(duì)其他模塊產(chǎn)生影響.
圖7 硬件木馬約束位置Figure 7 Position of hardware Trojan
CMOS 工藝的硅基靜態(tài)存儲(chǔ)器(SRAM) 使用觸發(fā)器的狀態(tài), 即截止和飽和來(lái)表示“0” 或“1”. 正常情況下, 只有片選和寫信號(hào)線共同有效并且地址被選中, 才能改變觸發(fā)器的狀態(tài), 進(jìn)而改寫所存儲(chǔ)的內(nèi)容.但激光注入產(chǎn)生的瞬態(tài)脈沖信號(hào)不受這些限制[20–22], 當(dāng)輻照光子能量大于1.14 eV 時(shí)可產(chǎn)生額外電子空穴對(duì), 截止的PN 結(jié)將收集積累的大量電荷而導(dǎo)通. 本文使用的FPGA 中LUT 主要結(jié)構(gòu)由SRAM 組成.SRAM 由兩個(gè)交叉耦合的反相器組成, 如圖8 所示, 含有2 個(gè)PMOS 晶體管M2 與M4、與2 個(gè)NMOS晶體管M1 與M3. 若假設(shè)Q點(diǎn)高電平,Q′低電平, 即存儲(chǔ)數(shù)據(jù)“1”; M1、M3 為截止?fàn)顟B(tài), M2、M4 為導(dǎo)通狀態(tài); 此時(shí)激光注入之MOS 管M3, M3 將變?yōu)閷?dǎo)通狀態(tài), 使得Q為低電平, 將M1 與M2 組成的反相器輸出信號(hào)變?yōu)楦唠娖? 最終導(dǎo)致該SRAM 存儲(chǔ)數(shù)據(jù)發(fā)生翻轉(zhuǎn).
圖8 SRAM 結(jié)構(gòu)圖Figure 8 Structure of SRAM
硬件木馬的激活是由于負(fù)載結(jié)構(gòu)MUX 線路選擇信號(hào)發(fā)生翻轉(zhuǎn),從而輸出錯(cuò)誤數(shù)據(jù),如圖6 所示. AES電路處于正常工作狀態(tài)下, 當(dāng)觸發(fā)信號(hào)滿足觸發(fā)條件, 負(fù)載結(jié)構(gòu)輸入端信號(hào)翻轉(zhuǎn)將激活木馬. 復(fù)雜的觸發(fā)條件會(huì)顯著降低硬件木馬的觸發(fā)率, 提高檢測(cè)難度. 而激光注入檢測(cè)方法不僅可以通過(guò)激活觸發(fā)條件觸發(fā)硬件木馬, 也可通過(guò)直接翻轉(zhuǎn)硬件木馬負(fù)載結(jié)構(gòu)輸入端信號(hào)觸發(fā)硬件木馬. 可以避免復(fù)雜觸發(fā)條件對(duì)激活時(shí)間的影響, 達(dá)到快速激活木馬的目的.
對(duì)于多位觸發(fā)條件的硬件木馬, 其存在判定結(jié)構(gòu)電路決定激活負(fù)載功能的時(shí)機(jī), 該判定電路為激光故障注入的主要攻擊目標(biāo). LUT 作為FPGA 實(shí)現(xiàn)邏輯功能的主要載體, 具有實(shí)現(xiàn)判定電路的功能, 而LUT中的SRAM 為激光注入的敏感區(qū)域, 其數(shù)據(jù)翻轉(zhuǎn)將導(dǎo)致LUT 輸出信號(hào)的變化, 從而影響判定電路的輸出結(jié)果. 而判定電路的輸出直接影響硬件木馬負(fù)載結(jié)構(gòu)的激活狀態(tài). 本文中所涉及的“與邏輯” 硬件木馬為模擬激光激活“多觸發(fā)條件硬件木馬” 的手段, 實(shí)驗(yàn)結(jié)果表明激光掃描可以有效的激活該類多觸發(fā)條件的硬件木馬.
激光故障注入系統(tǒng)如圖9 所示, 主要分為六個(gè)部分: 1064 nm 皮秒脈沖激光器、聚焦透鏡及成像系統(tǒng)、微米級(jí)精密三維電動(dòng)平移臺(tái)、FPGA 被測(cè)電路、上位機(jī)和同步控制計(jì)算機(jī). 上位機(jī)與被測(cè)器件通過(guò)串口進(jìn)行實(shí)時(shí)通訊, 每相隔固定時(shí)間進(jìn)行一次AES 加密運(yùn)算, 上位機(jī)記錄所有的通信數(shù)據(jù); 激光器使用內(nèi)部觸發(fā)信號(hào), 頻率1000 Hz; 同步控制計(jì)算機(jī)實(shí)現(xiàn)對(duì)激光器和移動(dòng)臺(tái)的同步控制, 利用三維電動(dòng)平移臺(tái)x-y 方向的移動(dòng)自動(dòng)完成掃描. 并將每個(gè)輻照位置的激光脈沖能量、激光注入的物理坐標(biāo)輸入至同步控制計(jì)算機(jī).
圖9 激光注入平臺(tái)Figure 9 Platform of laser injection
激光故障注入激活硬件木馬功能的實(shí)驗(yàn)流程如圖10 所示, 將被測(cè)器件按照?qǐng)D9 所示位置擺放. 按照硬件木馬被約束的位置設(shè)置激光掃描的范圍. 初始化芯片, 并于測(cè)試器件中寫入程序、設(shè)置激光器參數(shù)、聚焦激光, 其中光斑直徑約為1.8 um. 通過(guò)CCD 相機(jī)的實(shí)時(shí)圖像, 將激光焦點(diǎn)定位在測(cè)試原點(diǎn). 設(shè)置激光單脈沖能量于670 pJ 至700 pJ 之間, 該能量范圍可以使本實(shí)驗(yàn)所用FPGA 芯片SRAM 發(fā)生翻轉(zhuǎn), 同時(shí)不會(huì)損傷電路. 由于需要控制變量、易于實(shí)驗(yàn), 使用激光器原廠1000 Hz 內(nèi)觸發(fā)信號(hào). 同時(shí)設(shè)置掃描起點(diǎn)A、折點(diǎn)B及掃描終點(diǎn)N, 使激光掃描區(qū)域可以完全覆蓋木馬電路區(qū)域, 如圖11 所示. 隨后由控制計(jì)算機(jī)控制三維平移臺(tái)按照設(shè)定進(jìn)行掃描, 設(shè)置步距為1 um. 為易于甄別硬件木馬觸發(fā)狀態(tài)、賦予串口足夠的緩沖時(shí)間, 上位機(jī)將128 位明文以500 ms 的間隔通過(guò)串口發(fā)送至被測(cè)電路, 并接收返回密文. 由于木馬設(shè)定, 其在無(wú)激光注入時(shí)不會(huì)觸發(fā). 直至上位機(jī)接收明文最低位取反, 記錄光斑相對(duì)位置, 并初始化電路繼續(xù)掃描. 此時(shí)激光成功激活硬件木馬, 所記錄光斑位置為硬件木馬敏感區(qū)域. 由于激光光斑相對(duì)于芯片位置可知, 所以可以根據(jù)該光斑位置確定木馬于芯片中的位置.
圖10 實(shí)驗(yàn)流程圖Figure 10 Diagram experiment
圖11 激光掃描路徑示意圖Figure 11 Path of laser
為防止測(cè)試向量激活硬件木馬影響實(shí)驗(yàn)結(jié)果, 根據(jù)2.4 節(jié)所示硬件木馬觸發(fā)條件篩選相應(yīng)的測(cè)試向量.對(duì)于4 位“與邏輯” 硬件木馬, 若其激活負(fù)載功能的條件為第2/3/4/5 位分別為1/0/0/1, 則128 位測(cè)試向量“xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx1 001x” 將激活硬件木馬,所以該測(cè)試向量將被過(guò)濾.
實(shí)驗(yàn)結(jié)果如表2 所示. 若激光注入至硬件木馬觸發(fā)結(jié)構(gòu)輸出信號(hào)所在SRAM, 有幾率將靜默信號(hào)翻轉(zhuǎn)為觸發(fā)信號(hào), 從而激活其負(fù)載結(jié)構(gòu)的相關(guān)功能. 本實(shí)驗(yàn)通過(guò)FPGA 傳輸至上位機(jī)的明文最低位是否發(fā)生翻轉(zhuǎn)為判斷依據(jù), 統(tǒng)計(jì)若干次實(shí)驗(yàn)中硬件木馬的激活次數(shù), 計(jì)算激活概率. 為了排除木馬自動(dòng)激活的情況,所有輸入測(cè)試向量均避免了激活木馬的可能性.
表2 “或邏輯” 異步累加器硬件木馬激活概率表Table 2 Activity ratio of “OR” hardware Trojan
由實(shí)驗(yàn)結(jié)果可知, 使用激光激活“或邏輯” 觸發(fā)條件硬件木馬的概率均高于60%, 驗(yàn)證了基于激光故障注入的方法激活異步累加器硬件木馬的可行性. 該木馬分別含有14 個(gè)、4 個(gè)、1 個(gè)LUT, 每個(gè)LUT被激光注入故障后, 均有概率直接激活硬件木馬. 不同位數(shù)“或邏輯” 硬件木馬激活概率存在差異, 是由于激光注入其不同觸發(fā)結(jié)構(gòu)或負(fù)載結(jié)構(gòu)輸入端造成的. 由實(shí)驗(yàn)原理可知, 僅含有1 個(gè)LUT 的硬件木馬, 為FPGA 可以實(shí)現(xiàn)硬件木馬功能的最小單元. 這表明激光在1 um 的掃描步距下, 能否激活“或邏輯” 硬件木馬與其觸發(fā)條件位數(shù)與LUT 數(shù)量無(wú)關(guān).
實(shí)驗(yàn)結(jié)果如表3 所示, 使用激光激活“與邏輯” 觸發(fā)條件硬件木馬的概率約為60%, 與實(shí)驗(yàn)1 結(jié)果接近. 這表明激光在1 um 的步距條件下, 能否激活“與邏輯” 硬件木馬與其觸發(fā)條件或LUT 數(shù)量無(wú)關(guān).
表3 “與邏輯” 異步累加器硬件木馬激活概率表Table 3 Activity ratio of “AND” Hardware Trojan
根據(jù)3.2 節(jié)所闡述的實(shí)驗(yàn)原理, “與邏輯” 觸發(fā)條件硬件木馬的激活是由于激光注入其負(fù)載結(jié)構(gòu)輸入端, 導(dǎo)致激活信號(hào)翻轉(zhuǎn)造成的. 這表明激光注入激活“與邏輯” 硬件木馬的檢測(cè)方法基本不受其低觸發(fā)概率特性的影響. 實(shí)驗(yàn)結(jié)果表明對(duì)于具有邏輯觸發(fā)結(jié)構(gòu)的硬件木馬, 激光注入方法與硬件木馬的觸發(fā)條件無(wú)關(guān).
本文以基于FPGA 的AES 加密電路異步累加器型硬件木馬作為實(shí)驗(yàn)對(duì)象, 使用1 um 步距激光故障注入的方法, 成功激活處于靜默狀態(tài)下的硬件木馬. 實(shí)驗(yàn)表明, 使用激光注入檢測(cè)方法, 具有較高概率主動(dòng)激活常見異步累加器硬件木馬, 并且激活概率受木馬低觸發(fā)概率特性的影響低, 不會(huì)破壞電路功能, 器材經(jīng)濟(jì)性出色. 同時(shí)激光單次掃描的時(shí)間短, 不同掃描次數(shù)下激活概率相近, 從而可以通過(guò)優(yōu)化掃描路線、掃描次數(shù)的方法進(jìn)一步減少檢測(cè)時(shí)間. 激光故障注入適用于含有邏輯觸發(fā)結(jié)構(gòu)的硬件木馬, 其不足在于實(shí)際情況下硬件木馬位置存在不確定性. 激光注入激活硬件木馬的情況外, 也會(huì)使AES 加密電路本身發(fā)生故障. 但由于激光故障注入具有注入位置可知的優(yōu)勢(shì), 當(dāng)激光注入AES 加密電路時(shí), 由于加密信息的隨機(jī)性導(dǎo)致產(chǎn)生隨時(shí)間無(wú)規(guī)律變化的故障, 同時(shí)AES 加密過(guò)程中的錯(cuò)誤可以通過(guò)密碼分析排除故障源[19]. 而注入于硬件木馬電路后其故障表現(xiàn)規(guī)律是固定的, 在特定情況下可以作為激活硬件木馬的依據(jù). 為了有效甄別硬件木馬引發(fā)的故障, 需要研究相應(yīng)的統(tǒng)計(jì)規(guī)律, 這是下一步研究的重點(diǎn). 綜上所述, 基于激光注入的硬件木馬檢測(cè)方法具有激活概率高、可實(shí)現(xiàn)木馬定位等特點(diǎn), 具有重要研究意義和廣泛應(yīng)用前景.