图解密码技术

作者: [日] 结城浩

出版社: 人民邮电出版社

出版时间: 2014-12

定价: 79.00元

页数: 388

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与Bob  4
        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 Enigma  31
        2.4.1 什么是Enigma  31
        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 XOR  47
        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 DES  53
        3.5.1 什么是DES  53
        3.5.2 加密和解密  54
        3.5.3 DES的结构(Feistel网络)  54
        3.6 三重DES  60
        3.6.1 什么是三重DES  60
        3.6.2 三重DES的加密  60
        3.6.3 三重DES的解密  63
        3.6.4 三重DES的现状  64
        3.7 AES的选定过程  64
        3.7.1 什么是AES  65
        3.7.2 AES的选定过程  65
        3.7.3 AES最终候选算法的确定与AES的最终确定    65
        3.8 Rijndael  66
        3.8.1 什么是Rijndael  66
        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 主动攻击者Mallory  76
        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 从时钟指针到RSA  115
        5.6 RSA  116
        5.6.1 什么是RSA  116
        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 通过暴力破解来找出D  124
        5.7.3 通过E和N求出D  125
        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、MD5  160
        7.4.2 SHA-1、SHA-256、SHA-384、SHA-512  160
        7.4.3 RIPEMD-160  160
        7.4.4 AHS(Advanced Hash Standard)与SHA-3    161
        7.5 单向散列函数SHA-1  161
        7.5.1 整体流程  161
        7.5.2 (1) SHA-1:填充  162
        7.5.3 (2) SHA-1:计算W0~W79  164
        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 SWIFT  181
        8.3.2 IPsec  181
        8.3.3 SSL/TLS  182
        8.4 消息认证码的实现方法  182
        8.4.1 使用单向散列函数实现  182
        8.4.2 使用分组密码实现  182
        8.4.3 其他实现方法  182
        8.5 HMAC的详细介绍  182
        8.5.1 什么是HMAC  182
        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/TLS  208
        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 DSA  210
        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.509  224
        10.4 公钥基础设施(PKI)  228
        10.4.1 什么是公钥基础设施  228
        10.4.2 PKI的组成要素  228
        10.4.3 认证机构的工作  230
        10.4.4 证书的层级结构  231
        10.4.5 各种各样的PKI  233
        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&A  238
        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.17  287
        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 什么是PGP  294
        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/TLS  322
        14.2.1 Alice在Bob书店买书  322
        14.2.2 客户端与服务器  323
        14.2.3 用SSL/TLS承载HTTP  324
        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
     · · · · · ·     (收起)

Copyright © 游戏人+ All Rights Reserved.