首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于消息认证的哈希函数中的位翻转攻击

用于消息认证的哈希函数中的位翻转攻击
EN

Cryptography用户
提问于 2023-05-31 12:28:58
回答 1查看 47关注 0票数 2

在这张图中,我们使用哈希函数进行消息身份验证。

M是明文消息。H是散列函数。E是具有K对称密钥的加密块。将明文M与输出E.

,这是真的,这是容易受到比特翻转攻击吗?我不知道怎么做。

,这就是他们对我说的话:

您对加密的哈希进行翻转操作,其方式就像您希望散列是简单的那样:

  1. 您有明文消息和加密的哈希。
  2. 如果在明文散列和加密散列之间进行xor,则得到"X“,如果解密,则所有字节都为0。
  3. 因此,首先用正确的散列翻转位,然后用恶意散列翻转

,但是2和3对我来说绝对不清楚:

  1. 为什么如果我在明文哈希和加密哈希之间进行xor,那么如果解密就会得到0?
  2. 我该做什么?为什么现在要这么做呢?我想要的是散列?
EN

回答 1

Cryptography用户

回答已采纳

发布于 2023-06-01 07:31:30

我相信一个反例可以导出如下:假设您的加密方案是一个一次性垫,那么您就有了E(K, M) = K \oplus M。在您的方案中,输出是(M, E(K, H(M))) = (M, K \oplus H(M))。然后,注意到对手可以将消息\hat{M} \neq M身份验证为:

(\hat{M}, \underbrace{(K \oplus H(M))}_{\text{original tag}} \oplus H(M) \oplus H(\hat{M})) = (\hat{M}, K \oplus H(\hat{M}))= (\hat{M}, E(K, H(\hat{M})).

这是对步骤2和步骤3的一种解释,并可能推广到其他对称加密方案(一次填充之外)。关于通用身份验证技术的详细说明,我建议阅读骨首的第9.4章。

票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/106677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档