大香伊蕉在人线国产av老女人-午夜欧美理论2019理论-国模无码视频一区二区三区-18成人片黄网站www

你的位置:首頁 > 電路保護 > 正文

防DPA攻擊的集成電路設(shè)計方法

發(fā)布時間:2014-09-26 責(zé)任編輯:sherryyu

【導(dǎo)讀】與傳統(tǒng)的攻擊技術(shù)相比,差分功耗分析(DPA,Differential Power Analysis)攻擊技術(shù)具有更強的攻擊性和解密效率,因此防DPA攻擊的設(shè)計方法越來越引起電路設(shè)計工程師的重視。本文從組合邏輯、寄存器、存儲器、傳輸數(shù)據(jù)結(jié)構(gòu)和中間狀態(tài)等幾個方面對防DPA攻擊的電路設(shè)計方法進行了介紹。 
 
最近,一種DPA攻擊技術(shù)被用來破譯集成電路中的重要信息。DPA攻擊技術(shù)的原理是:當(dāng)芯片在執(zhí)行不同的指令進行各種運算時,對應(yīng)的功率消耗也相應(yīng)變化。通過使用特殊的電子測量儀和數(shù)學(xué)統(tǒng)計技術(shù),來檢測和分析這些變化,從而得到芯片中的特定關(guān)鍵信息。這種利用指令的電流變化來分析密碼算法和密碼的方法,和以往的攻擊技術(shù)有根本的不同,因此防DPA攻擊的設(shè)計方法越來越引起電路設(shè)計工程師的重視。 
 
傳統(tǒng)的防DPA攻擊的方法有兩種:一種是用隨機數(shù)發(fā)生器產(chǎn)生額外的噪聲和干擾信號,另一種是通過增加濾波電路來消除噪聲。這兩種方法都具有其固有缺陷,它們都會增加芯片的面積,其中前一種方法還會增加額外功耗,后一種方法則只是相對增加了DPA攻擊的難度,并不能徹底解決DPA攻擊問題。 
 
本文介紹的防DPA攻擊的電路設(shè)計方法不同于傳統(tǒng)方法,它從DPA的攻擊原理出發(fā),專門針對DPA攻擊而設(shè)計,能有效解決通過分析芯片電流變化來進行攻擊的問題。這種防DPA攻擊的電路設(shè)計方法從分析集成電路的基本電路單元開始,由簡到繁設(shè)計出防DPA攻擊的復(fù)雜電路,從根本上解決了DPA攻擊問題。 
 
防DPA攻擊的基本電路單元 
 
一個典型的CMOS NAND電路通常由4個MOS管組成,包括2個PMOS管和2個NMOS管。圖1是一個CMOS AND電路,它是由一個NAND電路(P1和P2的參數(shù)相同,N1和N2的參數(shù)相同)和一個NOT電路組成。
CMOS AND電路由一個NAND電路和一個NOT電路組成
圖1:CMOS AND電路由一個NAND電路和一個NOT電路組成
 
由于P1和P2的參數(shù)相同,而且這兩個晶體管是并行的,所以當(dāng)輸入信號A變化或者B發(fā)生變化時,這兩個PMOS管對AND的瞬態(tài)變化的影響一樣。而N1和N2是串行的,因此當(dāng)輸入A=1、B=0時,NAND的瞬態(tài)特性與輸入A=0、B=1時的瞬態(tài)特性不同。雖然理想CMOS數(shù)字邏輯門在靜態(tài)條件下不會消耗電流,但當(dāng)輸入信號變化時,它會消耗一定電流。這是因為MOSFET和信號傳輸線都存在寄生電容,并且當(dāng)邏輯門處于變化狀態(tài)時,Vdd和Gnd都存在瞬態(tài)電流。因此,這個與門的瞬態(tài)電流大小不僅與輸入信號的變化有關(guān),還與輸出值Q有關(guān)。 
 
本文介紹的防DPA攻擊的基本電路單元,對所有可能的輸入信號都表現(xiàn)出相同的電特性。這些電特性包括導(dǎo)通和閉合的PMOS管和NMOS管的數(shù)量、輸入線的電容負載、輸出線的負載以及電路單元自身的瞬態(tài)電流。圖2為該基本電路單元的電路結(jié)構(gòu)。 
 
這個門電路有A和B兩個輸入,輸入信號是2位的常數(shù)漢明權(quán)重碼(constant Hamming weight representation),即A1和A2分別是0、1時對應(yīng)“假”邏輯,1、0時對應(yīng)“真”邏輯。在圖2中,信號傳輸都是以2位漢明碼形式進行,因此無論A和B信號如何變化,翻轉(zhuǎn)的MOS管的數(shù)量都相同,且是一個常數(shù)10。
防DPA攻擊的基本電路單元的電路結(jié)構(gòu)
圖2:防DPA攻擊的基本電路單元的電路結(jié)構(gòu)
 
