古典密码浅谈

2018年4月13日 2 条评论 730 次阅读 1 人点赞

最近在准备CTF比赛,刷题时发现古典密码挺有意思,简单记录一下。

一:古典密码

题目链接:http://www.shiyanbar.com/ctf/1870

密文内容如下{79 67 85 123 67 70 84 69 76 88 79 85 89 68 69 67 84 78 71 65 72 79 72 82 78 70 73 69 78 77 125 73 79 84 65}

请对其进行解密

提示:

1.加解密方法就在谜面中

2.利用key值的固定结构

看到密文自然而然的想起要转换成ASCII码,转换结果如下:

OCU{CFTELXOUYDECTNGAHOHRNFIENM}IOTA

一般古典密码常用的加密方法为行置换和列置换,思路就是将密文列成矩阵形式,每行或每列字符数相等。

数一下一共35个字符,尝试列成5*7的方阵:

OCU{CFT
ELXOUYD
ECTNGAH
OHRNFIE
NM}IOTA

考虑到一般的答案格式为CTF{XXX...},所以如果进行的是列置换,那加密前的第一列有可能是现在的第二列或第四列,进行尝试,将第一行置换为CTF{。。。的形式:

结果如下:

CTF{COU
LDYOUEX
CHANGET
HEINFOR
MATION}

得出Flag。

二:传统知识+古典密码

题目链接:http://www.shiyanbar.com/ctf/1991

小明某一天收到一封密信,信中写了几个不同的年份:辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。信的背面还写有“+甲子”,请解出这段密文。

看到年份之后,自然的想到了转换为数字,再根据ASCII表转换为字母,看看是否有特殊含义。

根据天干地支对应表(我也不知道具体啥名字)查询:

天干地支

同时还有提示+甲子,甲子=60,所以得出的数字要加上60,可以得到:

88 90 83 68 77 70 76 90

查ASCII表转换为字母:

结果为:XZSDMFLZ

一看是一串无意义的字符,就要想是否经过了加密或者转换,使用凯撒或者栅栏进行转换,最后试出来的结果是先栅栏再凯撒,最后得出的字符是题目作者的名字拼音。。。。。。这么坑真的好么。。。。。。连个提示都没有,宝宝很伤心。。。。。。

三:当铺密码(外加一点隐写)

题目链接:http://www.shiyanbar.com/ctf/1928

题目内容仅有一个链接:ctf5.shiyanbar.com/stega/apple.png

点开链接有一张图片二维码:

apple.png

扫描得到:

\u7f8a\u7531\u5927\u4e95\u592b\u5927\u4eba\u738b\u4e2d\u5de5

Unicode解码得:羊由大井夫大人王中工

想到是当铺密码,所谓当铺密码就是通过输出汉字有多少的出头的笔画,转换为数字。点我查看百度百科

数一数笔画可得:9158753624,但是这完全不是flag应该有的模样啊!这时候就把矛头转向了图片本身,肯定藏东西了,binwalk一下,果不其然,藏了一个压缩包,使用foremost提取出apple.mp3,应该是音频隐写,当铺密码解出的就应该是密钥,音频隐写中存在密码的加密大概率是mp3stego,使用mp3stego解密如下:

mp3stego

mp3yxflag

得到一串字符,Base64解密得到Flag。

梦呓233

时常抽风的半文艺半理工小青年

文章评论(2)

  • nano

    甲子不是1吗,怎么是60...求解

    2018年5月21日
    • 梦呓233

      @nano 甲子的确是第一年,但是一甲子就代表一个循环是60年啦

      2018年5月21日