本發(fā)明涉及集成電路可信任性檢測技術(shù)領(lǐng)域,具體涉及一種有效提高硬件木馬激活概率的方法。
背景技術(shù):
隨著半導(dǎo)體制造工藝不斷提高,集成電路廣泛應(yīng)用在國民生活中,尤其是國家安全、軍事、通信、金融、交通等關(guān)乎國家命脈的行業(yè),而集成電路的設(shè)計,制造,測試和封裝也隨著經(jīng)濟全球化的趨勢逐漸分離,越來越多的第三方公司和人員參與進來,芯片在加工過程中不完全自主可控,攻擊者可以在任何階段對原始電路設(shè)計進行篡改形成惡意電路,監(jiān)視電路的狀態(tài),在特定的狀態(tài)下激活電路,使電路系統(tǒng)暫時性癱瘓,芯片失效,功能紊亂或者信息泄露。芯片作為現(xiàn)代信息系統(tǒng)硬件設(shè)備的核心,芯片安全更是信息安全產(chǎn)業(yè)鏈中尤為重要的一環(huán),硬件木馬在底層硬件方面嚴(yán)重沖擊了現(xiàn)代信息系統(tǒng),給信息安全造成了極大的威脅,如何保證芯片的安全性和可靠性引起了世界各國的廣泛的關(guān)注。
近年來隨著對硬件木馬的研究逐漸深入,在硬件木馬的檢測技術(shù)方面取得了很多成果,主要有物理檢測、功能檢測、安全性設(shè)計、旁路信號分析三種。
物理檢測是一種破壞性檢測。該方法對芯片進行破壞性檢測,不僅耗時,成本較高,而且只能做部分的抽樣檢查。在大量待測芯片中應(yīng)用這種方法不能遍歷每一個芯片,因此不能保證每一個芯片都是安全的。隨著電子工藝的快速發(fā)展,物理檢測的弊端越來越明顯,在當(dāng)今硬件木馬的檢測技術(shù)中已經(jīng)很少使用到失效分析來檢測芯片中是否存在硬件木馬。
功能檢測技術(shù)是在VLSI(超大規(guī)模集成電路)故障檢測與差錯檢查的基礎(chǔ)上發(fā)展起來的,在輸入端口施加測試向量,觀察電路的輸出信號與預(yù)期的輸出之間的差異,從而判斷硬件是否存在缺陷與木馬。該方法需要觀察輸出信號的變化,不受工藝偏差和測量噪聲的影響,能夠檢測出小尺寸的硬件木馬,但是該方法需要激活硬件木馬,這對測試向量集的長度要求很嚴(yán)格,尋找合適的測試向量需要耗費較多的時間。
旁路信號分析主要是通過采集芯片在工作時泄漏的旁路信息(如功耗、溫度、電磁輻射等),利用信號處理技術(shù)(相關(guān)性分析、主成份分析、投影尋蹤等)進行空間變換和壓縮實現(xiàn)特征提取,對基準(zhǔn)芯片和待測芯片的旁路特征進行差異判別,如果差異超出閾值,則待測芯片中存在硬件木馬,否則,待測芯片不存在硬件木馬。旁路信號分析具有檢測成本低、精度高、移植性好等優(yōu)點,一經(jīng)提出就展示出較為樂觀的應(yīng)用前景,成為當(dāng)前硬件木馬檢測方法的主流。然而在測試過程中由于測量儀器的精度限制和工藝噪聲的影響,小面積的硬件木馬的物理特征表征的不明顯,容易被噪聲所淹沒。
安全性設(shè)計是在電路的設(shè)計階段考慮到由電路結(jié)構(gòu)的引入的安全風(fēng)險,根據(jù)硬件木馬的行為特性、觸發(fā)條件和功能特征,在原始電路中插入特殊模塊,提高內(nèi)部電路的可觀察性和可控性,從而實現(xiàn)阻止惡意電路的植入、防護惡意電路德攻擊行為、協(xié)助電路的安全性檢測等。根據(jù)不同的防護目的,安全性設(shè)計分為抗木馬技術(shù)、輔助硬件木馬檢測技術(shù)、硬件木馬在線防護技術(shù)和硬件木馬隔離技術(shù)四種。
硬件木馬不同于軟件木馬,芯片測試階段的硬件木馬檢測不一定可以完全檢測出硬件木馬,投產(chǎn)使用的芯片對硬件木馬沒有任何防護措施,不具有抵御木馬的能力,導(dǎo)致現(xiàn)代信息系統(tǒng)完全暴露在硬件木馬的攻擊之下,所造成的損失是無法估計的隨著半導(dǎo)體工藝和集成電路的設(shè)計技術(shù)不斷發(fā)展,硬件木馬設(shè)計者為了特定的目的,設(shè)計的硬件木馬越來越精巧,即面積開銷越來越小、激活條件越來越罕見、有效載荷越來越難測。因此設(shè)計者需要利用安全性設(shè)計,在設(shè)計階段就考慮到硬件系統(tǒng)的工作機制和木馬的觸發(fā)原理,在原始電路中插入特殊電路提高電路的可測性和觀察性,實現(xiàn)硬件木馬的在線防護,提高集成電路的可利用率。
參考文獻
[1]Salmani H,Tehranipoor M,Plusquellic J.A Novel Technique for Improving Hardware Trojan Detection and Reducing Trojan Activation Time[J].IEEE Transactions on Very Large Scale Integration Systems,2012,20(1):112-125.
[2]Xue H,Moody T,Li S,et al.Low overhead design for improving hardware trojan detection efficiency[C]//Aerospace and Electronics Conference,NAECON 2014-IEEE National.IEEE,2014.
[3]M.Banga and M.S.Hsiao.Vitamin:Voltage inversion technique to ascertain malicious insertions in ICs.In Proceedings of the IEEE International Workshop on Hardware-Oriented Security and Trust,HST’09,pages 104–107,2009.
[4]Salmani H,Tehranipoor M,Plusquellic J.A layout-aware approach for improving localized switching to detect hardware Trojans in integrated circuits[C]//IEEE International Workshop on Information Forensics&Security.IEEE,2010:1-6.
[5]趙毅強,馮紫竹,史亞峰,等.一種基于縮短激活時間的硬件木馬檢測方法[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2014(6):85-89。
技術(shù)實現(xiàn)要素:
為克服現(xiàn)有技術(shù)的不足,本發(fā)明旨在提出一種有效提高硬件木馬激活概率的方法,該方法在低活性節(jié)點上植入異或門,面積開銷較小,它能夠?qū)⒐?jié)點的翻轉(zhuǎn)概率提高到最大值,有效的移除電路中的低活性節(jié)點,提高電路的激活度,極大的縮短低活性節(jié)點的激活時間,在一定程度上減小硬件木馬檢測過程中硬件木馬的激活時間的隨機性和不確定性。另外,可以結(jié)合旁路信號分析方法或者邏輯測試方法,大大縮短硬件木馬的激活時間,可以有效的提高硬件木馬檢出率。本發(fā)明采用的技術(shù)方案是,有效提高硬件木馬激活概率的方法,步驟如下:
步驟1:隨機測試向量的產(chǎn)生與激勵電路:根據(jù)原始電路建立仿真驗證平臺,隨機產(chǎn)生測試向量,利用Synopsys公司的數(shù)字電路仿真軟件VCS仿真原始電路設(shè)計,得到原始電路的內(nèi)部節(jié)點翻轉(zhuǎn)信息文件;
步驟2:統(tǒng)計電路的各節(jié)點的翻轉(zhuǎn)信息,獲取各節(jié)點的翻轉(zhuǎn)概率:利用shell腳本處理軟件對電路的內(nèi)部節(jié)點翻轉(zhuǎn)信息文件進行提取并分析,獲取節(jié)點的翻轉(zhuǎn)概率信息列表;
步驟3:設(shè)置臨界概率閾值,確定低活性節(jié)點列表:根據(jù)設(shè)置的臨界概率閾值確定節(jié)點的低活性節(jié)點列表,去除重復(fù)的節(jié)點、電源和地等不變的節(jié)點,得到篩選后的低活性節(jié)點列表;
步驟4:確定植入節(jié)點位置,執(zhí)行異或門和計數(shù)器的插入操作:編寫腳本,分析電路結(jié)構(gòu),確定在低活性節(jié)點的前一級節(jié)點作為植入節(jié)點,在該節(jié)點插入異或門,直到所有的可植入節(jié)點都插入完畢;
步驟5:綜合電路,結(jié)合旁路信號分析方法進行檢測:對修改后的電路進行綜合分析,并結(jié)合旁路信號分析方法,在測試模式下,對采集的旁路信息進行比較分析,實現(xiàn)硬件木馬的檢測。
本發(fā)明的特點及有益效果是:
(1)本發(fā)明提供一種有效提高硬件木馬激活概率的方法,在低活性節(jié)點上插入異或門,在面積開銷較小的基礎(chǔ)上,改變低活性節(jié)點的翻轉(zhuǎn)概率,從而移除電路的低活性節(jié)點,提高了中電路低活性節(jié)點的激活度,在一定程度上降低驗證時間。
(2)該方法簡單易行,可以借助于旁路信號分析方法,利用在線采集和在線驗證系統(tǒng),這有效的激活了插入在低活性節(jié)點上的硬件木馬,間接的提高了硬件木馬的檢出率。
附圖說明:
圖1一個簡單的電路結(jié)構(gòu)。
圖2虛擬掃描寄存器結(jié)構(gòu)。
圖3在簡單電路結(jié)構(gòu)上的低活性節(jié)點插入DSFF結(jié)構(gòu)。
圖4在簡單電路結(jié)構(gòu)上的低活性節(jié)點插入異或門。
圖5為整體測試框架圖。
圖6整體方案流程圖。
具體實施方式
本發(fā)明利用安全性設(shè)計的思想,在虛擬掃描觸發(fā)器的基礎(chǔ)上,分析原始電路設(shè)計的電路結(jié)構(gòu)和節(jié)點活性,根據(jù)閾值概率在低活性節(jié)點植入特定結(jié)構(gòu),移除電路中的低活性節(jié)點,提高原始設(shè)計的電路活性和硬件木馬激活率,大大降低了硬件木馬激活的隨機性和不確定性,有效的縮短硬件木馬的激活時間,在一定程度上提高了硬件木馬的檢出率。
隨著半導(dǎo)體深亞微米工藝的發(fā)展,芯片集成器件的數(shù)目隨著摩爾定律指數(shù)增長,芯片的規(guī)模越來越大,芯片的功能越來越多,內(nèi)部電路結(jié)構(gòu)的也越來越復(fù)雜。集成電路輸入輸出端眾多,內(nèi)部路徑動廝數(shù)以百萬計,因此內(nèi)部節(jié)點數(shù)量巨大。然而電路結(jié)構(gòu)的節(jié)點分布并不均衡,有些節(jié)點活性較高,跳變比較頻繁,而也存在另外一些節(jié)點,節(jié)點的活性較低,不容易發(fā)生翻轉(zhuǎn)。節(jié)點的活性Pc,即節(jié)點的翻轉(zhuǎn)概率,是由節(jié)點邏輯值由“1”變換到“0”概率P1→0和由“0”變換到“1”的概率P0→1組成,定義如式1所示,其中P0,和P1為某節(jié)點分別出現(xiàn)“0”和“1”的概率。而節(jié)點的翻轉(zhuǎn)一次需要時鐘周期N如下式2所示。
Pc=P0→1+P1→0=P0*P1=P1*(1-P1)=P0*(1-P0) (1)
如果P0和P1相等,則節(jié)點的翻轉(zhuǎn)率最大,若P0<<P1或者P1<<P0,則節(jié)點的翻轉(zhuǎn)率很低。
電路的節(jié)點個數(shù)很多,節(jié)點的活性也并不一致,硬件木馬設(shè)計者為了實現(xiàn)硬件木馬的攻擊功能,且不被傳統(tǒng)的功能測試和旁路測試所檢測出來,往往傾向于電路的低活性節(jié)點,假設(shè)硬件木馬選擇n個節(jié)點作為觸發(fā)節(jié)點,每個節(jié)點滿足稀有邏輯值的概率分別為Pi,則硬件木馬的激活概率Pact如式3所示,觸發(fā)節(jié)點的個數(shù)越多,硬件木馬的激活概率Pact就越小,硬件木馬就越難激活,而硬件木馬激活一次平均需要K個時鐘周期,如式4所示。通常情況下硬件木馬的觸發(fā)端選擇電路的低活性節(jié)點作為觸發(fā),硬件木馬很難觸發(fā),而硬件木馬的有效載荷部分選擇低觀測節(jié)點,很難觀測到由硬件木馬引起的惡意活動。
圖1為一個簡單的電路結(jié)構(gòu),假設(shè)節(jié)點的邏輯值均為隨機的,出現(xiàn)1和0的概率均為1/2,根據(jù)電路中的門級傳輸特性,輸出節(jié)點b的翻轉(zhuǎn)概率僅為0.056,P1<<P0,輸出端每翻轉(zhuǎn)一次平均需要17.13個時鐘周期,因此可認(rèn)定輸出節(jié)點b為低“1”活性節(jié)點。
由圖1可知,輸出節(jié)點出現(xiàn)邏輯值“0”的概率遠遠大于出現(xiàn)邏輯值“1”的概率,該節(jié)點在電路工作中很難翻轉(zhuǎn),如果硬件木馬植入在該節(jié)點,硬件木馬很難激活,從而可以躲避傳統(tǒng)的功能測試方法,一旦滿足條件,則硬件木馬激活,將會產(chǎn)生意想不到的后果,因此需要移除電路的低活性節(jié)點,最大程度的增加硬件木馬的激活度,從而實現(xiàn)硬件木馬的檢測。
為提高節(jié)點的翻轉(zhuǎn)率,[1]提出在低活性節(jié)點上插入虛擬掃描寄存器(Dummy Scan flip-flop,DSFF),如圖2所示,當(dāng)P0<<P1,在該節(jié)點c上植入DSFF-AND結(jié)構(gòu)(虛擬掃描寄存器-與門結(jié)構(gòu))(如圖2(a)所示),當(dāng)P1<<P0,在該節(jié)點a上植入DSFF-OR結(jié)構(gòu)(虛擬掃描寄存器-或門結(jié)構(gòu))(如圖2(b)所示),提高輸出節(jié)點b的翻轉(zhuǎn)率。在圖1的簡單電路結(jié)構(gòu)的基礎(chǔ)上,根據(jù)節(jié)點的活性,植入虛擬掃描寄存器結(jié)構(gòu),如圖3所示,輸出節(jié)點b的翻轉(zhuǎn)概率為0.171,翻轉(zhuǎn)概率相比圖1的結(jié)構(gòu)提高了3.05倍,輸出節(jié)點c每翻轉(zhuǎn)一次平均需要4.83個時鐘周期。通過插入DSFF結(jié)構(gòu)前后的翻轉(zhuǎn)率變化的比較,可以明顯的看出在低活性節(jié)點處植入虛擬掃描寄存器結(jié)構(gòu)可以有效地提高節(jié)點的翻轉(zhuǎn)率,有效地提高了節(jié)點的活性。
然而電路內(nèi)部的節(jié)點數(shù)目很多,電路中的低活性較多,為了提高低活性節(jié)點的激活度,則在低活性節(jié)點都植入虛擬掃描寄存器結(jié)構(gòu),單個虛擬掃描寄存器結(jié)構(gòu)的面積開銷較小,一般情況下電路的低活性節(jié)點數(shù)量較大,需要在每個低活性節(jié)點上都植入虛擬掃描寄存器結(jié)構(gòu),由此引入的面積開銷較大,功耗影響較大,這會產(chǎn)生較大的背景電流,一定程度降低了硬件木馬的與總體電路的電流信噪比,增加了硬件木馬的檢測難度。
因此本發(fā)明提出一種有效提高低活性節(jié)點激活度的方法,通過分析虛擬掃描寄存器(DSFF)和木馬檢測專用模塊(MTFD)等結(jié)構(gòu),綜合權(quán)衡面積開銷和功耗、時序等差異,在低活性節(jié)點的前一級節(jié)點位置插入異或門,如圖4所示,異或門相比DSFF、MTFD結(jié)構(gòu)來說面積開銷大大減小,而且簡單易操作。利用電路仿真軟件,隨機施加測試向量,統(tǒng)計電路中的節(jié)點列表以及各節(jié)點的翻轉(zhuǎn)概率,當(dāng)節(jié)點的翻轉(zhuǎn)概率低于閾值概率,則認(rèn)定該節(jié)點為低活性節(jié)點b,剔除重復(fù)和不動(電源和地)的節(jié)點,分析電路結(jié)構(gòu),找出低活性節(jié)點的前一級節(jié)點a和c,在該節(jié)點上插入異或門,如圖4所示,異或門的一個輸入為低活性的前一級節(jié)點a和c,輸出端接入低活性節(jié)點的輸入電路節(jié)點a1和c1上,異或門的另一個輸入與翻轉(zhuǎn)概率為1/2的節(jié)點相連,即一位計數(shù)器的輸出端counter。在此基礎(chǔ)上也將節(jié)點a1翻轉(zhuǎn)概率由15/32提高到最大值1/2,輸出節(jié)點c的翻轉(zhuǎn)概率由0.171提高到0.1875,而輸出節(jié)點c則由平均每翻轉(zhuǎn)一次需要4.83個時鐘周期降低到4.33個時鐘周期。整體的測試框架圖如圖5所示,其中counter為一位計數(shù)器,T_en為測試端口,當(dāng)T_en為高電平,進入測試階段,計數(shù)器開始工作,輸出端口的邏輯值出現(xiàn)1和0的概率分別為1/2,否則計數(shù)器輸出一直為低電平,電路處于正常工作狀態(tài)。因此,在低活性節(jié)點的前一級節(jié)點植入異或門,不僅簡單易行,面積開銷小,而且可以進一步的降低節(jié)點的翻轉(zhuǎn)周期,大大提高了電路的激活度。
本發(fā)明的完整技術(shù)路線如下:
圖6為本方法的整體方案流程圖,該方法主要包括以下幾個步驟。
步驟1:隨機測試向量的產(chǎn)生與激勵電路:根據(jù)原始電路建立仿真驗證平臺,隨機產(chǎn)生測試向量,利用電路仿真軟件VCS仿真原始電路設(shè)計,得到原始電路的內(nèi)部節(jié)點翻轉(zhuǎn)信息文件。
步驟2:統(tǒng)計電路的各節(jié)點的翻轉(zhuǎn)信息,獲取各節(jié)點的翻轉(zhuǎn)概率:利用shell腳本處理軟件對電路的內(nèi)部節(jié)點翻轉(zhuǎn)信息文件進行提取并分析,獲取各個節(jié)點的翻轉(zhuǎn)概率信息。
步驟3:設(shè)置臨界概率閾值,確定低活性節(jié)點列表:根據(jù)設(shè)置的臨界概率閾值確定節(jié)點的低活性節(jié)點列表,去除重復(fù)的節(jié)點、電源和地等不變的節(jié)點,得到篩選后的低活性節(jié)點列表。
步驟4:編寫腳本低活性節(jié)點的前一級節(jié)點執(zhí)行異或門和計數(shù)器的插入操作:編寫腳本在低活性節(jié)點的前一級節(jié)點處插入異或門,直到所有的低活性節(jié)點都插入完畢。
步驟5:綜合電路,結(jié)合旁路信號分析方法進行檢測:對修改后的電路進行綜合分析,并結(jié)合旁路信號分析方法,在測試模式下,對采集的旁路信息進行比較分析,實現(xiàn)硬件木馬的檢測。