一種檢測sha-1算法抵御差分故障攻擊的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體包括一種檢測SHA-1算法抵御差分故障攻擊 的方法,主要應(yīng)用于測評封裝有SHA-1算法的產(chǎn)品的安全性。
【背景技術(shù)】
[0002] 在當(dāng)今互聯(lián)網(wǎng)與通信技術(shù)飛速發(fā)展的時代,大量重要的信息存儲在網(wǎng)絡(luò)服務(wù)器 中,給人們帶來方便的同時也產(chǎn)生了巨大的信息安全隱患。就密碼學(xué)研究的現(xiàn)狀來看,雖然 SHA-1算法的安全性不斷地受到質(zhì)疑,但SHA-1算法仍然是目前使用的一種可靠的散列算 法,其產(chǎn)生的160bit摘要比起MD5的128bit摘要具有更強的抵抗攻擊的能力。因此,SHA-1 算法憑借自身良好的結(jié)構(gòu)特性,被廣泛應(yīng)用社會的各行各業(yè)。
[0003] 差分故障攻擊是一種將故障攻擊方法與差分分析相結(jié)合密碼攻擊技術(shù)。它針對密 碼算法的結(jié)構(gòu)和輪函數(shù)的特性,在處理消息過程中通過導(dǎo)入故障實現(xiàn)?,F(xiàn)有技術(shù)中還沒有 公開的方法能夠?qū)HA-1算法抵御差分故障攻擊的能力進(jìn)行評估,這對封裝有SHA-1算法 的密碼設(shè)備的安全性帶來了隱患。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決的技術(shù)問題是提供一種能夠?qū)HA-1算法抵御差分故障攻擊的能 力進(jìn)行評估的方法。
[0005] 為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是提供一種檢測SHA-1算法抵御差分 故障攻擊的方法,其特征在于:包括以下步驟:
[0006] 步驟1 :隨機生成當(dāng)前要處理的消息,記為M;
[0007] 步驟2 :利用SHA-1算法處理消息M,得到正確輸出和錯誤輸出,分別記為C和C%
[0008] 步驟3 :計算C和(T的差分值,結(jié)果記為AC;
[0009] 步驟4 :分析AC,判斷SHA-1算法是否受到差分故障攻擊的影響,并能夠推導(dǎo)出故 障導(dǎo)入的位置,分析其有效性,具體方法如下:
[0010] 計算正確輸出c和錯誤輸出(T的差分AC=C十€?%其中馨代表異或運算,AC為 160比特,保存于160比特的緩存區(qū)中,緩存區(qū)用5個32比特長的寄存器(A,B,C,D,E)表 示,八14、(;44是第1步緩存區(qū)中的值,1£[0,79];令八〇=(八(:。,八(: 1,八(:2,八(:3, AC4),ACQ,AQ,AC2,AC#AC4均為32比特,分別代表緩存區(qū)中最后一輪輸出結(jié)果的 差分;
[0011] ①有效故障:
[0012] i)當(dāng)AC。、ACpAC2、AC# 0時,故障導(dǎo)入的位置為A77;
[0013]ii)當(dāng)AC。、AQ、AC2、AC4# 0時,故障導(dǎo)入的位置為B77;
[0014]iii)當(dāng)AC。、AQ、AC2、AC3、八(;中均不為0時,故障導(dǎo)入的位置為A76以及A76 之前的任何位置;
[0015]②無效故障:
[0016]I)當(dāng)AC=0時,說明導(dǎo)入的故障值等于當(dāng)前位置上的原值,那么故障導(dǎo)入的位置 可以是任何位置;
[0017]II)當(dāng)AC關(guān) 0 時:
[0018]i)當(dāng)AC。、AQ、AC2、AC3、AC4中有且僅有一個不為0時,
[0019]a)當(dāng)AC。關(guān)0時,故障導(dǎo)入的位置為A8Q或E79;
[0020] b)當(dāng)AC# 0時,故障導(dǎo)入的位置為B8。;
[0021] c)當(dāng)AC# 0時,故障導(dǎo)入的位置為C8。;
[0022] d)當(dāng)AC# 0時,故障導(dǎo)入的位置為D8Q;
[0023]e)當(dāng)AC4# 0時,故障導(dǎo)入的位置為E8。;
[0024]ii)當(dāng)AC。、AQ、AC2、AC3、AC4中只有兩個同時不為0時,
[0025]a)當(dāng)ACQ關(guān)0且AC# 0時,故障導(dǎo)入的位置為A79;
[0026]b)當(dāng)ACQ關(guān)0且AC2關(guān)0時,故障導(dǎo)入的位置為B79;
[0027]c)當(dāng)ACQ關(guān)0且AC3關(guān)0時,故障導(dǎo)入的位置為C79;
[0028]d)當(dāng)ACQ關(guān)0且AC4關(guān)0時,故障導(dǎo)入的位置為D79;
[0029]iii)當(dāng)AC。、AQ、AC2、AC3、AC4中只有三個同時不為0時,
[0030]a)當(dāng)ACQ、ACdPAC2尹0時,故障導(dǎo)入的位置為A78;
[0031]b)當(dāng)AC。、AC#AC# 0時,故障導(dǎo)入的位置為B78;
[0032]c)當(dāng)ACQ、A(^和AC4尹0時,故障導(dǎo)入的位置為C78。
[0033] 優(yōu)選地,所述步驟2中,用SHA-1算法對M進(jìn)行處理的過程中對運行環(huán)境實施兩種 不同的控制,具體包括如下步驟:
[0034] 步驟2. 1 :首先控制執(zhí)行環(huán)境不受其他事物的干擾,使得SHA-1算法對M的處理過 程能夠正確無誤地進(jìn)行,以便得到正確的輸出結(jié)果,并將其記為C;
[0035] 步驟2. 2 :重新輸入消息M再次用SHA-1算法對它進(jìn)行處理,同時,借助其他物理 設(shè)備改變運行環(huán)境,誘導(dǎo)產(chǎn)生故障來干擾SHA-1算法的處理過程,將輸出結(jié)果記為C'
[0036] 優(yōu)選地,所述步驟2. 2中,改變運行環(huán)境誘導(dǎo)產(chǎn)生故障的方法包括:改變電壓、時 鐘、溫度、輻射、光和渦電流,將故障隨機地導(dǎo)入SHA-1算法處理流程,以得到錯誤的輸出結(jié) 果,記為C'
[0037] 本發(fā)明提供的方法簡單、快速、準(zhǔn)確且易于實現(xiàn),不僅可以評估SHA-1算法對差分 故障攻擊的抵抗能力,而且能夠準(zhǔn)確地推導(dǎo)出差分故障攻擊的位置,對封裝有SHA-1算法 的產(chǎn)品的安全性的測評提供了理論依據(jù)。
【附圖說明】
[0038] 圖1為本發(fā)明提供的檢測SHA-1算法抵御差分故障攻擊的方法的流程圖;
[0039] 圖2為SHA-1算法的差分故障分析圖;
[0040] 圖3為本實施例的實驗環(huán)境示意圖。
【具體實施方式】
[0041] 為使本發(fā)明更明顯易懂,茲以一優(yōu)選實施例,并配合附圖作詳細(xì)說明如下。
[0042] 使用SHA-1算法對于同一個消息M進(jìn)行處理時,如果實驗執(zhí)行環(huán)境,如電壓、時鐘、 溫度、輻射、光和渦電流等不同,攻擊者可以獲得在同一個密鑰K作用下的正確輸出C和錯 誤輸出C%通過計算出這兩個值的輸出差分值,即AC= 即可推導(dǎo)出關(guān)鍵信息。攻擊 者可以在封裝有SHA-1算法的處理設(shè)備運行期間誘導(dǎo)故障發(fā)生,但是不知道故障發(fā)生的具 體位置以及具體的錯誤值,所以在此階段故障導(dǎo)入的位置成為關(guān)鍵,要想通過分析差分AC 獲取重要信息,那么故障導(dǎo)入的位置必須是有效的,否則,本次導(dǎo)入的故障不會影響SHA-1 算法的處理過程,即通過AC不能得到重要的信息。
[0043] 本發(fā)明提出的檢測SHA-1算法抵御差分故障攻擊的方法,全面考慮了上述要點, 圖1為本發(fā)明提供的檢測SHA-1算法抵御差分故障攻擊的方法的流程圖,所述的檢測SHA-1 算法抵御差分故障攻擊