Lec 3对称原语 I:PRF、计数器模式与 ChaCha20
Lec 3 对称原语 I:PRF、计数器模式与 ChaCha20
MIT 6.5610 · Lecture 3 · 关键词:PRF 安全游戏(具体界)、CPA 具体安全、计数器模式、ChaCha20、ARX、侧信道 来源:2025 版讲义(Henry Corrigan-Gibbs),2026 同主题"Symmetric-key primitives I",内容一致。
TL;DR
- PRF 安全用真实函数与随机函数之间的区分优势给出具体界;调用次数和输出长度都会进入安全损失,而不只是“算法尚未被攻破”。
- Counter Mode 用唯一 nonce 与计数器生成密钥流;nonce 重用会复用同一掩码并泄露明文异或,因此唯一性是协议级约束。
- ChaCha20 以加法、旋转、异或构成 ARX 轮函数,适合软件与常数时间实现,但密钥管理、nonce 和实现侧信道仍决定系统安全。
0. 为何研究对称原语
对称原语是实践中最重要的密码构件——你每台联网设备的加密几乎都在用。目标不是让你自己写实现/设计密码,而是深入理解加密系统在实践中如何运作。
1. PRF 安全游戏(具体安全视角)
定义
定义 1–2(PRF 安全游戏与 PRF) 游戏由 PRF 、敌手 、比特 参数化:
- 挑战者抽 ;若 置 ,若 置 (全体函数)。
- 敌手自适应查询 ,得 ,最后输出 。
记 为敌手在比特 下输出"1"的概率,定义优势 为 PRF 当且仅当对所有高效 该优势"可忽略"。
🔎 两种视角:
- 理论:一切按安全参数 (可理解为密钥长度)参数化,算法与敌手多项式时间,可忽略 = 关于 可忽略。
- 实践:固定密钥 128/256 位,要求 PRF "够快",防御 级攻击者,"可忽略"取某小常数如 。
定理
若 则 PRF 不存在。 攻击者查询 得 ,用电路-SAT 求解器找满足 的密钥 :若存在这样的 ,几乎肯定身处 PRF 世界。故安全 PRF 的存在蕴含 。
2. 对称原语的"假设哲学"
- "漂亮"假设:如 Rabin 基于因子分解困难——双赢局面(要么密码安全,要么得到惊人的分解算法)。但基于此类假设的分组密码太慢。
- ad-hoc 假设:直接假设 AES 是安全分组密码——没有干净的数学假设可归约。评估流程:用已知攻击试破 → 办竞赛互相攻击 → 经数年审视后认定"够好"。
- 有趣的是:多数密码学家对"AES 是安全 PRF"的信心,高于对"因子分解/离散对数困难"的信心。当下密码设计的难点常常不是安全,而是在各种硬件上拿到好性能。
3. 计数器模式(CTR / Counter Mode)
设 PRF ,参数 决定可加密的消息长度。
定理
CTR 加密 解密对应逐块异或回去。
具体安全界:对任意做至多 次长度- 加密查询的敌手 ,存在运行时间相近的 PRF 敌手 ,使
🔎 证明思路:先把 PRF 换成真随机函数(误差 = PRF 优势);只要 nonce 不重用,敌手看到的就是明文异或真随机值(OTP)。第二项 即 nonce 碰撞的生日界。当 时安全;当 时真的可被攻破(存在 CPA 攻击)。
工程要点:
- 可并行:各块独立,多核/SIMD 友好——现代密码性能关键。
- 有状态 CTR:nonce 不必随机,只需绝不重用 。共享状态时可从 递增,省去传输 ,代价是维护同步状态。
- 为何从小原语搭起:理论上想知道最小假设;实践上密码分析极其昂贵,从极少数核心原语搭出大量工具,能让分析者聚焦这几个关键原语。
4. ChaCha20:用作 CTR 加密的 PRF
TLS 中用于保护 HTTPS 的流密码,本质是"构造一个 PRF 再用计数器模式"。
例
ChaCha20 PRF 构造
基于一个 上的公开置换 ("信仰之跃":把它当作理想随机对象就能在理想模型下证明 PRF 安全,但它其实有极短实现)。
其中 把密钥、输入和 128 位常量映射成 的 32 位矩阵(常量拼出 expand 32-byte k,是"nothing-up-my-sleeve"数)。
置换 的核心——quarterRound(Salsa 版,比 ChaCha 略简):
quarterRound(a,b,c,d):
b ^= (a + d) <<< 7;
c ^= (b + a) <<< 9;
d ^= (c + b) <<< 13;
a ^= (d + c) <<< 18; // <<< 为循环左移
故称 ARX 密码(Add-Rotate-XOR)。 把矩阵视为 ,先对列应用 quarter-round,再对移位后的列(对角)应用,迭代 10 次。
⚠️ 安全工程:4 个 quarter-round 可并行(SIMD 指令加速);且无秘密相关/数据相关的内存访问——这对防御时序与缓存侧信道(攻击者通过内存访问耗时窃取秘密比特)至关重要。
5. PRF 与 ChaCha20 小结
- PRF 安全用优势游戏刻画;安全 PRF 存在 ⟹ 。
- CTR 模式把定长 PRF 扩成长消息加密,安全界含 PRF 优势 + nonce 生日项,nonce 绝不可重用。
- ChaCha20 = pad ⊕ 公开置换,ARX 结构、常时实现防侧信道,TLS 实战首选之一。
- CPA 安全只是"够用的构件",实战请用 AEAD(认证加密)。
我的理解
Nonce 是密码 API 的状态契约;如果部署环境无法可靠保证唯一性,就应更换为能容忍误用的构造。