458 字
2 分钟
一次一密与完善保密:理论上最安全的加密方案

一次一密(One-Time Pad,OTP)展示了密码学中一个重要结论:只要密钥满足严格条件,密文可以不泄露任何关于明文的信息。

从异或开始#

异或满足 xx=0x \oplus x = 0,因此:

(mk)k=m(m \oplus k) \oplus k = m

OTP 使用同一条密钥流进行加密与解密:

加密:c = m ⊕ k
解密:m = c ⊕ k

例如,10110010 ⊕ 01101101 = 11011111;将结果再次与相同密钥异或,即可恢复原文。

达到完善保密的三个条件#

  1. 密钥必须真正随机。
  2. 密钥长度不能短于明文。
  3. 每个密钥只能使用一次。
重复使用密钥会失效

c1=m1kc_1=m_1\oplus kc2=m2kc_2=m_2\oplus k,则 c1c2=m1m2c_1\oplus c_2=m_1\oplus m_2。密钥被抵消,两个明文之间的关系暴露给攻击者。

什么是完善保密#

Shannon 对完善保密的表达是:

P(MC)=P(M)P(M \mid C) = P(M)

即攻击者观察到密文 CC 后,对明文 MM 的判断没有获得额外信息。对任意给定的 mmcc,OTP 都存在唯一的 k=mck=m\oplus c;只要所有等长密钥等概率出现,任何候选明文都同样可能。

理论与现实的差距#

OTP 的问题是密钥分发:加密 100 GB 数据,就需要预先安全地共享 100 GB 真随机且从不复用的密钥。这使它只适合少数具备专用密钥分发能力的场景。

维度一次一密现代流密码
密钥来源等长真随机密钥短密钥生成伪随机密钥流
安全性质信息论安全计算安全
实际可用性密钥管理成本极高适合通用系统

OTP 是理解安全上界的好模型;现实中更常见的选择是经过验证的现代流密码或认证加密方案。

一次一密与完善保密:理论上最安全的加密方案
https://blog.xqcherry.top/posts/cryptography/perfect-secrecy-and-otp/
作者
xqcherry
发布于
2026-09-17
许可协议
CC BY-NC-SA 4.0