数据通信系统、数据通信方法、服务器和车辆与流程

文档序号:20838826发布日期:2020-05-22 17:13阅读:189来源:国知局
数据通信系统、数据通信方法、服务器和车辆与流程

本发明的实施例涉及车辆,特别是车辆与服务器之间的数据通信。



背景技术:

数据安全是车辆和服务器之间通信的最重要因素之一。通常,通过向要发送的内容添加哈希值来构建数据,从而增强数据通信的安全性。然而,如果用于生成哈希值的哈希函数由于黑客攻击或其他恶意攻击而公开,则基于使用此类哈希值的数据安全技术不能可靠地保护发送的内容。



技术实现要素:

本发明的一个方面在于提高数据发送设备和数据接收设备之间的数据通信中的数据安全性。

本发明的附加方面部分通过下文的描述提出,部分由描述中显现出,或通过本发明的实施例得知。

根据本发明的实施例,数据通信系统可以包括:数据发送设备,配置为使用多个先前哈希值之一作为第一种子数来生成第一哈希值,使用第一哈希值加密数据,并发送加密的数据;以及数据接收设备,配置为接收从数据发送设备发送的数据,将数据发送设备生成的第一哈希值从数据中分离,使用多个先前哈希值之一作为第二种子数来计算第二哈希值,并根据计算出的第二哈希值是否与从数据中分离的第一哈希值一致来确定数据的有效性。

数据发送设备可以包括第一延迟函数生成器,配置为使用多个先前哈希值之一生成第一种子数。

数据接收设备可以包括第二延迟函数生成器,配置为使用多个先前哈希值之一计算第二种子数。

数据接收设备可以包括比较器,配置为比较使用多个先前哈希值之一作为第二种子数计算出的第二哈希值与从数据中分离的第一哈希值,并且确定计算出的第二哈希值是否与从数据中分离的第一哈希值一致。

当数据发送设备生成第一哈希值时,第一种子数可以使用预定初始值。

此外,根据本发明的实施例,数据通信方法可以包括:通过数据发送设备,使用多个先前哈希值之一作为第一种子数来生成第一哈希值;通过数据发送设备,使用第一哈希值来加密数据;通过数据发送设备发送加密的数据;通过数据接收设备接收从数据发送设备发送的数据;通过数据接收设备,从数据中分离数据发送设备生成的第一哈希值;通过数据接收设备,使用多个先前哈希值之一作为第二种子数来计算第二哈希值;以及通过数据接收设备,基于计算出的第二哈希值是否与从数据中分离的第一哈希值一致来确定数据的有效性。

方法还可以包括通过数据发送设备使用多个先前哈希值之一来生成第一种子数。

方法还可以包括通过数据接收设备使用先前哈希值之一来生成第二种子数。

方法还可以包括通过数据接收设备比较使用先前哈希值之一作为第二种子数计算出的第二哈希值与从数据中分离的第一哈希值,以及通过数据接收设备确定计算出的第二哈希值是否与从数据中分离的第一哈希值一致。

当数据发送设备生成第一哈希值时,第一种子数可以使用预定初始值。

此外,根据本发明的实施例,数据通信系统可以包括:服务器,配置为使用多个先前哈希值之一作为第一种子数来生成第一哈希值,使用第一哈希值加密数据,并发送加密的数据;以及车辆,配置为接收从数据发送设备发送的数据,将数据发送设备生成的第一哈希值从数据中分离,使用多个先前哈希值之一作为第二种子数来计算第二哈希值,并根据计算出的第二哈希值是否与从数据中分离的第一哈希值一致来确定数据的有效性。

此外,根据本发明的实施例,服务器可以包括:延迟函数生成器,配置为生成先前哈希值;哈希值生成器,配置为使用先前哈希值作为种子数生成新哈希值;数据配置器,配置为使用新哈希值加密数据;以及发送器,配置为发送加密的数据。

当哈希值生成器生成新哈希值时,种子数可以使用预定初始值。

