MD(消息摘要)、MAC(消息认证码)、数字签名的区别

MD是消息摘要,用于验证数据完整性,而MAC(消息认证码)增加了密钥,确保数据来源的真实性。HMAC是基于散列的MAC,提供额外的安全层。数字签名通过公钥体制提供不可抵赖性,防止伪造。
摘要由CSDN通过智能技术生成

MD(消息摘要)、MAC(消息认证码)、数字签名的区别

1.MD(消息摘要)-散列算法

摘要是哈希值,我们通过散列算法⽐如MD5算法就可以得到这个哈希值。摘要只是⽤于验证数据完整性和唯⼀性的哈希值,不管原始数据是什么样的,得到的哈希值都是固定长度的。

不管原始数据是什么样的,得到的哈希值都是固定长度的,也就是说摘要并不是原始数据加密后的密⽂,只是⼀个验证⾝份的令牌。所以我们⽆法通过摘要解密得到原始数据。

2.MAC(消息认证码)

hash算法只能验证数据的完整性,不能防⽌数据被篡改。⽐如:遇见中间⼈攻击,你会发现攻击者对消息进⾏篡改了,但是通过hash算法计算摘要值,你是⽆法知道消息被改动过的。因此这个时候就需要MAC算法了。

MAC值 = mac(消息+密钥)

MAC的特点

跟hash算法⼀样,可以验证数据的完整性。可以验证数据确实是由原始发送⽅发出的。
MAC值⼀般和原始消息⼀起传输,原始消息可以选择加密,也可以选择不加密,通信双⽅会以相同的⽅式⽣成MAC值,然后进⾏⽐较,⼀旦两个MAC值相同表⽰MAC验证正确,否则验证失败。

在这里插入图片描述
消息认证码与消息摘要类似,区别是消息摘要算法只是对数据作摘要计算,而消息认证码涉及到加密过程。

通信双方A和B,共享密钥K。若A向B发送消息时,则A计算MAC,它是消息和密钥的函数,即MAC = C(K,M) 其中,M为输入消息,C为MAC函数,K为共享的密钥,MAC为消息认证码。消息和MAC一起发送给接收方。接收方收到消息后,用相同的密钥进行相同的计算,得到新的MAC,并将接收到的MAC与其计算出的MAC比较。

mac工作原理
在这里插入图片描述

  • A与B共享一个对称密钥K,别人是不知道的。A使用K通过MAC函数计算出消息M的MAC值H1
  • A将消息M和H1发给B
  • B收到M,也用K通过MAC函数对M求出MAC值H2
  • B比较H1和H2。如果相等,表明消息M没有被中途改变。

计算MAC与加密过程非常相似,但有一个重要不同,在对称加密过程中,加密过程是可逆的,但在MAC中,发送方与接收方只进行加密过程。因此MAC算法不需要可逆,只要是单向函数(加密)就可以了。

2 HMAC(基于散列的消息认证码)

Hash-bases Message Authentication Code。简单理解就是为计算MAC值设计的一个MAC函数。

HMAC的基本思想是复用MD5与SHA-1之类现有的消息摘要算法。HAMC利用消息摘要算法,把消息摘要看成一个黑盒子,用共享密钥加密消息摘要,从而得出MAC。

在这里插入图片描述

3.数字签名

MAC不能保证消息的不可抵赖性,⽽数字签名可以保证。因为数字签名使⽤的是公钥密码体制,私钥只有你⾃⼰才知道;⽽MAC使⽤对称加密,既然⼀⽅能够验证你的MAC,就能够伪造你的MAC,因为发送⽅和接收⽅的秘钥是⼀样的。当然如果你在MAC中绑定⼀些关键信息,并通过某些⼿段,让⼀⽅只能⽣成MAC,另⼀⽅只能验证MAC,其实也是可以实现签名效果的。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绛洞花主敏明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值