一种基于CAN总线传输的硬件加解密实现方法与流程

文档序号:35884868发布日期:2023-10-28 17:15阅读:69来源:国知局
一种基于CAN总线传输的硬件加解密实现方法与流程

本发明涉及数据通信信息安全,具体为一种基于can总线传输的硬件加解密实现方法。


背景技术:

1、控制器局域网can(controller area network)于1986年,为适应“减少线束的数量”及“通过多个lan,进行大量数据的高速通信”的需要,德国电气商博世公司开发出面向汽车的can通信协议,于1993年11月,iso组织正式颁布can国际标准iso11898及iso11519,现在can-bus是唯一成为国际标准的现场总线,也是国际上应用最广泛的现场总线之一。

2、据最新协议帧结构可知,can数据包中没有目的地址和源地址,id也仅是参与仲裁优先权使用,并不是匹配的必要信息,可参考图1,图1为can的一种连接拓扑结构,各ecu是汽车的各个电控单元,比如中仪表显示、座椅模块等。各ecu之间、cpu与各ecu之间均可以互相访问,can总线上的数据量大,且完全发送的明文对任何一个ecu都是透明的,所以一旦有攻击者监听车载以太网数据并获得仲裁权限,就可以向任何一个ecu发送假数据包,包括发动力、转向器等关键ecu,一旦得逞,攻击者将完全控制车辆,对驾驶员的人身安全造成损害,因此,对can总线明文的加密变得必不可少,现有的can通信加密方法多为软件加密方法,易于实现,但处理速度慢,会导致数据发送和响应速度严重滞后,基于此,本申请提出一种基于can总线传输的硬件加解密实现方法以解决上述问题。


技术实现思路

1、(一)解决的技术问题

2、针对现有技术的不足,本发明提供了一种基于can总线传输的硬件加解密实现方法,该基于can总线传输的硬件加解密实现方法利用现有协议的扩展帧填充法,规避了can总线传输公认的不安全性,同时,利用较小的硬件开支和较快的速度实现can数据加密和解密过程,提高了can总线传输的安全性,也提高了整个车载系统内部数据传输和响应的速度。

3、(二)技术方案

4、为实现上述目的,本发明提供如下技术方案:一种基于can总线传输的硬件加解密实现方法,包括以下步骤:

5、s1、对can扩展帧将18位扩展i d用于填充目的节点地址,接收方收到扩展i d后与自己对比,如果相同则启动接收,否则不接收;

6、s2、数据传输过程中采用rsa非对称加密法,非对称加密和解密需要的公钥和私钥通过应用层计算出;

7、s3、在步骤s2对数据加密的过程中,采用华莱士树算法进行压缩,减少对于给定数目加数加法所使用的加法器的数量。

8、优选的,soc系统上电后,将所述步骤s2计算出的公钥和私钥存入各ecu节点的存储空间中,公钥和私钥是2048位数据,分别以64个32位的数据存储在ram中。

9、优选的,加密和解密的流程都是采用硬件实现方式,任意所述can节点的ecu之间加密和解密的流程如下:

10、(1)can节点b获得公钥,使用公钥和rsa加密算法对明文数据进行加密;

11、(2)can节点a获得公钥并得到密文,使用私钥和rsa解密算法对密文进行解密,最后得到明文;

12、其中:公钥为1024位e,模数1024位n;

13、在can节点b发出的c=me mod n;

14、私钥为1024位d,模数1024位n;

15、在can节点a收到密文解密后的m=cd mod n;

16、c为密文,m为明文,me即明文的e次幂,cd即密文的d次幂,在实现中,算法是公开的,公钥是公开的,私钥是对其它can节点保密的。

17、优选的,在加密和解密的过程中,把1024位乘数拆分为32bit长度的多段,也将基本乘法进行分段,对于两个乘数的位宽一样的乘数的乘法,采用的是阵列乘法器,具体步骤如下:

18、(1)对于c、m都是长整数,按多项式展开法,将长整数分解为多个32bit长度的短整数之和,从而:

