文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)10-0066-03
中文引用格式:郭建飛,王忠,嚴(yán)迎建,郭朋飛.基于FPGA實現(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è)信道碰撞攻擊不需要依賴任何泄露模型,只需擁有識別攻擊點在能量跡中位置的能力。
本文在對側(cè)信道碰撞攻擊技術(shù)研究的基礎(chǔ)上,提出了方差檢查技術(shù),并利用基于相關(guān)系數(shù)的碰撞檢測方法,對AES實施了攻擊。
1 碰撞攻擊流程及AES碰撞分析
1.1 碰撞攻擊流程
碰撞攻擊可按圖1所示的步驟實施。側(cè)信道碰撞攻擊技術(shù)可分為4個階段:碰撞分析、側(cè)信息測量、碰撞檢測和密鑰恢復(fù)。其中,碰撞分析和碰撞檢測為側(cè)信道碰撞攻擊的關(guān)鍵,本文主要對這兩個階段進(jìn)行研究。
1.2 AES碰撞分析及密鑰恢復(fù)
本文選擇AES進(jìn)行側(cè)信道碰撞攻擊的研究。記K=
如圖2所示,假設(shè)在AES第一輪S盒中的第4個字節(jié)和第11個字節(jié)位置處發(fā)生一次碰撞,則:
即第一輪子密鑰字節(jié)k2,…,k16均可由k1表示,然后在給定明密文對的條件下遍歷k1,就可確定k1,根據(jù)k1和方程組(3)就可求出其他比特密鑰。
2 算法實現(xiàn)及能量采集
2.1 算法實現(xiàn)
對面積和功耗有較高要求的分組密碼算法在硬件實現(xiàn)時,會對S盒采取復(fù)用[4-6],這為側(cè)信道碰撞攻擊的實施提供了契機(jī)。本文以如圖3所示AES為攻擊對象。
圖中,控制模塊控制寄存器組1每一個時鐘周期輸出輸入選擇模塊結(jié)果的8位,最后一圈時,寄存器組1中的128比特數(shù)值為密文;寄存器組2用于寄存16個時鐘周期中S盒運算的輸出。
2.2 能量采集平臺
采用如圖4所示的能量采集平臺[7]對本文的研究進(jìn)行驗證。其中,PC對控制模塊和密碼芯片進(jìn)行信息配置,并對示波器采集到的波形數(shù)據(jù)進(jìn)行分析;控制模塊控制密碼芯片的加解密運算;信號發(fā)生器提供系統(tǒng)時鐘;密碼芯片中下載待攻擊密碼算法;示波器采集密碼芯片的電磁輻射信息。
3 基于相關(guān)系數(shù)的碰撞檢測方法
本文提出通過計算能量跡中每一采樣點的方差來識別攻擊點的方差檢查技術(shù),并利用基于相關(guān)系數(shù)的碰撞檢測方法對其進(jìn)行了驗證。
3.1 方差檢查
概率論上,方差用于度量隨機(jī)變量和其數(shù)學(xué)期望之間的偏離程度,隨機(jī)變量X的方差如式(4)所示:
當(dāng)不同算法操作處理不同輸入時,對應(yīng)的側(cè)信息有差別,基于此,可利用方差來檢查電磁曲線中碰撞攻擊點的位置信息,具體步驟如下:
(1)針對某一攻擊點,遍歷所有對應(yīng)明文位作為能量采集平臺中算法的明文輸入;
(2)利用能量采集平臺采集對應(yīng)明文的電磁曲線波形;
(3)對電磁曲線中每一個采樣點進(jìn)行方差計算。
具體地,針對AES算法,將第一輪第一個S盒視為碰撞攻擊點,對其進(jìn)行方差檢查。
首先,遍歷對應(yīng)第一個S盒輸入的8位明文;然后,利用能量采集平臺重復(fù)采集y次對應(yīng)遍歷明文的電磁曲線,對每個明文對應(yīng)的電磁曲線做平均,得到28條平均電磁曲線,記第i條平均電磁曲線為:
利用式(6)對28條平均電磁曲線計算每一個采樣點的方差,就可得到對應(yīng)第一個S盒的方差圖。
3.2 碰撞檢測方法
對應(yīng)第j個采樣點的相關(guān)系數(shù)可利用下式進(jìn)行計算:
4 攻擊驗證
本節(jié)從實測驗證、方差計算、相關(guān)系數(shù)計算三個方面對AES的實現(xiàn)進(jìn)行攻擊驗證。
4.1 實測驗證
按照側(cè)信道信息采集平臺的工作流程,采集AES密碼芯片運行時16個S盒運算的泄露信息如圖6所示。
從圖6可以看出示波器上的能量跡與AES的16個時鐘周期的S盒運算十分吻合。因此,能量采集平臺下觀測到的能量跡曲線可以作為攻擊的信息源。
4.2 方差計算
如3.1節(jié)的描述對個別S盒發(fā)生泄露的位置進(jìn)行檢測。選擇兩個S盒為碰撞點時,固定α∈GF(28),遍歷Δa,b,對每個明文重復(fù)50次測量,對應(yīng)每個S盒可各得50×28條跡,對兩組28條平均跡分別求方差,得到圖7所示兩個方差圖。
從圖中可以看出,在第110個采樣點附近和第160個采樣點附近兩圖有明顯差異,說明算法執(zhí)行時對這兩部分操作處理的數(shù)據(jù)有明顯不同,這與遍歷輸入明文字節(jié)的位置不同相對應(yīng),印證了第一個S盒和第二個S盒作為碰撞攻擊點的事實。
4.3 相關(guān)系數(shù)計算
從圖8中可以看出,當(dāng)Δa,b=128’h0000 0000 0000 0000 0000 0000 0000 2200時,對應(yīng)P和PΔa,b的相關(guān)系數(shù)曲線有明顯的尖峰,則碰撞檢測成功。
5 結(jié)論
為了識別攻擊點,本文提出方差檢查技術(shù),在對AES進(jìn)行攻擊的過程中,利用基于相關(guān)系數(shù)的碰撞檢測方法對其進(jìn)行了驗證,結(jié)果表明方差檢查技術(shù)可以有效地識別攻擊點在能量跡中的位置信息。
參考文獻(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實現(xiàn)的CEMA攻擊[J].計算機(jī)工程與設(shè)計,2012,33(8):2926-2930.