李雄偉,劉俊延,張陽,陳開顏,劉林云
(陸軍工程大學石家莊校區,河北石家莊 050003)
隨著半導體行業的迅猛發展,集成電路芯片廣泛應用于各領域中,并發揮著十分重要的作用.中國是集成電路芯片的最大市場,隨著新基建大力建設,2020年芯片需求與上年相比增長3%.由于芯片的廣泛應用和工業終端設備的特殊應用需求,對芯片的穩定性、可靠性、安全性、大規模一致性、壽命等提出極高的要求.在極其復雜的應用環境下,要求產品能夠7*24 小時連續穩定運行,壽命達十年以上.然而,集成電路芯片產業鏈涵蓋設計、生產、分銷等眾多環節,且需由眾多廠商分別完成,無法保證每一環節的可信性[1].在此過程中,芯片設計可能被仿制、芯片生產可能被篡改、芯片分銷可能會存在以假充真、以次充好、以舊充新等情況,這些都是典型的偽芯片問題[2],對芯片的可靠性及其應用安全性造成嚴重威脅.這些芯片一旦被部署在關鍵的電子系統或設備中,運行過程中出現故障,將造成不可預估的損失和嚴重后果.因此,確保芯片的真實和可靠至關重要.
偽芯片通常包括重標記、過量生產、不合格、克隆等類型[3].本文主要針對以次充好、以假充真等重標記類型的偽芯片進行檢測.傳統的檢測方法主要分為物理檢測和電氣檢測[3]兩大類.物理檢測包括:封裝分析、芯片開封、材料分析等方法.其中封裝分析和芯片開封會對芯片造成破壞,一般適用于抽樣檢測;材料分析的方法通過X 射線或紅外光譜進行檢測,檢測時間長效率低.電氣檢測包括:參數測試、功能測試、結構測試等方法.雖然這些方法成本較低,對芯片也不會造成損壞,但對檢測人員要求高,過分依賴人為的規范操作,并且當芯片中的電氣參數相差較大時,很難斷定其究竟是偽芯片還是由工藝或環境的干擾所致.
近年來,旁路分析[4]逐漸成為密鑰攻擊、硬件木馬檢測的主流方法,并在實踐中證明了該方法的有效性[5-6].因此,本文希望通過對芯片的電磁旁路信號進行分析,從而達到檢測偽芯片的目的.
現代集成電路中包含了數十億的載流金屬線和電子元件,通過電磁探針能夠有效的采集到芯片運行時的近場電磁信號[7].該信號受到許多電路參數影響,例如技術、布局和布線、代碼、內部濾波、封裝、溫度、老化等,對這些參數進行任何修改都將導致磁場發生變化.不同級別的差異在旁路信號中以不同的量級體現出來,相似而不同芯片之間的差異可能體現在其中很微小的部分.由于集成電路的硬件特性,可以認為其工作狀態下的電磁信號是相對穩定的.因此,業內普遍認為基于旁路分析的檢測技術是一種較為有效的檢測手段.
Huang 等人較早提出了利用“電磁指紋”實現對集成芯片檢測的思想[8],并展開了利用電磁信號區分真實設備和不同設備的第一次探索性實驗,以證實該方法的可行性.作者討論和研究了兩種數據分析方法并通過實驗表明:當對原始設計實施某些修改或進行加速老化測試時,將引起電路電磁指紋的變化.并且采用近場測量方法對其他電路進行的幾次并行測試也得出了相同的結果.但該方法要求條件比較嚴苛,需保證測量環境完全相同,且其測量的精度和速度也并不可觀.Andrew stern 等人提出了一種基于電磁信號的芯片檢測框架,用于檢測標記和克隆的偽造芯片[9].作者演示了該框架在有參考和無參考情況下的分類方法,并通過在所有IC 上執行非監督(主成分分析)和監督(線性判別分析)的機器學習方法,從而確定不同廠商和相同廠商所生產同系列芯片的相似性.作者采用了多種認證的手段,能夠減小錯分的可能性,但受限于僅啟用芯片的時鐘網絡,未考慮芯片實際應用場景,適用性較差.在文獻[10]中,作者同樣提出了基于芯片輻射的物聯網設備檢測方案(CREBAD),首先用快速傅里葉變換對芯片的電磁信號進行時頻轉換,再利用遺傳算法和近似熵等理論對旁路信號進行特征提取和選擇后進行分類.該文獻在特征提取方面做了充足的考慮,并且一分類的方法能夠適用于更加復雜的場景.但是該文獻沒有考慮近場電磁信號不穩定的問題.文獻[11-12]中,作者通過分析密碼芯片旁路信號,從而獲得程序執行的指令代碼,這為偽芯片的檢測提供了新的思路.Jungmin Park 等人利用KL 散度和PCA 等方法提取特征并降維,再結合機器學習算法來確定在設備上執行的指令.該方法能夠以較高的準確率來實現旁路反匯編,但是其算法在提取特征過程中效率較低.
在總結分析相關工作基礎上,本文提出了一種基于SAE-OCSVM(Sparse Autoencoder-One Class Support Vector Machines)的偽芯片檢測框架,主要貢獻有以下幾個方面:
1)提出了基于操作指令的芯片檢測方法,并采用滑窗搜索的策略匹配模板指令,從而實現芯片運行時的無損在線檢測.
2)提出了神經網絡結合人工提取特征的方法,實現高效、表征性強的特征提取.
3)采用一類支持向量機對特征向量進行分類并對算法中高斯核函數做了一定改進,以適應融合特征向量中不同量綱的特征.
本文提出的偽芯片檢測框架建立在持有受信任來源的正品芯片基礎之上,其核心思想是通過現有的正品芯片對有限的匯編指令信號進行特征提取并訓練為模板庫,這些模板作為后續識別待測芯片的依據.將待測芯片的采集信號加窗分幀并進一步識別,從而將雜亂無章的信號反匯編,實現與模板信號的匹配識別.偽芯片檢測框架如圖1所示.

