芯片硬件木馬檢測方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種芯片硬件木馬檢測方法和系統(tǒng),其方法包括:對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集待測芯片在工作狀態(tài)下的旁路數(shù)據(jù);根據(jù)旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對待測芯片進(jìn)行聚類分析,得到聚類芯片集;提取聚類芯片集中的待測芯片進(jìn)行反向分析,并根據(jù)反向分析的結(jié)果將聚類芯片集歸為木馬類芯片或非木馬類芯片。通過利用K均值算法較強(qiáng)的局部搜索能力來提高聚類分析能力,利用遺傳算法較強(qiáng)的全局搜索能力,通過不斷迭代優(yōu)化,自動篩選出最優(yōu)的分類結(jié)果,極大減小人工的干預(yù),提高特征的自動識別能力,硬件木馬檢測能力強(qiáng)、效率高。
【專利說明】
芯片硬件木馬檢測方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及電子技術(shù)領(lǐng)域,特別是涉及一種芯片硬件木馬檢測方法和系統(tǒng)。
【背景技術(shù)】
[0002] 硬件木馬是指在集成電路中嵌入的某種電路結(jié)構(gòu)。隨著電子科學(xué)技術(shù)的發(fā)展,芯 片的使用越來越廣泛,其使用的安全性也越來越受到重視。然而,芯片在加工過程中不完全 自主可控,攻擊者可以很容易的對芯片嵌入硬件木馬,當(dāng)硬件木馬激活時,可能造成電路系 統(tǒng)暫時性癱瘓、芯片失效、功能紊亂或信息泄露等問題。
[0003] 為了加強(qiáng)芯片的安全性,需要對芯片進(jìn)行硬件木馬檢測。傳統(tǒng)的檢測方法主要有: 失效分析、邏輯功能檢測和旁路信號分析。失效分析主要通過去除芯片封裝,研磨芯片層, 借助精密儀器設(shè)備反復(fù)掃描每一層電路,以便對芯片新路功能進(jìn)行全面分析,判斷是否存 在木馬;這種方法需要對芯片進(jìn)行破壞性檢測,過程繁瑣且成本高,而且對于高集成度芯片 難以實現(xiàn)。邏輯功能檢測是在輸入端施加測試向量,觀察電路的輸出信號與預(yù)期的輸出之 間的差異,從而判斷是否存在硬件木馬;該方法需要激活硬件木馬,且耗時長;旁路信號分 析主要通過采集芯片在工作時泄露的物理特征信息,利用信號處理技術(shù)進(jìn)行空間變換和壓 縮實現(xiàn)特征提取,對基準(zhǔn)芯片和待測芯片的物理特征進(jìn)行刻畫與差異判別,根據(jù)差異判斷 是否存在硬件木馬;該方法易受到儀器精度和工藝噪聲的影響,難以檢測出小面積的硬件 木馬。故,傳統(tǒng)的硬件木馬檢測方法檢測能力差,效率低。
【發(fā)明內(nèi)容】
[0004] 基于此,有必要針對上述問題,提供一種檢測能力強(qiáng)、效率高的芯片硬件木馬檢測 方法和系統(tǒng)。
[0005] -種芯片硬件木馬檢測方法,包括如下步驟:
[0006] 對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集所述待測芯片在工作狀態(tài)下的旁路數(shù) 據(jù);
[0007] 根據(jù)所述旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對所述待測芯片進(jìn)行聚類分 析,得到聚類芯片集;
[0008] 提取所述聚類芯片集中的所述待測芯片進(jìn)行反向分析,并根據(jù)反向分析的結(jié)果將 所述聚類芯片集歸為木馬類芯片或非木馬類芯片。
[0009] 一種芯片硬件木馬檢測系統(tǒng),包括:
[0010] 參數(shù)旁路測試模塊,用于對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集所述待測芯 片在工作狀態(tài)下的旁路數(shù)據(jù);
[0011] 聚類分析模塊,用于根據(jù)所述旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對所述待 測芯片進(jìn)行聚類分析,得到聚類芯片集;
[0012] 木馬檢測模塊,用于提取所述聚類芯片集中的所述待測芯片進(jìn)行反向分析,并根 據(jù)反向分析的結(jié)果將所述聚類芯片集歸為木馬類芯片或非木馬類芯片。
[0013] 上述芯片硬件木馬檢測方法和系統(tǒng),對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集 待測芯片在工作狀態(tài)下的旁路數(shù)據(jù)后,根據(jù)旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對待 測芯片進(jìn)行聚類分析,得到聚類芯片集,然后提取聚類芯片集中的待測芯片進(jìn)行反向分析, 根據(jù)反向分析的結(jié)果將聚類芯片集歸為木馬類芯片或非木馬類芯片。通過利用K均值算法 較強(qiáng)的局部搜索能力來提高聚類分析能力,利用遺傳算法較強(qiáng)的全局搜索能力,通過不斷 迭代優(yōu)化,自動篩選出最優(yōu)的分類結(jié)果,極大減小人工的干預(yù),提高特征的自動識別能力, 硬件木馬檢測能力強(qiáng)、效率高。
【附圖說明】
[0014] 圖1為一實施例中本發(fā)明芯片硬件木馬檢測方法的流程圖;
[0015] 圖2為一具體實施例中待測芯片的旁路數(shù)據(jù)的三維結(jié)果圖;
[0016] 圖3為一實施例中根據(jù)旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對待測芯片進(jìn)行 聚類分析,得到聚類芯片集的具體流程圖;
[0017] 圖4為一具體實施例中采用本發(fā)明芯片硬件木馬檢測方法的結(jié)果圖;
[0018] 圖5為一實施例中本發(fā)明芯片硬件木馬檢測系統(tǒng)的模塊圖;
[0019] 圖6為一實施例中聚類分析模塊的單元圖。
【具體實施方式】
[0020] 參考圖1,本發(fā)明一實施例中的芯片硬件木馬檢測方法,包括如下步驟。
[0021] S110:對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集待測芯片在工作狀態(tài)下的旁路 數(shù)據(jù)。
[0022] 參數(shù)旁路測試指對待測芯片進(jìn)行旁路信號分析,采集待測芯片在工作時泄露的物 理特征信息對應(yīng)的旁路數(shù)據(jù)。
[0023] 本實施例中,采集的旁路數(shù)據(jù)包括全局時鐘電壓均值、動態(tài)功耗電壓均值和環(huán)形 振蕩器的輸出頻率。即每一個旁路數(shù)據(jù)為包括三種信息的三維數(shù)據(jù)。在其中一具體實施例 中,待測芯片有160個,圖2為160個待測芯片的全局時鐘電壓均值(Clk均值)、動態(tài)功耗電壓 均值(Power均值)和環(huán)形振蕩器的輸出頻率(fmax)的三維結(jié)果圖,可見簡單的時域數(shù)據(jù)分 析并不能有效地區(qū)分開木馬和非木馬芯片。
[0024] S130:根據(jù)旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對待測芯片進(jìn)行聚類分析, 得到聚類芯片集。
[0025] K均值算法是聚類分析中的一種動態(tài)聚類算法,基本思想是以某種距離度量作為 模式間相似性測度,采用迭代更新的方法,將多維特征向量劃分成若干個集合,使相同集合 間的特征向量的相似性測度最大。
[0026]遺傳算法(Genetic Algorithms)是一種新發(fā)展起來的全局搜索最優(yōu)解方法。它模 擬生命進(jìn)化機(jī)制,其中包括自然選擇和遺傳進(jìn)化中發(fā)生的繁殖、交配和突變現(xiàn)象,從任意一 個初始種群出發(fā),通過隨機(jī)選擇、交叉和變異操作,產(chǎn)生一群新的更適應(yīng)環(huán)境的個體,采用 迭代更新方法,使群體進(jìn)化到搜索空間中越來越好的區(qū)域,求得問題的最優(yōu)解。遺傳算法對 于復(fù)雜的優(yōu)化問題無須建模和復(fù)雜運算,只要利用遺傳算法的三個算子(選擇算子、交叉算 子和變異算子)就能得到最優(yōu)解,具有較強(qiáng)的全局搜索能力。
[0027] 在其中一實施例中,參考圖3,步驟S130包括步驟S131至步驟S138。
[0028] S132:根據(jù)預(yù)設(shè)聚類數(shù)目對所有的待測芯片進(jìn)行編碼得到序列號表示的個體,多 次循環(huán)直到個體的數(shù)量等于預(yù)設(shè)個體數(shù),并將個體的集合作為父代群體。
[0029]其中,預(yù)設(shè)聚類數(shù)目指對待測樣本進(jìn)行分類的類別數(shù)目。預(yù)設(shè)聚類數(shù)目和預(yù)設(shè)個 體數(shù)可以根據(jù)實際情況設(shè)置。本實施例中,根據(jù)需要解決的問題,設(shè)置預(yù)設(shè)聚類數(shù)目為2,可 將待測樣本分為兩類。本實施例中,預(yù)設(shè)個體數(shù)為200,即父代群體中包括200個個體。
[0030] 本發(fā)明所述的編碼指對待測樣本進(jìn)行編號分類。
[0031] 在其中一實施例中,步驟S132中根據(jù)預(yù)設(shè)聚類數(shù)目對所有的待測芯片進(jìn)行編碼得 到序列號表示的個體的步驟包括:對每個待測芯片隨機(jī)分配一個類號得到多位類號串成的 個體。
[0032] 其中,類號的種類數(shù)等于預(yù)設(shè)聚類數(shù)目,且每一個類號對應(yīng)一個基因位。本實施例 中,類號包括"1"和"2"??梢岳斫?,在其他的實施例中,類號也可以采用其他數(shù)字。
[0033] 一具體實施例中,通過步驟S132對160個待測樣本隨機(jī)分配類號"1"或"2",得到 121121…21的數(shù)字串,該數(shù)字串組成一個個體,長度為160位(等于待測芯片總數(shù)),對應(yīng)有 160個基因位。得到一個個體后,再重復(fù)對待測芯片進(jìn)行編碼,直到得到200個個體作為一個 父代群體。
[0034] 遺傳算法中,待測芯片的編碼方式有二進(jìn)制編碼、符號編碼和浮點數(shù)編碼等。本實 施例中根據(jù)實際的聚類問題,采用符號編碼,即設(shè)置類號"1"和"2"對待測芯片進(jìn)行編碼,便 于后續(xù)對包括用類號表示待測芯片的個體進(jìn)行聚類分析,能夠大大提高遺傳算法的效率。
[0035] S133:根據(jù)旁路數(shù)據(jù)獲取個體的適應(yīng)度和選擇算子。
[0036] 適應(yīng)度是整個遺傳算法中極為關(guān)鍵的一部分,直接影響到算法收斂的速度和尋找 最優(yōu)個體的效率。適應(yīng)度高的個體在進(jìn)化過程中保留,而適應(yīng)度低的個體在進(jìn)化過程中逐 漸被淘汰。
[0037] 選擇算子按照某種方法如何從父代群體中選擇哪些個體進(jìn)行復(fù)制,遺傳到下一 代。
[0038] 在其中一實施例中,步驟S133包括步驟21至步驟23。
[0039]步驟21:根據(jù)類號對個體進(jìn)行分類,并根據(jù)旁路數(shù)據(jù)獲取每一個類的聚類中心,根 據(jù)聚類中心獲取個體的評估值。
[0040] 160位數(shù)字串"121121"_21"的個體中,將類號"1"表示的待測芯片作為第一類,類 號"2"表示的待測芯片作為第二類,然后分別根據(jù)旁路數(shù)據(jù)獲取第一類和第二類的聚類中 心,并根據(jù)聚類中心獲取個體的評估值。
[0041]步驟22:對個體的評估值進(jìn)行大小排序,并根據(jù)排序序號和預(yù)設(shè)影響因子獲取對 應(yīng)個體的適應(yīng)度。
[0042] 步驟23:根據(jù)個體的適應(yīng)度獲取對應(yīng)個體的選擇算子。
[0043] 本實施例中,步驟21中根據(jù)旁路數(shù)據(jù)獲取每一個類的聚類中心,根據(jù)聚類中心獲 取個體的評估值的步驟具體為:
[0046] 步驟22具體為:
[0047] m_pop(k). fitness = (l-a)index_1;
[0048] 步驟23具體為:
[0050] 其中,Xjki表示第k個個體的第i類中第j個待測芯片的旁路數(shù)據(jù)對應(yīng)的向量,Ni(k) 表示第k個個體的第i類中待測芯片的數(shù)目,X (kn表示第k個個體中第i個類的聚類中心; centerNum表示預(yù)設(shè)聚類數(shù)目,m_pop(k). value表示第k個個體的評估值;a表示預(yù)設(shè)影響因 子,index表示評估值的排序序號,m_pop(k) .fitness表示第k個個體的適應(yīng)度;m_pop(m) .fitness表示第m個個體的適應(yīng)度,m_pop(n).fitness表示第n個個體的適應(yīng)度,popSize表 示預(yù)設(shè)個體數(shù),cFi tness (k)表示第k個個體的選擇算子。
[0051] 其中,預(yù)設(shè)影響因子a的取值范圍為(〇,1),本實施例中a取0.6。
[0052] 本實施例中,計算評估值的公式中表示第k個個體的第i類中第j個 待測芯片對應(yīng)的旁路數(shù)據(jù)到該類的聚類中心的歐氏距離。不同于傳統(tǒng)的評估值計算,本實 施例中評估值的計算運用了 K均值算法的模型作為遺傳算法的聚類模型、構(gòu)建遺傳算法的 評估函數(shù)。對于每個個體,采用類似K均值算法獲取評估值,由于K均值算法具有較強(qiáng)的局部 搜索能力,因此融合K均值算法獲取的評估值可以表征每個個體的優(yōu)劣程度,提高聚類分析 能力。評估值越小,則表示分類的誤差越小,個體被選擇到下一代的幾率越高。
[0053] 步驟22通過對個體的評估值進(jìn)行排序后獲取適應(yīng)度,根據(jù)評估值排序方法,引入 新的適應(yīng)度計算方法,解決局部快速收斂問題。不管評估值的大小如何,個體被選擇的幾率 只跟評估值排序的序號有關(guān),這樣避免了一代群體中過于適應(yīng)或過于不適應(yīng)個體的干擾, 提高優(yōu)化選擇個體的準(zhǔn)確性。
[0054] S134:根據(jù)個體的選擇算子從父代群體中選擇對應(yīng)個體,多次循環(huán)直到選擇的個 體的數(shù)量等于預(yù)設(shè)個體數(shù),并復(fù)制選擇的個體作為中間群體。
[0055] 通過從父代群體中選擇個體進(jìn)行復(fù)制,可以將適應(yīng)度較高的個體保留到中間群 體,避免基因損失,提尚全局收斂性和計算效率。
[0056] 本實施例中,步驟S134根據(jù)個體的選擇算子從父代群體中選擇對應(yīng)個體的步驟具 體為:隨機(jī)生成一個選擇參數(shù),從父代群體中將選擇參數(shù)小于選擇算子對應(yīng)的個體選出,若 選出的個體有多個,則從選出的個體中選擇適應(yīng)度最接近選擇參數(shù)的個體。即,通過隨機(jī)產(chǎn) 生的選擇參數(shù)和選擇算子的比較,一次從父代群體中選擇一個個體進(jìn)行復(fù)制。
[0057] 一具體實施例中,選擇一個個體之后,再次隨機(jī)生成一個選擇參數(shù),重復(fù)從父代群 體中選擇個體進(jìn)行復(fù)制的步驟,直到中間群體的個體數(shù)量等于預(yù)設(shè)個體數(shù),即完成一次選 擇復(fù)制,每一次選擇復(fù)制后得到的群體大小不變。
[0058] S135:根據(jù)預(yù)設(shè)交叉概率和預(yù)設(shè)變異概率對中間群體中的個體進(jìn)行交叉和變異, 得到下一代群體,并獲取下一代群體中個體的適應(yīng)度和選擇算子。
[0059] 交叉、變異之后得到下一代群體,即完成一次迭代。通過對個體進(jìn)行交叉,可以保 存?zhèn)€體原始特征,將原有的優(yōu)良基因遺傳給下一代個體,并生成包含更復(fù)雜結(jié)構(gòu)的新個體; 通過對交叉之后的個體進(jìn)行變異,可以克服交叉算子的局部搜索能力,以快速找到最優(yōu)個 體。
[0060] 在其中一實施例中,步驟S135中根據(jù)預(yù)設(shè)交叉概率和預(yù)設(shè)變異概率對下一代群體 中的個體進(jìn)行交叉和變異,得到下一代群體的步驟包括步驟31和步驟32。
[0061] 步驟31:根據(jù)預(yù)設(shè)交叉概率生成個體的交叉基因位,隨機(jī)不重復(fù)地從下一代群體 中選擇兩個個體,根據(jù)交叉基因位對選擇的兩個個體進(jìn)行相互交叉,循環(huán)直到下一代群體 中的所有個體都完成交叉。
[0062] 預(yù)設(shè)交叉概率可根據(jù)實際情況具體設(shè)置。本實施例中,為了使交叉較充分地進(jìn)行, 交叉概率設(shè)置為0.6。
[0063] 本實施例中,根據(jù)交叉基因位對選擇的兩個個體進(jìn)行相互交叉的步驟具體為:對 選取的兩個個體的交叉基因位后的類號進(jìn)行相互交叉復(fù)制。交叉操作一般分為:單點交叉、 多點交叉、一致交叉。本實施例中的交叉采用單點交叉,即以預(yù)設(shè)交叉概率為生成交叉位, 可以降低計算量。
[0064] 步驟32:遍歷交叉后的個體的類號,根據(jù)預(yù)設(shè)變異概率對個體的各類號進(jìn)行變異, 得到下一代群體。
[0065] 變異概率可以為0.001和0.1之間的數(shù)值。本實施例中變異概率為0.05。設(shè)置較小 的變異概率,避免破壞很多優(yōu)良樣本而無法得到最優(yōu)個體。
[0066]本實施例中,根據(jù)預(yù)設(shè)變異概率對個體的各類號進(jìn)行變異的步驟具體為:對應(yīng)每 一位類號隨機(jī)生成一個變異參數(shù),在變異參數(shù)小于變異概率時,隨機(jī)生成一個類號作為對 應(yīng)基因位的新的類號。
[0067] 一具體實施例中,一個個體對應(yīng)有160個類號,對應(yīng)160個待測芯片。交叉概率為 0.6,得到的交叉基因位為第96位,因此,隨機(jī)不重復(fù)地從下一代群體中選擇兩個個體后,將 選取的兩個個體第96位后的類號進(jìn)行相互復(fù)制,即為完成這兩個個體的交叉。對于完成交 叉之后的個體,遍歷每一位類號,對每一位類號隨機(jī)生成一個變異參數(shù),在變異參數(shù)小于變 異概率時,生成類號"1"或"2"賦值給該位類號,然后對下一個類號隨機(jī)生成一個類號,如此 循環(huán)直到遍歷完該個體的所有類號,即為完成該個體的變異。
[0068] 本實施例中,得到下一代群體之后,獲取下一代群體中的個體的適應(yīng)度和選擇算 子的步驟與步驟S133相同,在此不做贅述。
[0069] S136:將預(yù)設(shè)的迭代次數(shù)加一得到新的迭代次數(shù),判斷新的迭代次數(shù)是否等于預(yù) 設(shè)最大迭代次數(shù);若否,表示還需要繼續(xù)進(jìn)行迭代,執(zhí)行步驟S137;若是,表示已經(jīng)完成迭代 操作,執(zhí)行步驟S138。
[0070] 本實施例中,預(yù)設(shè)的迭代次數(shù)為零,最大迭代次數(shù)即為需要迭代的次數(shù)。
[0071] S137:將下一代群體作為新的父代群體,并返回步驟S134。
[0072] 通過重復(fù)步驟S134至步驟S136,以便找到最優(yōu)個體。
[0073] S138:從下一代群體中選擇適應(yīng)度最大的個體作為最優(yōu)個體,根據(jù)最優(yōu)個體的編 碼對待測芯片進(jìn)行分類,得到聚類芯片集。
[0074] 例如,選出最優(yōu)個體后,按照類號"1"和"2"將對應(yīng)的待測芯片分為第一類和第二 類,得到一個或兩個聚類芯片集。同一個聚類芯片集中的待測芯片的旁路數(shù)據(jù)對應(yīng)的特征 較為相似,同屬于木馬芯片或同屬于非木馬芯片。
[0075] 微小面積的硬件木馬產(chǎn)生的旁路數(shù)據(jù)的信息相比原始電路的旁路數(shù)據(jù)的信息微 乎其微,很容易被工藝噪聲和測量噪聲所掩蓋;而且木馬芯片和非木馬芯片的特征差異很 小,如何高效地識別木馬芯片和非木馬芯片的特征差異是關(guān)鍵問題。本發(fā)明通過步驟S131 至步驟S138,采用融合K均值算法的遺傳算法,利用K均值算法較強(qiáng)的局部搜索能力來提高 聚類分析能力,實現(xiàn)多維數(shù)據(jù)的微小特征提取;利用遺傳算法較強(qiáng)的全局搜索能力,通過不 斷迭代優(yōu)化,自動篩選出最優(yōu)的分類結(jié)果,極大減小人工的干預(yù),提高特征的自動識別能 力。
[0076] S150:提取聚類芯片集中的待測芯片進(jìn)行反向分析,并根據(jù)反向分析的結(jié)果將聚 類芯片集歸為木馬類芯片或非木馬類芯片。
[0077] 反向分析指現(xiàn)有的技術(shù)中對待測芯片進(jìn)行硬件木馬檢測的一種方法。通過對待測 芯片進(jìn)行反向分析,可以得知該待測芯片是否存在硬件木馬,從而得知與該待測芯片屬于 同一聚類芯片集的待測芯片是否為木馬芯片。
[0078]在其中一實施例中,聚類芯片集的數(shù)量為2個,步驟S150包括:從任一個聚類芯片 集中隨機(jī)選擇一個待測芯片進(jìn)行反向分析;根據(jù)反向分析的結(jié)果判斷抽取的待測芯片是否 存在硬件木馬。若是,將抽取的待測芯片所在的聚類芯片集歸為木馬類芯片,另一個聚類芯 片集歸為非木馬類芯片。若否,將抽取的待測芯片所在的聚類芯片集歸為非木馬類芯片,另 一個聚類芯片集歸為木馬類芯片。
[0079] 通過在對待測芯片進(jìn)行分類后,抽取其中的一個待測芯片進(jìn)行反向分析,根據(jù)反 向分析的結(jié)果即可判斷所有待測芯片是否存在硬件木馬,不需要對所有待測芯片進(jìn)行檢 測,操作簡單高效。
[0080] 一具體實施例中,目標(biāo)電路采用18位的Cordic數(shù)字IP核電路,硬件木馬為1位的計 數(shù)器,木馬電路與目標(biāo)電路的面積比值約為5*1(T 4。參考圖4,為采用上述芯片硬件木馬檢測 方法對160個待測芯片進(jìn)行檢測的結(jié)果,1~16號芯片為非木馬芯片,17~32號芯片為木馬 芯片,33~96號芯片為非木馬芯片,97~160號芯片為木馬芯片,從圖中可以看出木馬芯片 聚為"1"類,非木馬芯片聚為"2"類,可見木馬芯片和無木馬芯片能夠準(zhǔn)確地聚成兩類,因此 也驗證了該方法可以實現(xiàn)1(T 4的硬件木馬檢測分辨率。
[0081] 上述芯片硬件木馬檢測方法,對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集待測芯 片在工作狀態(tài)下的旁路數(shù)據(jù)后,根據(jù)旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對待測芯片 進(jìn)行聚類分析,得到聚類芯片集,然后提取聚類芯片集中的待測芯片進(jìn)行反向分析,并根據(jù) 反向分析的結(jié)果將聚類芯片集歸為木馬類芯片或非木馬類芯片。通過利用K均值算法較強(qiáng) 的局部搜索能力來提高聚類分析能力,利用遺傳算法較強(qiáng)的全局搜索能力,通過不斷迭代 優(yōu)化,自動篩選出最優(yōu)的分類結(jié)果,極大減小人工的干預(yù),提高特征的自動識別能力,硬件 木馬檢測能力強(qiáng)、效率高。
[0082]參考圖5,本發(fā)明一實施例中的一種芯片硬件木馬檢測系統(tǒng),包括參數(shù)旁路測試模 塊110、聚類分析模塊130和木馬檢測模塊150。
[0083]參數(shù)旁路測試模塊110用于對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集待測芯片 在工作狀態(tài)下的旁路數(shù)據(jù)。
[0084] 參數(shù)旁路測試指對待測芯片進(jìn)行旁路信號分析,采集待測芯片在工作時泄露的物 理特征信息對應(yīng)的旁路數(shù)據(jù)。
[0085] 本實施例中,采集的旁路數(shù)據(jù)包括全局時鐘電壓均值、動態(tài)功耗電壓均值和環(huán)形 振蕩器的輸出頻率。即每一個旁路數(shù)據(jù)為包括三種信息的三維數(shù)據(jù)。在其中一具體實施例 中,待測芯片有160個,圖2為160個待測芯片的全局時鐘電壓均值、動態(tài)功耗電壓均值和環(huán) 形振蕩器的輸出頻率的三維結(jié)果圖,可見簡單的時域數(shù)據(jù)分析并不能有效地區(qū)分開木馬和 非木馬芯片。
[0086] 聚類分析模塊130用于根據(jù)旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對待測芯片 進(jìn)行聚類分析,得到聚類芯片集。
[0087] K均值算法是聚類分析中的一種動態(tài)聚類算法,基本思想是以某種距離度量作為 模式間相似性測度,采用迭代更新的方法,將多維特征向量劃分成若干個集合,使相同集合 間的特征向量的相似性測度最大。
[0088]遺傳算法(Genetic Algorithms)是一種新發(fā)展起來的全局搜索最優(yōu)解方法。它模 擬生命進(jìn)化機(jī)制,其中包括自然選擇和遺傳進(jìn)化中發(fā)生的繁殖、交配和突變現(xiàn)象,從任意一 個初始種群出發(fā),通過隨機(jī)選擇、交叉和變異操作,產(chǎn)生一群新的更適應(yīng)環(huán)境的個體,采用 迭代更新方法,使群體進(jìn)化到搜索空間中越來越好的區(qū)域,求得問題的最優(yōu)解。遺傳算法對 于復(fù)雜的優(yōu)化問題無須建模和復(fù)雜運算,只要利用遺傳算法的三個算子(選擇算子、交叉算 子和變異算子)就能得到最優(yōu)解,具有較強(qiáng)的全局搜索能力。
[0089] 在其中一實施例中,參考圖6,聚類分析模塊130包括父代群體生成單元132、個體 數(shù)據(jù)計算單元133、選擇復(fù)制單元134、交叉變異單元135和優(yōu)化分類單元136。
[0090] 父代群體生成單元132用于根據(jù)預(yù)設(shè)聚類數(shù)目對所有的待測芯片進(jìn)行編碼得到序 列號表示的個體,多次循環(huán)直到個體的數(shù)量等于預(yù)設(shè)個體數(shù),并將個體的集合作為父代群 體。
[0091]其中,預(yù)設(shè)聚類數(shù)目指對待測樣本進(jìn)行分類的類別數(shù)目。預(yù)設(shè)聚類數(shù)目和預(yù)設(shè)個 體數(shù)可以根據(jù)實際情況設(shè)置。本實施例中,根據(jù)需要解決的問題,設(shè)置預(yù)設(shè)聚類數(shù)目為2,可 將待測樣本分為兩類。本實施例中,預(yù)設(shè)個體數(shù)為200,即父代群體中包括200個個體。
[0092]本發(fā)明所述的編碼指對待測樣本進(jìn)行編號分類。
[0093] 在其中一實施例中,父代群體生成單元132根據(jù)預(yù)設(shè)聚類數(shù)目對所有的待測芯片 進(jìn)行編碼得到序列號表示的個體,具體為:對每個待測芯片隨機(jī)分配一個類號得到多位類 號串成的個體。
[0094] 其中,類號的種類數(shù)等于聚類數(shù)目,且每一個類號對應(yīng)一個基因位。本實施例中, 類號包括"1"和"2"??梢岳斫猓谄渌膶嵤├?,類號也可以采用其他數(shù)字。
[0095] -具體實施例中,通過父代群體生成單元132對160個待測樣本隨機(jī)分配類號"1" 或"2",得到121121…21的數(shù)字串,該數(shù)字串組成一個個體,長度為160位(等于待測芯片總 數(shù)),對應(yīng)有160個基因位。得到一個個體后,再重復(fù)對待測芯片進(jìn)行編碼,直到得到200個個 體作為一個父代群體。
[0096] 遺傳算法中,待測芯片的編碼方式有二進(jìn)制編碼、符號編碼和浮點數(shù)編碼等。本實 施例中通過父代群體生成單元132根據(jù)實際的聚類問題,采用符號編碼,即設(shè)置類號"1"和 "2"對待測芯片進(jìn)行編碼,便于后續(xù)對包括用類號表示待測芯片的個體進(jìn)行聚類分析,能夠 大大提高遺傳算法的效率。
[0097]個體數(shù)據(jù)計算單元133用于根據(jù)旁路數(shù)據(jù)獲取個體的適應(yīng)度和選擇算子。
[0098]適應(yīng)度是整個遺傳算法中極為關(guān)鍵的一部分,直接影響到算法收斂的速度和尋找 最優(yōu)個體的效率。適應(yīng)度高的個體在進(jìn)化過程中保留,而適應(yīng)度低的個體在進(jìn)化過程中逐 漸被淘汰。
[0099] 選擇算子按照某種方法如何從父代群體中選擇哪些個體進(jìn)行復(fù)制,遺傳到下一 代。
[0100] 在其中一實施例中,個體數(shù)據(jù)計算單元133具體用于:根據(jù)類號對個體進(jìn)行分類, 并根據(jù)旁路數(shù)據(jù)獲取每一個類的聚類中心,根據(jù)聚類中心獲取個體的評估值;對個體的評 估值進(jìn)行大小排序,并根據(jù)排序序號和預(yù)設(shè)影響因子獲取對應(yīng)個體的適應(yīng)度;根據(jù)個體的 適應(yīng)度獲取對應(yīng)個體的選擇算子。
[0101] 例如,160位數(shù)字串"121121 - 21"的個體中,將類號"1"表示的待測芯片作為第一 類,類號"2"表示的待測芯片作為第二類,然后分別根據(jù)旁路數(shù)據(jù)獲取第一類和第二類的聚 類中心,并根據(jù)聚類中心獲取個體的評估值。
[0102] 本實施例中,個體數(shù)據(jù)計算單元133具體根據(jù):
[0107] 獲取評估值、適應(yīng)度和選擇算子。其中,X/1表示第k個個體的第i類中第j個待測芯 片的旁路數(shù)據(jù)對應(yīng)的向量,Ni(k)表示第k個個體的第i類中待測芯片的數(shù)目,^表示第k 個個體中第i個類的聚類中心;centerNum表示預(yù)設(shè)聚類數(shù)目,m_pop(k). value表示第k個個 體的評估值;a表示預(yù)設(shè)影響因子,index表示評估值的排序序號,m_pop(k) .fitness表示第 k個個體的適應(yīng)度;m_pop(m) .fitness表示第m個個體的適應(yīng)度,m_pop(n) .fitness表示第n 個個體的適應(yīng)度,popSize表示預(yù)設(shè)個體數(shù),cFitness(k)表示第k個個體的選擇算子。
[0108] 其中,影響因子a的取值范圍為(〇,1),本實施例中a取0.6。
[0109]本實施例中,計算評估值的公式中-I(fo>||表示第k個個體的第i類中第j個 待測芯片對應(yīng)的旁路數(shù)據(jù)到該類的聚類中心的歐氏距離。不同于傳統(tǒng)的評估值計算,本實 施例中評估值的計算運用了 K均值算法的模型作為遺傳算法的聚類模型、構(gòu)建遺傳算法的 評估函數(shù)。對于每個個體,采用類似K均值算法獲取評估值,由于K均值算法具有較強(qiáng)的局部 搜索能力,因此融合K均值算法獲取的評估值可以表征每個個體的優(yōu)劣程度,提高聚類分析 能力。評估值越小,則表示分類的誤差越小,個體被選擇到下一代的幾率越高。
[0110] 通過對個體的評估值進(jìn)行排序后獲取適應(yīng)度,根據(jù)評估值排序方法,引入新的適 應(yīng)度計算方法,解決局部快速收斂問題。不管評估值的大小如何,個體被選擇的幾率只跟評 估值排序的序號有關(guān),這樣避免了一代群體中過于適應(yīng)或過于不適應(yīng)個體的干擾,提高優(yōu) 化選擇個體的準(zhǔn)確性。
[0111] 選擇復(fù)制單元134用于根據(jù)個體的選擇算子從父代群體中選擇對應(yīng)個體,多次循 環(huán)直到選擇的個體的數(shù)量等于預(yù)設(shè)個體數(shù),并復(fù)制選擇的個體作為中間群體。
[0112] 通過從父代群體中選擇個體進(jìn)行復(fù)制,可以將適應(yīng)度較高的個體保留到中間群 體,避免基因損失,提尚全局收斂性和計算效率。
[0113] 本實施例中,選擇復(fù)制單元134根據(jù)個體的選擇算子從父代群體中選擇對應(yīng)個體, 具體為:隨機(jī)生成一個選擇參數(shù),從父代群體中將選擇參數(shù)小于選擇算子對應(yīng)的個體選出, 若選出的個體有多個,則從選出的個體中選擇適應(yīng)度最接近選擇參數(shù)的個體。即,通過隨機(jī) 產(chǎn)生的選擇參數(shù)和選擇算子的比較,一次從父代群體中選擇一個個體進(jìn)行復(fù)制。
[0114] -具體實施例中,選擇復(fù)制單元134選擇一個個體之后,再次隨機(jī)生成一個選擇參 數(shù),重復(fù)選擇個體進(jìn)行復(fù)制的步驟,直到中間群體的個體數(shù)量等于預(yù)設(shè)個體數(shù),即完成一次 選擇復(fù)制,每一次選擇復(fù)制后得到的群體大小不變。
[0115] 交叉變異單元135用于根據(jù)預(yù)設(shè)交叉概率和預(yù)設(shè)變異概率對中間群體中的個體進(jìn) 行交叉和變異,得到下一代群體,并獲取下一代群體中個體的適應(yīng)度和選擇算子。
[0116] 交叉、變異之后得到下一代群體,即完成一次迭代。通過對個體進(jìn)行交叉,可以保 存?zhèn)€體原始特征,將原有的優(yōu)良基因遺傳給下一代個體,并生成包含更復(fù)雜結(jié)構(gòu)的新個體; 通過對交叉之后的個體進(jìn)行變異,可以克服交叉操作的局部搜索能力,以快速找到最優(yōu)個 體。
[0117] 在其中一實施例中,交叉變異單元135包括交叉子單元(圖未示)和變異子單元(圖 未不)。
[0118] 交叉子單元用于根據(jù)預(yù)設(shè)交叉概率生成個體的交叉基因位,隨機(jī)不重復(fù)地從下一 代群體中選擇兩個個體,根據(jù)交叉基因位對選擇的兩個個體進(jìn)行相互交叉,循環(huán)直到下一 代群體中的所有個體都完成交叉。
[0119] 預(yù)設(shè)交叉概率可根據(jù)實際情況具體設(shè)置。本實施例中,為了使交叉較充分地進(jìn)行, 交叉概率設(shè)置為0.6。
[0120] 本實施例中,交叉子單元根據(jù)交叉基因位對選擇的兩個個體進(jìn)行相互交叉,具體 為:對選取的兩個個體的交叉基因位后的類號進(jìn)行相互交叉復(fù)制。交叉操作一般分為:單點 交叉、多點交叉、一致交叉。本實施例中的交叉采用單點交叉,即以預(yù)設(shè)交叉概率生成交叉 位,可以降低計算量。
[0121] 變異子單元用于遍歷交叉后的個體的類號,根據(jù)預(yù)設(shè)變異概率對個體的各類號進(jìn) 行變異,得到下一代群體。
[0122] 變異概率可以為0.001和0.1之間的數(shù)值。本實施例中變異概率為0.05。設(shè)置較小 的變異概率,避免破壞很多優(yōu)良樣本而無法得到最優(yōu)個體。
[0123] 本實施例中,變異子單元根據(jù)預(yù)設(shè)變異概率對個體的各類號進(jìn)行變異,具體為:對 應(yīng)每一位類號隨機(jī)生成一個變異參數(shù),在變異參數(shù)小于變異概率時,隨機(jī)生成一個類號作 為對應(yīng)基因位的新的類號。
[0124] -具體實施例中,一個個體對應(yīng)有160個類號,對應(yīng)160個待測芯片。交叉概率為 0.6,得到的交叉基因位為第96位,因此,隨機(jī)不重復(fù)地從下一代群體中選擇兩個個體后,將 選取的兩個個體第96位后的類號進(jìn)行相互復(fù)制,即為完成這兩個個體的交叉。對于完成交 叉之后的個體,遍歷每一位類號,對每一位類號隨機(jī)生成一個變異參數(shù),在變異參數(shù)小于變 異概率時,生成類號"1"或"2"賦值給該位類號,然后對下一個類號隨機(jī)生成一個類號,如此 循環(huán)直到遍歷完該個體的所有類號,即為完成該個體的變異。
[0125] 本實施例中,得到下一代群體之后,交叉變異單元135獲取下一代群體中的個體的 適應(yīng)度和選擇算子執(zhí)行的功能與個體數(shù)據(jù)計算單元133相同,在此不做贅述。
[0126] 優(yōu)化分類單元136用于將預(yù)設(shè)的迭代次數(shù)加一得到新的迭代次數(shù),判斷新的迭代 次數(shù)是否等于預(yù)設(shè)最大迭代次數(shù);在新的迭代次數(shù)不等于最大迭代次數(shù)時,將下一代群體 作為新的父代群體,并控制選擇復(fù)制單元134根據(jù)個體的選擇算子從父代群體中選擇對應(yīng) 個體,多次循環(huán)直到選擇的個體的數(shù)量等于預(yù)設(shè)個體數(shù),并復(fù)制選擇的個體作為中間群體; 在新的迭代次數(shù)等于預(yù)設(shè)最大迭代次數(shù)時,從下一代群體中選擇適應(yīng)度最大的個體作為最 優(yōu)個體,根據(jù)最優(yōu)個體的編碼對待測芯片進(jìn)行分類,得到聚類芯片集。
[0127] 例如,在迭代次數(shù)等于最大迭代次數(shù)時,選出最優(yōu)個體后,按照類號"1"和"2"將對 應(yīng)的待測芯片分為第一類和第二類,得到一個或兩個聚類芯片集。同一個聚類芯片集中的 待測芯片的旁路數(shù)據(jù)對應(yīng)的特征較為相似,同屬于木馬芯片或同屬于非木馬芯片。
[0128] 微小面積的硬件木馬產(chǎn)生的旁路數(shù)據(jù)的信息相比原始電路的旁路數(shù)據(jù)的信息微 乎其微,很容易被工藝噪聲和測量噪聲所掩蓋;而且木馬芯片和非木馬芯片的特征差異很 小,如何高效地識別木馬芯片和非木馬芯片的特征差異是關(guān)鍵問題。本發(fā)明通過聚類分析 模塊130,采用融合K均值算法的遺傳算法,利用K均值算法較強(qiáng)的局部搜索能力來提高聚類 分析能力,實現(xiàn)多維數(shù)據(jù)的微小特征提取;利用遺傳算法較強(qiáng)的全局搜索能力,通過不斷迭 代優(yōu)化,自動篩選出最優(yōu)的分類結(jié)果,極大減小人工的干預(yù),提高特征的自動識別能力。
[0129] 木馬檢測模塊150用于提取聚類芯片集中的待測芯片進(jìn)行反向分析,并根據(jù)反向 分析的結(jié)果將聚類芯片集歸為木馬類芯片或非木馬類芯片。
[0130] 反向分析指現(xiàn)有的技術(shù)中對待測芯片進(jìn)行硬件木馬檢測的一種方法。通過對待測 芯片進(jìn)行反向分析,可以得知該待測芯片是否存在硬件木馬,從而得知與該待測芯片屬于 同一聚類芯片集的待測芯片是否為木馬芯片。
[0131] 在其中一實施例中,聚類芯片集的數(shù)量為2個,木馬檢測模塊150具體用于:從任一 個聚類芯片集中隨機(jī)選擇一個待測芯片進(jìn)行反向分析;根據(jù)反向分析的結(jié)果判斷抽取的待 測芯片是否存在硬件木馬,在存在硬件木馬時,將抽取的待測芯片所在的聚類芯片集歸為 木馬類芯片,另一個聚類芯片集歸為非木馬類芯片,在不存在硬件木馬時,將抽取的待測芯 片所在的聚類芯片集歸為非木馬類芯片,另一個聚類芯片集歸為木馬類芯片。
[0132] 通過在對待測芯片進(jìn)行分類后,抽取其中的一個待測芯片進(jìn)行反向分析,根據(jù)反 向分析的結(jié)果即可判斷所有待測芯片是否存在硬件木馬,不需要對所有待測芯片進(jìn)行檢 測,操作簡單高效。
[0133] -具體實施例中,目標(biāo)電路采用18位的Cordic數(shù)字IP核電路,硬件木馬為1位的計 數(shù)器,木馬電路與目標(biāo)電路的面積比值約為5*1(T 4。參考圖4,為采用上述芯片硬件木馬檢測 方法對160個待測芯片進(jìn)行檢測的結(jié)果,1~16號芯片為非木馬芯片,17~32號芯片為木馬 芯片,33~96號芯片為非木馬芯片,97~160號芯片為木馬芯片,從圖中可以看出木馬芯片 聚為"1"類,非木馬芯片聚為"2"類,可見木馬芯片和無木馬芯片能夠準(zhǔn)確地聚成兩類,因此 也驗證了該方法可以實現(xiàn)1(T 4的硬件木馬檢測分辨率。
[0134] 上述芯片硬件木馬檢測系統(tǒng),參數(shù)旁路測試模塊110對所有的待測芯片進(jìn)行參數(shù) 旁路測試,采集待測芯片在工作狀態(tài)下的旁路數(shù)據(jù)后,聚類分析模塊130根據(jù)旁路數(shù)據(jù)、采 用融合K均值算法的遺傳算法對待測芯片進(jìn)行聚類分析,得到聚類芯片集,木馬檢測模塊 150提取聚類芯片集中的待測芯片進(jìn)行反向分析,并根據(jù)反向分析的結(jié)果將聚類芯片集歸 為木馬類芯片或非木馬類芯片。通過利用K均值算法較強(qiáng)的局部搜索能力來提高聚類分析 能力,利用遺傳算法較強(qiáng)的全局搜索能力,通過不斷迭代優(yōu)化,自動篩選出最優(yōu)的分類結(jié) 果,極大減小人工的干預(yù),提高特征的自動識別能力,硬件木馬檢測能力強(qiáng)、效率高。
[0135] 以上所述實施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實 施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存 在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
[0136] 以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并 不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來 說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù) 范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項】
1. 一種芯片硬件木馬檢測方法,其特征在于,包括如下步驟: 對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集所述待測芯片在工作狀態(tài)下的旁路數(shù)據(jù); 根據(jù)所述旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對所述待測芯片進(jìn)行聚類分析,得 到聚類芯片集; 提取所述聚類芯片集中的所述待測芯片進(jìn)行反向分析,并根據(jù)反向分析的結(jié)果將所述 聚類芯片集歸為木馬類芯片或非木馬類芯片。2. 根據(jù)權(quán)利要求1所述的芯片硬件木馬檢測方法,其特征在于,所述根據(jù)所述旁路數(shù) 據(jù)、采用融合K均值算法的遺傳算法對所述待測芯片進(jìn)行聚類分析,得到聚類芯片集的步驟 包括: 根據(jù)預(yù)設(shè)聚類數(shù)目對所有的所述待測芯片進(jìn)行編碼得到序列號表示的個體,多次循環(huán) 直到所述個體的數(shù)量等于預(yù)設(shè)個體數(shù),并將所述個體的集合作為父代群體; 根據(jù)所述旁路數(shù)據(jù)獲取所述個體的適應(yīng)度和選擇算子; 根據(jù)所述個體的選擇算子從所述父代群體中選擇對應(yīng)個體,多次循環(huán)直到選擇的個體 的數(shù)量等于所述預(yù)設(shè)個體數(shù),并復(fù)制選擇的個體作為中間群體; 根據(jù)預(yù)設(shè)交叉概率和預(yù)設(shè)變異概率對所述中間群體中的個體進(jìn)行交叉和變異,得到下 一代群體,并獲取所述下一代群體中個體的適應(yīng)度和選擇算子; 將預(yù)設(shè)的迭代次數(shù)加一得到新的迭代次數(shù),判斷所述新的迭代次數(shù)是否等于預(yù)設(shè)最大 迭代次數(shù); 若否,將所述下一代群體作為新的父代群體,并返回所述根據(jù)所述個體的選擇算子從 所述父代群體中選擇對應(yīng)個體,多次循環(huán)直到選擇的個體的數(shù)量等于所述預(yù)設(shè)個體數(shù),并 復(fù)制選擇的個體作為中間群體的步驟; 若是,則從所述下一代群體中選擇適應(yīng)度最大的個體作為最優(yōu)個體,根據(jù)所述最優(yōu)個 體的編碼對所述待測芯片進(jìn)行分類,得到所述聚類芯片集。3. 根據(jù)權(quán)利要求2所述的芯片硬件木馬檢測方法,其特征在于,所述根據(jù)預(yù)設(shè)聚類數(shù)目 對所有的所述待測芯片進(jìn)行編碼得到序列號表示的個體的步驟包括: 對每個所述待測芯片隨機(jī)分配一個類號得到多位類號串成的個體,其中,所述類號的 種類數(shù)等于所述預(yù)設(shè)聚類數(shù)目,且每一個所述類號對應(yīng)一個基因位。4. 根據(jù)權(quán)利要求3所述的芯片硬件木馬檢測方法,其特征在于,所述根據(jù)所述旁路數(shù)據(jù) 獲取所述個體的適應(yīng)度和選擇算子的步驟包括: 根據(jù)所述類號對所述個體進(jìn)行分類,并根據(jù)所述旁路數(shù)據(jù)獲取每一個類的聚類中心, 根據(jù)所述聚類中心獲取所述個體的評估值; 對所述個體的評估值進(jìn)行大小排序,并根據(jù)排序的序號和預(yù)設(shè)影響因子獲取對應(yīng)個體 的適應(yīng)度; 根據(jù)所述個體的適應(yīng)度獲取對應(yīng)個體的選擇算子。5. 根據(jù)權(quán)利要求4所述的芯片硬件木馬檢測方法,其特征在于,所述根據(jù)所述旁路數(shù)據(jù) 獲取每一個類的聚類中心,根據(jù)所述聚類中心獲取所述個體的評估值的步驟,具體為:所述對所述個體的評估值進(jìn)行大小排序,并根據(jù)排序的序號和預(yù)設(shè)影響因子獲取對應(yīng) 個體的適應(yīng)度的步驟具體為: m_pop(k) .fitness= (l-a)index_1 ; 根據(jù)所述個體的適應(yīng)度獲取對應(yīng)個體的選擇算子的步驟具體為:其中,X/1表示第k個個體的第i類中第j個待測芯片的所述旁路數(shù)據(jù)對應(yīng)的向量,Ni(k) 表示第k個個體的第i類中所述待測芯片的數(shù)目表示第k個個體中第i個類的聚類中 心;centerNum表示所述預(yù)設(shè)聚類數(shù)目,m_pop(k). value表示第k個個體的評估值;a表示所 述預(yù)設(shè)影響因子,index表示所述評估值的排序序號,m_pop(k). fitness表示第k個個體的 適應(yīng)度;m_pop(m). fitness表示第m個個體的適應(yīng)度,m_pop(n). fitness表示第η個個體的 適應(yīng)度,popSize表示所述預(yù)設(shè)個體數(shù),cFitness(k)表示第k個個體的選擇算子。6. 根據(jù)權(quán)利要求2所述的芯片硬件木馬檢測方法,其特征在于,所述根據(jù)預(yù)設(shè)交叉概率 和預(yù)設(shè)變異概率對所述中間群體中的所述個體進(jìn)行交叉和變異,得到下一代群體的步驟包 括: 根據(jù)所述預(yù)設(shè)交叉概率生成所述個體的交叉基因位,隨機(jī)不重復(fù)地從所述下一代群體 中選擇兩個個體,根據(jù)所述交叉基因位對選擇的兩個個體進(jìn)行相互交叉,循環(huán)直到所述下 一代群體中的所有個體都完成交叉; 遍歷交叉后的所述個體的類號,根據(jù)所述預(yù)設(shè)變異概率對所述個體的各類號進(jìn)行變 異,得到下一代群體。7. 根據(jù)權(quán)利要求1所述的芯片硬件木馬檢測方法,其特征在于,所述聚類芯片集的數(shù)量 為2個,所述提取所述聚類芯片集中的所述待測芯片進(jìn)行反向分析,并根據(jù)反向分析的結(jié)果 將所述聚類芯片集歸為木馬類芯片或非木馬類芯片的步驟包括: 從任一個所述聚類芯片集中隨機(jī)選擇一個待測芯片進(jìn)行反向分析; 根據(jù)反向分析的結(jié)果判斷抽取的所述待測芯片是否存在硬件木馬; 若是,將抽取的所述待測芯片所在的聚類芯片集歸為木馬類芯片,另一個聚類芯片集 歸為非木馬類芯片; 若否,將抽取的所述待測芯片所在的聚類芯片集歸為非木馬類芯片,另一個聚類芯片 集歸為木馬類芯片。8. -種芯片硬件木馬檢測系統(tǒng),其特征在于,包括: 參數(shù)旁路測試模塊,用于對所有的待測芯片進(jìn)行參數(shù)旁路測試,采集所述待測芯片在 工作狀態(tài)下的旁路數(shù)據(jù); 聚類分析模塊,用于根據(jù)所述旁路數(shù)據(jù)、采用融合K均值算法的遺傳算法對所述待測芯 片進(jìn)行聚類分析,得到聚類芯片集; 木馬檢測模塊,用于提取所述聚類芯片集中的所述待測芯片進(jìn)行反向分析,并根據(jù)反 向分析的結(jié)果將所述聚類芯片集歸為木馬類芯片或非木馬類芯片。9. 根據(jù)權(quán)利要求8所述的芯片硬件木馬檢測系統(tǒng),其特征在于,所述聚類分析模塊包 括: 父代群體生成單元,用于根據(jù)預(yù)設(shè)聚類數(shù)目對所有的所述待測芯片進(jìn)行編碼得到序列 號表示的個體,多次循環(huán)直到所述個體的數(shù)量等于預(yù)設(shè)個體數(shù),并將所述個體的集合作為 父代群體; 個體數(shù)據(jù)計算單元,用于根據(jù)所述旁路數(shù)據(jù)獲取所述個體的適應(yīng)度和選擇算子; 選擇復(fù)制單元,用于根據(jù)所述個體的所述選擇算子從所述父代群體中選擇對應(yīng)個體, 多次循環(huán)直到選擇的個體的數(shù)量等于所述預(yù)設(shè)個體數(shù),并復(fù)制選擇的個體作為中間群體; 交叉變異單元,用于根據(jù)預(yù)設(shè)交叉概率和預(yù)設(shè)變異概率對所述中間群體中的個體進(jìn)行 交叉和變異,得到下一代群體,并獲取所述下一代群體中個體的適應(yīng)度和選擇算子; 優(yōu)化分類單元,用于將預(yù)設(shè)的迭代次數(shù)加一得到新的迭代次數(shù),判斷所述新的迭代次 數(shù)是否等于預(yù)設(shè)最大迭代次數(shù);在所述新的迭代次數(shù)不等于所述預(yù)設(shè)最大迭代次數(shù)時,將 所述下一代群體作為新的父代群體,并控制所述選擇復(fù)制單元根據(jù)所述個體的所述選擇算 子從所述父代群體中選擇對應(yīng)個體,多次循環(huán)直到選擇的個體的數(shù)量等于所述預(yù)設(shè)個體 數(shù),并復(fù)制選擇的個體作為中間群體;在所述新的迭代次數(shù)等于所述預(yù)設(shè)最大迭代次數(shù)時, 從所述下一代群體中選擇適應(yīng)度最大的個體作為最優(yōu)個體,根據(jù)所述最優(yōu)個體的編碼對所 述待測芯片進(jìn)行分類,得到所述聚類芯片集。10. 根據(jù)權(quán)利要求8所述的芯片硬件木馬檢測系統(tǒng),其特征在于,所述聚類芯片集的數(shù) 量為2個,所述木馬檢測模塊具體用于: 從任一個所述聚類芯片集中隨機(jī)選擇一個待測芯片進(jìn)行反向分析,并根據(jù)反向分析的 結(jié)果判斷抽取的所述待測芯片是否存在硬件木馬,在存在硬件木馬時,將抽取的所述待測 芯片所在的聚類芯片集歸為木馬類芯片,另一個聚類芯片集歸為非木馬類芯片,在不存在 硬件木馬時,將抽取的所述待測芯片所在的聚類芯片集歸為非木馬類芯片,另一個聚類芯 片集歸為木馬類芯片。
【文檔編號】G06F21/76GK105893876SQ201610188381
【公開日】2016年8月24日
【申請日】2016年3月28日
【發(fā)明人】何春華, 恩云飛, 劉燕江, 侯波, 雷登云, 王力緯
【申請人】工業(yè)和信息化部電子第五研究所