shanghai

维吉尼亚密码

维吉尼亚密码(Vigenère Cipher)是在单一恺撒密码的基础上扩展出多表代换密码,根据密钥(当密钥长度小于明文长度时可以循环使用)来决定用哪一行的密表来进行替换,以此来对抗字频统计

加密过程:如果第一行为明文字母,第一列为密钥字母,那么明文字母'T'列和密钥字母'C'行的交点就是密文字母'V',以此类推。

明文: 

THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

密钥: CULTURE

密文:

 VBP JOZGM VCHQE JQR UNGGW QPPK NYI NUKR XFK

 首先.还原密钥

//此处参考大佬的wp:xctf攻防世界 CRYPTO高手进阶区 shanghai_l8947943的博客-CSDN博客_xctf攻防世界

 

如图:可以看到有两个数据,字符数字要满足相应的长度,联想到英语中的between...and...的用法,刚好和字符长度是对应的,那么,密文frxnimp对应的明文就应该是between,对照上面的表格,按列找到“b”,然后找到对应列的加密字符“f”,就可以找到行对应的字母“e”,以此类推,可以推得加密密钥为“enereicqvi”

第二步,确定密钥的长度

在文本中,有这样的一个信息

 

在上面的图片中,看到有两个相同的字符“opk”,根据加密原理,私钥长度不断重复进行加密,所以在两个相同字符中间的字符长度就应该是密钥的长度,在这个文本中,中间的间隔是“gvtyiz   kd”,总共11位,刚才推出的密钥是10位,还少一位

文本中出现过opk和16xu这类的,我们推测其中可能是时间序数词,xu可能对应th,那么opk则是对应the(英语语法推测)。因此,得到相应的密钥:opk – vig xu – en,因此补充上述密钥为:‘enereicqvig’

最后,确定密钥的顺序

文中第一个词是bju,在文中搜索bju,发现有

 

两个字符与三个字符相连的形式,推测可能是to the,所以bju对应的就是the,尝试推出密钥icq。之后,轮转一下密钥,可以知道密钥的正确顺序就应该是icqvigenere

确定完密钥之后,就应该寻找密文了,因为提交答案的时候通常情况都是flag{},这种形式的,所以在文章中找{},所以密文就是

 

前面的jtcw四个字符对应的就是flag,推出密钥eicq,所以,很容易确定在花括号的内容加密的密钥就是vigenereicq,用在线网址解密,得到

 

但是要将前面三个字符和后三个字符去掉

最终flag为

flag{vigenereisveryeasyhuh}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