码迷,mamicode.com
首页 > 其他好文 > 详细

攻防世界-crypto-Decrypt-the-Message(Poem Codes-诗歌密码)

时间:2021-05-24 08:42:04      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:rate   bee   hub   des   方法   tps   需要   udt   pause   

题目来源:su-ctf-quals-2014
题目描述:解密这段信息!

下载附件,内容如下

The life that I have
Is all that I have
And the life that I have
Is yours.

The love that I have
Of the life that I have
Is yours and yours and yours.

A sleep I shall have
A rest I shall have
Yet death will be but a pause.

For the peace of my years
In the long green grass
Will be yours and yours and yours.

decrypted message: emzcf sebt yuwi ytrr ortl rbon aluo konf ihye cyog rowh prhj feom ihos perp twnb tpak heoc yaui usoa irtd tnlu ntke onds goym hmpq

里面是一首诗,最后给出需要解密的信息。

这道题考察Poem Codes,知道了原理后,我们可以使用工具进行解密。

C:\Users\Administrator\Desktop\诗歌密码>python poemcode.py poem.txt cip.txt
...
ifytuothikcrnyptorapyisheansnweroyoturprbletheyoulodnotnowkwhatourrobemiuasbcdfgheijklnoprst
ifyouthinkcryptographyistheanswertoyourproblemthenyoudonotknowwhatyourproblemisabcdefghijklmnopqrstu
pakprictiyorhftyselorohyphurbeewterunhwooaywtooonrbpofjhsgkeilncmbrt
...

在众多生成的结果中寻找一个通顺的句子那便是flag。

注意:

1.将诗歌与密文分别存为poem.txt,cip.txt并移到与poemcode.py同目录下,使用工具破解
2.使用python2运行脚本
3.必须把一些特殊的字符去掉,比如诗歌中的“.”,如果不去掉,运行的时候会报错:IndexError: list assignment index out of range

 

扩展Poem Codes——诗歌密码

诗歌密码在第二次世界大战中被广泛使用,它的工作方式如下:

首先,你需要先记住一首诗歌,它不需要太长,也不需要完整。比如下面这句截取自尤利西斯诗歌的片段就可以。

for my purpose holds to sail beyond the sunset, and the baths of all the western stars until I die.

然后,从中选择五个词作为关键字:比如“ for”,“ sail”,“ all”,“ stars”,“ die”。

接着,将它们串在一起,然后给字母编号,以“ a”开头为1,第二个“ a”开头为2,依此类推;如果没有第二个“ a”,则“ b”的编号为2;或者 如果没有“ b”,则“ c”被标记为2,依此类推,直到我们为所有字母编号。结果:

技术图片

现在,假设我们要对下面这个消息进行加密:We have run out of cigars, situation desperate.

由于我们在诗歌中选中了18个字母,因此我们以18个字母为一组写出该消息,并用无用的字母填充结尾,如下所示:

技术图片 

注意,在第一个表格(关键字表格)中,第一个字母“f”,它的下面是6;第二个字母是“o”,下面是12。

相对应地,在第二个表格(我们填充的分组的消息)中,第六列字母是“eud”,而第12列是“tdk”。

我们一般按照五个字母为一组发送加密消息,这样可以减少(但当然不能消除)传输错误。

因此,我们信息的第一部分将是eudtd koekc pmwrt

尝试手动加密整个消息!您会发现这很容易做到,您还将看到错误在何处以及如何产生。

当然,我们还必须告诉接收方,我们选择了哪五个词作为关键字,分别是第1个,第6个,第14个,第17个和第20个。最简单的方法是替换字母,因此:“afnqt”将被附加到加密的消息上。然后,接收者可以(大致)遵循相反的步骤来解密消息。

当然,在以上的简短讨论中我们忽略了所有的细微差别。但要知道,用诗歌密码加密的短消息是很难破解的,尤其是当诗歌很少被用于加密或仅用其加密一次。如果这首诗是经常使用的,或者是众所周知的,那么破解用它加密的消息就不难了。另外,诗歌密码具有易用性和易记性的优点,并且不需要任何计算设备。

 

参考:

http://wmbriggs.com/post/1001/

https://github.com/abpolym/crypto-tools/tree/master/poemcode

攻防世界-crypto-Decrypt-the-Message(Poem Codes-诗歌密码)

标签:rate   bee   hub   des   方法   tps   需要   udt   pause   

原文地址:https://www.cnblogs.com/zhengna/p/14763913.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!