本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。
第一部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第二部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第三部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。
第1部分 密码1
第1章 环游密码世界3
1.1 本章学习的内容4
1.2 密码4
1.2.1 Alice与Bob4
1.2.2 发送者、接收者和窃听者4
1.2.3 加密与解密6
1.2.4 密码保证了消息的机密性7
1.2.5 破译7
1.3 对称密码与公钥密码8
1.3.1 密码算法8
1.3.2 密钥8
1.3.3 对称密码与公钥密码9
1.3.4 混合密码系统10
1.4 其他密码技术10
1.4.1 单向散列函数10
1.4.2 消息认证码10
1.4.3 数字签名11
1.4.4 伪随机数生成器11
1.5 密码学家的工具箱12
1.6 隐写术与数字水印13
1.7 密码与信息安全常识14
1.7.1 不要使用保密的密码算法14
1.7.2 使用低强度的密码比不进行任何加密更危险15
1.7.3 任何密码总有一天都会被破解15
1.7.4 密码只是信息安全的一部分16
1.8 本章小结16
1.9 小测验的答案17
第2章 历史上的密码——写一篇别人看不懂的文章19
2.1 本章学习的内容20
2.2 恺撒密码20
2.2.1 什么是恺撒密码21
2.2.2 恺撒密码的加密21
2.2.3 恺撒密码的解密22
2.2.4 用暴力破解来破译密码23
2.3 简单替换密码24
2.3.1 什么是简单替换密码24
2.3.2 简单替换密码的加密25
2.3.3 简单替换密码的解密26
2.3.4 简单替换密码的密钥空间26
2.3.5 用频率分析来破译密码26
2.4 Enigma31
2.4.1 什么是Enigma31
2.4.2 用Enigma进行加密通信31
2.4.3 Enigma的构造32
2.4.4 Enigma的加密34
2.4.5 每日密码与通信密码36
2.4.6 避免通信错误36
2.4.7 Enigma的解密36
2.4.8 Enigma的弱点38
2.4.9 Enigma的破译38
2.5 思考40
2.5.1 为什么要将密码算法和密钥分开呢40
2.6 本章小结41
2.7 小测验的答案42
第3章 对称密码(共享密钥密码)——用相同的密钥进行加密和解密45
3.1 炒鸡蛋与对称密码46
3.2 本章学习的内容46
3.3 从文字密码到比特序列密码46
3.3.1 编码46
3.3.2 XOR47
3.4 一次性密码本——绝对不会被破译的密码50
3.4.1 什么是一次性密码本50
3.4.2 一次性密码本的加密50
3.4.3 一次性密码本的解密51
3.4.4 一次性密码本是无法破译的51
3.4.5 一次性密码本为什么没有被使用52
3.5 DES53
3.5.1 什么是DES53
3.5.2 加密和解密54
3.5.3 DES的结构(Feistel网络)54
3.6 三重DES60
3.6.1 什么是三重DES60
3.6.2 三重DES的加密60
3.6.3 三重DES的解密63
3.6.4 三重DES的现状64
3.7 AES的选定过程64
3.7.1 什么是AES65
3.7.2 AES的选定过程65
3.7.3 AES最终候选算法的确定与AES的最终确定65
3.8 Rijndael66
3.8.1 什么是Rijndael66
3.8.2 Rijndael的加密和解密66
3.8.3 Rijndael的破译68
3.8.4 应该使用哪种对称密码呢68
3.9 本章小结70
3.10 小测验的答案71
第4章 分组密码的模式——分组密码是如何迭代的73
4.1 本章学习的内容74
4.2 分组密码的模式75
4.2.1 分组密码与流密码75
4.2.2 什么是模式75
4.2.3 明文分组与密文分组76
4.2.4 主动攻击者Mallory76
4.3 ECB模式77
4.3.1 什么是ECB模式77
4.3.2 ECB模式的特点78
4.3.3 对ECB模式的攻击78
4.4 CBC模式80
4.4.1 什么是CBC模式80
4.4.2 初始化向量81
4.4.3 CBC模式的特点82
4.4.4 对CBC模式的攻击82
4.4.5 CBC的应用实例84
4.5 CFB模式85
4.5.1 什么是CFB模式85
4.5.2 初始化向量86
4.5.3 CFB模式与流密码86
4.5.4 CFB模式的解密87
4.5.5 对CFB模式的攻击87
4.6 OFB模式88
4.6.1 什么是OFB模式88
4.6.2 初始化向量89
4.6.3 CFB模式与OFB模式的对比89
4.7 CTR模式90
4.7.1 计数器的生成方法92
4.7.2 OFB模式与CTR模式的对比92
4.7.3 CTR模式的特点92
4.7.4 错误与机密性93
4.8 应该使用哪种模式呢93
4.9 本章小结94
4.10 小测验的答案95
第5章 公钥密码——用公钥加密,用私钥解密97
5.1 投币寄物柜的使用方法98
5.2 本章学习的内容98
5.3 密钥配送问题98
5.3.1 什么是密钥配送问题98
5.3.2 通过事先共享密钥来解决100
5.3.3 通过密钥分配中心来解决101
5.3.4 通过Diffie-Hellman密钥交换来解决密钥配送问题102
5.3.5 通过公钥密码来解决密钥配送问题102
5.4 公钥密码103
5.4.1 什么是公钥密码103
5.4.2 公钥密码的历史104
5.4.3 公钥通信的流程104
5.4.4 各种术语106
5.4.5 公钥密码无法解决的问题106
5.5 时钟运算106
5.5.1 加法107
5.5.2 减法109
5.5.3 乘法110
5.5.4 除法110
5.5.5 乘方114
5.5.6 对数114
5.5.7 从时钟指针到RSA115
5.6 RSA116
5.6.1 什么是RSA116
5.6.2 RSA加密116
5.6.3 RSA解密117
5.6.4 生成密钥对118
5.6.5 具体实践一下吧121
5.7 对RSA的攻击124
5.7.1 通过密文来求得明文124
5.7.2 通过暴力破解来找出D124
5.7.3 通过E和N求出D125
5.7.4 中间人攻击126
5.8 其他公钥密码128
5.8.1 ElGamal方式128
5.8.2 Rabin方式128
5.8.3 椭圆曲线密码128
5.9 关于公钥密码的问答128
5.9.1 公钥密码的机密性129
5.9.2 公钥密码与对称密码的密钥长度129
5.9.3 对称密码的未来129
5.9.4 RSA与质数130
5.9.5 RSA与质因数分解130
5.9.6 RSA的长度131
5.10 本章小结132
5.11 小测验的答案133
第6章 混合密码系统——用对称密码提高速度,用公钥密码保护会话密钥135
6.1 混合动力汽车136
6.2 本章学习的内容136
6.3 混合密码系统136
6.3.1 对称密码与公钥密码136
6.3.2 混合密码系统137
6.3.3 加密138
6.3.4 解密140
6.3.5 混合密码系统的具体例子141
6.4 怎样才是高强度的混合密码系统141
6.4.1 伪随机数生成器141
6.4.2 对称密码142
6.4.3 公钥密码142
6.4.4 密钥长度的平衡142
6.5 密码技术的组合142
6.6 本章小结143
6.7 小测验的答案144
第2部分 认证 145
第7章 单向散列函数——获取消息的“指纹”147
7.1 本章学习的内容148
7.2 什么是单向散列函数148
7.2.1 这个文件是不是真的呢148
7.2.2 什么是单向散列函数151
7.2.3 单向散列函数的性质153
7.2.4 关于术语156
7.3 单向散列函数的实际应用157
7.3.1 检测软件是否被篡改157
7.3.2 基于口令的加密159
7.3.3 消息认证码159
7.3.4 数字签名159
7.3.5 伪随机数生成器159
7.3.6 一次性口令159
7.4 单向散列函数的具体例子160
7.4.1 MD4、MD5160
7.4.2 SHA-1、SHA-256、SHA-384、SHA-512160
7.4.3 RIPEMD-160160
7.4.4 AHS(Advanced Hash Standard)与SHA-3161
7.5 单向散列函数SHA-1161
7.5.1 整体流程161
7.5.2 (1) SHA-1:填充162
7.5.3 (2) SHA-1:计算W0~W79164
7.5.4 (3) SHA-1:分组处理165
7.5.5 (4) SHA-1:单步处理167
7.6 对单向散列函数的攻击168
7.6.1 暴力破解(攻击故事1)168
7.6.2 生日攻击(攻击故事2)170
7.7 单向散列函数无法解决的问题172
7.8 本章小结173
7.9 小测验的答案173
第8章 消息认证码——消息被正确传送了吗177
8.1 本章学习的内容178
8.2 消息认证码178
8.2.1 汇款请求是正确的吗178
8.2.2 什么是消息认证码179
8.2.3 消息认证码的使用步骤180
8.2.4 消息认证码的密钥配送问题180
8.3 消息认证码的应用实例181
8.3.1 SWIFT181
8.3.2 IPsec181
8.3.3 SSL/TLS182
8.4 消息认证码的实现方法182
8.4.1 使用单向散列函数实现182
8.4.2 使用分组密码实现182
8.4.3 其他实现方法182
8.5 HMAC的详细介绍182
8.5.1 什么是HMAC182
8.5.2 HMAC的步骤183
8.6 对消息认证码的攻击185
8.6.1 重放攻击185
8.6.2 密钥推测攻击187
8.7 消息认证码无法解决的问题188
8.7.1 对第三方证明188
8.7.2 防止否认188
8.8 本章小结189
8.9 小测验的答案189
第9章 数字签名——消息到底是谁写的191
9.1 羊妈妈的认证192
9.2 本章学习的内容192
9.3 数字签名192
9.3.1 Alice的借条192
9.3.2 从消息认证码到数字签名193
9.3.3 签名的生成和验证194
9.3.4 公钥密码与数字签名195
9.4 数字签名的方法197
9.4.1 直接对消息签名的方法197
9.4.2 对消息的散列值签名的方法199
9.5 对数字签名的疑问202
9.5.1 密文为什么能作为签名使用202
9.5.2 数字签名不能保证机密性吗202
9.5.3 这种签名可以随意复制吗203
9.5.4 消息内容会不会被任意修改203
9.5.5 签名会不会被重复使用204
9.5.6 删除签名也无法“作废合同”吗204
9.5.7 如何防止否认205
9.5.8 数字签名真的能够代替签名吗205
9.6 数字签名的应用实例206
9.6.1 安全信息公告206
9.6.2 软件下载207
9.6.3 公钥证书208
9.6.4 SSL/TLS208
9.7 通过RSA实现数字签名208
9.7.1 用RSA生成签名208
9.7.2 用RSA验证签名209
9.7.3 具体实践一下吧209
9.8 其他的数字签名210
9.8.1 ElGamal方式210
9.8.2 DSA210
9.8.3 Rabin方式211
9.9 对数字签名的攻击211
9.9.1 中间人攻击211
9.9.2 对单向散列函数的攻击212
9.9.3 利用数字签名攻击公钥密码212
9.9.4 其他攻击213
9.10 各种密码技术的对比213
9.10.1 消息认证码与数字签名213
9.10.2 混合密码系统与对散列值签名214
9.11 数字签名无法解决的问题214
9.12 本章小结215
9.13 小测验的答案216
第10章 证书——为公钥加上数字签名217
10.1 本章学习的内容218
10.2 证书218
10.2.1 什么是证书218
10.2.2 证书的应用场景218
10.3 实际生成一张证书221
10.3.1 VeriSign的免费试用服务221
10.3.2 生成证书221
10.3.3 将证书从Web浏览器中导出224
10.3.4 证书的内容224
10.3.5 证书标准规范X.509224
10.4 公钥基础设施(PKI)228
10.4.1 什么是公钥基础设施228
10.4.2 PKI的组成要素228
10.4.3 认证机构的工作230
10.4.4 证书的层级结构231
10.4.5 各种各样的PKI233
10.5 对证书的攻击234
10.5.1 在公钥注册之前进行攻击234
10.5.2 注册相似人名进行攻击234
10.5.3 窃取认证机构的私钥进行攻击235
10.5.4 攻击者伪装成认证机构进行攻击235
10.5.5 钻CRL的空子进行攻击(1)236
10.5.6 钻CRL的空子进行攻击(2)237
10.6 关于证书的Q&A238
10.6.1 为什么需要证书238
10.6.2 通过自己的方法进行认证是不是更安全239
10.6.3 为什么要相信认证机构240
10.7 本章小结241
10.8 小测验的答案242
第3部分 密钥、随机数与应用技术 243
第11章 密钥——秘密的精华245
11.1 本章学习的内容246
11.2 什么是密钥246
11.2.1 密钥就是一个巨大的数字246
11.2.2 密钥与明文是等价的248
11.2.3 密码算法与密钥248
11.3 各种不同的密钥248
11.3.1 对称密码的密钥与公钥密码的密钥248
11.3.2 消息认证码的密钥与数字签名的密钥249
11.3.3 用于确保机密性的密钥与用于认证的密钥250
11.3.4 会话密钥与主密钥251
11.3.5 用于加密内容的密钥与用于加密密钥的密钥252
11.4 密钥的管理252
11.4.1 生成密钥252
11.4.2 配送密钥253
11.4.3 更新密钥253
11.4.4 保存密钥254
11.4.5 作废密钥256
11.5 Diffie-Hellman密钥交换256
11.5.1 什么是Diffie-Hellman密钥交换256
11.5.2 Diffie-Hellman密钥交换的步骤257
11.5.3 Eve能计算出密钥吗259
11.5.4 生成元的意义259
11.5.5 具体实践一下260
11.6 基于口令的密码(PBE)262
11.6.1 什么是基于口令的密码262
11.6.2 PBE加密263
11.6.3 PBE解密264
11.6.4 盐的作用266
11.6.5 口令的作用266
11.6.6 PBE的改良267
11.7 如何生成安全的口令268
11.7.1 使用只有自己才能知道的信息268
11.7.2 将多个不同的口令分开使用269
11.7.3 有效利用笔记269
11.7.4 理解口令的局限性269
11.8 本章小结270
11.9 小测验的答案271
第12章 随机数——不可预测性的源泉273
12.1 骡子的锁匠铺274
12.2 本章学习的内容274
12.3 使用随机数的密码技术274
12.3.1 随机数是干什么用的274
12.4 随机数的性质275
12.4.1 对随机数的性质进行分类275
12.4.2 随机性276
12.4.3 不可预测性277
12.4.4 不可重现性277
12.5 伪随机数生成器278
12.5.1 伪随机数生成器的结构278
12.6 具体的伪随机数生成器280
12.6.1 杂乱的方法280
12.6.2 线性同余法280
12.6.3 单向散列函数法283
12.6.4 密码法286
12.6.5 ANSI X9.17287
12.7 对伪随机数生成器的攻击290
12.7.1 对种子进行攻击290
12.7.2 对随机数池进行攻击290
12.8 本章小结290
12.9 小测验的答案291
第13章 PGP ——密码技术的完美组合293
13.1 本章学习的内容294
13.2 PGP简介294
13.2.1 什么是PGP294
13.2.2 PGP的功能295
13.3 生成密钥对297
13.4 加密与解密299
13.4.1 加密299
13.4.2 解密301
13.5 生成和验证数字签名304
13.5.1 生成数字签名304
13.5.2 验证数字签名306
13.6 生成数字签名并加密以及解密并验证数字签名309
13.6.1 生成数字签名并加密309
13.6.2 解密并验证数字签名309
13.7 信任网313
13.7.1 公钥合法性313
13.7.2 场景1:通过自己的数字签名进行确认313
13.7.3 场景2:通过自己完全信任的人的数字签名进行确认314
13.7.4 场景3:通过自己有限信任的多个人的数字签名进行确认315
13.7.5 公钥合法性与所有者信任是不同的316
13.7.6 所有者信任级别是因人而异的316
13.8 本章小结318
13.9 小测验的答案318
第14章 SSL/TLS ——为了更安全的通信321
14.1 本章学习的内容322
14.2 什么是SSL/TLS322
14.2.1 Alice在Bob书店买书322
14.2.2 客户端与服务器323
14.2.3 用SSL/TLS承载HTTP324
14.2.4 SSL/TLS的工作325
14.2.5 SSL/TLS也可以保护其他的协议326
14.2.6 密码套件326
14.2.7 SSL与TLS的区别327
14.3 使用SSL/TLS进行通信327
14.3.1 层次化的协议327
14.3.2 1 TLS记录协议329
14.3.3 2-1 握手协议330
14.3.4 2-2 密码规格变更协议336
14.3.5 2-3 警告协议337
14.3.6 2-4 应用数据协议337
14.3.7 主密码337
14.3.8 TLS中使用的密码技术小结338
14.4 对SSL/TLS的攻击339
14.4.1 对各个密码技术的攻击339
14.4.2 对伪随机数生成器的攻击339
14.4.3 利用证书的时间差进行攻击340
14.5 SSL/TLS用户的注意事项340
14.5.1 不要误解证书的含义340
14.5.2 密码通信之前的数据是不受保护的340
14.5.3 密码通信之后的数据是不受保护的340
14.6 本章小结341
14.7 小测验的答案342
第15章 密码技术与现实社会——我们生活在不完美的安全中.343
15.1 本章学习的内容344
15.2 密码技术小结344
15.2.1 密码学家的工具箱344
15.2.2 密码与认证346
15.2.3 密码技术的框架化346
15.2.4 密码技术与压缩技术346
15.3 追寻完美的密码技术348
15.3.1 量子密码349
15.3.2 量子计算机350
15.3.3 哪一种技术会率先进入实用领域350
15.4 只有完美的密码,没有完美的人350
15.4.1 理论是完美的,现实是残酷的351
15.4.2 防御必须天衣无缝,攻击只需突破一点351
15.4.3 攻击实例1:经过PGP加密的电子邮件352
15.4.4 攻击实例2:用SSL/TLS加密的信用卡号353
15.5 本章小结354
附录 密码技术综合测验355
参考文献365
3-6岁-火车-亲亲科学图书馆 本书特色 “各位旅客,车门即将关闭,请您注意安全!”车厢里,乘客们各就各位。月台上,值班站长吹响口哨,催促着晚到的旅客迅速上车。...
古代世界 本书特色 本书将带领你踏上一次穿越一万年历史的旅程,起点是*早的农业生产者,终点是罗马帝国的衰落。书中的大部分事件发生在耶稣出生之前,这些年代均以“公...
爱因斯坦全集第一卷(早年时期1879-1902) 内容简介 本卷披露的文献所涉及的时期,是从爱因斯坦诞生到他在瑞士专利局就业为止。这些原文大部分以前从未发表过,...
灾害预兆 本书特色 应急减灾系列丛书之一。本书根据大灾的目击者提供的资料编写,概括总结了自然灾害发生前的种种异常现象,语言生动,通俗易懂,有的还配有实例。为广大...
《分类唐诗三百首》内容简介:本书是《唐诗三百首》的重编注释本,它有三个优点:一、它纠正了原书中的错误,恢复了诗歌的本来面目
埋在雪下的小屋 目录 1、鱼鹰2、第十一根红布条3、守夜4、海牛5、埋在雪下的小屋附录埋在雪下的小屋 节选 阳光下的雪山,闪着纯净的、蓝银色的光。它巍然矗立,像...
量子世代 本书特色 《量子世代》相当扼要、极度浓缩和有选择地介绍了20世纪的物理学。 全书分三个大的按时序编撰的部分:**部分涵盖从19世纪90年代到1918年...
《黑色方尖碑》内容简介:☆20世纪顶尖小说家,拥有读者最多的德语作家之一。☆茨威格、君特·格拉斯推崇的大师,林语堂、巴金鼎力
《记忆与遗忘之间》内容简介:你是否遇到过这样的场景:你走在路上,迎面走来一个人向你打招呼,你虽然也微笑着回应,但却怎么也想
世界历史大冒险 征战岁月 本书特色 令人兴奋而激动的历史大冒险,即将在你眼前展开。你将和著名海盗头子横行海上,驾驶轰炸机与敌方殊死搏斗,接受秘密使命卧底黑帮,甚...
《化石:洪荒时代的印记》是一本化石入门和古生物学研究方面的综合指南。资深古生物学家理查德?福提用浅显易懂的语言为我们讲述了
《就事论理》内容简介:本书坚持以问题为导向,按照人们在生活和工作中经常碰到的问题分为12个专题,以100多个独立的小故事,结合作
科技动起来-有趣的 DK 儿童百科 本书特色 本书从我们怎样看,到我们怎样听;从翻滚过山车到电脑网络,带你探索我们周围事物的工作原理。你知道数码相机是如何拍照的...
《用数学魔法改变人生》内容简介:这是一本会让你对数学刮目相看并充满喜爱的书,还能帮助你每天做出大大小小的决定! 你是否认为学
地球历险记 本书特色 ★ 12开精装,长江少年儿童出版社出版★ 引进自欧洲知名出版传媒集团艾格盟,作者拥有深厚的剑桥大学学术背景★ 讲述了关于地球的知识,对地球...
儿童情绪管理与性格培养绘本:爸爸妈妈.快回来吧! 本书特色在父母出门期间,泰勒得去他*好的朋友辛迪家住几天。他们一起玩游戏,泰勒还很喜欢辛迪浴缸里的帆船和睡前的...
德国精选科学图画书-全套2本 本书特色 畅销德国十六年的经典绘本!用*令人惊讶的想象力和*令人大笑的情节,创造*亲近孩子的科学图画书!在两个孩子的要求下,这本书...
《晦侬往事》内容简介:处于二十世纪中期的中国知识分子,无不经受严重的考验。周素子也不例外。她才华横溢,却被打成“人民的敌人
《仿生的秘密》内容简介:聪明的人类经常从自然现象中得到启发,研制出各种新的产品或技术,不断丰富着人们的生活世界。本书针对青
元素生活 本书特色 ★广告上让你补锌补铁? 传言里让你赶紧补碘?快来看!你的身体到底需要哪些元素?让你成为:生活中的化学元素通 自己和家人的元素营养师 ...