圖1 偽芯片檢測框架Fig.1 Counterfeit chip detection framework
1)信號采集.獲取正品芯片在執行不同匯編指令時泄露的旁路信號,可以在其內部添加電壓觸發信號以采集到更加準確的信號模板.將采樣信號模數轉換為離散的采樣點,用于后續的特征提取和檢測.采樣頻率越高,信號還原度越高,但增加了數據的計算量;采樣頻率越低,可能損失的信息量越多,比如丟失極值點的情況.對于已經封裝好的芯片,電磁探針應當緊貼芯片正中位置的上方采集近場信號(遠場信號微弱,干擾信號較多).由于近場信號隨空間距離變化快,電磁探針的信號采集位置不應有較大變化,否則將影響識別準確率,可以將待測設備固定在微動平臺上確保探針位置的精準放置.
2)特征提取.由于原始信號內含有大量無關的冗余信息,因此需要建立多特征融合的模型來表述該信號.自動編碼器作為一種無監督學習的深度神經網絡結構[13],一般用于降噪、特征提取和降維.通過損失函數(1)最小化重構誤差達到自動學習輸入數據中隱含特征的目的:

式中:h為編碼器的映射函數,g為解碼器的映射函數,l為訓練樣本數,θ和θ′為編碼器和解碼器的訓練參數.本文構建的自動編碼器特征提取分為兩個步驟:首先利用卷積層、池化層和上采樣層代替傳統的全連接層,構建卷積自動編碼器對電磁輻射這樣的時間序列信號進行特征提取,能夠有效避免序列信息丟失并解決采樣信號不對齊的問題.然后利用只含全連接層的自動編碼器對卷積自動編碼器提取出的特征進一步降維.通過該方法能夠自動提取信號中的隱含特征,其結構如圖2所示.

圖2 自動編碼器結構Fig.2 Auto encoder structure
為解決梯度消失和過擬合等問題,目前激活函數主流使用Relu 函數.在第一步的卷積自動編碼器中,由于原始電磁信號的幅值在-1 到1 之間,所以最后一層卷積核的激活函數采用Tanh 函數,這樣能夠在輸出層實現信號的重構.并且實驗中發現,在損失函數中加入稀疏懲罰項能夠提高識別的準確度:

