Encryption

XOR 是否具有擴散特性?

  • February 18, 2017

如果純文字的右側與圓形密鑰進行異或,然後與左側進行異或以產生密文的那一側,則異或運算符是否提供擴散,例如在 Feistel 密碼中。

讓我們從 Wikipedia 中獲取定義:

擴散意味著如果我們改變明文的一個比特,那麼(統計上)密文中一半的比特應該改變,同樣,如果我們改變密文的一個比特,那麼大約一半的明文比特應該改變。

現在,無論 XOR 操作做什麼,它都適用於 2 位、1 位密鑰和 1 位明文。所以不,XOR 本身不能提供擴散。

在您的範例中,如果您更改一位純文字,那麼輸出也只會更改一位。如果您將輸出應用到另一個位,那麼您仍然會遇到相同的情況(因為兩個位同時翻轉)。

當然,如果 Feistel 函式本身提供在步驟中與 XOR 一起使用的擴散,則另當別論。但是 XOR 不會提供擴散。

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