防DPA攻擊的集成電路設(shè)計方法
發(fā)布時間:2014-09-26 責(zé)任編輯:sherryyu
【導(dǎo)讀】與傳統(tǒng)的攻擊技術(shù)相比,差分功耗分析(DPA,Differential Power Analysis)攻擊技術(shù)具有更強(qiáng)的攻擊性和解密效率,因此防DPA攻擊的設(shè)計方法越來越引起電路設(shè)計工程師的重視。本文從組合邏輯、寄存器、存儲器、傳輸數(shù)據(jù)結(jié)構(gòu)和中間狀態(tài)等幾個方面對防DPA攻擊的電路設(shè)計方法進(jìn)行了介紹。
最近,一種DPA攻擊技術(shù)被用來破譯集成電路中的重要信息。DPA攻擊技術(shù)的原理是:當(dāng)芯片在執(zhí)行不同的指令進(jìn)行各種運(yùn)算時,對應(yīng)的功率消耗也相應(yīng)變化。通過使用特殊的電子測量儀和數(shù)學(xué)統(tǒng)計技術(shù),來檢測和分析這些變化,從而得到芯片中的特定關(guān)鍵信息。這種利用指令的電流變化來分析密碼算法和密碼的方法,和以往的攻擊技術(shù)有根本的不同,因此防DPA攻擊的設(shè)計方法越來越引起電路設(shè)計工程師的重視。
傳統(tǒng)的防DPA攻擊的方法有兩種:一種是用隨機(jī)數(shù)發(fā)生器產(chǎn)生額外的噪聲和干擾信號,另一種是通過增加濾波電路來消除噪聲。這兩種方法都具有其固有缺陷,它們都會增加芯片的面積,其中前一種方法還會增加額外功耗,后一種方法則只是相對增加了DPA攻擊的難度,并不能徹底解決DPA攻擊問題。
本文介紹的防DPA攻擊的電路設(shè)計方法不同于傳統(tǒng)方法,它從DPA的攻擊原理出發(fā),專門針對DPA攻擊而設(shè)計,能有效解決通過分析芯片電流變化來進(jìn)行攻擊的問題。這種防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電路組成。
圖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ù)量、輸入線的電容負(fù)載、輸出線的負(fù)載以及電路單元自身的瞬態(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位漢明碼形式進(jìn)行,因此無論A和B信號如何變化,翻轉(zhuǎn)的MOS管的數(shù)量都相同,且是一個常數(shù)10。
圖2:防DPA攻擊的基本電路單元的電路結(jié)構(gòu)
這個防DPA攻擊的基本電路單元還可以表達(dá)多種邏輯。當(dāng)需要表達(dá)AND邏輯時,輸出為O1、O2,其中O1為漢明碼指示位;當(dāng)需要表達(dá)NAND邏輯時,輸出為O2、O1,其中O2為2位漢明碼指示位;當(dāng)需要表達(dá)OR邏輯時,輸出為O7、O8,其中O7為漢明碼指示位;當(dāng)需要表達(dá)NOR邏輯時,輸出為O8、O7,其中O8為漢明碼指示位。而O3、O4、O5和O6是沒有作用的輸出信號,但為保證各種輸入情況下基本單元的對稱性和相同性,這幾個輸出管腳在實際電路設(shè)計中應(yīng)盡量和O1、O2、O7、O8接相同的負(fù)載。
[page]
防DPA攻擊的主要目的是使電路電特性在運(yùn)算時保持相同,而保持電特性相同很重要的一點(diǎn)是使整個電路在運(yùn)算時翻轉(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ù)量在任何運(yùn)算步驟中都是一個常數(shù)。為實現(xiàn)這個目的,電路運(yùn)算步驟之間增加了一個中間步驟,最簡單的中間步驟的設(shè)置是在輸入?yún)?shù)和電路運(yùn)算完成之后設(shè)置系統(tǒng)中間值。中間步驟的設(shè)置能防止有用信息從功耗分析中泄漏出去。
假設(shè)這個基本電路單元處于中間步驟,即所有輸入都是同一個邏輯(都是1或都是0),若所有輸入都是0,那么4個與邏輯都進(jìn)行0 AND 0操作,然后再輸入有效的常數(shù)漢明權(quán)重碼數(shù)據(jù),則A1、A2和B1、B2各有一位從0翻轉(zhuǎn)到1。因此,在這個基本電路單元中,翻轉(zhuǎn)的晶體管數(shù)量總是一樣的。無論漢明碼的值是什么,基本單元的4個與門分別進(jìn)行了1 AND 0、1 AND 1、0 AND 0和0 AND 1操作。因為4個與門的結(jié)構(gòu)是相同的,不管A和B的輸入值是什么,這個基本單元的電特性都相同,所以DPA攻擊并不能從電特性中分析出輸入信號。表1根據(jù)晶體管的翻轉(zhuǎn)情況對基本單元的相同電特性進(jìn)行了統(tǒng)計說明(假設(shè)先設(shè)置所有輸入為0)。
表1:無論輸入信號是什么,
基本電路單元中翻轉(zhuǎn)的晶體管數(shù)量保持恒定
在基本單元進(jìn)行下一次運(yùn)算之前,其所有輸入值需要重新設(shè)置為0,這個操作使同等數(shù)量的晶體管翻轉(zhuǎn),攻擊者將無法從功耗分析上看出先前的輸入值。同樣,如果將所有輸入值設(shè)置為1也具有相同效果。本文把每次運(yùn)算之間的設(shè)置初始值的操作狀態(tài)稱為“中間態(tài)”。
多級組合邏輯的設(shè)計
在實際電路中,多級的組合邏輯將串接在一起,即基本單元的輸出端連接到下一級基本單元的輸入端。在這種情況下,中間態(tài)必須能非常方便地在各級基本單元之間傳輸,以保證整個電路的不可攻擊性。圖3顯示了一種可傳輸中間態(tài)的防DPA攻擊的基本單元。
圖3:一種可傳輸中間態(tài)的防DPA攻擊的基本單元
這種基本單元可以級連起來,連接成復(fù)雜的數(shù)字組合邏輯。該基本單元與圖2描述的電路具有相同的邏輯特性,但當(dāng)輸入0000或者1111時,它的輸出值是11或者00。輸出值11或者00能對下一級的基本單元進(jìn)行置位或者清零,這就實現(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)輸入進(jìn)行置位或者清零,輸出是00或者11,也能實現(xiàn)中間態(tài)的傳輸。以上這五種邏輯足以組合成復(fù)雜的數(shù)字邏輯運(yùn)算。
圖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)。這個不同點(diǎn)會把有用信息泄漏給DPA攻擊者。而在輸入數(shù)據(jù)之前,先把寄存器設(shè)置為00或11,那么當(dāng)輸入數(shù)據(jù)是常數(shù)漢明權(quán)重碼時,無論輸入值是01還是10,都只有一個寄存器翻轉(zhuǎn),從運(yùn)算狀態(tài)到中間狀態(tài)也只有一個寄存器翻轉(zhuǎn)。這樣可有效防止寄存器在數(shù)據(jù)傳輸過程中的信息泄漏。
在有存儲器的電路中,存儲器在存儲0或者存儲1時有不同的電特性,如電流大小不同;同樣,存儲器在讀取0或者讀取1時也有不同的電特性,如電流大小不同。DPA攻擊者會利用這個特性對芯片進(jìn)行分析,所以必須保證在對存儲器進(jìn)行操作時有相同的電特性?,F(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è)計方法進(jìn)行了介紹和說明,而組合邏輯基本單元、寄存器、存儲器等器件完全可以構(gòu)成一個復(fù)雜的防DPA攻擊的電路。
為證明這種方法的有效性,對兩種智能卡芯片進(jìn)行了對比。這兩種芯片都基于ISO/IEC7816協(xié)議,內(nèi)部加密系統(tǒng)采用192位3DES來實現(xiàn)。一種芯片是采用普通的電路設(shè)計方法設(shè)計實現(xiàn),另一種芯片在關(guān)鍵設(shè)計上采用了本文介紹的方法。用Cryptography Research 公司的DPA Workstation測試系統(tǒng)對前一種芯片進(jìn)行分析,15分鐘內(nèi)就破譯了芯片加密電路,取得密鑰。而對采用本方法實現(xiàn)的芯片,則無法用DPA Workstation測試系統(tǒng)進(jìn)行分析,因為該測試系統(tǒng)是基于數(shù)據(jù)在加密算法的運(yùn)行中出現(xiàn)的電流/電源變化來獲得密鑰,而現(xiàn)在,它無法從電流/電源變化中取得任何有效信息,自然也無法破譯芯片。
特別推薦
- 兆易創(chuàng)新GD32F30x STL軟件測試庫獲得德國萊茵TüV IEC 61508功能安全認(rèn)證
- 芯科科技第三代無線開發(fā)平臺引領(lǐng)物聯(lián)網(wǎng)發(fā)展
- MSO 4B 示波器為工程師帶來更多臺式功率分析工具
- 艾為電子推出新一代高線性度GNSS低噪聲放大器——AW15745DNR
- 瑞薩發(fā)布四通道主站IC和傳感器信號調(diào)節(jié)器, 以推動不斷增長的IO-Link市場
- e絡(luò)盟現(xiàn)貨供應(yīng) Abracon 新推出的 AOTA 系列微型鑄型電感器
- 加賀富儀艾電子推出支持Wi-Fi 6和藍(lán)牙的無線局域網(wǎng)/藍(lán)牙組合模塊
技術(shù)文章更多>>
- 一文掌握UV LED在空凈消殺領(lǐng)域的主要應(yīng)用
- 【“源”察秋毫系列】 Keithley在碳納米管森林涂層纖維復(fù)合材料的應(yīng)用
- 數(shù)字驅(qū)動工業(yè),智能賦能制造 AMTS & AHTE SOUTH CHINA 2024同期會議全公開!
- 團(tuán)體觀展招募!104CEF開啟組團(tuán)觀眾通道,解鎖更多禮遇
- 觸摸式OLED顯示屏有望重新定義汽車用戶界面
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
電阻觸控屏
電阻器
電阻作用
調(diào)速開關(guān)
調(diào)諧器
鼎智
動力電池
動力控制
獨(dú)石電容
端子機(jī)
斷路器
斷路器型號
多層PCB
多諧振蕩器
扼流線圈
耳機(jī)
二極管
二極管符號
發(fā)光二極管
防靜電產(chǎn)品
防雷
防水連接器
仿真工具
放大器
分立器件
分頻器
風(fēng)力渦輪機(jī)
風(fēng)能
風(fēng)扇
風(fēng)速風(fēng)向儀