2008-12-06 36 views
1

我想查找(不生成)2個文本字符串,以便在刪除所有非字母和ucasing後,可以通過簡單替換將一個字符串轉換爲另一個字符串。如何找到「等效」文本?

這個動機來自於我所知道的一個項目,即通過概率分佈攻擊密碼的測試方法。我想找到一個大而連貫的純文本,一旦用簡單的替換密碼加密,就可以解密爲其他連貫的東西。

這最終爲2部分,找到語料庫中最長的這樣的字符串,並得到該語料庫。


,第一部分在我看來,和藹可親某種與替換,使得第一齣現的順序連續鍵後關閉字符串B樹的攻擊。

HELLOWORLDTHISISIT 
1233454637819a9b98 

基於知道基於樹的每個深度的字符串的最大值和長度以及其餘部分的小優化僅僅是編碼。


其他部分會涉及更多一點;如何生成大量文本搜索文本?某種互聯網蜘蛛似乎是理想的方法,因爲它可以訪問最多的文本,但是如何將它剝離爲文本?

問題是;任何想法如何更好地做到這一點?


編輯:加密正被使用的是一個瘋狂基本26個字母替換密碼。

p.s.這更多的是一個思想實驗,然後是一個可能的真實項目。

+0

這個問題很混亂。 – mepcotterell 2008-12-07 18:04:15

+0

什麼部分?匹配標準?搜索的方法?關於獲取語料庫的部分? – BCS 2008-12-07 21:01:53

回答

1

有26!不同的替代密碼。這可以超過88位的選擇:

>>> math.log(factorial(26), 2) 
88.381953327016262 

英文文本的熵至少是每個字符2位。因此,在我看來,你不可能合理地期望找到超過45-50個字符的代碼在替換時意外等價的段落。

對於大型語料庫,古騰堡項目和維基百科有一個開始。您可以從他們的網站下載所有英文維基百科XML文件的轉儲。

0

我認爲你要求一點點來產生也是「連貫」的替代。對於加密算法來說,這是一個AI問題,可以確定哪些文本是連貫的。此外,文本越長,創建「連貫」結果就越複雜......只要您正在加密的文本快速接近需要「密鑰」的位置。從而打破了加密它的目的。

+0

請注意,我明確地不想/生成/文本。雙方都必須/由我自己以外的某個人發現/書寫。關鍵是要找到一個解密爲錯誤純文本的文本。 – BCS 2008-12-08 00:17:17