第1章 密码学概述 1
1.1 引言 1
1.2 密码学的基本概念 2
1.2.1 密码编码学 2
1.2.2 密码分析学 4
1.2.3 密钥管理学 7
1.3 密码的基本编码原理 8
1.3.1 移位密码 8
1.3.2 代替密码 10
1.4 代替密码分析 15
1.4.1 语言的内在规律 16
1.4.2 单表代替密码分析 17
1.4.3 多表代替密码分析 20
习题 26
参考文献 28
第2章 保密理论 29
2.1 信息论简介 29
2.1.1 随机事件的信息量和概率分布的熵 29
2.1.2 熵的基本性质 32
2.1.3 联合熵、条件熵和互信息 33
2.2 Shannon保密理论 36
2.2.1 理论上的保密性 37
2.2.2 密码体制的唯一解码量 41
2.3 计算复杂性理论 44
2.3.1 实际保密性 45
2.3.2 算法和问题 45
2.3.3 算法的计算复杂性 47
2.3.4 问题的复杂性 53
习题 56
参考文献 57
第3章 序列密码 59
3.1 伪随机序列的常规特性 59
3.1.1 周期序列和最终周期序列 59
3.1.2 伪随机性的Golomb三假设 60
3.2 序列密码的基本模型 62
3.2.1 序列密码的一般模型 62
3.2.2 无明密文反馈的模型 64
3.2.3 明密文反馈模型 65
3.2.4 自同步密码模型 66
3.3 有限域上的线性反馈移存器 67
3.3.1 有限域上的n级递归序列 67
3.3.2 线性反馈移存器简介 70
3.3.3 m序列的密码特性 77
3.3.4 m序列的还原特性 86
3.3.5 基于除法电路设计的LFSR 93
3.4 Walsh谱理论 95
3.4.1 复数值函数的Walsh谱理论 95
3.4.2 Boole函数的Walsh谱理论 99
3.4.3 Bent函数 103
3.4.4 多输出Boole函数的平衡性判定定理 105
3.4.5 函数复合与函数求和的Walsh谱计算 107
3.5 序列密码的基本编码技术 110
3.5.1 前馈模型 110
3.5.2 非线性滤波模型 111
3.5.3 非线性组合模型 117
3.5.4 滤波-组合模型 124
3.5.5 钟控模型 124
3.5.6 有记忆变换模型 128
3.6 RC4序列密码算法 131
3.7 A5序列密码算法 133
3.7.1 A5-1序列密码算法 133
3.7.2 A5-2序列密码算法 137
习题 140
参考文献 143
第4章 分组密码 146
4.1 分组密码概述 146
4.2 分组密码的基本设计原则 147
4.2.1 安全原则 147
4.2.2 实现原则 148
4.3 分组密码的整体结构 149
4.3.1 S-P网络 150
4.3.2 Feistel模型 150
4.4 数据加密标准 152
4.4.1 背景 152
4.4.2 DES算法 153
4.4.3 DES的简单分析 161
4.4.4 DES的安全性 167
4.4.5 多重DES 168
4.5 穷举攻击 169
4.5.1 穷举攻击的基本方案 169
4.5.2 穷举攻击的实现方案 173
4.6 差分密码分析 174
4.6.1 差分密码分析概述 175
4.6.2 DES的差分密码分析 177
4.7 线性密码分析 192
4.7.1 对DES算法f函数的线性逼近 193
4.7.2 线性逼近方程的建立 196
4.8 国际数据加密算法 202
4.8.1 IDEA算法 202
4.8.2 IDEA的简单分析 207
4.9 高级加密标准 208
4.9.1 背景 208
4.9.2 数学基础 209
4.9.3 状态和状态矩阵 213
4.9.4 AES算法 214
4.9.5 AES的简单分析 225
4.10 分组密码的工作模式 231
4.10.1 电码本模式 231
4.10.2 密码分组链接模式 232
4.10.3 密码反馈模式 233
4.10.4 输出反馈模式 234
4.10.5 尾分组处理方法 235
习题 236
参考文献 238
第5章 公钥密码技术 242
5.1 RSA公钥密码体制 243
5.1.1 RSA公钥密码体制介绍 244
5.1.2 大素数生成算法 246
5.1.3 RSA的实现 249
5.2 RSA密码体制的安全性分析 253
5.2.1 因子分解的进展及实用算法 253
5.2.2 对RSA的其他攻击 258
5.2.3 共模RSA体制的安全性分析 261
5.2.4 RSA参数的选择 261
5.3 基于离散对数问题的公钥密码 263
5.3.1 有限域上的离散对数问题 263
5.3.2 ElGamal公钥密码算法 266
5.3.3 Diffie-Hellman密钥交换协议 268
5.4 椭圆曲线公钥密码体制 271
5.4.1 椭圆曲线的定义 272
5.4.2 椭圆曲线群上的离散对数问题 276
5.4.3 椭圆曲线上的公钥密码 277
习题 279
参考文献 280
第6章 数字签名 282
6.1 RSA数字签名方案 283
6.1.1 RSA数字签名方案 283
6.1.2 RSA数字签名的同态性 284
6.1.3 RSA数字签名与加密的结合 285
6.2 ElGamal数字签名方案 286
6.2.1 ElGamal数字签名方案 286
6.2.2 ElGamal数字签名方案的安全性分析 287
6.2.3 ElGamal数字签名方案的变型 288
6.2.4 数字签名标准DSS 289
6.2.5 椭圆曲线数字签名算法(ECDSA) 290
参考文献 292
第7章 杂凑函数 294
7.1 杂凑函数的性质及应用 294
7.2 杂凑函数的基本攻击方法 295
7.3 基于分组密码的杂凑函数设计 296
7.4 MD5杂凑函数 297
7.5 SHA杂凑函数 302
习题 304
参考文献 304
第8章 认证技术 306
8.1 消息认证 306
8.1.1 对称密码体制实现的消息认证 306
8.1.2 杂凑函数实现的消息认证 308
8.1.3 公钥密码体制实现的消息认证 310
8.2 身份认证 311
8.2.1 弱身份认证 311
8.2.2 强身份认证 312
8.3 认证技术的应用 313
8.3.1 人机认证 314
8.3.2 产品防伪 315
习题 315
参考文献 315
第9章 随机数的产生与检验 317
9.1 随机数的描述 317
9.2 随机数和伪随机数的产生方法 319
9.3 随机数的检验方法 320
9.3.1 正态分布和x2分布 320
9.3.2 假设检验 323
9.3.3 5种基本检验(5项常规统计检验) 324
习题 327
参考文献 327
第10章 密钥管理 328
10.1 密钥管理的内容 328
10.1.1 密钥的概念 328
10.1.2 密钥的分配 329
10.1.3 密钥的维护 329
10.2 密钥的分层和分散管理 330
10.2.1 密钥的分层管理 330
10.2.2 密钥的分散管理 331
10.3 密钥分配技术 333
10.3.1 密钥分配的体系结构 333
10.3.2 密钥分配协议 335
10.4 公钥基础设施的基本原理 340
10.4.1 PKI的一些基本概念 340
10.4.2 公钥证书的生成过程 342
10.4.3 证书的结构及实现原理 343
10.4.4 证书的验证过程 344
习题 344
参考文献 345
附录 数学基础知识 346
附录1 概率论和统计检验基础 346
附录2 数论基础 359
附录3 代数基础 371
参考文献 381