第一部分 预备知识 3
第1章 数字签名的背景和定义 3
1.1 数字签名方案简介 3
1.2 计算安全 6
1.2.1 计算安全中的称谓 6
1.2.2 记法 8
1.3 签名方案的定义 8
1.4 安全定义的动机 10
1.5 形式化的(正式的)安全定义 12
1.5.1 随机消息攻击下的安全性 12
1.5.2 已知消息攻击下的安全性 14
1.5.3 适应性选择消息攻击下的安全性 15
1.6 安全定义间的关系 17
1.7 从较弱原语达到CMA安全 17
1.7.1 从RMA安全到CMA安全 18
1.7.2 从KMA安全到CMA安全 21
1.8 从不可伪造性到强不可伪造性 25
1.9 扩展消息长度 28
1.10 进一步阅读 29
第2章 密码学困难假设 31
2.1 “通用”密码学假设 31
2.1.1 单向函数和单向置换 32
2.1.2 陷门置换 35
2.1.3 无爪(陷门)置换 37
2.2 特定的假设 39
2.2.1 大数分解的困难性 39
2.2.2 RSA假设 45
2.2.3 离散对数假设 47
2.3 Hash函数 48
2.3.1 定义 49
2.3.2 Merkle-Damg?rd变换 49
2.3.3 构造抗碰撞的Hash函数 51
2.3.4 构造通用单向Hash函数 53
2.4 Hash函数在签名方案中的应用 55
2.4.1 增加消息长度 55
2.4.2 减小公钥的长度 58
2.5 进一步阅读 60
第二部分 不需要随机预言模型的数字签名方案第3章 基于通用假设的构造方法 63
3.1 Lamport一次签名方案 64
3.2 从一次签名方案构造签名方案 68
3.2.1 “链式(Chain-Based)”签名 68
3.2.2 “树式(Tree-Based)”签名 71
3.2.3 一种无状态签名的解决方案 75
3.3 从单向函数构造签名 76
3.3.1 将组成部分集成到一起 76
3.3.2 对构造方法的思考 77
3.4 进一步阅读 77
第4章 基于(强)RSA假设的签名方案 79
4.1 简介 79
4.1.1 技术准备 79
4.1.2 本章纲要 81
4.2 基于RSA假设的方案 82
4.2.1 Dwork-Naor方案 83
4.2.2 Cramer-Damg?rd方案 88
4.2.3 Hohenberger-Waters方案 96
4.3 基于强RSA假设的方案 99
4.3.1 强RSA假设 99
4.3.2 已知消息攻击下的安全性 100
4.3.3 Cramer-Shoup方案 103
4.3.4 Fischlin方案 104
4.3.5 Gennaro-Halevi-Rabin方案 107
4.4 进一步阅读 109
第5章 基于双线性映射构造的方案 110
5.1 简介 110
5.1.1 技术准备 110
5.1.2 本章纲要 111
5.2 Boneh-Boyen方案 111
5.3 Waters方案 116
5.4 进一步阅读 120
第三部分 基于随机预言模型的数字签名方案第6章 随机预言模型 123
6.1 基于随机预言模型的安全证明 124
6.2 随机预言机方法是合理的? 126
6.3 实践中的随机预言机模型 128
6.4 进一步阅读 129
第7章 全域Hash(及其相关)签名 130
7.1 全域Hash(FDH)签名方案 130
7.2 FDH的改进的安全规约 133
7.3 概率FDH 135
7.4 具有紧规约的更简单的变种 137
7.5 进一步阅读 138
第8章 基于身份识别的签名方案 140
8.1 身份识别方案 140
8.2 从身份识别方案到签名方案 144
8.2.1 Fiat-Shamir变换 144
8.2.2 两种有用的标准 149
8.2.3 无需随机预言模型的一次签名方案 154
8.3 一些安全的身份识别方案 156
8.3.1 Fiat-Shamir方案 156
8.3.2 Guillou-Quisquater方案 160
8.3.3 Micali/Ong-Schnorr方案 162
8.3.4 Schnorr方案 165
8.4 进一步阅读 166
参考文献 168