预购商品
书目分类
特别推荐
第一部分 密碼原語:密碼學的重要組成部分 第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
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演算法的後門攻擊等領域的安全技術。
客服公告
热门活动
订阅电子报