列置换密码示例和教程

通过涵盖加密、解密、双重置换和关键字处理的逐步示例学习列置换密码。

逐步讲解:关键词 ZEBRAS

加密「WE ARE DISCOVERED FLEE AT ONCE」

步骤 1:确定列顺序

将关键词字母按字母顺序排序。每个字母在排序中的位置成为其列编号。

关键字ZEBRAS
已排序ABERSZ
列号632415

步骤 2:逐行填入网格

将明文写入 6 列的网格(每个关键词字母一列)。用 X 填充最后一行。

ZEBRAS
632415
WEARED
ISCOVE
REDFLE
EATONC
EXXXXX
读取顺序: ABERSZ

步骤 3:按顺序读取各列

从上到下读取每一列,按编号顺序(第 1、2、3…)进行。

#1 (A)EVLNX
#2 (B)ACDTX
#3 (E)ESEAX
#4 (R)ROFOX
#5 (S)DEECX
#6 (Z)WIREE
密文
EVLNXACDTXESEAXROFOXDEECXWIREE
1. 关键词「KEY」的列顺序是什么?
2. 用关键词「ABC」加密「HELLO WORLD」
3. 为什么双重换位比单次换位更安全?

关于列换位密码示例的常见问题

基础 ZEBRAS 示例如何工作?

基础示例用关键词 ZEBRAS 加密「WE ARE DISCOVERED FLEE AT ONCE」。第 1 步将关键词字母按字母顺序排序(A、B、E、R、S、Z)以确定列读取顺序。第 2 步将明文逐行写入六列网格,最后一行用 X 填充。第 3 步按编号顺序从上到下读取每一列,得到密文。交互式网格用颜色标注列,使你可以追踪每个字母最终落在哪里。

为什么双重换位示例使用两个关键词?

双重换位用两个不同的关键词(示例中先 SECRET 后 CODE)加密两次。第一次产生中间密文,再输入第二次加密。由于第二次打乱了第一次的列结构,变位词攻击变得困难得多。德国军队在两次世界大战中正是出于这个原因广泛使用双重换位。

二战用途示例教给你什么?

二战示例从安全级别、典型用途、与栅栏密码相比的密钥选项、以及所需设备等方面对比单次和双重换位。它解释了为什么一支铅笔加可记忆关键词的密码对野战人员有吸引力,并指出德国 ADFGVX 密码将波利比乌斯方格替换与列换位结合。英国密码分析师乔治·潘万于 1918 年 6 月破解了 ADFGVX。

练习题如何帮助你学习?

练习部分要求你确定关键词 KEY 的列顺序、用关键词 ABC 加密 HELLO WORLD、以及解释为什么双重换位比单次换位更安全。点击揭示可以查看参考答案。先做题再核对是确认你能手工应用关键词排序和列读取规则的最快方式,无需依赖编码器工具。

列换位密码示例——逐步学习

通过涵盖加密、解密、双重换位和密码分析的详细实践示例,掌握列换位密码。每个示例展示从关键字排序到网格构建和列读取的每个步骤。所有示例均可使用我们的列换位编码器解码器进行验证。

示例 1:使用关键字 ZEBRAS 的基础加密

这个经典示例使用著名关键字 ZEBRAS 演示标准列换位过程。

问题设置

明文:WE ARE DISCOVERED FLEE AT ONCE 关键字:ZEBRAS

第一步:确定列顺序

按字母顺序排列关键字字母,相同字母按位置排序:

字母ZEBRAS
位置012345
顺序632415

字母顺序排名:A(位置 4)=1、B(位置 2)=2、E(位置 1)=3、R(位置 3)=4、S(位置 5)=5、Z(位置 0)=6

第二步:将明文写入网格

去除空格,按 6 列逐行写入:

Z(6)E(3)B(2)R(4)A(1)S(5)
WEARED
ISCOVE
REDFLE
EATONC
EXXXXX

最后一行用 X 填充。

第三步:按 1、2、3、4、5、6 顺序读取各列

  • 第 1 列(A):EVLNX
  • 第 2 列(B):ACDTX
  • 第 3 列(E):ESEAX
  • 第 4 列(R):ROFOX
  • 第 5 列(S):DEECX
  • 第 6 列(Z):WIREE

结果:WE ARE DISCOVERED FLEE AT ONCE -> EVLNXACDTXESEAXROFOXDEECXWIREE

示例 2:基础解密

将示例 1 的密文解密回原始消息。

问题设置

密文:EVLNXACDTXESEAXROFOXDEECXWIREE 关键字:ZEBRAS

