【发布时间】:2020-03-13 12:01:48
【问题描述】:
我有密钥和数据:
现在如何根据这些参数计算 CMAC?
更多信息:
根据 NIST 特别出版物 800-38B 中描述的 CMAC 标准,使用 AES 作为基础分组密码计算 MAC。但我很难在 java 中找到合适的 MAC 计算示例。
编辑 this 链接非常适合这个。我需要这方面的 Java 示例。
【问题讨论】:
-
除了 800-36B 中定义的 MAC 之外,还有几种基于 AES 的 MAC。 CMAC 没有被定义为接受 IV 的 MAC,所以我很好奇是什么让您相信您正在使用的密钥和数据是用于 CMAC,而不是 CbcMac、GMAC、AES-CCM 等。无论哪种方式,都应该存在可以处理任何这些情况的 java 库。
-
我很遗憾没有 IV。我已经编辑了我的代码。
-
我一直在努力寻找一个好的 java 例子但没有运气:(
-
你试过充气城堡吗?它肯定有一个 CMAC 实现......否则:你从十六进制转换为二进制,然后用密钥初始化 CMAC,然后执行计算,可能会将结果恢复为十六进制。你不需要这样的例子,是吗?否则应该有可用的测试类。
-
我用 iv 尝试过的方法编辑了问题。我去看看充气城堡
标签: java android cryptography aes