MAC 碼(訊息認證碼)

JUAN425發表於2014-08-19

MAC碼, 英文全稱為message authentication code, 是用於為一個message 提供 integrity 和authenticity 的assurance (保證)的 一段短的資訊。

所謂的integrity assurance 的意思就是避免或者檢測我們發的訊息被一個attacker 修改了。 所謂的authenticity assurence 就是確認message的來源。

MAC的原理如下:

 

對於上圖, 解釋如下:

sender 要向receiver 傳送一個message,   首先第一不, 這個message 需要經過一個MAC 演算法(注意需要祕鑰 key)用於產生這個message 對應的MAC碼。 然後message 和其對應的MAC碼一同發給receiver.。  接受者將收到的message同樣的經過MAC演算法, 通過使用同一個祕鑰, 產生收到的訊息對應的MAC碼。 然後將這個MAC碼和 收到的MAC碼相比, 如果相同, 說明接受者可以safely assume 收到的訊息沒有被一個attacker 改動。 


然而, MAC 不能抵擋住 replay attacks(重放攻擊)。 所以, 為了抵擋住重放攻擊, 我們的message中必須含有保證this same message 只能被髮送一次的資料資訊。 例如, 我們可以使用時間戳(time stamp)。 否則an attacker could — without even understanding its content — record this message and play it back at a later time, producing the same result as the original sender.

相關文章