密碼編碼學與網絡安全 — 原理與實踐, 8/e (Cryptography and Network Security: Principles and Practice, 8/e (RENTAL EDITION))

陳晶 等

買這商品的人也買了...

商品描述

本書系統地介紹了密碼編碼學與網絡安全的基本原理和應用技術。全書分六部分:背景知識部分介紹信息與網絡安全概念、數論基礎;對稱密碼部分討論傳統加密技術、分組密碼和數據加密標準、有限域、高級加密標準、分組加密工作模式、隨機位生成和流密碼;非對稱密碼部分討論公鑰密碼學與RSA、其他公鑰密碼體制;密碼學數據完整性算法部分討論密碼學哈希函數、消息認證碼、數字簽名、輕量級密碼和後量子密碼;互信部分討論密鑰管理和分發、用戶認證;網絡和因特網安全部分討論傳輸層安全、無線網絡安全、電子郵件安全、IP安全、網絡端點安全、雲計算、物聯網安全。附錄A討論線性代數的基本概念,附錄B討論保密性和安全性度量,附錄C介紹數據加密標準,附錄D介紹簡化AES,附錄E介紹生日攻擊的數學基礎。本書可作為高校電腦、網絡空間安全、信息安全、軟件工程等專業高年級本科生和研究生的教材,也可供電腦、通信、電子工程等領域的科研人員參考。

作者簡介

William Stallings,出版了18部教材,算上修訂版,在計算機安全、計算機網絡和計算機體系結構等領域共出版了70多本書籍。
他的著作多次出現在各種期刊上,包括《IEEE進展》《ACM計算評論》和《密碼術》。
他13次獲得美國“教材和著作家協會”頒發的“年度最佳計算機科學教材”獎。

陳晶,博士,武漢大學國家網絡安全學院教授,博士生導師。
中國計算機學會會員、中國密碼學會會員,研究方向為網絡安全、分佈式系統安全。
主持國家自然科學基金重點項目1項,國家重點研發計劃課題1項,國家自然科學基金4項,湖北省自然科學基金2項,華為預研基金1項,中國信息安全測評中心項目1項,教育部重點實驗室開放基金1項。

目錄大綱

目錄
第一部分背景知識

第1章信息與網絡安全概念2
學習目標2
1.1網絡空間安全、信息安全與網絡安全2
1.1.1安全目標2
1.1.2信息安全的挑戰3
1. 2 OSI安全架構4
1.3安全攻擊5
1.3.1被動攻擊5
1.3.2主動攻擊6
1.4安全服務7
1.4.1認證7
1.4.2訪問控制7
1. 4.3數據保密性7
1.4.4數據完整性8
1.4.5不可否認性8
1.4.6可用性服務8
1.5安全機制8
1.6密碼學9
1.6.1無密鑰算法9
1.6.2單密鑰算法10
1.6.3雙密鑰算法10
1.7網絡安全10
1.7.1通信安全11
1.7.2設備安全11
1.8信任與可信度12
1.8.1信任模型12
1.8.2信任模型和信息安全13
1.8.3建立信任關係13
1.9標準14
1.10關鍵術語、思考題和習題14

第2章數論基礎17
學習目標17
2.1整除性和帶餘除法17
2.1.1整除性17
2.1.2帶餘除法18
2.2歐幾里得算法19
2.2.1最大公因子19
2.2.2求最大公因子19
2.3模運算21
2.3.1模21
2.3.2同餘的性質22
2.3.3模算術運算22
2.3. 4模運算的性質23
2.3.5歐幾里得算法回顧25
2.3.6擴展歐幾里得算法26
2.4素數27
2.5費馬定理和歐拉定理29
2.5. 1費馬定理29
2.5.2歐拉函數30
2.5.3歐拉定理31
2.6素性測試32
2.6.1 Miller-Rabin算法32
2.6.2一個確定性的素性判定算法34
2.6.3素數分佈34
2.7中國剩餘定理34
2.8離散對數35
2.8.1模n的整數冪35
2.8.2模算術對數38
2.8.3離散對數的計算39
2.9關鍵術語、思考題和習題40
附錄2A mod的含義43
2A.1二元運算符mod 43
2A.2同餘關係mod 43

第二部分對稱密碼

