Hash函数译为哈希函数,又称散列函数。是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出的值称为散列值或消息摘要。简单来说就是一种将任意长度的输入消息压缩成某一固定长度的消息摘要的函数。
它具备以下的性质(哈希函数所必须的性质):
- H可应用于任意大小的数据块。
- H产生定长的输出。
- 对任意给定的x,计算H(x)比较容易,用硬件和软件均可以实现。
出于安全性考虑,对哈希函数的三个安全性假设:
- 对任意给定的散列值h,找到满足H(x)=h的x在计算上是不可行的,称之为单向性。
- 对任意给定的分组x,找到满足y≠x,且H(x)=H(y)的y在计算上是不可行的,称之为抗弱碰撞性。
- 找到任何满足H(x)=H(y)的偶对x=y在计算上是不可行的,称之为抗强碰撞性。
满足这三个安全性假设的安全Hash函数称作碰撞稳固的Hash函数。