19、m=m1023bm1023+m1022bm1022+m1022bm1022+...+m0,

20、c=c1023bc1023+c1022bc1022+c1022bc1022+...+c0,

21、其中b*=2k;

22、(2)做计算最低一级乘法m的平方时,先将m的所有项去乘以m0,将所得的结果存在低位r0寄存器和高位c0寄存器中;

23、(3)再把m的所有项去乘以m1bm1,将所得的结果再加上先前的进位字c0值,将结果存在低位r1寄存器和高位c1寄存器中;

24、(4)再把m的所有项去乘以m2bm2,将所得的结果再加上先前的进位字c1值,将结果存在低位r2寄存器和高位c2寄存器中;

25、(5)重复这个过程直到执行最后一次乘法,将m的所有项乘以m1023bm1023,将所得的结果再加上先前的进位字c1022值,将结果存在低位r1023寄存器和高位c1023寄存器中;

26、(6)最后一步将r1023加上最后进位字c1023作为结果的一部分保存。

27、优选的,所述步骤s3中华莱士树3:2压缩加法器最后一级输出给进位传递加法器作为最终结果输出,对最小的32bit*32bit的乘法器,采用流水线乘法器,把不同级的处理进行并行计算。

28、(三)有益效果

29、与现有技术相比,本发明提供了一种基于can总线传输的硬件加解密实现方法,具备以下有益效果:

30、1、对can标准协议进行了优化使用,极大的减少硬件开支、产品成本以及大大降低了can总线数据传输泄漏的风险;

31、2、对can数据明文实行加密和解密的过程中,对硬件几乎不能实现的大数据幂模计算过程,进行大数分段、幂模计算简化,拆解为用硬件可实现的方法,并实施了算法压缩,极大的节省了硬件开支,用具有快速、准确响应的硬件资源实现can数据的加密和解密,提高了can总线传输的速度、准确性。



技术特征:

1.一种基于can总线传输的硬件加解密实现方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于can总线传输的硬件加解密实现方法,其特征在于,soc系统上电后,将所述步骤s2计算出的公钥和私钥存入各ecu节点的存储空间中,公钥和私钥是2048位数据,分别以64个32位的数据存储在ram中。

3.根据权利要求2所述的一种基于can总线传输的硬件加解密实现方法,其特征在于,加密和解密的流程都是采用硬件实现方式,任意所述can节点的ecu之间加密和解密的流程如下:

4.根据权利要求3所述的一种基于can总线传输的硬件加解密实现方法,其特征在于,在加密和解密的过程中,把1024位乘数拆分为32bit长度的多段,也将基本乘法进行分段,对于两个乘数的位宽一样的乘数的乘法,采用的是阵列乘法器,具体步骤如下:

5.根据权利要求1-4任一项所述的一种基于can总线传输的硬件加解密实现方法,其特征在于,所述步骤s3中华莱士树3:2压缩加法器最后一级输出给进位传递加法器作为最终结果输出,对最小的32bit*32bit的乘法器,采用流水线乘法器,把不同级的处理进行并行计算。


技术总结
本发明涉及数据通信信息安全技术领域,且公开了一种基于CAN总线传输的硬件加解密实现方法,包括以下步骤:S1、对CAN扩展帧将18位扩展ID用于填充目的节点地址,接收方收到扩展ID后与自己对比,如果相同则启动接收;S2、数据传输过程中采用RSA非对称加密法,所需要的公钥和私钥通过应用层计算出;S3、在步骤S2对数据加密的过程中,采用华莱士树算法进行压缩,减少对于给定数目加数加法所使用的加法器的数量。整个加解密过程中,利用现有协议的扩展帧填充法,规避了CAN总线传输公认的不安全性,同时,利用较小的硬件开支和较快的速度实现CAN数据加密和解密过程,提高了CAN总线传输的安全性,也提高了整个车载系统内部数据传输和响应的速度。

技术研发人员:李莉
受保护的技术使用者:无锡摩芯半导体有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1