通信网络系统、发送节点、接收节点、消息检查方法及计算机程序与流程

文档序号:12289845阅读:241来源:国知局
通信网络系统、发送节点、接收节点、消息检查方法及计算机程序与流程

本发明涉及通信网络系统、发送节点、接收节点、消息检查方法以及计算机程序。

本申请基于2014年6月5日在日本申请的特愿2014-116917号以及2015年4月23日在日本申请的特愿2015-88397号要求优先权,并将其内容引入到此。



背景技术:

以往,作为在车辆上搭载的通信网络之一所知道的CAN(Controller Area Network:控制器区域网络)用于车辆内的各种ECU(Electronic Control Unit:电子控制单元)之间的通信。作为在该CAN使消息的认证变得可能的技术,例如已知非专利文献1、2以及专利文献1中记载的技术。

在非专利文献1中记载的现有技术中,针对从与CAN相连接的假冒的ECU发送冒充消息的攻击,若真的ECU检测到赋予有自身的ID的冒充消息,则发送用于通知赋予有自身的ID的异常的消息,由此对接收侧ECU报告异常。

在非专利文献2中记载的现有技术中,将在CAN帧中的校验(Cyclic Redundancy Check:CRC)字段中存储的信息变更为MAC(Message Authentication Code:消息认证码)。在该现有技术中,发送侧基于第N个到第N+3个为止的四个CAN帧中的数据字段的数据(64×4=256比特)生成64比特的MAC,并将该MAC分割为每一部分包括16比特的四等分,分别存储至第N+4个到第N+7个为止的四个CAN帧中的CRC字段(16比特)来发送各CAN帧。在接收侧,从第N+4个到第N+7个为止的CAN帧中的CRC字段取得MAC,并根据是否与基于第N个到第N+3个为止的CAN帧中的数据字段生成的MAC一致,来判断第N个到第N+3个为止的CAN帧是否正当。由此,在从CRC字段得到的MAC和基于数据字段计算出的MAC不同的情况下,能够判断为第N个到第N+3个为止的CAN帧中的某一个不正当。

在专利文献1中记载的技术中,在各ECU中对按照每一CANID发送了消息的次数进行计数。并且,发送了主消息的发送节点发送包括MAC的MAC消息,其中,MAC是基于主消息的数据字段以及CANID、与CANID对应的计数值来生成的。接收到主消息的接收节点基于包含在主消息中的数据字段以及CANID、与CANID对应的计数值来生成MAC,并判断是否与在接收到的MAC消息中包含的MAC一致。

现有技术文献

专利文献

专利文献1:国际公开第2013/065689号

非专利文献

非专利文献1:畑正人、田邉正人、吉冈克成、大石和臣、松本勉、“不正当发送阻止:在CAN中可能”、信息处理学会、计算机安全座谈会(CSS2011)、pp.624-629、2011年10月。

非专利文献2:AKIRA YOSHIOKA ET AL.:“Kosei Shomei Kino o Motsu Shanai Tsushin Protocol no Teian”SYMPOSIUM ON MULTIMEDIA,DISTRIBUTED,COOPERATIVE ANDMOBILE SYSTEMS(DICOM02008)RONBUNSHU vol.2008,no.1,02 July 2008,pages 1270–1275

非专利文献3:RFC 2104 HMAC:Keyed-Hashing for Message Aut hentication、[2014年5月26日检索]、互联网<URL:http://www.rfc-editor.org/rfc/rfc2104.txt>

非专利文献4:RFC 2104 HMAC:用于消息认证的密钥哈希、[2014年5月26日检索]、互联网<URL:http://www.ipa.go.jp/security/rfc/RFC2104JA.html>

非专利文献5:竹森敬祐、川端秀明、洼田步、“基于ARM+SIM/UIM的安全启动”、电子信息通信学会、密码和信息安全座谈会(SCIS2014)、1B1-2、2014年1月。

非专利文献6:Trusted Computing Group、[2014年12月26日检索]、互联网<URL:http://www.trustedcomputinggroup.org/>

非专利文献7:“CAN通信中的数据发送的构造是?”、[2014年12月26日检索]、互联网<URL:http://monoist.atmarkit.co.jp/mn/articles/0807/09/news140.html>

非专利文献8:“初次诊断―Diagnostic Communication入门―”、[2014年12月26日检索]、互联网<URL:http://download.vector-japan.co.jp/pdf/HajimetenoD_ver101.pdf>。



技术实现要素:

发明所要解决的课题

然而,在上述的非专利文献1中记载的现有技术中,在用于监视通信的真的ECU被拆卸的情况下不能报告异常。另外,在非专利文献2中记载的现有技术中,为了确认第N个到第N+3个为止的CAN帧的正当性,必须等到接收第N+4个到第N+7个为止的CAN帧为止,因此该正当性的确认需要时间。因此,特别地在要求实时控制的情况下不适用。另外,在专利文献1中记载的现有技术中,与主消息分开发送MAC消息,因此通信量为2倍以上。进而,为了进行主消息的认证,必须等到接收MAC消息为止,因此该认证需要时间。因此,存在CAN的通信频带的压迫和及时性下降的问题。

本发明是考虑这样的情况而做出的,其课题是提供一种通信网络系统、发送节点、接收节点、消息检查方法以及计算机程序,其能够提高用于发送消息的发送节点和用于接收该消息的接收节点相连接的通信网络系统中的消息检查性能。

用于解决课题的手段

本发明的一方面是一种通信网络系统,在该通信网络系统中,发送消息的发送节点和接收所述消息的接收节点相连接,其中,所述发送节点具有:发送计数器部,其保存每当发送所述消息时仅增加规定的计数值的发送计数值;秘密信息存储部,其存储秘密信息;消息认证码生成部,其基于在所述消息中的数据部中存储的发送数据、所保存的所述发送计数值和所述秘密信息,生成消息认证码;发送部,其发送具有所述发送数据和所生成的所述消息认证码的所述消息;所述接收节点具有:接收计数器部,其保存每当接收所述消息时仅增加所述计数值的接收计数值;秘密信息存储部,其存储所述秘密信息;消息认证码检查部,其基于从接收到的所述消息中的数据部取得的接收数据、所保存的所述接收计数值和所述秘密信息,生成消息认证码,并检查所生成的所述消息认证码和从接收到的所述消息取得的消息认证码是否一致。

在本发明的一方面的通信网络系统中,所述消息认证码生成部优选仅将所述发送计数值的比特串中的规定的提取比特数的上位提取比特使用于所述消息认证码的生成;所述发送部优选针对要发送的所述消息,仅存储所生成的所述消息认证码的比特串中的一部分的比特串,其中,该一部分是根据所述发送计数值的比特串中除了所述上位提取比特以外的规定的下位比特的值来确定的部分;所述消息认证码检查部优选仅将所述接收计数值的比特串中的所述提取比特数的上位提取比特使用于所述消息认证码的生成,并仅将所生成的所述消息认证码中的一部分的比特串作为检查是否与从接收到的所述消息取得的消息认证码一致的检查对象,其中,该一部分是根据所述接收计数值的比特串中除了所述上位提取比特以外的所述下位比特的值来确定的部分。

在本发明的一方面的通信网络系统中,进而优选地,所述消息认证码检查部在所述检查的结果为不一致的情况下,仅将所生成的所述消息认证码中的一部分的比特串作为所述一致的再检查的对象,其中,该一部分是根据使所述接收计数值增加所述计数值而得到的值中的所述下位比特的值来确定的部分。

在本发明的一方面的通信网络系统中,进而优选地,所述接收计数器部将所述再检查的结果为一致的所述下位比特的值作为自身保存的接收计数值的所述下位比特的值。

在本发明的一方面的通信网络系统中,所述消息认证码生成部优选仅将所述发送计数值的比特串中的规定的提取比特数的上位提取比特使用于所述消息认证码的生成;所述发送部针对要发送的所述消息,也可以仅存储所生成的所述消息认证码的比特串中的一部分的比特串以及与所述一部分的比特串相关的所生成的所述消息认证码的比特串内的位置信息,其中,该一部分是根据所述发送计数值的比特串中除了所述上位提取比特以外的规定的下位比特的值来确定的部分;所述消息认证码检查部也可以仅将所述接收计数值的比特串中的所述提取比特数的上位提取比特使用于所述消息认证码的生成,并仅将所生成的所述消息认证码中的一部分的比特串作为检查是否与从接收到的所述消息取得的消息认证码一致的检查对象,其中,该一部分是基于从接收到的所述消息取得的位置信息的部分。

本发明的一方面是一种发送节点,其是发送消息的发送节点和接收所述消息的接收节点相连接的通信网络系统中的所述发送节点,其具有:秘密信息存储部,其存储与在所述接收节点保存的秘密信息相同的秘密信息;发送计数器部,其保存每当发送所述消息时仅增加规定的计数值的发送计数值;消息认证码生成部,其基于在所述消息中的数据部中存储的发送数据、所保存的所述发送计数值和所述秘密信息,生成消息认证码;发送部,其发送具有所述发送数据和所生成的所述消息认证码的所述消息。

本发明的一方面是一种接收节点,其是发送消息的发送节点和接收所述消息的接收节点相连接的通信网络系统中的所述接收节点,其具有:秘密信息存储部,其存储与在所述发送节点保存的秘密信息相同的秘密信息;接收计数器部,其保存每当接收所述消息时仅增加与在所述发送节点使用的计数值相同的规定的计数值的接收计数值;消息认证码检查部,其基于从接收到的所述消息中的数据部取得的接收数据、所保存的所述接收计数值和所述秘密信息,生成消息认证码,并检查所生成的所述消息认证码和从接收到的所述消息取得的消息认证码是否一致。

