羅曉飛, 陳 運(yùn), 陳 俊, 楊 斌
(成都信息工程學(xué)院應(yīng)用密碼學(xué)研究所,四川成都 610225)
目前智能卡(smart card)廣泛應(yīng)用于交通、金融等各行各業(yè),其安全性顯得格外重要。1999年,由Paul Kocher等人提出的差分功耗分析[1](Differential Power Analysis,DPA)方法成功破解智能卡數(shù)據(jù)加密標(biāo)準(zhǔn)[2](Data Encryption Standard,DES)算法密鑰,功耗分析攻擊技術(shù)引起人們廣泛的關(guān)注。隨著功耗分析技術(shù)的發(fā)展,提出了相關(guān)性功耗分析[3](Correlation Power Analysis,CPA)方法。
文獻(xiàn)[4]將差分功耗分析應(yīng)用于MCU 8051芯片,成功獲取到DES算法的密鑰。文獻(xiàn)[5-6]用差分功耗分析破解了FPGA芯片的DES算法。文獻(xiàn)[7]用相關(guān)性功耗分析成功破解DES算法密鑰。文獻(xiàn)[8]用相關(guān)性功耗分析破解Xilinx FPGA芯片的DES密碼算法。文獻(xiàn)[9-13]用相關(guān)性功耗分析破解了AES密碼算法。上述文獻(xiàn)都集中描述DPA和CPA破解密碼芯片的方法,文中以FPGA芯片對(duì)稱密碼DES算法為攻擊對(duì)象,對(duì)兩者的適用環(huán)境及其特點(diǎn)展開分析。
DPA攻擊原理是通過統(tǒng)計(jì)記錄密碼設(shè)備對(duì)大量不同數(shù)據(jù)的加密或者解密時(shí)產(chǎn)生的功耗,并通過分析功耗曲線得出密碼設(shè)備的密鑰。
DPA分析的具體步驟[14]如下:
(1)選擇密碼算法的某個(gè)中間值作為攻擊點(diǎn)。該中間值必須與密鑰相關(guān)(如經(jīng)過S盒輸出的值),通過該中間值得到部分密鑰信息。
(2)記錄功耗曲線。記錄大量的數(shù)據(jù)d加密或者解密運(yùn)算時(shí)的功耗曲線
(3)計(jì)算假設(shè)中間值。根據(jù)每一個(gè)可能的密鑰k值,將(2)中所有數(shù)值 d與假設(shè)的密鑰k進(jìn)行加密或者解密運(yùn)算,得到假設(shè)中間值。
(4)建立功耗分析模型,構(gòu)建區(qū)分函數(shù)。通過建立的功耗分析模型將假設(shè)的中間值與功耗建立關(guān)系,從而通過區(qū)分函數(shù)將(3)中計(jì)算得到的假設(shè)中間值區(qū)分成兩類,并將數(shù)據(jù)集d對(duì)應(yīng)的功耗曲線分組成功耗曲線集合S0和集合 S1。
(5)將分組后的功耗曲線集合S0和集合S1分別平均后得到兩條功耗曲線 T0和 T1。
(6)將平均后的兩條功耗曲線 T0和T1差分得到曲線R。如果密鑰k猜測(cè)正確,那么差分后得到的R曲線在相應(yīng)時(shí)刻差值并不趨近于0,而表現(xiàn)出明顯的尖峰,如果密鑰k猜測(cè)錯(cuò)誤,那么R曲線整個(gè)時(shí)間段的功耗值都趨近于0,沒有尖峰。
CPA攻擊與DPA攻擊的相同點(diǎn)是通過統(tǒng)計(jì)大量數(shù)據(jù)在加密或者解密時(shí)的功耗信息,從而破解出密碼設(shè)備的密鑰信息。
CPA分析的具體步驟[14]如下:
(1)選擇密碼算法的某個(gè)中間值作為攻擊點(diǎn)。該中間值必須與密鑰相關(guān)(如經(jīng)過S盒輸出的值),通過該中間值得到部分密鑰信息。
(2)記錄功耗曲線。記錄m個(gè)數(shù)據(jù)d加密或者解密運(yùn)算時(shí)的功耗曲線。功耗曲線表示成 W={w1,w2,…,wm}-1,其中 wi={t1,t2,…,tn}那么就構(gòu)成m×n的矩陣。
(3)計(jì)算假設(shè)中間值。根據(jù)每一個(gè)可能的密鑰k值,將(2)中所有數(shù)值 d與假設(shè)的密鑰k進(jìn)行加密或者解密運(yùn)算,得到假設(shè)中間值。
(4)建立功耗分析模型,將假設(shè)的中間值映射成功耗值 H={h′1,h′2,…,h′m}-1,構(gòu)成 m×1的矩陣,將 H與W 分別計(jì)算每個(gè)時(shí)刻相關(guān)性值,將得到1×n的矩陣或表示成向量R。如果密鑰猜測(cè)正確,那么矩陣R中,對(duì)應(yīng)的運(yùn)算時(shí)刻相關(guān)性值并不趨近于0,在曲線上表現(xiàn)出明顯的尖峰,如果猜測(cè)錯(cuò)誤,所有的相關(guān)性值都趨近于0,在曲線上表現(xiàn)出沒有尖峰。
數(shù)據(jù)加密標(biāo)準(zhǔn)DES算法是由美國IBM公司于20世紀(jì)70年代中期的一個(gè)密碼算法發(fā)展而來的,是眾所周知的對(duì)稱加密算法,現(xiàn)廣泛用于ATM、智能卡等加密設(shè)備中。該算法是一種采用傳統(tǒng)的置換、替代操作完成加密的分組密碼。明文以64bit分組,密鑰長度64bit,有效密鑰長度56bit,8bit密鑰為校驗(yàn)位。DES算法的加密和解密使用同一個(gè)密鑰運(yùn)算,因此其安全性取決于密鑰[15]。
因?yàn)镈ES算法加密解密使用同一密鑰,DPA和CPA分析可選擇與密鑰相關(guān)的第一輪或者第16輪分析。DES算法中的大多數(shù)操作都是線性變換的,唯一非線性的操作是S盒置換。因此將輸入S盒和輸出S盒的值作為中間值分析。本次實(shí)驗(yàn)選擇分析DES算法第一輪運(yùn)算,圖1為DES算法第一輪的運(yùn)算流程圖。

