第八章 消息认证码
消息认证码的实现方法
1.使用SHA-2之类的单向散列函数可以实现消息认证码,其中一种实现方法称为HMAC
2.使用AES之类的分组密码
3.使用流密码和公钥密码
认证加密
认证加密是一种将对称密码与消息认证码相结合,同时满足机密性、完整性和认证三大功能的机制。
认证加密的方式有:
1.Encrypt-then-MAC 先用对称密码将明文加密,然后计算密文的MAC值;
(消息认证码的输入消息是密文,通过MAC值就可以判断“这段密文的确是由已经知道明文和密钥的人生成的”)
2.Encrypt-and-MAC 将明文用对称密码加密,并对明文计算MAC值
3.MAC-then-Encrypt先计算明文的MAC值,然后将明文和MAC值同时用对称密码加密
HMAC
HMAC是一种使用单向散列函数来构造消息认证码的方法,其中HMAC的H是Hash的意思。
HMAC中使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC。
对消息认证码的攻击
1.重放攻击
并不破解消息认证码,而是将正确的MAC值保存下来重复利用