随着科学技术的不断发展,许多新的加密算法在各个领域中有了进一步的应用,其中技术较为先进的便是哈希加密算法,哈希加密算法以其独特的计算方式受到了广泛的应用。
一、哈希加密算法的原理
哈希加密算法的原理是根据数据帧的散列值服务器数计算出余数,通过这种方法来确定目前数据帧中的内容将会发向哪一个散列值服务器。实际上也可以说就是集合之间所产生的彼此对应的关系,相当于在一个集合内的一个数据帧映射到另一个集合内所对应的那个数据帧的过程。在这个过程中也会涉及到一个哈希加密算法的分布问题。
哈希表的工作原理就是把一个数据帧按照某一种设定好的算法,比如说散列算法,将其转换为数字的形式,将这些数字对数组长度进行余数计算,取其余数,将结果作为该数组的下一个标记,将数值进行存储,并将其存储在这个数字下标下的数组空间内。如果发出有关哈希表的查询命令后,就可以使用散列函数将数据帧转换成其标记下对应的数组,从而从该空间内取得相应的散列值。散列表根据输入数值的变化而不断发生变化。
因此,我们可以充分利用哈希加密算法中的数组定位功能来确定相应的数据位置。由于哈希加密算法的这一功能,可以快速的完成查找任务,这要同线性数据结构与表格、队列等计算方法相比速度已经有了很大的提升。
二、常见的哈希加密算法
1、MD4加密算法
MD4加密算法是哈希加密算法中较为成熟的算法之一。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加密算法等提供了很好的理论基础。
2、MD5加密算法
MD5加密算法是MD4加密算法的升级版,它与MD4加密算法相比安全性有了很大的提升,它在MD4的基础上增加了safety-belts功能,使整个算法变得更加可靠。
MD5的输入方式与MD4相同,还是保持了MD4原理的 512bit 的分组形式,它的输出方式是通过四个 32bit的连接形式。MD5在MD4的基础上加入了第四轮的计算模式,每一个步骤都是一一对应的固定值,改进了MD4中在第二轮、第三轮计算中的漏洞,完善了访问输入分组的次序从而减小其对称性和相同性。通过这些变化,使得MD5与MD4相比变得复杂很多,整个运转速度也要比MD4慢一些但是从整体安全性、抗冲突和抗分析方面有了很大的提高。
3、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算法更加可靠,且运算速度也有了一定的提高。
三、哈希加密算法的应用
1、数字签名方面的应用
哈希加密算法是现阶段较为先进的加密算法之一,在数字签名方面经常会应用到这一技术。
在数字签名过程中,首先要确定出双方认同的哈希算法和签名的方式,签名的一方先要计算出数据文件的哈希值,然后利用哈希值进行非对称加密算法,得到数字签名。对方在检查签名的过程中,对这条数据信息进行哈希计算,对签字方的哈希值进行比对,比对的方法也是利用非对称算法进行验证。
2、校对信息方面的应用
在对文件信息校对的过程中使用最多、最为普遍的算法就是哈希加密算法,其中以MD5加密算法最为常见。因为MD5加密算法在信息校对中具有奇偶校验法和循环冗余码校验无法比拟的优势,即具有防止对数据进行篡改的能力,有效的阻止了黑客或其他人员对相关数据文件内容进行恶意的修改和破坏,保证了数据的正确性。
总之,哈希加密算法是目前较为先进的加密算法,它以其单向性、抗冲突性、映射分布均匀性和差分分布均匀性等特点,广泛应用于工业、商业等各个领域之中,但是由于其内部结构还存在很大的发展性,有待于相关技术人员对其进行更深一步的拓展,使其发挥出更好的作用。
小知识之哈希:
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。