本发明的一方面是一种消息检查方法,其是发送消息的发送节点和接收所述消息的接收节点相连接的通信网络系统中的消息检查方法,其中,所述发送节点以及所述接收节点存储相同的秘密信息;所述发送节点保存每当发送所述消息时仅增加规定的计数值的发送计数值;所述发送节点基于在所述消息中的数据部中存储的发送数据、所保存的所述发送计数值和所述秘密信息,生成消息认证码;所述发送节点发送具有所述发送数据和所生成的所述消息认证码的所述消息;所述接收节点保存每当接收所述消息时仅增加所述计数值的接收计数值;所述接收节点基于从接收到的所述消息中的数据部取得的接收数据、所保存的所述接收计数值和所述秘密信息,生成消息认证码,并检查所生成的所述消息认证码和从接收到的所述消息取得的消息认证码是否一致。

本发明的一方面是一种计算机程序,其用于使发送消息的发送节点和接收所述消息的接收节点相连接的通信网络系统中的所述发送节点的计算机实现如下功能:存储与在所述接收节点保存的秘密信息相同的秘密信息的功能;保存每当发送所述消息时仅增加规定的计数值的发送计数值的功能;基于在所述消息中的数据部中存储的发送数据、所保存的所述发送计数值和所述秘密信息,生成消息认证码的功能;发送具有所述发送数据和所生成的所述消息认证码的所述消息的功能。

本发明的一方面是一种计算机程序,其用于使发送消息的发送节点和接收所述消息的接收节点相连接的通信网络系统中的所述接收节点的计算机实现如下功能:存储与在所述发送节点保存的秘密信息相同的秘密信息的功能;保存每当接收所述消息时仅增加与在所述发送节点使用的计数值相同的规定的计数值的接收计数值的功能;基于从接收到的所述消息中的数据部取得的接收数据、所保存的所述接收计数值和所述秘密信息,生成消息认证码,并检查所生成的所述消息认证码和从接收到的所述消息取得的消息认证码是否一致的功能。

发明的效果

根据本发明,得到能够提高发送消息的发送节点和接收该消息的接收节点相连接的通信网络系统中的消息检查性能的效果。

附图说明

图1是示出本发明的第一实施方式的通信网络系统的框图。

图2是示出本发明的第一实施方式的MCU_2(节点)的框图。

图3是示出本发明的第一实施方式的数据帧的图。

图4是示出本发明的第一实施方式的发送处理过程的图。

图5是示出本发明的第一实施方式的接收处理过程的图。

图6是示出本发明的第一实施方式的接收处理过程的图。

图7是示出本发明的第二实施方式的通信网络系统的框图。

图8是示出本发明的第二实施方式的引导处理的顺序图表。

图9是本发明的第二实施方式的密码处理的顺序图表。

图10是用于说明本发明的第二实施方式的MAC生成处理以及MAC检查处理的顺序图表。

图11是示出本发明的一实施方式的数据帧的其他例的结构图。

图12是示出CAN中的扩展格式的数据帧的结构图。

图13是示出本发明的一实施方式的MAC存储方法的例1的说明图。

图14是示出本发明的一实施方式的MAC存储方法的例2的说明图。

图15是示出本发明的一实施方式的MAC存储方法的例3的说明图。

图16是示出本发明的一实施方式的数据帧的其他例的结构图。

图17是示出在本发明的一实施方式的数据帧中存储的MAC数据的其他例的说明图。

图18是示出在本发明的一实施方式的数据帧中存储的MAC数据的其他例的说明图。

图19是本发明的一实施方式的密码处理的顺序图表。

图20是本发明的一实施方式的密码处理的顺序图表。

图21是本发明的一实施方式的密码处理的顺序图表。

图22是用于说明本发明的一实施方式的MAC生成处理以及MAC检查处理的顺序图表。

具体实施方式

下面,参照附图,对本发明的实施方式进行说明。

[第一实施方式]

在本实施方式中,作为本发明的通信网络系统的一个方面,以作为在车辆上搭载的通信网络系统的CAN为例进行说明。图1是示出本发明的第一实施方式的通信网络系统1的结构的框图。

在图1中,通信网络系统1具有多个MCU(Micro Computing Unit:微计算单元)_2。MCU_2由CPU(Central Processing Unit:中央处理器)以及存储器等构成,是计算机的一种。MCU_2通过由自身的CPU执行计算机程序,来实现与该计算机程序相应的功能。各MCU_2作为用于控制车辆内的设备的电子控制单元(ECU)被利用。

MCU_2连接于CAN的通信总线3。在本实施方式中,为了方便说明,设通信网络系统1具有3台MCU_2,该3台MCU_2连接于通信总线3。通信总线3将在各MCU_2之间交换的消息进行传送。各MCU_2经由通信总线3彼此收发消息。在CAN中,以规定的帧形式传送消息。MCU_2发挥CAN中的节点(通信装置)的功能。在本实施方式中,MCU_2具有用于发送消息的发送节点的功能和用于接收该消息的接收节点的功能。如图1所示,在3台的各MCU_2中,作为CAN中的标识符(ID),分别附有ID1、ID2、ID3。

图2是示出本发明的第一实施方式的MCU_2(节点)的结构的框图。

在图2中,MCU_2具有发送部111、接收部112、帧接收处理部113、MAC(消息认证码)生成部114、计数器部115、MAC(消息认证码)检查部116和秘密信息存储部117。

发送部111将规定的帧形式的消息发送给通信总线3。接收部112从通信总线3接收该规定的帧形式的消息。

图3是示出本发明的第一实施方式的数据帧的结构的图。在图3的数据帧中,在各字段中所示的括号内的数字表示:存储在该字段的信息的比特(bit)数。

图3所示的数据帧的结构相对于CAN中的标准格式的数据帧的结构,变更了一部分。在本实施方式中,将在数据帧中的CRC字段(CRC部)中存储的信息变更为消息认证码(MAC)。在该数据帧中,除了CRC部以外的部分相对于CAN中的标准格式没有变更。下面,将图3所示的本实施方式的数据帧称为CAN帧。

再次参照图2,将用于在CAN帧中存储的发送数据等数据输入至发送部111。发送部111将在CAN帧中的相应部分存储了该被输入的数据而得到的CAN帧发送至通信总线3。发送数据被存储至图3中的数据字段(Data Field:数据部)。帧接收处理部113针对接收部112从通信总线3接收的CAN帧进行接收处理。MAC生成部114基于在CAN帧中的数据部中存储的发送数据等来生成MAC。

计数器部115具有作为发送计数器部的功能和作为接收计数器部的功能。作为发送计数器部的功能,计数器部115保存每当发送部111发送CAN帧时仅增加规定的计数值的发送计数值。在本实施方式中,将该计数值设为1。因此,计数器部115保存每当发送部111发送CAN帧时仅增加1的发送计数值。每当自身的MCU_2(节点)发送CAN帧时该发送计数值被增加1。

作为接收计数器部的功能,计数器部115保存每当接收部112接收CAN帧时仅增加与发送计数器部相同的规定的计数值的接收计数值。在本实施方式中,将该计数值设为1。因此,计数器部115保存每当接收部112接收CAN帧时仅增加1的接收计数值。针对CAN帧中的每一ID,设置该接收计数值。该ID是对于发送了CAN帧的MCU_2(节点)赋予的ID,其存储在图3中的ID字段(ID部)。

在本实施方式中,存在3台MCU_2(ID分别为ID1、ID2、ID3),因此,如图2所示,计数器部115保存与该3台各MCU_2(作为各ID的ID1、ID2、ID3)对应的3个计数值(ID1计数值、ID2计数值、ID3计数值)。在计数器部115中,与自身的MCU_2的ID对应的计数值为发送计数值,与其他MCU_2的ID对应的计数值为接收计数值。例如,在ID1的MCU_2中,ID1计数值为发送计数值,ID2计数值为与ID2对应的接收计数值,ID3计数值为与ID3对应的接收计数值。

MAC检查部116针对从接收部112通过通信总线3接收的CAN帧中取得的MAC进行检查。秘密信息存储部117在各MCU_2中存储相同的秘密信息。该秘密信息在制造MCU_2等时安全地设置在MCU_2中。

接着,对本实施方式的MCU_2(节点)的动作进行说明。

[发送节点的动作]

首先,参照图4,对MCU_2的作为发送节点的动作进行说明。图4是示出本发明的第一实施方式的发送处理过程的图。在制作从发送部111发送的CAN帧时开始图4的发送处理。

(步骤S111)MAC生成部114从计数器部115取得发送计数值。MAC生成部114从该取得的发送计数值的比特串(比特数为L)仅取得与规定的提取比特数相应(L-n比特)的上位比特,来作为上位提取比特(比特数为“L-n”)。

(步骤S112)MAC生成部114使用在CAN帧中的数据部中存储的发送数据、在步骤S111中取得的上位提取比特、存储在秘密信息存储部117中的秘密信息,来生成MAC。作为MAC,例如,计算哈希(Hash)值。作为哈希值的计算方法,例如,可以举出SHA-256。此外,关于哈希值的计算方法,例如记载在非专利文献3、4中。

