第1章 引言 1
1.1信息安全面临的威胁 1
1.1.1安全威胁 1
1.1.2入侵者和病毒 2
1.1.3安全业务 3
1.2信息安全模型 4
1.3密码学基本概念 5
1.3.1保密通信系统 5
1.3.2密码体制分类 7
1.3.3密码攻击概述 7
1.4几种古典密码 8
1.4.1单表代换密码 9
1.4.2多表代换密码 10
习题 11
第2章 流密码 13
2.1流密码的基本概念 13
2.1.1同步流密码 13
2.1.2有限状态自动机 14
2.1.3密钥流产生器 15
2.2线性反馈移位寄存器 16
2.3线性移位寄存器的一元多项式表示 18
2.4 m序列的伪随机性 21
2.5 m序列密码的破译 23
2.6非线性序列 26
2.6.1 Geffe序列生成器 26
2.6.2 JK触发器 27
2.6.3 Pless生成器 28
2.6.4钟控序列生成器 28
习题 30
第3章 分组密码体制 32
3.1分组密码概述 32
3.1.1代换 33
3.1.2扩散和混淆 34
3.1.3 Feistel密码结构 35
3.2数据加密标准 38
3.2.1 DES描述 38
3.2.2二重DES 43
3.2.3两个密钥的三重DES 44
3.2.4 3个密钥的三重DES 44
3.3差分密码分析与线性密码分析 45
3.3.1差分密码分析 45
3.3.2线性密码分析 46
3.4分组密码的运行模式 47
3.4.1电码本模式 47
3.4.2密码分组链接模式 48
3.4.3密码反馈模式 49
3.4.4输出反馈模式 51
3.5 IDEA 52
3.5.1设计原理 52
3.5.2加密过程 54
3.6 AES算法——Rijndael 58
3.6.1 Rijndael的数学基础和设计思想 58
3.6.2算法说明 61
3.7中国商用密码算法SM4 69
3.8祖冲之密码 73
3.8.1算法中的符号及含义 73
3.8.2祖冲之密码的算法结构 74
3.8.3祖冲之密码的运行 79
3.8.4基于祖冲之密码的机密性算法128-EEA3 79
习题 81
第4章 公钥密码 83
4.1密码学中一些常用的数学知识 83
4.1.1群、环、域 83
4.1.2素数和互素数 85
4.1.3模运算 86
4.1.4模指数运算 88
4.1.5费尔马定理、欧拉定理、卡米歇尔定理 89
4.1.6素性检验 92
4.1.7欧几里得算法 95
4.1.8中国剩余定理 98
4.1.9离散对数 101
4.1.10平方剩余 102
4.1.11循环群 105
4.1.12循环群的选取 106
4.1.13双线性映射 107
4.1.14计算复杂性 108
4.2公钥密码体制的基本概念 109
4.2.1公钥密码体制的原理 110
4.2.2公钥密码算法应满足的要求 111
4.2.3对公钥密码体制的攻击 112
4.3 RSA算法 113
4.3.1算法描述 113
4.3.2 RSA算法中的计算问题 115
4.3.3一种改进的RSA实现方法 116
4.3.4 RSA的安全性 116
4.3.5对RSA的攻击 118
4.4背包密码体制 119
4.5 Rabin密码体制 121
4.6 NTRU公钥密码系统 123
4.7椭圆曲线密码体制 124
4.7.1椭圆曲线 124
4.7.2有限域上的椭圆曲线 125
4.7.3椭圆曲线上的点数 127
4.7.4明文消息到椭圆曲线上的嵌入 127
4.7.5椭圆曲线上的密码 128
4.8 SM2椭圆曲线公钥密码加密算法 130
习题 133
第5章 密钥分配与密钥管理 135
5.1单钥加密体制的密钥分配 135
5.1.1密钥分配的基本方法 135
5.1.2一个实例 135
5.1.3密钥的分层控制 137
5.1.4会话密钥的有效期 137
5.1.5无中心的密钥控制 137
5.1.6密钥的控制使用 138
5.2公钥加密体制的密钥管理 139
5.2.1公钥的分配 139
5.2.2用公钥加密分配单钥密码体制的密钥 141
5.2.3 Diffie-Hellman密钥交换 143
5.3随机数的产生 144
5.3.1随机数的使用 144
5.3.2随机数源 145
5.3.3伪随机数产生器 145
5.3.4基于密码算法的随机数产生器 147
5.3.5随机比特产生器 149
5.4秘密分割 150
5.4.1秘密分割门限方案 150
5.4.2 Shamir门限方案 151
5.4.3基于中国剩余定理的门限方案 152
习题 154
第6章 消息认证和哈希函数 156
6.1消息认证码 156
6.1.1消息认证码的定义及使用方式 156
6.1.2产生MAC的函数应满足的要求 157
6.1.3数据认证算法 158
6.1.4基于祖冲之密码的完整性算法128-EIA3 159
6.2哈希函数 161
6.2.1哈希函数的定义及使用方式 161
6.2.2哈希函数应满足的条件 162
6.2.3生日攻击 164
6.2.4迭代型哈希函数的一般结构 165
6.3 MD5哈希算法 166
6.3.1算法描述 166
6.3.2 MD5的压缩函数 169
6.3.3 MD5的安全性 170
6.4安全哈希算法 171
6.4.1算法描述 171
6.4.2 SHA的压缩函数 172
6.4.3 SHA与MD5的比较 174
6.4.4对SHA的攻击现状 174
6.5 HMAC 175
6.5.1 HMAC的设计目标 175
6.5.2算法描述 175
6.5.3 HMAC的安全性 177
6.6 SM3哈希算法 178
6.6.1 SM3哈希算法的描述 178
6.6.2 SM3哈希算法的安全性 179
习题 181
第7章 数字签名和认证协议 182
7.1数字签名的基本概念 182
7.1.1数字签名应满足的要求 182
7.1.2数字签名的产生方式 183
7.1.3数字签名的执行方式 184
7.2数字签名标准 186
7.2.1 DSS的基本方式 186
7.2.2数字签名算法DSA 187
7.3其他签名方案 188
7.3.1基于离散对数问题的数字签名体制 188
7.3.2基于大数分解问题的数字签名体制 192
7.3.3基于身份的数字签名体制 193
7.4 SM2椭圆曲线公钥密码签名算法 194
7.5认证协议 196
7.5.1相互认证 196
7.5.2单向认证 200
习题 201
第8章 密码协议 202
8.1一些基本协议 202
8.1.1智力扑克 202
8.1.2掷硬币协议 203
8.1.3数字承诺协议 204
8.1.4不经意传输协议 205
8.2零知识证明 208
8.2.1交互式证明系统 208
8.2.2交互式证明系统的定义 209
8.2.3交互式证明系统的零知识性 209
8.2.4非交互式证明系统 212
8.2.5适应性安全的非交互式零知识证明 213
8.2.6零知识证明协议的组合 213
8.2.7图的三色问题的零知识证明 214
8.2.8知识证明 215
8.2.9简化的Fiat-Shamir身份识别方案 218
8.2.10 Fiat-Shamir身份识别方案 219
8.3安全多方计算协议 220
8.3.1安全多方计算问题 220
8.3.2半诚实敌手模型 221
8.3.3恶意敌手模型 225
习题 228
第9章 可证明安全 229
9.1语义安全的公钥密码体制的定义 229
9.1.1选择明文攻击下的不可区分性 229
9.1.2公钥加密方案在选择密文攻击下的不可区分性 233
9.1.3公钥加密方案在适应性选择密文攻击下的不可区分性 235
9.1.4归约 236
9.2语义安全的RSA加密方案 237
9.2.1 RSA问题和RSA假设 237
9.2.2选择明文安全的RSA加密 238
9.2.3选择密文安全的RSA加密 240
9.3 Paillier公钥密码系统 243
9.3.1合数幂剩余类的判定 243
9.3.2合数幂剩余类的计算 244
9.3.3基于合数幂剩余类问题的概率加密方案 246
9.3.4基于合数幂剩余类问题的单向陷门置换 247
9.3.5 Paillier密码系统的性质 248
9.4 Cramer-Shoup密码系统 249
9.4.1 Cramer-Shoup密码系统的基本机制 249
9.4.2 Cramer-Shoup密码系统的安全性证明 250
9.5 RSA-FDH签名方案 252
9.5.1 RSA签名方案 252
9.5.2 RSA-FDH签名方案的描述 253
9.5.3 RSA-FDH签名方案的改进 255
9.6 BLS短签名方案 257
9.6.1 BLS短签名方案所基于的安全性假设 257
9.6.2 BLS短签名方案描述 257
9.6.3 BLS短签名方案的改进一 259
9.6.4 BLS短签名方案的改进二 259
9.7基于身份的密码体制 260
9.7.1基于身份的密码体制定义和安全模型 260
9.7.2随机谕言机模型下的基于身份的密码体制 263
9.8分叉引理 273
习题 275
第10章 网络加密与认证 277
10.1网络通信加密 277
10.1.1开放系统互连和TCP/IP分层模型 277
10.1.2网络加密方式 278
10.2 Kerberos认证系统 281
10.2.1 Kerberos V4 281
10.2.2 Kerberos区域与多区域的K erberos 284
10.3 X.509认证业务 285
10.3.1证书 285
10.3.2认证过程 288
10.4 PGP 289
10.4.1运行方式 289
10.4.2密钥和密钥环 293
10.4.3公钥管理 298
习题 301
参考文献 302