题目
下载附件得到一个不知道什么格式的文件名为 zip,于是强制更改后缀名解压缩得到两个 txt。
题目:
公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。
以下密文被解开后可以获得一个有意义的单词:FRPHEVGL
你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。
密文:ComeChina
分析
罗马的密码大帝指的是凯撒,利用凯撒密码的原理对给出的密文单词进行循环移位
char s[] = "FRPHEVGL";
for (int i = 0; i < 26; ++i) {
for (int j = 0; j < strlen(s); ++j) {
++s[j];
if (s[j] > 'Z') {
s[j] -= 'Z' - 'A' + 1;
}
}
printf("%d %s\n", i + 1, s);
}
得到 26 种字母组合:
1 GSQIFWHM 2 HTRJGXIN 3 IUSKHYJO 4 JVTLIZKP 5 KWUMJALQ 6 LXVNKBMR
7 MYWOLCNS 8 NZXPMDOT 9 OAYQNEPU 10 PBZROFQV 11 QCASPGRW 12 RDBTQHSX
13 SECURITY 14 TFDVSJUZ 15 UGEWTKVA 16 VHFXULWB 17 WIGYVMXC 18 XJHZWNYD
19 YKIAXOZE 20 ZLJBYPAF 21 AMKCZQBG 22 BNLDARCH 23 COMEBSDI 24 DPNFCTEJ
25 EQOGDUFK 26 FRPHEVGL
其中只有 SECURITY 是有意义的单词,即密钥为偏移量 13。
用该密钥对 ComeChina 进行加密,由于 ComeChina 包含大小写字母,故对得到的密文在大小写字母范围内取模。
char s[] = "ComeChina";
for (int i = 0; i < strlen(s); ++i) {
s[i] += 13;
if (s[i] > 'z') {
s[i] -= 'z' - 'a' + 1;
}
}
printf("%s", s);
得到密文套上格式即可提交。
Flag
flag{PbzrPuvan}
- BUUCTF_Crypto_WriteUp 大帝 武器 密码 WriteUpbuuctf_crypto_writeup大帝 武器 密码 大帝 武器 密码buuctf 大帝 武器 密码crypto 密码学buuctf_crypto_writeup心声 密码 buuctf_crypto_writeup writeup buuctf crypto buuctf_crypto_writeup 培根misc_xctf_writeup大帝writeup buuctf_crypto_writeup unencode writeup buuctf buuctf_crypto_writeup password writeup buuctf buuctf_crypto_writeup quoted-printable printable