編輯推薦
暢銷書《圖解密碼技術》全麵升級!新增橢圓麯綫密碼、比特幣等前沿內容!
舊版穩居***計算機安全類第1 !
日本數學協會齣版奬得主、《程序員的數學》《數學女孩》作者 結城浩重磅力作!
易懂的密碼學!
1.拒絕繁冗的數學公式和乾巴巴的理論
無需編程基礎,配圖講解,真的很好懂!
2.全麵涵蓋現代密碼技術
對稱密碼、公鑰密碼、單嚮散列函數、消息認證碼、數字簽名、僞隨機數生成器、量子密碼、量子計算機,一網打盡。
3.第3版全麵修訂,內容更前沿
第3版結閤密碼技術現狀對全書內容進行瞭大幅更新,並新增POODLE攻擊、“心髒齣血”漏洞、Superfish事件、SHA-3競賽、Keccak、認證加密、橢圓麯綫密碼、比特幣等新內容。
內容簡介
本書以圖配文的形式,詳細講解瞭6種重要的密碼技術:對稱密碼、公鑰密碼、單嚮散列函數、消息認證碼、數字簽名和僞隨機數生成器。
第1部分講述瞭密碼技術的曆史沿革、對稱密碼、分組密碼模式(包括ECB、CBC、CFB、OFB、CTR)、公鑰密碼、混閤密碼係統。第2部分重點介紹瞭認證方麵的內容,涉及單嚮散列函數、消息認證碼、數字簽名、證書等。第3部分講述瞭密鑰、隨機數、PGP、SSL/TLS 以及密碼技術在現實生活中的應用。
第3版對舊版內容進行瞭大幅更新,並新增POODLE攻擊、心髒齣血漏洞、Superfish事件、SHA-3競賽、Keccak、認證加密、橢圓麯綫密碼、比特幣等內容。
作者簡介
結城浩(作者)
生於1963年,日本傑齣技術作傢和程序員。在編程語言、設計模式、數學、加密技術等領域,編寫瞭很多深受歡迎的入門書。代錶作有《數學女孩》係列、《程序員的數學》等。
周自恒(譯者)
IT、編程愛好者,初中時曾在NOI(國傢信息學奧賽)天津賽區獲一等奬,現就職於 某管理谘詢公司,任谘詢顧問兼戰略技術總監。譯著有《圖解CIO工作指南(第4版)》《大數據的衝擊》《代碼的未來》《30天自製操作係統》《傢用遊戲機簡史》《有趣的二進製》等。
目錄
目錄
第1部分 密碼 1
第1章 環遊密碼世界 3
1.1 本章學習的內容 4
1.2 密碼 4
1.2.1 Alice與Bob 4
1.2.2 發送者、接收者和竊聽者 4
1.2.3 加密與解密 6
1.2.4 密碼保證瞭消息的機密性 7
1.2.5 破譯 7
1.3 對稱密碼與公鑰密碼 8
1.3.1 密碼算法 8
1.3.2 密鑰 8
1.3.3 對稱密碼與公鑰密碼 9
1.3.4 混閤密碼係統 10
1.4 其他密碼技術 10
1.4.1 單嚮散列函數 10
1.4.2 消息認證碼 10
1.4.3 數字簽名 11
1.4.4 僞隨機數生成器 11
1.5 密碼學傢的工具箱 12
1.6 隱寫術與數字水印 13
1.7 密碼與信息安全常識 14
1.7.1 不要使用保密的密碼算法 14
1.7.2 使用低強度的密碼比不進行任何加密更危險 15
1.7.3 任何密碼總有一天都會被破解 15
1.7.4 密碼隻是信息安全的一部分 16
1.8 本章小結 16
1.9 小測驗的答案 17
第2章 曆史上的密碼——寫一篇彆人看不懂的文章 19
2.1 本章學習的內容 20
2.2 愷撒密碼 20
2.2.1 什麼是愷撒密碼 21
2.2.2 愷撒密碼的加密 21
2.2.3 愷撒密碼的解密 22
2.2.4 用暴力破解來破譯密碼 23
2.3 簡單替換密碼 24
2.3.1 什麼是簡單替換密碼 24
2.3.2 簡單替換密碼的加密 25
2.3.3 簡單替換密碼的解密 26
2.3.4 簡單替換密碼的密鑰空間 26
2.3.5 用頻率分析來破譯密碼 26
2.4 Enigma 31
2.4.1 什麼是Enigma 31
2.4.2 用Enigma進行加密通信 31
2.4.3 Enigma的構造 32
2.4.4 Enigma的加密 34
2.4.5 每日密碼與通信密碼 36
2.4.6 避免通信錯誤 36
2.4.7 Enigma的解密 36
2.4.8 Enigma的弱點 38
2.4.9 Enigma的破譯 38
2.5 思考 40
2.6 本章小結 41
2.7 小測驗的答案 42
第3章 對稱密碼(共享密鑰密碼)——用相同的密鑰進行加密和解密 45
3.1 炒雞蛋與對稱密碼 46
3.2 本章學習的內容 46
3.3 從文字密碼到比特序列密碼 46
3.3.1 編碼 46
3.3.2 XOR 47
3.4 一次性密碼本——絕對不會被破譯的密碼 50
3.4.1 什麼是一次性密碼本 50
3.4.2 一次性密碼本的加密 50
3.4.3 一次性密碼本的解密 51
3.4.4 一次性密碼本是無法破譯的 51
3.4.5 一次性密碼本為什麼沒有被使用 52
3.5 DES 53
3.5.1 什麼是DES 53
3.5.2 加密和解密 54
3.5.3 DES的結構(Feistel網絡) 54
3.5.4 差分分析與綫性分析 60
3.6 三重DES 61
3.6.1 什麼是三重DES 61
3.6.2 三重DES的加密 61
3.6.3 三重DES的解密 63
3.6.4 三重DES的現狀 64
3.7 AES的選定過程 65
3.7.1 什麼是AES 65
3.7.2 AES的選拔過程 65
3.7.3 AES最終候選算法的確定與AES的最終確定 66
3.8 Rijndael 66
3.8.1 什麼是Rijndael 66
3.8.2 Rijndael的加密和解密 67
3.8.3 Rijndael的破譯 71
3.8.4 應該使用哪種對稱密碼呢 71
3.9 本章小結 72
3.10 小測驗的答案 73
第4章 分組密碼的模式——分組密碼是如何迭代的 75
4.1 本章學習的內容 76
4.2 分組密碼的模式 77
4.2.1 分組密碼與流密碼 77
4.2.2 什麼是模式 77
4.2.3 明文分組與密文分組 78
4.2.4 主動攻擊者Mallory 78
4.3 ECB模式 79
4.3.1 什麼是ECB模式 79
4.3.2 ECB模式的特點 80
4.3.3 對ECB模式的攻擊 80
4.4 CBC模式 82
4.4.1 什麼是CBC模式 82
4.4.2 初始化嚮量 83
4.4.3 CBC模式的特點 84
4.4.4 對CBC模式的攻擊 84
4.4.5 填充提示攻擊 86
4.4.6 對初始化嚮量(IV)進行攻擊 86
4.4.7 CBC 模式的應用實例 86
4.5 CFB模式 88
4.5.1 什麼是CFB模式 88
4.5.2 初始化嚮量 89
4.5.3 CFB模式與流密碼 89
4.5.4 CFB模式的解密 90
4.5.5 對CFB模式的攻擊 90
4.6 OFB模式 91
4.6.1 什麼是OFB模式 91
4.6.2 初始化嚮量 92
4.6.3 CFB模式與OFB模式的對比 92
4.7 CTR模式 93
4.7.1 計數器的生成方法 95
4.7.2 OFB模式與CTR模式的對比 95
4.7.3 CTR模式的特點 95
4.7.4 錯誤與機密性 96
4.8 應該使用哪種模式呢 96
4.9 本章小結 97
4.10 小測驗的答案 98
第5章 公鑰密碼——用公鑰加密,用私鑰解密 101
5.1 投幣寄物櫃的使用方法 102
5.2 本章學習的內容 102
5.3 密鑰配送問題 102
5.3.1 什麼是密鑰配送問題 102
5.3.2 通過事先共享密鑰來解決 104
5.3.3 通過密鑰分配中心來解決 105
5.3.4 通過Diffie-Hellman密鑰交換來解決密鑰配送問題 106
5.3.5 通過公鑰密碼來解決密鑰配送問題 106
5.4 公鑰密碼 107
5.4.1 什麼是公鑰密碼 107
5.4.2 公鑰密碼的曆史 108
5.4.3 公鑰通信的流程 108
5.4.4 各種術語 110
5.4.5 公鑰密碼無法解決的問題 110
5.5 時鍾運算 110
5.5.1 加法 111
5.5.2 減法 113
5.5.3 乘法 114
5.5.4 除法 114
5.5.5 乘方 118
5.5.6 對數 118
5.5.7 從時鍾指針到RSA 119
5.6 RSA 120
5.6.1 什麼是RSA 120
5.6.2 RSA加密 120
5.6.3 RSA解密 121
5.6.4 生成密鑰對 122
5.6.5 具體實踐一下吧 125
5.7 對RSA的攻擊 128
5.7.1 通過密文來求得明文 128
5.7.2 通過暴力破解來找齣D 128
5.7.3 通過E和N求齣D 129
5.7.4 中間人攻擊 130
5.7.5 選擇密文攻擊 132
5.8 其他公鑰密碼 133
5.8.1 ElGamal方式 133
5.8.2 Rabin方式 133
5.8.3 橢圓麯綫密碼 133
5.9 關於公鑰密碼的Q&A; 133
5.9.1 公鑰密碼的機密性 134
5.9.2 公鑰密碼與對稱密碼的密鑰長度 134
5.9.3 對稱密碼的未來 135
5.9.4 RSA與質數 135
5.9.5 RSA與質因數分解 136
5.9.6 RSA的長度 136
5.10 本章小結 138
5.11 小測驗的答案 139
第6章 混閤密碼係統——用對稱密碼提高速度,用公鑰密碼保護會話密鑰 141
6.1 混閤動力汽車 142
6.2 本章學習的內容 142
6.3 混閤密碼係統 142
6.3.1 對稱密碼與公鑰密碼 142
6.3.2 混閤密碼係統 143
6.3.3 加密 144
6.3.4 解密 146
6.3.5 混閤密碼係統的具體例子 147
6.4 怎樣纔是高強度的混閤密碼係統 147
6.4.1 僞隨機數生成器 147
6.4.2 對稱密碼 148
6.4.3 公鑰密碼 148
6.4.4 密鑰長度的平衡 148
6.5 密碼技術的組閤 148
6.6 本章小結 149
6.7 小測驗的答案 150
第2部分 認證 151
第7章 單嚮散列函數——獲取消息的“指紋” 153
7.1 本章學習的內容 154
7.2 什麼是單嚮散列函數 154
7.2.1 這個文件是不是真的呢 154
7.2.2 什麼是單嚮散列函數 157
7.2.3 單嚮散列函數的性質 159
7.2.4 關於術語 162
7.3 單嚮散列函數的實際應用 163
7.3.1 檢測軟件是否被篡改 163
7.3.2 基於口令的加密 165
7.3.3 消息認證碼 165
7.3.4 數字簽名 165
7.3.5 僞隨機數生成器 165
7.3.6 一次性口令 165
7.4 單嚮散列函數的具體例子 166
7.4.1 MD4、MD5 166
7.4.2 SHA-1、SHA-256、SHA-384、SHA-512 166
7.4.3 RIPEMD-160 167
7.4.4 SHA-3 167
7.5 SHA-3的選拔過程 168
7.5.1 什麼是SHA-3 168
7.5.2 SHA-3的選拔過程 168
7.5.3 SHA-3最終候選名單的確定與SHA-3的最終確定 168
7.6 Keccak 169
7.6.1 什麼是Keccak 169
7.6.2 海綿結構 170
7.6.3 雙工結構 171
7.6.4 Keccak的內部狀態 172
7.6.5 函數Keccak-f?[b] 174
7.6.6 對Keccak的攻擊 177
7.6.7 對縮水版Keccak的攻擊競賽 177
7.7 應該使用哪種單嚮散列函數呢 178
7.8 對單嚮散列函數的攻擊 178
7.8.1 暴力破解(攻擊故事1) 178
7.8.2 生日攻擊(攻擊故事2) 180
7.9 單嚮散列函數無法解決的問題 182
7.10 本章小結 183
7.11 小測驗的答案 184
第8章 消息認證碼——消息被正確傳送瞭嗎 187
8.1 本章學習的內容 188
8.2 消息認證碼 188
8.2.1 匯款請求是正確的嗎 188
8.2.2 什麼是消息認證碼 189
8.2.3 消息認證碼的使用步驟 190
8.2.4 消息認證碼的密鑰配送問題 190
8.3 消息認證碼的應用實例 191
8.3.1 SWIFT 191
8.3.2 IPsec 191
8.3.3 SSL/TLS 192
8.4 消息認證碼的實現方法 192
8.4.1 使用單嚮散列函數實現 192
8.4.2 使用分組密碼實現 192
8.4.3 其他實現方法 192
8.5 認證加密 192
8.6 HMAC的詳細介紹 193
8.6.1 什麼是HMAC 193
8.6.2 HMAC的步驟 194
8.7 對消息認證碼的攻擊 196
8.7.1 重放攻擊 196
8.7.2 密鑰推測攻擊 198
8.8 消息認證碼無法解決的問題 199
8.8.1 對第三方證明 199
8.8.2 防止否認 199
8.9 本章小結 200
8.10 小測驗的答案 200
第9章 數字簽名——消息到底是誰寫的 203
9.1 羊媽媽的認證 204
9.2 本章學習的內容 204
9.3 數字簽名 204
9.3.1 Alice的藉條 204
9.3.2 從消息認證碼到數字簽名 205
9.3.3 簽名的生成和驗證 206
9.3.4 公鑰密碼與數字簽名 207
9.4 數字簽名的方法 209
9.4.1 直接對消息簽名的方法 209
9.4.2 對消息的散列值簽名的方法 211
9.5 對數字簽名的疑問 214
9.5.1 密文為什麼能作為簽名使用 214
9.5.2 數字簽名不能保證機密性嗎 214
9.5.3 這種簽名可以隨意復製嗎 215
9.5.4 消息內容會不會被任意修改 215
9.5.5 簽名會不會被重復使用 216
9.5.6 刪除簽名也無法“作廢閤同”嗎 216
9.5.7 如何防止否認 217
9.5.8 數字簽名真的能夠代替簽名嗎 217
9.6 數字簽名的應用實例 218
9.6.1 安全信息公告 218
9.6.2 軟件下載 219
9.6.3 公鑰證書 220
9.6.4 SSL/TLS 220
9.7 通過RSA實現數字簽名 220
9.7.1 用RSA生成簽名 220
9.7.2 用RSA驗證簽名 221
9.7.3 具體實踐一下吧 221
9.8 其他的數字簽名 222
9.8.1 ElGamal方式 222
9.8.2 DSA 223
9.8.3 ECDSA 223
9.8.4 Rabin方式 223
9.9 對數字簽名的攻擊 223
9.9.1 中間人攻擊 223
9.9.2 對單嚮散列函數的攻擊 224
9.9.3 利用數字簽名攻擊公鑰密碼 224
9.9.4 潛在僞造 225
9.9.5 其他攻擊 226
9.10 各種密碼技術的對比 226
9.10.1 消息認證碼與數字簽名 226
9.10.2 混閤密碼係統與對散列值簽名 227
9.11 數字簽名無法解決的問題 227
9.12 本章小結 227
9.13 小測驗的答案 228
第10章 證書——為公鑰加上數字簽名 229
10.1 本章學習的內容 230
10.2 證書 230
10.2.1 什麼是證書 230
10.2.2 證書的應用場景 230
10.3 實際生成一張證書 233
10.3.1 賽門鐵剋的Digital ID免費試用服務 233
10.3.2 生成證書 233
10.3.3 顯示證書 234
10.3.4 證書標準規範 236
10.4 公鑰基礎設施(PKI) 237
10.4.1 什麼是公鑰基礎設施 237
10.4.2 PKI的組成要素 238
10.4.3 認證機構的工作 240
10.4.4 證書的層級結構 241
10.4.5 各種各樣的PKI 242
10.5 對證書的攻擊 243
10.5.1 在公鑰注冊之前進行攻擊 244
10.5.2 注冊相似人名進行攻擊 245
10.5.3 竊取認證機構的私鑰進行攻擊 245
10.5.4 攻擊者僞裝成認證機構進行攻擊 246
10.5.5 鑽CRL的空子進行攻擊(1) 246
10.5.6 鑽CRL的空子進行攻擊(2) 247
10.5.7 Superfish 248
10.6 關於證書的Q&A; 249
10.6.1 為什麼需要證書 249
10.6.2 通過自己的方法進行認證是不是更安全 250
10.6.3 為什麼要相信認證機構 251
10.7 本章小結 252
10.8 小測驗的答案 253
第3部分 密鑰、隨機數與應用技術 255
第11章 密鑰——秘密的精華 257
11.1 本章學習的內容 258
11.2 什麼是密鑰 258
11.2.1 密鑰就是一個巨大的數字 258
11.2.2 密鑰與明文是等價的 260
11.2.3 密碼算法與密鑰 260
11.3 各種不同的密鑰 260
11.3.1 對稱密碼的密鑰與公鑰密碼的密鑰 260
圖解密碼技術 第3版 下載 mobi epub pdf txt 電子書 格式