索罗笔记-信息安全工程师-2.4 Hash函数

Hash函数

Hash函数将任意长度的报文M映射为定长的Hash码h

      h=H(M)

Hash码也称作报文摘要,他是所有报文位的函数,Hash函数可以提供保密性、报文认证以及数字签名功能。

Hash函数满足的性质:

1、单向性

2、抗弱碰撞性

3、抗强碰撞性

Hash函数常用的有MD5、SHA-1(安全Hash算法)算法、SM3算法、HMAC算法

MD5算法

MD5算法,消息分组长度为512bit 产生128bit的摘要

SHA算法

SHA(安全Hash算法),其输入为长度小于2^64位报文,输出为160bit的报文摘要,该算法对输入按512位进行分组,并以分组为单位进行处理。

SM3算法

SM3算法是对长度<2^64位的消息M,经过 填充和迭代压缩,生成长度为256位的消息摘要。

HMAC算法

MAC(消息认证码)是消息内容和秘密钥的公开函数,其输出是固定长度的短数据块。

Hash函数不使用密钥,不能直接用于MAC。因为,发送的消息M和hash结果h(M),一旦被截获,就能直接被攻击者伪造。变成M1 和 h(M1)发送出去。

HMAC(Hash消息认证码)以一种基于密钥和散列函数进行消息认证的方法。他要求通信双方共享密钥、约定算法、约定报文Hash运算(如MD5、SHA 、SM3等)

yantaisolo

作者 yantaisolo