跳到正文
Cipherloom密码织机

CIPHER/POLYALPHABETIC/PORTA CIPHER

波尔塔密码

发布 2026 年 10 月 8 日 · · 7 分钟阅读

乔万·巴蒂斯塔·德拉·波尔塔在 1563 年公布了这张表盘,解决了一个困扰密码学家一个世纪的问题:他造出了一套自逆的多表密码。加密与解密使用同一套流程、同一把密钥,因此野战文书不可能把方向搞反。

时代
文艺复兴
类型
多表
密钥空间
26^k, 13 rows
难度
野战
密文栅格图版:波尔塔密码
图版 porta-cipher · 多表

I现象

这张表盘有十三行,每行由一对字母作密钥:第一行用 A 或 B,第二行用 C 或 D,依次到第十三行用 Y 或 Z。这把密钥字母表缩小了一半,同时让每一行都成为对合映射。

每行的工作方式是把字母表劈成两半。A-M 是前半,N-Z 是后半。在第一行里 A 映射到 N、B 映射到 O;N 映射回 A、O 映射回 B。把该行套用两次就回到原字母,这正是使密码自逆的性质。

密钥对A 映射到N 映射到A 再 N 的结果
AB(第 1 行)NA回到原文
CD(第 2 行)OM回到原文
EF(第 3 行)PL回到原文

以密钥 PORTA 加密明文 LOOM 的实例:

位置明文密钥行密文
1LP8A
2OO8Y
3OR9C
4MT10D

注意前两个字母用了同一行,因为 P 与 O 都落在第八行的密钥字母对范围内;后两个字母换行。机制就在这里:长度为 k 的密钥给出 13^k 种不同的行序列,而不是 26^k,但换来的是自逆性。

II密钥空间

对长度为 k 的密钥,行序列空间是 13^k。六字母密钥给出约 480 万种行序列——比维吉尼亚的 26^6 小 64 倍,这就是自逆性付出的代价。

这是一次实际的缩减,但就其时代而言并不致命。波尔塔真正的弱点与维吉尼亚相同:密钥会重复,而重复的密钥可以用卡西斯基检验测量。

自逆性是一项运行特性,不是安全特性。让密码更容易使用并不会让它更难被破,只是意味着使用者会犯更少的错误。

平心而论,少犯错是有价值的。一个密钥空间为 13^6、但被正确使用的密码,对军队来说比一个密钥空间为 26^6、却被错误使用的密码更有用——波尔塔显然是有意做出这个判断的。

III加密步骤

  • 写下不含空格的关键词,在心里把字母两两配对:A 与 B 是第 1 行,C 与 D 是第 2 行,依此类推。
  • 把明文写成大写写在下方,关键词按需重复。
  • 对每个位置,由密钥字母确定行号,只取配对序号:字母序号除以 2 向下取整。
  • 在该行查出明文字母。A-M 映射到字母表后半,N-Z 映射到前半。
  • 写出结果字母。任何步骤都不需要改变——波尔塔只有一套流程。
  • 输出按五个一组分组以便传输。

IV解密步骤

  • 完全按发信方的方式重建密钥时序。由于密码是对合映射,没有其他东西需要设置。
  • 对每个密文字母,由密钥字母确定行号。
  • 在同一行读出明文字母。映射是对称的,因此不需要逆表。
  • 由上下文重新分词。波尔塔与所有多表密码一样,本身不保留词边界。
  • 若结果不通,检查密钥:一个错误的密钥字母只会污染一个明文字母,因此错误是局部的、容易定位。
  • 面对未知密钥时,对密文中的重复做卡西斯基检验,求出周期,再把每条流当作十三行的替换来解决。

V弱点

密钥重复。 该密码只在密钥长度范围内是多表的。超出之后行序列开始循环,而标准的周期寻找攻击与对付维吉尼亚时一模一样地适用。

只有 13 行。 行数只有完整表盘的一半,因此每一行被使用的频率大约翻倍,统计特征更快稳定,分析者需要的文本更少。

自逆性压缩了密钥空间。 13^k 而非 26^k——缩减因子是 2^k,对十字母密钥而言就是一千倍。

它的泄露方式与所有多表密码相同。 相隔为密钥长度倍数的重复明文短语会产出重复密文,而这些间距的最大公约数就交出了密钥长度。

VI实战挑战

密文

AAAANZSVJFWOPY

提示: 密钥 PORTA。行号由密钥字母配对决定:AB 是第 1 行,CD 是第 2 行,依此类推。

展开答案

明文

PORTA KEEPS HALF

本条目为历史与教育内容。相关描述不是绕开任何在用系统安全措施的指引,也不构成专业建议。

·史料

乔万·巴蒂斯塔·德拉·波尔塔于 1563 年在《论隐书》中公布了这张表盘;该书还收录了大量更早的密码,并长篇讨论了密码分析。波尔塔密码在意大利被使用,并以其修改形式出现在后来的欧洲外交通信中。它在历史上的主要意义在于自逆设计:它证明了多表密码不必要求两套不同流程——这项创新使机械式、其后是电气式的密码机在设计上简单了许多。

·继续读

波尔塔的贡献常被低估,因为他的密码被破了;但那个设计直觉是对的,而且不断取胜:现代认证加密模式在某种意义上也是自逆的——同一把密钥与 nonce 驱动两个方向;现代野战装备的设计目标之一,就是让疲惫的操作者不可能选错模式。

波尔塔表盘还有一个对教学很重要的性质:由于每行由半字母对构成,整张表可以由一条规则生成,而不必背下 676 个条目。把密钥调度压缩成一条规则,正是现代密钥派生背后的同一个想法。

下一台织机:cardan-grille——用实体遮罩完成的置换,以及一种对“密钥可以是什么”截然不同的理解。

+相关织线