專利名稱:一種可重構(gòu)密碼處理器及抗功耗攻擊方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全和集成電路設(shè)計技術(shù)領(lǐng)域,尤其是一種利用可重構(gòu)方法實現(xiàn)的密碼處理器及抗功耗攻擊方法。
背景技術(shù):
隨著現(xiàn)代社會的日益信息化、數(shù)字化與網(wǎng)絡(luò)化,人們對信息安全技術(shù)的需求越來越廣泛和深入,信息安全產(chǎn)品已成為整個社會良性運轉(zhuǎn)的重要保障。其中高性能高安全性的密碼處理器是必不可少的基礎(chǔ)硬件,各種基于DES(Data Encryption Mandard,數(shù)據(jù)加密標(biāo)準(zhǔn))、AES(Advanced Encryption Standard,高級加密標(biāo)準(zhǔn))、RSA、ECC(Elliptic Curves Cryptography,橢圓曲線密碼算法)和HASH(哈希)等算法的密碼協(xié)處理器芯片得到了廣泛地研究和開發(fā)。
隨著集成電路設(shè)計技術(shù)的發(fā)展,很多安全密碼處理器采用片上系統(tǒng)(SoC)的解決方案以提高數(shù)據(jù)交互性能。但是在性能提高的同時,密碼處理器也面臨著各種各樣的安全風(fēng)險。密碼算法的數(shù)學(xué)安全性可以由算法本身得到保證,而近年來以功耗攻擊為代表的旁路攻擊(Side-Channel Attack, SCA)對密碼處理器的安全性提出了嚴(yán)峻的挑戰(zhàn),它能讓攻擊者通過分析密碼設(shè)備在密鑰操作時泄露的旁路信息(如功耗信息、電磁輻射等)來獲得關(guān)鍵的密鑰信息,其攻擊效率比傳統(tǒng)的數(shù)學(xué)攻擊高數(shù)個數(shù)量級,而且實施起來也更加簡單。 為了有效抵御旁路攻擊,研究者基于隱藏技術(shù)(Hiding)和掩碼技術(shù)(Masking)的思想進(jìn)行了廣泛而深入的研究。隱藏技術(shù)的基本思路是切斷密碼處理器處理的數(shù)據(jù)值與芯片旁路信息量之間的聯(lián)系;掩碼技術(shù)則通過隨機化密碼芯片所處理數(shù)據(jù)的中間值來提高安全性。然而,這些研究大都以較大的代價來換取密碼處理器安全性能的提高。例如已報道的波動差分邏輯電路,可以抵御150萬次樣本攻擊,但其代價是3倍的面積消耗卻只有1/4的運算速度。這使得集成密碼算法模塊的SoC芯片必須在功能靈活性、性能以及安全性之間進(jìn)行折衷。而在國民經(jīng)濟和社會發(fā)展中,諸如各種銀行卡類、POS機、安全識別儀器等實際應(yīng)用對密碼處理器提出了近乎苛刻的要求,即要求密碼處理器在有限的面積和功耗下實現(xiàn)較大的數(shù)據(jù)吞吐量并提供較高的安全性。如何在有限電路資源約束下實現(xiàn)多種加解密方法并能有效抵御旁路攻擊已成為了安全密碼處理器設(shè)計領(lǐng)域亟需解決的重要問題。
在這種情形下,可重構(gòu)思想應(yīng)運而生,即在實現(xiàn)不同密碼算法時將硬件軟件化,使硬件可以像軟件一樣被編程、修改和重用。利用可重構(gòu)陣列結(jié)構(gòu)設(shè)計密碼處理器的思想喚起了學(xué)術(shù)界極大的研究熱情,但目前仍處于起步階段。眾多學(xué)者針對RSA、HASH、AES等多種密碼算法的可重構(gòu)實現(xiàn)進(jìn)行了廣泛的研究。而針對近年來研究較為熱門的可重構(gòu)密碼處理器,尚未見到能令其有效抵御旁路攻擊的方法的相關(guān)報道。國際和國內(nèi)的研究主要集中在對可重構(gòu)密碼處理器的靈活性和性能兩方面,而在對可重構(gòu)密碼處理器的抗旁路攻擊、提升安全性方面,目前尚未有合理有效的解決方法,這成為可重構(gòu)密碼處理器面向?qū)嶋H應(yīng)用時一道必須攻克的障礙。發(fā)明內(nèi)容
發(fā)明目的針對上述現(xiàn)有密碼處理器在安全性方面存在的問題和不足,本發(fā)明的目的是提供一種高安全性的可重構(gòu)密碼處理器及抗功耗攻擊方法。
技術(shù)方案為實現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為一種可重構(gòu)密碼處理器,包括可重構(gòu)陣列、控制電路、功能配置單元和抗攻擊配置單元,其中功能配置單元通過控制電路將可重構(gòu)陣列配置為工作單元和閑置單元,抗攻擊配置單元使所述閑置單元產(chǎn)生隨機化的功耗。
本發(fā)明采用的另一種技術(shù)方案為一種利用可重構(gòu)密碼處理器實現(xiàn)的抗功耗攻擊方法,包括如下步驟
(1)功能配置功能配置單元將外部輸入指令解析成第一算法(即加解密運算算法)的參數(shù),并將可重構(gòu)陣列配置為工作單元和閑置單元,指定所述工作單元執(zhí)行第一算法;
(2)抗攻擊配置抗攻擊配置單元根據(jù)第二算法(即抗攻擊優(yōu)化配置算法)的指令來配置所述閑置單元做隨機化運算,產(chǎn)生隨機化的動態(tài)翻轉(zhuǎn)功耗,擾亂整體電路功耗與所處理數(shù)據(jù)之間的相關(guān)性,從而達(dá)到抗功耗攻擊的效果;
(3)進(jìn)行抗功耗攻擊的加解密運算需要加密的數(shù)據(jù)進(jìn)入所述工作單元按照第一算法進(jìn)行運算,同時閑置單元產(chǎn)生隨機功耗,以抵御功耗攻擊。
功耗攻擊的原理是用一定的方法凸顯出處理器在工作過程中的動態(tài)能量消耗與被處理的數(shù)據(jù)的相關(guān)性,如差分功耗攻擊利用數(shù)學(xué)統(tǒng)計的方法分析出所猜測的正確密鑰與錯誤密鑰產(chǎn)生的功耗差異性。如果能夠切斷功耗與所處理數(shù)據(jù)之間的相關(guān)性,就可以達(dá)到抗功耗攻擊的效果??芍貥?gòu)陣列的功能配置單元將外部輸入指令解析成加密算法的參數(shù) (如加密算法、密鑰值、密鑰長度)來配置一定的處理單元(Process Element,簡稱ΡΕ)用作指定的加解密算法。在加解密運算過程中,閑置子電路進(jìn)行隨機化操作,產(chǎn)生隨機化的功耗信息,從而影響整體功耗信息,切斷其與正在處理的數(shù)據(jù)之間的關(guān)聯(lián)性。
可重構(gòu)芯片的特性是可以根據(jù)不同的配置實現(xiàn)不同的功能。對于不同的密碼算法,可重構(gòu)密碼處理器的配置信息肯定不同,所使用的處理單元也不相同,因此相應(yīng)的閑置子電路也不相同。這就需要有不同的隨機化配置。這些針對不同密碼算法的隨機化配置能夠使閑置子電路做隨機化操作,產(chǎn)生隨機化的功耗信息??构襞渲脝卧ㄟ^隨機化配置閑置子電路,使其產(chǎn)生隨機化功耗掩蓋運算過程中的實際功耗,從而令功耗攻擊難以奏效。 當(dāng)功能配置信息改變后,隨機化配置也會相應(yīng)的改變,選擇新的抗攻擊配置指令,控制閑置子電路重新配置,因此所述的隨機化配置方法適用于多種不同的密碼算法。
所述的隨機化配置方法,對閑置子電路做功能隔離,并配置閑置子電路做隨機數(shù)賦值操作,隨機數(shù)異或操作或者其他隨機化數(shù)值運算。每個可重構(gòu)處理單元都可以配置實現(xiàn)多種運算,在不同的工作模式下實現(xiàn)不同的運算。在閑置子電路中,每一個閑置的可重構(gòu)處理單元(ΡΕ,即閑置單元),都可以重新配置其運算,令其做隨機數(shù)賦值操作,隨機數(shù)異或操作或者其他隨機化數(shù)值運算。具體的運算由隨機化配置信息決定。
所述功能配置和抗攻擊配置可包括如下步驟
1)讀取互連網(wǎng)絡(luò)配置信息,配置密鑰計算模塊的硬件電路;
2)計算得到第一算法所需密鑰,并將該密鑰存儲至密鑰存儲單元中;
3)讀取全局變量存儲配置信息,配置全局變量存儲單元;
4)讀取剩下模塊的互連網(wǎng)絡(luò)配置信息,配置相應(yīng)的硬件電路;
5)讀取第二算法的信息,配置閑置單元做隨機化運算。
6)檢測配置工作是否完成,如果沒有完成,則返回步驟3);如果已經(jīng)完成,則繼續(xù)步驟⑶。
有益效果本發(fā)明具有電路開銷小,資源利用率高,靈活性高,抗攻擊能力強,適用于多種密碼算法,可擴展,可升級等特點,可用于信息安全和計算機體系結(jié)構(gòu)相關(guān)領(lǐng)域,為設(shè)計高安全性、高靈活性、面積適中的密碼處理器芯片提供新的解決方案。
圖1為可重構(gòu)密碼處理器總體結(jié)構(gòu)框圖2為可重構(gòu)陣列經(jīng)過配置后的工作單元和閑置單元路徑示意圖3為可重構(gòu)密碼處理器工作流程圖4為可重構(gòu)密碼處理器的配置流程圖5為經(jīng)過差分功耗攻擊得到的差分功耗曲線圖。
具體實施方式
下面結(jié)合附圖和具體實施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
如圖1所示,可重構(gòu)密碼處理器包括可重構(gòu)陣列、控制電路、功能配置單元以及抗攻擊配置單元。其中可重構(gòu)陣列是可重構(gòu)芯片的主體部分,它可以根據(jù)不同的配置信息被配置實現(xiàn)不同的功能;其基本組成單元是可重構(gòu)處理單元(PE),它們是一些功能相同的小單元,對可重構(gòu)陣列的配置其實就是配置這些處理單元的工作與否,因此總是會有一些處理單元處于工作狀態(tài)(為工作單元),而另一些處于閑置狀態(tài)(為閑置單元),即產(chǎn)生本方法所利用的閑置子電路。功能配置單元接收并存儲來自總線的配置信息,控制電路根據(jù)功能配置單元存儲的配置信息將可重構(gòu)陣列配置為指定的密碼算法;而抗攻擊配置單元根據(jù)抗攻擊優(yōu)化配置算法的指令使閑置子電路做隨機化操作,產(chǎn)生隨機化的功耗值,擾亂整體電路功耗與所處理數(shù)據(jù)之間的相關(guān)性,使其達(dá)到抵御功耗攻擊的目的。
如圖2所示,為可重構(gòu)密碼處理器在配置完成后的工作單元和閑置單元路徑示意圖??芍貥?gòu)功耗隨機化模塊就是利用圖2非工作路徑上的PE單元工作的。假定現(xiàn)有的配置加密算法路徑由灰色的PE運算單元組成,在選定加密算法路徑后,路徑外白色的PE單元并不工作。所述的隨機化配置方法,就是隨機抽取部分閑置子電路進(jìn)行隨機化偽操作(操作結(jié)果并不輸出,不影響密碼算法功能),這些偽操作將產(chǎn)生隨機化的功耗,從而使得攻擊者無法捕捉到與密鑰具有相關(guān)性的功耗信息。
如圖3所示,可重構(gòu)密碼處理器初始化后,可重構(gòu)陣列的功能配置單元將外部輸入指令解析成加密算法的參數(shù)(如加密算法、密鑰值、密鑰長度)來配置一定的處理單元用作指定的加解密算法??构魞?yōu)化配置算法預(yù)先對密碼處理器作指定加解密算法的功耗攻擊進(jìn)而得到最優(yōu)化的抗功耗攻擊配置方法。抗攻擊配置單元根據(jù)抗攻擊優(yōu)化配置算法的運算結(jié)果來配置閑置PE單元。配置完成后,數(shù)據(jù)進(jìn)入可重構(gòu)加解密模塊進(jìn)行運算并輸出結(jié)果,此時閑置PE單元產(chǎn)生一定的功耗配合工作中的加解密模塊,使密碼處理器整體功耗能夠掩蓋運算過程中的實際功耗,從而令功耗攻擊難以奏效。當(dāng)功能配置信息改變后,抗攻擊優(yōu)化配置算法也會相應(yīng)的改變,選擇新的抗攻擊配置指令,控制閑置PE單元重新配置。
如圖4所示,可重構(gòu)密碼處理器初始化后,首先讀取互連網(wǎng)絡(luò)配置信息配置密鑰計算部分的硬件電路,之后計算得到所需密鑰(如在DES算法中是各輪的子密鑰),把它存到密鑰存儲單元中。然后讀取全局變量存儲配置信息,配置全局變量存儲單元。所謂的全局變量存儲單元是指在加解密過程中需要預(yù)先配置的數(shù)據(jù)存儲模塊,例如在DES算法中就是指8個S盒。之后讀取剩下功能模塊的互連網(wǎng)絡(luò)配置信息,配置相應(yīng)的硬件電路。最后讀取抗攻擊配置信息,配置閑置子電路做隨機化運算。然后檢測配置工作是否完成,如果沒有完成,則從配置全局變量存儲單元開始繼續(xù)配置;如果配置完成,則可重構(gòu)密碼處理器就可以進(jìn)行加解密操作了,整個配置工作也就完成了。
一個實施案例
在一種可重構(gòu)密碼處理器的抗功耗攻擊方法的一個具體實施案例中,采用專門設(shè)計的粗粒度可重構(gòu)陣列密碼處理器,并實現(xiàn)了 AES、DES等多種算法,下面以DES算法具體實現(xiàn)為例,用基于漢明距離功耗模型的差分功耗分析攻擊作為攻擊手段來說明本發(fā)明的抗攻擊方法。根據(jù)CMOS電路的漢明距離功耗模型,用電路中的寄存器在某個特定時段內(nèi)0 — 1 轉(zhuǎn)換和1 — 0轉(zhuǎn)換的總數(shù)量來刻畫電路在該時段內(nèi)的功率消耗。因此,針對功耗攻擊,在該案例中,只關(guān)心密碼處理器中寄存器的使用情況。該案例中的可重構(gòu)陣列所使用的寄存器有
1.用于S盒置換的寄存器,4位的有8個,8位的有1個,分別稱為RS1-8和RS9 ;
2.用于其他置換的寄存器有4個,都是64位,分別稱為RP1-4;
3.用于異或的寄存器有12個,都是64位,分別稱為RX1-12 ;
4.中間寄存器有2個,都是64位,稱為RT1-2 ;
共計27個寄存器,1192位。根據(jù)漢明距離功耗模型,將這些寄存器的在某一時刻的漢明距離值總和視為芯片整體功耗。
使用該可重構(gòu)陣列,實現(xiàn)了 DES算法,并對它做了安全性攻擊測試。在實現(xiàn)的 DES中,使用的寄存器包括RS1-8、RP1-4、RX1-6、RT0-1,共800位。不使用的寄存器有R9、 RX7-12,共計 392 位。
根據(jù)所述的一種可重構(gòu)密碼處理器的抗功耗攻擊方法,令閑置子電路做隨機化操作。在該案例中,在每一輪操作的同時,賦予所有閑置的392位寄存器隨機值,這些寄存器的輸入連接至隨機數(shù)輸入端,脫離原先的功能,因此寄存器翻轉(zhuǎn)情況是隨機化的。隨機數(shù)產(chǎn)生為硬件偽隨機數(shù)發(fā)生器。
做了 1000組明文測試,獲取所有1192位寄存器的總漢明距離值,然后做差分功耗攻擊。根據(jù)差分功耗攻擊原理,如果得到的某一差分功耗曲線中有明顯的尖峰出現(xiàn),則說明該曲線所對應(yīng)的子密鑰猜測是正確的,即攻擊者獲得了正確的子密鑰。而如果對所有的64 個子密鑰猜測值,對應(yīng)的差分功耗曲線均沒有尖峰出現(xiàn),那么就說明閑置子電路產(chǎn)生的隨機化功耗擾亂了密碼處理器所處理數(shù)據(jù)與其功耗之間的關(guān)聯(lián),也就說明所述的一種可重構(gòu)密碼處理器的抗功耗攻擊方法達(dá)到了抗功耗攻擊的目的。在該案例中,經(jīng)過差分功耗攻擊得到的DES算法第一輪的所有64個猜測子密鑰的差分功耗曲線如圖5所示。
從圖5中可以看到在所有的64個曲線中均沒有明顯的尖峰出現(xiàn),攻擊者無法得到正確的子密鑰,這就說明所述的一種可重構(gòu)密碼處理器及抗功耗攻擊方法具有抗功耗攻擊的能力。
該案例證明一種可重構(gòu)密碼處理器及抗功耗攻擊方法是切實可行的,能夠達(dá)到可重構(gòu)密碼處理器抗功耗攻擊的目的。
權(quán)利要求
1.一種可重構(gòu)密碼處理器,其特征在于包括可重構(gòu)陣列、控制電路、功能配置單元和抗攻擊配置單元,其中功能配置單元通過控制電路將可重構(gòu)陣列配置為工作單元和閑置單元,抗攻擊配置單元使所述閑置單元產(chǎn)生隨機化的功耗。
2.一種利用如權(quán)利要求1所述可重構(gòu)密碼處理器實現(xiàn)的抗功耗攻擊方法,其特征在于,包括如下步驟(1)功能配置功能配置單元將外部輸入指令解析成第一算法的參數(shù),并將可重構(gòu)陣列配置為工作單元和閑置單元,指定所述工作單元執(zhí)行第一算法;(2)抗攻擊配置抗攻擊配置單元根據(jù)第二算法的指令來配置所述閑置單元做隨機化運算;(3)進(jìn)行抗功耗攻擊的加解密運算需要加密的數(shù)據(jù)進(jìn)入所述工作單元按照第一算法進(jìn)行運算,同時閑置單元產(chǎn)生隨機功耗。
3.根據(jù)權(quán)利要求2所述的抗功耗攻擊方法,其特征在于所述功能配置和抗攻擊配置包括如下步驟1)讀取互連網(wǎng)絡(luò)配置信息,配置密鑰計算模塊的硬件電路;2)計算得到第一算法所需密鑰,并將該密鑰存儲至密鑰存儲單元中;3)讀取全局變量存儲配置信息,配置全局變量存儲單元;4)讀取剩下模塊的互連網(wǎng)絡(luò)配置信息,配置相應(yīng)的硬件電路;5)讀取第二算法的信息,配置閑置單元做隨機化運算。
4.根據(jù)權(quán)利要求3所述的抗功耗攻擊方法,其特征在于還包括步驟6)檢測配置工作是否完成,如果沒有完成,則返回步驟3);如果已經(jīng)完成,則繼續(xù)步驟(3)。
5.根據(jù)權(quán)利要求2所述的抗功耗攻擊方法,其特征在于所述隨機化運算為隨機數(shù)賦值或隨機數(shù)異或運算。
全文摘要
本發(fā)明公開了一種可重構(gòu)密碼處理器,包括可重構(gòu)陣列、控制電路、功能配置單元和抗攻擊配置單元,其中功能配置單元通過控制電路將可重構(gòu)陣列配置為工作單元和閑置單元,抗攻擊配置單元使所述閑置單元產(chǎn)生隨機化的功耗。本發(fā)明還公開了一種利用可重構(gòu)密碼處理器實現(xiàn)的抗功耗攻擊方法。本發(fā)明具有電路開銷小,資源利用率高,靈活性高,抗攻擊能力強,適用于多種密碼算法,可擴展,可升級等特點,可用于信息安全和計算機體系結(jié)構(gòu)相關(guān)領(lǐng)域,為設(shè)計高安全性、高靈活性、面積適中的密碼處理器芯片提供新的解決方案。
文檔編號G06F21/00GK102509036SQ201110302279
公開日2012年6月20日 申請日期2011年9月28日 優(yōu)先權(quán)日2011年9月28日
發(fā)明者余云帆, 劉新寧, 單偉偉, 時龍興, 田朝軒, 陸寅超 申請人:東南大學(xué)