此外,根据本发明的实施例,车辆可以包括:接收器,配置为接收使用第一哈希值加密的数据;数据分离器,配置为将第一哈希值从数据中分离;延迟函数生成器,配置为使用先前哈希值计算种子数,并使用计算出的种子数计算第二哈希值;以及比较器,配置为根据计算出的第二哈希值是否与从数据中分离的第一哈希值一致来确定数据的有效性。

当生成第一哈希值时,种子数可以使用预定初始值。

附图说明

结合下述附图,本发明的这些和/或其他方面将从以下对实施例的描述中变得显而易见,并更容易理解:

图1是示出根据本发明的实施例的车辆与远程信息处理中心(服务器)之间的通信的视图;

图2是示出根据本发明的实施例的每一车辆和服务器的控制系统的视图;

图3a和图3b是示出根据本发明的实施例的车辆控制方法的视图;以及

图4是具体示出图3a和图3b所示的车辆控制方法的相互更新确认过程的视图。

应该理解的是,上面提到的视图没有必要缩放,而是呈现对说明本发明的基本原理的各种优选特征的某种简化表示。本发明的具体设计特征(包括例如特定尺寸、取向、位置和形状)将在某种程度上由特定的预期应用和使用环境确定。

具体实施方式

下文将参照附图详细描述本发明的实施例。如本领域技术人员将意识到的那样,描述的实施例可以以各种不同的方式更改,所有这些都不背离本发明的精神或范围。此外,在整个说明书中,同样的附图标记指代同样的元件。

本文使用的术语仅用于描述特定实施例,而不旨在限制本发明。如本文所使用的,单数形式“一个”、“一种”和“所述”也旨在包括复数形式,除非上下文另有明确指示。进一步理解,在本说明书中使用时,词语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或他们的组。如本文所使用的,词语“和/或”包括一个或多个相关列出项目的任何和所有组合。

应当理解,本文使用的术语“车辆”或“车辆的”或其他相似的术语一般包括机动车辆,例如包括运动型多功能车辆(suv)、公共汽车的客车、卡车、各种商用车辆;包括各种艇、船只的船舶、航空器等,并包括混合动力车辆、电动车辆、插电式混合动力电动车辆、氢动力车辆和其他替代燃料车辆(例如,来自非石油资源的燃料)。如本文所提及的,混合动力车辆是具有两种或更多种动力源的车辆,例如兼备汽油动力和电动力的车辆。

附加地,应当理解,以下方法中的一个或多个、或其方面可以由至少一个控制单元执行。词语“控制单元”可以指代包括存储器和处理器的硬件装置。储存器配置为存储程序指令,处理器被专门编程以执行用于实现下面进一步描述的一个或多个过程的程序指令。控制单元可以控制本文描述的单元、模块、部件、装置等的操作。此外,应当理解,如本领域普通技术人员所理解的,以下方法可以由包括与一个或多个其他组件结合的控制单元的设备执行。

此外,本发明的控制单元可以体现为包含由处理器执行的可执行程序指令的非暂时性计算机可读介质。计算机可读介质的示例包括但不限于rom、ram、光盘(cd)-rom、磁带、软盘、闪存驱动器、智能卡和光学数据存储装置。计算机可读记录介质还可以分布在整个计算机网络中,以便程序指令以分布式方式存储和执行,例如,通过远程信息处理服务器或控制器局域网(can)。

现在,参照本发明公开的实施例,图1是示出根据本发明的实施例的车辆与远程信息处理中心(服务器)之间的通信的视图。

如图1所示,车辆100可以与位于远端的远程信息处理中心102的服务器104通信。远程信息处理中心102的服务器104可以通过无线通信支持车辆100的各种装置的软件或固件的更新。服务器104和车辆100是分别作为用于发送数据的数据发送设备(即,服务器)和用于接收数据的数据接收设备(即,车辆)构成数据通信系统的元件。

图2是示出根据本发明的实施例的每一车辆和服务器的控制系统的视图。

服务器104可以向更新车辆100的软件或固件所需的内容添加哈希值,并将添加的哈希值发送到车辆100。服务器104可以包括内容存储部212、数据配置器214、哈希值生成器216、延迟函数生成器218(即,第一延迟函数生成器)以及发送器220。

