第1章 古典密码学 1
1.1 几个简单的密码体制 1
1.1.1 移位密码 2
1.1.2 代换密码 5
1.1.3 仿射密码 6
1.1.4 维吉尼亚密码 10
1.1.5 希尔密码 11
1.1.6 置换密码 16
1.1.7 流密码 18
1.2 密码分析 21
1.2.1 仿射密码的密码分析 22
1.2.2 代换密码的密码分析 24
1.2.3 维吉尼亚密码的密码分析 26
1.2.4 希尔密码的密码分析 29
1.2.5 基于 LFSR 流密码的密码分析 30
1.3 注释与参考文献 31
练习 32
第2章 Shannon 理论 39
2.1 引言 39
2.2 概率论基础 40
2.3 完善保密性 41
2.4 熵 46
2.4.1 Huffman 编码 47
2.5 熵的性质 49
2.6 伪密钥和惟一解距离 52
2.7 乘积密码体制 56
2.8 注释与参考文献 58
练习 58
第3章 分组密码与高级加密标准 61
3.1 引言 61
3.2 代换-置换网络 62
3.3 线性密码分析 65
3.3.1 堆积引理 66
3.3.2 S 盒的线性逼近 68
3.3.3 SPN 的线性密码分析 69
3.4 差分密码分析 73
3.5 数据加密标准 78
3.5.1 DES 的描述 78
3.5.2 DES 的分析 82
3.6 高级加密标准 83
3.6.1 AES 的描述 84
3.6.2 AES 的分析 89
3.7 工作模式 89
3.8 注释与参考文献 91
练习 92
第4章 Hash 函数 97
4.1 Hash 函数与数据完整性 97
4.2 Hash 函数的安全性 98
4.2.1 随机预言模型 99
4.2.2 随机预言模型中的算法 100
4.2.3 安全标准的比较 103
4.3 迭代 Hash 函数 105
4.3.1 Merkle-Damg?rd 结构 106
4.3.2 安全 Hash 算法 111
4.4 消息认证码 113
4.4.1 嵌套 MAC 和 HMAC 114
4.4.2 CBC-MAC 116
4.5 无条件安全消息认证码 117
4.5.1 强泛 Hash 函数族 120
4.5.2 欺骗概率的优化 122
4.6 注释与参考文献 124
练习 124
第5章 RSA 密码体制和整数因子分解 131
5.1 公钥密码学简介 131
5.2 更多的数论知识 132
5.2.1 Euclidean 算法 132
5.2.2 中国剩余定理 137
5.2.3 其他结论 139
5.3 RSA 密码体制 141
5.3.1 实现 RSA 142
5.4 素性检测 145
5.5 模 n 的平方根 153
5.6 分解因子算法 154
5.6.1 Pollard ρ-1算法 155
5.6.2 Pollard ρ 方法 156
5.6.3 Dixon 的随机平方算法 159
5.6.4 实际中的分解算法 163
5.7 对 RSA 的其他攻击 164
5.7.1 计算φ(n) 164
5.7.2 解密指数 165
5.7.3 Wiener 的低解密指数攻击 169
5.8 Rabin 密码体制 172
5.8.1 Rabin 密码体制的安全 174
5.9 RSA 的语义安全 176
5.9.1 与明文比特相关的部分信息 176
5.9.2 最优非对称加密填充 179
5.10 注释与参考文献 184
练习 185
第6章 基于离散对数问题的公钥密码体制 193
6.1 ElGamal 密码体制 193
6.2 离散对数问题的算法 195
6.2.1 Shanks 算法 195
6.2.2 Pollard ρ 离散对数算法 197
6.2.3 Pohlig-Hellman 算法 199
6.2.4 指数演算法 202
6.3 通用算法的复杂性下界 204
6.4 有限域 207
6.5 椭圆曲线 210
6.5.1 实数上的椭圆曲线 211
6.5.2 模素数的椭圆曲线 213
6.5.3 椭圆曲线的性质 216
6.5.4 点压缩与 ECIES 217
6.5.5 计算椭圆曲线上点的乘积 220
6.6 实际中的离散对数算法 221
6.7 ElGamal 体制的安全性 221
6.7.1 离散对数的比特安全性 221
6.7.2 ElGamal 体制的语义安全性 225
6.7.3 Diffie-Hellman 问题 225
6.8 注释与参考文献 227
练习 228
第7章 签名方案 233
7.1 引言 233
7.2 签名方案的安全需求 235
7.2.1 签名和 Hash 函数 236
7.3 ElGamal 签名方案 237
7.3.1 ElGamal 签名方案的安全性 239
7.4 ElGamal 签名方案的变型 241
7.4.1 Schnorr 签名方案 242
7.4.2 数字签名算法(DSA) 243
7.4.3 椭圆曲线 DSA 245
7.5 可证明的安全签名方案 247
7.5.1 一次签名 247
7.5.2 全域 Hash 250
7.6 不可否认的签名 253
7.7 fail-stop 签名 258
7.8 注释与参考之献 262
练习 262
参考文献 267