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