圖1 DES算法第一輪運(yùn)算的流程原理圖
該實(shí)驗(yàn)平臺(tái)由示波器、PC工作站、電源等設(shè)備組成。平臺(tái)示意圖如圖2所示。
PC工作站向FPGA2發(fā)送控制指令數(shù)據(jù),FPGA2接收數(shù)據(jù)并通過串口轉(zhuǎn)發(fā)到FPGA1執(zhí)行加密運(yùn)算。示波器采集功耗軌跡波形數(shù)據(jù)通過以太網(wǎng)保存到PC工作站。
在實(shí)際環(huán)境中,讀卡器等設(shè)備沒有觸發(fā)信號(hào),不能通過示波器捕捉到運(yùn)算的功耗軌跡曲線,實(shí)驗(yàn)?zāi)M真實(shí)環(huán)境,通過另外一塊FPGA設(shè)置觸發(fā)信號(hào),控制發(fā)送數(shù)據(jù)。

圖2 功耗分析平臺(tái)整體框架示意圖
對(duì)稱密碼DES算法一次完整運(yùn)算伴有16輪迭代運(yùn)算。通過示波器配置為1M采樣點(diǎn),1M采樣頻率的情況下,采集DES算法的完整波形如圖3所示,從圖3可以清晰的看到16個(gè)尖峰,16塊間隔區(qū)域,可以推測(cè)出每次for指令都有一次明顯的尖峰。

圖3 DES一次加密運(yùn)算的功耗軌跡圖
實(shí)驗(yàn)選擇DES算法第一輪運(yùn)算分析,因此采集第一輪運(yùn)算的功耗曲線。示波器配置如表1所示。

表1 示波器設(shè)置
在該配置下,采集的第一輪原始功耗曲線如圖4所示。
差分功耗分析(DPA)和相關(guān)性功耗分析(CPA)的攻擊分析有不同的特點(diǎn)。在原始曲線不做任何處理的情況下。DPA和CPA攻擊破解率同曲線樣本量的關(guān)系呈現(xiàn)結(jié)果如圖5所示。

圖4 DES算法第一輪運(yùn)算原始功耗曲線

圖5 功耗曲線樣本量同密鑰破解成功率的關(guān)系圖
圖5所示,原始功耗曲線在不做任何處理的情況下,直接實(shí)施DPA和CPA攻擊。DPA攻擊在曲線樣本量超過34000條,密鑰破解率大于0,隨著樣本量的增加,破解率逐漸提升,在曲線樣本量達(dá)到86000條以上時(shí),破解密鑰成功率為100%。而CPA攻擊在該條件下,樣本量從0~100000條都沒有破解出密鑰。根據(jù)文獻(xiàn)[1]中的描述,DPA分析結(jié)果如圖6所示。

圖6 DPA分析的結(jié)果
同樣將原始功耗曲線經(jīng)過合適的濾波處理后,再做DPA和CPA攻擊。濾波后的功耗曲線如圖7所示。DPA和CPA攻擊破解率同曲線樣本量關(guān)系呈現(xiàn)如圖8所示。

圖7 原始功耗曲線濾波后的效果圖

圖8 功耗曲線樣本量同密鑰破解成功率的關(guān)系圖
圖8所示,原始曲線濾波后,CPA攻擊在曲線樣本量超過2200條時(shí),破解率大于0,隨著樣本量的增加,破解率逐漸提升,在曲線樣本量達(dá)到5500~12000條時(shí),破解密鑰成功率為100%,然而曲線樣本量超過12000條后,CPA攻擊逐漸減弱,并在23000條以上時(shí)CPA攻擊失效。同時(shí)濾波后DPA攻擊效果更好,整體趨勢(shì)上與原始曲線的條件下保持一致。根據(jù)文獻(xiàn)[3]的描述,CPA分析結(jié)果如圖9所示。

