密码棒(Scytale)加密解密工具

把消息缠在一根虚拟的斯巴达木棒上,看纸条展开成密文。知道棒粗就直接解密;不知道,工具会把每圈 2 到 30 个字母的情况全部试一遍并按可读程度排序。

示例
占用 20 格

木棒粗细

题目给的是哪一个数?

木棒绕一圈能放几个字母,也就是网格的行数。

每圈 4 个字母 × 5 圈,共 20 个字母

正好排满矩形

选项

纸条是怎么缠的

每圈 4 个字母(行数) · 5 圈(列数)
IAMHU
RTVER
YBADL
YHELP

正在读第 1 / 4 行: IAMHU

拖动或滑动木棒来转动它。带框的那一行,就是顺着木棒读出来的内容。

展开后的纸条

颜色与纸条的每一圈对应。

IRYY
ATBH
MVAE
HEDL
URLP

密文20 个字母

IRYYATBHMVAEHEDLURLP

密码棒(Scytale,斯巴达密码棒)是一种只改变字母顺序、不改变字母本身的古老加密方法:把一条皮带或纸条斜着缠在木棒上,顺着木棒写字,写完再把纸条解下来。纸条离开木棒后,上面的字母看起来乱七八糟;缠回一根同样粗细的木棒,字母又会排成原来的句子。本页的密码棒工具会替你完成缠绕,一边输入一边画出纸条在木棒上的样子;不知道木棒粗细时,它也能把所有可能都试一遍,帮你解密。

密码棒是什么?

密码棒的英文 scytale 来自希腊语 skytálē,意思是"棍子、权杖"。它属于换位密码:原文的每个字母都会出现在密文里,只是位置变了。这和凯撒密码正好相反——凯撒密码不动顺序,而是把每个字母换成另一个字母,属于替换密码。

密码棒(Scytale)
类型换位密码(字母重排,不替换)
密钥木棒的粗细,也就是每绕一圈能写几个字母
一条 n 个字母的消息有多少种可能的密钥每圈 2 到 n − 1 个字母
年代古希腊,最著名的是斯巴达
今天的安全性没有;所有密钥几秒钟就能试完

密码棒唯一的秘密就是木棒的粗细。手里有同样粗细木棒的人能直接读出纸条;没有木棒的人,也可以一根一根地试,直到读出通顺的句子。

怎么用这个密码棒工具

  1. 选择加密或解密。 加密把明文变成纸条上的密文;解密把纸条还原成明文。
  2. 输入文字。 默认会去掉空格和标点、统一转成大写字母,这也是古代纸条的写法。关闭这个选项后,空格和标点也各占纸条上的一格。
  3. 设置木棒大小。 先选你知道的是"每圈字母数"还是"缠绕圈数",再填数字。图上会同时标出这两个数,方便你核对。
  4. 转动木棒。 3D 木棒上,每一面写着一行字母,纸条从一面到下一面会稍微往旁边错开一点,这就是缠绕形成的螺旋。拖动或滑动木棒,或者用按钮,都可以转动它;带框的那一面,就是顺着木棒读出来的一行。切到网格视图,可以一次看到所有行排成的表格。
  5. 需要时补满最后一圈。 打开"补满"后,最后一圈不够的位置用填充字母(默认 X)补齐,网格就是完整的长方形。
  6. 复制或打印。 可以直接复制结果,也可以点"打印纸条",把密文打印成一条长纸条,剪下来缠在铅笔或纸筒上。

解密模式下,结果下方会列出所有可能的木棒大小和对应的解密结果,按"像不像英文"排序。即使不知道密钥,也能把密文解开。

"每圈字母数"和"缠绕圈数"别搞混

最容易出错的地方,是把它的两个数字弄混:

  • 每圈字母数:纸条绕木棒一圈能写下几个字母。木棒细,写得少;木棒粗,写得多。它由木棒粗细决定,才是真正的密钥。
  • 缠绕圈数:纸条一共绕了木棒几圈,取决于消息有多长。

把缠好的纸条画成网格,这两个数就一目了然:每一行沿着木棒的长度方向,所以行数等于每圈字母数;每一列是纸条绕的一圈,所以列数等于缠绕圈数。18 个字母的消息,如果每圈 3 个字母,就要绕 6 圈;如果每圈 6 个字母,就只绕 3 圈。这两种设置得到的密文完全不同。所以谜题里写"密钥是 6"时,第一次解不出来,就把 6 当成另一种数字再试一次。

