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
CCM(带 CBC-MAC 的计数器)协议操作是一种包含加密/解密和身份验证的组合操作。身份验证和加密/解密操作均使用加密内核;这些操作在 AES 内核上按顺序执行。部分数据流只需要身份验证。仅需要身份验证的数据始终必须位于需要加密的数据之前。
图 10-9 展示了 CCM 协议。身份验证始于对预定义块 B0 的加密。该块由标志、随机数和消息长度组成。接下来的块包含与仅身份验证数据连结的身份验证数据长度。在处理仅身份验证数据之后,执行加密/解密操作,每个操作之后都对明文数据块(在加密的情况下等于输入,在解密的情况下等于输出)进行相关身份验证。最终身份验证结果需要用 IV 块 A0 的加密输出进行加密。此块包含与计数器(对于 A0,该值为 0)连结的 IV(包含标志和随机数)。
图 10-10 显示了用于加密和解密的一轮 CCM 操作。32 位计数器用作 IV(正如其用于 CTR 模式)。数据的加密方式与 CTR 模式相同,即对加密内核输出与输入进行异或运算。在加密操作之后,紧接着将明文与中间身份验证结果进行异或运算。异或运算结果用作第二次加密操作的输入以计算下一个(中间)身份验证结果。