目录

  • 1 信息安全概述
    • 1.1 信息安全的定义、安全目标及攻击类
    • 1.2 学习目标和学习任务
  • 2 密码学基础
    • 2.1 密码学的发展历史
    • 2.2 密码学的基本概念
    • 2.3 经典密码学
      • 2.3.1 代换密码&置换密码
      • 2.3.2 转轮机
    • 2.4 密码系统的分类
    • 2.5 密码分析
      • 2.5.1 密码分析学
      • 2.5.2 穷举攻击
    • 2.6 隐蔽通道和隐写术
    • 2.7 学习目标和学习任务
    • 2.8 本章作业
  • 3 对称密码体制
    • 3.1 分组密码
    • 3.2 数据加密标准
    • 3.3 高级加密标准
    • 3.4 对称密码的工作模式
    • 3.5 序列密码
    • 3.6 其他对称加密算法
    • 3.7 学习目标和学习任务
  • 4 公钥密码体制
    • 4.1 公钥密码体制的产生
    • 4.2 数论基础
    • 4.3 公钥密码体制的基本原理
    • 4.4 RSA公钥密码体制
    • 4.5 其他公钥密码算法
    • 4.6 公钥密码算法的工作机制
    • 4.7 学习目标和学习任务
  • 5 消息认证
    • 5.1 消息认证基本概念
    • 5.2 消息加密认证
    • 5.3 消息认证码
    • 5.4 Hash函数
    • 5.5 学习目标和学习任务
  • 6 身份认证与数字签名
    • 6.1 身份认证
    • 6.2 数字签名
    • 6.3 学习目标和学习任务
  • 7 网络安全协议
    • 7.1 学习目标和学习任务
  • 8 期中考试
    • 8.1 考试要求
  • 9 复习
    • 9.1 精简课件
Hash函数

5.4 Hash函数


  • 学习目标:

       

1.掌握哈希函数的概念。

2.理解哈希函数的特点。

3.掌握哈希函数和加密函数的综合使用。

4.掌握哈希函数设计的要求。

5.掌握基于哈希函数的认证方法。

6.理解哈希函数的迭代型结构。

7.掌握MD5算法的4个步骤。

8.掌握SHA算法的4个步骤。

9.掌握对哈希函数三个级别的攻击。

10.理解次预映射攻击。

11.掌握生日悖论

12.理解生日攻击


  • 学习内容:


1.哈希函数:也称为散列函数、杂凑函数,是对不定长的输入产生定长输出的一种特殊函数。哈希函数的输出值:散列值、Hash值、散列码和哈希值,一般长度为:128位或160位。

2.哈希函数特点:单向性。

3.哈希函数的用法

4.哈希函数和加密体制的综合应用:对消息产生的哈希值进行加密传输。由于Hash值位数少,所以加密和解密负担不大。

5.哈希函数的设计要求

  • 对于任意大小的数据块,产生固定长度的输出。

  • 对任意给定的M,计算H(M)是相对容易的。

  • 对任意给定的h,计算M使得H(M) = h成立时计算上不可行的,即H具有单向性。

  • 对任意给定的M1,找到M2,使得 H(M1) = H(M2)在计算上是不可行的,H具有弱无碰撞性。

  • 寻找任意的(M1,M2),使得 H(M1) = H(M2)在计算上是不可行的,H具有强无碰撞性。

6.基于哈希函数的认证方法

  • 使用对称密码体制仅对附加的散列值进行加密:仅提供认证。

  • 使用对称密码体制对附加了散列值的消息进行加密:提供认证和机密性。

  • 使用公钥密码体制,但发送方的私钥仅对散列值进行加密:提供认证和数字签名。

7.哈希算法的迭代型结构

算法的核心技术是设计无碰撞的压缩函数f。

8.MD5算法输入任意长度消息,输出128位哈希值。

  • 消息填充

  • 缓冲区初始化

  • H运算

  • 输出

9.SHA算法输入任意长度消息,输出160位哈希值。

  • 消息填充

  • 缓冲区初始化

  • H运算

  • 输出

10.对Hash函数攻击的三个级别

  • 预映射攻击

  • 次预映射攻击:弱碰撞攻击,

  • 碰撞攻击:强碰撞攻击

11.生日悖论即任找23人,当中至少有两人的生日相同的概率至少为1/2。

12.生日攻击:

观看课件:


注意点:


课后练习:

1.阅读王小云破译MD5和SHA的相关论文