用于消息安全的方法和装置与流程

文档序号:15624959发布日期:2018-10-09 22:45阅读:99来源:国知局

本发明涉及信息安全领域,尤其涉及用于消息安全的方法和装置。



背景技术:

控制器局域网(controllerareanetwork:can)总线属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。基于can总线协议传输的消息也被称为can消息。

为了保护can消息的安全性,除了包括要传输的数据之外,每一个can消息通常还包括消息认证码(messageauthenticationcode:mac),其是根据该can消息所包括的数据而生成的。

can消息通常仅具有有限的长度(例如64比特)。在这种情况下,由于需要包括消息认证码,因此,每一个can消息能够传输的有效信息(即要传输的数据)被减少,从而导致can消息的有效信息传输效率被降低。相应地,对于相同数量的数据,需要使用更多数目的can消息来进行传输,这会增加can总线的传输负担。

为了提高can消息的有效信息传输效率以减轻can总线的传输负担,目前的做法是截短消息认证码以去掉消息认证码的很大部分以使得每一个can消息能提供更多的空间来传输有效信息,但截短消息认证码会降低can消息的安全性。



技术实现要素:

本发明的实施例提供一种用于消息安全的方法和装置,其能够提高消息的有效信息传输效率和安全性。

按照本发明的实施例的一种用于消息安全的方法,包括:利用要发送的多个消息所包括的数据、指定密钥和消息认证码算法,生成消息认证码;在所述多个消息的至少两个消息的每一个中加入所述消息认证码的一部分作为消息认证码信息;以及,发送所述多个消息。

按照本发明的实施例的一种用于消息安全的方法,包括:接收多个消息,其中,所述多个消息都包括数据和所述多个消息中的至少两个消息还包括消息认证码信息;利用所述多个消息所包括的所述数据、指定密钥和消息认证码算法,生成第一消息认证码;组合所述至少两个消息所包括的所述消息认证码信息,以获得第二消息认证码;以及,基于所述第一消息认证码和所述第二消息认证码,确认所接收的消息是否是安全的。

按照本发明的实施例的一种用于消息安全的装置,包括:生成模块,用于利用要发送的多个消息所包括的数据、指定密钥和消息认证码算法,生成消息认证码;加入模块,用于在所述多个消息的至少两个消息的每一个中加入所述消息认证码的一部分作为消息认证码信息;以及,发送模块,用于发送所述多个消息。

按照本发明的实施例的一种用于消息安全的装置,包括:接收模块,用于接收多个消息,其中,所述多个消息都包括数据和所述多个消息中的至少两个消息还包括消息认证码信息;生成模块,用于利用所述多个消息所包括的所述数据、指定密钥和消息认证码算法,生成第一消息认证码;组合模块,用于组合所述至少两个消息所包括的所述消息认证码信息,以获得第二消息认证码;以及,认证模块,用于基于所述第一消息认证码和所述第二消息认证码,确定所接收的消息是否是安全的。

按照本发明的实施例的一种用于消息安全的设备,包括:处理器;以及,存储器,其存储有可执行指令,所述可执行指令当被执行时使得所述处理器执行前述的方法。

按照本发明的实施例的一种程序产品,包括:可读存储介质,其存储有可执行指令,所述可执行指令当被执行时使得机器执行前述的方法。

从以上可以看出,本发明实施例的方案基于要发送的多个消息来生成消息认证码,并且消息仅包括该消息认证码的一部分而不是该消息认证码的全部,从而,每个消息能够提供更多的空间来包括数据(即有效信息),以及,相对于单个消息,该多个消息整体上能够提供更多的空间用于传输消息认证码以使得消息认证码不需要被截短或被截短很小,因此,相对于现有技术,本发明实施例的方案能够提高消息的有效信息传输效率和安全性。

附图说明

本发明的特征、特点、优点和益处通过以下结合附图的详细描述将变得显而易见。

图1示出了按照本发明的一个实施例的用于消息安全的系统的架构示意图。

图2示出了按照本发明的一个实施例的用于消息安全的方法的总体流程图。

图3示出了按照本发明的一个实施例的用于消息安全的方法的流程图。

图4示出了按照本发明的一个实施例的用于消息安全的方法的流程图。

