MAC 的安全性
讓 $ (Mac, Vrfy) $ 是一個安全的定義 $ MAC $ 超過 $ (K,M,T) $ 在哪裡 $ M = {0,1}^n $ 和 $ T = {0,1}^{128} $ .
是以下 $ MAC $ 安全的?出示你的證明。
$ Mac’(k,m) = Mac(k, m ⊕ m) $
$ Vrfy’(k,m,t) = Vrfy(k,m ⊕ m, t) $
我不知道如何證明這一點,請幫助。我將如何證明這一點?謝謝您的幫助。
編輯:
所以我嘗試了一些東西,我不知道它是否正確,你能確認一下嗎?
所以,因為 $ m⊕m = 0 $ 這 $ Mac’(k,m) = Mac(k, m ⊕ m) $ 產生一個標籤 $ t $ 為了 $ 0 $ 和 $ k $ 關鍵,這意味著 $ Vrfy’(k,m,t) = Vrfy(k,m ⊕ m, t) $ 總會回來的 $ true $ 因為它驗證相同 $ m⊕m $ 消息是 $ 0 $ 和 $ k $ 鍵,等於返回的 $ t $ ? 那是對的嗎?
我認為您的想法是正確的;這是一種更正式的說法。
如果攻擊者給定一個可以為消息生成 MAC(使用秘密隨機密鑰)的 Oracle,但不能(以非平凡的機率)為他沒有查詢過 Oracle 的消息生成有效的消息,MAC 對,則 MAC 是安全的。
為了 $ Mac’ $ ,攻擊者可以做的是選擇一條消息(例如,字元串 $ 0 $ ),並在Oracle中查詢對應的標籤 $ T $ . 所以,攻擊者知道 $ 0, T $ 是一個有效的消息/標籤對(但這不計入目標,因為他要求該消息)。
因此,攻擊者選擇相同長度的不同消息(例如,字元串 $ 1 $ ),並形成消息對 $ 1, T $ (在哪裡 $ T $ 是他之前得到的標籤)。作為 $ Vrfy’(k, 1, T) = Vrfy(k, 1 \oplus 1, T) = Vrfy(k, 0 \oplus 0, T) = Vrfy’(k, 0, T) $ 評估為真(如 $ 0, T $ 是一個有效的對),所以是 $ 1, T $ 以及(因此攻擊者獲勝,因為他找到了他沒有要求的消息的 MAC)