第1章 基础知识 1
1.1 专业术语 1
1.1.1 发送者和接收者 1
1.1.2 消息和加密 1
1.1.3 鉴别、完整性和抗抵赖 1
1.1.4 算法和密钥 2
1.1.5 对称算法 3
1.1.6 公开密钥算法 3
1.1.7 密码分析 4
1.1.8 算法的安全性 5
1.1.9 过去的术语 6
1.2 隐写术 7
1.3 代替密码和换位密码 7
1.3.1 代替密码 7
1.3.2 换位密码 8
1.3.3 转轮机 9
1.3.4 进一步的读物 9
1.4 简单异或 9
1.5 一次一密乱码本 11
1.6 计算机算法 12
1.7 大数 13
第一部分 密码协议 16
第2章 协议结构模块 16
2.1 协议概述 16
2.1.1 协议的目的 16
2.1.2 协议中的角色 17
2.1.3 仲裁协议 17
2.1.4 裁决协议 19
2.1.5 自动执行协议 20
2.1.6 对协议的攻击 20
2.2 使用对称密码系统通信 20
2.3 单向函数 21
2.4 单向散列函数 22
2.5 使用公开密钥密码系统通信 23
2.5.1 混合密码系统 24
2.5.2 Merkle的难题 25
2.6 数字签名 25
2.6.1 使用对称密码系统和仲裁者对文件签名 26
2.6.2 数字签名树 27
2.6.3 使用公开密钥密码系统对文件签名 27
2.6.4 文件签名和时间标记 27
2.6.5 使用公开密钥密码系统和单向散列函数对文件签名 28
2.6.6 算法和术语 28
2.6.7 多重签名 28
2.6.8 抗抵赖和数字签名 29
2.6.9 数字签名的应用 29
2.7 带加密的数字签名 30
2.7.1 重新发送消息作为收据 30
2.7.2 阻止重新发送攻击 31
2.7.3 对公开密钥密码系统的攻击 31
2.8 随机和伪随机序列的产生 32
2.8.1 伪随机序列 32
2.8.2 密码学意义上安全的伪随机序列 33
2.8.3 真正的随机序列 33
第3章 基本协议 34
3.1 密钥交换 34
3.1.1 对称密码系统的密钥交换 34
3.1.2 公开密钥密码系统的密钥交换 34
3.1.3 中间人攻击 34
3.1.4 连锁协议 35
3.1.5 使用数字签名的密钥交换 36
3.1.6 密钥和消息传输 36
3.1.7 密钥和消息广播 37
3.2 鉴别 37
3.2.1 使用单向函数鉴别 37
3.2.2 字典式攻击和salt 37
3.2.3 SKEY 38
3.2.4 使用公开密钥密码系统鉴别 38
3.2.5 使用联锁协议互相鉴别 39
3.2.6 SKID 40
3.2.7 消息鉴别 40
3.3 鉴别和密钥交换 40
3.3.1 Wide-Mouth Frog协议 41
3.3.2 Yahalom协议 41
3.3.3 Needham-Schroeder协议 41
3.3.4 Otway-Rees协议 42
3.3.5 Kerberos协议 43
3.3.6 Neuman-Stubblebine协议 43
3.3.7 DASS协议 44
3.3.8 Denning-Sacco协议 45
3.3.9 Woo-Lam协议 45
3.3.10 其他协议 46
3.3.11 学术上的教训 46
3.4 鉴别和密钥交换协议的形式化分析 46
3.5 多密钥公开密钥密码系统 48
3.6 秘密分割 49
3.7 秘密共享 50
3.7.1 有骗子的秘密共享 51
3.7.2 没有Trent的秘密共享 51
3.7.3 不暴露共享的秘密共享 51
3.7.4 可验证的秘密共享 51
3.7.5 带预防的秘密共享 52
3.7.6 带除名的秘密共享 52
3.8 数据库的密码保护 52
第4章 中级协议 53
4.1 时间标记服务 53
4.1.1 仲裁解决方法 53
4.1.2 改进的仲裁解决方法 53
4.1.3 链接协议 54
4.1.4 分布式协议 54
4.1.5 进一步的工作 55
4.2 阈下信道 55
4.2.1 阈下信道的应用 56
4.2.2 杜绝阈下的签名 56
4.3 不可抵赖的数字签名 57
4.4 指定的确认者签名 58
4.5 代理签名 58
4.6 团体签名 59
4.7 失败-终止数字签名 60
4.8 加密数据计算 60
4.9 位承诺 60
4.9.1 使用对称密码系统的位承诺 61
4.9.2 使用单向函数的位承诺 61
4.9.3 使用伪随机序列发生器的位承诺 62
4.9.4 模糊点 62
4.10 公平的硬币抛掷 62
4.10.1 使用单向函数的抛币协议 63
4.10.2 使用公开密钥密码系统的抛币协议 64
4.10.3 抛币入井协议 64
4.10.4 使用抛币产生密钥 65
4.11 智力扑克 65
4.11.1 三方智力扑克 65
4.11.2 对扑克协议的攻击 66
4.11.3 匿名密钥分配 66
4.12 单向累加器 67
4.13 秘密的全或无泄露 68
4.14 密钥托管 68
第5章 高级协议 71
5.1 零知识证明 71
5.1.1 基本的零知识协议 71
5.1.2 图同构 73
5.1.3 汉密尔顿圈 73
5.1.4 并行零知识证明 74
5.1.5 非交互式零知识证明 75
5.1.6 一般性 75
5.2 身份的零知识证明 76
5.2.1 国际象棋特级大师问题 77
5.2.2 黑手党骗局 77
5.2.3 恐怖分子骗局 77
5.2.4 建议的解决方法 77
5.2.5 多重身份骗局 78
5.2.6 出租护照 78
5.2.7 成员资格证明 78
5.3 盲签名 79
5.3.1 完全盲签名 79
5.3.2 盲签名协议 79
5.3.3 专利 81
5.4 基于身份的公开密钥密码系统 81
5.5 不经意传输 81
5.6 不经意签名 83
5.7 同时签约 83
5.7.1 带有仲裁者的签约 83
5.7.2 无需仲裁者的同时签约:面对面 83
5.7.3 无需仲裁者的同时签约:非面对面 84
5.7.4 无需仲裁者的同时签约:使用密码系统 85
5.8 数字证明邮件 86
5.9 秘密的同时交换 87
第6章 深奥的协议 89
6.1 保密选举 89
6.1.1 简单投票协议1 89
6.1.2 简单投票协议2 89
6.1.3 使用盲签名投票 90
6.1.4 带有两个中央机构的投票 90
6.1.5 带有单个中央机构的投票 91
6.1.6 改进的带有单个中央机构的投票 91
6.1.7 无需中央制表机构的投票 92
6.1.8 其他投票方案 95
6.2 保密的多方计算 95
6.2.1 协议1 95
6.2.2 协议2 96
6.2.3 协议3 96
6.2.4 协议4 97
6.2.5 无条件多方安全协议 97
6.2.6 保密电路计算 97
6.3 匿名消息广播 98
6.4 数字现金 99
6.4.1 协议1 100
6.4.2 协议2 100
6.4.3 协议3 101
6.4.4 协议4 101
6.4.5 数字现金和高明的犯罪 103
6.4.6 实用化的数字现金 104
6.4.7 其他数字现金协议 104
6.4.8 匿名信用卡 105
第二部分 密码技术 108
第7章 密钥长度 108
7.1 对称密钥长度 108
7.1.1 穷举攻击所需时间和金钱估计 109
7.1.2 软件破译机 110
7.1.3 神经网络 111
7.1.4 病毒 111
7.1.5 中国式抽彩法 111
7.1.6 生物工程技术 112
7.1.7 热力学的局限性 113
7.2 公开密钥长度 113
7.2.1 DNA计算法 117
7.2.2 量子计算法 117
7.3 对称密钥和公开密钥长度的比较 118
7.4 对单向散列函数的生日攻击 118
7.5 密钥应该多长 119
7.6 小结 120
第8章 密钥管理 121
8.1 产生密钥 121
8.1.1 减少的密钥空间 121
8.1.2 弱密钥选择 122
8.1.3 随机密钥 123
8.1.4 通行短语 124
8.1.5 X9.17密钥产生 125
8.1.6 DoD密钥产生 125
8.2 非线性密钥空间 125
8.3 传输密钥 126
8.4 验证密钥 127
8.4.1 密钥传输中的错误检测 128
8.4.2 解密过程中的错误检测 128
8.5 使用密钥 128
8.6 更新密钥 129
8.7 存储密钥 129
8.8 备份密钥 130
8.9 泄露密钥 131
8.10 密钥有效期 131
8.11 销毁密钥 132
8.12 公开密钥的密钥管理 133
8.12.1 公开密钥证书 133
8.12.2 分布式密钥管理 134
第9章 算法类型和模式 135
9.1 电子密码本模式 135
9.2 分组重放 136
9.3 密码分组链接模式 138
9.3.1 初始化向量 138
9.3.2 填充 139
9.3.3 错误扩散 140
9.3.4 安全问题 140
9.4 序列密码算法 140
9.5 自同步序列密码 141
9.6 密码反馈模式 142
9.6.1 初始化向量 143
9.6.2 错误扩散 143
9.7 同步序列密码 144
9.8 输出反馈模式 145
9.8.1 初始化向量 145
9.8.2 错误扩散 145
9.8.3 安全问题 146
9.8.4 OFB模式中的序列密码 146
9.9 计数器模式 146
9.10 其他分组密码模式 147
9.10.1 分组链接模式 147
9.10.2 扩散密码分组链接模式 147
9.10.3 带校验和的密码分组链接 147
9.10.4 带非线性函数的输出反馈 147
9.10.5 其他模式 148
9.11 选择密码模式 148
9.12 交错 149
9.13 分组密码与序列密码 150
第10章 使用算法 151
10.1 选择算法 151
10.2 公开密钥密码系统与对称密码系统 152
10.3 通信信道加密 153
10.3.1 链-链加密 153
10.3.2 端-端加密 154
10.3.3 两者的结合 155
10.4 用于存储的加密数据 156
10.4.1 非关联密钥 156
10.4.2 驱动器级与文件级加密 156
10.4.3 提供加密驱动器的随机存取 157
10.5 硬件加密与软件加密 158
10.5.1 硬件 158
10.5.2 软件 159
10.6 压缩、编码及加密 159
10.7 检测加密 159
10.8 密文中隐藏密文 160
10.9 销毁信息 161
第三部分 密码算法 164
第11章 数学背景 164
11.1 信息论 164
11.1.1 熵和不确定性 164
11.1.2 语言信息率 164
11.1.3 密码系统的安全性 165
11.1.4 唯一解距离 165
11.1.5 信息论的运用 166
11.1.6 混乱和扩散 166
11.2 复杂性理论 167
11.2.1 算法的复杂性 167
11.2.2 问题的复杂性 168
11.2.3 NP完全问题 170
11.3 数论 170
11.3.1 模运算 170
11.3.2 素数 172
11.3.3 最大公因子 172
11.3.4 求模逆元 173
11.3.5 求系数 175
11.3.6 费尔马小定理 175
11.3.7 欧拉?函数 175
11.3.8 中国剩余定理 175
11.3.9 二次剩余 176
11.3.10 勒让德符号 177
11.3.11 雅可比符号 177
11.3.12 Blum整数 179
11.3.13 生成元 179
11.3.14 伽罗瓦域中的计算 180
11.4 因子分解 181
11.5 素数的产生 182
11.5.1 Solovag-Strassen 183
11.5.2 Lehmann 183
11.5.3 Rabin-Miller 184
11.5.4 实际考虑 184
11.5.5 强素数 185
11.6 有限域上的离散对数 185
第12章 数据加密标准 187
12.1 背景 187
12.1.1 标准的开发 187
12.1.2 标准的采用 188
12.1.3 DES设备的鉴定和认证 189
12.1.4 1987年的标准 189
12.1.5 1993年的标准 190
12.2 DES的描述 190
12.2.1 算法概要 191
12.2.2 初始置换 192
12.2.3 密钥置换 192
12.2.4 扩展置换 193
12.2.5 S盒代替 193
12.2.6 P盒置换 195
12.2.7 末置换 196
12.2.8 DES解密 196
12.2.9 DES的工作模式 196
12.2.10 DES的硬件和软件实现 196
12.3 DES的安全性 198
12.3.1 弱密钥 199
12.3.2 补密钥 200
12.3.3 代数结构 201
12.3.4 密钥的长度 201
12.3.5 迭代的次数 202
12.3.6 S盒的设计 202
12.3.7 其他结论 203
12.4 差分及线性分析 203
12.4.1 差分密码分析 203
12.4.2 相关密钥密码分析 206
12.4.3 线性密码分析 206
12.4.4 未来的方向 208
12.5 实际设计准则 208
12.6 DES的各种变型 209
12.6.1 多重DES 209
12.6.2 使用独立子密钥的DES 209
12.6.3 DESX 209
12.6.4 CRYPT(3) 209
12.6.5 GDES 210
12.6.6 更换S盒的DES 210
12.6.7 RDES 211
12.6.8 snDES 211
12.6.9 使用相关密钥S盒的DES 213
12.7 DES现今的安全性 213
第13章 其他分组密码算法 215
13.1 Lucifer算法 215
13.2 Madryga算法 215
13.2.1 Madryga的描述 216
13.2.2 Madryga的密码分析 217
13.3 NewDES算法 217
13.4 FEAL算法 218
13.4.1 FEAL的描述 218
13.4.2 FEAL的密码分析 220
13.4.3 专利 222
13.5 REDOC算法 222
13.5.1 REDOCⅢ 222
13.5.2 专利和许可证 223
13.6 LOKI算法 223
13.6.1 LOKI91 223
13.6.2 LOKI91的描述 223
13.6.3 LOKI91的密码分析 224
13.6.4 专利和许可证 225
13.7 Khufu和Khafre算法 225
13.7.1 Khufu 225
13.7.2 Khafre 226
13.7.3 专利 226
13.8 RC2算法 226
13.9 IDEA算法 227
13.9.1 IDEA 227
13.9.2 IDEA的描述 228
13.9.3 IDEA的速度 229
13.9.4 IDEA的密码分析 230
13.9.5 IDEA的操作方式和变型 231
13.9.6 敬告使用者 231
13.9.7 专利和许可证 232
13.10 MMB算法 232
13.11 CA-1.1算法 233
13.12 Skipjack算法 234
第14章 其他分组密码算法(续) 236
14.1 GOST算法 236
14.1.1 GOST的描述 236
14.1.2 GOST的密码分析 237
14.2 CAST算法 238
14.3 Blowfish算法 239
14.3.1 Blowfish的描述 239
14.3.2 Blowfish的安全性 241
14.4 SAFER算法 241
14.4.1 SAFER K-64的描述 241
14.4.2 SAFER K-128 242
14.4.3 SAFER K-64的安全性 243
14.5 3-Way算法 243
14.6 Crab算法 243
14.7 SXAL8/MBAL算法 245
14.8 RC5算法 245
14.9 其他分组密码算法 246
14.10 分组密码设计理论 246
14.10.1 Feistel网络 247
14.10.2 简单关系 247
14.10.3 群结构 248
14.10.4 弱密钥 248
14.10.5 强的抗差分攻击和线性攻击 248
14.10.6 S盒的设计 248
14.10.7 设计分组密码 250
14.11 使用单向散列函数 250
14.11.1 Karn 250
14.11.2 Luby-Rackoff 251
14.11.3 消息摘要密码 251
14.11.4 基于单向散列函数的密码安全性 252
14.12 分组密码算法的选择 252
第15章 组合分组密码 254
15.1 双重加密 254
15.2 三重加密 255
15.2.1 用两个密钥进行三重加密 255
15.2.2 用三个密钥进行三重加密 256
15.2.3 用最小密钥进行三重加密 256
15.2.4 三重加密模式 256
15.2.5 三重加密的变型 257
15.3 加倍分组长度 258
15.4 其他多重加密方案 259
15.4.1 双重OFB/计数器 259
15.4.2 ECB+OFB 259
15.4.3 xDES 260
15.4.4 五重加密 261
15.5 缩短CDMF密钥 261
15.6 白化 261
15.7 级联多重加密算法 261
15.8 组合多重分组算法 262
第16章 伪随机序列发生器和序列密码 263
16.1 线性同余发生器 263
16.2 线性反馈移位寄存器 265
16.3 序列密码的设计与分析 270
16.3.1 线性复杂性 271
16.3.2 相关免疫性 271
16.3.3 其他攻击 272
16.4 使用LFSR的序列密码 272
16.4.1 Geffe发生器 272
16.4.2 推广的Geffe发生器 273
16.4.3 Jennings发生器 273
16.4.4 Beth-Piper停走式发生器 274
16.4.5 交错停走式发生器 274
16.4.6 双侧停走式发生器 275
16.4.7 门限发生器 275
16.4.8 自采样发生器 276
16.4.9 多倍速率内积式发生器 276
16.4.10 求和式发生器 276
16.4.11 DNRSG 277
16.4.12 Gollmann级联 277
16.4.13 收缩式发生器 277
16.4.14 自收缩式发生器 277
16.5 A5算法 278
16.6 Hughes XPD/KPD算法 278
16.7 Nanoteq算法 278
16.8 Rambutan算法 279
16.9 附加式发生器 279
16.9.1 Fish发生器 279
16.9.2 Pike发生器 280
16.9.3 Mush发生器 280
16.10 Gifford算法 280
16.11 M算法 281
16.12 PKZIP算法 281
第17章 其他序列密码和真随机序列发生器 283
17.1 RC4算法 283
17.2 SEAL算法 284
17.2.1 伪随机函数族 284
17.2.2 SEAL的描述 284
17.2.3 SEAL的安全性 285
17.2.4 专利和许可证 285
17.3 WAKE算法 285
17.4 带进位的反馈移位寄存器 286
17.5 使用FCSR的序列密码 293
17.5.1 级联发生器 293
17.5.2 FCSR组合发生器 293
17.5.3 LFSR/FCSR加法/奇偶级联 294
17.5.4 交错停走式发生器 294
17.5.5 收缩式发生器 295
17.6 非线性反馈移位寄存器 295
17.7 其他序列密码 296
17.7.1 Pless发生器 296
17.7.2 蜂窝式自动发生器 296
17.7.3 l/p发生器 296
17.7.4 crypt(1) 297
17.7.5 其他方案 297
17.8 序列密码设计的系统理论方法 297
17.9 序列密码设计的复杂性理论方法 298
17.9.1 Shamir伪随机数发生器 298
17.9.2 Blum-Micali发生器 298
17.9.3 RSA 298
17.9.4 Blum、Blum和Shub 298
17.10 序列密码设计的其他方法 299
17.10.1 Rip van Winkle密码 299
17.10.2 Diffie随机序列密码 300
17.10.3 Maurer随机序列密码 300
17.11 级联多个序列密码 300
17.12 选择序列密码 300
17.13 从单个伪随机序列发生器产生多个序列 301
17.14 真随机序列发生器 302
17.14.1 RAND表 302
17.14.2 使用随机噪声 303
17.14.3 使用计算机时钟 303
17.14.4 测量键盘反应时间 304
17.14.5 偏差和相关性 304
17.14.6 提取随机性 305
第18章 单向散列函数 307
18.1 背景 307
18.1.1 单向散列函数的长度 308
18.1.2 单向散列函数综述 308
18.2 Snefru算法 308
18.3 N-Hash算法 309
18.4 MD4算法 311
18.5 MD5算法 312
18.5.1 MD5的描述 312
18.5.2 MD5的安全性 315
18.6 MD2算法 315
18.7 安全散列算法 316
18.7.1 SHA的描述 316
18.7.2 SHA的安全性 318
18.8 RIPE-MD算法 319
18.9 HAVAL算法 319
18.10 其他单向散列函数 319
18.11 使用对称分组算法的单向散列函数 320
18.11.1 散列长度等于分组长度的方案 320
18.11.2 改进的Davies-Meyer 322
18.11.3 Preneel-Bosselaers-Govaerts-Vandewalle 322
18.11.4 Quisquater-Girault 322
18.11.5 LOKI双分组 323
18.11.6 并行Davies-Meyer 323
18.11.7 串联和并联Davies-Meyer 323
18.11.8 MDC-2和MDC-4 324
18.11.9 AR散列函数 325
18.11.10 GOST散列函数 325
18.11.11 其他方案 326
18.12 使用公开密钥算法 326
18.13 选择单向散列函数 326
18.14 消息鉴别码 326
18.14.1 CBC-MAC 327
18.14.2 消息鉴别算法 327
18.14.3 双向MAC 327
18.14.4 Jueneman方法 327
18.14.5 RIPE-MAC 328
18.14.6 IBC-Hash 328
18.14.7 单向散列函数MAC 328
18.14.8 序列密码MAC 329
第19章 公开密钥算法 330
19.1 背景 330
19.2 背包算法 331
19.2.1 超递增背包 331
19.2.2 由私人密钥产生公开密钥 332
19.2.3 加密 332
19.2.4 解密 332
19.2.5 实际的实现方案 333
19.2.6 背包的安全性 333
19.2.7 背包变型 333
19.2.8 专利 333
19.3 RSA算法 334
19.3.1 RSA的硬件实现 335
19.3.2 RSA的速度 336
19.3.3 软件加速 336
19.3.4 RSA的安全性 337
19.3.5 对RSA的选择密文攻击 337
19.3.6 对RSA的公共模数攻击 338
19.3.7 对RSA的低加密指数攻击 338
19.3.8 对RSA的低解密指数攻击 339
19.3.9 经验 339
19.3.10 对RSA的加密和签名攻击 339
19.3.11 标准 339
19.3.12 专利 340
19.4 Pohlig-Hellman算法 340
19.5 Rabin算法 340
19.6 ElGamal算法 341
19.6.1 E1Gamal签名 342
19.6.2 ElGamal加密 342
19.6.3 速度 343
19.6.4 专利 343
19.7 McEliece算法 343
19.8 椭圆曲线密码系统 344
19.9 LUC算法 345
19.10 有限自动机公开密钥密码系统 345
第20章 公开密钥数字签名算法 347
20.1 数字签名算法 347
20.1.1 对通告的反应 347
20.1.2 DSA的描述 349
20.1.3 快速预计算 350
20.1.4 DSA的素数产生 351
20.1.5 使用DSA的ElGamal加密 351
20.1.6 使用DSA的RSA加密 352
20.1.7 DSA的安全性 352
20.1.8 攻击k 353
20.1.9 公共模数的危险 353
20.1.10 DSA中的阈下信道 353
20.1.11 专利 354
20.2 DSA的变型 354
20.3 GOST数字签名算法 355
20.4 离散对数签名方案 356
20.5 Ong-Schnorr-Shamir签名方案 357
20.6 ESIGN签名方案 358
20.6.1 ESIGN的安全性 358
20.6.2 专利 359
20.7 细胞自动机 359
20.8 其他公开密钥算法 359
第21章 鉴别方案 361
21.1 Feige-Fiat-Shamir算法 361
21.1.1 简化的Feige-Fiat-Shamir身份鉴别方案 361
21.1.2 Feige-Fiat-Shamir身份鉴别方案 362
21.1.3 例子 362
21.1.4 加强方案 363
21.1.5 Fiat-Shamir签名方案 363
21.1.6 改进的Fiat-Shamir签名方案 364
21.1.7 其他加强方案 364
21.1.8 Ohta-Okamoto身份鉴别方案 364
21.1.9 专利 364
21.2 Guillou-Quisquater算法 364
21.2.1 Guillou-Quisquater身份鉴别方案 365
21.2.2 Guillou-Quisquater数字签名方案 365
21.2.3 多重签名 365
21.3 Schnorr算法 366
21.3.1 鉴别协议 366
21.3.2 数字签名协议 366
21.3.3 专利 367
21.4 将身份鉴别方案转为数字签名方案 367
第22章 密钥交换算法 368
22.1 Diffie-Hellman算法 368
22.1.1 三方或多方Diffie-Hellman 368
22.1.2 扩展Diffie-Hellman 369
22.1.3 Hughes 369
22.1.4 不用交换密钥的密钥交换 369
22.1.5 专利 369
22.2 站间协议 369
22.3 Shamir的三次传递协议 370
22.4 COMSET协议 371
22.5 加密密钥交换 371
22.5.1 基本EKE协议 371
22.5.2 用RSA实现EKE 372
22.5.3 用ElGamal实现EKE 372
22.5.4 用Diffie-Hellman实现EKE 372
22.5.5 加强的EKE 372
22.5.6 扩充的EKE 373
22.5.7 EKE的应用 373
22.6 加强的密钥协商 374
22.7 会议密钥分发和秘密广播 374
22.7.1 会议密钥分发 375
22.7.2 Tatebayashi-Matsuzaki-Newman 376
第23章 协议的专用算法 377
23.1 多重密钥的公开密钥密码系统 377
23.2 秘密共享算法 377
23.2.1 LaGrange插值多项式方案 377
23.2.2 矢量方案 378
23.2.3 Asmuth-Bloom 378
23.2.4 Kami-Greene-Hellman 379
23.2.5 高级门限方案 379
23.2.6 有骗子情况下的秘密共享 379
23.3 阈下信道 380
23.3.1 Ong-Schnorr-Shamir 380
23.3.2 ElGamal 381
23.3.3 ESIGN 381
23.3.4 DSA 382
23.3.5 挫败DSA阈下信道 383
23.3.6 其他方案 384
23.4 不可抵赖的数字签名 384
23.5 指定的确认者签名 386
23.6 用加密数据计算 387
23.7 公平的硬币抛掷 387
23.7.1 利用平方根的硬币抛掷 387
23.7.2 利用模p指数运算的硬币抛掷 388
23.7.3 利用Blum整数的硬币抛掷 389
23.8 单向累加器 389
23.9 秘密的全或无泄露 389
23.10 公正和故障保险密码系统 391
23.10.1 公正的Diffie-Hellman 391
23.10.2 故障保险的Diffie-Hellman 392
23.11 知识的零知识证明 392
23.11.1 离散对数的零知识证明 392
23.11.2 破译RSA能力的零知识证明 393
23.11.3 n是一个Blum整数的零知识证明 393
23.12 盲签名 394
23.13 不经意传输 394
23.14 保密的多方计算 394
23.15 概率加密 396
23.16 量子密码学 397
第四部分 真实世界 402
第24章 实现方案实例 402
24.1 IBM秘密密钥管理协议 402
24.2 MITRENET 403
24.3 ISDN 403
24.3.1 密钥 403
24.3.2 呼叫 404
24.4 STU-Ⅲ 404
24.5 Kerberos 405
24.5.1 Kerberos模型 405
24.5.2 Kerberos工作原理 406
24.5.3 凭证 406
24.5.4 Kerberos第5版消息 407
24.5.5 最初票据的获取 407
24.5.6 服务器票据的获取 407
24.5.7 服务请求 408
24.5.8 Kerberos第4版 408
24.5.9 Kerberos的安全性 408
24.5.10 许可证 409
24.6 KryptoKnight 409
24.7 SESAME 409
24.8 IBM通用密码体系 410
24.9 ISO鉴别框架 411
24.9.1 证书 411
24.9.2 鉴别协议 412
24.10 保密性增强邮件 413
24.10.1 PEM的有关文件 413
24.10.2 证书 413
24.10.3 PEM的消息 414
24.10.4 PEM的安全性 416
24.10.5 TIS/PEM 416
24.10.6 RIPEM 417
24.11 消息安全协议 417
24.12 Pretty Good Privacy 417
24.13 智能卡 419
24.14 公开密钥密码学标准 420
24.15 通用电子支付系统 421
24.16 Clipper 422
24.17 Capstone 424
24.18 AT&T 3600型电话保密设备 424
第25章 政治 426
25.1 国家安全局 426
25.2 国家计算机安全中心 427
25.3 国家标准技术所 428
25.4 RSA数据安全有限公司 430
25.5 公开密钥合作商 430
25.6 国际密码研究协会 432
25.7 RACE完整性基本评估 432
25.8 对欧洲的有条件访问 432
25.9 ISO/IEC 9979 433
25.10 专业人员、公民自由和工业组织 433
25.10.1 电子秘密信息中心 433
25.10.2 电子战线基金会 433
25.10.3 计算机协会 434
25.10.4 电气和电子工程师学会 434
25.10.5软件出版商协会 434
25.11 sci.crypt 434
25.12 Cvpherpunks 434
25.13 专利 434
25.14 美国出口法规 435
25.15 其他国家的密码进出口 439
25.16 合法性问题 440
附录A 源代码 441
参考文献 484
Matt Blaze跋 544