Vernam 密码(一次性密码本)在线编码器和解码器

Vernam 密码(又称一次性密码本)是唯一经数学证明无法破解的加密方法。它通过 XOR 或模加法将明文与等长的真随机密钥组合。使用此免费工具以完美保密性加密和解密消息——无需注册。

结果
0 字符

加密模式

选项

可视化

安全警告

  • 密钥必须是真正随机的(不能是单词或规律)
  • 永远不要重复使用密钥——使用一次后销毁
  • 密钥长度必须等于或超过消息长度
  • 使用后立即销毁密钥

正确使用时提供完美保密性

什么是弗纳姆密码?

弗纳姆密码(Vernam Cipher),也称为一次性密码本(OTP),是唯一被数学证明不可破解的加密方法。由 Gilbert Vernam 于1917年在 AT&T 贝尔实验室工作时发明,它将每个明文字符与来自等长真随机密钥的对应字符相结合,使用模加法或 XOR 运算。

当正确实现时,一次性密码本能够实现密码学家所称的完美保密性——Claude Shannon 在其1949年的里程碑式论文《保密系统的通信理论》中正式证明了这一性质。无论现在还是未来,任何计算能力都无法破解正确使用的一次性密码本。

加密原理

弗纳姆密码提供两种操作模式,只要密钥满足所需条件,两者都能产生可证明安全的密文。

维吉尼亚模式(字母加法)

每个字母被转换为数字(A=0, B=1, ... Z=25),与对应的密钥值相加,并以26取模:

加密: C = (P + K) mod 26

解密: P = (C - K) mod 26

示例: 使用密钥"XMCKL"加密"HELLO":

  • H(7) + X(23) = 30 mod 26 = 4 (E)
  • E(4) + M(12) = 16 mod 26 = 16 (Q)
  • L(11) + C(2) = 13 mod 26 = 13 (N)
  • L(11) + K(10) = 21 mod 26 = 21 (V)
  • O(14) + L(11) = 25 mod 26 = 25 (Z)

结果:HELLO 变为 EQNVZ

XOR 模式(二进制运算)

每个字符被转换为二进制,并与密钥逐位进行 XOR 运算。XOR 是自逆运算,即相同操作既可加密也可解密:

明文 'H':  01001000
密钥字节:  10110111
XOR 结果:  11111111  (密文)

密文:      11111111
密钥字节:  10110111
XOR 结果:  01001000  (恢复 'H')

XOR 模式可处理任何二进制数据,而不仅仅是文本,使其成为现代实现中的标准方法。

完美安全性的要求

完美保密性依赖于四个不可妥协的条件。违反其中任何一个都会将密码降级为普通的可破解系统。

