图解密码技术 第三版 PDF 文档
本书以图配文的形式,详细讲解了 6 种重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。 第 1 部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括 ECB、CBC、CFB、OFB、CTR)、公钥密码、混合密码系统。
第 2 部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。
第 3 部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。 第 3 版对旧版内容进行了大幅更新,并新增 POODLE 攻击、心脏出血漏洞、Superfish 事件、SHA-3 竞赛、Keccak、认证加密、椭圆曲线密码、比特币等内容。
目录
第 1 部分 密码
第 1 章 环游密码世界
1.1 本章学习的内容
1.2 密码
1.2.1 Alice 与 Bob
1.2.2 发送者、接收者和窃听者
1.2.3 加密与解密
1.2.4 密码保证了消息的机密性
1.2.5 破译
1.3 对称密码与公钥密码
1.3.1 密码算法
1.3.2 密钥
1.3.3 对称密码与公钥密码
1.3.4 混合密码系统
1.4 其他密码技术
1.4.1 单向散列函数
1.4.2 消息认证码
1.4.3 数字签名
1.4.4 伪随机数生成器
1.5 密码学家的工具箱
1.6 隐写术与数字水印
1.7 密码与信息安全常识
1.7.1 不要使用保密的密码算法
1.7.2 使用低强度的密码比不进行任何加密更危险
1.7.3 任何密码总有一天都会被破解
1.7.4 密码只是信息安全的一部分
1.8 本章小结
1.9 小测验的答案
第 2 章 历史上的密码 ——写一篇别人看不懂的文章
2.1 本章学习的内容
2.2 恺撒密码
2.2.1 什么是恺撒密码
2.2.2 恺撒密码的加密
2.2.3 恺撒密码的解密
2.2.4 用暴力破解来破译密码
2.3 简单替换密码
2.3.1 什么是简单替换密码
2.3.2 简单替换密码的加密
2.3.3 简单替换密码的解密
2.3.4 简单替换密码的密钥空间
2.3.5 用频率分析来破译密码
2.4 Enigma
2.4.1 什么是 Enigma
2.4.2 用 Enigma 进行加密通信
2.4.3 Enigma 的构造
2.4.4 Enigma 的加密
2.4.5 每日密码与通信密码
2.4.6 避免通信错误
2.4.7 Enigma 的解密
2.4.8 Enigma 的弱点
2.4.9 Enigma 的破译
2.5 思考
2.6 本章小结
2.7 小测验的答案
第 3 章 对称密码(共享密钥密码)——用相同的密钥进行加密和解密
3.1 炒鸡蛋与对称密码
3.2 本章学习的内容
3.3 从文字密码到比特序列密码
3.3.1 编码
3.3.2 XOR
3.4 一次性密码本——绝对不会被破译的密码
3.4.1 什么是一次性密码本
3.4.2 一次性密码本的加密
3.4.3 一次性密码本的解密
3.4.4 一次性密码本是无法破译的
3.4.5 一次性密码本为什么没有被使用
3.5 DES
3.5.1 什么是 DES
3.5.2 加密和解密
3.5.3 DES 的结构(Feistel 网络)
3.5.4 差分分析与线性分析
3.6 三重 DES
3.6.1 什么是三重 DES
3.6.2 三重 DES 的加密
3.6.3 三重 DES 的解密
3.6.4 三重 DES 的现状
3.7 AES 的选定过程
3.7.1 什么是 AES
3.7.2 AES 的选拔过程
3.7.3 AES 最终候选算法的确定与 AES 的最终确定
3.8 Rijndael
3.8.1 什么是 Rijndael
3.8.2 Rijndael 的加密和解密
3.8.3 Rijndael 的破译
3.8.4 应该使用哪种对称密码呢
3.9 本章小结
3.10 小测验的答案
第 4 章 分组密码的模式——分组密码是如何迭代的
4.1 本章学习的内容
4.2 分组密码的模式
4.2.1 分组密码与流密码
4.2.2 什么是模式
4.2.3 明文分组与密文分组
4.2.4 主动攻击者 Mallory
4.3 ECB 模式
4.3.1 什么是 ECB 模式
4.3.2 ECB 模式的特点
4.3.3 对 ECB 模式的攻击
4.4 CBC 模式
4.4.1 什么是 CBC 模式
4.4.2 初始化向量
4.4.3 CBC 模式的特点
4.4.4 对 CBC 模式的攻击
4.4.5 填充提示攻击
4.4.6 对初始化向量(IV)进行攻击
4.4.7 CBC 模式的应用实例
4.5 CFB 模式
4.5.1 什么是 CFB 模式
4.5.2 初始化向量
4.5.3 CFB 模式与流密码
4.5.4 CFB 模式的解密
4.5.5 对 CFB 模式的攻击
4.6 OFB 模式
4.6.1 什么是 OFB 模式
4.6.2 初始化向量
4.6.3 CFB 模式与 OFB 模式的对比
4.7 CTR 模式
4.7.1 计数器的生成方法
4.7.2 OFB 模式与 CTR 模式的对比
4.7.3 CTR 模式的特点
4.7.4 错误与机密性
4.8 应该使用哪种模式呢
4.9 本章小结
4.10 小测验的答案
第 5 章 公钥密码——用公钥加密,用私钥解密
5.1 投币寄物柜的使用方法
5.2 本章学习的内容
5.3 密钥配送问题
5.3.1 什么是密钥配送问题
5.3.2 通过事先共享密钥来解决
5.3.3 通过密钥分配中心来解决
5.3.4 通过 Diffie-Hellman 密钥交换来解决密钥配送问题
5.3.5 通过公钥密码来解决密钥配送问题
5.4 公钥密码
5.4.1 什么是公钥密码
5.4.2 公钥密码的历史
5.4.3 公钥通信的流程
5.4.4 各种术语
5.4.5 公钥密码无法解决的问题
5.5 时钟运算
5.5.1 加法
5.5.2 减法
5.5.3 乘法
5.5.4 除法
5.5.5 乘方
5.5.6 对数
5.5.7 从时钟指针到 RSA
5.6 RSA
5.6.1 什么是 RSA
5.6.2 RSA 加密
5.6.3 RSA 解密
5.6.4 生成密钥对
5.6.5 具体实践一下吧
5.7 对 RSA 的攻击
5.7.1 通过密文来求得明文
5.7.2 通过暴力破解来找出 D
5.7.3 通过 E 和 N 求出 D
5.7.4 中间人攻击
5.7.5 选择密文攻击
5.8 其他公钥密码
5.8.1 ElGamal 方式
5.8.2 Rabin 方式
5.8.3 椭圆曲线密码
5.9 关于公钥密码的 Q&A
5.9.1 公钥密码的机密性
5.9.2 公钥密码与对称密码的密钥长度
5.9.3 对称密码的未来
5.9.4 RSA 与质数
5.9.5 RSA 与质因数分解
5.9.6 RSA 的长度
5.10 本章小结
5.11 小测验的答案
第 6 章 混合密码系统——用对称密码提高速度,用公钥密码保护会话密钥
6.1 混合动力汽车
6.2 本章学习的内容
6.3 混合密码系统
6.3.1 对称密码与公钥密码
6.3.2 混合密码系统
6.3.3 加密
6.3.4 解密
6.3.5 混合密码系统的具体例子
6.4 怎样才是高强度的混合密码系统
6.4.1 伪随机数生成器
6.4.2 对称密码
6.4.3 公钥密码
6.4.4 密钥长度的平衡
6.5 密码技术的组合
6.6 本章小结
6.7 小测验的答案
第 2 部分 认证
第 7 章 单向散列函数——获取消息的“指纹”
7.1 本章学习的内容
7.2 什么是单向散列函数
7.2.1 这个文件是不是真的呢
7.2.2 什么是单向散列函数
7.2.3 单向散列函数的性质
7.2.4 关于术语
7.3 单向散列函数的实际应用
7.3.1 检测软件是否被篡改
7.3.2 基于口令的加密
7.3.3 消息认证码
7.3.4 数字签名
7.3.5 伪随机数生成器
7.3.6 一次性口令
7.4 单向散列函数的具体例子
7.4.1 MD4、MD5
7.4.2 SHA-1、SHA-256、SHA-384、SHA-512
7.4.3 RIPEMD-160
7.4.4 SHA-3
7.5 SHA-3 的选拔过程
7.5.1 什么是 SHA-3
7.5.2 SHA-3 的选拔过程
7.5.3 SHA-3 最终候选名单的确定与 SHA-3 的最终确定
7.6 Keccak
7.6.1 什么是 Keccak
7.6.2 海绵结构
7.6.3 双工结构
7.6.4 Keccak 的内部状态
7.6.5 函数 Keccak-f [b ]
7.6.6 对 Keccak 的攻击
7.6.7 对缩水版 Keccak 的攻击竞赛
7.7 应该使用哪种单向散列函数呢
7.8 对单向散列函数的攻击
7.8.1 暴力破解(攻击故事 1)
7.8.2 生日攻击(攻击故事 2)
7.9 单向散列函数无法解决的问题
7.10 本章小结
7.11 小测验的答案
第 8 章 消息认证码——消息被正确传送了吗
8.1 本章学习的内容
8.2 消息认证码
8.2.1 汇款请求是正确的吗
8.2.2 什么是消息认证码
8.2.3 消息认证码的使用步骤
8.2.4 消息认证码的密钥配送问题
8.3 消息认证码的应用实例
8.3.1 SWIFT
8.3.2 IPsec
8.3.3 SSL/TLS
8.4 消息认证码的实现方法
8.4.1 使用单向散列函数实现
8.4.2 使用分组密码实现
8.4.3 其他实现方法
8.5 认证加密
8.6 HMAC 的详细介绍
8.6.1 什么是 HMAC
8.6.2 HMAC 的步骤
8.7 对消息认证码的攻击
8.7.1 重放攻击
8.7.2 密钥推测攻击
8.8 消息认证码无法解决的问题
8.8.1 对第三方证明
8.8.2 防止否认
8.9 本章小结
8.10 小测验的答案
第 9 章 数字签名——消息到底是谁写的
9.1 羊妈妈的认证
9.2 本章学习的内容
9.3 数字签名
9.3.1 Alice 的借条
9.3.2 从消息认证码到数字签名
9.3.3 签名的生成和验证
9.3.4 公钥密码与数字签名
9.4 数字签名的方法
9.4.1 直接对消息签名的方法
9.4.2 对消息的散列值签名的方法
9.5 对数字签名的疑问
9.5.1 密文为什么能作为签名使用
9.5.2 数字签名不能保证机密性吗
9.5.3 这种签名可以随意复制吗
9.5.4 消息内容会不会被任意修改
9.5.5 签名会不会被重复使用
9.5.6 删除签名也无法“作废合同”吗
9.5.7 如何防止否认
9.5.8 数字签名真的能够代替签名吗
9.6 数字签名的应用实例
9.6.1 安全信息公告
9.6.2 软件下载
9.6.3 公钥证书
9.6.4 SSL/TLS
9.7 通过 RSA 实现数字签名
9.7.1 用 RSA 生成签名
9.7.2 用 RSA 验证签名
9.7.3 具体实践一下吧
9.8 其他的数字签名
9.8.1 ElGamal 方式
9.8.2 DSA
9.8.3 ECDSA
9.8.4 Rabin 方式
9.9 对数字签名的攻击
9.9.1 中间人攻击
9.9.2 对单向散列函数的攻击
9.9.3 利用数字签名攻击公钥密码
9.9.4 潜在伪造
9.9.5 其他攻击
9.10 各种密码技术的对比
9.10.1 消息认证码与数字签名
9.10.2 混合密码系统与对散列值签名
9.11 数字签名无法解决的问题
9.12 本章小结
9.13 小测验的答案
第 10 章 证书——为公钥加上数字签名
10.1 本章学习的内容
10.2 证书
10.2.1 什么是证书
10.2.2 证书的应用场景
10.3 实际生成一张证书
10.3.1 赛门铁克的 Digital ID 免费试用服务
10.3.2 生成证书
10.3.3 显示证书
10.3.4 证书标准规范
10.4 公钥基础设施(PKI)
10.4.1 什么是公钥基础设施
10.4.2 PKI 的组成要素
10.4.3 认证机构的工作
10.4.4 证书的层级结构
10.4.5 各种各样的 PKI
10.5 对证书的攻击
10.5.1 在公钥注册之前进行攻击
10.5.2 注册相似人名进行攻击
10.5.3 窃取认证机构的私钥进行攻击
10.5.4 攻击者伪装成认证机构进行攻击
10.5.5 钻 CRL 的空子进行攻击(1)
10.5.6 钻 CRL 的空子进行攻击(2)
10.5.7 Superfish
10.6 关于证书的 Q&A
10.6.1 为什么需要证书
10.6.2 通过自己的方法进行认证是不是更安全
10.6.3 为什么要相信认证机构
10.7 本章小结
10.8 小测验的答案
第 3 部分 密钥、随机数与应用技术
第 11 章 密钥——秘密的精华
11.1 本章学习的内容
11.2 什么是密钥
11.2.1 密钥就是一个巨大的数字
11.2.2 密钥与明文是等价的
11.2.3 密码算法与密钥
11.3 各种不同的密钥
11.3.1 对称密码的密钥与公钥密码的密钥
11.3.2 消息认证码的密钥与数字签名的密钥
11.3.3 用于确保机密性的密钥与用于认证的密钥
11.3.4 会话密钥与主密钥
11.3.5 用于加密内容的密钥与用于加密密钥的密钥
11.4 密钥的管理
11.4.1 生成密钥
11.4.2 配送密钥
11.4.3 更新密钥
11.4.4 保存密钥
11.4.5 作废密钥
11.5 Diffie-Hellman 密钥交换
11.5.1 什么是 Diffie-Hellman 密钥交换
11.5.2 Diffie-Hellman 密钥交换的步骤
11.5.3 Eve 能计算出密钥吗
11.5.4 生成元的意义
11.5.5 具体实践一下
11.5.6 椭圆曲线 Diffie-Hellman 密钥交换
11.6 基于口令的密码(PBE)
11.6.1 什么是基于口令的密码
11.6.2 PBE 加密
11.6.3 PBE 解密
11.6.4 盐的作用
11.6.5 口令的作用
11.6.6 通过拉伸来改良 PBE
11.7 如何生成安全的口令
11.7.1 使用只有自己才能知道的信息
11.7.2 将多个不同的口令分开使用
11.7.3 有效利用笔记
11.7.4 理解口令的局限性
11.7.5 使用口令生成和管理工具
11.8 本章小结
11.9 小测验的答案
第 12 章 随机数——不可预测性的源泉
12.1 骡子的锁匠铺
12.2 本章学习的内容
12.3 使用随机数的密码技术
12.4 随机数的性质
12.4.1 对随机数的性质进行分类
12.4.2 随机性
12.4.3 不可预测性
12.4.4 不可重现性
12.5 伪随机数生成器
12.6 具体的伪随机数生成器
12.6.1 杂乱的方法
12.6.2 线性同余法
12.6.3 单向散列函数法
12.6.4 密码法
12.6.5 ANSI X9.17
12.6.6 其他算法
12.7 对伪随机数生成器的攻击
12.7.1 对种子进行攻击
12.7.2 对随机数池进行攻击
12.8 本章小结
12.9 小测验的答案
第 13 章 PGP——密码技术的完美组合
13.1 本章学习的内容
13.2 PGP 简介
13.2.1 什么是 PGP
13.2.2 关于 OpenPGP
13.2.3 关于 GNU Privacy Guard
13.2.4 PGP 的功能
13.3 生成密钥对
13.4 加密与解密
13.4.1 加密
13.4.2 解密
13.5 生成和验证数字签名
13.5.1 生成数字签名
13.5.2 验证数字签名
13.6 生成数字签名并加密以及解密并验证数字签名
13.6.1 生成数字签名并加密
13.6.2 解密并验证数字签名
13.7 信任网
13.7.1 公钥合法性
13.7.2 场景 1:通过自己的数字签名进行确认
13.7.3 场景 2:通过自己完全信任的人的数字签名进行确认
13.7.4 场景 3:通过自己有限信任的多个人的数字签名进行确认
13.7.5 公钥合法性与所有者信任是不同的
13.7.6 所有者信任级别是因人而异的
13.8 本章小结
13.9 小测验的答案
第 14 章 SSL/TLS ——为了更安全的通信
14.1 本章学习的内容
14.2 什么是 SSL/TLS
14.2.1 Alice 在 Bob 书店买书
14.2.2 客户端与服务器
14.2.3 用 SSL/TLS 承载 HTTP
14.2.4 SSL/TLS 的工作
14.2.5 SSL/TLS 也可以保护其他的协议
14.2.6 密码套件
14.2.7 SSL 与 TLS 的区别
14.3 使用 SSL/TLS 进行通信
14.3.1 层次化的协议
14.3.21 TLS 记录协议
14.3.32 -1 握手协议
14.3.42 -2 密码规格变更协议
14.3.52 -3 警告协议
14.3.62 -4 应用数据协议
14.3.7 主密码
14.3.8 TLS 中使用的密码技术小结
14.4 对 SSL/TLS 的攻击
14.4.1 对各个密码技术的攻击
14.4.2 OpenSSL 的心脏出血漏洞
14.4.3 SSL 3.0 的漏洞与 POODLE 攻击
14.4.4 FREAK 攻击与密码产品出口管制
14.4.5 对伪随机数生成器的攻击
14.4.6 利用证书的时间差进行攻击
14.5 SSL/TLS 用户的注意事项
14.5.1 不要误解证书的含义
14.5.2 密码通信之前的数据是不受保护的
14.5.3 密码通信之后的数据是不受保护的
14.6 本章小结
14.7 小测验的答案
第 15 章 密码技术与现实社会 ——我们生活在不完美的安全中
15.1 本章学习的内容
15.2 密码技术小结
15.2.1 密码学家的工具箱
15.2.2 密码与认证
15.2.3 密码技术的框架化
15.2.4 密码技术与压缩技术
15.3 虚拟货币——比特币
15.3.1 什么是比特币
15.3.2 P2P 网络
15.3.3 地址
15.3.4 钱包
15.3.5 区块链
15.3.6 区块的添加
15.3.7 交易
15.3.8 挖矿
15.3.9 确认
15.3.10 匿名性
15.3.11 信任的意义
15.3.12 比特币小结
15.4 追寻完美的密码技术
15.4.1 量子密码
15.4.2 量子计算机
15.4.3 哪一种技术会率先进入实用领域
15.5 只有完美的密码,没有完美的人
15.5.1 理论是完美的,现实是残酷的
15.5.2 防御必须天衣无缝,攻击只需突破一点
15.5.3 攻击实例 1:经过 PGP 加密的电子邮件
15.5.4 攻击实例 2:用 SSL/TLS 加密的信用卡号
15.6 本章小结
附录 椭圆曲线密码
密码技术综合测验
附录 A 椭圆曲线密码
附录 B 密码技术综合测验
参考文献
下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/10/S0hWvS0nn46lrJy2.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论