下载文件打开得到:
MZYVMIWLGBL7CIJOGJQVOA3IN5BLYC3NHI
看着像是base32加密,但利用base进行解密时只有乱码,
关于base64&base32:
base64 : 由
0-9、a-z、A-Z、+、/
及后缀 “=” 组成 将任意字节序列数据编码成ASCII字符串.base32 : 用32个可打印字符 :
A-Z、2-7
对任意字节数据进行编码.
网上有大佬指出,很多时候比赛的名称是解密的谜面,将BITCTF代入base32进行加密:
这时候把下载得到的文本与利用base32加密的进行比对:
MZYVMIWLGBL7CIJOGJQVOA3IN5BLYC3NHI(加密文本)
IJEVIU2DKRDA===(原文本解密后)
一一比对发现:M->I;L->D...存在一一对应的规律。
应为仿射密码加密,又已知:
A | B | C | D | E | F | G | H |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
I | J | K | L | M | N | O | P |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Q | R | S | T | U | V | W | X |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
Y | Z | 2 | 3 | 4 | 5 | 6 | 7 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
加密:8->12,3->11,21->21...
那么由仿射密码资料:
每 一个字母都是通过函数(ax + b)mod m加密,其中b是位移量,为了保证仿射密码的可逆性,a和m需 要满足gcd(a , m)=1(am互质)
此题的m为32, 经过计算a=13,b=4(a必在0~m互素数中)
所以解密为:
IJEVIU2DKRDHWUZSKZ4VSMTUN5RDEWTNPU
最后经过base32解密得到flag: