Hmac

當密鑰已知時,從 CMAC 與 HMAC 派生消息的複雜性

  • July 12, 2021

CMACHMAC的描述來看,給定密鑰和標籤,我認為 CMAC 消息比 HMAC 消息更容易導出。

在獲得CMAC的密鑰和標籤後,入侵者可以應用重複解密來獲取消息塊,直到它代表一個有效的英文文本(假設常見情況)。對於HMAC,由於反轉散列函式所需的蠻力,這很困難嗎?

我的理解有效嗎?

旁注:在使用 AES-CMAC 功能發送部分消息的網路協議的情況下,這種消息的反向推導很重要。相應的密鑰(隨機數)也會在稍後的消息交換中顯示出來。

我的理解有效嗎?

很近。我會這樣說:使用 CMAC,如果您知道密鑰和 CMAC 輸出,並且知道(猜測)除一個塊(AES 為 16 個字節)之外的整個消息,那麼很容易計算出未知塊是什麼必須讓 CMAC 生成觀察到的輸出。

這不適用於 HMAC;在那裡,你唯一能做的就是測試各種消息,計算所有消息的 HMAC,直到你偶然發現一個觀察到的輸出。

因此,對於 CMAC,您需要猜測的消息字節數減少了 16 個字節,這使其更容易。而且,如果您對那些未猜測的字節沒有限制(也就是說,它們不是“英文文本”,而是任意長度的 128 位字元串),您總是可以快速找到具有預期 CMAC 的消息。

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