式中:ρ為稀疏參數,為編碼層神經元的活躍度.它能將編碼層的平均激活度控制在一個比較小的值,通過這種神經元的稀疏性表達[14]可有助于提取特征,由于引用了稀疏懲罰項,編碼層的卷積核采用Sigmoid激活函數,而不能用Relu,否則會導致出現大于1的可能.
卷積自動編碼器所提取的特征主要是與時間序列相關等一些抽象的特征信息,它對信號的描述相對來說比較宏觀,難以對信號細節差異部分進行有效的描述,當兩條差異很小的信號作為自動編碼機的輸入,它們可能提取出相同的特征向量并把這些細微差異當作噪聲濾掉.因此,需進一步人工提取原始信號的特征f′(cext,cvar):

式(3)中的e為信號中的各極值點.在大量的測試實驗中發現,不同匯編指令對應的信號差異體現在各極值點處明顯,并且在密碼分析的公共數據集中,原始信號被處理成了只含有極值點的數據集[15].式(4)是信號離散程度的度量,近場的電磁強度隨距離的變換較大,在這個空間內磁場十分不均勻,電磁探針在空間上的細微偏差容易導致采集的信號在幅值上不穩定,與均值作商能夠一定程度上消除這種影響.
3)待測芯片旁路信號采集.與模板信號采集不同,待測芯片的旁路信號是在線采集的,它可以在芯片執行任何操作時采集任意時間段的旁路信號.事實上,許多芯片也作為模塊化設計中的組成部件已經焊接完成,無法進行拆解檢測.
在實驗中發現:連續兩條匯編指令之間會互相產生一定的影響,可以采用Hamming 窗或者長度略小于指令周期的矩形窗.信號采集時長大于4 個機器周期(51 單片機),這樣能夠保證采集到的信號至少包含一條完整的指令信息.通過對采集的信號加窗分幀,并對每幀加窗信號進行上述的特征提取步驟:

x為每幀窗信號Y 中離散點,W為加窗函數,將人工提取的特征f′與自動編碼器提取的特征hθ(W?Y)融合成特征向量f作為支持向量機的輸入.
4)采用一類支持向量機對融合特征向量進行訓練和分類.一類支持向量機是指訓練數據中只含有一種類別的數據(Positive or Negative),能夠通過調整參數控制學習樣本的邊界,把異類數據排除在邊界之外.支持向量機中核函數的選取非常關鍵[16],核函數通過隱式地改變樣本向量到特征空間的映射,進而影響分類的效果.傳統的一類支持向量機核函數有線性核函數和非線性核函數,非線性核函數以高斯核函數最為著名,高斯核函數等非線性核函數通常采用歐氏距離來描述樣本之間的相似性,但采用歐氏距離時會導致在分類過程中把不同量綱的特征元素等同的看待.因此,本文在高斯核函數基礎上,將計算歐式距離的絕對差改用相對差來描述,以適應提取的融合特征:

式中:x1為待測樣本,x2為正樣本;m為特征向量的維度,算法外推能力隨著參數σ的增大而變弱.為了直觀的觀察核函數改進后的優越性,選取二維的特征向量進行實驗模擬上述情況,按照正態分布隨機生成30個正樣本點和30個負樣本點,第一維度按照正態分布的隨機性是第二維度的數倍,決策邊界劃分結果如圖3所示.


圖3 常用核函數分類效果Fig.3 Common kernel function classification effect
從圖3 能夠看出,在只有正樣本作為訓練集的情況下,線性核函數(例如Linear、Poly、Sigmoid 等核函數)無法適應一分類的情況.而基于歐氏距離的高斯核函數分類效果也不太理想,許多負樣本被誤判為正樣本.按照上述思想對高斯核函數進行修改,實驗結果如圖4所示.

