深入淺出密碼學 Real-World Cryptography
戴維·王(David Wong)
- 出版商: 人民郵電
- 出版日期: 2024-10-01
- 售價: $719
- 貴賓價: 9.5 折 $683
- 語言: 簡體中文
- 頁數: 314
- ISBN: 7115600341
- ISBN-13: 9787115600349
-
相關分類:
資訊安全
- 此書翻譯自: Real-World Cryptography (Paperback)
立即出貨
買這商品的人也買了...
-
$534$507 -
$267深入淺出 SSD:固態存儲核心技術、原理與實戰
-
$480$432 -
$505Java圖像處理:基於OpenCV與JVM (Java Image Processing Recipes: With OpenCV and JVM)
-
$505區塊鏈開發實戰:實用案例分析
-
$320$288 -
$588$559 -
$760人工智能:計算 Agent 基礎, 2/e (Artificial Intelligence: Foundations of Computational Agents, 2/e)
-
$520$390 -
$1,200$948 -
$454高級 C/C++ 編譯技術 (典藏版)
-
$719$683 -
$713$677 -
$594$564 -
$480$379 -
$650$507 -
$650$507 -
$600$468 -
$474$450 -
$774$735 -
$421TPM 2.0 安全算法開發示例實戰
-
$505穿越作業系統迷霧:從零實現作業系統
-
$1,200$792 -
$556搞定系統設計:面試敲開大廠的門
-
$1,321Arm Cortex-M23 和 Cortex-M33 微處理器權威指南
相關主題
商品描述
密碼學是信息安全的基礎,本書教讀者應用加密技術來解決現實世界中的一系列難題,並暢談了密碼學的未來,涉及“加密貨幣”、密碼驗證、密鑰交換和後量子密碼學等話題。
全書分為兩個部分,第一部分介紹密碼原語,涉及密碼學基礎概念、哈希函數、消息認證碼、認證加密、密鑰交換、非對稱加密和混合加密、數字簽名與零知識證明、隨機性和秘密性等內容;第二部分涉及安全傳輸、端到端加密、用戶認證、“加密貨幣”、硬件密碼學、後量子密碼、新一代密碼技術等內容。
本書形式新穎、深入淺出,非常適合密碼學領域的師生及信息安全從業人員閱讀,也適合對密碼學及其應用感興趣的讀者閱讀。
作者簡介
David Wong是O(1)实验室的一位高级密码工程师,他致力于Mina“加密货币”的研发。在此之前,他曾在Facebook Novi工作,担任Diem(正式名称为Libra)“加密货币”研发团队的安全顾问。在Facebook工作前,他还在NCC集团的加密服务机构做过安全顾问。
David在他的职业生涯中多次参与开源审计工作,比如审计OpenSSL库和Let's Encrypt项目。他曾在多个会议(如“Black Hat”和“DEF CON”)上做过报告,并在“Black Hat”会议上讲授密码学课程。他为TLS 1.3协议和Noise协议框架的发展做出了贡献。此外,他还发现了许多库存在的漏洞,例如?Go?语言标准库中的CVE-2016-3959漏洞,TLS库中的CVE-2018-12404、CVE-2018-19608、CVE-2018-16868、CVE-2018-16869和CVE-2018-16870漏洞。
David还是Disco协议和基于智能合约的去中心化应用程序安全项目的开发者之一。他的研究内容包括对RSA的缓存攻击、基于QUIC的协议、对ECDSA的时序攻击或针对DH算法的后门攻击等领域的安全技术。
目錄大綱
第 一部分 密碼原語:密碼學的重要組成部分
第 1章 引言 3
1.1 密碼學使協議安全 3
1.2 對稱密碼:對稱加密概述 4
1.3 Kerckhoff原則:只有密鑰保密 6
1.4 非對稱加密:兩個密鑰優於一個密鑰 8
1.4.1 密鑰交換 9
1.4.2 非對稱加密 11
1.4.3 數字簽名:與手寫簽名作用一樣 13
1.5 密碼算法分類和抽象化 15
1.6 理論密碼學vs.實用密碼學 16
1.7 從理論到實踐:選擇獨特冒險 17
1.8 警示之言 21
1.9 本章小結 21
第 2章 哈希函數 22
2.1 什麽是哈希函數 22
2.2 哈希函數的安全屬性 24
2.3 哈希函數的安全性考量 26
2.4 哈希函數的實際應用 28
2.4.1 承諾 28
2.4.2 子資源完整性 28
2.4.3 比特流 29
2.4.4 洋蔥路由 29
2.5 標準化的哈希函數 29
2.5.1 SHA-2哈希函數 30
2.5.2 SHA-3哈希函數 33
2.5.3 SHAKE和cSHAKE:兩個可擴展輸出的函數 37
2.5.4 使用元組哈希避免模糊哈希 38
2.6 口令哈希 39
2.7 本章小結 41
第3章 消息認證碼 42
3.1 無狀態cookie—— 一個引入MAC的範例 42
3.2 一個代碼示例 45
3.3 MAC的安全屬性 46
3.3.1 偽造認證標簽 46
3.3.2 認證標簽的長度 47
3.3.3 重放攻擊 48
3.3.4 在固定時間內驗證認證標簽 49
3.4 現實世界中的MAC 49
3.4.1 消息認證碼 49
3.4.2 密鑰派生 50
3.4.3 cookie的完整性 51
3.4.4 哈希表 51
3.5 實際應用中的消息認證碼 51
3.5.1 HMAC—— 一個基於哈希函數的消息認證碼算法 52
3.5.2 KMAC—— 基於cSHAKE的消息認證碼算法 53
3.6 SHA-2和長度擴展攻擊 53
3.7 本章小結 56
第4章 認證加密 57
4.1 密碼的定義 57
4.2 高級加密標準 59
4.2.1 AES算法的安全級別 59
4.2.2 AES算法的接口 60
4.2.3 AES內部構造 61
4.3 加密企鵝圖片和CBC操作模式 62
4.4 選用具有認證機制的AES-CBC-HMAC算法 65
4.5 認證加密算法的一體式構造 66
4.5.1 有附加數據的認證加密 67
4.5.2 AEAD型算法AES-GCM 68
4.5.3 ChaCha20-Poly1305算法 72
4.6 其他類型的對稱加密 76
4.6.1 密鑰包裝 76
4.6.2 抗Nonce誤用的認證加密算法 77
4.6.3 磁盤加密 77
4.6.4 數據庫加密 77
4.7 本章小結 78
第5章 密鑰交換 79
5.1 密鑰交換的定義 79
5.2 Diffie-Hellman(DH)密鑰交換 82
5.2.1 群論 82
5.2.2 離散對數問題:DH算法的基礎 86
5.2.3 DH密鑰交換標準 87
5.3 基於橢圓曲線的DH密鑰交換算法 88
5.3.1 橢圓曲線的定義 88
5.3.2 ECDH密鑰交換算法的實現 91
5.3.3 ECDH算法的標準 93
5.4 小子群攻擊以及其他安全註意事項 94
5.5 本章小結 96
第6章 非對稱加密和混合加密 97
6.1 非對稱加密簡介 97
6.2 實踐中的非對稱加密和混合加密 99
6.2.1 密鑰交換和密鑰封裝 99
6.2.2 混合加密 101
6.3 RSA非對稱加密的優缺點 104
6.3.1 教科書式RSA算法 104
6.3.2 切勿使用PKCS#1 v1.5標準中的RSA算法 108
6.3.3 非對稱加密RSA-OAEP 109
6.4 混合加密ECIES 112
6.5 本章小結 114
第7章 數字簽名與零知識證明 115
7.1 數字簽名的定義 115
7.1.1 現實應用中計算和驗證簽名的方法 117
7.1.2 數字簽名應用案例:認證密鑰交換 117
7.1.3 數字簽名的實際用法:公鑰基礎設施 118
7.2 零知識證明:數字簽名的起源 119
7.2.1 Schnorr身份識別協議:一種交互式零知識證明 120
7.2.2 數字簽名作為非交互式零知識證明 123
7.3 簽名算法的標準 123
7.3.1 RSA PKCS#1 v1.5:一個有漏洞的標準 124
7.3.2 RSA-PSS:更優的標準 127
7.3.3 橢圓曲線數字簽名算法 128
7.3.4 Edwards曲線數字簽名算法 130
7.4 簽名方案特殊性質 133
7.4.1 對簽名的替換攻擊 133
7.4.2 簽名的可延展性 134
7.5 本章小結 134
第8章 隨機性和秘密性 136
8.1 隨機性的定義 136
8.2 偽隨機數發生器 138
8.3 獲取隨機性的方法 141
8.4 生成隨機數和安全性考慮 143
8.5 公開的隨機性 145
8.6 用HKDF算法派生密鑰 146
8.7 管理密鑰和秘密信息 150
8.8 分佈式門限密碼技術 151
8.9 本章小結 154
第二部分 協議:密碼學的核心作用
第9章 安全傳輸 157
9.1 SSL和TLS協議 157
9.1.1 從SSL到TLS的轉化 158
9.1.2 TLS的實際應用 158
9.2 TLS協議的工作原理 160
9.2.1 TLS協議的握手階段 161
9.2.2 TLS 1.3中加密應用程序數據的方法 172
9.3 Web加密技術發展現狀 172
9.4 其他安全傳輸協議 174
9.5 Noise協議框架:TLS新的替代方案 175
9.5.1 Noise協議框架中不同的握手模式 175
9.5.2 Noise協議的握手過程 176
9.6 本章小結 177
第 10章 端到端加密 178
10.1 為什麽使用端到端加密 178
10.2 信任源缺失 180
10.3 郵件加密的失敗案例 181
10.3.1 PGP或GPG協議的工作原理 181
10.3.2 將Web系統信任機制擴展到用戶之間 184
10.3.3 尋找PGP公鑰是個難題 184
10.3.4 PGP的替代品 185
10.4 安全消息傳遞:現代端到端加密協議Signal 187
10.4.1 比Web信任機制更友好:信任可驗證 188
10.4.2 X3DH:Signal協議的握手過程 190
10.4.3 雙棘輪協議:Signal握手結束之後的協議 193
10.5 端到端加密最新進展 197
10.6 本章小結 198
第 11章 用戶認證 200
11.1 認證性的定義 200
11.2 用戶身份認證 202
11.2.1 用一個口令來控制所有口令:單點登錄以及口令管理器 204
11.2.2 避免口令的明文傳輸:使用非對稱的口令認證密鑰交換協議 205
11.2.3 一次性口令並不是真正的口令:使用對稱密鑰進行無口令操作 208
11.2.4 用非對稱密鑰替換口令 211
11.3 用戶輔助身份認證:人工輔助設備配對 213
11.3.1 預共享密鑰 215
11.3.2 CPace對稱口令認證密鑰交換 216
11.3.3 用短認證字符串避免密鑰交換遭受MIMT攻擊 217
11.4 本章小結 219
第 12章 “加密貨幣” 221
12.1 拜占庭共識算法介紹 222
12.1.1 數據恢復問題:分佈式數據可恢復協議 222
12.1.2 信任問題:利用去中心化解決信任問題 223
12.1.3 規模問題:無許可和不受審查的網絡 224
12.2 Bitcoin的工作原理 225
12.2.1 Bitcoin處理用戶餘額和交易的方式 226
12.2.2 挖掘數字黃金BTC 227
12.2.3 解決挖礦中的沖突 230
12.2.4 使用Merkle樹減小區塊的大小 233
12.3 “加密貨幣”之旅 234
12.3.1 波動性 235
12.3.2 延遲性 235
12.3.3 區塊鏈規模 235
12.3.4 機密性 236
12.3.5 電能消耗 236
12.4 DiemBFT:一種拜占庭容錯共識協議 236
12.4.1 安全性和活躍性:BFT共識協議的兩大屬性 236
12.4.2 一輪DiemBFT協議 237
12.4.3 協議對不誠實行為的容忍度 238
12.4.4 DiemBFT協議的投票規則 238
12.4.5 交易最終得到確認 240
12.4.6 DiemBFT協議安全性的直觀解釋 240
12.5 本章小結 242
第 13章 硬件密碼學 244
13.1 現代密碼學中常見的攻擊模型 244
13.2 不可信環境:讓硬件提供幫助 245
13.2.1 白盒密碼學不可取 246
13.2.2 智能卡和安全元件 247
13.2.3 硬件安全模塊—— 銀行業的寵兒 248
13.2.4 可信平臺模塊:安全元件的有效標準化 250
13.2.5 在可信執行環境中進行保密計算 252
13.3 何為最優解決方案 253
13.4 防泄露密碼 255
13.4.1 恆定時間編程 256
13.4.2 隱藏與盲化 258
13.4.3 故障攻擊 258
13.5 本章小結 259
第 14章 後量子密碼 261
14.1 震動密碼學界的量子電腦 261
14.1.1 研究小物體的量子力學 262
14.1.2 量子電腦從誕生到實現量子霸權 264
14.1.3 Shor和Grover算法對密碼學的影響 265
14.1.4 可抵抗量子算法的後量子密碼 266
14.2 基於哈希函數的一次性簽名 266
14.2.1 Lamport一次性簽名 267
14.2.2 具有較小密鑰長度的Winternitz一次性簽名方案 268
14.2.3 XMSS和SPHINCS+多次簽名 270
14.3 基於格密碼的短密鑰和簽名方案 272
14.3.1 格的定義 273
14.3.2 格密碼的基礎:LWE問題 274
14.3.3 基於格的密鑰交換算法Kyber 275
14.3.4 基於格的數字簽名算法Dilithium 277
14.4 有必要恐慌嗎 278
14.5 本章小結 280
第 15章 新一代密碼技術 281
15.1 安全多方計算 282
15.1.1 隱私集合求交 282
15.1.2 通用MPC協議 284
15.1.3 MPC發展現狀 285
15.2 全同態加密及其在雲技術中的應用 286
15.2.1 基於RSA加密方案的同態加密方案示例 286
15.2.2 不同類型的同態加密 287
15.2.3 Bootstrapping:全同態加密的關鍵 287
15.2.4 一種基於LWE問題的FHE方案 289
15.2.5 FHE的用武之地 290
15.3 通用零知識證明 291
15.3.1 zk-SNARK的工作原理 293
15.3.2 同態承諾隱藏部分證據 294
15.3.3 利用雙線性對改進同態承諾方案 294
15.3.4 簡潔性的來源 294
15.3.5 程序轉換為多項式 295
15.3.6 程序轉換為算術電路 296
15.3.7 R1CS運算電路 296
15.3.8 將R1CS轉換為多項式 297
15.3.9 隱藏在指數中的多項式 297
15.4 本章小結 299
第 16章 密碼技術並非萬能 300
16.1 尋找到正確的密碼原語或協議 301
16.2 如何使用加密原語或協議——文雅標準與形式驗證 302
16.3 哪裡能找到出色的密碼庫 304
16.4 濫用密碼技術:開發者是密碼學家的敵手 305
16.5 可用安全性 306
16.6 密碼學並非一座孤島 308
16.7 不要輕易親自實現密碼算法 309
16.8 本章小結 310
附錄 習題答案 312