(步骤S113)MAC生成部114从在步骤S112中生成的MAC的比特串(MAC值)提取:要在CAN帧中的CRC部中存储的比特串(15比特)。该被提取的比特串是根据在步骤S111中取得的发送计数值的比特串(比特数为L)中除了上位提取比特以外的规定的下位比特(比特数为n)的值来确定的。在图4所示的例中,该下位比特(比特数为n)的值为“3”。由此,在MAC值的比特串中,提取根据该值“3”来确定的一部分(15比特)。

由于在本实施方式中CAN帧中的CRC部为15比特,因此,作为在该CRC部中存储的信息,从MAC值的比特串提取根据值“3”来确定的15比特。因此,针对MAC值的比特串确定每15比特的区间,并根据发送计数值的下位比特(比特数为n)的值来确定将哪个区间的15比特存储在CAN帧中的CRC部。此外,在图4的例中,按照MAC值的总比特数确定了K个区间(1区间为15比特)。

发送部111针对CAN帧,将发送数据(在步骤S112中用于MAC生成的数据)存储在数据部中,并将在步骤S113中从MAC值的比特串中提取的15比特的比特串存储在CRC部中。发送部111将该CAN帧发送至通信总线3。计数器部115通过该CAN帧的发送,将发送计数值仅增加1并进行保存。

以上为对发送节点的动作的说明。

[接收节点的动作]

接着,参照图5、图6,对MCU_2的作为接收节点的动作进行说明。图5、图6是示出本发明的第一实施方式的接收处理过程的图。在通过接收部112接收到CAN帧时开始图5的接收处理。

(步骤S121)MAC检查部116从计数器部115取得:与在通过接收部112接收到的CAN帧中的ID部中存储的ID对应的接收计数值。MAC检查部116从该取得的接收计数值的比特串(比特数为L)仅取得与规定的提取比特数相应(L-n比特)的上位比特,来作为上位提取比特(比特数为“L-n”)。该上位提取比特的取得方法与上述的MAC生成部114的处理(步骤S111)相同。

(步骤S122)MAC检查部116使用从通过接收部112接收到的CAN帧中的数据部取得的接收数据、在步骤S121中取得的上位提取比特、存储在秘密信息存储部117中的秘密信息,来生成MAC。

该MAC的值(计算MAC值)以与上述的MAC生成部114相同的计算方法(例如,由SHA-256进行的哈希值计算)计算。

(步骤S123)MAC检查部116从在步骤S122中生成的MAC的比特串(计算MAC值)提取作为检查对象的检查对象比特串(15比特)。该检查对象比特串的提取方法与上述的MAC生成部114中的、在CAN帧中的CRC部中存储的比特串(15比特)的提取方法(步骤S113)相同。即,该检查对象比特串是计算MAC值的比特串中的一部分(15比特),该一部分是根据在步骤S121中取得的接收计数值的比特串(比特数为L)中的除了上位提取比特以外的规定的下位比特(比特数为n)的值来确定的一部分。在图5所示的例中,该下位比特(比特数为n)的值为“3”。由此,在计算MAC值的比特串中提取根据该值“3”来确定的一部分(15比特)。

在本实施方式中,检查在CAN帧中的CRC部(15比特)中存储的信息和从计算MAC值的比特串提取的检查对象比特串(15比特)是否一致。因此,与上述的发送处理同样地,针对计算MAC值的比特串确定每15比特的区间,并根据接收计数值的下位比特(比特数为n)的值来确定:将哪个区间的15比特作为检查对象比特串。此外,在图5的例中,按照计算MAC值的总比特数确定了K个区间(1区间为15比特)。

MAC检查部116判定从通过接收部112接收到的CAN帧中的CRC部取得的MAC值(接收MAC值(15比特))和从计算MAC值的比特串提取的检查对象比特串(15比特)是否一致。

该判定的结果,在接收MAC值和检查对象比特串一致的情况下,MAC检查部116对于帧接收处理部113通知检查合格。由此,帧接收处理部113针对通过接收部112接收到的CAN帧,进行对于正常接收到的CAN帧执行的规定的接收处理。另外,MAC检查部116对于计数器部115通知检查合格。由此,计数器部115使相应的接收计数值仅增加1并进行保存。该计数对象的接收计数值是与在通过接收部112接收到的CAN帧中的ID部中存储的ID对应的接收计数值。

另一方面,在该判定的结果为接收MAC值和检查对象比特串不一致的情况下,MAC检查部116进行图6所示的再检查处理。以下,参照图6,对该再检查处理进行说明。

(步骤S131)MAC检查部116从在步骤S122中生成的计算MAC值的比特串提取作为再检查对象的再检查对象比特串(15比特)。该再检查对象比特串的提取处理与上述的检查对象比特串的提取处理相同,但是使用使在步骤S121中取得的接收计数值增加而得到的值(増加接收计数值)。具体地,首先,对在步骤S121中取得的接收计数值加上1。接着,从计算MAC值的比特串中提取一部分(15比特)来作为再检查对象比特串,其中,该一部分是根据作为对该接收计数值加上1而得到的值的増加接收计数值的比特串中的下位比特(比特数为n)的值来确定的一部分。

MAC检查部116判定该提取的再检查对象比特串和接收MAC值是否一致。该判定的结果为不一致的情况下,将对当前的増加接收计数值再加上1而得到的值作为新的増加接收计数值。然后,从计算MAC值的比特串中提取一部分(15比特)来作为新的再检查对象比特串,其中,该一部分是根据该新的増加接收计数值的比特串中的下位比特(比特数为n)的值来确定的一部分。接着,判定该提取的新的再检查对象比特串和接收MAC值是否一致。该再检查反复进行至判定的结果变得一致为止。但是,该再检查到计算MAC值的比特串的一端的区间(根据下位比特的值“K-1”确定的区间)就结束。其理由在于,下位比特的值被进位,用于计算MAC值的生成的上位提取比特的值发生变化。

因此,在即使检查至计算MAC值的比特串中根据下位比特的值“K-1”来确定的区间也不与接收MAC值一致的情况下,使用下位比特的值的进位后的上位提取比特来再次计算出计算MAC值,并将该再次计算出的新的计算MAC值,与上述的再检查同样地判断是否与接收MAC值一致。

(步骤S132)在步骤S131的再检查的结果为再检查对象比特串和接收MAC值一致的情况下,MAC检查部116对计数器部115通知与该再检查对象比特串相关的下位比特的值,来指示计数器同步。计数器部115通过该计数器同步的指示,将相应的接收计数值的下位比特(比特数为n)的值变更为被通知的下位比特的值。该计数器同步对象的接收计数值是与在通过接收部112接收到的CAN帧中的ID部中存储的ID对应的接收计数值。由此,与该ID对应的发送节点的发送计数值和本接收节点的与该ID对应的接收计数值变得同步。

在图6所示的例中,在步骤S121中取得的接收计数值中的下位比特(比特数为n)的值为“3”。在根据该值“3”来确定的检查对象比特串的情况下,与接收MAC值不一致。因此,将根据增加接收计数值的比特串中的下位比特(比特数为n)的值“4”来确定的部分作为再检查对象比特串,来判定是否与接收MAC值一致,其中,上述增加接收计数值是对在步骤S121中取得的接收计数值加上1而得到的。在图6的例中,在根据该值“4”来确定的再检查对象比特串,也与接收MAC值不一致。因此,将根据新的增加接收计数值的比特串中的下位比特(比特数为n)的值“5”来确定的部分作为再检查对象比特串,来判定是否与接收MAC值一致,其中,新的增加接收计数值是对当前的增加接收计数值加上1而得到的。在图6的例中,在根据该值“5”来确定的再检查对象比特串与接收MAC值一致。由此,在计数器部115中相应的接收计数值的下位比特(比特数为n)的值从“3”变更为“5”。

即使重复规定次数的再检查,再检查对象比特串和接收MAC值也不一致的情况下,MAC检查部116对于帧接收处理部113通知检查不合格。由此,帧接收处理部113废弃通过接收部112接收到的CAN帧。这是因为,认为发生了通信出错或者发出冒充消息的攻击。此外,在检查不合格的情况下,MAC检查部116对于计数器部115不通知检查合格。由此,计数器部115对于与在通过接收部112接收到的CAN帧中的ID部中存储的ID对应的接收计数值,不增加接收计数值。

此外,接收节点在同一ID的CAN帧中连续两次以上接收到具有相同MAC值的CAN帧的情况下,判断为发生了重放攻击(Replay Attacks)。

该情况下,可以举出针对该ID的CAN帧不进行接收处理的对策。

以上为对接收节点的动作的说明。

根据本实施方式,就从发送节点发送的CAN帧而言,在CRC部中存储有使用在该CAN帧的数据部中存储的发送数据来生成的MAC。然后,在接收节点,利用使用从接收到的CAN帧的数据部取得的接收数据来生成的MAC和从该CAN帧的CRC部取得的MAC,进行该CAN帧的检查。由此,不需要从发送节点与发送数据的CAN帧分开来单独地发送MAC的CAN帧,因此能够消除由于MAC的CAN帧而压迫CAN的通信频带的问题。进而,由于能够以相同的CAN帧接收发送数据和MAC,因此能够实现检查的及时性。

进而,由于在发送节点和接收节点使用共同的秘密信息来生成MAC,因此在不具有该秘密信息的发送节点所生成的MAC的情况下,CAN帧的检查将不合格。由此,对CAN帧的检查的可靠性提高。

另外,将生成的MAC的比特串中的根据发送计数值的下位比特来确定的区间存储至CAN帧中,由此在发送的每一CAN帧中存储的MAC值都不同。由此,能够容易检测出反复发送相同的CAN帧的重放攻击。另外,在发送节点使用CAN帧中的数据部的发送数据来生成MAC,因此在接收节点能够检测出发送数据的篡改。

