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.

[参考译文] MSP430FR5994:使用 CBC 进行 AES 加密

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/586981/msp430fr5994-aes-encryption-using-cbc

器件型号:MSP430FR5994

这是一个完整性检查问题、因为用户指南(SLAU367M)没有明确说明:

是否可以在不使用 DMA 的情况下实现 CBC?

我在不使用 DMA 的情况下完成了 ECB 256位加密/解密。  我只是想看看 CBC 是否也能做到这一点。

谢谢、

-Jim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、可以在不使用 DMA 的情况下执行 CBC。 DMA 通道是避免 CPU 交互所必需的、但并不是必需的、这是 AESCMEN 未被置位时遇到的模式。

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

    Ryan、感谢您的快速回复。

    我提交问题的原因是从数据表中、我得到了 DMA 是必需的印象。  我强调了困惑的地方。  如果我将这些位更改为 CBC、则会忽略这些位、除非 DMA 处于活动状态。

    此致、

    ~Jim

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

    它们被忽略、因为您使用 AES128/192/256加密/解密引擎手动控制每个块、这对于每种格式都是相同的。 请仔细查看图14-6至14-13、以更好地了解我所说的内容、由于您是单独进行控制、因此 AES 控制器无需对加密/解密块之间的 IV 进行任何假设。 由于涉及反馈和异或操作(AESAXIN/AESAXDIN)、现在需要 IV。

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

    Jim、您好!

    为了在这里澄清、为了使 AES 加速器在 没有 CPU 干预的情况下执行不同的加密模式(例如 CBC 或 OFB)、必须使用 DMA。 用户指南的 AES256加速器一章(第14.2.11节)中包含了示例伪代码和此过程的更详细说明。 话虽如此、您仍然可以执行这些模式并使用 AES 加速器、但需要 CPU 干预。 这意味着需要编写附加软件才能执行异或操作、并手动将密文/结果/IV 转移到培训的下一部分。

    我们以 CBC 加密模式为例。 第一步是执行第一部分纯文本(plaintext_1)、并与 IV 执行异或运算 此结果可以馈送到 AES 加速器(在加载密钥并正确设置模块之后)以生成第一组密码文本(chintext_1)。 对于下一个块、您使用 ciphertext_1和 XOR 与 plaintext_2并将结果馈入 AES 加速器。 继续上述模式、直到您到达要加密的纯文本的末尾。 这种方法比使用 DMA 和 AES 加速器自动执行模式要慢、但比纯软件解决方案更快。

    这有道理吗?

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

    尊敬的 Jace:

    是的! 很棒的回复。

    谢谢。

    ~Jim