消息认证:一个短的字符V追加到消息M之后,用以认证该消息
发送方:M---->M||V
接收方:M||V---->yes/no (认证)
一个安全的认证系统,要满足:
- 接受者能够检验消息的合法性、真实性、完整性
- 消息的发送方和接收方不能抵赖
- 除了合法的消息发送者,其他人不能伪造合法的消息
认证函数----->认证协议
可以用来做认证的函数分为三类:
- 消息加密函数:用完整信息的密文作为对信息的认证
- 消息认证码:是秘钥和消息的公开函数,产生一个固定长度的值作为认证标识
- 散列函数:是一个公开的函数,它将任意的信息映射成一个固定长度的信息,作为认证值比如 MD5
散列函数的特点:
- 容易计算,给出x 容易计算 H(x), 比秘钥加密块
- 单向性, 给定Hash值h,不容易找到x使得H(x)=h
- 抗碰撞性(Collision-resistance), 不容易找到x 和y 使得H(x)=H(y)
数字签名是笔迹签名的模拟,其特征:
- 必须能够验证作者及其签名的日期时间
- 必须能够认证签名时刻的内容
- 签名必须能够由第三方验证,以解决争议