一種針對(duì)sm4密碼算法輪輸入漢明重量的模板攻擊方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及密碼算法分析檢測(cè)領(lǐng)域,尤其設(shè)及一種針對(duì)SM4密碼算法輪輸入的漢 明重量的模板攻擊的方法。
【背景技術(shù)】
[0002] 隨著信息和分析電路技術(shù)的發(fā)展,對(duì)硬件密碼電子設(shè)備的破解不再單純的停留在 協(xié)議和算法上,而是從其處理數(shù)據(jù)的過程中泄露的信息入手,進(jìn)行破解。硬件密碼電子設(shè)備 在處理信息的工程中存在能量、電磁、錯(cuò)誤和時(shí)間等信息的泄露,利用該些泄露的信息對(duì)密 碼電子設(shè)備進(jìn)行攻擊,就是所謂的側(cè)信道攻擊(Side化annelAttacks),側(cè)信道攻擊可分 為能量分析攻擊、電磁攻擊和錯(cuò)誤攻擊等,其中能量分析攻擊因效率較高,成為側(cè)信道的主 要手段。
[0003] 側(cè)信道能量分析攻擊是通過采集加密巧片等硬件密碼電子設(shè)備在進(jìn)行加、解密或 簽名等操作時(shí)產(chǎn)生的能量消耗,利用密碼學(xué)和統(tǒng)計(jì)學(xué)原理等,分析和破譯密鑰信息的一種 攻擊方式。
[0004] 模板攻擊是基于密碼巧片能量消耗與正在處理數(shù)據(jù)的相關(guān)性的基礎(chǔ)上實(shí)施的。其 攻擊過程通常包括兩個(gè)階段:第一個(gè)階段是對(duì)所有可能猜測(cè)密鑰的能量消耗特征進(jìn)行刻 畫;第二個(gè)階段是采集被攻擊密碼巧片上的側(cè)信道信息,計(jì)算其與所刻畫的能量消耗特征 的匹配程度,即可得到有關(guān)正確密鑰的信息。由于模板攻擊非常有效、實(shí)現(xiàn)簡(jiǎn)單且無需大量 資源,所W目前是側(cè)信道分析攻擊研究領(lǐng)域的重點(diǎn)之一。
[0005] 支持向量機(jī)是建立在統(tǒng)計(jì)學(xué)習(xí)理論和結(jié)構(gòu)風(fēng)險(xiǎn)最小化的原理基礎(chǔ)上的一種極其 學(xué)習(xí)的方法。支持向量機(jī)是數(shù)據(jù)挖掘中的一項(xiàng)新技術(shù),是借助于最優(yōu)化方法解決機(jī)器學(xué) 習(xí)的問題的新工具,它由Vapnik等提出的一種新的機(jī)器學(xué)習(xí)方法,它W結(jié)構(gòu)風(fēng)險(xiǎn)最小為 原則,它本質(zhì)上是求解凸二次規(guī)劃問題,在解決小樣本、非線性和高維模式識(shí)別問題中有 較大優(yōu)勢(shì)。當(dāng)樣本為兩類可分時(shí),其基本思想是對(duì)于樣本集(X。Yi),i=l, 2,…,n,XGRd, yG{-1,+1},通過非線性的核函數(shù)4把樣本從原始的數(shù)據(jù)空間映射到高維的特征空間Q, 在高維的特征空間上構(gòu)造一個(gè)最優(yōu)的分類超平面,使得分類的數(shù)據(jù)被超平面正確的分開。 通過引入滿足Mercer,條件的核函數(shù)K(X。y;),求解二次規(guī)劃的問題:
【主權(quán)項(xiàng)】
1. 針對(duì)SM4密碼算法基于漢明重量的模板攻擊的方法,以SM4算法的輪輸入作為模板 攻擊的目標(biāo),其特征在于,所述方法包括以下步驟: 51 :建立模板階段,選擇性的輸入明文或者密文XpXpXjPX3與隨機(jī)的已知密鑰,建立 輪輸入M=(Xi+1?Xi+2?Xi+3?rh) (i=0, 1,2,3)為運(yùn)算中間值的漢明重量的模板,每輪輪 輸入運(yùn)算建立33個(gè)模板; 52 :模板匹配階段,分別將每輪的33個(gè)模板建立對(duì)應(yīng)的33個(gè)支持向量機(jī)分類器,針對(duì) 每一個(gè)模板建立分類器時(shí),當(dāng)前模板為正類,其余的模板為負(fù)類;通過選擇性明文或密文 的輸入,建立未知密鑰的模板T;更新當(dāng)前輪X=(Xi+1?Xi+2?Xi+3?rkD,(i=0, 1,2,3)結(jié) 果的第^i^ 31)比特,建立新的未知模板T',利用分類器分別對(duì)模板T和I進(jìn)行匹 配,得出其對(duì)應(yīng)的漢明重量分別為W和W',比較W和W'的大小,即可得出當(dāng)前輪密鑰的第j比特,重復(fù)上面的過程,直到恢復(fù)出前4輪的字密鑰; 53 :在S2的基礎(chǔ)上得出前四輪的字密鑰,運(yùn)用SM4密鑰擴(kuò)展算法推出未知的SM4的密 鑰。
2. 前述Sl具體包括以下步驟: 511 :選擇SM4加/解密輪輸入為模板攻擊的攻擊點(diǎn); 512 :輪數(shù)i=0 ; S13:選擇輸入使Xi+1?Xi+2十Xi+3=0x00000000,隨機(jī)輸入咖,設(shè)M= (Xi+1 ?Xi+2 ?Xi+3 ?rkJ為運(yùn)算中間值,以M的漢明重量建立模板,其中間值的漢明重量 的取值為[〇, 32]且為整數(shù),根據(jù)M的漢明重量將曲線劃分為33個(gè)集合,記為HW。,HW1,……, HW32; S14:針對(duì)每一個(gè)集合利用主成分分析進(jìn)行降維處理,最后將均值向量i和降維矩陣Y組成的模板T= <f,Y>,共33個(gè)模板; S15 :輪數(shù)自加1,返回S1~S14的步驟,直到前四輪的輪輸入的模板建立完成。
3. 前述S2具體包括以下步驟: 521 :初始化輪數(shù)i=0 ; 522 :對(duì)當(dāng)前輪進(jìn)行模板攻擊的匹配,此時(shí)攻擊的目標(biāo)是rki,rh是固定未知的,選擇輸 入的明文或者密文父。、父1、父2和父 3作為輸入,設(shè)父=1+1?父1+2?父1+3); 523 :對(duì)SM4加密卡或者加密設(shè)備進(jìn)行加密m次,采集相應(yīng)的能量曲線; S24:對(duì)能量曲線進(jìn)行處理,建立待測(cè)試的模板,設(shè)待測(cè)模板為t; S25:利用支持向量機(jī)建立基本的分類模型,此發(fā)明利用的是一對(duì)一的支持向量機(jī)模 型,對(duì)每個(gè)模板建立一個(gè)支持向量機(jī)分類器,每攻擊一輪密鑰時(shí),需要建立33個(gè)支持向量 機(jī)分類器,在針對(duì)每一個(gè)建立支持向量機(jī)是當(dāng)前的模板為正類、其他模板為負(fù)類,組合成訓(xùn) 練的數(shù)據(jù)進(jìn)行訓(xùn)練; S26 :將待測(cè)模板作為測(cè)試數(shù)據(jù),利用建立好33個(gè)的支持向量機(jī)分類器進(jìn)行預(yù)測(cè)分析, 將待測(cè)試的模板通過所有的分類器,找出屬于輸出為正類的一個(gè),設(shè)預(yù)測(cè)的結(jié)果的漢明重 量為W; 527 :初始化j=0,對(duì)當(dāng)前輪輸入的明文進(jìn)行更新,重新建立一個(gè)新的模板,只更新X的 第j位(j=〇),將X的第j位取反; 528 :利用新的明文對(duì)SM4加密卡或者加密設(shè)備進(jìn)行加密m次,采集相應(yīng)的能量曲線; 529 :執(zhí)行步驟S24的過程,設(shè)此時(shí)的預(yù)測(cè)結(jié)果的漢明重量為W' ; 5210 :比較W和W的大小,若W>W',則咖的第j位為1,反之rk,的第j位(最 低位)為〇 ; 5211 :丨自加1,更新X的第j位,將其取反,返回步驟S26~S211,直到rki完全恢復(fù); 5212 :輪數(shù)i自加1,返回S22~S212的步驟,直到得出前四輪的字密鑰rlvrkprk2* rk3〇
【專利摘要】本發(fā)明公開了一種針對(duì)SM4密碼算法模板攻擊的方法。該方法以SM4算法輪輸入作為攻擊點(diǎn),選擇漢明重量建立模板,以較少的模板數(shù)量就能實(shí)現(xiàn)完整的SM4模板攻擊;同時(shí)在模板匹配階段以選擇性的明文輸入作為基礎(chǔ),利用支持向量機(jī)作為判別分析的工具,只需要兩次匹配就可以破解出子密鑰的一個(gè)比特。該方法有效解決了現(xiàn)階段其他方法針對(duì)模板攻擊模板數(shù)據(jù)過多、計(jì)算量過大的問題。
【IPC分類】H04L9-06
【公開號(hào)】CN104717055
【申請(qǐng)?zhí)枴緾N201510134735
【發(fā)明人】王敏, 吳震, 饒金濤, 李大為, 羅鵬, 趙東艷, 張海峰, 唐曉柯, 胡曉波, 甘杰, 劉輝志
【申請(qǐng)人】成都信息工程學(xué)院, 成都芯安尤里卡信息科技有限公司, 國家密碼管理局商用密碼檢測(cè)中心, 北京南瑞智芯微電子科技有限公司
【公開日】2015年6月17日
【申請(qǐng)日】2015年3月25日