目录 1
第1章 我们的设计原理 1
1.1 追求性能带来的恶果 1
1.2 追求性能带来的恶果 3
第2章 密码学背景 4
2.1 密码系统的作用 4
2.2 最脆弱的链接性质 5
2.3 敌手设置 6
2.4 实用的妄想狂 7
2.5 威胁模型 9
2.6 密码系统不是解决方案 10
2.7 棘手的密码系统 11
2.8 易于实现的密码系统 11
2.9 背景阅读材料 12
第3章 密码学简介 13
3.1 加密 13
3.2 认证 14
3.3 公钥加密 16
3.4 数字签名 17
3.5 PKI 18
3.6 攻击 19
3.7 安全等级 22
3.8 性能 23
3.9 复杂性 24
第一部分 消息的安全性 28
第4章 分组密码 28
4.1 分组密码简述 28
4.2 攻击类型 28
4.3 理想的分组密码 29
4.4 分组密码安全性的定义 30
4.5 实际的分组密码 32
第5章 分组密码模式 42
5.1 填充 42
5.3 CBC 43
5.2 ECB 43
5.4 OFB 45
5.5 CTR 46
5.6 一些较新的模式 47
5.7 模式的选择 48
5.8 信息的泄露 49
第6章 Hash函数 52
6.1 Hash函数的安全性 52
6.2 实际的Hash函数 54
6.3 Hash函数的缺陷 56
6.4 修正缺陷 57
6.6 进一步的工作 59
6.5 Hash的选择 59
第7章 消息认证码 60
7.1 MAC的作用 60
7.2 理想的MAC 60
7.3 MAC的安全性 60
7.4 CBC-MAC 61
7.5 HMAC 63
7.6 UMAC 64
7.7 选择哪一个MAC 66
7.8 MAC的使用 67
8.1 问题陈述 69
第8章 安全信道 69
8.2 认证与加密的次序 71
8.3 概述 72
8.4 详细说明 74
8.5 选择 78
8.6 结论 79
第9章 实现问题(Ⅰ) 80
9.1 创建正确的程序 81
9.2 创作安全的软件 83
9.3 保守秘密 84
9.4 代码质量 89
9.5 侧信道攻击 92
9.6 结论 93
第二部分 密钥协商 96
第10章 随机性 96
10.1 真随机 96
10.2 PRNG的攻击模型 98
10.3 Fortuna 99
10.4 发生器 100
10.5 累加器 104
10.6 种子文件管理 110
10.7 应该做什么 113
10.8 选取随机元素 113
11.1 可除性与素数 115
第11章 素数 115
11.2 生成小素数 117
11.3 素数的模运算 118
11.4 大素数 123
第12章 Diffie-Hellman 129
12.1 群 129
12.2 基本的DH 130
12.3 中间相遇攻击 131
12.4 缺陷 132
12.5 安全素数 133
12.6 使用较小的子群 134
12.7 p的长度 134
12.9 能出错的地方 136
12.8 实践准则 136
第13章 RSA 139
13.1 引言 139
13.2 中国剩余定理 139
13.3 模n乘法 142
13.4 RSA详细说明 143
13.5 使用RSA的缺陷 147
13.6 加密 148
13.7 签名 150
14.1 角色 153
14.2 信任 153
第14章 密码协商协议介绍 153
14.3 动机 155
14.4 密码协议中的信任 156
14.5 消息和步骤 157
第15章 密钥协商协议 163
15.1 背景 163
15.2 初试 163
15.3 永久性的协议 165
15.4 认证约定 165
15.5 第二次尝试 166
15.6 第三次尝试 167
15.7 最终协议 168
15.8 看待协议的不同观点 170
15.9 协议的计算复杂性 172
15.10 协议的复杂性 173
15.11 善意的警告 174
15.12 使用口令的密钥协商 174
第16章 实现问题(Ⅱ) 175
16.1 大整数算术 175
16.2 更快的乘法 179
16.3 侧信道攻击 180
16.4 协议 182
第17章 时钟 186
17.1 使用时钟 186
第三部分 密钥管理 186
17.2 使用实时时钟 187
17.3 安全隐患 188
17.4 产生可靠的时钟 189
17.5 相同状态的问题 190
17.6 时间 191
17.7 结论 191
第18章 密钥服务器 192
18.1 基本概念 192
18.2 Kerberos 192
18.3 更简单的方案 193
18.4 选择 195
19.2 PKI的例子 196
第19章 PKI之梦 196
19.1 PKI的简短回顾 196
19.3 其他细节 197
19.4 结论 199
第20章 PKI的现实问题 200
20.1 名字 200
20.2 权力 201
20.3 信任度 202
20.4 间接授权 202
20.5 直接授权 203
20.6 信用系统 204
20.8 撤销 205
20.7 修正的梦想 205
20.9 PKI的优势是什么 207
20.10 选择 208
第21章 PKI的实用性 209
21.1 证书模式 209
21.2 密钥的生命周期 210
21.3 密钥作废的原因 211
21.4 根据应用采取行动 212
第22章 存储秘密 213
22.1 磁盘 213
22.2 人脑记忆 213
22.3 便携式存储 216
22.5 安全UI 217
22.4 安全token 217
22.6 生物统计学 218
22.7 单点登录 219
22.8 丢失的风险 219
22.9 秘密分享 220
22.10 清除秘密 221
第四部分 其他事宜 224
第23章 标准 224
23.1 标准过程 224
23.2 SSL 226
23.3 AES:由竞争带来的标准化 227
24.2 后续 228
第24章 专利 228
24.1 先知部分 228
24.3 含糊性 229
24.4 读专利 229
24.5 授权 229
24.6 专利保护 230
24.7 完善专利系统 231
24.8 不予承诺 231
第25章 专家 232
致谢 235
参考文献 236