0


消息认证码和单向散列函数

因为在上一部分没有解释这两个概念,所以在这里详细解释一下

消息验证码和单向散列函数是进行消息身份验证的两个方法

而且他俩都属于“没有消息加密的消息身份验证”

消息认证码(MAC)

在密码学中,消息认证码(英语:Message authentication code,缩写为MAC),又译为消息鉴别码文件消息认证码讯息鉴别码信息认证码,是经过特定算法后产生的一小段信息,检查某段消息的完整性,以及作身份验证。它可以用来检查在消息传递过程中,其内容是否被更改过,不管更改的原因是来自意外或是蓄意攻击。同时可以作为消息来源的身份验证,确认消息的来源。

总而言之,是在原有的消息上增加一块信息,以此来检查消息完整性和进行身份验证

了解完概念之后,再来具体解释一下该方法的操作流程

下图是使用消息认证码进行消息认证的方法图

假设两个通信方(例如A和B)共享一个公共密钥K。

对于发送方A

  • 当A有消息要发送给B时,它根据消息和密钥计算消息认证码:MAC=F(K,M)
  • 再将消息与消息认证码相结合,结合后的结果传输给B

对于接收方B

  • 当B接收到消息后,先将消息和消息认证码分开
  • 使用相同的密钥对接收到的消息执行相同的计算,以生成新的消息认证码
  • 再将新生成的消息认证码与收到的消息认证码进行对比

这一块我相信都能理解,不理解就反复观看

如果我们假设只有接收方和发送方知道密钥的身份,并且如果接收到的码与计算出的码匹配

那么以下语句适用(三个确信):

  • 接收者确信消息没有被更改.如果攻击者更改了消息但没有更改代码,那么接收方对代码的计算将与接收到的代码不同。由于假定攻击者不知道密钥,因此攻击者无法更改代码以响应消息中的更改
  • 接收方确信该消息来自所谓的发送方.因为没有人知道密钥,所以没有人可以用正确的代码准备消息
  • 接收方确信该消息序列号正确.如果消息包含序列号(如HDLC和TCP使用的序列号),则可以确保接收方正确的序列,因为攻击者无法成功更改序列号.

总而言之,只要攻击者不知道密钥,我们就能保证消息未被更改/来源真实/序列号正确

许多算法可以用来生成认证码,NIST规范和FIPS PUB 113建议使用DES.DES用于生成消息的加密版本,密文的最后位数用作认证码码.一般用16位或32位认证码

这个过程与加密相似,但是有区别.其中一个区别在于身份认证算法不需要是可逆的.另外由于身份验证函数的数学性质,它比加密更不易被破坏。

单向散列函数(One-Way Hash Function)

与消息认证代码一样,散列函数接受可变大小的消息M作为输入,并产生固定大小的消息摘要H(M)作为输出。与MAC不同,哈希函数不接受密钥作为输入。为了验证消息,消息摘要与消息一起发送,以确保消息摘要是真实的。

下图说明了对消息进行身份验证的三种方式。

首先是a和b

使用常规加密对消息摘要进行加密(a部分):如果假设只有发送方和接收方共享加密密钥,则保证了真实性。

使用公钥加密对消息摘要进行加密(b部分):第3.5节会对此进行了解释。公钥方法有两个优点:(1)它提供数字签名和消息认证。(2) 它不需要向通信方分发密钥。

解释一下过程:

  • 散列函数接受可变大小的消息M作为输入,生成信息摘要H(M)
  • 然后对信息摘要进行加密,将消息与加密后的信息摘要结合,进行传输
  • 接受者收到后,再次用M生成信息摘要H(M)2
  • 并且对传输过来加密后的信息摘要进行解密,得到原来的信息摘要H(M)
  • H(M)与H(M)2进行对比

与加密整个消息的方法相比,这两种方法还具有一个优点,即需要更少的计算。

然而,人们对开发一种完全避免加密的技术很感兴趣。[TSUD92]中指出了这种兴趣的几个原因:

  1. 加密软件非常慢。即使每条消息要加密的数据量很小,也可能有稳定的消息流进出系统。
  2. 加密硬件成本是不容忽视的。DES的低成本芯片实现是可用的,但如果网络中的所有节点都必须具有这种能力,成本就会增加
  3. 加密硬件仅对大数据进行了优化。对于小数据块,很大一部分时间用于初始化/调用开销。
  4. 加密算法可能受到专利保护。

那么接下来就是图c了

图c是一种使用散列函数但不加密消息身份验证的技术

讲一下具体过程:

我觉得我讲不出来,就画了张图,简单明了

注意⚠️:由于未发送密钥值S本身,攻击者不可能修改截获的消息。只密钥值值保持机密,攻击者就不可能生成错误消息。

第三种技术的变体,称为HMAC,是用于IP安全的技术(第9章会讲);它也被指定用于SNMPv3(第13章会讲)。

那么你学会了吗????

标签: 密码学 安全

本文转载自: https://blog.csdn.net/KFANGS/article/details/128062254
版权归原作者 方道渊 所有, 如有侵权,请联系我们删除。

“消息认证码和单向散列函数”的评论:

还没有评论