密码棒怎么加密

以 MEET ME AT THE OLD GATE(老城门口见)为例,木棒每圈能写 3 个字母。去掉空格后共 18 个字母,需要绕 18 ÷ 3 = 6 圈。顺着木棒写,正好填满 3 行、每行 6 个:

第1圈第2圈第3圈第4圈第5圈第6圈
第1行MEETME
第2行ATTHEO
第3行LDGATE

解下纸条,就是一圈一圈从上往下读:MAL、ETD、ETG、THA、MET、EOE。得到的密文是 MALETDETGTHAMETEOE。原文的字母一个不少,只是换了位置。

用公式表示

消息正好填满木棒时,设每圈 K 个字母、共 c 圈。原文第 i 个字母(从 0 数起)位于第 r = ⌊i ÷ c⌋ 行、第 t = i mod c 圈,解下纸条后它会出现在密文的第 t × K + r 位。上例中 MEET 的第二个 E 位置是 2,在第 0 行、第 2 圈,所以移到密文第 2 × 3 + 0 = 6 位,也就是 MALETDETG… 的第 7 个字母。解密就是把这个对应关系倒过来。

密码棒怎么解密

解密就是把纸条缠回同样粗细的木棒。在纸上做,就是把密文一圈一圈(按列,从上往下)填进网格,再顺着木棒(按行)读出来。

麻烦在于消息很少正好填满木棒,解密的人得先知道哪几圈少一个字母。比如 HELP IS ON THE WAY(救援在路上),14 个字母,每圈 3 个。需要 5 圈,但 3 × 5 = 15 格,最后一行末尾会空出一格:

第1圈第2圈第3圈第4圈第5圈
第1行HELPI
第2行SONTH
第3行EWAY

纸条读出来是 HSE、EOW、LNA、PTY、IH,密文为 HSEEOWLNAPTYIH。空格总是出现在最后一行的末尾,所以排在后面的几圈各少一个字母。这里第 1 到 4 圈各 3 个字母,第 5 圈只有 2 个。按这个分法逐圈填回网格,再按行读,就重新得到 HELPI SONTH EWAY。上面的解密工具会按消息长度自动算出这个分法。

不知道木棒粗细,怎么破解密码棒

这种密码的密钥非常少。一条 n 个字母的消息,每圈字母数只可能是 2 到 n − 1:每圈 1 个字母,或者每圈字母数和消息一样长,都等于没加密。所以 18 个字母的消息一共只有 16 种可能的密钥。解密面板会把每圈 2 到 30 个字母全部试一遍,再给结果排序。

挑出正确结果,看这三点:

  1. 能不能读出单词。 正确的大小通常一眼就能看出来,其他结果都是乱码。
  2. 是不是完整的长方形。 如果发信人补满了最后一圈,消息长度一定能被正确的每圈字母数整除。18 个字母时,只有每圈 2、3、6、9 个字母能拼成完整长方形,面板会把它们标出来。
  3. 字母频率是否正常。 密码棒只挪动字母,不替换字母,所以密文的字母频率和英文一样:E、T、A 很多,Q、Z 很少。如果一段密文频率很正常却读不通,多半是换位密码。用频率分析工具一看便知。

末尾的 X 是不是填充

用 X 补满最后一圈能让网格整整齐齐,但收信人得把这些多出来的字母去掉。解密后,工具可以帮你去掉末尾的填充字母。如果原文本身可能以 X 结尾(比如 box、relax),就别开这个开关,因为任何工具都分不清哪个 X 是填充、哪个是原文。换一个少见的填充字母(比如 Q),或者事先约定好消息长度,都能避免这个问题。

要不要保留空格和标点

古代的纸条通常不写空格,去掉空格还能隐藏单词从哪里开始、到哪里结束,所以工具默认去掉。如果保留,每个空格和标点都会像字母一样占纸条上的一格,密文里会在奇怪的位置出现空格,反而给破解的人提供线索,消息也会变长。只要发信人和收信人用同一种设置,两种方式都能正确解密。

课堂上做一根密码棒

它是少数能让学生亲手做出来的密码:

  1. 用较小的每圈字母数(比如 3 或 4)加密一句短话。
  2. 点"打印纸条",把密文打印成一条带剪裁线的长纸条。
  3. 剪下纸条;消息长的话,把几段首尾粘起来。
  4. 把纸条和一支铅笔、记号笔或纸筒交给另一组同学。他们把纸条斜着一圈紧挨一圈地缠上去,再转动木棒,直到字母连成单词。

