12 消息认证码
12.1 对消息认证的要求
攻击类型:
保密消息
- 消息透露给没有合法密钥的任何人或程序
- 传输分析 在面向连接的应用中,分析连接的频率和持续时间,确定消息的数量和长度,无连接应用中确定消息数量和长度
消息认证
- 伪装
- 内容修改
- 顺序修改
- 计时修改:对消息的延迟和重播
数字签名
- 发送方否认
数字签名和抗攻击协议
- 接收方否认
12.2 消息认证函数
消息认证或数字签名机制在功能上基本都有上下两层,下层是产生某种认证符的函数,上层协议中将函数作为原语使接收方可以验证消息的真实性
可以产生认证符的函数类型
- Hash函数:以哈希值直接作为认证符号
- 消息加密:将密文作为认证符
- 消息认证码(MAC):它是消息和密钥的函数,它产生定长的值,以该值作为认证符
12.2.1 消息加密
对称密码中,A和B共享密钥K,A使用密钥K加密M,B可以使用K解密,在这种机制下,可以实现保密性和提供认证。问题在于M如果是任何位模式的情况下,B则无法判断密文是否是合法的明文所产生。为此必须限制合法明文是可能位模式的一个子集。这样伪造明文的攻击就很小了。