Encryption

使用 ECB 模式加密隨機數據是否安全?

  • April 2, 2015

如果我有 48 個隨機字節,使用 ECB 模式加密它們是否安全?還是有充分的理由使用 CTR、CBC 等其他模式?

上下文是這樣的:我正在創建類似於 TLS 會話票證的東西,其中主密鑰使用伺服器端密鑰加密並發送到客戶端。

我仍然會使用 HMAC。基本上,我使用這 48 個字節的 ECB,然後是密文的 HMAC-SHA256。我不反對 CBC、CTR 等。但一位同事提到,對於完全隨機的值,你也可以使用普通的 ECB,我看不出他錯了。

如果區塊相同,歐洲央行就會洩漏。對於均勻隨機數據,當您加密時,可能會出現相同的塊 $ 2^{n/2} $ 塊與 $ n $ 位塊密碼。CBC 和 CTR 模式在加密那麼多數據時會出現類似的弱點。

=> 只要您使用 128 位分組密碼(如 AES)加密合理數量(最多 1 PB 左右)的隨機數據,被動攻擊者就不會從觀察您的 ECB 加密消息中學到任何有用的資訊。

當你可以使用更強大的東西時,我仍然認為沒有理由使用歐洲央行。您將加密的安全性與您正在加密的數據的假設相結合。如果您的軟體的未來版本更改了數據的屬性,您需要記住您需要替換加密。

針對主動攻擊者,您需要添加某種 MAC,要麼通過通用的 encrypt-then-mac 組合,要麼使用經過身份驗證的操作模式,如 GCM。

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