1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4Hash函数

第 4 章 Hash函数 散列函数Hash Function H(M): 输入为任意长度的消息M; 输出为一个固定长度的散列值,称为消息摘要Message Digest)。 这个散列值是消息M的所有位的函数并提供错误检测能力:消息中的任何一位或多位的变化都将导致该散列值的变化。 又称为:哈希函数、数字指纹(Digital finger print)、压缩(Compression)函数、紧缩(Contraction )函数、数据鉴别码DAC(Data authentication code)、篡改检验码MDC(Manipulation detection code) 散列函数的基本用法(a、b) 散列函数的基本用法(c) 散列函数的基本用法(d) 散列函数的基本用法(e、f) 方法e的优点 加密软件很慢 加密硬件的开销很大 加密是对大长度数据进行优化的 加密算法可能受专利保护 加密算法可能受出口的限制. MAC函数的特性与实现 MAC函数为多对一映射 包含所有可能的MAC和所有可能的密钥 n-bit MAC: 有2n个可能的MAC; k-bit 密钥: 有2k个可能的密钥; N个可能的消息:有 N2n 攻击者如何用强力攻击方法攻击MAC? 为了防止以上可能的攻击, MAC函数应具有以下性质: 如果一个攻击者得到M和CK(M),则攻击者构造一个消息M ?使得CK(M ?)=CK(M)应在计算上不可行。 CK(M)应均匀分布,即:随机选择消息M和M ? , CK(M)= CK(M ?)的概率是2-n,其中n是MAC的位数。 令M ?为M的某些变换,即:M ? =f(M),(例如:f可以涉及M中一个或多个给定位的反转),在这种情况下,Pr[CK(M)= CK(M ?)] = 2-n。 基于DES的MAC Data Authentication Algorithm FIPS publication (FIPS PUB 113) ANSI standard (X9.17) 使用CBC(Cipher Block Chaining)方式,初始向量为0。 最广泛的用法 工作于CFB模式下DES 问题 若对相当长的文件通过签名认证怎么办?如一个合法文件有数兆字节长。自然按64比特分划成一块一块,用相同的密钥独立地签每一个块。然而,这样太慢。 解决办法 解决办法:引入可公开的密码散列函数(Hash function)。它将取任意长度的消息做自变量,结果产生规定长度的消息摘要。[如,使用数字签名标准DSS,消息摘要为160比特],然后签名消息摘要。对数字签名来说,散列函数h是这样使用的: 消息: x 任意长 消息摘要: Z=h(x) 160bits 签名: y=sigk(Z) 320 bits (签名一个消息摘要) 验证签名:(x,y),其中y= sigk(h(x)),使用公开的散列函数h,重构作Z ? =h(x)。然后Verk(y)=Z,来看Z?=Z 新的问题 用以鉴别的散列函数,能否减弱认证方案的安全性?这个问题是要分析的。签名的对象由完整消息变成消息摘要,这就有可能出现伪造。 安全威胁一 (a)伪造方式一:Oscar以一个有效签名(x,y)开始,此处y= sigk(h(x))。首先他计算Z=h(x),并企图找到一个x满足h(x)=h(x)。若他做到这一点,则(x,y)也将为有效签名。为防止这一点,要求函数h具有无碰撞特性。 定义1(弱无碰撞),散列函数h称为是弱无碰撞的,是指对给定消息x ∈ X,在计算上几乎找不到异与x的x ∈ X使h(x)=h(x)。 安全威胁二 (b)伪造方式二:Oscar首先找到两个消息x=x,满足h(x)=h(x),然后Oscar把x 给Bob且使他对x的摘要h(x)签名,从而得到y,那么(x,y)是一个有效的伪造。 定义2(强无碰撞)散列函数h被称为是强无碰撞的,是指在计算上几乎不可能找到相异的x,x使得h(x)=h(x)。 注:强无碰撞自然含弱无碰撞! 安全威胁三 (c)伪造方式三:在散列函数的用法(e)中, 秘密值S本身并不发送, 如果散列函数不是单向的,攻击者截获到M和H(M||S). 然后通过某种逆变换获得M||S, 因而攻击者就可以得到S. 定义3(单向的)称散列函数h为单向的,是指计算h的逆函数h-1在计算上不可行。 HASH 函数 h = H(M) Hash函数的分类 根据安全水平: 定义1(弱无碰撞),散列函数h称为是弱无碰撞的,是指对给定消息x ∈ X,在计算上几乎找不到异于x的x ∈ X使h(x)=h

文档评论(0)

yan666888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档