抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

BlackBird的博客

这世界上所有的不利状况,都是当事者能力不足导致的

这次比赛竟然还有Classic Crypto专场,属实不易。然后我也把古典密码学做完了,占我总分的9.35。

大帝的征程#1

image-20201008093647321

大帝 -> 凯撒 -> 凯撒密码

因为这是moectf比赛,所以flag一定是moectf打头,所以可以算得偏移,就出来了:

密文: zbrpgs{p0adh3e_gu3_j0eyq}

明文: moectf{c0nqu3r_th3_w0rld}

大帝的征程#2

image-20201008094106912

这个题目,肯定还是凯撒,但是毕竟是#2了,所以是凯撒变种,但是试了试没什么思路,,,就开了hint:

![image-20201008094329085](/images/2020moectf Classic Crypto/image-20201008094329085.png)

看了hint,瞬间明白了,他时候一个换表凯撒,这个就得自己写脚本搞了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<bits/stdc++.h>
using namespace std;
int main()
{
string table="0abcdefghijklmnopqrstuvwxyz0123456789";//这里有个小问题,就是我给table前面加了一个0,用来占位,,,毕竟从1开始还是比较舒服
string a;
cin>>a;
for(int i=0;i<a.size();i++)
{
int temp;
if(a[i]!='{' && a[i]!='}' && a[i]!='_')
{
for(int j=1;j<table.size();j++)
{
if(table[j]==a[i])
{
int temp;
temp=(j+36*2-i)%36;
cout<<table[temp];
}
}
}
else cout<<a[i];
}
return 0;
}

密文: mpgfxk{j8w05q4_8xk_d7mhqfht}
明文: moectf{c0nquer_th3_un1v3rs3}

外面的世界

image-20201008203506687

外面的世界 + 密文盲猜 => 栅栏密码

在线解密,

PS:做栅栏密码的时候一定要注意复制粘贴,别多复制空格了,,,你会解不出来的

密文: mc{i33ny_-n~otR1n_cp1FN}efaFc32Tsuy

明文: moectf{Rai1F3nc3_3nc2ypT_1s-FunNy~}

大帝的征程#3

image-20201008204719395

啊这,,,这个密文出现了一些奇怪字符,应该是这个凯撒的table是整个ASCII表,,,然后想到(出题人提醒)在ASCII编码中有一种密码叫做ROT47,然后我们在线解密试一下:

密文: >@64E7L4_?BF6C0E9b0)s$trN

明文: moectf{c0nquer_th3_XDSEC}

大帝的征程#维吉尼亚

image-20201009010325841

u1s1这个题目我是手撕的,,,因为我们的答案最后肯定是moectf{……},所以我们就用moectf,对应出key:dsecx

然后在线工具跑一下:

密文:pgieqi{k0_ajxW_k-R3zq?}

密钥: dsecx

明文: moectf{s0_whaT_s-N3xt?}

大帝的征程#维吉尼亚Ex

image-20201009011339610

下载附件,然后搜索到密文:ooukot{ig3_oqf1_Ymiedmms_BzVn3_s0w_w0_3csO}

这个题的话,,我就提供两种思路吧:

手撕

他说难撕就难撕么???

我不信!我要试一试。

首先moectf绝对是没有问题的,又因为维吉尼亚只是字母在变化,数字没有改变,所以根据 3->e , 0->O以及部分密钥循环使用,我们可以猜一些东西 ig3->th3 , Ymiedmms -> Vigenere , w0 -> s0 , s0w -> n0t , 3csO -> 3asy……这个时候密钥好像就已经出来了(即使这个时候密钥没有完全出来,那么剩下1或者2个不确定的,暴力解决~~)。

密文: ooukot{ig3_oqf1_Ymiedmms_BzVn3_s0w_w0_3csO}

密钥: caqivopzxmfde

明文: moectf{th3_rea1_Vigenere_MaYb3_n0t_s0_3asY}

正解

这里有一种方法叫做“重合指数对照”来破解维吉尼亚密码,在线工具在这里~~

![image-20201009013434884](/images/2020moectf Classic Crypto/image-20201009013434884.png)

要是知道密钥的长度并且填上去会快一点,但要是什么也不填,这个网站也挺快的~~

moectf{th3_rea1_vigenere_mayb3_n0t_s0_3asy}

评论