Symmetric

MAC是否提供源認證?為什麼不只使用對稱加密?

  • October 20, 2013

假設 Bob 和 Alice 有一個 MAC 的密鑰。如果 MAC 是由密鑰和消息構成的,這意味著 Alice 和 Bob 都可以構造完全相同的消息和 MAC。因此,鮑勃可以聲稱愛麗絲創建了某些消息,而不是他。那麼使用 MAC 有什麼意義呢?為什麼不只使用對稱加密?

未經身份驗證的對稱加密方案通常具有延展性,這意味著截獲消息的攻擊者即使不知道密鑰也可能能夠修改它,例如通過翻轉其中的任意位。MAC通過檢測對密文所做的任何修改來防止此類攻擊。

此外,還有各種選擇密文攻擊,通過讓攻擊者將偽造的密文提供給帶有密鑰的接收者並觀察響應(例如密文是否解碼為有效消息)來起作用。正確使用的 MAC 還可以防止此類攻擊,因為攻擊者將無法生成可以通過 MAC 檢查的消息。

最後,MAC 還可用於檢測對消息元數據的修改,否則可能允許執行重放攻擊

除了將傳統的對稱加密方案與 MAC 相結合,還可以使用專門建構的經過身份驗證的加密方案來實現相同的目標,有時效率更高。也就是說,許多經過身份驗證的加密方案實際上由結合 MAC 的傳統方案組成,儘管這種組合可以以特定方式完成,與通用的先加密後 MAC 結構相比,可以提供一些速度、便利或防誤用優勢。

**附言。**如果您希望能夠證明給定消息是由 Alice 發送給 Bob 的,而不是由 Bob 本人偽造的,那麼您需要數字簽名而不是 MAC。

但是,請注意,對於某些應用程序,在不知道共享密鑰的情況下無法驗證 MAC 實際上可以被視為一項功能,因為它提供了一種可否認性的衡量標準——如果您是 Alice,並且您與 Bob 的所謂私人對話不知何故洩漏,MAC 不能用來證明您確實編寫了洩漏的消息,因為任何可以驗證 MAC 的人也可以偽造它。特別是,OTR 消息傳遞協議正是出於這個原因使用 MAC 而不是簽名。

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