Xor
有足夠的隨機性,異或是一種可接受的加密機制嗎?
我聽說過對各種密碼系統的批評,他們說“在他們的內心深處,他們只是 XOR”。
這只是無知,還是基於 XOR 的密碼本身就有問題?
區分在內部使用 XOR 作為組件操作的密碼(幾乎是所有密碼)和僅將明文與秘密進行異或的“密碼”之間的區別很重要。如果密鑰與明文的長度相同,那麼它是一次性的,所以在某種意義上,是的,通過“足夠的隨機性”,您可以安全地使用 XOR 進行加密。這樣做的問題是,它僅適用於密鑰與明文完全一樣長的情況,並且是完全均勻隨機的。如果不是,那麼您基本上已經創建了一個Vigenere cipher,它可以被輕易破解。有趣且不幸的是,OTP 的“可證明的安全性”如何使人們誤以為他們只需走一兩條捷徑,仍然可以獲得安全的東西。
通常,實現簡單 XOR 密碼的人通過使用硬編碼密鑰來加重錯誤,在這種情況下,單個已知的明文/密文對就足以解密任何內容。這可能主要是因為如果您是某種預建構的加密工具包,那麼將 AES 與您的 RSA 密鑰管理等一起使用會更容易,而不是使用一個像樣的密鑰分配方案,然後將 XOR 與您的安全共享密鑰一起使用。