什么是消息认证码MAC(Message Authentication Code)?

消息认证代码(MAC)也认为是标记,用于验证消息的起源和本质。MACs使用身份验证加密来验证通过网络发送或从一个人传输到另一个人的数据的合法性。换句话说,MAC确保消息来自正确的发送者,且中途没有被篡改。

MAC是如何工作的?

消息认证码的输入为任意长度的消息和一个发送者与接收者之间共享的密钥,它可以输出固定长度的数据,这个数据称为MAC 值。

根据任意长度的消息输出固定长度的数据,这一点和单向散列函数很类似。但由于计算 MAC 值必须持有共享密钥,没有共享密钥的人就无法计算 MAC 值,因此消息认证码利用这一性质来完成认证。此外,消息认证码和单向散列函数一样具有雪崩效应,哪怕消息中发生 1 比特的变化,也会导致 MAC 值发生不可区分的改变。

MAC的类型

虽然所有Mac的最终目标都是相同的,但MAC有几种不同的类型。

一次MAC

一次消息认证码(OTMAC)是一种加密技术,可以用来提供数字消息自创建以来没有被篡改或更改的高水平的保证。OTMAC是一种消息认证代码(MAC)形式,使用一次性密钥创建消息的哈希。然后用发送者的私钥签名该散列,创建数字签名。接收者可以使用发送者的公钥来验证签名并确认消息没有被篡改。

Carter-Wegman MAC

Carter-Wegman Mac是一种用于验证消息完整性的消息认证代码。该消息认证码是使用消息发送者和接收者共享的密钥创建的。该消息认证码是使用哈希算法生成的,消息的哈希包含在消息本身中。当收到消息时,再次计算哈希,并将其与与消息发送的哈希进行比较。如果散列匹配,则消息没有被篡改,并且被认为是真实的。

HMAC

HMAC(基于哈希的消息认证代码)是一种消息认证代码,它使用加密哈希函数创建消息的摘要(或“消息认证代码”)。摘要可用于验证消息的真实性。HMAC是一种MAC,除了消息外,还使用密钥来生成摘要。

下面这篇文章解释的非常清晰:

MAC的局限性11 消息认证码(MAC)MAC的局限性

消息认证码(MAC)是一种用于确保消息完整性的技术。它使用发送方和接收方共享的密钥为消息创建校验和(唯一标识符)。然后将此校验和添加到消息中,并用于在收到消息时验证消息的完整性。MAC的主要缺点是它们容易受到中间人的攻击。在这种攻击中,攻击者截获消息并在将其传递给接收者之前对其进行修改。

发表回复

相关推荐

怎么清理C盘垃圾?这4个方法要记好!

随着我们使用电脑时间的推移,电脑的C盘上会积累大量的垃圾文件,如临时文件、缓存、日志和不再需要的程序文件。这些垃圾文 ...

· 3秒前

人生必讀書籍推薦(三)

1、《阿拉伯的勞倫斯》本書基於多年的原始資料研究,決定性地推翻瞭史學界關於現代中東形成的諸多舊觀念。在完美展現勞倫斯這...

· 3分钟前

如何轻松画出八卦与六十四卦

一、八个卦的画法 三画卦称为“经卦”,六画卦称为“别卦”,记忆八卦首先要记住八个卦的画法,有一个口诀可以形象记忆八卦: 干 ...

· 3分钟前

歌手霍尊又惹争议!退圈后首现身翻唱被禁作品,他究竟意欲何为?

大家知道,去年因为前女友风波,原本深受大家欢迎的霍尊人设崩塌,完美形象跌下神坛。

· 4分钟前

微信怎麼群發消息超200人?微信群發功能在哪?

微信裡面是有群發功能的,非常的好用,但是也是有很多限制的,對一般人來說也夠用瞭。讓我們來看看群發功能在哪裡吧?我們可...

· 4分钟前