消息认证代码(MAC)也认为是标记,用于验证消息的起源和本质。MACs使用身份验证加密来验证通过网络发送或从一个人传输到另一个人的数据的合法性。换句话说,MAC确保消息来自正确的发送者,且中途没有被篡改。
消息认证码的输入为任意长度的消息和一个发送者与接收者之间共享的密钥,它可以输出固定长度的数据,这个数据称为MAC 值。
根据任意长度的消息输出固定长度的数据,这一点和单向散列函数很类似。但由于计算 MAC 值必须持有共享密钥,没有共享密钥的人就无法计算 MAC 值,因此消息认证码利用这一性质来完成认证。此外,消息认证码和单向散列函数一样具有雪崩效应,哪怕消息中发生 1 比特的变化,也会导致 MAC 值发生不可区分的改变。
虽然所有Mac的最终目标都是相同的,但MAC有几种不同的类型。
一次消息认证码(OTMAC)是一种加密技术,可以用来提供数字消息自创建以来没有被篡改或更改的高水平的保证。OTMAC是一种消息认证代码(MAC)形式,使用一次性密钥创建消息的哈希。然后用发送者的私钥签名该散列,创建数字签名。接收者可以使用发送者的公钥来验证签名并确认消息没有被篡改。
Carter-Wegman Mac是一种用于验证消息完整性的消息认证代码。该消息认证码是使用消息发送者和接收者共享的密钥创建的。该消息认证码是使用哈希算法生成的,消息的哈希包含在消息本身中。当收到消息时,再次计算哈希,并将其与与消息发送的哈希进行比较。如果散列匹配,则消息没有被篡改,并且被认为是真实的。
HMAC
HMAC(基于哈希的消息认证代码)是一种消息认证代码,它使用加密哈希函数创建消息的摘要(或“消息认证代码”)。摘要可用于验证消息的真实性。HMAC是一种MAC,除了消息外,还使用密钥来生成摘要。
下面这篇文章解释的非常清晰:
消息认证码(MAC)是一种用于确保消息完整性的技术。它使用发送方和接收方共享的密钥为消息创建校验和(唯一标识符)。然后将此校验和添加到消息中,并用于在收到消息时验证消息的完整性。MAC的主要缺点是它们容易受到中间人的攻击。在这种攻击中,攻击者截获消息并在将其传递给接收者之前对其进行修改。
上一篇