《关于对哈希算法的研究与应用》由会员分享,可在线阅读,更多相关《关于对哈希算法的研究与应用(7页珍藏版)》请在金锄头文库上搜索。
1、 关于对哈希算法的研究与应用关于对哈希算法的研究与应用摘要:随着科学技术的不断发展,许多新的算法在各个领域中有了进一步的应用,其中技术较为先进的哈希算法,以其独特的计算方式受到了广泛的应用。本文主要从哈希算法的定义、特点、原理、应用等方面展开了深入的研究,供大家讨论研究。关键词:哈希算法;含义;原理;方式;应用the research and application of the hash algorithmhuang yunke,xin xiaolong,li chenglong,li yumin(department of mathematics, northwest university
2、, xian 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 def
3、inition, characteristics, principles and applications, in-depth study for discussion study.keywords: hash algorithm; meaning; principle; way; application一、哈希算法的含义哈希的英文名为 hash,意思为散列,它将任意长度的二进制值对应为固定长度的二进制值,这个值就是我们所要说的哈希值。哈希值的输出空间一般要比输入空间小很多,不一样的输入也会哈希成相同的输出。在哈希一段明文中,如果改变明文中的内容,会导致散列产生不一样的结果,如果要想找到哈希为
4、同一个数值的不同的输入内容,是无法通过各种算法来实现的,因此我们可以利用散列值的这一特点来检验数据的完整性。哈希算法就是将哈希值的输出,它是用来形成某些数据消息或会话内容片段的散列值的计算方法。较为先进合理的哈希算法,可以通过对散列输入数据进行修改时,可以更改结果散列值中的所有位,所以散列对于数据的检测有很好的作用。哈希算法的方式很多,现在普遍在采用的方法有以下几种,分别为:md2、md4、md5 和安全哈希算法(sha-1)。哈希表也叫做散列表,它根据已经设定好的哈希算法和处理数据问题的计算方式,将关键码值映射到一个有限的位置空间中,并关键码值的空间位置中的象,作为存储点,这种存放记录的数组
5、形成的表叫做哈希表。这种对应的映射函数叫做哈希函数。在算法中所得到的存放空间就是哈希地址,也叫做散列地址。二、哈希算法的原理哈希算法的原理是根据数据帧的散列值服务器数计算出余数,通过这种方法来确定目前数据帧中的内容将会发向哪一个散列值服务器。实际上也可以说就是集合之间所产生的彼此对应的关系,相当于在一个集合内的一个数据帧映射到另一个集合内所对应的那个数据帧的过程。在这个过程中也会涉及到一个哈希算法的分布问题。哈希表的工作原理就是把一个数据帧按照某一种设定好的算法,比如说散列算法,将其转换为数字的形式,将这些数字对数组长度进行余数计算,取其余数,将结果作为该数组的下一个标记,将数值进行存储,并将
6、其存储在这个数字下标下的数组空间内。如果发出有关哈希表的查询命令后,就可以使用散列函数将数据帧转换成其标记下对应的数组,从而从该空间内取得相应的散列值。散列表根据输入数值的变化而不断发生变化。因此,我们可以充分利用哈希算法中的数组定位功能来确定相应的数据位置。由于哈希算法的这一功能,可以快速的完成查找任务,这要同线性数据结构与表格、队列等计算方法相比速度已经有了很大的提升。三、哈希算法的方式(一)md4 算法md4 算法是哈希算法中较为成熟的算法之一,它是由现任麻省理工学院(mit)电子和计算机科学系 viterbi 讲座教授 ronald l. rivest 在上个世纪九十年代出创造出来的一
7、种哈希算法方式。md是指消息摘要的意思,是 message digest 的缩写。它一般使用在32 位的计算机处理器模块内,通过软件系统来实现其算法功能。md4 算法在计算过程中需要及时填补有关 message digest 来保证message digest 的 bit 位长度加上 448 后能够被 512 进行整除,之后,通过 64 位的二进制 message digest 被填补进来,将信息制定为 512bit,并且每个部分都需要通过以上方式进行处理。由于 md4 本身存在安全性的问题,当时推出后,就曾被某些人进行了破译,对 md4 中的第一步和第三步中存在的问题进行了攻击,例如,曾经
8、dobbertin 向公众演示,他通过一台计算机在几分钟内就找到了 md4 中存在的漏洞,使通过 md4 加密的不同内容,得到了相同的加密结论。但是就整个 md4 算法来说并没有完全的被破译,在此之后 ronald l. rivest 对 md4 中存在的漏洞进行了修补与改进。然而,由于 md4 本身存在的安全性漏洞,还是被更为先进安全的算法所淘汰。但 md4 算法为之后的 md5 算法、sha-1 算法、ripemd 算法等提供了很好的理论基础。(二)md5 算法md5 算法是 md4 算法的升级版,也是由 ronald l. rivest 开发研制出的一种哈希算法方式。它与 md4 算法相
9、比安全性有了很大的提升,它在 md4 的基础上增加了 safety-belts 功能,使整个算法变得更加可靠。md5 的输入方式与 md4 相同,还是保持了原理的512bit 的分组形式,它的输出方式是通过四个 32bit 的连接形式。md5 在 md4 的基础上加入了第四轮的计算模式,每一个步骤都是一一对应的固定值,改进了 md4 中在第二轮、第三轮计算中的漏洞,完善了访问输入分组的次序,从而减小其对称性和相同性。通过这些变化,使得 md5 与 md4 相比变得复杂很多,整个运转速度也要比 md4 慢一些,但是从整体安全性、抗冲突和抗分析方面有了很大的提高。(三)sha1 算法sha1 算法
10、是由美国国家标准与技术研究院美国国家安全局设计出来的,主要是通过与 dsa 算法配合在一起使用。sha1 算法也叫做安全哈希算法,主要应用于 digital signature standard dss里面定义的数字签名算法。sha1 算法长度一般为 160bit 的message digest,sha1 在接收消息摘要的过程中,可以利用message digest 来检查数据的完整情况。它不会从 message digest 中还原相关的内容,此外两个不同的 message digest 不会产生相同的 message digest,因此 sha1 具有很强的 brute-force性能。s
11、ha1 的计算方式是基于 md4 的算法原理,它的填补和分组模式与 md5 是一样的,但是在算法中,sha1 的非线性函数、循环左移运算和加法常数与 md5 的运算方式有一定的差异,sha1 的安全性和稳定性比 md5 算法更加可靠,且运算速度也有了一定的提高。四、哈希算法的应用(一)数字签名方面的应用哈希算法是现阶段较为先进的加密算法之一,在数字签名方面经常会应用到这一技术。在数字签名过程中,首先要确定出双方认同的哈希算法和签名的方式,签名的一方先要计算出数据文件的哈希值,然后利用哈希值进行非对称算法,得到数字签名。对方在检查签名的过程中,对这条数据信息进行哈希计算,对签字方的哈希值进行比对
12、,比对的方法也是利用非对称算法进行验证。(二)校对信息方面的应用在对文件信息校对的过程中使用最多、最为普遍的算法就是哈希算法,其中以 md5 算法最为常见。因为 md5 算法在信息校对中具有奇偶校验法和循环冗余码校验无法比拟的优势,即具有防止对数据进行篡改的能力,有效的阻止了黑客或其他人员对相关数据文件内容进行恶意的修改和破坏,保证了数据的正确性。五、结语总之,哈希算法是目前较为先进的加密算法,它以其单向性、抗冲突性、映射分布均匀性和差分分布均匀性等特点,广泛应用于工业、商业等各个领域之中,但是由于其内部结构还存在很大的发展性,有待于相关技术人员对其进行更深一步的拓展,使其发挥出更好的作用。参考文献:1王勇平.哈希算法的研究与发展.北京.创新出版社,2003(1)2李洪山.浅谈 md5 算法的探究与开发.电子技术书刊,2004(01)3刘温筠.关于对 sha1 算法的分析与研究.河北文化出版社,2002(11)4孙清泉,徐卫国,康健.关于对哈希表的理解与探讨.现代教育出版社,2008,1