趙毅強(qiáng) ,劉阿強(qiáng) ,何家驥 ,劉燕江
(1. 天津大學(xué)微電子學(xué)院,天津 300072;2. 天津市成像與感知微電子技術(shù)重點(diǎn)實(shí)驗(yàn)室(天津大學(xué)),天津 300072)
隨著集成電路設(shè)計(jì)生產(chǎn)流程的分化,芯片設(shè)計(jì)者將版圖制作好后要交給代工廠進(jìn)行流片,由于這個(gè)過程對(duì)設(shè)計(jì)者是不透明的,因此無法確定其是否可信,生產(chǎn)過程中可能存在對(duì)原始電路的篡改.為了不影響原始電路的功能,防止被設(shè)計(jì)者發(fā)現(xiàn),這種篡改最有可能表現(xiàn)為額外電路的植入,也就是硬件木馬[1].平時(shí)硬件木馬處于靜默狀態(tài),在特殊情況下被激活,可以實(shí)現(xiàn)信息竊取等破壞功能[2].硬件木馬是對(duì)芯片信息安全的極大威脅,由于硬件木馬激活條件隱蔽,檢測較為困難.目前國內(nèi)外對(duì)硬件木馬檢測技術(shù)的研究一般分為破壞式和非破壞式[3],其中利用 RO進(jìn)行硬件木馬檢測屬于非破壞式的檢測方法,具有結(jié)構(gòu)簡單、容易實(shí)現(xiàn)、占電路面積小、消耗功耗低等優(yōu)點(diǎn).RO的振蕩頻率與電壓有關(guān),當(dāng)芯片中有硬件木馬植入后,由于木馬要消耗額外的電流,因此會(huì)引起芯片電源網(wǎng)絡(luò)上電壓的變化,進(jìn)而導(dǎo)致RO的振蕩頻率發(fā)生變化,從而可以被檢測到.
目前已經(jīng)有一些學(xué)者進(jìn)行了 RO檢測硬件木馬的研究,文獻(xiàn)[4]利用 RO 檢測專用集成電路芯片中的硬件木馬并利用主成分分析的方法進(jìn)行數(shù)據(jù)處理;文獻(xiàn)[5]通過降低供電電壓和改變電源內(nèi)阻來提高硬件木馬對(duì)RO振蕩頻率的影響程度,并利用基于凸包(convex-hull)的方法進(jìn)行木馬識(shí)別;文獻(xiàn)[6]提出基于與非門的 RO比基于反相器的 RO對(duì)硬件木馬更敏感;文獻(xiàn)[7]提出通過更改 RO級(jí)數(shù)的方法提高對(duì)硬件木馬的敏感程度;文獻(xiàn)[8]提出利用芯片運(yùn)行時(shí)級(jí)數(shù)可配置的環(huán)形振蕩器來檢測硬件木馬.由于沒有一種很好的校正工藝偏差方法,當(dāng)面對(duì)較高工藝偏差的影響時(shí),檢測效果并不理想.
本研究提出一種針對(duì)利用 RO進(jìn)行硬件木馬檢測來校正工藝偏差的方法.根據(jù)硬件木馬和工藝偏差對(duì)芯片供電電壓變化的不同反應(yīng)特性來區(qū)分工藝偏差和硬件木馬對(duì)RO振蕩頻率的影響,通過校正方法減小測試數(shù)據(jù)中工藝偏差的影響,突出和顯化硬件木馬的影響,然后進(jìn)行判別區(qū)分實(shí)現(xiàn)硬件木馬檢測.
RO可以由奇數(shù)級(jí)反相器首尾相連組成,其振蕩頻率由每一級(jí)延時(shí)的總和決定.假定每一級(jí)的延時(shí)可以由td表示,并且RO一共由n級(jí)組成,那么它的振蕩頻率可以大致表示[9]為
每一級(jí)反相器的延時(shí)可以進(jìn)一步表示為
式中:CL是負(fù)載電容;VDD是電源供電電壓;IDSAT是飽和電流.因此 RO的振蕩頻率是 VDD的函數(shù).當(dāng)某個(gè)RO布局在硬件木馬附近時(shí),它的振蕩頻率就會(huì)受到硬件木馬的影響.因此基于RO的硬件木馬檢測方法一共受到 4種因素的影響,分別是溫度等環(huán)境因素、片內(nèi)工藝偏差、片間工藝偏差和是否有硬件木馬.對(duì)于母本電路而言,假定一共植入了N個(gè)環(huán)形振蕩器,對(duì)于第i個(gè)RO,其測量的振蕩頻率為
式中:f0表示在不考慮工藝偏差和環(huán)境因素以及測量誤差的情況下,完全由電路設(shè)計(jì)參數(shù)決定的振蕩頻率;fe表示由于測量誤差、環(huán)境偏差導(dǎo)致的每次測量數(shù)值的差異;finter和 fintra分別表示由片間工藝偏差和片內(nèi)工藝偏差導(dǎo)致的RO振蕩頻率的變化.對(duì)于不包含硬件木馬的待測電路,其測量的振蕩頻率為
式中的上標(biāo)表示數(shù)值的變化.對(duì)于待測電路中包含硬件木馬的芯片,其測量的振蕩頻率為
式中 fTrojan是由于額外的硬件木馬電路造成的對(duì) RO振蕩頻率的變化.對(duì)于以上幾種影響振蕩頻率的因素,由于所有的測試都是在相對(duì)穩(wěn)定的室溫下進(jìn)行,溫度等環(huán)境偏差的影響可以忽略,進(jìn)而fe可以通過對(duì)同一 RO進(jìn)行多次測量取平均值來消除.其余影響RO振蕩頻率的因素就是工藝偏差的和硬件木馬,因此這種基于 RO的硬件木馬檢測方法最關(guān)鍵的問題就是如何將工藝偏差的影響和硬件木馬的影響區(qū)分開.
上面提到了工藝偏差分為片間工藝偏差和片內(nèi)工藝偏差,而片間工藝偏差又可以分為同一批次芯片之間的偏差和不同批次芯片之間的偏差.這些偏差的本質(zhì)都是芯片制作過程中由于工藝精度的影響,設(shè)計(jì)時(shí)相同的晶體管,其生產(chǎn)出來的實(shí)際晶體管溝道長度、寬度、摻雜濃度等不完全相同,存在一定的偏差[10].一般而言,片內(nèi)工藝偏差比較小,片間工藝偏差大些,不同批次芯片之間的工藝偏差要大于同一批次芯片之間的工藝偏差.據(jù)文獻(xiàn)[11]的測試結(jié)果,片內(nèi)工藝偏差在0.75%,左右,片間工藝偏差在6.61%,左右.通過直接比較無法確定待測芯片中RO的振蕩頻率相比于母本芯片的差異是不是硬件木馬引起的.目前已有的利用 RO進(jìn)行硬件木馬檢測的方法大都由于工藝偏差的影響太大而檢測效果不理想.
為了解決這一問題,考慮到硬件木馬和工藝偏差對(duì)芯片供電電壓變化的不同反應(yīng)特性,當(dāng)改變芯片的供電電壓進(jìn)行測試時(shí),相比于硬件木馬對(duì)RO振蕩頻率的影響,工藝偏差的影響會(huì)變化得非常小,從而利用這種差異進(jìn)行工藝偏差和硬件木馬的分離.Xiao等[3]提到降低芯片核心供電電壓后,可以提高硬件木馬對(duì)RO振蕩頻率的影響程度.既然FPGA在正常核心供電電壓下木馬的影響比較小,可以利用這組測試數(shù)據(jù)獲取不同RO之間大致的工藝偏差幅度.然后通過降低芯片核心供電電壓后,如果工藝偏差對(duì)RO振蕩頻率的影響不如硬件木馬的影響變化那么大,就可以利用這種差異對(duì)測試數(shù)據(jù)進(jìn)行工藝偏差校正.最后再使用距離分類判別方法,就可以判斷出待測芯片中是否含有硬件木馬.雖然這種方法不能完全校正工藝偏差,但是大大降低了工藝偏差對(duì)硬件木馬檢測精確度的影響.
針對(duì)專用集成電路芯片在考慮工藝偏差情況下利用 RO進(jìn)行硬件木馬檢測與工藝偏差校正的流程如下.在芯片正常供電電壓下,測量所有芯片中所有RO的振蕩頻率,對(duì)于同一 RO進(jìn)行多次測量以消除測量誤差.利用待測芯片的RO振蕩頻率與母本電路的相對(duì)應(yīng)的RO的振蕩頻率計(jì)算偏差幅度,即
式中:ft為待測芯片的RO振蕩頻率;fa為母本芯片的RO 振蕩頻率;Δ 為偏差幅度.降低芯片供電電壓,同時(shí)又確保電路工作不出錯(cuò),再次測量所有芯片中所有RO的振蕩頻率,對(duì)于同一 RO進(jìn)行多次測量以消除測量誤差.對(duì)待測芯片中每個(gè)RO的測試數(shù)據(jù)進(jìn)行校正,計(jì)算公式為
式中:f為測試所得的RO振蕩頻率;fcalib為校正后的RO振蕩頻率.最后對(duì)校正后的數(shù)據(jù)進(jìn)行距離判別,可以利用歐氏距離或者馬氏距離,進(jìn)而區(qū)分出包含硬件木馬的待測電路.
由于 FPGA是專用集成電路的硬件仿真平臺(tái),所以實(shí)驗(yàn)是基于 Sakura-G FPGA 測試板[12]進(jìn)行的,板子上的FPGA型號(hào)為Spartan6,xc6slx75.首先測量片上工藝偏差對(duì)RO振蕩頻率的影響.每個(gè)RO選擇的級(jí)數(shù)是 5級(jí),這樣可以確保在 FPGA中布局到同一個(gè) slice中,并且其中一級(jí)的一個(gè)輸入作為 RO的使能信號(hào).RO的原理如圖 1所示.每一級(jí)的 RO是一個(gè)多路選擇器,當(dāng)選擇信號(hào)為邏輯高電平時(shí),其輸出為邏輯低電平,反之亦然.為了確保所有的 RO在布局布線之后完全相同,利用FPGA editor將RO做成 Hard Macro,然后在新的測試程序中多次實(shí)例化這個(gè)硬核,這樣可以將完全相同的 RO結(jié)構(gòu)布局到FPGA的不同位置.RO的版圖如圖 2所示.利用解碼器將不同的RO依次選通,利用計(jì)數(shù)器測量其一段時(shí)間內(nèi)的振蕩次數(shù),從而可以獲得其振蕩頻率.總共測量了32個(gè) RO的振蕩頻率,利用× 1 00%計(jì)算出實(shí)驗(yàn)用的FPGA的片內(nèi)工藝偏差在0.61%,左右,其中表示所有RO振蕩頻率的均值,σ 為方差.
接下來驗(yàn)證 FPGA芯片在核心供電電壓不同的情況下,各個(gè) RO之間工藝偏差程度是否變化很小.在FPGA中放置了8個(gè)RO,分別記為RO1~RO8.通過調(diào)整FPGA的核心供電電壓分別為1.2,V、1.0,V和0.8,V,對(duì)8個(gè)RO的振蕩頻率進(jìn)行統(tǒng)計(jì).在每種供電電壓下分別計(jì)算了 RO2~RO8相對(duì)于 RO1的偏差程度.測量結(jié)果如圖3所示.
為了對(duì)提出的工藝偏差校正與硬件木馬檢測方法進(jìn)行驗(yàn)證,完成了母本電路與硬件木馬電路的設(shè)計(jì)、測試數(shù)據(jù)采集和數(shù)據(jù)處理3部分工作.
圖1 環(huán)形振蕩器原理Fig.1 Schematic of RO
圖2 FPGA實(shí)現(xiàn)的環(huán)形振蕩器原理Fig.2 Layout of the RO as implemented in FPGA
圖3 不同供電電壓下的工藝偏差Fig.3 Process variation under different power supply voltages
由圖 3可見 RO2、RO3、RO5和 RO8相對(duì)于 RO1的偏差量在不同電壓下變化非常小.雖然 RO4、RO6和 RO7變化相對(duì)大一些,但通常情況下,木馬對(duì) RO振蕩頻率的影響會(huì)變化更大,這一點(diǎn)可以通過后面的實(shí)驗(yàn)得到證明.
下面測試 RO振蕩頻率受硬件木馬的影響情況.母本電路選擇 ISCAS89基準(zhǔn)電路中的 s1423,木馬電路選擇ISCAS89基準(zhǔn)電路中的s27.由于FPGA設(shè)計(jì)流程中,電路代碼的改變會(huì)導(dǎo)致整個(gè)設(shè)計(jì)被重新綜合,進(jìn)而導(dǎo)致植入木馬后電路變化較大,因此為了模仿實(shí)際專用集成電路芯片中的硬件木馬植入情況,將母本電路單獨(dú)布局布線之后也利用FPGA editor做成了 Hard Macro,這樣可以確保其版圖在不同的測試中保持不變,更接近實(shí)際ASIC被植入硬件木馬的情況.然后在母本電路中植入了 8個(gè) RO,并且使其較為均勻地分布在母本電路中的不同位置.上述電路作為實(shí)驗(yàn)中的母本,記為 ORI.在以后的每次測試中,RO與 s1423的相對(duì)位置關(guān)系都保持不變.通過將 ORI電路布局到 FPGA中的不同位置,獲得了不包含硬件木馬的待測電路,記為ORI1.這樣在測試中引入了片內(nèi)工藝偏差的影響.然后通過將兩個(gè)s27電路植入 ORI1中,獲得了兩種包含硬件木馬的待測電路,記為 TR1.使用 Synopsys公司的 Design Compiler(Version D-2010.03-SP5)采用SMIC 180,nm工藝對(duì)s27電路進(jìn)行綜合,利用得到的電路面積除以一個(gè)與非門的電路面積,得到 s27電路的等效門數(shù)是 22門,因此木馬電路的等效門數(shù)約為 44門.最終通過調(diào)整 FPGA芯片的核心供電電壓,將其分別設(shè)置為1.2,V、0.9,V和 0.8,V,利用前面所述相同的測試方法測量了所有測試電路中全部RO的振蕩頻率,并利用上述檢測方法進(jìn)行了如下的數(shù)據(jù)處理,實(shí)現(xiàn)硬件木馬的檢測.
首先考慮 ORI、ORI1和 TR1電路的測試數(shù)據(jù),圖4表示在FPGA的核心供電電壓為1.2,V的情況下,ORI、ORI1和 TR1中 RO 的振蕩頻率.可以發(fā)現(xiàn)木馬對(duì)RO振蕩頻率的影響相比工藝偏差要小得多,通過直接比較無法區(qū)分出硬件木馬.圖中每種顏色的折線分別有10條,代表10次測試結(jié)果.
圖4 木馬對(duì)RO振蕩頻率的影響Fig.4 Impact of HT on RO oscillation frequency
歐式距離判別方法可以反映樣本之間的差異,可以用于硬件木馬檢測[13].馬氏距離可以排除變量之間的相關(guān)性干擾,也適用于硬件木馬檢測[14].待測樣本L2與母本L1之間的馬氏距離公式為
式中:μ為母本 L1的均值;∑為母本 L1的協(xié)方差矩陣.
圖 5是待測電路和母本電路之間的歐式距離分布直方圖,未進(jìn)行工藝偏差校正.紅色條紋代表不含硬件木馬的待測電路與母本電路的歐氏距離分布情況,綠色條紋對(duì)應(yīng)于含有硬件木馬的待測電路.如圖所示,含有硬件木馬的待測電路相比于母本電路的歐式距離比不含有硬件木馬的待測電路還要小,并且紅色條紋和綠色條紋存在交疊部分,因此在工藝偏差校正前無法正確識(shí)別出硬件木馬,或者會(huì)導(dǎo)致含有木馬的待測電路被錯(cuò)誤識(shí)別為不含木馬的電路.
圖5 歐式距離分布直方圖(未進(jìn)行工藝偏差校正)Fig.5 Euclidean distance distribution(without process variation calibration)
圖 6是進(jìn)行工藝偏差校正后歐式距離分布直方圖.校正后,含有硬件木馬的待測電路相比于母本電路的歐式距離比不含有硬件木馬的待測電路大,并且紅色條紋和綠色條紋之間沒有交疊的部分,因此硬件木馬可以被正確地識(shí)別.并且對(duì)于未進(jìn)行工藝偏差校正的測試數(shù)據(jù),利用主成分分析等方法也無法進(jìn)行正確判別,證明了校正方法的必要性.接下來利用馬氏距離進(jìn)行了類似的數(shù)據(jù)處理,其結(jié)論與用歐式距離進(jìn)行區(qū)分時(shí)相同,也是利用提出的校正方法進(jìn)行工藝偏差校正后才能區(qū)分出含木馬的電路.
圖6 歐式距離分布直方圖(進(jìn)行工藝偏差校正)Fig.6 Euclidean distance distribution(with process variation calibration)
本文提出了一種針對(duì) RO進(jìn)行硬件木馬檢測中工藝偏差的校正方法,并通過 FPGA測試驗(yàn)證了本方法的有效性.利用本文提出的工藝偏差校正與硬件木馬檢測方法,可以有效地減小測試數(shù)據(jù)中工藝偏差的影響,提高硬件木馬檢測效果.并且本文提出的方法可以擴(kuò)展應(yīng)用于包含片內(nèi)工藝偏差、片間工藝偏差等多種情況.實(shí)驗(yàn)結(jié)果表明:使用本方法可以有效檢測出工藝偏差校正前無法識(shí)別的硬件木馬,檢測出的木馬電路的大小等效為44個(gè)與非門.
[1]Bhunia S,Hsiao M S,Banga M,et al. Hardware Trojan attacks:Threat analysis and countermeasures[J].Proceedings of the IEEE,2014,102(8):1229-1247.
[2]Ni L,Li S,Chen J,et al. The influence on sensitivity of hardware Trojans detection by test vector[C]//Communications Security Conference. Beijing,China,2014:1-6.
[3]Xiao K,F(xiàn)orte D,Jin Y,et al. Hardware Trojans:Lessons learned after one decade of research[J].ACM Transactions on Design Automation of Electronic Systems(TODAES),2016,22(1):6-1-6-23.
[4]Ferraiuolo A,Zhang X,Tehranipoor M. Experimental analysis of a ring oscillator network for hardware trojan detection in a 90,nm asic[C]//Proceedings of the International Conference on Computer-Aided Design.California,USA,2012:37-42.
[5]Kelly S,Zhang X,Tehranipoor M,et al. Detecting hardware Trojans using on-chip sensors in an ASIC design[J].Journal of Electronic Testing,2015,31(1):11-26.
[6]Hoque T,Mustapa M,Amsaad F,et al. Assessment of NAND based ring oscillator for hardware Trojan detection[C]//2015IEEE 58,th International Midwest Symposium on Circuits and Systems(MWSCAS). Colorado,USA,2015:1-4.
[7]Kitsos P,Voyiatzis A G. FPGA Trojan detection using length-optimized ring oscillators[C]//2014 17,th Euromicro Conference on Digital System Design.Verona,Italy,2014:675-678.
[8]Pirpilidis F,Voyiatzis A G,Pyrgas L,et al. An efficient reconfigurable ring oscillator for hardware trojan detection[C]//Pan-Hellenic Conference on Informatics.Patras,Greece,2016:66-1-66-6.
[9]Zhang X,Tehranipoor M. RON:An on-chip ring oscillator net-work for hardware Trojan detection[C]//Design,Automation & Test in Europe Conference & Exhibition.Grenoble,F(xiàn)rance,2011:1-6.
[10]倪 林,李少青,趙志勛,等. 工藝偏差下基于功耗與延時(shí)的硬件木馬檢測有效性分析[J]. 數(shù)字通信,2014,41(5):36-41.Ni Lin,Li Shaoqing,Zhao Zhixun,et al. Efficiency analysis of hardware trojans detection based on power and delay under process variation[J].Digital Communi-cation,2014,41(5):36-41(in Chinese).
[11]Maiti A,Casarona J,McHale L,et al. A large scale characterization of RO-PUF[C]//2010IEEE International Symposium on Hardware-Oriented Security and Trust. California,USA,2010:94-99.
[12]SAKURA-G Specification Ver. 1.0[EB/OL]. http://satoh.cs.uec.ac.jp/SAKURA/hardware/SAKURA-G.html,2013-08-01.
[13]Wang Jianxin,Wang Boren,Qu Ming,et al. Hardware Trojan detection based on the distance discrimination[C]//2016IEEE International Conference on Computer Communication and the Internet. Wuhan,China,2016:404-407.
[14]Cui Q,Sun K,Wang S,et al. Hardware Trojan detection based on cluster analysis of Mahalanobis distance[C]//2016 8,th International Conference on Intelligent Human-Machine Systems and Cybernetics. Hangzhou,China,2016:234-238.