首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最好从MSB或LSB截断CMAC

最好从MSB或LSB截断CMAC
EN

Cryptography用户
提问于 2017-04-12 10:43:22
回答 3查看 867关注 0票数 6

我想把一个an 128-CMAC从16减少到8字节。引用RFC,"...可以截断MAC。截断的结果应该以最重要的位为一阶. ...“。

当使用CryptoJS在"Hello World“上使用"0xDEADBEEF CAFEBABE DEADBEEF CAFEBABE”键生成这样的CMAC时,这将产生: 0x2425a8ff 14cea36d 0a14b3e8 3 dbfc68e。

  1. 我不确定,根据上述定义,我截断的CMAC是0x2425a8ff 14ce36d还是0x0a14b3e8 3 dbfc68e。或者换句话说: 0x24的CMAC是最重要或最不重要的字节吗?
  2. 当取错8字节时,它如何影响安全性?
EN

回答 3

Cryptography用户

发布于 2017-04-14 06:44:20

Q1。我不确定,根据上述定义,我截断的CMAC是0x2425a8ff 14cea36d还是0x0a14b3e8 3dbfc68e__。换句话说: CMAC的0x24是最重要的字节还是最小的字节?

你提到的RFC有如下内容:

MSB(x)字符串中最重要的位x. MSB(10010000)表示1。

这意味着最左边的字节包含最重要的位(MSB表示最重要的位)。这被称为大端字节顺序或网络字节顺序。换句话说,0x24是最重要的字节。取最左边/最重要的字节是很常见的。

Q2。当取错8字节时,它如何影响安全性?

一点也不,但它可能会损害互操作性。任何一位都与另一位一样重要;只要您决定先使用哪些位,您就可以跳过所有偶数位或奇数位,并有一个安全的MAC。

票数 2
EN

Cryptography用户

发布于 2017-04-12 13:11:02

由于8是16字节的一半,所以有其他解决方案,您可以同时使用上字节和下字节,但仍然可以得到8个字节。

  1. 异或相邻字节对。
  2. 折叠MAC,XORing 1和9字节等。

当你不能决定你最喜欢哪个字节并且只需要几行代码时,这些技术是很好的.

票数 1
EN

Cryptography用户

发布于 2017-04-12 11:11:03

你选择的哪一部分不影响安全。

我假设他们声明您应该使用MSB的原因是,这是从NIST文件.派生出来的,NIST是一个标准组织,如果您想要互操作性,人们需要使用相同的位元。

我不知道CryptoJS是干什么的。

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

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

复制
相关文章

相似问题

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