一種高效的安全晶片功耗攻擊測試方法
2023-10-20 10:48:57 1
一種高效的安全晶片功耗攻擊測試方法
【專利摘要】發明公開了一種高效的安全晶片功耗攻擊測試方法,對安全晶片在設計階段進行功耗攻擊測試時,對功耗樣本的獲取及處理如下:(1)功耗樣本獲取(2)功耗樣本預處理(3)假設功耗樣本獲取(4)相關係數的計算和攻擊結果分析。本發明僅採樣有變化的功耗點,節省大量功耗樣本數據,大幅降低功耗攻擊計算量,具有評估效率高、速度快的優點,更重要的是,能夠在晶片設計階段進行功耗攻擊測試,降低流片後安全性能不佳導致晶片重新設計的風險,從而縮短安全晶片設計周期。
【專利說明】一種高效的安全晶片功耗攻擊測試方法
【技術領域】
[0001]本發明涉及晶片的信息安全領域,具體涉及一種高效的安全晶片功耗攻擊測試方法。
【背景技術】
[0002]進入21世紀,科技迅猛發展,社會信息化已經是大勢所趨,生活變得信息化,數位化和網絡化,人們對信息的依賴性不斷增強。隨著計算機、網絡、通訊技術與集成電路技術的發展,安全晶片被廣泛應用於自動取款機(Automatic Teller Machine, ATM)的銀行卡,小區或公司環境的門禁系統智慧卡,手機中的語音加密晶片等各種需要信息安全的環境中。由於集成電路內部的電路結構非常複雜,同時具有封閉性好、不易入侵、運算快速等等特點,使得安全晶片更適合安全要求更高的系統。
[0003]但隨著信息安全研究的深入,各種旁路攻擊手段嚴重地威脅了密碼晶片的安全特性。功耗攻擊以其簡單易行,普遍適用,低成本高效率,得到了廣泛的關注,是一種對安全晶片構成嚴重威脅的一種旁路攻擊手段。
[0004]功耗攻擊的基本思想就是通過獲取密碼晶片加解密時的功耗信息,並做出相應的分析來推測出密鑰。攻擊者控制明文(或密文)的輸入,獲取大量的功耗跡,然後攻擊者選擇合適的攻擊模型和方法,對功耗跡進行分析,猜測出正確的密鑰。目前國際上最流行的旁路攻擊技術是功耗分析攻擊,大致可以分為簡單功耗分析(Simple Power Analysis, SPA)、差分功耗分析(Differential Power Analysis, DPA)和相關係數功耗分析(CorrelationPower Analysis, CPA),很多新型的功耗分析攻擊方法都是以這些攻擊方法為基礎演變而來的。
[0005]為了應對功耗分析攻擊對安全晶片提出的挑戰,國內外眾多研究機構和學者針對DES、AES、ECC、Hash等多種密碼算法的抗功耗分析攻擊實現進行了研究。為了驗證這些抗攻擊方案的有效性,必須建立一種有效的功耗攻擊測試方法。國外學者設計了針對FPGA和ASIC實現的晶片的功耗攻擊方法,並取得了不錯的攻擊結果。但是這種方法的使用成本比較高昂,設計與實現上均存在不小的障礙,並且其驗證周期比較長,並不適合作為用於理論研究使用。安全晶片的設計者如果直接使用這種方法驗證晶片的安全特性,將不得不面臨巨大的風險,因為如果晶片設計失敗會造成人力與物力成本方面的浪費。如何在晶片設計階段進行功耗攻擊測試成為了安全晶片設計領域的一個日趨解決技術難題。某些學者利用數學建模方式設計的仿真攻擊方法,雖然攻擊高效,成本低廉,但是其精度很低,結果可信度不高,也不適合用於驗證安全晶片的抗功耗分析特性。
[0006]綜上所述,現有技術中,針對FPGA和ASIC實現的晶片的功耗攻擊方法,存在成本高,實現困難,驗證周期長的缺陷,數學建模方式設計的仿真攻擊方法存在精度低,可信度差的缺陷。
【發明內容】
[0007]本發明的目的在於,針對上述問題,提出一種高效的安全晶片功耗攻擊測試方法,僅採樣有變化的功耗點,節省大量功耗樣本數據,大幅降低功耗攻擊計算量,具有評估效率高、速度快的優點,更重要的是,能夠在晶片設計階段進行功耗攻擊測試,降低流片後安全性能不佳導致晶片重新設計的風險,從而縮短安全晶片設計周期。
[0008]為實現上述目的,本發明採用的技術方案如下:
[0009]本發明的安全晶片功耗攻擊測試方法對安全晶片在設計階段進行功耗攻擊測試時,對功耗樣本的獲取及處理如下: [0010](I)功耗樣本獲取:採用PTPX功耗仿真工具對功能後仿真結果進行功耗信息提取,將得到的一系列瞬態功耗值作為採樣的功耗樣本信息,且僅記錄有功耗變化時的晶片功耗值
[0011](2)功耗樣本預處理:截取加解密時段的功耗樣本構成功耗軌跡,並進行對齊處理,使功耗軌跡對齊於同一操作時刻,避免因功耗軌跡不對齊影響攻擊效果
[0012](3)假設功耗樣本獲取:基於漢明距離模型,選取合適的攻擊點,使用隨機明文和猜測密鑰,推導計算假設功耗值矩陣
[0013](4)相關係數的計算和分析:將預處理後的功耗樣本與假設功耗樣本進行相關性分析,獲取相關係數矩陣。由相關係數矩陣做出相關係數曲線圖,在攻擊點處出現極值的相關性曲線對應於正確密鑰。
[0014]在步驟(1)中PTPX運行在基於時間的(time based)模式,採樣方式與示波器類似,所得到的瞬態功耗作為被處理的功耗信息,且僅採樣有變化的功耗點,節省大量功耗樣本數據;
[0015]在步驟(2)中進行功耗預處理提煉出加解密時刻的功耗值,採用仿真方式,密碼晶片每次加密時產生的功耗值個數固定,產生時刻固定,便於攻擊者提取並存儲為實際功耗值矩陣,並使功耗軌跡對齊於同一操作時刻,避免因功耗軌跡不對齊影響攻擊效果;
[0016]在步驟(3)中的假設功耗的獲取採用漢明距離模型計算數字電路在某個特定時段內O — I轉換和I — O轉換的總數,來代表電路的功耗;計算選取的攻擊點處的相鄰兩個時鐘周期電路的漢明距離,將其作為假設功耗樣本,對於M種隨機明文和N種猜測密鑰,生成的假設功耗矩陣大小為M*N。
[0017]在步驟(4)中,相關係數的計算方法如下,已知的明文或者密文測試向量記為向量d = (Cl1,...,dD)',其中Cli表示第i次加密或者解密所對應的數據值。將對應數據Cli分組的功耗跡記作t' 1=(\,1,...,\,1),其中1'表示密碼模塊的功耗跡的長度。針對每一個可能的k值,計算對應的假設中間值k= (^,...Λκ)0給定的數據向量d和密鑰假設k,得到中間值f(d,k)。採用漢明距離功耗模型,映射由中間值造成的功耗。利用不同密鑰加密的模擬功耗和真實功耗之間的相關性,對大量的隨機測試向量進行統計分析,做出相關係數曲線圖,在攻擊點處出現極值的相關性曲線對應於正確密鑰。
[0018]該測試方法的核心共有三部分:功能仿真模塊、功耗仿真模塊以功耗分析模塊。基本的流程是首先將密碼算法的RTL代碼通過邏輯綜合(Design Compiler, DC)工具生成電路網表文件,然後加載明文、時鐘等網表必需的測試向量,和網表使用的標準單元庫及時序參數一起通過 VCS (Verilog Compile Simulator, Synopsys 公司的 Digital Simulator工具)進行仿真,生成功能仿真波形。功能仿真波形需要轉換成為功耗仿真分析需要的V⑶(Value Change Dump,)文件,此文件包含了加密算法運行過程中內部各種標準單元的變化情況。然後設置PTPX的仿真環境參數,對生成的VCD文件進行分析,調用單元庫的功耗參數生成功耗仿真文件。然後選取合適的攻擊點,利用猜測密鑰和隨機明文,採用基於漢明距離模型計算出假設功耗值矩陣,隨後與PTPX生成的仿真功耗值矩陣進行相關性分析,獲取相關係數矩陣。由相關係數矩陣做出相關係數曲線圖,在攻擊點處出現極值的則攻擊成功,極值對應相關性曲線可推測出正確密鑰;若未出現極值,則攻擊失敗。
[0019]本發明的數學原理說明如下:
[0020]功耗攻擊的核心是利用晶片功耗和加密數據之間的相關性,從統計學的觀點出發,可以利用協方差或者相關係數刻畫數據之間的線性關係。協方差的定義如式(I)所示,式(2)是它的一種等價形式。協方差量化了偏離均值的程度,它是隨機變量X和Y的偏離度乘積的平均值。
【權利要求】
1.一種高效的安全晶片功耗攻擊測試方法,其特徵在於可以在安全晶片的設計階段進行功耗攻擊測試,功耗攻擊測試基於EDA (Electronic Design Automation)功耗仿真工具和漢明距離模型,採用數學統計的方法進行分析計算,其對功耗樣本的獲取及處理如下: (1)功耗樣本獲取:採用PTPX(PrimeTime PX)功耗仿真工具對功能後仿真結果進行功耗信息提取,將得到的一系列瞬態功耗值作為採樣的功耗樣本信息,且僅記錄有功耗變化時的晶片功耗值 (2)功耗樣本預處理:截取加解密時段的功耗樣本構成功耗軌跡,並進行對齊處理,使功耗軌跡對齊於同一操作時刻,避免因功耗軌跡不對齊影響攻擊效果 (3)假設功耗樣本獲取:基於漢明距離模型,選取合適的攻擊點,使用隨機明文和猜測密鑰, 推導計算假設功耗值矩陣 (4)相關係數的計算和分析:將預處理後的功耗樣本與假設功耗樣本進行相關性計算,獲取相關係數矩陣。由相關係數矩陣做出相關係數曲線圖,在攻擊點處出現極值的則攻擊成功,極值對應相關性曲線可推測出正確密鑰;若未出現極值,則攻擊失敗。
2.根據權利要求1所述的高效的安全晶片功耗攻擊測試方法,其特徵在於步驟I中的PTPX功耗仿真採用瞬態功耗作為被處理的功耗樣本,且僅採樣有變化的功耗點,節省大量功耗樣本數據。
3.根據權利要求1所述的高效的安全晶片功耗攻擊測試方法,其特徵在於步驟I中的PTPX功耗仿真設置為基於時間模式(time based),以類似示波器採樣方式生成瞬態功耗值。
4.根據權利要求1所述的高效的安全晶片功耗攻擊測試方法,其特徵在於步驟3中的假設功耗的獲取採用漢明距離模型,通過計算數字電路在某個特定時段內O — I轉換和I — O轉換的總數來代表電路的功耗;計算選取的攻擊點處的相鄰兩個時鐘周期電路的漢明距離,將其作為假設功耗樣本,對於M (根據功耗攻擊的強度,取值為1000-弱,10000-中,10000-強)種隨機明文和N(根據算法取值不同,DES-26,AES-28)種猜測密鑰,生成的假設功耗矩陣大小為M*N。
5.根據權利要求1所述的高效的安全晶片功耗攻擊測試方法,其特徵在於步驟4中,相關係數的計算方法如下:已知的明文或者密文測試向量記為向量d= (d1,...,dD)/,其中Cli表示第i次加密或者解密所對應的數據值。將對應數據Cli分組的功耗跡記作t' i =(tia,...,ti>T),其中T表示密碼模塊的功耗跡的長度。針對每一個可能的k值,計算對應的假設中間值k= (^,...Λκ)0給定的數據向量d和密鑰假設k,得到中間值f(d,k)。採用漢明距離功耗模型,映射由中間值造成的功耗。利用不同密鑰加密的模擬功耗和真實功耗之間的相關性,對大量的隨機測試向量進行統計分析,做出相關係數曲線圖,在攻擊點處出現極值的則攻擊成功,極值對應相關性曲線可推測出正確密鑰;若未出現極值,則攻擊失敗。
【文檔編號】G06F21/55GK103679008SQ201210319578
【公開日】2014年3月26日 申請日期:2012年9月3日 優先權日:2012年9月3日
【發明者】蔡志匡, 單偉偉, 劉君寅, 朱佳梁, 邵金梓, 黃丹丹 申請人:江蘇東大集成電路系統工程技術有限公司