《密码学的乐趣》(The Joy of Cryptography)笔记
核心观点
- 本书为密码学入门教材,强调可证明安全(provable security)而非具体算法或工具。
- 安全目标分解为:保密性(confidentiality)、真实性(authenticity)、完整性(integrity)。
- 核心思想:通过代码游戏(code-based games)形式化安全定义,用混合技术(hybrid technique)进行安全证明。
关键概念
- 可证明安全:形式化定义安全目标,然后数学证明方案满足定义。
- 代码游戏:安全定义表述为两个库(library)的不可区分性;对手是调用这些库的程序。
- 混合证明:通过构造一系列中间库(hybrids),每个只与前一个库有微小改动,从而将目标安全性归约到已知假设。
- 构建块(building blocks):一次性填充(one-time pad)、伪随机生成器(PRG)、伪随机函数(PRF)、伪随机排列(PRP)、消息认证码(MAC)、数字签名、公钥加密等。
- 混合加密(hybrid encryption):用公钥加密传输对称密钥,再用对称加密处理大量数据,以降低公钥加密的开销。
重要章节结构
- 第0章:概念与记号回顾(模运算、字符串、函数、概率、渐近记号)。
- 第1章:什么是[不是]密码学 & 一次性垫(one-time pad)。
- 第2-3章:安全定义正式化 & 不可区分性攻击。
- 第4章:混合证明技术。
- 第5-10章:对称密钥原语(PRG、PRF、PRP、MAC、认证加密AEAD)。
- 第11章:哈希函数(包括抗碰撞性讨论)。
- 第12章:身份验证与密钥交换。
- 第13章:数字签名。
- 第14章:公钥加密基础(Diffie-Hellman、RSA前置)。
- 第15章:公钥加密详解(ElGamal、混合加密、公钥CPA安全)。
可行动点
- 深入理解代码游戏框架,尝试用它重新证明熟悉的构造(如PRG->PRF)。
- 实现书中的简易例子(如基于Sage的RSA演练)。
- 对照实际协议(TLS、Signal)审视其使用的原语是否符合本书的安全模型。
与其他知识的关联
- 可结合《密码学导论》(William Stallings)或《密码学与网络安全》对比工程视角。
- 与《实用密码学》(Ferguson、Schneier、Kohno)互补:本书侧重理论证明,后者更关注实现陷阱。
- 对应Obsidian笔记:
[[可证明安全]],[[代码游戏]],[[混合加密]],[[一次性填充]],[[PRG/PRF/PRP]].
处理方式:使用 pdf-inspector 提取全文,手动消化摘要。原文约286页,CC BY-NC-SA 4.0授权。