劉俊延 ,賈永杰 ,李雄偉*,張 陽
(1.陸軍工程大學(xué)石家莊校區(qū) 裝備模擬訓(xùn)練中心,河北 石家莊 050003;2.中國人民解放軍93498部隊,河北 石家莊 050003)
隨著微電子技術(shù)的快速發(fā)展,集成電路芯片被廣泛應(yīng)用于金融、通信、交通、軍事等關(guān)鍵領(lǐng)域并在電子設(shè)備與系統(tǒng)中起到核心的作用。但由于芯片供應(yīng)鏈的全球化發(fā)展以及利益的驅(qū)使,全世界各地都充斥著假冒偽劣芯片的蹤影[1]。其存在形式可以被簡單地劃分為:以次充好、以舊充新、以假充真3種情況[2],這些芯片或多或少在硬件層面上與正品芯片存在著一定的差異。一旦這些假冒偽劣芯片在使用時出現(xiàn)安全問題或故障,極有可能帶來巨大的經(jīng)濟(jì)損失甚至更嚴(yán)重的后果。因此,如何對芯片進(jìn)行有效檢測,以確保其安全性與可靠性具有重大的研究意義。
然而,假冒偽劣芯片與正品芯片的差異通常難以被察覺,在沒有“金片”[3]的情況下,很難通過常規(guī)手段識別出二者之間的差異。目前,有很多不同的測試方法可以檢測芯片中的各種異常情況。檢測方法根據(jù)問題的性質(zhì)而有所不同。傳統(tǒng)的芯片檢測方法主要可以分為兩大類:物理檢測方法和電氣檢測方法[4]。物理檢測方法中,電子掃描、X射線和紅外光譜分析是目前最準(zhǔn)確、最可信的檢測方法,但是檢測設(shè)備昂貴,測試時間長;封裝分析等開封芯片的檢測方法會對芯片造成不可逆的損壞。這些方法不能對大批量的芯片進(jìn)行逐一檢查,多用于抽樣檢測。電氣檢測包括參數(shù)測試、燒機(jī)測試、功能測試等方法,盡管電氣檢測方法具有非破壞性和時效性等優(yōu)點,但這些檢測工作都依賴于人的規(guī)范操作,并且對于復(fù)雜的集成電路芯片,在原始廠商測試手冊和設(shè)備缺失的情況下,該檢測方法無法實施。因此,近年來有許多學(xué)者提出從旁路信號[5]分析的角度來達(dá)到檢測芯片的目的。旁路信號包括功率、電磁、紅外等側(cè)信道。其中,電磁旁路信號在硬件檢測和密鑰攻擊等領(lǐng)域備受青睞[6-7]。電磁旁路是與芯片瞬態(tài)活動有關(guān)的非接觸式側(cè)信道,它受到技術(shù)、布局和布線、代碼、內(nèi)部濾波、封裝、溫度和老化等眾多電路參數(shù)影響,對它們進(jìn)行任何修改都將會導(dǎo)致電磁信號的變化[8]。
目前,基于電磁旁路信號的芯片檢測方法面臨兩大棘手的問題。一方面,假冒芯片的信號差異可能小到被工藝誤差或環(huán)境噪聲所掩蓋;另一方面,目前絕大多數(shù)的檢測方法是在已經(jīng)獲取“金片”的前提下進(jìn)行的?;谝陨戏治觯疚奶岢隽嘶谌斯ど窠?jīng)網(wǎng)絡(luò)的芯片聚類模型。首先利用人工神經(jīng)網(wǎng)絡(luò),對信息量龐大的原始信號進(jìn)行有效的除噪、特征提取和降維等操作,人工神經(jīng)網(wǎng)絡(luò)利用計算機(jī)的高速運算能力,能夠?qū)崿F(xiàn)高效的自主學(xué)習(xí)、特征提取和模式識別等功能。然后借助自組織映射神經(jīng)網(wǎng)絡(luò)把芯片聚類成簇。當(dāng)芯片被分成不同的組后,就能夠采用其他替代技術(shù)[9](例如電子掃描、逆向工程等可信度高的檢測手段)對每組中單個或多個樣本進(jìn)行仔細(xì)檢查,以達(dá)到確認(rèn)芯片真實性的最終目的。
本文提出的芯片聚類模型能夠用于無“金片”情況下的芯片檢測,其核心思想是利用卷積自動編碼對離散的旁路信號進(jìn)行特征提取,再通過全連接層的自動編碼器進(jìn)一步對特征降維,最后把特征向量輸入自組織映射神經(jīng)網(wǎng)絡(luò)進(jìn)行聚類,芯片聚類示意如圖1所示。
圖1 芯片聚類示意
原始的電磁信號采樣點多、數(shù)據(jù)量大,包含了大量的無用和冗余信息,直接對原始信號進(jìn)行分析會降低結(jié)果的準(zhǔn)確性,且效率極低。因此需要從原始信號提取出更具有代表性的特征向量集合。自動編碼器作為一種無監(jiān)督的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通常被應(yīng)用于特征提取、數(shù)據(jù)降維和去噪等場景[10]。最簡單的自動編碼器可以由一個輸入層、一個隱層和一個輸出層構(gòu)成,通過輸入層到輸出層的數(shù)據(jù)重構(gòu)實現(xiàn)自動學(xué)習(xí)隱含特征的目的,其中隱層作為輸入數(shù)據(jù)提取出的特征。這種神經(jīng)網(wǎng)絡(luò)前半部分為編碼器,后半部分為解碼器。式(1)描述了自動編碼器的訓(xùn)練過程:
(1)
式中,h和g分別為編碼器與解碼器的映射函數(shù);θ為其內(nèi)部的訓(xùn)練參數(shù)。自動編碼器與主成分分析(Principal Components Analysis ,PCA)方法相似,二者都是無監(jiān)督學(xué)習(xí)中的代表性方法,但是比PCA性能更強且更為靈活,PCA無法表征非線性的變化,利用神經(jīng)網(wǎng)絡(luò)中非線性激活函數(shù),自動編碼器能夠?qū)Ω鼮閺?fù)雜的數(shù)據(jù)執(zhí)行非線性變換,從而學(xué)習(xí)到比PCA等技術(shù)更有意義的數(shù)據(jù)投影[11]。
由于電磁信號屬于時間序列信號,本文使用卷積層、上采樣層和池化層代替?zhèn)鹘y(tǒng)的全連接層,以避免損失信號中的序列信息并且能夠解決信號不對齊的問題。本文搭建的卷積自動編碼器網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 卷積自動編碼器結(jié)構(gòu)
由于電磁信號的幅值范圍在[-1,1]區(qū)間內(nèi),為保證輸出信號能實現(xiàn)對輸入信號的完美重構(gòu),最后一層卷積層的激活函數(shù)采用tanh函數(shù):
(2)
其余的激活函數(shù)則采用relu函數(shù),以防止過擬合并減少梯度消失:
(3)
本文的提取特征被分為2個階段:第一階段如圖2所示,編碼過程使用卷積層和池化層提取原始信號中的特征,解碼階段使用上采樣層和卷積層實現(xiàn)編碼層的信號重構(gòu);第二階段為全連接層的自動編碼器,通過把第一階段編碼層提取的特征展平作為第二階段的輸入,實現(xiàn)進(jìn)一步的特征提取和降維。中間隱層的數(shù)據(jù)作為整個卷積自動編碼器提取的最終特征:
(4)
通過自動編碼器的無監(jiān)督學(xué)習(xí),數(shù)據(jù)量龐大的原始信號最后在編碼層輸出為10維的特征向量,由于卷積核的參數(shù)共享性,大量節(jié)省了特征提取所消耗的時間。由于本文的自動編碼器僅用于特征提取,在自動編碼器訓(xùn)練完成后,只保留其編碼器部分的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),將編碼器的輸出層與后續(xù)用于聚類的自組織映射神經(jīng)網(wǎng)絡(luò)輸入層拼接起來,形成一個自動化的芯片聚類網(wǎng)絡(luò)模型。
提取到原始信號經(jīng)過壓縮的特征向量后,需要對其進(jìn)行聚類識別。自組織映射神經(jīng)網(wǎng)絡(luò)作為一種無監(jiān)督競爭型神經(jīng)網(wǎng)絡(luò),其作用是將樣本集根據(jù)相似度進(jìn)行聚類,這些類稱之為簇。該類神經(jīng)網(wǎng)絡(luò)通常只有2層,一層是輸入層,一層是競爭層,2層之間神經(jīng)元雙向連接,競爭層之間橫向連接,方便獲勝神經(jīng)元對其臨近神經(jīng)元節(jié)點的內(nèi)星權(quán)向量進(jìn)行調(diào)整。本文搭建的自組織映射神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 自組織映射神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
輸入層神經(jīng)元數(shù)為特征向量個數(shù),接收來自編碼器的輸出數(shù)據(jù)。競爭層采用50×50的平面型拓?fù)浣Y(jié)構(gòu),該平面拓?fù)浣Y(jié)構(gòu)能夠從芯片聚類結(jié)果反映出一定的實際物理意義,競爭層神經(jīng)元越密集,對數(shù)據(jù)越敏感,但是訓(xùn)練參數(shù)也會越多,時間會更長。
每個競爭神經(jīng)元節(jié)點與輸入層之間的權(quán)值為該節(jié)點的內(nèi)星權(quán)向量如圖4所示。
圖4 內(nèi)星權(quán)向量
向輸入層輸入經(jīng)過歸一化的特征向量,通過與競爭層所有神經(jīng)元節(jié)點經(jīng)過歸一化后的內(nèi)星權(quán)向量做內(nèi)積,尋找到獲勝的競爭節(jié)點:
Y=XW,
(5)
式中,X為輸入的10維特征向量;Y為競爭層輸出值,取值范圍[0,1],可以理解為2個向量之間的夾角余弦值,該值越大說明余弦相似度越高;W為輸入層到競爭層之間的權(quán)重矩陣(10×(50×50));之所以要進(jìn)行歸一化處理是為了方便計算特征向量與內(nèi)星權(quán)向量相乘正好為二者的夾角余弦值:
(6)
在50個競爭神經(jīng)元Y=[Y1,Y2,...,Y50]中,最大值對應(yīng)優(yōu)勝神經(jīng)元。通過調(diào)整優(yōu)勝鄰域內(nèi)競爭神經(jīng)元的內(nèi)星權(quán)向量,能夠防止某些始終無法獲勝的競爭神經(jīng)元變?yōu)椤八郎窠?jīng)元”:
Wn+1=Wn+η×(X-Wn),
(7)
式中,W為競爭神經(jīng)元的內(nèi)星權(quán)向量;η為學(xué)習(xí)步長,一般而言,學(xué)習(xí)步長要隨著迭代次數(shù)上升而逐漸變小,這樣能夠在一開始迅速捕捉到輸入特征的大致結(jié)構(gòu),隨后精細(xì)化地調(diào)整權(quán)重達(dá)到學(xué)習(xí)輸入特征的目的。本文的學(xué)習(xí)率由迭代次數(shù)和優(yōu)勝鄰域共同決定:
(8)
式中,n為迭代次數(shù);nm為預(yù)設(shè)最大迭代次數(shù);a為拓?fù)浣Y(jié)構(gòu)的邊長。
優(yōu)勝鄰域隨著迭代次數(shù)上升,鄰域范圍逐漸收縮,使得競爭層中的相鄰神經(jīng)元存在一定的相似性而又不同:
(9)
自組織映射神經(jīng)網(wǎng)絡(luò)聚類算法的步驟描述如下:
① 初始化競爭神經(jīng)元內(nèi)星權(quán)向量;
② 對輸入的特征向量和神經(jīng)網(wǎng)絡(luò)權(quán)向量進(jìn)行歸一化處理;
③ 從打亂的訓(xùn)練集中隨機(jī)抽取訓(xùn)練樣本輸入神經(jīng)網(wǎng)絡(luò);
④ 通過競爭層輸出值得出獲勝的競爭節(jié)點,并求得獲勝節(jié)點的領(lǐng)域和用于更新內(nèi)星權(quán)向量的學(xué)習(xí)率;
⑤ 對優(yōu)勝節(jié)點鄰域內(nèi)競爭節(jié)點的內(nèi)星權(quán)向量進(jìn)行調(diào)整,使之更加接近于特征向量;
⑥ 判斷結(jié)束條件,未達(dá)到結(jié)束條件則重復(fù)步驟②~⑤;
實驗選取3種不同型號但功能特性極其相似的8051系列單片機(jī)芯片(STC89C52RC 40I、STC89C52RC 40C和AT89S52)各10塊。其中,STC89C52RC 40I和STC89C52RC 40C分別是宏晶公司生產(chǎn)的工業(yè)級和商品級芯片;AT89S52是Atmel公司生產(chǎn)的一款低功耗、高性能CMOS 8位微控制器,同上述2款芯片相同,都是8051核;為了保證充足的訓(xùn)練樣本,每塊芯片采集10條信號。
實驗環(huán)境搭建如圖5所示,采用DH1719A-3穩(wěn)壓電源供電,CRUX-A微動控制器對采集平臺進(jìn)行控制,將LANGER RF-B 3-2型電磁探針采集到的電磁信號和EMV-Technik電壓探頭采集到的觸發(fā)信號傳入Tektronix數(shù)字示波器,并在計算機(jī)上對存儲的信號進(jìn)行分析和后續(xù)操作。
圖5 實驗環(huán)境
2.2.1 旁路信號采集
在芯片內(nèi)部寫入特定代碼,控制示波器分別采集3種芯片在電壓觸發(fā)信號下降沿至上升沿期間執(zhí)行MOV A,#DATA指令向外輻射的電磁信號,并將模擬信號轉(zhuǎn)換為離散的數(shù)字信號保存。3種不同型號的芯片信號采集情況如圖6所示。
(a) AT89S52信號采集
2.2.2 特征提取
將這3種芯片的原始信號轉(zhuǎn)換為10 000個采樣點的離散信號并作為卷積自動編碼器的輸入,隱層輸出的10個數(shù)據(jù)作為自動編碼器學(xué)習(xí)到的隱含特征。卷積自動編碼器訓(xùn)練過程如圖7所示。
圖7 卷積自動編碼器訓(xùn)練過程
當(dāng)損失函數(shù)收斂時,自動編碼器訓(xùn)練完成。輸出層重構(gòu)信號與輸入信號的皮爾遜相關(guān)系數(shù)越逼近1,說明重構(gòu)信號還原度越高,特征提取效果越好。3種芯片的信號重構(gòu)效果如圖8所示。
(a) AT89S52信號重構(gòu)
卷積自動編碼器(CAE)與傳統(tǒng)的自動編碼器(AE)信號重構(gòu)效果對比結(jié)果如表1所示。
表1 信號重構(gòu)對比
2.2.3 聚類
自動編碼器完成訓(xùn)練后,把輸出值作為特征向量輸入自組織映射神經(jīng)網(wǎng)絡(luò)的輸入層,通過自組織映射神經(jīng)網(wǎng)絡(luò)的無監(jiān)督學(xué)習(xí),把相似度高的特征向量聚類成不同的簇。實驗對3種不同密集程度的競爭層進(jìn)行研究,聚類結(jié)果如圖9所示。
(a) 5×5拓?fù)浣Y(jié)構(gòu)
聚類結(jié)果顯示,競爭層的拓?fù)浣Y(jié)構(gòu)對聚類效果影響較大。當(dāng)競爭層神經(jīng)元節(jié)點較少時,不易區(qū)分出相近的特征向量。采用更加密集的競爭層能夠?qū)ο嗨贫雀叩男酒行^(qū)分,但也會使神經(jīng)網(wǎng)絡(luò)參數(shù)更多,計算量更大。
為驗證聚類模型(CAE-SOM)的優(yōu)越性,本文與其他的組合方法進(jìn)行對比實驗,實驗結(jié)果如表2所示。
表2 不同方法聚類結(jié)果
在實驗?zāi)M情況中,假定是不知道每一簇所對應(yīng)類別的,本文用A、B、C分別表示聚類結(jié)果的3簇。分析表中數(shù)據(jù)可以看出,在沒有進(jìn)行特征提取的方法1中,對原始數(shù)據(jù)直接采用K-Means方法進(jìn)行聚類,結(jié)果不能對同廠芯片進(jìn)行有效區(qū)分,并且還把AT型的芯片錯分成2簇。在方法2中加上PCA的特征提取和降維之后,結(jié)果仍然沒有太大變化。當(dāng)在方法3中引進(jìn)自組織映射網(wǎng)絡(luò)之后,聚類效果有所改善,但由于特征提取效果不佳,同廠芯片之間的差異無法有效區(qū)分。最后方法4采用本文的(CAE+SOM)模型進(jìn)行聚類,其效果遠(yuǎn)優(yōu)于其他方法。
針對無“金片”情況下的芯片檢測問題,本文提出了基于電磁旁路信號的芯片聚類模型(CAE-SOM),利用自動編碼器自動學(xué)習(xí)信號數(shù)據(jù)中的隱含特征,自動編碼器訓(xùn)練完成后,只留下編碼器結(jié)構(gòu),把編碼器的輸出結(jié)果輸入自組織映射神經(jīng)網(wǎng)絡(luò)聚類成簇。一體化的聚類神經(jīng)網(wǎng)絡(luò)模型簡化了人工操作等繁瑣的步驟,經(jīng)過實驗驗證,該聚類模型能夠在無監(jiān)督的條件下以更高的精度對芯片完成聚類,其準(zhǔn)確率遠(yuǎn)高于其他方法。為進(jìn)一步提升模型的準(zhǔn)確率,應(yīng)當(dāng)提取出更具有表征性的特征,并考慮采用特征融合等手段實現(xiàn)。