首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么CBC-MAC在每一步都加密?

为什么CBC-MAC在每一步都加密?
EN

Cryptography用户
提问于 2019-04-16 13:54:44
回答 1查看 162关注 0票数 1

考虑到CBC-MAC为:

\qquad H_0 = IV = 0
\qquad H_i = E_k(P_i \oplus H_{i-1})
\qquad MAC = H_n

使这种“安全”(较少暴露于失败)的属性是什么,而不是仅仅:

\qquad H_0 = IV = 0
\qquad H_i = P_i \oplus H_{i-1}
\qquad MAC = E_k(H_n)

请使用简单的术语(非常感谢对非密码者的说教解释)。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2019-04-16 16:29:18

使这个“更安全”(更少暴露于失败)的属性是什么?简单结构

对简单的构造有一个简单的攻击:选择任何消息块P并构造一个消息M=P\|P (所以P两次)。现在计算消息的MAC标记:\text{MAC}=E_k(\text{IV}\oplus P\oplus P),这只是E_k(\text{IV}),因为x\oplus x=0。现在选择任何不同的消息P'M'=P'\|P',并计算该消息的标记:\text{MAC}'=E_k(\text{IV}\oplus P'\oplus P'),也就是E_k(\text{IV})。所以这两条消息都有相同的标签。一旦你看到其中任何一个的标签,你也可以让别人接受另一个。这是我们不想从MACs那里得到的财产。

如果这有助于你的想象力:P=0^nP'=1^n,也就是说,它们是全零和全1的信息。

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

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

复制
相关文章

相似问题

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