【车载开发系列】AES-CMAC算法基础
【车载开发系列】AES-CMAC算法基础
- 【车载开发系列】AES-CMAC算法基础
- 一. 什么是AES
- 二. AES密钥长度
- 三. AES128算法特点
- 四. AES实施步骤
- 五. 算法应用
- 六. 个人总结
一. 什么是AES
AES(Advanced Encryption Standard)是对称加密算法的一个标准,主要用于保护电子数据的安全。
二. AES密钥长度
AES支持128、192、和256位密钥长度,其中AES-128是最常用的一种,它使用128位(16字节)的密钥进行加密和解密操作。AES属于分组密码,每次操作128位(16字节)的数据块。
三. AES128算法特点
ASE算法不同于md5、sha加密,是一种对称的加密算法,其对称性体现在发送信息时需要通过密钥对信息进行加密,接收方收到后,要想获取信息内容,需要用同一个密钥对加密信息进行解密。
ASE算法:对称加密算法、可逆的、保证私密信息不被泄露
md5、sha算法:哈希摘要算法、不可逆的、对信息一致性和完整性的校验
四. AES实施步骤
GF(2^8)域上的多项式运算
扩展的欧几里德算法
生成S盒
生成逆S盒
S盒置换
行移位
列混合
生成秘钥
循环加密
五. 算法应用
在27解锁密钥服务中有时候会应用到其AEC-CMAC的加密,其原理是在诊断仪发送27 01给到ECU之后,ECU会产生一串随机数后反馈给诊断仪,诊断仪接着根据固定的KEY对随机数进行加密,得到加密后的数据Encrypt,诊断仪通过27 02 Encrypt发送给ECU,ECU则对发送出去的随机数同样进行ASE-CMAC的加密得到Encrypt1,之后Encrypt1与27 02的Encrypt进行对比,成功则返回67 02 ,失败则返回NRC 35 36等。
六. 个人总结
CMAC(Cipher Block Chaining-Message Authentication Code),也简称为CBC_MAC,它是一种基于对称秘钥分组加密算法的消息认证。一般情况下每次操作128位有效数据位,也就是16个字节。