第1章 绪论 1
1.1 概述 2
1.2 保密通信的基本模型 4
1.3 密码学的基本概念 4
习题1 6
第2章 基础知识 7
2.1 数论基础知识 7
2.1.1 素数与互素 7
2.1.2 同余与模运算 8
2.1.3 欧拉(Euler)定理 11
2.1.4 几个有用的算法 12
2.1.5 同余方程组的求解 17
2.1.6 模为素数的二次剩余 20
2.1.7 Z p上的离散对数 22
2.2 计算复杂性问题 24
2.2.1 确定性多项式时间 24
2.2.2 非确定多项式时间 28
2.2.3 概率多项式时间 30
2.2.4 多项式时间不可区分性 31
习题2 32
第3章 古典密码 33
3.1 古典密码体制 33
3.1.1 棋盘密码 33
3.1.2 移位密码 34
3.1.3 仿射密码 35
3.1.4 代换密码 36
3.1.5 维吉尼亚密码 37
3.1.6 置换密码 39
3.1.7 Hill密码 40
3.2 密码分析技术 42
习题3 46
第4章 分组密码 48
4.1 分组密码的设计准则 48
4.1.1 Feistel分组密码的基本结构 49
4.1.2 F函数的设计准则 51
4.2 数据加密标准——DES 52
4.2.1 DES的描述 52
4.2.2 DES的分析 61
4.2.3 多重DES 64
4.3 高级数据加密标准——AES 67
4.3.1 AES数学基础 67
4.3.2 AES的描述 70
4.3.3 AES的密钥生成 75
4.3.4 AES的分析 77
4.4 IDEA算法 77
4.5 RC5算法 81
4.6 分组密码的工作模式 83
4.7 分组密码的安全性 88
习题4 89
第5章 序列密码 91
5.1 序列密码的基本原理 91
5.1.1 序列密码的设计思想 91
5.1.2 序列随机性能评价 94
5.2 反馈移位寄存器 96
5.2.1 线性反馈移位寄存器 96
5.2.2 LFSR输出序列的周期与随机性 98
5.3 基于LFSR的生成器 99
5.4 非线性反馈移位寄存器 103
5.5 序列密码的攻击法 105
5.5.1 插入攻击法 105
5.5.2 位串匹配攻击法 106
5.5.3 单词匹配攻击法 107
5.6 RC4算法和A5算法 108
5.6.1 RC4算法 108
5.6.2 A5算法 110
习题5 111
第6章 Hash函数 113
6.1 Hash函数与随机预言模型 113
6.1.1 Hash函数的概念 113
6.1.2 随机预言模型 115
6.2 迭代Hash函数 116
6.3 消息摘要算法——MD算法 117
6.3.1 MD4 117
6.3.2 MD5 119
6.4 安全Hash算法——SHA-1 124
6.5 MD5与SHA-1的比较 126
6.6 消息认证码(MAC) 126
6.6.1 基于分组密码的MAC 128
6.6.2 基于序列密码的MAC 129
6.6.3 HMAC算法 129
习题6 130
第7章 公钥密码 132
7.1 公钥密码体制的基本原理 132
7.1.1 公钥密码的基本思想 132
7.1.2 公钥密码算法满足的要求 133
7.2 RSA算法 134
7.2.1 RSA算法的描述 134
7.2.2 RSA算法的安全性 135
7.2.3 RSA算法的参数选择 137
7.3 ElGamal算法 139
7.3.1 离散对数问题 139
7.3.2 ElGamal算法的描述 139
7.3.3 ElGamal算法的安全性 140
7.4 椭圆曲线密码 141
7.4.1 椭圆曲线的定义与性质 141
7.4.2 椭圆曲线上的密码体制 144
7.4.3 椭圆曲线密码算法的特性 145
7.5 基于身份的公钥密码体制 146
7.5.1 概述 146
7.5.2 双线性Diffie-Hellman假设 147
7.5.3 Boneh和Franklin的IBE密码体制 148
7.6 公钥密码体制的应用 149
7.6.1 RSA密码体制的应用 149
7.6.2 椭圆曲线密码体制的应用 150
习题7 150
第8章 数字签名与身份认证 153
8.1 数字签名原理 153
8.1.1 数字签名的基本概念 153
8.1.2 数字签名的特性 155
8.1.3 数字签名的实现方法 156
8.2 RSA数字签名 158
8.2.1 RSA数字签名算法 159
8.2.2 RSA数字签名的安全问题 159
8.3 ElGamal数字签名 160
8.3.1 ElGamal数字签名算法 160
8.3.2 针对ElGamal签名算法的可能攻击 162
8.4 数字签名标准DSS 165
8.4.1 DSS的数字签名算法 165
8.4.2 DSA算法的安全问题 166
8.5 特殊数字签名方案 167
8.5.1 不可否认签名 167
8.5.2 群签名 169
8.5.3 环签名 170
8.5.4 代理签名 172
8.5.5 签密 173
8.6 身份认证 174
8.6.1 Schnorr身份认证协议 176
8.6.2 Okamoto身份认证协议 177
8.6.3 Guillou-Quisquater身份认证协议 178
习题8 179
第9章 密钥管理 181
9.1 密钥管理的生命周期 181
9.2 单钥体制的密钥管理 184
9.2.1 密钥的分类 184
9.2.2 密钥分配的基本方法 185
9.2.3 层次式密钥控制 186
9.2.4 分布式密钥控制 187
9.3 公钥体制的密钥管理 188
9.3.1 公开密钥的分发 188
9.3.2 用公钥加密分配单钥体制的会话密钥 189
9.3.3 Diffie-Hellman密钥交换与中间人攻击 190
9.4 秘密共享 192
9.4.1 Lagrange插值多项式算法 193
9.4.2 向量算法 194
9.4.3 高级门限方案 195
9.4.4 有欺骗者情况下的密钥共享方案 195
习题9 197
第10章 现代密码学发展前沿及应用 199
10.1 量子密码 199
10.1.1 量子密码的发展现状 199
10.1.2 量子密码的相关理论基础 200
10.1.3 量子密码的应用 202
10.1.4 量子密码分发协议 203
10.2 混沌密码 206
10.2.1 混沌系统理论 206
10.2.2 混沌密码的基本原理 208
10.2.3 混沌密码的设计和实现方案 209
10.2.4 混沌密码的应用 211
10.3 DNA密码 214
10.3.1 DNA计算 215
10.3.2 DNA密码的研究现状 215
10.3.3 几种典型的DNA密码 216
10.3.4 DNA密码的应用 219
习题10 220
参考文献 221