第3章傳統加密技術44
學習目標44
3.1對稱密碼模型44
3.1.1密碼編碼學46
3.1.2密碼分析學和窮舉攻擊46
3.2代替技術48
3.2.1 Caesar密碼48
3.2.2單表代替密碼49
3.2.3 Playfair密碼51
3.2.4 Hill密碼53
3.2.5多表代替加密55
3.2.6一次一密57
3.3置換技術58
3.4關鍵術語、思考題和習題59

第4章分組密碼和數據加密標準64
學習目標64
4.1傳統分組密碼結構64
4.1 .1流密碼與分組密碼64
4.1.2 Feistel密碼結構的設計動機65
4.1.3 Feistel密碼67
4.2數據加密標準71
4.2.1 DES加密71
4.2.2 DES解密72
4.3 DES的一個例子72
4.3.1結果72
4.3.2雪崩效應73
4.4 DES的強度74
4.4.1 56位密鑰的使用74
4.4.2 DES算法的性質74
4.4.3計時攻擊75
4.5分組密碼的設計原理75
4.5. 1迭代輪數75
4.5.2函數F的設計76
4.5.3密鑰擴展算法76
4.6關鍵術語、思考題和習題76

第5章有限域79
學習目標79
5.1群79
5.1.1群的性質80
5.1.2交換群80
5.1.3循環群80
5.2環81
5.3域81
5.4有限域GF(p) 82
5.4.1階為p的有限域82
5.4.2在有限域GF(p)中求乘法逆元83
5.4.3小結84
5.5多項式運算84
5.5.1普通多項式運算85
5.5 .2係數在Zp中的多項式運算86
5.5.3求最大公因式88
5.5.4小結89
5.6有限域GF(2n) 89
5.6.1動機89
5.6.2多項式模運算91
5.6.3求乘法逆元92
5.6.4計算上的考慮93
5.6.5使用生成元95
5.6.6小結97
5.7關鍵術語、思考題和習題97

第6章高級加密標準99
學習目標99
6.1有限域算術99
6.2 AES的結構100
6.2.1基本結構100
6.2.2詳細結構103
6.3 AES的變換函數105
6.3.1字節代替變換105
6.3.2行移位變換109
6.3.3列混淆變換110
6.3.4輪密鑰加變換112
6.4 AES的密鑰擴展113
6.4.1密鑰擴展算法113
6.4.2基本原理114
6.5一個AES的例子114
6.5.1結果115
6.5.2雪崩效應117
6.6 AES的實現118
6.6.1等價的逆算法118
6.6.2實現方面119
6.7關鍵術語、思考題和習題121
附錄6A係數在GF(28)中的多項式122
附錄6A.1列混淆變換124
附錄6A.2乘以x 124

第7章分組加密工作模式125
學習目標125
7.1多重加密和三重DES 125
7.1.1雙重DES 125
7.1.2使用兩個密鑰的三重DES 127
7.1.3使用三個密鑰的三重DES 128
7.2電碼本模式129
7.3密文分組鏈接模式130
7.4密碼反饋模式132
7.5輸出反饋模式133
7.6計數器模式135
7.7面向分組存儲設備的XTS-AES模式137
7.7.1可調整分組密碼137
7.7.2存儲加密要求138
7.7.3單個分組的運算139
7.7.4扇區上的運算140
7.8保留格式加密141
7.8.1研究動機142
7.8.2 FPE設計的難點142
7.8.3保留格式加密的Feistel結構143
7.8.4保留格式加密的NIST方法146
7.9關鍵術語、思考題和習題151

第8章隨機位生成和流密碼155
學習目標155
8. 1偽隨機數生成的原理155
8.1.1隨機數的用途156
8.1.2 TRNG、PRNG和PRF 156
8.1.3 PRNG的要求157
8.1.4算法設計159
8.2偽隨機數生成器159
8.2.1線性同餘生成器159
8.2.2 BBS生成器160
8.3使用分組密碼生成偽隨機數161
8.3.1使用分組加密工作模式的PRNG 161
8.3.2 NIST CTR_DRBG 163
8.4流密碼164
8.5 RC4 166
8.5.1初始化S 166
8.5.2流生成166
8.5.3 RC4的強度167
8.6使用反饋移位寄存器的流密碼167
8.6.1線性反饋移位寄存器168
8.6.2非線性反饋移位寄存器170
8.6.3 Grain-128a 171
8.7真隨機數生成器173
8.7.1熵源173
8 .7.2 PRNG和TRNG的比較173
8.7.3調節174
8.7.4健康測試175
8.7.5英特爾數字隨機數生成器176
8.8關鍵術語、思考題和習題178

