本书以图配文的形式,详细讲解了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
《免疫》内容简介:本书由三十篇文笔优雅、思想深入的文章构成,讨论了众所关注的“免疫”及“接种”等问题。本书作者尤拉·比斯新
丛林里的动物们 本书特色 《丛林里的动物们》是一本以丛林里的动物一天的生活为主题的翻翻地板书,打开书平放在地板上,孩子便可以趴在书上,跟着文字提示,寻找隐藏在翻...
大艺术家写给小朋友的动物书(全10册) 本书特色 ★ 16开平装,浙江少年儿童出版社出版★ 法国著名的艺术家、图画书作家蒂埃里·德迪厄创作,他在法国享有盛名,曾...
《生命的运作方式》内容简介:一个生物学家,一个画家,因为对生命有着同样的痴迷,所以产生了这本科学与艺术结合的杰作。本书从微
《导弹》内容简介:导弹武器是现代高科技的结晶和化身,其威力大、射程远、精度高、突防能力强,是一种具有超强进攻性和强大威慑力
3-6岁-快乐的牧羊人-一一对应-爆米花数学童话 本书特色 我是快乐的牧羊人。圆滚滚、毛茸茸、白皑皑的绵羊是我的好朋友。我是聪明的牧羊人。在口袋里放上和羊一样多...
《秘密花园》内容简介:书中的小主人公叫玛丽。玛丽出生在印度,是个相貌平庸、脾气倔犟、人见人厌的姑娘,她对什么都没兴趣,对一
德国少年儿童百科知识全书:什么是什么之宠物天地(第九辑) 本书特色 猫、狗、啮齿类小动物、鸟儿、金鱼、小乌龟,甚至还有蛇,都可以当作宠物饲养。观察它们的生活,不...
《第一推动丛书·物理系列:不同的宇宙(新版)》内容简介:《不同的宇宙》是一本真正具有启智意义的书,它向我们证明,为什么我们
《虚拟现实:沉浸于VR梦境》内容简介:当今世界科学技术日新月异,例如3D打印、工业4.0、智能家居等新兴技术层出不穷,无一不在重新
夏-森林报-经典美绘版 本书特色 苏联著名的自然科学家——维·比安基从小就对大自然产生了浓厚的兴趣,27岁的时候,他就已经记录了大量动植物的观察日记。在此后30...
凝看海洋 本书特色 文学与科学在这套丛书里相遇并融合,这种崭新别致,独具匠心的创作形式将深奥的地球科学真正带给大众。读罢这套书。或许会有孩子从此首迷于大地山河,...
最新彩绘注音版十万个为什么 地理与气象 内容简介 《*新彩绘注音版·十万个为什么-地理与气象》,本书是“*新彩绘注音版·十万个为什么”中的一册,全书共8册,本册...
《完美的红》讲述了胭脂虫红染料的传奇故事,那曾是世界上最贵重的商品之一。胭脂虫红一直被古代墨西哥人珍藏,直到16世纪,这种
小牛顿科学全知道-16 本书特色 我们生活的周边经常不经意就出现一些或惹人喜爱,或惹人厌烦的小客人,它们到底是如何做到不经我们允许,就住进我们家里来,并且在我们...
365天奇幻动物志-下一页.遇见你 本书特色 《365天动物奇幻志》采用有趣的台历体结构,每一页便是一天,每天为读者介绍一种或新奇、或可爱、或罕见的动物。漂亮的...
小熊维尼谈心理学 本书特色 本书是世界级畅销书,本书有个快乐的任务,就是让小熊维尼带大家认识心理学,看维尼扮演心理治疗者的角色,帮助动物森林的主角们快乐生活。小...
香香的春天-双语版 本书特色 带孩子感受四季的美妙与不同,让孩子带着好奇探索世界,亲近自然,探寻大自然的秘密!1. 描述并展示了每个季节中*重要、*吸引人的特征...
孩子最想知道的秘密-上辑-(全六册)-低幼版 本书特色 ●11个与主题相关的精美双页面,充分吸引孩子的视觉 ●5个与大插图直接有关的问题,抓住孩子的好奇心●每页...
亚瑟小子环保小卫士 本书特色 《亚瑟小子系列》是世界知名品牌美国兰登书屋出版的一套少儿读物,行销欧美国家数十年,深受孩子和家长们的青睐。故事题材源...