
栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个字一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文。
02加密步骤我们以“I LOVE CTF”为例进行n=2的栅栏加密:
① 去掉空格,得到ILOVECTF.
② 因为n=2,所以我们以两个字母为一组,总共分成4组得到IL OV EC TF
③ 依次读取每组的第一个字母:IOET。完成后,再读取每组第二个字母:LVCF
④ 最后把这两列新得到的字符串组合在一起即完成加密:IOETLVCF
我们再以"Through love comes calm and through calm comes thought"进行n=5的加密:
首先去掉空格和逗号,然后依次以5个为一行可得下方阵列:
t h r o u
g h l o v
e c o m e
s c a l m
a n d t h
r o u g h
c a l m c
d m e s t
h o u g h
t
注意:由于分组的原因,最后一行只有第一列有字母为T,后四列为空。
然后我们依次读取第一列到第五列的字母,然后重新组合即完成加密。
密文:tgesarcohthhccnoamorloaduleuoomltgmsguvemhhcth
03解密步骤通过以上两个例子,想必你已经掌握了栅栏密码的加密原理,所以我们可以通过逆推得到根据一串密文去还原原文的方法:
以"hltodeofrlcwl"(n=3)为例进行解密:
首先要还原为原文的加密阵列,还原时把密文依次按列来放置即可。一共有13个字母,13/3=4...1 可见要构建一个3列5行的阵列。
但是注意,我们发现还余1,说明原文(也是13个字母)在进行加密时,最后一行只有第一列是有字母的,最后一行后几列都为空,所以我们在还原原文的加密阵列时,第一列要有5个字母,往后的几列只要4个字母即可。如下图所示:

所以可得原文:helloctfworld
如果不想这么麻烦:这个网站满足你:https://www.qqxiuzi.cn/bianma/zhalanmima.php
04每日一题小鱼:来吧!!!下一个灯谜:
请解密wcemteojcflmnc,n=3.
提交形式:flag{...}
先在草稿纸上做一遍,再用网站哦!!!