另外,在本实施方式中,在生成MAC时使用计数值的上位提取比特,并根据计数值的除了上位提取比特以外的下位比特,决定将该MAC的哪个部分存储在CRC部中。因此,在MAC的再检查中,在发生该下位比特的进位之前,不需要进行MAC的再计算,而能够一边在相同的MAC中改变再检查对象比特串一边反复进行再检查。由此,能够减少检查时的运算量,有助于检查时间的缩短。

另外,根据本实施方式,还能够得到对CAN的已有的帧形式的变更少的效果。

此外,在本实施方式中,仅将生成的MAC中的一部分存储在CAN帧中的CRC部中,因此有可能发生MAC之间的冲突。例如,发生哈希值的冲突的可能性为“1/2”的15次方(=1/32768)。但是,即使发生了哈希值的冲突,进而发生下一个哈希值的冲突的概率还是1/32768,因此连续发生哈希值的冲突的概率变得非常小。例如,如果连续发送具有相同发送数据的多个CAN帧(各CAN帧的MAC不同),则认为在该多个CAN帧中的某一帧中不发生MAC(哈希值)的冲突,能够正常接收,因此可以认为哈希值的冲突对通信品质的影响较少。

另外,在上述的实施方式中,在CAN帧中的CRC部中存储了MAC,但是也可以存储在数据部中。图11是示出本发明的一实施方式的数据帧的其他例的结构图。在图11的数据帧中,各字段中所示的括号内的数字表示在该字段中存储的信息的比特数。图11所示的数据帧的结构相对于CAN中的标准格式的数据帧的结构,限定了一部分。

在图11所示的数据帧中,在数据帧中的数据部(Data Field:数据字段)存储MAC。MAC被存储在数据部内的规定的位置。例如,可以举例在数据部的开头部分或者结尾部分存储的情况。其中,认为存储在结尾部分对数据部的已有的使用方法带来的影响小。在图11的例中,MAC被存储在数据部内的结尾部分。在图11的例中,MAC的数据长为16比特。因此,如在图11中记载的那样,在数据部存储的除了MAC以外的数据的数据长的最大值为48比特。在图11所示的数据帧中,除了在数据部存储MAC这一点以外,与CAN中的标准格式相同。

此外,由于数据部的大小为64比特,因此能够使所生成的MAC中的在数据帧存储的部分比CRC部(15比特)多。但是,如果使所生成的MAC中的在数据帧存储的部分变多,则发送数据的大小相应地变小,因此优选将存储在数据部的MAC的大小抑制到能够允许MAC的冲突所带来的影响的程度。此外,在数据部存储MAC的情况下,在CRC部存储CRC,从而能够有效利用CRC功能。

[第二实施方式]

第二实施方式是用于在上述的第一实施方式中MCU_2安全地保存秘密信息的结构例。图7是示出本发明的第二实施方式的通信网络系统1的结构的框图。图7所示的通信网络系统1搭载在车辆。在图7所示的通信网络系统1中,在CAN的通信总线3连接有多个MCU_2-a、2-b。在第二实施方式中,也与上述的第一实施方式同样地,为了便于说明,假设3台MCU_2-a、2-b连接在通信总线3。如图7所示,对于3台各MCU_2-a、2-b,作为CAN中的标识符(ID),对MCU_2-a赋予了ID1,对各MCU_2-b分别赋予了ID2、ID3。

MCU_2-a在认证与通信总线3相连接的MCU_2-b的处理中作为主机进行工作。以下,将MCU_2-a称为“主机MCU_2-a”。另外,将MCU_2-b称为“末端MCU_2-b”。另外,在不特别区分MCU_2-a、2-b时,称为“MCU_2”。

接着,参照图7,对主机MCU_2-a和末端MCU_2-b的结构进行说明。由于主机MCU_2-a和末端MCU_2-b具有同样的结构,因此,下面,作为MCU_2,说明主机MCU_2-a和末端MCU_2-b的结构。

MCU_2具有CPU_10、闪存器(flash memory)11、RAM(随机存取存储器)_12、引导加载器(boot loader)13以及安全元件(secure element)14。安全元件14具有安全RAM_21、安全ROM(Read Only Memory:只读存储器)_22、验证部23以及密码处理部24。

CPU_10通过执行计算机程序,实现作为用于控制车辆内的设备的ECU的功能以及作为CAN中的节点的功能。闪存器11将在CPU_10中执行的计算机程序以及有关该计算机程序的签名进行存储。RAM_12存储数据。RAM_12成为在CPU_10执行计算机程序时的执行区域。

引导加载器13通过MCU_2的电源接通来进行引导处理。引导加载器13被进行ROM化,使得不能变更该引导处理的内容。

安全元件14被构成为:从安全元件14的外部不能接入在安全元件14的内部保存的数据的安全的要素。安全RAM_21是在安全元件14的内部保存的数据的临时存储区域。从安全元件14的外部不能接入安全RAM_21。安全ROM_22将在安全元件14内部使用的密钥进行存储。从安全元件14的外部不能接入安全ROM_22。在制造MCU_2时等,在安全ROM_22中预先安全地写入有密钥。

验证部23使用在安全ROM_22中保存的签名验证密钥,进行引导加载器13的引导处理中的程序正当性验证处理。验证部23在该程序正当性验证处理中,使用安全RAM_21作为临时存储区域。

密码处理部24使用在安全ROM_22中保存的秘密的密钥,来对在自身的MCU_2和其他MCU_2之间交换的信息进行密码处理。该密码处理为加密处理或解密处理。密码处理部24在该密码处理中,使用安全RAM_21作为临时存储区域。

接着,参照图8,对本实施方式的引导处理进行说明。图8是本实施方式的引导处理的顺序图表。通过MCU_2的电源接通,开始图8的处理。

(步骤S1)引导加载器13从闪存器11读入计算机程序和签名。接着,引导加载器13计算该读入的计算机程序的哈希(hash)值。

(步骤S2)引导加载器13将该计算出的哈希值和从闪存器11读入的签名发送至安全元件14。

(步骤S3)在安全元件14中,验证部23使用在安全ROM_22保存的签名验证密钥,验证从引导加载器13接收到的签名中包含的值和从引导加载器13接收到的哈希值是否一致。在该验证处理中,安全RAM_21用作为验证处理中的数据的临时存储区域。在该验证成功的情况下,安全元件14向引导加载器13通知验证成功。

(步骤S4)引导加载器13在从安全元件14接收到验证成功的通知的情况下,将在步骤S1中从闪存器11读入的计算机程序加载到RAM_12。由此,CPU_10能够执行加载在RAM_12的计算机程序。

另一方面,引导加载器13在未接收到来自安全元件14的验证成功的通知的情况下(例如,从步骤S2的发送后起经过了规定时间也没有从安全元件14接收到验证成功的通知或者从安全元件14接收到验证失败的通知的情况下),不将在步骤S1中从闪存器11读入的计算机程序加载到RAM_12。在该情况下,引导加载器13停止MCU_2的启动。

根据上述的本实施方式的引导处理,通过安全元件14所进行的签名验证,安全地进行在CPU_10执行的计算机程序的正当性验证。由此,在作为CPU_10的执行区域的RAM_12加载正确的计算机程序,并由CPU_10执行在该RAM_12中加载的计算机程序,由此使MCU_2正常启动。由此,在本实施方式的通信网络系统1中,在各个MCU_2,实现在MCU_2启动时验证该MCU_2的计算机程序(例如,操作系统(Operating System:OS)等)的正当性的安全启动(Secure Boot)。此外,关于安全启动,例如记载在非专利文献5中。

接着,参照图9,对本实施方式的密码处理进行说明。图9是本实施方式的密码处理的顺序图表。通过规定的契机开始图9的处理。

在此,以从主机MCU_2-a向末端MCU_2-b安全地通知作为秘密的信息的随机数的情景为例进行说明。此外,主机MCU_2-a和末端MCU_2-b之间的数据的收发经由通信总线3来进行。

(步骤S11)主机MCU_2-a将在自身的RAM_12中保存的初始随机数作为询问(challenge)发送至末端MCU_2-b。另外,主机MCU_2-a将向该末端MCU_2-b作为询问发送的初始随机数转交给自身的安全元件14。

(步骤S12)末端MCU_2-b将从主机MCU_2-a接收到的作为询问的初始随机数转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的私钥(私有密钥)Ks对被转交的初始随机数进行加密。在该加密处理中,末端MCU_2-b的安全RAM_21用作为加密处理中的数据的临时存储区域。接着,末端MCU_2-b将作为被加密的初始随机数的加密数据Ks(初始随机数)作为响应发送至主机MCU_2-a。

(步骤S13)主机MCU_2-a将从末端MCU_2-b接收到的作为响应的加密数据Ks(初始随机数)转交给自身的安全元件14。主机MCU_2-a的密码处理部24使用在自身的安全ROM_22中保存的相应末端MCU_2-b的公钥(公共密钥)Kp对被转交的加密数据Ks(初始随机数)进行解密。接着,主机MCU_2-a的密码处理部24验证通过该解密来得到的解密数据和在步骤S11中作为询问发送至末端MCU_2-b的初始随机数是否一致。在这些解密处理以及验证处理中,主机MCU_2-a的安全RAM_21用作为解密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该末端MCU_2-b的认证成功。

