It's our wits that make us men.

2019/5/22 《图解密码技术》第八章

Posted on By LuLu

《图解密码技术》第八章

  • 重放攻击:replay attack
  • 否认:repudiation,防止否认:nonrepudiation

认证加密

认证加密简称AE或AEAD,将对称密码与消息认证码相结合,同时满足机密性、完整性和认证三大功能的机制

  • Encrypt-then-MAC:将明文用对称密码加密,计算密文的MAC值
  • Encrypt-and-MAC:将明文用对称密码加密,并对明文计算MAC值
  • MAC-then-Encrypt:先计算明文的MAC值,然后将明文和MAC值同时用对称密码加密
  • GCM与GMAC
    • GCM:Galois/Counter Mode,使用AES等128比特 的分组密码的CTR模式,使用一个反复加法和乘法运算的散列函数来计算MAC值。
      • CTR模式本质是对递增的计数器值进行加密,因此可以通过对若干分组进行并行处理来提高运行速度
    • 专门用于消息认证码的GCM被称为GMAC,GCM和CCM都要被列为推荐使用的认证加密方式

HMAC详细介绍

什么是HMAC

HMAC是一种是用单向散列函数来构造消息认证码的方法,任何高强度的单向散列函数都可以被用与HMAC.

e.g:HMAC-SHA1、HMAC-SHA-224

HMAC的步骤

img

对消息认证码的攻击

重放攻击

(重复发送100次100万的转账就称为1亿),防御重放攻击:

  • 序号

    约定每次发对消息赋予一个递增的序号,并且计算MAC值时将序号也包含在消息中。但每个通信对象都需要记录最后一个消息的序号.

  • 时间戳

    约定在发送消息时包含当前的时间,如果收到之前的消息,即使MAC正确也将其当做错误的消息来处理,这样就能防御重放攻击。考虑到通信延时,还是会存在可以进行重放攻击的空间.

  • nonce

    接收者先向发送者发送一个一次性的随机数,称为nonce,发送者在消息中包含这个nonce并计算MAC值, 每次通信的nonce都不一样,所以无法重放攻击。但是通信的数据量回增加.

密钥推测攻击

对消息认证码也可以暴力破解和生日攻击

对与消息认证码,应保证不能根据MAC值推测出通信双方使用的密钥

即在省城消息认证码所使用的密钥时,必须使用密码学安全的、高强度的伪随机数生成器.

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

对第三方证明

能够计算出正确MAC的只有Alice和Bob,在双方通信时,可以断定是对方计算了MAC值,但是第三方,Alice或Bob不能证明是对方计算了MAC值,而不是自己

防止否认

Alice给Bob发送了消息,Alice否认了,因为无法向第三方证明,所以无法防止否认.