1.对消息内容的认证。消息在传送过程中可能出现差错或被篡改、伪造通过完整性验证可确保消息内容的真实性。
2.对消息来源的认证。攻击者可能伪装成发送者发出假冒消息可通过使用双方的共享密钥确保发送者就是其声称的合法用户。
3.对消息时效性的认证。消息在传送过程中可能被重传或延迟可通过消息认证验证消息发送的先后顺序以及是否实时发送。
从消息认证的含义可看出消息认证既可对消息内容本身认证也可对消息的数据源进行认证那么消息认证与数字签名有何不同呢?数字签名是用发送者的私钥对消息或消息的摘要值加密的结果它代表发送者的身份。而消息认证是用发送者与接收者所共享的密钥来处理消息的结果它虽然能够证明消息不是第三者所为但是不能**发送者与接收者两人之间互相抵赖的情况因此它只能用来作为认证消息的代码而不是唯一代表发信人凭据的签名。
消息认证的实质是:发送者通过双方协商的某种函数(如Hash函数)以待发消息作为输入经过函数变换产生消息认证码该认证码对于要保护的消息来说是唯一的它与原始消息一起在***道上传送;接收者收到消息后使用相同的函数对收到的消息再次计算也得到一个消息认证码。如果两个消息认证码相同,则说明消息是合法可信的。消息在认证过程中没有第三方参与只在通信双方之间进行消息认证用来验证消息的完整性。
MAC可用做认证符也称为密码校验和。例如通信双方A和B共享一密钥K设发送者A欲发送给接收者B的消息是MA首先计算MAC=Ck(M)其中Ck(·)是密钥控制的公开函数它类似于Hash函数是不可逆的压缩函数。然后A向B发送M‖MACB收到后做与A相同的计算求得一新MAC’并将收到的MAC与计算得出的MAC’进行比较如果两者相同B就可以确认收到的消息是合法的接受该消息否则拒绝。