当前位置:   article > 正文

can总线报文是固定的吗_【技术大神】对CAN总线报文进行CMAC加密的一种实现方式...

can数据帧 加密算法

随着车联网的发展,车辆网络通信的安全问题就成了不可忽视的一个问题,很多车厂在设计新平台的时候都会不约而同地进行相关的考虑。网络加密带给我们的是更安全的车内网络环境,但同时对相关ECU的硬件要求也随之提高。比如报文加密之后由于字节长度变长往往需要升级CAN总线到CAN FD等。这对很多国内本地的车厂来讲是一个不小的挑战。笔者之前设计了针对CAN网络进行报文加密的方案,既可以做到保持原有总线架构不用变动太大,又可以实现对报文的加密。

图1 CMAC的产生和校验

对于总线加密而言,简单的加密算法很难起到真正的加密效果,太复杂的又会浪费比较多的资源,所以目前汽车电子行业比较多的采用了AES-128的加密方式。RH850F1K是一款硬件支持AES-128加密算法的MCU,使用硬件实现加解密算法可以大大提高算法的效率,笔者测试每次只要2-3ns就可以完成一次AES-128的计算;而使用软件的话通常要在30-50ms,这么长的时间在实际的CAN通信中根本没法使用。不过要对CAN报文实现AES-128的加密还有一个问题就是字节长度的问题。我们知道AES-128至少针对16字节的数据进行加密,生成的数据也至少是16字节,而CAN报文最多只有8个字节。为了解决这个问题,笔者根据车上CAN报文的实际特点单独设计了一套方案。

首先第一步就是把CAN报文中有效的数据位都集中到尽量少的几个字节中,比如最后整理完之后可以放到4个字节之内。

然后把4字节填充成16字节,填充的内容可以自己定义。

获得16字节的数据后就可以根据AES-128的算法生成加密后的新的16字节的数据。

接下来把原始的数据以及加密后的部分数据重新组合成一个新的CAN的报文帧。具体的组合规则可以自己定义,不一定局限于下面的方式。

上面的报文帧就是CAN节点发送出去的报文帧。接收方接收到这一帧数据后,按照上面的方法解密,从而判断接收到的数据帧是否有效。

上述CMAC加密方案中主要有这样几个突出的特点:

1)RH850F1K可以硬件实现AES-128的复杂算法,很好满足加解密算法实时性的要求。

2)该方案对现有CAN网络本身无需改动,只要对报文的格式稍作改动就可以了。

希望这个方案可以对广大关注汽车电子网络安全的工程师们有所帮助。

世强元件电商版权所有,转载请注明来源和链接。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/51932
推荐阅读
相关标签
  

闽ICP备14008679号