木棒太粗或太细,字母都会错开对不齐。学生由此能直观看到:木棒的粗细就是密钥。最后可以问他们:不告诉大小的话,最多要试多少根木棒才能读出纸条?答案大约是消息有多少个字母——这正是它不安全的原因。

密码棒的历史:古代文献怎么说

插画:一双手把皮带螺旋缠绕在木制密码棒上,背景是斯巴达盾牌和希腊石柱
斯巴达密码棒的想象图:皮带一圈紧挨一圈缠在木棒上,沿木棒方向的每个记号落在不同的一圈上。

skytale 这个词在希腊文献里出现得很早,但对这种装置最清楚的描述来得晚得多,出自公元 100 年前后的普鲁塔克。他在《吕山德传》里写道:斯巴达的官员会做两根长短、粗细完全一样的木棒,自己留一根,另一根交给出征的将领。要下达命令时,就把纸条缠在自己那根木棒上书写,只把纸条送出去。只有将领手里那根配对的木棒,才能让字母重新对齐。

密码棒到底有多保密,史学家至今还有争论。有人认为它主要用来证明消息是真的,因为只有持有配对木棒的人,才能写出一条在对方木棒上读得通的纸条。不管怎样,斯巴达密码棒是已知最早的换位加密装置,"按固定规律重排字母"这个思路,一直延续到 20 世纪的密码里。

密码棒安全吗

按今天的标准,完全不安全。密钥空间极小,密文保留了原文的字母频率,而且一旦猜对木棒粗细,整条消息立刻全部暴露。它今天的价值在教学:密码棒是理解"换位"和"替换"区别最直观的例子,也常常是学习把两者结合起来的更强密码之前的第一步。

密码棒和其他换位密码的比较

密码字母怎么重排秘密是什么不知道秘密时要试多少种
密码棒按行写入,按列读出每圈字母数大约和消息字母数一样多
列换位密码按行写入,按关键词顺序读列列数和列的顺序随关键词变长急剧增加
栅栏密码按之字形写在几条"栏"上栏数大约和消息字母数一样多

画成网格后,密码棒其实就是一种列的读取顺序固定不变的列换位密码,唯一的秘密只是网格大小。列换位密码再加一个关键词来打乱列的顺序,可能的密钥数量就成倍增加,这正是从密码棒往前走的下一步。

密码棒(Scytale)常见问题

不知道密钥,怎么解密密码棒?

把工具切到解密,粘贴密文即可。工具会把每圈 2 到 30 个字母全部试一遍,按"像不像英文"排序并高亮最可能的结果,点任意一行就会载入对应的木棒大小。n 个字母的消息只有 n − 2 种可能的密钥,正确答案通常一眼就能看出来。

密码棒的密钥是什么?

密钥是木棒的粗细,用"每绕一圈能写几个字母"来表示。有些谜题给的是缠绕圈数。工具两种都能填,并且在图上同时标出这两个数,方便你确认谜题指的是哪一种。

密码棒属于替换密码还是换位密码?

换位密码。密文里的字母和原文完全一样,只是顺序变了。所以密码棒的密文仍然保留英文正常的字母频率,这是识别它最快的办法。

解出来的文字差不多能读,但单词顺序是乱的,哪里出错了?

最常见的原因是把缠绕圈数当成了每圈字母数,或者反过来。在工具里切换大小类型再解一次即可。另一个常见原因是一方保留了空格、另一方去掉了空格,双方必须用同一种设置。

斯巴达人真的用密码棒传递秘密消息吗?

公元 100 年前后的普鲁塔克记载,斯巴达官员把命令写在缠绕于配对木棒的纸条上送出。至于密码棒主要是用来隐藏内容,还是用来证明消息出自持有配对木棒的人,史学家至今仍有争论。它仍是已知最早的换位加密装置。

在家或课堂上做密码棒,用什么当木棒?

粗细均匀的圆柱都行:铅笔、记号笔、纸巾卷芯都可以。用较小的每圈字母数(如 3 或 4)加密,点"打印纸条"打印出来,斜着一圈紧挨一圈缠上去。如果字母对不齐,说明木棒太粗或太细。

相似工具