消息认证码原理
消息认证码(Message Authentication Code, MAC)是一种技术,它的原理是通过对消息和密钥进行特定的处理,生成一个固定长度的数据,这个数据就是消息认证码(MAC)。这个过程可以看作是一个单向的散列函数,因为一旦消息和密钥确定,生成的MAC就是唯一的。
消息认证码的作用是确认消息的完整性和真实性。它不仅可以防止消息被篡改,还可以通过共享密钥来确认发送者的身份。只有知道共享密钥的人才能生成和验证 MAC,因此,如果有人伪装成发送者发送了消息,接收者可以通过检查 MAC 来发现这个消息是伪造的。
简单说明
A给B发送消息,可以通过哈希算法判断消息是否完全。但是没有办法判断消息是否是A发送的。如果A和B都有一个共享的秘钥,A在发送消息时,进行auth_code_A = md5(消息+秘钥)
,注意传输过程中是不传输共享秘钥的,中间人没有秘钥,无法生成auth_code_A
,但是B在接收到消息后,进行auth_code_B = md5(消息+秘钥)
,判断auth_code_A
是否等于auth_code_B
,当auth_code_A==auth_code_B
时,说明消息是A发送的。