Aes
使用 AES-CBC 重用密鑰
我聽說密鑰/IV 對不得在 AES-CTR 中或在為此使用任何流密碼時重複使用。然而,所描述的攻擊似乎不適用於 AES-CBC。
在 AES-CBC 模式下多次重複使用相同的密鑰是否很危險?在這種情況下,使用隨機 IV 是否排除了所有可能的攻擊?
密鑰/IV對不應重複用於 AES-CTR 和 AES-CBC - 或任何其他對稱密碼。由於密碼是偽隨機排列 (PRP),插入相同的輸入將產生相同的輸出。如果重複使用密鑰/IV 對,則資訊會洩露給攻擊者;攻擊者可以區分內容相同的數據。
CTR 是分組密碼的一種流模式。在 AES-CTR 中,密鑰流僅取決於密鑰和 IV,而不是明文。這個密鑰流與明文是異或紅色的。除上述問題外,還可以找到有關明文的其他資訊;如果重用密鑰和計數器值,則兩個密文的 XOR 與明文的 XOR 相同。所以密鑰仍然是安全的,但可以輕鬆檢索明文。
只要 IV 是唯一的,重複使用任何密碼的密鑰應該沒有問題 - 直到密碼可以處理的指定數量的明文,通常是非常大的數量。在 CTR 的情況下,IV 應該足夠獨特,以確保計數器不會重複。請閱讀 CTR 模式以了解生成 IV 時的含義。確保理解 IV/nonce 對 CTR 的具體應用意味著什麼;這些術語可以混合使用,並且可以針對特定協議和實現以不同方式使用。
對於 CBC 有額外的限制:關於 IV 的資訊不應該提前提供給可以更改明文的攻擊者(選擇明文攻擊或 CPA)。使用一個 16 字節的值,對於攻擊者來說,它與隨機無法區分,確實應該排除對分組密碼模式的任何攻擊。該 IV 可能只是簡單地添加到密文的前綴。如果在密文上使用了認證標籤,那麼 IV必須包含在認證標籤的計算中(例如 HMAC 值)。