书籍详情
Python密码学编程
作者:[美] 塞思·詹姆斯·尼尔森(Seth James Nielson),克里斯托弗·K.蒙森(Christopher K. Monson)著 梁原 译
出版社:清华大学出版社
出版时间:2021-06-01
ISBN:9787302576563
定价:¥79.80
购买这本书可以去
内容简介
理解密码学的使用场合、误用方式和原因了解什么是安全哈希,以及安全哈希的基本属性了解块密码(如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
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
猜您喜欢