文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)10-0066-03
中文引用格式:郭建飛,王忠,嚴(yán)迎建,郭朋飛.基于FPGA實(shí)現(xiàn)AES的側(cè)信道碰撞攻擊[J].電子技術(shù)應(yīng)用,2014,40(10):66-68+71.
0 引言
2003年Schramm等在FSE上提出碰撞攻擊[1],參考文獻(xiàn)[2]首次將側(cè)信道碰撞應(yīng)用到AES上。隨后,Bogdanov[3]對AES的側(cè)信道碰撞攻擊進(jìn)行了改進(jìn),Moradi等人[4]提出對使用掩碼S盒的AES進(jìn)行碰撞攻擊。側(cè)信道碰撞攻擊不需要依賴任何泄露模型,只需擁有識別攻擊點(diǎn)在能量跡中位置的能力。
本文在對側(cè)信道碰撞攻擊技術(shù)研究的基礎(chǔ)上,提出了方差檢查技術(shù),并利用基于相關(guān)系數(shù)的碰撞檢測方法,對AES實(shí)施了攻擊。
1 碰撞攻擊流程及AES碰撞分析
1.1 碰撞攻擊流程
碰撞攻擊可按圖1所示的步驟實(shí)施。側(cè)信道碰撞攻擊技術(shù)可分為4個(gè)階段:碰撞分析、側(cè)信息測量、碰撞檢測和密鑰恢復(fù)。其中,碰撞分析和碰撞檢測為側(cè)信道碰撞攻擊的關(guān)鍵,本文主要對這兩個(gè)階段進(jìn)行研究。
1.2 AES碰撞分析及密鑰恢復(fù)
本文選擇AES進(jìn)行側(cè)信道碰撞攻擊的研究。記K=
如圖2所示,假設(shè)在AES第一輪S盒中的第4個(gè)字節(jié)和第11個(gè)字節(jié)位置處發(fā)生一次碰撞,則:
即第一輪子密鑰字節(jié)k2,…,k16均可由k1表示,然后在給定明密文對的條件下遍歷k1,就可確定k1,根據(jù)k1和方程組(3)就可求出其他比特密鑰。
2 算法實(shí)現(xiàn)及能量采集
2.1 算法實(shí)現(xiàn)
對面積和功耗有較高要求的分組密碼算法在硬件實(shí)現(xiàn)時(shí),會(huì)對S盒采取復(fù)用[4-6],這為側(cè)信道碰撞攻擊的實(shí)施提供了契機(jī)。本文以如圖3所示AES為攻擊對象。
圖中,控制模塊控制寄存器組1每一個(gè)時(shí)鐘周期輸出輸入選擇模塊結(jié)果的8位,最后一圈時(shí),寄存器組1中的128比特?cái)?shù)值為密文;寄存器組2用于寄存16個(gè)時(shí)鐘周期中S盒運(yùn)算的輸出。
2.2 能量采集平臺(tái)
采用如圖4所示的能量采集平臺(tái)[7]對本文的研究進(jìn)行驗(yàn)證。其中,PC對控制模塊和密碼芯片進(jìn)行信息配置,并對示波器采集到的波形數(shù)據(jù)進(jìn)行分析;控制模塊控制密碼芯片的加解密運(yùn)算;信號發(fā)生器提供系統(tǒng)時(shí)鐘;密碼芯片中下載待攻擊密碼算法;示波器采集密碼芯片的電磁輻射信息。
3 基于相關(guān)系數(shù)的碰撞檢測方法
本文提出通過計(jì)算能量跡中每一采樣點(diǎn)的方差來識別攻擊點(diǎn)的方差檢查技術(shù),并利用基于相關(guān)系數(shù)的碰撞檢測方法對其進(jìn)行了驗(yàn)證。
3.1 方差檢查
概率論上,方差用于度量隨機(jī)變量和其數(shù)學(xué)期望之間的偏離程度,隨機(jī)變量X的方差如式(4)所示:
當(dāng)不同算法操作處理不同輸入時(shí),對應(yīng)的側(cè)信息有差別,基于此,可利用方差來檢查電磁曲線中碰撞攻擊點(diǎn)的位置信息,具體步驟如下:
(1)針對某一攻擊點(diǎn),遍歷所有對應(yīng)明文位作為能量采集平臺(tái)中算法的明文輸入;
(2)利用能量采集平臺(tái)采集對應(yīng)明文的電磁曲線波形;
(3)對電磁曲線中每一個(gè)采樣點(diǎn)進(jìn)行方差計(jì)算。
具體地,針對AES算法,將第一輪第一個(gè)S盒視為碰撞攻擊點(diǎn),對其進(jìn)行方差檢查。
首先,遍歷對應(yīng)第一個(gè)S盒輸入的8位明文;然后,利用能量采集平臺(tái)重復(fù)采集y次對應(yīng)遍歷明文的電磁曲線,對每個(gè)明文對應(yīng)的電磁曲線做平均,得到28條平均電磁曲線,記第i條平均電磁曲線為:
利用式(6)對28條平均電磁曲線計(jì)算每一個(gè)采樣點(diǎn)的方差,就可得到對應(yīng)第一個(gè)S盒的方差圖。
3.2 碰撞檢測方法
對應(yīng)第j個(gè)采樣點(diǎn)的相關(guān)系數(shù)可利用下式進(jìn)行計(jì)算:
4 攻擊驗(yàn)證
本節(jié)從實(shí)測驗(yàn)證、方差計(jì)算、相關(guān)系數(shù)計(jì)算三個(gè)方面對AES的實(shí)現(xiàn)進(jìn)行攻擊驗(yàn)證。
4.1 實(shí)測驗(yàn)證
按照側(cè)信道信息采集平臺(tái)的工作流程,采集AES密碼芯片運(yùn)行時(shí)16個(gè)S盒運(yùn)算的泄露信息如圖6所示。
從圖6可以看出示波器上的能量跡與AES的16個(gè)時(shí)鐘周期的S盒運(yùn)算十分吻合。因此,能量采集平臺(tái)下觀測到的能量跡曲線可以作為攻擊的信息源。
4.2 方差計(jì)算
如3.1節(jié)的描述對個(gè)別S盒發(fā)生泄露的位置進(jìn)行檢測。選擇兩個(gè)S盒為碰撞點(diǎn)時(shí),固定α∈GF(28),遍歷Δa,b,對每個(gè)明文重復(fù)50次測量,對應(yīng)每個(gè)S盒可各得50×28條跡,對兩組28條平均跡分別求方差,得到圖7所示兩個(gè)方差圖。
從圖中可以看出,在第110個(gè)采樣點(diǎn)附近和第160個(gè)采樣點(diǎn)附近兩圖有明顯差異,說明算法執(zhí)行時(shí)對這兩部分操作處理的數(shù)據(jù)有明顯不同,這與遍歷輸入明文字節(jié)的位置不同相對應(yīng),印證了第一個(gè)S盒和第二個(gè)S盒作為碰撞攻擊點(diǎn)的事實(shí)。
4.3 相關(guān)系數(shù)計(jì)算
從圖8中可以看出,當(dāng)Δa,b=128’h0000 0000 0000 0000 0000 0000 0000 2200時(shí),對應(yīng)P和PΔa,b的相關(guān)系數(shù)曲線有明顯的尖峰,則碰撞檢測成功。
5 結(jié)論
為了識別攻擊點(diǎn),本文提出方差檢查技術(shù),在對AES進(jìn)行攻擊的過程中,利用基于相關(guān)系數(shù)的碰撞檢測方法對其進(jìn)行了驗(yàn)證,結(jié)果表明方差檢查技術(shù)可以有效地識別攻擊點(diǎn)在能量跡中的位置信息。
參考文獻(xiàn)
[1] SCHRAMM K,WOLLINGER T,PAAR C.A new class of collision attacks and its application to DES[C].Johansson,T.(ed.)FSE 2003,LNCS,Springer,Heidelberg,2003:206-222.
[2] SCHRAMM K,LEANDER G,F(xiàn)ELKE P,et al.A collisionattack on AES:combining side channel and differentialattack[C].Joye,M.,Quisquater,J.-J.(eds.) CHES 2004,LNCS,Springer,Heidelberg,2004:163-175.
[3] BOGDANOV A.Improved side-channel collision attacks on AES[C].Selected Areas in Cryptography-SAC 2007,2007:84-95.
[4] MORADI A,MISCHKE O,EISENBARTH T.Correlationenhanced power analysis collision attack[C].CHES,2010:125-139.
[5] CANRIGHT D.A very compact S-Box for AES[C].CHES 2005,volume 3659 of LNCS,Springer,2005:441-455.
[6] SATOH A,MORIOKA S,TAKANO K,et al.A compact rijndael hardware architecture with S-Box optimization[C].Advances in Cryptology-ASIACRYPT 2001,volume 2248 of LNCS,Springer,2001:239-254.
[7] 段二朋,嚴(yán)迎建,李佩之.針對AES密碼算法FPGA實(shí)現(xiàn)的CEMA攻擊[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(8):2926-2930.