Hmac

HMAC 是否支持或保證機密性?

  • October 8, 2020

我知道 HMAC 支持或保證身份驗證和完整性,但它是否也提供機密性?

不,它不提供機密性,因為它不是對您的消息進行加密而是對其進行指紋辨識。它提供身份驗證和完整性,因為只有創建者(或知道秘密的人)才能檢查指紋的有效性。儘管創建者不知道如果驗證失敗,這兩種品質中的哪一種會受到損害。

基本上可以使任何 PRF 以計數器模式生成密鑰流。因此,如果 HMAC 是您唯一擁有的東西,那麼它可以用於加密消息。簡單地說:你散列一個計數器並將輸出用作密鑰流,它與明文進行異或以獲得密文。

HMAC 和散列通常用於創建確定性隨機位生成器,如果您不重新播種,它們將充當流密碼。實際上,不要為此目的使用 DRBG,我只是指出這種用法並非聞所未聞。

然而,HMAC 本身並不是一種加密算法,因此不能直接加密消息,也不是故意這樣做的。加密是您需要通過密碼學獲得機密性的東西。儘管您可以從中創建流密碼,但效率非常低。

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