图5示出了按照本发明的一个实施例的用于消息安全的装置的示意图。

图6示出了按照本发明的一个实施例的用于消息安全的装置的示意图。

图7示出了按照本发明的一个实施例的用于消息安全的设备的示意图。

具体实施方式

下面,以can总线为例子,结合附图详细描述本发明的各个实施例。

图1示出了按照本发明的一个实施例的用于消息安全的系统的架构示意图。如图1所示,用于消息安全的系统10可以包括发送方20、接收方30和总线40。本领域技术人员将理解,虽然在图1所示的实施例中,系统10仅包括一个发送方20和一个接收方30,但在本发明的其它实施例中,系统10可以包括一个或多个发送方20和一个或多个接收方30。

发送方20和接收方30都耦合到总线40并且基于can总线协议来经由总线40传输消息。按照can总线协议,发送方20在总线40上广播其要发送的can消息,以及,接收方30接收在总线40上广播的一部分或所有can消息并对与其有关的can消息进行相应处理。

图2示出了按照本发明的一个实施例的用于消息安全的方法的总体流程图。下面结合图1所示的系统10来详细描述图2所示的方法。

在方框202,发送方20可以根据规则zd把要发送的多个can消息m各自包括的数据(即有效信息)组合成一个超级数据s1。在一个方面,该多个can消息m例如可以是具有基本上相同的发送周期或者接收周期的消息。在一个方面,该多个can消息m都是与某个接收方有关的消息,或者,该多个can消息m是与多个接收方有关的消息。在一个方面,例如但不局限于,规则zd可以指示出该多个can消息m各自的标识、该多个can消息m各自包括的数据在组合成的超级数据中所处的位置、该多个can消息m各自包括消息认证码中的哪一部分等。在一个方面,规则zd可以是发送方20和接收方30预先共同协商的,或者,规则zd可以是管理员设定好并通知给发送方20和接收方30的。

在方框204,发送方20可以利用超级数据s1、指定密钥和消息认证码算法来生成消息认证码a1。这里,消息认证码算法例如可以是业界已经公开的或以后出现的各种算法,例如高级加密标准(aes)算法等,但具体应用哪种算法,可以根据实际需要来选择。由于如何利用消息认证码算法来生成消息认证码是对本领域技术人员来说是现有技术,因此在此省略对其的描述。

在方框206,发送方20可以将消息认证码a1划分为多个认证码部分p。其中,该多个认证码部分p各自的长度可以相同或者不同。例如,可以根据该多个can消息m各自所能提供用于传输消息认证码信息的空间大小来确定该多个认证码部分p各自的长度。

在方框208,发送方20可以根据该规则zd指示的该多个can消息m各自包括消息认证码中的哪一部分的信息,在该多个can消息m的每一个can消息mi中加入该多个认证码部分p中的相应认证码部分作为消息认证码信息。

在方框210,发送方20可以在总线40上广播该多个can消息m。

在方框212,接收方30可以从总线40上接收发送方20广播的该多个can消息m。这里,接收方30可以基于该规则zd知道该多个can消息m是哪些消息。

在方框214,接收方30可以根据该规则zd将该接收的多个can消息m各自包括的数据组合成一个超级数据s2。

在方框216,接收方30可以利用超级数据s2、指定密钥和消息认证码算法来生成消息认证码a2。方框216所使用的消息认证码算法与方框204中使用的消息认证码算法是相同的算法。由于如何利用消息认证码算法来生成消息认证码对本领域技术人员来说是现有技术,因此在此省略对其的描述。

在方框218,接收方30可以根据该规则zd指示的该多个can消息m各自包括消息认证码中的哪一部分的信息,对该接收的多个can消息m所包括的消息认证码信息进行组合,以得到消息认证码a3。

在方框220,接收方30可以比较消息认证码a2和消息认证码a3是否相同。

在方框222,接收方30可以基于方框220的比较结果来认证所接收的can消息。例如,如果方框220的比较结果表明消息认证码a2和消息认证码a3相同,则接收方30可以确定所接收的can消息是安全的。例如,如果方框220的比较结果表明消息认证码a2和消息认证码a3不相同,则接收方30可以确定所接收的can消息是不安全的,这表明接收方30所接收的can消息例如在传输过程可能被篡改了等。