在该验证成功的情况下,主机MCU_2-a的密码处理部24生成作为秘密的信息的随机数,并使用在自身的安全ROM_22中保存的相应末端MCU_2-b的公钥Kp来对所生成的随机数进行加密。在这些随机数生成处理以及加密处理中,主机MCU_2-a的安全RAM_21用作为随机数生成处理以及加密处理中的数据的临时存储区域。接着,主机MCU_2-a将作为被加密的秘密的信息(随机数)的加密数据Kp(随机数)发送至末端MCU_2-b。

末端MCU_2-b将从主机MCU_2-a接收到的加密数据Kp(随机数)转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的私钥Ks来对被转交的加密数据Kp(随机数)进行解密。在该解密处理中,末端MCU_2-b的安全RAM_21用作为解密处理中的数据的临时存储区域。通过该解密处理,从加密数据Kp(随机数)取得作为秘密的信息的随机数。该取得的随机数被安全地保存至末端MCU_2-b的安全RAM_21中。

根据上述的本实施方式的密码处理,通过安全元件14所进行的密码处理,安全地进行在MCU_2之间(在上述的例中,主机MCU_2-a和末端MCU_2-b之间)交换的信息的密码处理(加密处理、解密处理)。由此,保持在MCU_2之间交换的信息的安全性。

进而,通过基于该密码处理的询问/响应,主机MCU_2-a能够可靠地认证末端MCU_2-b。并且,从主机MCU_2-a对于认证完成的末端MCU_2-b,能够基于该密码处理安全地发送秘密的信息。该秘密的信息能够用作为上述的第一实施方式中的秘密信息。在上述的例中,从主机MCU_2-a对末端MCU_2-b安全地传递作为秘密的信息的随机数。

接着,参照图10,对本实施方式的MAC生成处理以及MAC检查处理进行说明。图10是用于说明本实施方式的MAC生成处理以及MAC检查处理的顺序图表。

通过上述的图9的密码处理,从主机MCU_2-a对认证完成的末端MCU_2-b安全地发送作为秘密的信息的随机数。主机MCU_2-a以及末端MCU_2-b将该作为秘密的信息的随机数存储在安全RAM_21中。该安全RAM_21作为上述的第一实施方式中的秘密信息存储部117,安全地保存该随机数(秘密信息)。

在图10中,发送侧MCU_2作为发送节点进行工作。发送侧MCU_2可以是主机MCU_2-a,或者也可以是末端MCU_2-b。接收侧MCU_2作为接收节点进行工作。接收侧MCU_2可以是主机MCU_2-a,或者也可以是末端MCU_2-b。发送侧MCU_2在RAM_12中保存发送计数值以及发送数据。接收侧MCU_2在RAM_12中保存接收计数值。在制作从发送侧MCU_2发送的CAN帧时开始图10的处理。

(步骤S21)发送侧MCU_2将发送数据以及发送计数值从RAM_12转交给安全RAM_21。发送侧MCU_2的安全元件14使用在安全RAM_21中保存的随机数(秘密信息)、发送数据和发送计数值,生成MAC。该MAC的生成方法与上述的第一实施方式相同。其中,该MAC的生成在安全RAM_21中安全地进行。作为该MAC的生成的结果从MAC值的比特串中提取的15比特的比特串(CRC部用提取MAC比特串)从安全RAM_21转交到RAM_12。

(步骤S22)发送侧MCU_2针对CAN帧,将在步骤S21中从RAM_12转交到安全RAM_21的发送数据存储至数据部,将在步骤S21中从安全RAM_21转交到RAM_12的CRC部用提取MAC比特串存储至CRC部。发送侧MCU_2将该CAN帧发送至通信总线3。该CAN帧经由通信总线3被接收侧MCU_2接收。

(步骤S23)接收侧MCU_2将从通信总线3接收到的CAN帧保存在RAM_12中。接收侧MCU_2将从在RAM_12中保存的CAN帧中的数据部取得的接收数据和从该CAN帧中的CRC部取得的接收MAC值转交给安全RAM_21。进而,接收侧MCU_2将与在CAN帧中的ID部中存储的ID对应的接收计数值从RAM_12转交给安全RAM_21,其中,上述CAN帧保存在RAM_12中。

接着,接收侧MCU_2的安全元件14使用在安全RAM_21中保存的随机数(秘密信息)、接收数据和接收计数值,生成MAC。该MAC的生成方法与上述的第一实施方式相同。其中,该MAC的生成在安全RAM_21中安全地进行。作为该MAC的生成的结果,从计算MAC值的比特串中提取15比特的检查对象比特串。接着,接收侧MCU_2的安全元件14判定在安全RAM_21中保存的接收MAC值和检查对象比特串是否一致。该判定的结果为不一致的情况下,与上述的第一实施方式同样地进行再检查。

如上所述,根据本实施方式,使用安全地保存在安全RAM_21中的随机数(秘密信息)来进行MAC的生成以及检查。由此,提高对CAN帧的检查的可靠性。

以上,参照附图详细地叙述了本发明的实施方式,但是其具体的结构并不限定于该实施方式,还包含不脱离本发明的思想的范围内的设计变更等。

例如,在上述的实施方式中,1台MCU_2具有发送节点的功能和接收节点的功能,但是也可以是1台MCU_2仅具有发送节点的功能,或者1台MCU_2仅具有接收节点的功能。

另外,一个MCU_2也可以构成为一个半导体装置。通过将一个MCU_2单片化为一个半导体集成电路,进一步提高安全性。

另外,作为安全元件,例如,也可以使用在无线通信中所使用的eSIM(Embedded Subscriber Identity Module:嵌入式用户识别模块)或者SIM(Subscriber Identity Module:用户识别模块)。eSIM以及SIM为计算机的一种,通过计算机程序来实现所期望的功能。或者,作为安全元件,例如,也可以使用具有防篡改性(Tamper Resistant)的密码处理芯片。作为具有防篡改性的密码处理芯片,例如,已知被称为TPM(Trusted Platform Module:可信平台模块)的密码处理芯片。关于TPM,例如记载在非专利文献6中。

另外,上述的实施方式例如能够应用于汽车、带原动机的自行车、铁道车辆等车辆。

另外,在上述的实施方式中,作为本发明的通信网络系统的一个方面,以在车辆上搭载的通信网络系统为例进行了说明,但是本发明的通信网络系统能够应用于各种领域。例如,也可以被构成为:作为用于控制家电产品的计算机而应用MCU_2,并通过室内网络将室内的各家电产品的MCU_2进行连接。另外,也可以被构成为:作为智能电表(smart meter)而应用MCU_2,并通过通信网络将各智能电表的MCU_2进行连接。

[数据帧的结构的其他实施例1]

对数据帧的结构的其他实施例1进行说明。图12是示出CAN中的扩展格式的数据帧的结构图(例如,参照非专利文献7)。如图12所示,CAN中的扩展格式的数据帧具有11比特长的基本ID(Base ID)字段和18比特长的扩展ID(Extend ID)字段。在该扩展格式,作为ID的存储区域,能够使用将基本ID字段和扩展ID字段相加而得到的最大29比特。在本实施例1中,在将基本ID字段和扩展ID字段相加而得到的29比特长的区域存储MAC。以下,对在将基本ID字段和扩展ID字段相加而得到的29比特长的区域存储MAC的MAC存储方法的例1、2、3进行说明。

(MAC存储方法的例1)

在MAC存储方法的例1中,如图13所示,将18比特长的扩展ID字段使用于MAC存储区域。基本ID字段使用于用来存储ID的区域。在图13的例中,在基本ID字段存储数据帧的发送源的MCU_2的地址即发送源地址。

(MAC存储方法的例2)

MAC存储方法的例2是如下方法:在将基本ID字段和扩展ID字段相加而得到的29比特长的区域存储数据帧的发送源的MCU_2的地址即发送源地址、数据帧的发送目的地的MCU_2的地址即发送目的地地址以及发送目的地类型的情况(例如,参照非专利文献8)下,在该29比特长的区域存储MAC。图14是示出本发明的一实施方式的MAC存储方法的例2的说明图。

如图14所示,使用转换/压缩表将8比特长的发送源地址转换为7比特长的发送源地址。同样地,使用转换/压缩表将8比特长的发送目的地地址转换为7比特长的发送目的地地址。同样地,使用转换/压缩表将8比特长的发送目的地类型转换为2比特长的发送目的地类型。前提是,虽然原来的发送源地址为8比特长,但是实际使用的发送源地址能够用7比特表达。同样地,前提是,虽然原来的发送目的地地址为8比特长,但是实际使用的发送目的地地址能够用7比特表达。同样地,前提是,原来的发送目的地类型为8比特长,但是实际使用的发送目的地类型能够用2比特表达。各转换/压缩表被预先设置。

通过将8比特长的发送源地址转换为7比特长,将8比特长的发送目的地地址转换为7比特长,将8比特长的发送目的地类型转换为2比特长,总共8比特将不被使用。如图14所示,将该不被使用的8比特和原来的空闲区域的5比特相加而得到的13比特使用于MAC存储区域。

此外,在接收侧预先设置有与各转换/压缩表对应的逆转换/扩展表。接收侧使用各逆转换/扩展表,将接收到的7比特长的发送源地址逆转换为8比特长,将接收到的7比特长的发送目的地地址逆转换为8比特长,将接收到的2比特长的发送目的地类型逆转换为8比特长。

(MAC存储方法的例3)

