列置换密码 — 实验台工具
发布 2026 年 10 月 14 日 ·
列置换是古典野战密码中的主力:简单到用一支铅笔就能做,强到值得再叠一层,也是一战期间几乎所有严肃军用密码的后半部分。它完全不含算术——只有次序。
- 时代
- 文艺复兴
- 类型
- 置换
- 密钥空间
- keyword permutations
- 难度
- 野战
I这把工具做什么
把明文按行写在关键词下方,再把关键词的字母按字母序编号,最后按编号顺序逐列读出。
关键词 BRASS,明文 LOOM NEVER STOPS:
| B | R | A | S | S |
|---|---|---|---|---|
| L | O | O | M | N |
| E | V | E | R | S |
| T | O | P | S | X |
关键词的字母序是 A(3)、B(1)、R(2)、S(4)、S(5),因此读取顺序是第 3 列、第 1 列、第 2 列、第 4 列、第 5 列。按此读出得 OEP、LET、OVO、MRS、NSX,连起来是 OEPLETOVOMRSNSX。
然后是填充:最后一行需要一个 X 才能补满矩形,接收方必须知道要丢弃它。这就是全部方法——而请注意它的失效方式与替换密码多么不同。所有字母都还待在字母表原本放置它们的地方,变的只是邻居。
II密钥
包含 k 个互异字母的关键词给出 k! 种列序。k = 8 时是 40320;k = 10 时是 360 万。
这相当可观,也是军方使用它的原因。但两个实际因素会严重压缩它。第一,关键词必须好记,因此真实密钥来自一个小词池。第二,更重要的是:攻击者很少需要密钥——他们需要的是列序,而列序可以被统计地恢复。
对置换密码的攻击不是对密钥的搜索,而是对排列顺序的搜索,由语言的统计特性引导。
标准技术是比较候选列对之间的双字母组与三字母组频率。某些字母对共同出现的频率远高于随机——TH、HE、IN、ER——而错误的列相邻关系会杀死这些配对。有几百个密文字母,列序就会自己浮现出来。
III弱点提示
历史密码用于教学与娱乐,不适合保护真实信息。完整分析见对应条目。