专栏中心

EEPW首页 > 专栏 > 消息认证码与哈希算法的区别

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

发布人:hanini 时间:2021-08-10 来源:工程师 发布文章

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

1Hash的定义

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

2MAC的定义

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

 

(3)两者的区别

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

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

 


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

关键词: 加密算法

相关推荐

一种新能源租赁车防盗系统控制方案

STC89C51与AT89S51有什么区别?

Hummingbird加密算法的硬件架构设计

基于状态机和流水线技术的3DES加密算法及其FPGA设计

物联网的密码资产保护

混沌加密技术技术详解和设计实现

量子时代怎么保证数据安全?美国公布四项备选加密算法

数据加密中的DES加密算法详解

基于状态机和流水线技术的3DES加密算法及其FPGA设计

资源下载 2009-04-22

利用汇编语言实现DES加密算法

单片机汇编语言实现DES加密算法

DES加密算法的VHDL和VERILOG源程序

意法半导体推出后量子密码加密解决方案,为嵌入式系统带来量子攻击防御能力

加密算法之MD5算法

AES加密算法的高速低功耗ASIC设计

EDA/PCB 2012-10-10
更多 培训课堂
更多 焦点
更多 视频

技术专区