网鼎杯的一道密码题shanghai,本write up 主要是自己观看总结,思路是根据如下大佬博客所写:
https://myhloli.com/2018%e7%bd%91%e9%bc%8e%e6%9d%af-%e7%ac%ac%e5%9b%9b%e5%9c%ba-shanghai-writeup.html
拿到手像是凯撒密码加密,但是解码之后还是没有收获,最后了解是维吉尼亚密码,是凯撒密码的变形
关键代码:
orwquad mtxvvvpg dhjsk xui tmxjum ith cyspquxzl zlr xvgppylck ma xyi 19bj szvzyec, syb glzv keepziz, uehm yovpcil ehtxzeaeccavi xwapq stgiuyjvgpyc svmca opk gvtyiz kd opk 16xu gvrbwht.[6]
opk gvtyiz kd opk
可见前一个opk和后面的一个opk相隔11位,推测密码长度为11位
又因为看到
opk 16xu gvrbwht. xyi 19bj szvzyec
推测出 the 16th century the 19th century
在平时推测时有一些高频单词
a,is,in,of,and,the这些高频短词推算出部分密钥
最后推测密钥:
密文: opk 16xu gvrbwht.
密钥: vig en ereicqv
明文:the 16th century
维吉尼亚密码可以根据这个矩阵得出
第一列为明文 第一行为密钥 行与列相交得到密文
通过此表可以得到密钥
密文: xyi 19bj szvzyec
密钥: ere ic qvigene
明文:the 19th century
最后得出 vig en ereicqv
ere ic qvigene
由于维吉尼亚的密钥是凯撒的循环 最后得出
密钥为vigenereicq 或者 icqvigenere
找解维吉尼亚密码网站即可
https://www.qqxiuzi.cn/bianma/weijiniyamima.php
或者直接用
https://guballa.de/vigenere-solver