MAC存储方法的例3与上述的MAC存储方法的例2同样地,是如下方法:在将基本ID字段和扩展ID字段相加而得到的29比特长的区域存储数据帧的发送源的MCU_2的地址即发送源地址、数据帧的发送目的地的MCU_2的地址即发送目的地地址以及发送目的地类型的情况下,在该29比特长的区域存储MAC。图15是示出本发明的一实施方式的MAC存储方法的例3的说明图。

在MAC存储方法的例3中,如图14所示,8比特长的发送源地址和8比特长的发送目的地地址原样地被存储。8比特长的发送目的地类型使用转换/压缩表而转换为2比特长的发送目的地类型。前提是,原来的发送目的地类型是8比特长,但是实际使用的发送目的地类型能够用2比特表达。转换/压缩表被预先设置。

通过将8比特长的发送目的地类型转换为2比特长,6比特将不被使用。如图15所示,将该不被使用的6比特和原来的空闲区域的5比特相加而得到的11比特使用于MAC存储区域。

此外,在接收侧预先设置有与发送目的地类型的转换/压缩表对应的逆转换/扩展表。接收侧使用逆转换/扩展表将接收到的2比特长的发送目的地类型逆转换为8比特长。

[数据帧的结构的其他实施例2]

对数据帧的结构的其他实施例2进行说明。图16是示出本发明的一实施方式的数据帧的其他例的结构图。在图16的数据帧,各字段中所示的括号内的数字表示在该字段存储的信息的比特数。

图16所示的数据帧的结构相对于CAN中的扩展格式的数据帧的结构,限定了一部分。在图16所示的数据帧,在数据帧中的数据部(Data Field:数据字段)存储MAC。MAC被存储至数据部内的规定的位置。例如,可以举例在数据部的开头部分或结尾部分存储的情况。其中,认为存储在结尾部分对数据部的已有的使用方法带来的影响小。在图16的例中,MAC被存储在数据部内的结尾部分。在图16的例中,MAC的数据长为16比特。因此,如在图16中记载的那样,在数据部存储的除了MAC以外的数据的数据长的最大值为48比特。除了在图16所示的数据帧中在数据部存储MAC这一点以外,与CAN中的扩展格式相同。

[在数据帧存储的MAC数据的其他例]

图17以及图18是示出在本发明的一实施方式的数据帧存储的MAC数据的其他例的说明图。作为数据帧的结构,例如,是上述的图3所示的CAN帧。首先,参照图17,对发送节点在CAN帧存储MAC数据的动作进行说明。在图17,对于与上述的图4的各步骤对应的部分标注相同的附图标记,并省略其说明。

在制作从发送部111发送的CAN帧时开始图17的发送处理。首先,执行步骤S111、S112。步骤S111、S112与上述的图4相同。通过步骤S111、S112计算出MAC值。

接着,MAC生成部114从在步骤S112中计算出的MAC值提取:要在CAN帧存储的规定比特数的比特串(MAC提取值)。该MAC提取值是根据在步骤S111中取得的发送计数值的比特串(比特数为L)中除了上位提取比特以外的规定的下位比特(比特数为n)的值来确定的。在图17所示的例中,该下位比特(比特数为n)的值为“3”。由此,在MAC值的比特串中,提取根据该值“3”来确定的一部分(MAC提取值)。

接着,MAC生成部114基于从MAC值提取的MAC提取值和与该MAC提取值相关的MAC值内的位置信息来生成发送MAC数据。在图17的例中,与MAC提取值相关的MAC值内的位置信息是:在步骤S111中取得的发送计数值的比特串中除了上位提取比特以外的规定的下位比特的值“3”。另外,在图17的例中,就发送MAC数据而言,在MAC提取值的后方附加下位比特的值“3”。发送MAC数据被存储至CAN帧。在上述的图3所示的CAN帧的情况下,发送MAC数据被存储至CRC部。

此外,发送MAC数据的结构被预先设定。在图3所示的CAN帧的情况下,作为发送MAC数据的存储位置的CRC部为15比特长,因此发送MAC数据的数据长为15比特。另外,就发送MAC数据而言,也可以在MAC提取值的前方附加与MAC提取值相关的MAC值内的位置信息。另外,与MAC提取值相关的MAC值内的位置信息,可以是在步骤S111中取得的发送计数值的比特串中除了上位提取比特以外的规定的下位比特的全部,或者也可以是该下位比特中的最下位侧的一部分。

接着,发送部111针对CAN帧,将发送数据(在步骤S112中用于MAC值的计算的数据)存储至数据部,将发送MAC数据存储至CRC部。发送部111将该CAN帧发送至通信总线3。计数器部115通过该CAN帧的发送,使发送计数值仅增加1并进行保存。

接着,参照图18,对接收节点接收到CAN帧时的动作进行说明。在图18,对于与上述的图5的各步骤对应的部分标注相同的附图标记,并省略其说明。

在通过接收部112接收到CAN帧时开始图18的接收处理。

首先,执行步骤S121、S122。步骤S121、S122与上述的图5相同。通过步骤S121、S122,计算出MAC值。接着,MAC检查部116从通过接收部112接收到的CAN帧中的CRC部取得MAC数据(接收MAC数据)。MAC检查部116从接收MAC数据取得MAC提取值和与MAC提取值相关的MAC值内的位置信息。在图17的例中,与MAC提取值相关的MAC值内的位置信息为“3”。

接着,MAC检查部116基于从接收MAC数据取得的位置信息“3”,从在步骤S122中计算出的MAC值的比特串(计算MAC值)取得在MAC检查中使用的MAC检查值。接着,MAC检查部116比较从接收MAC数据取得的MAC提取值和从计算MAC值取得的MAC检查值,判定两者是否一致。该判定的结果,两者不一致的情况下,MAC检查部116一边改变从计算MAC值取得MAC检查值的取得位置,一边从计算MAC值取得MAC检查值来检查是否与MAC提取值一致。例如,一边将从计算MAC值取得MAC检查值的取得位置每次错开1比特,一边从计算MAC值取得MAC检查值来检查是否与MAC提取值一致。

MAC检查部116在MAC提取值和MAC检查值一致的情况下,将与从计算MAC值取得了该一致的MAC检查值的取得位置对应的比特值(下位比特值)通知给计数器部115,来指示计数器同步。计数器部115通过该计数器同步的指示,将相应的接收计数值的下位比特的值变更为被通知的下位比特值。在图18的例中,与从计算MAC值取得了和MAC提取值一致的MAC检查值的取得位置对应的下位比特值为“3”。因此,MAC检查部116将下位比特值“3”通知给计数器部115来指示计数器同步。

计数器部115通过该计数器同步的指示,将相应的接收计数值的下位比特的值变更为被通知的下位比特值“3”。该计数器同步对象的接收计数值是与在通过接收部112接收到的CAN帧中的ID部中存储的ID对应的接收计数值。由此,与该ID对应的发送节点的发送计数值和本接收节点的与该ID对应的接收计数值变得同步。

根据上述的图17以及图18的、在数据帧存储的MAC数据的例,在接收节点从计算MAC值取得MAC检查值的取得位置的信息,从发送节点通知到接收节点,因此提高在接收节点的MAC检查的效率。由此,例如,得到能够缩短MCU_2之间的通信所需要的时间等效果。

[MAC的其他例]

作为MAC,例如,可以举出Code MAC(CMAC)的计算。CMAC是基于共用密钥的MAC。

[密码处理的其他实施例1]

图19是本发明的一实施方式的密码处理的顺序图表。参照图19,对密码处理的其他实施例1进行说明。密码处理的其他实施例1是上述的第二实施方式的变形例。密码处理的其他实施例1的通信网络系统的结构与上述的第二实施方式的图7的通信网络系统1的结构相同,例如搭载在汽车。其中,在密码处理的其他实施例1中,主机MCU_2-a以及末端MCU_2-b的各安全ROM_22存储有相同的共用密钥Kcom。共用密钥也被称为对称密钥。

根据规定的契机开始图19的处理。在此,以从主机MCU_2-a向末端MCU_2-b安全地通知作为秘密的信息的随机数的情景为例进行说明。此外,主机MCU_2-a和末端MCU_2-b之间的数据的收发经由通信总线3来进行。

(步骤S201)主机MCU_2-a将生成并保存在自身的RAM_12的初始随机数作为询问发送至末端MCU_2-b。另外,主机MCU_2-a将作为询问发送至该末端MCU_2-b的初始随机数转交给自身的安全元件14。

(步骤S202)末端MCU_2-b将从主机MCU_2-a接收到的作为询问的初始随机数转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom,对被转交的初始随机数进行加密。在该加密处理中,末端MCU_2-b的安全RAM_21用作为加密处理中的数据的临时存储区域。接着,末端MCU_2-b将作为被加密的初始随机数的加密数据Kcom(初始随机数)作为响应发送至主机MCU_2-a。

(步骤S203)主机MCU_2-a将从末端MCU_2-b接收到的作为响应的加密数据Kcom(初始随机数)转交给自身的安全元件14。主机MCU_2-a的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的加密数据Kcom(初始随机数)进行解密。

接着,主机MCU_2-a的密码处理部24验证通过该解密而得到的解密数据和在步骤S201中作为询问发送至末端MCU_2-b的初始随机数是否一致。在这些解密处理以及验证处理中,主机MCU_2-a的安全RAM_21用作为解密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该末端MCU_2-b的认证成功。

此外,代替对作为响应的加密数据Kcom(初始随机数)进行解密,主机MCU_2-a也可以使用共用密钥Kcom对在步骤S201中作为询问发送至末端MCU_2-b的初始随机数进行加密,并验证该加密数据Kcom(初始随机数)和作为响应的加密数据Kcom(初始随机数)是否一致。在这些加密处理以及验证处理中,主机MCU_2-a的安全RAM_21用作为加密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该末端MCU_2-b的认证成功。