圖9 CPA分析的結(jié)果
通過上述實(shí)驗(yàn),可以分析得出如下結(jié)論:
(1)噪聲對(duì)DPA和CPA攻擊的影響力不同。噪聲對(duì)CPA攻擊的影響較大,在噪聲較大的情況下,CPA攻擊很弱,說明CPA對(duì)噪聲敏感;而噪聲對(duì)DPA的影響較弱,只要有足夠的樣本量,DPA攻擊就能生效,說明DPA對(duì)噪聲不敏感。
(2)DPA攻擊具有通用分析的特點(diǎn),CPA攻擊具有低樣本量攻擊的特點(diǎn)。從圖5和圖8的分析中可以看出,DPA在噪聲很大的情況下和濾波后噪聲較小的情況下,均能完成對(duì)DES算法的成功攻擊,并且走勢(shì)相同,說明DPA具有較強(qiáng)的普適性,通用分析能力很強(qiáng);而圖7顯示出CPA在功耗曲線濾波預(yù)處理后,相比DPA而言,完成攻擊分析的曲線樣本很少,說明CPA具有低樣本量攻擊的特點(diǎn),在一定條件下體現(xiàn)出更強(qiáng)的攻擊性。
總之,DPA和CPA攻擊方法各自的特點(diǎn)不同、適用的環(huán)境也不同。分析者可根據(jù)實(shí)際情況靈活選用或組合應(yīng)用兩種分析方法,提高功耗邊信息泄露的綜合檢測(cè)能力。
致謝:感謝成都市高校院所應(yīng)用成果轉(zhuǎn)化項(xiàng)目(12DXYB340JH-002)對(duì)本文的資助
[1] Paul Kocher,Joshua Jaffe,Benjamin Jun.Differential Power Analysis[C].Lecture Notes In Computer Science;Proceedings of the 19th Annual International Cryptology Conference on Advances in Cryptology,1999,1666:388-397.
[2] NBS,Data Encryption Standard.FIPS PUB46[EB/OL].National Bureau of Standards.WashingtonD,C.,1977.
[3] Eric Brier,Christophe Clavier,Francis Olivier.Correlation Power Analysis with a Leakage Model[C].CHES 2004,LNCS 3156,2004:16-29.
[4] Manfred Aigner,Elisabeth Oswald.Power Analysis Tutorial[D].Institute for Applied Information Processing and Communication University of Technology Graz Inffeldgasse 16a,A-8010 Graz,Austria,1999.
[5] Fran,cois-Xavier Standaert1.Power Analysis Attacks Against FPGA Implementations of the DES[J].J Becker,M Platzner,S Vernalde(Eds.):FPL 2004,LNCS 3203,2004,84-94.
[6] 陳開顏,趙強(qiáng),張鵬,等.DES加密實(shí)現(xiàn)的差分功耗分析仿真[J].軍械工程學(xué)院學(xué)報(bào),2006,18(3).
[7] 嚴(yán)迎建,樊海鋒,徐金甫,等.針對(duì)DES密碼芯片的CPA攻擊仿真[J].電子技術(shù)應(yīng)用,2009(7).
[8] Weibo Pan,William P,Marnane A.Correlation Power Analysis Attack against Tate Pairing on FPGA[J].A Koch(Eds.):ARC 2011,LNCS 6578,2011,340-349.
[9] Huiyun Li,Keke Wu.Enhanced Correlation Power AnalysisAttack on Smart Card[C].IEEE DOI 10.1109/ICYCS.2008.230.
[10] Siddika Berna Ors,Frank Gurkaynak,Elisabeth Oswald,et al.Power-Analysis Attack on an ASIC AES implementation[C].In the proceedings of ITCC 2004,Las Vegas,April 2004,5-7.
[11] William Hnath,Jordan Pettengill.Differential Power Analysis Side-Channel Attacks in Cryptograph[C].A Major Qualifying Project submitted to the Faculty of Worcester Polytechnic Institute in partial fulfillment of the requirements for the Degree of Bachelor of Science.2010.
[12] 潘海鋒,徐金甫,嚴(yán)迎建.針對(duì)AES密碼芯片的CPA攻擊[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(1).
[13] Thanh-Ha Le,Jessy C,ediere,et al.A Proposition for Correlation Power Analysis Enhancement[M].L Goubin,M Matsui(Eds.):CHES 2006,LNCS 4249,2006,174-186.International Association for Cryptologic Research 2006.
[14] Stefan Mangard,Elisabeth Oswald Thomas Popp.能量分析攻擊[M].北京:科學(xué)出版社,2010.
[15] ANSI X3.92-1981美國國家標(biāo)準(zhǔn)——數(shù)據(jù)加密算法[S].美國國家標(biāo)準(zhǔn)協(xié)會(huì),1981.