One-Time-Pad

解密兩個 XORed 壓縮消息?

  • October 13, 2017

如果通過先前的攻擊、密碼濫用或兩次時間填充等。我收到 $ c=m_1 \oplus m_2 $ . 在哪裡 $ m_1 $ 和 $ m_2 $ 是壓縮消息,例如 GZIPped 英文文本文件。我們可以恢復有關消息的重要內容嗎?

顯然,如果我們能猜出兩個前綴,我們就可以驗證。我們能做更多嗎?如果我們無法破譯開頭,是否可以對結尾做一些實際的事情?甚至沒有消息的開頭。

由於消息被壓縮,我不知道除了標題中的公共子字元串,也不知道如何驗證中間的短片段是否合理。

更新:前一個答案中的一個前提沒有抵抗實驗的嚴峻考驗。因此,整個答案是非常錯誤的。

感謝丹尼爾的評論讓我大開眼界。

那麼你的第一對字節可能會為零,因為它們可能是金色的並且相互抵消。這幾乎可以肯定地確認兩條消息都使用了相同的算法。不確定這是否有用。

攻擊者的壓縮問題是其中一些確實非常好。 fp8將壓縮到理論香農極限的 0.1% 以內。這意味著壓縮文件幾乎是完全隨機的。例如,一個大的fp8壓縮文件很好地通過了ent隨機性FIPS-140測試。一個典型fp8的用ent.

結尾是有趣的地方。你提到濫用。這可能是兩條消息壓縮到兩個非常不同的長度。如果這些在沒有註意到的情況下被異或,那麼一端將是原始壓縮資訊。只有少數人知道它是如何fp8工作的,但您可以在比蠻力搜尋更短的時間內恢復碎片是可行的。攻擊者只會與壓縮算法本身作鬥爭,這比機率論更像是 Kerckhoff。

如果它們在異或之前的長度完全相同,那麼問題就很難了。如果您不知道消息可能是什麼,那麼您有 99.9979625% 的真正隨機性和 0.0020375% 的文件格式(來自我的範例壓縮)。您的作者在撰寫每條原始資訊時的創造力形成了種子。壓縮器形成一個真正的隨機提取器,輸出誤差為 0.0020375%。如果內部塊重疊,文件格式會被破壞,並且錯誤會大大減少。棘手。國安局的小伙伴們,你們怎麼看?

引用自:https://crypto.stackexchange.com/questions/52139