当前位置:文档之家› HASH函数简介

HASH函数简介


② 弱单向性:已知x,找出x’ (x’ ≠x),使得 h(x’ )= h(x) 在计算上是不可行的,满足这一 性质的单向散列函数称为弱单向散列函数。
Hash函数的安全性
问题 碰撞
实例:Hash函数h:X → Y
找出:x,x’∈X使得x’ ≠x,并且h(x’ )= h(x) ③ 强单向性:找出任意两个不同的输入x,x’ 使得h(x’ )= h(x)在计算上是不可行的,满足 这一性质的单向散列函数,则称其为强单向 散列函数
它适用在32位字长的处理器上用高速软件实 现--它是基于 3ash算法:
MD5:1992年4月Ron Rivest公布的MD4的改 进RFC 1321称为MD5 它对输入仍以512位分组,其输出是4个32位 字的级联,与 MD4 相同。MD5比MD4来得 复杂,并且速度较之要慢一点,但更安全, 在抗分析和抗差分方面表现更好。
Hash算法
从密码分析的角度来看,MD5被认为是易受 攻击的 2004年山东大学王小云教授破译了MD5, 采用”比特追踪法”(模差分方法)可以很 快的找到一个碰撞。而且这种攻击已经部 分的可实用化,即找到有意义的碰撞。
Hash算法
著名的Hash算法:
SHA1:安全杂凑算法(secure hash algorithm,
Hash函数
Hash函数
在实际的通信保密中,除了要求实现数 据的保密性之外,对传输数据安全性的 另一个基本要求是保证数据的完整性。 密码学中的Hash函数可为数据完整性提 供保障
数据的完整性是指数据从 发送方产生后,经过传输 或存储以后,未被以未授 权的方式修改的性质。
Hash函数
Hash函数通用来构造数据的短“指纹”(函 数值);一旦数据改变,指纹就不再正确。 即使数据被存储在不安全的地方,通过重新 计算数据的指纹并验证指纹是否改变,就能 够检测数据的完整性。
SHA)由美NIST设计,于1993年作为联邦信息处理标 准(FIPS PUB 180)公布,称做安全散列标准 ,这 个版本现在常被称为 “SHA-0”。SHA是基于MD4的 算法,其结构与MD4非常类似。SHA在发布之后很快 就被 NSA 撤回,并且以1995年发布的修订版本FIPS PUB 180-1 (通常称为 “SHA-1”) 取代
Hash函数
Hash函数h是一公开函数,用于将任意长的消 息(或数据)x映射为较短的、固定长度的一 个值h(x),作为认证符,称函数值h(x)为杂凑 值、杂凑码或消息摘要
Hash函数的安全性
对于Hash函数的安全要求,如果对于 ①原像问题 ②第二原像问题 ③碰撞问题 这三个问题都是难解的,则认为该Hash函 数是安全的。
Hash函数的安全性
问题
原像(Preimage)
实例:Hash函数h:X → Y和y∈Y 找出:x∈X使得h(x)=y ① 单向性:已知h,求使得h(x)=y的x在计算上 是不可行的,这一性质称为函数的单向性, 称h(x)为单向散列函数。
Hash函数的安全性
问题 第二原像
实例:Hash函数h:X → Y和x∈X 找出:x’∈X使得x’ ≠x,并且h(x’ )= h(x)
Hash函数的安全性
第②和第③个条件给出了Hash函数无碰撞性
collision-free的概念 Hash函数的碰撞collision 设x和y是两个不同的消息,如果h(y)=h(x),
则称x和y是Hash函数的一个碰撞
Hash算法
著名的Hash算法:
MD4:1990年10月由Ron Rivest作为RFC1320 提出了MD4算法RFC 1320 ,这个算法很快 就被den boer和bosselaers等人破译了,但 它的设计思想却影响了后来MD5,HAVAL等 算法,是MD5的前身。
Hash算法
1998年,在一次对 SHA-0 的攻击中发现这次攻击 并不能适用于 SHA-1 —不知道这是否就是 NSA 所发 现的错误,但这或许暗示我们这次修正已经提升了安 全性。
但SHA-1现在理论上已经被王小云破译了
相关主题