本書以通俗易懂的語言,從密碼學產生的背景、經典的加密算法、常見的加密系統(tǒng)、密鑰管理等角度對密碼學進行了全面介紹,特別分析了日常生活中互聯(lián)網、移動電話、wi-fi網絡、銀行卡、區(qū)塊鏈等應用中使用的密碼學技術,幫助讀者理解密碼學在實際生活中的應用。本書關注現(xiàn)代密碼學背后的基本原理而非技術細節(jié),讀者有高中水平的數學知識,無需理解復雜的公式推導,即可理解本書的內容。本書適合作為高校密碼學相關通識課程的教材,也適合作為對密碼學感興趣的讀者的入門讀物。
譯者序
前言
第1版前言
第一部分 預備知識
第1章 基本原理 2
1.1 為什么需要保證信息安全 2
1.1.1 信息安全的發(fā)展歷程 2
1.1.2 兩種不同的辦公環(huán)境 3
1.1.3 不同視角 4
1.1.4 安全基礎設施的重要性 5
1.2 安全風險 6
1.2.1 攻擊類型 6
1.2.2 一個簡單場景下的安全風險 6
1.2.3 選擇安全機制 7
1.3 安全服務 8
1.3.1 基本定義 9
1.3.2 安全服務之間的關系 9
1.4 密碼系統(tǒng)基礎 11
1.4.1 不同的密碼學概念 11
1.4.2 安全服務的密碼學原語 12
1.4.3 密碼系統(tǒng)的基本模型 13
1.4.4 代碼 15
1.4.5 隱寫術 16
1.4.6 訪問控制 16
1.4.7 兩種類型的密碼系統(tǒng) 16
1.4.8 加密密鑰的機密性 17
1.5 密碼系統(tǒng)的安全假設 19
1.5.1 標準假設 19
1.5.2 理論攻擊模型 19
1.5.3 公開算法與專用算法 20
1.5.4 公開算法的使用 21
1.6 密碼系統(tǒng)的破解 22
1.6.1 一些有用的預備知識 23
1.6.2 密鑰長度和密鑰空間 24
1.6.3 破解加密算法 25
1.6.4 密鑰窮舉 26
1.6.5 攻擊類型 28
1.6.6 學術攻擊 30
1.7 總結 30
1.8 進一步的閱讀 30
1.9 練習 31
第2章 傳統(tǒng)密碼系統(tǒng) 35
2.1 單表密碼 36
2.1.1 凱撒密碼 36
2.1.2 簡單替換密碼 38
2.1.3 頻率分析 40
2.1.4 理論安全與實踐安全的差異 42
2.2 傳統(tǒng)密碼系統(tǒng)的歷史進步 44
2.2.1 設計的改進 44
2.2.2 Playfair密碼 44
2.2.3 多名碼 48
2.2.4 Vigenère密碼 50
2.3 總結 53
2.4 進一步的閱讀 53
2.5 練習 54
第3章 理論安全與實踐安全 58
3.1 理論安全 58
3.1.1 完全保密 59
3.1.2 提供完全保密性的簡單密碼系統(tǒng) 60
3.1.3 一次一密 61
3.1.4 理論安全總結 66
3.2 實踐安全 67
3.2.1 實踐中的一次一密 67
3.2.2 保護時限 68
3.2.3 計算復雜度 69
3.2.4 密碼系統(tǒng)的設計過程 73
3.2.5 安全性評估 74
3.2.6 適度安全 75
3.2.7 邁向實踐安全 77
3.3 總結 78
3.4 進一步的閱讀 78
3.5 練習 78
第二部分 密碼學工具包
第4章 對稱密碼 82
4.1 對稱密碼算法分類 82
4.2 流密碼 84
4.2.1 流密碼模型 84
4.2.2 流密碼密鑰管理 85
4.2.3 錯誤影響 86
4.2.4 流密碼的性質 86
4.2.5 流密碼示例 88
4.3 分組密碼 88
4.3.1 分組密碼模型 88
4.3.2 分組密碼的性質 89
4.3.3 分組密碼算法 90
4.4 DES密碼 91
4.4.1 Feistel密碼 91
4.4.2 DES規(guī)范 93
4.4.3 DES簡史 93
4.4.4 三重DES 96
4.5 AES密碼 98
4.5.1 AES的開發(fā) 98
4.5.2 AES的設計 99
4.5.3 AES的今天 100
4.6 操作模式 101
4.6.1 ECB模式 101
4.6.2 CBC模式 103
4.6.3 CFB模式 107
4.6.4 CTR模式 110
4.6.5 操作模式的比較 112
4.7 對稱密碼的使用 112
4.7.1 其他對稱密碼類型 113
4.7.2 未來的對稱密碼 113
4.8 總結 114
4.9 進一步的閱讀 114
4.10 練習 115
第5章 公鑰密碼 118
5.1 公鑰密碼學 119
5.1.1 發(fā)明公鑰密碼學的動機 119
5.1.2 公鑰密碼系統(tǒng)的性質 120
5.1.3 一些數學基礎知識 122
5.1.4 公鑰密碼學的單向函數 123
5.2 RSA 126
5.2.1 RSA密鑰生成 126
5.2.2 RSA加密和解密 128
5.2.3 RSA的安全性 129
5.2.4 RSA在實踐中的應用 131
5.3 ElGamal和橢圓曲線的變體 132
5.3.1 ElGamal的密鑰生成 133
5.3.2 使用ElGamal進行加密/解密 133
5.3.3 ElGamal的安全性 135
5.3.4 ElGamal在實踐中的應用 136
5.3.5 橢圓曲線密碼學 136
5.4 RSA、ElGamal和ECC的比較 137
5.4.1 RSA的普及 137
5.4.2 性能問題 137
5.4.3 安全問題 138
5.5 使用公鑰密碼 140
5.5.1 限制因素 140
5.5.2 混合加密 141
5.5.3 其他類型的公鑰密碼系統(tǒng) 142
5.5.4 公鑰密碼系統(tǒng)的未來 143
5.6 總結 143
5.7 進一步的閱讀 144
5.8 練習 145
第6章 數據完整性 148
6.1 不同級別的數據完整性 148
6.2 哈希函數 149
6.2.1 哈希函數的屬性 150
6.2.2 哈希函數的應用 153
6.2.3 哈希函數的理論攻擊 158
6.2.4 哈希函數實踐 161
6.2.5 SHA-3 163
6.3 消息認證碼 165
6.3.1 對稱加密是否提供數據源認證 166
6.3.2 MAC的屬性 167
6.3.3 CBC-MAC 169
6.3.4 HMAC 172
6.3.5 MAC和不可否認性 173
6.3.6 將MAC和加密一起使用 173
6.4 總結 177
6.5 進一步的閱讀 177
6.6 練習 178
第7章 數字簽名方案 181
7.1 數字簽名 181
7.1.1 基本思路 181
7.1.2 電子簽名 182
7.1.3 數字簽名方案的基礎 183
7.2 使用對稱密碼技術提供不可否認性 184
7.2.1 仲裁數字簽名方案 184
7.2.2 不對稱信任關系 185
7.2.3 強制信任 186
7.3 基于RSA的數字簽名方案 186
7.3.1 互補要求 187
7.3.2 數字簽名方案的基本模型 187
7.3.3 兩種不同的方法 188
7.3.4 帶附件的RSA數字簽名方案 189
7.3.5 帶消息恢復的RSA數字簽名方案 192
7.3.6 其他數字簽名方案 194
7.4 數字簽名方案實踐 195
7.4.1 數字簽名方案的安全性 195
7.4.2 使用帶加密的數字簽名方案 196
7.4.3 與手寫簽名的關系 197
7.4.4 與高級電子簽名的關系 200
7.5 總結 200
7.6 進一步的閱讀 200
7.7 練習 201
第8章 實體身份認證 204
8.1 隨機數生成 204
8.1.1 隨機性的需求 204
8.1.2 什么是隨機性 205
8.1.3 非確定性生成器 206
8.1.4 確定性生成器 207
8.2 提供時效 209
8.2.1 基于時鐘的機制 209
8.2.2 序列號 210
8.2.3 基于Nonce的機制 211
8.2.4 時效機制的比較 212
8.3 實體身份認證基礎 213
8.3.1 實體身份認證的問題 214
8.3.2 實體身份認證的應用 214
8.3.3 身份信息的一般類別 215
8.4 口令 217
8.4.1 口令的問題 217
8.4.2 加密口令保護 218
8.5 動態(tài)口令方案 219
8.5.1 動態(tài)口令方案背后的思想 220
8.5.2 動態(tài)口令方案示例 220
8.6 零知識機制 222
8.6.1 零知識的動機 223
8.6.2 零知識類比 223
8.6.3 零知識實踐 224
8.7 總結 225
8.8 進一步的閱讀 225
8.9 練習 226
第9章 密碼協(xié)議 230
9.1 協(xié)議基礎 230
9.1.1 協(xié)議的操作動機 230
9.1.2 協(xié)議的環(huán)境動機 231
9.1.3 密碼協(xié)議的構成 231
9.2 從目標到協(xié)議 232
9.2.1 協(xié)議設計階段 232
9.2.2 協(xié)議設計階段的挑戰(zhàn) 233
9.2.3 假設和行為 234
9.2.4 更廣泛的協(xié)議設計過程 235
9.3 分析一個簡單的協(xié)議 235
9.3.1 一個簡單的應用 235
9.3.2 協(xié)議1 237
9.3.3 協(xié)議2 239
9.3.4 協(xié)議3 241
9.3.5 協(xié)議4 243
9.3.6 協(xié)議5 244
9.3.7 協(xié)議6 246
9.3.8 協(xié)議7 248
9.3.9 簡單協(xié)議的總結 249
9.4 認證和密鑰建立協(xié)議 249
9.4.1 典型AKE協(xié)議目標 250
9.4.2 Diff?ie-Hellman密鑰協(xié)商協(xié)議 251
9.4.3 基于密鑰分發(fā)的AKE協(xié)議 257
9.4.4 完全前向保密性 259
9.5 總結 260
9.6 進一步的閱讀 261
9.7 練習 261
第三部分 密鑰管理
第10章 密鑰管理基礎 266
10.1 密鑰管理的概念 266
10.1.1 什么是密鑰管理 267
10.1.2 密鑰生存期 267
10.1.3 基本密鑰管理要求 268
10.1.4 密鑰管理系統(tǒng) 270
10.2 密鑰長度和生存期 270
10.2.1 密鑰生存期 271
10.2.2 密鑰長度的選擇 271
10.3 密鑰生成 272
10.3.1 直接生成密鑰 273
10.3.2 密鑰派生 273
10.3.3 從組元生成密鑰 274
10.3.4 公鑰對的生成 275
10.4 密鑰建立 276
10.4.1 密鑰分級 277
10.4.2 單交易唯一密鑰 280
10.4.3 量子密鑰建立 283
10.5 密鑰存儲 285
10.5.1 避免密鑰存儲 285
10.5.2 密鑰存儲于軟件中 286
10.5.3 密鑰存儲于硬件中 287
10.5.4 密鑰存儲的風險因素 289
10.5.5 密鑰備份、存檔與恢復 290
10.6 密鑰的使用 292
10.6.1 密鑰分離 292
10.6.2 密鑰變更 295
10.6.3 密鑰激活 297
10.6.4 密鑰銷毀 298
10.7 密鑰管理治理 298
10.7.1 密鑰管理的策略、實踐和流程 298
10.7.2 流程示例:密鑰生成儀式 299
10.8 總結 300
10.9 進一步的閱讀 300
10.10 練習 301
第11章 公鑰管理 305
11.1 公鑰認證 305
11.1.1 公鑰認證的動機 306
11.1.2 公鑰證書 307
11.2 證書的生命周期 310
11.2.1 證書生命周期中的差異 310
11.2.2 證書的創(chuàng)建 311
11.2.3 密鑰對變更 314
11.3 公鑰管理模型 315
11.3.1 CA的選擇 316
11.3.2 公鑰證書管理模型 316
11.3.3 聯(lián)合CA域 319
11.4 替代方法 322
11.4.1 信任Web 322
11.4.2 基于身份的加密 323
11.5 總結 326
11.6 進一步的閱讀 326
11.7 練習 327
第四部分 應用密碼學
第12章 密碼學的應用 332
12.1 因特網中的密碼學 333
12.1.1 TLS協(xié)議的背景 334
12.1.2 TLS協(xié)議的安全需求 334
12.1.3 TLS協(xié)議中使用的密碼學 334
12.1.4 TLS 1.2和早期版本 335
12.1.5 TLS 1.3 339
12.1.6 TLS的密鑰管理 341
12.1.7 TLS的安全問題 342
12.1.8 TLS設計的考慮事項 343
12.2 無線局域網中的密碼學 344
12.2.1 無線局域網的背景 344
12.2.2 無線局域網的安全需求 345
12.2.3 WEP 346
12.2.4 對WEP的攻擊 348
12.2.5 WPA和WPA2 351
12.2.6 無線局域網的安全問題 353
12.2.7 無線局域網設計的考慮事項 354
12.3 移動電信中的密碼學 354
12.3.1 移動電信的背景 354
12.3.2 GSM的安全需求 355
12.3.3 GSM中使用的密碼學 356
12.3.4 UMTS 360
12.3.5 LTE 361
12.3.6 GSM、UMTS和LTE的密鑰管理 363
12.3.7 移動電信的安全問題 364
12.3.8 移動電信設計的考慮事項 364
12.4 安全支付卡交易中的密碼學 364
12.4.1 支付卡服務的背景 365
12.4.2 磁條卡 366
12.4.3 EMV卡 367
12.4.4 使用EMV卡進行網上交易 370
12.4.5 使用EMV卡進行認證 371
12.4.6 使用EMV卡進行移動支付 371
12.4.7 支付卡的密鑰管理 373
12.4.8 支付卡的安全問題 374
12.4.9 支付卡密碼設計的考慮事項 375
12.5 視頻廣播中的密碼學 375
12.5.1 視頻廣播的背景 375
12.5.2 視頻廣播的安全需求 377
12.5.3 視頻廣播中使用的密碼學 377
12.5.4 視頻廣播的密鑰管理 378
12.5.5 視頻廣播的安全問題 381
12.5.6 視頻廣播設計的考慮事項 381
12.6 身份證中的密碼學 382
12.6.1 eID的背景 382
12.6.2 eID的安全需求 383
12.6.3 eID卡中使用的密碼學 383
12.6.4 eID卡的核心功能 384
12.6.5 eID的密鑰管理 386
12.6.6 eID的安全問題 389
12.6.7 eID設計的考慮事項 389
12.7 匿名中的密碼學 390
12.7.1 Tor的背景 390
12.7.2 Tor的安全需求 391
12.7.3 Tor是怎樣工作的 391
12.7.4 Tor的安全問題 397
12.7.5 Tor設計的考慮事項 397
12.8 數字貨幣中的密碼學 398
12.8.1 比特幣的背景 398
12.8.2 比特幣的安全需求 399
12.8.3 比特幣交易 399
12.8.4 比特幣區(qū)塊鏈 401
12.8.5 比特幣挖礦 403
12.8.6 比特幣的安全問題 406
12.8.7 比特幣設計的考慮事項 407
12.9 總結 408
12.10 進一步的閱讀 408
12.11 練習 409
第13章 應用于個人設備的密碼學 414
13.1 文件保護 415
13.1.1 全盤加密 415
13.1.2 虛擬磁盤加密 417
13.1.3 個人文件加密 417
13.2 郵件安全 418
13.2.1 電子郵件的安全需求 418
13.2.2 保護電子郵件的技術 419
13.3 消息傳遞安全 421
13.3.1 WhatsApp的安全需求 422
13.3.2 WhatsApp中使用的密碼學 422
13.4 平臺安全 424
13.4.1 iOS用戶數據的密碼保護 424
13.4.2 iOS因特網服務的加密保護 425
13.4.3 進一步的iOS加密支持 426
13.5 總結 427
13.6 進一步的閱讀 427
13.7 練習 428
第14章 密碼學的控制 430
14.1 密碼學困境 431
14.1.1 控制密碼學使用的案例 431
14.1.2 反對控制密碼學使用的案例 431
14.1.3 尋求平衡 432
14.1.4 控制密碼學使用的策略 432
14.2 算法的后門 433
14.2.1 后門的使用 433
14.2.2 Dual_EC_DRBG 434
14.3 法律機制 435
14.3.1 出口限制 435
14.3.2 密鑰托管 436
14.3.3 獲取明文的法律要求 437
14.4 在復雜時代對密碼學的控制 437
14.4.1 斯諾登的爆料 437
14.4.2 加密環(huán)境的改變 438
14.4.3 控制普適密碼學的策略 440
14.5 總結 443
14.6 進一步的閱讀 443
14.7 練習 444
第15章 結束語 447
附錄 數學基礎一
索引二