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