TMS320F280039C: AES的CMAC计算结果问题

Part Number: TMS320F280039C
Other Parts Discussed in Thread: C2000WARE

在使用AES模块时,导入了官方例程aes_ex7_cmac_auth.c,在板子上能够按预期正常运行,后续将testcase的元素1修改如下

计算结果如下

为了验证该计算结果的正确性,用python的库文件计算结果如图

两次计算结果不一致

后续使用Ti官方的纯软件加密库计算

经过三次计算对比,使用python和TI纯软件库的结果一致,使用AES模块是另外种结果,初步判断AES模块的结果为不正确值,请问是哪里出现的问题导致的?

工程如下

CMAC.zip

  • 您好,
    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 280039里面AES 计算的CMAC准确的说是CBCMAC,跟我们说的CMAC这两个有所不同。CBCMAC就是CBC计算后的最后一个块作为mac值。而优化后的CMAC有额外的处理。

  • 那就是说只能用纯软件的方式计算优化后的CMAC值?AES模块无法实现

  • 我希望您参考了我们的C2000Ware示例,了解如何在CMAC模式下对AES进行配置,以派生身份验证标签。 特别是关于如何在线生成测试向量的比特,以及如何实际将测试向量输入到示例中的数组中。 我相信输入到AES引擎的数据是导致结果不一致的原因

  • 你先排除一下数据大小端问题,可以用FF 或者00来排除。我在想怎么解决CMAC(OMAC1)中派生密钥的问题。如果可以解决派生密钥,那么应该也可以用AES核心实现

  • 密钥需要以将数据传递到引擎的相同方式提供。 保持与数据相同的字号。 该示例也说明了这一点。