服务器104的内容存储部212可以存储从服务器104发送到车辆100的内容(即,数据)。存储在内容存储部212中的内容可以例如是由安装在车辆100中的电子控制单元(ecu)驱动的软件、固件、设定值等。替代地,存储在内容存储部212中的内容可以例如是用于导航的地图数据。

数据配置器214可以将哈希值与要从服务器104发送到车辆100的内容(即,数据)组合并构建要发送的数据。如下所述,哈希值(替代地,本文中称为“第一哈希值”)由哈希值生成器216生成。

哈希值生成器216可以生成哈希值,并将生成的哈希值发送到数据配置器214和延迟函数生成器218。为此,哈希值生成器216可以具有用于生成哈希值的函数。内容存储部212的内容和延迟函数生成器218的种子数可以作为哈希值生成器216的输入。种子数(替代地,本文中称为“第一种子数”)可以用于生成作为随机数的哈希值。

延迟函数生成器218可以存储先前种子数(即,初始值或哈希值)。延迟函数生成器218可以接收初始值。初始值可以是延迟函数生成器218中初始设置的种子数。当生成第一种子数时,可以使用初始值。在生成后续第二种子数时,新种子数可以通过使用过去生成的哈希值(例如,之前刚生成的哈希值或在过去特定时间生成的哈希值)来生成。延迟函数生成器218的初始值可以因车辆的不同而不同。

也就是说,在生成第(m+1)个哈希值时,可以使用生成的第m个哈希值作为种子数。在生成第(m+2)个哈希值时,可以使用生成的第(m+1)个哈希值作为种子数。种子数的生成不限于使用先前哈希值,可以根据所约定的规则选择先前哈希值中的任何一个,并用来生成新种子数。例如,可以使用第5个种子数之前的种子数,而不是最近生成的种子数。替代地,可以使用车辆号生成新种子数。

发送器220可以设置为将数据从服务器104发送到车辆100。发送器220可以加密和发送数据。

车辆100可以从服务器104接收更新软件或固件所需的数据(包括内容和哈希值),并在确认哈希值比较后执行更新。为此,车辆100可以包括接收器250、数据分离器252、内容存储部254、哈希值生成器(即,哈希函数)256、比较器258和延迟函数生成器260(即,第二延迟函数生成器)。

接收器250可以设置为接收从服务器104发送到车辆100的数据。如果需要,接收器250可以解密接收的数据。

数据分离器252可以将通过接收器250接收的数据中的内容和哈希值分开。

内容存储部254可以存储内容,在该内容中,哈希值从接收的数据中分离。存储在内容存储部254中的内容可以用于更新车辆100的软件或固件。

车辆100的哈希值生成器(即,哈希函数)256可以生成哈希值(替代地,本文中称为“第二哈希值”),并将生成的哈希值发送到比较器258和延迟函数生成器260。为此,哈希值生成器256可以具有用于生成哈希值的函数。内容存储部254的内容和延迟函数生成器260的种子数可以作为哈希值生成器256的输入。种子数(替代地,本文中称为“第二种子数”)可以用于生成作为随机数的哈希值。

比较器258可以比较两个哈希值并确认匹配。两个哈希值之一可以是在数据分离器252中与内容分离的哈希值(即,第一哈希值)。两个哈希值中的另一个可以是通过在哈希值生成器256中应用哈希函数生成的哈希值(即,第二哈希值)。当两个哈希值一致时,可以看出,从服务器104发送的内容是安全的,被车辆100正常接收,并满足完整性和有效性。

车辆100的延迟函数生成器260可以存储先前种子数(即,初始值或哈希值),并使用先前种子数(即,初始值或哈希值)生成新种子数。延迟函数生成器260可以接收初始值。初始值可以是在延迟函数生成器260中初始设定的种子数。当生成第一哈希值时,可以使用初始值。当生成后续第二哈希值时,可以使用之前(在一些情况下,之前刚)生成的哈希值生成新哈希值。延迟函数生成器260的初始值可以因车辆的不同而不同。

