Encryption
當您總是加密隨機字節時,在 AES CBC 模式下使用相同的 IV 進行多重加密是否安全?
我正在生成隨機字節(一次 16 或 32 個字節),我想在 CBC 模式下使用 128 位 AES 密鑰對它們進行加密。如果我每次加密一組隨機字節時都重複使用相同的 IV 和密鑰,我真的會嚴重削弱這一點嗎,因為我正在加密的數據中根本沒有結構?
我們可以在我們的方案中添加一個隨機數並每次更改 IV,我只是想了解為什麼(如果)在加密沒有結構的數據時確實需要它?
不,在這種情況下,您不會削弱您的數據。你甚至可以使用 ECB 來加密隨機數據。對稱密鑰包裝通常只使用 ECB。但請注意,這取決於您加密的字節數。
您可能希望確保所有字節都是隨機的(如果您事先知道明文大小)。考慮加密單個隨機字節並用零或 PKCS#7 兼容填充填充其餘字節。相同的值很容易被檢測到。
不過,您可能希望非常清楚地記錄您正在做的事情,因為如果您將上下文/結構添加到您的隨機字節中,很容易把事情搞砸。
如果您想對隨機字節進行安全、經過身份驗證的密鑰包裝,則可以使用 SIV。您不需要生成隨機 IV,並且 SIV 可以很好地處理其他結構。不過,您需要實現 SIV 並為合成 IV(這也是身份驗證標籤)留出空間。