在该验证成功的情况下,主机MCU_2-a的密码处理部24生成作为秘密的信息的随机数,并使用在自身的安全ROM_22中保存的共用密钥Kcom对所生成的随机数进行加密。在这些随机数生成处理以及加密处理中,主机MCU_2-a的安全RAM_21使用于随机数生成处理以及加密处理中的数据的临时存储区域。接着,主机MCU_2-a将作为被加密的秘密的信息(随机数)的加密数据Kcom(随机数)发送至末端MCU_2-b。

末端MCU_2-b将从主机MCU_2-a接收到的加密数据Kcom(随机数)转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的加密数据Kcom(随机数)进行解密。在该解密处理中,末端MCU_2-b的安全RAM_21用作为解密处理中的数据的临时存储区域。通过该解密处理,从加密数据Kcom(随机数)取得作为秘密的信息的随机数。

(步骤S204)末端MCU_2-b将自身的安全元件14所取得的作为秘密的信息的随机数存储至自身的RAM12中。主机MCU_2-a将发送至末端MCU_2-b的作为秘密的信息的随机数存储至自身的RAM12中。主机MCU_2-a和末端MCU_2-b保存作为相同的秘密的信息的随机数。

根据上述的密码处理的其他实施例1,通过安全元件14所进行的密码处理,安全地进行在MCU_2之间(在上述的例中,主机MCU_2-a和末端MCU_2-b之间)交换的信息的密码处理(加密处理、解密处理)。由此,保持在MCU_2之间交换的信息的安全性。

进而,通过基于该密码处理的询问/响应,主机MCU_2-a能够可靠地认证末端MCU_2-b。并且,从主机MCU_2-a对于认证完成的末端MCU_2-b,能够基于该密码处理安全地发送秘密的信息。该秘密的信息能够用作为上述的第一实施方式中的秘密信息。在上述的密码处理的其他实施例1中,从主机MCU_2-a对末端MCU_2-b安全地传递作为秘密的信息的随机数。

[密码处理的其他实施例2]

图20是本发明的一实施方式的密码处理的顺序图表。参照图20,对密码处理的其他实施例2进行说明。密码处理的其他实施例2是上述的第二实施方式的变形例。密码处理的其他实施例2的通信网络系统的结构与上述的第二实施方式的图7的通信网络系统1的结构相同,例如搭载在汽车。其中,在密码处理的其他实施例2中,主机MCU_2-a以及末端MCU_2-b的各安全ROM_22存储有相同的共用密钥Kcom。

根据规定的契机开始图20的处理。在此,以从主机MCU_2-a向末端MCU_2-b安全地通知作为秘密的信息的随机数的情景为例进行说明。此外,主机MCU_2-a和末端MCU_2-b之间的数据的收发经由通信总线3来进行。

(步骤S211)主机MCU_2-a将生成并保存在自身的RAM_12的初始随机数作为询问发送至末端MCU_2-b。另外,主机MCU_2-a将作为询问发送至该末端MCU_2-b的初始随机数转交给自身的安全元件14。

(步骤S212)末端MCU_2-b将从主机MCU_2-a接收到的作为询问的初始随机数转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的初始随机数进行加密。在该加密处理中,末端MCU_2-b的安全RAM_21用作为加密处理中的数据的临时存储区域。接着,末端MCU_2-b将作为被加密的初始随机数的加密数据Kcom(初始随机数)作为响应发送至主机MCU_2-a。

主机MCU_2-a将从末端MCU_2-b接收到的作为响应的加密数据Kcom(初始随机数)转交给自身的安全元件14。主机MCU_2-a的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的加密数据Kcom(初始随机数)进行解密。

接着,主机MCU_2-a的密码处理部24验证通过该解密而得到的解密数据和在步骤S211中作为询问发送至末端MCU_2-b的初始随机数是否一致。在这些解密处理以及验证处理中,主机MCU_2-a的安全RAM_21用作为解密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该末端MCU_2-b的认证成功。

此外,代替对作为响应的加密数据Kcom(初始随机数)进行解密,主机MCU_2-a也可以使用共用密钥Kcom对在步骤S211中作为询问发送至末端MCU_2-b的初始随机数进行加密,并验证该加密数据Kcom(初始随机数)和作为响应的加密数据Kcom(初始随机数)是否一致。在这些加密处理以及验证处理中,主机MCU_2-a的安全RAM_21用作为加密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该末端MCU_2-b的认证成功。

(步骤S213)末端MCU_2-b将生成并保存在自身的RAM_12的初始随机数作为询问发送至主机MCU_2-a。另外,末端MCU_2-b将作为询问发送至该主机MCU_2-a的初始随机数转交给自身的安全元件14。

(步骤S214)主机MCU_2-a将从末端MCU_2-b接收到的作为询问的初始随机数转交给自身的安全元件14。主机MCU_2-a的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的初始随机数进行加密。在该加密处理中,主机MCU_2-a的安全RAM_21用作为加密处理中的数据的临时存储区域。接着,主机MCU_2-a将作为被加密的初始随机数的加密数据Kcom(初始随机数)作为响应发送至末端MCU_2-b。

末端MCU_2-b将从主机MCU_2-a接收到的作为响应的加密数据Kcom(初始随机数)转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的加密数据Kcom(初始随机数)进行解密。接着,末端MCU_2-b的密码处理部24验证通过该解密而得到的解密数据和在步骤S213中作为询问发送至主机MCU_2-a的初始随机数是否一致。在这些解密处理以及验证处理中,末端MCU_2-b的安全RAM_21用作为解密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该主机MCU_2-a的认证成功。

此外,代替对作为响应的加密数据Kcom(初始随机数)进行解密,末端MCU_2-b也可以使用共用密钥Kcom对在步骤S213中作为询问发送至主机MCU_2-a的初始随机数进行加密,并验证该加密数据Kcom(初始随机数)和作为响应的加密数据Kcom(初始随机数)是否一致。在这些加密处理以及验证处理中,末端MCU_2-b的安全RAM_21用作为加密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该主机MCU_2-a的认证成功。

在上述的主机MCU_2-a和末端MCU_2-b之间的相互认证成功的情况下,在步骤S215中,从主机MCU_2-a对于末端MCU_2-b传递作为秘密的信息的随机数。

(步骤S215)主机MCU_2-a的密码处理部24生成作为秘密的信息的随机数,并使用在自身的安全ROM_22中保存的共用密钥Kcom对所生成的随机数进行加密。在这些随机数生成处理以及加密处理中,主机MCU_2-a的安全RAM_21用作为随机数生成处理以及加密处理中的数据的临时存储区域。接着,主机MCU_2-a将作为被加密的秘密的信息(随机数)的加密数据Kcom(随机数)发送至末端MCU_2-b。

末端MCU_2-b将从主机MCU_2-a接收到的加密数据Kcom(随机数)转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的加密数据Kcom(随机数)进行解密。在该解密处理中,末端MCU_2-b的安全RAM_21用作为解密处理中的数据的临时存储区域。通过该解密处理,从加密数据Kcom(随机数)取得作为秘密的信息的随机数。

(步骤S216)末端MCU_2-b将自身的安全元件14所取得的作为秘密的信息的随机数存储至自身的RAM12中。主机MCU_2-a将发送至末端MCU_2-b的作为秘密的信息的随机数存储至自身的RAM12中。主机MCU_2-a和末端MCU_2-b保存作为相同的秘密的信息的随机数。

根据上述的密码处理的其他实施例2,通过安全元件14所进行的密码处理,安全地进行在MCU_2之间(在上述的例中,主机MCU_2-a和末端MCU_2-b之间)交换的信息的密码处理(加密处理、解密处理)。由此,保持在MCU_2之间交换的信息的安全性。

进而,通过基于该密码处理的询问/响应,主机MCU_2-a和末端MCU_2-b能够可靠地进行相互认证。并且,在相互认证完成的主机MCU_2-a和末端MCU_2-b之间,从主机MCU_2-a对末端MCU_2-b,基于该密码处理能够安全地发送秘密的信息。该秘密的信息能够用作为上述的第一实施方式中的秘密信息。在上述的密码处理的其他实施例2中,从主机MCU_2-a向末端MCU_2-b安全地传递作为秘密的信息的随机数。

[密码处理的其他实施例3]

图21是本发明的一实施方式的密码处理的顺序图表。参照图21,对密码处理的其他实施例3进行说明。密码处理的其他实施例3是上述的第二实施方式的变形例。密码处理的其他实施例3的通信网络系统的结构与上述的第二实施方式的图7的通信网络系统1的结构相同,例如搭载在汽车。其中,在密码处理的其他实施例3中,主机MCU_2-a以及末端MCU_2-b的各安全ROM_22存储有相同的共用密钥Kcom。共用密钥还被称为对称密钥。

根据规定的契机开始图21的处理。在此,以从主机MCU_2-a向末端MCU_2-b安全地通知作为秘密的信息的随机数的情景为例进行说明。此外,主机MCU_2-a和末端MCU_2-b之间的数据的收发经由通信总线3来进行。

(步骤S221)主机MCU_2-a的密码处理部24生成初始随机数。

在该随机数生成处理中,主机MCU_2-a的安全RAM_21用作为随机数生成处理中的数据的临时存储区域。所生成的初始随机数被保存在主机MCU_2-a的安全RAM_21中。主机MCU_2-a将在自身的安全RAM_21中保存的初始随机数作为询问发送至末端MCU_2-b。

