為什麼明文的異或等於帶有兩個時間填充的密文的異或?
我一直在研究 Two Time Pad 的漏洞。所以我在很多地方發現,StackExchange 包括說,如果兩個純文字使用相同的密鑰加密(使用 XOR),則以下內容是有效的:
plaintext1 XOR plaintext2 = ciphertext1 XOR ciphertext2
是否有任何證據證明上述內容總是存在的,無論是數學的還是其他的?
我們知道,根據一次性密本的加密規則,其中 $ k $ 是重複使用的墊子:
$ p_1 \oplus k = c_1 $ 和 $ p_2 \oplus k = c_2 $ .
為了 $ \oplus $ (xor) 以下算術是有效的: $ a \oplus a = 0 $ 對所有人 $ a $ (一切都是它自己的逆),這從真值表中很清楚,例如,和 $ a \oplus (b \oplus c) = (a \oplus b) \oplus c $ ,即操作是關聯的,並且 $ a \oplus b = b \oplus a $ 對所有人 $ a,b $ (順序無關緊要,即運算是可交換的)。
這些屬性應該很熟悉,它們表明,一次性密本的解密與加密的操作相同:如果 $ c_1 = p_1 \oplus k $ , 然後 $ c_1 \oplus k = (p_1 \oplus k) \oplus k = p_1 \oplus (k \oplus k) = p_1 \oplus 0 = p_1 $ , 所以重新加密 $ c_1 $ 實際上,回饋 $ p_1 $ ,這是一個非常方便的屬性。
還 $ c_1 \oplus c_2 = (p_1 \oplus k) \oplus (p_2 \oplus k) = p_1 \oplus p_2 \oplus (k \oplus k) $ 在重新排列括號(關聯!)和改組(交換)之後,最後一項是 $ 0 $ 再次,所以我們剩下 $ c_1 \oplus c_2 = p_1 \oplus p_2 $ ,如聲稱的那樣。重用的 $ k $ 簡而言之,取消。如果我們使用 $ k_1 $ 獨立於 $ k_2 $ ,我們不會有這樣的關係。