Aes

CTR HMAC SHA1 與 GCM 密鑰管理

  • February 9, 2022

預設情況下, SRTP協議在 CTR 模式下使用帶有 HMAC-SHA1 的 AES。對於我的論文,我想研究 GCM 是否是一個更好的選擇。因此,我閱讀了以下討論

答案是 GCM 模式更好,因為 GCM 只需要一個密鑰來加密和消息認證,而 CTR+SHA1 需要兩個來完成這些事情。

但是我不能只用一個鍵來 CTR+SHA1 嗎?我不能在 CTR 模式下重複使用相同的密鑰進行加密,然後修剪或擴展相同的密鑰以將其與 SHA1 一起使用來驗證消息。

是否有任何安全缺陷或我忘記考慮的其他事項?

是否有任何安全缺陷或我忘記考慮的其他事項?

是的,GCM 在 SRTP 的使用方式方面存在安全問題。

SRTP 被設計成具有盡可能低的頻寬成本(即數據包大小);SRTP 有時在無線上使用,並且在那裡,數據包大小非常昂貴。IIRC,SRTP添加的唯一頻寬是完整性標籤(IV,如果模式需要一個永不重複的,可以是流中位置的函式,它已經包含在數據包的未加密部分中);我們希望將標籤盡可能縮短(既是為了降低成本,也是為了 SRTP,讓某人引入一個偽造的數據包並不是那麼糟糕 - 對於音頻使用,他們可能能夠修改 20 毫秒語音連接不太高( $ <10^{-6} $ ) 機率,並且對於這個案例被認為是可以容忍的)。

當我們到達 GCM 時,我們遇到了短標籤的問題。GCM 有這個屬性:如果我們有一個帶有 IV、密文/標籤的加密 GCM 消息 $ (IV, C, T) $ 有人發現一條虛假資訊 $ (IV, C’, T’) $ 被接受(注意:使用相同的 IV,密文和標籤被任意修改),然後用於任何未來的加密消息 $ (IV", C", T") $ , 然後消息 $ (IV", C" \oplus C \oplus C’, T" \oplus T \oplus T’) $ 也將被接受。也就是說,通過找到單個偽造品,攻擊者可以從這裡開始引入偽造品。

而且,如果你有一個短標籤,那麼攻擊者很有可能找到一個被接受的虛假消息 $ (IV, C’, T’) $ 通過簡單地猜測各種 $ T’ $ 價值觀。

一次偽造被認為是可以容忍的;允許攻擊者生成連續的偽造流就不那麼重要了。使用 GCM,我們可以通過使用長標籤(隨機猜測它的機率足夠低)來避免這個問題,但是 SRTP 的案例不喜歡長標籤。

HMAC 沒有這個屬性;如果攻擊者確實找到了偽造品 $ (C’, T’) $ (HMAC 沒有 IV),這無助於他生成任何未來的偽造品。

引用自:https://crypto.stackexchange.com/questions/98592