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