哈希算法简介
Hash算法,或密码学Hash函数,是密码学应用的重要组成部分。Has函数由于其压缩特性,常用于消息的核实和认证。Hash函数是区块链技术中加密的关键技术。
一、Hash函数的定义
Hash函数又称为杂凑函数、哈希函数或散列函数,其功能是将一串任意长度的消息映射为一个较短的固定长度的输出串。该固定长度的输出串与初始消息的所有比特相关,通常称该输出串为消息的Hash值。
Hash函数通常用来构造数据的“数字指纹”,以验证传输数据的完整性。对于特定的数据来说,它的Hash值是惟一的,一旦数据发生变化,对应的“数字指纹”也会发生变化。因此,通过对“数字指纹”的验证就能确认数据的完整性。
1、Hash函数的定义
设M为所有可能消息m的集合,Y为所有可能的消息摘要y构成的有限集,则把从M到Y的映射
H:M→Y
称为Hash函数。在以上的定义中。M为无限集,Y为有限集。
2、Hash函数的性质
Hash函数必须满足以下性质:
(1)输入消息的长度没有限制,Hash函数应能作用于任何大小的数据分组。
(2)压缩性:Hash函数作用于任意长度的消息后得到固定长度的输出。
(3)正向计算简单性:对任意给定消息m,计算y=H(m)比较容易,适合于软、硬件快速实现。
(4)雪崩性:对任意给定的消息m,消息摘要y=H(m)与m每一比特信息高度相关,只要改变m的任意一个比特,摘要值就会发生显著的改变。
(5)单向性:对任意给定的消息摘要y=H(m),找到满足y=H&#