【计算机】5 HASH函数与消息认证.pptVIP

  • 3
  • 0
  • 约1.5万字
  • 约 78页
  • 2018-02-26 发布于江苏
  • 举报
【计算机】5 HASH函数与消息认证

第五章 Hash函数与消息认证 一、 Hash函数概述 二、 Hash函数MD5 三、安全Hash算法SHA 四、基于分组密码与离散对数的Hash函数 五、消息认证 一、 Hash函数概述 Hash函数 单向函数 函数f(x):A→B若满足下面两个条件,则称为单向函数 对于任意x*∈A计算y=f(x)是容易的,其中 y ∈B。 对于x∈A,求y∈B 使满足y=f(x)是计算上不可能的 。 Hash函数 Hash函数 设H:将A*映射到An,H满足: H是单向函数。 已知 x, 找 x*∈A* ,使H (x)= H (x*)在计算上是不可能的。 找一对 x 和 x* ,x ≠ x* ,使H (x)= H (x*) 在计算上也是不可能的。 H称为安全的Hash函数。   Hash函数 Hash函数的分类 根据安全水平: 弱无碰撞:散列函数H称为是弱无碰撞的,是指对给定消息 ,在计算上几乎找不到异于x的x*使H (x)= H (x*) 。 ? 强无碰撞:散列函数H被称为是强无碰撞的,是指在计算上几乎不可能找到相异的x ,x* 使得H (x)= H (x*) 。 Hash函数 Hash函数的分类 根据是否使用密钥 带秘密密钥的Hash函数:消息的散列值由只有通信双方知道的秘密密钥K来控制。此时Hash值称作MAC。 不带秘密密钥的Hash函数:消息的散列值的产生无需使用密钥。此时Hash值称作MDC。 Hash函数 Hash函数的用途 ? 消息的完整性检测 ? 数字签名 Hash函数 Hash函数 使用Hash函数进行数字签名的好处 ? 提高数字签名的速度。 ? 无需泄露签名所对应的消息,可将签名泄露,如对消息x的签名是Sig(x),其z=H(x)可将(z,y)公开,而保密x。 ? 可将签名变换和加密变换分开,可以在OSI的不同层提供消息的完整性和机密性。 Hash函数  Hash函数的安全性:Hash函数的安全性取决于其抗击各种攻击的能力,对手的目标是找到两个不同消息映射为同一杂Hash值。一般假定对手知道Hash算法,采用选择明文攻击法。 Hash函数 对Hash函数的基本攻击方法 穷举攻击法:给定H=H(H0, M),其中H0为初值,攻击者在所有可能的M中寻求有利于攻击者的M’,使H(H0, M’)=H(H0, M),由于限定了目标H(H0, M)来寻找H(H0, M’),这种攻击法称为目标攻击。若对算法的初值H0不限定,使其H(H0, M)等于H(H0, M’),则称这种攻击法为自由起始目标攻击。 Hash函数 对Hash函数的基本攻击方法 生日攻击:这种攻击法不涉及Hash算法的结构,可用于攻击任何Hash算法。强无碰撞函数正是基于生日悖论一类的攻击法定义的。穷举和生日攻击都属选择明文攻击。生日攻击给定初值H0寻找M?M’, 使H(H0, M’)=H(H0, M),也可对初始值H0不加限制,即寻找H0’, M’使满足h(H0’, M’)=h(H0, M)。 Hash函数 Hash函数 Hash函数的迭代构造 将不限定长度的输入数据压缩成定长输出的Hash值过程: 将输入数字串划分成固定长的段如m比特段 将此m比特映射成n比特,称完成此映射的函数为迭代函数。 对一段m比特输入做类似映射,以此类推,直到全部输入数字串完全做完,以最后的输出值作为整个输入的Hash值。 Hash函数 将m bit到n bit的分组映射或迭代函数的三种选择 mn。有数据压缩,例如:MD4、MD5 SHA等算法。是不可逆映射。 m=n。无数据压缩,亦无数据扩展,通常分组密码采用这类。 mn。有数据扩展的映射。认证码属于此类。 Hash函数 迭代函数以E表示,一般E又都是通过基本轮函数的多轮迭代实现的,因此,轮函数的设计是Hash函数设计的核心。 迭代Hash函数的构造方法 安全迭代函数E 消息M划分成组M1, M2,…, Mi ,…, Mt 选定密钥为K, H0为初始向量IV, Hash函数 Rabin法: H0=IV; Hi=E(Mi, Hi-1) i=1,…,t; H(M)=Ht 。 密码分组链接(CBC)法: H0=IV;Hi=E(K, Mi ?Hi-1) i=1,2,…,t; H(M)=Ht 。 密码反馈(CFB)法: Hi=E(K, Hi-1?Mi),i=1, 2,…,t;H(M)=Ht Hash函数 组合明/密文链接法: Mt+1=IV;Hi=E(K,Mi?Mi-1?Hi-1) i=1, 2,…, t

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档