Cryptanalysis
如果純文字是隨機的,如何攻擊兩個時間墊?
作為這個問題的擴展,或者這個問題,如果明文在加密之前被隨機化,你將如何攻擊一個重複使用的墊子?
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 建構流密碼一樣安全。