延迟函数生成器218和260可以设置为与哈希值生成器216和256一起进一步增强从服务器104发送到车辆100的数据的安全性。与哈希值生成器216和256单独生成哈希值的情况相比,当哈希值生成器216和256基于延迟函数生成器218和260生成的种子数生成哈希值时,能够确保更高级别的安全性。也就是说,在延迟函数生成器218和260中生成种子数的过程中确保初级安全性,并且在哈希值生成器216和256中基于延迟函数生成器218和260的种子数生成哈希值的过程中确保二级安全性,使得与哈希值生成器216和256单独生成哈希值的情况相比,可以确保更高级别的安全性。

图3a和图3b是示出根据本发明的实施例的车辆控制方法的视图。图3a是示出服务器104中的控制的视图,并且图3b是示出车辆100中的控制的视图。图3a的服务器104的操作306、310和356分别与图3b的车辆100的操作324、340和374结合。即,图3a和图3b的控制操作不是相互分离的,而是包括相互关联的软件和/或固件更新的一系列过程,例如发送、接收和确认。因此,将参考图3a和图3b描述根据本发明的实施例的车辆控制方法。

如图3a所示,服务器104可以向要发送到车辆100的内容添加哈希值,构建并发送数据,并将哈希值存储在延迟函数生成器218中。

首先,服务器104可以选择要向作为客户端的车辆100发送的第一内容(302)。例如,第一内容可以是用于驱动ecu的软件的当前版本(版本1.0)。第一内容的选择可以根据与预定软件和/或固件更新计划,也可以是用户的选择。

当要发送到车辆100的第一内容被选择时,哈希值生成器216可以使用哈希函数生成哈希值(304)。哈希值生成器216可以在第一次生成哈希值时使用通过延迟函数生成器218提供的初始值(例如,‘1234’),并且在生成后续第二哈希值时使用之前(之前刚)生成的哈希值来生成新哈希值。在本示例中,使用初始值首先生成的哈希值被假定为‘5678’。

因为确保要发送的内容(即,第一内容)与哈希值‘5678’,所以数据配置器214可以将第一内容与哈希值‘5678’组合起来以构建要发送的数据(306)。也就是说,可以由数据配置器214配置<第一内容+5678>类型的数据。数据通过发送器220发送到作为客户端的车辆100。

服务器104的哈希值生成器216也可以将生成的哈希值‘5678’发送到延迟函数生成器218。延迟函数生成器218可以存储从哈希值生成器216接收的哈希值‘5678’。存储在延迟函数生成器218中的哈希值‘5678’可以用于生成下一个哈希值。

通过该过程,可以完成将第一内容(版本1.0)从服务器104传输到车辆100。

接下来,将参照图3b描述使用从服务器104发送的数据对车辆100进行更新的过程。

如图3b所示,车辆100的数据分离器252可以通过接收端250接收从服务器104发送的数据,并将接收的数据中的内容和哈希值分离(326)。也就是说,通过数据分离器252的分离过程,接收的数据可以被分离为<第一内容(版本1.0)>和<哈希值‘5678’>。

当完成数据的接收和分离时,车辆100的哈希值生成器256可以基于接收的第一内容(版本1.0)生成哈希值(330)。此时车辆100的哈希值生成器256生成的哈希值可以基于第一内容和初始值‘1234’生成,就像服务器104的哈希值生成器216中一样。因此,当从服务器104到车辆100正常执行数据传输时,从服务器104发送到车辆100的数据的哈希值与车辆100的哈希值生成器256生成的哈希值应该相等,且等于‘5678’。

车辆100的比较器258可以比较从服务器104发送到车辆100的数据的哈希值与车辆100的哈希值生成器256生成的哈希值(334)。比较器258的比较是为了确认从服务器104发送到车辆100的数据的哈希值与车辆100的哈希值生成器256生成的哈希值是否一致。

当从服务器104发送到车辆100的数据的哈希值与车辆100的哈希值生成器256生成的哈希值一致且等于‘5678’(在334中为匹配)时,车辆100可以使用接收的第一内容(版本1.0)执行更新,并且哈希值‘5678’存储在车辆100的延迟函数生成器260中(336)。存储的哈希值‘5678’可以用于生成下一个哈希值。

