ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
密码分组链接 (CBC) 密码模式建立在 ECB 密码模式的基础上,使每个块的密文输出不仅取决于明文和密码密钥 k,而且还取决于前一个块的密文。CBC 密码模式如图 10-3 所示。与 ECB 模式一样,明文数据分成 128 位块。与 ECB 模式不同,在 CBC 模式中,每个新的明文块与之前的密文块进行逐位异或运算,以创建 AES 块密码的输入。
在 CBC 模式下,必须提供一个不可预测的初始化矢量 (IV)。初始化矢量与第一个明文块进行异或运算,因为没有“前一个”密文块与第一个明文块进行异或运算。
AESADV 加速器支持通过中断或使用 DMA 对 128 位以上的数据自动执行 CBC 模式操作。基于软件中断的多块处理过程会使用 CPU_INT.IIDX.STAT 字段中报告的 AES 中断条件。如果该字段的读数为 0x2 (INPUTRDY),则可以写入下一个输入块(作为 4 次 32 位写入)。如果该字段的读数为 0x1 (OUTPUTRDY),则可以读取输出块(作为 4 次 32 位读取)。
在 DMA 模式下,CBC 使用两个 DMA 通道。绑定到 DMA_TRIG0 的通道是输入通道。绑定到 DMA_TRIG1 的通道是输出通道。需要将这些通道配置为每个触发器执行一次 32 位读取/写入。