這個防DPA攻擊的基本電路單元還可以表達多種邏輯。當(dāng)需要表達AND邏輯時,輸出為O1、O2,其中O1為漢明碼指示位;當(dāng)需要表達NAND邏輯時,輸出為O2、O1,其中O2為2位漢明碼指示位;當(dāng)需要表達OR邏輯時,輸出為O7、O8,其中O7為漢明碼指示位;當(dāng)需要表達NOR邏輯時,輸出為O8、O7,其中O8為漢明碼指示位。而O3、O4、O5和O6是沒有作用的輸出信號,但為保證各種輸入情況下基本單元的對稱性和相同性,這幾個輸出管腳在實際電路設(shè)計中應(yīng)盡量和O1、O2、O7、O8接相同的負載。 
[page]
防DPA攻擊的主要目的是使電路電特性在運算時保持相同,而保持電特性相同很重要的一點是使整個電路在運算時翻轉(zhuǎn)的晶體管數(shù)量是一個常數(shù)。在傳統(tǒng)電路中,翻轉(zhuǎn)的晶體管數(shù)量與當(dāng)前狀態(tài)和先前狀態(tài)相關(guān),跟輸入?yún)?shù)也相關(guān)。本文介紹的電路設(shè)計方法能使翻轉(zhuǎn)的晶體管數(shù)量在任何運算步驟中都是一個常數(shù)。為實現(xiàn)這個目的,電路運算步驟之間增加了一個中間步驟,最簡單的中間步驟的設(shè)置是在輸入?yún)?shù)和電路運算完成之后設(shè)置系統(tǒng)中間值。中間步驟的設(shè)置能防止有用信息從功耗分析中泄漏出去。 
 
假設(shè)這個基本電路單元處于中間步驟,即所有輸入都是同一個邏輯(都是1或都是0),若所有輸入都是0,那么4個與邏輯都進行0 AND 0操作,然后再輸入有效的常數(shù)漢明權(quán)重碼數(shù)據(jù),則A1、A2和B1、B2各有一位從0翻轉(zhuǎn)到1。因此,在這個基本電路單元中,翻轉(zhuǎn)的晶體管數(shù)量總是一樣的。無論漢明碼的值是什么,基本單元的4個與門分別進行了1 AND 0、1 AND 1、0 AND 0和0 AND 1操作。因為4個與門的結(jié)構(gòu)是相同的,不管A和B的輸入值是什么,這個基本單元的電特性都相同,所以DPA攻擊并不能從電特性中分析出輸入信號。表1根據(jù)晶體管的翻轉(zhuǎn)情況對基本單元的相同電特性進行了統(tǒng)計說明(假設(shè)先設(shè)置所有輸入為0)。
無論輸入信號是什么,  基本電路單元中翻轉(zhuǎn)的晶體管數(shù)量保持恒定
表1:無論輸入信號是什么, 
基本電路單元中翻轉(zhuǎn)的晶體管數(shù)量保持恒定
 
在基本單元進行下一次運算之前,其所有輸入值需要重新設(shè)置為0,這個操作使同等數(shù)量的晶體管翻轉(zhuǎn),攻擊者將無法從功耗分析上看出先前的輸入值。同樣,如果將所有輸入值設(shè)置為1也具有相同效果。本文把每次運算之間的設(shè)置初始值的操作狀態(tài)稱為“中間態(tài)”。 
 
多級組合邏輯的設(shè)計 
 
在實際電路中,多級的組合邏輯將串接在一起,即基本單元的輸出端連接到下一級基本單元的輸入端。在這種情況下,中間態(tài)必須能非常方便地在各級基本單元之間傳輸,以保證整個電路的不可攻擊性。圖3顯示了一種可傳輸中間態(tài)的防DPA攻擊的基本單元。
一種可傳輸中間態(tài)的防DPA攻擊的基本單元
圖3:一種可傳輸中間態(tài)的防DPA攻擊的基本單元
 
這種基本單元可以級連起來,連接成復(fù)雜的數(shù)字組合邏輯。該基本單元與圖2描述的電路具有相同的邏輯特性,但當(dāng)輸入0000或者1111時,它的輸出值是11或者00。輸出值11或者00能對下一級的基本單元進行置位或者清零,這就實現(xiàn)了中間態(tài)的傳輸。 
[page]
當(dāng)輸入是常數(shù)漢明權(quán)重碼時,該基本單元可實現(xiàn)NAND、AND、NOR和OR四個邏輯功能。輸出O1O2是NAND功能,輸出O2O1是AND功能,輸出N1、N2是NOR功能,輸出N2N1是OR功能。圖4所示的基本單元則可實現(xiàn)NOT邏輯。當(dāng)輸入是常數(shù)漢明權(quán)重碼時,輸出是反相的漢明碼;當(dāng)輸入進行置位或者清零,輸出是00或者11,也能實現(xiàn)中間態(tài)的傳輸。以上這五種邏輯足以組合成復(fù)雜的數(shù)字邏輯運算。
實現(xiàn)NOT邏輯的基本單元
圖4:實現(xiàn)NOT邏輯的基本單元
 
