网站大量收购独家精品文档,联系QQ:2885784924

新编密码学 课件 第6章 Hash函数.pptx

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

6.1Hash函数的基本概念

6.2迭代的Hash函数

6.3MD5算法与SHA-1算法

6.4SM3算法;6.1Hash函数的基本概念;数据的完整性是指数据从发送方产生,经过传输或存储以后,没有被以未授权的方式修改的性质。密码学中的Hash函数在现代密码学中扮演着重要的角色,该函数虽然与计算机应用领域中的Hash函数有关,但两者之间存在着重要的差别。

计算机应用领域中的Hash函数(也称散列函数)是一个将任意长度的消息序列映射为较短的、固定长度的值的函数。密码学上的Hash函数能够保障数据的完整性,它通常被用来构造数据的“指纹”(即函数值),当被检验的数据发生改变时,对应的“指纹”信息也发生变化。这样,即使数据被存储在不安全的地方,我们也可以通过数据的“指纹”信息来检测数据的完整性。

设H是一个Hash函数,x是消息,不妨假设x是任意长度的二元序列,相应的“指纹”定义为y=H(x),Hash函数值通常也称为消息摘要(MessageDigest)。一般要求消息摘要是固定长度的二元序列。;如果消息x被修改为x,则可以通过计算消息摘要y=H(x),并且验证y=y是否成立来确认数据x是否被修改。如果y≠y,则说明消息x被修改,从而达到检验消息完整性的目的。对于Hash函数的安全要求,通常用下面3个问题进行判断。如果一个Hash函数对这3个问题都是难解的,则认为该Hash函数是安全的。

用X表示所有消息的集合(有限集或无限集),Y表示所有消息摘要构成的有限集合。

(1)原像问题(PreimageProblem):设H:X→Y是一个Hash函数,y∈Y,是否能够找到x∈X,使得H(x)=y。

如果对于给定的消息摘要y,原像问题能够解决,则(x,y)是有效的。不能有效解决原像问题的Hash函数称为单向的或原像稳固的。

(2)第二原像问题(SecondPreimageProblem):设H:X→Y是一个Hash函数,x∈X,是否能够找到x∈X,使得x≠x,且H(x)=H(x)。;如果第二原像问题能够解决,则(x,H(x))是有效的二元组。不能有效解决第二原像问题的Hash函数称为第二原像稳固的。

(3)碰撞问题(CollisionProblem):设H:X→Y是一个Hash函数,是否能够找到x,x∈X,使得x≠x,且H(x)=H(x)。

对于碰撞问题的有效解决并不能直接产生有效的二元组,但是,如果(x,y)是有效的二元组,且x,x是碰撞问题的解,则(x,y)也是一个有效的二元组。不能有效解决碰撞问题的Hash函数称为碰撞稳固的。

实际应用中的Hash函数可分为简单的Hash函数和带密钥的Hash函数。一个带密钥的Hash函数通常作为消息认证码。假定Alice和Bob有一个共享的密钥k,通过该密钥可以产生一个Hash函数Hk。对于消息x,Alice和Bob都能够计算出相应的消息摘要y=Hk(x)。Alice通过公共通信信道将二元组(x,y)发送给Bob,Bob接收到(x,y)后,通过检验y=Hk(x)是否成立来确定消息x的完整性。如果y=Hk(x)成立,说明消息x和消息摘要y都没有被篡改。;一个带密钥的Hash函数族包括以下构成要素:

(1)X:所有消息的集合(有限集或无限集)。

(2)Y:所有消息摘要构成的有限集合。

(3)K:密钥空间,是所有密钥的有限集合。

(4)对任意的k∈K,都存在一个Hash函数Hk∈H,Hk:X→Y。

如果Hk(x)=y,则称二元组(x,y)∈X×Y在密钥k下是有效的。

Hash函数的目的是为文件、报文或其他分组数据提供完整性检验,要实现这个目的,设计的Hash函数H必须具备以下条件:

(1)H能够用于任何大小的数据分组。(2)H产生定长的输出。

(3)对任意给定的消息x,H(x)要易于计算,便于软件和硬件实现。

(4)对任意给定的消息摘要y,寻找x使得y=H(x)在计算上是不可行的。

(5)对任意给定的消息x,寻找x,x≠x,使得H(x)=H(x)在计算上是不可行的。

(6)寻找任意的(x,x),使得H(x)=H(x)在计算上是不可行的。;以上6个条件中,前3个条件是Hash函数能够用于消息认证的基本要求,第4个条件是指Hash函数具有单向性,第5个条件用于消息摘要被加密时防止攻击者的伪造(即能够抵抗弱碰撞),第6个条件用于防止生日攻击(即能够抵抗强碰撞)。

条件(4)(5)和(6)意味着Hash函数具有3个一般特性:抗原像特性、抗第二原像特性、碰撞特性。

Hash函数的目的是确定消息是否被修改。因此,对Hash函数攻击的目标是生成这样的修改后消息:其Ha

文档评论(0)

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

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

1亿VIP精品文档

相关文档