本发明涉及一种基于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未能执行遥控解锁行李箱的操作。