图解密码技术
查字典图书网
当前位置: 查字典 > 图书网 > 科普> 图解密码技术

图解密码技术

图解密码技术

9.2

作者: [日] 结城浩
出版社: 人民邮电出版社
原作名: 暗号技術入門 秘密の国のアリス
译者: 周自恒
出版年: 2014-12
页数: 388
定价: 79.00元
装帧: 平装
丛书: 图解入门系列
ISBN: 9787115373625

我要收藏

内容简介:

本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。

第一部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第二部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第三部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。

作者简介:

结城浩(Hiroshi Yuki)

生于1963年,日本资深技术作家和程序员。在编程语言、设计模式、数学、加密技术等领域,编写了很多深受欢迎的入门书。代表作有《数学女孩》系列、《程序员的数学》等。

作者网站:http://www.hyuki.com/

目录:

第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

文章试读:1.2.1 Alice 与 Bob 要讲解密码,我们需要为参与信息交互的人和计算机起几个名字。如果光用 A、B 之类的 符号未免显得无趣,因此在本书中我们用 Alice、Bob 等人名来指代这些信息交互的参与者 (表 1-1)。 1.2.2 发送者、接收者和窃听者 请想象一下 Alice 向 Bob 发送电子邮件的场景。在这个场景中,发出邮件的 Alice 称为发送 ,而收到...

(查看全部试读)

展开全文
随机来一本书

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

热门标签:
我想说两句
我要写长评
 想读     在读     读过   
评价:
标签(多个标签以“,”分开):