《图解密码技术》笔记8:消息认证码-消息被正确传送了吗

本章介绍了消息认证码(MAC)在确保信息安全中的作用,如判断消息完整性及来源认证。MAC通过共享密钥进行计算,用于验证数据未被篡改和来源正确。讨论了HMAC的实现、应用实例,如SWIFT和IPsec,并提到了常见的攻击类型和MAC的局限性,如无法为第三方提供证明和防止否认。此外,还提及了认证加密(AEAD)作为结合加密和认证的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

8.1 本章学习的内容

8.2 消息认证码

8.2.1 汇款请求是正确的吗

8.2.2 什么是消息认证码

8.2.3 消息认证码的使用步骤

8.2.4 消息认证码的密钥配送问题

8.3 消息认证码的应用实例

8.4 消息认证码的实现方法

8.4.1 使用单向散列函数实现

8.4.2 使用分组密码实现

8.4.3 其他实现方法(流密码、公钥密码)

8.5 认证加密

8.6 HMAC的详细介绍

8.5.1 什么是HMAC

8.5.2 HMAC的步骤

8.7 对消息认证码的攻击

8.7.1 重放攻击

8.7.2 密钥推测攻击

8.8 消息认证码无法解决的问题

8.8.1 对第三方证明

8.8.2 防止否认


8.1 本章学习的内容

8.2 消息认证码

        使用消息认证码可以判断消息是否被篡改,以及该消息是否来自期望的发送者。

8.2.1 汇款请求是正确的吗

        消息的完整性:消息没有被篡改
        消息的认证:消息来自正常的发送者

8.2.2 什么是消息认证码

        消息认证码(Message Authentication Code)是一种确认完整性并进行认证的技术。简称为MAC。

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

        消息认证码是一种和密钥相关联的单向散列函数。

        单向散列函数与消息认证码的比较

8.2.3 消息认证码的使用步骤

        假设Alice银行要向Bob银行转账:

  1. 发送者Alice和接收者Bob事先共享密钥
  2. Alice根据汇款请求消息和密钥计算MAC值
  3. Alice将汇款请求信息和MAC值发送给Bob
  4. Bob根据接收到的信息汇款信息计算MAC值,将它和从Alice处接收的MAC值对比
  5. 如果两个MAC值一致,则Bob就可以断定汇款请求来自于Alice

8.2.4 消息认证码的密钥配送问题

        要解决消息认证码的密钥配送问题,需要和 对称加密 的解决方法一样。

8.3 消息认证码的应用实例

  • SWIFT:环球银行金融电信协会。
  • IPsec:IP协议增加安全性的一种方式。对通信内容的认证和完整性校验都是采用MAC来完成的。
  • SSL/TLS:将在14章详解。

8.4 消息认证码的实现方法

        有很多种实现方式。

8.4.1 使用单向散列函数实现

        使用SHA-2之类的单向散列函数HMAC就是其中一种实现方式。

8.4.2 使用分组密码实现

        使用AES之类的分组密码来实现。例如:AES-CMAC(RFC4493)就是一种。

8.4.3 其他实现方法(流密码、公钥密码)

        使用流密码、公钥密码等也可以实现。

8.5 认证加密

        认证加密(AE、AEAD)是一种将对称密码与消息认证码相结合,同时满足机密性、完整性和认证三大功能的机制。

8.6 HMAC的详细介绍

8.5.1 什么是HMAC

        HMAC中的H是Hash的意思。是使用单向散列函数来构造消息认证码的方式(RFC2104)。

如:HMAC-MD5、HMAC-SHA1、HMAC-SHA256、HMAC-SHA512

8.5.2 HMAC的步骤

        计算步骤:

8.7 对消息认证码的攻击

8.7.1 重放攻击

8.7.2 密钥推测攻击

8.8 消息认证码无法解决的问题

8.8.1 对第三方证明

        假设Bob收到了Alice的消息后,想要向第三方验证者Victor证明这条消息是Alice发送的,用消息认证码无法进行这样的证明。

        因为Victor无法判断这条消息到底是Alice发的,还是Bob发的,因为Alice和Bob双方都可以计算Mac值,所以对于Victor来说,Alice和Bob都无法证明是对方计算了MAC值,而不是自己。

8.8.2 防止否认

        Alice向Bob发送了消息后,Alice可以向Victor声称:我没有发过这条消息给Bob。而Bob也没法向Victor证明这条消息确实是Alice发的,这样的行为就称为否认。

        这种情况下,使用第9章中要介绍的数字签名就可以防治否认。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值