圖4 改進高斯核函數分類效果Fig.4 Improved Gaussian kernel function classification effect
高斯核函數改進,能夠有效的應對此類情況;一類支持向量機的核函數能夠將數據映射到高維特征空間,通過假定坐標原點為唯一的一個異常樣本,在聚集性的特征空間中劃出一個參數為ω,ρ的最優的超平面并將目標數據和坐標原點最大分離:
式中:?i為松弛變量,調整參數υ允許在分界面和坐標原點之間存在少部分的樣本.與二分類的SVM 不同但又相似,能夠在訓練數據集只有正樣本的時候通過計算距離和決策邊界的范圍判斷其正負.當待測設備中未匹配到模板中的任何信號,推斷該芯片存在問題.
偽芯片檢測框架的算法流程描述如下:
1:建立模板庫
輸入:正品芯片執行各指令的旁路信號X(離散信號);
輸出:特征向量模板庫L,自動編碼器神經網絡模型model;
①model←model training(X)
②while The template has not been established do
③feature1←model(Xi)
④feature2←artificial features(Xi)
⑤L[i]←(feature1,feature2)
⑥i←i+1
⑦end
⑧returnL,model
2:待測芯片檢測
輸入:特征向量模板庫L,自動編碼器神經網絡模型model,待測芯片工作狀態下旁路信號X′(離散信號);
輸出:芯片檢測結果
①frame signal←window-framing(X′)
②forj←0 to Number of frames do
③Feature vector1←model(frame signal)
④Featurevector2←artificialfeatures(framesignal)
⑤Featurevector←(Featurevector1,Featurevector)
⑥Result[j]←OCSVM(L,Feature vector)
⑦end
⑧return Result
本實驗選用8051 系列中STC89C52RC 40IPDIP40 作為正品芯片,并選取了具有非常相似功能特性的AT89S52、STC89C51RC 40I(工業級)、STC89C52RC 40C(商業級)芯片模擬偽芯片的存在,因為其指令集架構、工作電壓和封裝類型都是相同的.將40 枚正品芯片的指令信號進行訓練,另外10枚正品芯片與假定偽芯片(每種各10 枚)混合在一起模擬芯片工作狀態下的檢測.其中AT 芯片模擬“以假充真”的情形,該芯片不論是在整體布線上還是其它參數上都與正品芯片有著較大的差異;STC芯片模擬“以次充好”的情形.其中STC89C52RC 40C在材料和工藝上相比于工業級芯片存在一定的差異,但正常環境使用時與工業級芯片幾乎沒有區別;STC89C51RC 40I 芯片與正品芯片之間的差異僅僅體現在存儲器上,其電磁輻射與正品芯片之間的差異極小.
實驗環境搭建如圖5 所示,將待測設備固定在微米級微動平臺(KOHZU)上,采用單路穩壓穩流電源(DH1719A-3)供電.電磁探針(LANGER RF-B 3-2)將采集到的電磁信號傳送給示波器(Tektronix DPO-4104),并通過數據線傳送到計算機存儲,信號采集過程通過計算機上的LabVIEW 軟件控制.

圖5 實驗環境Fig.5 Lab environment
1)驗證實驗
為證實匯編指令和旁路信號的相關性,選取STC89C52RC 40I 芯片進行一項驗證性實驗.通過對芯片在連續執行3 條匯編指令期間的信號進行分析.實驗分兩次按照1、2、3和2、1、3先后順序的情況執行這三條指令.該系列芯片的1 個機器周期等于12 個時鐘周期(振蕩周期),當晶振為12 MHz 的時候,周期即為1μs.圖6所示芯片在執行指令時,其時間按指令周期對應分別為兩個2 周期指令和一個1 周期指令,情況1 和情況2 的三條匯編指令的Pearson 相關系數分別達到了0.998 94、0.999 14 和0.999 52,充分證明了依靠旁路信號與指令相關性對芯片進行檢測識別的可行性.如果執行相同操作時采用不同數據,其差異主要體現在信號部分拐點處,且數量級遠小于指令操作級別的差異.與不同操作數據的差異體現方式不同,指令之間的信號差異體現在信號波峰處,而通過合理的參數調整控制決策邊界或者給予大量的訓練數據集仍然能夠將其正確的識別出來.

圖6 信號-指令相關性實驗Fig.6 Signal-command correlation experiment
2)信號的采集
51 單片機一共有111 條匯編指令,由于篇幅限制,在實驗環境中僅選用MOV A,#DATA 指令作為識別的模板并進行訓練.訓練樣本在3 次不同的時間和環境下通過電壓觸發信號采集.電壓觸發信號下降沿至上升沿期間,正樣本執行MOV 指令.信號采集窗口如圖7所示.

