攻防世界 Railfence解题思路(crypto新手练习区)
0x00前言
也是看了大佬的题解,但是发现很多人提供的教程也有点问题。所以我这边补充一下。
0x01解题前我们先来搞懂栅栏密码的原理
栅栏密码的两种加密方式:
第一种常规的顺序加密:
明文:123456789
加密栏数:3
加密过程:
1.把明文的元素从上到下排成3行
1 4 7
2 5 8
3 6 9
2.再把3排结果从上到下拼接起来,即加密结果为
147258369
第二种回形针式加密(W型):
明文:123456789
加密栏数:3
加密过程:
1.把明文的元素先从上到下排列,再从下到上排列,依次类推,直到把明文全部排列完为止
1 5 9
2 4 6 8
3 7
2.再把3排结果从上到下拼接起来,即加密结果为
159246837
PS:因为排列的形态像一个字母"W",所以被称为W型加密。
0x02 再回到题目
下载附件,打开看到密文:ccehgyaefnpeoobe{lcirg}epriec_ora_g,通过上面的加密方式我们了解到,解密需要掌握两个条件:1.加密方式 2.加密栏数。(但是个人感觉这道题给的信息不够完整,只能根据前几题的flag格式去猜。应该给出flag格式:cyberpeace{xxxxxxxxxx})
1.根据明文前几位的排列方式我们可以出推断栏数为5:
ccehg
yaefnpeoo
be{lcirg}
epriec_o
ra_g
2.看到这个形态我们知道这应该是个W加密类型。(因为顺序加密类型只可能上行元素个数>=下行元素个数)
所以我们把形态变化一下即可解除明文:
c c e h g
y a e f n p e o o
b e { l c i r g }
e p r i e c _ o
r a _ g
即:cyberpeace{railfence_cipher_gogogo}
或者直接利用工具可以更快的解出答案,但是个人感觉掌握原理也挺重要的。
W型在线解密工具:http://www.atoolbox.net/Tool.php?Id=777