李莉云 伍忠東 蘆德釗
(蘭州交通大學電子與信息工程學院 甘肅 蘭州 730070)
隨著高功能硬件設備快速的發(fā)展,集成電路產(chǎn)業(yè)的設計和制造也變得越來越復雜[1],半導體公司為了降低制造成本,將集成電路的開發(fā)和供應鏈日益向全球擴張,外包給世界各地的其他公司,從而導致設計、制造、測試、部署和應用各個環(huán)節(jié)都存在針對硬件的安全漏洞,外包公司可能在半導體公司不知情的情況下,在制造時惡意改變原來的設計或插入額外邏輯、模塊到集成電路,這些更改被稱為硬件木馬(Hardware Trojans,HTs)[2-3]。當這些木馬被激活時,可以使系統(tǒng)拒絕服務,創(chuàng)建后門泄漏敏感信息[4]。因此,芯片中的硬件木馬檢測迫在眉睫。
硬件木馬檢測是近年來研究的前沿課題。2007年,美國IBM研究中心和伍斯特理工學院的Agrawal等[5]首次提出了硬件木馬的概念,并提出了一種基于旁路信息的木馬檢測方法。硬件木馬的檢測技術一直在發(fā)展,目前,硬件木馬檢測技術包括旁路檢測法、邏輯檢測法和靜態(tài)檢測法等[6]。文獻[7]利用多參數(shù)旁路信號分析,通過對比原始芯片和含木馬芯片之間的差異來檢測木馬。文獻[8]通過增加旁路信息,并對芯片的動態(tài)電流、靜態(tài)電流、延遲等多種信息進行分析,達到硬件木馬檢測的目的。文獻[9]提出內(nèi)建自測試的檢測方法,擺脫木馬檢測時對標準芯片的依賴。隨著機器學習技術研究的迅速深入,一些研究人員嘗試將機器學習方法引入到硬件木馬檢測研究中,文獻[10]提出使用支持向量機基于版圖自動檢測硬件木馬,簡化了反向工程的步驟。文獻[11]提出一種基于可控制性和可觀察性的門級網(wǎng)表木馬檢測方法,通過無監(jiān)督聚類分析來實現(xiàn)硬件木馬的靜態(tài)檢測。
本文針對基于門級網(wǎng)表的硬件木馬識別方法中木馬識別率低且識別效果不穩(wěn)定的問題,提出基于粒子群優(yōu)化支持向量機(POS-SVM)算法的硬件木馬檢測方法。首先根據(jù)正常電路和木馬電路不同的線網(wǎng)特征[12],提取電路所選用的7個特征,并將每個線網(wǎng)的特征定義為7維向量,獲得數(shù)據(jù)集;然后用SMOTE(Synthetic Minority Oversampling Technique)算法改善特征數(shù)據(jù)集類別不平衡問題,建立SVM分類模型;針對SVM算法在分類預測時手動選擇的參數(shù)不恰當導致的過擬合和欠擬合問題,采用PSO對模型進行參數(shù)尋優(yōu),從而獲得最佳分類模型,最終檢測出該待測電路是否為木馬電路。
門級網(wǎng)表描述的電路元件是邏輯門或與此同級別的元件,線網(wǎng)將電路中的所有邏輯門連接,通過對這些線網(wǎng)連接特征的分析提取,奠定本文實驗的理論基礎。最簡單的門級網(wǎng)表結構如圖1所示,包括6個輸入,1個輸出、4個“與非”門通過3條線網(wǎng)連接。圖2是門級網(wǎng)表的語言描述,使用Verilog HDL語言編寫電路的邏輯結構。程序以module開始,endmodule結束,中間定義電路的輸入輸出、各個端口、所有的線網(wǎng)名稱。
圖1 門級網(wǎng)表結構
圖2 門級網(wǎng)表描述
理論上硬件木馬識別率的高低取決于線網(wǎng)的特征。本文選用Trust-hub.org[13]的數(shù)據(jù)集。首先從Trust-hub.org中隨機選擇一些被植入硬件木馬的門級網(wǎng)表,通過對與硬件木馬密切相關的線網(wǎng)特征進行分析。在文獻[12]的基礎上,最終確定7個與目標線網(wǎng)密切相關的線網(wǎng)特征。
1) LGFi(Logic Gate Fan-ins):與目標線網(wǎng)的距離為2的前級邏輯門的扇入總數(shù)。
2) FFi(Flip Flop Input):目標線網(wǎng)到前級觸發(fā)器的最小距離。
3) FFo(Flip Flop Output):目標線網(wǎng)到后級觸發(fā)器的最小距離。
4) Pi(Primary Input):目標線網(wǎng)到原始輸入的距離。
5) Po(Primary Output):目標線網(wǎng)到原始輸出的距離。
6) Mi(Multiplexer Input):目標線網(wǎng)到前級復用器的最小距離。
7) Mo(Multiplexer Output):目標線網(wǎng)到后級復用器的最小距離。
SVM是一種解決二分類問題的模型,能較好地解決小樣本和非線性等的實際問題,不僅是機器學習領域研究的熱點,而且在故障分類問題中被廣泛應用[14]。SVM模型的工作原理是將實際問題轉(zhuǎn)化成二次凸優(yōu)化的數(shù)學問題,找到一個使兩類數(shù)據(jù)到超平面的距離最遠最優(yōu)超平面[15],其表達式如式(1)所示。
(1)
s.t.yi(xiωT+b)≥1
i=1,2,…,n
式中:ω、b參數(shù)分別為超平面的法向量和截距。
(2)
s.t.yi(ωT·xi+b)≥1-ξii=1,2,…,n
目標函數(shù)是二次凸優(yōu)化問題。在數(shù)據(jù)是線性條件下的時候SVM的對偶問題更容易求解。使用拉格朗日乘子法和KKT條件來求。
maxW(α)=L(α,b,ω)=
(3)
s.t.αi≥0;i=1,2,…,n
i=1,2,…,n
因為本文中門級網(wǎng)表特征的數(shù)據(jù)是非線性的,所以要通過引入核函數(shù),構建一個非線性的分類器。核函數(shù)的原理是在低維度上先進行計算,然后在高維度上實現(xiàn)效果。在實際應用中,SVM的性能主要依賴核函數(shù)K(x,xi)類型及核函數(shù)的參數(shù)選擇和懲罰因子c,這些根據(jù)個人經(jīng)驗進行選擇和設置時,參數(shù)選擇不恰當,在分類預測時會導致過擬合和欠擬合問題。PSO是一種全局進化算法,被廣泛地應用于參數(shù)優(yōu)化[16]。將PSO與SVM結合起來,對SVM中與分類性能相關的參數(shù)進行優(yōu)化,提高參數(shù)尋優(yōu)的效率。PSO的粒子速度和位置的更新如式(4)所示。
vi(k+1)=ωvi(k)+c1r(pi-xi(k))+c2r(pk-xi(k))
xi(k+1)=xi(k)+vi(k)
(4)
式中:k是迭代次數(shù);vi(k)是粒子i的飛行速度;xi(k)是粒子i的當前位置;pi記錄了第i個粒子所到過的最優(yōu)位置;pk是種群到過的最優(yōu)位置;c1、c2是局部學習因子和全局學習因子;ω是慣性因子;r是0到1之間的隨機數(shù)[16]。
建立PSO-SVM的硬件木馬識別模型的步驟如下:
1) 選定訓練樣本集和測試樣本集。實驗使用表1所示的7個測試集。采用交叉驗證的方式進行木馬識別,即每次將其中6組作為訓練樣本集,剩下一組作為測試樣本集。每組數(shù)據(jù)由7維向量構成,對應7種線網(wǎng)特征。
表1 測試網(wǎng)表集及有關線網(wǎng)數(shù)量
2) 核函數(shù)的選擇。SVM的性能主要依賴核函數(shù)K(x,xi)類型,當特征數(shù)遠小于樣本數(shù),這種情況一般使用RBF(Radial Basis Function)核函數(shù)[17]。由于本文提取特征數(shù)遠小于樣本數(shù),故選取RBF核函數(shù)來構造SVM模型,RBF核函數(shù)有較強的泛化能力和學習能力,只需要調(diào)節(jié)一個參數(shù),就能夠?qū)崿F(xiàn)非線性映射,其表達式如式(5)所示。
(5)
式中:σ是RBF核的寬度參數(shù),代表徑向范圍的控制。
3) PSO對SVM的參數(shù)尋優(yōu)。確定RBF核函數(shù)之后,需要確定其參數(shù)g和懲罰因子c,為提高SVM的分類準確率,選取PSO對SVM參數(shù)進行尋優(yōu)。PSO的參數(shù)尋優(yōu)流程如圖3所示。步驟如下:
圖3 PSO的參數(shù)優(yōu)化過程
步驟1初始化相關參數(shù),設置初始位置和速度,并規(guī)定懲罰系數(shù)c和核參數(shù)g的取值范圍。
步驟2計算粒子的適應度值。
步驟3根據(jù)粒子的適應度值更新個體的極值與群體的極值。
步驟4判斷是否滿足終止條件,即是否超出設置的最大迭代步數(shù)。若不滿足終止條件,則根據(jù)粒子速度和位置更新公式,更新粒子速度和位置,然后重復。
步驟5若滿足終止條件,得到最優(yōu)分類參數(shù),完成參數(shù)尋優(yōu)。
4) 將每個組測試網(wǎng)表特征放入訓練好的 SVM 模型中進行分類測試,并最終得到硬件木馬分類識別結果。
本文采用真正類率(TPR)、真負類率(TNR)作為實驗評價指標,表達式如下:
(6)
式中:FP為預測正實際負;TP為預測正實際正;TN為預測負實際負;FN為預測負實際正。實驗中,木馬電路線網(wǎng)為正類樣本,正常電路線網(wǎng)為負類樣本。
由于惡意的第三方供應商傾向于在IC中隱藏硬件木馬的存在,并試圖通過IC測試。因此,木馬線網(wǎng)的數(shù)量遠遠小于正常線網(wǎng)數(shù),數(shù)據(jù)出現(xiàn)類別不平衡的現(xiàn)象,對不平衡數(shù)據(jù)進行分類,得到的結論存在偏倚,使得分類界面會偏向多數(shù)類,導致硬件木馬被檢測出的可能性較低。本文通過SMOTE算法過抽樣處理[18],生成新的木馬線網(wǎng)特征數(shù)據(jù),減少木馬特征數(shù)據(jù)與正常特征數(shù)據(jù)在數(shù)量上的差距,降低訓練集的不平衡性。SMOTE算法對特征數(shù)據(jù)集的過抽樣處理主要有以下4個步驟:
步驟1對木馬特征數(shù)據(jù)集中每一個樣本xi,以歐幾里得距離為標準計算它到木馬特征數(shù)據(jù)集中所有其他樣本的距離,獲得其k個最近鄰。
(7)
步驟4把上述合成的新樣本與原始訓練集合并,獲得一個新的訓練集。
本文通過PSO對SVM的參數(shù)進行尋優(yōu),PSO的參數(shù)c1和c2的選擇方法已經(jīng)較為成熟,其和一般不超過4[19],這里根據(jù)經(jīng)驗設置c1=1.5,c2=1.7,種群大小設置為20,種群最大進化代數(shù)設置為100,c的搜索范圍為0.1~100,g的搜索范圍為0.01~1 000。以SVM的分類準確率作為PSO的粒子適應度值。由此,循環(huán)迭代得到最優(yōu)參數(shù)(c,g)的值。參數(shù)尋優(yōu)的結果如表2所示。
表2 最優(yōu)參數(shù)
實驗過程中,通過木馬線網(wǎng)識別率TPR值、正常線網(wǎng)識別率TNR值、線網(wǎng)識別的準確率對本文提出的PSO-SVM算法進行評價,具體實驗結果如表3所示。
表3 實驗結果(%)
圖4和圖5顯示了文獻[20]中方法與本文提出的PSO-SVM算法的TPR值和TNR值的比較結果。與文獻[20]相比,本文的TPR值個別有略微下降,但總體平均值達到99.62%,提高了4.82百分點,TNR平均值由97.6%提高到99.57%,線網(wǎng)準確率的平均值增加2.17百分點,達到99.47%。實驗結果表明,本文方法對木馬線網(wǎng)的識別率和正常線網(wǎng)的識別率都有明顯的提高,線網(wǎng)識別準確率有較大的改善。
圖4 本文與文獻[20]TPR值對比
圖5 本文與文獻[20]TNR值對比
本文提出一種基于POS-SVM的硬件木馬檢測算法。通過增加線網(wǎng)特征,使用SMOTE算法改善數(shù)據(jù)集正負類別不平衡問題,PSO對SVM參數(shù)尋優(yōu)。實驗結果表明,硬件木馬的識別率有了較大的提高,總體改善了電路線網(wǎng)的識別準確率。未來工作中硬件木馬的識別率有待進一步提高,以實現(xiàn)電路線網(wǎng)的正確分類,保障集成電路的安全。