列换位密码编码器和解码器
列换位密码通过将明文逐行写入网格,然后按关键词确定的顺序逐列读取来加密消息。使用此免费工具可以单次或双重换位方式编码和解码消息。与替换密码不同,换位密码重新排列字母位置而不改变字母本身,使频率分析无效。
关于列换位密码的常见问题
什么是列换位密码?
列换位密码是一种加密方法,通过将消息字母逐行写入网格,然后按关键词确定的特定顺序逐列读取来重新排列字母。与替换字符的替换密码不同,换位密码只改变字符的位置,保持原始字母不变。
关键词如何确定列顺序?
关键词字母按字母顺序排序,每个字母在排序中的位置成为其列编号。例如,关键词 ZEBRAS:A 是第 1 位,B 是第 2 位,E 是第 3 位,R 是第 4 位,S 是第 5 位,Z 是第 6 位。当字母重复时,按其在关键词中的位置(从左到右)打破平局。然后按此编号顺序逐列读取消息。
列换位中的填充是什么?
当明文无法完全填满网格时(最后一行有空格),需要添加填充字符来填满剩余格子。常见的填充字符包括 X 或 Z。某些实现使用随机字母或不填充。填充确保所有列长度相等,简化加密和解密。接收方知道忽略解码消息末尾的填充字符。
什么是双重列换位?
双重列换位使用两个不同的关键词将密码应用两次。明文首先用第一个关键词加密,然后将所得密文再次用第二个关键词加密。这显著提高了安全性,因为第一次的列结构被第二次打乱,使密码分析更加困难。它在一战和二战期间被军事力量广泛使用。
列换位密码在二战中如何使用?
列换位密码在二战期间被广泛使用,特别是德国军队和抵抗组织。双重换位变体被认为足够安全用于野战通信,因为它只需要铅笔和纸,可以使用记忆的关键词,并能抵抗简单的频率分析。德国 ADFGVX 密码将波利比乌斯方格替换与列换位结合以增强安全性。
列换位密码与栅栏密码相比如何?
两者都是换位密码,但差异显著。栅栏密码以锯齿形模式写入固定行数的文本,密钥空间有限(仅为行数)。列换位使用关键词确定列的读取顺序,提供更大的密钥空间。列换位通常更安全,尤其是双重换位变体,更适合军事用途。
列换位密码可以被破解吗?
单次列换位可以使用变位词技术破解,密码分析员尝试不同的列排列直到出现可读文本。列数可以从密文长度的因数中猜测。双重换位更难破解,但可以使用已知明文攻击或统计方法用足够的密文进行攻击。现代计算机可以快速暴力破解常见关键词。
为什么频率分析对换位密码无效?
频率分析对替换密码有效,因为字符被替换时字母频率会改变。在换位密码中,原始字母被保留——只有其位置改变。密文中的字母频率分布与明文相同。这使得频率分析对破解换位密码无用,尽管对潜在列排列的双字母/三字母分析可能有效。
你可能也会喜欢
什么是列换位密码(Columnar Transposition Cipher)?
列换位密码(columnar transposition cipher)是一种经典加密方法,通过重新排列消息中字母的位置来加密,而不改变字母本身。与凯撒密码或维吉尼亚密码等替换密码不同,换位密码保留所有原始字母——只是打乱其顺序。
明文按行写入以关键字定义列的网格中,然后按关键字字母的字母顺序逐列读出,生成密文。这使频率分析完全失效,因为字母分布与原始明文完全相同。
列换位密码的工作原理
加密步骤详解
关键字: ZEBRAS 明文: WE ARE DISCOVERED FLEE AT ONCE
第一步——按关键字字母顺序为各列编号:
| Z | E | B | R | A | S |
|---|---|---|---|---|---|
| 6 | 3 | 2 | 4 | 1 | 5 |
排序:A(1)、B(2)、E(3)、R(4)、S(5)、Z(6)
第二步——将明文逐行写入网格:
| 6 | 3 | 2 | 4 | 1 | 5 |
|---|---|---|---|---|---|
| W | E | A | R | E | D |
| I | S | C | O | V | E |
| R | E | D | F | L | E |
| E | A | T | O | N | C |
| E | X | X | X | X | X |
最后一行用 X 填充以补满所有列。
第三步——按编号顺序读出各列(1、2、3、4、5、6):
- 第 1 列(A):E V L N X
- 第 2 列(B):A C D T X
- 第 3 列(E):E S E A X
- 第 4 列(R):R O F O X
- 第 5 列(S):D E E C X
- 第 6 列(Z):W I R E E
密文: EVLNX ACDTX ESEAX ROFOX DEECX WIREE
解密
解密时,接收方必须知道关键字。他们根据密文长度除以关键字长度计算行数,按关键字字母顺序填入各列,然后逐行读取网格以还原明文。
双重列换位密码
双重换位密码使用两个不同的关键字两次应用该密码。第一次加密的输出作为第二次的输入。这大幅提高了安全性,因为第一次的列结构被第二次完全打乱。
双重换位密码在第一次世界大战和第二次世界大战期间被军事力量广泛使用,原因如下:
- 仅需铅笔、纸张和一个记忆中的关键字
- 能抵抗简单的密码分析技术
- 两个短关键字提供了相当可观的安全性
安全性分析
| 方面 | 单次换位 | 双重换位 |
|---|---|---|
| 密钥空间 | n!(关键字长度的阶乘) | n1! x n2! |
| 频率分析 | 无效 | 无效 |
| 字谜攻击 | 脆弱 | 抵抗力强 |
| 已知明文攻击 | 脆弱 | 更具抵抗力 |
| 历史军事使用 | 有限 | 广泛(一战、二战) |
为何频率分析失效
换位密码保留了原始字母频率,因为没有替换任何字母。密文包含与明文完全相同的字母,只是顺序不同。攻击者无法从密文的字母分布中区分明文信息。
字谜攻击
对于单次换位,密码分析师可以猜测列数(从密文长度的因数推断),然后尝试重新排列各列,直到出现可读的双字母组合和三字母组合。这种方法对双重换位几乎无效。
列换位密码与其他密码的比较
| 特征 | 列换位密码 | 凯撒密码 | 维吉尼亚密码 | Playfair 密码 |
|---|---|---|---|---|
| 类型 | 换位 | 替换 | 多表替换 | 双字母组替换 |
| 改变字母? | 否 | 是 | 是 | 是 |
| 频率分析 | 无用 | 有效 | 部分有效 | 部分有效 |
| 密钥类型 | 关键字 | 移位数字 | 关键字 | 关键字 |
| 加密单元 | 完整消息 | 单个字母 | 单个字母 | 字母对 |
历史使用
列换位密码有着丰富的军事历史:
- 第一次世界大战:德国军队用于野战通信
- 第二次世界大战:双重换位变体被抵抗组织和情报机构使用
- ADFGVX 密码:德国军队将 Polybius 方阵 替换与列换位结合,创造出一战中最复杂的密码系统之一
- 英国特别行动处(SOE):英国特工使用以诗歌为关键字的双重换位密码进行秘密通信
常见问题
如何用手工方式进行列换位加密?
将关键字横写在网格顶部,按字母顺序对各列编号,逐行填入明文(如有需要则在最后一行填充),然后按编号顺序读出各列。以关键字 ZEBRAS 和消息"HELLO WORLD"为例:为各列编号 A=1、B=2、E=3、R=4、S=5、Z=6,填好网格后依次读取第 1 至第 6 列。
列换位应该选择什么关键字?
选择没有重复字母的关键字操作最简单。关键字越长,列数越多,安全性越高。历史用户通常选择易记的短语或代号。避免使用非常短的关键字(4 个字母以下),因为其安全性极低。对于双重换位,使用两个不同长度的不同关键字。
在不知道关键字的情况下能破解列换位密码吗?
单次列换位可以通过猜测列数(从密文长度的因数推断)然后进行字谜攻击——尝试不同的列排列直到出现可读文本。双重换位则难以破解得多。我们的解码工具包含自动暴力破解模式,可自动尝试常见关键字。
列换位密码与栅栏密码有什么区别?
两者都是换位密码,但文本排列方式不同。栅栏密码将文本以锯齿形写入固定行数,而列换位密码将文本写入网格后按关键字确定的顺序读取列。列换位密码的密钥空间更大,因其更高的安全性而在军事中更受青睐。
为何列换位密码在战时广受欢迎?
它只需铅笔和纸,关键字可以记忆(无需可被缴获的密码本),能抵抗频率分析,且双重换位变体在当时提供了强大的安全性。野战特工无需任何特殊设备即可加密和解密消息。
相关工具和资源
- 列换位密码解码器 — 解密消息并暴力破解未知关键字
- 列换位密码示例 — 加密和解密的逐步演示
- Polybius 方阵 — 常与列换位结合用于 ADFGVX 密码
- 维吉尼亚密码 — 用于对比的多表替换密码
- Playfair 密码 — 另一种基于网格加密的二战时期密码
- 凯撒密码 — 用于基础理解的最简单替换密码