第1章 密码学概论 1
1.1 信息安全与密码学 1
1.1.1 信息安全的重要性 1
1.1.2 攻击的主要形式和分类 2
1.1.3 信息安全的目标 4
1.1.4 密码学在信息安全中的作用 5
1.2 密码学发展史 6
1.2.1 传统密码 7
1.2.2 现代密码学 10
1.3 密码学基础 12
1.3.1 密码体制模型及相关概念 13
1.3.2 密码体制的原则 14
1.3.3 密码体制的分类 14
1.3.4 密码体制的安全性 16
1.3.5 密码体制的攻击 17
1.4 习题 19
第2章 传统密码体制 21
2.1 置换密码 21
2.1.1 列置换密码 22
2.1.2 周期置换密码 23
2.2 代换密码 24
2.2.1 单表代换密码 24
2.2.2 多表代换密码 26
2.2.3 转轮密码机 31
2.3 传统密码的分析 33
2.3.1 统计分析法 34
2.3.2 明文-密文对分析法 40
2.4 习题 42
第3章 密码学基础 45
3.1 数论 45
3.1.1 素数 45
3.1.2 模运算 46
3.1.3 欧几里得算法 47
3.1.4 欧拉定理 49
3.1.5 一次同余方程与中国剩余定理 51
3.1.6 二次剩余和Blum整数 53
3.1.7 勒让德和雅可比符号 54
3.2 近世代数 56
3.2.1 群 56
3.2.2 环与域 58
3.2.3 多项式环 58
3.2.4 域上的多项式环 60
3.2.5 有限域 63
3.3 香农理论 65
3.3.1 熵及其性质 65
3.3.2 完全保密 69
3.3.3 冗余度、唯一解距离与保密性 72
3.3.4 乘积密码体制 75
3.4 复杂度理论 76
3.4.1 算法的复杂度 76
3.4.2 问题的复杂度 78
3.5 习题 79
第4章 分组密码 82
4.1 分组密码概述 82
4.1.1 分组密码简介 82
4.1.2 理想分组密码 84
4.1.3 分组密码的原理 85
4.1.4 分组密码的设计准则 88
4.2 数据加密标准(DES) 89
4.2.1 DES的历史 89
4.2.2 DES的基本结构 90
4.2.3 DES的初始置换和逆初始置换 92
4.2.4 DES的F函数 93
4.2.5 DES的子密钥生成 97
4.2.6 DES的安全性 98
4.2.7 三重DES 101
4.2.8 DES的分析方法 103
4.3 AES算法 108
4.3.1 AES的基本结构 109
4.3.2 字节代换 112
4.3.3 行移位 116
4.3.4 列混合 117
4.3.5 轮密钥加 118
4.3.6 密钥扩展 120
4.3.7 AES的解密 122
4.3.8 AES的安全性和可用性 124
4.3.9 AES和DES的对比 125
4.4 典型分组密码 126
4.4.1 IDEA算法 126
4.4.2 RC6算法 129
4.4.3 Skipjack算法 131
4.4.4 Camellia算法 133
4.5 分组密码的工作模式 137
4.5.1 电子密码本模式(ECB) 138
4.5.2 密码分组链接模式(CBC) 139
4.5.3 密码反馈模式(CFB) 141
4.5.4 输出反馈模式(OFB) 142
4.5.5 计数器模式(CTR) 143
4.6 习题 145
第5章 序列密码 148
5.1 序列密码简介 148
5.1.1 起源 148
5.1.2 序列密码定义 149
5.1.3 序列密码分类 150
5.1.4 序列密码原理 152
5.2 线性反馈移位寄存器 153
5.2.1 移位寄存器 153
5.2.2 线性反馈移位寄存器 154
5.2.3 LFSR周期分析 156
5.2.4 伪随机性测试 158
5.2.5 m序列密码的破译 159
5.2.6 带进位的反馈移位寄存器 160
5.3 非线性序列 162
5.3.1 Geffe发生器 163
5.3.2 J-K触发器 163
5.3.3 Pless生成器 164
5.3.4 钟控序列生成器 165
5.3.5 门限发生器 165
5.4 典型序列密码算法 166
5.4.1 RC4算法 166
5.4.2 A5算法 169
5.4.3 SEAL算法 171
5.4.4 SNOW2.0算法 173
5.4.5 WAKE算法 175
5.4.6 PKZIP算法 176
5.5 习题 178
第6章 Hash函数和消息认证 180
6.1 Hash函数 180
6.1.1 Hash函数的概念 180
6.1.2 Hash函数结构 181
6.1.3 Hash函数应用 182
6.2 Hash算法 183
6.2.1 MD5算法 183
6.2.2 SHA1算法 189
6.2.3 SHA256算法 195
6.2.4 SHA512算法 198
6.3 消息认证 204
6.3.1 消息认证码 204
6.3.2 基于DES的消息认证码 205
6.3.3 基于Hash的认证码 206
6.4 Hash函数的攻击 208
6.4.1 生日悖论 209
6.4.2 两个集合相交问题 210
6.4.3 Hash函数的攻击方法 210
6.4.4 Hash攻击新进展 211
6.5 习题 212
第7章 公钥密码体制 215
7.1 公钥密码体制概述 215
7.1.1 公钥密码体制的提出 215
7.1.2 公钥密码体制的思想 216
7.1.3 公钥密码体制的分类 217
7.2 RSA公钥密码 218
7.2.1 RSA密钥对生成 218
7.2.2 RSA加解密算法 218
7.2.3 RSA公钥密码安全性 221
7.3 ElGamal公钥密码 225
7.3.1 ElGamal密钥对生成 225
7.3.2 ElGamal加解密算法 225
7.3.3 ElGamal公钥密码安全性 227
7.4 椭圆曲线公钥密码 229
7.4.1 椭圆曲线 230
7.4.2 ECC密钥对生成 233
7.4.3 ECC加解密算法 234
7.4.4 ECC安全性 235
7.4.5 ECC的优势 236
7.5 其他公钥密码 238
7.5.1 MH背包公钥密码 238
7.5.2 Rabin公钥密码 240
7.5.3 Goldwasser-Micali概率公钥密码 241
7.5.4 NTRU公钥密码 242
7.5.5 基于身份的公钥密码 244
7.6 习题 246
第8章 数字签名技术 249
8.1 数字签名概述 249
8.1.1 数字签名简介 249
8.1.2 数字签名原理 251
8.2 数字签名的实现方案 253
8.2.1 基于RSA的签名方案 253
8.2.2 基于离散对数的签名方案 254
8.2.3 基于椭圆曲线的签名方案 262
8.3 特殊数字签名 263
8.3.1 代理签名 264
8.3.2 盲签名 267
8.3.3 多重数字签名 269
8.3.4 群签名 273
8.3.5 不可否认签名 275
8.3.6 其他数字签名 276
8.4 习题 280
第9章 密码协议 283
9.1 密码协议概述 283
9.2 零知识证明 285
9.2.1 Quisquater-Guillou零知识协议 286
9.2.2 Hamilton零知识协议 286
9.2.3 身份的零知识证明 287
9.3 比特承诺 290
9.3.1 基于对称密码算法的比特承诺方案 291
9.3.2 基于单向函数的比特承诺方案 291
9.3.3 Pedersen比特承诺协议 292
9.4 不经意传送协议 293
9.4.1 Blum不经意传送协议 294
9.4.2 公平掷币协议 295
9.5 安全多方计算 297
9.5.1 百万富翁问题 298
9.5.2 平均薪水问题 300
9.6 电子商务中密码协议 302
9.6.1 电子货币 302
9.6.2 电子投票 307
9.6.3 电子拍卖 311
9.7 习题 316
第10章 密钥管理 319
10.1 密钥管理概述 319
10.1.1 密钥管理的层次结构 320
10.1.2 密钥管理的原则 322
10.2 密钥生命周期 323
10.3 密钥分发技术 326
10.3.1 公开密钥的分发 326
10.3.2 秘密密钥分发模式 328
10.4 密钥协商技术 331
10.4.1 Diffie-Hellman密钥交换协议 331
10.4.2 中间人攻击 332
10.4.3 端-端协议 332
10.5 密钥托管技术 333
10.5.1 密钥托管简介 333
10.5.2 密钥托管主要技术 334
10.6 秘密共享技术 337
10.6.1 Shamir门限方案 338
10.6.2 Asmuth-Bloom门限方案 341
10.7 习题 343
第11章 密码学新进展 346
11.1 量子密码学 346
11.1.1 量子密码学的物理学基础 346
11.1.2 量子密码信息理论 347
11.1.3 量子密码的实现 347
11.1.4 量子密码的应用 348
11.1.5 量子密码面临的问题 350
11.2 混沌密码学 351
11.2.1 混沌学的历史发展与现状 351
11.2.2 混沌学基本原理 352
11.2.3 混沌密码学原理 353
11.2.4 混沌密码目前存在的主要问题 354
11.3 DNA密码 355
11.3.1 背景与问题的提出 355
11.3.2 相关生物学背景 356
11.3.3 DNA计算与密码学 357
11.3.4 DNA密码 358
11.3.5 DNA密码安全性分析 359
11.3.6 DNA计算及DNA密码所遇到的问题 360
11.4 习题 361
参考文献 363