馬向亮 李 冰 習(xí) 偉 陳 華 陳財(cái)森
1(中國(guó)科學(xué)院軟件研究所可信計(jì)算與信息保障實(shí)驗(yàn)室 北京 100190)2(中國(guó)科學(xué)院大學(xué) 北京 100049)3(國(guó)家信息技術(shù)安全研究中心 北京 100084)4(南方電網(wǎng)科學(xué)研究院 廣州 510663)5(陸軍裝甲兵學(xué)院演訓(xùn)中心 北京 100072)
盡管目前密碼學(xué)的一個(gè)基本安全假設(shè)為,密碼算法的安全性依賴(lài)于密鑰及密鑰的長(zhǎng)度,而不是算法本身的保密性.然而在很多時(shí)候,政府或國(guó)防軍隊(duì)為了加強(qiáng)安全級(jí)別,或企業(yè)為了商業(yè)應(yīng)用,對(duì)一些密碼算法、部件進(jìn)行保密或修改.在此情況下,對(duì)帶有未知算法實(shí)現(xiàn)的密碼系統(tǒng)或模塊進(jìn)行安全性評(píng)估至關(guān)重要,其中逆向分析是進(jìn)行安全性評(píng)估的前提.逆向分析將直接影響到密碼算法實(shí)現(xiàn)測(cè)評(píng)的力度.
目前,已存在的逆向分析方法主要有數(shù)學(xué)逆向分析[1]、基于故障注入技術(shù)的逆向分析[2]和基于側(cè)信道技術(shù)的逆向分析[3]等.和數(shù)學(xué)分析方法相比,基于側(cè)信道和故障注入等旁路技術(shù)的逆向分析具有代價(jià)低、通用性強(qiáng)等優(yōu)勢(shì).另外,芯片解剖逆向[4]也是一種逆向分析方式,通過(guò)還原電路進(jìn)行邏輯判斷、分析,然而由于周期長(zhǎng)、代價(jià)高、可行性低等原因,該方法不適宜現(xiàn)在工藝發(fā)達(dá)、高度集成的加密電路芯片.
1) 數(shù)學(xué)逆向分析
在歐洲密碼年會(huì)(EUROCRYPT2001)上,文獻(xiàn)[1]提出了一種結(jié)構(gòu)分析方法,目的是在減少輪上進(jìn)行SPN機(jī)構(gòu)的逆向分析.考慮到分析的高復(fù)雜度,為了建立未知操作輸入和輸出之間的關(guān)系,利用該方法通過(guò)線(xiàn)性和非線(xiàn)性操作發(fā)現(xiàn)多重集的特征.在2011年文獻(xiàn)[5]使用這種方法實(shí)現(xiàn)了類(lèi)PRESENT算法的逆向S盒分析.
2) 基于故障注入技術(shù)的逆向分析
基于差分故障技術(shù)的逆向分析模型[6]是1997年由Biham等人最初提出的,即錯(cuò)誤發(fā)生位置可以控制,但錯(cuò)誤的結(jié)果未知.他們提出在一個(gè)封閉的防篡改設(shè)備(如智能卡)中可以逆向恢復(fù)未知S盒結(jié)構(gòu).2014年Clavier等人基于無(wú)效故障模型對(duì)類(lèi)AES算法進(jìn)行了逆向分析[7].在該模型下,即使敵手在不知道密鑰,對(duì)未保護(hù)的或帶有常用布爾掩碼和亂序防護(hù)措施的算法軟實(shí)現(xiàn),依然能夠完全逆向恢復(fù)所有未知參數(shù).
3) 基于側(cè)信道逆向分析
① 傳統(tǒng)側(cè)信道逆向分析
2008年文獻(xiàn)[8]提出基于硬件設(shè)計(jì)的未知Feistel結(jié)構(gòu)的逆向分析方案,使用選擇明文攻擊的側(cè)信道攻擊可以逆向分析恢復(fù).2010年文獻(xiàn)[9] 提出2種攻擊方法,一種是攻擊線(xiàn)性反饋寄存器結(jié)構(gòu)算法的未知線(xiàn)性部件;另一種是恢復(fù)未知的非線(xiàn)性函數(shù)如S盒.2011年文獻(xiàn)[10]使用故障注入同時(shí)對(duì)2個(gè)常用的DES和AES算法逆向恢復(fù)未知S盒.2016年文獻(xiàn)[11]提出了基于線(xiàn)性回歸攻擊的新型側(cè)信道逆向分析方法,與之前的側(cè)信道逆向分析相比,該方法使用更少的先驗(yàn)知識(shí),并能給出更多的密碼實(shí)例.
② 基于獨(dú)立分量攻擊(ICA)的逆向分析
2017年文獻(xiàn)[12]提出了一種新型的側(cè)信道分析技術(shù),即基于獨(dú)立分量技術(shù)[13](independent com-ponent analysis, ICA)的側(cè)信道分析方法.盲源分離問(wèn)題是指在原始信號(hào)被混合輸出后,如何從一組被觀測(cè)的混合信號(hào)中分離出沒(méi)有被觀測(cè)到的原始信號(hào).獨(dú)立分量技術(shù)可將側(cè)信道泄露轉(zhuǎn)化為有效的獨(dú)立分量觀測(cè),并直接從泄露的曲線(xiàn)中恢復(fù)出中間輪的某個(gè)中間狀態(tài).與傳統(tǒng)的側(cè)信道分析策略不同,該方法沒(méi)有采取“先猜測(cè)后確定”,而是采用了直接恢復(fù)的分析策略.該方法可用于未知密碼算法的逆向分析中.相比于已有方法,該方法對(duì)算法類(lèi)型和實(shí)現(xiàn)條件的限制較少,攻擊復(fù)雜度較低,適用性好.文獻(xiàn)[12]同時(shí)給出了一個(gè)針對(duì)DES實(shí)現(xiàn)的攻擊實(shí)例,結(jié)果顯示該方法恢復(fù)出S盒的等價(jià)形式僅需幾百條能量跡.
綜合以上相關(guān)工作,側(cè)信道在逆向分析中具有很大的優(yōu)勢(shì),在一定程度上降低了逆向分析的復(fù)雜度,可行性較強(qiáng).進(jìn)一步,獨(dú)立分量技術(shù)在側(cè)信道逆向分析中的應(yīng)用使得側(cè)信道逆向分析攻擊的適用性更強(qiáng)、復(fù)雜度更低.鑒于獨(dú)立分量技術(shù)的特點(diǎn),在側(cè)信道逆向分析中,特別適用于密碼算法具有比特打亂或比特置換部件.
GIFT算法[14]是在密碼硬件與嵌入式系統(tǒng)會(huì)議(CHES 2017)上提出的一種輕量級(jí)分組密碼算法.自該算法提出后,已出現(xiàn)一些針對(duì)它的分析結(jié)果,但尚沒(méi)有針對(duì)它抵抗逆向分析的安全性評(píng)估.
本文提出了一種基于獨(dú)立分量攻擊技術(shù)的類(lèi)GIFT算法S盒逆向分析方法.我們針對(duì)GIFT算法中P置換的比特置換特點(diǎn),構(gòu)造了有效的獨(dú)立分量觀測(cè)值,并從得到的功耗曲線(xiàn)中直接恢復(fù)出了第一輪P置換輸出值.因此在明文已知的情況下,S盒的內(nèi)容可以恢復(fù)出來(lái).另外我們也進(jìn)行了GIFT算法的逆向分析實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果驗(yàn)證了本方法是可行的.最后,我們針對(duì)獨(dú)立分量技術(shù)的攻擊特點(diǎn)給出了相關(guān)防御建議.
1.1.1 ICA定義
ICA是信號(hào)處理中解決盲源分離[12](blind source separation, BSS)問(wèn)題的一種常用技術(shù).利用該技術(shù)實(shí)現(xiàn)了雞尾酒會(huì)假設(shè)的問(wèn)題,即在酒會(huì)上多人在一起講話(huà),房間的多個(gè)麥克風(fēng)將大家的聲音混合在一起經(jīng)信號(hào)轉(zhuǎn)換后進(jìn)行記錄,如何由記錄的混合信號(hào)還原回原始的各個(gè)獨(dú)立的信號(hào).
ICA模型假設(shè)觀察到的混合信號(hào)變量Y=(y1,y2,…,ym)T,這些變量是由n個(gè)獨(dú)立未知源信號(hào)S=(s1,s2,…,sn)線(xiàn)性混合而成.因此混合信號(hào)yj和源信號(hào)S之間存在關(guān)系yj=aj,1s1+aj,2s2+…+aj,nsn,其中ai,j是未知的混合系數(shù).混合信號(hào)也可以使用向量表示為Y=AS,A為未知混合系數(shù)矩陣.在實(shí)際信號(hào)處理過(guò)程中,通常會(huì)考慮噪聲的干擾,ICA模型修正為Y=AS+N,N為未知的不可預(yù)測(cè)噪聲,符合正態(tài)高斯分布.ICA的作用是僅僅通過(guò)觀察Y來(lái)恢復(fù)源信號(hào)S和混合系數(shù)矩陣A.
1.1.2 ICA約束與不確定性
由ICA定義可知,在混合系數(shù)矩陣A未知情況下,由Y直接恢復(fù)S是非常有挑戰(zhàn)性的.使用ICA方法解決這個(gè)難題,需要滿(mǎn)足以下3個(gè)條件:
1) 觀測(cè)信號(hào)相互獨(dú)立;
2) 觀測(cè)信號(hào)必須非高斯分布;
3) 觀察個(gè)數(shù)大于等于源信號(hào)個(gè)數(shù) (m≥n).
由于源信號(hào)S和混合系數(shù)矩陣A未知,基于ICA模型恢復(fù)必然帶來(lái)了一些不確定結(jié)果,不確定性主要有以下2個(gè)方面:
1) 無(wú)法確定源信號(hào)的次序.這個(gè)是顯而易見(jiàn)的,選擇一個(gè)可逆矩陣P,由Y=AS,則Y=AP-1PS,若A和S是解,則AP-1和PS也是解.
2) 無(wú)法確定源信號(hào)的維度.任何一個(gè)源信號(hào)都可以通過(guò)乘一個(gè)標(biāo)量然后在矩陣A中對(duì)應(yīng)的列中除以該標(biāo)量抵消掉.
1.1.3 ICA算法
ICA自從提出開(kāi)始已有大量的研究成果,不同的處理算法相繼提出.按步驟分類(lèi)為以下3種:
1) 批處理算法.成對(duì)數(shù)據(jù)旋轉(zhuǎn)法(Jacobi)、特征矩陣的聯(lián)合近似對(duì)角法(JADE)等;
2) 自適應(yīng)算法.串行矩陣更新及其自適應(yīng)算法、擴(kuò)展的Infomax法等;
3) 探查性投影追蹤法.梯度算法、固定點(diǎn)算法(Fast ICA)等.
以上算法中Fast ICA類(lèi)最常用,本文使用該算法進(jìn)行實(shí)驗(yàn).
GIFT算法是Banik等人在CHES2017年會(huì)議上提出的SPN結(jié)構(gòu)輕量級(jí)算法,是PRESENT算法的升級(jí)版,修正了PRESENT算法已知的缺點(diǎn).該算法有2個(gè)版本,密鑰都是128 b,明文分組有區(qū)別分別為64 b和128 b.本文實(shí)驗(yàn)使用的是64 b版本,以64 b為例介紹,但是64 b和128 b攻擊效果是一樣的.
GIFT算法一共28輪運(yùn)算,每輪運(yùn)算由3個(gè)步驟組成:S盒替換、比特P置換和與密鑰異或運(yùn)算.
1.2.1 初始化
將加密的64位明文bn-1bn-2…b0作為一個(gè)密碼狀態(tài)S,其中b0是最低有效位.也可以將S表示為4位半字節(jié)排列,即S=ws-1‖ws-2‖…‖w0,其中s=16.密鑰128位可以表示為16位的字排列,即K=k7‖k6‖…‖k0.
1.2.2 S盒替換
S盒是GIFT算法中唯一的非線(xiàn)性部件,將狀態(tài)S中的每半個(gè)字節(jié)經(jīng)查表替換為相應(yīng)的值.wi←GS(wi),?i∈{0,…,s-1}.S盒GS如表1所示,表1中的數(shù)據(jù)使用十六進(jìn)制.
1.2.3 比特置換
比特置換用來(lái)打亂原來(lái)的位順序,將第i位的狀態(tài)置換為第P(i)位,即bP(i)←bi,?i∈{0,…,n-1}.P置換表如表2所示.
1.2.4 密鑰異或
32位的輪密鑰被分為2個(gè)16位字排列,即RK=U‖V=us-1…u0‖vs-1…v0.U和V分別和密碼狀態(tài)b4i+1和b4i進(jìn)行異或運(yùn)算.即b4i+1←b4i+1⊕ui,b4i←b4i⊕vi,?i∈{0,…,15}.
Table 1 GIFT S Box GS表1 GIFT算法的S盒GS
Table 2 GIFT Bit Permutation表2 GIFT算法P置換表
與輪密鑰異或運(yùn)算完的密碼狀態(tài)的第63,23,19,15,11,7和3位分別與1和6位輪常數(shù)進(jìn)行異或運(yùn)算.輪常數(shù)為C=c5c4c3c2c1c0,即
bn-1←bn-1⊕1,b23←b23⊕c5,
b19←b19⊕c4,b15←b15⊕c3,
b11←b11⊕c2,b7←b7⊕c1,b3←b3⊕c0.
1.2.5 密鑰編排和輪常數(shù)
輪密鑰RK32位由2個(gè)16位字排列組合而成,即RK=U‖V.U←k1,V←k0.密鑰每輪更新一次,k7‖k6‖…‖k0←k1>>>2‖k0>>>12‖…‖k3‖k2.其中,>>>i指的是16位字循環(huán)右移i位.輪常數(shù)使用6位線(xiàn)性反饋寄存器進(jìn)行更新,6位初始值為0,需要先更新才能使用,更新函數(shù)為(c5,c4,c3,c2,c1,c0)←(c4,c3,c2,c1,c0,c5⊕c4⊕1).每輪常數(shù)如表3所示:
Table 3 Rounds constants表3 輪常數(shù)
在本節(jié)中,我們?cè)敿?xì)介紹如何將ICA用于側(cè)信道逆向恢復(fù).依賴(lài)數(shù)據(jù)側(cè)信道泄露模型以及數(shù)據(jù)之間的獨(dú)立與非高斯性,通過(guò)深入研究算法的特定結(jié)構(gòu),構(gòu)造符合ICA攻擊條件,將側(cè)信道中需要恢復(fù)的中間值數(shù)據(jù)問(wèn)題轉(zhuǎn)換為ICA問(wèn)題.
側(cè)信道常用的數(shù)據(jù)依賴(lài)映射模型為漢明重量模型.對(duì)于中間值數(shù)據(jù)n位的能量泄露值可以表示為
L(x)=a1x1+a2x2+…+anxn,αi∈{0,1},
其中,xi表示中間值x的二進(jìn)制表示.能量泄露值的漢明重量模型滿(mǎn)足ICA線(xiàn)性混合條件.在側(cè)信道環(huán)境中,xi是比特信號(hào),取值0或者1,服從伯努利分布,天然滿(mǎn)足非高斯和獨(dú)立性.在此基礎(chǔ)上,構(gòu)造符合ICA觀測(cè)成為ICA在側(cè)信道逆向分析的關(guān)鍵,由于該問(wèn)題需要結(jié)合特定算法結(jié)構(gòu)進(jìn)行分析解決,針對(duì)本文的GIFT算法觀測(cè)將在3節(jié)介紹.
通過(guò)結(jié)合算法結(jié)構(gòu)和側(cè)信道相關(guān)理論,使得ICA算法在側(cè)信道環(huán)境中適用于逆向分析,通過(guò)觀察T個(gè)中間狀態(tài)x=(x(1),x(2),…,x(T)).由比特置換可知,每個(gè)比特之間互相獨(dú)立,可表示為xi=(xi(1),xi(2),…,xi(T)).相對(duì)應(yīng)的觀測(cè)為Y=(y1,y2,…,ym)T,而每比特觀測(cè)為yi=(yi(1),yi(2),…,yi(T)).如算法1所示.
算法1. 用于側(cè)信道逆向的ICA算法[15].
輸入:T條能量跡;
① 收集m個(gè)觀測(cè)Y=(y1,y2,…,ym)T.
② 利用Fast ICA算法,得到原觀測(cè)的n個(gè)實(shí)值獨(dú)立分量(IC1,IC2,…,ICn).
while ΔL>thresholddo
E-Step:用當(dāng)前的參數(shù)θ(j),計(jì)算對(duì)數(shù)似然期 望函數(shù)L(θ(j));
M-Step:計(jì)算最大化對(duì)數(shù)似然期望函數(shù)L的 參數(shù)(θ(j+1));
end while
電子噪聲在能量曲線(xiàn)采集中不可避免,噪聲會(huì)改變能量跡中的能量值,從而對(duì)逆向分析帶來(lái)了難度.一個(gè)簡(jiǎn)單直接的辦法就是改善采集硬件條件盡可能降低電子噪聲和轉(zhuǎn)換噪聲,另外就是通過(guò)多次采集求均值、濾波技術(shù)、奇異譜分析技術(shù)等預(yù)處理技術(shù),減少噪聲的干擾.S盒是分組密碼算法的關(guān)鍵非線(xiàn)性部件,它是逆向分析研究的主要分析對(duì)象.在針對(duì)S盒的逆向分析中,利用算法的特殊結(jié)構(gòu),ICA可以從能量跡上的能量值直接恢復(fù)S盒的輸出,本文提出基于ICA的逆向分析模型如圖1所示:
Fig. 1 ICA model for SCARE圖1 ICA側(cè)信道逆向分析模型
由圖1該模型下逆向分析S盒的步驟如下:
1) 選擇隨機(jī)明文,經(jīng)加密算法M次加密運(yùn)算,得到M條能量跡,也就得到一組M長(zhǎng)的源信號(hào)觀測(cè),而且相互之間是獨(dú)立的;
2) 選取S盒輸出的能量跡上的相應(yīng)值觀測(cè)作為能量值.能量值依據(jù)示波器的采用率和分辨率,而且和采樣時(shí)間長(zhǎng)短有關(guān).需要從能量跡上識(shí)別出所需的點(diǎn);
3) 使用Fast ICA算法對(duì)能量值進(jìn)行攻擊,恢復(fù)出S盒輸出二進(jìn)制序列;
4) 將二進(jìn)制轉(zhuǎn)化為16進(jìn)制數(shù)據(jù),作為算法S盒輸出;
5) 由于S盒輸入已知,由輸入和輸出逆向分析出S盒結(jié)果.
其中,
由于ICA方法直接恢復(fù)密碼算法的某個(gè)中間值,可以使用正確信號(hào)(Xc)與ICA計(jì)算恢復(fù)信號(hào)(Xr)之間的最小距離來(lái)判斷恢復(fù)結(jié)果的有效性.隨著能量跡的增多,D(Xr,Xc)將變大,因此ICA逆向分析成功率可定義為
由D(Xr,Xc)定義可知,ICA逆向恢復(fù)成功率最小為0.5;若成功率比較大,遠(yuǎn)遠(yuǎn)大于0.5,則說(shuō)明ICA成功恢復(fù)出S盒中間值;若成功率和0.5差不多,則說(shuō)明ICA計(jì)算返回的中間值不可信.
本節(jié)將詳細(xì)介紹GIFT算法利用ICA技術(shù)進(jìn)行逆向分析.GIFT算法主要由3部分組成,S盒置換、P置換和與輪密鑰、常數(shù)異或.因此在GIFT算法ICA觀測(cè)中,選擇比特置換作為觀測(cè)源,滿(mǎn)足ICA觀測(cè)需求,如圖2所示.
Fig. 2 Observations GIFT圖2 GIFT算法觀測(cè)圖
在這里我們將分析第1輪S盒輸出(它同時(shí)也是第1輪P置換的輸入)的能量泄露,由于P置換是逐比特進(jìn)行的,比特之間相互獨(dú)立,這種方法特別適用于構(gòu)造ICA觀測(cè).xi=(xi(1),xi(2),…,xi(T)).相對(duì)應(yīng)的觀測(cè)為Y=(y1,y2,…,ym)T,而每比特觀測(cè)為yi=(yi(1),yi(2),…,yi(T)).通過(guò)調(diào)用ICA算法,可以直接恢復(fù)出S盒的輸出值.
隨機(jī)選擇2 000組明文數(shù)據(jù),使用GIFT算法對(duì)該數(shù)據(jù)進(jìn)行加密,得到2 000條能量跡.由上面觀測(cè)圖2和先驗(yàn)知識(shí)可知,第1個(gè)S 盒輸出比特置換位分別為0,17,34和51,這4個(gè)比特之間相互獨(dú)立滿(mǎn)足ICA觀測(cè)要求,因此能量跡上存在4個(gè)點(diǎn)產(chǎn)生的能量值作為觀測(cè)值.以這種觀測(cè)方式,得到2 000組中間值觀測(cè),其他S盒執(zhí)行類(lèi)似觀測(cè).
Fig. 3 GIFT trace with SNR=0.01圖3 信噪比為0.01的GIFT能量跡
將2 000組觀測(cè)值作為ICA逆向分析算法輸入數(shù)據(jù)進(jìn)行計(jì)算.算法計(jì)算完成返回一個(gè)2 000行4列二進(jìn)制數(shù)據(jù)0或1矩陣.將矩陣中每行4列二進(jìn)制數(shù)據(jù)按照相應(yīng)權(quán)重計(jì)算為一個(gè)16進(jìn)制數(shù)據(jù),由此得到一個(gè)2 000行向量,每個(gè)值對(duì)應(yīng)為S盒輸出數(shù)據(jù).由于2 000個(gè)明文已知,對(duì)應(yīng)的S盒輸出數(shù)據(jù)已由ICA算法計(jì)算獲得,從而完成GIFT算法S盒逆向恢復(fù).
Fig. 4 GIFT trace with SNR=0.04圖4 信噪比為0.04的GIFT能量跡
Fig. 5 GIFT trace with SNR=1圖5 信噪比為1的GIFT能量跡
由圖3和圖5能量跡可以直觀得出,噪聲對(duì)側(cè)信道分析的影響也可以從能量跡上直觀的看到,信噪比小的能量跡波動(dòng)很大.信噪比為1的能量跡波動(dòng)明顯小于信噪比為0.01的能量跡波動(dòng).利用比特置換P為觀測(cè)源,通過(guò)選取能量跡上4個(gè)點(diǎn)能量值作為ICA觀測(cè)值,通過(guò)ICA算法對(duì)上述仿真的7組不同信噪比能量跡進(jìn)行逆向分析的成功率如表4所示.
Table 4 Success Rates Based on ICA for Recovering S Box with Different SNR
Fig. 6 Success rates based on ICA for recovering GIFT S box圖6 ICA逆向分析GIFT算法S盒成功率
圖6給出了GIFT算法首輪第一個(gè)S盒ICA逆向恢復(fù)結(jié)果.實(shí)驗(yàn)中,沒(méi)有噪聲的觀測(cè)值恢復(fù)很快,無(wú)疑正確的恢復(fù)出了結(jié)果;信噪比在接近1以及大于1時(shí)的成功率都為1;可以看出信噪比為0.04的逆向成功率為0.757 5,效果也比較理想;但在信噪比為0.01時(shí)的成功率較低,僅有0.627 5.
實(shí)驗(yàn)中,統(tǒng)一使用的能量跡2 000條,成功率為1的逆向分析實(shí)際上用不了2 000條.成功率小于1的隨著能量跡條數(shù)的增多,成功率會(huì)逐漸增大,但是信噪比較低的,成功率不會(huì)有大的改善.另外,本實(shí)驗(yàn)沒(méi)有使用任何降噪技術(shù),如果能量跡進(jìn)行降噪預(yù)處理后再進(jìn)行觀測(cè),那么效果會(huì)得到改善,可以預(yù)計(jì)的是攻擊條數(shù)會(huì)有相應(yīng)減少,信噪比太低的,成功率仍然不會(huì)有很大提高,這是由于有用信息已被噪聲淹沒(méi)掉.
對(duì)帶有未知算法實(shí)現(xiàn)的密碼系統(tǒng)或模塊進(jìn)行逆向分析具有重要意義,側(cè)信道方法具有一定的優(yōu)勢(shì),在一定程度上降低了逆向分析的復(fù)雜度,而且可行性強(qiáng).與傳統(tǒng)的側(cè)信道逆向分析相比,本文提出的一種基于獨(dú)立分量攻擊技術(shù)的類(lèi)GIFT算法S盒逆向分析方法,不需要進(jìn)行猜測(cè)和確定.我們針對(duì)該算法中P置換的比特置換特點(diǎn),構(gòu)造了有效的獨(dú)立分量觀測(cè)值,并從仿真得到的能量跡中直接恢復(fù)出了第一輪P置換輸出值,從而成功進(jìn)行逆向分析.
本文提出的基于ICA的逆向分析方法和模型,基于P置換的比特置換特點(diǎn).對(duì)于某些算法結(jié)構(gòu)中,并不存在比特置換特點(diǎn)如國(guó)密SM4算法,相互之間不獨(dú)立,因此無(wú)法進(jìn)行有效觀測(cè).如何構(gòu)建符合ICA攻擊的獨(dú)立觀測(cè)是一個(gè)難點(diǎn),可以嘗試選擇特定明文或使明文與一個(gè)常數(shù)異或,使得該算法在第二輪加密時(shí)達(dá)到某些觀測(cè)值之間相互獨(dú)立.
如果算法工程采用軟實(shí)現(xiàn)方式,針對(duì)本文提出的基于獨(dú)立分量技術(shù)的逆向分析,使用大噪聲干擾是一種方案,該方法在一定程度上增加了該攻擊難度,如果噪聲足夠大,則信號(hào)將淹沒(méi),信噪比很低,無(wú)法恢復(fù)出有用信號(hào).對(duì)于硬實(shí)現(xiàn),暫時(shí)沒(méi)有找到合適的線(xiàn)性模型,觀測(cè)值之間相互不獨(dú)立,分離信號(hào)有一定的難度,是目前該方法的局限性,因此硬實(shí)現(xiàn)是一種比較理想的防護(hù)方案.最后統(tǒng)籌考慮安全因素和性能代價(jià),選擇沒(méi)有比特置換特點(diǎn)的算法,使得攻擊者無(wú)法構(gòu)建符合ICA攻擊的獨(dú)立觀測(cè).盡管該方法不夠完美,有一定的局限性,但本方法為密碼分析者和測(cè)評(píng)機(jī)構(gòu)提供了一種新的思路和評(píng)估手段,對(duì)于其他未知算法的逆向分析也具有參考意義.