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