哈希函数应用辨析.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈希函数应用辨析

哈希函数应用辨析   摘要:分析和对比了哈希函数在信息安全、数据结构和数据挖掘等领域的应用,找出了它在不同领域里所呈现的特点和要求:信息安全领域里的单向性、随机性和无碰撞性,数据结构里尽可能减少碰撞、但不能避免碰撞,而数据挖掘里用于任务分配时则要求均匀碰撞。这为相关课程的教学提供了一些有益的参考,便于澄清一些模糊、混淆的认识。   关键词:哈希函数;信息安全;数据结构;数据挖掘   中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2013)34-7741-02   哈希函数是把任意长度的输入通过一定的算法,变换成固定长度的输出,该输出就是哈希值。哈希函数在信息技术领域得到了广泛的应用,在信息安全、数据结构和数据挖掘类课程都涉及到了哈希函数。由于应用领域的不同,哈希函数呈现出了不同的特性和使用方法,但相关课程在讲述哈希函数时,常常只分析哈希函数在本类课程中的特点和应用,而对其在其他领域里的应用情况闭口不谈,以至于学生们常常感觉很困惑,不知道这门课的哈希函数和那门课的哈希函数之间到底有什么关系,是否相同或者不同之处在于什么地方。该文将结合哈希函数在信息安全、数据结构和数据挖掘等领域的应用来分析它所表现出的不同特征及其原因,以便能更好地理解和掌握哈希函数。   1 哈希函数在信息安全技术中的应用   在信息安全技术领域,哈希算法是现代密码体系中的一个重要组成部分,特别是在数字签名技术中得到广泛应用。在数字签名协议中,哈希函数扮演了一个非常重要的角色。假定A要向B发送一个签名的消息,签名发送方A首先利用哈希函数H计算出消息M的哈希值H(M),然后用自己的私钥Kd对哈希值H(M)进行加密,就得到数字签名Sig=EKd(H(M));随后把数字签名Sig连同消息M一起,发送出去。签名接收方B收到复合的消息之后,把签名Sig提取出来,然后用A的公钥Ke对签名解密得到一个哈希值H”=DKe(Sig);同时B还利用哈希函数H计算所收到消息的哈希值H’=H(M’)。如果H’=H”,则证明消息确实是A产生的,并且在传送过程中未被篡改。   从上面的分析中可以看出,哈希函数实际上把对大量数据的保护和认证问题转换成为对一小段固定长度的数据,即哈希值的保护和认证。因此,哈希值必需和所发送的消息之间建立一一对应的关系,而且这种关系应该是无法预测,这样才能和公钥算法一块实现数字签名的身份认证和防篡改的功能。这实际上就是对哈希函数提出了单向性、随机性和无碰撞的要求。在这里单向性和随机性都是为了防止攻击者有目的地利用消息的哈希值去寻找另一个不同的消息、但却具有相同的哈希值,从而达到篡改消息而不被发现的效果,也就是说故意制造碰撞。哈希函数实际上可以看成是一个原像集合到像集合的一个映射,由于原像集合的数据可以是任意长度,而像集合的哈希值却是固定长度的,所以这肯定是多对一的映射,即便单向性和随机性都得到了满足,碰撞在理论上仍就是不可避免的,这将严重危及数字签名的合理性。因此用于信息安全领域的哈希函数值都必需满足一定的长度,如MD5和SHA-1,其哈希值长度分别为128位和160位,这样像集合的大小将分别达到2128和2160;采用生日攻击,找到一对碰撞的计算量分别达到O(264) 和O(280),这对现有的计算能力来说在合理的时间内是难以实现的。即便这样,MD5由于其哈希值长度相对较短,已经被认为是不安全的而逐渐被淘汰,新的哈希函数也在陆续推出中,其哈希值更长,找到碰撞的难度会更大。由此可见,在信息安全技术领域,利用哈希函数对消息进行映射得到的哈希值概要地反映了该消息的某种唯一特性,这也是为什么哈希值在信息安全领域也被称为消息摘要的原因;相应地,对哈希函数的无碰撞性有非常严格的要求,因此所采用的哈希值长度也较长。   2 哈希函数在数据结构中的应用   在讲数据结构中的哈希函数的应用时,就必须提到哈希表。哈希表是一种数据结构,它可以提供快速的插入操作和查找操作。哈希表是根据关键码值(Key value)而直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数就是哈希函数,存放记录的数组叫做哈希表。由于数组容量有限,因此由哈希函数定义的从关键码值构成的原像集合到像集合,亦即哈希表的映射也是多对一的映射,而且发生碰撞的可能性很大——此时的像集合的大小远远小于前面提到的应用在信息安全领域的哈希函数像集合的大小,如MD5的2128和SHA-1的2160。这样一来,对不同的关键词可能得到同一哈希地址,这将影响哈希表的查找效率。图1很清楚地表明了这一现象,从中可以看到在这个哈希表里,对于0、1、10、11、12以及15这几个位置,每个位置都装了多个数据,即这几个位置都发生了碰撞。  

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档