CBC-MAC

MAC全称为Message Authentication Code(消息认证码)。MAC是用来保证数据完整性的一种工具。数据完整性是信息安全的一项基本要求,它可以防止数据未经授权被篡改。随着网络技术的不断进步,尤其是电子商务的不断发展,保证信息的完整性变得越来越重要,特别是双方在一个不安全的信道上通信时,就需要有一种方法保证一方所发送的数据能够被另一方验证是正确的、未经篡改的。

用数学的语言来描述,MAC实际上是将双方共享的密钥k和消息m作为输入函数,如将函数值记为MACk(m),这个函数值就是一个认证标记,这里用δ表示。攻击者发起攻击的时候,能得到的是消息和标记的序列对(m1,δ1), (m2,δ2),…(mq,δq)(其中δi= MACk(mi))。如果攻击者可以找到一个消息m,m不在m1, m2,…, mq中,并且能够得到正确的认证标记δ= MACk(m)就说明攻击成功了。攻击者成功的概率就是其攻破MAC的概率。其实就是hash函数的概念再述。

CBC-MAC

CBC-MAC是最为广泛使用的消息认证算法之一,同时它也是一个ANSI标准(X9.17)。CBC-MAC实际上就是对消息使用CBC模式进行加密,取密文的最后一块作为认证码。

当取AES作为加密的分组密码时,称为基于AES的CBC-MAC,若需要产生认证码的消息为x,加密的AES密钥为k,则生成MAC的过程如下图所示。
这里写图片描述

  • 填充和分组:对消息x进行填充,将填充得到的消息分成t个n比特的分组,记为x1, x2,…, xt。
  • 密码分组链接:令Ek表示以k为密钥的加密算法AES,用以下方式计算Hi:
    H1←Ek(x1)
    Hi←Ek(Hi-1+xi),2≤i≤t
    则Ht就是x的消息认证码。

CBC-MAC是一种经典的构造MAC的方法,构造方法简单,且底层的加密算法具有黑盒性质,可以方便的进行替换。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值