输出分组密钥
SPI ENC 模块仅计算 AES-128-CTR 的分组密钥,最后一步使用分组密钥对数据进行异或运算由 SPI 控制器完成。因此在启用 SPI ENC 的情况下,SPI 控制器需要为发送到总线或者从总线接收到的每一字节数据读取分组密钥。

如SPI 数据传输模式 所示,在与 SPI NOR/NAND 通信过程中,传输的数据可能出现明文和密文混合传输的情形。
SPI ENC 输出分组密钥的规则如下:
-
SPI 控制器每收发一个字节数据,都要读取一个字节的分组密钥
-
明文数据位置对应的分组密钥,总是读取到0;
-
密文数据位置对应的分组密钥,总是计算得到的分组密钥;
分组密钥的计算总是以16字节为单位,但用户访问的地址可能并不是 16 字节对齐,如从 0x0000_0005 地址开始读取数据。 这种情况下,SPI ENC 计算的第一个分组密钥仍然为 16 字节,只是对应的数据地址为 0x0000_0000 ~ 0x0000_000F;SPI ENC 输出数据分组密钥时,应输出 0x05~0x0F 数据对应的分组密钥值。
注: SPI ENC
模块要准确的计算和输出分组密钥,依赖于用户开始传输前配置的数据地址、长度、加密数据的起始地址和长度等信息。