《图解密码技术 第3版》(日)结城浩 扫描版[PDF]

《图解密码技术 第3版》封面图片
书名:图解密码技术(第3版)
作者:[日]结城浩
出版社:人民邮电出版社
译者:周自恒
出版日期:2016-6
页数:402
ISBN:9787115424914
9.4
豆瓣短评

当当正版

淘宝购买

京东图书

全网资源

内容简介:

本书以图配文的形式,详细讲解了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

为您推荐