第一步: | 将一个8字节长的初始值设定为16进制数‘00 00 00 00 00 00 00 00’ |
第二步: | 将所有输入数据按指定顺序连接成一个数据块。 |
第三步: | 将该数据块分成8字节为单位的数据块,表示为BLOCK1、BLOCK2、BLOCK3、BLOCK4等。最后的数据块有可能是1~8个字节。 |
第四步: | 如果最后的数据块的长度是8字节的话,则在该数据块之后再加一个完整的8字节数据块‘80 00 00 00 00 00 00 00’,转到第五步。 如果最后的数据块的长度不足8字节,则在其后加入16进制数‘80’,如果达到8字节长度,则转到第五步;否则在其后加入16进制数‘00’直到长度达到8字节。 |
第五步: | 按照图3所述的算法对这些数据块使用过程密钥(单倍长度)进行加密来产生MAC。 |
第六步: | 最终取计算结果(高4字节)作为MAC。
|