第1章 密码学引论 1
1.1 密码学在信息安全中的作用 2
1.1.1 信息安全面临的威胁 2
1.1.2 信息安全需要的基本安全服务 3
1.2 密码学导引 3
1.2.1 密码学历史 3
1.2.2 密码学基本概念 4
1.2.3 密码体制的分类 4
1.3 信息论基本概念 5
1.4 计算复杂性 8
本章小结 9
参考文献 9
问题讨论 9
第2章 序列密码 11
2.1 概述 12
2.2 流密码的结构 13
2.2.1 同步流密码 13
2.2.2 自同步流密码 14
2.3 反馈移位寄存器与线性反馈移位寄存器 14
2.3.1 反馈移位寄存器 15
2.3.2 线性反馈移位寄存器 15
2.3.3 LFSR示例 16
2.3.4 m序列与最长移位寄存器 18
2.3.5 m序列的破译 19
2.3.6 最新研究方向 20
2.4 伪随机序列的性质 21
2.4.1 随机序列 21
2.4.2 Golomb随机性公设 23
2.4.3 m序列的伪随机性 23
2.4.4 线性复杂度 24
2.5 基于LFSR的伪随机序列生成器 24
2.5.1 滤波生成器 25
2.5.2 组合生成器 25
2.5.3 钟控生成器 26
2.6 其他伪随机序列生成器 26
2.6.1 勒让德序列 27
2.6.2 椭圆曲线序列 27
2.7 实用流密码 29
2.7.1 A5算法 29
2.7.2 RC4算法 31
27.3 中国流密码 33
2.7.4 欧洲eStream计划 35
本章小结 37
参考文献 37
问题讨论 38
第3章 分组密码 39
3.1 分组密码概述 40
3.2 分组密码的研究现状 40
3.3 分组密码的设计原理 41
3.3.1 乘积组合 41
3.3.2 扩散 41
3.3.3 混淆 41
3.4 数据加密标准DES 42
3.4.1 DES简介 42
3.4.2 DES加密算法 42
3.4.3 初始置换IP和逆序置换 44
3.4.4 轮函数 45
3.4.5 扩展E变换 45
3.4.6 S盒 46
3.4.7 P盒 47
3.4.8 子密钥的产生 48
3.4.9 DES解密算法 49
3.4.1 0 DES的弱密钥 50
3.4.1 1 DES的例子 51
3.4.1 2三重DES的变形 52
3.5 国际数据加密算法 53
3.5.1 IDEA算法的特点 53
3.5.2 基本运算单元 53
3.5.3 IDEA的速度 55
3.5.4 IDEA加密过程 55
3.5.5 IDEA的每一轮迭代 56
3.5.6 输出变换 57
3.5.7 子密钥的生成 58
3.5.8 IDEA解密过程 58
3.6.AES算法Rijindael 59
3.6.1 算法的结构 59
3.6.2 Rijindael加密过程 60
3.6.3 轮函数 61
3.6.4 字节替换 62
3.6.5 行移位 63
3.6.6 列混合 63
3.6.7 轮密钥加 64
3.6.8 子密钥的产生 64
3.6.9 Rijindael解密过程 65
3.6.1 0 AES小结 67
3.7 分组密码工作模式 67
3.7.1 电子密码本模式 67
3.7.2 密文块链接模式 68
3.7.3 密文反馈模式 69
3.7.4 输出反馈模式 70
3.7.5 AES CTR 71
3.8 差分密码分析 71
3.9 线性分析 74
本章小结 79
参考文献 79
问题讨论 80
第4章 公钥密码 81
4.1 公钥密码概念的提出 82
4.1.1 对称密码体制的缺陷 82
4.1.2 公钥密码体制的工作流程 83
4.1.3 Diffie-Hellman密钥交换协议 83
4.2 基于大整数分解问题的公钥密码体制——RSA公钥密码体制 84
4.3 基于二次剩余问题的公钥密码体制 85
4.4 基于离散对数的公钥密码体制 86
4.5 基于解码问题的公钥密码——McEliece公钥密码 87
4.6 基于背包问题的公钥密码体制 88
4.7 椭圆曲线公钥密码体制 89
4.7.1 椭圆曲线相关知识 89
4.7.2 椭圆曲线上的离散对数问题 90
4.7.3 基于椭圆曲线的Diffie-Hellman密钥交换协议 90
4.7.4 基于椭圆曲线的加密体制(ECC) 90
4.8 NTRU公钥密码体制 90
4.9 基于身份的公钥密码体制 92
4.9.1 双线性Diffie-Hellman假设 92
4.9.2 Boneh和Franklin的IDB密码体制 92
4.1 0基于编码的公钥密码体制 93
4.1 1 多变量公钥密码体制 94
4.1 1.1 多变量相关知识 94
4.1 1.2 MQ-问题 95
4.1 1.3 多变量公钥加密方案 95
4.1 2基于格的公钥密码体制 96
4.1 2.1 格相关知识 96
4.1 2.2 格上的困难问题 97
4.1 2.3 基于格的加密体制 97
本章小结 98
参考文献 99
问题讨论 100
第5章 认证和哈希函数 101
5.1 消息认证 102
5.2 消息认证方法 102
5.2.1 消息加密 102
5.2.2 消息认证码 104
5.2.3 哈希函数 104
5.3 MD5哈希算法 106
5.3.1 MD5算法整体描述 106
5.3.2 单个512比特的HMD5处理过程 107
5.4 SHA-1哈希算法 112
5.4.1 SHA-1算法整体描述 112
5.4.2 单个512比特的HSHA处理过程 113
5.5 MD5与SHA-1的比较 115
5.6 对哈希函数攻击的现状 116
5.6.1 直接攻击 116
5.6.2 生日攻击 116
5.6.3 差分攻击 117
5.7 SHA-3(Keccak算法) 120
本章小结 124
参考文献 124
问题讨论 124
第6章 数字签名 125
6.1 数字签名体制 126
6.2 RSA数字签名体制 126
6.3 Rabin签名体制 127
6.4 基于离散对数问题的签名体制 127
6.4.1 EIGamal签名体制 127
6.4.2 Schnorr签名体制 128
6.4.3 数字签名标准 129
6.5 基于解码问题的数字签名 129
6.6 基于椭圆曲线的数字签名体制 130
本章小结 131
参考文献 131
问题讨论 132
第7章 密钥管理 133
7.1 概述 134
7.2 基本概念 134
7.2.1 密钥分类 134
7.2.2 密钥生命周期 135
7.2.3 密钥产生 136
7.2.4 密钥生命期 136
7.2.5 密钥建立 137
7.2.6 密钥的层次结构 137
7.2.7 密钥管理生命周期 138
7.3 密钥建立模型 139
7.3.1 点对点的密钥建立模型 139
7.3.2 在同一信任域中的密钥建立模型 139
7.3.3 在多个信任域中的密钥建立模型 140
7.4 公钥传输机制 142
7.4.1 鉴别树 143
7.4.2 公钥证书 144
7.4.3 基于身份的系统 145
7.5 密钥传输机制 146
7.5.1 使用对称密码技术的密钥传输机制 147
7.5.2 使用对称密码技术和可信第三方的密钥传输机制 148
7.5.3 使用公钥密码技术的点到点的密钥传输机制 149
7.5.4 同时使用公钥密码技术和对称密码技术的密钥传输机制 149
7.6 密钥导出机制 150
7.6.1 基本密钥导出机制 150
7.6.2 密钥计算函数 151
7.6.3 可鉴别的密钥导出机制 151
7.6.4 线性密钥导出机制 152
7.6.5 树状密钥导出机制 152
7.7 密钥协商机制 154
7.7.1 Diffie-Hellman密钥协商机制 154
7.7.2 端到端的协议 155
7.7.3 使用对称密码技术的密钥协商机制 156
7.8 密钥的托管/恢复 157
7.9 现实世界中的密钥管理方案 158
7.1 0硬件辅助的密钥管理 159
本章小结 160
参考文献 160
问题讨论 160
第8章 高级签名 161
8.1 数字签名概述 162
8.2 盲签名 163
8.2.1 盲签名的基本概念 163
8.2.2 盲签名的安全性需求 163
8.2.3 盲签名的基本设计思路 163
8.2.4 基于RSA问题的盲签名 164
8.2.5 基于离散对数的盲签名 165
8.2.6 部分盲签名 166
8.3 群签名 168
8.3.1 群签名的基本概念 168
8.3.2 群签名的安全性需求 169
8.3.3 一个简单的群签名体制 169
8.3.4 另一个简单的群签名体制 170
8.3.5 短的群签名方案 171
8.3.6 成员撤销 173
8.4 环签名 174
8.4.1 环签名的基本概念 174
8.4.2 环签名的安全性需求 175
8.4.3 不具有可链接性的环签名 176
8.4.4 具有可链接性的环签名 177
8.5 基于身份的数字签名 178
8.5.1 基于身份的数字签名体制的定义 178
8.5.2 基于身份的数字签名体制的安全性需求 179
8.5.3 使用双线性对技术的IBS 180
8.5.4 不使用双线性对技术的IBS 181
8.6 民主群签名 182
8.6.1 民主群签名的定义 182
8.6.2 民主群签名的安全性需求 183
8.6.3 Manulis民主群签名 184
8.7 具有门限追踪性的民主群签名 186
8.7.1 群体初始化 187
8.7.2 密钥生成 187
8.7.3 签名生成 187
8.7.4 签名验证 188
8.7.5 签名人追踪 189
8.8 多重签名 189
8.8.1 流氓密钥攻击 190
8.8.2 安全模型 190
8.8.3 多重签名的不可伪造性 191
8.8.4 一种多签名体制 192
8.8.5 具有更紧规约的多重签名体制 194
8.9 数字签密 195
8.9.1 研究现状 195
8.9.2 SC-KEM与SC-tKEM 196
8.9.3 SC-KEM与SC-tKEM的保密性模型 196
8.9.4 新的SC-KEM与SC-tKEM保密性模型 198
8.9.5 SC-KEM与SC-tKEM不可伪造性模型 200
8.9.6 具体方案设计 201
本章小结 203
参考文献 203
问题讨论 206
第9章 抗泄露流密码 207
9.1 概述 208
9.2 抗泄露密码的基本概念、定义与引理 209
9.2.1 最小熵、Metric熵、HILL熵与不可预测熵 209
9.2.2 最小熵的链式规则与密集模型定理 211
9.2.3 随机数提取器、通用哈希函数族、剩余哈希引理 211
9.3 抗泄露流密码算法的设计 212
9.3.1 FOCS 2008/Eurocrypt 2009抗泄露流密码 213
9.3.2 CCS 2010/CHES 2012/CT-RSA 2013抗泄露流密码 216
9.4 抗泄露密码的未来发展趋势 219
本章小结 219
参考文献 220
问题讨论 221
第10章 OpenSSL简介 223
10.1 背景 224
10.1.1 SSL/TLS协议背景 224
10.1.2 OpenSSL开源项目 224
10.2 OpenSSL在Linux平台上的快速安装 225
10.3 密码算法库 226
10.3.1 对称加密算法 226
10.3.2 非对称加密算法 226
10.3.3 摘要算法 227
10.3.4 密钥分发和有关PKI的编码算法 227
10.3.5 其他自定义功能 227
10.4 SSL/TLS协议库 228
10.5 OpenSSL中的应用程序 234
10.5.1 指令 235
10.5.2 基于指令的应用 236
10.5.3 基于函数的应用 237
本章小结 237
参考文献 237
问题讨论 237