首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CBC-MAC与CMAC的区别

CBC-MAC与CMAC的区别
EN

Cryptography用户
提问于 2014-01-12 00:05:04
回答 1查看 9.6K关注 0票数 12

根据维基百科的说法,CMAC是基于CMAC的一种变体,并弥补了其中的一些安全缺陷。然而,对于这两种算法之间的区别,我找不到一个简单明了的解释,所以我想在这里问一问:

CMAC和CBC-MAC有什么不同,为什么?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2014-01-12 12:20:49

对于可变长度的消息,CBC-MAC的问题在于,应用于单个块消息的CBC-MAC实质上相当于一个甲骨文,用于按对手选择的值计算分组密码。而神谕让对手破坏了这个计划。

考虑第一个CMAC,它仅限于包含大量块的消息。然后,CMAC和CMAC之间的区别是,CMAC用一个秘密值对最后一个块进行xors --您可以称它为一个调整--(小心地)从密钥派生出来,然后再应用分组密码。这确保了对最终块的处理与其他块不同,这就意味着敌手不再有根据自己选择的值来评估块密码的预言。

为了使CMAC能够处理不包含大量块的消息,CMAC (仔细地)派生了第二个秘密值。CMAC首先对消息进行填充,使其包含大量的块,然后在应用分组密码之前,将第二个秘密与最终(填充)块进行连接。

通过总是填充消息可以避免这种额外的复杂性,但是不这样做,CMAC为所有可能的消息中的一小部分节省了一个分组密码评估。

秘密值是通过将块密码应用于全零块,然后将比特值(有时将比特串到低阶比特以得到有限域乘法)来导出的。

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

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

复制
相关文章

相似问题

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