防DPA攻擊的系統(tǒng)結(jié)構(gòu) 
 
前面介紹了組合邏輯防DPA攻擊的電路設(shè)計方法,現(xiàn)在將介紹時序邏輯防DPA攻擊的設(shè)計方法及防DPA攻擊的系統(tǒng)結(jié)構(gòu)。 
 
舉個例子,當(dāng)電路傳輸?shù)臄?shù)據(jù)都是常數(shù)漢明權(quán)重碼時,輸入數(shù)據(jù)01給兩位寄存器,當(dāng)這兩位寄存器的值是10時,兩位寄存器都會翻轉(zhuǎn),而當(dāng)兩位寄存器的值是01時,兩位寄存器都不會翻轉(zhuǎn)。這個不同點會把有用信息泄漏給DPA攻擊者。而在輸入數(shù)據(jù)之前,先把寄存器設(shè)置為00或11,那么當(dāng)輸入數(shù)據(jù)是常數(shù)漢明權(quán)重碼時,無論輸入值是01還是10,都只有一個寄存器翻轉(zhuǎn),從運算狀態(tài)到中間狀態(tài)也只有一個寄存器翻轉(zhuǎn)。這樣可有效防止寄存器在數(shù)據(jù)傳輸過程中的信息泄漏。 
 
在有存儲器的電路中,存儲器在存儲0或者存儲1時有不同的電特性,如電流大小不同;同樣,存儲器在讀取0或者讀取1時也有不同的電特性,如電流大小不同。DPA攻擊者會利用這個特性對芯片進行分析,所以必須保證在對存儲器進行操作時有相同的電特性。現(xiàn)在,由于系統(tǒng)傳輸?shù)氖浅?shù)漢明權(quán)重碼,所以在讀取存儲器的數(shù)據(jù)時,無論讀取的是什么值,都具有相同個數(shù)的1和相同個數(shù)的0。例如當(dāng)數(shù)據(jù)線是8位時,每次傳輸數(shù)據(jù)都有4位0以及4位1。同樣,在存儲數(shù)據(jù)時,無論存儲的是什么值,只要是常數(shù)漢明權(quán)重碼,都將存儲相同個數(shù)的1和相同個數(shù)的0。這樣,在所有存儲器操作過程中都不會出現(xiàn)信息泄漏。 
 
以上從組合邏輯、寄存器、存儲器、傳輸數(shù)據(jù)結(jié)構(gòu)和中間狀態(tài)等幾個方面對防DPA攻擊的電路設(shè)計方法進行了介紹和說明,而組合邏輯基本單元、寄存器、存儲器等器件完全可以構(gòu)成一個復(fù)雜的防DPA攻擊的電路。 
 
為證明這種方法的有效性,對兩種智能卡芯片進行了對比。這兩種芯片都基于ISO/IEC7816協(xié)議,內(nèi)部加密系統(tǒng)采用192位3DES來實現(xiàn)。一種芯片是采用普通的電路設(shè)計方法設(shè)計實現(xiàn),另一種芯片在關(guān)鍵設(shè)計上采用了本文介紹的方法。用Cryptography Research 公司的DPA Workstation測試系統(tǒng)對前一種芯片進行分析,15分鐘內(nèi)就破譯了芯片加密電路,取得密鑰。而對采用本方法實現(xiàn)的芯片,則無法用DPA Workstation測試系統(tǒng)進行分析,因為該測試系統(tǒng)是基于數(shù)據(jù)在加密算法的運行中出現(xiàn)的電流/電源變化來獲得密鑰,而現(xiàn)在,它無法從電流/電源變化中取得任何有效信息,自然也無法破譯芯片。 
 
要采購晶體么,點這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
壓控振蕩器 壓力傳感器 壓力開關(guān) 壓敏電阻 揚聲器 遙控開關(guān) 醫(yī)療電子 醫(yī)用成像 移動電源 音頻IC 音頻SoC 音頻變壓器 引線電感 語音控制 元件符號 元器件選型 云電視 云計算 云母電容 真空三極管 振蕩器 振蕩線圈 振動器 振動設(shè)備 震動馬達 整流變壓器 整流二極管 整流濾波 直流電機 智能抄表
?

關(guān)閉

?

關(guān)閉