本书以图配文的形式,详细讲解了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
别莱利曼趣味科学 趣味物理思考题 本书特色 《别莱利曼趣味科学系列》堪称世界经典科普名著,本系列收录了他一生中创作的*经典的趣味科学作品,包括物理学、数学等,跟...
《从历史中汲取智慧——为什么要学习中国近代史》内容简介:近代中国在鸦片战争和甲午战争之后,面临着前所未有的变局。历经戊戌变
物种起源-世界科普文学经典-美绘本 本书特色 《物种起源》是英国博物学家达尔文的代表作。该书**次把生物学建立在完全科学的基础上,推翻了“神创论”和“物种不变论...
《自私的人类》内容简介:一部给21世纪人类的科学版“警世通言”!一口气读完人类从入世到入土的进化历程。☆“碰瓷”道金斯《自私
量子的不确定性:量子物理5/红袋鼠物理千千问 本书特色 本系列图书为幼儿版的物理学系列科普绘本。作者克里斯•费里(Chris Ferrie)是加拿大的...
《正义与批评》内容简介:《正义与批评》是1991年三位学生对约翰·罗尔斯的采访稿,这次对话可看作罗尔斯口述的自传,极其珍贵。这
脊椎动物话古今 内容简介 这部脊椎动物进化史是五彩缤纷、错综复杂的“大书”,可因为限于篇幅,未能在此一一细说。这里献给读者的,只是脊椎动物化史中一些重要的、有意...
葡萄酒的自然史 本书特色 一杯美酒可以激发大脑的灵感。这样的场景经常出现在美国自然历史博物馆的两位大科学家伊恩·塔特索尔和罗布·德萨勒的工作中,他俩在写书以及策...
可怕的科学破案术大全 本书特色 全球同步发行,少年科普金牌读本!荣获世界*著名科普图书大奖安万特奖!欧洲**少儿科普作家倾力打造!北京少年儿童出版社隆重推出!本...
恐龙.恐龙.我问你 本书特色 好奇的小读者有各种各样关于恐龙的问题,却没有人能够回答?没关系,现在这些远古时期的庞然大物来面对面地回答小读者啦!一问一答的形式轻...
海豚绘本 魔法师家的小精怪 本书特色 ★ 欧洲家喻户晓、代代相传的经典:充盈着无尽的想象力,故事中蕴含故事,意蕴无穷★ 童话般的故事,寓言式的情节,引导孩子思考...
权威探秘百科 地球探秘 本书特色 《地球探秘:海洋·极地·太空(加强版)》:历史探秘 地球探秘 动物探秘科学探秘 自然探秘 恐龙·猎食者探秘*新鲜的百科知识,*...
疯狂大脑-可怕的科学·非常实验 内容简介 “可怕的科学”是英国经典少儿科普读物,全书共10册,分为“非常实验”和“另类历史”两大类别,是英国*新推出的全新彩图本...
工业血液:石油:the blood of industry 内容简介 《斛读地球密码》科普丛书分为地质、地貌和矿产3个系列,共计36册,包含地质、地史、古生物、...
改变世界的发明-趣味模型立体书 本书特色一项项激动人心的发明,一段段趣味科学的讲述,一个个精彩直观的立体模型……让这本趣味模型立体书带你走进人类的发明历史,在那...
《银行柜面业务》内容简介:本书分为八个模块,主要包括“临柜柜员基础知识”、“钱箱、重要单证、印章、密押的管理”、“日初业务
外科医生手记:生命的脸 内容简介 生命属于我们每一个人,却很少人能认清生命真实的面孔。手术台上的生死搏斗,病房里的起死回生,患者的病痛与悲伤,医生的天职与良知…...
《成功的失败者:张学良传》内容简介:为张学良写口述史的历史学家唐德刚说:“张学良政治生涯中后一记杀手锏的西安事变,简直扭转
趣味地球化学 内容简介 本书是著名苏联科学家、地球化学的创立人阿·费尔斯曼的科普著作。著者通过描绘神奇的原子世界,介绍自然界里的化学元素,讲解原子在地球里迁移和...
水母-小牛顿趣味动物馆 本书特色 适读人群 :3-6岁加拿大国宝级童书,全球销量突破1000万册,获加拿大总督文学奖等10余项大奖水母-小牛顿趣味动物馆 内容简...