第1章 安全协议概述 1
1.1 安全协议的概念 1
1.1.1 协议、算法与安全协议 1
1.1.2 协议运行环境中的角色 2
1.2 常用的安全协议 2
1.3 安全协议的安全性质 3
1.4 对安全协议的攻击 4
1.4.1 窃听 5
1.4.2 篡改 5
1.4.3 重放 6
1.4.4 预重放 6
1.4.5 反射 6
1.4.6 拒绝服务 7
1.4.7 类型攻击 7
1.4.8 密码分析 8
1.4.9 证书操纵 8
1.4.10 协议交互 9
1.5 安全协议的缺陷 9
1.6 安全协议的三大理论分析方法 10
1.6.1 安全多方计算 10
1.6.2 安全协议的形式化分析方法 10
1.6.3 安全协议的可证明安全性理论 11
习题1 12
第2章 安全协议的密码学基础 13
2.1 密码学的基本概念 13
2.2 数论中的一些难题 14
2.3 随机数 15
2.4 分组密码 15
2.5 公开密钥密码 16
2.5.1 公开密钥密码的基本概念 16
2.5.2 RSA体制 17
2.5.3 Rabin体制 17
2.6 散列函数 18
2.7 消息认证 19
2.8 数字签名 20
2.8.1 数字签名的基本概念 20
2.8.2 RSA签名 21
2.8.3 RSA签名标准PSS 22
2.8.4 数字签名标准DSS 24
2.8.5 一般的离散对数签名体制 25
2.8.6 ElGamal数字签名 25
2.8.7 Schnorr签名体制 26
2.8.8 Okamoto签名体制 27
2.8.9 基于椭圆曲线的数字签名算法ECDSA 27
2.9 基于身份的公钥密码学 28
2.9.1 基于身份的密码系统与基于PKI的密码系统的比较 29
2.9.2 基于身份的加密方案 31
2.9.3 基于身份的签名方案 32
习题2 33
第3章 基本的安全协议 34
3.1 秘密分割 34
3.2 秘密共享 35
3.3 阈下信道 36
3.3.1 阈下信道的概念 36
3.3.2 基于ElGamal数字签名的阈下信道方案 37
3.3.3 基于RSA数字签名的阈下信道方案 38
3.4 比特承诺 39
3.4.1 使用对称密码算法的比特承诺 39
3.4.2 使用单向函数的比特承诺 40
3.4.3 使用伪随机序列发生器的比特承诺 40
3.5 公平的硬币抛掷 41
3.5.1 单向函数抛币协议 42
3.5.2 公开密钥密码抛币协议 42
3.6 智力扑克 43
3.6.1 基本的智力扑克游戏 44
3.6.2 三方智力扑克 44
3.7 不经意传输 45
习题3 47
第4章 认证与密钥建立协议 49
4.1 认证与密钥建立简介 49
4.1.1 创建密钥建立协议 49
4.1.2 协议结构 53
4.1.3 协议目标 54
4.1.4 新鲜性 55
4.2 使用共享密钥密码的协议 56
4.2.1 实体认证协议 56
4.2.2 无服务器密钥建立 57
4.2.3 基于服务器的密钥建立 59
4.2.4 使用多服务器的密钥建立 63
4.3 使用公钥密码的认证与密钥传输 64
4.3.1 实体认证协议 65
4.3.2 密钥传输协议 67
4.4 密钥协商协议 73
4.4.1 Diffie-Hellman密钥协商 74
4.4.2 有基本消息格式的基于DH交换的协议 77
4.4.3 增强消息格式的DH交换协议 78
4.5 可证明安全的认证协议 80
4.6 基于口令的协议 81
4.6.1 口令协议概述 81
4.6.2 使用Diffie-Hellman进行加密密钥交换 82
4.6.3 强化的EKE 83
4.7 具有隐私保护的认证密钥交换协议 84
4.7.1 可否认的认证密钥交换协议 84
4.7.2 通信匿名的认证密钥交换协议 85
4.7.3 用户匿名的认证密钥交换协议 85
4.8 会议协议 86
4.9 RFID认证协议 89
4.9.1 RFID系统的基本构成 89
4.9.2 RFID系统的安全需求 91
4.9.3 物理安全机制 92
4.9.4 基于密码技术的安全机制 93
4.10 无线网络认证协议 97
4.10.1 WLAN的网络结构 98
4.10.2 无线局域网的安全威胁 98
4.10.3 IEEE 802.11的认证方式 99
4.10.4 IEEE 802.11加密机制 101
4.10.5 IEEE 802.1x的认证机制 102
4.10.6 IEEE 802.1x协议的特点 105
4.10.7 WAPI协议 107
习题4 109
第5章 零知识证明 111
5.1 零知识证明的概念 111
5.1.1 零知识证明的简单模型 111
5.1.2 交互式零知识证明 113
5.1.3 非交互式零知识证明 113
5.2 零知识证明的例子 114
5.2.1 平方根问题的零知识 114
5.2.2 离散对数问题的零知识证明 114
5.3 知识签名 115
5.4 身份鉴别方案 117
5.4.1 身份的零知识证明 118
5.4.2 简化的Feige-Fiat-Shamir身份鉴别方案 119
5.4.3 Feige-Fiat-Shamir身份鉴别方案 120
5.4.4 Guillo-Quisquater身份鉴别方案 120
5.4.5 Schnorr身份鉴别方案 121
5.5 NP语言的零知识证明 121
5.5.1 NP完全问题 122
5.5.2 NP与零知识证明 122
习题5 123
第6章 选择性泄露协议 124
6.1 选择性泄露的概念 124
6.1.1 单一数字证书内容泄露 125
6.1.2 多个数字证书内容泄露 126
6.2 使用Hash函数的选择性泄露协议 126
6.3 改进的选择性泄露协议 128
6.3.1 Merkle树方案 129
6.3.2 Huffman树方案 130
6.4 数字证书出示中的选择性泄露 132
6.4.1 签名证明 132
6.4.2 选择性泄露签名证明 134
习题6 136
第7章 数字签名变种 137
7.1 不可否认签名 137
7.2 盲签名 140
7.2.1 RSA盲签名方案 140
7.2.2 Schnorr盲签名方案 141
7.3 部分盲签名 141
7.4 公平盲签名 142
7.5 一次性数字签名 143
7.6 群签名 144
7.7 环签名 145
7.8 代理签名 148
7.9 批验证与批签名 149
7.9.1 批验证 149
7.9.2 批签名 150
7.10 认证加密 153
7.11 签密 154
7.12 其他数字签名 155
7.12.1 失败—终止签名 155
7.12.2 指定验证者签名 156
7.12.3 记名签名 156
7.12.4 具有消息恢复功能的数字签名 157
7.12.5 多重签名 158
7.12.6 前向安全签名 159
7.12.7 门限签名 159
7.12.8 基于多个难题的数字签名方案 160
习题7 160
第8章 非否认协议 163
8.1 非否认协议的基本概念 163
8.1.1 非否认服务 163
8.1.2 非否认协议的步骤和性质 164
8.1.3 一个非否认协议的例子 166
8.2 无TTP参与的非否认协议 167
8.2.1 Markowitch和Roggeman协议 167
8.2.2 Mitsianis协议 168
8.3 基于TTP参与的非否认协议 168
8.3.1 TTP的角色 169
8.3.2 Zhou-Gollman协议 169
8.3.3 Online TTP非否认协议——CMP1协议 170
习题8 172
第9章 公平交换协议 173
9.1 公平交换协议的基本概念 173
9.1.1 公平交换协议的定义 173
9.1.2 公平交换协议的基本模型 174
9.1.3 公平交换协议的基本要求 174
9.2 秘密的同时交换 175
9.3 同时签约 176
9.3.1 带有仲裁者的同时签约 176
9.3.2 无仲裁者的同时签约(面对面) 177
9.3.3 无仲裁者的同时签约(非面对面) 177
9.3.4 无仲裁者的同时签约(使用密码技术) 178
9.4 数字证明邮件 180
9.5 NetBill协议 181
习题9 182
第10章 安全电子商务协议 183
10.1 电子选举协议 183
10.1.1 简单投票协议 183
10.1.2 使用盲签名的投票协议 184
10.1.3 带两个中央机构的投票协议 185
10.1.4 FOO协议 186
10.1.5 无须投票中心的投票协议 189
10.2 电子现金协议 191
10.2.1 电子现金的概念 191
10.2.2 电子现金的优缺点 192
10.2.3 电子现金的攻击和安全需求 193
10.2.4 使用秘密分割的电子现金协议 196
10.2.5 基于RSA的电子现金协议 197
10.2.6 Brands电子现金协议 198
10.3 电子拍卖协议 199
10.3.1 电子拍卖系统的模型和分类 199
10.3.2 电子拍卖的过程 200
10.3.3 电子拍卖的安全需求 201
10.3.4 NFW电子拍卖协议 201
10.3.5 NPS电子拍卖协议 202
10.4 电子交易协议 203
10.4.1 SET协议的参与者 203
10.4.2 SET协议的工作原理 204
10.4.3 SET协议的交易流程 205
10.4.4 SET协议的安全性 208
习题10 210
第11章 安全多方计算 211
11.1 安全多方计算的概念 211
11.2 安全多方计算的需求 213
11.2.1 安全多方计算的安全需求 214
11.2.2 用于函数的安全多方计算协议的要求 214
11.3 多方计算问题举例 215
11.3.1 点积协议 215
11.3.2 “百万富翁”协议 215
11.3.3 密码学家晚餐问题 216
11.4 一般安全多方计算协议 217
习题11 219
第12章 安全协议的形式化分析12.1 形式化方法简介 220
12.2 安全协议的形式化分析的历史 221
12.3 Dolev-Yao模型 222
12.3.1 协议描述 223
12.3.2 入侵模型 223
12.3.3 实例 223
12.4 安全协议的形式化分析的分类 224
12.4.1 定理证明方法 225
12.4.2 模拟检测方法 226
12.4.3 互模拟等价 226
12.5 基于逻辑推理的方法和模型 227
12.5.1 BAN逻辑的构成 227
12.5.2 理想化协议 229
12.5.3 示例分析 230
12.5.4 逻辑系统汇集 233
12.6 其他安全协议分析法 233
12.6.1 归纳证明方法 233
12.6.2 串空间模型 236
12.6.3 CSP方法 237
12.6.4 模型检测与定理证明的混合方法 238
12.6.5 互模拟等价模型下的系统——SPI演算 239
12.6.6 计算方法 239
习题12 240
参考文献 241