|
哈希函数也称单向散列函数,其主要用途是消息完整性检测和数字签名。使用哈希函数,可以获取消息的“指纹”,通过对比“指纹”,能够知道两条消息是否一致,就可以检查消息的完整性,判断消息是否被篡改。 哈希函数接受一个消息作为输入,产生一个称为哈希值的输出,也可称之为散列值、消息摘要。更准确地说,哈希函数是将任意有限长度比特串映射为固定长度的串,形式如下: h=H(M) 其中,M是变长的报文,h是定长的散列值。设x和x1是两个不同的消息,如果h(x)=h(x1),则称x和x1是哈希函数h的一个碰撞。对于任意给定的x,H(x)的计算相对简单(易于软硬件实现)。安全的哈希函数需要满足以下性质: 1.单向性。对于任意给定的码h,寻求x使得h(x)=h在计算上是不可行的。 2.弱碰撞性。任意给定分组x,寻求不等于x的y,使得H(y)=H(x)在计算上不可行。 3.强抗碰撞性。寻求任何的(x,y)对,使得H(x)=H(y)在计算上不可行。 目前,常用的哈希函数有MD5和SHA-1: 1.MD5算法:消息摘要算法(RFC1321),由Ron Rivest提出,该算法以一个任意长的消息作为输入,输出128位的消息摘要。 2.SHA-1算法:安全Hash算法(Secure Hash Algorithm,SHA),由美国标准与技术研究所设计并于1993年作为联邦信息处理标准(FIPS 180)发布,修改版于1995年发布(FIPS 180-1),通常称之为SHA-1。SHA-1算法的输入是长度小于2的64次方的任意消息x,输出160位的散列值。 【出处】朱胜涛,温哲,位华,张晓菲, 沈传宁.注册信息安全专业人员培训教材.北京师范大学出版社,2019年5月第1版.
|