《密码学的乐趣》笔记

作者: 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 安全性(公钥场景特有)
  • 混合加密:公钥 + 对称密钥的组合方案

数学基础要求

  • 离散数学(模运算、概率论、组合数学、证明技巧)
  • 算法与数据结构背景(推荐)
  • 计算理论(自动机、形式语言、可计算性,推荐)

实践应用

  • 理解密码学构建块的组合逻辑
  • 评估加密方案的安全性
  • 识别设计缺陷与安全漏洞

与其他知识的关联


待办事项

  • 跟进书中提到的路线图主题:认证密钥协商、椭圆曲线、后量子密码学