徐 皓, 易茂祥, 金禮玉, 梁華國, 魯迎春
(合肥工業大學 微電子學院,安徽 合肥 230601)
硬件木馬(hardware Trojan,HT)是電路安全攻擊者為了達到改變集成電路(integrated circuit,IC)功能或性能、泄漏敏感信息等非法目的而在電路中植入的惡意硬件模塊。近年來,HT攻擊在硬件安全領域引起了廣泛關注。當今IC專業分工的設計與制造模式所導致的一個后果是在設計或制造過程中電路面臨著HT植入的風險,這是由于任何能接觸到設計或制造并熟知電路的人都可能對電路進行惡意的修改。因此,對芯片設計階段或制造后進行HT檢測是十分重要和必要的。
目前,有很多針對芯片設計或制造階段的HT檢測方法,包括逆向工程、邏輯測試、旁路分析等。逆向工程[1-2]需要對芯片進行破壞性的解封裝,整個過程代價昂貴且耗時,使得該方法的應用受到很大局限;邏輯測試[3-5]方法在面對觸發結構和功能都很復雜的HT時,不能有效獲得HT激活向量而實現檢測;旁路分析法[6-10]在當今納米級的設計與制造水平下,工藝變化(process variation,PV)將導致同類芯片間的旁路特征出現較大的差異,使HT引起的旁路信號變化可能被PV所覆蓋,造成HT檢測失敗。從PV影響HT檢測結果的角度來看,基于門級特性描述(gate-level characterization,GLC)的HT檢測方法[11-15]具有較明顯的優勢,它將PV引起的電路特征變化作為電路的一種固有屬性,將電路中每個門受到的PV影響與一個比例因子對應起來,通過比例因子與門的額定功率或延時相乘,實現在功率或延時的變化上對PV建模。通過測量各種輸入條件下的電路總功率或路徑延遲,得到以比例因子為變量的線性方程。HT的存在將導致方程求解結果的比例因子產生異常,利用這種比例因子的異常值即可實現對HT的檢測。通?;贕LC的HT檢測方法需要對每個門進行精確的GLC刻畫,這對于大規模的待檢測電路來說是非常復雜和耗時的;同時,采用傳統的GLC方法所得到的眾多比例因子并不能直接用于識別HT導致的電路指標異常,而需要引入黃金模型進行比較,從而完成HT檢測。但黃金模型的獲取難度大、成本高,因此需要解決基于GLC的HT檢測方法對黃金模型的依賴性以及檢測效率低下的問題。
本文在傳統的基于GLC木馬檢測方法的基礎上,提出利用電路分區后計算并直接利用各區域木馬比例因子自比較的方法,實現無需黃金模型約束條件下的電路HT檢測。
為了解決基于GLC的HT檢測方法對于黃金模型依賴的問題,文獻[14]、文獻[15]分別提出了相應方案。文獻[14]將電路劃分為2個區域,約束條件要求2個區域共同包含1個重疊的門電路;采集分區后的泄漏功耗,對不同分區分別求解重疊門電路的比例因子,若兩者的比例因子存在差異,則判定其中一個區域植入了HT;但該方案在實現重疊門的篩選技術上存在較大的難度。文獻[15]提出將電路分成多個區域及時鐘樹區,每個分區電路比例因子的求解需要包含時鐘樹區,將不同分區下的時鐘樹區比例因子進行比較,作為判斷HT存在與否的依據;同時,為防止時鐘樹區植入HT導致誤判,引入3條判定HT存在的規則。
針對以上基于GLC的HT檢測方法存在的不足,本文提出一種基于GLC與電路分區泄漏功耗測量的HT檢測方法。該方法根據電路各區域每個門的標準泄漏功耗和劃分后測量到的各區域實際泄漏功耗構成線性回歸方程,通過相應的回歸分析求解回歸方程,得到各分區電路的木馬比例因子,該因子是可以直接反映木馬泄漏功耗的參數;將各個區域的木馬比例因子進行自參照比較,可以直接實現HT的檢測。本文方法在消除黃金模型依賴的同時采用分區電路木馬比例因子自比較的方式,有效提高了HT的檢測效率。
IC生產制造過程中的PV是由于在制造過程中對小的特征技術無法做到精確控制,生產的IC技術指標與實際參數測量值之間存在偏差,其中PV影響最大的是電路中的閾值電壓和有效溝道長度。工藝帶來的這2個參數的變化將影響IC的一些特性參數,如傳播延遲和泄漏功耗,導致它們偏離設計值[14]。
GLC是根據器件物理特性(如有效溝道長度)或電路特性(如傳播延遲、泄漏功耗)來表征IC每個門的特征過程。其中泄漏功耗適用于HT檢測,由于植入的HT無論是否激活都會產生額外的電路泄漏功耗,這使得檢測出那些復雜且難以觸發的隱蔽HT成為可能。設Pleak,j表示電路中門j的標準泄漏功耗,Pleak,j′表示門j的實際泄漏功耗,令Pleak,j′=sjPleak,j,引入比例因子sj用于描述由于PV所導致的標準泄漏功耗與實際泄漏功耗之間的比值。因此,可以按照下式計算出整個電路(設共N個門電路)實際泄漏功耗與各個門標準泄漏功耗之間的關系,即