从以上的描述可以看出,在本实施例的方案中,基于多个can消息来生成消息认证码,并且每个can消息仅包括该消息认证码的一部分而不是该消息认证码的全部,从而,每个can消息能够包括更多的数据(即有效信息),相应地,消息的有效信息传输效率被提高了。

此外,在本实施例的方案中,基于该多个can消息生成的消息认证码通过该多个can消息中的每一个包括该消息认证码的其中一部分的方式来进行传输。由于相对于单个can消息,该多个can消息整体上能够提供更多的空间用于传输该消息认证码,因此,该消息认证码不需要被截短,从而,接收方能够使用更长的消息认证码来认证所接收的can消息,相应地,消息的安全性被提高了。

其它变型

本领域技术人员应当理解,虽然在上面的实施例中,该多个can消息m所包括的数据被组合成超级数据s1是基于该预定的规则zd进行的,然而,本发明并不局限于此。在本发明的其它一些实施例中,例如,发送方20也可以按照随机的方式将该多个can消息m所包括的组合成超级数据s1,以及,发送方20向接收方30发送用于指示该多个can消息m各自所包括的数据在超级数据s1中所处的位置的信息wz,其中,信息wz可以利用额外的can消息来传输或者利用该多个can消息m中的至少一个来传输。

本领域技术人员应当理解,虽然在上面的实施例中,该多个can消息m中的每一个can消息mi包括消息认证码中的哪一个部分是由规则zd预先规定好的,然而,本发明并不局限于此。在本发明的其它一些实施例中,例如,该多个can消息m中的每一个can消息mi所包括的消息认证码信息可以是该多个认证码部分p中的任意认证码部分,同时每一个can消息mi还包括位置信息以指示其所包括的认证码部分是该多个认证码部分p中的哪个部分,以使得接收方30能够利用该位置信息来组合该多个can消息m所包括的消息认证码信息以获得消息认证码a3。

本领域技术人员应当理解,虽然在上面的实施例中,该多个can消息m中的每一个can消息mi都包括消息认证码的其中一部分,然而,本发明并不局限于此。在本发明的其它一些实施例中,也可以只是该多个can消息m中的两个或两个以上can消息包括消息认证码的其中一部分作为消息认证码信息。具体是哪些can消息包括消息认证码信息可以在该规则zd指示或者可以由发送方向接收方发送指示信息以告知接收方。

本领域技术人员应当理解,虽然在上面的实施例中,消息认证码a1在被划分为该多个认证码部分p之前没有被截短,然而,本发明并不局限于此。在本发明的其它一些实施例中,例如,也可以在将其划分为该多个认证码部分p之前截短消息认证码a1,但被截短的量可以比现有技术中所截短的量小,以使得can消息能够提供更多的空间来传输数据(即有效信息),同时相对于现有技术提供更好的消息安全性。

本领域技术人员应当理解,发送方20和接收方30都可以包括单调计数器以进一步提高消息的安全性。其中,发送方20的单调计数器对发送方20要发送的每一个can消息进行计数并把相应的计数值加入到每一个对应的can消息中。接收方30的单调计数器对接收方30所接收的每一个can消息进行计数,并比较计数值和所接收的对应的can消息中所包括的计数值是否相同,如果两者不相同,则表明接收方30接收的相应can消息是不安全的,例如可能在传输过程被恶意拦截和篡改了。

本领域技术人员应当理解,虽然在上面的实施例中,发送方以广播的形式来发送消息,然而,本发明并不局限于此。在本发明的其它一些实施例中,例如,发送方也可以以单播的形式来发送消息,在这种情况下,该多个消息m可以是在相同时段内要发送给同一接收方的消息。

本领域技术人员应当理解,上面实施例的方案也可以应用到使用除了can总线之外的其它通信协议的场合。

图3示出了按照本发明的一个实施例的用于消息安全的方法的流程图。图3所示的方法300例如但不局限于可以由发送方20来实现。

如图3所示,方法300可以包括,在方框302,利用要发送的多个消息所包括的数据、指定密钥和消息认证码算法,生成消息认证码。

方法300还可以包括,在方框304,在所述多个消息的至少两个消息的每一个中加入所述消息认证码的一部分作为消息认证码信息。

方法300还可以包括,在方框306,发送所述多个消息。

