一种基于CAN总线的信息加密传输方法与流程

文档序号:22750588发布日期:2020-10-31 09:44阅读:211来源:国知局
一种基于CAN总线的信息加密传输方法与流程

本发明涉及一种基于can总线的信息加密传输方法,应用于对汽车can总线信息传输的加密处理,保证can总线数据信息安全。



背景技术:

can总线信息通信是汽车内部信息交互的主要方式,can总线通讯基本上采用统一的国际标准,can数据信息容易被外部设备截取或破译,严重威胁车内信息安全。目前应用于汽车领域的总线加密技术,基本上采用基于canfd总线的hsm硬件加密方法,没有一种基于原can总线技术的加密方法,若要使用硬件加密技术则需要更改原控制器的硬件,改动量较大并且成本较高。



技术实现要素:

本发明的目的是提供一种can总线的信息加密传输方法,采用软件加密的方式提高can总线数据在汽车内信息交互时的安全性。

本发明的技术方案是这样实现的:

一种基于can总线的信息加密传输方法,can总线的信息加密由两个通信ecu组成,ecu1进行加密信息发送,ecu2进行加密信息接收;其特征在于:所述ecu1中包含通信模块a和加密模块;所述ecu2中包含通信模块b和解密模块;ecu1的通信模块a将通信报文发送给内部加密模块,加密模块处理后生成加密报文,生成的加密报文再通过ecu1的通信模块a发送给ecu2的通信模块b,ecu2的通信模块b将接收到的加密报文传递给ecu2的解密模块进行解密处理,解密成功或失败的结果信息再由ecu2的通信模块b反馈给ecu1的通信模块a。

技术方案中所述加密报文采用8字节数据场。

进一步地,将byte0定义为操作指令信息,byte1-byte3定义为加密报文的时间戳信息。

技术方案中所述加密报文采用0-16777215顺序编码。

进一步地,byte4-byte7为前byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据。

一种基于can总线的信息加密传输方法,包括以下步骤:

1)ecu1的通信模块a将所有加密的信息传递给ecu1的加密模块;

2)ecu1的加密模块将所含信息的操作指令放于加密报文中的byte0字节,将初始的时间戳在发送前做加1操作,置于加密报文中的byte1-byte3字节;

3)ecu1的byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据置于byte4-byte7字节中;

4)ecu1的加密模块将处理后的加密报文传递给ecu1的通信模块a;

5)ecu1的通信模块a将该加密报文通过can总线发送给ecu2的通信模块b;

6)ecu2的通信模块b将接收到的加密报文传递给ecu2的解密模块进行数据解密;

7)ecu2的解密模块将收到的加密报文的byte0-byte3与密钥进行aes算法转换后截取高4字节加密数据与ecu1的byte4-byte7进行对比,相同则执行第8)步,不相同则终止,并将失败结果反馈给ecu1;

8)ecu2的解密模块将byte1-byte3与自身的时间戳进行差值判断,若来自ecu1的byte1-byte3的时间戳与ecu2内部的时间戳数值差值大于等于1且小于等于10,则执行byte0的操作指令并将自身存储的时间戳替换为ecu1中byte1-byte3的时间戳数据,否则终止,并将失败结果反馈给ecu1。

一种基于can总线的信息加密传输方法,通过can总线信息加密传输方法实现远程启动发动机报文发送,ecu1为tbox,ecu2为peps,tbox和peps提前写入相同的密钥值,时间戳初始值均设置为0,按照以下步骤执行:

1)tbox的通信模块a将启动发动机的信号传递给tbox的加密模块;

2)tbox的加密模块将启动发动机的操作指令放于加密报文中的byte0字节,将初始的时间戳在发送前做加1操作,放于加密报文中的byte1-byte3字节;

3)tbox的byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据放于byte4-byte7字节中;

4)tbox的加密模块将处理后的加密报文传递给tbox的通信模块a;

5)tbox的通信模块a将该加密报文通过can总线发送给peps的通信模块b;

6)peps的通信模块b将接收到的加密报文传递给peps的解密模块进行数据解密;

7)peps的解密模块将收到的加密报文的byte0-byte3与密钥进行aes算法转换后截取高4字节加密数据与tbox的byte4-byte7进行对比,通过比对后,比对结果相同;

8)peps的解密模块将byte1-byte3与自身的时间戳进行差值判断,来自tbox的byte1-byte3的时间戳与peps内部的时间戳数值差值等于1,peps将执行启动发动机的指令,并将自身存储的时间戳替换为tbox中byte1-byte3的时间戳数据1,整个加密通信过程结束。

一种基于can总线的信息加密传输方法,通过can总线信息加密传输方法实现远程解锁车门报文发送,ecu1为tbox,ecu2为bcm,tbox和bcm提前写入不同的密钥值,时间戳初始值均设置为0,按照以下步骤执行:

1)tbox的通信模块a将解锁车门的信号传递给tbox的加密模块;

