如何破譯這條推特?

若能破譯這條推特 你就可能被美國安局招募_Web2.0

tpfccdlfdtte pcaccplircdt dklpcfrp?qeiq lhpqlipqeodf gpwafopwprti izxndkiqpkii krirrifcapnc dxkdciqcafmd vkfpcadf. #MissionMonday #NSA #news

— NSA (@NSACareers) May 5, 2014


這條密文用的是簡單的置換加密方式,是古典密碼中的一種,簡單說就是把26個字母相互映射,產生常人所不能理解的密文。

置換密文還有很多變種,比如凱撒加密,ROT13,但是這些密碼都有一個致命弱點,不能對抗詞頻統計。假如我們把世界上所有文章中每個單詞出現的頻率進行統計,然後用結果對密文進行分析,可以還原出大部分映射關係,剩下的只需要一一推舉,直到推舉出最像可讀文章的映射關係。

11111010所提到的網站quippiuq - cryptoquip and cryptogram solver 是一種在線的解密方法。

alexbers/substitution_cipher_solver 路 GitHub 這裡也有解密置換密碼的工具

實際上置換密碼這種把戲在國內外的CTF比賽中很常見,比如今年4月份的ACTF第一題就是,有興趣的同學可以去搜一搜參賽選手寫的writeup。

對了置換密碼還有一個變種叫維吉尼亞密碼,可以對抗詞頻統計,有興趣的同學可以深入了解下


這麼簡單

"Want to know what it takes to work at NSA? Check back each Monday in
May as we explore careers essential to protecting our nation."

「想知道怎樣才能在美國國家安全局工作嗎?記得5月的每個周一來看我們發布的消息,我們會帶你探究那些對於保護我們國家至關重要的職位。」


首先,nsa出的題應該是「可以」被破解的,又考慮到沒有其他輔助破解的線索,所以排除hash和公鑰加解密。原文應當是一句英文,密文也是英文字母,流加密也被排除。其實,能讓你破解的一般都是古典加密演算法。。。移位、置換等。移位非常好猜,試試就發現弄不出來。置換的話,首先看看詞頻(字母頻,某個字母出現頻率),再結合一些統計數據(還是跟字母頻率有關),經過一些演算法,窮舉。如果想非人工的,再加一個語法判斷,不過因為這條twit空格是用來故意迷惑的。。所以還是人眼比較靠譜。

額,其實補充一句。。我是馬後炮,沒去試。但這就是「破解」這種密碼遊戲的大致流程。

先判斷可能的加密演算法,然後就是——試。


推薦閱讀:

如何在人群中分辨恐怖分子?
潛水時迎面遇到密集魚群該如何應對?
窮是違法的合理理由嗎?
生活中有哪些普遍存在、易被忽略而十分危險的兒童安全隱患?如何避免?
作為平民,為應對恐怖襲擊,未發生時、發生時、發生後,我可以做些什麼?

TAG:Twitter | 黑客Hacker | 安全 | 加密 |