赞
踩
CMAC(Cipher Block Chaining-Message Authentication Code),也简称为CBC_MAC,它是一种基于对称秘钥分组加密算法的消息认证码。由于其是基于“对称秘钥分组算法”的,故可以将其当做是对称算法的一种操作模式。
C:采用的是CBC模式;
CMAC可以应用的算法主要有:AES、DES等。
分组加密:就是采用分组的方式,将消息分成对应算法对应大小的块。
| 名称 | 含义 |
|---|---|
| B | 加密块的长度; |
| Rb | 生成子密钥的常量字符串,AES中:0x87(128位),DES中:0x1B(64位); |
| K | 加密算法中的密钥; |
| K1 | 通过K生成的子密钥1 |
| K2 | 通过K生成的子密钥2 |
| Mi | 消息被划分成的第几个消息块 |
| M n ∗ M_n^* Mn∗ | 最后一个块(该块可能是整块,也可能是部分块) |
| T | MAC值 |
| T l e n T_{len} Tlen | MAC值的长度(单位:bit) |
如下图所示:对于AES128来说,b的大小为128bit,K的长度同样也是128bit。

注:
(1)AES算法,b的长度为128bit,则R128 = 012010000111 (10000111为固定值);
(2)DES、3DES算法,b的长度为64bit, 则则R64 = 05911011(11011也是固定值)。

两种块(完整、非完整)的处理过程

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。