通过这一系列过程,服务器104可以向车辆100发送用于更新的数据,并从车辆100接收数据,以执行更新。接下来,可以执行确认服务器104和车辆100两者的延迟函数生成器218中存储的哈希值是否一致的过程(即,同步化)。为此,可以执行图3a的相互更新确认310和图3b的相互更新确认340。

图3a的相互更新确认310和图3b的相互更新确认340的具体内容稍后将在图4中详细描述。

回到图3a,在通过从服务器104到车辆100的第一内容的传输来更新车辆100中的主软件和/或固件之后,可以生成从现有第一内容到新第一内容的更新请求。在这种情况下,如图3a所示,服务器104可以选择要发送到作为客户端的车辆100的第二内容(352)。例如,第二内容可以是驱动ecu的软件的新版本(版本2.0)。第二内容的选择可以根据预定软件和/或固件更新计划,或者可以是用户的选择。

当要发送到车辆100的第二内容被选择时,哈希值生成器216可以使用哈希函数生成哈希值(354)。服务器104的哈希值生成器216使用用于发送第一内容的初始值‘1234’来生成哈希值‘5678’。在发送第二内容时,可以使用在先前步骤中生成并存储在延迟函数生成器218中的哈希值‘5678’生成用于发送第二内容的新哈希值。在实施例中,使用现有哈希值‘5678’生成的新哈希值被假定为‘9743’。

因为确保要发送的内容(即,第二内容)和哈希值‘9743’,所以数据配置器214可以将第二内容与哈希值‘9743’组合起来,以构建要发送的数据(356)。也就是说,可以由数据配置器214配置<第二内容+9743>类型的数据。数据通过发送器220发送到作为客户端的车辆100。

服务器104的哈希值生成器216也可以将生成的哈希值‘9743’发送到延迟函数生成器218。延迟函数生成器218可以存储从哈希值生成器216接收的哈希值‘9743’。存储在延迟函数生成器218中的哈希值‘9743’可以用于生成下一个哈希值。

通过该过程,可以完成第二内容(版本2.0)从服务器104到车辆100的传输。

已经使用第一内容(版本1.0)完成更新的车辆100可以使用从服务器104发送的新数据(版本2.0)再次执行更新。下文将参照图3b描述使用从服务器104发送的新内容对车辆100进行进一步更新的过程。

如图3b所示,车辆100的数据分离器252可以通过接收端250接收从服务器104发送的数据,并将接收的数据中的内容和哈希值分离(376)。也就是说,通过数据分离器252的分离过程,可以将接收的数据分离成<第二内容(版本2.0)>和<哈希值‘9743’>。

当完成数据的接收和分离时,车辆100的哈希值生成器256可以基于接收的第二内容(版本2.0)生成哈希值(380)。此时车辆100的哈希值生成器256生成的哈希值可以基于第二内容和存储在延迟函数生成器260中的先前哈希值‘5678’来生成,就像服务器104的哈希值生成器216中一样。因此,当从服务器104到车辆100正常执行数据传输时,从服务器104发送到车辆100的数据的哈希值与车辆100的哈希值生成器256生成的哈希值应该相等,且等于‘9743’。

车辆100的比较器258可以比较从服务器104发送到车辆100的数据的哈希值与车辆100的哈希值生成器256生成的哈希值(334)。比较器258的比较是为了确认从服务器104发送到车辆100的数据的哈希值与车辆100的哈希值生成器256生成的哈希值是否一致。

当从服务器104发送到车辆100的数据的哈希值与车辆100的哈希值生成器256生成的哈希值一致且等于‘9743’(在384中为匹配)时,车辆100可以使用接收的第二内容(版本2.0)执行更新,哈希值‘9743’存储在车辆100的延迟函数生成器260中(386)。存储的哈希值‘9743’可以用于生成下一个哈希值。

