Mac

PRF/KDF/MAC 之間的關係?

  • July 9, 2018

似乎並非每個 MAC 都是 KDF。但是任何 PRF 是否也可以同時用作 KDF 和 MAC?有人可以解釋這三個定義之間的關係嗎?

  • 密鑰派生函式(KDF)接受一些密鑰材料,這些材料可能是均勻分佈的,也可能不是均勻分佈的,其中攻擊者也可能有一些關於密鑰材料或其分佈的輔助資訊,並輸出一個均勻分佈的比特串。請參見此處的定義 5、6 和 7 。

直覺地說,KDF 的工作是接收一些具有最小熵的密鑰材料,但它可能不統一為位串(或根本不是位串!),並輸出本質上為“平滑”的位串與原始輸入相同的熵。一個經典案例是從密鑰交換協議獲得的 Diffie-Hellman (DH) 秘密。這個秘密不是一個位串,而是一個組元素。此外,當編碼為位串時,該組元素不會均勻分佈在相應長度的所有位串上。但是,它確實具有高熵,然後可以使用 KDF 從秘密 DH 組元素中提取出良好且均勻分佈的位串(即對稱密鑰)。

KDF 的安全定義(上面連結中的定義 7)本質上是,在對密鑰材料和一些任意附加輸入進行評估時,它應該表現得像一個隨機函式(在定義 7 中有一些額外的花里胡哨)在連結中提供,但我所說的包含它的要點)。

  • 隨機函式 (PRF)接收密鑰和消息,並輸出位串。PRF 的安全要求(參見 Def. 5.6,此處)是,當對任意消息進行評估時,它應該表現得像一個隨機函式——前提是密鑰是均勻分佈的。

請注意,PRF 和 KDF 非常相似,但是 PRF 對其密鑰的要求要嚴格得多。本質上,非均勻分佈的密鑰使 PRF 的所有安全保證無效。

  • 消息認證碼 (MAC)接收密鑰和消息,並輸出標籤。還有一個相應的驗證算法,在輸入密鑰、消息和標籤時,輸出 VALID/NOT-VALID。MAC 的安全要求是,對於不知道密鑰的人,應該很難想出消息和標籤,以便驗證算法輸出 VALID。(請注意,這是 MAC 安全性的一種非常弱的形式,通常我們需要更強大的稱為 EUF-CMA 安全性的東西,請參閱此處的 Def. 9.1 和 Def. 9.2 )。

至於它們之間的關係,它遵循我上面寫的那個KDF⟹ $ \implies $ PRF⟹ $ \implies $ 蘋果電腦。也就是說,由於即使給定非均勻密鑰,KDF 也應該表現得像隨機函式,所以當密鑰均勻分佈*時,它當然也表現得像隨機函式。*PRF 允許您建構 MAC 在此處的第 9.6 節中顯示。

在另一個方向上,沒有任何含義普遍存在。也就是說,並非所有安全 MAC 都是安全 PRF(你能想出一個反例嗎?),也不是所有安全 PRF 都是安全 KDF。

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