摘 要:
旁路攻擊是一種非破壞性的物理攻擊方法,針對(duì)密碼芯片存在旁路泄露的安全隱患,提出一種具有自愈特性的密碼系統(tǒng)設(shè)計(jì)方法。首先,該方法通過(guò)在密碼算法運(yùn)算中插入測(cè)量失效點(diǎn),使攻擊者無(wú)法獲取統(tǒng)計(jì)分析所必需的泄露信息;在此基礎(chǔ)上,采用對(duì)掩碼的定時(shí)更新技術(shù)使得泄露信息失效,從而重建系統(tǒng)的安全性。與已有的防御方法相比,即使部分泄露信息被攻擊者獲取時(shí),該方法仍具有強(qiáng)壯的自愈能力和抗旁路攻擊能力。
關(guān)鍵詞:旁路攻擊; 密碼芯片; 掩碼技術(shù); 自愈系統(tǒng)
中圖分類(lèi)號(hào):TP301.6 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):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
密碼芯片的安全是一個(gè)被普遍關(guān)注的重要問(wèn)題。通常情況下,密碼芯片的安全性是以所使用的密碼算法的復(fù)雜度來(lái)衡量。但是,最近的研究表明即使理論上安全的密碼算法,也可能由于物理實(shí)現(xiàn)而不安全。新的安全性威脅來(lái)源于一種非破壞性的物理攻擊——旁路攻擊[1]。該攻擊利用密碼芯片運(yùn)算中泄露的信息,如執(zhí)行時(shí)間、功耗、電磁輻射等,結(jié)合統(tǒng)計(jì)理論快速地破解密碼系統(tǒng)。不同于傳統(tǒng)的密碼分析方法,旁路攻擊者只需獲取少量的功耗曲線(xiàn),就可以在幾分鐘內(nèi)快速破解DES密碼算法[2]。更為嚴(yán)峻的是幾乎所有的密碼算法,哈希函數(shù)的物理實(shí)現(xiàn)都容易遭受旁路攻擊[3]。
傳統(tǒng)的旁路攻擊防御方法,如掩碼、隨機(jī)時(shí)延等,主要通過(guò)降低旁路泄露與秘密之間相關(guān)性來(lái)防御攻擊。然而,這些防御方法仍然無(wú)法抵抗高階旁路攻擊和模板攻擊[1,4];同時(shí),在部分泄露信息被攻擊者獲取的條件下,密碼系統(tǒng)將面臨安全性威脅,此時(shí)密碼系統(tǒng)的安全性很難得到保證。
為了減少旁路泄露的安全隱患,提出一種抗旁路攻擊的密碼系統(tǒng)設(shè)計(jì)方法。該方法的基本思想是:設(shè)計(jì)一種新型掩碼技術(shù),在密碼算法計(jì)算中插入測(cè)量失效點(diǎn),使攻擊者無(wú)法獲取必需的旁路信息;另一方面,即使攻擊者已經(jīng)獲取了部分有效信息,仍然可以通過(guò)對(duì)掩碼定時(shí)更新,使得已經(jīng)獲取的泄露信息失效,從而防止了攻擊者對(duì)密碼系統(tǒng)的進(jìn)一步威脅。與已有的防御方法相比,即使部分的泄露信息被攻擊者獲取時(shí),密碼系統(tǒng)仍具有強(qiáng)壯的自愈能力和抗旁路攻擊能力。
1 旁路信息泄露與防御
為便于理解,先對(duì)旁路信息的泄露原理和目前采用的防御策略進(jìn)行簡(jiǎn)單的分析。
1.1 旁路信息的泄露模型
旁路攻擊是一種非破壞性的物理攻擊方法,其原理是利用密碼芯片運(yùn)算時(shí)的各種旁路信息來(lái)破解密碼系統(tǒng),旁路信息的泄露如圖1所示。
為了描述物理設(shè)備的旁路信息泄露,Micali等人[5]首先提出了一種基于圖靈機(jī)的抽象模型。該模型包括一臺(tái)抽象的虛擬圖靈機(jī)A和一臺(tái)物理圖靈機(jī)P,這兩者之間的相互關(guān)系如式(1)所示。
P=(L(),A)(1)
其中:L(·)為抽象的泄露函數(shù)。圖靈機(jī)A在運(yùn)行時(shí)的狀態(tài)集為
state=(S1,S2,…,Sm)(2)
攻擊者根據(jù)狀態(tài)state確定對(duì)應(yīng)的泄露信息為
L=(l1,l2,…,lm)(3)
攻擊者通過(guò)旁路泄露L的信息,結(jié)合統(tǒng)計(jì)分析方法破解密碼系統(tǒng)。
1.2 防御技術(shù)
為了防御旁路攻擊,通常采用的防御原理是降低泄露信息與密鑰之間的相關(guān)性。目前采用的主要防御策略可以分為以下三類(lèi):
a)減少泄露強(qiáng)度的防御方法。這類(lèi)方法主要采用泄露安全電子元器件構(gòu)建密碼系統(tǒng),如動(dòng)態(tài)差分邏輯(dynamic differential logic)電路,使得芯片在運(yùn)算過(guò)程中的泄露信息不會(huì)隨著狀態(tài)變化而表現(xiàn)出差異性。
b)降低統(tǒng)計(jì)相關(guān)性的防御方法。主要在密碼芯片的電路實(shí)現(xiàn)上增加噪聲信號(hào),或者插入隨機(jī)擾亂碼(random mask)。
c)限制旁路信號(hào)檢測(cè)的保護(hù)方法。在密碼芯片上增加額外的信號(hào)監(jiān)測(cè)電路,防止攻擊者對(duì)信號(hào)進(jìn)行檢測(cè)和監(jiān)聽(tīng)。
已有的防御方法主要是采用專(zhuān)用的抗泄露芯片或增加安全保護(hù)電路來(lái)實(shí)現(xiàn)對(duì)信息泄露的防御,密碼系統(tǒng)的整體開(kāi)銷(xiāo)較大。本文提出一種新型掩碼技術(shù),在現(xiàn)有的CMOS器件基礎(chǔ)上,僅需要在設(shè)計(jì)上進(jìn)行少量的改進(jìn)就可以有效地防御信息泄露。
2 新型掩碼技術(shù)及安全性分析
2.1 防御原理
新型掩碼的防御原理主要是在密碼算法的運(yùn)算過(guò)程中插入一個(gè)或多個(gè)測(cè)量失效點(diǎn),使得攻擊者無(wú)法對(duì)該點(diǎn)的旁路泄露信息進(jìn)行采樣分析。
為便于說(shuō)明,在給出測(cè)量失效點(diǎn)定義前,先對(duì)Micali關(guān)于旁路泄露的一般性原理[5]進(jìn)行說(shuō)明。
公理1 計(jì)算并且只有計(jì)算才會(huì)泄露旁路信息。
公理1給出了旁路泄露產(chǎn)生的條件,在其基礎(chǔ)上給出測(cè)量失效點(diǎn)的定義如下:
定義1 對(duì)于密鑰相關(guān)狀態(tài)集合R={r1,r2,…,rn},測(cè)量失效點(diǎn)是指集合R中不存在或不參與運(yùn)算的密鑰相關(guān)狀態(tài),該狀態(tài)不會(huì)泄露任何旁路信息。
例如,在密碼芯片運(yùn)算過(guò)程中,攻擊者通過(guò)分析密碼算法的實(shí)現(xiàn),確定了需要采樣的相關(guān)狀態(tài)集:
R={明文P,密鑰key,掩碼1,掩碼2}
攻擊者必須獲取集合R中全部四個(gè)相關(guān)狀態(tài)的采樣信息才能進(jìn)行統(tǒng)計(jì)分析。假設(shè)掩碼1不參與計(jì)算,由公理1可知該狀態(tài)不會(huì)泄露信息,攻擊者即使獲取了其余三個(gè)狀態(tài)的信息也無(wú)法進(jìn)行統(tǒng)計(jì)分析。
2.2 設(shè)計(jì)方法
將密碼算法的執(zhí)行過(guò)程劃分為兩個(gè)不同的階段,即密碼設(shè)備的初始化階段和密碼算法的運(yùn)算階段。
1)在初始化階段 通過(guò)固定掩碼對(duì)原始的密鑰信息進(jìn)行掩蓋,生成安全性較高的掩碼密鑰,避免秘密信息泄露。掩碼密鑰的生成算法如算法1所示。
算法1 掩碼密鑰的生成算法
輸入:原始密鑰Key,固定掩碼向量Fix_mask
輸出:掩碼密鑰FKey,修正參數(shù)FR
a)產(chǎn)生p個(gè)固定掩碼:Fix_mask={f1, f2, …, fp};
b)計(jì)算掩碼密鑰:FKey=f1Key;
c)計(jì)算修正參數(shù):FR=f1f2…fp;
d)掩碼密鑰替換:FKey,FR代替原始密鑰Key和固定掩碼Fix_mask參與密碼算法執(zhí)行。
由算法1的第4步可知,使用掩碼密鑰F Key代替原始密鑰Key參與計(jì)算,保證了原始密鑰的安全性。由于固定掩碼Fix_mask的引入,對(duì)密碼算法的最后計(jì)算結(jié)果會(huì)產(chǎn)生影響,需要計(jì)算修正參數(shù)FR,并且在密碼算法結(jié)束前對(duì)結(jié)果進(jìn)行修正。
2)運(yùn)算階段 采用插入測(cè)量失效點(diǎn)的辦法,確保攻擊者無(wú)法獲取全部相關(guān)狀態(tài)的采樣信息。測(cè)量失效點(diǎn)的產(chǎn)生方法如算法2所示。
算法2 測(cè)量失效點(diǎn)的產(chǎn)生算法
輸入:修正參數(shù)FR,隨機(jī)掩碼向量Rand_mask
輸出:輸出失效點(diǎn)Inv
a)產(chǎn)生q個(gè)隨機(jī)掩碼:Rand_mask={r1,r2,…,rq}
b)計(jì)算新隨機(jī)掩碼:Rand_mask={r′1,…,r′q}
r′1=FRr1; r′2=r2;…;r′q-1=rq-1;
r′q=r1r2r3…rq-1;
c)掩碼密鑰異或計(jì)算:
m=FKeyr′1; m=mr′2,…
m=mr′q;
d)更新修正參數(shù):FR=r′1r′2…r′q;
e)由第c)步,確定密鑰相關(guān)狀態(tài)集R:
R={FKey, Rand_mask, FR}
f)確定測(cè)量失效點(diǎn):
Inv={f1,…, fp, 不存在的運(yùn)行狀態(tài)S}
算法2中的失效點(diǎn)主要由初始化階段的固定掩碼和運(yùn)行階段中不存在的運(yùn)行狀態(tài)S組成。
23 安全性分析
為了分析新型掩碼技術(shù)的安全性,假設(shè)掩碼數(shù)目p=q=2,則由算法1、2分別確定掩碼密鑰Fkey、修正參數(shù)FR、隨機(jī)掩碼r′1和r′2,如式(4):
FKey=f1Key, FR=f1f2, r′1=r1f1f2, r′2=r1(4)
在密碼算法的運(yùn)算階段中,為了攻擊原始密鑰Key,攻擊者需要對(duì)計(jì)算FKeyr′1r′2進(jìn)行監(jiān)測(cè)以確定采樣點(diǎn),對(duì)該計(jì)算進(jìn)行分析如下:
FKeyr′1r′2=f1Keyr′1r′2=Keyf2(5)
由式(5)的推導(dǎo),攻擊者可以確定以下?tīng)顟B(tài)集:
T1={f1,r′1,r′2,f1r′1r′2Key}; T2={f2,Keyf2}(6)
在集合T1中,攻擊者無(wú)法獲取失效點(diǎn)f1的采樣信息;在集合T2中,攻擊者無(wú)法獲取失效點(diǎn)f2的采樣信息,并且Keyf2的狀態(tài)在計(jì)算中不會(huì)出現(xiàn),所以也無(wú)法采樣。測(cè)量失效點(diǎn)使攻擊者無(wú)法獲取必需的采樣信息,從而有效地防御了高階攻擊和模板攻擊。
3 掩碼定時(shí)更新技術(shù)
傳統(tǒng)的密鑰保護(hù),可以通過(guò)定期更換密鑰來(lái)保證系統(tǒng)的安全性,然而頻繁的密鑰更換給密鑰管理和使用帶來(lái)很多不變。為此,本文在新型掩碼的基礎(chǔ)上,提出一種定時(shí)的掩碼更新技術(shù),如圖2所示。
該技術(shù)只需要對(duì)固定掩碼向量Fix_mask和修正參數(shù)FR進(jìn)行定時(shí)更新,就可以使已有的旁路采樣信息失效,從而防止了攻擊者對(duì)密碼系統(tǒng)的進(jìn)一步威脅。該方法減少了頻繁的密鑰更換帶來(lái)的不便之處;同時(shí),即使部分的泄露信息被攻擊者獲得,也可以通過(guò)定時(shí)掩碼更新來(lái)重建系統(tǒng)安全性,因此,密碼系統(tǒng)具有較強(qiáng)的自愈能力。
4 結(jié)束語(yǔ)
旁路信息泄露引發(fā)的安全性問(wèn)題已經(jīng)對(duì)安全芯片的設(shè)計(jì)、生產(chǎn)提出了新的要求。本文提出的新型掩碼技術(shù)以及掩碼的定時(shí)更新技術(shù)為構(gòu)建抗旁路攻擊的安全密碼芯片提供了一種有效而安全的防御方法。
參考文獻(xiàn):
[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.