MAC(Message Authentication Code)消息认证码
特点
唯一性(在该空间内不可能由两个相同的数据产生相同的MAC,即具有抗碰撞的特点)
作用
1.用于对数据的完整进行确认
2.防止数据篡改
应用举例
- 如Linux的开源官网,都会提供校验值用于保证用户下载的资源是完整的,未被篡改的。
- 用于消息的防篡改验证
MAC分类
1. 串行处理(慢,串行加密,强度取决于最后几轮加密(因为需要逆推))
ECBC-MAC
常与AES结合使用,例如802.11协议中的CCM加密模式以及(基于分组密码的)CMAC
NMAC
通常不与AES和3DES使用,由于更改AES的密钥时要重新计算所有的AES扩展
NAMC(基于HMAC(哈希运算MAC),适用于更长的数据)
2. 并行处理(快)
PMAC
基于分组密码,用于对速度有要求的场合
3. Cater-Wegman MAC
随机MAC,单个信息可以有许多不同的标签。
缺点
在使用消息认证码的过程中,AB双方都可以对消息进行加密并且算出MAC。也就是说,我们无法证明原本的消息是A生成的还是B生成的。
使用MAC时,生成的一方和检测的一方持有同样的密钥,所以不能确定MAC由哪方生成。这个问题可以用“数字签名”来解决