攻防世界 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

攻防世界 Railfence解题思路(crypto新手练习区)