要求重要性
真随机密钥伪随机生成器遵循可以被预测或重现的确定性模式
密钥长度 >= 消息长度较短的密钥会强制重复,产生可利用的模式(类似于维吉尼亚密码
仅使用一次重复使用密钥让攻击者可以对两个密文进行 XOR,消除密钥并暴露两个明文
密钥保密如果对手获得密钥,所有安全性立即丧失

弗纳姆密码与维吉尼亚密码对比

弗纳姆密码与维吉尼亚密码共享相同的数学运算——模加法——但在密钥处理方式上存在根本差异。

特性弗纳姆密码(OTP)维吉尼亚密码
密钥长度等于消息长度短关键词,重复使用
密钥材料真随机易记的单词或短语
安全级别完美保密性(已证明)可通过 Kasiski 检验破解
实际用途极其有限历史上广泛使用
密钥重用从不——每个密钥仅使用一次相同关键词无限期重复使用

像"SECRET"(6个字母)这样的维吉尼亚密钥在100个字母的消息中重复超过16次,产生频率分析可以利用的周期性模式。而100个真随机字符的弗纳姆密钥产生的密文完全没有可利用的结构。

历史应用

军事和情报用途

一次性密码本在冷战时期得到广泛使用。特工携带印有随机数字序列的纸质密码本,每页只使用一次后即销毁。1963年建立的华盛顿-莫斯科热线(旨在防止意外核战争)最初依赖一次性密码本加密。

该系统最著名的失败案例发生在二战期间。受战时压力影响,苏联重复使用了部分一次性密码本密钥。美国国家安全局的**文字密码项目(Venona Project)**利用这些重复使用的密钥,在1943年至1980年间解密了数千条苏联情报消息,暴露了主要间谍网络。算法本身从未被破解——只是密钥管理失败了。

现代意义

今天,一次性密码本对大多数通信来说是不切实际的,因为分发与每条消息等长的密钥会产生巨大的后勤挑战。然而,这一原则在**量子密钥分发(QKD)**中得以延续,它使用量子力学通过光纤链路安全分发真随机密钥,从而有效解决了密钥分发问题。

一些情报机构据信仍在最敏感的通信中使用一次性密码本系统,该密码仍是衡量所有其他加密方法的理论标准。

弗纳姆密码与其他加密方法对比

特性弗纳姆(OTP)凯撒密码AES-256RSA
安全基础信息论无(极易破解)计算复杂性计算复杂性
密钥长度与消息等长1个数字(0-25)256位2048+位
抗量子是(可证明)不适用部分
日常实用性

常见问题

弗纳姆密码可以被破解吗?

不能——只要正确使用就不能。Shannon 的证明表明,使用真随机、足够长的单次使用密钥时,对于任何给定密文,每个可能的明文都是同等可能的。攻击者仅从密文中获取零信息。像文字密码项目这样的历史性"破解"之所以成功,是因为密钥被重复使用,而非算法有缺陷。

为什么一次性密码本对日常使用不切实际?

密钥必须与每条消息等长且永不重用。加密1 GB的文件需要通过单独渠道安全分发1 GB的密钥。对于大量通信,这造成了难以维持的后勤问题,这就是为什么现代系统使用AES等计算安全算法的原因。

弗纳姆密码与 XOR 加密有何区别?

XOR 是弗纳姆密码中使用的二进制运算,但并非所有 XOR 加密都符合一次性密码本的标准。许多"XOR加密"工具使用短的重复密钥或算法生成的伪随机流。安全性来自密钥属性——真随机性、足够的长度和单次使用——而非 XOR 运算本身。

谁发明了弗纳姆密码?

Gilbert Sandford Vernam 于1917年在 AT&T 贝尔实验室发明了该密码,用于保护电传打字机通信(美国专利1,310,719,1919年授权)。美国陆军信号兵团的 Joseph Mauborgne 后来贡献了密钥必须完全随机这一关键见解。Claude Shannon 于1949年提供了完美保密性的数学证明。

自动密钥密码与弗纳姆密码相比如何?

自动密钥密码使用短初始密钥,然后通过追加明文字符来扩展它。虽然这消除了维吉尼亚密码的重复密钥弱点,但密钥流并非随机——它依赖于明文本身,使其容易受到统计攻击。弗纳姆密码要求每条消息都有一个完全独立的真随机密钥。

相关工具与资源

关于弗纳姆密码的常见问题

弗纳姆密码是什么?

弗纳姆密码是一种将明文与等长随机密钥通过 XOR 或模加法结合的加密方法。1917 年由 AT&T 贝尔实验室工程师吉尔伯特·弗纳姆发明,最初用于电传通信安全。当使用真正随机的一次性密钥时,它成为一次性密码本——唯一被数学证明无法破解的密码。

为什么一次性密码本无法破解?

一次性密码本无法破解,因为在任意密文下,每种明文出现的概率都相等。克劳德·香农在其 1949 年论文《保密系统的通信理论》中证明了这一点,称之为"完美保密性"。由于密钥是真正随机的且与消息等长,无论多大的计算能力或数学分析都无法缩小原始消息的范围。使用不同密钥进行的每次解密都会产生合理但不同的结果。

弗纳姆密码如何工作?

弗纳姆密码通过 XOR(异或)或模加法将明文的每个字符与密钥对应字符结合。加密时,每个明文位或字母与对应的密钥位或字母进行 XOR 运算。解密时,对密文应用相同的 XOR 运算和相同的密钥,因为 XOR 是自逆的。例如,明文"A"(01000001)XOR 密钥"K"(01001011)产生密文(00001010),再对该结果与相同密钥进行 XOR 运算即可还原"A"。

安全的一次性密码本有哪些要求?

安全的一次性密码本需要满足四个严格条件:(1)密钥必须是真正随机的,而非伪随机或算法生成;(2)密钥长度至少与明文消息一样长;(3)每个密钥只能使用一次,使用后销毁;(4)密钥必须完全保密,仅在发送方和接收方之间共享。违反任何条件都会使密码丧失完美保密性保证,并可能遭受密码分析攻击。

谁发明了弗纳姆密码?

AT&T 贝尔实验室工程师吉尔伯特·桑福德·弗纳姆于 1917 年发明了这种密码,用于保护电传(电报机)通信安全。弗纳姆于 1919 年为该系统申请了专利(美国专利 1,310,719)。美国陆军通信兵军官约瑟夫·莫博涅后来提出了密钥必须完全随机的关键见解,将弗纳姆密码转变为真正的一次性密码本。克劳德·香农随后于 1949 年提供了其安全性的数学证明。

为什么一次性密码本对大多数用途不实用?

一次性密码本不实用,因为密钥管理造成了巨大的后勤挑战。密钥必须与发送的每条消息一样长,因此加密一个 1 GB 的文件需要提前安全分发一个 1 GB 的密钥。密钥永远不能重复使用,因此各方必须通过安全渠道持续交换新的密钥材料。大规模生成真正随机密钥也很困难。这些限制使一次性密码本仅适用于最高安全级别的通信,例如冷战期间的华盛顿–莫斯科热线。

弗纳姆密码与 XOR 加密有何区别?

XOR 加密是弗纳姆密码中使用的二进制运算,但并非所有 XOR 加密都符合弗纳姆密码的标准。真正的弗纳姆密码(一次性密码本)要求使用与消息等长且从不重复使用的真随机密钥。许多所谓的 XOR 加密方案使用短重复密钥或算法生成的伪随机密钥流,这使其容易受到已知明文攻击、频率分析和密钥恢复攻击。弗纳姆密码的安全性来自于密钥特性,而非 XOR 运算本身。