一种基于CAN总线传输的硬件加解密实现方法技术

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

【技术实现步骤摘要】
一种基于CAN总线传输的硬件加解密实现方法


[0001]本专利技术涉及数据通信信息安全
,具体为一种基于CAN总线传输的硬件加解密实现方法。

技术介绍

[0002]控制器局域网CAN(Controller Area Network)于1986年,为适应“减少线束的数量”及“通过多个LAN,进行大量数据的高速通信”的需要,德国电气商博世公司开发出面向汽车的CAN通信协议,于1993年11月,ISO组织正式颁布CAN国际标准ISO11898及ISO11519,现在CAN

BUS是唯一成为国际标准的现场总线,也是国际上应用最广泛的现场总线之一。
[0003]据最新协议帧结构可知,CAN数据包中没有目的地址和源地址,ID也仅是参与仲裁优先权使用,并不是匹配的必要信息,可参考图1,图1为CAN的一种连接拓扑结构,各ECU是汽车的各个电控单元,比如中仪表显示、座椅模块等。各ECU之间、CPU与各ECU之间均可以互相访问,CAN总线上的数据量大,且完全发送的明文对任何一个ECU都是透明的,所以一旦有攻击者监听车载以太网数据并获得仲裁权限,就可以向任何一个ECU发送假数据包,包括发动力、转向器等关键ECU,一旦得逞,攻击者将完全控制车辆,对驾驶员的人身安全造成损害,因此,对CAN总线明文的加密变得必不可少,现有的CAN通信加密方法多为软件加密方法,易于实现,但处理速度慢,会导致数据发送和响应速度严重滞后,基于此,本申请提出一种基于CAN总线传输的硬件加解密实现方法以解决上述问题。
专利技术内
[0004](一)解决的技术问题
[0005]针对现有技术的不足,本专利技术提供了一种基于CAN总线传输的硬件加解密实现方法,该基于CAN总线传输的硬件加解密实现方法利用现有协议的扩展帧填充法,规避了CAN总线传输公认的不安全性,同时,利用较小的硬件开支和较快的速度实现CAN数据加密和解密过程,提高了CAN总线传输的安全性,也提高了整个车载系统内部数据传输和响应的速度。
[0006](二)技术方案
[0007]为实现上述目的,本专利技术提供如下技术方案:一种基于CAN总线传输的硬件加解密实现方法,包括以下步骤:
[0008]S1、对CAN扩展帧将18位扩展I D用于填充目的节点地址,接收方收到扩展I D后与自己对比,如果相同则启动接收,否则不接收;
[0009]S2、数据传输过程中采用RSA非对称加密法,非对称加密和解密需要的公钥和私钥通过应用层计算出;
[0010]S3、在步骤S2对数据加密的过程中,采用华莱士树算法进行压缩,减少对于给定数目加数加法所使用的加法器的数量。
[0011]优选的,SOC系统上电后,将所述步骤S2计算出的公钥和私钥存入各ECU节点的存
储空间中,公钥和私钥是2048位数据,分别以64个32位的数据存储在RAM中。
[0012]优选的,加密和解密的流程都是采用硬件实现方式,任意所述CAN节点的ECU之间加密和解密的流程如下:
[0013](1)CAN节点B获得公钥,使用公钥和RSA加密算法对明文数据进行加密;
[0014](2)CAN节点A获得公钥并得到密文,使用私钥和RSA解密算法对密文进行解密,最后得到明文;
[0015]其中:公钥为1024位e,模数1024位n;
[0016]在CAN节点B发出的C=M
e mod n;
[0017]私钥为1024位d,模数1024位n;
[0018]在CAN节点A收到密文解密后的M=C
d mod n;
[0019]C为密文,M为明文,M
e
即明文的e次幂,C
d
即密文的d次幂,在实现中,算法是公开的,公钥是公开的,私钥是对其它CAN节点保密的。
[0020]优选的,在加密和解密的过程中,把1024位乘数拆分为32bit长度的多段,也将基本乘法进行分段,对于两个乘数的位宽一样的乘数的乘法,采用的是阵列乘法器,具体步骤如下:
[0021](1)对于C、M都是长整数,按多项式展开法,将长整数分解为多个32bit长度的短整数之和,从而:
[0022]M=M
1023
B
M1023
+M
1022
B
M1022
+M
1022
B
M1022
+...+M0,
[0023]C=C
1023
B
C1023
+C
1022
B
C1022
+C
1022
B
C1022
+...+C0,
[0024]其中B
*
=2
k

