信息安全中MAC和哈希函数的区别是什么?


MAC

MAC 代表消息认证码。它也被定义为标签。它可以用来认证消息的来源和特征。MAC 需要认证密码学来检查通过网络发送或从一个人转移到另一个人的信息的合法性。

MAC 是通过对消息使用密钥安全哈希函数创建的。它可以用来提供消息的完整性,这样如果使用 MAC 保护的消息被篡改,就可以通过比较消息中包含的 MAC 和重新计算的 MAC 来识别它。

消息认证码通常需要创建任何类型的财务账户。银行、经纪公司、信托机构以及一些其他提供在线访问的存款、投资或保险机构可以使用这些代码。它们是金融密码学的重要组成部分。

MAC 也称为带密钥的哈希。尽管 HMAC 和 KMAC 是基于基本哈希函数的带密钥的哈希,而 AES-CMAC 是依赖于 AES 分组密码的哈希(如名称所示),但 MAC 可能也可能不是从哈希函数生成的。

消息认证码也是单向的,但需要理解密钥和消息才能生成 MAC 值。因此,它们可以用来支持消息完整性和消息真实性,就像确保签名中的单向哈希一样。

对于另一方或各方检查 MAC,他们当然也需要相同的(因此是对称的)密钥。这也定义了他们可以自己生成认证标签;实现验证的各方需要特定的信任级别。

哈希函数

单向哈希函数是一个函数,通过执行计算,它无法接收有关输入消息的任何数据。通常,单向哈希函数被称为密码学安全的哈希函数。例如 SHA-256 和 SHA-512 以及其他 SHA-2 派生函数,以及预期中的下一代 SHA-3 哈希系列。

MD5 和 SHA-1 也是单向哈希函数。它们不再被认为是安全的,因为可以生成哈希冲突。哈希函数可以用来支持消息完整性和真实性,但哈希的值应该被信任。

因此,攻击者只能对不同的消息进行哈希运算,并使用该哈希运算来恢复原始哈希。这种信任可以通过私钥计算(签名)来支持。另一种方法是在受信任的站点上存储哈希,以便它可以检查放在镜像上的文件的完整性。

更新于: 2022年3月14日

14K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告