陳開顏,余 浩,鄒 程,吳恒旭
1.軍械工程學院 計算機工程系,石家莊 050003
2.中國人民解放軍78086部隊
針對FPGA密碼芯片的近場差分電磁分析攻擊
陳開顏1,余 浩1,鄒 程1,吳恒旭2
1.軍械工程學院 計算機工程系,石家莊 050003
2.中國人民解放軍78086部隊
由于嵌入式密碼芯片設備的開放性(芯片外部各種信號易于測量),近年來針對密碼芯片出現(xiàn)了稱為旁路攻擊(又稱為旁路密碼分析、側信道攻擊等,Side Channel Attacks,SCAs)的新型密碼分析技術[1],利用密碼芯片工作時的功耗、電磁輻射、運行時間等信號(稱為旁路信號)中蘊含的與芯片內(nèi)部運算相關的信息,采用分而治之的思想將密鑰分成若干塊進行分析,在獲取各個子密鑰之后拼接得到完整的密鑰,表現(xiàn)出了強大的攻擊能力,開辟了密碼學和密碼分析學的新領域。在旁路攻擊領域之中,目前研究最為廣泛,成果最為突出的當屬功耗分析攻擊,它是利用密碼設備在進行密碼運算時產(chǎn)生的功耗信息,來推導出運算中的秘密參量。然而,在針對現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)密碼芯片進行功耗攻擊時,由于實際電路中設置的一些解耦電容或者作為本地能量存儲的濾波電容以及電路中的其他電子元器件對電路板中電流變化的額外作用,往往使得測量核心部件的功率消耗很困難,即使獲取到功耗信號,由于信號中包含的是整個FPGA電路中所有元器件的功耗泄漏,因此需將密碼運算核心部件產(chǎn)生的功耗與其他大量輔助部件產(chǎn)生的功耗進行邏輯上的剝離,這也是非常困難的。此外,如果密碼設備采用內(nèi)置電源方式甚至使得功耗分析攻擊變得不可行。
電磁分析攻擊又稱電磁輻射攻擊(Electromagnetic Emanation Attacks),是通過測量密碼芯片在運算期間發(fā)射的電磁信號,依據(jù)電磁場與內(nèi)部處理數(shù)據(jù)之間的相關性而獲取內(nèi)部秘密參量。電磁分析攻擊分為簡單電磁分析(Simple ElectroMagnetic Analysis,SEMA)攻擊和差分電磁分析(Differential ElectroMagnetic Analysis,DEMA)攻擊。在進行電磁分析攻擊時,可以用探頭探測核心部件的表面電磁輻射,直接定位于運算部件之上,最大限度地獲取有用的旁路電磁信號,完成非入侵式攻擊[2]。
本文在SPANTAN3系列的FPGA上,自行設計完成了AES密碼電路,實現(xiàn)了針對FPGA密碼系統(tǒng)的近場電磁輻射分析攻擊,證明了由于整個芯片電路集成度高,導致敵手對芯片功耗難以測量,或者設計者實施的一些抗功耗分析攻擊對策的影響,使得功耗分析攻擊變得很困難時,敵手仍然可以通過精確定位、捕獲與數(shù)據(jù)運算操作密切相關的電路元器件上所泄漏的電磁信息,從而最終破解密碼系統(tǒng)的密鑰。
當前,超大規(guī)模集成電路(VLSI)芯片中應用最多的是CMOS技術,它被廣泛運用在微處理器、微控制器以及其他數(shù)字邏輯電路之中。對CMOS電路,電磁輻射源自于控制、I/O、數(shù)據(jù)處理或器件其他部分的電流,按照類型通常將其分為直接輻射與間接輻射[3]。對直接輻射,電磁場的特性取決于輻射源、源周圍的介質(zhì)和源到觀測點的距離,根據(jù)距輻射源的遠近,其相應的輻射區(qū)域分別稱做近場(小于λ/2π的區(qū)域,λ表示波長)和遠場(大于λ/2π的區(qū)域)。本文主要研究FPGA密碼芯片的近場直接電磁輻射。
2.1 CMOS電路直接電磁輻射
根據(jù)電磁場理論[4]:導體上存在隨時間變化的電荷和電流時,它的周圍就有隨時間變化的電場和磁場。電場和磁場是一個不可分割的整體,它們相互聯(lián)系、相互激發(fā)組成一個統(tǒng)一的電磁場。電磁場間的相互作用,在一定的條件下離開導體向遠處運動,形成向自由空間傳播的電磁波,被稱為電磁輻射。可以利用畢奧-薩伐爾定律描述磁場變化:
其中I是在無限長導體上的電流,μ為磁導率,r為電流與磁場間距離的向量。此外,法拉第定律表明環(huán)行探頭所處環(huán)境的任何變化會在環(huán)中產(chǎn)生感應電動勢:
其中N為線圈匝數(shù),Φ為磁通量。如果假定總線可以看成是一條無限長的導線,用畢奧-薩伐爾方程表示如下:
其中r是與線之間的距離,α?φ為與導線相關的單元向量。式(3)清楚地表示了探頭離目標電路越近,測量到的磁場越強。
CMOS數(shù)字電路的基本組成單元是反相器,按圖1所示,反相器可以看做是一個推拉開關:輸入接地時切斷下面的晶體管,產(chǎn)生高電平輸出。高電平輸入時剛好相反,將輸出接地拉到低電平。當一個比特位從0翻轉到1,或者從1翻轉到0同樣成立,反相器的NMOS管和PMOS管會導通一小段時間,這就導致一個從VDD到VSS的短暫的電流脈沖,而這個在CMOS門的輸出變化時產(chǎn)生的電流會在芯片周圍產(chǎn)生一個變化的電磁場,這個變化的電磁場可以用感應探頭檢測到。
圖1 反相器原理圖
根據(jù)楞次定律,變化的磁場將在閉合導體中產(chǎn)生電流,探頭中的感應電動勢取決于磁通量的變化率,其表示如下:
其中v表示探頭的輸出電壓,ΦB表示探頭感應的磁通量,t表示時間,B表示磁場,而A表示磁力線穿透的區(qū)域面積?;诎才喽ɡ淼柠溈怂鬼f方程將磁場的產(chǎn)生表示如下:
其中J表示電流密度,E表示電場,ε表示電導率而μ表示磁導率。式(4)和式(5)說明探頭的輸出電壓V與電流密度J和電場E成正比,也就是和翻轉的晶體管數(shù)量成正比,即在一定時間內(nèi)通過物理旁路泄漏的數(shù)據(jù)取決于該時間內(nèi)從一個狀態(tài)到另一個狀態(tài)的翻轉數(shù)[5]。
2.2 FPGA近場電磁輻射模型
現(xiàn)實中,由于集成電路芯片結構的差異,無法構建統(tǒng)一的電磁輻射模型。文中以SPANTAN3系列的FPGA為例,對其進行近場電磁輻射的建模。
SPANTAN3系列的FPGA的物理結構一般被分成八個區(qū)(banks),每個區(qū)內(nèi)都有內(nèi)核電源(VCCINT)引腳和地(GND)引腳。如圖2(a)所示,分析FPGA的內(nèi)部電流特性時,可以認為在FPGA工作時,電流是從一個區(qū)的電源引腳(VCCINT)開始流動,通過區(qū)內(nèi)電路,到該區(qū)的地(GND)引腳結束。近似的,可以認為FPGA中的電流從電源到地形成了許多的小的環(huán)形循環(huán)。如圖2(b)所示,因此可以將這些環(huán)形電流建模為基本的磁偶極子。如果假設環(huán)的媒介對電磁是沒有損耗的,并且認為電流環(huán)位于x-y平面,則環(huán)形磁偶極子的電磁場由式(6)進行定義。
圖2 FPGA分區(qū)和內(nèi)部電流流動示意圖
其中,Zc是媒介的特性阻抗。在空氣中它等于120π,kg表示波數(shù),A表示環(huán)的面積,I是通過環(huán)的電流,r是從環(huán)中心到電磁點的距離。當測量近場電磁輻射時,它可以表示為式(7):
從式(7)可以得出FPGA近場輻射特性兩個重要的結論:(1)場強依賴于數(shù)據(jù)的變化(即依賴于電流強度)。(2)場的方向直接依賴于電流的方向。
為測得磁場信號,應該使用磁場感應探頭測量FPGA的近場輻射,接收FPGA近場輻射電磁波。探頭的輸出電壓能夠被示波器進行采集,并進行數(shù)字化存儲。另外,根據(jù)式(4)、式(7)可知,如果FPGA被建模為一系列磁偶極子的集合,每個磁偶極子輻射不同的電磁信號,那么磁偶極子的位置,方向及采集探頭的位置對電磁域的測量都是有影響的。這將直接影響電磁分析攻擊的效果及所需樣本量的大小。因此,應該在電磁分析攻擊中充分考慮采集探頭在FPGA表面所處的采集位置。
以AES為例,首先作如下定義:
(1)N個隨機的明文輸入ti(1≤i≤N);
(2)K表示真實子密鑰,ks(1≤s≤Μ)表示敵手第s種猜測子密鑰,共包含Μ種猜測情況;
(3)p(ti)(1≤i≤N)為第i個明文加密所對應的電磁輻射曲線。
圖3所示為差分電磁分析攻擊原理示意圖,共分為3個模塊。
模塊1分析中,敵手選擇S盒輸出(Sbοx)i中與電磁輻射信息密切相關的中間值di,即對應的猜測子密鑰所計算的一位或多位假設中間值,示為:
圖3 差分電磁分析攻擊原理示意圖
模塊2旁路信號與芯片內(nèi)部運算數(shù)據(jù)之間的相關性模型是聯(lián)系數(shù)據(jù)和芯片電磁輻射信號的紐帶,對敵手而言,需對選取的所有中間值結果進行數(shù)據(jù)相關性泄漏模型的構建。最后,根據(jù)模型計算假設中間值,把對應的電磁輻射曲線進行不同的劃分。文中采用的旁路信號數(shù)據(jù)相關性模型為漢明重量模型[6]。
模塊3敵手依據(jù)均值差統(tǒng)計分析結果判斷所猜測的子密鑰正確與否,若猜測子密鑰正確,則所選假設中間值在其處理數(shù)據(jù)的區(qū)域會對芯片的電磁輻射表現(xiàn)出明顯的影響效果,即明顯尖峰的出現(xiàn)。通常,差分曲線幅值最大的就是影響效果最突出的,其對應的猜測子密鑰也就應該是最可能的正確子密鑰。用Dp表示基于假設中間值的電磁輻射影響效果曲線,即差分曲線,f[]表示一確定函數(shù),用于計算差分曲線的幅值,可形式化表達為:
AES是當前國際上最流行的商用對稱加密算法,其前身是Rijindael算法[7]。AES算法是一個使用可變分組和密鑰長度基于有限域運算的迭代分組密碼。本文針對128 bit AES密碼算法結構,完成了AES的FPGA電路設計,對算法一輪的四個操作:S盒(SubBytes)、ShiftRows、MixColumn、AddRoundKey分別進行了實現(xiàn)。
AES密碼算法的整體十輪迭代過程電路設計采用流水線結構,并增加串、并轉換接口模塊作為密碼算法模塊的輸入輸出端。FPGA內(nèi)部設計頂層結構如圖4所示,Receive模塊負責接收計算機串口發(fā)送到開發(fā)板上的數(shù)據(jù)即明文,并對數(shù)據(jù)進行重新組裝;Aes_enc是實現(xiàn)AES算法的主體模塊,完成AES的加密計算;Send模塊負責將加密好的密文“拆裝”成可以用串口發(fā)回計算機的串行數(shù)據(jù),并將數(shù)據(jù)輸出至計算機。
圖4 FPGA頂層設計圖
在設計中,加入了FPGA的DCM時鐘模塊,將AES加密/解密運算時間降至了5 MHz時鐘,降低了FPGA的運算速度,以利于示波器對數(shù)據(jù)的采集,整個設計占用了1 239個Slices,815個寄存器,與此相關設計可參考文獻[8]。
實驗平臺由FPGA密碼系統(tǒng)(采用Xilinx公司的SPANTAN3系列的90 nm技術的SRAM型FPGA:XC3S400芯片作為分析對象)、示波器(Tektronix DPO4032)、穩(wěn)壓電源、電磁信號采集探頭(RF-B3-2磁場探頭)、放大器(PA303,放大倍數(shù)30 dB)及PC機(Pentium IV4 2.8 GHz,160 GB HDD,1 GB DDR RAM,USB及RS232接口)組成。電磁探頭將接收到的FPGA電磁信號傳送給示波器進行采集,并通過USB傳輸?shù)絇C機存儲,示波器的采集過程由PC機上用LabView編寫的虛擬儀器控制平臺實現(xiàn)自動控制,整個控制流程為:
(1)虛擬儀器控制平臺首先初始化示波器,設置采集參數(shù),并通過RS232接口給FPGA提供隨機明文輸入。
(2)當FPGA接收到明文后,密碼電路工作,進行加密計算,并將密文數(shù)據(jù)回送給PC機,同時觸發(fā)示波器記錄探頭的電磁信號輸出,虛擬儀器控制平臺控制示波器實時向PC機傳輸信號數(shù)據(jù),PC機存儲數(shù)據(jù)。然后重復上述過程,實現(xiàn)數(shù)據(jù)采集的完全自動化。
(3)在采集數(shù)據(jù)完成以后,在PC機上用C++或MATLAB編寫的信號處理與分析軟件進行數(shù)據(jù)分析從而獲取密鑰。
將AES密碼電路裝載進FPGA,AES密碼電路進行加密計算,利用近場電磁探頭,通過放大器接入示波器,在示波器上觀測到AES密碼電路運算的電磁信號如圖5所示。
圖5 未進行掃描定位的AES十輪計算電磁信號
通過對密碼電路運算進行的簡單電磁分析,從圖5中明顯可以看到,電磁信號顯示了AES的十輪計算過程,十輪AES加密形成了重復的模式。十輪計算電磁信號的能量幅度大約是40 mV。除此之外,也可以看到除十輪計算的電磁信號以外,還出現(xiàn)了周期性的噪聲信號,并且其能量幅度最高達到100 mV。對周期噪聲信號進行分析,認為該周期噪聲是由于FPGA內(nèi)部本身的主動配置電路所產(chǎn)生的。由于其幅度明顯大于AES十輪計算所產(chǎn)生的電磁信號幅度,并且通過對AES多次加密計算的電磁信號進行觀測,可以發(fā)現(xiàn)該噪聲信號隨機出現(xiàn)在AES十輪加密計算過程中,如果運用統(tǒng)計分析大樣本量平均的方法去消除該噪聲信號,則需要的樣本量將非常大,并且效果并不理想,嚴重影響電磁信號分析的信噪比。
對此,采用逐點電磁掃描方法對FPGA表面電磁采集點進行定位,確定最佳電磁輻射采樣點的位置,即與運算數(shù)據(jù)密切相關的電磁輻射信息泄漏點,同時泄漏點必須滿足既使周期噪聲信號最小,又使十輪計算的電磁信號較明顯這兩個要求。電磁掃描儀的步進距離為1 mm,對FPGA表面每一位置點的電磁信號進行掃描,觀測示波器上的電磁信號曲線,定位最佳測量點。圖6為FPGA平面掃描示意圖,顯示了定位點的精確坐標位置。
圖6 FPGA平面掃描示意圖
在進行掃描定位后,用探頭采集AES十輪計算電磁信號。如圖7所示,可以看出FPGA本身的周期噪聲電磁信號幅度要低于十輪加密計算所產(chǎn)生的電磁信號幅度,不影響實際的電磁分析攻擊。
圖7 進行掃描定位采集的AES十輪計算電磁信號
利用電磁探頭對FPGA中AES密碼電路加密過程中的電磁信號進行采集完成以后,在42 000個樣本的條件下,對所采集的電磁信號進行差分電磁分析。如圖8所示為對AES中S1盒進行差分電磁攻擊后的情況圖,分別列出了正確猜測子密鑰(也即是真實子密鑰)0x36及錯誤猜測子密鑰0x50,0x85,0xFA所對應的差分電磁曲線,可以觀察到在正確猜測子密鑰對應的電磁差分曲線上出現(xiàn)了明顯的尖峰,而錯誤猜測子密鑰對應的差分曲線則趨于平緩。據(jù)此,可成功得出第一個真實子密鑰值。
圖8 正確猜測子密鑰與錯誤猜測子密鑰對應的電磁差分曲線
同理,利用一組電磁輻射曲線可恢復出AES中剩余15個S盒的真實子密鑰,最后各子密鑰拼接,可得到完整的128 bit密鑰。
因此,利用FPGA密碼芯片運行時泄漏的電磁輻射,通過旁路攻擊手段,能夠直接獲取其中的秘密信息,采用文中所提出的對密碼芯片近場電磁輻射精確定位的方法,能克服攻擊中噪聲的影響,提高信號信噪比,進而破解密碼系統(tǒng)的密鑰。
[1]Zhou Yongbin,F(xiàn)eng Dengguo.Side-channel attacks:ten years after its publication and the impacts on cryptographic module security testing[EB/OL].[2011-10-26].http://eprint.iacr.org/ 2005/388.pdf.
[2]Prpic M.Reverse engineering of Java card applets[D].Faculty of Informatics,Masaryk University,Brno,2010.
[3]Agrawal D,Archambeault B,Rao J R,et al.The EM side-channel(s):attacks and assessment methodologies[C]//Proceedings of the 4th International Workshop on Cryptographic Hardware and Embedded Systems(CHES),2003,2523:29-45.
[4]張三慧.電磁學[M].北京:清華大學出版社,1999.
[5]陳志敏.安全芯片旁路功耗分析及抗攻擊措施[D].上海:上海交通大學,2007.
[6]Brier E,Clavier C,Olivier F.Correlation power analysis with a leakage model[C]//Cryptographic Hardware Embedded System-CHES 2004.Boston:Springer-Verlag,2004:16-29.
[7]National Institute of Standards and Technology.FIPS-197 Advanced encryption standard[S].Gaithersburg:National Institute of Standards and Technology,2001.
[8]鄒程,張鵬,鄧高明,等.AES密碼電路抗差分功耗分析設計[J].計算機工程與應用,2009,45(36):63-65.
CHEN Kaiyan1,YU Hao1,ZOU Cheng1,WU Hengxu2
1.Department of Computer Engineering,Ordnance Engineering College,Shijiazhuang 050003,China
2.Unit 78086 of PLA,China
To do research for physical information leaked by Electromagnetic(EM)radiations from Field Programmable Gate Arrays(FPGA)cipher chip during its operation,this paper analyzes the principle of direct electromagnetic emanations for Complementary Metal-Oxide-Semiconductor(CMOS)circuit,and then a near- fi eld leakage model about FPGA is designed.According to this model,the technique,EM scanning,is used to tackle the problem of the localization of the spatial position of the cryptoprocessor,in putting an electricmagnetic near- fi eld sensor above the chip.Moreover,Advanced Encryption Standard(AES)circuit is completed based on FPGA cryptosystem and Differential ElectroMagnetic Analysis(DEMA)is introduced.As a result,practical experiment has shown that an attacker can extract the secret 128-bit key using 42000 traces of AES cryptographic device under the condition of having localized the optimal leaking spots characterized by mostly data-dependent EM emissions.
cipher chip;near-field;Electromagnetic(EM)radiations;Differential ElectroMagnetic Analysis(DEMA);Advanced Encryption Standard(AES);Field Programmable Gate Arrays(FPGA)
為探究現(xiàn)場可編程門陣列(FPGA)密碼芯片運行時電磁輻射造成的涉密信息泄漏情況,研究了互補金屬氧化物半導體(CMOS)電路直接電磁輻射的原理,構建了FPGA密碼芯片的近場電磁輻射模型。根據(jù)這個模型,探討了近場電磁輻射測量點的選取,采用電磁掃描的方法解決了電磁探頭在FPGA表面電磁信號采集的定位問題。此外,在闡釋了差分電磁分析(DEMA)攻擊原理的同時,完成了高級加密標準(AES)的FPGA電路設計,針對FPGA密碼系統(tǒng)的DEMA攻擊實驗表明,通過電磁掃描找到最佳測量點,在42 000個樣本的條件下能成功破解AES密碼電路的128 bit密鑰。
密碼芯片;近場;電磁輻射;差分電磁分析;高級加密標準;現(xiàn)場可編程門陣列
A
TP309
10.3778/j.issn.1002-8331.1112-0492
CHEN Kaiyan,YU Hao,ZOU Cheng,et al.Differential ElectroMagnetic analysis attacks on FPGA cipher chip in near field.Computer Engineering and Applications,2013,49(18):89-93.
國家自然科學基金(No.60940019);河北省自然科學基金(No.F2012506008);軍械工程學院原始創(chuàng)新基金(No.YSCX0903)。
陳開顏(1970—),女,博士,副教授,碩士生導師,主要研究領域為信息安全;余浩(1987—),男,碩士研究生,主要研究領域為信息安全;鄒程(1980—),男,博士,主要研究領域為電磁信息檢測與主動防護技術;吳恒旭(1983—),男,碩士,主要研究領域為信息安全。E-mail:ouyangyh2010@163.com
2011-12-26
2012-03-29
1002-8331(2013)18-0089-05
CNKI出版日期:2012-05-22 http://www.cnki.net/kcms/detail/11.2127.TP.20120522.1108.006.html