攻防世界shanghai
shanghai维吉尼亚密码:维吉尼亚密码(Vigenère Cipher)是在单一恺撒密码的基础上扩展出多表代换密码,根据密钥(当密钥长度小于明文长度时可以循环使用)来决定用哪一行的密表来进行替换,以此来对抗字频统计加密过程:如果第一行为明文字母,第一列为密钥字母,那么明文字母'T'列和密钥字母'C'行的交点就是密文字母'V',以此类推。明文:THE QUICK BROWN FOX JUMPS
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}
更多推荐
所有评论(0)