批量上传,套装书可能不全,下单前咨询在线客服!有特殊要求,下单前请咨询客服!
¥ 46.71 5.2折 ¥ 89 全新
库存17件
作者[日]结城浩
出版社人民邮电出版社
ISBN9787115424914
出版时间2016-06
装帧平装
开本16开
定价89元
货号23995420
上书时间2024-11-01
中文里的“密码”是个有点难以捉摸的词汇,你认为它很简单,其实它却包含着几种看似差不多但本质上却完全不同的含义,还真的是不简单呢。
我们平时登录淘宝或者QQ 时都需要输入用户名和密码,刷信用卡或者在ATM 上取钱时也需要输入密码。一提到“密码”,大多数人都会想到上面这些情形。然而很不巧的是,上面这种“密码”跟我们在这本书中要探讨的“密码”几乎是完全不同的两码事。无论是上淘宝还是刷卡时输入的密码,都只是一种身份验证的凭据,换句话说,也就是向系统证明你才是这个账号或银行卡的主人的一种证据——跟“天王盖地虎!”“宝塔镇河妖!”差不多是一回事。严格来说,这种“密码”应该叫作“口令”(对应英文中的password、passcode 或者pin),在本书中我们也是这样叫的。
我们还习惯把DNA 称作“遗传密码”,这里的“密码”又代表什么意思呢?其实,DNA 的功能是将一种信息(主要是蛋白质的构成信息)转换成另一种信息(碱基的序列)并记录下来。这就像将人们说的话转换成文字,将歌曲转换成MP3 文件一样,本质上是一种“编码”(encoding)的过程,只不过我们还没有完全搞清楚这种编码机制的所有细节,因此这里的“密码”实际上应该理解为“神秘的编码”吧!很遗憾,这也不是我们在这本书中要探讨的那个“密码”。
那么这本书里所说的“密码”到底是什么呢?简单来说,密码(对应英文中的cryptography)是一个非常庞大而复杂的信息处理体系,涉及信息的机密性、完整性、认证等许多方面,由此衍生出的技术无时无刻不在保卫着我们生活中的各种信息的安全。密码技术如此重要,但它们又是那么的不起眼,我们很少注意到它们的存在,更鲜有人知道我们为什么需要它们,以及它们究竟是怎样工作的。对于密码技术,可以说大多数人都处于一种“既不知其然,亦不知其所以然”的状态。
在如今这个信息爆炸的时代,我们每个人都和信息安全脱不了干系,因此正确理解“密码能做到什么,不能做到什么”对于培养安全意识是非常重要的。况且密码技术其实并没有那么枯燥,密码攻守双方交锋的过程更可谓是步步惊心。当然,密码技术的背后存在着非常复杂的数学原理。不过别担心,本书的作者结城浩曾经出版过《数学女孩》《程序员的数学》等多本数学方面的读物,深谙如何将复杂的数学问题用通俗易懂的方式讲给读者,这本《图解密码技术》自然也不例外,比如其中用时钟来讲解数论中的模运算这一部分就十分形象,让人印象深刻。
后留给大家一段密文权当消遣。这是一段用经典的恺撒密码加密的文字,大家读完这本书之后,要破译它应该是轻而易举,有兴趣的话来试试看吧!
ZW PFL NREK KF CVRIE DFIV RSFLK TIPGKFXIRGYP Z IVTFDDVEU RE FECZEV TFLIJV ZEJKILTKVU SP GIFWVJJFI URE SFEVY WIFD JKREWFIU LEZMVIJZKP ALJK JVRITY TIPGKFXIRGYP RK TFLIJVIR.FIX
周自恒
本书以图配文的形式,详细讲解了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.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.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.5.4 差分分析与线性分析 60
3.6 三重DES 61
3.6.1 什么是三重DES 61
3.6.2 三重DES的加密 61
3.6.3 三重DES的解密 63
3.6.4 三重DES的现状 64
3.7 AES的选定过程 65
3.7.1 什么是AES 65
3.7.2 AES的选拔过程 65
3.7.3 AES终候选算法的确定与AES的终确定 66
3.8 Rijndael 66
3.8.1 什么是Rijndael 66
3.8.2 Rijndael的加密和解密 67
3.8.3 Rijndael的破译 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 主动攻击者Mallory 78
4.3 ECB模式 79
4.3.1 什么是ECB模式 79
4.3.2 ECB模式的特点 80
4.3.3 对ECB模式的攻击 80
4.4 CBC模式 82
4.4.1 什么是CBC模式 82
4.4.2 初始化向量 83
4.4.3 CBC模式的特点 84
4.4.4 对CBC模式的攻击 84
4.4.5 填充提示攻击 86
4.4.6 对初始化向量(IV)进行攻击 86
4.4.7 CBC模式的应用实例 86
4.5 CFB模式 88
4.5.1 什么是CFB模式 88
4.5.2 初始化向量 89
4.5.3 CFB模式与流密码 89
4.5.4 CFB模式的解密 90
4.5.5 对CFB模式的攻击 90
4.6 OFB模式 91
4.6.1 什么是OFB模式 91
4.6.2 初始化向量 92
4.6.3 CFB模式与OFB模式的对比 92
4.7 CTR模式 93
4.7.1 计数器的生成方法 95
4.7.2 OFB模式与CTR模式的对比 95
4.7.3 CTR模式的特点 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 从时钟指针到RSA 119
5.6 RSA 120
5.6.1 什么是RSA 120
5.6.2 RSA加密 120
5.6.3 RSA解密 121
5.6.4 生成密钥对 122
5.6.5 具体实践一下吧 125
5.7 对RSA的攻击 128
5.7.1 通过密文来求得明文 128
5.7.2 通过暴力破解来找出D 128
5.7.3 通过E和N求出D 129
5.7.4 中间人攻击 130
5.7.5 选择密文攻击 132
5.8 其他公钥密码 133
5.8.1 ElGamal方式 133
5.8.2 Rabin方式 133
5.8.3 椭圆曲线密码 133
5.9 关于公钥密码的Q&A 133
5.9.1 公钥密码的机密性 134
5.9.2 公钥密码与对称密码的密钥长度 134
5.9.3 对称密码的未来 135
5.9.4 RSA与质数 135
5.9.5 RSA与质因数分解 136
5.9.6 RSA的长度 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.1 MD4、MD5 166
7.4.2 SHA-1、SHA-256、SHA-384、SHA-512 166
7.4.3 RIPEMD-160 167
7.4.4 SHA-3 167
7.5 SHA-3的选拔过程 168
7.5.1 什么是SHA-3 168
7.5.2 SHA-3的选拔过程 168
7.5.3 SHA-3终候选名单的确定与SHA-3的终确定 168
7.6 Keccak 169
7.6.1 什么是Keccak 169
7.6.2 海绵结构 170
7.6.3 双工结构 171
7.6.4 Keccak的内部状态 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.1 SWIFT 191
8.3.2 IPsec 191
8.3.3 SSL/TLS 192
8.4 消息认证码的实现方法 192
8.4.1 使用单向散列函数实现 192
8.4.2 使用分组密码实现 192
8.4.3 其他实现方法 192
8.5 认证加密 192
8.6 HMAC的详细介绍 193
8.6.1 什么是HMAC 193
8.6.2 HMAC的步骤 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
— 没有更多了 —
以下为对购买帮助不大的评价