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