通过这一系列过程,服务器104可以向车辆100发送用于更新的数据,并从车辆100接收数据,以执行更新。接下来,可以执行确认服务器104和车辆100两者的延迟函数生成器218中存储的哈希值是否一致的过程(即,同步化)。为此,可以执行图3a的相互更新确认310和图3b的相互更新确认340。

图3a的相互更新确认310和图3b的相互更新确认340的具体内容稍后将在图4中详细描述。

当在图3b中比较操作334和384中比较的连个哈希值彼此不一致(在334和384中为不匹配)时,确定没有正常执行从服务器104到车辆100的数据传输,并且通知用户数据传输失败来告知用户软件和/或固件的更新未能正常执行(338)。

图4是具体示出图3a和图3b中所示车辆控制方法中相互更新确认过程的视图。当使用从服务器104发送到车辆100的数据的内容完成对车辆100中的软件和/或固件的更新后,服务器104和车辆100可以执行一系列过程,以确认更新是否正常完成。当服务器104没有正常地响应从车辆100到服务器104的确认请求时,服务器104和车辆100两者执行相互更新确认过程,以匹配哈希值。

如图4所示,车辆100可以向服务器104发送更新确认消息,以通知服务器104更新已经完成(412)。

服务器104可以通过接收从车辆100发送的更新确认消息,来识别车辆100中的软件和/或固件已正常更新。相应地,当从车辆100发送的更新确认消息正常到达服务器104(416中的“是”)时,服务器104可以生成到达确认消息并将其发送到车辆100(418)。

此外,由于软件和/或固件的更新已经正常完成,并且服务器104已经响应了车辆100的确认请求,所以服务器104可以保持存储在服务器104的延迟函数生成器218中的哈希值不变(420)。

在步骤416中,为了确定更新确认消息是否已经到达,当更新确认消息没有到达(416中的“否”)时,可以将新特定函数存储在服务器104的延迟函数生成器218中(424)。

车辆100可以确认是否从服务器104接收到到达确认消息(432)。

由于已经正常完成软件和/或固件的更新,并且服务器104已经响应了车辆100的确认请求,所以当从服务器104接收到到达确认信息(432中的“是”)时,车辆100可以保持存储在车辆100的延迟函数生成器218中的哈希值不变(434)。

当没有从服务器104接收到到达确认信息(432中的“否”和n次重试)时,车辆100可以重试预定次数(例如,n次)的确认过程,以准确确认是否从服务器104接收到到达确认信息。

替代地,当尽管n次尝试后,仍没有从服务器104接收到到达确认信息(432中的“否”和n+1次重试)时,车辆100可以设定特定哈希值以及存储在延迟函数生成器260中的哈希值作为用于生成下一个哈希值的候选种子数(436)。

当生成下一个哈希值时,使用先前哈希值(即,存储在当前延迟函数生成器260中的作为种子数的哈希值)生成新哈希值,并且确认新哈希值是否与服务器104中生成的哈希值匹配。当哈希值不匹配时,可以使用设定为作为种子数的候选的特定哈希值来生成新哈希值。

应当预先按照在服务器104和车辆100之间预定的相同方法设定上面描述的服务器104的步骤424中提到的特定哈希值和车辆100中设定为候选的特定哈希值。例如,可以将初始值设定为特定哈希值。替代地,可以将最近存储的哈希值之前的哈希值设定为特定哈希值。此外,通过将预定的预定函数应用于车辆识别号而生成的值可以设定为特定哈希值。

通过此过程,执行用于生成哈希值的服务器104和车辆100之间的同步,并且可以生成预定类型的哈希值。

从上述描述可以明显看出,应用本发明的实施例,可以提高数据发送设备与数据接收设备之间的数据通信中数据的安全性。

上述对本发明的描述是出于说明的目的,本领域普通技术人员应当认识到,在不背离本发明的技术精神或基本特征的情况下,可以很容易地进行其他具体更改。因此,上述实施例应被视为说明性的而非在所有方面是限制性的。本发明的范围不限于上述详细描述,而是伴随着本发明的权利要求,并且还应当理解,从权利要求及其对等物的定义、范围中衍生的所有改变或修改均落入本发明的范围内。

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