密码Ethical Hackers

图解密码技术学习-第八章 消息认证码

2016-09-13  本文已影响941人  JMasche

消息认证码

消息认证码的作用

什么是消息认证码

消息认证码使用过程

  1. 发送者发送消息后,使用发送的消息和共享密钥计算出MAC值,并发送给接收者
  2. 接收者接收到消息后,使用接收到的消息和共享密钥计算出MAC值
  3. 接收者接收到MAC值后,使用接收到的MAC值和自己计算的MAC值做比对。如果相同,则表示消息没有被篡改,且发送者的身份正确。

共享密钥配送问题

从上面的描述中可以得出,消息认证码能够检查发送者身份的关键因素就是共享密钥。所以,共享密钥的配送问题就是关键环节。
解决的办法在第五章的公钥章节中有总结,基本也就包括:公钥、Diffie-Hellman密钥交换等解决思路。

消息认证码实例

消息认证码的实现方法

消息认证码有多种实现方式:

HMAC详细介绍

什么是HMAC

HMAC的H是hash的意思,就是使用单向散列函数来实现的消息认证码。
单向散列函数的具体算法随意选择,如果使用SHA-1,则被称为HMAC-SHA-1。

HMAC具体步骤

  1. 密钥填充
    如果共享密钥小于散列值的长度,则用0补充。
    如果共享密钥大于散列值的长度,则使用单向散列函数计算出共享密钥的散列值。
  2. 填充后的密钥与ipad的XOR
    ipad是一种比特序列,是使用00110110这一比特序列不断循环直到分组长度的比特序列。i是inner的意思。
    填充后的密钥和ipad XOR计算后的值称为 ipadkey。
  3. 与消息组合
    将ipadkey附在消息的开头。
  4. 计算散列值
    使用单向散列函数计算消息和ipadkey组合的散列值。
  5. 填充后的密钥与opad XOR
    opad是一种比特序列,是使用01011100这一比特序列不断循环直到分组长度的比特序列。o是outer的意思。
    填充后的密钥和opad XOR计算后的值称为 opadkey。
  6. 与散列值合并
    将第4步计算的散列值拼接在opadkey后面。
  7. 计算散列值
    将第6步组合后的值进行hash,计算出的散列值就是MAC值。

对消息认证码的攻击

消息认证码无法解决的问题

上一篇 下一篇

猜你喜欢

热点阅读