随着量子计算理论与技术的快速发展,向抗量子攻击密码算法迁移的紧迫性日益凸显。由于其可靠的安全性,较好的签名与验签性能,基于杂凑函数的数字签名是最先成为国际标准的一类抗量子攻击密码算法,它非常适合在软件、固件更新、操作系统安全启动、根CA及运营CA数字证书签名等场景中进行应用。本书系统地介绍了基于杂凑函数的有状态及无状态数字签名的基本原理、安全强度评估方法及主要国际标准。同时,为了便于初学者阅读,本书为相关内容匹配了大量图示并对典型杂凑函数及其通用攻击进行了详细的描述。
更多科学出版社服务,请扫码获取。
2004年9月 ~ 2008年7月 北京工业大学 数学 理学学士
2008年9月 ~ 2013年7月 中国科学院大学 信息安全 工学博士
2013年07月 ~ 2015年10月 中科院信工所 助理研究员
2015年10月 ~ 2021年07月 中科院信工所 副研究员
2021年07月 中国科学院大学 长聘教授
密码学
目录
第1章 引言 1
1.1 基于杂凑函数的数字签名 2
1.2 基于杂凑函数的数字签名的标准化现状 3
1.3章节安排和阅读建议 4
第2章 杂凑函数 6
2.1 杂凑函数的定义及其安全性质 6
2.2 Merkle-Damgard结构 7
2.2.1 针对MD结构的长消息第二原像攻击 10
2.2.2 针对MD结构的选择目标强制前缀第二原像攻击 12
2.2.3 针对MD结构的多碰撞攻击 15
2.2.4 消息认证码与MD结构的杂凑函数 16
2.3 海绵结构 16
2.4 杂凑函数SHA-1 22
2.5 杂凑函数SHA-2 24
2.5.1 SHA-224 24
2.5.2 SHA-256 27
2.5.3 SHA-384 28
2.5.4 SHA-512 30
2.5.5 SHA-512/224 32
2.5.6 SHA-512/256 33
2.6 杂凑函数SM3 35
2.7 杂凑函数SHA-3 37
2.7.1 Keccak-p[b,nr]置换的状态数组 37
2.7.2 Keccak-p置换的轮函数 40
2.7.3 SHA-3杂凑函数和可扩展输出函数 47
2.8 基于杂凑函数构造的伪随机函数 49
2.8.1 消息认证码HMAC 49
2.8.2 MGF1掩码生成函数 49
第3章 数字签名 51
3.1 数字签名的定义及安全性质 51
3.2 Hash-and-Sign范式 53
3.3 不依赖杂凑函数抗碰撞性的Hash-and-Sign范式 54
第4章 基于杂凑函数的一次性数字签名 57
4.1 Lamport-Diffie一次性数字签名 57
4.2 Winternitz一次性数字签名 58
4.3 WOTS+一次性数字签名 62
4.3.1 WOTS+公私钥对生成方法 62
4.3.2 WOTS+签名生成过程 63
4.4 降低WOTS型数字签名私钥和公钥尺寸 64
4.4.1 降低私钥尺寸 65
4.4.2 降低公钥尺寸 65
第5章 抗伪造攻击编码方案 68
5.1 Winternitz编码方案 69
5.2 常数和编码 70
5.3 Winternitz编码与常数和编码的关系 82
5.4 编码方案对WOTS型签名尺寸的影响 83
第6章 基于杂凑函数的FTS签名方案 85
6.1 HORS签名方案及其相关改进版本 86
6.2 FORS签名方案 88
6.3 FORC签名方案 92
第7章 基于杂凑函数的带状态数字签名 96
7.1 带状态的数字签名算法 LMS 97
7.1.1 LMS公私钥对的生成 97
7.1.2 LMS的签名算法 101
7.1.3 LMS的签名验证算法 103
7.2 HSS数字签名算法 104
7.2.1 HSS公私钥对生成方法 106
7.2.2 HSS签名生成与验证 107
7.3 带状态的数字签名算法XMSS 108
7.3.1 XMSS及XMSS-MT中使用的函数 109
7.3.2 ADRS数据结构 111
7.3.3 WOTS+一次性签名.114
7.3.4 XMSS公私钥对生成方法 117
7.3.5 XMSS数字签名生成方法 120
7.3.6 XMSS签名验证过程 121
7.4 带状态的数字签名算法XMSS-MT 123
7.4.1 XMSS-MT公私钥对生成方法 124
7.4.2 XMSS-MT签名生成方法 127
7.4.3 XMSS-MT签名验证过程 129
7.5 状态管理 130
第8章 树遍历算法.132
8.1 TreeHash算法 133
8.2 经典 Merkle树遍历算法 141
8.2.1 算法描述 151
8.2.2 算法复杂度分析 162
8.3 对数Merkle树遍历算法 163
8.3.1 经典树遍历算法和对数树遍历算法的比较 163
8.3.2 对数树遍历算法中栈更新的优先级 165
8.3.3 对数树遍历算法复杂度分析 181
8.4 分形 Merkle树遍历算法 182
8.4.1 算法描述 184
8.4.2 算法复杂度分析 194
第9章 无状态数字签名算法 SPHINCS+ 196
9.1 SPHINCS+中杂凑函数的使用 198
9.2 SPHINCS+的超树结构 200
9.3 ADRS数据结构 203
9.4 一次性签名算法WOTS+ 206
9.5 无状态多次签名算法 FORS 209
9.5.1 FORS的私钥和公钥 209
9.5.2 FORS的签名与验签 210
9.6 XMSS树的构造及XMSS签名的生成 213
9.7 超树签名的生成 214
9.8 SPHINCS+签名算法 216
9.9 预哈希及SLH-DSA签名生成 217
9.10 SPHINCS+组件参数与安全强度的关系 218
9.11 SPHINCS+的优化.220
9.11.1 SPHINCS-α 221
9.11.2 SPHINCS+C 221
参考文献 223
“密码理论与技术丛书”已出版书目 229