第三部分非對稱密碼

第9章公鑰密碼學與RSA 182
學習目標182
9.1公鑰密碼體制的原理183
9.1.1公鑰密碼體制183
9.1.2公鑰密碼體制的應用187
9.1.3公鑰密碼的要求187
9.1.4公鑰密碼分析188
9.2 RSA算法189
9.2.1 RSA算法描述189
9.2.2計算問題191
9.2.3 RSA的安全性194
9.3關鍵術語、思考題和習題197

第10章其他公鑰密碼體制201
學習目標201
10.1 Diffie-Hellman密鑰交換201
10.1.1算法201
10.1.2密鑰交換協議203
10.1.3中間人攻擊203
10.2 ElGamal密碼體制204
10.3橢圓曲線算術206
10.3.1交換群207
10.3.2實數域上的橢圓曲線207
10.3. 3 Zp上的橢圓曲線209
10.3.4 GF(2m)上的橢圓曲線211
10.4橢圓曲線密碼學212
10.4.1用橢圓曲線密碼實現
Diffie-Hellman密鑰交換212
10.4. 2橢圓曲線加密/解密213
10.4.3橢圓曲線密碼的安全性214
10.5關鍵術語、思考題和習題214

第四部分密碼學數據完整性算法

第11章密碼學哈希函數218
學習目標218
11.1密碼學哈希函數的應用218
11.1.1消息認證219
11.1.2數字簽名221
11.1.3其他應用221
11.2兩個簡單的哈希函數222
11 .3要求與安全性223
11.3.1密碼學哈希函數的安全要求223
11.3.2窮舉攻擊225
11.3.3密碼分析226
11.4安全哈希算法227
11.4. 1 SHA-512邏輯228
11.4.2 SHA-512輪函數230
11.4.3示例232
11.5 SHA-3 234
11.5.1海綿結構234
11.5.2 SHA-3迭代函數f 237
11.6關鍵術語、思考題和習題242

第12章消息認證碼245
學習目標245
12.1消息認證要求245
12.2消息認證函數246
12.2.1消息加密246
12.2.2消息認證碼249
12.3消息認證碼的要求251
12.4 MAC的安全性252
12.4.1窮舉攻擊252
12.4.2密碼分析253
12.5基於哈希函數的MAC:HMAC 253
12.5.1 HMAC設計目標253
12.5.2 HMAC算法254
12.5.3 HMAC的安全性255
12.6基於分組密碼的MAC:DAA和CMAC 255
12.6.1數據認證算法255
12.6.2基於密碼的消息認證碼(CMAC) 256
12.7認證加密:CCM和GCM 258
12.7.1使用分組密碼鏈接?消息認證碼的計數器258
12.7.2 Galois/計數器模式260
12.8密鑰封裝262
12.8.1應用背景262
12.8.2密鑰封裝算法263
12.8.3密鑰解封265
12.9使用哈希函數和MAC的偽隨機數生成器266
12.9.1基於哈希函數的PRNG 266
12.9.2基於MAC函數的PRNG 266
12.10關鍵術語、思考題和習題267

第13章數字簽名270
學習目標270
13.1數字簽名概述271
13.1.1性質271
13.1.2攻擊和偽造271
13.1.3數字簽名要求272
13.1.4直接數字簽名272
13.2 ElGamal數字簽名方案272
13.3 Schnorr數字簽名方案274
13.4 NIST數字簽名算法274
13.4.1 DSA方法274
13.4.2數字簽名算法275
13.5橢圓曲線數字簽名算法277
13.5.1全局域參數277
13.5.2密鑰生成277
13.5.3數字簽名的生成與認證277
13.6 RSA-PSS數字簽名算法278
13 .6.1掩蔽生成函數279
13.6.2簽名操作280
13.6.3簽名驗證281
13.7關鍵術語、思考題和習題282

第14章輕量級密碼和後量子密碼285
學習目標285
14.1輕量級密碼的概念285
14.1.1嵌入式系統285
14.1.2資源受限設備286
14.1.3輕量級密碼的限制類別287
14.1.4各種應用的安全考慮287
14.1.5設計折中288
14.1.6安全要求288
14.2輕量級密碼算法291
14.2.1帶有關聯數據的認證加密291
14.2.2哈希函數293
14.2.3消息認證碼295
14.2.4非對稱密碼算法297
14.3後量子密碼的概念297
14.3.1量子計算297
14.3.2 Shor因子分解算法297
14.3. 3 Grover算法298
14.3.4密碼生命期299
14.3.5量子計算環境下的安全性301
14.4後量子密碼算法301
14.4.1格密碼算法302
14.4.2編碼密碼算法304
14.4.3多變量多項式密碼算法305
14.4.4哈希簽名算法306
14.5關鍵術語和思考題308

