栅栏密码(The Rail-Fence Cipher)详解

最近训练CTF的时候,发现密码学这块的知识不太系统,所以自己接下来会陆陆续续整理出来

今天学习了栅栏密码,BugkuCTF里面的一道叫做“聪明的小羊”的题就与栅栏密码相关

特点

栅栏密码与其他的密码加密方式不太一样,它是直接对明文中的内容进行置换操作

并不涉及明文中内容的改变!

加密方式一:

按对角线的顺序写出明文,再以行的顺序读出作为密文

明文:thank you for your arrival

对角线写出:

t a k o f r o r r v a

h n y u o y u a r i l

按行写出密文:

takofrorrvahnyuoyuaril

其中行代表了加密的深度,上面是两行,所以加密的深度是2,如果深度增加,只要对角线的长度也增加即可

加密方式二

由于上面的加密方式不涉及密钥,显得易于破解

于是便有了一种需要密钥的更复杂的方案:

即将明文一行行写出,呈矩形排列,然后将列的次序打乱,最后以列的次序读出。

而密钥就是列的次序

如下图:

关于这种加密的解密方式(其实不难)

只要将密文的数量n进行因式分解,重新排列成不同的矩阵,再进行相应的处理即可

更进一步地:只要再次进行几次这样的置换,整个矩阵就会和原来的矩阵相差很大,解密者就难以将其重构还原(下面再贴张图)

栅栏2.png


好了,写到这里就结束了,平时大家还是要多多训练观察能力嗷!

posted @ 2020-03-23 22:03  SwordCreater  阅读(17658)  评论(0编辑  收藏  举报