隨機 IV 的 CBC-MAC 不安全
- 證明以下修改 $ \operatorname{CBC-MAC} $ 不會產生安全的固定長度 $ \operatorname{MAC} $ :
調整 $ \operatorname{CBC-MAC} $ 這樣一個隨機的 $ IV $ 每次計算標籤時使用(並且 $ IV $ 與輸出 $ t_l $ )。IE, $ t_0 \leftarrow {0, 1}^n $ 是隨機均勻選擇的,而不是固定在 $ 0^n $ ,標籤是 $ t_0, t_l $ .
**回答。**該方案不安全。特別是,讓 $ m $ 是一個單塊消息,讓 $ (IV, t) $ 成為它的 $ \operatorname{MAC} $ -從 oracle 收到的標籤。然後,標籤 $ (m, t) $ 是有效的 $ \operatorname{MAC} $ 對於消息 $ IV $ . (更一般地,對於任何 $ m’ $ 標籤 $ (IV \oplus m’, t) $ 是有效的 $ \operatorname{MAC} $ 對於消息 $ m \oplus m’ $ . 這意味著可以為任何所需的單塊消息生成偽造品。)
來自論文CIS 5371 Cryptography, Home Assignment 4
我的問題是標籤如何 $ (m,t) $ 有效的偽造品。這是我的理解: 如果我這樣使用數字 $ m=101, IV=110, m\oplus IV=011 $ ,但偽造品說我可以使用 m,所以 $ m=101, IV=101, m\oplus IV=000 $ ,顯然不是這樣。有人可以解釋一下嗎?
然後,標籤 (m,t) 是消息 IV的有效 MAC 。
換句話說,給定一個標籤 $ (IV,t) $ 留言 $ m $ , 你可以構造一個標籤 $ (m,t) $ 對於消息 $ IV $ . 所以你的理解是錯誤的。它不是 $ m\oplus m $ 在偽造中,它是 $ IV\oplus m $ 這與 $ m\oplus IV $ .
讓 $ m_1 = 0^n, IV_1 = 011 $ 然後,$$ \begin{align}&F_k(m_1 \oplus IV_1)\ =& F_k(0^n \oplus 011)\ =& F_k(011).\end{align} $$現在,我們可以構造一個不同的消息 $ m_2 = 010 $ 並通過以下方式為其提供有效標籤:選擇 $ IV_2 = 001 $ 和輸出$$ \begin{align}&\langle m_2, IV_2, t_2\rangle\ =&\langle010, 001,F_k(010 \oplus 001)\rangle\ = &\langle010, 001,F_k(011)\rangle.\end{align} $$ 很明顯,對於 $ m_1 \ne m_2 $ 我們已經為 $ m_2 $ . 我們不需要知道 $ F_k $ .