CMAC计算步骤
在 CMAC 的计算过程中,预处理密钥是必须的,它会生成两个子密钥 K1 和 K2。这两个子密钥的作用是用于计算最后一个消息块的中间值 M 和将每个消息块与中间值进行异或操作。对于不同的加密算法,预处理密钥的生成方式也不同,例如对于 AES 算法,需要进行密钥扩展和选择子密钥的过程。CMAC(Cipher-based Message Authentication Code)是一种基于密码算法的消息
·
CMAC(Cipher-based Message Authentication Code)是一种基于密码算法的消息认证码,它可以提供消息完整性和身份验证,常用于加密通信中。
CMAC 的计算方法如下:
初始化:选择一个合适的密钥 K,然后对密钥进行预处理。预处理过程中会使用两个子密钥 K1 和 K2,用于后续计算。
填充:将消息按照加密块的长度进行填充,使其长度为加密块长度的整数倍。填充方式可以选择 ISO/IEC 9797-1 Padding Method 2 或者 PKCS#5/PKCS#7 等标准的填充方式。
分块:将填充后的消息按照加密块的长度进行分块。
计算中间值:对于最后一个消息块,如果长度等于加密块的长度,则需要额外进行一次 XOR 运算。然后,将这个块和 K1 进行异或运算,得到中间值 M。
计算 CMAC:对于每个消息块,都需要进行以下步骤:
a. 将消息块和中间值 M 进行异或操作,得到结果 R。
b. 使用密钥 K 对 R 进行加密,得到结果 C。
c. 将 C 作为下一个消息块的中间值 M。
输出结果:当所有消息块都计算完成后,将最后一个结果 C 输出作为 CMAC。
在 CMAC 的计算过程中,预处理密钥是必须的,它会生成两个子密钥 K1 和 K2。这两个子密钥的作用是用于计算最后一个消息块的中间值 M 和将每个消息块与中间值进行异或操作。对于不同的加密算法,预处理密钥的生成方式也不同,例如对于 AES 算法,需要进行密钥扩展和选择子密钥的过程。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)