張毅軍 張曉 林少鋒 趙源

摘要:芯片功耗數據采集時會存在多種噪聲,為了保證數據可靠,采用國際上通用的AES電路,在FPGA中寫入帶木馬邏輯的電路,并對其進行功耗數據提取。針對噪聲對硬件木馬檢測的影響,結合功耗數據的特性提出了基于小波變換的功耗降噪算法,選取了最優的小波降噪參數,有效優化各種噪聲影響。針對芯片正常性檢測與硬件木馬識別過程中,特征識別模型對檢測精度影響較大的問題,提出了基于神經網絡的硬件木馬特征識別算法,能夠很好地區分數據之間的細微差別,對去噪后的數據進行硬件木馬檢測,大量實驗結果表明,對芯片中的硬件木馬識別率大于90%,可以識別規模大于0.05%的硬件木馬功耗數據。
關鍵詞:硬件木馬;小波降噪;神經網絡
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2019)31-0015-02
1概述
硬件木馬是指為了達到改變電路功能或工作狀態等目的而在集成電路中插入的惡意邏輯。通常硬件木馬在電路中處于隱蔽狀態,激活后進行信息竊取、旁路泄漏、失效加速、邏輯破壞、物理摧毀、資源強占等攻擊。目前我國的高端、高檔集成電路主要依賴進口。硬件木馬檢測對于工業應用進口芯片進行嚴格把關,杜絕問題芯片流入我國航空、軍工等工業市場具有重要意義。
目前,硬件木馬的檢測技術包括:失效分析技術、邏輯功能測試技術、側信道分析技術。由于側信道分析技術擁有不會對芯片造成破壞、檢測效率高且檢測成本低、可以對一批芯片中的大量芯片進行檢測的優點,因此,側信道分析技術成為了主流的硬件木馬檢測技術。但是,在利用側信道分析技術對硬件木馬進行檢測的過程中,芯片以及檢測設備會受到外界以及系統內部噪聲的影響。噪聲的存在會削弱甚至淹沒硬件木馬對電路的影響,這使得硬件木馬的檢出率大大地降低。本文提出了一種基于小波變換的數據降噪預處理,并結合神經網絡算法進行硬件木馬的檢測方法。
2木馬設計
硬件木馬FPGA的設計主要目的是進行木馬芯片功耗數據的采集。通過對FPGA的邏輯設計,使木馬的功耗數據更加真實,從而使得木馬芯片功耗數據的特征更明顯。在采集時會得到攜帶噪聲的數據,相比于模擬數據而言,噪聲數據更自然,這也會使之后的去噪效果更好。
3功耗數據采集
首先完成攻擊電路和硬件木馬的Verilog設計,并對設計電路進行功能驗證;隨后利用ISE綜合工具對原始電路和植入硬件木馬電路進行綜合,生成FPGA的配置bitstream文件;通過JTAG將bit流文件燒寫到FPGA中,施加合適的測試向量是FP-GA執行加密操作;通過FPGA功耗采集平臺采集芯片的工作電流得到芯片的工作功耗波形,并將功耗數據傳輸至PC上位機存儲。
4小波降噪模塊設計
4.1小波去噪原理
小波分析被稱為“數學顯微鏡”,是一種時頻域局部化分析方法。它將時域的一維信號轉換到時頻域的二位空間。小波變換不同于傅里葉變換,它的窗口面積固定但形狀是可變的。通過窗口的平移和伸縮,使其在信號低頻部分具有較高的頻率分辨率和較低的時間分辨率,在信號高頻部分則反之。因此,小波變換具有對信號的任意細節進行時頻分析的能力,即多分辨率分析。
功耗采集平臺獲取的功耗數據記為r(t),信號r(t)的連續小波變換為WTr(a,τ):
a和τ分別為伸縮和平移因子,其中,ψaτ(t)被稱為小波基函數:
小波分解函數是由同一母函數經過伸縮平移變換而成的一系列函數。小波變換就是利用小波基對原函數進行分解重構,無限逼近原函數的過程。
小波變換使得信號在不同尺度進行分解,并由將各種不同頻率組成的混合信號分解成不同頻帶的子信號。而噪聲分布一般都存在于高頻部分。因此,通過選取合理的閾值就可以有效去除高頻部分的噪聲。小波去噪流程如下:
(1)信號的小波分解:選擇合適的小波基和分解層次,對信號進行分解,計算出小波分解系數。
(2)高頻系數的閾值量化處理:對不同分解層次選取合適的閾值,對高頻系數進行處理,去除噪聲。
(3)信號的小波重構:將低頻系數和閾值化處理后的高頻系數進行小波重構,還原出消除噪聲的信號。
若rk為功耗信號r(t)的離散采樣數據,且rk=cok,則信號r(t)的正交小波變換分解公式為:
4.2小波去噪關鍵因素
(1)小波基
理論上來說小波變換可以刻畫信號的任何細節,但是在實際應用中,對目標信號的去噪效果很大程度上取決于小波基的選擇。與傅里葉變換不同,小波基不是唯一的,不同的小波基波形差別很大,且其支撐長度、正交性、緊支性等都不盡相同。因此,對同一個信號選用不同的小波基進行處理所得的結果往往不同。因此,小波基函數的選擇就成了小波分析在實際應用中的一個十分重要的問題。
(2)重構閾值
閾值去噪是一種非線性去噪方法,具有實現簡單,計算量小的優點。正交小波變換具有很強的數據相關性,信號的能量在小波域集中在一些大的有限的系數中。即小波分解后,信號的系數相對于噪聲的系數要大。這樣就可以設定一個合適閾值,來濾除低于閾值的噪聲系數。為了保持信號的整體形狀,盡量少的損失有效信號,小波分解后應保留低頻系數,對1至N層的高頻系數采用閾值法進行量化處理。
5神經網絡算法
5.1BP神經網絡算法網絡訓練過程
BP神經網絡預測前首先要訓練網絡,通過訓練網絡使網絡具有聯想記憶和預測能力。BP神經網絡訓練過程包括以下幾個步驟。
步驟1:網絡初始化。根據系統輸入輸出序列(x,Y)確定網絡輸入層節點數n、隱含層節點數1,輸出層節點數m,初始化輸入層、隱含層和輸出層神經元之間的連接權值Wij、Wjk,初始化隱含層閾值a,輸出層閾值b,給定學習速率和神經元激勵函數。
步驟2:隱含層輸出計算。根據輸入向量x,輸入層和隱含層間連接權值wij以及隱含層閾值a,計算隱含層輸出H。
步驟6:閾值更新。根據網絡預測誤差e更新網絡節點閾值a,b。
步驟7:判斷算法迭代是否結束,若沒有結束,返回步驟2。
5.2芯片正常性檢測的實現
取4組母本電路功耗數據A、B、C、D,每組數據12000個,將A組數據從頭至尾每隔500個數據截為一段,分為24段,將每段數據第一個數據組為1組,第二個數據同樣組為第2組,以此類推形成500組數據,每組數據含數據24個。將B、c、D照此法同樣處理。
A:將500組來自數據組A的數據均在開頭加上標識1得到大數組E;
B:將500組來自數據組B的數據均在開頭加上標識2得到大數組F;
c:將500組來自數據組c的數據均在開頭加上標識3得到大數組G;
D:將500組來自數據組D的數據均在開頭加上標識4得到大數組H。
將重新處理后的E、F、G、H四組數據放入神經網絡中訓練,取一待測電路功耗數據D,它同樣包含數據1200個。照A組數據處理方法做同樣處理得到數據N,將大數組N放入神經網絡中進行處理,神經網絡識別數組細微差別,進行分類。每個大數據中的500個數據組可看作大數據的500個細微特征共同組成大數據的整體特征,4組輸入訓練的大數據因其均為正常數據故其整體特征極為相似,其500個細微特征也均極為相似。若待測數據為正常數據,則其整體特征與4組輸入大數據整體特征也極為相似,神經網絡將每組數據(每個細微特征)分類為1、2、3、4類的可能性均等,均為近25%,故整體500組數據的分類情況是極為離散的,而若待測數據中為含有木馬程序的數據,則其整體特征與4組輸人大數據整體特征極為不同,但其總是與4組大數據中1組數據整體特征的相似度要高于其他3組。故其500組細微特征中大部分細微特征也與該組輸人數據的對應細微特征更相似,故神經網絡進行分類時會將大部分組數據分為該類,成歸一態勢,以此來區分正常芯片與問題芯片。
6結論
本文通過對功耗數據中隱藏噪聲的分析,提出了基于小波變換的旁路信息降噪算法,基于大量實測功耗數據進行實驗,分析得到了最適合的一系列小波去噪參數。并結合神經網絡算法的后數據處理,判別電路中是否含有硬件木馬。實驗結果表明,通過小波變換的降噪預處理,側信道數據中的噪聲含量明顯地降低,神經網絡算法可判別占母本電路面積為0.05%的硬件木馬,誤差率小于0.5%。