第1章 密码学概述 1
1.1 密码学的基本概念 1
1.2 密码体制 3
1.3 密码分析 4
1.3.1 攻击密码系统的方法 5
1.3.2 破译密码的类型 6
1.4 密码体制的安全性 8
习题 9
第2章 经典密码学 10
2.1 替换密码体制 11
2.1.1 单表替换密码 11
2.1.2 多表替换密码 16
2.2 置换密码体制 20
2.3 经典密码体制的分析 21
2.3.1 统计特性 21
2.3.2 单表密码体制的统计分析 23
2.3.3 多表密码体制的统计分析 25
习题 30
第3章 密码学的信息论基础 33
3.1 概率论基础 33
3.2 完全保密性 34
3.3 信息的度量信息熵 37
3.3.1 信息论的相关概念 37
3.3.2 信息的度量 38
3.4 熵的基本性质 41
3.5 伪密钥与唯一解距离 44
3.6 乘积密码体制 47
习题 49
第4章 序列密码 50
4.1 序列密码的基本概念 50
4.2 密钥流与密钥生成器 51
4.3 线性反馈移位寄存器序列 53
4.4 线性移位寄存器的一元多项式表示 55
4.5 随机性概念与m序列的伪随机性 59
习题 61
第5章 分组密码 62
5.1 分组密码的基本概念 62
5.2 数据加密标准DES 63
5.2.1 DES加密算法概述 63
5.2.2 DES加密过程描述 64
5.2.3 DES解密过程 69
5.2.4 DES子密钥生成 70
5.2.5 DES的安全性 71
5.2.6 三重DES 73
5.3 高级加密标准AES 73
5.3.1 AES的加密变换 74
5.3.2 AES的解密变换 79
5.3.3 AES密钥编排 81
5.4 国际数据加密算法IDEA 82
5.4.1 IDEA算法描述 82
5.4.2 IDEA算法的解密 84
5.4.3 IDEA密钥生成 85
5.5 SMs4密码算法 85
5.5.1 算法描述 86
5.5.2 密钥扩展 88
5.6 分组密码的工作模式 89
5.6.1 电子密码本模式ECB 89
5.6.2 密码分组链接模式CBC 90
5.6.3 密码反馈模式CFB 91
5.6.4 输出反馈模式FB 92
5.6.5 记数模式CTR 93
5.7 分组密码分析技术 94
5.7.1 代换一置换网络 95
5.7.2 线性密码分析 97
5.7.3 差分密码分析 107
习题 115
第6章 Hash函数 117
6.1 HasH函数的性质 117
6.1.1 Hash函数的性质 117
6.1.2 生日攻击 118
6.1.3 迭代Hash函数的结构 120
6.2 Hash函数实例 121
6.2.1 MD5散列函数 121
6.2.2 安全Hash算法 127
6.3 Hash函数的应用举例 131
习题 131
第7章 消息认证码 133
7.1 消息认证码的构造 133
7.1.1 基于分组密码的MAC 133
7.1.2 基于带密钥的Hash函数的MAC 135
7.2 MAC函数的安全性 136
7.3 消息认证码的应用 138
习题 138
第8章 公钥密码 139
8.1 公钥密码的基本概念 139
8.1.1 公钥密码体制的原理 140
8.1.2 公钥密码算法应满足的要求 142
8.1.3 对公钥密码的攻击 142
8.2 RSA密码体制 143
8.2.1 加密算法描述 143
8.2.2 RSA算法中的计算问题 145
8.2.3 对RSA的攻击 147
8.2.4 RSA-OAEP加密标准 150
8.3 ElGamal密码体制 152
8.3.1 ElGamal算法 152
8.3.2 ElGamal公钥密码体制的安全性 153
8.4 椭圆曲线密码体制 154
8.4.1 Diffie-Hellman公钥系统 154
8.4.2 Menezes-Vanstone公钥密码体制 155
8.4.3 椭圆曲线密码体制的优点 156
8.5 基于身份的加密体制 157
8.5.1 基于身份的密码学概述 157
8.5.2 基于身份的加密方案的定义 161
8.5.3 BF-IBE方案 161
习题 162
第9章 数字签名 164
9.1 数字签名的基本概念 164
9.2 RSA签名 165
9.2.1 利用RSA密码实现数字签名 165
9.2.2 对RSA数字签名的攻击 165
9.2.3 RSA签名标准PSS 167
9.3 数字签名标准DSS 169
9.3.1 DSS的基本方式 169
9.3.2 数字签名算法ISA 170
9.4 其他数字签名方案 171
9.4.1 离散对数签名体制 171
9.4.2 利用椭圆曲线密码实现数字签名 175
9.5 基于身份的签名方案 177
9.5.1 Shamir的基于身份的数字签名方案 177
9.5.2 Cha-CIleon的基于身份的数字签名方案 177
习题 178
第10章 密码学侧信道攻击 179
10.1 基本概念 179
10.2 入侵型攻击 180
10.2.1 一般的篡改方法 180
10.2.2 保护措施 181
10.3 错误攻击 181
10.3.1 简单错误分析攻击 181
10.3.2 差分错误分析DFA攻击 182
10.3.3 错误引入 183
10.3.4 错误攻击的对策 184
10.4 时间攻击 184
10.4.1 对平方一乘算法的时间攻击 185
10.4.2 对多位窗口平方一乘算法的时间攻击 186
10.4.3 时间攻击的对策 188
10.5 能量攻击 189
10.5.1 简单能量分析(SPA)攻击 189
10.5.2 差分能量分析(DPA)攻击 191
10.5.3 能量攻击的对策 192
10.6 电磁攻击 193
习题 193
第11章 密码协议 194
11.1 什么是密码协议 194
11.2 密码协议的安全性 195
11.3 身份认证协议 196
11.3.1 身份认证概述 197
11.3.2 基于口令的认证 198
11.3.3 基于对称密码的认证 203
11.4 秘密共享 203
11.4.1 秘密共享的思想 204
11.4.2 Shamir门限秘密共享方案 204
11.5 阈下信道 205
11.5.1 阈下信道的基本原理 205
11.5.2 ElGamal签名的阈下信道 206
11.6 比特承诺 207
11.6.1 什么是比特承诺 207
11.6.2 使用对称密码算法的比特承诺 208
11.6.3 使用单向函数的比特承诺 209
11.7 零知识证明 209
11.7.1 基本构建 210
11.7.2 交互零知识证明和非交互零知识证明 211
11.7.3 身份的零知识证明 213
习题 214
主要参考文献 216