面向des算法電路的差分功耗攻擊測試方法
【專利摘要】本發(fā)明公開了一種面向DES算法電路的差分功耗攻擊測試方法,DES算法是一種廣泛應用的分組對稱加密算法,本發(fā)明對DES算法電路在設計階段進行差分功耗攻擊測試,過程包括:(1)功能仿真及功耗樣本獲??;(2)功耗樣本預處理;(3)假設功耗樣本獲?。唬?)相關系數(shù)的計算和攻擊結果分析。本發(fā)明僅采樣有變化的功耗點,節(jié)省大量功耗樣本數(shù)據,大幅降低功耗攻擊計算量,具有評估效率高、速度快的優(yōu)點,更重要的是,能夠在電路設計階段進行功耗攻擊測試,從而提前評估密碼電路的抗攻擊能力,降低DES電路的流片風險。
【專利說明】面向DES算法電路的差分功耗攻擊測試方法
【技術領域】
[0001]本發(fā)明涉及集成電路的信息安全領域,具體涉及DES密碼算法電路的差分功耗攻擊測試方法。
【背景技術】
[0002]進入21世紀,科技迅猛發(fā)展,社會信息化已經是大勢所趨,生活變得信息化,數(shù)字化和網絡化,人們對信息的依賴性不斷增強。隨著計算機、網絡、通訊技術與集成電路技術的發(fā)展,安全芯片被廣泛應用于新一代IC (集成電路)銀行卡,小區(qū)或公司環(huán)境的門禁系統(tǒng)智能卡,手機中的語音加密芯片等各種需要信息安全的環(huán)境中。由于集成電路內部的電路結構非常復雜,同時具有封閉性好、不易入侵、運算快速等等特點,使得安全芯片更適合安全要求更高的系統(tǒng)。
[0003]密碼算法電路作為安全芯片的核心部分,對安全芯片的安全性能起到決定性的作用。但隨著信息安全研究的深入,各種旁路攻擊手段嚴重地威脅了密碼算法電路的安全特性。功耗攻擊以其簡單易行,普遍適用,低成本高效率,得到了廣泛的關注,是一種對密碼算法電路構成嚴重威脅的一種旁路攻擊手段。
[0004]功耗攻擊的基本思想就是通過獲取密碼算法電路加解密時的功耗信息,根據統(tǒng)計分析來推測出密鑰。攻擊者控制明文(或密文)的輸入,獲取大量的功耗跡,然后攻擊者選擇合適的攻擊模型和方法,對功耗跡進行分析,猜測出正確的密鑰。目前國際上最流行的旁路攻擊技術是功耗分析攻擊,大致可以分為簡單功耗分析(Simple Power Analysis, SPA)、差分功耗分析(Differential Power Analysis, DPA)和相關系數(shù)功耗分析(CorrelationPower Analysis, CPA),很多新型的功耗分析攻擊方法都是以這些攻擊方法為基礎演變而來的。
[0005]相比于SPA,差分功耗分析攻擊無須了解關于被攻擊設備的詳細知識且能夠從飽含噪聲的功耗跡中獲取密鑰信息,是一種更為強大更為流行的攻擊方法。這種攻擊使用大量的功耗跡來分析設備功耗,并將這些功耗跡視為被處理函數(shù)進行統(tǒng)計分析和相關性計算?;谙嚓P系數(shù)CPA攻擊由于強大的破解能力已被廣泛采用,它通過將采集到的真實功耗信息與數(shù)學分析計算得到的假設功耗信息進行統(tǒng)計分析,從而獲得兩者的相關性來判斷真實功耗,其中需要采用一定的功耗模型將無實際意義的數(shù)學分析值映射為有物理意義的假設功耗值。
[0006]為了應對功耗分析攻擊對密碼算法電路提出的挑戰(zhàn),國內外眾多研究機構和學者針對DES、AES、ECC、Hash等多種密碼算法的抗功耗分析攻擊實現(xiàn)進行了研究。為了驗證這些抗攻擊方案的有效性,必須建立一種有效的功耗攻擊測試方法。國外學者設計了針對FPGA和ASIC實現(xiàn)的密碼算法電路的功耗攻擊方法,并取得了不錯的攻擊結果。但是這種方法的使用成本比較高昂,設計與實現(xiàn)上均存在不小的障礙,并且其驗證周期比較長,并不適合作為用于理論研究使用。密碼算法電路的設計者如果直接使用這種方法驗證密碼算法電路的安全特性,將不得不面臨巨大的風險,如果密碼算法電路設計失敗會造成人力與物力成本方面的浪費。如何在密碼算法電路設計階段進行功耗攻擊測試成為了密碼算法電路設計領域的一個日趨解決技術難題。某些學者利用數(shù)學建模方式設計的仿真攻擊方法,雖然攻擊高效,成本低廉,但是其精度很低,結果可信度不高,也不適合用于驗證密碼算法電路的抗功耗分析特性。
[0007]綜上所述,現(xiàn)有技術中,針對FPGA和ASIC實現(xiàn)的密碼算法電路的功耗攻擊方法,存在成本高,實現(xiàn)困難,驗證周期長的缺陷,數(shù)學建模方式設計的仿真攻擊方法存在精度低,可信度差的缺陷。
【發(fā)明內容】
[0008]本發(fā)明的目的在于,針對上述問題,提出一種便于在芯片設計階段實施的面向DES算法電路的差分功耗攻擊測試方法,具有評估效率高、速度快的優(yōu)點,更重要的是,能夠在密碼算法電路設計階段進行功耗攻擊測試,降低芯片流片后安全性能不佳導致密碼算法電路重新設計的風險,從而縮短密碼算法電路設計周期。
[0009]為實現(xiàn)上述目的,本發(fā)明采用的技術方案如下:
[0010]所述面向DES算法電路的差分功耗攻擊測試方法對DES密碼算法電路在設計階段進行功耗攻擊測試時,對功耗樣本的獲取及基于相關系數(shù)的CPA功耗分析攻擊的處理如下步驟:
[0011]步驟一:功耗樣本獲取。在電路設計仿真階段,采用Prime Time PX功耗仿真工具對仿真結果進行功耗信息提取,將得到的一系列瞬態(tài)功耗值作為采樣的功耗樣本信息;
[0012]步驟二:功耗樣本預處理。截取加解密時段的功耗樣本構成功耗軌跡,并進行對齊處理,使功耗軌跡對齊于同一操作時刻;
[0013]步驟三:假設功耗樣本獲取。基于漢明距離模型,選取合適的攻擊點,使用隨機明文和猜測密鑰,推導計算假設功耗值矩陣;
[0014]步驟四:相關系數(shù)的計算和分析。將預處理后的功耗樣本與假設功耗樣本進行相關性計算,獲取相關系數(shù)矩陣,由相關系數(shù)矩陣做出相關系數(shù)曲線圖,在攻擊點處出現(xiàn)明顯峰值的則攻擊成功,峰值對應相關性曲線可推測出正確密鑰;若在攻擊點處未出現(xiàn)明顯峰值,則攻擊失敗。
[0015]該測試方法的核心共有三部分:功能仿真模塊、功耗仿真模塊以及功耗分析模塊。所述步驟一由功能仿真模塊和功耗仿真模塊完成,其中功耗樣本的獲取是利用PrimeTimePower Extension (PTPX)功耗仿真工具對加密算法的功耗跡進行仿真,其中配置PTPX工作在基于時間(Time-based)模式,而不是通常的平均模式(Averaged mode),其優(yōu)點是可以快速的獲得一個較為準確的功耗仿真結果,和Hspice相比,所需的資源和時間都很少,靈活機動。和實際的芯片相比,其功耗跡中只包含芯片加密時的功耗,沒有任何噪聲,這使得在做功耗分析時,對隨機明文的數(shù)量要求比較低,方便更快地對加密算法的安全性能做出驗證,縮短了檢驗周期。
[0016]所述步驟一的基本流程是首先將密碼算法的RTL代碼通過邏輯綜合(DesignCompi Ier, DC)工具生成電路網表文件,然后加載明文、時鐘等網表必需的測試向量,和網表使用的標準單元庫及時序參數(shù)一起通過VCS (Verilog Compile Simulator, Synopsys公司的數(shù)字電路仿真工具)仿真工具進行仿真,生成功能仿真波形。功能仿真波形需要轉換成功耗仿真分析需要的V⑶(Value Change Dump)文件,此文件包含了加密算法運行過程中內部各種標準單元的變化情況。然后設置PTPX的仿真環(huán)境參數(shù),對生成的VCD文件進行分析,調用單元庫的功耗參數(shù)生成功耗仿真文件,從中提取功耗攻擊需要的功耗跡樣本,該樣本為一個矩陣。
[0017]所述步驟二的對齊處理是通過設計一個在加密開始時刻產生的觸發(fā)信號進行定位,所有記錄的能量跡均在該信號觸發(fā)時刻對齊,因此能獲得完全一致的操作序列的能量消耗,有利于后續(xù)功耗攻擊的數(shù)據處理。[0018]所述步驟三中的假設功耗的獲取采用漢明距離模型,通過計算數(shù)字電路在某個特定時段內0 — I轉換和I — 0轉換的總數(shù)來代表電路的功耗,具體是計算數(shù)字電路連續(xù)時鐘周期內寄存器中存儲數(shù)值的0 — I轉換和I — 0轉換總數(shù);計算選取的攻擊點處的相鄰兩個時鐘周期電路的漢明距離,將其作為假設功耗樣本,對于M種隨機明文和N種猜測密鑰,生成的假設功耗矩陣大小為M*N。
[0019]所述步驟四中,相關系數(shù)的計算方法如下:已知的明文或者密文測試向量記為向量d = (Cl1,...,dD)',其中Cli表示第i次加密或者解密所對應的數(shù)據值,將對應數(shù)據Cli分組的功耗跡記作
【權利要求】
1. 一種面向DES (Data Encryption Standard,數(shù)據加密標準)算法電路的差分功耗攻擊測試方法,其特征在于,包括以下步驟: 步驟一:功能仿真和功耗樣本獲取,在電路設計仿真階段,在電路功能仿真驗證的基礎上,采用Prime Time PX功耗仿真工具對仿真結果進行功耗信息提取,將得到的一系列瞬態(tài)功耗值作為采樣的功耗樣本信息; 步驟二:功耗樣本預處理,截取加解密時段的功耗樣本構成功耗軌跡,并進行對齊處理,使功耗軌跡對齊于同一操作時刻; 步驟三:假設功耗樣本獲取,基于漢明距離模型,選取合適的攻擊點,使用隨機明文和猜測密鑰,推導計算假設功耗值矩陣; 步驟四:相關系數(shù)的計算和分析,將預處理后的功耗樣本與假設功耗樣本進行相關性計算,獲取相關系數(shù)矩陣,由相關系數(shù)矩陣做出相關系數(shù)曲線圖,在攻擊點處出現(xiàn)明顯峰值的則攻擊成功,峰值對應相關性曲線可推測出正確密鑰;若在攻擊點處未出現(xiàn)明顯峰值,則攻擊失敗。
2.根據權利要求1所述的面向DES算法電路的差分功耗攻擊測試方法,其特征在于,步驟一的具體流程如下: 首先將算法的RTL (寄存器傳輸級)代碼通過DC (Design Compiler,設計綜合)工具綜合生成電路網表文件,然后加載明文、時鐘等網表必需的測試向量,和網表使用的標準單元庫及時序參數(shù)一起通過VCS (Verilog Compile Simulator, Synopsys公司的數(shù)字電路仿真工具)功能仿真工具進行仿真,生成功能仿真波形,并將其轉換成為功耗仿真分析需要的V⑶(Value Change Dump,改值轉儲)文件;然后在PTPX仿真工具下對生成的V⑶文件進行分析,利用工藝庫功耗模型生成功耗仿真文件。
3.根據權利要求1所述的面向DES算法電路的差分功耗攻擊測試方法,其特征在于,步驟一中,配置Prime Time PX工作在基于時間(Time-based)的模式,在采樣的大量功耗點中,僅記錄有功耗變化時的電路功耗值。
4.根據權利要求1所述的面向DES算法電路的差分功耗攻擊測試方法,其特征在于,步驟二的對齊處理是通過設計一個在加密開始時刻產生的觸發(fā)信號進行定位,所有記錄的能量跡均在該信號觸發(fā)時刻對齊。
5.根據權利要求1所述的面向DES算法電路的差分功耗攻擊測試方法,其特征在于,步驟三中的假設功耗的獲取采用漢明距離模型,通過計算數(shù)字電路連續(xù)時鐘周期內寄存器中存儲數(shù)值進行0 — I轉換和I — 0轉換的總數(shù)來代表電路的功耗;計算選取的攻擊點處的相鄰兩個時鐘周期電路的漢明距離,將其作為假設功耗樣本,對于M種隨機明文和N種猜測密鑰,生成的假設功耗矩陣大小為MXN。
6.根據權利要求1所述的面向DES算法電路的差分功耗攻擊測試方法,其特征在于,步驟四中,相關系數(shù)的計算方法如下: 已知的明文或者密文測試向量記為向量d=^,..., dD)',其中(Ii表示第i次加密或者解密所對應的數(shù)據值,將對應數(shù)據Cli分組的功耗跡記作t; =〔tu,…,t5,T),其中T表示密碼模塊的功耗跡的長度,針對每一個可能的k值,計算對應的假設中間值k= Gc1,...,kK),給定的數(shù)據向量d和密鑰假設k,得到中間值f(d,k);采用漢明距離功耗模型,映射由中間值造成的功耗,利用不同密鑰加密的模擬功耗和真實功耗之間的相關性,對大量的隨機測試向量進行統(tǒng)計分析,做出相關系數(shù)曲線圖,在攻擊點處出現(xiàn)極值的則攻擊成功,極值對應相關性曲線可推測出正 確密鑰;若未出現(xiàn)極值,則攻擊失敗。
【文檔編號】H04L29/06GK103532973SQ201310514359
【公開日】2014年1月22日 申請日期:2013年10月25日 優(yōu)先權日:2013年10月25日
【發(fā)明者】單偉偉, 孫華芳, 王學香, 徐志鵬 申請人:東南大學