第一步:计算网格尺寸

30 个字符 / 6 列 = 5 行(整除,无短列)

第二步:按字母顺序填入各列

每列取 5 个字符,按 1、2、3、4、5、6 顺序填入:

第 1 列(A,位置 4):E V L N X 第 2 列(B,位置 2):A C D T X 第 3 列(E,位置 1):E S E A X 第 4 列(R,位置 3):R O F O X 第 5 列(S,位置 5):D E E C X 第 6 列(Z,位置 0):W I R E E

第三步:将各列放回原始位置重建网格

Z(0)E(1)B(2)R(3)A(4)S(5)
WEARED
ISCOVE
REDFLE
EATONC
EXXXXX

第四步:逐行读取

WEAREDISCOVEREDFLEEATONCEXXXXX

去除填充:WE ARE DISCOVERED FLEE AT ONCE

示例 3:短关键字加密

较短的关键字产生较少的列,从而形成不同的网格结构。

问题设置

明文:ATTACK AT DAWN 关键字:KEY

第一步:列顺序

KEY
213

字母顺序:E=1、K=2、Y=3

第二步:填写网格(去除空格)

K(2)E(1)Y(3)
ATT
ACK
ATD
AWN

无需填充(12 个字符 / 3 列 = 4 行,整除)。

第三步:按 1、2、3 顺序读取

  • 第 1 列(E):TCTW
  • 第 2 列(K):AAAA
  • 第 3 列(Y):TKDN

结果:ATTACK AT DAWN -> TCTWAAAATKDN

示例 4:双重列换位

双重换位应用两轮加密,提供显著更强的安全性。

问题设置

明文:HELLO WORLD 第一关键字:CAB 第二关键字:DUSK

第一步:使用关键字 CAB 进行首次加密

列顺序:A=1、B=2、C=3

C(3)A(1)B(2)
HEL
LOW
ORL
DXX

用 X 填充。读取各列:EORX LWLX HLOD

第一轮结果:EORXLWLXHLOD

第二步:使用关键字 DUSK 进行第二次加密

列顺序:D=1、K=2、S=3、U=4

按字母顺序排列:D=1、K=2、S=3、U=4

D(1)U(4)S(3)K(2)
EORX
LWLX
HLOD

按 1、2、3、4 顺序读取:ELH XXD RLO OWL

最终密文:ELHXXDRLOOWL

双重换位解密

解密时,逆转过程:先用关键字 DUSK 解密,再用关键字 CAB 解密。

示例 5:处理关键字中的重复字母

当关键字包含重复字母时,按位置(从左到右)打破平局。

问题设置

明文:SECRET 关键字:BANANA

第一步:含重复字母的列顺序

BANANA
215364

三个 A:第一个 A(位置 1)= 排名 1,第二个 A(位置 3)= 排名 3,第三个 A(位置 5)= 排名 4。 两个 N:第一个 N(位置 2)= 排名 5,第二个 N(位置 4)= 排名 6。 一个 B:B(位置 0)= 排名 2。

第二步:填写网格

B(2)A(1)N(5)A(3)N(6)A(4)
SECRET

6 个字符只需一行。

第三步:按 1、2、3、4、5、6 顺序读取

E S R T C E

结果:SECRET -> ESRTCE

常见问题

哪里可以找到带解答的列换位密码示例?

本页面提供了完整的列换位密码示例及逐步解答,涵盖基础加密和解密、短关键字、双重换位以及处理重复关键字字母。所有示例包含网格可视化,并可使用我们的编码器解码器工具进行验证。

如何逐步解决列换位问题?

加密:写下关键字,按字母顺序为各列编号,逐行将明文填入网格(如有需要则填充),然后按编号顺序读取各列。解密:计算网格尺寸,按字母顺序用密文段填入各列,然后逐行读取网格。请参见上方示例 1 和示例 2 的完整演示。

双重列换位如何工作?

用第一个关键字正常加密消息,然后将所得密文用第二个关键字再次加密。解密时反向操作:先用第二个关键字解密,再用第一个关键字解密该结果。上方示例 4 演示了完整过程。

关键字中的重复字母如何影响加密?

当关键字含有重复字母(如 BANANA)时,按位置从左到右打破平局。字母首次出现获得较低排名。这确保了无论字母重复与否,列顺序都是唯一确定的。请参见示例 5 的演示。

应该使用什么填充字符?

最常见的填充字符是 X 和 Z,因为它们是英语中频率最低的字母。某些实现使用随机字母或不进行填充。填充字符的选择不影响安全性,但使用可辨认字符可使手动解密更加容易。