MAC 消息认证码
一、简介
MAC是指消息认证码。安全性依赖于Hash函数。
- 可以对通信双方进行认证
- 对数据进行完整性校验
二、流程
- 发送方和接收方使用的密钥是一样的。发送方Sender使用hash函数和密钥对消息进行加密,计算出来消息认证码。
- 将计算出来的消息认证码和消息发送给接收者Receiver
- 接收者Receiver受到消息后以同样的方式计算消息认证码。
- 接收者Receiver将计算出来的消息认证码与发送方Sender发送过来的消息认证码进行比对。
三、计算方法
- 使用已有的加密算法,如DES等直接对摘要值进行加密处理。
- 使用专门的MAC算法。HMAC(Hash-based Message Authentication Code),它基于MD5或者SHA-1,在计算散列值时将密钥和数据同时作为输入,并采用了二次散列迭代的方式,实际计算方法如下:
HMAC(K,M)=H(K⊕opad∣H(K⊕ipad∣M))
注:opad和Ipad分别是由若干个0x5c和0x36组成的字符串。∣表示连接操作
可能有些地方写的不对,欢迎大佬进行批评指正。