(1)
電路輸入的激勵不同,所處的狀態也不同,此時各個門的泄露功耗也會有所差別,而比例因子sj通常被認為不會發生改變。文獻[15]針對輸入激勵的改變是否影響比例因子sj的問題進行了相應的蒙特卡羅仿真分析,將一個1位全加器的各個門置于不同的輸入模式下,測量實際泄露功耗與標準泄露功耗,并計算它們之間的比值。結果表明,對于電路的不同狀態,電路泄露功耗的比例因子sj基本保持不變,因此電路總泄漏功耗在輸入向量vi情況下可以表示如下:
(2)
其中:Pleak(vi)為輸入向量vi激勵下的電路的總泄漏功耗;sj為第j個門的比例因子;Pleak,j(vi)為第j個門的標準泄漏功耗(1≤j≤n)。由(2)式可知,電路在不同輸入狀態下的總泄露功耗只與相應輸入狀態下各個門的標準功耗相關,而每個門對應的比例因子不變。但非法植入電路的HT,不論是否激活都會產生額外泄露功耗,這樣勢必會打破(2)式的平衡。用PHT來表示所植入HT的泄露功耗,可以得到:
(3)
將多個不同輸入激勵條件下得到的(3)式構成方程組,用于求解具體的比例因子,輸入激勵的數量需要大于電路中門的個數,以滿足方程組的非相關性,完成求解。HT引起的額外泄漏功耗將導致實際求解的比例因子sj相較于實際比例因子值存在異常,因此可以通過識別比例因子的異常實現對HT的檢測。而要構成和求解上述方程組,需要不同輸入激勵下實際的泄露功耗和標準的泄漏功耗數據。目前市場上一些測量儀器可以實現對功耗極低誤差的測量,如有些儀器的測量單元能將誤差降到10-4~10-5。因此,可以利用儀器完成實際泄漏功耗的采集,而電路中門的標準泄漏功耗在相應的工藝庫里都有定義,電路標準泄漏功耗通過設計仿真工具能夠獲得。
因為電路的標準泄露功耗和實際泄露功耗可以在設計階段和實際測量中獲得,所以能計算出各個門的比例因子sj。若此時電路中植入了木馬,引起額外的泄漏功耗,比例因子sj的值會表現異常,但由于門的數量眾多,微小的差異反應到每個比例因子上很難直接識別。因此,本文為方便木馬的鑒別,額外設置s0=PHT,表示木馬比例因子,單獨反映木馬引起的泄漏功耗。對于木馬比例因子s0的求解恰好是多元線性回歸的過程,將不同輸入激勵條件下得到的(3)式構成一組線性回歸方程,通過回歸分析求得木馬比例因子s0的值,并根據其是否異常來判斷HT是否存在,則有:
Ptol=s0Im+s1P1+s2P2+s3P3+…snPn+ε
(4)

