当前位置:   article > 正文

cmac笔记_单片机 cmac

单片机 cmac

输入Key,Data

Key:固定128位

Data:任意位数(这就是Cmac比Hmac好的地方,Hmac必须是128位的整数倍)

方向:单向只加密

输出:固定128位的加密mac

第一步 生成串L

对128位的0000000...000用Key进行AES加密得到串L

第二步 计算子钥K1

K1 = 将串L左移一位

if L[0] 的最高位 = 1(if(L[0] & 0x80 == 0x80)) 那么 K1 = K1^Rb(异或)

PS:AES算法b = 128,R128 = 0000...000(120)10000111固定

第三步 计算子钥K2

K2 = 将K1左移一位

if(K1[0]& 0x80 == 0x80) K2 = K2^Rb(异或)

第四步 划分M

将Data按照128位为一个块来划分为n个块

前面的块正常计算

如果最后一个块是完整的块则最后一个块使用K1再进行一次异或

否则最后一个块使用K2再进行一次异或

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/51927
推荐阅读
相关标签
  

闽ICP备14008679号