內容簡介
本書在
國家密碼管理局和中國密碼學會的指導下,依據教育部高等學校網路空間安全專業教學指導委員會發布的網路空間安全、信息安全本科專業密碼學課程知識領域的要求,系統地講述了密碼學的基本內容。本書系統講述了密碼學的基本概念、基本理論和密碼算法,基本涵蓋了密碼學各方面內容。全書共15章:第1章和第2章主要講述了密碼學的發展歷史、密碼學的基本概念和古典密碼,第3章和第4章講述了分組密碼,第5章和第6章講述了序列密碼,第7~9章講述了公鑰密碼,第10章以格理論密碼為例講述了後量子密碼,第11章和第12章講述了密碼雜湊算法,第13章講述了數字簽名,第14章講述了身份認證,第15章講述了密鑰管理。在相關的章節系統講述了國家商用密碼算法,包括祖沖之序列密碼算法、SM2公鑰密碼算法、SM3密碼雜湊算法、SM4分組密碼算法、SM9標識密碼算法等。
本書可作為高等院校
信息安全專業、網路空間安全專業或其他相關專業本科生的教材,也可作為網路空間安全專業、計算機科學與技術專業或其他相關專業研究生的教材,還可作為信息安全相關領域中的教學人員、科研人員及工程技術人員的參考用書。
目錄
第1章 概論 1
1.1 密碼學的發展歷史 1
1.2 密碼學的基本概念 5
1.3 密碼學的基本屬性 6
1.4 密碼體制分類 7
1.4.1 對稱密碼體制 7
1.4.2 非對稱密碼體制 8
1.5 密碼分析 9
1.5.1 密碼分析的分類 9
1.5.2 窮密鑰搜尋 10
1.6 密碼的未來 10
1.7 本章小結 11
1.8 本章習題 12
第2章 古典密碼 13
2.1 置換密碼 13
2.1.1 列置換密碼 14
2.1.2 周期置換密碼 15
2.2 代換密碼 15
2.2.1 單表代換密碼 16
2.2.2 多表代換密碼 18
2.3 轉輪密碼 20
2.3.1 Enigma的構造 20
2.3.2 Enigma的加密 21
2.3.3 Enigma的解密 22
2.4 古典密碼的分類 23
2.5 古典密碼的統計分析 24
2.5.1 單表古典密碼的統計分析 24
2.5.2 多表古典密碼的統計分析 28
2.6 本章小結 33
2.7 本章習題 33
第3章 分組密碼 34
3.1 分組密碼概述 34
3.1.1 分組密碼簡介 34
3.1.2 分組密碼的基本原理 35
3.1.3 分組密碼的結構 36
3.1.4 分組密碼的設計 38
3.2 DES 39
3.2.1 DES的產生 39
3.3 AES 46
3.3.1 AES的產生 47
3.3.2 AES的數學基礎 47
3.3.3 AES算法描述 50
3.4 分組密碼的工作模式 57
3.4.1 ECB模式 57
3.4.3 CFB模式 58
3.4.4 OFB模式 59
3.4.5 CTR模式 60
3.5 分組密碼分析 60
3.5.1 差分分析 61
3.5.2 線性分析 62
3.6 本章小結 63
3.7 本章習題 63
第4章 SM4分組密碼算法 66
4.1 SM4分組密碼算法概述 66
4.1.1 術語說明 66
4.1.2 初始變數算法 67
4.1.3 密鑰擴展算法 67
4.1.4 輪函式F 68
4.2 SM4分組密碼算法設計原理 71
4.2.1 非平衡Feistel網路 71
4.2.2 T變換 72
4.2.3 基礎置換 73
4.2.4 非線性變換 73
4.2.5 線性變換 75
4.2.6 密鑰擴展算法的設計 75
4.2.7 SM4分組密碼算法初始變數正確性 76
4.3 SM4分組密碼算法安全性分析 76
4.4 本章小結 77
4.5 本章習題 77
第5章 序列密碼 79
5.1 序列密碼的概述 79
5.1.1 序列密碼的定義 79
5.1.2 序列密碼的分類 80
5.2 序列密碼的組成 83
5.2.1 密鑰序列生成器KG 83
5.3 LFSR 84
5.3.1 LFSR的簡介 84
5.3.3 線性反饋移位暫存器LFSR序列 88
5.3.4 非線性序列 96
5.4 歐洲eSTREAM序列密碼 97
5.5 序列密碼的安全性及分析技術 99
5.6 序列密碼算法的未來發展趨勢 102
5.7 本章小結 103
5.8 本章習題 103
第6章 祖沖之序列密碼算法 104
6.1 祖沖之序列密碼算法概述 104
6.1.1 算法結構 104
6.1.2 算法原理 105
6.1.3 算法參數 105
6.1.4 算法描述 107
6.2 基於祖沖之算法的機密性算法和完整性算法 109
6.2.1 基於祖沖之算法的機密性算法 109
6.2.2 基於祖沖之算法的完整性算法 111
6.3 ZUC算法的安全性分析 113
6.3.1 ZUC算法的安全性 113
6.3.2 安全分析 113
6.4 ZUC算法案例 114
6.5 本章小結 115
6.6 本章習題 115
第7章 公鑰密碼 117
7.1.1 公鑰密碼體制的原理 117
7.1.2 公鑰密碼算法的設計要求 118
7.1.3 公鑰密碼體制的安全性分析 119
7.2 RSA公鑰密碼體制 123
7.2.1 RSA加密和解密算法 123
7.2.2 RSA的安全性分析 124
7.3 ElGamal公鑰密碼體制 128
7.3.1 ElGamal加密和解密算法 129
7.3.2 ElGamal安全性分析 129
7.4 本章小結 132
7.5 本章習題 132
第8章 SM2公鑰密碼算法 134
8.1 橢圓曲線 134
8.1.1 有限域上的橢圓曲線 134
8.1.2 橢圓曲線上的運算 136
8.1.3 橢圓曲線上的離散對數問題 138
8.1.4 ECC 138
8.2 SM2公鑰密碼體制 139
8.2.1 算法描述 139
8.2.2 密鑰派生函式 140
8.2.3 SM2算法加密和解密過程 140
8.2.4 安全性分析 142
8.3 本章小結 142
8.4 本章習題 142
第9章 SM9標識密碼算法 144
9.1 標識密碼算法概述 144
9.1.1 基本概念 144
9.1.2 困難問題 147
9.2 SM9標識密碼算法概述 147
9.2.1 參數選取 148
9.2.2 系統初始化 148
9.2.3 加密和解密過程 148
9.2.4 安全性分析 149
9.2.5 正確性證明 150
9.3 本章小結 150
9.4 本章習題 150
第10章 格理論密碼 151
10.1 格密碼的基本概念 151
10.2 格上的計算困難問題 153
10.3 NTRU密碼體制 155
10.4 NTRU算法分析 157
10.4.1 NTRU算法與格密碼理論之間的關係 157
10.4.2 NTRU算法安全性分析 158
10.4.3 NTRU算法正確解密的條件 160
10.5 本章小結 160
10.6 本章習題 160
11.1 密碼雜湊函式 161
11.1.1 雜湊函式的性質 161
11.1.2 疊代型雜湊函式的結構 162
11.2 MD5雜湊算法 162
11.2.1 算法描述 162
11.2.2 MD5雜湊算法的壓縮函式 165
11.2.3 MD5雜湊算法的安全性 167
11.3 SHA-3雜湊算法 167
11.3.1 算法描述 168
11.3.2 Keccak-f置換 168
11.3.3 Keccak算法的性能分析 171
11.4.1 訊息認證碼 172
11.4.2 HMAC算法 173
11.5 雜湊函式安全性分析 175
11.5.1 生日攻擊 175
11.5.2 Keccak算法的安全性分析現狀 176
11.5.3 SM3的安全性分析現狀 177
11.6 本章小結 177
11.7 本章習題 177
第12章 SM3密碼雜湊算法 179
12.1 算法基礎 179
12.2 算法描述 180
12.2.1 訊息填充與擴展 180
12.2.2 壓縮函式 181
12.2.3 疊代過程 182
12.3 設計原理 182
12.3.1 壓縮函式的設計 182
12.3.2 訊息擴展算法的設計 183
12.4 算法特點 184
12.5 安全性分析 184
12.6 本章小結 185
12.7 本章習題 185
第13章 數字簽名 186
13.1 數字簽名方案的基本概念 186
13.1.1 數字簽名方案的形式化定義及特點 186
13.1.2 數字簽名方案的分類 187
13.2 DSS 189
13.3 SM2數字簽名方案 191
13.4 SM9數字簽名方案 193
13.4.1 算法初始化與相關函式 193
13.4.2 系統簽名主密鑰和用戶簽名密鑰的產生 193
13.4.3 簽名及驗簽 193
13.4.4 正確性及安全性分析 194
13.5 數字簽密 195
13.6 本章小結 195
13.7 本章習題 196
第14章 身份認證 197
14.1 身份認證概述 197
14.2 基於口令的身份認證 198
14.3 基於對稱密碼的認證 199
14.3.1 基於對稱密碼的單向認證 199
14.3.2 基於對稱密碼的雙向認證 200
14.4 基於公鑰密碼的認證 201
14.4.1 基於公鑰密碼的單向認證 201
14.4.2 基於公鑰密碼的雙向認證 202
14.5.1 零知識證明原理 203
14.5.2 Feige-Fiat-Shamir零知識身份認證協定 204
14.6 認證協定 205
14.6.2 X.509認證協定 207
14.7 本章小結 210
14.8 本章習題 210
第15章 密鑰管理 211
15.1 密鑰管理概述 211
15.1.1 密鑰管理的層次結構 212
15.1.2 密鑰管理的原則 214
15.1.3 密鑰管理全過程 215
15.2 密鑰分配技術 217
15.2.1 對稱密碼體制的密鑰分配 217
15.2.2 公鑰密碼體制的密鑰分配 221
15.3 密鑰協商 225
15.3.1 Diffie-Hellman密鑰交換協定 225
15.3.2 量子密鑰協定 228
15.4 SM2密鑰交換協定 229
15.5 SM9密鑰交換協定 231
15.6 秘密共享技術 232
15.6.1 Shamir門限方案 232
15.6.2 Asmuth-Bloom門限方案 234
15.7 本章小結 235
15.8 本章習題 236
參考文獻 237,第1章 概論 1
1.1 密碼學的發展歷史 1
1.2 密碼學的基本概念 5
1.3 密碼學的基本屬性 6
1.4 密碼體制分類 7
1.4.1 對稱密碼體制 7
1.4.2 非對稱密碼體制 8
1.5 密碼分析 9
1.5.1 密碼分析的分類 9
1.5.2 窮密鑰搜尋 10
1.6 密碼的未來 10
1.7 本章小結 11
1.8 本章習題 12
第2章 古典密碼 13
2.1 置換密碼 13
2.1.1 列置換密碼 14
2.1.2 周期置換密碼 15
2.2 代換密碼 15
2.2.1 單表代換密碼 16
2.2.2 多表代換密碼 18
2.3 轉輪密碼 20
2.3.1 Enigma的構造 20
2.3.2 Enigma的加密 21
2.3.3 Enigma的解密 22
2.4 古典密碼的分類 23
2.5 古典密碼的統計分析 24
2.5.1 單表古典密碼的統計分析 24
2.5.2 多表古典密碼的統計分析 28
2.6 本章小結 33
2.7 本章習題 33
第3章 分組密碼 34
3.1 分組密碼概述 34
3.1.1 分組密碼簡介 34
3.1.2 分組密碼的基本原理 35
3.1.3 分組密碼的結構 36
3.1.4 分組密碼的設計 38
3.2 DES 39
3.2.1 DES的產生 39
3.3 AES 46
3.3.1 AES的產生 47
3.3.2 AES的數學基礎 47
3.3.3 AES算法描述 50
3.4 分組密碼的工作模式 57
3.4.1 ECB模式 57
3.4.3 CFB模式 58
3.4.4 OFB模式 59
3.4.5 CTR模式 60
3.5 分組密碼分析 60
3.5.1 差分分析 61
3.5.2 線性分析 62
3.6 本章小結 63
3.7 本章習題 63
第4章 SM4分組密碼算法 66
4.1 SM4分組密碼算法概述 66
4.1.1 術語說明 66
4.1.2 初始變數算法 67
4.1.3 密鑰擴展算法 67
4.1.4 輪函式F 68
4.2 SM4分組密碼算法設計原理 71
4.2.1 非平衡Feistel網路 71
4.2.2 T變換 72
4.2.3 基礎置換 73
4.2.4 非線性變換 73
4.2.5 線性變換 75
4.2.6 密鑰擴展算法的設計 75
4.2.7 SM4分組密碼算法初始變數正確性 76
4.3 SM4分組密碼算法安全性分析 76
4.4 本章小結 77
4.5 本章習題 77
第5章 序列密碼 79
5.1 序列密碼的概述 79
5.1.1 序列密碼的定義 79
5.1.2 序列密碼的分類 80
5.2 序列密碼的組成 83
5.2.1 密鑰序列生成器KG 83
5.3 LFSR 84
5.3.1 LFSR的簡介 84
5.3.3 線性反饋移位暫存器LFSR序列 88
5.3.4 非線性序列 96
5.4 歐洲eSTREAM序列密碼 97
5.5 序列密碼的安全性及分析技術 99
5.6 序列密碼算法的未來發展趨勢 102
5.7 本章小結 103
5.8 本章習題 103
第6章 祖沖之序列密碼算法 104
6.1 祖沖之序列密碼算法概述 104
6.1.1 算法結構 104
6.1.2 算法原理 105
6.1.3 算法參數 105
6.1.4 算法描述 107
6.2 基於祖沖之算法的機密性算法和完整性算法 109
6.2.1 基於祖沖之算法的機密性算法 109
6.2.2 基於祖沖之算法的完整性算法 111
6.3 ZUC算法的安全性分析 113
6.3.1 ZUC算法的安全性 113
6.3.2 安全分析 113
6.4 ZUC算法案例 114
6.5 本章小結 115
6.6 本章習題 115
第7章 公鑰密碼 117
7.1 公鑰密碼體制概述 117
7.1.1 公鑰密碼體制的原理 117
7.1.2 公鑰密碼算法的設計要求 118
7.1.3 公鑰密碼體制的安全性分析 119
7.2 RSA公鑰密碼體制 123
7.2.1 RSA加密和解密算法 123
7.2.2 RSA的安全性分析 124
7.3 ElGamal公鑰密碼體制 128
7.3.1 ElGamal加密和解密算法 129
7.3.2 ElGamal安全性分析 129
7.4 本章小結 132
7.5 本章習題 132
第8章 SM2公鑰密碼算法 134
8.1 橢圓曲線 134
8.1.1 有限域上的橢圓曲線 134
8.1.2 橢圓曲線上的運算 136
8.1.3 橢圓曲線上的離散對數問題 138
8.1.4 ECC 138
8.2 SM2公鑰密碼體制 139
8.2.1 算法描述 139
8.2.2 密鑰派生函式 140
8.2.3 SM2算法加密和解密過程 140
8.2.4 安全性分析 142
8.3 本章小結 142
8.4 本章習題 142
第9章 SM9標識密碼算法 144
9.1 標識密碼算法概述 144
9.1.1 基本概念 144
9.1.2 困難問題 147
9.2 SM9標識密碼算法概述 147
9.2.1 參數選取 148
9.2.2 系統初始化 148
9.2.3 加密和解密過程 148
9.2.4 安全性分析 149
9.2.5 正確性證明 150
9.3 本章小結 150
9.4 本章習題 150
第10章 格理論密碼 151
10.1 格密碼的基本概念 151
10.2 格上的計算困難問題 153
10.3 NTRU密碼體制 155
10.4 NTRU算法分析 157
10.4.1 NTRU算法與格密碼理論之間的關係 157
10.4.2 NTRU算法安全性分析 158
10.4.3 NTRU算法正確解密的條件 160
10.5 本章小結 160
10.6 本章習題 160
11.1 密碼雜湊函式 161
11.1.1 雜湊函式的性質 161
11.1.2 疊代型雜湊函式的結構 162
11.2 MD5雜湊算法 162
11.2.1 算法描述 162
11.2.2 MD5雜湊算法的壓縮函式 165
11.2.3 MD5雜湊算法的安全性 167
11.3 SHA-3雜湊算法 167
11.3.1 算法描述 168
11.3.2 Keccak-f置換 168
11.3.3 Keccak算法的性能分析 171
11.4.1 訊息認證碼 172
11.4.2 HMAC算法 173
11.5 雜湊函式安全性分析 175
11.5.1 生日攻擊 175
11.5.2 Keccak算法的安全性分析現狀 176
11.5.3 SM3的安全性分析現狀 177
11.6 本章小結 177
11.7 本章習題 177
第12章 SM3密碼雜湊算法 179
12.1 算法基礎 179
12.2 算法描述 180
12.2.1 訊息填充與擴展 180
12.2.2 壓縮函式 181
12.2.3 疊代過程 182
12.3 設計原理 182
12.3.1 壓縮函式的設計 182
12.3.2 訊息擴展算法的設計 183
12.4 算法特點 184
12.5 安全性分析 184
12.6 本章小結 185
12.7 本章習題 185
第13章 數字簽名 186
13.1 數字簽名方案的基本概念 186
13.1.1 數字簽名方案的形式化定義及特點 186
13.1.2 數字簽名方案的分類 187
13.2 DSS 189
13.3 SM2數字簽名方案 191
13.4 SM9數字簽名方案 193
13.4.1 算法初始化與相關函式 193
13.4.2 系統簽名主密鑰和用戶簽名密鑰的產生 193
13.4.3 簽名及驗簽 193
13.4.4 正確性及安全性分析 194
13.5 數字簽密 195
13.6 本章小結 195
13.7 本章習題 196
第14章 身份認證 197
14.1 身份認證概述 197
14.2 基於口令的身份認證 198
14.3 基於對稱密碼的認證 199
14.3.1 基於對稱密碼的單向認證 199
14.3.2 基於對稱密碼的雙向認證 200
14.4 基於公鑰密碼的認證 201
14.4.1 基於公鑰密碼的單向認證 201
14.4.2 基於公鑰密碼的雙向認證 202
14.5.1 零知識證明原理 203
14.5.2 Feige-Fiat-Shamir零知識身份認證協定 204
14.6 認證協定 205
14.6.2 X.509認證協定 207
14.7 本章小結 210
14.8 本章習題 210
第15章 密鑰管理 211
15.1 密鑰管理概述 211
15.1.1 密鑰管理的層次結構 212
15.1.2 密鑰管理的原則 214
15.1.3 密鑰管理全過程 215
15.2 密鑰分配技術 217
15.2.1 對稱密碼體制的密鑰分配 217
15.2.2 公鑰密碼體制的密鑰分配 221
15.3 密鑰協商 225
15.3.1 Diffie-Hellman密鑰交換協定 225
15.3.2 量子密鑰協定 228
15.4 SM2密鑰交換協定 229
15.5 SM9密鑰交換協定 231
15.6 秘密共享技術 232
15.6.1 Shamir門限方案 232
15.6.2 Asmuth-Bloom門限方案 234
15.7 本章小結 235
15.8 本章習題 236
參考文獻 237