s1pi,1-s2pi,2-…-snpi,n)2
(5)
(6)
(7)
S=(PTP)-1PTPtol
(8)
(5)式表示均方誤差;n個向量Pj加上向量Im構成m×(n+1)維矩陣P=[ImP1P2…Pn],將(5)式簡化為矩陣形式,如(6)式所示;當均方誤差J(S)對參數sj的偏導數為0時取極值,此時均方誤差最小,線性回歸參數sj可以得到最優解S=[s0s1s2…sn]T, 如(7)式所示;將(7)式中的項重新排列,得到向量S的標準求解式(8),比例因子sj(1≤j≤n)和木馬比例因子s0可根據(8)式求解獲得。即使一些回歸方程構成的(PTP)-1不可逆,仍可通過奇異值分解計算(PTP)-1的偽逆,從而得到向量S。
理想情況下,無HT正常電路的木馬比例因子s0等于0,而當電路植入有HT時,s0將是一個不等于0的異常值。但在實際情況下,由于測量誤差的存在,無HT電路的木馬比例因子s0并不是理想地等于0,也就不能通過s0值是否為0來判斷HT的植入。但是如果預先確定了無HT植入時電路木馬比例因子s0的標準值,進而進行比較以判斷是否存在HT,那么就仍然需要依賴黃金模型。為此,本文提出的方法將待測電路分成多個區域,對每個區域進行泄露功耗的門級特征描述,再采用線性回歸分析求解,得到各區域的木馬比例因子。對于無HT植入的電路,這些區域間的木馬比例因子值差異不大,但如果電路的某區域存在HT的植入,則該區域的s0值將明顯異常于其他區域的s0值,可以直觀地判斷出HT的存在且定位其所在的區域。除此之外,分區后的區域電路內邏輯門數量減少,有利于降低求解計算工作量,同時也可以提高HT的檢測精度。
本文以ISCAS’85的C17電路為例,演示本文檢測方法實現HT檢測的過程。C17電路由6個與非門組成,將C17電路劃分為2個區域,其中區域1植入簡單的HT(非門),如圖1所示。

圖1 電路C17
通過Innovus軟件仿真得到無HT植入時C17電路各個門的標準泄漏功耗,結果見表1所列。在電路區域1中植入木馬,再次仿真,利用PV模型來模擬統計電路植入HT后2個區域的實際泄漏功耗,結果見表2所列。

表1 C17電路各個門的標準泄漏功耗

表2 區域1和區域2的總泄漏功耗
利用獲得的泄漏功耗數據構成線性回歸方程,區域1的P、Pto1為:
(9)
區域2的P、Pto1為:
(10)
按照(8)式求解可得向量S=[s0s1s2s3],結果見表3所列。其中:s0為木馬比例因子,反映木馬泄漏功耗;s1、s2、s3為普通邏輯門的比例因子。此時,若將2個區域普通邏輯門的比例因子進行比較,則很難識別出異常的區域;而若直接比較2個區域的木馬比例因子s0的值,則可以觀察到由于HT植入了區域1,導致該區域的s0值明顯異常,于是判斷該電路在區域1中植入了HT。

表3 區域1和區域2的比例因子值
整個檢測方法的實施流程如圖2所示。首先對待測電路進行分區,建議電路設計人員在完成芯片原始電路功能設計后,將電路按照一定的規則劃分成多個區域,可以根據不同的時鐘域和不同的功能模塊來劃分,每個區域包括1個或多個功能模塊;給劃分后的每個電路分區添加電源門控單元,各區域的供電電源受電源門控單元控制可隨意開關,不受其余區域的影響,通過這樣的方式可以方便待測電路目標區域泄漏功耗的采集;獲取IC的標準泄漏功耗和實際泄漏功耗數據,每個門在不同輸入激勵下的標準泄漏功耗可以通過電路仿真獲得,而每個區域實際泄漏功耗的采集,需要利用電源門控模塊使其他區域的電源處于關閉狀態,再根據不同輸入激勵條件測量得到對應區域的電路總泄漏功耗,隨后切換電源門控模塊測得所有區域的電路總泄漏功耗。最后,根據得到的IC各區域電路的泄漏功耗構成線性回歸方程,并進行回歸分析,求得每個區域的木馬比例因子。

圖2 木馬球檢測方法流程
假設待測電路分成了N個區域,則可以得到N個木馬比例因子s0,通過直觀比較這些比例因子數據,判斷某區域的木馬比例因子是否存在異常,實現HT的檢測與定位。
通過實驗將本文方法的實施流程應用于ISCAS’85基準電路,分別對無HT植入和有HT植入的電路進行仿真。基于Nangate45nm單元庫,利用Cadence Innovus對基準電路的網表進行物理設計,通過功率仿真分析獲得電路中的標準泄漏功耗數據,然后利用PV模型模擬電路總泄漏功耗。利用MATLAB工具對得到的泄漏功耗數據進行處理,選擇非相關性輸入激勵,構成線性回歸方程,并通過回歸分析求解每個區域的木馬比例因子s0。實驗中對基準電路采用4分區和10分區,目的是為了實現HT所在區域的判斷,也可以探討不同數量的分區對實驗結果的影響。
實驗將基準電路S298分別劃分為4個區域和10個區域,劃分時保證各區域的門數大致相等。均在區域1中植入非門HT,根據獲取的泄漏功耗計算得到電路區域的木馬比例因子s0,結果見表4、表5所列。從表4、表5可以看出:區域1中的s0相較于其他區域明顯異常,故以此判斷區域1植入有HT;而采用10個分區的實驗中,區域1與其他區域的木馬比例因子差值更大,說明分區越多可檢測木馬比例因子差異越高。

