CCM: Counter mode with Cipher-block chaining Message authentication code(计数器模式及区块链信息认证码)CCM模式,整合了CTR加密模式和CBC-MAC身份验证。 计数器模式及密码区块链信息认证码(CCM)是在 802.11i 标准中的一个加密协议。CCM 协议(CCMP)基于AES 加密算法的 CCM 模式和利用128位密钥,用一个48位初始化向量(IV)重放探测。 对称密码已经广泛应用于数据的保密和数据完整性认证。每一种不同算法的分组密码在具体运用时,都会选择一种具体的操作模式,如电子密码本模式(ECB)、密码分组链接模式(CBC)或计数模式(CTR)等。这些模式仅提供加密服务而不提供鉴别服务,但有些应用中除了需要加密服务外还要求鉴别服务。 CCM(Counter with Cipher Block Chaining-Message Authentication Code)模式是一种同时提供加密和鉴别服务的全新操作模式。CCM模式具有许多优秀的性质,它提供了带鉴别的加密服务,并且不会发生“错误传播”(Error Propagation)。另外,CCM模式还具有同步性(Synchronization)和一定程度的并行性(Parallelizability)——在加密过程具有并行性而在鉴别过程则没有。 CCM模式是分组密码一种全新的操作模式,它同时提供了加密与鉴别服务,其中加密服务由计数模式(Counter Mode)提供,而鉴别服务由CBC-MAC(Cipher Block Chaining-Message Authentication Code)算法提供。我们可以理解为CCM模式结合了计数模式与CBC模式两者各自的优点。 使用CCM模式的基本条件包括,发送方和接收方定义相同的分组密码算法(这里为AES算法)、密钥K、记数器发生函数(Counter Generation Function)、格式化函数F()(Formatting Function)和鉴别标记长度Tlen。在CCM模式下,发送者的输入包括随机值Nonce、有效载荷和附加鉴别数据,分别记为 N、P、A。计算步骤如下:
经过以上步骤后,最终产xx送方加密后发送的密文C 。一般来说,接受方得到N、A和C后,首先对密文C 进行解密恢复有效载荷和MAC值T;然后接受方再利用CBC-MAC算法对N、A和解密的有效载荷进行重新计算CBC-MAC值T1,并与从密文中恢复的MAC值T进行对比认证。如果认证通过,则接收方从密文中解密得到的有效载荷P是真实有效的。否则,将得到一个无效的有效载荷,这时就要求发送方重新加密发送该有效载荷。即使后一种情况真的发生,除了一个“错误”的T值以外接收方将不会泄漏任何其他的信息(包括解密的密文、正确的T值和其他一些入侵者“感兴趣”的信息)。
|