新书速递
导读:密码学是什么?我们为什么要懂密码学?
随着计算机网络的发展,每个人在日常生活中都已经不知不觉地和密码学建立起了密切的联系。我们日常接触的互联网、移动电话、wi-fi网络、网上支付、银行卡、电子邮件、区块链、个人设备等场景中,密码学都与我们息息相关。但密码学一直和复杂的数字、公式联系在一起,令人望而生畏。
今天为大家介绍《人人可懂的密码学(原书第2版)》。
本书用一种独特的方式,从日常生活中可用到密码学的场景出发,按照密码学工具包、密钥管理、密码学应用等脉络铺陈开来,使任何想要了解密码学的读者都能轻松进入这个有趣的、充满挑战的领域。
本书特点
强调基本原理:本书着重介绍密码学中重要且长期稳定的基本原理,不关注流行的密码技术的实现细节,从而确保本书内容在未来不会过时。
以应用为中心:本书希望更多的用户能了解密码学,因此给出了大量在日常生活中能接触到的密码学应用案例,包括无线局域网、移动通信、网上支付、视频广播、身份证、电子邮件、个人设备等场景中的安全需求,以及应用的密码技术。
广泛的适用性:本书的目标是适合密码学初学者学习,因此本书关注密码学的核心问题,并尽力做到面向各种专业背景和基础的读者,使读者无须额外学习预备知识也能理解本书的内容。
本书结构
本书的内容由四个部分组成。
第一部分 预备知识:该部分主要介绍密码学需求的动机、经典的加密算法、安全理论与实践的区别等。
第二部分 密码学工具包:该部分包括构成密码学工具包的各种组件、提供机密性的对称加密系统和公钥加密系统、密码学在数据完整性和数据源身份认证方面的应用、使用密码学实现实体身份认证和密码协议等内容。
第三部分 密钥管理:该部分从实际的角度来探讨密码学中最重要的且常常被忽视的领域—密钥管理,包括秘密密钥管理以及与公钥密码学相关的密钥管理。
第四部分 应用密码学:该部分分析密码学的一些典型应用和普通用户在保护他们的个人设备及通信时可能使用的密码学技术;讨论通过使用密码学技术引起的更广泛的社会问题,如平衡隐私和控制的策略问题等。
本书的独特性
现有的密码学书籍大多侧重于介绍密码学的数学方面,对密码算法的数学细节进行了详细的讨论,但很少提供足够的关于密码学实践方面的内容。本书的独特性在于:
主要关注密码学的基本原理,而不是相关的技术细节。
从实际应用出发,专注于日常应用中的密码学。
几乎没有涉及密码学的数学知识。
将密码学放在支持信息安全的底层技术的应用场景下进行介绍。
关于作者
基思·M. 马丁,伦敦大学皇家霍洛威学院信息安全专业教授。他曾在澳大利亚阿德莱德大学和比利时鲁汶大学从事研究工作,并曾担任皇家霍洛威学院信息安全组负责人。他负责设计了皇家霍洛威学院信息安全专业远程硕士课程的课程体系,还经常面向企业界、高校和公众普及密码学方面的知识。他的研究兴趣是密码学和密钥管理。
目录
译者序
前言
第1版前言
第一部分 预备知识
第1章 基本原理 2
1.1 为什么需要保证信息安全 2
1.1.1 信息安全的发展历程 2
1.1.2 两种不同的办公环境 3
1.1.3 不同视角 4
1.1.4 安全基础设施的重要性 5
1.2 安全风险 6
1.2.1 攻击类型 6
1.2.2 一个简单场景下的安全风险 6
1.2.3 选择安全机制 7
1.3 安全服务 8
1.3.1 基本定义 9
1.3.2 安全服务之间的关系 9
1.4 密码系统基础 11
1.4.1 不同的密码学概念 11
1.4.2 安全服务的密码学原语 12
1.4.3 密码系统的基本模型 13
1.4.4 代码 15
1.4.5 隐写术 16
1.4.6 访问控制 16
1.4.7 两种类型的密码系统 16
1.4.8 加密密钥的机密性 17
1.5 密码系统的安全假设 19
1.5.1 标准假设 19
1.5.2 理论攻击模型 19
1.5.3 公开算法与专用算法 20
1.5.4 公开算法的使用 21
1.6 密码系统的破解 22
1.6.1 一些有用的预备知识 23
1.6.2 密钥长度和密钥空间 24
1.6.3 破解加密算法 25
1.6.4 密钥穷举 26
1.6.5 攻击类型 28
1.6.6 学术攻击 30
1.7 总结 30
1.8 进一步的阅读 30
1.9 练习 31
第2章 传统密码系统 35
2.1 单表密码 36
2.1.1 凯撒密码 36
2.1.2 简单替换密码 38
2.1.3 频率分析 40
2.1.4 理论安全与实践安全的差异 42
2.2 传统密码系统的历史进步 44
2.2.1 设计的改进 44
2.2.2Playfair密码 44
2.2.3 多名码 48
2.2.4Vigenère密码 50
2.3 总结 53
2.4 进一步的阅读 53
2.5 练习 54
第3章 理论安全与实践安全 58
3.1 理论安全 58
3.1.1 完全保密 59
3.1.2 提供完全保密性的简单密码系统 60
3.1.3 一次一密 61
3.1.4 理论安全总结 66
3.2 实践安全 67
3.2.1 实践中的一次一密 67
3.2.2 保护时限 68
3.2.3 计算复杂度 69
3.2.4 密码系统的设计过程 73
3.2.5 安全性评估 74
3.2.6 适度安全 75
3.2.7 迈向实践安全 77
3.3 总结 78
3.4 进一步的阅读 78
3.5 练习 78
第二部分 密码学工具包
第4章 对称密码 82
4.1 对称密码算法分类 82
4.2 流密码 84
4.2.1 流密码模型 84
4.2.2 流密码密钥管理 85
4.2.3 错误影响 86
4.2.4 流密码的性质 86
4.2.5 流密码示例 88
4.3 分组密码 88
4.3.1 分组密码模型 88
4.3.2 分组密码的性质 89
4.3.3 分组密码算法 90
4.4DES密码 91
4.4.1Feistel密码 91
4.4.2DES规范 93
4.4.3DES简史 93
4.4.4 三重DES 96
4.5AES密码 98
4.5.1AES的开发 98
4.5.2AES的设计 99
4.5.3AES的今天 100
4.6 操作模式 101
4.6.1ECB模式 101
4.6.2CBC模式 103
4.6.3CFB模式 107
4.6.4CTR模式 110
4.6.5 操作模式的比较 112
4.7 对称密码的使用 112
4.7.1 其他对称密码类型 113
4.7.2 未来的对称密码 113
4.8 总结 114
4.9 进一步的阅读 114
4.10 练习 115
第5章 公钥密码 118
5.1 公钥密码学 119
5.1.1 发明公钥密码学的动机 119
5.1.2 公钥密码系统的性质 120
5.1.3 一些数学基础知识 122
5.1.4 公钥密码学的单向函数 123
5.2RSA 126
5.2.1RSA密钥生成 126
5.2.2RSA加密和解密 128
5.2.3RSA的安全性 129
5.2.4RSA在实践中的应用 131
5.3ElGamal和椭圆曲线的变体 132
5.3.1ElGamal的密钥生成 133
5.3.2 使用ElGamal进行加密/解密 133
5.3.3ElGamal的安全性 135
5.3.4ElGamal在实践中的应用 136
5.3.5 椭圆曲线密码学 136
5.4RSA、ElGamal和ECC的比较 137
5.4.1RSA的普及 137
5.4.2 性能问题 137
5.4.3 安全问题 138
5.5 使用公钥密码 140
5.5.1 限制因素 140
5.5.2 混合加密 141
5.5.3 其他类型的公钥密码系统 142
5.5.4 公钥密码系统的未来 143
5.6 总结 143
5.7 进一步的阅读 144
5.8 练习 145
第6章 数据完整性 148
6.1 不同级别的数据完整性 148
6.2 哈希函数 149
6.2.1 哈希函数的属性 150
6.2.2 哈希函数的应用 153
6.2.3 哈希函数的理论攻击 158
6.2.4 哈希函数实践 161
6.2.5SHA-3 163
6.3 消息认证码 165
6.3.1 对称加密是否提供数据源认证 166
6.3.2MAC的属性 167
6.3.3CBC-MAC 169
6.3.4HMAC 172
6.3.5MAC和不可否认性 173
6.3.6 将MAC和加密一起使用 173
6.4 总结 177
6.5 进一步的阅读 177
6.6 练习 178
第7章 数字签名方案 181
7.1 数字签名 181
7.1.1 基本思路 181
7.1.2 电子签名 182
7.1.3 数字签名方案的基础 183
7.2 使用对称密码技术提供不可否认性 184
7.2.1 仲裁数字签名方案 184
7.2.2 不对称信任关系 185
7.2.3 强制信任 186
7.3 基于RSA的数字签名方案 186
7.3.1 互补要求 187
7.3.2 数字签名方案的基本模型 187
7.3.3 两种不同的方法 188
7.3.4 带附件的RSA数字签名方案 189
7.3.5 带消息恢复的RSA数字签名方案 192
7.3.6 其他数字签名方案 194
7.4 数字签名方案实践 195
7.4.1 数字签名方案的安全性 195
7.4.2 使用带加密的数字签名方案 196
7.4.3 与手写签名的关系 197
7.4.4 与高级电子签名的关系 200
7.5 总结 200
7.6 进一步的阅读 200
7.7 练习 201
第8章 实体身份认证 204
8.1 随机数生成 204
8.1.1 随机性的需求 204
8.1.2 什么是随机性 205
8.1.3 非确定性生成器 206
8.1.4 确定性生成器 207
8.2 提供时效 209
8.2.1 基于时钟的机制 209
8.2.2 序列号 210
8.2.3 基于Nonce的机制 211
8.2.4 时效机制的比较 212
8.3 实体身份认证基础 213
8.3.1 实体身份认证的问题 214
8.3.2 实体身份认证的应用 214
8.3.3 身份信息的一般类别 215
8.4 口令 217
8.4.1 口令的问题 217
8.4.2 加密口令保护 218
8.5 动态口令方案 219
8.5.1 动态口令方案背后的思想 220
8.5.2 动态口令方案示例 220
8.6 零知识机制 222
8.6.1 零知识的动机 223
8.6.2 零知识类比 223
8.6.3 零知识实践 224
8.7 总结 225
8.8 进一步的阅读 225
8.9 练习 226
第9章 密码协议 230
9.1 协议基础 230
9.1.1 协议的操作动机 230
9.1.2 协议的环境动机 231
9.1.3 密码协议的构成 231
9.2 从目标到协议 232
9.2.1 协议设计阶段 232
9.2.2 协议设计阶段的挑战 233
9.2.3 假设和行为 234
9.2.4 更广泛的协议设计过程 235
9.3 分析一个简单的协议 235
9.3.1 一个简单的应用 235
9.3.2 协议1 237
9.3.3 协议2 239
9.3.4 协议3 241
9.3.5 协议4 243
9.3.6 协议5 244
9.3.7 协议6 246
9.3.8 协议7 248
9.3.9 简单协议的总结 249
9.4 认证和密钥建立协议 249
9.4.1 典型AKE协议目标 250
9.4.2Diff?ie-Hellman密钥协商协议 251
9.4.3 基于密钥分发的AKE协议 257
9.4.4 完全前向保密性 259
9.5 总结 260
9.6 进一步的阅读 261
9.7 练习 261
第三部分 密钥管理
第10章 密钥管理基础 266
10.1 密钥管理的概念 266
10.1.1 什么是密钥管理 267
10.1.2 密钥生存期 267
10.1.3 基本密钥管理要求 268
10.1.4 密钥管理系统 270
10.2 密钥长度和生存期 270
10.2.1 密钥生存期 271
10.2.2 密钥长度的选择 271
10.3 密钥生成 272
10.3.1 直接生成密钥 273
10.3.2 密钥派生 273
10.3.3 从组元生成密钥 274
10.3.4 公钥对的生成 275
10.4 密钥建立 276
10.4.1 密钥分级 277
10.4.2 单交易唯一密钥 280
10.4.3 量子密钥建立 283
10.5 密钥存储 285
10.5.1 避免密钥存储 285
10.5.2 密钥存储于软件中 286
10.5.3 密钥存储于硬件中 287
10.5.4 密钥存储的风险因素 289
10.5.5 密钥备份、存档与恢复 290
10.6 密钥的使用 292
10.6.1 密钥分离 292
10.6.2 密钥变更 295
10.6.3 密钥激活 297
10.6.4 密钥销毁 298
10.7 密钥管理治理 298
10.7.1 密钥管理的策略、实践和流程 298
10.7.2 流程示例:密钥生成仪式 299
10.8 总结 300
10.9 进一步的阅读 300
10.10 练习 301
第11章 公钥管理 305
11.1 公钥认证 305
11.1.1 公钥认证的动机 306
11.1.2 公钥证书 307
11.2 证书的生命周期 310
11.2.1 证书生命周期中的差异 310
11.2.2 证书的创建 311
11.2.3 密钥对变更 314
11.3 公钥管理模型 315
11.3.1CA的选择 316
11.3.2 公钥证书管理模型 316
11.3.3 联合CA域 319
11.4 替代方法 322
11.4.1 信任Web 322
11.4.2 基于身份的加密 323
11.5 总结 326
11.6 进一步的阅读 326
11.7 练习 327
第四部分 应用密码学
第12章 密码学的应用 332
12.1 因特网中的密码学 333
12.1.1TLS协议的背景 334
12.1.2TLS协议的安全需求 334
12.1.3TLS协议中使用的密码学 334
12.1.4TLS 1.2和早期版本 335
12.1.5TLS 1.3 339
12.1.6TLS的密钥管理 341
12.1.7TLS的安全问题 342
12.1.8TLS设计的考虑事项 343
12.2 无线局域网中的密码学 344
12.2.1 无线局域网的背景 344
12.2.2 无线局域网的安全需求 345
12.2.3WEP 346
12.2.4 对WEP的攻击 348
12.2.5WPA和WPA2 351
12.2.6 无线局域网的安全问题 353
12.2.7 无线局域网设计的考虑事项 354
12.3 移动电信中的密码学 354
12.3.1 移动电信的背景 354
12.3.2GSM的安全需求 355
12.3.3GSM中使用的密码学 356
12.3.4UMTS 360
12.3.5LTE 361
12.3.6GSM、UMTS和LTE的密钥管理 363
12.3.7 移动电信的安全问题 364
12.3.8 移动电信设计的考虑事项 364
12.4 安全支付卡交易中的密码学 364
12.4.1 支付卡服务的背景 365
12.4.2 磁条卡 366
12.4.3EMV卡 367
12.4.4 使用EMV卡进行网上交易 370
12.4.5 使用EMV卡进行认证 371
12.4.6 使用EMV卡进行移动支付 371
12.4.7 支付卡的密钥管理 373
12.4.8 支付卡的安全问题 374
12.4.9 支付卡密码设计的考虑事项 375
12.5 视频广播中的密码学 375
12.5.1 视频广播的背景 375
12.5.2 视频广播的安全需求 377
12.5.3 视频广播中使用的密码学 377
12.5.4 视频广播的密钥管理 378
12.5.5 视频广播的安全问题 381
12.5.6 视频广播设计的考虑事项 381
12.6 身份证中的密码学 382
12.6.1eID的背景 382
12.6.2eID的安全需求 383
12.6.3eID卡中使用的密码学 383
12.6.4eID卡的核心功能 384
12.6.5eID的密钥管理 386
12.6.6eID的安全问题 389
12.6.7eID设计的考虑事项 389
12.7 匿名中的密码学 390
12.7.1Tor的背景 390
12.7.2Tor的安全需求 391
12.7.3Tor是怎样工作的 391
12.7.4Tor的安全问题 397
12.7.5Tor设计的考虑事项 397
12.8 数字货币中的密码学 398
12.8.1 比特币的背景 398
12.8.2 比特币的安全需求 399
12.8.3 比特币交易 399
12.8.4 比特币区块链 401
12.8.5 比特币挖矿 403
12.8.6 比特币的安全问题 406
12.8.7 比特币设计的考虑事项 407
12.9 总结 408
12.10 进一步的阅读 408
12.11 练习 409
第13章 应用于个人设备的密码学 414
13.1 文件保护 415
13.1.1 全盘加密 415
13.1.2 虚拟磁盘加密 417
13.1.3 个人文件加密 417
13.2 邮件安全 418
13.2.1 电子邮件的安全需求 418
13.2.2 保护电子邮件的技术 419
13.3 消息传递安全 421
13.3.1WhatsApp的安全需求 422
13.3.2WhatsApp中使用的密码学 422
13.4 平台安全 424
13.4.1iOS用户数据的密码保护 424
13.4.2iOS因特网服务的加密保护 425
13.4.3 进一步的iOS加密支持 426
13.5 总结 427
13.6 进一步的阅读 427
13.7 练习 428
第14章 密码学的控制 430
14.1 密码学困境 431
14.1.1 控制密码学使用的案例 431
14.1.2 反对控制密码学使用的案例 431
14.1.3 寻求平衡 432
14.1.4 控制密码学使用的策略 432
14.2 算法的后门 433
14.2.1 后门的使用 433
14.2.2Dual_EC_DRBG 434
14.3 法律机制 435
14.3.1 出口限制 435
14.3.2 密钥托管 436
14.3.3 获取明文的法律要求 437
14.4 在复杂时代对密码学的控制 437
14.4.1 斯诺登的爆料 437
14.4.2 加密环境的改变 438
14.4.3 控制普适密码学的策略 440
14.5 总结 443
14.6 进一步的阅读 443
14.7 练习 444
第15章 结束语 447
附录 数学基础一
索引二
上下滑动查看
实拍图
点击链接了解详情并购买
更多精彩回顾
书讯 | 12月书讯 | 年末上新,好书不断
资讯 | DB-Engines 12月数据库排名:PostgreSQL有望获得「2020年度数据库」荣誉?
书单 | 机器人时代已来!推荐几本机器人学硬核好书
干货 | 为什么“蜥蜴书”是机器学习入门必读书?
收藏 | 微信第 1 行代码曝光!
上新 | 互联网消费金融行业从业者的实战指南
赠书 | 【第34期】如何成为一个软件架构师?
点击阅读全文购买