
本书延续了Forouzan先生一贯的风格,以通俗易懂的方式全面阐述了密码学与计算机网络安全问题所涉及的各方面内容,从全局角度介绍了计算机网络安全的概念、体系结构和模式。本书以因特网为框架,以形象直观的描述手法,详细地介绍了密码学、数据通信和网络领域的基础知识、基本概念、基本原理和实践方法,堪称密码学与网络安全方面的经典著作。
本书(包括其中文导读英文版)可作为大学本科通信相关专业的教科书,也可作为对密码学与网络安全有兴趣的读者的自学用书。
前 言
互联网作为一个世界范围的通信网络,已经在许多方面改变了我们的日常生活。一个最新的商业上的例子就是每个人都可以在线购物。万维网(WWW)还可以让我们分享信息。电子邮件的技术把世界各个角落的人联系在了一起。这种必然的发展也形成了对互联网的依赖。
互联网作为一个开放的论坛,已经产生了一些安全方面的问题。互联网需要有机密性、完整性和可信性。人们需要确保网络通信是机密的。当我们在线购物时,我们需要确保出售方是真实的。当我们把交易请求发送给银行时,我们还要保证信息的完整性不被破坏。
网络安全其实就是可以让我们放心使用互联网的一系列协议—— 没有安全攻击。最普通的可以为互联网提供安全的工具就是密码学,这是一门古老的技术,现在已经应用于网络安全了。本书首先向读者介绍密码学的基本原理,然后应用这些基本原理来说明网络安全协议。
本书的特点
本书的特点就是让读者更容易地理解密码学与网络安全。
结构
本书增加了一些讲授密码学与网络安全的方法。这些方法都是假定读者没有数论和抽象代数的知识。如果没有这些领域的知识背景,我们就没法讨论密码学与网络安全,所以我们在第2章、第4章和第9章讨论了这几方面的内容。如果读者对这几方面的内容熟悉的话,可以跳过这几章。从第1~15章讨论密码学。第16~18章讨论互联网的安全性。
视觉方法
本书运用图和文本之间的平衡关系,提供高技术的材料,而没有复杂的公式。与文本材料相关的400多幅图片,使本书的阐述更为直观。图片在说明难于理解的密码学概念和复杂的网络安全协议时起了非常重要的作用。
算法
算法在密码学的讲授中也是非常重要的。为了使讲述能够独立于任何的计算机语言,我们提供了算法伪代码,这样就可以更为容易地使用现代语言进行编程。
突出特点
为了能够快速查阅并立即找到某些重要概念,对这些概念我们做了突出显示。
示例
每一章都提供大量的示例,这些示例都应用本章讨论的概念。有些示例只表示出了概念和公式的直接应用;有些表示出了密码的输入/输出关系;还有的给出了一些额外的信息,可以使我们更好地理解一些复杂难懂的概念。
推荐阅读
在每一章的末尾,读者都会找到一个进一步阅读的书籍列表。
关键术语
在每一章的末尾还有一个关键术语列表。所有的关键术语都在书后的术语表中作了说明。
概要
在每一章的末尾,都有一个说明本章内容的“概要”。“概要”对这一章的重点作简要概括。
习题集
在每一章的末尾,还有一个习题集,通过练习可以增强对一些重要概念的理解,并应用这些重要概念。
附录
附录提供快速参考资料和对本书中所讨论概念的复习资料。附录里还有一些对数学问题的讨论,这样那些已经熟悉了这部分内容的读者就不必再在这些问题上分心了。
证明
在本书中提到了一些数学结论,为了强调应用这些结论的结果,而没有提供证明。这部分内容在附录Q中给出,有兴趣的读者可以参考。
术语表
在本书的末尾,为读者提供了内容广泛的术语列表。
内容
在介绍性的第1章之后,本书可以分成4个部分。
第Ⅰ部分 对称密钥加密
第Ⅰ部分介绍了传统对称密钥密码学和现代对称密钥密码学。这一部分中的几章,强调对称密钥密码学在提供安全方面的应用。第Ⅰ部分包括第2~8章。
第Ⅱ部分 非对称密钥加密
第Ⅱ部分讨论非对称密钥密码学。这一部分中的几章,阐明了为什么非对称密钥密码学可以提供安全性。第Ⅱ部分包括第9章和第10章。
第Ⅲ部分 完整性、验证和密钥管理
第Ⅲ部分阐明了加密hash函数是怎样提供其他安全性的,如信息的完整性和可信性。这一部分中的几章也说明了非对称密钥密码学和对称密钥密码学是怎样相互补充的。第Ⅲ部分包括第11~15章。
第Ⅳ部分:网络安全
第Ⅳ部分阐明了在第Ⅰ部分中用三章的篇幅讨论过的密码学,可以用来在互联网模型的三个层级上创建网络安全协议。第Ⅳ部分包括第16~18章。
如何使用本书
研究理论的读者和专业的读者都可以使用本书。有兴趣的读者还可以用本书来自学。作为教科书,这一课程可以开设一学期也可以开设1/4学期。下面是有关使用本书的几点意见。
● 强烈推荐把第Ⅰ~Ⅲ部分作为教学内容。
● 如果课程需要从密码学进入到有关网络安全的领域,我们推荐把第Ⅳ部分也作为教学内容。对第Ⅳ部分来说,必须要有一个有关网络方面的一个课程作为准备。
如果您在使用本书的过程中有任何意见或建议,可发邮件至wkservice@vip.163.com,如果您的意见是正确的,我们将在后续版本中采用,并感谢您的参与!
在线学习中心
McGraw-Hill在线学习中心有许多与本书有关的附加材料,读者可以访问www.mhhe.com/forouzan这个网站。老师和学生都可以使用这里的授课材料,如PowerPoint 幻灯片。为学生提供奇数问题的答案,老师可以通过密码访问问题的完整解答。此外,McGraw-Hill有一个名为PageOut的独一无二的产品,可以使得为该课程建立网站变得更为容易。使用这一工具不需要有HTML的预备知识,不需要花费很长时间,也不需要有特殊的设计方面的技术。PageOut可以提供一系列的模板。用你的课程信息简单地填充这些模板,然后再点击16种设计中的一种就可以了。这一过程只需要花费一个小时,就可以建立一个专业设计的网站。虽然,PageOut可以提供“即时”的生成,但是一个完整的网站才能提供强大的功能。运用交互式的教学大纲你可以发送与课程相符的内容,所以,当学生访问你的PageOut网站时,你的大纲就可以把他们引导到Forouzan在线学习中心的相关部分,或者引导到你自己的指定材料。
目 录
第1章 导言 1
1.1 安全目标 1
1.1.1 机密性 2
1.1.2 完整性 2
1.1.3 可用性 2
1.2 攻击 2
1.2.1 威胁机密性的攻击 3
1.2.2 威胁完整性的攻击 3
1.2.3 威胁可用性的攻击 4
1.2.4 被动攻击与主动攻击 4
1.3 服务和机制 5
1.3.1 安全服务 5
1.3.2 安全机制 6
1.3.3 服务和机制之间的关系 8
1.4 技术 8
1.4.1 密码术 8
1.4.2 密写术 9
1.5 本书的其余部分 10
第Ⅰ部分 对称密钥加密 10
第Ⅱ部分 非对称密钥加密 11
第Ⅲ部分 完整性、验证
和密钥管理 11
第Ⅳ部分 网络安全 11
1.6 推荐阅读 11
1.7 关键术语 11
1.8 概要 12
1.9 习题集 12
第I部分 对称密钥加密
第2章 密码数学 第Ⅰ部分:模算法、
同余和矩阵 17
2.1 整数算法 17
2.1.1 整数集 17
2.1.2 二进制运算 18
2.1.3 整数除法 18
2.1.4 整除性 20
2.1.5 线性丢番图方程 25
2.2 模运算 26
2.2.1 模算符 27
2.2.2 余集:Zn 27
2.2.3 同余 28
2.2.4 在集合Zn当中的运算 29
2.2.5 逆 32
2.2.6 加法表和乘法表 36
2.2.7 加法集和乘法集的不同 36
2.2.8 另外两个集合 37
2.3 矩阵 37
2.3.1 定义 37
2.3.2 运算和关系 38
2.3.3 行列式 39
2.3.4 逆 40
2.3.5 剩余阵 41
2.4 线性同余 41
2.4.1 单变量线性方程 41
2.4.2 线性方程组 42
2.5 推荐阅读 43
2.6 关键术语 44
2.7 概要 44
2.8 习题集 45
第3章 传统对称密钥密码 51
3.1 导言 51
3.1.1 Kerckhoff原理 53
3.1.2 密码分析 53
3.1.3 传统密码的分类 55
3.2 代换密码 55
3.2.1 单码代换密码 56
3.2.2 多码代换密码 63
3.3 换位密码 74
3.3.1 无密钥换位密码 74
3.3.2 有密钥的换位密码 75
3.3.3 把两种方法组合起来 76
3.4 流密码和分组密码 80
3.4.1 流密码 80
3.4.2 分组密码 81
3.4.3 组合 82
3.5 推荐阅读 82
3.6 关键术语 83
3.7 概要 83
3.8 习题集 84
第4章 密码数学
第Ⅱ部分:代数结构 89
4.1 代数结构 89
4.1.1 群 90
4.1.2 环 96
4.1.3 域 96
4.1.4 小结 98
4.2 GF(2n)域 98
4.2.1 多项式 99
4.2.2 运用一个生成器 106
4.2.3 小结 108
4.3 推荐阅读 108
4.4 关键术语 109
4.5 概要 109
4.6 习题集 110
第5章 现代对称密钥密码 113
5.1 现代分组密码 113
5.1.1 代换与换位 114
5.1.2 作为置换群的分组密码 115
5.1.3 现代分组密码的成分 117
5.1.4 换字盒 121
5.1.5 乘积密码 125
5.1.6 两类乘积密码 127
5.1.7 关于分组密码的攻击 130
5.2 现代流密码 135
5.2.1 同步流密码 135
5.2.2 异步流密码 140
5.3 推荐阅读 140
5.4 关键术语 141
5.5 概要 141
5.6 习题集 142
第6章 数据加密标准(DES) 145
6.1 导言 145
6.1.1 数据加密标准(DES)简史 145
6.1.2 概观 146
6.2 DES的结构 146
6.2.1 初始置换和最终置换 147
6.2.2 轮 148
6.2.3 密码和反向密码 153
6.2.4 示例 158
6.3 DES分析 160
6.3.1 性质 160
6.3.2 设计标准 161
6.3.3 DES的缺陷 162
6.4 多重 DES 166
6.4.1 双重DES 167
6.4.2 三重DES 168
6.5 DES的安全性 169
6.5.1 蛮力攻击 169
6.5.2 差分密码分析 169
6.5.3 线性密码分析 170
6.6 推荐阅读 170
6.7 关键术语 170
6.8 概要 171
6.9 习题集 171
第7章 高级加密标准(AES) 175
7.1 导言 175
7.1.1 高级加密标准(AES)简史 175
7.1.2 标准 176
7.1.3 轮 176
7.1.4 数据单位 177
7.1.5 每一个轮的结构 179
7.2 转换 180
7.2.1 代换 180
7.2.2 置换 185
7.2.3 混合 186
7.2.4 密钥加 189
7.3 密钥扩展 190
7.3.1 在AES-128中的
密钥扩展 190
7.3.2 AES-192和AES-256中
的密钥扩展 194
7.3.3 密钥扩展分析 194
7.4 密码 195
7.4.1 源设计 195
7.4.2 选择性设计 197
7.5 示例 198
7.6 AES的分析 200
7.6.1 安全性 201
7.6.2 可执行性 201
7.6.3 复杂性和费用 201
7.7 推荐阅读 201
7.8 关键术语 202
7.9 概要 202
7.10 习题集 203
第8章 应用现代对称密钥
密码的加密 207
8.1 现代分组密码的应用 207
8.1.1 电子密码本模式 208
8.1.2 密码分组链接(CBC)模式 210
8.1.3 密码反馈(CFB)模式 212
8.1.4 输出反馈(OFB)模式 215
8.1.5 计数器(CTR)模式 217
8.2 流密码的应用 219
8.2.1 RC4 219
8.2.2 A5/1 222
8.3 其他问题 224
8.3.1 密钥管理 224
8.3.2 密钥生成 225
8.4 推荐阅读 225
8.5 关键术语 225
8.6 概要 226
8.7 习题集 227
第Ⅱ部分 非对称密钥加密
第9章 密码数学 第Ⅲ部分:素数
及其相关的同余方程 231
9.1 素数 231
9.1.1 定义 231
9.1.2 素数的基数 232
9.1.3 素性检验 233
9.1.4 Euler Phi-(欧拉?(n))函数 234
9.1.5 Fermat(费尔马)小定理 236
9.1.6 Euler定理 237
9.1.7 生成素数 238
9.2 素性测试 239
9.2.1 确定性算法 240
9.2.2 概率算法 241
9.2.3 推荐的素性检验 245
9.3 因数分解 246
9.3.1 算术基本定理 246
9.3.2 因数分解方法 247
9.3.3 Fermat方法 248
9.3.4 Pollard p – 1方法 249
9.3.5 Pollard rho方法 250
9.3.6 更有效的方法 252
9.4 中国剩余定理 253
9.5 二次同余 254
9.5.1 二次同余模一个素数 255
9.5.2 二次同余模一个复合数 256
9.6 指数与对数 257
9.6.1 指数 257
9.6.2 对数 259
9.7 推荐阅读 264
9.8 关键术语 264
9.9 概要 265
9.10 习题集 266
第10章 非对称密钥密码学 271
10.1 导言 271
10.1.1 密钥 272
10.1.2 一般概念 272
10.1.3 双方的需要 274
10.1.4 单向暗门函数 274
10.1.5 背包密码系统 275
10.2 RSA密码系统 278
10.2.1 简介 278
10.2.2 过程 279
10.2.3 一些普通的例子 281
10.2.4 针对RSA的攻击 282
10.2.5 建议 287
10.2.6 最优非对称加密填充
(OAEP) 288
10.2.7 应用 290
10.3 RABIN密码系统 291
10.3.1 过程 291
10.3.2 Rabin系统的安全性 293
10.4 ELGAMAL密码系统 293
10.4.1 ElGamal密码系统 294
10.4.2 过程 294
10.4.3 证明 295
10.4.4 分析 296
10.4.5 ElGamal的安全性 296
10.4.6 应用 298
10.5 椭圆曲线密码系统 298
10.5.1 基于实数的椭圆曲线 298
10.5.2 基于GF( p)的
椭圆曲线 300
10.5.3 基于GF(2n)的
椭圆曲线 302
10.5.4 模拟ElGamal的椭圆
曲线加密系统 304
10.6 推荐阅读 306
10.7 关键术语 307
10.8 概要 307
10.9 习题集 309
第Ⅲ部分 完整性、验证
和密钥管理
第11章 信息的完整性和信息验证 315
11.1 信息完整性 315
11.1.1 文档与指纹 315
11.1.2 信息与信息摘要 316
11.1.3 区别 316
11.1.4 检验完整性 316
11.1.5 加密hash函数标准 316
11.2 随机预言模型 319
11.2.1 鸽洞原理 320
11.2.2 生日问题 320
11.2.3 针对随机预言模型
的攻击 322
11.2.4 针对结构的攻击 327
11.3 信息验证 327
11.3.1 修改检测码 327
11.3.2 信息验证代码(MAC) 328
11.4 推荐阅读 331
11.5 关键术语 332
11.6 概要 332
11.7 习题集 333
第12章 加密hash函数 337
12.1 导言 337
12.1.1 迭代hash函数 337
12.1.2 两组压缩函数 338
12.2 SHA-512 341
12.2.1 简介 341
12.2.2 压缩函数 345
12.2.3 分析 349
12.3 WHIRLPOOL 349
12.3.1 Whirlpool密码 350
12.3.2 小结 357
12.3.3 分析 357
12.4 推荐阅读 357
12.5 关键术语 358
12.6 概要 359
12.7 习题集 359
第13章 数字签名 363
13.1 对比 363
13.1.1 包含性 363
13.1.2 验证方法 364
13.1.3 关系 364
13.1.4 二重性 364
13.2 过程 364
13.2.1 密钥需求 364
13.2.2 摘要签名 365
13.3 服务 366
13.3.1 信息身份验证 366
13.3.2 信息完整性 366
13.3.3 不可否认性 367
13.3.4 机密性 368
13.4 针对数字签名的攻击 368
13.4.1 攻击类型 368
13.4.2 伪造类型 369
13.5 数字签名方案 369
13.5.1 RSA数字签名方案 369
13.5.2 ElGamal数字
签名方案 373
13.5.3 Schnorr数字
签名方案 375
13.5.4 数字签名标准(DSS) 378
13.5.5 椭圆曲线数字
签名方案 380
13.6 变化与应用 382
13.6.1 变化 382
13.6.2 应用 383
13.7 推荐阅读 383
13.8 关键术语 384
13.9 概要 384
13.10 习题集 385
第14章 实体验证 387
14.1 导言 387
14.1.1 数据源验证与
实体验证 387
14.1.2 验证的类型 388
14.1.3 实体验证和密钥管理 388
14.2 口令 388
14.2.1 固定口令 388
14.2.2 一次性密码 391
14.3 挑战—应答 392
14.3.1 对称密钥密码的运用 393
14.3.2 带密钥hash函数
的应用 394
14.3.3 非对称密钥密码的
应用 395
14.3.4 数字签名的应用 396
14.4 零知识 397
14.4.1 Fiat-Shamir协议 397
14.4.2 Feige-Fiat-Shamir
协议 400
14.4.3 Guillou-Quisquater
协议 400
14.5 生物测试 401
14.5.1 设备 401
14.5.2 注册 402
14.5.3 验证 402
14.5.4 技术 402
14.5.5 准确性 403
14.5.6 应用 404
14.6 推荐阅读 404
14.7 关键术语 404
14.8 概要 405
14.9 习题集 405
第15章 密钥管理 407
15.1 对称密钥分配 407
15.2 KERBEROS 413
15.2.1 服务器 413
15.2.2 操作 414
15.2.3 不同服务器的运用 414
15.2.4 Kerberos第五版 415
15.2.5 领域 416
15.3 对称密钥协定 416
15.3.1 Diffie-Hellman
密钥协定 416
15.3.2 站对站密钥协定 420
15.4 公钥分配 421
15.4.1 公钥公布 422
15.4.2 可信中心 422
15.4.3 可信中心的控制 423
15.4.4 认证机关 423
15.4.5 X.509 424
15.4.6 公钥基础设施(PKI) 427
15.5 推荐阅读 429
15.6 关键术语 430
15.7 概要 430
15.8 习题集 431
第Ⅳ部分 网 络 安 全
第16章 应用层的安全性:
PGP和S/MIME 435
16.1 电子邮件 435
16.1.1 电子邮件的构造 435
16.1.2 电子邮件的安全性 437
16.2 PGP 438
16.2.1 情景 438
16.2.2 密钥环 440
16.2.3 PGP证书 442
16.2.4 密钥撤回 449
16.2.5 从环中提取消息 449
16.2.6 PGP包 451
16.2.7 PGP信息 456
16.2.8 PGP的应用 457
16.3 S/MIME 458
16.3.1 MIME 458
16.3.2 S/MIME 463
16.3.3 S/MIME的应用 467
16.4 推荐阅读 467
16.5 关键术语 467
16.6 概要 467
16.7 习题集 468
第17章 传输层的安全性:
SSL和TLS 471
17.1 SSL结构 472
17.1.1 服务 472
17.1.2 密钥交换算法 472
17.1.3 加密/解密算法 474
17.1.4 散列算法 475
17.1.5 密码套件 476
17.1.6 压缩算法 477
17.1.7 加密参数的生成 477
17.1.8 会话和连接 478
17.2 4个协议 480
17.2.1 握手协议 481
17.2.2 改变密码规格协议 487
17.2.3 告警协议 488
17.2.4 记录协议 488
17.3 SSL信息构成 491
17.3.1 改变密码规格协议 491
17.3.2 告警协议 491
17.3.3 握手协议 492
17.3.4 应用数据 498
17.4 传输层安全 499
17.4.1 版本 499
17.4.2 密码套件 500
17.4.3 加密秘密的生成 500
17.4.4 告警协议 502
17.4.5 握手协议 503
17.4.6 记录协议 504
17.5 推荐阅读 505
17.6 关键术语 505
17.7 概要 506
17.8 习题集 506
第18章 网络层的安全:IPSec 509
18.1 两种模式 510
18.2 两个安全协议 512
18.2.1 验证文件头(AH) 512
18.2.2 封装安全载荷(ESP) 513
18.2.3 IPv4和IPv6 514
18.2.4 AH和ESP 514
18.2.5 IPSec提供的服务 514
18.3 安全关联 516
18.3.1 安全关联的概念 516
18.3.2 安全关联数据库(SAD) 516
18.4 安全策略 518
18.5 互联网密钥交换(IKE) 521
18.5.1 改进的Diffie-Hellman
密钥交换 522
18.5.2 IKE阶段 524
18.5.3 阶段和模式 524
18.5.4 阶段Ⅰ:主模式 525
18.5.5 阶段Ⅰ:野蛮模式 530
18.5.6 阶段Ⅱ:快速模式 532
18.5.7 SA算法 534
18.6 ISAKMP 535
18.6.1 一般文件头 535
18.6.2 有效载荷 536
18.7 推荐阅读 544
18.8 关键术语 544
18.9 概要 544
18.10 习题集 545
附录A ASCII 549
附录B 标准与标准化组织 551
附录C TCP/IP套件 557
附录D 初等概率 561
附录E 生日问题 565
附录F 信息论 569
附录G 不可约多项式与
本原多项式列举 575
附录H 小于10 000的素数 577
附录I 整数的素因数 581
附录J 小于1000素数的
一次本原根列表 585
附录K 随机数生成器 587
附录L 复杂度 593
附录M ZIP 599
附录N DES差分密码分析和
DES线性密码分析 603
附录O 简化DES(S-DES) 611
附录P 简化AES(S-AES) 619
附录Q 一些证明 631
术语表 639
参考文献 657