MAC 码(消息认证码)

  • Post author:
  • Post category:其他


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.