第五部分互信

第15章密鑰管理和分發310
學習目標310
15. 1使用對稱加密的對稱密鑰分發310
15.1.1密鑰分發方案310
15.1.2第三方密鑰分發方案311
15.1.3密鑰層次312
15.2使用非對稱加密的對稱密鑰分發312
15.2.1簡單的密鑰分發方案312
15.2.2確保保密性和認證的密鑰分發方案313
15.3公鑰分發314
15.3.1公鑰的公開發布314
15.3.2公開可訪問的目錄315
15.3.3公鑰授權315
15.3.4公鑰證書316
15.4 X.509證書317
15.4.1證書318
15.4.2 X.509版本3 321
15.5公鑰基礎設施322
15.6關鍵術語、思考題和習題324

第16章用戶認證327
學習目標327
16.1遠程用戶認證原理327
16.1.1 NIST電子身份認證模型327
16.1.2認證方式329
16.1.3多因素認證329
16.1.4雙向認證330
16.2使用對稱加密的遠程用戶認證331
16.2.1雙向認證331
16.3 Kerberos 333
16.3.1 Kerberos的動機333
16.3.2 Kerberos版本4 334
16.3.3 Kerberos版本5 340
16.4使用非對稱加密的遠程用戶認證342
16.4.1雙向認證342
16.4 .2單向認證343
16.5聯合身份管理344
16.5.1身份管理344
16.5.2身份聯合345
16.6關鍵術語、思考題和習題346

第六部分網絡和因特網安全

第17章傳輸層安全350
學習目標350
17.1 Web安全性考慮350
17.1.1 Web安全威脅350
17.1.2網絡流量安全方法351
17.2傳輸層安全351
17.2.1 TLS架構352
17.2.2 TLS記錄協議353
17.2.3修改密碼規範協議354
17.2.4警報協議355
17.2 .5握手協議355
17.2.6密碼計算358
17.2.7 SSL/TLS攻擊360
17.2.8 TLS v1.3 361
17.3 HTTPS 361
17.3.1連接初始化361
17.3. 2連接關閉362
17.4 SSH 362
17.4.1傳輸層協議363
17.4.2用戶認證協議365
17.4.3連接協議366
17.5思考題和習題369

第18章無線網絡安全371
學習目標371
18.1無線安全371
18.1.1無線網絡威脅372
18.1.2無線安全措施372
18.2移動設備安全373
18.2.1安全威脅373
18.2.2移動設備安全策略374
18.3 IEEE 802.11無線局域網概述375
18.3.1 Wi-Fi聯盟376
18.3. 2 IEEE 802協議架構376
18.3.3 IEEE 802.11網絡構成和架構模型377
18.3.4 IEEE 802.11服務378
18.4 IEEE 802.11i無線局域網安全379
18.4.1 IEEE 802 .11i服務380
18.4.2 IEEE 802.11i操作階段381
18.4.3發現階段382
18.4.4認證階段383
18.4.5密鑰管理階段384
18.4.6安全數據傳輸階段387
18.4.7 IEEE 802.11i偽隨機函數387
18.5關鍵術語、思考題和習題388

第19章電子郵件安全390
學習目標390
19.1因特網郵件架構390
19.1.1電子郵件組件390
19.1.2郵件協議391
19.2郵件格式392
19.2.1 RFC 5322 392
19.2.2 MIME 393
19.3電子郵件威脅與綜合安全395
19.4 S/MIME 397
19.4.1操作描述397
19.4.2 S/MIME消息內容類型400
19.4.3 S/MIME消息401
19.4 .4 S/MIME證書處理過程403
19.4.5安全性增強服務403
19.5 DNSSEC 403
19.5.1域名系統404
19.5.2 DNS安全擴展405
19.6基於DNS的命名實體認證406
19.6.1 TLSA記錄406
19.6.2為SMTP使用DANE 407
19.6.3為S/MIME使用DNSSEC 408
19.7發送方策略框架408
19.7.1發送端的SPF 408
19. 7.2接收端的SPF 409
19.8 DKIM 410
19.8.1電子郵件威脅410
19.8.2 DKIM策略411
19.8.3 DKIM功能流程411
19.9基於域的消息認證、報告和一致性413
19.9.1標識符匹配413
19.9.2發送端的DMARC 413
19.9.3接收端的DMARC 414
19.9.4 DMARC報告415
19.10關鍵術語、思考題和習題416

