图解密码技术笔记(五)消息认证码——消息被正确传送了吗

消息认证码(message authentication code)


消息的完整性(integrity):消息没有被篡改,也叫一致性

消息的认证(authentication):消息来自正确的发送者


消息认证码(message authentication code)是一种确认完整性并进行认证的技术,简称为MAC

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

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




消息认证码的应用实例


SWIFT(环球银行金融电信协会):

银行和银行之间是通过SWIFT来传递交易消息的。而为了确认消息的完整性以及对消息进行验证,SWIFT中使用了消息认证码。在使用公钥密码进行密钥交换之前,消息认证码所使用的共享密钥都是由人来进行配送的


IPSec:

IPSec是对IP协议增加安全性的一种方式。在IPSec中,对通信内容的认证和完整性校验都是采用消息认证码来完成的



SSL/TLS:

SSL/TLS中对通信内容的认证和完整性校验也采用消息认证码来完成的




消息认证码的多种实现方式


使用单向散列函数实现:

使用SHA-1,MD5之类的单向散列函数可以实现消息认证码,其中一种实现方法称为HMAC


使用分组密码实现:

使用DES,AES之类的分组密码可以实现消息认证码。

将分组密码的密钥作为消息认证码的共享密钥来使用,并用CBC模式将消息全部加密。由于消息认证码中不需要解密,因此将除最后一个分组以外的密文部分全部丢弃,而将最后一个分组用作MAC值。


其他实现方法:

使用流密码和公钥密码等也可以实现消息认证码




HMAC

HMAC是一种使用单向散列函数来构造消息认证码的方法(RFC2104),其中HMAC中的H就是Hash的意思

HMCA中所使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC

使用SHA-1,MD5,RIPEMD-160所构造的HMAC,分别称为HMAC-SHA-1,HMAC-MD5和HMAC-RIPEMD

HMAC的步骤:







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值