文档详情

Hash函数与消息认证讲义.ppt

发布:2017-02-10约字共131页下载文档
文本预览下载声明
第六讲 Hash函数与消息认证 6.1 Hash函数概述 6.1.1 Hash函数定义 网络环境下面临的安全威胁 1. 泄露 2. 通信量分析 3. 伪装 4. 内容篡改 5. 序号篡改 6. 计时篡改 7. 抵赖 6.1.1 Hash函数定义 数据安全 机密性 完整性 认证性 密码技术主要保证数据的机密性 Hash函数能保证数据的完整性和认证性 6.1.1 Hash函数定义 Hash函数定义:Hash函数是一个将任意长度的消息(message)映射成固定长度消息的函数。 6.1.1 Hash函数定义 Hash函数的碰撞(collision) 设x、x’是两个不同的消息,如果 h(x)=h(x’) 则称x和x’是Hash函数h的一个(对)碰撞. 6.1.1 Hash函数定义 Hash函数的分类 单向Hash函数(one?way) 给定一个Hash值y,如果寻找一个消息x,使得y=h (x)是计算上不可行的,则称h是单向Hash函数. 弱抗碰撞Hash函数(weakly collision?free) 任给一个消息x,如果寻找另一个不同的消息x’,使得h(x) =h(x’)是计算上不可行的,则称h是弱抗碰撞Hash函数. 强抗碰撞Hash函数 (strongly collision?free) 如果寻找两个不同的消息x和x’,使得h(x)=h(x’)是计算上不可行的,则称h是强抗碰撞Hash函数. 6.1.1 Hash函数定义 安全Hash函数h应具有以下性质: 对任意的消息x,计算h(x)是容易的; h是单向的; h是弱抗碰撞的,或是强抗碰撞的。 哈希函数H是一公开函数,用于将任意长的消息M映射为较短的、固定长度的一个值H(M),作为认证符,称函数值H(M)为哈希值、杂凑值、杂凑码或消息摘要。杂凑码是消息中所有比特的函数,因此提供了一种错误检测能力,即改变消息中任何一个比特或几个比特都会使杂凑码发生改变。 可将MAC看成是带密钥的哈希函数。MAC主要用于保证消息的完整性。 哈希函数常用于数字签名。 下图表示哈希函数用来提供消息认证的基本使用方式,共有以下6种: ① 消息与哈希值链接后用单钥加密算法加密。由于所用密钥仅为收发双方A、B共享,因此可保证消息的确来自A并且未被篡改。同时还由于消息和哈希值都被加密,这种方式还提供了保密性,见图 (a)。(提供认证性和保密性) ② 用单钥加密算法仅对哈希值加密。这种方式用于不要求保密性的情况下,可减少处理负担。注意这种方式和图 (a)的MAC结果完全一样,即将EK[H(M)]看作一个函数,函数的输入为消息M和密钥K,输出为固定长度,见图 (b)。(提供认证性) ③ 用公钥加密算法和发送方的秘密钥仅加密哈希值。和②一样,这种方式提供认证性,又由于只有发送方能产生加密的哈希值,因此这种方式还对发送方发送的消息提供了数字签字,事实上这种方式就是数字签字,见图 (c)。(提供认证性和数字签字) ④ 消息的哈希值用公钥加密算法和发送方的秘密钥加密后与消息链接,再对链接后的结果用单钥加密算法加密,这种方式提供了保密性和数字签字,见图 (d)。(提供认证性、数字签字和保密性) ⑤ 使用这种方式时要求通信双方共享一个秘密值S,A计算消息M和秘密值S链接在一起的哈希值,并将此哈希值附加到M后发往B。因B也有S,所以可重新计算哈希值以对消息进行认证。由于秘密值S本身未被发送,敌手无法对截获的消息加以篡改,也无法产生假消息。这种方式仅提供认证,见图 (e)。 ⑥ 这种方式是在⑤中消息与哈希值链接以后再增加单钥加密运算,从而又可提供保密性,见图 (f)。 由于加密运算的速度较慢,代价较高,而且很多加密算法还受到专利保护,因此在不要求保密性的情况下,方式②和③将比其他方式更具优势。 哈希函数应满足的条件 哈希函数的目的是为需认证的数据产生一个“指纹”。 为了能够实现对数据的认证,哈希函数应满足以下条 件: ① 函数的输入可以是任意长。 ② 函数的输出是固定长。 ③ 已知x,求H(x)较为容易,可用硬件或软件实现。 ④ 已知h,求使得H(x)=h的x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向哈希函数。 ⑤ 已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可 行的。 如果单向哈希函数满足这一性质,则称其为弱单向哈希函 数。 ⑥ 找出任意两个不同的输入x、y,使得H(y)=H(x)在计 算上是不可行的。 如果单向哈希函数满足这一性质,则称其为强单向哈希函 数。 第⑤和第⑥个条件给出了哈希函数无碰撞性的概念,如果 哈希函数对不同的输入可产生相同
显示全部
相似文档