[0025](2)做计算最低一级乘法M的平方时,先将M的所有项去乘以M0,将所得的结果存在低位R0寄存器和高位C0寄存器中;
[0026](3)再把M的所有项去乘以M1B
M1
,将所得的结果再加上先前的进位字C0值,将结果存在低位R1寄存器和高位C1寄存器中;
[0027](4)再把M的所有项去乘以M2B
M2
,将所得的结果再加上先前的进位字C1值,将结果存在低位R2寄存器和高位C2寄存器中;
[0028](5)重复这个过程直到执行最后一次乘法,将M的所有项乘以M
1023
B
M1023
,将所得的结果再加上先前的进位字C
1022
值,将结果存在低位R
1023
寄存器和高位C
1023
寄存器中;
[0029](6)最后一步将R
1023
加上最后进位字C
1023
作为结果的一部分保存。
[0030]优选的,所述步骤S3中华莱士树3:2压缩加法器最后一级输出给进位传递加法器作为最终结果输出,对最小的32bit*32bit的乘法器,采用流水线乘法器,把不同级的处理进行并行计算。
[0031](三)有益效果
[0032]与现有技术相比,本专利技术提供了一种基于CAN总线传输的硬件加解密实现方法,具备以下有益效果:
[0033]1、对CAN标准协议进行了优化使用,极大的减少硬件开支、产品成本以及大大降低了CAN总线数据传输泄漏的风险;
[0034]2、对CAN数据明文实行加密和解密的过程中,对硬件几乎不能实现的大数据幂模计算过程,进行大数分段、幂模计算简化,拆解为用硬件可实现的方法,并实施了算法压缩,
极大的节省了硬件开支,用具有快速、准确响应的硬件资源实现CAN数据的加密和解密,提高了CAN总线传输的速度、准确性。
附图说明
[0035]图1为CAN的一种连接拓扑结构示意图;
[0036]图2为本专利技术的CAN数据加解密数据流示意图;
[0037]图3为本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CAN总线传输的硬件加解密实现方法,其特征在于,包括以下步骤:S1、对CAN扩展帧将18位扩展ID用于填充目的节点地址,接收方收到扩展ID后与自己对比,如果相同则启动接收,否则不接收;S2、数据传输过程中采用RSA非对称加密法,非对称加密和解密需要的公钥和私钥通过应用层计算出;S3、在步骤S2对数据加密的过程中,采用华莱士树算法进行压缩,减少对于给定数目加数加法所使用的加法器的数量。2.根据权利要求1所述的一种基于CAN总线传输的硬件加解密实现方法,其特征在于,SOC系统上电后,将所述步骤S2计算出的公钥和私钥存入各ECU节点的存储空间中,公钥和私钥是2048位数据,分别以64个32位的数据存储在RAM中。3.根据权利要求2所述的一种基于CAN总线传输的硬件加解密实现方法,其特征在于,加密和解密的流程都是采用硬件实现方式,任意所述CAN节点的ECU之间加密和解密的流程如下:(1)CAN节点B获得公钥,使用公钥和RSA加密算法对明文数据进行加密;(2)CAN节点A获得公钥并得到密文,使用私钥和RSA解密算法对密文进行解密,最后得到明文;其中:公钥为1024位e,模数1024位n;在CAN节点B发出的C=M
e
modn;私钥为1024位d,模数1024位n;在CAN节点A收到密文解密后的M=C
d
modn;C为密文,M为明文,M
e
即明文的e次幂,C
d
即密文的d次幂,在实现中,算法是公开的,公钥是公开的,私钥是对其它CAN节点保密的。4.根据权利要求3所述的一种基于CAN总线传输的硬件加解密实现方法,其特征在于,在加密和解密的过程中,把1024位乘数拆分为32bit长度的多段,也将基本乘法进行分段,对于两个乘数的位宽一样的乘数的乘法,采用的是阵列乘法器,具体步骤如下:(1)对于C、M都是长整数,按多项式展开法,将长整数分解为多个32bit长度的短整数之和,从而:M=M
1023...

【专利技术属性】
技术研发人员:李莉
申请(专利权)人:无锡摩芯半导体有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1