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