Python 密碼學編程 Practical Cryptography in Python: Learning Correct Cryptography by Example

[美] 塞思·詹姆斯·尼爾森(Seth James Nielson),克裡斯托弗·K.蒙森(Christopher K. Monson)著 梁原 譯

  • Python 密碼學編程-preview-1
  • Python 密碼學編程-preview-2
  • Python 密碼學編程-preview-3
Python 密碼學編程-preview-1

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

商品描述

理解密碼學的使用場合、誤用方式和原因 瞭解什麽是安全哈希,以及安全哈希的基本屬性瞭解塊密碼(如AES)的算法和模式,以及不當配置的密碼為什麽容易遭到破解 使用消息完整性和/或數字簽名來保護消息使用現代對稱密碼,如AES-GCM和ChaCha瞭解公鑰加密的基礎知識,包括ECDSA簽名瞭解如何破解填充不當的RSA加密 使用TLS連接進行安全通信 瞭解證書的工作原理,熟悉證書鎖定和CT日誌等新功能

作者簡介

Seth James Nielson是Crimson Vista公司的創始人和首席科學家,該公司是一家計算機安全研究和諮詢公司。
Seth也是Johns Hopkins大學的兼職教授,講授網絡安全,並擔任信息安全研究所的高級研究項目主任;作為大學工作的-部分,他通過Cisco的慷慨資助,與他人共同創建了一個知識庫。


Christopher K. Monson擁有機器學習博士學位,在谷歌工作了十多年,從事各種工程、機器學習和領導工作。
他擁有豐富的編寫和講授多種編程課程的經驗,曾從事文檔密碼恢復、惡意軟件檢測和大規模安全計算方面的工作。
Christopher目前在Data Machines公司擔任首席技術官,並在Johns Hopkins大學信息安全學院講授雲計算安全課程。

目錄大綱

第1章密碼學:不僅僅是保密 1
1.1 設置Python環境 1
1.2 愷撒的移位密碼 2
1.3 密碼學介紹10
1.4 密碼學的用途11
1.5 會出現什麼問題呢? 12
1.6 你不是密碼學家12
1.7 “跳下懸崖”——互聯網13
1.8 cryptodoneright.org項目14
1.9 小結14

第2章哈希17
2.1 使用hashlib自由哈希17
2.2 進行一次哈希教育20
2.2.1 原像抗性21
2.2.2 第二原像抗性和抗碰撞性26
2.3 哈希摘要算法28
2.4 哈希密碼31
2.5 破解弱密碼36
2.6 工作量證明38
2.7 小結41

第3章對稱加密:兩端使用同一個密鑰43
3.1 加密示例43
3.2 什麼是加密?46
3.3 AES:對稱塊密碼47
3.4 ECB不適合我48
3.5 想要的:自發的獨立58
3.5.1 不是區塊鏈58
3.5.2 流密碼71
3.6 密鑰和IV管理75
3.7 利用可伸縮性79
3.8 弱密鑰,糟糕的管理87
3.9 其他加密算法89
3.10 finalize () 89

第4章非對稱加密:公鑰/私鑰91
4.1 兩個密鑰的故事91
4.2 越來越緊張92
4.3 RSA出錯94
4.4 給發件箱填料100
4.5 是什麼讓非對稱加密與眾不同?104
4.6 傳遞填充106
4.6.1 確定的輸出106
4.6.2 選擇性密文攻擊108
4.6.3 共模攻擊111
4.7 證據就在填充物裡114
4.8 利用PKCS #1 v1.5填充的RSA加密117
4.8.1 步驟1:盲操作122
4.8.2 步驟2:搜索符合PKCS的消息124
4.8.3 步驟3:縮小解的集合128
4.8.4 步驟4:求解131
4.9 關於RSA的補充說明133
4.9.1 密鑰管理133
4.9.2 算法參數134
4.9.3 量子密碼134
4.10 小結135

第5章消息完整性、簽名和證書137
5.1 過於簡單的消息驗證碼137
5.2 MAC、HMAC和CBC-MAC 139
5.2.1 HMAC 140
5.2.2 CBC-MAC 144
5.2.3 加密和MAC 150
5.3 數字簽名:身份驗證和完整性151
5.4 證書:證明公鑰的所有權160
5.5 證書和信任172
5.6 撤銷和私鑰保護173
5.7 重放攻擊174
5.8 小結175

第6章結合非對稱和對稱算法177
6.1 用RSA交換AES密鑰177
6.2 不對稱和對稱:像巧克力和花生醬180
6.3 測量RSA的相對性能181
6.4 Diffie-Hellman和密鑰協議190
6.5 Diffie-Hellman和前向保密195
6.6 質詢-響應協議201
6.7 常見問題203
6.8 一個非對稱和對稱密鑰的遺憾示例204
6.9 小結207

第7章更對稱的加密:身份驗證加密和Kerberos 209
7.1 AES-GCM 209
7.2 AES-GCM細節和細微差別213
7.3 其他AEAD算法216
7.4 工作網絡218
7.5 Kerberos簡介225
7.6 小結246

第8章TLS通信247
8.1 攔截流量247
8.2 數字身份:X.509證書252
8.2.1 X.509字段252
8.2.2 證書籤名請求254
8.2.3 在Python中創建密鑰、CSR和證書266
8.3 TLS 1.2和1.3概述270
8.3.1 介紹“hello” 272
8.3.2 客戶端身份驗證274
8.3.3 推導會話密鑰275
8.3.4 切換到新密碼278
8.3.5 派生密鑰和批量數據傳輸279
8.3.6 TLS 1.3 283
8.4 證書驗證和建立信任285
8.5 對TLS的已知攻擊289
8.5.1 POODLE 289
8.5.2 FREAK和Logjam 289
8.5.3 Sweet32 290
8.5.4 ROBOT 290
8.5.5 CRIME、TIME和BREACH 291
8.5.6 Heartbleed 291
8.6 將OpenSSL與Python一起用於TLS 292
8.7 小結301

參考文獻303