凯撒密码升级 WriteUp
题目
凯撒密码升级
提取码:ius1
分析
打开压缩包,我们看到右侧给出了密钥。

根据\u00xx的模式,查出这个应该是Unicode编码。将其进行解码,得到密钥:hahaha 。

有密钥,而且还是凯撒密码的升级,在百度上搜索一番后,发现了符合条件的密码:维吉尼亚密码
解题
一. 维吉尼亚密码的规则

为了生成密码,使用了表格法。
表格包括了26行字母表,每一行都由前一行向左偏移一位得到。
具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。
二.转换
文本中的信息是这样的:mlhg{Cineueye_jiwhlr_1z_Ad3s0te} 我们将密钥对上。
haha{hahahaha_hahaha_1h_ah3a0ha}
这里我们需要跳过数字,因为维吉尼亚密码中不包含数字在内。
信息里面有大小写,推测是大写对应大写字母表格,小写对应小写字母表格。
| a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| a | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| h | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G |
最终得到flag:flag{Vigenere_cipher_1s_Aw3s0me}
以下是我初次解题的思路
一.猜测
在未查出维吉尼亚密码的情况下,观察信息的格式,发现与flag极其相似。
mlhg解密之后应该是flag。
因此得到:m->f
h->a
根据升级密码的雏形是凯撒密码,初步推测规则是字母表向前移动7位,而且是间位移动7位。
二.尝试
看到大小写都有,先想到了ASCII码。
但是ASCII码大写字母与小写字母之间存在其他符号,如果按照ASCII往前推,得到的结果很诡异,带上了符号。

于是推测是小写字母表与大写字母表相接的情况。
但是又发现这样的话小写字母会变成大写字母,在一个单词中突然出现一个大写字母很不正常,因此判断是大写字母对应大写字母表,小写字母对应小写字母表。
经过反复尝试,觉得应该跳过数字。
所以得出需要改动的是mlhg{Cineueye_jiwhlr_1z_Ad3s0te}
· · · · · · · · · · · · ·
在解码完Cineueye得到Vigenere时,我百度了一下,知道了这个升级密码的真身,也因此认定flag中都应该是单词组成。
后续jiwhlr的解码完成更是让我确信了我的(错误)推测。
此时得到的已经是flag{Vigenere_cipher_1s_Aw3s0me},但是考虑到英语单词的我,改成了flag{Vigenere_cipher_is_Awesome} 。
之后就是试图寻找 1->i,3->e,0->o 的关系,很显然,这是找不到的,与正确答案失之交臂。
提醒
flag的格式不拘泥于英语单词,是可以含有数字的。

浙公网安备 33010602011771号