提高硬件木馬檢測(cè)分辨率的電路設(shè)計(jì)方法及硬件木馬檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種提高硬件木馬檢測(cè)分辨率的電路設(shè)計(jì)方法及硬件木馬檢測(cè)方法,屬于集成電路檢測(cè)領(lǐng)域。
【背景技術(shù)】
[0002]隨著集成電路設(shè)計(jì)的日益復(fù)雜,制造成本日趨高昂,集成電路產(chǎn)業(yè)正朝著全球化合作的趨勢(shì)發(fā)展。打造完全自主可控集成電路產(chǎn)業(yè)鏈不僅建設(shè)周期長(zhǎng),同時(shí)還面臨技術(shù)和資本上的巨大挑戰(zhàn)。因此在未來(lái)相當(dāng)長(zhǎng)的一段時(shí)間內(nèi),我國(guó)的集成電路仍將面對(duì)來(lái)源眾多控的第三方的設(shè)計(jì)服務(wù)及 IP (Intellectual Property)、EDA (Electronic DesignAutomat1n)軟件以及不受控的晶圓廠和封裝測(cè)試廠,在這些環(huán)節(jié)當(dāng)中,芯片很有可能被人為的修改,比如惡意的增加,刪除或者改變芯片內(nèi)部原來(lái)有電路結(jié)構(gòu),或者在制造階段改變工藝參數(shù)影響晶體管的正常工作參數(shù),如改變摻雜的程度,這類對(duì)電路的功能,性能,可靠性,安全性等會(huì)產(chǎn)生影響的惡意的電路修改即稱為硬件木馬。硬件木馬的種類有很多,有些硬件木馬會(huì)影響電路的正常工作,在一些關(guān)鍵的應(yīng)用場(chǎng)合如空間衛(wèi)星、火箭、導(dǎo)彈、飛機(jī)以及核設(shè)施等,硬件木馬可能會(huì)造成災(zāi)難性的后果。有些硬件木馬通過(guò)內(nèi)置后門(mén),在數(shù)據(jù)傳輸?shù)倪^(guò)程中,同時(shí)泄漏機(jī)密信息。還有些硬件木馬本身不對(duì)電路的工作產(chǎn)生任何影響,也不泄漏機(jī)密信息,但其為軟件木馬提供后門(mén),協(xié)助軟件木馬對(duì)系統(tǒng)進(jìn)行攻擊。最近幾年國(guó)際上已經(jīng)涌現(xiàn)了多起由于硬件木馬引起的會(huì)危害國(guó)家安全的嚴(yán)重事件,比如“斯諾登棱鏡門(mén)”事件,伊朗的“震網(wǎng)”事件。由于我國(guó)每年進(jìn)口的集成電路等電子元器件的價(jià)值已經(jīng)達(dá)到近3000億美元,超過(guò)石油的進(jìn)口,硬件木馬不僅影響國(guó)家的信息安全,社會(huì)穩(wěn)定,還會(huì)造成經(jīng)濟(jì)上的巨大浪費(fèi),影響我國(guó)的現(xiàn)代化建設(shè)。
[0003]硬件木馬的檢測(cè)方法目前主要有破壞性檢測(cè),系統(tǒng)運(yùn)行檢測(cè),邏輯測(cè)試和旁路分析四類。
[0004]破壞性檢測(cè)即是將待測(cè)芯片去封裝,然后使用掃描電鏡等設(shè)備對(duì)電路一層一層的進(jìn)行拍照,然后與原始電路的版圖作對(duì)比,從而判斷芯片中有無(wú)硬件木馬。此方法雖然最為直觀,但只適用于規(guī)模較小的電路,因?yàn)殡S著電路規(guī)模的增大,其難度與耗費(fèi)時(shí)間也會(huì)顯著增加,且針對(duì)一批芯片中只有少數(shù)幾顆芯片含有硬有木馬的情況,這種破壞性檢測(cè)的方法有可能漏檢,因此,此方法更多的是作為一種輔助手段,在通過(guò)使用其他檢測(cè)方法確定待測(cè)芯片含量有硬件木馬后,再通過(guò)此方法來(lái)確定待測(cè)芯片中的硬件木馬的形態(tài)與結(jié)構(gòu),便于未來(lái)分析。
[0005]系統(tǒng)運(yùn)行檢測(cè)即是將待測(cè)芯片用于原型系統(tǒng)中,通過(guò)系統(tǒng)運(yùn)行,來(lái)觀測(cè)芯片的運(yùn)行過(guò)程中功能是否正確。此方法雖然可以檢測(cè)出大多數(shù)在運(yùn)行過(guò)程中出現(xiàn)的問(wèn)題,但對(duì)于一些需要很長(zhǎng)時(shí)間,比如數(shù)年,才能觸發(fā)的硬件木馬,運(yùn)行驗(yàn)證的方法顯然不現(xiàn)實(shí)。
[0006]邏輯測(cè)試即是根據(jù)可測(cè)試性設(shè)計(jì)(DFT)的概念,在芯片測(cè)試過(guò)程中,在輸入端添加不同的測(cè)試向量,觀察輸出的結(jié)果是否匹配,此方法的缺陷是芯片的測(cè)試覆蓋率很難達(dá)到100%,即使達(dá)到100%的覆蓋,一旦經(jīng)過(guò)第三方的修改植入木馬,原有的100%的測(cè)試覆蓋率也將下降,因此,此方法在理論上就存在一定的缺陷,更多的只是作為一種輔助手段。
[0007]旁路分析即是利用芯片工作時(shí)的旁路信息(如電磁輻射,電流或者電路延時(shí)等信息)來(lái)對(duì)木馬進(jìn)行檢測(cè)。其原理是因?yàn)殡娐分兄踩氲挠布抉R會(huì)對(duì)芯片的一些旁路信號(hào),如電流,頻率或路徑延時(shí)產(chǎn)生影響,因此通過(guò)觀察芯片的旁路信號(hào)并與原始芯片的旁路信息作比較,進(jìn)而檢測(cè)出芯片中是否有硬件木馬的存在。對(duì)電路進(jìn)行基于旁路分析的硬件木馬檢測(cè)的最大優(yōu)點(diǎn)是可以使硬件木馬不被觸發(fā)的情形下被檢測(cè)出來(lái),但是其也有顯著的缺點(diǎn),即當(dāng)待測(cè)電路的總體規(guī)模很大,電路內(nèi)部被植入的硬件木馬的規(guī)模很小,一些旁路信息,比如電流和路徑延時(shí),其變化幅度極小??紤]到測(cè)量過(guò)程中引入的噪聲,以及芯片制造過(guò)程中由于工藝漂移帶來(lái)的噪聲,這種極小的旁路信號(hào)變化將無(wú)法被實(shí)際測(cè)量出來(lái)或者即使被測(cè)量出來(lái)也難以確定是由于硬件木馬引起的,還是由于測(cè)量噪聲,工藝漂移噪聲引起的。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種提高硬件木馬檢測(cè)分辨率的電路設(shè)計(jì)方法及硬件木馬檢測(cè)方法,它是一種通過(guò)在電路設(shè)計(jì)階段添加額外電路從而使得硬件木馬更容易被檢測(cè)出來(lái)的設(shè)計(jì)方法,以及一種高效的硬件木馬檢測(cè)流程,尤其適合檢測(cè)電路規(guī)模較小的硬件木馬。
[0009]按照本發(fā)明提供的技術(shù)方案,所述的提高硬件木馬檢測(cè)分辨率的電路設(shè)計(jì)方法,包括以下步驟:
a)、完成原始電路的功能設(shè)計(jì),并完成功能仿真后,將電路劃分成多個(gè)區(qū)域,每個(gè)區(qū)域包括一個(gè)或多個(gè)功能模塊;
b)、將經(jīng)過(guò)劃分的每個(gè)區(qū)域添加單獨(dú)控制的門(mén)控時(shí)鐘單元,且每個(gè)區(qū)域的門(mén)控時(shí)鐘單元的開(kāi)關(guān)不受其他門(mén)控時(shí)鐘單元的影響;
C)、在電路內(nèi)部添加一個(gè)自測(cè)試模塊用于產(chǎn)生測(cè)試向量,此自測(cè)試模塊的輸出能夠作為劃分后的任一區(qū)域的輸入,使得各區(qū)域在相鄰區(qū)域被關(guān)閉時(shí)鐘后,仍可以由自測(cè)試模塊輸入測(cè)試向量而正常工作。
[0010]具體的,步驟a對(duì)電路進(jìn)行區(qū)域劃分時(shí),可以使用以下規(guī)則中的一條或混合使用以下規(guī)則來(lái)劃分:
1)、根據(jù)不同的時(shí)鐘域來(lái)劃分,如高速接口物理層等電路中具有多個(gè)時(shí)鐘;
2)、根據(jù)不同的功能模塊來(lái)進(jìn)行劃分,如各種不同的IP;
3)、根據(jù)數(shù)據(jù)通路上不同的數(shù)據(jù)寬度來(lái)劃分,比如數(shù)據(jù)通路各種數(shù)據(jù)位寬不同的模塊;
4)、根據(jù)電路節(jié)點(diǎn)深度來(lái)劃分,比如在電路中選擇一個(gè)電路節(jié)點(diǎn),然后以這個(gè)電路節(jié)點(diǎn)為中心,以這個(gè)節(jié)點(diǎn)的扇入和扇出深度為半徑劃分區(qū)域。
[0011]步驟c添加的自測(cè)試模塊需要滿足以下條件:
1)、自測(cè)試模塊產(chǎn)生的自測(cè)試向量能夠被各個(gè)劃分后的區(qū)域當(dāng)成輸入,并正常工作;
2)、自測(cè)試模塊必須能夠產(chǎn)生高翻轉(zhuǎn)率和低翻轉(zhuǎn)率以及各種不同翻轉(zhuǎn)率的測(cè)試向量;
3)、自測(cè)試模塊產(chǎn)生的每一個(gè)測(cè)試向量中都要有重復(fù)多次的測(cè)試碼,使得電路在工作時(shí)能進(jìn)行多次相同的操作。
[0012]所述自測(cè)試模塊生成的測(cè)試向量集合S’,有如下要求:
1)、測(cè)試向量必須重復(fù)向量?jī)?nèi)某一測(cè)試碼段多次,使電路在執(zhí)行這一測(cè)試向量時(shí),能夠進(jìn)行多次重復(fù)的操作;
2)、新的測(cè)試向量?jī)?nèi)的重復(fù)測(cè)試碼段,可以連續(xù)執(zhí)行,也可以間隔一定的時(shí)間再執(zhí)行。
[0013]所述門(mén)控時(shí)鐘單元包括:多路選擇器、D觸發(fā)器以及2輸入與門(mén);所述多路選擇器的輸入為多個(gè)不同的時(shí)鐘源,使得被門(mén)控時(shí)鐘控制的區(qū)域能夠選擇不同時(shí)鐘源的時(shí)鐘;多路選擇器的輸出作為D觸發(fā)器的時(shí)鐘輸入,也作為與2輸入與門(mén)的其中一個(gè)輸入,D觸發(fā)器的數(shù)據(jù)輸入信號(hào)為門(mén)控時(shí)鐘信號(hào),D觸發(fā)器的輸出作為2輸入與門(mén)的另一個(gè)輸入,所述2輸入與門(mén)的輸出即為門(mén)控時(shí)鐘單元的時(shí)鐘輸出。
[0014]所述門(mén)控時(shí)鐘單元與每個(gè)劃分的區(qū)域的連接關(guān)系如下:
1)、每個(gè)門(mén)控時(shí)間單元都有單獨(dú)的門(mén)控時(shí)鐘使能信號(hào)en_l,en_2,…,en_n,這些信號(hào)由電路內(nèi)部寄存器的輸出來(lái)產(chǎn)生,或者直接為電路外部的輸入信號(hào);
2)、每個(gè)門(mén)控時(shí)鐘單元的輸出都與一個(gè)劃分的區(qū)域相連,且每個(gè)門(mén)控時(shí)鐘單元都只能與一個(gè)區(qū)域相連,每個(gè)劃分的區(qū)域也只能接收一個(gè)門(mén)控時(shí)鐘單元的控制。
[0015]相應(yīng)的一種硬件木馬檢測(cè)方法如下:
a)、將待測(cè)芯片通過(guò)使用門(mén)控時(shí)鐘單元關(guān)閉多個(gè)區(qū)域的時(shí)鐘,利用自測(cè)試模塊產(chǎn)生的測(cè)試向量來(lái)測(cè)量在只有一個(gè)區(qū)域工作下的電路瞬態(tài)電流曲線;自測(cè)試模塊產(chǎn)生的每一個(gè)測(cè)試向量中都要有重復(fù)多次的測(cè)試碼;
b)、對(duì)記錄下的測(cè)試向量所對(duì)應(yīng)的瞬態(tài)電流曲線,找出測(cè)試向量?jī)?nèi)相同測(cè)試碼對(duì)應(yīng)不同時(shí)間窗的瞬態(tài)電流曲線,并將這多組不同時(shí)間窗內(nèi)瞬態(tài)電流曲線進(jìn)行重疊擬合;
c)、將重疊擬合后的電路瞬態(tài)電流曲線進(jìn)行比較,當(dāng)這幾條擬合在一起的瞬態(tài)電流曲線彼此之間有數(shù)據(jù)點(diǎn)的最大變化超出閾值范圍,或者不同瞬態(tài)電流曲線之間出現(xiàn)交叉,即認(rèn)為該區(qū)域內(nèi)部含有硬件木馬;否則,認(rèn)為該區(qū)域內(nèi)部不含有硬件木馬;
d)、利用自測(cè)試模塊產(chǎn)生不同的測(cè)試向量,按步驟a到c的順序重復(fù)操作,當(dāng)將所有的區(qū)域全部測(cè)試完畢后,都沒(méi)有發(fā)現(xiàn)曲線變化超出閾值或者曲線之間出現(xiàn)交叉,則認(rèn)為該待測(cè)芯片內(nèi)部不含有硬件木馬。
[0016]本發(fā)明的優(yōu)點(diǎn)是:當(dāng)硬件木馬在電路中所占規(guī)模極小,所植入的硬件木馬對(duì)整個(gè)電路旁路信息(如電流,頻率等)的改變不足以被區(qū)分出來(lái)時(shí),通過(guò)此方法,即可以減小處于工作狀態(tài)的電路規(guī)模,從而提升硬件木馬在處于工作狀態(tài)的電路中所占的電路規(guī)模比例,提高由于硬件木馬對(duì)電路旁路信息改變的比例,而使硬件木馬被檢測(cè)出來(lái)。且該方法不需要首先獲得不含有硬件木馬的電路從而得到基準(zhǔn)曲線,顯著提高