第一部 分引言 1
第1章 一个简单的通信游戏 2
1.1 一个通信游戏 2
1.1.1 我们给出密码学的第一个应用示例 2
1.1.2 对密码学基础的初步提示 4
1.1.3 信息安全基础:计算困难性的背后 4
1.1.4 密码学的新作用:保证游戏的公平性 5
1.2 描述密码系统和协议的准则 6
1.2.1 保护的程度与应用需求相符合 6
1.2.2 对安全性的信心要依据所建立的“种系” 7
1.2.4 采用实际的和可用的原型和服务 8
1.2.3 实际效率 8
1.2.5 明确性 9
1.2.6 开放性 12
1.3 本章小结 12
习题 13
第2章 防守与攻击 14
2.1 引言 14
2.1.1 本章概述 14
2.2 加密 14
2.3 易受攻击的环境(Dolev-Yao威胁模型) 16
2.4 认证服务器 17
2.5 认证密钥建立的安全特性 18
2.6.1 消息保密协议 19
2.6 利用加密的认证密钥建立协议 19
2.6.2 攻击、修复、攻击、修复 21
2.6.3 消息认证协议 23
2.6.4 询问-应答协议 25
2.6.5 实体认证协议 27
2.6.6 一个使用公钥密码体制的协议 28
2.7 本章小结 31
习题 32
第二部分 数学基础 33
标准符号 34
3.2 概率论的基本概念 36
3.1.1 本章纲要 36
3.1 引言 36
第3章 概率论和信息论 36
3.3 性质 37
3.4 基本运算 38
3.4.1 加法规则 38
3.4.2 乘法规则 38
3.4.3 全概率定律 39
3.5 随机变量及其概率分布 40
3.5.1 均匀分布 40
3.5.2 二项式分布 41
3.5.3 大数定律 44
3.6 生日悖论 45
3.6.1 生日悖论的应用:指数计算的Pollard袋鼠算法 46
3.7 信息论 48
3.7.1 熵的性质 49
3.8 自然语言的冗余度 50
3.9 本章小结 51
习题 51
第4章 计算复杂性 53
4.1 引言 53
4.1.1 本章概述 53
4.2 图灵机 54
4.3 确定性多项式时间 54
4.3.1 多项式时间计算性问题 56
4.3.2 算法与计算复杂度表示 57
4.4 概率多项式时间 65
4.4.1 差错概率的特征 66
4.4.2 “总是快速且正确的”子类 68
4.4.3 “总是快速且很可能正确的”子类 69
4.4.4 “很可能快且总是正确的”子类 70
4.4.5 “很可能快且很可能正确的”子类 72
4.4.6 有效算法 77
4.5 非确定多项式时间 78
4.5.1 非确定多项式时间完全 81
4.6 非多项式界 82
4.7 多项式时间不可区分性 84
4.8.1 必要条件 85
4.8 计算复杂性理论与现代密码学 85
4.8.2 非充分条件 86
4.9 本章小结 87
习题 87
第5章 代数学基础 89
5.1 引言 89
5.1.1 章节纲要 89
5.2 群 89
5.2.1 拉格朗日定理 91
5.2.2 群元素的阶 93
5.2.3 循环群 94
5.2.4 乘法群?? 96
5.3 环和域 97
5.4 有限域的结构 98
5.4.1 含有素数个元素的有限域 99
5.4.2 模不可约多项式的有限域 100
5.4.3 用多项式基构造有限域 104
5.4.4 本原根 107
5.5 用椭圆曲线上的点构造群 108
5.5.1 群运算 109
5.5.2 点乘 112
5.5.3 椭圆曲线离散对数问题 112
5.6 本章小结 113
习题 114
6.2 同余和剩余类 115
6.1.1 本章概述 115
第6章 数论 115
6.1 引言 115
6.2.1 ?n中运算的同余性质 116
6.2.2 求解?n中的线性同余式 117
6.2.3 中国剩余定理 118
6.3 欧拉φ函数 122
6.4 费马定理、欧拉定理、拉格朗日定理 123
6.5 二次剩余 124
6.5.1 二次剩余的判定 125
6.5.2 勒让德-雅可比符号 126
6.6.1 求模为素数时的平方根 128
6.6 模一个整数的平方根 128
6.6.2 求模为合数时的平方根 131
6.7 Blum整数 133
6.8 本章小结 134
习题 134
第三部分 基本的密码学技术 137
第7章 加密——对称技术 138
7.1 引言 138
7.1.1 本章概述 138
7.2 定义 139
7.3 代换密码 140
7.3.1 简单的代换密码 140
7.3.3 弗纳姆密码和一次一密 142
7.3.2 多表密码 142
7.4 换位密码 143
7.5 古典密码:使用和安全性 144
7.5.1 古典密码的使用 145
7.5.2 古典密码的安全性 145
7.6 数据加密标准(DES) 146
7.6.1 介绍DES 146
7.6.2 DES的核心作用:消息的随机非线性分布 148
7.6.3 DES的安全性 149
7.7 高级加密标准(AES) 150
7.7.1 Rijndael密码概述 150
7.7.2 Rijndael密码的内部函数 151
7.7.4 快速而安全的实现 154
7.7.3 Rijndael内部函数的功能小结 154
7.7.5 AES对应用密码学的积极影响 155
7.8 运行的保密模式 155
7.8.1 电码本模式(ECB) 156
7.8.2 密码分组链接模式(CBC) 157
7.8.3 密码反馈模式(CFB) 160
7.8.4 输出反馈模式(OFB) 160
7.8.5 计数器模式(CTR) 161
7.9 对称密码体制的密钥信道建立 161
7.10 本章小结 163
习题 163
8.1 引言 165
第8章 加密——非对称技术 165
8.1.1 本章概述 166
8.2 “教科书式加密算法”的不安全性 166
8.3 Diffie-Hellman密钥交换协议 167
8.3.1 中间人攻击 168
8.4 Diffe-Hellman问题和离散对数问题 169
8.4.1 任意参数对于满足困难假设的重要性 172
8.5 RSA密码体制(教科书式) 173
8.6 公钥密码体制的分析 175
8.7 RSA问题 176
8.8 整数分解问题 177
8.9.1 中间相遇攻击和教科书式RSA上的主动攻击 179
8.9 教科书式RSA加密的不安全性 179
8.10 Rabin加密体制(教科书式) 181
8.11 教科书式Rabin加密的不安全性 182
8.12 ElGamal密码体制(教科书式) 184
8.13 教科书式ElGamal加密的不安全性 186
8.13.1 教科书式ElGamal加密的中间相遇攻击和主动攻击 187
8.14 公钥密码系统需要更强的安全定义 187
8.15 非对称密码与对称密码的组合 188
8.16 公钥密码系统密钥信道的建立 189
8.17 本章小结 190
习题 190
9.2 RSA比特 192
9.1.1 本章概述 192
第9章 理想情况下基本公钥密码函数的比特安全性 192
9.1 前言 192
9.3 Rabin比特 196
9.3.1 Blum-Blum-Shub伪随机比特生成器 196
9.4 ElGamal比特 196
9.5 离散对数比特 197
9.6 本章小结 199
习题 199
10.1.1 本章概述 201
10.2 定义 201
10.1 引言 201
第10章 数据完整性技术 201
10.3 对称技术 202
10.3.1 密码杂凑函数 203
10.3.2 基于密钥杂凑函数的MAC 205
10.3.3 基于分组加密算法的MAC 206
10.4 非对称技术Ⅰ:数字签名 206
10.4.1 数字签名的教科书式安全概念 208
10.4.2 RSA签字体制(教科书式版本) 209
10.4.3 RSA签字安全性的非形式化论证 209
10.4.4 Rabin签名体制(教科书式版本) 210
10.4.5 关于Rabin签名的一个自相矛盾的安全性基础 210
10.4.7 ElGamal签名体制安全性的非形式化论证 212
10.4.6 ElGamal签名体制 212
10.4.8 ElGamal签名族中的签名体制 215
10.4.9 数字签名体制安全性的形式化证明 218
10.5 非对称技术Ⅱ:无源识别的数据完整性 218
10.6 本章小结 221
习题 221
第四部 分认证 223
第11章 认证协议——原理篇 224
11.1 引言 224
11.2 认证和细化的概念 225
11.2.1 数据源认证 225
11.1.1 章节概述 225
11.2.2 实体认证 226
11.2.3 认证的密钥建立 227
11.2.4 对认证协议的攻击 227
11.3 约定 228
11.4 基本认证技术 229
11.4.1 消息新鲜性和主体活现性 229
11.4.2 双方认证 235
11.4.3 包含可信第三方的认证 236
11.5 基于口令的认证 238
11.5.1 Needham口令认证协议及其在UNIX操作系统中的实现 239
11.5.2 一次性口令机制(及缺陷的修补) 240
11.5.3 加盐操作:加密的密钥交换(EKE) 242
11.6 基于非对称密码学的认证密钥交换 244
11.6.1 工作站-工作站协议 245
11.6.2 简化STS协议的一个缺陷 246
11.6.3 STS协议的一个瑕疵 248
11.7 对认证协议的典型攻击 250
11.7.1 消息重放攻击 250
11.7.2 中间人攻击 251
11.7.3 平行会话攻击 252
11.7.4 反射攻击 253
11.7.5 交错攻击 255
11.7.6 归因于类型缺陷攻击 255
11.7.7 归因于姓名遗漏攻击 256
11.7.8 密码服务滥用攻击 257
11.9 本章小结 260
11.8 文献简记 260
习题 261
第12章 认证协议——实践篇 262
12.1 引言 262
12.1.1 章节概述 263
12.2 用于因特网的认证协议 263
12.2.1 IP层通信 263
12.2.2 IP安全协议(IPSec) 264
12.2.3 因特网密钥交换(IKE)协议 267
12.2.4 IKE中看似合理的可否认性 272
12.2.5 对IPSec和IKE的批评意见 273
12.3.1 SSH架构 274
12.3 安全壳(SSH)远程登录协议 274
12.3.2 SSH传输层协议 275
12.3.3 SSH策略 277
12.3.4 警告 277
12.4 Kerberos协议及其在Windows 2000系统中的实现 278
12.4.1 单点登录结构 279
12.4.2 Kerberos交换 280
12.4.3 警告 282
12.5 SSL和TLS 282
12.5.1 TLS架构概述 283
12.5.2 TLS握手协议 283
12.5.3 TLS握手协议的典型运行 285
12.5.4 对TLS协议的边信道攻击 286
12.6 本章小结 287
习题 288
第13章 公钥密码的认证框架 289
13.1 前言 289
13.1.1 本章概述 289
13.2 基于目录的认证框架 289
13.2.1 证书发行 291
13.2.2 证书吊销 291
13.2.3 公钥认证框架实例 291
13.2.4 与X.509公钥证书基础设施相关的协议 293
13.3 基于非目录的公钥认证框架 293
13.3.1 Shamir的基于ID的签名方案 294
13.3.2 基于ID的密码确切提供了什么 295
13.3.3 自证实公钥 296
13.3.4 利用“弱”椭圆曲线对构造基于身份的公钥密码体制 298
13.3.5 Sakai、Ohgishi和Kasahara的基于ID的非交互密钥分享系统 301
13.3.6 三方Diffie-Hellman密钥协商 303
13.3.7 Boneh和Franklin的基于ID的密码体制 304
13.3.8 非交互特性:无密钥信道的认证 307
13.3.9 基于身份的公钥密码学的两个公开问题 307
13.4 本章小结 308
习题 308
第五部分 建立安全性的形式化方法 311
14.1 引言 312
第14章 公钥密码体制的形式化强安全性定义 312
14.1.1 本章概述 313
14.2 安全性的形式化处理 313
14.3 语义安全性——可证明安全性的首次亮相 316
14.3.1 SRA智力扑克协议 316
14.3.2 基于教科书式安全的安全性分析 317
14.3.3 Goldwasser和Micali的概率加密 319
14.3.4 GM密码体制的安全性 320
14.3.5 ElGamal体制的一种语义安全版本 321
14.3.6 基于Rabin比特的语义安全密码体制 323
14.4 语义安全性的不充分性 324
14.5.1 抗击选择密文攻击的安全性 326
14.5 超越语义安全性 326
14.5.2 抗击适应性选择密文攻击的安全性 329
14.5.3 不可展密码学 331
14.5.4 不可区分性与不可展性的关系 333
14.6 本章小结 336
习题 337
第15章 可证明安全的有效公钥密码体制 338
15.1 引言 338
15.1.1 本章概述 338
15.2 最优非对称加密填充 339
15.2.1 安全性证明的随机预言机模型 340
15.2.3 RSA-OAEP证明中的曲折 342
15.2.2 RSA-OAEP 342
15.2.4 对RSA-OAEP的补救工作 349
15.2.5 RSA-OAEP“归约为矛盾”的严谨性 351
15.2.6 对随机预言机模型的批评 352
15.2.7 作者对随机预言机模型价值的观点 352
15.3 Cramer-Shoup公钥密码体制 353
15.3.1 在标准困难性假设下的可证明安全性 353
15.3.2 Cramer-Shoup体制 354
15.3.3 安全性证明 357
15.4 可证明安全的混合密码体制综述 362
15.5 可证明安全的实用公钥密码体制的文献注记 364
15.6 本章小结 365
习题 366
16.1 引言 367
第16章 强可证明安全的数字签名方案 367
16.1.1 本章纲要 368
16.2 数字签名的强安全性定义 368
16.3 ElGamal族签名的强可证明安全 369
16.3.1 三元组ElGamal族签名 369
16.3.2 分叉归约技术 370
16.3.3 重行归约方法 376
16.4 适于应用的RSA和Rabin签名方法 377
16.4.1 具有随机化填充的签名 377
16.4.2 概率签名方案 377
16.4.4 签名和加密通用的PSS-R填充 379
16.4.3 PSS-R:消息可恢复的签名 379
16.5 签密 381
16.5.1 Zheng的签密方案 382
16.5.2 一箭双雕:采用RSA签密 384
16.6 本章小结 387
习题 388
第17章 分析认证协议的形式化方法 389
17.1 引言 389
17.1.1 本章概述 390
17.2 认证协议的形式化描述 390
17.2.1 加解密认证方法的不精确性 390
17.2.2 认证协议的细化描述 393
17.2.3 认证协议细化描述的例子 394
17.3 正确协议的计算观点——Bellare-Rogaway模型 397
17.3.1 参与者行为的形式模型化 398
17.3.2 相互认证的目标:匹配对话 400
17.3.3 MAP1协议及其安全性证明 401
17.3.4 协议正确性计算模型的进一步研究 402
17.3.5 讨论 403
17.4 正确协议的符号操作观点 403
17.4.1 定理证明 403
17.4.2 一种认证逻辑 404
17.5 形式化分析技术:状态系统探查 406
17.5.1 模型检验 406
17.5.2 NRL协议分析机 408
17.5.3 CSP方法 409
17.6 调和安全性形式化技术的两种观点 413
17.7 本章小结 414
习题 414
第六部分 密码学协议 417
第18章 零知识协议 418
18.1 引言 418
18.1.1 本章纲要 419
18.2 基本定义 419
18.2.1 计算模型 419
18.2.2 交互式证明协议的形式化定义 419
18.2.3 一个复杂性理论结果 422
18.3 零知识特性 423
18.3.1 完备零知识 424
18.3.2 诚实验证者的零知识 427
18.3.3 计算零知识 429
18.3.4 统计零知识 431
18.4 证明还是论据 432
18.4.1 零知识论据 432
18.4.2 零知识证明 433
18.5 双边差错协议 434
18.5.1 零知识证明双素整数 435
18.6 轮效率 438
18.6.1 子群成员归属的轮效率下界 439
18.6.2 离散对数的常数轮证明 441
18.7 非交互式零知识 444
18.7.1 利用指定验证者获得NIZK 445
18.8 本章小结 448
习题 448
第19章 回到“电话掷币”协议 450
19.1 Blum“电话掷币”协议 450
19.2 安全性分析 451
19.3 效率 452
19.4 本章小结 453
第20章 结束语 454
参考文献 455