一种车端控制器之间can通讯加密方法、系统、电子设备及计算机可读存储介质
技术领域
1.本发明涉及汽车技术领域,更具体地,涉及一种车端控制器之间can通讯加密方法、系统、电子设备及计算机可读存储介质。
背景技术:2.随着汽车智能化快速发展,汽车端的控制器数量逐渐增加,控制器与控制器之间的通讯普遍采用的是国际通用的can通讯协议,由于can通讯协议是明文发送,这样会导致通讯信息内容很容易被破解。车辆涉及到防盗安全的问题,如果不对通讯内容进行加密,车辆很容易被破解盗窃。
3.现有技术一的技术方案:
4.发明cn201610972203.6提供了一种基于汽车总线的报文加密方法、车辆的控制器及车辆,该方法包括:根据加密矩阵将报文置换为伪随机序列,其中,报文包括校验数据和应用数据,校验数据包括计数器,加密矩阵包括多个伪随机数;根据计数器对伪随机序列进行移位以得到加密报文;将加密报文发送至汽车总线。本发明的方法可以避免报文在汽车总线(如can总线,canfd总线)上传输时被不法份子截获破解,保护车辆信息及驾驶员隐私信息,并防止车辆被非法控制,提升了车辆的可靠性和安全性。
5.现有技术二的技术方案:
6.发明201911060377.5公开了一种汽车远程控制报文的加密处理方法及系统,该方法包括:中央网关将自身vin码广播至第一can总线和第二can总线;远程控制模块执行器根据vin码并通过第一加密算法运算出一级动态滚动码,然后将一级动态滚动码输入至第二加密算法运算出二级动态滚动码并存储,同时将一级动态滚动码经第二can总线发送至中央网关;中央网关通过第一can总线将一级动态滚动码转发至远程控制模块;远程控制模块将一级动态滚动码输入至第二加密算法运算出执行滚动码;远程控制模块执行器判断执行滚动码与二级动态滚动码是否匹配,并根据匹配决定是否响应用户终端发送的控制指令。本发明能够降低通讯报文被攻击的风险,提升安全性。
7.现有技术一的缺点:
8.原始加密矩阵所有车都为一个固定值,原始加密矩阵被一旦被获取到,加密失去作用了。秘钥应该不被轻易获取到。每台车上要有不同专有的秘钥,每台车上每个控制器存储的秘钥要相同。
9.数据加密采用的是查表法,属于是一种低级的数据加密方法,容易被破解。
10.校验值得数据过多,部分校验与can标准通讯协议的校验是重复的;can标准通讯协议中数据场长度有限,过多的校验值,减少了数据内容,通讯效率大幅降低。
11.现有技术二的缺点:
12.采用的是滚码校验的方式,判断报文的有效性,滚码虽然是加密数据,但通讯数据内容还是明文,没有被加密,通讯数据内容轻易被获取到。二级滚码是通过一级滚码生成
的,存在一一对应关系,所有滚码又在总线数据实时发出来,可以通过截取一级滚码和二级滚码,找到规律进行破解。
13.为了保证两个滚码的同时性,预设了100ms发送报文,对于实时性要求比较高的报文,该通讯速率太慢。
14.该专利从原理架构上必须要有一个中央网关进行二次加密,对于没有中央网关的情况无法适用。
15.因此,如何提供一种车端控制器之间can通讯加密方法、系统、电子设备及计算机可读存储介质成为本领域亟需解决的技术难题。
技术实现要素:16.本发明的目的是提供一种车端控制器之间can通讯加密方法、系统、电子设备及计算机可读存储介质。
17.本发明第一方面公开了一种车端控制器之间can通讯加密方法,所述方法包括:
18.步骤s1、应用预设码生成车端控制器之间can通讯数据场加密的秘钥;
19.步骤s2、在明文内容里增加随数sn;
20.步骤s3、在明文内容里增加校验位sc;
21.步骤s4、应用所述秘钥将带有随机数和校验位的明文加密,生成密文。
22.根据本发明第一方面的方法,在所述步骤s1中,所述预设码为vin码。
23.根据本发明第一方面的方法,在所述步骤s1中,应用预设码生成车端控制器之间can通讯数据场加密的秘钥的方法包括:
24.控制器通过预设的方式将vin码转化为sk1,作为第一秘钥,以一个随机的sk2作为第二秘钥;通过des算法或异或算法将所述sk1和sk2转化为sk3,所述sk3作为can通讯数据场加密的秘钥。
25.根据本发明第一方面的方法,在所述步骤s1中,所述随机的sk2通过uds诊断指令写入到每个控制器内。
26.根据本发明第一方面的方法,在所述步骤s2中,每次发送报文,所述随数sn重新生成。
27.根据本发明第一方面的方法,在所述步骤s3中,所述校验位sc为常数;所述常数sc通过uds诊断指令写入到每个控制器内。
28.根据本发明第一方面的方法,在所述步骤s4中,所述加密的方法为对称加密算法,具体包括:
29.如果采用传统can总线,数据场最大为8字节,采用des算法加密;
30.如果采用canfd总线,数据场最大为64字节,采用aes算法进行加密。
31.本发明第二方面公开了一种车端控制器之间can通讯加密系统;所述系统包括:
32.第一处理模块,被配置为,应用预设码生成车端控制器之间can通讯数据场加密的秘钥;
33.第二处理模块,被配置为,在明文内容里增加随数sn;
34.第三处理模块,被配置为,在明文内容里增加校验位sc;
35.第四处理模块,被配置为,应用所述秘钥将带有随机数和校验位的明文加密,生成
密文。
36.本发明第三方面公开了一种电子设备。电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时,实现本公开第一方面中任一项的一种车端控制器之间can通讯加密方法中的步骤。
37.本发明第四方面公开了一种计算机可读存储介质。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现本公开第一方面中任一项的一种车端控制器之间can通讯加密方法中的步骤。
38.根据本发明公开的技术内容,通过aes/des加密算法进行加密,秘钥在控制器内部生成保证安全性,采用随机数产生随机密文,更加安全可靠。
39.通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
40.被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
41.图1为根据实施例提供的一种车端控制器之间can通讯加密方法的流程图;
42.图2a-2b为根据实施例提供的秘钥生成原理图;
43.图3为根据实施例提供的秘钥生成流程图;
44.图4为根据实施例提供的具体应用过程加密解密及校验原理图;
45.图5为根据实施例提供的具体应用过程加密解密及校验流程图。
46.图6为根据本发明实施例的一种车端控制器之间can通讯加密系统的结构图;
47.图7为根据本发明实施例的一种电子设备的结构图。
具体实施方式
48.现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
49.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
50.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
51.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
52.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
53.实施例1:
54.本发明公开了一种车端控制器之间can通讯加密方法。图1为根据本发明实施例的一种车端控制器之间can通讯加密方法的流程图,如图1所示,所述方法包括:
55.步骤s1、应用预设码生成车端控制器之间can通讯数据场加密的秘钥;
56.步骤s2、在明文内容里增加随数sn;
57.步骤s3、在明文内容里增加校验位sc;
58.步骤s4、应用所述秘钥将带有随机数和校验位的明文加密,生成密文。
59.在步骤s1,应用预设码生成车端控制器之间can通讯数据场加密的秘钥。
60.在一些实施例中,在所述步骤s1中,所述预设码为vin码。
61.应用预设码生成车端控制器之间can通讯数据场的加密的秘钥的方法包括:
62.控制器通过预设的方式将vin码转化为sk1,作为第一秘钥,以一个随机的sk2作为第二秘钥;通过des算法或异或算法将所述sk1和sk2转化为sk3,所述sk3作为can通讯数据场加密的秘钥。
63.所述随机的sk2通过uds诊断指令写入到每个控制器内。
64.具体地,对称加密的方式相对于非对称加密,加密解密速度快,适用于控制器之间的信息快速通讯要求。而对称加密方式需要控制器之间保持相同的秘钥,必须要给所有控制器灌入相同秘钥,秘钥又不能被他人轻易获取到。每个车辆法规上都会要求有唯一的vin码,并且控制器要求必须写入vin码。如图2a-2b和图3所示,控制器通过预设的方式将vin码转化为sk1,作为第一秘钥,以一个随机的sk2作为第二秘钥;通过des算法或异或算法将所述sk1和sk2转化为sk3,所述sk3作为can通讯数据场加密的秘钥。
65.由于秘钥sk3最终是在控制器内部生成,外部无法获取到sk3的内容,保证秘钥的安全性。由于生成sk3生成方式和生成所需要的原始数据相同,故单个车上每个控制器的sk3相同。由于使用到vin码故每台车之间的sk3是不同的。
66.通过以上方法既保证了秘钥的安全性,有实现每台上有不同的秘钥。同一台车上的每个控制器都有相同的秘钥sk3,可以对报文进行解码获取数据。
67.在步骤s2,在明文内容里增加随数sn。
68.在一些实施例中,在所述步骤s2中,每次发送报文,所述随数sn重新生成。
69.具体地,由于是固定秘钥加密,故如果明文相同时,密文也是固定的,可以通过不解密密文方式,模拟密文破解车辆的功能,所以需要对相同明文的密文进行随机化。为了保证明文加密的随机性,每次发送报文,所述随数sn重新生成,这样即使明文的数据场内容相同,由于有随机数在明文内,密文会产生随机性,如图4所示。
70.而接收方的控制器,如果在解密时后发现,随机数一直不变,可以认为模拟报文破解,认为报文无效。
71.在步骤s3,在明文内容里增加校验位sc。
72.在一些实施例中,在所述步骤s3中,所述校验位sc为常数;所述常数sc通过uds诊断指令写入到每个控制器内。
73.具体地,由于任何密文都可以解密,随机给控制器发一段乱码密文,都是可以获取到相应的数据,这就存在暴利破解的问题。为了解决这个问题,在明文数据中会有一个常数sc作为校验位,当密文解密后对sc进行校验,如图4所示,如果sc不同则认为报文无效。
74.所述常数sc通过uds诊断指令写入到每个控制器内,这样也可以做到每台车有不同的常数sc,如图2a-2b所示。
75.在步骤s4,应用所述秘钥将带有随机数和校验位的明文加密,生成密文。
76.在一些实施例中,在所述步骤s4中,所述加密的方法为对称加密算法,具体包括:
77.如果采用传统can总线,数据场最大为8字节,采用des算法加密;
78.如果采用canfd总线,数据场最大为64字节,采用aes算法进行加密。
79.具体地,由于本文采用的是对称加密算法,可以采用国际通用的算法:
80.如果采用传统can总线,数据场最大为8字节(64bit),可以采用des算法加密,des加密支持64-56bit,可以直接对数据场进行加密解密。
81.如果采用canfd总线,数据场最大为64字节(512bit),可以采用aes算法进行加密,aes加密支持128-256bit,如果数据为512bit可以将数据分段为两个256bit加密,再将密文合并,解密时同理反推。
82.综上,本发明提出的方案,根据本发明公开的技术内容,通过aes/des加密算法进行加密,秘钥在控制器内部生成保证安全性,采用随机数产生随机密文,更加安全可靠。
83.实施例2:
84.如图4和图5所示,给出具体的加密解密过程。
85.第一控制器用秘钥sk3将带有随机数sn和常数sc的明文加密,生成密文;将密文通过can总线发送给第二控制器;第二控制器通过自己内部的秘钥sk3将密文解密为明文;对比明文中的常数sc和第二控制器中存储的sc是否一致;如果不一致,数据无效;如果一致,对比上一次收到的随机数sn与这一次收到的随机数是否一致,如果一致,数据无效,如果不一致,数据有效,得到数据内容。
86.实施例3:
87.本发明公开了一种车端控制器之间can通讯加密系统。图6为根据本发明实施例的一种车端控制器之间can通讯加密系统的结构图;如图6所示,所述系统100包括:
88.第一处理模块101,被配置为,应用预设码生成车端控制器之间can通讯数据场加密的秘钥;
89.第二处理模块102,被配置为,在明文内容里增加随数sn;
90.第三处理模块103,被配置为,在明文内容里增加校验位sc;
91.第四处理模块104,被配置为,应用所述秘钥将带有随机数和校验位的明文加密,生成密文。
92.根据本发明第二方面的系统,所述第一处理模块101具体被配置为,所述预设码为vin码。
93.应用预设码生成车端控制器之间can通讯数据场的加密的秘钥的方法包括:
94.控制器通过预设的方式将vin码转化为sk1,作为第一秘钥,以一个随机的sk2作为第二秘钥;通过des算法或异或算法将所述sk1和sk2转化为sk3,所述sk3作为can通讯数据场加密的秘钥。
95.所述随机的sk2通过uds诊断指令写入到每个控制器内。
96.具体地,对称加密的方式相对于非对称加密,加密解密速度快,适用于控制器之间的信息快速通讯要求。而对称加密方式需要控制器之间保持相同的秘钥,必须要给所有控制器灌入相同秘钥,秘钥又不能被他人轻易获取到。每个车辆法规上都会要求有唯一的vin码,并且控制器要求必须写入vin码。如图2a-2b和图3所示,控制器通过预设的方式将vin码转化为sk1,作为第一秘钥,以一个随机的sk2作为第二秘钥;通过des算法或异或算法将所述sk1和sk2转化为sk3,所述sk3作为can通讯数据场加密的秘钥。
97.由于秘钥sk3最终是在控制器内部生成,外部无法获取到sk3的内容,保证秘钥的安全性。由于生成sk3生成方式和生成所需要的原始数据相同,故单个车上每个控制器的sk3相同。由于使用到vin码故每台车之间的sk3是不同的。
98.通过以上方法既保证了秘钥的安全性,有实现每台上有不同的秘钥。同一台车上的每个控制器都有相同的秘钥sk3,可以对报文进行解码获取数据。
99.根据本发明第二方面的系统,所述第二处理模块102具体被配置为,每次发送报文,所述随数sn重新生成。
100.具体地,由于是固定秘钥加密,故如果明文相同时,密文也是固定的,可以通过不解密密文方式,模拟密文破解车辆的功能,所以需要对相同明文的密文进行随机化。为了保证明文加密的随机性,每次发送报文,所述随数sn重新生成,这样即使明文的数据场内容相同,由于有随机数在明文内,密文会产生随机性,如图4所示。
101.而接收方的控制器,如果在解密时后发现,随机数一直不变,可以认为模拟报文破解,认为报文无效。
102.根据本发明第二方面的系统,所述第三处理模块103具体被配置为,所述校验位sc为常数;所述常数sc通过uds诊断指令写入到每个控制器内。
103.具体地,由于任何密文都可以解密,随机给控制器发一段乱码密文,都是可以获取到相应的数据,这就存在暴利破解的问题。为了解决这个问题,在明文数据中会有一个常数sc作为校验位,当密文解密后对sc进行校验,如图4所示,如果sc不同则认为报文无效。
104.所述常数sc通过uds诊断指令写入到每个控制器内,这样也可以做到每台车有不同的常数sc,如图2a-2b所示。
105.根据本发明第二方面的系统,所述第四处理模块104具体被配置为,所述加密的方法为对称加密算法,具体包括:
106.如果采用传统can总线,数据场最大为8字节,采用des算法加密;
107.如果采用canfd总线,数据场最大为64字节,采用aes算法进行加密。
108.具体地,由于本文采用的是对称加密算法,可以采用国际通用的算法:
109.如果采用传统can总线,数据场最大为8字节(64bit),可以采用des算法加密,des加密支持64-56bit,可以直接对数据场进行加密解密。
110.如果采用canfd总线,数据场最大为64字节(512bit),可以采用aes算法进行加密,aes加密支持128-256bit,如果数据为512bit可以将数据分段为两个256bit加密,再将密文合并,解密时同理反推。
111.实施例4:
112.本发:公开了一种电子设备。电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时,实现本发明公开实施例1中任一项的一种车端控制器之间can通讯加密方法中的步骤。
113.图7为根据本发明实施例的一种电子设备的结构图,如图7所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或
无线方式的通信,无线方式可通过wifi、运营商网络、近场通信(nfc)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
114.本领域技术人员可以理解,图7中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
115.实施例5:
116.本发明公开了一种计算机可读存储介质。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现本发明的实施例1中任一项的一种车端控制器之间can通讯加密方法中的步骤。
117.请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
118.本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
119.本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如fpga(现场可编程门阵列)或asic(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
120.适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存
驱动器的便携式存储设备,仅举几例。
121.适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cd rom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
122.虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
123.类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
124.由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
125.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
126.虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。