一层:腐木基座隐塔身 二层:幽曲木栅落凡尘 三层:普莱菲尔封凯撒 四层:道法挪移镇邪煞 五层:半盲道人荡图灵 六层:圣堂武士震四方 七层:九转方棋威五堂 八层:梵音回响摄心神 九层:九曲轮回链生死 阵启:万古佛法通古今 破封:六十四卦补阴阳
之前特别喜欢看雪上的一道名为“九重妖塔 ” 的逆向题,校赛中要出一道密码题,故突发奇想,花了一天半的时间,整了这么一道密码学的九层妖塔,虽然没有密码学的灵魂 RSA,但也添加了一些故事性的描述,力图增加一些趣味性,同时涉及到了总计 24 种编码及加密算法 ,希望可以更好地了解密码学这个充满魅力的体系。(注:最后解出的 WP 为旧文档)
补充: 本来想投稿到看雪的题库中,结果发现自己这题目是个“巨无霸套娃” ,实际上没什么技术含量,还请大佬轻喷,适合有耐心的入门小伙伴了解密码学,所以作为小妖(me)的新人贴吧。
腐木基座隐塔身:base编码、列位移密码(密钥)、曲路密码(路径) 幽曲木栅落凡尘:栅栏密码(W型)、曲路密码 普莱菲尔封凯撒:普莱菲尔密码、凯撒密码、四方密码(两段密钥) 道法挪移镇邪煞:列移位密码、六十四卦图(密钥)、盲文(密钥) 半盲道人荡图灵:盲文、brainfuck、仿射密码(密钥) 圣堂武士震四方:猪圈密码变种、四方密码、波利比奥斯方阵密码(密钥)、维吉尼亚密码(密钥) 九转方棋威五堂:波利比奥斯方阵密码、维吉尼亚密码(威)、仿射密码(密钥) 梵音回响摄心神:敲击码、仿射密码、摩尔斯密码、夏多密码(密钥) 九曲轮回链生死:夏多密码、六十四卦图(文件) 万古佛法通古今:与佛论禅、新约佛论禅 六十四卦补阴阳:六十四卦密码、二进制转字符、ASCII编码
故事带入,某某无意间找到一个“精美的盒子”,但是这个盒子外面加了一道四个数字的密码锁,但是作为神偷,他很轻松地用工具解开了(这里涉及到压缩包爆破,有隐写的嫌疑……咳咳,不过也仅此一处,后面的爆破几乎很难……)
然后发现一张“藏宝图”,封面是一个有些散架的,散发着淡淡幽蓝色彩的,呃……大写“B”? 翻开里面,掉出一张枯黄的草纸,捡起来,开始阅读:
“传说东方有一座九层妖塔,里面有着富可敌国的宝藏,若想得到,需要解开层层密码,突破迷雾与阻碍……”
然后下面是一堆(什么鬼)……
由“基座”联想到 base 编码,最后确定依次进行 base64、base32、base16
得出一堆信息,继续分析……
“隐塔身”可能暗示隐藏着某些信息,通过上面的解密得到以下信息:
但是似乎还不够,我们没有找到下一层的方法,再看看那张图,发现下面有一些空白,反白一下,又发现了一些信息:(上面的数字似乎缺了一些,还有个字母 l,之后回忆起正是对应上文的加密 base64、base32、base16)
base64解出如下:
发现 Nine layer demon tower (九层妖塔)这个似乎才是真正的入场券,至于其他信息先留着,也许之后有用,现在成功进入了第二层……
由“木栅”首先联想到栅栏密码,这里难度升级为 W 型栅栏,注释中有一个 4,猜测为四栏:
栅栏密码(W型)在线解密 http://www.atoolbox.net/Tool.php?Id=777 得到:
虽然现在还是乱码,但是不要急,接着由“幽曲”再次联想到曲路密码,结合第一层得到的“曲径通幽处”,猜测为曲路密码的路径,即:
绘制 6x6 表格,按照路径依次填入
整理得到:(Hit:曲径通幽处)
解压成功,进入第三层
这层很明显可以想到普莱菲尔密码、凯撒密码,接着用上层最后得到的密钥打开压缩包,注意到注释中写着:
接着看到:
尝试普莱菲尔密码,加上注释中“菲尔的钥匙”,进行在线解密 http://www.practicalcryptography.com/ciphers/classical-era/playfair/ 得到:(吾儿,亦有汝焉?)
解出来发现不能打开“凯撒之言”,结合题目GG查一下,发现这是一句拉丁语名言,即
接着尝试一下这句话,成功打开“凯撒之言”,发现了三个单词样式的字符串,基本确定为凯撒加密:
在线解密后 https://planetcalc.com/1434/ 确定偏移量均为 ROT20,得到:
测试后,发现 process
为进入下一层的压缩包密码,但是不清楚剩下两段密钥是用在哪里,先保留,继续进入第四层(这里埋了个坑,之所以没有用 md5 防止爆破,是因为如果偷懒直接爆破出压缩包的密码,到了第六层就找不到四方密码的密钥了,最后还得绕回来……)
“挪移”联想移位的加密,确定列移位密码,先记录压缩包注释中 a=15
,接着尝试解开“失落的无字罗盘”,之前第一层得到一张图纸上写着:Lost compass
(译为:失落的罗盘),猜测这是列移位密码的 keyword,打开“镇煞之符”文件,发现:
通过列移位密码在线解密 http://www.practicalcryptography.com/ciphers/classical-era/columnar-transposition/
得到:(菩提本无树,明镜亦非台)
作为密码,成功打开“失落的无字罗盘”,打开里面的文件,发现是个空白,切换背景色,出现文字:“菩提本无树,明镜亦非台!恭喜你找到了这个刻着 way
的无字罗盘,带着它,把它交给半盲道人,他会带你继续走下去。未来……当你做到那……手握日月摘星辰,世间无我这般人
……你便可以知生死,通古今,互阴阳,悟得卦图,道破天机!”
“半盲道人”很容易联想到盲文,加上上一层解出的刻着 way
的“失落的无字罗盘”,猜测为盲文密码,在线解密 https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=mangwen
得到:
接着由“图灵”联想到 brainfuck 加密,在线解密 https://www.splitbrain.org/services/ook 得到:
然后你想爆破压缩包,不可能的(+_+) https://www.somd5.com/
md5(32)来一次,得到:
OK了,解压成功,进入第六层……
“圣堂武士”想到猪圈密码变种,有三张图包含两个变种,分别解出
得到一枚黑色棋子:polybios
得到一枚白色棋子:xcbyao
以及一张草纸:OBLFGOKYCNQRKLYTZIGS
“震四方”为四方密码,下图为示例(非本题),第三层“凯撒之言”得到两段多余的密钥 security
,prefil
,此处用上
解密得到一串密文:(坐亦禅,行亦禅)
解压成功,进入下一层……
首先看到其中的压缩包注释信息:翻看一下,发现棋盒底部篆刻着 < b=20 >
,你需要通过圣堂武士的两枚棋子,找到钥匙,打开棋盒,拿到里面的卷轴,它会指引你继续前进……
接着分析,“九转方棋”联想到棋盘密码,最后确定为波利比奥斯方阵密码,第六层得到两枚棋子,这里用黑色的一枚作为密钥,即 polybios
,然后再看文件中给出的信息:24122413541544244243132222
(Hit:九转方棋)
http://www.atoolbox.net/Tool.php?Id=913 解码得到一把钥匙:(根据提示,加上两个空格,即九转方棋的英文)
打开棋盒中的卷轴,发现下面的语句:
“威”谐音“维”维吉尼亚密码,第六层得到的两枚棋子,这里还剩下白色的,即 xcbyao
,作为此处密钥,在线解码 http://www.atoolbox.net/Tool.php?Id=856 得到:(一念愚即般若绝,一念智即般若生)
测试一下,压缩包解密成功,成功开启第八层……
“梵音回响摄心神”中,结合文件内容,第一个文件解出来一堆有规律的点:
“梵音”联想到敲击码,对照上表,每两段替换一个字母,解出如下:
“摄”谐音“射”,又联想到仿射密码,在线解密,前面第五层压缩包注释中得到 a=15
,第七层压缩包注释中得到 b=20
,设置好系数 a b http://www.atoolbox.net/Tool.php?Id=911
解出一堆大写的 Z O 字符:
联想一下,Z 代表 zero,O 代表 one,即文本替换一下,得到一堆 0 1,得到:
可能是二进制转字符?或者摩尔斯密码?
再次看提示中有“回响”,这里猜测是摩尔斯密码,继续替换,0为点,1为杠,如下:
在线解密一下 http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx
解出一串数字:2341312411342132442
接着发现两个压缩包,其中一个《六十四卦图》,想起来之前第四层“道法挪移”中压缩包中得到的图纸上写着做到:“手握日月摘星辰,世间无我这般人
”,猜测为密码,解压成功,再看另一个:
“九曲轮回链生死”联想到曲折加密、圆形、《死亡之链》,即夏多密码,同时,前面第八层“梵音回响摄心神”中得到一串数字,确定为夏多密码的密文变换规则,解出后应为下层钥匙
依次代入密文规则,即 2341312411342132442
,解密后得到的都是大写,依据句子格式完整化输出(含句点)为:
符合压缩包中注释信息——龙族,确定为压缩包密码,测试一下,成功解压出 TXT 文件,内含如下信息:
由“佛法通古今”以及“新佛曰:”联想到新旧与佛论禅,很明显要先进行一次新约佛论禅,解出:
再进行一次与佛论禅,发现提示“太深奥了,参悟不出佛经的真意……”,这里你需要“普渡众生”,原来少了“佛曰:或如是我闻:”,加上“佛曰:”后成功参悟真谛
http://hi.pcmoe.net/buddha.html http://www.keyfc.net/bbs/tools/tudoucode.aspx
解出一堆天干地支:咸同人归妹明夷贲革无妄
联想到伏羲六十四卦的二进制矩阵表
通过上图,解密六十四卦,阴为 0,阳为 1,补阴阳,猜测不满八位时,前补或者后补 01,最后转换后补错误,确定前补,得到二进制如下:
想到 ASCII 编码,去掉空格后,用下面网址进行转换, http://tool.huixiang360.com/str/from-binary.php 二进制转字符,得到 Nothing
这里本想直接脑洞一下,猜解出只留下 nothing,然后尝试大小写和首字母大写(Something for nothing! 拿什么珍贵的东西,换来了空白。——龙族)
最后得到未加密 flag:Nothing
md5 32位加密后,格式化输出:flag{f80a4ad87fee7c9fdc19b7769495fdb5}
先讲点题外话,个人很喜欢江南的《龙族》,”每个人心里都有个死小孩“,他陪伴我度过了孤独的几年,于我看来,路鸣泽是对强大的自己的一个憧憬吧,所以设计思路中用到了《龙族》的句子。题目典型的套娃,这是我准备投稿的时候才认识到的问题,质量与之前参加的网鼎杯和虎符杯相比,简直渣的要命(捂脸),谁让我太菜呢,所以欢迎大家无情吐槽,,不过比我强一点点的大菜鸡可以无聊研究一波,算是了解补充一些古典密码学知识吧!
注:题目已上传到附件(只是个装着文档的压缩包,Chrome 莫名危险拦截,只好加个解压密码:bbs.pediy.com),欢迎品尝 (●'◡'●)
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2020-6-21 12:02
被xcbyao编辑
,原因: 压缩包 Chrome 下被拦截,添加目录
上传的附件: