Authentication
為什麼 GCM 模式下的 GHASH 輸出要加密計算標籤?
為了在 Galois/Counter 模式 (GCM) 中計算身份驗證標籤,首先使用GHASH在密文和附加數據上計算 MAC。之後,使用GCTR(使用第一個計數器)對該 MAC 進行加密。
我的問題是:為什麼最後一個加密步驟是必要的?如果我只是將GHASH的輸出直接用作身份驗證標籤,那麼安全問題會是什麼?
如果我只是將 GHASH 的輸出直接用作身份驗證標籤,那麼安全問題會是什麼?
然後監聽加密消息的人可以恢復 $ H $ ,其中之一是正確的。
GHASH 的輸出是一個公共多項式(基於密文和 AAD),以秘密值評估 $ H $ . 事實證明,給定這樣一個多項式, $ H $ 可以通過將多項式重寫為有效地恢復 $ \mathrm{GHASH}(H) + \mathrm{Tag} = 0 $ ,並恢復其根(可以在有限域中完成),或者更簡單,得到兩個這樣的密文,重寫它們,並使用擴展歐幾里得值來恢復它們的共同根。
給定 $ H $ ,攻擊者可以輕易地對加密消息進行任意修改;是的,那很糟糕。