防DPA攻擊的集成電路設(shè)計(jì)方法
發(fā)布時(shí)間:2014-09-26 責(zé)任編輯:sherryyu
【導(dǎo)讀】與傳統(tǒng)的攻擊技術(shù)相比,差分功耗分析(DPA,Differential Power Analysis)攻擊技術(shù)具有更強(qiáng)的攻擊性和解密效率,因此防DPA攻擊的設(shè)計(jì)方法越來(lái)越引起電路設(shè)計(jì)工程師的重視。本文從組合邏輯、寄存器、存儲(chǔ)器、傳輸數(shù)據(jù)結(jié)構(gòu)和中間狀態(tài)等幾個(gè)方面對(duì)防DPA攻擊的電路設(shè)計(jì)方法進(jìn)行了介紹。
最近,一種DPA攻擊技術(shù)被用來(lái)破譯集成電路中的重要信息。DPA攻擊技術(shù)的原理是:當(dāng)芯片在執(zhí)行不同的指令進(jìn)行各種運(yùn)算時(shí),對(duì)應(yīng)的功率消耗也相應(yīng)變化。通過(guò)使用特殊的電子測(cè)量?jī)x和數(shù)學(xué)統(tǒng)計(jì)技術(shù),來(lái)檢測(cè)和分析這些變化,從而得到芯片中的特定關(guān)鍵信息。這種利用指令的電流變化來(lái)分析密碼算法和密碼的方法,和以往的攻擊技術(shù)有根本的不同,因此防DPA攻擊的設(shè)計(jì)方法越來(lái)越引起電路設(shè)計(jì)工程師的重視。
傳統(tǒng)的防DPA攻擊的方法有兩種:一種是用隨機(jī)數(shù)發(fā)生器產(chǎn)生額外的噪聲和干擾信號(hào),另一種是通過(guò)增加濾波電路來(lái)消除噪聲。這兩種方法都具有其固有缺陷,它們都會(huì)增加芯片的面積,其中前一種方法還會(huì)增加額外功耗,后一種方法則只是相對(duì)增加了DPA攻擊的難度,并不能徹底解決DPA攻擊問(wèn)題。
本文介紹的防DPA攻擊的電路設(shè)計(jì)方法不同于傳統(tǒng)方法,它從DPA的攻擊原理出發(fā),專(zhuān)門(mén)針對(duì)DPA攻擊而設(shè)計(jì),能有效解決通過(guò)分析芯片電流變化來(lái)進(jìn)行攻擊的問(wèn)題。這種防DPA攻擊的電路設(shè)計(jì)方法從分析集成電路的基本電路單元開(kāi)始,由簡(jiǎn)到繁設(shè)計(jì)出防DPA攻擊的復(fù)雜電路,從根本上解決了DPA攻擊問(wèn)題。
防DPA攻擊的基本電路單元
一個(gè)典型的CMOS NAND電路通常由4個(gè)MOS管組成,包括2個(gè)PMOS管和2個(gè)NMOS管。圖1是一個(gè)CMOS AND電路,它是由一個(gè)NAND電路(P1和P2的參數(shù)相同,N1和N2的參數(shù)相同)和一個(gè)NOT電路組成。
圖1:CMOS AND電路由一個(gè)NAND電路和一個(gè)NOT電路組成
由于P1和P2的參數(shù)相同,而且這兩個(gè)晶體管是并行的,所以當(dāng)輸入信號(hào)A變化或者B發(fā)生變化時(shí),這兩個(gè)PMOS管對(duì)AND的瞬態(tài)變化的影響一樣。而N1和N2是串行的,因此當(dāng)輸入A=1、B=0時(shí),NAND的瞬態(tài)特性與輸入A=0、B=1時(shí)的瞬態(tài)特性不同。雖然理想CMOS數(shù)字邏輯門(mén)在靜態(tài)條件下不會(huì)消耗電流,但當(dāng)輸入信號(hào)變化時(shí),它會(huì)消耗一定電流。這是因?yàn)镸OSFET和信號(hào)傳輸線都存在寄生電容,并且當(dāng)邏輯門(mén)處于變化狀態(tài)時(shí),Vdd和Gnd都存在瞬態(tài)電流。因此,這個(gè)與門(mén)的瞬態(tài)電流大小不僅與輸入信號(hào)的變化有關(guān),還與輸出值Q有關(guān)。
本文介紹的防DPA攻擊的基本電路單元,對(duì)所有可能的輸入信號(hào)都表現(xiàn)出相同的電特性。這些電特性包括導(dǎo)通和閉合的PMOS管和NMOS管的數(shù)量、輸入線的電容負(fù)載、輸出線的負(fù)載以及電路單元自身的瞬態(tài)電流。圖2為該基本電路單元的電路結(jié)構(gòu)。
這個(gè)門(mén)電路有A和B兩個(gè)輸入,輸入信號(hào)是2位的常數(shù)漢明權(quán)重碼(constant Hamming weight representation),即A1和A2分別是0、1時(shí)對(duì)應(yīng)“假”邏輯,1、0時(shí)對(duì)應(yīng)“真”邏輯。在圖2中,信號(hào)傳輸都是以2位漢明碼形式進(jìn)行,因此無(wú)論A和B信號(hào)如何變化,翻轉(zhuǎn)的MOS管的數(shù)量都相同,且是一個(gè)常數(shù)10。
圖2:防DPA攻擊的基本電路單元的電路結(jié)構(gòu)
這個(gè)防DPA攻擊的基本電路單元還可以表達(dá)多種邏輯。當(dāng)需要表達(dá)AND邏輯時(shí),輸出為O1、O2,其中O1為漢明碼指示位;當(dāng)需要表達(dá)NAND邏輯時(shí),輸出為O2、O1,其中O2為2位漢明碼指示位;當(dāng)需要表達(dá)OR邏輯時(shí),輸出為O7、O8,其中O7為漢明碼指示位;當(dāng)需要表達(dá)NOR邏輯時(shí),輸出為O8、O7,其中O8為漢明碼指示位。而O3、O4、O5和O6是沒(méi)有作用的輸出信號(hào),但為保證各種輸入情況下基本單元的對(duì)稱(chēng)性和相同性,這幾個(gè)輸出管腳在實(shí)際電路設(shè)計(jì)中應(yīng)盡量和O1、O2、O7、O8接相同的負(fù)載。
[page]
防DPA攻擊的主要目的是使電路電特性在運(yùn)算時(shí)保持相同,而保持電特性相同很重要的一點(diǎn)是使整個(gè)電路在運(yùn)算時(shí)翻轉(zhuǎn)的晶體管數(shù)量是一個(gè)常數(shù)。在傳統(tǒng)電路中,翻轉(zhuǎn)的晶體管數(shù)量與當(dāng)前狀態(tài)和先前狀態(tài)相關(guān),跟輸入?yún)?shù)也相關(guān)。本文介紹的電路設(shè)計(jì)方法能使翻轉(zhuǎn)的晶體管數(shù)量在任何運(yùn)算步驟中都是一個(gè)常數(shù)。為實(shí)現(xiàn)這個(gè)目的,電路運(yùn)算步驟之間增加了一個(gè)中間步驟,最簡(jiǎn)單的中間步驟的設(shè)置是在輸入?yún)?shù)和電路運(yùn)算完成之后設(shè)置系統(tǒng)中間值。中間步驟的設(shè)置能防止有用信息從功耗分析中泄漏出去。
假設(shè)這個(gè)基本電路單元處于中間步驟,即所有輸入都是同一個(gè)邏輯(都是1或都是0),若所有輸入都是0,那么4個(gè)與邏輯都進(jìn)行0 AND 0操作,然后再輸入有效的常數(shù)漢明權(quán)重碼數(shù)據(jù),則A1、A2和B1、B2各有一位從0翻轉(zhuǎn)到1。因此,在這個(gè)基本電路單元中,翻轉(zhuǎn)的晶體管數(shù)量總是一樣的。無(wú)論漢明碼的值是什么,基本單元的4個(gè)與門(mén)分別進(jìn)行了1 AND 0、1 AND 1、0 AND 0和0 AND 1操作。因?yàn)?個(gè)與門(mén)的結(jié)構(gòu)是相同的,不管A和B的輸入值是什么,這個(gè)基本單元的電特性都相同,所以DPA攻擊并不能從電特性中分析出輸入信號(hào)。表1根據(jù)晶體管的翻轉(zhuǎn)情況對(duì)基本單元的相同電特性進(jìn)行了統(tǒng)計(jì)說(shuō)明(假設(shè)先設(shè)置所有輸入為0)。
表1:無(wú)論輸入信號(hào)是什么,
基本電路單元中翻轉(zhuǎn)的晶體管數(shù)量保持恒定
在基本單元進(jìn)行下一次運(yùn)算之前,其所有輸入值需要重新設(shè)置為0,這個(gè)操作使同等數(shù)量的晶體管翻轉(zhuǎn),攻擊者將無(wú)法從功耗分析上看出先前的輸入值。同樣,如果將所有輸入值設(shè)置為1也具有相同效果。本文把每次運(yùn)算之間的設(shè)置初始值的操作狀態(tài)稱(chēng)為“中間態(tài)”。
多級(jí)組合邏輯的設(shè)計(jì)
在實(shí)際電路中,多級(jí)的組合邏輯將串接在一起,即基本單元的輸出端連接到下一級(jí)基本單元的輸入端。在這種情況下,中間態(tài)必須能非常方便地在各級(jí)基本單元之間傳輸,以保證整個(gè)電路的不可攻擊性。圖3顯示了一種可傳輸中間態(tài)的防DPA攻擊的基本單元。
圖3:一種可傳輸中間態(tài)的防DPA攻擊的基本單元
這種基本單元可以級(jí)連起來(lái),連接成復(fù)雜的數(shù)字組合邏輯。該基本單元與圖2描述的電路具有相同的邏輯特性,但當(dāng)輸入0000或者1111時(shí),它的輸出值是11或者00。輸出值11或者00能對(duì)下一級(jí)的基本單元進(jìn)行置位或者清零,這就實(shí)現(xiàn)了中間態(tài)的傳輸。
[page]
當(dāng)輸入是常數(shù)漢明權(quán)重碼時(shí),該基本單元可實(shí)現(xiàn)NAND、AND、NOR和OR四個(gè)邏輯功能。輸出O1O2是NAND功能,輸出O2O1是AND功能,輸出N1、N2是NOR功能,輸出N2N1是OR功能。圖4所示的基本單元?jiǎng)t可實(shí)現(xiàn)NOT邏輯。當(dāng)輸入是常數(shù)漢明權(quán)重碼時(shí),輸出是反相的漢明碼;當(dāng)輸入進(jìn)行置位或者清零,輸出是00或者11,也能實(shí)現(xiàn)中間態(tài)的傳輸。以上這五種邏輯足以組合成復(fù)雜的數(shù)字邏輯運(yùn)算。
圖4:實(shí)現(xiàn)NOT邏輯的基本單元
防DPA攻擊的系統(tǒng)結(jié)構(gòu)
前面介紹了組合邏輯防DPA攻擊的電路設(shè)計(jì)方法,現(xiàn)在將介紹時(shí)序邏輯防DPA攻擊的設(shè)計(jì)方法及防DPA攻擊的系統(tǒng)結(jié)構(gòu)。
舉個(gè)例子,當(dāng)電路傳輸?shù)臄?shù)據(jù)都是常數(shù)漢明權(quán)重碼時(shí),輸入數(shù)據(jù)01給兩位寄存器,當(dāng)這兩位寄存器的值是10時(shí),兩位寄存器都會(huì)翻轉(zhuǎn),而當(dāng)兩位寄存器的值是01時(shí),兩位寄存器都不會(huì)翻轉(zhuǎn)。這個(gè)不同點(diǎn)會(huì)把有用信息泄漏給DPA攻擊者。而在輸入數(shù)據(jù)之前,先把寄存器設(shè)置為00或11,那么當(dāng)輸入數(shù)據(jù)是常數(shù)漢明權(quán)重碼時(shí),無(wú)論輸入值是01還是10,都只有一個(gè)寄存器翻轉(zhuǎn),從運(yùn)算狀態(tài)到中間狀態(tài)也只有一個(gè)寄存器翻轉(zhuǎn)。這樣可有效防止寄存器在數(shù)據(jù)傳輸過(guò)程中的信息泄漏。
在有存儲(chǔ)器的電路中,存儲(chǔ)器在存儲(chǔ)0或者存儲(chǔ)1時(shí)有不同的電特性,如電流大小不同;同樣,存儲(chǔ)器在讀取0或者讀取1時(shí)也有不同的電特性,如電流大小不同。DPA攻擊者會(huì)利用這個(gè)特性對(duì)芯片進(jìn)行分析,所以必須保證在對(duì)存儲(chǔ)器進(jìn)行操作時(shí)有相同的電特性?,F(xiàn)在,由于系統(tǒng)傳輸?shù)氖浅?shù)漢明權(quán)重碼,所以在讀取存儲(chǔ)器的數(shù)據(jù)時(shí),無(wú)論讀取的是什么值,都具有相同個(gè)數(shù)的1和相同個(gè)數(shù)的0。例如當(dāng)數(shù)據(jù)線是8位時(shí),每次傳輸數(shù)據(jù)都有4位0以及4位1。同樣,在存儲(chǔ)數(shù)據(jù)時(shí),無(wú)論存儲(chǔ)的是什么值,只要是常數(shù)漢明權(quán)重碼,都將存儲(chǔ)相同個(gè)數(shù)的1和相同個(gè)數(shù)的0。這樣,在所有存儲(chǔ)器操作過(guò)程中都不會(huì)出現(xiàn)信息泄漏。
以上從組合邏輯、寄存器、存儲(chǔ)器、傳輸數(shù)據(jù)結(jié)構(gòu)和中間狀態(tài)等幾個(gè)方面對(duì)防DPA攻擊的電路設(shè)計(jì)方法進(jìn)行了介紹和說(shuō)明,而組合邏輯基本單元、寄存器、存儲(chǔ)器等器件完全可以構(gòu)成一個(gè)復(fù)雜的防DPA攻擊的電路。
為證明這種方法的有效性,對(duì)兩種智能卡芯片進(jìn)行了對(duì)比。這兩種芯片都基于ISO/IEC7816協(xié)議,內(nèi)部加密系統(tǒng)采用192位3DES來(lái)實(shí)現(xiàn)。一種芯片是采用普通的電路設(shè)計(jì)方法設(shè)計(jì)實(shí)現(xiàn),另一種芯片在關(guān)鍵設(shè)計(jì)上采用了本文介紹的方法。用Cryptography Research 公司的DPA Workstation測(cè)試系統(tǒng)對(duì)前一種芯片進(jìn)行分析,15分鐘內(nèi)就破譯了芯片加密電路,取得密鑰。而對(duì)采用本方法實(shí)現(xiàn)的芯片,則無(wú)法用DPA Workstation測(cè)試系統(tǒng)進(jìn)行分析,因?yàn)樵摐y(cè)試系統(tǒng)是基于數(shù)據(jù)在加密算法的運(yùn)行中出現(xiàn)的電流/電源變化來(lái)獲得密鑰,而現(xiàn)在,它無(wú)法從電流/電源變化中取得任何有效信息,自然也無(wú)法破譯芯片。
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 更高精度、更低噪音 GMCC美芝電子膨脹閥以創(chuàng)新?lián)屨夹袠I(yè)“制高點(diǎn)”
- 本立租完成近億元估值Pre-A輪融資,打造AI賦能的租賃服務(wù)平臺(tái)
- 中微公司成功從美國(guó)國(guó)防部中國(guó)軍事企業(yè)清單中移除
- 華邦電子白皮書(shū):滿(mǎn)足歐盟無(wú)線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
技術(shù)白皮書(shū)下載更多>>
- 車(chē)規(guī)與基于V2X的車(chē)輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車(chē)安全隔離的新挑戰(zhàn)
- 汽車(chē)模塊拋負(fù)載的解決方案
- 車(chē)用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索
單向可控硅
刀開(kāi)關(guān)
等離子顯示屏
低頻電感
低通濾波器
低音炮電路
滌綸電容
點(diǎn)膠設(shè)備
電池
電池管理系統(tǒng)
電磁蜂鳴器
電磁兼容
電磁爐危害
電動(dòng)車(chē)
電動(dòng)工具
電動(dòng)汽車(chē)
電感
電工電路
電機(jī)控制
電解電容
電纜連接器
電力電子
電力繼電器
電力線通信
電流保險(xiǎn)絲
電流表
電流傳感器
電流互感器
電路保護(hù)
電路圖