老哥学习网 - www.lg9.cn 2024年05月07日 15:57 星期二
当前位置 首页 >诗词歌赋 >

[关于对哈希算法的研究与应用]哈希算法

发布时间:2019-01-25 07:42:39 浏览数:

  摘要:随着科学技术的不断发展,许多新的算法在各个领域中有了进一步的应用,其中技术较为先进的哈希算法,以其独特的计算方式受到了广泛的应用。本文主要从哈希算法的定义、特点、原理、应用等方面展开了深入的研究,供大家讨论研究。
  关键词:哈希算法;含义;原理;方式;应用
  中图分类号:TP301.6文献标识码:A文章编号:1007-9599 (2012) 03-0000-02
  The Research and Application of the Hash Algorithm
  Huang Yunke,Xin Xiaolong,Li Chenglong,Li Yumin
  (Department of Mathematics, Northwest University, Xi"an 710069,China)
  Abstract: With the continuous development of science and technology, many new algorithms have further applications in various fields in which technology is more advanced hash algorithm, with its unique method of calculation has been widely used. Mainly from the hash algorithm definition, characteristics, principles and applications, in-depth study for discussion study.
  Keywords: Hash algorithm; Meaning; Principle; Way; Application
  一、哈希算法的含义
  哈希的英文名为Hash,意思为散列,它将任意长度的二进制值对应为固定长度的二进制值,这个值就是我们所要说的哈希值。哈希值的输出空间一般要比输入空间小很多,不一样的输入也会哈希成相同的输出。在哈希一段明文中,如果改变明文中的内容,会导致散列产生不一样的结果,如果要想找到哈希为同一个数值的不同的输入内容,是无法通过各种算法来实现的,因此我们可以利用散列值的这一特点来检验数据的完整性。哈希算法就是将哈希值的输出,它是用来形成某些数据消息或会话内容片段的散列值的计算方法。较为先进合理的哈希算法,可以通过对散列输入数据进行修改时,可以更改结果散列值中的所有位,所以散列对于数据的检测有很好的作用。哈希算法的方式很多,现在普遍在采用的方法有以下几种,分别为:MD2、MD4、MD5 和安全哈希算法(SHA-1)。
  哈希表也叫做散列表,它根据已经设定好的哈希算法和处理数据问题的计算方式,将关键码值映射到一个有限的位置空间中,并关键码值的空间位置中的象,作为存储点,这种存放记录的数组形成的表叫做哈希表。这种对应的映射函数叫做哈希函数。在算法中所得到的存放空间就是哈希地址,也叫做散列地址。
  二、哈希算法的原理
  哈希算法的原理是根据数据帧的散列值服务器数计算出余数,通过这种方法来确定目前数据帧中的内容将会发向哪一个散列值服务器。实际上也可以说就是集合之间所产生的彼此对应的关系,相当于在一个集合内的一个数据帧映射到另一个集合内所对应的那个数据帧的过程。在这个过程中也会涉及到一个哈希算法的分布问题。哈希表的工作原理就是把一个数据帧按照某一种设定好的算法,比如说散列算法,将其转换为数字的形式,将这些数字对数组长度进行余数计算,取其余数,将结果作为该数组的下一个标记,将数值进行存储,并将其存储在这个数字下标下的数组空间内。如果发出有关哈希表的查询命令后,就可以使用散列函数将数据帧转换成其标记下对应的数组,从而从该空间内取得相应的散列值。散列表根据输入数值的变化而不断发生变化。因此,我们可以充分利用哈希算法中的数组定位功能来确定相应的数据位置。由于哈希算法的这一功能,可以快速的完成查找任务,这要同线性数据结构与表格、队列等计算方法相比速度已经有了很大的提升。
  三、哈希算法的方式
  (一)MD4算法
  MD4算法是哈希算法中较为成熟的算法之一,它是由现任麻省理工学院(MIT)电子和计算机科学系Viterbi 讲座教授Ronald L. Rivest在上个世纪九十年代出创造出来的一种哈希算法方式。MD是指消息摘要的意思,是Message Digest 的缩写。它一般使用在32位的计算机处理器模块内,通过软件系统来实现其算法功能。MD4算法在计算过程中需要及时填补有关Message Digest来保证Message Digest的bit位长度加上448后能够被512进行整除,之后,通过64位的二进制Message Digest被填补进来,将信息制定为512bit,并且每个部分都需要通过以上方式进行处理。由于MD4本身存在安全性的问题,当时推出后,就曾被某些人进行了破译,对MD4中的第一步和第三步中存在的问题进行了攻击,例如,曾经Dobbertin向公众演示,他通过一台计算机在几分钟内就找到了MD4中存在的漏洞,使通过MD4加密的不同内容,得到了相同的加密结论。但是就整个MD4算法来说并没有完全的被破译,在此之后Ronald L. Rivest对MD4中存在的漏洞进行了修补与改进。然而,由于MD4本身存在的安全性漏洞,还是被更为先进安全的算法所淘汰。但MD4算法为之后的MD5算法、sha-1算法、RIPEMD算法等提供了很好的理论基础。
  (二)MD5算法
  MD5算法是MD4算法的升级版,也是由Ronald L. Rivest开发研制出的一种哈希算法方式。它与MD4算法相比安全性有了很大的提升,它在MD4的基础上增加了safety-belts功能,使整个算法变得更加可靠。MD5的输入方式与MD4相同,还是保持了原理的512bit的分组形式,它的输出方式是通过四个32bit的连接形式。MD5在MD4的基础上加入了第四轮的计算模式,每一个步骤都是一一对应的固定值,改进了MD4中在第二轮、第三轮计算中的漏洞,完善了访问输入分组的次序,从而减小其对称性和相同性。通过这些变化,使得MD5与MD4相比变得复杂很多,整个运转速度也要比MD4慢一些,但是从整体安全性、抗冲突和抗分析方面有了很大的提高。
  (三)SHA1算法
  SHA1算法是由美国国家标准与技术研究院美国国家安全局设计出来的,主要是通过与DSA算法配合在一起使用。SHA1算法也叫做安全哈希算法,主要应用于Digital Signature Standard DSS里面定义的数字签名算法。SHA1算法长度一般为160bit的Message Digest,SHA1在接收消息摘要的过程中,可以利用Message Digest来检查数据的完整情况。它不会从Message Digest中还原相关的内容,此外两个不同的Message Digest不会产生相同的Message Digest,因此SHA1具有很强的brute-force性能。SHA1的计算方式是基于MD4的算法原理,它的填补和分组模式与MD5是一样的,但是在算法中,SHA1的非线性函数、循环左移运算和加法常数与MD5的运算方式有一定的差异,SHA1的安全性和稳定性比MD5算法更加可靠,且运算速度也有了一定的提高。
  四、哈希算法的应用
  (一)数字签名方面的应用
  哈希算法是现阶段较为先进的加密算法之一,在数字签名方面经常会应用到这一技术。在数字签名过程中,首先要确定出双方认同的哈希算法和签名的方式,签名的一方先要计算出数据文件的哈希值,然后利用哈希值进行非对称算法,得到数字签名。对方在检查签名的过程中,对这条数据信息进行哈希计算,对签字方的哈希值进行比对,比对的方法也是利用非对称算法进行验证。
  (二)校对信息方面的应用
  在对文件信息校对的过程中使用最多、最为普遍的算法就是哈希算法,其中以MD5算法最为常见。因为MD5算法在信息校对中具有奇偶校验法和循环冗余码校验无法比拟的优势,即具有防止对数据进行篡改的能力,有效的阻止了黑客或其他人员对相关数据文件内容进行恶意的修改和破坏,保证了数据的正确性。
  五、结语
  总之,哈希算法是目前较为先进的加密算法,它以其单向性、抗冲突性、映射分布均匀性和差分分布均匀性等特点,广泛应用于工业、商业等各个领域之中,但是由于其内部结构还存在很大的发展性,有待于相关技术人员对其进行更深一步的拓展,使其发挥出更好的作用。
  参考文献:
  [1]王勇平.《哈希算法的研究与发展》.北京.创新出版社,2003(1)
  [2]李洪山.《浅谈MD5算法的探究与开发》.电子技术书刊,2004(01)
  [3]刘温筠.《关于对SHA1算法的分析与研究》.河北文化出版社,2002(11)
  [4]孙清泉,徐卫国,康健.《关于对哈希表的理解与探讨》.现代教育出版社,2008,1

推荐访问:算法 研究

相关文章:

Top