TMS320F28P650DK: 外设AES模块,在GCM模式计算的MAC异常

Part Number: TMS320F28P650DK

AES128 GCM模式下,当输入数据长度小于0x80(数据类型int16)时,计算的MAC值跟openssl、各个开源网页上计算结果一致。一旦数据长度超过比如长度0x90,MAC值就对不上。这是为什么?查看各个值没发现溢出的情况。AES的长度寄存器无法查看,但通过中间变量查看没有异常,对比输入数据没有溢出、突变的情况。

  • 这是测试结果

  • 感谢您对TI产品的关注!
    关于你的咨询,我们正在确认你的问题,稍后回复您。

  • 当数据长度超过0x80时,​长度编码错误或数据分块处理异常可能导致MAC不一致。

    当数据长度超过单次处理能力时,需分块调用AES模块,应该需要查看AES长度寄存器的是否配置正确。

  • 啊?AES模块有单次处理长度限制吗?这一点我没有在数据手册上看到。难道我需要分块计算,每次重新初始化,将每个块结尾的IV向量作为新的块IV输入吗?

  • 是的,需要这个操作

  • 好的 谢谢。我尝试一下。

  • 还是不行,我同步测了一下CBC加密模式下,也有这个现象,数据长度一超过。后面的加密数据就是错的。但是CBC解密没有这情况,数据长度0x730都可以正常解密。好邪门,,,方便问一下AES模块单次处理能力这个限制是在哪给文档上看到的?

  • 这个可能没有文档有详细说明。

x 出现错误。请重试或与管理员联系。