2)tbox的加密模块将解锁车门的操作指令放于加密报文中的byte0字节,将初始的时间戳在发送前做加1操作,放于加密报文中的byte1-byte3字节;

3)tbox的byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据放于byte4-byte7字节中;

4)tbox的加密模块将处理后的加密报文传递给tbox的通信模块a;

5)tbox的通信模块a将该加密报文通过can总线发送给bcm的通信模块b;6)bcm的通信模块b将接收到的加密报文传递给bcm的解密模块进行数据解密;

7)bcm的解密模块将收到的加密报文的byte0-byte3与自身密钥进行aes算法转换后截取高4字节加密数据与tbox的byte4-byte7进行对比,由于tbox和bcm的密钥值不同,所以比对结果不同,bcm将失败结果反馈给tbox,通讯结束,bcm未能执行远程解锁车门的操作。

一种基于can总线的信息加密传输方法,通过can总线信息加密实现遥控解锁行李箱报文发送,ecu1为ble,ecu2为bcm,双方提前写入相同密钥值,ble的时间戳设置为10,bcm的时间戳设置为0,按照以下步骤执行:

1)ble的通信模块a将遥控解锁行李箱的信号传递给bcm的加密模块;

2)ble的加密模块将遥控解锁行李箱的操作指令放于加密报文中的byte0字节,将初始的时间戳在发送前做加1操作,放于加密报文中的byte1-byte3字节;

3)ble的byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据放于byte4-byte7字节中;

4)ble的加密模块将处理后的加密报文传递给ble的通信模块a;

5)ble的通信模a块将该加密报文通过can总线发送给bcm的通信模块b;6)bcm的通信模块b将接收到的加密报文传递给bcm的解密模块进行数据解密;

6)bcm的解密模块将收到的加密报文的byte0-byte3与密钥进行aes算法转换后截取高4字节加密数据与ble的byte4-byte7进行对比,通过比对后,比对结果相同;

8)bcm的解密模块将byte1-byte3与自身的时间戳进行差值判断,来自ble的byte1-byte3的时间戳与bcm内部的时间戳数值差值等于11,时间戳差值超出设定的范围,通讯终止,bcm将失败结果反馈给ble,bcm未能执行遥控解锁行李箱的操作。

本发明与现有技术相比,有益技术效果:

本发明可以在原有can硬件的基础上实现信息加密,无需改动原can控制器的硬件电路,成本较低。此加密传输方法逻辑简单,在不同的can芯片上均能实现,软件代码开发量少。此加密逻辑对can报文进行分段操作,报文的安全性更高,不易破解。

附图说明

图1为本发明所述的一种基于can总线的信息加密传输方法系统结构图;

图2为本发明所述的一种基于can总线的信息加密传输方法的信息处理及传输过程示意图。

具体实施方式

can总线信息加密由两个通信ecu组成,ecu1进行加密信息发送,ecu2进行加密信息接收。其特征在于:ecu1中包含通信模块a和加密模块;ecu2中包含通信模块b和解密模块;ecu1的通信模块a将通信报文发送给内部加密模块,加密模块处理后生成加密报文,生成的加密报文再通过ecu1的通信模块a发送给ecu2的通信模块b,ecu2的通信模块b将接收到的加密报文传递给ecu2的解密模块进行解密处理,解密成功或失败的结果信息再由ecu2的通信模块b反馈给ecu1的通信模块a。

上述加密报文的特征在于:can总线报文采用8字节数据场,byte0定义为操作指令信息,byte1-byte3定义为该报文的时间戳信息,采用0-16777215顺序编码,byte4-byte7为前byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据。

如图1所示,本系统由ecu1、ecu2及can总线总成,第1节点与第2节点通过can总线3相连,节点1进行加密信息发送,节点2进行加密信息接收。节点1中包含通信模块a1-1和加密模块1-2;节点2中包含通信模块b2-1和解密模块2-2;节点1的通信模块a1-1将通信报文发送给内部加密模块1-2,加密模块1-2处理后生成加密报文,生成的加密报文再通过节点1的通信模块a1-1发送给节点2的通信模块b2-1,节点2的通信模块b2-1将接收到的加密报文传递给节点2的解密模块2-2进行解密处理,解密成功或失败的结果信息再由节点2的通信模块b2-1反馈给节点1的通信模块a1-1。

表1为加密报文格式;

表1

预加密的can总线报文由8字节数据场组成,将byte0定义为操作指令信息,byte1-byte3定义为该报文的时间戳信息,采用0-16777215顺序编码,byte0-byte3的数据与密钥使用aes算法转换,转换后截取高4字节作为加密数据,存储在byte4-byte7,加密的报文方可在总线上进行传输。

具体的信息加密传输方法,如图2所示:

1)ecu1的通信模块将所有加密的信息传递给ecu1的加密模块;

2)ecu1的加密模块将所含信息的操作指令放于加密报文中的byte0字节,将初始的时间戳在发送前做加1操作,置于加密报文中的byte1-byte3字节;

