利用FPGA加密芯片的抗DPA攻擊電路設(shè)計(jì)
0 引言
本文引用地址:http://www.ex-cimer.com/article/151255.htm
近年來,現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,FPGA)由于其高性能、低價(jià)格、高開發(fā)速度、方便的編程方式等特點(diǎn)得到了廣泛的應(yīng)用。但對(duì)FPGA進(jìn)行DPA(Differential Power Analysis,差分功耗分析)攻擊已經(jīng)成為FPGA應(yīng)用中信息安全的主要威脅之一,受到了廣泛的關(guān)注。
DPA是SCA(Side Channel Attacks,旁路攻擊)技術(shù)的一種,其攻擊思想為:以電路的功耗特性為基礎(chǔ),利用功耗與內(nèi)部密鑰的關(guān)系,將大量采樣到的包含該內(nèi)部密鑰運(yùn)算的功耗波形數(shù)據(jù)根據(jù)所猜測(cè)的密鑰進(jìn)行劃分,使得所劃分的兩部分具有不同的功耗特性。最后,對(duì)兩部分的功耗數(shù)據(jù)相減得到功耗差分曲線,如果猜測(cè)正確,差分曲線將出現(xiàn)明顯的尖峰。
本文將應(yīng)用FPGA的自身結(jié)構(gòu)特點(diǎn),結(jié)合目前常用的抗DPA攻擊的電路級(jí)防護(hù)技術(shù),深入研究與分析在FPGA平臺(tái)上實(shí)現(xiàn)針對(duì)DPA攻擊的電路級(jí)防護(hù)技術(shù)。
1 FPGA上的電路防護(hù)技術(shù)
1.1 FPGA的底層結(jié)構(gòu)
FPGA的簡(jiǎn)化結(jié)構(gòu)如圖1所示。FPGA內(nèi)部最主要的、設(shè)計(jì)工程中最需關(guān)注的部件是CLB(Configurable Logic Block,可配置邏輯塊),IOB(Input/Output Block,輸入/輸出塊),Block RAM(塊RAM)、DCM(Digital Clock Manager,數(shù)字時(shí)鐘管理器)和Multiplier(乘法器)。其中CLB是FPGA具有可編程能力的主要承擔(dān)者,Virtex-5的一個(gè)slice的主要組成單元包括4個(gè)6輸入查找表、4個(gè)觸發(fā)器和若干個(gè)選擇器。
1.2 雙軌電路技術(shù)的實(shí)現(xiàn)
雙軌電路技術(shù)是指無論是輸入還是輸出都是用兩根線來表示的。由圖2可見,在SDDL與門中,信號(hào)A就由A和共同表示,而輸出Z也由Z和表示。在這種表示下,一個(gè)變量可以有4種不同的邏輯值(0,0),(0,1),(1,0)以及(1,1)。SDDL將(0,1)和(1,0)分別用來表示邏輯0和邏輯1。這樣電路內(nèi)部的邏輯0和邏輯1就變成了對(duì)稱的,從而使得各自的功耗相同。另外,邏輯門還引入了一個(gè)prch預(yù)充電信號(hào)。在prch有效的情況下,輸出是(O,0),這個(gè)值也就是變量為預(yù)充電時(shí)在電路中的表示方式。電路的工作分為兩個(gè)狀態(tài):運(yùn)算狀態(tài)和預(yù)充電狀態(tài)。這兩個(gè)狀態(tài)交替更換,也就是在prch上加載一個(gè)固定周期的脈沖。如此一來,電路中變量值的變化就是(0,O)到(O,1)或(1,O),或者是(0,1)或(1,0)到(O,0),每次翻轉(zhuǎn)都是只有一根信號(hào)線進(jìn)行翻轉(zhuǎn)。邏輯O和邏輯1達(dá)到了完全的平衡。
評(píng)論