《密码学的乐趣》笔记
作者: Mike Rosulek
来源: /books/密码学.pdf
页数: 286页
处理日期: 2026-09-03
方法: PDF文本提取(pdf-inspector)
书籍简介
《The Joy of Cryptography》是 Mike Rosulek 撰写的密码学本科教材,源自俄勒冈州立大学的 CS427 课程讲义。本书专注于可证明安全(provable security)的基础理论,采用代码化游戏(code-based games)风格来定义和证明安全性。
核心特点
- 不是操作手册:不提供”用哪个算法”的建议,也不涉及具体实现细节(如 PGP、Signal、Bitcoin 等)
- 强调可组合性:核心主题是”如何在安全的方式下组合不同的密码学构建块”
- 游戏化证明风格:所有安全性定义都表述为两个游戏(库)之间的不可区分性
核心知识点
1. 安全性定义框架
- 所有安全性定义统一表述为 两个游戏/库的不可区分性
- 攻击者只能调用库提供的接口,无法访问私有变量
- 证明安全性 = 构造混合库序列,逐步替换相邻库
- 破坏安全性 = 构造能区分两个实现的程序
2. 基础概念回顾(第0章)
- 对数与指数、模运算、字符串表示
- 函数与概率论基础
- Big-O 渐进符号
3. 秘密共享(第3章)
- Lagrange 插值多项式
- t-out-of-n 阈值方案
- 信息论安全的秘密共享
4. 伪随机生成器(PRG)(第5章)
- PRG 的安全定义
- 扩展长度:从短种子生成长伪随机串
- 流密码的安全模型
- 对称密钥密码锁(symmetric ratchet)
5. 伪随机函数(PRF)与伪随机排列(PRP)(第6章)
- PRF 的安全定义与应用
- PRP 与安全密码块模式
- Feistel 网络构造
- 如何不构建 PRF/PRP 的反例
6. 对称加密方案(第7-8章)
- CPA 安全性(选择明文攻击下的语义安全)
- CTR 模式与 CBC 模式对比
- 状态化与 nonce 使用的安全性
- 确定性加密的安全性分析
7. 认证加密(AEAD)(第12章)
- CCA 安全性
- MAC(消息认证码)的定义与构造
- Salt 的使用与哈希函数的安全性
8. 哈希函数(第11章)
- 碰撞抗性(collision resistance)
- Merkle-Damgård 构造
- 长度扩展攻击
- Salt 的作用
9. Diffie-Hellman 密钥协商(第14章)
- DHKA 协议描述
- DDH(决策性 Diffie-Hellman)假设
- 相关困难问题
10. 公钥加密(第15章)
- ElGamal 加密方案
- 一次性保密性蕴含 CPA 安全性(公钥场景特有)
- 混合加密:公钥 + 对称密钥的组合方案
数学基础要求
- 离散数学(模运算、概率论、组合数学、证明技巧)
- 算法与数据结构背景(推荐)
- 计算理论(自动机、形式语言、可计算性,推荐)
实践应用
- 理解密码学构建块的组合逻辑
- 评估加密方案的安全性
- 识别设计缺陷与安全漏洞
与其他知识的关联
- SICP 中的抽象与组合思想与此书理念相通
- Linux内核设计与实现-第3版 中涉及的加密模块可直接应用此书理论
- 深入理解计算机系统 中的信息安全章节可作为前置阅读
待办事项
- 跟进书中提到的路线图主题:认证密钥协商、椭圆曲线、后量子密码学