消息认证码(Message Authentication Code, MAC)的计算如下:

auth_code = MAC(key, msg)

其行为类似于哈希函数,key和msg发生任何一点微小的变化都将生成完全不同的auth_code。

用例

数据完整性

接收方可以通过验证MAC来确定消息自发送以来是否被更改过。流程如下:

  1. 通信双方实现共享一个密钥key
  2. 双方发消息msg,附带一个auth_code
  3. 双方可以通过key和msg来校验auth_code,从而判断msg是否被篡改

身份认证

MAC是通过发送方和接收方共享的密钥生成的。因此,一个有效的MAC能够向接收方证实消息确实来自于持有该共享密钥的发送方。

基于MAC的PRG

next_seed = MAC(salt, seed)

认证加密