《应用密码学 协议、算法与C源程序 原书第2版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)施奈尔著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111445333
  • 页数:545 页
图书介绍:密码学的应用领域远远不只是编码和解码信息。对于需要了解有关密码学技术的数字签名的知识,本书是决定性的著作。本书介绍了密码学协议的通用类型、特定技术;详细介绍了现实世界密码学算法的内部机制,包括DES和RSA公开密钥加密系统。本书包括源代码列表和大量密码学应用方面的实践活动,如产生真正的随机数和保持密钥安全的重要性。

第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