ScholarGate
助手

消息认证码

消息认证码(MAC)使用共享密钥生成一个短标签,接收方可以通过该标签验证消息的完整性和真实性,从而检测任何篡改或伪造。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

消息认证码是一种对称原语,给定一个密钥和一条消息,它会生成一个固定长度的标签,使得任何没有该密钥的人都无法伪造任何新消息的有效标签,即使在看到选择消息上的标签之后也是如此。

Scope

本主题涵盖对称认证:在选择消息攻击下的存在性不可伪造性这一安全目标,基于哈希函数(HMAC)和分组密码(CMAC、GMAC)的MAC构造,以及它们与加密的结合以形成认证加密(先加密后认证,AES-GCM)。它解决了诸如长度扩展和常数时间标签比较的必要性等陷阱。它不包括数字签名,数字签名使用公钥密码学提供公开可验证性和不可否认性。

Core questions

  • 共享密钥如何让接收方检测到消息的任何修改?
  • 在选择消息攻击下的存在性不可伪造性对安全MAC有什么要求?
  • 安全的MAC是如何从哈希函数(HMAC)和分组密码(CMAC)构建的?
  • 加密和认证应如何结合以同时保护机密性和完整性?
  • 为什么标签比较必须是常数时间,以及哪些攻击利用了时间泄露?

Key concepts

  • 认证标签
  • 存在性不可伪造性
  • 选择消息攻击
  • HMAC
  • CMAC和GMAC
  • 认证加密(AEAD)
  • 先加密后认证
  • 常数时间比较
  • 重放保护

Key theories

选择消息攻击下的存在性不可伪造性
标准的MAC安全定义:一个能够请求其选择消息标签的攻击者,仍然无法生成任何它未查询过的消息的有效标签,从而使伪造变得不可行。
HMAC和认证加密
HMAC将密钥哈希嵌套两次,从而从任何标准哈希函数生成可证明安全的MAC;通过先加密后认证(或使用AES-GCM)将MAC与加密结合,可以生成同时保护机密性和完整性的认证加密。

Mechanisms

HMAC计算H((K xor opad) || H((K xor ipad) || message)),其中H是哈希函数,ipad/opad是固定填充;嵌套结构可以抵御长度扩展,并且如果压缩函数是伪随机函数,则HMAC是可证明安全的。分组密码MAC,例如CMAC,通过对消息块进行链式加密并进行最终的密钥调整来工作。认证加密模式,例如AES-GCM,通过对密文计算伽罗瓦域MAC(GMAC),以一次性绑定机密性和完整性。

Clinical relevance

MAC认证了几乎所有安全的网络流量:HMAC是TLS记录完整性、IPsec、JSON Web Tokens和AWS风格API请求签名的基础,而AES-GCM在TLS 1.3和磁盘加密中提供认证加密。验证MAC可以阻止攻击者悄悄修改密文或重放捕获的消息。

Evidence & guidelines

HMAC在FIPS 198-1和RFC 2104中标准化;CMAC在NIST SP 800-38B中标准化;GCM/GMAC在NIST SP 800-38D中标准化。最佳实践倾向于认证加密(AEAD)构造和先加密后认证的顺序;旧版TLS中使用的先认证后加密顺序导致了填充预言攻击。

History

早期的MAC是使用CBC-MAC模式的DES构建的。发现朴素的密钥哈希MAC容易受到长度扩展攻击后,Bellare、Canetti和Krawczyk于1996年引入了HMAC,并很快被标准化。2000年代,认证加密及其专用AEAD模式(如GCM和CCM)被正式化,现在已成为保护传输中数据的默认方式。

Key figures

  • Mihir Bellare
  • Ran Canetti
  • Hugo Krawczyk
  • Phillip Rogaway

Related topics

Seminal works

  • bellare1996hmac
  • katz2020
  • menezes1996

Frequently asked questions

MAC和数字签名有什么区别?
两者都对消息进行认证,但MAC使用共享密钥,因此任何可以验证标签的方也可能生成它——不存在不可否认性。数字签名使用私钥进行签名,公钥进行验证,因此只有签名者才能创建它,并且任何人都可以检查它。
我应该先加密还是先认证?
推荐的顺序是先加密后认证:加密明文,然后计算密文的MAC。这使得接收方可以在解密之前拒绝伪造的密文,并避免了由先认证后加密顺序引起的填充预言攻击和其他攻击。

Methods for this concept

Related concepts