码迷,mamicode.com
首页 > 其他好文 > 详细

密码学学习整理三

时间:2018-06-22 17:48:37      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:方法   bubuko   分享图片   hash   基于   加密   信息   md5   情况下   

密码学学习整理三

一. Hash函数与消息认证码

  1. Hash函数
  2. 定义

    是一个将任意长度的消息映射成固定长度输出的函数

    Hash函数是一个具有压缩功能的函数

    • 设X是消息的集合,Y是散列值的集合
    • 我们总是假设|X|≥|Y|,并且经常假设更强的条件|X|≥2|Y|
    • 根据鸽巢原理:两个甚至多个消息会映射为同一个散列值
  3. 安全性

    • 原像稳固:给定散列值y,要找到一个x,使得H(x)=y是计算上不可行的
    • 第二原像稳固:给定消息x,找到另一个x’,使得H(x’)=H(x)是计算上不可行的
    • 碰撞稳固:找到两个不同的消息 x和x’ ,使得H(x)=H(x’)是计算上不可行的
  4. 对Hash函数的攻击实际就是 寻找一对碰撞 的过程

  5. 如果Hash函数 H 设计得“好”,对给定x,要想求得相应的散列值,必须通过计算H(x)才行。如果想绕过 H,而采用其他方法计算出散列值是非常困难的。即使在已知若干散列值H(x1),H(x2),…的情况下,仍是困难的,因此有H(x1)+H(x2)≠H(x1+x2) ,H(x1)H(x2)≠H(x1x2)

  6. 生日攻击告诉我们:为了能达到n-bit的安全性,你所选择的Hash函数的散列值长度应该是2n。如果你想让攻击者成功破译的可能性低于1/280,那么应该使用散列值长度是160-bit的Hash函数

  7. 著名的Hash函数MD5,SHA-0,SHA-1,SHA-2,SHA-3

    1. MD5
      1. 输入:将信息分为512bit一组处理
      2. 输出:散列值长度为128bit
      3. 速度快,不依赖任何密码模块和假设条件,特别适合32位计算机软件实现
    2. SHA系列
      1. 输入:SHA-1将消息分为512bit一组,整个消息长度小于2^64
      2. 输出:SHA-1散列值长度为160bit
      3. 速度比MD5慢
  8. 消息认证码
  9. 消息在传输过程中是否发生改变或被恶意篡改,我们怎么能知道?
    • 使用“数据完整性技术”当消息发生改变时,我们可以检查出来
  10. Hash函数能否保证数据的完整性 ?
    • 不能,举例:某公司经网络发送一张订单m,为防范遭恶意篡改,先用Hash函数计算订单散列值H(m),再将之与订单一起发送 [m,H(m)]。接收方计算收到订单m’的散列值H(m’),若与收到的散列值相同,则确信订单未被篡改。问此方法是否行得通?为什么?不行,攻击者可先篡改订单,再计算假订单的散列值 (接收方无法识别)。关键问题:Hash函数没有密钥 (给定消息,任何人都可以计算)。
  11. 可以看得出,如果设计一个带有密钥的算法,便可以解决这一问题,也就可以防范攻击者进行伪造 。消息认证码(MAC)算法便是这种带密钥的算法,它是实现数据完整性的重要工具 ,其产生的输出也相应地被称作MAC 。
  12. 安全性要求-抗伪造
    1. 在不知道密钥的情况下,给定任何消息,产生相应的MAC是计算上不可行的
    2. 即使已知很多消息及对应的MAC,对新消息产生MAC仍是计算上不可行的
  13. MAC构造-基于CBC模式构造
    1. 该方法对于定长消息是安全的
    2. 如果消息长度可变,即使密钥K没泄露,同样不安全
    3. CBC-MAC只有用于定长消息才能抗伪造
    4. ISO标准的CBC-MAC
  14. 消息认证

  15. 消息认证,又称数据源认证,它的重要目标

    1. 保证传输消息的完整性(检查消息是否被改动过)
    2. 保证消息是由指定发送者发来的
  16. 主要技术

    1. 基于 Hash函数和加密 的认证

    技术分享图片

    1. 基于 MAC 的认证

    技术分享图片

    1. 基于MAC的认证 (续)

      1. 如果Bob计算得到的MAC与接收到的MAC一致,则说明:

        1. Alice发送的消息未被篡改

          • 因为攻击者不知道密钥,无法在篡改消息后产生相应的MAC
        2. Alice不是冒充的

          • 因为除收发双方外,没人知道密钥,攻击者无法冒充Alice发送合法的MAC
      2. 提供机密性的消息认证(方案一)明文M先被加密,再与MAC一起发送

        技术分享图片

      3. 提供机密性的消息认证(方案二)明文M与MAC被一起加密

        技术分享图片

      4. 通常,我们希望直接对明文进行认证,因此 方案2 的使用方式更为常用

密码学学习整理三

标签:方法   bubuko   分享图片   hash   基于   加密   信息   md5   情况下   

原文地址:https://www.cnblogs.com/FZfangzheng/p/9214317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!