也是非常可能的,例如某款進口芯片在設計時,已經被人為的加入了硬件木馬,這樣所有基于該電路制造的芯片全部含有硬件木馬。
[0031]針對上述這種所有芯片中全部可能含有硬件木馬的情況,傳統(tǒng)的硬件木馬檢測方法就不一定能檢測出芯片內部含有的硬件木馬。
[0032]本專利中涉及的硬件木馬檢測方法可以在無法取得不含有硬件木馬芯片的情況下,不依賴通過不含硬件木馬的芯片取得基準曲線,也可以對芯片內的硬件木馬進行有效檢測。
[0033]電路在工作時,都是根據(jù)外部輸入或者寫入內部寄存器的值,然后電路根據(jù)相應的輸入執(zhí)行操作。當電路的在某一時刻的操作相同,且處理的數(shù)據(jù)內容也相同時,電路內部處于工作狀態(tài)的單元應該相同,因此這一時刻,電路的瞬態(tài)電流也應該相同。
[0034]當電路內部存在硬件木馬時,由于硬件木馬與原始電路的聯(lián)系沒有那么緊密,即硬件木馬的行為不一定和具體的輸入有一一對應的關系。
[0035]圖2 —個同步時序的硬件木馬電路,其觸發(fā)條件只和時鐘有關系,當對時鐘計數(shù)到一定的程度后,此硬件木馬即觸發(fā)。
[0036]這種類型的硬件木馬在工作時對瞬態(tài)電流的貢獻只與時間有關,而與輸入內容的并沒有具體的關系,從而使得含有硬件木馬的電路在工作的時候,即使執(zhí)行相同的操作,輸入相同的執(zhí)行內容,電路的瞬態(tài)電流曲線也不一定完全相同,且在不同的時候,瞬態(tài)電流的變化可能有大有小,這就為我們檢測電路中可能存在的硬件木馬提供了可能。
[0037]下面結合檢測CAN總線控制器電路中的可能存在的硬件木馬的具體實施例對本專利中涉及的一種不依賴基準曲線的硬件木馬檢測的方法進行詳細的介紹。
[0038]圖3為該實施例中使用的CAN總線接口控制器電路的的架構圖。CAN總線控制器電路主要包括接收和發(fā)送兩條數(shù)據(jù)通路,主要功能是將從CPU接口端收到的并行數(shù)據(jù)轉化成為串行數(shù)據(jù)發(fā)送到CAN總線網絡上;或者將從CAN總線網絡上接收到的比特流轉成并行數(shù)據(jù),然后再將這些并行的數(shù)據(jù)發(fā)送給CPU,從而完成不同CAN節(jié)點之間的數(shù)據(jù)交換。
[0039]數(shù)據(jù)在CAN總線控制器電路需要經過編碼,控制,位數(shù)轉換等流程,且各個流程之間銜接緊密,下一級模塊根據(jù)上一級的輸入進行相應的操作得到輸出。
[0040]因此針對每一個模塊來說,這個模塊的輸入決定了該模塊的輸出,只要該模塊的輸入相同,則該模塊的輸出必然相同,這也暗示了在執(zhí)行相同的操作時,電路內部使用的單元都是相同的。
[0041]當電路的輸入相同,電路執(zhí)行的操作相同,電路中執(zhí)行該操作的電路單元相同,此時電路的瞬態(tài)功耗也應該相同,即電路在這一時刻的瞬態(tài)電流也應該相同。
[0042]為了驗證這一設想,將上述CAN總線接口控制器電路作為目標電路,并映射到中芯國際(SMIC) 0.18um單元庫下,CAN總線接口控制器電路的規(guī)模約為3萬門。
[0043]本例中還構造了一組測試向量,該測試向量中包含了多段重復的測試代碼,且各段重復的測試代碼之間有一定的間隔,這樣使得電路在測試過程中能夠多重相同的操作多次,使得在不同時間窗內的瞬態(tài)電流曲線能夠大致相同。
[0044]本例中使用Synopsys公司的HSpice作為仿真工具,基于SMIC 0.18um工藝庫,進行仿真,并測量電路工作時的瞬態(tài)電流。
[0045]圖4即為該CAN總線控制器在進行仿真后的瞬態(tài)電流曲線示意圖,圖中共取了100周期的值,即有100個點。從圖中可以看出,由于輸入的測試向量使得電路在不同的時候執(zhí)行不同的操作,電路的瞬態(tài)電流曲線會發(fā)生變化。
[0046]但是由于本例中在測試向量中進行了一些修改,使得測量向量中有一部分測試代碼重復出現(xiàn)了幾次,因此對應這一部分測試代碼電路操作時候的瞬態(tài)電流值應該基本相同。
[0047]圖4中每個虛線框內包含了 10個瞬態(tài)電流數(shù)據(jù)點,從圖上可以看中,每個虛線框內的數(shù)據(jù)點基本上相同,這10個數(shù)據(jù)點就是我們在測試向量中重復的測試代碼對應的數(shù)據(jù)點。由此仿真可以證明,當電路在執(zhí)行相同的操作時,該電路在這一時刻的瞬態(tài)電流應該基本相同。
[0048]繼續(xù)以圖3中使用的CAN總線接口控制器電路為目標電路,在CAN的位時序邏輯模塊中植入一個類似圖2結構的硬件木馬,新得到一個含有硬件木馬的CAN總線接口控制器電路,如圖5所示。
[0049]為了讓該硬件木馬在功能測試階段不會觸發(fā),因此該值入的同步時序計數(shù)器型硬件木馬為36比特,使得該硬件木馬的觸發(fā)時間盡可能的長,不會在功能測試階段被觸發(fā)。
[0050]該36比特的計數(shù)器所消耗的功耗主要是在發(fā)生在寄存器比特發(fā)生翻轉的時刻,即由‘I’變成‘0’,或者由‘0’變成‘I’的過程中。在某一時刻,變化的寄存器比特數(shù)越多,則對整個電路功耗的改變越大。
[0051]為了盡可能的觸發(fā)上述電路功耗改變較大的時刻,修改圖4對應的測試向量,使得該測試向量盡可能的長,并且使相同的測試代碼在測試向量中出現(xiàn)的間隔也相應變長,且最好測試代碼重復的時刻正好是硬件木馬改變電路功耗較大的時刻。
[0052]將此修改后的測試向量用于檢測硬件木馬的測試中,并測量電路的瞬態(tài)電流。
[0053]在測量所得到的數(shù)據(jù)曲線中,找出測試向量中重復的測試代碼所對應的采樣點數(shù)據(jù),并將處于不同時間窗口的所有采樣點數(shù)據(jù)全部找出,并進行擬合。
[0054]圖6即為將處于不同時間窗口的,相同測試代碼對應的瞬態(tài)電流數(shù)據(jù)點進行擬合的示意圖。該圖中一共有三組曲線,每組曲線各有10個數(shù)據(jù)點。
[0055]從圖6中我們可以看出,該三組曲線擬合在一起時,出現(xiàn)了明顯的不一致,不只是出現(xiàn)了同一采樣點的數(shù)據(jù)相差較大的情況,且不同組數(shù)據(jù)曲線的變化不一樣,不同組數(shù)據(jù)曲線之間出現(xiàn)了交叉的情況。
[0056]造成上述曲線交叉以及同一采樣點之間數(shù)據(jù)相差較大的原因正是因為,該硬件木馬電路只和電路的時鐘有關,和輸入無關,因此造成了硬件木馬電路對整個電路的瞬態(tài)電流的貢獻產生了一定的隨機性,從而使得含有硬件木馬的電路和不含有硬件木馬的電路在瞬態(tài)電流曲線上產生了明顯的差別,因此可以被該方法檢測出來。
[0057]如果電路執(zhí)行相同的操作時間更久,則圖6中的擬合曲線的不一致性會隨著時間進一步的變多,能夠提供更多的證據(jù)用來判斷電路內部是否含有硬件木馬。
[0058]該方法的一個顯著好處就是不需要首先取得不含量硬件木馬的電路,然后獲得一定的參照曲線,從來判斷待測電路內是否含有硬件木馬,能夠在無法取得保證不含硬件木馬的芯片的情況下(如進口芯片),也可以對芯片內可能含有的硬件木馬進行有效檢測,且該方法也可以顯著降低測試成本,提高測試效率。
【主權項】
1.一種不依賴基準曲線的硬件木馬檢測方法,其特征在于,包括以下步驟: a)、將得到的原始功能測試向量S對目標電路進行測試,若有任何一組測試向量發(fā)生輸入-輸出不匹配,則待測電路內部含有硬件木馬,若所有的測試向量都通過測試,則進入下一步; b)、將上述原始功能測試向量進行修改,生成新的測試向量S’,且該新的測試向量中,相同的測試代碼會在不同的時間重復出現(xiàn)多次; c)、將此新生成的測試向量S’,再進行電路測試,并記錄下每組測試向量在測試過程中的瞬態(tài)電流曲線; d)、對記錄下的每組測試向量所對應的瞬態(tài)電流曲線,找出測試向量內相同測試代碼對應不同時間窗的瞬態(tài)電流曲線,并將這多組不同時間窗的瞬態(tài)電流曲線進行重疊擬合; e)、確定電路在利用測試向量進行測試的過程中,電路自身瞬態(tài)電流曲線的最大變化范圍即閾值; f)、將步驟d)各得到的擬合后的電路瞬態(tài)電流曲線進行比較,當這些擬合在一起的瞬態(tài)電流曲線彼此之間有數(shù)據(jù)點的最大變化超出閾值范圍,或者出現(xiàn)不同時間窗對應的瞬態(tài)電流曲線發(fā)生交叉時,即認為該待測電路中存在硬件木馬。
2.如權利要求1所述的不依賴基準曲線的硬件木馬檢測方法,其特征在于: 繼續(xù)生成后續(xù)新的測試向量,重復進行步驟b)?步驟f)。
3.如權利要求1或2所述的不依賴基準曲線的硬件木馬檢測方法,其特征在于: 在生成新的測試向量集合S’時必須滿足以下要求: 1)、新的測試向量比起原始測試向量能夠對待測電路內部節(jié)點產生更多的翻轉; 2)、新的測試向量必須重復向量內某一測試代碼段多次,使電路在執(zhí)行這一測試向量時,能夠進行多次重復的操作; 3)、新的測試向量內的重復測試代碼段,可以連續(xù)執(zhí)行,也可以間隔一定的時間再執(zhí)行。
4.如權利要求1或2所述的不依賴基準曲線的硬件木馬檢測方法,其特征在于: 在記錄利用新的測試向量S’進行測試時的電路瞬態(tài)電流曲線時必須滿足以下要求: 1)、對瞬態(tài)電流數(shù)據(jù)進行采樣的頻率必須至少大于電路工作頻率的2倍以上,以獲得較高的采樣精確度; 2)、為了減小測量噪聲對數(shù)據(jù)采集的影響,對每一組測試向量對應的瞬態(tài)電流數(shù)據(jù)應采取多次; 3)、將采集到的多組瞬態(tài)電流數(shù)據(jù)進行算術平均處理,從而盡可能的消除由于數(shù)據(jù)采集引入的噪聲,得到更為準確的瞬態(tài)電流數(shù)據(jù)。
【專利摘要】本發(fā)明提供一種不依賴基準曲線的硬件木馬檢測方法,首先將所有原始的測試向量測試完畢,根據(jù)輸出結果判斷芯片內部是否存在硬件木馬。其次,將每個原始測試向量進行修改,使得每個測試向量中相同的測試輸入重復出現(xiàn)多次,且每次出現(xiàn)均間隔一定的時間,使得每一個修改后的測試向量中有部分測試代碼在不同的時間窗口中重復出現(xiàn)多次。然后將所有修改后的測試向量用于電路測試,并記錄下所有修改后的測試向量在測試過程中對應的電路瞬態(tài)電流曲線。最后,將每一個修改后的測試向量在不同時間窗中,相同測試碼對應的曲線段找出,并進行比較。不同時間窗對應的電路瞬態(tài)電流曲線進行擬合后沒有超出閾值且不發(fā)生曲線交叉,則不含硬件木馬。
【IPC分類】G01R31-28
【公開號】CN104635144
【申請?zhí)枴緾N201510093406
【發(fā)明人】周昱, 于宗光, 魏敬和, 吳迪, 湯賽楠
【申請人】中國電子科技集團公司第五十八研究所
【公開日】2015年5月20日
【申請日】2015年3月2日