表4 4分區下S298電路木馬比例因子

表5 10分區下S298電路木馬比例因子
實驗同時按照4分區劃分對基準電路S344、C499、C880、C3540和C6288進行方案應用,結果如圖3a所示,其中S344電路是需要規模由小到大的電路進行實驗對比。實驗預先在每個電路的分區1中植入HT(非門),從圖3a可以看出,分區1的木馬比例因子明顯高于其他分區,而且隨著電路尺寸增加,含HT與不含HT區域的木馬比例因子差異性縮小,檢測能力降低。
對基準電路采用10分區劃分時的實驗結果如圖3b所示。從圖3b可以看出,分區數量的增加提高了方案的HT檢測能力。雖然電路規模擴大也會增加HT的檢測難度,但觀察發現仍然能夠根據區域1中的木馬比例因子明顯異常,判斷HT的存在和位置。

圖3 不同分區下基準電路的木馬比例因子
2種不同電路分區情況下,基準電路植入HT區域與無HT區域的木馬比例因子差值變化情況如圖4所示。從圖4可以看出,相較于4區域劃分,采用10區域劃分基準電路可比較的木馬比例因子差值更大,更有利于實現HT的檢測。

圖4 2種分區下各基準電路木馬比例因子差值
從上述實驗結果可以發現,對于同一個待測電路,檢測方案中對電路的分區越多,HT產生的泄漏功耗在所在區域泄漏功耗的占比越大,對木馬比例因子的影響也越大,方案的檢測能力就越強。同時,隨著電路規模的擴大,HT引起的泄漏功耗相較于整個電路泄漏功耗占比減小。因此需要對電路進行更多的劃分以提高檢測能力。但分區增加會導致計算量增高,導致檢測成本增加。
根據C6288的實驗結果:在10分區情況下,可以通過不同區域木馬比例因子的差異實現對單非門HT的檢測;而采用4個分區時,區域木馬比例因子差異已經無法識別,使HT的檢測變得困難。這是由于C6288包含的邏輯門門數達到2 406個,而HT門為單個非門,占比低于0.04%。實驗結果表明:當HT電路超過總電路規模的0.04%時,可以實現對電路中HT的良好檢測。
本文方法用于更大更加復雜的待測電路時,可以采用更多分區劃分來保證HT的檢測能力。近幾年發表的基于電流、功率分析的HT檢測方法的實驗結果與本文方法實驗結果的檢測參數、可檢測木馬占比、木馬定位等性能的比較見表6所列。其中:檢測參數包括功耗或電流;可檢測木馬占比表示可檢測HT電路的大小占待測電路的比例;定位指是否可確定HT所在待測電路的劃分區域。
文獻[16]基于多電源瞬態電流分析,引入黃金模型比較待測芯片的總電源電流差,當超過預定義的閾值時判定HT的存在;文獻[17]通過持續向量應用,放大黃金模型和待測芯片的功率分布差異,根據差分功率輪廓分布的信息來判斷電路有無HT植入及其位置;文獻[18]根據泄漏電流參數,利用線性回歸求解門級電路比例因子,按照其平均值和方差來估計全部待測電路的木馬比例因子的差異,實現對HT的檢測。表6中,文獻[15]設定時鐘樹區域為公共區域,與每個區域合并后對比例因子進行求解,利用公共區域的比例因子進行比較判斷HT,但需要限制未植入HT時的鐘樹區域,這是由于當HT植入時鐘樹公共區域的情況下,合并后的每個區域將都存在HT,求解的比例因子都會異常,需要重新對HT進行評判。而本文方法是直接對電路進行分區,根據每個分區的木馬比例因子差異識別HT,簡單實用、通用性更好。本文方法可檢測木馬占比高于0.04%,可以實現HT區域定位。

表6 不同木馬檢測方法比較
為改進基于GLC的HT檢測能力與效率,本文提出了一種基于電路分區自比較的HT檢測方法。直接將電路進行分區,然后對區域電路的泄漏功耗進行門級特性仿真,并通過線性回歸算法求解得到每個區域的木馬比例因子,最后通過比較區域電路木馬比例因子異常性,判斷HT的存在并定位其所在區域。本文方法無需引入獲取困難的黃金模型,無需觸發HT活性,可以檢測規模占待測電路0.04%以上的微小型HT。未來工作將進一步研究探討電路劃分數量與檢測能力的具體依賴性,研究如何通過門組的概念引入以減少檢測時間。