摘 要:
旁路攻擊是一種非破壞性的物理攻擊方法,針對密碼芯片存在旁路泄露的安全隱患,提出一種具有自愈特性的密碼系統設計方法。首先,該方法通過在密碼算法運算中插入測量失效點,使攻擊者無法獲取統計分析所必需的泄露信息;在此基礎上,采用對掩碼的定時更新技術使得泄露信息失效,從而重建系統的安全性。與已有的防御方法相比,即使部分泄露信息被攻擊者獲取時,該方法仍具有強壯的自愈能力和抗旁路攻擊能力。
關鍵詞:旁路攻擊; 密碼芯片; 掩碼技術; 自愈系統
中圖分類號:TP301.6 文獻標志碼:A
文章編號:10013695(2008)09282902
Method on building selfhealing cryptosystem resistant to sidechannel attack
ZHANG Tao1, FAN Mingyu1, ZHENG Xiulin2
(1.College of Computer Science Engineering, University of Electronic Science Technology of China,
Chengdu610054, China; 2.Beijing Electronic Science Technology Institute, Beijing 100070, China)
Abstract:
Sidechannel attack is a new noninvasive cryptanalysis. As for the security risk induced by sidechannel attack, firstly, this paper proposed a new masking method, and restricted the sidechannel measurement by inserting some measuredisabled points into the cryptographic algorithm. And then, applied a masking update technique for making the sidechannel leakage invalid. Compared with previous countermeasures, this method has stronger ability of selfhealing and it also resists to complex sidechannel attack.
Key words:sidechannel attack; cryptographic chip; masking method; selfhealing system
密碼芯片的安全是一個被普遍關注的重要問題。通常情況下,密碼芯片的安全性是以所使用的密碼算法的復雜度來衡量。但是,最近的研究表明即使理論上安全的密碼算法,也可能由于物理實現而不安全。新的安全性威脅來源于一種非破壞性的物理攻擊——旁路攻擊[1]。該攻擊利用密碼芯片運算中泄露的信息,如執行時間、功耗、電磁輻射等,結合統計理論快速地破解密碼系統。不同于傳統的密碼分析方法,旁路攻擊者只需獲取少量的功耗曲線,就可以在幾分鐘內快速破解DES密碼算法[2]。更為嚴峻的是幾乎所有的密碼算法,哈希函數的物理實現都容易遭受旁路攻擊[3]。
傳統的旁路攻擊防御方法,如掩碼、隨機時延等,主要通過降低旁路泄露與秘密之間相關性來防御攻擊。然而,這些防御方法仍然無法抵抗高階旁路攻擊和模板攻擊[1,4];同時,在部分泄露信息被攻擊者獲取的條件下,密碼系統將面臨安全性威脅,此時密碼系統的安全性很難得到保證。
為了減少旁路泄露的安全隱患,提出一種抗旁路攻擊的密碼系統設計方法。該方法的基本思想是:設計一種新型掩碼技術,在密碼算法計算中插入測量失效點,使攻擊者無法獲取必需的旁路信息;另一方面,即使攻擊者已經獲取了部分有效信息,仍然可以通過對掩碼定時更新,使得已經獲取的泄露信息失效,從而防止了攻擊者對密碼系統的進一步威脅。與已有的防御方法相比,即使部分的泄露信息被攻擊者獲取時,密碼系統仍具有強壯的自愈能力和抗旁路攻擊能力。
1 旁路信息泄露與防御
為便于理解,先對旁路信息的泄露原理和目前采用的防御策略進行簡單的分析。
1.1 旁路信息的泄露模型
旁路攻擊是一種非破壞性的物理攻擊方法,其原理是利用密碼芯片運算時的各種旁路信息來破解密碼系統,旁路信息的泄露如圖1所示。
為了描述物理設備的旁路信息泄露,Micali等人[5]首先提出了一種基于圖靈機的抽象模型。該模型包括一臺抽象的虛擬圖靈機A和一臺物理圖靈機P,這兩者之間的相互關系如式(1)所示。
P=(L(),A)(1)
其中:L(·)為抽象的泄露函數。圖靈機A在運行時的狀態集為
state=(S1,S2,…,Sm)(2)
攻擊者根據狀態state確定對應的泄露信息為
L=(l1,l2,…,lm)(3)
攻擊者通過旁路泄露L的信息,結合統計分析方法破解密碼系統。
1.2 防御技術
為了防御旁路攻擊,通常采用的防御原理是降低泄露信息與密鑰之間的相關性。目前采用的主要防御策略可以分為以下三類:
a)減少泄露強度的防御方法。這類方法主要采用泄露安全電子元器件構建密碼系統,如動態差分邏輯(dynamic differential logic)電路,使得芯片在運算過程中的泄露信息不會隨著狀態變化而表現出差異性。
b)降低統計相關性的防御方法。主要在密碼芯片的電路實現上增加噪聲信號,或者插入隨機擾亂碼(random mask)。
c)限制旁路信號檢測的保護方法。在密碼芯片上增加額外的信號監測電路,防止攻擊者對信號進行檢測和監聽。
已有的防御方法主要是采用專用的抗泄露芯片或增加安全保護電路來實現對信息泄露的防御,密碼系統的整體開銷較大。本文提出一種新型掩碼技術,在現有的CMOS器件基礎上,僅需要在設計上進行少量的改進就可以有效地防御信息泄露。
2 新型掩碼技術及安全性分析
2.1 防御原理
新型掩碼的防御原理主要是在密碼算法的運算過程中插入一個或多個測量失效點,使得攻擊者無法對該點的旁路泄露信息進行采樣分析。
為便于說明,在給出測量失效點定義前,先對Micali關于旁路泄露的一般性原理[5]進行說明。
公理1 計算并且只有計算才會泄露旁路信息。
公理1給出了旁路泄露產生的條件,在其基礎上給出測量失效點的定義如下:
定義1 對于密鑰相關狀態集合R={r1,r2,…,rn},測量失效點是指集合R中不存在或不參與運算的密鑰相關狀態,該狀態不會泄露任何旁路信息。
例如,在密碼芯片運算過程中,攻擊者通過分析密碼算法的實現,確定了需要采樣的相關狀態集:
R={明文P,密鑰key,掩碼1,掩碼2}
攻擊者必須獲取集合R中全部四個相關狀態的采樣信息才能進行統計分析。假設掩碼1不參與計算,由公理1可知該狀態不會泄露信息,攻擊者即使獲取了其余三個狀態的信息也無法進行統計分析。
2.2 設計方法
將密碼算法的執行過程劃分為兩個不同的階段,即密碼設備的初始化階段和密碼算法的運算階段。
1)在初始化階段 通過固定掩碼對原始的密鑰信息進行掩蓋,生成安全性較高的掩碼密鑰,避免秘密信息泄露。掩碼密鑰的生成算法如算法1所示。
算法1 掩碼密鑰的生成算法
輸入:原始密鑰Key,固定掩碼向量Fix_mask
輸出:掩碼密鑰FKey,修正參數FR
a)產生p個固定掩碼:Fix_mask={f1, f2, …, fp};
b)計算掩碼密鑰:FKey=f1Key;
c)計算修正參數:FR=f1f2…fp;
d)掩碼密鑰替換:FKey,FR代替原始密鑰Key和固定掩碼Fix_mask參與密碼算法執行。
由算法1的第4步可知,使用掩碼密鑰F Key代替原始密鑰Key參與計算,保證了原始密鑰的安全性。由于固定掩碼Fix_mask的引入,對密碼算法的最后計算結果會產生影響,需要計算修正參數FR,并且在密碼算法結束前對結果進行修正。
2)運算階段 采用插入測量失效點的辦法,確保攻擊者無法獲取全部相關狀態的采樣信息。測量失效點的產生方法如算法2所示。
算法2 測量失效點的產生算法
輸入:修正參數FR,隨機掩碼向量Rand_mask
輸出:輸出失效點Inv
a)產生q個隨機掩碼:Rand_mask={r1,r2,…,rq}
b)計算新隨機掩碼:Rand_mask={r′1,…,r′q}
r′1=FRr1; r′2=r2;…;r′q-1=rq-1;
r′q=r1r2r3…rq-1;
c)掩碼密鑰異或計算:
m=FKeyr′1; m=mr′2,…
m=mr′q;
d)更新修正參數:FR=r′1r′2…r′q;
e)由第c)步,確定密鑰相關狀態集R:
R={FKey, Rand_mask, FR}
f)確定測量失效點:
Inv={f1,…, fp, 不存在的運行狀態S}
算法2中的失效點主要由初始化階段的固定掩碼和運行階段中不存在的運行狀態S組成。
23 安全性分析
為了分析新型掩碼技術的安全性,假設掩碼數目p=q=2,則由算法1、2分別確定掩碼密鑰Fkey、修正參數FR、隨機掩碼r′1和r′2,如式(4):
FKey=f1Key, FR=f1f2, r′1=r1f1f2, r′2=r1(4)
在密碼算法的運算階段中,為了攻擊原始密鑰Key,攻擊者需要對計算FKeyr′1r′2進行監測以確定采樣點,對該計算進行分析如下:
FKeyr′1r′2=f1Keyr′1r′2=Keyf2(5)
由式(5)的推導,攻擊者可以確定以下狀態集:
T1={f1,r′1,r′2,f1r′1r′2Key}; T2={f2,Keyf2}(6)
在集合T1中,攻擊者無法獲取失效點f1的采樣信息;在集合T2中,攻擊者無法獲取失效點f2的采樣信息,并且Keyf2的狀態在計算中不會出現,所以也無法采樣。測量失效點使攻擊者無法獲取必需的采樣信息,從而有效地防御了高階攻擊和模板攻擊。
3 掩碼定時更新技術
傳統的密鑰保護,可以通過定期更換密鑰來保證系統的安全性,然而頻繁的密鑰更換給密鑰管理和使用帶來很多不變。為此,本文在新型掩碼的基礎上,提出一種定時的掩碼更新技術,如圖2所示。
該技術只需要對固定掩碼向量Fix_mask和修正參數FR進行定時更新,就可以使已有的旁路采樣信息失效,從而防止了攻擊者對密碼系統的進一步威脅。該方法減少了頻繁的密鑰更換帶來的不便之處;同時,即使部分的泄露信息被攻擊者獲得,也可以通過定時掩碼更新來重建系統安全性,因此,密碼系統具有較強的自愈能力。
4 結束語
旁路信息泄露引發的安全性問題已經對安全芯片的設計、生產提出了新的要求。本文提出的新型掩碼技術以及掩碼的定時更新技術為構建抗旁路攻擊的安全密碼芯片提供了一種有效而安全的防御方法。
參考文獻:
[1]OSWALD E, MANGARD S, HERBST C, et al. Practical secondorder DPA attacks for masked smartcard implementations of block ciphers[C]//Proc of CTRSA 2006, LNCS 3860. 2006:192207.
[2]TIRI K, HWANG D, HODJAT A,et al. Prototype IC with WDDL and differential rounting DPA resistance assessment[C]//Proc of CHES 2005, LNCS 3659. 2005:354365.
[3]ZHOU Yongbin, FENG Dengguo. Side channel attacks: ten years after its publication and the impact on cryptographic module security testing[EB/OL].[2005].http:// eprint.iacr.org/2005/388.
[4]OSWALD E, MANGARD S. Template attacks on maskingresistance is futile[C]//Proc of CTRSA 2007, Vol.4337. 2007:1227.
[5]MICALI S, REYZIN L. Physically observable cryptography[C]//Proc of TCC 2004, LNCS 2951. 2004:278296.