專利名稱:利用數(shù)字功耗補(bǔ)償防功耗攻擊的硬件3des的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要應(yīng)用于高安全應(yīng)用領(lǐng)域的智能卡中,如電信卡、金融卡、社保卡,也可以適 用于各種需要進(jìn)行高速3DES運(yùn)算和需要防止對(duì)3DES進(jìn)行功耗攻擊的安全芯片中。
背景技術(shù):
美國國家標(biāo)準(zhǔn)局(NIST)于1977年公布由IBM公司研制的一種加密算法,批準(zhǔn)它做為非 機(jī)要部門使用的數(shù)據(jù)加密標(biāo)準(zhǔn),簡(jiǎn)稱DES(Data Encryption Standard)。自從公布以來,它 一直超越國界,成為國際上商用保密通信和計(jì)算機(jī)通信的最常用的加密算法。DES的密鑰為 56位,密鑰太短。3DES是DES的一種變形,采用三重加密的形式,將DES的密鑰擴(kuò)展到了 128位,具有更高的安全性。智能卡又稱集成電路卡,它將一個(gè)集成電路芯片鑲嵌于塑料基片中,封裝成卡的形式。 智能卡的集成電路芯片中含有CPU和存儲(chǔ)器,能夠執(zhí)行存儲(chǔ)器中的程序,實(shí)現(xiàn)很多復(fù)雜協(xié)議。 目前智能卡的應(yīng)用領(lǐng)域非常廣泛,包括金融、交通、醫(yī)療、電信、身份證明等多個(gè)行業(yè)。隨 著應(yīng)用的日益普及,智能卡的安全問題越來越突出。各種加密算法被加入到智能卡中來,3DES 就是常用的一種。3DES可以用軟件實(shí)現(xiàn),也可以用硬件實(shí)現(xiàn)。本發(fā)明用硬件實(shí)現(xiàn)3DES算法, 作為主CPU的協(xié)處理器,硬件實(shí)現(xiàn)的3DES運(yùn)算速度是軟件實(shí)現(xiàn)的幾十倍。功耗攻擊的方法是由P.kocher首先提出來的,它的提出給硬件實(shí)現(xiàn)的加密系統(tǒng)帶來很大 威脅。功耗攻擊通過檢測(cè)和分析芯片運(yùn)算時(shí)泄漏的功耗信息,可以在不破壞硬件的情況下得 到密鑰,是目前邊際信道攻擊中最強(qiáng)有力的手段之一。功耗攻擊使得許多在數(shù)學(xué)上證明是非常 安全的加密算法在硬件實(shí)現(xiàn)時(shí)出現(xiàn)了很大的隱患。由于智能卡管腳少,易于檢測(cè)其功耗,而 且智能卡應(yīng)用普遍,攻擊成功后可獲取的非法利益巨大,所以功耗攻擊的主要攻擊對(duì)象是智 能卡。功耗攻擊常用的攻擊方法有SPA (簡(jiǎn)單功耗分析,Simple Power Analyze)和DPA (差 分功耗分析,Differential Power Analyze)。發(fā)明內(nèi)容本發(fā)明的內(nèi)容在于實(shí)現(xiàn)了一種利用數(shù)字功耗補(bǔ)償防功耗攻擊的硬件3DES電路。CM0S集成 電路中的基本單元都由成對(duì)的晶體管組成,數(shù)字電路中的0、 1由高電平和低電平兩種狀態(tài)表 示?;締卧S持某一狀態(tài)的期間,成對(duì)的晶體管中總有一個(gè)導(dǎo)通, 一個(gè)截止,此時(shí)只有漏 電流存在,功耗比較小。但在狀態(tài)轉(zhuǎn)換時(shí),成對(duì)的晶體管會(huì)有瞬間的同時(shí)導(dǎo)通,電源到地之 間會(huì)有很大的瞬時(shí)電流。在時(shí)鐘沿到來時(shí),數(shù)據(jù)寄存器的保持和翻轉(zhuǎn)兩種狀態(tài)會(huì)有很大的功 耗差別。功耗攻擊的原理就是利用電路的這個(gè)特性。在硬件做3DES運(yùn)算時(shí),數(shù)據(jù)寄存器的保持還 是翻轉(zhuǎn),跟密鑰相關(guān)。DPA的步驟監(jiān)測(cè)3DES運(yùn)算期間的功耗,利用多次不同明文運(yùn)算的功 耗曲線,把功耗的微小差異加以放大,再對(duì)功耗曲線加以適當(dāng)?shù)臄?shù)學(xué)分析就可以算出密鑰。本發(fā)明利用數(shù)字電路功耗補(bǔ)償?shù)姆椒ㄡ槍?duì)硬件3DES電路(用于實(shí)現(xiàn)正常加密運(yùn)算功能, 下文中簡(jiǎn)稱3DES-1)設(shè)計(jì)了一個(gè)專門的功耗補(bǔ)償電路(下文中簡(jiǎn)稱3DES-2)。 3DES-1電路中 寄存器占了三分之一,其余為組合邏輯。功耗補(bǔ)償電路中針對(duì)寄存器和組合邏輯都設(shè)計(jì)了專 門的補(bǔ)償邏輯,使得當(dāng)3DES-1中的單元保持(或者翻轉(zhuǎn))時(shí),補(bǔ)償電路實(shí)現(xiàn)翻轉(zhuǎn)(或者保持), 兩者之和即可保持基本恒定。現(xiàn)有的3DES硬件設(shè)計(jì)中沒有防功耗攻擊的考慮,使得利用3DES運(yùn)算過程中泄漏的功耗 信息足以很快算出密鑰,從而對(duì)智能卡的安全構(gòu)成很大的威脅。加入本發(fā)明所描述的電路后, 不管輸入什么樣的明文和密鑰,硬件3DES運(yùn)算期間,總體功耗總是維持恒定,攻擊者無法利 用功耗信息來破譯密鑰,實(shí)現(xiàn)了智能卡加密運(yùn)算過程的安全。本發(fā)明用硬件方式實(shí)現(xiàn)3DES運(yùn)算,用數(shù)字電路補(bǔ)償?shù)姆椒?,在?shí)現(xiàn)髙速3DES運(yùn)算的同 時(shí),可以有效防止對(duì)3DES實(shí)施功耗攻擊。
圖1總體結(jié)構(gòu)2寄存器的數(shù)字補(bǔ)償電路圖3寄存器數(shù)字補(bǔ)償電路的仿真結(jié)果圖4電路結(jié)構(gòu)圖具體實(shí)施方式
圖1是本發(fā)明的總體結(jié)構(gòu)圖。硬件3DES-1模塊實(shí)現(xiàn)髙速3DES加密運(yùn)算。另外設(shè)計(jì)了一 個(gè)數(shù)字功耗補(bǔ)償電路模塊3DES-2,用于對(duì)3DES-1模塊進(jìn)行功耗補(bǔ)償。要進(jìn)行功耗補(bǔ)償,就 應(yīng)該使3DES-2的功耗變化情況與3DES-1模塊相反,從而使兩者之和恒定,無法從芯片的功 耗上分析密鑰的情況。經(jīng)分析,電路中某個(gè)節(jié)點(diǎn)的電平有如下四種情況A. 1 —>0; B. 0-M; C. 0_>0; D. 1一>1。其中A、 B兩種翻轉(zhuǎn)的情況功耗基本相同,C、 D兩種保持的情況功耗基本相同,但翻 轉(zhuǎn)的功耗要遠(yuǎn)大于保持的功耗。要補(bǔ)償3DES-1中的功耗變化,就要在3DES-2中設(shè)計(jì)對(duì)稱的 電路,使得當(dāng)3DES-1中的電路翻轉(zhuǎn)(或保持)時(shí),3DES-2中的對(duì)稱電路變化情況正好與其 相反保持(或翻轉(zhuǎn))。在3DES電路中,寄存器占了三分之一,所以首先分析如何對(duì)3DES-1中的一個(gè)寄存器進(jìn) 行補(bǔ)償。設(shè)計(jì)了如圖2所示的電路來對(duì)寄存器進(jìn)行功耗補(bǔ)償,圖中寄存器(1)表示3DES-1中 的某一位數(shù)據(jù)寄存器,寄存器(2)表示3DES-2中的對(duì)寄存器(l)進(jìn)行功耗補(bǔ)償?shù)募拇嫫鳌R獙?duì)寄存器(l)進(jìn)行補(bǔ)償,首先要判斷在時(shí)鐘沿到來時(shí)寄存器(l)是翻轉(zhuǎn)還是保持。這用一個(gè)異或門來實(shí)現(xiàn)。對(duì)寄存器(l)的輸入輸出進(jìn)行異或,在時(shí)鐘沿到來的時(shí)刻,如果輸入輸出 不同,異或門的值為l,則時(shí)鐘沿后寄存器(l)翻轉(zhuǎn);在時(shí)鐘沿到來的時(shí)刻,如果輸入輸出相 同,異或門的值為0,則時(shí)鐘沿后寄存器(l)保持。然后,設(shè)計(jì)寄存器(2)的輸入端的數(shù)據(jù)通路,有兩種保持,即把輸出直接做為輸入;翻 轉(zhuǎn),即把輸出反向后做為輸入。由圖2可見,寄存器(2)的翻轉(zhuǎn)通路上有一個(gè)反向器,為了防 止利用二路選擇器不同分支延時(shí)的不同來進(jìn)行功耗分析,在數(shù)據(jù)保持的通路上(二路選擇器 控制端為l情況下)設(shè)計(jì)了一個(gè)緩沖器,來補(bǔ)償數(shù)據(jù)翻轉(zhuǎn)通路上(二路選擇器控制端為0情 況下)的反相器的延時(shí)。最后,根據(jù)異或門判斷出的寄存器(l)是翻轉(zhuǎn)還是保持,來選擇寄存器(2)的不同輸入通 路。即把異或門的輸出做為寄存器(2)輸入通路的二路選擇器的控制端。當(dāng)寄存器(l)翻轉(zhuǎn)時(shí), 異或門的值為1,寄存器(2)輸入端的二路選擇器選擇保持通路。當(dāng)寄存器(l)保持時(shí),異或 門的值為0,寄存器(2)輸入端的二路選擇器選擇翻轉(zhuǎn)通路。即在時(shí)鐘沿到來時(shí)3DES-1中的 寄存器(l)和3DES-2中的寄存器(2)總是有且僅有一個(gè)翻轉(zhuǎn)、 一個(gè)保持。用HSPICE對(duì)一個(gè)寄存器的功耗補(bǔ)償電路進(jìn)行了仿真,仿真結(jié)果如圖3所示。圖3中第三 條波形是時(shí)鐘Clock;第四條波形是寄存器(l)的輸入數(shù)據(jù)Dataln;第六條波形是寄存器(l) 的輸出數(shù)據(jù)DataOut;第五條波形是寄存器(2)的輸出數(shù)據(jù);第一條波形是僅對(duì)一個(gè)普通寄存 器進(jìn)行仿真時(shí)的功耗曲線;第二條波形是對(duì)圖2所示的整個(gè)電路的功耗曲線。顯然,如果不 進(jìn)行功耗補(bǔ)償,當(dāng)?shù)诹鶙l波形的寄存器輸出有翻轉(zhuǎn)變化時(shí),與輸出保持相比,波形1的功耗 會(huì)有很明顯的尖峰。如果進(jìn)行了功耗補(bǔ)償,不管第六條波形的寄存器輸出是翻轉(zhuǎn)還是保持, 波形2的功耗維持基本恒定,無法看出是翻轉(zhuǎn)還是保持。上面介紹了一個(gè)寄存器的補(bǔ)償電路的設(shè)計(jì),推而廣之,3DES-1電路中的所有寄存器都可 以用上面的方式進(jìn)行補(bǔ)償,如圖4中所示。3DES-1中的64位數(shù)據(jù)寄存器的輸入輸出結(jié)果按 位進(jìn)行異或,64位的異或結(jié)果做為3DES-2中64位數(shù)據(jù)寄存器的輸入通路二路選擇器控制端。 3DES-2中每個(gè)寄存器的數(shù)據(jù)保持通路上都設(shè)計(jì)了緩沖器,來對(duì)數(shù)據(jù)翻轉(zhuǎn)通路上的反相器進(jìn)行 延時(shí)補(bǔ)償。3DES-2中的數(shù)據(jù)寄存器值與明文或密鑰無關(guān),只與3DES-1中對(duì)應(yīng)寄存器位的翻 轉(zhuǎn)還是保持情況有關(guān)。如圖4所示,3DES-2中也設(shè)計(jì)了輪變換組合邏輯。根據(jù)3DES-2中數(shù)據(jù)寄存器的翻轉(zhuǎn)(或 保持)情況,組合邏輯也進(jìn)行相應(yīng)的翻轉(zhuǎn)(或保持)。3DES-2中的輪變換組合邏輯與3DES-1 中的輪變換組合邏輯翻轉(zhuǎn)或保持的情況相反,正好對(duì)3DES-1中的輪變化組合邏輯進(jìn)行功耗補(bǔ) 償。圖4中沒有畫出子密鑰Ki生成部分的電路,實(shí)際上子密鑰生成部分的電路也是根據(jù)上面 的機(jī)制進(jìn)行功耗補(bǔ)償。本發(fā)明利用上述數(shù)字電路功耗補(bǔ)償?shù)姆绞剑梢杂行У姆乐构墓舻膶?shí)施。
權(quán)利要求
1.利用數(shù)字功耗補(bǔ)償防功耗攻擊的硬件3DES,其特征在于設(shè)計(jì)了兩個(gè)對(duì)稱的3DES硬件電路,其中一個(gè)3DES硬件電路(3DES-1)用于實(shí)現(xiàn)正常的3DES加密運(yùn)算,得到運(yùn)算結(jié)果;另一個(gè)3DES硬件電路(3DES-2)結(jié)果并不被使用,僅用于對(duì)第一個(gè)3DES硬件電路進(jìn)行功耗補(bǔ)償。
2. 根據(jù)權(quán)利要求1所述的兩個(gè)對(duì)稱的3DES硬件電路,其特征在于針對(duì)3DES硬件電路(3DES-1)中的每一個(gè)數(shù)據(jù)寄存器在3DES硬件電路(3DES-2)中都設(shè)計(jì)了對(duì)應(yīng)的功耗 補(bǔ)償電路對(duì)其進(jìn)行功耗補(bǔ)償;當(dāng)時(shí)鐘沿到來時(shí),這兩個(gè)模塊中對(duì)應(yīng)的寄存器對(duì)總是有 且僅有一個(gè)翻轉(zhuǎn), 一個(gè)保持。
3. 根據(jù)權(quán)利要求2的寄存器功耗補(bǔ)償電路,其特征在于在功耗補(bǔ)償電路中為了防止利用 二路選擇器不同分支延時(shí)的不同來進(jìn)行功耗分析,在數(shù)據(jù)保持的通路上(二路選擇器 控制端為l情況下)設(shè)計(jì)了一個(gè)緩沖器,來補(bǔ)償數(shù)據(jù)翻轉(zhuǎn)通路上(二路選擇器控制端 為0情況下)的反相器的延時(shí)。
4. 根據(jù)權(quán)利要求1的硬件3DES,其特征在于功耗補(bǔ)償模塊中所有數(shù)據(jù)寄存器的輸入與明 文和密鑰具體值無關(guān),只與3DES-1中每一輪運(yùn)算的每一位寄存器的變化情況有關(guān)。
5. 根據(jù)權(quán)利要求1的硬件3DES,其特征在于針對(duì)正常運(yùn)算模塊中的組合邏輯在功耗補(bǔ)償 電路中也設(shè)計(jì)了相應(yīng)的組合邏輯來進(jìn)行功耗補(bǔ)償。
全文摘要
利用數(shù)字功耗補(bǔ)償防功耗攻擊的硬件3DES,用于安全應(yīng)用領(lǐng)域的智能卡芯片。本發(fā)明利用數(shù)字電路功耗補(bǔ)償?shù)姆椒?,設(shè)計(jì)了兩個(gè)對(duì)稱的3DES硬件電路,其中一個(gè)用于得到加密結(jié)果,另一個(gè)僅用于對(duì)第一個(gè)3DES電路進(jìn)行功耗補(bǔ)償。此3DES硬件電路在智能卡中承擔(dān)加密運(yùn)算協(xié)處理器的作用。此項(xiàng)技術(shù)在實(shí)現(xiàn)高速3DES加密運(yùn)算的同時(shí),可有效防止智能卡領(lǐng)域的功耗攻擊。
文檔編號(hào)H04L9/06GK101150392SQ20061011326
公開日2008年3月26日 申請(qǐng)日期2006年9月21日 優(yōu)先權(quán)日2006年9月21日
發(fā)明者關(guān)洪波, 磊 湯, 胡曉波, 鄭曉光 申請(qǐng)人:北京中電華大電子設(shè)計(jì)有限責(zé)任公司