预密钥允许收件人在会话建立时离线,但不会消除对传递路径或谨慎管理私钥生命周期的需求。
离线收件人之所以能稍后收到加密消息,是因为其设备提前发布了公钥材料。发送者仍然需要可访问的消息传递服务;“异步加密”不意味着消息能够穿越网络中断,或立即出现在断网的手机上。
后量子设计通过密钥封装机制扩展了这一思路。重要的问题是:初始秘密如何建立,旧私钥如何退役,以及后续消息如何更新安全状态。
预密钥解决的是时间配合问题
假设 Sam 开始新对话时 Maya 正处于离线状态。Maya 的设备此前已上传公共预密钥。Sam 可以获取这些材料,执行发送端的密钥协商,并发送第一条加密消息。Maya 重新连接后,使用保留在其设备上的私钥处理这条消息。
因此,服务器提供公共信息并将加密数据排队保存,而不必持有由此产生的消息秘密。Signal 的 X3DH 规范是对这种异步设计的第一手说明。签名预密钥与一次性预密钥具有不同的生命周期和作用;“预密钥”不意味着上传到服务器的秘密密码。
对于已经建立的会话,应用可能使用现有会话状态,而不是每条消息都重复初始设置。启动会话与推进其消息密钥是不同的操作。
后量子 KEM 增添了什么
密钥封装机制有三项基本操作:生成密钥、使用公钥封装,以及使用对应私钥解封装。封装会同时产生一个共享秘密和一份密文。密文可以稍后传递;秘密本身不会以明文发送。
NIST FIPS 203将 ML-KEM 标准化。对于 ML-KEM-768,公共封装密钥为 1,184 字节,密文为 1,088 字节,共享秘密为 32 字节。这些是算法层面的大小,不是整个消息数据包的大小。签名、经典密钥、标识符和传输封装都会增加开销;已缓存的公钥不一定随每条消息一起发送。
在混合构造中,协议按照明确的密钥派生流程组合经典与后量子秘密材料。仅仅把算法名称放在一起,并不能证明这种组合安全。身份绑定、验证、域分离和故障处理,都需要规范说明和审查。
一个例子:PQXDH,而非通用蓝图
Signal 的 PQXDH 规范描述了带签名的一次性后量子预密钥,以及带签名的最后备用密钥。发送者验证所提供的签名,执行密钥协商,并在初始加密消息中附上 KEM 密文和密钥标识符。收件人稍后派生出同一个秘密并处理消息。
其最后备用密钥支持在一次性 KEM 密钥不可用时建立会话,但受侵害时的分析并不相同。私钥删除与轮换会影响对早期会话的保护。规范还区分了后量子前向保密与抵御主动量子攻击者的身份认证。这些细节不能用“回退没有安全代价”来代替。
PQXDH 是一种有明确规范的构造。除非另一产品有相应文档,否则不应将其具体曲线、签名和参数选择照搬到该产品的描述中。
棘轮不同于预密钥池
预密钥支持会话建立。棘轮协议则在对话过程中改变秘密。双棘轮规范解释了消息密钥的演进以及较新的后量子棘轮构造,包括不会随每条应用消息传输完整后量子交换的设计。
前向保密关注的是后续密钥泄露后,早期消息的安全性。入侵后安全性关注的是攻击者失去访问权限且新秘密材料被纳入之后,未来通信如何恢复安全。两者都不意味着恶意软件可以无限期驻留在手机上,而密码学还能以某种方式向它隐藏该手机的明文。
从服务器删除一个公共预密钥可以防止其正常重复使用,但这不等于从端点删除对应的私有密钥。有用的审计应同时检查生命周期规则与延迟消息的处理行为。
Livara 文档说明了什么,以及哪些仍需证据
Livara 的安全页面描述了在可用时采用一次性密钥的混合会话建立、常规消息链推进,以及周期性的 ML-KEM 阶段。这不同于过去声称每条消息都执行一次完整的新 ML-KEM 交换的说法。这些是产品文档中的陈述,不是对实现的独立验证。
不要从这些陈述中推断具体的密钥耗尽回退策略、补充间隔或网络延迟数字。这些问题需要针对具体版本的协议文档或测量结果。Proof Lab也不是对异步建立、密钥耗尽或延迟消息恢复的完整测试。
如何评估离线消息传递的声明
向厂商或审查者索取涵盖以下情况的证据:
| 测试情形 | 应观察什么 |
|---|---|
| 向断网联系人发送第一条消息 | 使用了哪些公钥材料,以及收件人实际何时收到消息 |
| 一次性预密钥耗尽 | 会话建立是停止还是采用有文档说明的回退方式,以及声明的安全权衡 |
| 收件人重装应用或更换身份 | 旧的排队消息是否仍可解密,以及密钥变化是否可见 |
| 消息延迟或乱序 | 保留限制、跳过的密钥如何处理,以及错误是否容易理解 |
| 长期离线后返回 | 安全的密钥更新、有上限的处理工作量,以及准确的传递状态 |
| 性能比较 | 设备、应用版本、网络、载荷大小,以及分别测量冷启动会话建立与已建立会话 |
使用不敏感的测试账户和消息。一次成功的传递测试只能展示该情形,而不是所有密码学属性。反过来,传递失败可能是网络或生命周期问题,而不是密码算法被破解。
常见问题
我发送消息时,收件人可以离线吗?
可以,前提是应用具备所需的公共材料和传递、存储基础设施。在收件人的设备能够获取并处理排队消息之前,收件人无法阅读它。
更大的 KEM 密钥总会让聊天明显变慢吗?
仅凭密钥大小,无法得出普遍适用的耗时结论。建立会话的频率、批处理、缓存、实现和网络条件都很重要。应发布基准测试,而不是承诺零开销。
带签名的预密钥能证明账户背后的人是谁吗?
它根据某个签名身份认证材料。该身份如何与您打算联系的人绑定,是另一个关于信任和验证的问题。
后量子加密可以在没有任何连接时工作吗?
部分本地计算可以离线运行。但消息传递仍需要通信路径;密码学不会提供这样的路径。



