自然語言文本中的熵
我有幾個相關的問題:
我讀到一個估計,歸因於香農,英文文本的熵在每個字母 0.6 到 1.3 位之間。現代語料庫,包括可通過網際網路訪問的龐大且呈指數級增長的材料量,與一個世紀前可用的語料庫不同。有修改後的估計嗎?
如果一個人簡單地從一個人的小型私人圖書館(僅包含非常常見的小說)中取出兩本書,並任意選擇兩個起點與字母異或組合,那麼由此產生的偽隨機序列可能會被認為具有不可忽略的被知識淵博的對手暴力攻擊的風險。但如今,要組合的材料(尤其是通過網際網路的材料)的實際選擇幾乎是無限的。如果可以適當地選擇足夠多的文本源進行組合,鑑於攻擊者必須處理的複雜性的組合爆炸,結果對於加密使用實際上是安全的嗎?當然也可以使用一些比異或更複雜的操作,甚至可以同時或變化地使用幾個不同的操作。這個方向上的一些好的方案是否已經在非平凡的實際應用中使用?
$$ Added on edit: $$Cover 和 King 的後期工作估計每個字母 1.34 位,這意味著適當組合 4 個文本文件應該會導致全熵序列。幾週前,我為此編寫了一個軟體,但不幸的是,由於其設計中使用的程式碼存在錯誤,它不得不因不令人滿意而被撤回。我剛剛發布了一個經過仔細測試的替代品,名為 TEXTCOMBINE-REV,我在 Prologue 中寫道: 假設文本文件足夠大的一般情況,本軟體所取得的成就可以簡要總結如下:
(1) 生成的字節序列通過軟體的設計規範、Maurer 通用檢驗和範圍內所有 d 的自相關檢驗
$$ 1, 16 $$以及根據它的熵值至少為每字節 7.99 位的 ENT 測試。該軟體是這樣編碼的,它會在完成某個指定的最大處理量而沒有找到解決方案後放棄並報告失敗。 (2) 本作者對從古騰堡計劃下載的 18 種不同的英語文學書籍中提取的 4 種源材料(每個大小 600 KB)對所有不同的組合(總共 3060 種)進行了廣泛的實驗,結果如下:
(a) 從未遇到過失敗的情況。相反,上述處理限制,即在源材料被異或在一起之前的某些預處理輪次方面,在實驗中到目前為止還沒有達到。有關詳細資訊,請參閱結語。
(b) 在實驗中根據 ENT 的最壞熵情況是高於每字節 7.995 位,並且在作者的 PC 上平均 CPU 時間小於 15 秒。
該軟體(新版本 1.1)可在http://mok-kong-shen.de獲得
Shannon 的論文Prediction and Entropy of Printed English詳細介紹了確定英語熵的實驗。在不涉及太多細節的情況下,談論資訊源的熵才是真正合適的。您可以在給定源輸出樣本的情況下估計熵,公平地說,香農的方法給出了上限的估計。一個更複雜的實驗會給出一個較低的估計上限。達到上限的另一種方法是查看壓縮維基百科的一部分的競賽結果,該結果表明 100M 的英語可以壓縮為 16M。
我想起了我讀過的一個類似的方案,它依賴於在這種情況下從月球表面圖片數字化得到的一長串公開可用的比特流。我找不到參考資料,但我確信它是相關的,儘管純粹是學術興趣。
我知道沒有實用的方案使用你的想法或類似的東西。您將不得不問自己,您正在嘗試實現哪些安全保證,以及這是否真的是獲得它們的最佳方式。我相信,以規定的方式使用已建立的密碼原語來實現您的系統應該總是更好的選擇。
您發現的是由於疊加多個熵流而產生的疊加效應。我很驚訝他們通過了隨機性測試。8/1.34 =~ 6 而不是 8。它們通常必須來自顯著不同的分佈。我只能假設作者之間的風格差異會產生足夠的差異。不幸的是,600KB 對於 Diehard 測試來說還不夠,但我希望它最終會失敗。
這裡真正的問題是,無論你使用熵序列做什麼,它都依賴於不那麼狡猾和名譽掃地的安全性。真正的加密密鑰是您選擇的書籍。這不是他們的內容;這是固定的並且在公共領域。
讓我們假設您已經完成了一些比簡單地對源進行異或運算更複雜的事情。假設您 Pearson 對它們進行了雜湊處理,以便保留順序。18 中的 4 導致 73440 排列。如果有人知道您已經這樣做了,那相當於大約 16 位的密鑰長度。不幸的是,正如您剛剛告訴我們的那樣,他們會知道的。如果你一直堅持下去,可能會發生什麼!但是,您對它們進行了異或運算,不是嗎?
$$ C(18,4) = 3060 $$? 因此,您使用的真正密鑰只有 ~12 位。 關於替代的真實或偽熵源,我不會再多說什麼。我會讓你的 12 位密鑰加密自己說話。
PS。我不確定你從哪裡得到 0.6 位/字母數字。我會很感激參考,因為我找不到任何接近該值的東西。即使是香農 1950 年的論文也只降到了大約 1 位/字母,他承認了抽樣錯誤。有這個來自
Thomas Schürmann 和 Peter Grassberger,符號序列的熵估計。
我可以擊敗這張圖表,使用強壓縮達到莎士比亞的 1.68 和戰爭與和平的 1.73。然而,這仍然距離 0.6 英里遠……