第2章 对称加密与非对称加密:核心概念对比,各自在车队中的应用场景

加密算法,说白了就是两把钥匙的游戏。

一把钥匙锁门,另一把开门。问题是——这两把钥匙能不能是同一把?

这就是对称加密与非对称加密最本质的区别。我刚开始接触车联网安全时,也搞混过这两个概念。后来在一次实际项目中踩了坑,才真正理解它们各自该用在什么地方。

2.1 对称加密:一把钥匙开两把锁

对称加密,加密和解密用同一个密钥。

你想想看,就像你家大门钥匙——锁门用这把,开门也用这把。简单、直接、速度快。

核心特点:

  • 加密密钥 = 解密密钥
  • 运算速度快,适合大量数据
  • 密钥分发是个大问题

常见的对称加密算法有:

  • AES(Advanced Encryption Standard)—— 目前最主流,128/192/256位密钥
  • SM4 —— 国密标准,国内车队项目常用
  • DES/3DES —— 太老了,别用了

我记得有一次帮某车队做T-Box固件升级方案。当时数据量很大,一个固件包200MB。如果用非对称加密,光加解密就能把ECU跑死。最后用的AES-256-GCM,速度完全没问题。

我的习惯:车队内部通信,只要密钥能安全分发,优先用对称加密。性能优势太明显了。

2.2 非对称加密:公钥私钥,各司其职

非对称加密,加密和解密用不同的密钥。

公钥公开,谁都可以拿。私钥自己藏好,绝不外传。

公钥加密的数据,只有私钥能解开。反过来,私钥签名的数据,公钥能验证。

核心特点:

  • 加密密钥 ≠ 解密密钥
  • 运算速度慢,比对称加密慢100-1000倍
  • 密钥分发简单,公钥随便给

常见算法:

  • RSA —— 经典,2048位起步
  • ECC(椭圆曲线)—— 密钥更短,性能更好
  • SM2 —— 国密标准,基于ECC

为什么会这么慢?因为涉及大数运算。RSA 2048位解密,在普通MCU上可能要几百毫秒。你想想看,如果每一条CAN报文都做非对称解密,总线直接卡死。

2.3 一张图看懂区别

下面这张图,我每次培训都会拿出来讲。它把两种加密的核心逻辑画清楚了。

对称加密与非对称加密对比图 对称加密 vs 非对称加密 对称加密 同一把密钥 K 加密 (Encrypt) 密文 C 解密 (Decrypt) 明文 P 非对称加密 公钥 PK 私钥 SK 加密 密文 C 解密 明文 P 对称加密:一把钥匙搞定一切。非对称加密:公钥加密,私钥解密,各司其职。

2.4 车队场景:谁该用在哪?

这个问题,我每次做项目评审都会问一遍。很多人答不上来。

直接给结论:

场景 推荐加密方式 原因
T-Box与云端通信 非对称(握手阶段)+ 对称(数据传输) 先交换对称密钥,再用对称加密传输数据
CAN总线报文加密 对称加密(AES-128) 实时性要求高,非对称太慢
OTA固件升级 对称加密(AES-256) 数据量大,性能优先
数字签名(ECU身份认证) 非对称(ECC/SM2) 需要验证来源,不能伪造
V2X消息广播 非对称签名 接收方只需验证,不需要解密
车内传感器数据采集 对称加密 密钥预置在ECU中,分发可控

注意:千万不要在CAN报文上用非对称加密。我曾经见过一个方案,每条报文用RSA签名,结果总线负载直接爆了。ECU根本跑不动。

2.5 混合加密:车队项目中的黄金组合

实际项目中,很少只用一种加密方式。

最经典的组合是:非对称加密做密钥交换,对称加密做数据加密。

流程是这样的:

  1. 云端生成一对密钥(公钥+私钥),公钥预置在T-Box中
  2. T-Box生成一个随机的对称密钥(Session Key)
  3. T-Box用云端的公钥加密这个Session Key,发给云端
  4. 云端用私钥解密,拿到Session Key
  5. 双方用这个Session Key进行对称加密通信

这样做的好处很明显:

  • 密钥交换的安全性由非对称加密保证
  • 数据传输的性能由对称加密保证
  • Session Key每次会话都变,即使被破解也不影响历史数据

我的建议:车队项目里,能用混合加密就别只用一种。TLS/SSL协议就是这么干的,它已经经过了几十年的验证。

2.6 避坑指南:我踩过的三个坑

做车队安全这些年,有些坑我替你们踩过了。

坑一:密钥硬编码在代码里

我曾经接手过一个项目,AES密钥直接写在C代码里。编译完的二进制文件,用十六进制编辑器一搜就能看到。后来我们改成了从HSM(硬件安全模块)读取,才算真正安全。

坑二:非对称加密当对称用

有个同事觉得RSA很安全,就把所有CAN报文都用RSA加密。结果ECU解密一条报文要300ms,总线上的报文全丢了。嗯,后来他改成了AES。

坑三:忽略密钥更新

很多车队项目,密钥从出厂到报废都不换。这很危险。我建议至少每半年更新一次对称密钥,非对称密钥每两年换一次。

2.7 小结

对称加密和非对称加密,没有谁比谁更好。关键是用对地方。

对称加密快,适合大量数据。非对称加密安全,适合密钥交换和数字签名。

车队项目里,混合加密是常态。记住一句话:用非对称加密解决信任问题,用对称加密解决性能问题。