Rsa

為什麼 MAC 如此重要,儘管數字簽名可以做 MAC 可以做的所有事情等等

  • November 14, 2019

當實體 A 想向實體 B 發送消息時,他可以將 MAC 附加到消息中。實體 B 收到消息後可以使用預共享密鑰計算相同的 MAC 並確認消息是否未被篡改。

這種方法可以保護 A 和 B 免受可能想要弄亂消息的外部攻擊者的攻擊。但是,它不能保護 A 免受 B 或 B 免受 A。例如,A 可以製作一條消息並聲稱它來自 B,因為 B 是唯一與 A 共享此特定密鑰的實體。

數字簽名消除了這個問題,因為 MAC 被用發送者私鑰加密的散列代替。使用私鑰意味著 A 和 B 之間不能否認或偽造消息。

這讓我想到了我的問題。為什麼 MAC 在容易受到上述攻擊時仍然如此重要?在什麼情況下,人們更喜歡 MAC 而不是數字簽名?


請注意,我已經知道這裡有一個問題,旨在比較 MAC 和數字簽名。這個問題與我的不同,因為我正在尋找使用 MAC 而不是數字簽名的具體案例。有人可以引用協議、應用程序等,MAC 相對於數字簽名的缺點可以忽略嗎?

MAC 相對於簽名有很多優點。

對於簽名,您需要使用非對稱密鑰對。需要信任公鑰才能使其正常工作。不幸的是,建立信任並不是那麼容易。此外,您不希望使用儲存在例如智能卡上的私鑰(這將需要 PIN 並且可能太慢)。

相反,您可以簡單地同意一個身份驗證密鑰(或一個經過身份驗證的密碼的密鑰)。這允許更有效的操作

  • 認證標籤/簽名的創建和驗證的計算速度和
  • 關於身份驗證標籤/簽名的大小。

對於許多協議來說,接收者也可以欺騙身份驗證標籤的問題不是(巨大的)問題。對於兩個參與者使用相同的身份驗證密鑰來發送/簽署消息和接收/驗證消息的協議,這可能是一個更大的問題。TLS,僅命名一種協議,使用單獨的密鑰。

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