一種針對sm4密碼線性變換輸出的側(cè)信道能量攻擊方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及密碼算法分析檢測領(lǐng)域,尤其設(shè)及一種針對SM4密碼算法線性變換輸 出的側(cè)信道能量攻擊的方法。
【背景技術(shù)】
[0002] 隨著信息和分析電路技術(shù)的發(fā)展,對硬件密碼電子設(shè)備的破解不再單純的停留在 協(xié)議和算法上,而是從其處理數(shù)據(jù)的過程中泄露的信息入手,進(jìn)行破解。硬件密碼電子設(shè)備 在處理信息的工程中存在能量、電磁、錯誤和時間等信息的泄露,利用該些泄露的信息對密 碼電子設(shè)備進(jìn)行攻擊,就是所謂的側(cè)信道攻擊(Side化annelAttacks),側(cè)信道攻擊可分 為能量分析攻擊、電磁攻擊和錯誤攻擊等,其中能量分析攻擊效率較高,成為側(cè)信道的主要 手段。
[0003] 側(cè)信道能量分析攻擊是通過采集加密巧片等硬件密碼電子設(shè)備在進(jìn)行加、解密 或簽名等操作時產(chǎn)生的能量消耗,利用密碼學(xué)和統(tǒng)計(jì)學(xué)原理等分析和破譯密鑰信息的一 種攻擊方式,側(cè)信道能量分析攻擊又分為簡單能量分析攻擊(SimplePowerAnalysis, SPA)、差分能量分析攻擊(DifferentialPowerAnalysis,DPA)和相關(guān)性能量分析攻擊 (CorrelationPowerAnalysis,CPA)。
[0004] 在側(cè)信道能量分析攻擊中,CPA和DPA相比SPA具有更強(qiáng)的攻擊性,所W能量分析 攻擊中比較常用的是CPA和DPA。
[000引 其中,DPA攻擊的過程如下; (1)隨機(jī)選擇N組不相同明文或密文Mi(iG[1,閑)進(jìn)行加/解密運(yùn)算,采集每組明 文進(jìn)行加密運(yùn)算時設(shè)備產(chǎn)生的能量曲線Ti(t),tG(1,…,k},其中k為能量軌跡的采樣 點(diǎn)數(shù)。
[0006](2)選擇密鑰Ki(1GQ,Q為密鑰空間),計(jì)算在Ki和Mi條件下,密碼算法進(jìn)行 加密運(yùn)算時在被攻擊點(diǎn)產(chǎn)生的中間值町,1。
[0007] 做根據(jù)中間值Di,i確定選擇函數(shù)F(Mi,Ki),根據(jù)選擇函數(shù)將Ti(t)分為兩個子集 S。和Si,定義式如下; S〇=化(t) |F(Mj,K! )=0} Si=化(t)|F(MjiK;)4} (4)計(jì)算每個采樣點(diǎn)上兩個子集的能量平均之差,如
【主權(quán)項(xiàng)】
1. 針對SM4密碼算法線性變換輸出的側(cè)信道能量分析攻擊方法,其特征在于,所述方 法包括以下步驟: SI:選擇兩次攻擊的字節(jié),每次對應(yīng)的輸入為(Xi+1?Xi+2?Xi+3)中和要攻擊的字節(jié)對 應(yīng)的字節(jié)為隨機(jī)數(shù),其它為固定數(shù),采用側(cè)信道能量攻擊方法攻擊出輪子密鑰的字節(jié)和對 應(yīng)的線性變換中的固定數(shù),將兩次攻擊的輪子密鑰字節(jié)和固定數(shù),進(jìn)行相應(yīng)的運(yùn)算,即可獲 得完整的輪子密鑰rki,其中,i=0, 1,2, 3 ; S2 :根據(jù)所述前四輪輪函數(shù)的輪子密鑰riv rV水和rk 3,通過密鑰擴(kuò)展算法,逆向計(jì) 算出初始密鑰。
2. 根據(jù)權(quán)利要求1所述的針對SM4密碼算法線性變換輸出的側(cè)信道能量分析攻擊方 法,其特征在于,所述Sl具體包括以下步驟: 511 :攻擊加/解密的第一輪,初始化i=0 ; 512 :選擇兩次攻擊的字節(jié),每次對應(yīng)的輸入為(Xi+1 ? X i+2 ? X i+3)中和要攻擊的字節(jié) 對應(yīng)的字節(jié)為隨機(jī)數(shù),其它為固定數(shù),所述的兩次攻擊的字節(jié)為第j個字節(jié)和第(j+1) mod 4個字節(jié),或者為第j個字節(jié)和第(j+3) mod 4個字節(jié),(j=0,l,2,3); 513 :采用側(cè)信道能量攻擊方法攻擊出第i輪輪子密鑰的第j個字節(jié)和第(j+1) mod 4 個字節(jié),及線性變換中第j個字節(jié)和第(j+1) mod 4個字節(jié)固定數(shù),或者采用側(cè)信道能量攻 擊方法攻擊出第i輪輪子密鑰的第j個字節(jié)和第(j+3) mod 4個字節(jié),及線性變換中第j 個字節(jié)和第(j+3) mod 4個字節(jié)固定數(shù),所述側(cè)信道能量攻擊方法采用CPA攻擊方法或DPA 攻擊方法; 514 :如果所述的兩次攻擊的字節(jié)為第j個字節(jié)和第(j+1) mod 4個字節(jié),則根據(jù)rki;j 和AuMnwd4及線性變換中第j個字節(jié)和第(j+1) mod 4個字節(jié)固定數(shù),計(jì)算出第i輪輪子 密鑰的剩余字節(jié),獲得完整的輪子密鑰rkp如果所述的兩次攻擊的字節(jié)為第j個字節(jié)和第 (」+3)111〇(14個字節(jié),則根據(jù)11^,」和11^,(」 +3)111。(14,及線性變換中第」個字節(jié)和第(」+3)1]1〇(1 4個字節(jié)固定數(shù),計(jì)算出第i輪輪子密鑰的剩余字節(jié),獲得完整的輪子密鑰rk i; 515 :使i自增1,返回步驟S12繼續(xù)攻擊下一輪,直到得出加密運(yùn)算或者解密運(yùn)算的前 四輪的輪子密鑰rk Q、rkp味和rk 3。
3. 所述S13中如果采用CPA攻擊方法實(shí)現(xiàn)側(cè)信道能量攻擊,包括以下步驟: 51311 :初始化攻擊次數(shù)計(jì)數(shù)z=l ; 51312 :采集SM4密碼設(shè)備上加/解密時的能量曲線表示為Tn(t); 51313 :獲取rki,」和mask i,」的所有可能值,用rk ^mask0表示(rk φ、 masU e [〇, 2 8-1]);根據(jù)rU和第η條曲線對應(yīng)的明文或密文輸入計(jì)算SM4第i輪線性變 換輸出的第j個字節(jié)為C i, ^=Hiaskej十S (rk 〇十X i+1,」十X i+2,」十X i+3, p十(S (rko十X i+1,」十X i+2, j十 Xi+3,P〈〈2);根據(jù)攻擊方式不同,將線性變換的輸出Cu為攻擊的中間數(shù)據(jù),計(jì)算Cu的漢明 重量或漢明距離;
S1314:根據(jù)Π 十算Tn(t)和 f 一
~ ~ 解
51315 :取相關(guān)系數(shù)最大值時對應(yīng)的rk^mask。,即為rki;』和mask i;』對應(yīng)的實(shí)際數(shù)據(jù); 51316 :z=z+l;如果z==2,使j=(j+l) mod 4,跳轉(zhuǎn)到步驟S1312繼續(xù)攻擊,否則停止攻 擊。
4. 所述S13中如果采用DPA攻擊方法實(shí)現(xiàn)側(cè)信道能量攻擊,包括以下步驟: 51321 :初始化攻擊次數(shù)計(jì)數(shù)z=l ; 51322 :采集SM4密碼設(shè)備上加/解密時的能量曲線表示為Tn(t); 51323 :獲取rku和mask u的所有可能值,用rk ?i^mask。表示(rk φ、 mash e [〇, 2 8-1]);根據(jù)rk^masko和第η條曲線對應(yīng)的明文或密文輸入計(jì)算SM4第i輪 線性變換輸出的第 j 個字節(jié)為 Ci, J=Hiask0 ? S (rk φ ? X i+1,j ? X i+2, j ? X i+3, p ? (S (rk0 ? X i+1,j 十 ? X i+3;P〈〈2);將線性變換的輸出Cu為攻擊的中間數(shù)據(jù),如果攻擊時選擇漢明重量模 型,則計(jì)算Ci;j的漢明重量,表示為hn,rkjj,mas5^ =HW(Ci;j);如果攻擊時選擇漢明距離模型, 貝丨J計(jì)算Ci,』的漢明距尚,表不為- HW (Ci,』田C η,』); 51324 :確定DPA選擇函數(shù)為:
31325:根據(jù)選擇函數(shù)將1;(〇分為兩個子集5(5和:51,:5(;>和:5 1定義式如下所示: 50. ITi (t) F(MilK1)=O), 51 ={ Ti (t) F(MilK1)=I); 51326 :根據(jù)
計(jì)算每個采樣點(diǎn)上兩個子集的能量平均之 差,在均值差S中出現(xiàn)一個最大尖峰時對應(yīng)的rk^mask。,即為rku和mask u對應(yīng)的實(shí)際 數(shù)據(jù); 51327 :z=z+l ;如果z==2,使j=(j+l)mod4,跳轉(zhuǎn)到步驟S1322繼續(xù)攻擊,否則停止攻 擊。
5. 所述S13中如采用CPA攻擊方法實(shí)現(xiàn)側(cè)信道能量攻擊方法,攻擊出第i輪輪子密鑰 的第」個字節(jié)和第0_+3)111〇(14個字節(jié),及線性變換中第」個字節(jié)和第(」+3)111 〇(14個字節(jié) 固定數(shù),具體包括以下步驟: 51331 :初始化攻擊次數(shù)計(jì)數(shù)z=l ; 51332 :采集SM4密碼設(shè)備上加/解密時的能量曲線表示為Tn(t); 51333 :獲取rki;j的所有可能值,表示為rk^e [〇,28-1],maSki;j的所有可能值,表示 為Iiiask ej e [〇, 2 8-1],根據(jù)rkp Iiiaskej和第η條曲線對應(yīng)的明文或密文輸入計(jì)算SM4第i 輪線性變換輸出的第 j 個字節(jié)為 Ci, J=Hiask0 ? S (rk φ ? X i+1,J ? X i+2, J ? X i+3, P ? (S (rk。? X i+1, j ? Xi+2, j ? Xi+3」〈〈2);將線性變換的輸出Ci, j為攻擊的中間數(shù)據(jù),如果攻擊時選擇漢明重量 模型,則計(jì)算Cy的漢明重量,表示為= HW(Cy);如果攻擊時選擇漢明距離模 型,則計(jì)算Ci,」的漢明距尚,表不為- HW (Ci,」田C η,』);
51335 :取相關(guān)系數(shù)最大值時對應(yīng)的rke^mask。,即為rki,j和mask i,j對應(yīng)的實(shí)際數(shù)據(jù); 51336 :z=z+l;如果z==2,使j=(j+3) mod 4,跳轉(zhuǎn)到步驟S1332繼續(xù)攻擊,否則停止攻 擊。
6.所述S13中如果采用DPA攻擊方法實(shí)現(xiàn)側(cè)信道能量攻擊方法,攻擊出第i輪輪子密 鑰的第j個字節(jié)和第(j+3) mod 4個字節(jié),及線性變換中第j個字節(jié)和第(j+3) mod 4個 字節(jié)固定數(shù),具體包括以下步驟: 51341 :初始化攻擊次數(shù)計(jì)數(shù)z=l ; 51342 :采集SM4密碼設(shè)備上加/解密時的能量曲線表示為Tn(t); 51343 :獲取rku和mask u的所有可能值,用rk ?i^mask。表示(rk φ、 mash e [〇, 2 8-1]);根據(jù)rk^masko和第η條曲線對應(yīng)的明文或密文輸入計(jì)算SM4第i輪 線性變換輸出的第 j 個字節(jié)為 Ci, J=Hiask0 ? S (rk φ ? X i+1,j ? X i+2, j ? X i+3, p ? (S (rk0 ? X i+1,j 十 ? X i+3;P〈〈2);將線性變換的輸出Cu為攻擊的中間數(shù)據(jù),如果攻擊時選擇漢明重量模 型,則計(jì)算(^的漢明重量,表示為111"1%,11挪1^=服((^);如果攻擊時選擇漢明距離模型, 貝丨J計(jì)算Ci,』的漢明距1?,表不為IlmJcsimasJi2 - HW (Ci,』田C η,』); 51344 :確定DPA選擇函數(shù)為:
51345 :根據(jù)選擇函數(shù)將Tn(t)分為兩個子集Stl和S i,\和S i定義式如下所示: 50 =(TiU) F(MilK1)=O), 51 =(TiU) F(MilK1)=I); 51346 :根據(jù)
十算每個采樣點(diǎn)上兩個子集的能量平均之 差,在均值差S中出現(xiàn)一個最大尖峰時對應(yīng)的rk。Amask。,即為rku和HiaskiJ對應(yīng)的實(shí)際 數(shù)據(jù); 51347 :z=z+l;如果z==2,使j=(j+3) mod 4,跳轉(zhuǎn)到步驟S1342繼續(xù)攻擊,否則停止攻 擊。
【專利摘要】本發(fā)明公開了一種針對SM4密碼算法線性變換輸出的側(cè)信道能量分析攻擊方法,包括以下步驟:S1:選擇兩次攻擊的字節(jié),每次對應(yīng)的輸入為 (Xi+1⊕Xi+2⊕Xi+3) 中和要攻擊的字節(jié)對應(yīng)的字節(jié)為隨機(jī)數(shù),其它為固定數(shù),采用側(cè)信道能量攻擊方法攻擊出輪子密鑰的字節(jié)和對應(yīng)的線性變換中的固定數(shù),將兩次攻擊的輪子密鑰字節(jié)和固定數(shù),進(jìn)行相應(yīng)的運(yùn)算,即可獲得完整的輪子密鑰rki,其中,i=0,1,2,3;S2:根據(jù)所述前四輪輪子密鑰rk0、rk1、rk2和rk3,通過密鑰擴(kuò)展算法,逆向計(jì)算出初始密鑰。采用上述分析方法不僅實(shí)現(xiàn)了針對SM4線性變換輸出的側(cè)信道能量分析攻擊,而且降低攻擊完整密鑰所需的攻擊次數(shù),增強(qiáng)了攻擊效率和成功率。
【IPC分類】H04L9-08
【公開號】CN104753668
【申請?zhí)枴緾N201510120633
【發(fā)明人】杜之波, 吳震, 饒金濤, 王敏, 李大為, 羅鵬
【申請人】成都信息工程學(xué)院, 成都芯安尤里卡信息科技有限公司, 國家密碼管理局商用密碼檢測中心
【公開日】2015年7月1日
【申請日】2015年3月19日