One-Time-Pad

如何解碼 OTP 消息?

  • June 7, 2014

首先,如果這是作為“作業轉儲”出現,我感到非常抱歉,但要澄清的是,事實並非如此。我不想要答案,我想知道如何得到答案。我的密碼學教授給了我們一個任務,他沒有解釋這個概念,他相信我們都知道怎麼做,而我絕對不知道。

問題分為兩部分:

  • 消息的一次性加密attack at dawn6c73d5240a948c86981bc294814d(明文字母被編碼為 8 位 ASCII,給定的密文以十六進制寫入)attack at dusk在同一 OTP 密鑰下消息的一次性加密是什麼?
  • 消息的一次性加密attack at dusk6c73d5240a948c86981bc294814d(明文字母被編碼為 8 位 ASCII,給定的密文以十六進制寫入)attack at noon在同一 OTP 密鑰下消息的一次性加密是什麼?

感謝您的任何/所有幫助

如果您知道明文和密文,那麼獲取密鑰是微不足道的。

$$ c=m \oplus k $$ 嘗試移動術語。暗示: $ m $ 和 $ k $ 可以在功能上互換(彼此改變位置),即。只有一個詞需要保密。你已經知道一個術語。我已經給你答案了。


關於解碼過程:Reid 連結的ASCII 表是一個很好的資源。或者,您可以使用線上ASCII 到十六進制編碼器來

  • 獲取密文的二進製表示
  • 獲取已知明文的二進製表示

然後在紙上做prodecure。一旦你明白你可以編寫一個 Python 腳本來為你完成這項工作。


只有一個術語需要保密:這就是我上面所說的,我會澄清一下,因為這種說法不准確。

你需要知道方程的任何兩項 $ x=a \oplus b $ . 解決任何其他術語。這意味著 $ a=x \oplus b $ 而且當然 $ x= b \oplus a $ . 因此,只要對手只知道一個術語(即密文),任何流密碼(或 OTP)都是安全的。

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