Aes
為什麼我們不能使用 AES-CBC 的第一個塊作為 MAC
根據主題,為什麼我們不能使用第一個塊作為 MAC 而不是使用最後一個塊?理由是什麼?
MAC 值應該在所有輸入上計算,而不僅僅是第一個塊。CBC的連結確保最後一個密文塊中的位依賴於所有先前的塊。
還值得首先考慮 MAC 的點,即 - 為什麼應該對所有輸入而不是第一個塊進行計算。使標籤僅依賴於標籤的第一個塊將允許攻擊者用他們想要的任何內容填充消息的其餘部分,只要 CT 的第一個塊代表一個有效的標籤。
更具體地說,考慮一個選定的消息攻擊場景,其中攻擊者有一些
$$ (IV, M, T) $$和 $ M = M_1M_2M_3 $ . 如果 $ IV $ 不是恆定的,攻擊者可以構造另一個元組$$ (IV’, M’, T’) $$具有以下屬性: $$ IV’ \oplus M_1’ = IV \oplus M_1 $$ 然後, $ M_2’ $ 和 $ M_3’ $ 從字面上看可以是任何東西,並且標籤將保持有效 $ (T = T’) $ .
然而,如果 $ IV $ 是恆定的(在實踐中應該是),攻擊者可以保持 $ M_1 $ 一樣,所以 $ M’ = M_1M_2’M_3’ $ ,並且標籤仍然有效。