内容简介
本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。第一部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第二部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第三部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。
编辑推荐:
2014年日本数学协会出版奖得主、《程序员的数学》作者 结城浩重磅力作用通俗的语言,讲清楚复杂的事
拒绝繁冗的数学公式和干巴巴的理论,无需编程基础,配图讲解,真的很好懂!
全面涵盖现代密码技术,对称密码、公钥密码、单向散列函数、消息认证码、数字签名、伪随机数生成器、量子密码、量子计算机,一网打尽。
课后趣味练习题,巩固理解
作者简介:
日本资深技术作家和程序员。20年来笔耕不辍,在编程语言、设计模式、数学、密码技术等领域,编写着作三十余本。代表作有《数学女孩》系列、《程序员的数学》等。作者主页:http://www.hyuki.com/
简介:
中文名: 图解密码技术
作者: (日)结城浩
译者: 周自恒
图书分类: 网络
资源格式: PDF
版本: 扫描版
出版社: 人民邮电出版社
书号: 9787115373625
发行时间: 2015年01月01日
地区: 大陆
语言: 简体中文
内容截图:
内容简介:
本书以图配文的形式,详细讲解了6种重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪*数生成器。 第1部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥密码、混合密码系统。第2部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第3部分讲述了密钥、*数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。 第3版对旧版内容进行了大幅更新,并新增POODLE攻击、心脏出血漏洞、Superfish事件、SHA-3竞赛、Keccak、认证加密、椭圆曲线密码、比特币等内容。作者简介:
结城浩(作者)生于1963年,日本杰出技术作家和程序员。在编程语言、设计模式、数学、加密技术等领域,编写了很多深受欢迎的入门书。代表作有《数学女孩》系列、《程序员的数学》等。周自恒(译者) IT、编程爱好者,初中时曾在NOI(国家信息学奥赛)天津赛区获一等奖,现就职于 某管理咨询公司,任咨询顾问兼战略技术总监。译着有《图解CIO工作指南(第4版)》《大数据的冲击》《代码的未来》《30天自制操作系统》《家用游戏机简史》《有趣的二进制》等。
目 录:
第1部分密码1第1章环游密码世界3
1.1本章学习的内容4
1.2密码4
1.2.1Alice与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.4Enigma31
2.4.1什么是Enigma31
2.4.2用Enigma进行加密通信31
2.4.3Enigma的构造32
2.4.4Enigma的加密34
2.4.5每日密码与通信密码36
2.4.6避免通信错误36
2.4.7Enigma的解密36
2.4.8Enigma的弱点38
2.4.9Enigma的破译38
2.5思考40
2.6本章小结41
2.7小测验的答案42
第3章对称密码(共享密钥密码) 用相同的密钥进行加密和解密45
3.1炒鸡蛋与对称密码46
3.2本章学习的内容46
3.3从文字密码到比特序列密码46
3.3.1编码46
3.3.2XOR47
3.4一次性密码本 绝对不会被破译的密码50
3.4.1什么是一次性密码本50
3.4.2一次性密码本的加密50
3.4.3一次性密码本的解密51
3.4.4一次性密码本是无法破译的51
3.4.5一次性密码本为什么没有被使用52
3.5DES53
3.5.1什么是DES53
3.5.2加密和解密54
3.5.3DES的结构(Feistel网络)54
3.5.4差分分析与线性分析60
3.6三重DES61
3.6.1什么是三重DES61
3.6.2三重DES的加密61
3.6.3三重DES的解密63
3.6.4三重DES的现状64
3.7AES的选定过程65
3.7.1什么是AES65
3.7.2AES的选拔过程65
3.7.3AES最终候选算法的确定与AES的最终确定66
3.8Rijndael66
3.8.1什么是Rijndael66
3.8.2Rijndael的加密和解密67
3.8.3Rijndael的破译71
3.8.4应该使用哪种对称密码呢71
3.9本章小结72
3.10小测验的答案73
第4章分组密码的模式 分组密码是如何迭代的75
4.1本章学习的内容76
4.2分组密码的模式77
4.2.1分组密码与流密码77
4.2.2什么是模式77
4.2.3明文分组与密文分组78
4.2.4主动攻击者Mallory78
4.3ECB模式79
4.3.1什么是ECB模式79
4.3.2ECB模式的特点80
4.3.3对ECB模式的攻击80
4.4CBC模式82
4.4.1什么是CBC模式82
4.4.2初始化向量83
4.4.3CBC模式的特点84
4.4.4对CBC模式的攻击84
4.4.5填充提示攻击86
4.4.6对初始化向量(IV)进行攻击86
4.4.7CBC模式的应用实例86
4.5CFB模式88
4.5.1什么是CFB模式88
4.5.2初始化向量89
4.5.3CFB模式与流密码89
4.5.4CFB模式的解密90
4.5.5对CFB模式的攻击90
4.6OFB模式91
4.6.1什么是OFB模式91
4.6.2初始化向量92
4.6.3CFB模式与OFB模式的对比92
4.7CTR模式93
4.7.1计数器的生成方法95
4.7.2OFB模式与CTR模式的对比95
4.7.3CTR模式的特点95
4.7.4错误与机密性96
4.8应该使用哪种模式呢96
4.9本章小结97
4.10小测验的答案98
第5章公钥密码 用公钥加密,用私钥解密101
5.1投币寄物柜的使用方法102
5.2本章学习的内容102
5.3密钥配送问题102
5.3.1什么是密钥配送问题102
5.3.2通过事先共享密钥来解决104
5.3.3通过密钥分配中心来解决105
5.3.4通过Diffie-Hellman密钥交换来解决密钥配送问题106
5.3.5通过公钥密码来解决密钥配送问题106
5.4公钥密码107
5.4.1什么是公钥密码107
5.4.2公钥密码的历史108
5.4.3公钥通信的流程108
5.4.4各种术语110
5.4.5公钥密码无法解决的问题110
5.5时钟运算110
5.5.1加法111
5.5.2减法113
5.5.3乘法114
5.5.4除法114
5.5.5乘方118
5.5.6对数118
5.5.7从时钟指针到RSA119
5.6RSA120
5.6.1什么是RSA120
5.6.2RSA加密120
5.6.3RSA解密121
5.6.4生成密钥对122
5.6.5具体实践一下吧125
5.7对RSA的攻击128
5.7.1通过密文来求得明文128
5.7.2通过暴力破解来找出D128
5.7.3通过E和N求出D129
5.7.4中间人攻击130
5.7.5选择密文攻击132
5.8其他公钥密码133
5.8.1ElGamal方式133
5.8.2Rabin方式133
5.8.3椭圆曲线密码133
5.9关于公钥密码的Q A133
5.9.1公钥密码的机密性134
5.9.2公钥密码与对称密码的密钥长度134
5.9.3对称密码的未来135
5.9.4RSA与质数135
5.9.5RSA与质因数分解136
5.9.6RSA的长度136
5.10本章小结138
5.11小测验的答案139
第6章混合密码系统 用对称密码提高速度,用公钥密码保护会话密钥141
6.1混合动力汽车142
6.2本章学习的内容142
6.3混合密码系统142
6.3.1对称密码与公钥密码142
6.3.2混合密码系统143
6.3.3加密144
6.3.4解密146
6.3.5混合密码系统的具体例子147
6.4怎样才是高强度的混合密码系统147
6.4.1伪随机数生成器147
6.4.2对称密码148
6.4.3公钥密码148
6.4.4密钥长度的平衡148
6.5密码技术的组合148
6.6本章小结149
6.7小测验的答案150
第2部分 认证151
第7章单向散列函数 获取消息的 指纹 153
7.1本章学习的内容154
7.2什么是单向散列函数154
7.2.1这个文件是不是真的呢154
7.2.2什么是单向散列函数157
7.2.3单向散列函数的性质159
7.2.4关于术语162
7.3单向散列函数的实际应用163
7.3.1检测软件是否被篡改163
7.3.2基于口令的加密165
7.3.3消息认证码165
7.3.4数字签名165
7.3.5伪随机数生成器165
7.3.6一次性口令165
7.4单向散列函数的具体例子166
7.4.1MD4、MD5166
7.4.2SHA-1、SHA-256、SHA-384、SHA-512166
7.4.3RIPEMD-160167
7.4.4SHA-3167
7.5SHA-3的选拔过程168
7.5.1什么是SHA-3168
7.5.2SHA-3的选拔过程168
7.5.3SHA-3最终候选名单的确定与SHA-3的最终确定168
7.6Keccak169
7.6.1什么是Keccak169
7.6.2海绵结构170
7.6.3双工结构171
7.6.4Keccak的内部状态172
7.6.5函数Keccak-f [b ]174
7.6.6对Keccak的攻击177
7.6.7对缩水版Keccak的攻击竞赛177
7.7应该使用哪种单向散列函数呢178
7.8对单向散列函数的攻击178
7.8.1暴力破解(攻击故事1)178
7.8.2生日攻击(攻击故事2)180
7.9单向散列函数无法解决的问题182
7.10本章小结183
7.11小测验的答案184
第8章消息认证码 消息被正确传送了吗187
8.1本章学习的内容188
8.2消息认证码188
8.2.1汇款请求是正确的吗188
8.2.2什么是消息认证码189
8.2.3消息认证码的使用步骤190
8.2.4消息认证码的密钥配送问题190
8.3消息认证码的应用实例191
8.3.1SWIFT191
8.3.2IPsec191
8.3.3SSL/TLS192
8.4消息认证码的实现方法192
8.4.1使用单向散列函数实现192
8.4.2使用分组密码实现192
8.4.3其他实现方法192
8.5认证加密192
8.6HMAC的详细介绍193
8.6.1什么是HMAC193
8.6.2HMAC的步骤194
8.7对消息认证码的攻击196
8.7.1重放攻击196
8.7.2密钥推测攻击198
8.8消息认证码无法解决的问题199
8.8.1对第三方证明199
8.8.2防止否认199
8.9本章小结200
8.10小测验的答案200
第9章数字签名 消息到底是谁写的203
9.1羊妈妈的认证204
9.2本章学习的内容204
9.3数字签名204
9.3.1Alice的借条204
9.3.2从消息认证码到数字签名205
9.3.3签名的生成和验证206
9.3.4公钥密码与数字签名207
9.4数字签名的方法209
9.4.1直接对消息签名的方法209
9.4.2对消息的散列值签名的方法211
9.5对数字签名的疑问214
9.5.1密文为什么能作为签名使用214
9.5.2数字签名不能保证机密性吗214
9.5.3这种签名可以随意复制吗215
9.5.4消息内容会不会被任意修改215
9.5.5签名会不会被重复使用216
9.5.6删除签名也无法 作废合同 吗216
9.5.7如何防止否认217
9.5.8数字签名真的能够代替签名吗217
9.6数字签名的应用实例218
9.6.1安全信息公告218
9.6.2软件下载219
9.6.3公钥证书220
9.6.4SSL/TLS220
9.7通过RSA实现数字签名220
9.7.1用RSA生成签名220
9.7.2用RSA验证签名221
9.7.3具体实践一下吧221
9.8其他的数字签名222
9.8.1ElGamal方式222
9.8.2DSA223
9.8.3ECDSA223
9.8.4Rabin方式223
9.9对数字签名的攻击223
9.9.1中间人攻击223
9.9.2对单向散列函数的攻击224
9.9.3利用数字签名攻击公钥密码224
9.9.4潜在伪造225
9.9.5其他攻击226
9.10各种密码技术的对比226
9.10.1消息认证码与数字签名226
9.10.2混合密码系统与对散列值签名227
9.11数字签名无法解决的问题227
9.12本章小结227
9.13小测验的答案228
第10章证书 为公钥加上数字签名229
10.1本章学习的内容230
10.2证书230
10.2.1什么是证书230
10.2.2证书的应用场景230
10.3实际生成一张证书233
10.3.1赛门铁克的Digital ID免费试用服务233
10.3.2生成证书233
10.3.3显示证书234
10.3.4证书标准规范236
10.4公钥基础设施(PKI)237
10.4.1什么是公钥基础设施237
10.4.2PKI 的组成要素238
10.4.3认证机构的工作240
10.4.4证书的层级结构241
10.4.5各种各样的PKI242
10.5对证书的攻击243
10.5.1在公钥注册之前进行攻击244
10.5.2注册相似人名进行攻击245
10.5.3窃取认证机构的私钥进行攻击245
10.5.4攻击者伪装成认证机构进行攻击246
10.5.5钻CRL的空子进行攻击(1)246
10.5.6钻CRL的空子进行攻击(2)247
10.5.7Superfish248
10.6关于证书的Q A249
10.6.1为什么需要证书249
10.6.2通过自己的方法进行认证是不是更安全250
10.6.3为什么要相信认证机构251
10.7本章小结252
10.8小测验的答案253
第3部分密钥、随机数与应用技术255
第11章密钥 秘密的精华257
11.1本章学习的内容258
11.2什么是密钥258
11.2.1密钥就是一个巨大的数字258
11.2.2密钥与明文是等价的260
11.2.3密码算法与密钥260
11.3各种不同的密钥260
11.3.1对称密码的密钥与公钥密码的密钥260
11.3.2消息认证码的密钥与数字签名的密钥261
11.3.3用于确保机密性的密钥与用于认证的密钥262
11.3.4会话密钥与主密钥263
11.3.5用于加密内容的密钥与用于加密密钥的密钥264
11.4密钥的管理264
11.4.1生成密钥264
11.4.2配送密钥265
11.4.3更新密钥265
11.4.4保存密钥266
11.4.5作废密钥267
11.5Diffie-Hellman密钥交换268
11.5.1什么是Diffie-Hellman密钥交换268
11.5.2Diffie-Hellman密钥交换的步骤268
11.5.3Eve能计算出密钥吗270
11.5.4生成元的意义271
11.5.5具体实践一下272
11.5.6椭圆曲线Diffie-Hellman密钥交换273
11.6基于口令的密码(PBE)274
11.6.1什么是基于口令的密码274
11.6.2PBE加密275
11.6.3PBE解密276
11.6.4盐的作用277
11.6.5口令的作用279
11.6.6通过拉伸来改良PBE279
11.7如何生成安全的口令279
11.7.1使用只有自己才能知道的信息280
11.7.2将多个不同的口令分开使用280
11.7.3有效利用笔记281
11.7.4理解口令的局限性281
11.7.5使用口令生成和管理工具282
11.8本章小结282
11.9小测验的答案283
第12章随机数 不可预测性的源泉285
12.1骡子的锁匠铺286
12.2本章学习的内容286
12.3使用随机数的密码技术286
12.4随机数的性质287
12.4.1对随机数的性质进行分类287
12.4.2随机性288
12.4.3不可预测性289
12.4.4不可重现性289
12.5伪随机数生成器291
12.6具体的伪随机数生成器292
12.6.1杂乱的方法293
12.6.2线性同余法293
12.6.3单向散列函数法296
12.6.4密码法298
12.6.5ANSI X9.17300
12.6.6其他算法302
12.7对伪随机数生成器的攻击303
12.7.1对种子进行攻击303
12.7.2对随机数池进行攻击303
12.8本章小结304
12.9小测验的答案304
第13章PGP 密码技术的完美组合307
13.1本章学习的内容308
13.2PGP 简介308
13.2.1什么是PGP308
13.2.2关于OpenPGP309
13.2.3关于GNU Privacy Guard309
13.2.4PGP的功能310
13.3生成密钥对311
13.4加密与解密314
13.4.1加密314
13.4.2解密316
13.5生成和验证数字签名319
13.5.1生成数字签名319
13.5.2验证数字签名321
13.6生成数字签名并加密以及解密并验证数字签名324
13.6.1生成数字签名并加密324
13.6.2解密并验证数字签名324
13.7信任网328
13.7.1公钥合法性328
13.7.2场景1:通过自己的数字签名进行确认328
13.7.3场景2:通过自己完全信任的人的数字签名进行确认329
13.7.4场景3:通过自己有限信任的多个人的数字签名进行确认330
13.7.5公钥合法性与所有者信任是不同的331
13.7.6所有者信任级别是因人而异的331
13.8本章小结333
13.9小测验的答案333
第14章SSL/TLS 为了更安全的通信335
14.1本章学习的内容336
14.2什么是SSL/TLS336
14.2.1Alice在Bob书店买书336
14.2.2客户端与服务器337
14.2.3用SSL/TLS承载HTTP338
14.2.4SSL/TLS的工作339
14.2.5SSL/TLS也可以保护其他的协议340
14.2.6密码套件340
14.2.7SSL与TLS的区别341
14.3使用SSL/TLS进行通信341
14.3.1层次化的协议341
14.3.21 TLS记录协议343
14.3.32-1握手协议344
14.3.42-2密码规格变更协议350
14.3.52-3警告协议351
14.3.62-4应用数据协议351
14.3.7主密码351
14.3.8TLS中使用的密码技术小结353
14.4对SSL/TLS的攻击353
14.4.1对各个密码技术的攻击353
14.4.2OpenSSL的心脏出血漏洞353
14.4.3SSL 3.0的漏洞与POODLE攻击354
14.4.4FREAK攻击与密码产品出口管制354
14.4.5对伪随机数生成器的攻击355
14.4.6利用证书的时间差进行攻击355
14.5SSL/TLS用户的注意事项356
14.5.1不要误解证书的含义356
14.5.2密码通信之前的数据是不受保护的356
14.5.3密码通信之后的数据是不受保护的356
14.6本章小结357
14.7小测验的答案357
第15章密码技术与现实社会 我们生活在不完美的安全中359
15.1本章学习的内容360
15.2密码技术小结360
15.2.1密码学家的工具箱360
15.2.2密码与认证362
15.2.3密码技术的框架化362
15.2.4密码技术与压缩技术362
15.3虚拟货币 比特币365
15.3.1什么是比特币365
15.3.2P2P 网络366
15.3.3地址366
15.3.4钱包367
15.3.5区块链367
15.3.6区块的添加368
15.3.7交易369
15.3.8挖矿369
15.3.9确认370
15.3.10匿名性371
15.3.11信任的意义371
15.3.12比特币小结372
15.4追寻完美的密码技术372
15.4.1量子密码373
15.4.2量子计算机374
15.4.3哪一种技术会率先进入实用领域374
15.5只有完美的密码,没有完美的人375
15.5.1理论是完美的,现实是残酷的375
15.5.2防御必须天衣无缝,攻击只需突破一点375
15.5.3攻击实例1:经过PGP加密的电子邮件376
15.5.4攻击实例2:用SSL/TLS加密的信用卡号377
15.6本章小结379
附录 椭圆曲线密码
密码技术综合测验381
附录A椭圆曲线密码382
附录B密码技术综合测验392
参考文献401
《图解密码技术》(日)结城浩 扫描版[PDF]