This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] EK-TM4C129EXL:错误的输出数据加密

Guru**** 2330830 points
Other Parts Discussed in Thread: EK-TM4C129EXL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/591036/ek-tm4c129exl-wrong-output-data-encryption

器件型号:EK-TM4C129EXL

我们将在 TI 电路板 p/n EK-TM4C129EXL 上测试 AES CBC 128位加密。
但我们从 MCU 获得的输出数据不同于使用在线 web 工具(3个 web 工具获得相同的输出数据)。 详细信息如下所示。

AES CBC 128位
键:0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF、0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF
IV:0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF、0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF
数据:0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF、0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF
               
MCU 输出数据:0x30 0x58 0x53 0x5f 0x19 0xc0 0x82 0xa2 0x26 0xa6 0x41 0xa6 0xf3 0x24 0xCF 0xe6
从 Web 联机工具(3 web)输出数据:79abc5c23868ad84d388ce61110a6274

随附了我们的源代码。 您能否提供帮助,以说明为什么 MCU 加密的输出数据与其他在线 Web 工具不同? 非常感谢。  

供参考、我们使用以下3种在线 Web 工具与 MCU 的输出数据进行比较。  
(1)http://extranet.cryptomathic.com/aescalc/index?key=0123456789ABCDEF0123456789ABCDEF&iv=0123456789ABCDEF0123456789ABCDEF&input=0123456789ABCDEF0123456789ABCDEF&mode=cbc&action=Encrypt&output=A1F6258C877D5FCD8964484538BFC92C
(2)http://www.cryptogrium.com/aes-cbc.html
(3)http://aes.online-domain-tools.com/   

e2e.ti.com/.../AES.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉您尚未收到回复。 您的问题很重要、但我没有机会构建应用程序并尝试重现您的结果。 它在我的"待办事项"列表中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是否与密钥的字节顺序存储有关? 小端字节序有什么关系?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、CCφ CCsora。
    由于您使用的是 TI 基于 ROM_的功能、因此您可能需要在 ROM 用户指南中检查 AESConfigSet 函数、并在外设库用户指南中再次检查相同的函数。 有一个区别、在我看来、这个函数的准确版本是外设库的版本。 配置 CCM 操作的长度字段可能会导致问题。 在 AES_CFG_CCM_L_x 中、x 在 PL 中从1变为8、而在 ROM 库中仅为2、4或8。 虽然源不使用该选项、但它应该是该设置的寄存器中的默认值。 如果为2、在线站点的默认值为1、则似乎会出现不一致、因为您使用需要并应用 CCM 参数的128位加密。 (en.wikipedia.org/.../CCM_mode)
    我要做的是将模块的 AES 加密内容的输出再次读取到模块中、并使用相同的源对其进行解密。 如果结果为正常、则模块/网络不一致可能是由于此 CCM 设置造成的。

    祝你一切顺利、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    John -我"单击"五次-仅注册了(一次)。   非凡的努力、逻辑和细节!    最棒的地方  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 CB1_MOBILE。 我希望我们的朋友 CCphi CCsora 会尝试一下、我会等待结果。
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    怀疑他肯定会通过 IARφ 和 IARsora 来获得更好的票价。 如此多的 ARM MCU -强制限制(TRAP)证明是不明智的!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruno、

    可能是因为数据和密钥以字节形式给出、并且示例程序在此 LE 器件上使用 uint32_t 的数组。 我的"待办事项"列表中列出了此项。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将密钥、初始化矢量和您提供的数据放入"aes128_CBC_encrypt"示例中。 我得到的答案与您从3个在线 Web 工具中得到的答案相同。 我已附上我的项目供您查看。 如 Bruno 所建议的、请注意我如何将字节字符串转换为 uint32_t 的数组

    /cfs-file/__key/communityserver-discussions-components-files/908/aes128cbc_5F00_encrypt.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    感谢您的所有建议。  我将于下周二(五月二日)返回办公室进行测试、并告知您结果。  

    BR、

    CCφ

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、在测试后作为您的建议。 很好。 非常感谢您的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不会发布"布鲁诺"更值得您的"验证"奖!    (他首先提出了"字节与数组"问题!)