分析/打破一個奇怪的一次性便箋
在我的作業中有一個額外的問題:
它要求我解密使用一次性便箋加密的文件。但是密文似乎包含英文單詞片段和其他部分,如果使用了 otp,我認為這些部分不應該出現在文件中。
密文似乎是引導日誌的一部分。
現在,這一切可能都是為了迷惑學生。
我的問題是:
這些資訊是否有助於我找到明文?假設他們沒有使用完全隨機的密鑰,是否還有另一種方法可以找到明文?
我在這裡上傳了密文。
我實際上並沒有設法下載您連結到的密文——我很確定我點擊的是真正的下載按鈕,而不是旁邊廣告中的假按鈕,但我得到的只是長時間的延遲,然後是一個錯誤消息,並且該站點本身看起來很陰暗,以至於我不想進一步調查。但是,由於您真正要問的是一個關於在一次性便箋中利用非隨機性的一般性問題,並且因為無論如何其他任何事情都將是題外話,所以讓我試著給出一個一般性的答案。
一個適當的一次性密碼,這個術語通常在密碼學中使用,需要從完整的密碼字母表中獨立且均勻地隨機選擇每個密鑰字母(或字節,或任何您的密碼字母表組成)。因此,密文也將看起來像一個完全隨機的字母序列。
雖然這樣一個隨機序列可能偶然包含看起來像英語單詞的子字元串,但它們不應該比任何其他相同長度的子字元串出現得更多。(但是,請注意,人腦往往善於從隨機性中挑選出明顯的模式,所以除非非隨機性真的很明顯,否則你真的應該通過適當的統計測試來檢查這一點,而不是僅僅依靠你的直覺。)
如果密文看起來是可辨識的非隨機的,則可能是:
- 用於加密它的密鑰並不是真正隨機的,而是可能是某些非隨機文件的內容;或者
- 加密過程本身可能會以某種方式被破壞,例如明文的某些部分可能由於某種原因根本沒有被加密。
在第一種情況下,您的情況基本上與攻擊兩次鍵盤(即具有重複使用密鑰的正確一次性鍵盤)相同。具體來說,使用重用密鑰,組合消息可以讓您取消密鑰,之後您將得到兩個非隨機明文的 XOR(或模和或差,取決於涉及哪種 OTP )。
如果幸運的話,您可能能夠辨識其中一個明文的來源(例如,它可能在網上提供),然後您就可以直接解密另一個明文。
如果你不是那麼幸運,你可能會面臨一個艱難的逐個字母的重建過程,使用嬰兒床拖動、直覺和幸運的猜測來構造兩條似是而非的消息,當異或時,產生已知的密文異或(或,在你的情況下,密文本身)。雖然這個過程在某種程度上可以自動化,但根據我的經驗,如果沒有密切的人工指導,它往往會執行得很差,至少除非你有一個非常**好的預測統計模型可用於至少一個消息,最好是兩個消息。
無論如何,由於這是作為練習給出的,我認為它可能可以通過合理的努力以某種方式解決*。*您首先必須弄清楚加密出了什麼問題,才能生成這樣的非隨機密文。
附言。也可以看看:
這個網站上可能還有其他相關的早期問題,但這些恰好是我之前自己回答過的問題。