李莉云 伍忠東 蘆德釗
(蘭州交通大學電子與信息工程學院 甘肅 蘭州 730070)
隨著高功能硬件設備快速的發展,集成電路產業的設計和制造也變得越來越復雜[1],半導體公司為了降低制造成本,將集成電路的開發和供應鏈日益向全球擴張,外包給世界各地的其他公司,從而導致設計、制造、測試、部署和應用各個環節都存在針對硬件的安全漏洞,外包公司可能在半導體公司不知情的情況下,在制造時惡意改變原來的設計或插入額外邏輯、模塊到集成電路,這些更改被稱為硬件木馬(Hardware Trojans,HTs)[2-3]。當這些木馬被激活時,可以使系統拒絕服務,創建后門泄漏敏感信息[4]。因此,芯片中的硬件木馬檢測迫在眉睫。
硬件木馬檢測是近年來研究的前沿課題。2007年,美國IBM研究中心和伍斯特理工學院的Agrawal等[5]首次提出了硬件木馬的概念,并提出了一種基于旁路信息的木馬檢測方法。硬件木馬的檢測技術一直在發展,目前,硬件木馬檢測技術包括旁路檢測法、邏輯檢測法和靜態檢測法等[6]。文獻[7]利用多參數旁路信號分析,通過對比原始芯片和含木馬芯片之間的差異來檢測木馬。文獻[8]通過增加旁路信息,并對芯片的動態電流、靜態電流、延遲等多種信息進行分析,達到硬件木馬檢測的目的。文獻[9]提出內建自測試的檢測方法,擺脫木馬檢測時對標準芯片的依賴。隨著機器學習技術研究的迅速深入,一些研究人員嘗試將機器學習方法引入到硬件木馬檢測研究中,文獻[10]提出使用支持向量機基于版圖自動檢測硬件木馬,簡化了反向工程的步驟。文獻[11]提出一種基于可控制性和可觀察性的門級網表木馬檢測方法,通過無監督聚類分析來實現硬件木馬的靜態檢測。
本文針對基于門級網表的硬件木馬識別方法中木馬識別率低且識別效果不穩定的問題,提出基于粒子群優化支持向量機(POS-SVM)算法的硬件木馬檢測方法。首先根據正常電路和木馬電路不同的線網特征[12],提取電路所選用的7個特征,并將每個線網的特征定義為7維向量,獲得數據集;然后用SMOTE(Synthetic Minority Oversampling Technique)算法改善特征數據集類別不平衡問題,建立SVM分類模型;針對SVM算法在分類預測時手動選擇的參數不恰當導致的過擬合和欠擬合問題,采用PSO對模型進行參數尋優,從而獲得最佳分類模型,最終檢測出該待測電路是否為木馬電路。
門級網表描述的電路元件是邏輯門或與此同級別的元件,線網將電路中的所有邏輯門連接,通過對這些線網連接特征的分析提取,奠定本文實驗的理論基礎。最簡單的門級網表結構如圖1所示,包括6個輸入,1個輸出、4個“與非”門通過3條線網連接。圖2是門級網表的語言描述,使用Verilog HDL語言編寫電路的邏輯結構。程序以module開始,endmodule結束,中間定義電路的輸入輸出、各個端口、所有的線網名稱。

圖1 門級網表結構

圖2 門級網表描述
理論上硬件木馬識別率的高低取決于線網的特征。本文選用Trust-hub.org[13]的數據集。首先從Trust-hub.org中隨機選擇一些被植入硬件木馬的門級網表,通過對與硬件木馬密切相關的線網特征進行分析。在文獻[12]的基礎上,最終確定7個與目標線網密切相關的線網特征。
1) LGFi(Logic Gate Fan-ins):與目標線網的距離為2的前級邏輯門的扇入總數。
2) FFi(Flip Flop Input):目標線網到前級觸發器的最小距離。
3) FFo(Flip Flop Output):目標線網到后級觸發器的最小距離。
4) Pi(Primary Input):目標線網到原始輸入的距離。
5) Po(Primary Output):目標線網到原始輸出的距離。
6) Mi(Multiplexer Input):目標線網到前級復用器的最小距離。
7) Mo(Multiplexer Output):目標線網到后級復用器的最小距離。
SVM是一種解決二分類問題的模型,能較好地解決小樣本和非線性等的實際問題,不僅是機器學習領域研究的熱點,而且在故障分類問題中被廣泛應用[14]。SVM模型的工作原理是將實際問題轉化成二次凸優化的數學問題,找到一個使兩類數據到超平面的距離最遠最優超平面[15],其表達式如式(1)所示。
(1)
s.t.yi(xiωT+b)≥1
i=1,2,…,n
式中:ω、b參數分別為超平面的法向量和截距。

