專利名稱:應用于des加密芯片的差分功耗分析屏蔽電路的制作方法
技術領域:
本發(fā)明屬于信息安全技術領域,具體涉及一種加密芯片的針對差分功耗分析攻擊的防御電路。
背景技術:
隨著智能卡和計算機網絡的迅速發(fā)展與不斷普及,信息安全問題日益突出,因此各種形式的專用密碼電路和密碼算法處理器廣泛地應用于各類產品中。目前,常用的密碼算法大致可以分為兩類以DES、AES為代表的對稱算法和以RSA、ECC為代表的非對稱算法。DES(Data Encryption Standard)是目前使用非常廣泛的數(shù)據(jù)加密方法,它于1977年被美國國家標準局作為第46號聯(lián)邦信息處理標準而采用。
任何安全產品或者密碼系統(tǒng)都必須面對一個如何防御攻擊和窺測的問題。傳統(tǒng)攻擊方法是一種數(shù)學攻擊手段,通過大量的數(shù)學計算來搜索密碼系統(tǒng)的密鑰。該類攻擊方法的一個直接的例子就是強力攻擊(brute force attack)嘗試所有可能的密鑰,直至找到正確的密鑰。隨著計算機性能的增強,這種方法也越來越具有可行性,但是仍需要耗費大量的時間和物力,而且如果密鑰的長度增加,攻擊難度則會急劇增加。近些年來,出現(xiàn)了一種新的強有力的攻擊方法,人們稱之為旁道攻擊(side-channel attack)。一個實際應用的密碼系統(tǒng),其硬件部件在運行過程中不可避免要泄露一些信息,諸如功耗、時間、電磁波、以及差錯信息等。利用上述信息對密碼系統(tǒng)進行攻擊和窺測已成為信息安全芯片產品的巨大威脅,其危害遠遠大于傳統(tǒng)的攻擊手段。差分功耗分析(differential power analysis,DPA)就是一種極為有效的旁道攻擊,它對內嵌DES算法的智能卡的成功攻擊也被廣泛報道。差分功耗分析是一種統(tǒng)計分析方法,它通過收集分析大量的不同數(shù)據(jù)激勵下的芯片功率信號,根據(jù)芯片中運行的相應的密碼算法確定一個判決方程,并依據(jù)判決方程的值將所收集的功率信號分為兩大類,最后通過比較兩類功率信號的均值之間的差異來驗證攻擊者對密鑰的猜測,從而快速高效的破解DES算法的密鑰。
差分功耗分析的物理基礎是CMOS邏輯門功耗大小與其是否翻轉密切相關,使得電路中運行的數(shù)據(jù)的0、1狀態(tài)與電路的功率信號具有一定的相關性。DES加密電路的差分功耗分析的基本思想是輸入若干組明文(PTI),收集相應的加密電路若干組功率信號Si[j](i=1~m),i表征了不同的輸入明文,j表征信號采樣的時間點。然后定義一判決方程D(CTO,Kb)→{0,1},CTO為密文,Kb為b位子密鑰。依據(jù)假定的Kb,計算方程的值將功率信號分為兩類S0={Si[j]D=0} (1)S1={Si[j]D=1} (2)令T[j]=1|S1|ΣSi[j]∈S1Si[j]-1|S0|ΣSi[j]∈S0---(3)]]>|S0|+|S1|=m(4)DES算法的判決方程DD(C1,C6,K16)=C1SBOXi(C6,SK16)(5)C1代表密文CTO的某一比特位,SK16為最后一次循環(huán)(第十六次)的子密鑰進入一個S盒子的六個比特位,C6代表CTO的六個比特位,其與K16相異或。SBOX1為第一個S盒子查找表的非線性運算。
如果T[j]出現(xiàn)明顯的尖峰值則說明猜到了正確的子密鑰(確切的說是密鑰的一部分),反之則說明猜測的子密鑰錯誤。詳細的實現(xiàn)方法可以參考P.Kocher,J.Jaffe,and B.Jun.Differential Power Analysis.Proceeding of Advances in cryptography(CRYPTO’99),1999.388-397.
關于如何抵御差分功耗分析,研究者提出了多種方案,比如增加電路噪聲,數(shù)據(jù)屏蔽,采取基于敏感放大器的邏輯和異步邏輯來設計電路等,但是這些方案需要引入額外的噪聲和隨機數(shù),改變算法流程,甚至更改主流的設計邏輯。抵御差分功耗分析的關鍵在于降低其信噪比,一個直接的方法是加入電路噪聲,但是噪聲產生電路會增加電路的功耗,而且確定防御差分功耗分析需增加多大噪聲也是一個非常困難的問題,因此從另一個角度出發(fā),努力減小差分功率信號的值,同樣可以降低差分功耗分析的信噪比,若電路不同狀態(tài)下的功率差異趨于零,則差分功耗分析將失效。
發(fā)明內容
本發(fā)明的目的是提出一種應用于DES加密芯片的能夠防御差分功耗分析的屏蔽電路。
本發(fā)明提出的應用于DES加密芯片的差分功耗分析屏蔽電路,由屏蔽單元1和互補寄存器單元2,結合DES加密方案的基本架構,互相電路連接所構成,其結構見圖1所示。本發(fā)明中,DES加密流程的本輪運算密鑰時,前一輪運算的結果被送入寄存器L15和R15中,寄存器L15由兩部分組成28比特的普通寄存器7和4比特互補寄存器2(其輸出為8比特)。寄存器L15和R15的輸出和本輪的密鑰一起經過擴展4、S盒子查找表3、置換5、異或10等運算后輸入到寄存器R16和L16中。在前一輪運算的結果被送入寄存器L15和R15的同時,部分結果和本輪子密鑰SK16,以及預先設置的虛假子密鑰SK*16被送入屏蔽單元1,屏蔽單元1的輸出存入寄存器D’中。
本發(fā)明主要針對DES加密算法流程的第十六輪運算的密鑰,前一輪即第15輪運算的結果L15和R16分別被送入寄存器L15和寄存器R15中。寄存器L15和寄存器R16的輸出和第16輪的密鑰一起經過擴展4、S盒子查找表3、置換5、異或10等運算后輸入到寄存器R16和L16中。第15輪運算結果被送入寄存器L15和R15的同時,部分結果和第16輪密鑰和虛假子密鑰被送入屏蔽單元1。
本發(fā)明中的互補寄存器2的結構如圖2所示,由兩個寄存器R1、R2和一個反相器G1,以及相應的負載電路G2、G3、G4、G5構成。兩個寄存器初始狀態(tài)相同,輸出負載相同,時鐘沿賦值??梢?,不論輸入為0或是1,兩個互補寄存器必是一個翻轉,另一個不翻轉,因此總的功耗在兩種情況下沒有差別。通過對比采用互補寄存器和未采用互補寄存器的DES加密電路的差分功耗分析結果(如圖3,圖4所示),可以證明互補寄存器能夠有效地減小DES加密電路的差分功率信號,從而使攻擊者無法通過差分功耗分析獲取密鑰。
本發(fā)明中的屏蔽單元1的結構如圖5所示,其輸入為6比特密文,6比特虛假子密鑰SK*16,6比特真實子密鑰SK16和4比特前一輪運算的結果,其輸出為4比特D’。其邏輯表達式為D′=L151SBOXi(C6SK16)SBOXi(C6SK*16),主要運算單元為異或門和兩S盒子查找表,兩個6比特異或運算單元和屏蔽單元的輸入相連,異或運算的輸出與S盒子查找表的輸入相連,S盒查找表的輸出接到兩個順序連接的4比特異或運算單元上,4比特異或運算單元的輸出即為屏蔽單元的輸出。該屏蔽單元電路能夠在攻擊者進行差分功耗分析時給出錯誤的差分功率信號,從而誤導攻擊者將虛假子密鑰當作正確的子密鑰。圖6,圖7給出了添加屏蔽單元1后DES電路的差分功率信號。
圖1為差分功耗分析屏蔽電路的總體結構示意圖。
圖2為互補寄存器結構圖。
圖3為應用普通寄存器結構的DES電路差分功率信號。
圖4為應用互補結構寄存器的DES電路差分功率信號。
圖5為屏蔽單元結構圖。由異或邏輯電路和S盒子查找表組成。
圖6為添加屏蔽單元1后DES電路的差分功率信號(虛假子密鑰與隨機選取子密鑰對比)。
圖7為添加屏蔽單元1后DES電路的差分功率信號(虛假子密鑰與真實子密鑰對比)。
圖中標號1為屏蔽單元,2為互補寄存器,3為S盒子查找表,4為擴展模塊,5為置換模塊,6為寄存器D’,L15為寄存器,R16為寄存器,7為28比特寄存器,8為8比特寄存器,9為28比特寄存器,10為異或運算器。
具體實施例方式
下面結合附圖進一步描述本發(fā)明。
DES加密流程分為三個階段。首先,64比特的明文經過一個初始置換后,比特重排產生了經過置換的輸入。接下來的階段是由對同一個函數(shù)進行16次循環(huán)組成的,這個函數(shù)本身既包含有置換又包含有替代函數(shù)。最后一個循環(huán)(第16輪)的64比特輸出是輸入明文和密鑰的函數(shù),它的左右兩個部分經過交換后得到預輸出。最后通過一個與初始置換相逆的置換就生成了64比特密文。
采用差分功耗分析方法的攻擊者根據(jù)第16輪循環(huán)的運算過程,選定判決方程,依次攻擊進入每個S盒子的第16輪子密鑰,從而得到共48比特密鑰信息,然后只要窮舉得到剩余的8比特密鑰,即可完成對全部密鑰信息的破解。攻擊者判別預設的密鑰的正確性的依據(jù)是差分功率信號是否出現(xiàn)尖峰,而出現(xiàn)尖峰的原因是電路在處理0和1狀態(tài)是功耗存在差異。因此本發(fā)明提出的互補寄存器結構能夠使寄存器在不同輸入(0或1)時功耗保持恒定,從而去除差分功率信號的尖峰,有效的抑制了差分功耗分析攻擊。如圖3所示,圓形標注的曲線為根據(jù)正確的密鑰分類得到的T[j]。正方形標注的曲線為根據(jù)錯誤的密鑰分類得到的T[j],可見在未采用互補寄存器時,正確分類的差分功率信號與錯誤分類的差分功率信號相比始終具有更大的偏置峰值,差分功耗分析能夠區(qū)分這兩類信號,因此密鑰的猜測過程也能順利完成。如圖4所示,圓形標注的曲線為根據(jù)正確的密鑰分類得到的T[j]。正方形標注的曲線為根據(jù)錯誤的密鑰分類得到的T[j],可見由于采用互補寄存器,正確分類的差分功率信號的值有了大幅度的減小,偏置峰值甚至能夠小于錯誤分類的差分功率信號,兩類信號已經達到難以區(qū)分的程度。因此通過差分功耗分析對密鑰進行猜測是無法進行的。
互補結構能夠提高電路的抗攻擊能力,但是它也帶來電路面積和平均功耗的上升。DES加密電路有8個S盒子,L15寄存器也為32比特,如采用互補結構,需要增加32個寄存器以及相應的負載電路,顯然這一開銷不小。綜合考慮抗攻擊性能和硬件開銷,可以對L15的部分位采用互補結構,即對進入S盒子的8段密鑰中的若干段進行保護。當然如果被保護的密鑰位數(shù)較少的話,攻擊者可以先通過差分功耗分析獲得未保護部分的密鑰,然后用窮舉搜索的辦法對剩余密鑰進行強力攻擊(brute force attack),因此被保護的密鑰位數(shù)必須足夠多,使得強力攻擊不可行或者不合算。針對這個問題,本發(fā)明在少部分L15寄存器采用互補結構的基礎上,設置屏蔽單元,最終形成如圖1所示的差分功耗分析屏蔽電路,從而大幅度地降低電路的硬件開銷,并有效防御差分功耗分析和強力攻擊。
屏蔽單元的工作原理是由DES差分功耗分析的判決方程可知,若有一個錯誤的密鑰SK*16,那么可得D′(C1,C6,K16)=C1SBOXi(C6,SK*16) (6)顯然D′的值是不能正確反映電路中某一位寄存器的賦值狀況的,因而由D′分類得到的差分功率信號不會產生明顯的偏置尖峰,但是如果在電路中設置這樣一位寄存器,使得該寄存器的賦值與D′相一致,即Reg=D′,那么根據(jù)D′的0、1狀態(tài)分類的差分功率信號必然出現(xiàn)明顯的偏置尖峰。同時對于與一個S盒子的輸出相異或(XOR)的4位寄存器采用互補結構進行保護,這樣攻擊者在選中正確密鑰時反而無法觀察到偏置尖峰,于是攻擊者會認為SK*16就是正確密鑰。這樣,當攻擊者完成對8個S盒子的攻擊后,得到的是一個錯誤密鑰,而且攻擊者也無法知道在攻擊哪6比特子密鑰時發(fā)生了錯誤,因此也不能進行有針對性的強力攻擊以獲得這一子密鑰。
由DES算法可知,C1=L151SBOXi(C6SK16) (7)C1代表密文CTO的某1比特位,C6代表密文CTO的某6比特位,L151代表L15寄存器的某1比特位,SBOXi代表某個S盒子的非線性運算。由式(6),(7)可得,D′=L151SBOXi(C6K16)SBOXi(C6K′16) (8)根據(jù)式(8)的邏輯就可形成屏蔽單元的電路。添加屏蔽單元后,只需對4位寄存器(與一個S盒子相關的)采用互補結構進行保護,而可以通過偽造的差分功率信號導致攻擊者發(fā)生誤判,有效地抑制差分功耗分析。
如圖6所示,圓形標注的曲線為根據(jù)隨機選擇的密鑰分類得到的T[j],正方形標注的曲線為根據(jù)屏蔽單元設置的錯誤密鑰分類得到的T[j]。如圖7所示,圓形標注的曲線為根據(jù)正確的密鑰分類得到的T[j],正方形標注的曲線為根據(jù)屏蔽單元設置的錯誤密鑰分類得到的T[j]。由圖6,圖7可見,與按照正確密鑰或其它隨機選擇的密鑰進行分類得到的差分功率信號相比,按照預設的錯誤密鑰進行分類得到的差分功率信號具有更明顯的偏置尖峰,因此差分功耗分析屏蔽電路能夠導致攻擊者發(fā)生誤判,從而有效的保護DES電路的密鑰。
權利要求
1.一種應用于DES加密芯片的差分功耗分析屏蔽電路,其特征在于由屏蔽單元(1)和互補寄存器單元(2),結合DES加密方案的基本架構,經電路連接所構成,前一輪運算的結果被送入寄存器(L15)和(R15)中,寄存器(L15)由兩部分組成28比特的普通寄存器(7)和(4)比特互補寄存器(2);寄存器(L15)和(R15)的輸出和本輪的密鑰一起經過擴展(4)、S盒子查找表(3)、置換(5)、異或(10)運算后輸入到寄存器(R16)和(L16)中;在前一輪運算的結果被送入寄存器(L15)和(R15)的同時,部分結果和本輪子密鑰SK16,以及預先設置的虛假子密鑰SK*16被送入屏蔽單元(1),屏蔽單元(1)的輸出存入寄存器D’中。
2.根據(jù)權利要求1所述的差分功耗分析屏蔽電路,其特征在于所述的屏蔽單元(1)由兩個S盒子查找表和異或邏輯電路組成,其輸入為6比特密文、6比特虛假子密鑰SK*16、6比特真實子密鑰SK16和4比特第十五輪運算的結果,其輸出為4比特D’,邏輯表達式為D′=L151SBOXi(C6K16)SBOXi(C6K′16)。
3.根據(jù)權利要求1所述的差分功耗分析屏蔽電路,其特征在于所述的互補寄存器單元(2)由兩個寄存器和一個反相器,以及相應的負載電路G2、G3、G4、G5組成;兩個寄存器初始狀態(tài)相同,輸出負載相同,時鐘沿賦值;兩個寄存器的輸入互為反相,不論輸入為0或是1,兩個互補寄存器必是一個翻轉,另一個不翻轉,總的動態(tài)功耗保持恒定。
全文摘要
本發(fā)明屬于信息安全技術領域,具體為一種應用于DES加密芯片的差分功耗分析屏蔽電路。由屏蔽單元和互補寄存器單元,結合DES加密方案的基本架構,互相連接所構成。本發(fā)明主要針對DES加密流程的第十六輪運算的密鑰,第十五輪運算的結果被送入寄存器L15和R15,寄存器L15由兩部分組成28比特的普通寄存器和4比特互補寄存器。在第十五輪運算的結果被送入寄存器L15和R15的同時,部分結果和第十六輪子密鑰以及預先設置的虛假子密鑰被送入屏蔽單元。本發(fā)明不但能消除DES加密過程中的差分功率信號,而且能通過偽造的差分功率信號導致攻擊者發(fā)生誤判,從而以較小的硬件代價保護DES加密芯片的密鑰。
文檔編號H04L9/06GK1753357SQ20051002891
公開日2006年3月29日 申請日期2005年8月18日 優(yōu)先權日2005年8月18日
發(fā)明者曾曉洋, 韓軍, 陳俊, 郭亞煒 申請人:復旦大學, 上海微科集成電路有限公司