消息验证码MAC
消息验证以及消息验证码¶
消息认证(message authentication):验证所收到的消息确实是来自真正的发送方(source authentication),而且消息未被篡改过(integrity)。
- 通过消息产生MAC实现
- 不解决发方“不可否认”()
消息认证码:消息被一密钥控制的公开函数作用后产生的、用作认证符的、固定长度的数值,也称为密码校验
消息验证码的使用¶
设消息为\(M\),\(C\)表示MAC函数,则\(MAC=C(K,M)\)
假定通信双方A和B共享密钥K,A发送给B的消息是M
A计算\(MAC=C(K,M)\),并向B发送\(M|MAC\),B收到消息后与A相同的计算,求得一个新MAC,并与收到的MAC进行比较,如果相同,则说明:
-
消息未被篡改:这是因为攻击者不知道密钥,所以不能够在篡改消息后相应地篡改MAC,而如果仅篡改消息,则接收方计算的新MAC将与收到的MAC不同
-
接收方可以相信消息来自真正的发送方。因为除收发双方外再无其他人知道密钥,因此其他人不能产生具有正确MAC的消息。