图书简介:
第1章 概论 1
1.1 密码学的发展历史 1
1.2 密码学的基本概念 4
1.3 密码学的基本属性 6
1.4 密码体制分类 7
1.4.1 对称密码体制 7
1.4.2 非对称密码体制 8
1.5 密码分析 8
1.5.1 密码分析的分类 9
1.5.2 穷密钥搜索 10
1.6 密码的未来 10
1.7 本章小结 11
1.8 本章习题 12
第2章 古典密码 13
2.1 置换密码 13
2.1.1 列置换密码 14
2.1.2 周期置换密码 15
2.1.3 常用置换密码 15
2.2 代换密码 16
2.2.1 单表代换密码 16
2.2.2 多表代换密码 18
2.3 转轮密码 20
2.3.1 Enigma的构造 21
2.3.2 Enigma的加密 21
2.3.3 Enigma的解密 23
2.4 古典密码的分类 23
2.5 古典密码的统计分析 24
2.5.1 单表古典密码的统计分析 24
2.5.2 多表古典密码的统计分析 28
2.6 本章小结 33
2.7 本章习题 33
第3章 分组密码 34
3.1 分组密码概述 34
3.1.1 分组密码简介 34
3.1.2 分组密码的基本原理 35
3.1.3 分组密码的结构 36
3.1.4 分组密码的设计 38
3.2 DES 39
3.2.1 DES的产生 39
3.2.2 DES算法描述 39
3.3 AES 46
3.3.1 AES的产生 47
3.3.2 AES的数学基础 47
3.3.3 AES算法描述 50
3.4 分组密码的工作模式 57
3.4.1 ECB模式 57
3.4.2 CBC模式 58
3.4.3 CFB模式 58
3.4.4 OFB模式 59
3.4.5 CTR模式 60
3.5 分组密码分析 60
3.5.1 差分分析 61
3.5.2 线性分析 62
3.6 本章小结 63
3.7 本章习题 63
第4章 SM4分组密码 66
4.1 SM4分组密码算法 66
4.1.1 术语说明 66
4.1.2 加密算法 67
4.1.3 密钥扩展算法 67
4.1.4 轮函数F 68
4.2 SM4分组密码算法设计原理 71
4.2.1 非平衡Feistel网络 71
4.2.2 T变换 72
4.2.3 基础置换 72
4.2.4 非线性变换 73
4.2.5 线性变换 74
4.2.6 密钥扩展算法的设计 75
4.2.7 加密解密正确性 75
4.3 SM4分组密码算法安全性分析 76
4.4 本章小结 77
4.5 本章习题 77
第5章 序列密码 79
5.1 序列密码的概述 79
5.1.1 序列密码的定义 79
5.1.2 序列密码的分类 80
5.2 序列密码的组成 83
5.2.1 密钥序列生成器 83
5.2.2 有限状态自动机 84
5.3 LFSR 84
5.3.1 LFSR的简介 84
5.3.2 伪随机序列 87
5.3.3 线性反馈移位寄存器LFSR序列 88
5.3.4 非线性序列 95
5.4 欧洲eSTREAM序列密码 96
5.5 序列密码的安全性及分析技术 98
5.6 序列密码算法的未来发展趋势 101
5.7 本章小结 102
5.8 本章习题 102
第6章 祖冲之序列密码 104
6.1 祖冲之序列密码算法 104
6.1.1 算法结构 104
6.1.2 算法原理 105
6.1.3 算法参数 105
6.1.4 算法描述 108
6.2 基于祖冲之算法的机密性和完整性算法 109
6.2.1 机密性算法 110
6.2.2 完整性算法 111
6.3 ZUC算法的安全性分析 113
6.3.1 ZUC算法的安全 113
6.3.2 安全性分析 113
6.4 ZUC算法案例 114
6.5 本章小结 116
6.6 本章习题 116
第7章 公钥密码 117
7.1 公钥密码体制概述 117
7.1.1 公钥密码体制的原理 117
7.1.2 公钥密码算法的设计要求 118
7.1.3 公钥密码体制的安全性分析 119
7.2 RSA公钥密码体制 123
7.2.1 RSA加密和解密算法 123
7.2.2 RSA的安全性分析 124
7.3 ElGamal公钥密码体制 128
7.3.1 ElGamal加密和解密算法 129
7.3.2 ElGamal安全性分析 129
7.4 本章小结 132
7.5 本章习题 132
第8章 SM2公钥密码 134
8.1 椭圆曲线 134
8.1.1 有限域上的椭圆曲线 134
8.1.2 椭圆曲线上的运算 136
8.1.3 椭圆曲线上的离散对数问题 138
8.1.4 ECC 138
8.2 SM2公钥密码体制 139
8.2.1 算法描述 139
8.2.2 密钥派生函数 140
8.2.3 SM2算法加密和解密过程 140
8.2.4 安全性分析 142
8.3 本章小结 142
8.4 本章习题 142
第9章 SM9标识密码 144
9.1 标识密码算法概述 144
9.1.1 基本概念 144
9.1.2 困难问题 147
9.2 SM9标识密码算法 147
9.2.1 参数选取 148
9.2.2 系统初始化 148
9.2.3 加密和解密过程 148
9.2.4 安全性分析 149
9.2.5 正确性证明 150
9.3 本章小结 150
9.4 本章习题 150
第10章 格理论密码 151
10.1 格理论的基本概念 151
10.2 格上的计算困难问题 153
10.3 NTRU密码体制 155
10.3.1 NTRU加密算法 155
10.3.2 NTRU算法分析 157
10.4 Kyber公钥密码算法 160
10.5 Dilithium数字签名算法 162
10.5.1 数字签名算法 163
10.5.2 安全性分析 164
10.6 本章小结 165
10.7 本章习题 165
第11章 密码杂凑函数 166
11.1 密码杂凑函数概述 166
11.1.1 杂凑函数的性质 166
11.1.2 迭代型杂凑函数的结构 167
11.2 MD5杂凑算法 167
11.2.1 算法描述 167
11.2.2 MD5杂凑算法的压缩函数 170
11.2.3 MD5杂凑算法的安全性 172
11.3 SHA-3杂凑算法 172
11.3.1 算法描述 173
11.3.2 Keccak-f置换 173
11.3.3 Keccak算法的性能分析 176
11.4 消息认证码与HMAC算法 176
11.4.1 消息认证码 177
11.4.2 HMAC算法 178
11.5 杂凑函数安全性分析 180
11.5.1 生日攻击 180
11.5.2 Keccak算法的安全性分析现状 181
11.5.3 SM3的安全性分析现状 182
11.6 本章小结 182
11.7 本章习题 182
第12章 SM3密码杂凑 184
12.1 算法基础 184
12.2 算法描述 185
12.2.1 消息填充与扩展 185
12.2.2 压缩函数 186
12.2.3 迭代过程 187
12.3 设计原理 187
12.3.1 压缩函数的设计 187
12.3.2 消息扩展算法的设计 188
12.4 算法特点 189
12.5 安全性分析 189
12.6 本章小结 190
12.7 本章习题 190
第13章 数字签名 191
13.1 数字签名方案的基本概念 191
13.1.1 数字签名方案的形式化定义及特点 191
13.1.2 数字签名方案的分类 192
13.2 DSS 194
13.3 SM2数字签名方案 196
13.4 SM9数字签名方案 198
13.4.1 算法初始化与相关函数 198
13.4.2 系统签名主密钥和用户签名密钥的产生 198
13.4.3 签名过程与签名验证过程 198
13.4.4 正确性及安全性分析 199
13.5 数字签密 200
13.6 本章小结 200
13.7 本章习题 201
第14章 身份认证 202
14.1 身份认证概述 202
14.2 基于口令的身份认证 203
14.3 基于对称密码的身份认证 204
14.3.1 基于对称密码的单向认证 204
14.3.2 基于对称密码的双向认证 205
14.4 基于公钥密码的身份认证 206
14.4.1 基于公钥密码的单向认证 206
14.4.2 基于公钥密码的双向认证 207
14.5 零知识证明 208
14.5.1 零知识证明原理 208
14.5.2 Feige-Fiat-Shamir零知识身份认证协议 209
14.6 认证协议 210
14.6.1 Kerberos认证协议 210
14.6.2 X.509认证协议 212
14.7 本章小结 215
14.8 本章习题 215
第15章 密钥管理 216
15.1 密钥管理概述 216
15.1.1 密钥管理的层次结构 217
15.1.2 密钥管理的原则 219
15.1.3 密钥管理全过程 220
15.2 密钥分配技术 222
15.2.1 对称密码体制的密钥分配 222
15.2.2 公钥密码体制的密钥分配 226
15.3 密钥协商 230
15.3.1 Diffie-Hellman密钥交换协议 230
15.3.2 量子密钥协议 233
15.4 SM2密钥交换协议 234
15.5 SM9密钥交换协议 236
15.6 秘密共享技术 237
15.6.1 Shamir门限方案 237
15.6.2 Asmuth-Bloom门限方案 239
15.7 本章小结 240
15.8 本章习题 240
参考文献 242
展开
前言
密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。其中,加密保护是指使用特定变换,将原来可读的信息变成不能识别的符号序列;安全认证是指使用特定变换,确认信息是否被篡改、是否来自可靠信息源及确认行为是否真实等。密码的加密保护功能用于保证信息的机密性,密码的安全认证功能用于实现信息的真实性、数据的完整性和行为的不可否认性。
国家密码管理局高度重视密码算法管理工作,近年来,发布了祖冲之(ZUC)序列密码算法、SM2公钥密码算法、SM3密码杂凑算法、SM4分组密码算法、SM9标识密码算法等商用密码算法,构成了包括对称、非对称、杂凑、标识和序列密码算法等,形成了完整、自主的国产商用密码算法体系,为促进密码发展、保障我国网络空间安全发挥了巨大作用。
密码学是一门研究密码与密码活动本质和规律,以及指导密码实践的科学,主要探索密码编码(Cryptology)和密码分析(Cryptanalysis)的一般规律。密码学课程是密码科学与技术、网络空间安全、信息安全等专业本科生的必修课程,也是密码专业、网络空间安全专业、计算机科学与技术专业或其他相关专业研究生的必修课程。
本书系统介绍了密码学的基本概念、基本理论和国内外主要的密码算法。
全书共15章:第1章概论,第2章古典密码,第3章分组密码,第4章SM4分组密码,第5章序列密码,第6章祖冲之序列密码,第7章公钥密码,第8章SM2公钥密码,第9章SM9标识密码,第10章格理论密码,第11章密码杂凑函数,第12章SM3密码杂凑,第13章数字签名,第14章身份认证,第15章密钥管理。
本书包含丰富的教学资源,读者可登录华信教育资源网免费获取。
本书是在作者多年来一直从事本科和研究生密码学的教学工作、结合多年密码学科研实践和总结国内外密码学相关教材及文献的基础上编写而成的。本书得到国家自然科学基金(62472040)资助。在本书的编写过程中,也得到国家密码管理局、中国密码学会领导的关心和支持,在此一并致以最诚挚的谢意。电子工业出版社在本书的出版过程中给予了极大的帮助和支持,也表示衷心的感谢。
由于作者知识水平有限,教材中难免有不足和疏漏之处,敬请广大读者批评指正。
作 者
展开