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.

[参考译文] CC1200:验证 AES CBC 加密

Guru**** 2538960 points
Other Parts Discussed in Thread: CC1200

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/730458/cc1200-verifying-aes-cbc-encryption

器件型号:CC1200

您好!

我正在使用 CC1200 H/W 实施 AES CBC 加密 我目前正在使用以下代码来执行加密。  

uint8_t AES_reg;
uint8_t temp_data[16]={0X00U、0x01U、0x02U、0x03U、0x04U、 0x05U、0x06U、0x07U、0x08U、0x09U、 0x0AU、0x0BU、0x0CU、0x0DU、0x0EU、 0x0FU};
uint8_t temp_key[16]={0X01U、0X01U、0X01U、0X01U、0X01U、0X01U、 0X01U、0X01U、0X01U、0X01U、0X01U、 0X01U、0X01U、0X01U、0X01U、0X01U、 0X01U};

SPI_1_WriteBurstReg_Extended (CC1200_AES_KEY、TEMP_KEY、AES_BLOCK_SIZE);
SPI_1_WriteBurstReg_Extended (CC1200_AES_buffer、temp_data、AES_BLOCK_SIZE);
SPI_1_WriteReG_Extended (CC1200_AES、0x01);

AES_reg = SPI_1_ReadReG_Extended (CC1200_AES);

while ((AES_reg & 0x01)== 0x01){
AES_reg = SPI_1_ReadReG_Extended (CC1200_AES);

SPI_1_ReadBurstReg_Extended_Buffer (CC1200_AES_buffer、AES_BLOCK_SIZE);

我重复运行该操作并观察输出缓冲器。 由于我使用的是相同的密钥和相同的数据、我认为加密输出值应始终相同。 但是、在我的案例中、输出值会发生变化。

我使用逻辑分析仪检查了这一点、以验证数据传输是否存在任何问题。 请找到以下图片。  

周期1:数据

周期1:键

周期#1:等待

周期1:输出

周期#2:数据

循环#2:钥匙

周期#3:等待

周期#4:输出

您可以看到、这两种情况的输出是不同的。

我缺少什么? 可以有人提供帮助。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否查看了此处提供的代码示例:

    http://www.ti.com/lit/swra483

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

    是的、我遵循相同的结构。 当我尝试加密两次时、仍然无法获得相同的 AES 输出。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我测试了这个、每次都有相同的输出。 但是、您需要查看在对扩展寄存器空间执行猝发访问时发送的内容。 图中显示了您正在发送0x76E0和0x76F0 (为什么?) 当您应该发送0x6FE0和0x6FF0 (0x2F 用于扩展寄存器空间、0x40用于突发访问)时
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正确! SPI_1_WriteBurstReg_Extended 代码函数中存在错误。 很抱歉浪费你的时间! 感谢您的帮助!