圖7 旁路信號采集Fig.7 Side-channel signal acquisition windows
3)建立識別信號的模板
將正樣本執行MOV A,#DATA 指令時采集到的400 條離散信號分批量送入自動編碼器中訓練.隨著訓練迭代次數的增加,損失函數逐漸收斂,同時重構信號與原始輸入信號的相關系數在接近1 處趨于平穩,此時自動編碼器訓練完成,見圖8.

圖8 自動編碼器訓練與信號重構Fig.8 Auto encoder training and signal reconstruction
取編碼層的輸出數據作為自動編碼器學習到的特征,融合人工提取的特征為最終提取到的特征向量,把400 條正樣本的特征向量作為一類支持向量機的正樣本訓練.
4)待測芯片檢測
待測芯片的信號采樣頻率應當與訓練樣本保持一致,若采樣頻率不同,可以利用實現相同的采樣頻率.將采集到的信號加窗分幀,本文采用矩形窗,窗口大小取1μs,窗口移動的步長為1 個采樣點(1 ns),如圖9 所示,將信號分為數幀的窗口信號.步長越大能夠減少檢測時間,步長越小能夠提高檢測的準確度.

圖9 待測信號加窗分幀Fig.9 The signal to be measured is windowed and framed
加窗信號按照上述方案進一步提取特征:通過自動編碼器的編碼層得到的10 維特征再加上人工提取的兩個特征值組成12 維的特征向量.把每一幀的特征向量放入支持向量機與正樣本信號進行掃描式的匹配,匹配到正樣本模板信號輸出1,未匹配到則輸出-1.根據匹配到模板指令的頻率來判定芯片真偽.圖10為兩種識別結果示例.

圖10 真、偽芯片識別結果Fig.10 Authentic and counterfeit chip recognition results
核函數中參數σ和υ對支持向量機的決策邊界影響較大.σ越小,支持向量越少,σ越大,支持向量越多.υ決定了訓練誤差分數的上界和支持向量分數的下界.考慮到高精準的把負樣本識別出來,而又不把正樣本排除在決策邊界外,經過多次對不同的參數進行試驗,σ和υ分別取0.1 和0.42,實驗結果數據如表1所示.

表1 分類結果Tab.1 Classification result
從實驗結果看出:對于整體布線差異的芯片(STC89C52RC 40C 和AT89S52),信號區分度較高,其中不同廠家間的芯片(AT89S52)識別率能達到100%,對于局部差異的芯片(STC89C51RC 40I),由于其信號差異非常的小,識別正確率與其它芯片相比較低.
該芯片檢測框架可擴展性強,能根據特定應用場景結合不同特征提取和分類算法.例如在信號差異很小的同廠家生產芯片情況中,不同類型芯片的信號差異會被不同指令產生的信號差異所掩蓋.此類情況下,可以根據實際需要提取出表征性強的特征來實現較高準確率.這一點在多數同類文獻中都未體現出來,他們所采用的實驗對象大多信號差異非常明顯(由不同廠家生產).其次,該檢測方法能夠將芯片工作時輻射的旁路信號“語義分割”為指令信號,完成搜索匹配式的識別判斷,無需事先為每一塊待測芯片準備測試環境,只需要為該款芯片建立指令信號模板,就能實現芯片的無損在線檢測,適用性強.
實驗證明,本文提出的偽芯片檢測框架能夠有效檢測以假充真、以次充好等情況的芯片,并且能夠擴展適用于所有與正品芯片在工藝技術、布局布線等方面存在差異的偽芯片類型.本文采用卷積自動編碼器能夠自動高效的提取出電磁信號中的隱含特征,融合人工提取出的特征向量在一類支持向量機的判別下能夠實現對偽芯片的在線檢測.在指令模板建立好的情況下,通常數分鐘就能完成一塊待測芯片的檢測.該偽芯片檢測方法成本低、易于實施且可擴展性和適用性強,為偽芯片的檢測提供了一個新穎的思路.未來工作中,應探尋電磁探針最佳的信號采集點,并提出更具代表性的人工特征提取方法以應對類似硬件木馬等細微差異的偽芯片.