"); //-->
消息认证码与哈希算法的区别
(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。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
一种新能源租赁车防盗系统控制方案
国民技术N32G032算法库使用指南
STC89C51与AT89S51有什么区别?
Hummingbird加密算法的硬件架构设计
基于状态机和流水线技术的3DES加密算法及其FPGA设计
物联网的密码资产保护
混沌加密技术技术详解和设计实现
量子时代怎么保证数据安全?美国公布四项备选加密算法
数据加密中的DES加密算法详解
基于状态机和流水线技术的3DES加密算法及其FPGA设计
利用汇编语言实现DES加密算法
单片机汇编语言实现DES加密算法
DES加密算法的VHDL和VERILOG源程序
意法半导体推出后量子密码加密解决方案,为嵌入式系统带来量子攻击防御能力
加密算法之MD5算法
AES加密算法的高速低功耗ASIC设计