首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CBC加密+ CBC MAC重用MAC中的密钥-然后加密

CBC加密+ CBC MAC重用MAC中的密钥-然后加密
EN

Cryptography用户
提问于 2020-05-02 11:19:32
回答 1查看 944关注 0票数 2

我正在阅读应用密码学手册由‎阿尔弗雷德J.梅内泽斯等人。特别是,在MAC-然后加密结构中重用密钥用于CBC加密和CBC。

我的问题是:在MAC-然后加密结构中,教科书的p.367状态

例如( CBC-MAC和CBC加密的不适当组合)考虑使用方程\big(\ C'=E_k(x\mathbin\|h_{k'}(x))\ \big)的数据完整性机制,其中E_k为CBC-加密,密钥k和初始化向量IV\ h_{k'}(x)为CBC-MAC与k'IV'k=k'IV=IV'。然后,数据x=x_1\mathbin\|x_2\mathbin\|\ldots\mathbin\|x_t可以在单个CBC传递中进行处理,因为CBC-MAC等于最后一个密文块c_t=E_k(c_{t−1}\oplus x_t),而最后一个数据块是x_{t+1}=c_t,从而产生最终的密文块c_{t+1}=E_k(c_t\oplus x_{t+1})=E_k(0)。因此,加密的MAC不依赖于明文和密文,这使得完整性机制完全不安全。因此,在将MAC与加密方案结合起来时,应该小心。通常,建议使用不同的(理想情况下是独立的)键。

为什么MAC是独立于明文和密文的问题?是否有攻击者可以利用这一事实的实例?(我知道MAC-然后加密结构易受填充甲骨文攻击.但是,在这种情况下,攻击者可以执行实际的攻击。)我认为加密的MAC部分总是导致0被加密,但是没有实用的方法来利用这个事实。难到不是么?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2020-05-03 07:09:18

为什么需要注释加密的MAC部分是不变的?

对于问题中的方案,在具有正确MAC的密码中,加密消息的最后一个块是常量。重要的是,这是双向的:如果加密消息的最后一个块是常量,那么MAC是正确的,任何被解密的明文都将通过MAC测试。

这允许伪造:对手可以观察一条加密消息,获取该常量,然后伪造加密消息,在解密后通过MAC检查。这有悖于确保(解密)信息完整性的目的。

我们将安全加密和安全MAC (恒定消息长度)结合在一起,得到了不安全的组合(w.r.t )。(MAC的目标)因为我们没有遵循这样的原则:密钥只能用于一个目的(或者:一种用法,一种密钥)。

在上下文中,这比让垃圾通过MAC检查更糟糕: CBC加密足够灵活,对手可以部分选择解密的明文。例如,对于一个已知已久的明文,它们可以复制/粘贴大段密文,在块边界上剪切,这对于解密的明文也是如此,尽管每次剪切后都会有一个垃圾块。另一个例子(可以组合):敌手可以将任意选择的值放在解密的明文中,将其放置在一个密文块中,然后是最后一个块E_k(0)的副本。

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

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

复制
相关文章

相似问题

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