在一个方面,方法300还可以包括截短所述生成的消息认证码,其中,方框304进一步包括:在所述至少两个消息的每一个中加入所述截短的消息认证码的一部分作为所述消息认证码信息。

在另一个方面,所述多个消息是can消息并且具有基本上相同的发送周期或者接收周期。

图4示出了按照本发明的一个实施例的用于消息安全的方法的流程图。图4所示的方法400例如但不局限于可以由接收方30来实现。

如图4所示,方法400可以包括,在方框402,接收多个消息,其中,所述多个消息都包括数据和所述多个消息中的至少两个消息还包括消息认证码信息。

方法400还可以包括,在方框404,利用所述多个消息所包括的所述数据、指定密钥和消息认证码算法,生成第一消息认证码。

方法400还可以包括,在方框406,组合所述至少两个消息所包括的所述消息认证码信息,以获得第二消息认证码。

方法400还可以包括,在方框408,基于所述第一消息认证码和所述第二消息认证码,确认所接收的消息是否是安全的。

在一个方面,方法400还可以包括截短所述第一消息认证码,其中,方框408可以进一步包括:基于所述截短的第一消息认证码和所述第二消息认证码,来确认所接收的消息是否是安全的。

在另一个方面,所述多个消息是can消息并且具有基本上相同的发送周期或者接收周期。

图5示出了按照本发明的一个实施例的用于消息安全的装置的示意图。图5所示的装置500可以利用软件、硬件或软硬件结合的方式来实现,并且,例如但不局限于可以安装在发送方20或其它合适的设备中。

如图5所示,装置500可以包括生成模块502、加入模块504和发送模块506。生成模块502可以用于利用要发送的多个消息所包括的数据、指定密钥和消息认证码算法,生成消息认证码。加入模块504可以用于在所述多个消息的至少两个消息的每一个中加入所述消息认证码的一部分作为消息认证码信息。发送模块506可以用于发送所述多个消息。

在一个方面,装置500还可以包括截短模块,其用于截短所述生成的消息认证码,其中,加入模块504可以进一步用于在所述至少两个消息的每一个中加入所述截短的消息认证码的一部分作为所述消息认证码信息。

在另一个方面,所述多个消息是can消息并且具有基本上相同的发送周期或者接收周期。

图6示出了按照本发明的一个实施例的用于消息安全的装置的示意图。图6所示的装置600可以利用软件、硬件或软硬件结合的方式来实现,并且,例如但不局限于可以安装在接收方30或其它合适的设备中。

如图6所示,装置600可以包括接收模块602、生成模块604、组合模块606和认证模块608。接收模块602可以用于接收多个消息,其中,所述多个消息都包括数据和所述多个消息中的至少两个消息还包括消息认证码信息。生成模块604可以用于利用所述多个消息所包括的所述数据、指定密钥和消息认证码消息,生成第一消息认证码。组合模块606可以用于组合所述至少两个消息所包括的所述消息认证码信息,以获得第二消息认证码。认证模块608可以用于基于所述第一消息认证码和所述第二消息认证码,确定所接收的消息是否是安全的。

在一个方面,装置600还可以包括截短模块,其用于截短所述第一消息认证码,其中,认证模块608可以进一步用于基于所述截短的第一消息认证码和所述第二消息认证码,来确定所接收的消息是否是安全的。

在另一个方面,所述多个消息是can消息并且具有基本上相同的发送周期或者接收周期。

图7示出了按照本发明的一个实施例的用于消息安全的设备的示意图。如图7所示,设备700可以包括处理器702和存储器704。其中,存储器704存储有可执行指令,所述可执行指令当被执行时使得处理器702执行图3所示的方法300或图4所示的方法400。设备700例如但不局限于可以是发送方20或接收方30。

本发明的实施例还提供一种程序产品,其包括可读存储介质,该可读存储介质存储有可执行指令,所述可执行指令当被执行时使得机器执行图3所示的方法300或图4所示的方法400。

本领域技术人员将理解,本发明所公开的各个实施例可以在不偏离发明实质的情况下做出各种变形、修改和/或调整,这些变形、修改和/或调整都落在本发明的保护范围之内。因此,本发明的保护范围由所附的权利要求书来定义。

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