3)ecu1的byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据置于byte4-byte7字节中;

4)ecu1的加密模块将处理后的加密报文传递给ecu1的通信模块;

5)ecu1的通信模块将该加密报文通过can总线发送给ecu2的通信模块;

6)ecu2的通信模块将接收到的加密报文传递给ecu2的解密模块进行数据解密;

7)ecu2的解密模块将收到的加密报文的byte0-byte3与密钥进行aes算法转换后截取高4字节加密数据与ecu1的byte4-byte7进行对比,相同则执行第8步,不相同则终止,并将失败结果反馈给ecu1;

8)ecu2的解密模块将byte1-byte3与自身的时间戳进行差值判断,若来自ecu1的byte1-byte3的时间戳与ecu2内部的时间戳数值差值大于等于1且小于等于10,则执行byte0的操作指令并将自身存储的时间戳替换为ecu1中byte1-byte3的时间戳数据,否则终止,并将失败结果反馈给ecu1;

实施例1

如图2所示,某车型通过can总线信息加密传输方法实现远程启动发动机报文发送,ecu1为tbox,ecu2为peps,tbox和peps提前写入相同的密钥值,时间戳初始值均设置为0,按照以下步骤执行:

6)tbox的通信模块a将启动发动机的信号传递给tbox的加密模块;

7)tbox的加密模块将启动发动机的操作指令放于加密报文中的byte0字节,将初始的时间戳在发送前做加1操作,放于加密报文中的byte1-byte3字节;

8)tbox的byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据放于byte4-byte7字节中;

9)tbox的加密模块将处理后的加密报文传递给tbox的通信模块a;

10)tbox的通信模块a将该加密报文通过can总线发送给peps的通信模块b;

6)peps的通信模块b将接收到的加密报文传递给peps的解密模块进行数据解密;

7)peps的解密模块将收到的加密报文的byte0-byte3与密钥进行aes算法转换后截取高4字节加密数据与tbox的byte4-byte7进行对比,通过比对后,比对结果相同;

8)peps的解密模块将byte1-byte3与自身的时间戳进行差值判断,来自tbox的byte1-byte3的时间戳与peps内部的时间戳数值差值等于1,peps将执行启动发动机的指令,并将自身存储的时间戳替换为tbox中byte1-byte3的时间戳数据1,整个加密通信过程结束。

实施例2

如图2所示,某车型通过can总线信息加密传输方法实现远程解锁车门报文发送,ecu1为tbox,ecu2为bcm,tbox和bcm提前写入不同的密钥值,时间戳初始值均设置为0,按照以下步骤执行:

6)tbox的通信模块a将解锁车门的信号传递给tbox的加密模块;

7)tbox的加密模块将解锁车门的操作指令放于加密报文中的byte0字节,将初始的时间戳在发送前做加1操作,放于加密报文中的byte1-byte3字节;

8)tbox的byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据放于byte4-byte7字节中;

9)tbox的加密模块将处理后的加密报文传递给tbox的通信模块a;

10)tbox的通信模块a将该加密报文通过can总线发送给bcm的通信模块b;6)bcm的通信模块b将接收到的加密报文传递给bcm的解密模块进行数据解密;

7)bcm的解密模块将收到的加密报文的byte0-byte3与自身密钥进行aes算法转换后截取高4字节加密数据与tbox的byte4-byte7进行对比,由于tbox和bcm的密钥值不同,所以比对结果不同,bcm将失败结果反馈给tbox,通讯结束,bcm未能执行远程解锁车门的操作。

实施例3

如图2所示,某车型通过can总线信息加密实现遥控解锁行李箱报文发送,ecu1为ble(蓝牙钥匙),ecu2为bcm,双方提前写入相同密钥值,ble的时间戳设置为10,bcm的时间戳设置为0,按照以下步骤执行:

7)ble的通信模块a将遥控解锁行李箱的信号传递给bcm的加密模块;

8)ble的加密模块将遥控解锁行李箱的操作指令放于加密报文中的byte0字节,将初始的时间戳在发送前做加1操作,放于加密报文中的byte1-byte3字节;

9)ble的byte0-byte3的数据与密钥进行aes算法转换后截取的高4字节加密数据放于byte4-byte7字节中;

10)ble的加密模块将处理后的加密报文传递给ble的通信模块a;

11)ble的通信模a块将该加密报文通过can总线发送给bcm的通信模块b;

6)bcm的通信模块b将接收到的加密报文传递给bcm的解密模块进行数据解密;

7)bcm的解密模块将收到的加密报文的byte0-byte3与密钥进行aes算法转换后截取高4字节加密数据与ble的byte4-byte7进行对比,通过比对后,比对结果相同;

8)bcm的解密模块将byte1-byte3与自身的时间戳进行差值判断,来自ble的byte1-byte3的时间戳与bcm内部的时间戳数值差值等于11,时间戳差值超出设定的范围,通讯终止,bcm将失败结果反馈给ble,bcm未能执行遥控解锁行李箱的操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1