• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

消息认证码与哈希算法的区别

1、Hash的定义

Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的理解就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

2、MAC的定义

消息认证码(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。安全性依赖于Hash函数,故也称带密钥的Hash函数。消息认证码是基于密钥和消息摘要所获得的一个值,可用于数据源发认证和完整性校验。

3、两者的区别

通过定义可以发现MAC是通过MAC算法+密钥+消息生成的。MAC算法有很多种。我们常用的Hash算法,有MD5、SHA等。而用这些Hash算法作为MAC算法,通过计算得到的MAC值,也就是HMAC,所以MAC与HMAC没有太大差别。

Hash与MAC的区别,Hash只能保证消息的完整性,MAC不仅能够保证完整性,还能够保证真实性。比如A想给B发送一条消息,A需要把消息内容和对应的消息摘要都发给B;B通过同样的摘要算法计算摘要,就可以知道消息是否被篡改。此时如果攻击者C将A发送的原始消息和摘要都篡改成新的消息和摘要,那么这个消息对B来说也是完整的,只不过不是A发的。而MAC含有密钥这个种子(只有A和B知道),如果A将消息内容和MAC发给B,虽然C是仍然可以修改消息内容和MAC,但是由于C不知道密钥,所以无法生成与篡改后内容匹配的MAC。

全部回复(20)
正序查看
倒序查看
2021-08-11 10:04

Hash和MAC哪种更安全可靠呢?

0
回复
2021-08-11 11:48

个人感觉应该是MAC更安全可靠吧,因为文中说到Hash只能保证消息的完整性,MAC不仅能够保证完整性,还能够保证真实性。

0
回复
liaqi333
LV.4
4
2021-08-11 13:04

MAC相对安全些,攻击者可以篡改消息内容,但无法生成与篡改后内容相匹配的MAC

0
回复
2021-08-11 14:19

还有1个区别在于MAC通常有瞬时性的,即认证只在当时有效。

0
回复
2021-08-11 17:13

Hash的特点是什么呢?

0
回复
2021-08-11 17:18
@dy-XNr9wSrQ
Hash的特点是什么呢?

算法是公开的,对相同数据运算,得到的结果是一样的;对不用数据运算,如MD5得到的结果都是32个字符长度的字符串;没法逆运算。

0
回复
2021-08-11 17:27

mac无法解决的问题有哪些?

0
回复
liaqi333
LV.4
9
2021-08-12 09:29
@我心痛了
mac无法解决的问题有哪些?

消息认证码中由于发送者和接收者共享相同的密钥,因此会产生无法对第三方证明以及无法防止否认等问题。

0
回复
Nic_浩
LV.4
10
2021-08-12 11:46

Hash与MAC可以同时应用在一起吗?

0
回复
DY20171215
LV.4
11
2021-08-12 13:45
@Nic_浩
Hash与MAC可以同时应用在一起吗?

可以一起用,Hash只能保证消息的完整性,MAC不仅能够保证完整性,还能够保证真实性,MAC更像是一种加密算法,对数据传输时不被篡改进行了保护

0
回复
2021-08-12 16:54

楼主能再讲的详细一点吗?MAC怎么是带密钥的hash函数呢?

0
回复
liaqi333
LV.4
13
2021-08-12 17:03
@我心痛了
楼主能再讲的详细一点吗?MAC怎么是带密钥的hash函数呢?

其实消息认证码MAC是带密钥的,构造方法上通常基于Hash算法,比如HMAC。MAC码也可以看作是带密钥的Hash函数。

0
回复
dy-98AYH6wr
LV.4
14
2021-08-12 21:41

不错学习了,讲的比较清晰,哈希算法作为其他复杂算法的中间层用的还是非常多的。

0
回复
dy-XNr9wSrQ
LV.2
15
2021-08-13 09:00

也就是说MAC可以同时保证完整性和认证,很不错收藏了。

0
回复
2021-08-13 09:43

这样做是很安全了,但是,是不是操作难度和繁琐程度提高了啊?

0
回复
2021-08-13 17:06

从文中来看,MAC实用又安全

0
回复
pinbo200808
LV.4
18
2021-08-13 17:08

哈希算法技术好先进,相信在各个领域运用都有安全保障。

0
回复
Nic_浩
LV.4
19
2021-08-13 17:10

看来MAC还是比较重要的,那么请问加密芯片哪家好?性价比更高呢

0
回复
2021-08-13 17:13

楼上上网搜一下LKT吧,国产芯片他家性价比还是很高的

0
回复
dy-98AYH6wr
LV.4
21
2021-08-13 20:56
@YXG_2134561235
楼上上网搜一下LKT吧,国产芯片他家性价比还是很高的

是的,凌科家芯片你们可以试试,有一对一的技术服务,专业做加密芯片十余年呢。

0
回复