日常密码学的设计:别做诺曼门
来源:dlp.rip — 2026-07-20
📋 概述
密码学家喜欢设计优雅、健壮且功能完备的协议,但任何一个解决"足够多有趣问题"的密码协议都将变得对普通人来说无法安全使用——它将成为密码学中的"诺曼门"。作者以 KEM(密钥封装机制) 为例,展示了即使是看起来简洁的接口(kem_keygen / kem_encaps / kem_decaps),对普通开发者仍暗藏陷阱:该用什么 seed?选哪个参数集?拿到 SharedSecret 后怎么用?密码学 API 的设计需要从日常可用性出发,而不仅仅是数学上的优雅。
🔑 核心要点
- 过于复杂和完备的密码学协议会成为"诺曼门"——看起来能用但实际上一推就错。
- KEM(密钥封装机制) 是最简洁的密码学接口之一,仅三个函数,但仍暗藏多种误用可能。
- 开发者面对 KEM 时需要回答的实际问题:Seed 类型、参数集选择、SharedSecret 的后续使用方式。
- 密码学 API 设计应优先考虑日常可用性,而非追求解决尽可能多的问题。
- ML-KEM 等具体算法的标准化(FIPS 203)提供了清晰的实现规范,但使用指南才是关键。
💡 金句
不幸的是,任何解决了足够多有趣问题的密码协议都将变得对普通人来说无法安全使用。它将成为密码学中的诺曼门。
👍 0
👎 0
← 返回 Lobsters 首页