第20章IP安全418
學習目標418
20.1 IP安全概述418
20.1.1 IPsec的應用418
20.1.2 IPsec文檔419
20.1.3 IPsec服務419
20.2 IP安全策略419
20.2.1安全關聯420
20.2.2安全關聯數據庫420
20.2.3安全性策略數據庫421
20.2.4 IP流量處理422
20.3封裝安全淨荷423
20.3.1 ESP格式423
20.3.2加密和認證算法424
20.3.3填充424
20.3.4反重放服務424
20.3.5傳輸和隧道模式425
20. 4組合安全關聯428
20.4.1認證和保密性429
20.4.2安全關聯的基本組合429
20.5因特網密鑰交換430
20.5.1密鑰確定協議431
20.5.2頭部和淨荷格式433
20.6關鍵術語、思考題和習題435

第21章網絡端點安全437
學習目標437
21.1防火牆437
21.1.1防火牆的特徵437
21.1.2防火牆的類型438
21.1.3 DMZ網絡442
21.2入侵檢測系統443
21.2.1基本原理444
21.2.2入侵檢測方法444
21.2.3基於主機的入侵檢測技術445
21.2.4基於網絡的入侵檢測系統445
21.3惡意軟件447
21.3.1惡意軟件的類型447
21.3.2惡意軟件防禦448
21 .4分佈式拒絕服務攻擊449
21.4.1 DDoS攻擊描述449
21.4.2構建攻擊網絡451
21.4.3 DDoS防禦策略452
21.5關鍵術語、思考題和習題452

第22章云計算456
學習目標456
22.1雲計算456
22.1.1雲計算元素456
22.1.2雲服務模型457
22.1.3雲部署模型458
22.1.4雲計算參考架構461
22. 2雲安全的概念463
22.3雲安全風險與對策464
22.3.1 STRIDE威脅模型464
22.3.2數據洩露465
22.3.3弱身份、憑證和訪問管理466
22.3.4不安全的API 466
22.3.5系統漏洞466
22.3.6賬號劫持466
22.3.7惡意的內部人員467
22 .3.8高級持續威脅467
22.3.9數據丟失468
22.3.10盡職調查不足468
22.3.11濫用及惡意使用雲服務468
22.3.12拒絕服務469
22.3.13共享技術中的漏洞469
22.4雲安全即服務469
22.5開源雲安全模塊471
22.6關鍵術語和習題472

第23章物聯網安全473
學習目標473
23.1物聯網473
23.1. 1物聯網上的“物” 473
23.1.2演化473
23.1.3物聯網設備的組件474
23.1.4物聯網與雲環境474
23.2物聯網安全的概念與目標476
23 .2.1物聯網生態系統的獨特特徵476
23.2.2物聯網安全目標477
23.2.3防篡改和篡改檢測478
23.2.4網關安全478
23.2.5物聯網安全環境479
23.3一個開源物聯網安全模塊480
23.3.1加密算法480
23.3.2操作模式481
23.3.3偏移碼本模式481
23.4關鍵術語和思考題484

附錄A線性代數的基本概念485
A.1向量和矩陣運算485
A.1.1算術485
A.1.2行列式486
A.1.3逆矩陣486
A.2 Zn上的線性代數運算487

附錄B保密性和安全性度量490
B.1條件概率490
B.2完善保密490
B.3信息和熵493
B.3.1信息493
B.3.2熵494
B.3.3熵函數的性質495
B.3.4條件熵496
B.4熵和保密性496
B.5最小熵497

附錄C數據加密標準499
C.1初始置換500
C.2每輪變換的細節501
C.3 DES解密504

附錄D簡化AES 505
D.1概述505
D.2 S-AES加密與解密506
D.2.1密鑰加507
D.2.2半字節代替507
D.2.3行移位508
D.2.4列混淆508
D.3密鑰擴展509
D.4 S盒509
D.5 S-AES的結構509
附件D.1 GF(24)上的算術511
附件D.2列混淆函數512

附錄E生日攻擊的數學基礎513
E.1相關問題513
E.2生日悖論513
E.3有用的不等式514
E.4元素重複的一般情形515
E.5兩個集合間的元素重複516
參考文獻517