ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hash函数

2020-04-19 23:01:41  阅读:298  来源: 互联网

标签:Hash 函数 SHA 分组 哈希 bit


1、Hash函数的作用

     具有极强的错误检测能力

     用Hash码作MAC,可用于认证

     用Hash码辅助数字签名

     Hash函数可用于保密

2、Hash函数的定义

     1.Hash函数将任意长的数据M变换成定长的码h,记为:h=HASH(M) 或 h=H(M)。

     2.实用性:对于给定的数据M,计算h=HASH(M)是高效的。

     3.安全性:

         1)单向性:对于给定的Hash值h,找到满足H(x)=h的x在计算上是不可行的。

         2)抗弱碰撞性:对于任何给定的x,找到满足y≠x且H(x)=H(y)的y在计算上是不可行的。

         3)抗强碰撞性:找到任何满足H(x)+H(y)的偶对(x,y)在计算上是不可行的。

3、Hash函数的一般结构

      分组:将输入分成L-1个大小为b位的分组。

      填充:若第L-1分组不足b位,则将其填充为b位。

      附加:附加上一个表示输入的总长度的分组。

      一共L个大小为b位的分组。

      由于输入中包含长度,所以攻击者必须找出具有相同Hash值且长度相等的两条报文,或者找出两条长度不等但加入长度后Hash值相同的报文,从而增加了攻击难度。

      

 

 4、Hash函数的应用

 

 

 5、经典的Hash算法

    1.MD5

      由Ronald Rivest设计(RSA设计者之一),一系列的Hash算法MD2,MD4...,生成128-bit的哈希值,曾经是广泛使用的哈希算法,成为Internet标准-RFC1321。

      山东大学王小云教授等提出的比特跟踪法能快速寻找哈希碰撞,故,现今不可用。

    2.SHA-1

      SHA最初由NIST和NSA于1993年设计,于1995年修订为SHA-1,与DSA签名方案一起只用作为美国标准,标注号为FIPS 180-1 1995,也是因特网标准RFC3174,基于MD4设计,生成160-bit的哈希值。

      但是2005年起,针对SHA-1安全性的最新碰撞分析研究成果,引起了一定程度担忧。

      2002年,NIST发布了修订版FIPS 180-2,给出了3种新的SHA版本:SHA-256、SHA-384、SHA-512,是为了兼容AES密码提供的更高的安全性设计,结构和相关细节与SHA-1类似,因此,相关密码分析是相似的。安全级别更高。    

      

 

    3.PIPEMD-160

       在欧洲开发,参与攻击MD4/5的研究人员设计,某些方面与MD5/SHA类似,生成160-bit哈希值,比SHA-1慢,但更安全。

6、哈希函数的安全性讨论

    像分组密码一样,穷举攻击是最好的选择,前提是算法没有漏洞。

    暴力破解:
        穷举攻击的平均尝试次数是 2m/2 :其中m是输出的哈希值的bit数量。

        目前,128-bit哈希安全性较弱,160-bit甚至哈希值更长更好。

    注:分组密码穷举攻击的平均尝试次数是 (1/2)*2m ,其中m是秘钥长度。所以Hash函数的暴力破解相对更容易。

标签:Hash,函数,SHA,分组,哈希,bit
来源: https://www.cnblogs.com/msq2000/p/12734882.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有