(2)
s.t.yi(ωT·xi+b)≥1-ξii=1,2,…,n
目標函數是二次凸優化問題。在數據是線性條件下的時候SVM的對偶問題更容易求解。使用拉格朗日乘子法和KKT條件來求。
maxW(α)=L(α,b,ω)=
(3)
s.t.αi≥0;i=1,2,…,n
i=1,2,…,n
因為本文中門級網表特征的數據是非線性的,所以要通過引入核函數,構建一個非線性的分類器。核函數的原理是在低維度上先進行計算,然后在高維度上實現效果。在實際應用中,SVM的性能主要依賴核函數K(x,xi)類型及核函數的參數選擇和懲罰因子c,這些根據個人經驗進行選擇和設置時,參數選擇不恰當,在分類預測時會導致過擬合和欠擬合問題。PSO是一種全局進化算法,被廣泛地應用于參數優化[16]。將PSO與SVM結合起來,對SVM中與分類性能相關的參數進行優化,提高參數尋優的效率。PSO的粒子速度和位置的更新如式(4)所示。
vi(k+1)=ωvi(k)+c1r(pi-xi(k))+c2r(pk-xi(k))
xi(k+1)=xi(k)+vi(k)
(4)
式中:k是迭代次數;vi(k)是粒子i的飛行速度;xi(k)是粒子i的當前位置;pi記錄了第i個粒子所到過的最優位置;pk是種群到過的最優位置;c1、c2是局部學習因子和全局學習因子;ω是慣性因子;r是0到1之間的隨機數[16]。
建立PSO-SVM的硬件木馬識別模型的步驟如下:
1) 選定訓練樣本集和測試樣本集。實驗使用表1所示的7個測試集。采用交叉驗證的方式進行木馬識別,即每次將其中6組作為訓練樣本集,剩下一組作為測試樣本集。每組數據由7維向量構成,對應7種線網特征。

表1 測試網表集及有關線網數量
2) 核函數的選擇。SVM的性能主要依賴核函數K(x,xi)類型,當特征數遠小于樣本數,這種情況一般使用RBF(Radial Basis Function)核函數[17]。由于本文提取特征數遠小于樣本數,故選取RBF核函數來構造SVM模型,RBF核函數有較強的泛化能力和學習能力,只需要調節一個參數,就能夠實現非線性映射,其表達式如式(5)所示。
(5)
式中:σ是RBF核的寬度參數,代表徑向范圍的控制。
3) PSO對SVM的參數尋優。確定RBF核函數之后,需要確定其參數g和懲罰因子c,為提高SVM的分類準確率,選取PSO對SVM參數進行尋優。PSO的參數尋優流程如圖3所示。步驟如下:

圖3 PSO的參數優化過程
步驟1初始化相關參數,設置初始位置和速度,并規定懲罰系數c和核參數g的取值范圍。
步驟2計算粒子的適應度值。
步驟3根據粒子的適應度值更新個體的極值與群體的極值。
步驟4判斷是否滿足終止條件,即是否超出設置的最大迭代步數。若不滿足終止條件,則根據粒子速度和位置更新公式,更新粒子速度和位置,然后重復。
步驟5若滿足終止條件,得到最優分類參數,完成參數尋優。
4) 將每個組測試網表特征放入訓練好的 SVM 模型中進行分類測試,并最終得到硬件木馬分類識別結果。
本文采用真正類率(TPR)、真負類率(TNR)作為實驗評價指標,表達式如下:
(6)
式中:FP為預測正實際負;TP為預測正實際正;TN為預測負實際負;FN為預測負實際正。實驗中,木馬電路線網為正類樣本,正常電路線網為負類樣本。
由于惡意的第三方供應商傾向于在IC中隱藏硬件木馬的存在,并試圖通過IC測試。因此,木馬線網的數量遠遠小于正常線網數,數據出現類別不平衡的現象,對不平衡數據進行分類,得到的結論存在偏倚,使得分類界面會偏向多數類,導致硬件木馬被檢測出的可能性較低。本文通過SMOTE算法過抽樣處理[18],生成新的木馬線網特征數據,減少木馬特征數據與正常特征數據在數量上的差距,降低訓練集的不平衡性。SMOTE算法對特征數據集的過抽樣處理主要有以下4個步驟:
步驟1對木馬特征數據集中每一個樣本xi,以歐幾里得距離為標準計算它到木馬特征數據集中所有其他樣本的距離,獲得其k個最近鄰。


(7)
步驟4把上述合成的新樣本與原始訓練集合并,獲得一個新的訓練集。
本文通過PSO對SVM的參數進行尋優,PSO的參數c1和c2的選擇方法已經較為成熟,其和一般不超過4[19],這里根據經驗設置c1=1.5,c2=1.7,種群大小設置為20,種群最大進化代數設置為100,c的搜索范圍為0.1~100,g的搜索范圍為0.01~1 000。以SVM的分類準確率作為PSO的粒子適應度值。由此,循環迭代得到最優參數(c,g)的值。參數尋優的結果如表2所示。

表2 最優參數
實驗過程中,通過木馬線網識別率TPR值、正常線網識別率TNR值、線網識別的準確率對本文提出的PSO-SVM算法進行評價,具體實驗結果如表3所示。

表3 實驗結果(%)
圖4和圖5顯示了文獻[20]中方法與本文提出的PSO-SVM算法的TPR值和TNR值的比較結果。與文獻[20]相比,本文的TPR值個別有略微下降,但總體平均值達到99.62%,提高了4.82百分點,TNR平均值由97.6%提高到99.57%,線網準確率的平均值增加2.17百分點,達到99.47%。實驗結果表明,本文方法對木馬線網的識別率和正常線網的識別率都有明顯的提高,線網識別準確率有較大的改善。

圖4 本文與文獻[20]TPR值對比

圖5 本文與文獻[20]TNR值對比
本文提出一種基于POS-SVM的硬件木馬檢測算法。通過增加線網特征,使用SMOTE算法改善數據集正負類別不平衡問題,PSO對SVM參數尋優。實驗結果表明,硬件木馬的識別率有了較大的提高,總體改善了電路線網的識別準確率。未來工作中硬件木馬的識別率有待進一步提高,以實現電路線網的正確分類,保障集成電路的安全。