張藝倫 嚴迎建 李軍偉
(信息工程大學 河南 鄭州 450001)
隨著集成電路的高速發(fā)展以及各種芯片的廣泛應用,硬件木馬可以在芯片設計的各個階段被插入,包括電路網(wǎng)表設計、芯片制造等,對芯片產(chǎn)業(yè)會造成極大的危害。硬件木馬從結(jié)構(gòu)上可以分為觸發(fā)器和有效載荷[1]。木馬攻擊者一般會選擇隱蔽的節(jié)點使得硬件木馬難以觸發(fā),這種隱蔽的節(jié)點可以通過節(jié)點的翻轉(zhuǎn)概率或者可測性來衡量。文獻[2]對尋找這些木馬節(jié)點進行了詳細的研究,指出低翻轉(zhuǎn)概率的節(jié)點可能有非常高的可測性,從側(cè)面說明了節(jié)點的翻轉(zhuǎn)概率與可測性并不相同。文獻[3]提出了基于可控性與可觀察性的硬件木馬檢測方法,通過機器學習的方法篩選出可控性與可觀察性較低的節(jié)點并作為可能的木馬節(jié)點。文獻[4]提出了稀有節(jié)點的篩選方法,考慮了可測性與翻轉(zhuǎn)概率等因素。然而這些方法并未從木馬觸發(fā)器的角度深入分析,選取的節(jié)點可能達不到攻擊者選擇其觸發(fā)木馬的理想情況。對于木馬觸發(fā)器設計來說,關(guān)鍵在于組成的觸發(fā)節(jié)點難以被激活,從而增強了硬件木馬的隱蔽性。本文針對硬件木馬的觸發(fā)器特點,提出了基于翻轉(zhuǎn)概率分析與可測性的稀有度指標,可以最大程度篩選出那些潛在的木馬節(jié)點。
為了增強電路的安全,硬件木馬防護方法可以通過在電路中增加防護電路以混淆木馬攻擊者的視野,使其難以對混淆的硬件電路攻擊。電路混淆技術(shù)[5]主要包括基于組合電路的邏輯加密技術(shù)以及基于狀態(tài)機的時序型電路混淆設計[6-7]。本文主要選擇電路混淆中基于組合電路的邏輯加密技術(shù)。邏輯加密技術(shù)[8-9]通過在電路中插入密鑰門使電路的功能產(chǎn)生混淆,輸入正確的密鑰解鎖電路。
由于電路中存在的翻轉(zhuǎn)概率較低的節(jié)點容易被硬件木馬攻擊者所利用,因此對于硬件木馬防護來說,基于邏輯加密的硬件木馬方法關(guān)鍵在于消除電路存在的稀有節(jié)點,使得攻擊者無法輕易獲取電路的低概率節(jié)點即稀有節(jié)點。文獻[8-10]提出了利用AND/OR、XOR/XNOR加密門來改變節(jié)點的概率,提高了電路的混淆程度。然而這些方法針對抗可滿足性攻擊并沒有提出解決措施,導致自身的安全性較弱?;诳蓾M足性(SAT)的攻擊方法[11]能夠在幾個小時內(nèi)有效破解大多數(shù)的邏輯加密方法,通過選取合適的差分輸入向量,在同一個輸入向量中,選取至少兩個不同的密鑰,當輸出結(jié)果不同時,則說明至少存在一個密鑰錯誤。因此,邏輯加密方法的安全性能受到極大的威脅。SAT攻擊需要兩個條件:
(1) 獲取加密設計的網(wǎng)表;
(2) 市場上黑盒狀態(tài)下激活的功能IC。
對于邏輯加密方法,本文分析了提高硬件木馬防護的關(guān)鍵因素,從加密門的插入位置與加密門的類型考慮,提出基于樹形加密結(jié)構(gòu)[12]的改進型邏輯加密算法,可以有效消除稀有節(jié)點的翻轉(zhuǎn)概率,并提升抗SAT攻擊性能。相比已有工作,優(yōu)點是提高了篩選潛在的木馬觸發(fā)器節(jié)點的有效性,同時,增強了木馬防護方法自身的抗SAT攻擊能力,并有效消除了稀有節(jié)點,達到混淆硬件電路的效果。
稀有節(jié)點作為硬件木馬的植入點之一,可以構(gòu)成觸發(fā)器和有效載荷。由于有效載荷的設計還需要考慮到功能影響因素,這樣減小了稀有節(jié)點作為有效載荷的可能性,本文著重對組成觸發(fā)器的節(jié)點進行篩選。
為了構(gòu)成硬件木馬的觸發(fā)器,可以選擇內(nèi)部節(jié)點觸發(fā)信號或者外部輸入。外部輸入對于設計者而言更加簡單,通過部分輸入可以形成特定的觸發(fā)組合,本文主要研究內(nèi)部節(jié)點觸發(fā)信號,為了表示潛在的觸發(fā)信號,定義了電路中節(jié)點為0的概率P0,為1的概率P1及翻轉(zhuǎn)概率P。翻轉(zhuǎn)概率P可以表示為P0和P1的乘積,當翻轉(zhuǎn)概率P小于閾值時,這個節(jié)點為低翻轉(zhuǎn)概率節(jié)點[13]。
P=P0P1
(1)
為了進一步分析硬件木馬的特征,本文通過可測性來衡量硬件木馬的觸發(fā)器和有效載荷。假設電路節(jié)點N為低0節(jié)點,此時為了進一步確定該節(jié)點是否為稀有節(jié)點,應該考慮三個參數(shù)CC1、CC0、CO。當節(jié)點N的參數(shù)CO值較高時,說明該節(jié)點能夠傳播到輸出的可能性較低。此時假設該節(jié)點作為硬件木馬觸發(fā)器的節(jié)點,那么只是通過該節(jié)點組合觸發(fā)有效載荷,即使傳播到輸出也并未受影響。因此,可控性參數(shù)CO可以用來判斷節(jié)點作為有效載荷的指標,評估硬件木馬的傳播及隱蔽性。
可控性參數(shù)CC1、CC0分別表示想要賦值給該節(jié)點為1、0所需要對相關(guān)節(jié)點進行賦值的最小次數(shù),表明了該節(jié)點邏輯值的控制難度。盡管可控性CC0與CC1可能相互影響,但是它們的低可控性值的區(qū)間范圍會有所不同。當節(jié)點N的稀有值為0,檢測的難度取決于檢測該節(jié)點邏輯值為0的控制難度,與該節(jié)點的可控性CC1值無關(guān)。因此,我們可以省略對CC1參數(shù)的影響。
硬件木馬觸發(fā)器的主要因素在于可控性與翻轉(zhuǎn)概率分析,節(jié)點的可控性概率定義為節(jié)點的可控性值占可控性最大值的比率。
(2)
為了篩選出低可控性節(jié)點,本文將節(jié)點可控性概率的閾值設定為β(0<β<1),那么對于可控性1值來說,它的閾值為βCC1max,可控性0值的閾值為βCC0max。通過設定節(jié)點的可控性閾值,提取出大于閾值概率的節(jié)點,這些節(jié)點相對具有低可控性。
由于每個電路中節(jié)點的可控性值分布情況不同,可能存在一些尖峰情況,只有極少數(shù)非常低的可控性節(jié)點,因此,對于這種電路,可以根據(jù)電路的實際情況篩選低可控性節(jié)點,選定電路中可控性值較高的節(jié)點,占節(jié)點總數(shù)的5%。這樣可以有效針對電路的實際情況篩選出相對較難激活的節(jié)點。
通過進一步分析,本文將節(jié)點的稀有度定義為可控性概率與翻轉(zhuǎn)概率之和。由于節(jié)點可控性0值與可控性1值的最大值不同,因此,稀有度可以分為兩種情況:
R1=(1-PC1)+P1R0=(1-PC0)+P0
(3)
R1、R0分別表示該節(jié)點為1、0時的稀有度,P1、P0分別表示該點為1、0的概率。當節(jié)點的可控性值越大時,則說明該節(jié)點的低可控性越明顯,其可控性的難度越大,這與節(jié)點的翻轉(zhuǎn)概率變化趨勢有所不同,因此,為了統(tǒng)一描述,本文對稀有度中的可控性概率作以調(diào)整。當節(jié)點的稀有度值較低時,則說明該節(jié)點為觸發(fā)器節(jié)點的可能性較大,并且應該同時具有低可控性與低翻轉(zhuǎn)概率的特征。綜上所述,本文從構(gòu)成硬件木馬的觸發(fā)器角度分析稀有節(jié)點,為了進一步提高篩選的精度和對其分析的精度,本文通過稀有度的指標進一步縮小節(jié)點范圍,減小節(jié)點作為硬件木馬觸發(fā)器的誤判率。
如圖1(a)所示,N表示電路中需要加密的節(jié)點,而Key表示插入的密鑰,通過密鑰門gate,最終將節(jié)點N轉(zhuǎn)化為Ng。值得注意的是,改變節(jié)點N的途徑有兩種:一種是通過不同類型的密鑰門,另一種是通過密鑰數(shù)量。通過概率分析,我們可以發(fā)現(xiàn)AND/OR相比其他的門改變節(jié)點概率的效果更佳。而通過多重密鑰可以迅速改變概率,例如雙重密鑰門的效果比單密鑰的效果增加了近0.25。
(a) 密鑰插入模型 (b) “與非”加密門圖1 密鑰門插入模型
為了達到盡快消除稀有節(jié)點的理想效果,本文需要考慮密鑰門的插入位置,假設在稀有節(jié)點N上直接插入密鑰門g1,盡管將該節(jié)點轉(zhuǎn)變?yōu)镹g,但節(jié)點N的低概率值依舊存在,因此需要在電路稀有節(jié)點的前級選擇插入位置。
稀有節(jié)點的稀有值影響因素包括三個方面:稀有節(jié)點的輸入門類型、稀有節(jié)點的輸入節(jié)點概率以及稀有節(jié)點的輸入節(jié)點數(shù)量。當稀有節(jié)點的輸入節(jié)點數(shù)量增多時,所需要針對的每個輸入節(jié)點的提升概率效果應該更加明顯才能有效消除稀有節(jié)點。當稀有節(jié)點的前級輸入節(jié)點概率與0.5的差值越小時,提升幅度越大,其影響效果更加明顯。當稀有節(jié)點的輸入門類型不再是簡單的“與”、 “或”門時,我們應該對其進行分類討論。
θ>PA1PB1
(4)
可以看出,為了產(chǎn)生低0稀有節(jié)點Ng,A、B節(jié)點中至少存在一個低1節(jié)點使得輸出節(jié)點的概率P1小于閾值θ。當Ng為低1節(jié)點,稀有值的閾值為θ,構(gòu)造稀有節(jié)點的條件為:
θ>1-PA1PB1
(5)
可以看出,當Ng為低1節(jié)點時,稀有值的閾值為θ,A、B節(jié)點為1的概率P1都很高,才能滿足構(gòu)造稀有節(jié)點的要求。通過“與非”門可以看出,消除電路中的稀有節(jié)點不一定按照該稀有節(jié)點的概率進行插入,有可能需要提高相反概率的節(jié)點。因此,節(jié)點的概率不僅僅受邏輯門關(guān)系的影響,同時,還與輸入節(jié)點的概率相關(guān)。
在邏輯加密的設計過程中,本文圍繞提高電路中稀有節(jié)點的稀有值的概率,考慮該節(jié)點的前置門的類型以及該節(jié)點的稀有值,選擇合適的密鑰門。然后,針對稀有節(jié)點的稀有值,增加其密鑰門提升密鑰的效果,以提高基于邏輯加密的硬件木馬防護能力。
為了增強邏輯加密對SAT攻擊的阻抗性,本文首先選取基于“與”、“或”加密門的加密電路進行分析。如圖2所示,本文通過原始電路和加密電路的真值表分析原有基于AND/OR門的加密電路抗SAT攻擊的脆弱性。
(a) 原始電路
(b) 加密電路圖2 SAT攻擊分析
通過真值表分析,假設攻擊者選擇110、011、101三組輸入向量進行密鑰比較,可以篩選出正確密鑰。本文在單節(jié)點上使用AND/OR密鑰門進行加密與XOR密鑰門的抗SAT效果在迭代次數(shù)上相差不大。可以看出,盡管一些輸入對于不同的密鑰結(jié)果相同,增加了攻擊的冗余性,但假如選擇了如上方案,最少迭代次數(shù)為3。為了逐步增加SAT攻擊的難度,文獻[14]和文獻[15]分別提出了Anti-SAT與SAR模塊可以有效增加SAT攻擊的迭代次數(shù),使得每一次迭代至多只有一個錯誤密鑰呈現(xiàn)。但是,Anti-SAT加密結(jié)構(gòu)由于本身的單點函數(shù)構(gòu)造很容易引起概率偏斜攻擊[16],SAR的結(jié)構(gòu)復雜難以迅速解決消除稀有節(jié)點問題,本文考慮第三種方法,基于樹形的抗SAT加密結(jié)構(gòu)來進行邏輯加密方案。
文獻[12]提出了樹形加密方案,由于其結(jié)構(gòu)的特殊性,每次迭代攻擊最多只能排除1個錯誤密鑰。如圖3所示,樹形加密結(jié)構(gòu)通過XOR門構(gòu)造相同結(jié)構(gòu)的復刻門,然后通過相反門輸出,該結(jié)構(gòu)可以極大增加SAT攻擊所需要的迭代次數(shù),并提升抗SAT攻擊效果。盡管之前的樹形加密方案構(gòu)造了抗SAT攻擊模塊,但并未考慮到如何防止硬件木馬插入。
圖3 樹形加密模型
本文主要對增強木馬防護能力與抗SAT攻擊能力兩方面對基于樹形加密的邏輯加密方法進行改進。為了加強對硬件木馬的防護能力,基于2.1節(jié)的密鑰門插入分析,考慮樹形加密門插入電路中改變節(jié)點的概率。為了有效消除稀有節(jié)點,本文將樹形加密應用于稀有節(jié)點的前級節(jié)點概率改變。由于樹形加密門的原始門數(shù)至少為2,因此存在兩種改變方式:第一種可以將需要改變的節(jié)點作為樹形加密門中原始門輸入的一部分;另外一種是將需要改變的節(jié)點輸入作為原始門輸入的一部分。
本文從第一種情況進行考慮,為了在該節(jié)點上構(gòu)造小型的樹形加密模塊,選取兩輸入“與”門作為原始門,并將原始門的輸入設置需要改變的節(jié)點N以及節(jié)點K,如圖4所示。值得注意的是,當節(jié)點N為低1節(jié)點時,原始門設置成“或”門;當節(jié)點N為低0節(jié)點時,原始門設置成“與”門。
圖4 單點加密門
由于樹形加密門至少需要兩輸入作為“與”、“或”門樹,因此本文考慮通過節(jié)點K設置為密鑰來替代原來電路中的另一個輸入。如表1所示,當不考慮密鑰K的影響時,至少需要3次才能將所有錯誤密鑰排除。對于加密模塊來說,此方法增加了抗SAT攻擊的迭代次數(shù)。當需要將密鑰K納入?yún)^(qū)分輸入向量時,為了構(gòu)成單密鑰門,本文考慮控制值為1的密鑰門,因此選擇“或”門作為密鑰K的替代門。本文通過“或”門將節(jié)點K轉(zhuǎn)換為由于密鑰與節(jié)點T共同控制的輸入,如圖5所示,這樣保持了樹形加密門的結(jié)構(gòu),并且由于“或”門的影響并未減小加密模塊的迭代次數(shù)。
表1 單點加密門真值表
圖5 替代門
當選擇樹形加密模塊時,考慮其概率改變效果,通過節(jié)點Ng的概率說明加密節(jié)點N的概率變化,兩個“異或”門作為樹形加密模塊的輸入,然后連接復刻門g1。
假設K為輸入的隱形密鑰時,我們可以發(fā)現(xiàn)它的概率提升接近0.375,如式(6)所示。而當K作為另一個密鑰門的輸入時,概率改變的效果受節(jié)點T的影響。由于節(jié)點N的概率x較低,因此概率效果不如前者,如式(7)所示。
(6)
(7)
第二種情況為樹形加密門的原始門輸入由前級節(jié)點的輸入組成,當節(jié)點的邏輯0值較低時,原始門一般為“與”門,該節(jié)點N的概率x改變?yōu)?.75x,與第一種情況相比,盡管可能減小一定的資源,但是難以消除稀有節(jié)點。對于兩種情況而言,盡管樹形加密模塊一定程度上增加了需要改變的節(jié)點概率,但與其他加密門的效果相比,很難達到改變概率的理想情況。因此,本文考慮在加入樹形加密門時,提前對節(jié)點N作出改變。我們將密鑰分成了兩類,一類作為抗SAT攻擊,另一類作為密鑰門混淆及消除稀有節(jié)點。在節(jié)點N處插入密鑰門以迅速改變該節(jié)點的概率,當原始門的輸入概率都提升至0.5時,該節(jié)點為0的概率值為0.562 5。因此,該樹形加密門和“與”、“或”加密門改變節(jié)點概率效果相似。
基于3.1節(jié)的分析,本文對基于樹形加密的邏輯加密方法在消除概率上進行改進。由于樹形加密門的插入位置等影響,本文繼續(xù)對抗SAT攻擊進行分析,以獲得最大化的安全防護效果。對于整個邏輯加密算法來說,如果加密門置于電路中的一部分,即便這個邏輯加密模塊本身具有較好的抗SAT攻擊能力,由于電路的輸出前后的邏輯關(guān)系,樹形加密結(jié)構(gòu)并不能保證每次差分輸入最多檢測出一個錯誤密鑰。造成這樣的原因在于兩方面:一是原始門的輸入概率不均;二是輸出的結(jié)果并不一定能傳播到輸出,因此,抗SAT攻擊的效果會相對減弱。
為此,我們從兩方面解決這個問題:一是考慮樹形加密模塊的插入位置,選擇樹形加密門中原始輸入門的輸入及輸出以增加樹形加密模塊的傳播能力;二是考慮整體的加密效果與SAT攻擊之間的相互關(guān)系。
為了盡量減少電路的邏輯關(guān)系對樹形加密模塊造成干擾,本文提出在稀有節(jié)點的輸入傳輸端插入樹形加密模塊,將圖4的N、K替換成稀有節(jié)點的輸入A、B并作為原始門的兩個輸入端,如圖6所示。這樣可以避免因為消除同一個稀有節(jié)點而多次插入密鑰門,造成樹形加密門的結(jié)果傳播至輸出會受到其他節(jié)點的影響。
圖6 改進型加密結(jié)構(gòu)
由于電路中稀有節(jié)點的輸入門類型以及輸入節(jié)點很多,當選取由兩輸入的“與”門構(gòu)成的低1節(jié)點時,假設節(jié)點A的概率為a,節(jié)點B的概率為b,通過式(8)、式(9)得到N、g1、Ng三個節(jié)點的概率。節(jié)點Ng的概率為稀有節(jié)點改變后的概率值,當節(jié)點的概率越大時,節(jié)點Ng的概率值更大。因此,在進行邏輯加密設計時,綜合考慮樹形加密門的抗SAT攻擊效果,將稀有節(jié)點的輸入節(jié)點A、B概率設置約為0.5,那么樹形加密門輸出的節(jié)點概率即稀有節(jié)點概率改變?yōu)?.437 5。由“或”門構(gòu)成的低0節(jié)點邏輯表達式與式(8)、式(9)類似,并且當輸入節(jié)點數(shù)量逐漸增大時,樹形加密門改變稀有節(jié)點的效果更加明顯。
(8)
(9)
為了增加整體的抗SAT效果,經(jīng)過文獻[17]分析與不同加密門的抗SAT效果得知,“異或”門可以有效提升抗SAT攻擊的迭代一次難度,在此基礎(chǔ)上本文選取電路中概率改變需求較小的節(jié)點插入“異或”門來干擾SAT攻擊。
為了詳細說明邏輯加密過程,本文通過改進型邏輯加密算法詳細介紹該流程,以分析電路中的稀有節(jié)點為基礎(chǔ),提出了基于樹形結(jié)構(gòu)的改進型邏輯加密算法,增加基于邏輯加密的硬件木馬防護性能。算法的基本思想是以消除稀有節(jié)點和增加抗SAT攻擊難度為目標,通過稀有節(jié)點的概率排序逐個插入密鑰門以消除節(jié)點的稀有值,并且根據(jù)需要增加混淆門。具體代碼如下:
1: Input:rare node(R),probability of net(Pn),
2: orignal circuit netlist(Oc),number of key(nk)
3: Output:Locked circuit netlist(Lc)
4: for all rare node in R do
5: select the least probabilityPlin p
6: if(Pl>Pr) then
7: for input i in input of nodenl
8: if(PTi<(0.5-Pn)) then
9: if(num_input≤3)
10: set and-gate as key gate
11: else if(num_input>3)
12: set double-and-gate as key gate
13: else if(PTi>(Pn+0.5)) then
14: if(num_input≤3)
15: set or-gate as key gate
16: else if(num_input>3)
17: set double-or-gate as key gate
18: end for
19: Insert the tree-type key gate with Nk-T
20: else if(Pl>Pr) then
21: Insert the xor key gate in the node
22: end if
23: end for
24: Update the locked netlist LC, Count the Rare node in LC
25: if (R≠?) then
26: return to Line 4
27: else
28: skip to line 29
29: end
基于樹形結(jié)構(gòu)的改進型邏輯加密算法總體上可以分為兩個部分:一是初始化部分,即第1至3行的內(nèi)容(提出輸入輸出參數(shù));二是插入密鑰門的部分,即第4至29行的內(nèi)容。
首先對于電路中的稀有節(jié)點進行概率排序找到最低的概率節(jié)點nl,確定需要改變的節(jié)點,判斷該節(jié)點的概率是否小于中間概率值Pr。當節(jié)點概率較小時,選擇插入樹形加密門,當節(jié)點概率大于中間概率值Pr時,選擇插入“異或”門增加抗SAT攻擊迭代一次的難度。當選擇樹形加密門時,找出該節(jié)點的前級門。通過對該節(jié)點的前級門進行分析,尋找相對差值較小的節(jié)點。相對差值為該節(jié)點為1的概率與0.5的差值。當該節(jié)點為1的概率較小時,插入“或”門增加該節(jié)點為1的概率;當該節(jié)點為0的概率較小時,插入“與”門減小該節(jié)點為1的概率。與此同時,判斷輸入節(jié)點的數(shù)量,當數(shù)量超過3時,需要對節(jié)點插入雙密鑰門,即連續(xù)插入兩個密鑰門,以增加節(jié)點的概率改變效果。值得注意的是,對于插入樹形加密結(jié)構(gòu)后的稀有節(jié)點如果還未能達到普通節(jié)點的要求,那么應該在電路中插入相應的門以消除其稀有節(jié)點。然后,更新電路的節(jié)點概率分布情況,在原有的稀有節(jié)點集中確定節(jié)點概率值最低的稀有節(jié)點進行插入,直到稀有節(jié)點集為Φ。
本文通過modelsim軟件與C語言搭建實驗平臺,將ISCAS’85基準電路作為載體電路,主要對電路稀有節(jié)點進行分析并且通過提出的邏輯加密算法對電路進行加密。
首先對電路的稀有節(jié)點進行分析,實驗對象為c880電路,其節(jié)點數(shù)為443,通過modelsim軟件對電路進行隨機向量仿真篩選出低翻轉(zhuǎn)概率節(jié)點,設定翻轉(zhuǎn)概率閾值為0.2,則低0節(jié)點與低1節(jié)點的稀有值概率約為0.28。然后,通過SCOAP算法[18]分別統(tǒng)計電路中低可控性0節(jié)點與低可控性1節(jié)點。將c880電路的可控性概率設置為0.4,通過統(tǒng)計節(jié)點的可控性情況,將可控性0值與可控性1值的閾值分別設置為11.2和14.8,最終將該電路的稀有度閾值設置為0.8。由于電路節(jié)點數(shù)與可控性值分布情況的不同,因此,需要根據(jù)電路的實際情況設置不同的可控性概率來選取部分較高的可控性值作為低可控性節(jié)點的判斷標準。本文提出的稀有度指標主要在于從低可控性節(jié)點與低概率節(jié)點兩方面對稀有節(jié)點的范圍進行約束,以選取難以測試的潛在觸發(fā)器節(jié)點。
最后,本文經(jīng)過篩選分別統(tǒng)計出電路中的低0稀有節(jié)點與低1稀有節(jié)點。如圖7所示,在c880電路中,分別篩選出4個低0節(jié)點與5個低1節(jié)點,極大地縮小了稀有節(jié)點的范圍,同時增加了檢測硬件木馬的可靠性。
(a) 低0節(jié)點篩選
(b) 低1節(jié)點篩選圖7 稀有節(jié)點篩選
為了進一步比較該方法的篩選效率,本文通過分析ISCAS電路的節(jié)點分布情況,與前人的方法生成的稀有節(jié)點作比較。從表2中可以看出,本文提出的稀有節(jié)點篩選方法篩選出的低0節(jié)點與低1節(jié)點明顯較小,能夠得到真正具有威脅性的節(jié)點。經(jīng)統(tǒng)計,該方法相對于分別基于低翻轉(zhuǎn)概率節(jié)點與可控性節(jié)點的篩選方法,平均能提高64.82%、77.62%的篩選效果。
表2 節(jié)點篩選對比情況
然后,本文對ISCAS’85組合電路進行邏輯加密,以c7552電路為例,如圖8所示,將電路中原有的稀有節(jié)點轉(zhuǎn)化為普通節(jié)點,原有稀有節(jié)點的翻轉(zhuǎn)概率閾值最低可以達到10e-13,而改變之后的節(jié)點翻轉(zhuǎn)概率可以達到0.1以上。
圖8 消除稀有節(jié)點分析
與此同時,本文對邏輯加密算法中消除稀有節(jié)點的效果進行具體分析并與前人的工作進行對比。以c7552電路為例,隨機選取電路中的四個稀有節(jié)點,通過不同的邏輯加密方法加密電路得到關(guān)于稀有節(jié)點的變化情況,如表3所示。相比文獻[8-9]的方法,本文方法進一步提升了加密后的稀有節(jié)點概率值。本文對于隨機選取的節(jié)點平均提高的原因在于隨著稀有節(jié)點的輸入節(jié)點數(shù)增大。本文方法不僅僅可以改善輸入節(jié)點數(shù)的概率,同時能夠改善稀有節(jié)點的輸入門的概率影響,因此可以獲得更好的概率改變效果。
表3 節(jié)點概率改變效果
最后,本文對邏輯加密方法的抗SAT攻擊性能進行比較,通過所需要的差分輸入向量DIP數(shù)量以及所需要的時間T(秒)可以判斷其安全防護能力。如表4所示,NA表示為至少1個小時難以被破解,在密鑰百分數(shù)為50%時,分別與文獻[8-9]的方法進行比較,可以發(fā)現(xiàn)本文的邏輯加密方法在保持原有樹形加密的抗SAT效果的基礎(chǔ)上,提高了SAT攻擊的迭代次數(shù),并且增加了邏輯解密的時間。
表4 抗SAT攻擊對比情況
本文提出一種基于稀有度與邏輯加密的硬件木馬防護方法,有效篩選出電路中隱蔽的稀有節(jié)點,在有效消除稀有節(jié)點的前提下,能夠增加抗SAT攻擊的防護能力。通過實驗驗證,本文提出的硬件木馬防護方法具有可行性。下一步工作將在此基礎(chǔ)上對時序電路的硬件木馬防護方法展開研究。