(步骤S222)末端MCU_2-b将从主机MCU_2-a接收到的作为询问的初始随机数转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的初始随机数进行加密。在该加密处理中,末端MCU_2-b的安全RAM_21用作为加密处理中的数据的临时存储区域。接着,末端MCU_2-b将作为被加密的初始随机数的加密数据Kcom(初始随机数)作为响应发送至主机MCU_2-a。

(步骤S223)主机MCU_2-a将从末端MCU_2-b接收到的作为响应的加密数据Kcom(初始随机数)转交给自身的安全元件14。主机MCU_2-a的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的加密数据Kcom(初始随机数)进行解密。

接着,主机MCU_2-a的密码处理部24验证通过该解密而得到的解密数据和在自身的主机MCU_2-a的安全RAM_21中保存的初始随机数是否一致。在这些解密处理以及验证处理中,主机MCU_2-a的安全RAM_21用作为解密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该末端MCU_2-b的认证成功。

此外,代替对作为响应的加密数据Kcom(初始随机数)进行解密,主机MCU_2-a也可以使用共用密钥Kcom对在自身的安全RAM_21中保存的初始随机数进行加密,并验证该加密数据Kcom(初始随机数)和作为响应的加密数据Kcom(初始随机数)是否一致。在这些加密处理以及验证处理中,主机MCU_2-a的安全RAM_21用作为加密处理以及验证处理中的数据的临时存储区域。通过该验证的成功,能够判断为该末端MCU_2-b的认证成功。

在该验证成功的情况下,主机MCU_2-a的密码处理部24生成作为秘密的信息的随机数,并使用在自身的安全ROM_22中保存的共用密钥Kcom对所生成的随机数进行加密。在这些随机数生成处理以及加密处理中,主机MCU_2-a的安全RAM_21用作为随机数生成处理以及加密处理中的数据的临时存储区域。接着,主机MCU_2-a将作为被加密的秘密的信息(随机数)的加密数据Kcom(随机数)发送至末端MCU_2-b。

末端MCU_2-b将从主机MCU_2-a接收到的加密数据Kcom(随机数)转交给自身的安全元件14。末端MCU_2-b的密码处理部24使用在自身的安全ROM_22中保存的共用密钥Kcom对被转交的加密数据Kcom(随机数)进行解密。在该解密处理中,末端MCU_2-b的安全RAM_21用作为解密处理中的数据的临时存储区域。通过该解密处理,从加密数据Kcom(随机数)取得作为秘密的信息的随机数。

(步骤S224)末端MCU_2-b将自身的安全元件14所取得的作为秘密的信息的随机数存储至自身的RAM12中。主机MCU_2-a将发送至末端MCU_2-b的作为秘密的信息的随机数存储至自身的RAM12中。主机MCU_2-a和末端MCU_2-b保存作为相同的秘密的信息的随机数。

根据上述的密码处理的其他实施例3,通过安全元件14所进行的密码处理,安全地进行在MCU_2之间(在上述的例中,主机MCU_2-a和末端MCU_2-b之间)交换的信息的密码处理(加密处理、解密处理)。由此,保持在MCU_2之间交换的信息的安全性。

进而,通过基于该密码处理的询问/响应,主机MCU_2-a能够可靠地认证末端MCU_2-b。并且,从主机MCU_2-a对于认证完成的末端MCU_2-b,能够基于该密码处理安全地发送秘密的信息。该秘密的信息能够用作为上述的第一实施方式中的秘密信息。在上述的密码处理的其他实施例3中,从主机MCU_2-a对末端MCU_2-b安全地传递作为秘密的信息的随机数。

此外,在上述的密码处理的其他实施例3中,与上述的密码处理的其他实施例2同样地,也可以使主机MCU_2-a和末端MCU_2-b彼此进行相互认证,并在相互认证成功的情况下,从主机MCU_2-a对末端MCU_2-b传递作为秘密的信息的随机数。

[MAC生成处理以及MAC检查处理的其他实施例]

图22是用于对本发明的一实施方式的MAC生成处理以及MAC检查处理进行说明的顺序图表。

参照图22,对MAC生成处理以及MAC检查处理的其他实施例进行说明。MAC生成处理以及MAC检查处理的其他实施例是上述的第二实施方式的变形例。MAC生成处理以及MAC检查处理的其他实施例的通信网络系统的结构与上述的第二实施方式的图7的通信网络系统1的结构相同,例如搭载在汽车。其中,在MAC生成处理以及MAC检查处理的其他实施例中,根据上述的密码处理的其他实施例1、2、3中的任一个,从主机MCU_2-a对于认证完成的末端MCU_2-b安全地发送作为秘密的信息的随机数。主机MCU_2-a以及末端MCU_2-b将作为该秘密的信息的随机数存储至RAM12中。该RAM12作为上述的第一实施方式中的秘密信息存储部117,保存作为该秘密的信息的随机数来作为秘密信息。

在图22中,发送侧MCU_2作为发送节点进行工作。发送侧MCU_2可以是主机MCU_2-a,或者也可以是末端MCU_2-b。接收侧MCU_2作为接收节点进行工作。接收侧MCU_2可以是主机MCU_2-a,或者也可以是末端MCU_2-b。发送侧MCU_2在RAM_12中保存秘密信息、发送计数值和发送数据。接收侧MCU_2在RAM_12中保存秘密信息和接收计数值。在制作从发送侧MCU_2发送的CAN帧时开始图22的处理。

(步骤S231)发送侧MCU_2的CPU_10使用在RAM_12中保存的秘密信息、发送数据和发送计数值,来生成MAC。该MAC的生成方法与上述的第一实施方式等相同。

(步骤S232)发送侧MCU_2的CPU_10将CAN帧发送至通信总线3,其中,在上述CAN帧中存储有在步骤S231中使用于MAC生成的发送数据和在步骤S231中生成的MAC。该CAN帧经由通信总线3被接收侧MCU_2接收。

(步骤S233)接收侧MCU_2的CPU_10将从通信总线3接收到的CAN帧保存在RAM_12中。接收侧MCU_2的CPU_10从在RAM_12中保存的CAN帧取得接收数据和接收MAC。进而,接收侧MCU_2的CPU_10从RAM12取得:与在CAN帧中的ID部中存储的ID对应的接收计数值,其中,上述CAN帧保存在RAM_12中。进而,接收侧MCU_2的CPU_10从RAM_12取得秘密信息。

接着,接收侧MCU_2的CPU_10使用所取得的秘密信息、接收数据和接收计数值,来生成MAC。该MAC的生成方法与上述的发送侧MCU_2相同。接着,接收侧MCU_2的CPU_10判定所生成的MAC和从在RAM_12中保存的CAN帧取得的接收MAC是否一致。在该判定的结果为不一致的情况下,与上述的第一实施方式等同样地进行再检查。

根据上述的MAC生成处理以及MAC检查处理的其他实施例,使用在RAM12中保存的秘密信息,CPU_10执行MAC生成处理以及MAC检查处理。由此,有可能能够缩短MAC生成处理以及MAC检查处理的处理时间。

在上述的图10所示的第二实施方式中,将秘密信息保存在安全元件14的安全RAM_21中,并在安全元件14中执行了MAC生成处理以及MAC检查处理。因此,例如,在每当发送CAN帧时,CPU_10每次将发送数据以及发送计数值转交给安全元件14,来从安全元件14接受所生成的MAC。

该CPU_10和安全元件14之间的数据交换需要一定的时间,成为MAC生成处理中的开销(overhead)。这在MAC检查处理中也相同。另一方面,根据上述的MAC生成处理以及MAC检查处理的其他实施例,仅由CPU_10执行MAC生成处理以及MAC检查处理,因此不发生CPU_10和安全元件14之间的数据交换,能够缩短与该开销相应的时间。

另外,也可以将用于实现上述的MCU_2的功能的计算机程序记录到计算机可读取的记录介质,来使计算机读入并执行在该记录介质中所记录的程序。

另外,“计算机可读取的记录介质”是指,软磁盘、光磁盘、ROM(只读存储器)、闪存器等可写入的非易失性存储器、DVD(Digital Versatile Disk)等移动式介质、内置于计算机的硬盘等存储装置。

进而,“计算机可读取的记录介质”还包括如在经由互联网等网络或电话线路等通信线路来发送了程序的情况下成为服务器或客户端的计算机内部的易失性存储器(例如,DRAM(Dynamic Random Access Me mory:动态随机存取存储器))那样在一定时间内保存程序的介质。

另外,上述程序也可以从在存储装置等中存储有该程序的计算机经由传输介质或者通过传输介质中的传输波来传输给其他计算机。在此,用于传输程序的“传输介质”是指,如互联网等的网络(通信网)或电话线路等通信线路(通信线)那样具有用于传输信息的功能的介质。

另外,上述程序也可以是用于实现上述的功能的一部分的程序。

进而,也可以通过与已在计算机中记录有上述的功能的程序的组合来实现,即也可以是所谓的差分文件(差分程序)。

附图标记的说明

1:通信网络系统

2、2-a、2-b:MCU

3:通信总线

10:CPU

11:闪存器

12:RAM

13:引导加载器

14:安全元件

21:安全RAM

22:安全ROM

23:验证部

24:密码处理部

111:发送部

112:接收部

113:帧接收处理部

114:MAC(消息认证码)生成部

115:计数器部

116:MAC(消息认证码)检查部

117:秘密信息存储部。

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