對(duì)于DES的差分能量分析攻擊及其防范對(duì)策
出處:雁舞白沙 發(fā)布于:2007-04-28 11:55:53
摘要:摘要介紹了DES的加密過(guò)程,將差分能量分析DPA(Differential Power Analysis)的原理運(yùn)用于該算法,提出了區(qū)分函數(shù)的選取原則,并針對(duì)差分能量分析的假設(shè),介紹了幾種對(duì)抗這種攻擊的策略。
關(guān)鍵詞:DES DPA 差分能量分析 區(qū)分函數(shù)
傳統(tǒng)的密碼分析理論認(rèn)為,對(duì)密碼芯片的分析僅依賴于輸入明文和輸出密文。而在實(shí)際應(yīng)用中,分析人員可以獲得其它的信息。例如對(duì)于有引腳的芯片,很容易獲得引腳上的電流或者電壓。通過(guò)這些電流或電壓的變化,可以用有別于傳統(tǒng)的方法獲得密鑰的信息。
1 DES加密過(guò)程
DES(Data Encryption Standard)被認(rèn)為是加密技術(shù)的兩大里程碑之一。在上個(gè)世紀(jì)得到了廣泛的應(yīng)用。這里給出其中一輪加密過(guò)程,如。其它如擴(kuò)展置換、密鑰產(chǎn)生等具體過(guò)程見(jiàn)參考文獻(xiàn)。
在整個(gè)DES加密流程中,只有S盒(S-box)是的非線性函數(shù),是整個(gè)加密算法的安全。給出了S盒的圖示。
中的每個(gè)S盒都是一個(gè)4×16的查找表。在加密過(guò)程中,將與子密鑰K異或后的48bits均分為8組,分別對(duì)應(yīng)8個(gè)S盒,記每組為(a0a1a2a3a4a5)。根據(jù)這6位輸入,在對(duì)應(yīng)的S盒查找表中找到對(duì)應(yīng)的4位數(shù)據(jù)作為輸出。查找表中的對(duì)應(yīng)關(guān)系如下:由(a0a5)決定對(duì)應(yīng)的S盒的行,由(a1a2a3a4)決定對(duì)應(yīng)的S盒的列。由這個(gè)行和列確定的數(shù)(4位二進(jìn)制表示)作為該S盒的輸出。
由于S盒在DES加密算法中的特殊地位,使得很多攻擊方法都是針對(duì)S盒的。
2 DPA原理在DES上的應(yīng)用
Differential Power Analysis早由Kocher et al提出,現(xiàn)在許多研究人員指出它對(duì)智能卡(Smart Card)是一種有效的攻擊。其理論基礎(chǔ)是:在加密過(guò)程中要消耗能量,而消耗的能量隨處理的數(shù)據(jù)不同會(huì)有微小的變化。根據(jù)這種變化確定處理的數(shù)據(jù)是0還是1,辦公而有可能猜出加密算法中所使用的密鑰。
在具體討論這種攻擊前,對(duì)所用符號(hào)做如下約定:
Si[j]:第i個(gè)明文在時(shí)間點(diǎn)j時(shí)的能量水泵抽樣值;
D(·):引入的區(qū)分函數(shù);
S0={Si[j]D(□)=0}; (1)
S1={Si[j]D(□)=1}; (2)
A0[j]:集合S0中所有信號(hào)在j時(shí)刻的平均能量消耗;
A1[j]:集合S1中所有信號(hào)在j時(shí)刻的平均能量消耗;
ΔD[j]:兩集合的平均信號(hào)能量差異。
首先,要能夠測(cè)得整個(gè)加密流程中S盒的能量曲線。基于統(tǒng)計(jì)的理論,要求記錄足夠的樣本點(diǎn)Si[j]。這里隱含了一個(gè)假設(shè):S盒中對(duì)不同比特處理時(shí),能量消耗差異發(fā)生在一個(gè)特定的時(shí)間,而且正好在該點(diǎn)的±Δ時(shí)間范圍內(nèi)進(jìn)行抽樣,因此能夠記錄下不同的能量消耗曲線。這個(gè)假設(shè)可以作為抗DPA攻擊對(duì)策的一個(gè)切入點(diǎn)。
另外還需要讓這些能量曲線反映出差于密鑰的信息。這是整個(gè)DPA過(guò)程中的關(guān)鍵。在這兒,引入了區(qū)分函數(shù)D(·),有的地方也記為selection function。從上面的(1)和(2)式中可以看到,該函數(shù)的作用是將樣本曲線映射到兩個(gè)不相交的集合上。
下一步,對(duì)這兩個(gè)集合中的樣本在時(shí)間點(diǎn)j的樣本值進(jìn)行平均,得到時(shí)間點(diǎn)j時(shí)的平均能量消耗。由于Si[j]包含信號(hào)和噪聲這兩部分的能量消耗,而根據(jù)隨機(jī)過(guò)程的知識(shí),知道其中大部分均值為0。因而這種平均可以在一定程序上降低隨機(jī)噪聲對(duì)信號(hào)的影響。
由上面可以看到:當(dāng)ΔD[j]較大時(shí),說(shuō)明由區(qū)分函數(shù)劃分的兩個(gè)信號(hào)的能量消耗在j時(shí)刻差異較大。而這種能量消耗差異,正是由密鑰和待處理數(shù)據(jù)相互作用而產(chǎn)生的。如果選擇的區(qū)分函數(shù)合適,即在理想的情況下,D函數(shù)正好將所有的在j時(shí)刻芯片處理數(shù)據(jù)為1的Si[j]選到集合S1;相應(yīng)地,在j時(shí)刻,芯片處理的數(shù)據(jù)為0的所有Si[j]被D函數(shù)映射到集合S0中,這時(shí)能量消耗差異很明顯。
目前發(fā)表的文獻(xiàn)中均只給出了具體的區(qū)分函數(shù),下面給出區(qū)分函數(shù)的一般選取原則:
(1)區(qū)分函數(shù)是關(guān)于密鑰的函數(shù)D(Ki);
(2)區(qū)分函數(shù)在正確的輸入下應(yīng)當(dāng)重現(xiàn)加密芯片所處理的某一比特值。
如將該函數(shù)定義為:
D(P6,K1)={S-box1(P6+Ki)}0 (6)
即D值等于第i個(gè)樣本在輪非線性變換中的個(gè)S盒輸出的4bits中的個(gè)比特。其中P6表示明文經(jīng)過(guò)初始置換后作為個(gè)S盒輸入的6bits,K1表示猜測(cè)的輪密鑰中用于個(gè)S盒的輸入部分。如果猜測(cè)的密鑰正確,那么D值就一定會(huì)等于實(shí)現(xiàn)加密過(guò)程中個(gè)S盒的位輸出。即這一時(shí)刻所有輸出為1的Si[j]都會(huì)被映射到集合S1,因此會(huì)使得ΔD[j]出現(xiàn)峰值。相反,如果密鑰不正確,就會(huì)使得某些輸出值為1的Si[j]被映射到集合S0中,這時(shí)ΔD[j]的射值會(huì)變小。這樣,就可以猜出一部分密鑰了。依照這種方法,猜測(cè)全部S盒的48bit密鑰所需的次數(shù)為2 6×8次,另外8比特密鑰可以用窮舉法求得。這個(gè)結(jié)果比單純地應(yīng)用窮舉搜索有了明顯的改進(jìn)。
3 對(duì)策
基于DPA攻擊的假設(shè),可以提出一些對(duì)策。
假設(shè)1.攻擊者能夠記錄能量消耗差異。一種簡(jiǎn)單的對(duì)策是引入噪聲,降低信噪比SNR,使得能量消耗差異減小。但這種引入噪聲的方法仍會(huì)受到改進(jìn)的DPA攻擊。參考文獻(xiàn)4指出,通過(guò)選擇特別 區(qū)分函數(shù),可以提高SNR。前面(6)指出,通過(guò)選擇特別的區(qū)分函數(shù),可以提高SNR。前面(6)式給出的D函數(shù)只確定一個(gè)比特的值,設(shè)改進(jìn)的D函數(shù)確定d個(gè)比特的值,如d=4,這時(shí)D函數(shù)的值可取后者的信噪比約為前者的d倍。但在這種方法中,樣本曲線被映射到3個(gè)不相交的集合上。
S0={Si[j]D(□)=0d} (7)
S1={Si[j]D(□)=1d}
S2={Si[j]Si[j]} ∈S0,S1}
個(gè)集合中D函數(shù)的值為d個(gè)0,第二個(gè)集合中D函數(shù)的值為d個(gè)1,第三個(gè)集合不用。其不利于之處是需要樣本點(diǎn)數(shù)會(huì)增加。
另一種對(duì)策是在加密過(guò)程中引入隨機(jī)延遲,這樣,特定時(shí)刻的實(shí)際能量消耗差異就不能被準(zhǔn)確記錄。
假設(shè)2.能量消耗的差異可以反映出密鑰的信息。可以通過(guò)對(duì)S盒的輸入做一些隨機(jī)的改變來(lái)掩飾密鑰的信息。一種常用的方法是用異或這一線性運(yùn)算,對(duì)S盒 的輸入做隨機(jī)的改變。這需要對(duì)S盒的輸出也做一個(gè)相應(yīng)的修正,使得加密的結(jié)果不受異或這一線性運(yùn)算的影響。另外一種方法是在加密過(guò)程中用兩個(gè)不同的處理器,它們處理的數(shù)據(jù)寬度不同,因而消耗的能量也不一樣,再用一個(gè)隨機(jī)序列發(fā)生器來(lái)產(chǎn)生選擇信號(hào),可以隨機(jī)地選擇不同的處理器。具體的硬件電路見(jiàn)參考文獻(xiàn)[6]。其它有關(guān)FPGA和ASIC在降低信息泄漏方面的專門研究,本文不做討論。但如果能防止信息泄漏,這將從根本上抵抗DPA攻擊。
應(yīng)該注意到,筆者是把智能卡作為攻擊對(duì)象,因而可能得到足夠的樣本點(diǎn),并知道明文和密文。這在其它的密碼系統(tǒng)上,并不是必然的事實(shí)。但目前智能卡得到了廣泛的應(yīng)用,因此這種攻擊的潛在危害較大。以上僅以DES的S盒部分說(shuō)明了DPA攻擊,但就DPA的基本原理,它可以被應(yīng)用于其它的密碼算法上,如橢圓曲線、AES(Advanced Encryption Standard)等。對(duì)DPA的防范措施還有待進(jìn)一步研究。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 工業(yè)5G技術(shù)在智能制造中的應(yīng)用與實(shí)踐解析2025/12/31 10:57:21
- 工業(yè)以太網(wǎng)交換機(jī)選型與現(xiàn)場(chǎng)應(yīng)用技術(shù)指南2025/12/18 10:48:14
- 無(wú)線傳輸電路基礎(chǔ),射頻前端設(shè)計(jì)、天線匹配與鏈路預(yù)算計(jì)算2025/10/27 13:55:50
- ASK 解調(diào)的核心要點(diǎn)與實(shí)現(xiàn)方式2025/9/5 16:46:17
- 雙偶極子天線:結(jié)構(gòu)、特性與應(yīng)用全解析2025/9/3 10:29:21
- PCB焊盤(pán)與過(guò)孔設(shè)計(jì)核心實(shí)操規(guī)范(含可焊性與可靠性保障)
- 汽車電子常用電子元器件選型指南
- MOSFET驅(qū)動(dòng)與隔離方案設(shè)計(jì)
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法









