Cryptanalysis

如果純文字是隨機的,如何攻擊兩個時間墊?

  • June 23, 2017

作為這個問題的擴展或者這個問題,如果明文在加密之前被隨機化,你將如何攻擊一個重複使用的墊子?

 0 0 0 1...         Plaintext

 0 1 1 1            seed(truly random number)
 0 1 0 1            Key1
 0 0 1 0            seed + Key1 mod 2 (=Cipher1)

 0 1 1 0...         Plaintext + PRNG(seed) mod 2 (=CipherR)
 1 0 1 0...         Key2(repeating 2 bit key "1 0") 
 1 1 0 0...         CipherR + Key2 mod 2 (=Cipher2) 

 0 0 1 0 1 1 0 0... Cipher1 & Cipher2 → ciphertext

這是使用 OTP 密碼來傳輸 PRNG 的種子,然後使用帶有重複密鑰的 Vernam 密碼來傳輸與 PRN 異或的明文。稍微增加消息長度,希望能避免抄襲。

在純文字被隨機化後,你如何解碼 Vernam 密碼?

如果你的 PRNG 很好,而你的種子未知 $ C_R = pt \oplus PRNG(seed) $ 本質上已經是使用從 PRNG 構造的流密碼對明文進行加密。

具體來說,它與隨機無法區分。

所以 $ K_2 \oplus C_R $ 可以看作是一種加密 $ K_2 $ . 這沒有用,但也無助於攻擊者。

我會得出結論,該方案與從 PRNG 建構流密碼一樣安全。

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