安全启动和安全升级的实现

CMAC原理
CMAC(Cipher-based Message Authentication Code)是一种基于密码算法的消息认证码,用于验证消息的完整性和真实性。它的基本实现原理是通过对消息和密钥进行计算得到一个固定长度的二进制串。这个二进制串是通过对消息进行加密得到的,使用了一个称为CBC-MAC的技术,其中CBC表示密码块链模式,MAC表示消息认证码。
在CMAC的实现中,首先将消息划分为多个固定长度的块。然后使用密码算法对每个块进行加密,并将加密结果与下一个块进行异或运算。对最后一个块进行特殊处理,如果长度不足,则补充填充位。最后一步是对加密结果进行再加密,得到最终的CMAC。
具体来说,以AES128为例,它的工作原理如下:
1.选择一个随机的128位密钥K,用于生成AES的子秘钥。
2.将消息划分为多个128位的块。
3.计算每个块的初始向量和密钥的异或结果,得到每个块的加密结果。
4.对每个加密结果进行异或运算,并将异或结果与下一个块进行异或运算,得到每个块的密文。
5.将密文进行拼接,得到最终的密文序列。
6.6.计算密文序列的MAC值T,作为消息的认证码。
通过以上步骤,可以得到一个固定长度的二进制串作为消息的认证码。这个认证码可以用于验证消息的完整性和真实性,防止消息被篡改或伪造

posted @   MicroStoneTech  阅读(107)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示