- 🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用
- 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】
- 🍅 玩转CANoe,博客目录大全,点击跳转👉
目录
- 一、AES-ECB算法简介及在汽车开发中的应用场景
- 二、为什么CAPL自带的SecMgrCANoeClient.dll不能用
- 三、源码
- 3.1 aes_test.can —— 测试脚本
- 3.2 AES_ECB.cin —— AES-128-ECB 核心算法(无填充)
- 四、测试结果
一、AES-ECB算法简介及在汽车开发中的应用场景
AES(Advanced Encryption Standard)是当前最主流的对称分组加密算法,分组长度固定128位(16字节),密钥支持128/192/256位。ECB(电子密码本)是最基础的加密模式:明文按16字节分块,每块用同一密钥独立加密,块与块之间互不关联,因此实现简单、适合并行计算,但相同明文会产生相同密文,不适合长数据的批量加密。
在汽车电子领域,AES被广泛用于安全访问(Seed&Key)、防盗认证、SecOC报文完整性校验、刷写加密等场景。例如整车OEM常用AES-128-ECB(无填充)作为Seed-Key算法的核心:ECU下发16字节Seed,诊断仪/测试设备用密钥计算Challenge回传,认证通过后才能解锁安全服务。HIL测试中用纯CAPL实现AES,可以脱离外部DLL与授权限制,直接在仿真节点内完成加解密计算,与ECU行为完全对齐。
二、为什么CAPL自带的SecMgrCANoeClient.dll不能用
Vector提供了Security Manager模型库(SecMgrCANoeClient),CAPL中调用SecurityLocal*系列函数即可完成加解密,例如:
SecurityLocalDecryptAES128CBC Decrypts ciphered data with a given key and initialization vector using AES128 (CBC),