本書(shū)以美國(guó)AES計(jì)劃和歐洲NESSIE計(jì)劃等推出的著名分組密碼算法為背景,系統(tǒng)地介紹分組密碼的攻擊方法和實(shí)例分析,包括差分密碼攻擊、線性密碼攻擊、高階差分密碼攻擊、截?cái)嗖罘置艽a攻擊、不可能差分密碼攻擊、積分攻擊、插值攻擊和相關(guān)密鑰攻擊等主要攻擊方法的基本原理及其應(yīng)用實(shí)例。
更多科學(xué)出版社服務(wù),請(qǐng)掃碼獲取。
分組密碼算法是許多密碼系統(tǒng)的核心要素,是保障信息機(jī)密性和完整性的重要技術(shù)。分組密碼的研究主要圍繞分組密碼的設(shè)計(jì)、分析、工作模式、快速實(shí)現(xiàn)和檢測(cè)等方面展開(kāi)。分組密碼的設(shè)計(jì)與分析是一對(duì)既相互對(duì)立又相互統(tǒng)一的矛盾體,二者的互動(dòng)決定了分組密碼的發(fā)展,分組密碼的安全性分析為分組密碼的設(shè)計(jì)提供了源源不斷的新鮮思想,而各種深思熟慮的設(shè)計(jì)又給分組密碼的分析提出了嚴(yán)峻的挑戰(zhàn)。只有對(duì)分組密碼分析具有深刻的理解和敏銳的洞察,才有可能設(shè)計(jì)出安全高效的分組密碼。
近年來(lái),隨著美國(guó)AES計(jì)劃和歐洲NESSIE計(jì)劃的實(shí)施,針對(duì)美國(guó)高級(jí)加密標(biāo)準(zhǔn)AES和歐洲分組密碼標(biāo)準(zhǔn)Camellia,MSITY1以及SHACAL-2等算法的安全性分析已經(jīng)成為分組密碼研究中的熱點(diǎn)問(wèn)題,在SHA-3計(jì)劃中,可以發(fā)現(xiàn)很多基于分組密碼組件設(shè)計(jì)的Hash函數(shù),有些算法甚至直接使用AES算法的組件,之所以基于分組密碼設(shè)計(jì)Hash函數(shù),是因?yàn)槊艽a設(shè)計(jì)者對(duì)現(xiàn)有分組密碼算法特別是AES算法的安全性有足夠的信心,對(duì)這些基于分組密碼的Hash函數(shù)的安全性分析必將促進(jìn)分組密碼的設(shè)計(jì)與分析理論的發(fā)展。因此,掌握分組密碼的分析技術(shù)對(duì)研究分組密碼的安全性和Hash函數(shù)的安全性至關(guān)重要。
考慮到分組密碼的攻擊方法是密碼學(xué)領(lǐng)域的難點(diǎn)問(wèn)題,且大量關(guān)于分組密碼設(shè)計(jì)與分析的學(xué)術(shù)論文散見(jiàn)于密碼學(xué)與信息安全的國(guó)際會(huì)議論文集,特別是與密碼學(xué)密切相關(guān)的EUROCRYPT,CRYPTO,ASIACRYPT,F(xiàn)SE,CHES和SAC等國(guó)際會(huì)議。為便于國(guó)內(nèi)從事分組密碼理論與方法研究的研究生和年輕學(xué)者對(duì)分組密碼的攻擊方法有一個(gè)比較系統(tǒng)和深入的了解,我們?cè)噲D對(duì)國(guó)際上最近20年已有的分組密碼攻擊方法進(jìn)行梳理,通過(guò)對(duì)一些具體的分組密碼算法的實(shí)例分析,介紹分組密碼攻擊方法的原理與實(shí)踐。在寫(xiě)作過(guò)程中,我們特別注重自身對(duì)分組密碼攻擊方法的理解,書(shū)中部分內(nèi)容包含了作者及其課題組成員近年來(lái)在分組密碼攻擊方面所取得的研究成果,
全書(shū)共分10章,第1章給出分組密碼的基本概念;第2章介紹8個(gè)典型的分組密碼算法;第3章介紹差分密碼分析的原理與實(shí)例分析;第4章介紹線性密碼分析的原理與實(shí)例分析;第5章介紹高階差分密碼分析的原理與實(shí)例分析;第6章介紹截?cái)嗖罘置艽a分析的原理與實(shí)例分析;第7章介紹不可能差分密碼分析的原理與實(shí)例分析;第8章介紹積分攻擊的原理與實(shí)例分析;第9章介紹插值攻擊的原理與實(shí)例分析;第10章介紹相關(guān)密鑰攻擊的原理與實(shí)例分析。
目錄
序
前言
第1章 分組密碼的基本概念 1
1.1 分組密碼概述 1
1.2 分組密碼的設(shè)計(jì)原理 2
1.2.1 分組密碼的設(shè)計(jì)原則 3
1.2.2 分組密碼的結(jié)構(gòu) 3
1.3 分組密碼的分析方法 5
1.3.1 密碼分析中常見(jiàn)的假設(shè)和原則 5
1.3.2 強(qiáng)力攻擊 6
1.3.3 基于數(shù)學(xué)方法研究算法的安全性 7
1.3.4 結(jié)合物理實(shí)現(xiàn)方式研究算法的安全性 10
1.3.5 不同使用模式下的算法安全性 10
1.4 本書(shū)的內(nèi)容安排 10
參考文獻(xiàn) 11
第2章 典型分組密碼算法 14
2.1 數(shù)據(jù)加密標(biāo)準(zhǔn)DES 14
2.1.1 加密流程 15
2.1.2 解密流程 18
2.1.3 密鑰擴(kuò)展方案 19
2.2 國(guó)際數(shù)據(jù)加密算法IDEA 20
2.2.1 加密流程 21
2.2.2 解密流程 22
2.2.3 密鑰擴(kuò)展方案 25
2.3 高級(jí)加密標(biāo)準(zhǔn)AES 25
2.3.1 加密流程 26
2.3.2 解密流程 30
2.3.3 密鑰擴(kuò)展方案 32
2.4 Camellia算法 33
2.4.1 加密流程 34
2.4.2 解密流程 37
2.4.3 密鑰擴(kuò)展方案 38
2.5 ARIA算法 40
2.5.1 加密流程 40
2.5.2 解密流程 44
2.5.3 密鑰擴(kuò)展方案 45
2.6 FOX算法 47
2.6.1 加密流程 47
2.6.2 解密流程 50
2.6.3 密鑰擴(kuò)展方案 51
2.7 SMS4算法 54
2.7.1 加密流程 54
2.7.2 解密流程 56
2.7.3 密鑰擴(kuò)展方案 56
2.8 CLEFIA算法 57
2.8.1 加密流程 57
2.8.2 解密流程 59
2.8.3 密鑰擴(kuò)展方案 60
2.9 進(jìn)一步閱讀建議 61
參考文獻(xiàn) 62
第3章 差分密碼分析的原理與實(shí)例分析 64
3.1 差分密碼分析的基本原理 64
3.2 DES算法的差分密碼分析 72
3.2.1 S盒的差分分布表 72
3.2.2 DES算法的差分分析 77
3.3 Camellia算法的差分密碼分析 84
3.4 SMS4算法的差分密碼分析 87
3.5 進(jìn)一步閱讀建議 88
參考文獻(xiàn) 89
第4章 線性密碼分析的原理與實(shí)例分析 93
4.1 線性密碼分析的基本原理 93
4.2 DES算法的線性密碼分析 98
4.2.1 S盒的線性逼近表 99
4.2.2 DES算法的線性分析 101
4.3 Camellia算法的線性密碼分析 110
4.4 SMS4算法的線性密碼分析 113
4.5 進(jìn)一步閱讀建議 114
參考文獻(xiàn) 116
第5章 高階差分密碼分析的原理與實(shí)例分析 119
5.1 高階差分密碼分析的基本原理 119
5.1.1 基本概念 119
5.1.2 高階差分密碼分析的一般流程 123
5.1.3 對(duì)Feistel結(jié)構(gòu)算法的高階差分密碼分析 123
5.2 KN算法的高階差分密碼分析 126
5.2.1 KN算法簡(jiǎn)介 126
5.2.2 對(duì)6輪KN算法的高階差分密碼分析 127
5.3 Camellia算法的高階差分密碼分析 128
5.3.1 對(duì)6輪Camellia算法的基本攻擊 128
5.3.2 對(duì)7輪Camellia算法的高階差分密碼分析 130
5.4 進(jìn)一步閱讀建議 131
參考文獻(xiàn) 132
第6章 截?cái)嗖罘置艽a分析的原理與實(shí)例分析 134
6.1 截?cái)嗖罘置艽a分析的基本原理 134
6.1.1 基本概念 134
6.1.2 截?cái)嗖罘址治龅囊话懔鞒?135
6.2 Camellia算法的截?cái)嗖罘置艽a分析 137
6.2.1 Camellia算法的5輪截?cái)嗖罘?137
6.2.2 對(duì)6輪Camellia算法的截?cái)嗖罘置艽a分析 139
6.3 ARIA算法的截?cái)嗖罘置艽a分析 140
6.3.1 ARIA算法7輪截?cái)嗖罘?140
6.3.2 對(duì)7輪ARIA算法的截?cái)嗖罘置艽a攻擊 141
6.4 進(jìn)一步閱讀建議 142
參考文獻(xiàn) 143
第7章 不可能差分密碼分析的原理與實(shí)例分析 144
7.1 不可能差分密碼分析的基本原理 144
7.1.1 基本概念 144
7.1.2 不可能差分密碼分析的基本過(guò)程 145
7.2 尋找不可能差分的一般方法 148
7.2.1 DEAL算法5輪不可能差分 148
7.2.2 Zodiac算法16輪不可能差分 149
7.2.3 FOX算法4輪不可能差分 151
7.2.4 ARIA算法4輪不可能差分 152
7.2.5 n-Cell結(jié)構(gòu)n2+n-2輪不可能差分 157
7.3 AES算法的不可能差分密碼分析 158
7.3.1 AES算法4輪不可能差分 158
7.3.2 對(duì)6輪AES算法的不可能差分密碼分析 159
7.4 Camellia算法的不可能差分密碼分析 161
7.4.1 Camellia算法8輪不可能差分 161
7.4.2 對(duì)12輪Camellia算法的不可能差分密碼分析 163
7.5 CLEFIA算法的不可能差分密碼分析 166
7.5.1 CLEFIA算法9輪不可能差分 166
7.5.2 對(duì)12輪CLEFIA算法的不可能差分密碼分析 169
7.6 進(jìn)一步閱讀建議 170
參考文獻(xiàn) 172
第8章 積分攻擊的原理與實(shí)例分析 175
8.1 積分攻擊的基本原理 176
8.1.1 基本概念 176
8.1.2 積分攻擊的基本過(guò)程 179
8.2 尋找積分區(qū)分器的一般方法 180
8.2.1 Rijndael-256算法3輪積分區(qū)分器(I) 180
8.2.2 SMS4算法8積分區(qū)分器 181
8.2.3 Zodiac算法9輪積分區(qū)分器 183
8.2.4 n-Cell結(jié)構(gòu)n2輪積分區(qū)分器 183
8.2.5 Rijndael-256算法3輪積分區(qū)分器(II) 185
8.2.6 ARIA算法3輪積分區(qū)分器 186
8.3 AES算法的積分攻擊 189
8.3.1 AES算法3輪積分區(qū)分器 189
8.3.2 對(duì)4輪AES算法的積分攻擊 191
8.3.3 對(duì)5輪AES算法的積分攻擊 193
8.4 Camellia算法的積分攻擊 196
8.4.1 Feistel密碼的等價(jià)結(jié)構(gòu) 196
8.4.2 對(duì)5輪Camellia算法的積分攻擊 199
8.4.3 對(duì)6輪Camellia算法基于等價(jià)結(jié)構(gòu)的積分攻擊 200
8.5 進(jìn)一步閱讀建議 202
參考文獻(xiàn) 204
第9章 插值攻擊的原理與實(shí)例分析 207
9.1 插值攻擊的基本原理 207
9.1.1 基本概念和數(shù)學(xué)基礎(chǔ) 207
9.1.2 插值攻擊的步驟 210
9.2 PUR*算法的插值攻擊 211
9.2.1 PUR*算法簡(jiǎn)介 211
9.2.2 對(duì)PUR*算法的插值攻擊 211
9.2.3 對(duì)PUR*算法的改進(jìn)插值攻擊 213
9.3 Rijndael算法的插值攻擊 215
9.3.1 簡(jiǎn)化Rijndael算法介紹 215
9.3.2 有理分式插值攻擊 215
9.4 高次積分攻擊 218
9.4.1 高次積分 218
9.4.2 對(duì)PUR*算法的插值高次積分攻擊 219
9.5 進(jìn)一步閱讀建議 220
參考文獻(xiàn) 221
第10章 相關(guān)密鑰攻擊的原理與實(shí)例分析 223
10.1 相關(guān)密鑰攻擊的基本原理 223
10.2 LOKI算法的相關(guān)密鑰攻擊 223
10.3 AES算法的相關(guān)密鑰攻擊 230
10.4 進(jìn)一步閱讀建議 231
參考文獻(xiàn) 232
《分組密碼的攻擊方法與實(shí)例分析》:
1.3.2強(qiáng)力攻擊
對(duì)任意一個(gè)分組密碼,都存在如下4種攻擊方法:
。1)窮盡密鑰搜索,在唯密文攻擊下,攻擊者利用所有可能的密鑰對(duì)一個(gè)或多個(gè)密文進(jìn)行解密,直至得到有意義的明文;在已知明文攻擊或選擇明文攻擊時(shí),攻擊者利用所有可能的密鑰對(duì)一個(gè)已知明文加密,直到加密結(jié)果與正確的密文相符合。窮盡密鑰搜索理論上可以破譯任何分組密碼算法,但它的效率是最低的,在實(shí)際密碼分析中,通常將窮盡密鑰搜索與其他分析方法結(jié)合使用。
(2)字典攻擊。攻擊者收集明密文對(duì),并將它們編排成一個(gè)“字典”,當(dāng)看到一個(gè)密文時(shí),攻擊者檢查這個(gè)密文是否在字典中,如果在,則攻擊者獲得該密文對(duì)應(yīng)的明文。
。3)查表攻擊。該方法是選擇明文攻擊,攻擊者利用所有可能的密鑰對(duì)同一個(gè)明文加密,將密鑰和對(duì)應(yīng)的密文存儲(chǔ)起來(lái)。當(dāng)獲得該明文及相應(yīng)密文后,攻擊者只需從存儲(chǔ)表中找到相對(duì)應(yīng)的密鑰即可。
。4)時(shí)間空間權(quán)衡攻擊,這是一種選擇明文攻擊方法,由Hellmma提出,通過(guò)結(jié)合使用窮盡密鑰搜索攻擊和查表攻擊,在選擇明文攻擊中用時(shí)間換取空間,因此該方法比窮盡密鑰搜索攻擊的時(shí)間復(fù)雜度小,比查表攻擊的空間復(fù)雜度低,
除了上述4種通用的攻擊方法,在對(duì)一個(gè)具體的分組密碼算法進(jìn)行安全性分析時(shí),根據(jù)算法的特點(diǎn),往往會(huì)有其他不同的攻擊方法。而比較不同攻擊算法的優(yōu)劣,最主要的指標(biāo)是數(shù)據(jù)復(fù)雜度、時(shí)間復(fù)雜度和空間復(fù)雜度。數(shù)據(jù)復(fù)雜度是指為了實(shí)現(xiàn)一個(gè)特定的攻擊所需要的數(shù)據(jù)總和;時(shí)間復(fù)雜度是指密碼分析者為了恢復(fù)密鑰,對(duì)采集到的數(shù)據(jù)進(jìn)行分析和處理所消耗的時(shí)間;空間復(fù)雜度是指為了完成攻擊所需要的存儲(chǔ)空間。
一般而言,假設(shè)分組長(zhǎng)度為n,密鑰長(zhǎng)度為k,則窮盡搜索的數(shù)據(jù)復(fù)雜度、時(shí)間復(fù)雜度和空間復(fù)雜度分別為1,2k和1,字典攻擊的數(shù)據(jù)復(fù)雜度、時(shí)間復(fù)雜度和空間復(fù)雜度分別為2n,1和2n,查表攻擊的數(shù)據(jù)復(fù)雜度、時(shí)間復(fù)雜度和空間復(fù)雜度分別為2k,1和2k,如果一個(gè)攻擊方法,當(dāng)其相應(yīng)的時(shí)間復(fù)雜度、數(shù)據(jù)復(fù)雜度或空間復(fù)雜度中某一項(xiàng)指標(biāo)比(1),(2)和(3)對(duì)應(yīng)的指標(biāo)低時(shí),就稱(chēng)從理論上破譯了這個(gè)算法,當(dāng)然,這離現(xiàn)實(shí)破譯可能還有很大的差距。這里需要注意的是,在很多攻擊方法中,人們更傾向于以窮盡搜索的復(fù)雜度作為指標(biāo)來(lái)度量一個(gè)攻擊算法的優(yōu)劣。
對(duì)分組密碼算法的安全性分析主要包括以下三個(gè)方面:一是基于數(shù)學(xué)方法研究算法的安全性,二是結(jié)合物理實(shí)現(xiàn)方式研究算法的安全性,三是研究算法在不同使用模式下的安全性。
……