IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーの特許一覧

特開2024-100287電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム
<>
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図1
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図2
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図3
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図4
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図5
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図6ab
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図6cd
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図7
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図8
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図9
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図10
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図11
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図12
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図13
  • 特開-電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024100287
(43)【公開日】2024-07-26
(54)【発明の名称】電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システム
(51)【国際特許分類】
   H04L 69/00 20220101AFI20240719BHJP
   H04L 12/28 20060101ALI20240719BHJP
   H04L 47/43 20220101ALI20240719BHJP
   H04L 49/9057 20220101ALI20240719BHJP
【FI】
H04L69/00
H04L12/28 100A
H04L47/43
H04L49/9057
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023004165
(22)【出願日】2023-01-13
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】230120499
【弁護士】
【氏名又は名称】藤江 和典
(74)【代理人】
【識別番号】100201385
【弁理士】
【氏名又は名称】中安 桂子
(72)【発明者】
【氏名】伊藤 惇浩
【テーマコード(参考)】
5K030
5K033
【Fターム(参考)】
5K030GA15
5K030HA08
5K030HC14
5K030JA05
5K030KA15
5K030LE14
5K033AA08
5K033BA06
5K033CB01
5K033DA13
5K033DB16
(57)【要約】      (修正有)
【課題】フレームのデータフィールドのサイズ若しくは長さに依らず、より安全性を確保するMACを送信する電子制御装置、MAC送信方法、MAC送信プログラム及び電子制御システムを提供する。
【解決手段】電子制御装置ECU100は、送信データに基づきメッセージ認証コード(MAC)を生成するMAC生成部101aと、MACを複数の部分MACに分割するMAC分割部101bと、MACにおいて各部分MACがそれぞれ占めていた部分を示す情報である各識別情報を生成する識別情報生成部101cと、送信データを複数のフレームのうち少なくとも1つに格納するとともに、複数のフレームのそれぞれに各部分MAC及び対応する各識別情報を格納するフレーム生成部101dと、複数のフレームを送信する送信部103と、を備える。
【選択図】図5
【特許請求の範囲】
【請求項1】
送信データに基づきメッセージ認証コード(MAC)を生成するMAC生成部(101a)と、
前記MACを複数の部分MACに分割するMAC分割部(101b)と、
前記MACにおいて各部分MACがそれぞれ占めていた部分を示す情報である各識別情報を生成する識別情報生成部(101c)と、
前記送信データを複数のフレームのうち少なくとも1つに格納するとともに、前記複数のフレームのそれぞれに前記各部分MAC及び対応する前記各識別情報を格納するフレーム生成部(101d)と、
前記複数のフレームを送信する送信部(103)と、を備える、
電子制御装置。
【請求項2】
前記識別情報は、前記MACにおける前記部分MACの絶対的な位置を示す、
請求項1記載の電子制御装置。
【請求項3】
前記識別情報は、前記MACの先頭を起点とした前記部分MACの順序を示す、
請求項1記載の電子制御装置。
【請求項4】
前記複数のフレームのうち前記送信部からの送信順序が最後であるフレームに格納されている前記識別情報は、送信順序が最後であることを示す終端情報を兼ねている、
請求項1記載の電子制御装置。
【請求項5】
前記終端情報は、前記識別情報が取りうる値のうち最大の値である、
請求項4記載の電子制御装置。
【請求項6】
前記フレーム生成部は、前記複数のフレームのうち前記送信部からの送信順序が最後であるフレームに、送信順序が最後であることを示す終端情報を格納する、
請求項1記載の電子制御装置。
【請求項7】
前記フレーム生成部が生成する前記フレームがCAN通信プロトコルに準拠する場合、
前記識別情報は、前記フレームのコントロールフィールドに格納されるデータ長コード(DLC)に割当てられる、
請求項1記載の電子制御装置。
【請求項8】
前記DLCに割当てられた前記識別情報は、8から15の範囲の数値である、
請求項7に記載の電子制御装置。
【請求項9】
前記識別情報は、前記フレームのデータフィールドに格納される、
請求項1記載の電子制御装置。
【請求項10】
前記フレーム生成部が生成する前記フレームがCAN通信プロトコルに準拠する場合、
前記識別情報は、前記フレームのアービトレーションフィールドに格納された識別子(ID)に割当てられる、
請求項1記載の電子制御装置。
【請求項11】
さらに、前記送信データの種類又は前記送信データの送信先に基づき、前記複数の部分MACの全てを送信するか否かを決定するMAC範囲決定部(101e)を備え、
前記MAC範囲決定部が前記複数の部分MACの全てを送信しないと決定した場合、
前記送信部は、前記送信データ及び前記複数の部分MACのうち少なくとも1つの部分MACを格納したフレームを送信する、
請求項1記載の電子制御装置。
【請求項12】
当該電子制御装置は、移動体に搭載されている、
請求項1~11いずれかに記載の電子制御装置。
【請求項13】
電子制御装置で実行されるメッセージ認証コード(MAC)送信方法であって、
送信データに基づき前記MACを生成し(S1)、
前記MACを複数の部分MACに分割し(S3)、
前記MACにおいて各部分MACがそれぞれ占めていた部分を示す情報である各識別情報を生成し(S4)、
前記送信データを複数のフレームのうち少なくとも1つに格納するとともに、前記複数のフレームのそれぞれに前記各部分MAC及び前記各識別情報を格納し(S5)、
前記複数のフレームを送信する(S6)、
MAC送信方法。
【請求項14】
電子制御装置で実行可能なメッセージ認証コード(MAC)送信プログラムであって、
送信データに基づき前記MACを生成し(S1)、
前記MACを複数の部分MACに分割し(S3)、
前記MACにおいて各部分MACがそれぞれ占めていた部分を示す情報である各識別情報を生成し(S4)、
前記送信データを複数のフレームのうち少なくとも1つに格納するとともに、前記複数のフレームのそれぞれに前記各部分MAC及び前記各識別情報を格納し(S5)、
前記複数のフレームを送信する(S6)、
MAC送信プログラム。
【請求項15】
第1の電子制御装置(100)及び第2の電子制御装置(200)からなる電子制御システムであって、
前記第1の電子制御装置は、
送信データに基づきメッセージ認証コード(MAC)を生成するMAC生成部(101a)と、
前記MACを複数の部分MACに分割するMAC分割部(101b)と、
前記MACにおいて各部分MACがそれぞれ占めていた部分を示す情報である各識別情報を生成する識別情報生成部(101c)と、
前記送信データを複数のフレームのうち少なくとも1つに格納するとともに、前記複数のフレームのそれぞれに前記各部分MAC及び前記各識別情報を格納するフレーム生成部(101d)と、
前記複数のフレームを送信する送信部(103)と、を備え、
前記第2の電子制御装置は、
前記複数のフレームを受信する受信部(204)と、
前記複数のフレームそれぞれに格納されている前記各部分MAC及び前記各識別情報を用いて第1のMACを生成するするMAC復元部(201a)と、
前記受信部で受信した前記複数のフレームのうち少なくとも1つに格納された前記送信データに基づき第2のMACを生成するMAC生成部(201b)と、
前記第1のMACと前記第2のMACとを比較して前記送信データに対する認証を行う認証部(201c)と、を備える、
電子制御システム。
【請求項16】
前記第2の電子制御装置は、さらに、前記受信部で受信した前記複数のフレームの少なくとも1つに格納された前記送信データの種類に基づき、前記各部分MAC全てを用いて認証を行うか否かを決定するMAC範囲決定部(201d)を備え、
前記MAC範囲決定部が前記各部分MAC全てを用いないと決定した場合、
前記MAC復元部は、前記複数のフレームのうち1つに含まれる前記部分MACである第1の部分MACと前記識別情報を抽出し、
前記MAC生成部は、前記受信部で受信した前記複数のフレームの少なくとも1つに格納された前記送信データ及び前記識別情報に基づき第2の部分MACを生成し、
前記認証部は、前記第1の部分MACと前記第2の部分MACとを比較して前記送信データに対する認証を行う、
請求項15記載の電子制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッセージ認証コード(MAC:Message Authentication Code)の送信に係る電子制御装置、MAC送信方法、MAC送信プログラム及び電子制御システムに関する。
【背景技術】
【0002】
特許文献1には、車載機器を制御する複数のECU(Electronic Control Unit)と、各ECUが相互に通信するためのCAN(Controller Area Network)等の車載ネットワークと、ECU間の通信を中継するゲートウェイ装置と、を備える車載ネットワークシステムについて開示されている。各ECUは、フレームを送受信して通信を行う。
【0003】
ところで、CANでは、不正なフレームが送信されるようなケースを想定したセキュリティ機能が存在しない。そのため、不正なフレームの送信による妨害、ハッキングなどを防止するために、CANにおけるデータフィールドにメッセージ認証コード(MAC:Message Authentication Code)を付加して送信することがある。このMACによって、正規のECUから送信されたフレームであるかを識別することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2021-16186号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、本発明者は、以下の課題を見出した。
引用文献1に記載される通り、CANにおけるデータフィールドは、0~64bitの領域である。すなわち、MACは最大64bitのサイズ若しくは長さに抑えなければならない。実際には、64bitの領域をデータとMACで共有しなければならず、例えば引用文献1の図2のように、データが32bit、MACが32bitのようになる。
その一方で、MACによるセキュリティは、そのサイズが大きくなるほど、安全性を担保することができる。例えば10byte(80bit)以上のサイズを持つMACを使用することができれば、より高い安全性を確保することができる。しかしながら、そもそもCANにおけるデータフィールドが0~64bitのサイズであるため、より安全性の高い10byteのサイズを持つようなMACをデータフィールドに格納することができない。その結果、安全性を十分に高めることが困難であった。CAN以外の通信プロトコルにおいても、データフィールドの最大サイズが決まっている場合は、同様な課題がある。
【0006】
本発明は、フレームのデータフィールドのサイズ若しくは長さに依らず、より安全性を確保することができるMACを送信することができる電子制御装置、MAC送信方法、MAC送信プログラム、及び電子制御システムを実現することを目的とする。
【課題を解決するための手段】
【0007】
本開示の電子制御装置は、送信データに基づきメッセージ認証コード(MAC)を生成するMAC生成部(101a)と、
前記MACを複数の部分MACに分割するMAC分割部(101b)と、
前記MACにおいて各部分MACがそれぞれ占めていた部分を示す情報である各識別情報を生成する識別情報生成部(101c)と、
前記送信データを複数のフレームのうち少なくとも1つに格納するとともに、前記複数のフレームのそれぞれに前記各部分MAC及び対応する前記各識別情報を格納するフレーム生成部(101d)と、
前記複数のフレームを送信する送信部(103)と、を備える。
【0008】
なお、特許請求の範囲、及び本項に記載した発明の構成要件に付した括弧内の番号は、本発明と後述の実施形態との対応関係を示すものであり、本発明を限定する趣旨ではない。
【発明の効果】
【0009】
上述のような構成により、フレームのデータフィールドのサイズ若しくは長さに依らず、より安全性を確保することができるMACを送信することができる。
【図面の簡単な説明】
【0010】
図1】本開示の各実施形態の電子制御システムを示す図
図2】本開示の各実施形態で用いられるCANフレームの構成を示す図
図3】本開示の各実施形態で行われるMACの分割及び格納を説明する図
図4】本開示の各実施形態で用いる識別情報及び終端情報を説明する図
図5】本開示の実施形態1の電子制御システム及びそれを構成する電子制御装置の構成例を示すブロック図
図6ab】本開示の実施形態1の識別情報/終端情報をコントロールフィールドのDLCに割当てる場合を説明する図
図6cd】本開示の実施形態1の識別情報/終端情報をコントロールフィールドのDLCに割当てる場合を説明する図
図7】本開示の実施形態1の識別情報/終端情報をデータフィールドに格納する場合を説明する図
図8】本開示の実施形態1の識別情報/終端情報をアービトレーションフィールドのCAN IDに割当てる場合を説明する図
図9】本開示の実施形態1の識別情報と終端情報を別のフィールドに割当てる場合を説明する図
図10】本開示の実施形態1の識別情報と終端情報を別のフィールドに割当てる場合の組み合わせを示す図
図11】本開示の実施形態1の電子制御装置の動作を示すフローチャート
図12】本開示の実施形態1の電子制御装置の詳細な動作を示すフローチャート
図13】本開示の実施形態2の電子制御システム及びそれを構成する電子制御装置の構成例を示すブロック図
図14】本開示の実施形態3の電子制御システム及びそれを構成する電子制御装置の構成例を示すブロック図
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照して説明する。
【0012】
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
【0013】
特許請求の範囲の従属項に記載の構成及び方法は、特許請求の範囲の独立項に記載の発明において任意の構成及び方法である。従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明において任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明において任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
【0014】
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
【0015】
複数の実施形態がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせてもよい。また、複数の実施形態それぞれに開示の構成を集めて組み合わせてもよい。
【0016】
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。
【0017】
1.実施形態の前提となる構成等について
(1)電子制御装置と電子制御システム
図1を用いて、電子制御システム1の全体構成を説明する。
電子制御システム1は、複数の電子制御装置(ECU(Electric Control Unit)、以下ECUと略する。))及びECU同士を接続する車載ネットワークから構成されている。図1では、複数の電子制御装置の例としてECU100、200、300を有する例を示している。以降、ECU100、200、300を区別しない場合は、単にECUと記載する。
【0018】
ECUは任意の機能を有する個別ECUで構成することができる。例えば、エンジン、ハンドル、ブレーキ等の制御を行う駆動系電子制御装置、メータやパワーウインドウ等の制御を行う車体系電子制御装置、ナビゲーション装置等の情報系電子制御装置、あるいは、障害物や歩行者との衝突を防止するための制御を行う安全制御系電子制御装置が挙げられる。
【0019】
また、ECUは、外部通信ECUや統合ECUであってもよい。
外部通信ECUは、外部との通信を行うECUである。外部通信ECUが用いる通信方式は、任意の無線通信方式又は有線通信方式を用いることができる。
統合ECUは、個別ECUや外部通信ECUを仲介するゲートウェイ機能を備えたECUである。また、統合ECUに電子制御システム1の全体を制御する機能、例えばセキュリティ機能やログ管理アプリ等のセキュリティイベントログを管理する機能を設けるようにしてもよい。統合ECUは、ゲートウェイECU(G-ECU)やモビリティコンピュータ(MC)と呼ばれることもある。また、統合ECUは、中継装置やゲートウェイ装置であってもよい。
【0020】
ECU同士は並列ではなく、マスタとスレーブとに分類されていてもよい。
ECUは、物理的に独立したECUである場合の他、仮想的に実現された仮想ECU(あるいは、仮想マシンと呼ぶこともある。)であってもよい。
【0021】
ECU間を接続する車載ネットワークの例として、例えばCAN(Controller Area Network)、LIN(Local Interconnect Network)が挙げられる。CAN通信プロトコルには、従来型のClassic CANや、CAN FD等の仕様があるが、本実施形態ではClassic CANを例に説明する。
その他の例として、Ethernet(登録商標)、Wi-Fi(登録商標)、Bluetooth(登録商標)等、有線無線を問わず任意の通信方式を用いて接続されてもよい。
なお、接続とは、データのやり取りが可能な状態をいい、異なるハードウェアが有線又は無線の通信ネットワークを介して接続されている場合はもちろん、同一のハードウェア上で実現された仮想マシン同士が仮想的に接続されている場合も含む。
【0022】
図1では、ECUやECUから構成される電子制御システム1は、「移動体」に「搭載」されている例を示している。もっとも、ECUや電子制御システム1は、必ずしも移動体に搭載されていなくてもよい。
ここで、
「移動体」とは、移動可能な物体をいい、移動速度は任意である。また移動体が停止している場合も当然含む。例えば、自動車、自動二輪車、自転車、歩行者、船舶、航空機、及びこれらに搭載される物を含み、またこれらに限らない。
「搭載」される、とは、移動体に直接固定されている場合の他、移動体に固定されていないが移動体と共に移動する場合も含む。例えば、移動体に乗った人が所持している場合、移動体に載置された積荷に搭載されている場合、が挙げられる。
【0023】
(2)CANフレーム
図2を用いて、Classic CANフレーム(以下、CANフレームとする)のフォーマットを示す。CANフレームは、SOF(Start Of Frame)、アービトレーションフィールド、コントロールフィールド、データフィールド、CRC(Cyclic Redundancy Check)、ACK(Acknowledgement)及び、EOF(End Of Frame)の各フィールドで構成される。
【0024】
アービトレーションフィールドは、ID及びRTRで構成されている。
IDは11bitで構成され、データの種類を値で示す識別子(ID)である。IDはCAN IDとも称される。
【0025】
コントロールフィールドは、IDE、予約ビットr、DLCで構成されている。DLCは、4bitで構成され、データフィールドのサイズ(byte)を示す値である。すなわちDLCは、Classic CANの場合データフィールドの長さは最大8byteなので、0~8の値を設定することができる。
【0026】
データフィールドは、ユーザが定義できる領域、すなわち送信するデータの内容を格納するフィールドであり、最大64bitで構成される。データフィールドは、8bit(1byte)毎にサイズを調整できる。
【0027】
図2及びそれ以降の図面では、アービトレーションフィールドを太線枠で、コントロールフィールドを斜線で、データフィールドを細線枠で、それぞれ記載し、その他のフィールドについては以降の図面では記載を省略する。
【0028】
2.実施形態1の電子制御装置(ECU)について
(1)ECUの主要な動作と関係する情報
(A)MACの分割
本実施形態では、送信側のECUは、MACを分割して複数のフレームに格納して送信する。そこで、まず図3を用いて、MACの分割について説明する。
【0029】
従来技術では、図3(a)に示すように、1つのフレームの中のデータフィールドに、送信データとMACを格納する。前述したように、CANフレームのデータフィールドは最大8byte(64bit)であるので、典型的には4byteのデータと4byteのMACを1つのCANフレームに格納する。その結果、図3(a)の場合、4byte以上のサイズを持つMACを格納することができない。
【0030】
そこで本実施形態では、図4(b)に示すように、例えば18byteのサイズを持つMACを複数の部分MACに分割する。この際、データフィールドは最大8byteであることを踏まえ、MAC(1):4byte、MAC(2):8byte、MAC(3):6byte、の3つの部分MACに分割している。分割数Nは、

N>(送信データのサイズ+MACサイズ)/8byte

の式が成り立つ整数の最小値である。
【0031】
続いて、1番目のフレームに4byteの送信データと4byteのMAC(1)とを格納し、2番目のフレームに8byteのMAC(2)を格納し、3番目のフレームに6byteのMAC(3)を格納する。3番目のフレームのデータフィールドの残りの領域は値0で埋めるパディングを施してもよい。この3つのフレームのように、送信データと、この送信データに基づいて生成されたMACを分割した複数の部分MACと、を格納する複数のフレームの集まりをフレームセットと呼ぶ。
【0032】
図3の例では、部分MACのサイズをフレームに格納できる最大の大きさになるように分割している、すなわち分割数が最小となるように分割しているが、他の分割方法を用いてもよい。例えば、例えば1byte程度の小さいサイズの部分MACに分割し、これを規則的又はランダムに複数のフレームに振り分けるようにしてもよい。
また、送信データも分割して複数のフレームに振り分けるようにしてもよい。
【0033】
図3では、MACの分割数は3であったが、MACのサイズに応じて分割数を2や4以上としてもよい。
【0034】
(B)識別情報と終端情報(総論)
a)識別情報
受信側のECUで部分MACからMACを復元する場合、必ずしも送信側のECUで送信したフレーム順に受信側のECUが受信するとは限らないので、MACを復元するためにはMACにおいて各部分MACがそれぞれ占めていた「部分を示す」情報が必要となる。本実施形態ではこの情報を識別情報と称する。
【0035】
識別情報は、MACにおける部分MACの絶対的な位置を示してもよい。例えば、図4のex1のように、MAC(1)はMACの先頭部分から開始するので0(byte)、MAC(2)はMACの4byte目から開始するので4(byte)、MAC(3)はMACの12byte目から開始するので12(byte)とする。
【0036】
識別情報は、MACにおける部分MACの相対的な位置を示してもよい。例えば、MACの先頭を起点とした部分MACの「順序」を示してもよい。例えば、図4のex2のように、MAC(1)はMACの中で先頭の部分MACなので1、MAC(2)は先頭から2番目の部分MACなので2、MAC(3)は先頭から3番目の部分MACなので3とする。
ex2は順序を昇順で示したが、降順であってもよい。例えば、図4のex3のように、MAC(1)はMACの中で最後尾から3番目の部分MACなので3、MAC(2)は最後尾から2番目の部分MACなので2、MAC(3)は最後尾の部分MACなので1とする。
ex2は全てのフレームに部分MACの順序を示したが、一部であってもよい。例えば、図4のex4のように、最後のフレームを除いたフレームにex2と同様の識別情報を付与してもよい。
ここで、「順序」とは、昇順(カウントアップ)でも降順(カウントダウン)でもよい。
【0037】
部分MACのサイズが固定(例えば1byte)であって、下位又は上位から順次送信する場合、かつ通信路上でのフレームの順序の入れ替わりを考慮する必要がない場合は、例えば図4のex5のように、MAC(1)は後続の部分MACがあることを示す0、MAC(2)も後続の部分MACがあることを示す0、MAC(3)は後続の部分MACがないことを示す0以外の値としてもよい。ex5では、MAC(3)は部分MACの合計数である3としている。ex5の場合も、部分MACのサイズが固定で順次送信かつフレームの順序の入れ替わりを考慮する必要がないという条件下において、識別情報は各部分MACがそれぞれ占めていた部分を示す情報といえる。
【0038】
b)終端情報
受信側のECUで部分MACからMACを復元する場合、受信側のECUはシーケンシャルにフレームを受信するので、全ての部分MACが揃っているかどうかを判断できることが望ましい。そこで、本実施形態では、送信側のECUからの送信順序が最後であるフレームに、送信順序が最後であることを示す情報を格納して送信する。本実施形態では、この情報を終端情報と称する。
【0039】
例えば、図4ではMAC(3)に終端情報としてEを格納している。その他、終端情報の内容は任意であり、例えばフレームの特定の領域のビットを終端情報としてフラグで示すようにしてもよい。
【0040】
もっとも、上述の識別情報が終端情報を兼ねるようにしてもよい。すなわち、送信側のECUからの送信順序が最後であるフレームに格納されている識別情報が、送信順序が最後であることを示す終端情報を兼ねるようにしてもよい。
【0041】
例えば、識別情報が取りうる値のうち最大の値を終端情報としてもよい。例えば、図4ex4において、識別情報が取りうる値の最大値を10とした場合、送信順序が最後であるフレームに値10を格納している。
あるいは、識別情報が降順の場合は、識別情報が取りうる値のうち最小の値を終端情報としてもよい。例えば、図4のex3において、値1が識別情報と終端情報を兼ねている。
さらに、ex5のように、分割によって生成した部分MACの合計数を終端情報としてもよい。
その他、MACが固定長でありフレームセットのフレーム数が一定値である場合、フレームの分割数が一定の場合、受信側のECUにおいて送信順序が最後であることが既知である場合は、該当する識別情報の値が終端情報となる。例えば、ex1やex2の場合においても、MAC(3)は終端情報を兼ねることができる。
【0042】
なお、終端情報を設けることは任意である。
【0043】
(2)電子制御システム及び電子制御装置(ECU)の構成
次に、図5を用いて本実施形態における電子制御システム及びそれを構成する各ECUの構成について説明する。ここでは、ECU100がフレームセットを送信する送信側のECU、ECU200がフレームセットを受信する受信側のECUとして説明するが、ECU100及びECU200は、送信及び受信の両方の機能を有していてもよい。
【0044】
ECU100は、制御部101、記憶部102、送信部103、受信部104を備える。制御部101は、MAC生成部101a、MAC分割部101b、識別情報生成部101c、フレーム生成部101dを実現する。
【0045】
MAC生成部101aは、送信データに基づきメッセージ認証コード(MAC)を生成する。MACとは、送受信されるデータが途中で改ざん等がされていないかを検証するための情報である。MACは、送信側と受信側が共有する共有鍵と送信データとから生成される。生成されたMACは、記憶部102に記憶される。
【0046】
MAC分割部101bは、MAC生成部101aが生成したMACを複数に分割し、複数の部分MACを生成する。MACの分割は、図3で説明した通りである。
【0047】
識別情報生成部101cは、MACにおいて各部分MACがそれぞれ占めていた「部分を示す」情報である各識別情報を生成する。識別情報の概略については、図4を用いて既に説明した通りである。識別情報は、格納するフレームのフィールドに応じて形式・内容を決めればよい。識別情報の具体例は(A)~(D)で後述する。
なお、識別情報生成部101cは、さらに終端情報を生成してもよい。
ここで、「部分を示す」とは、MACの絶対的な位置(ex:先頭ビット)で示される場合の他、各部分MACの相対関係から定まるMACの相対的な位置(ex:MACの先頭(又は最後尾)を起点に定まる順序)で示される場合であってもよい。また、「部分」は、MAC内の連続する部分でなくてもよく、離散的な位置で示される場合であってもよい。
【0048】
フレーム生成部101dは、送信データを複数のフレームのうち少なくとも1つに格納するとともに、複数のフレームのそれぞれに各部分MAC及び対応する各識別情報を格納する。識別情報を格納するフィールドの具体例は、識別情報の具体例とともに(A)~(D)で後述する。
フレーム生成部101dは、さらに、複数のフレームのうち送信部103からの送信順序が最後であるフレームに、送信順序が最後であることを示す終端情報を格納してもよい。
【0049】
送信部103は、フレーム生成部101dが生成した各フレームであるフレームセットをECU200やその他のECUに送信する。受信部104は、ECU200や他のECUから送信されたフレームなどを受信する。
【0050】
次に、ECU200について説明する。ECU200は、制御部201、記憶部202、送信部203、受信部204を備える。制御部201は、MAC復元部201a、MAC生成部201b、認証部201cを実現する。
【0051】
MAC復元部201aは、ECU100から受信したフレームセットの複数のフレームそれぞれに格納されている各部分MAC及び各識別情報を用いて、ECU100で分割したMACを復元し、復元MAC(「第1のMAC」に相当)を生成する。
【0052】
MAC生成部201bは、ECU100から受信したフレームセットの複数のフレームのうち少なくとも1つに格納された送信データに基づきMAC(「第2のMACに相当」を生成する。上述したように、送信側と受信側とは共有する鍵を持っているので、送信データが改ざんされていなければ、送信側と受信側とで同一のMACを生成することができる。
【0053】
認証部201cは、MAC復元部201aによって復元した復元MACとMAC生成部201bが生成したMACとを比較して、送信データに対する認証を行う。すなわち、復元MACとMACとを比較して同一であれば、送信データは信頼してもよい。一方、復元MACとMACとを比較して異なる場合は、送信データは信頼できない。
【0054】
送信部203は、ECU100や他のECUにフレームなどを送信する。
【0055】
受信部204は、ECU100や他のECUからフレームセットを受信する。
【0056】
(A)識別情報等をコントロールフィールドに格納する場合
図6を用いて、識別情報や終端情報をコントロールフィールドに格納する例を説明する。
この例では、フレーム生成部101dが生成するフレームがClassic CAN通信プロトコルに準拠する場合、識別情報をコントロールフィールドに格納されるデータ長コード(DLC)に割当てる。
【0057】
図2で説明した通り、コントロールフィールドは6bitで構成され、図2に示すように4bitがDLCである。DLCは、データフィールドのサイズ若しくは長さを表すものである。データフィールドは最大8byteであるので、DLCは0~8の数値を取りうる。一方、DLCは4bitで構成されるので、0~15までの数値を表現することができる。したがって、DLCでは9~15の数値は使用されていない。そこで、9~15の範囲の数値を識別情報として活用する。
なお、複数のフレームを送信する前提であれば、最初に送信されるフレームのデータサイズは8byteになるので、DLCには8が割当てられる。したがって、識別情報としては、8~15の範囲の数値が割当てられるといえる。
【0058】
図6(a)は、DLCの値と送信の順序、及びデータサイズの関係を示している。MACを分割しない場合は、DLCは0~8の値をとり、その値がデータサイズに相当する。MACを分割する場合は、最初に送信されるフレームのDLCに8を割当てる。2番目に送信されるフレームのDLCに9を割当て、データサイズは8byteである。以降、送信順に10、11と増加し、8つに分割して送信する場合まで対応することができる。
【0059】
図6(b)はMACを3つに分割して送信する場合を示している。図6(b)においては、MACのサイズが18byteであるため、1番目のフレームに4byteの送信データ及び4byteのMAC(1)を、2番目のフレームに8byteのMAC(2)を、3番目のフレームに6byteのMAC(3)及び2byteのパディングを格納している。そして、この順序で各フレームが送信される。
この場合、図6(a)に示すルールに従えば、1番目のフレームは、データフィールドのサイズが8byteとなるので、通常通りDLCに8を割当てる。2番目のフレームは、データフィールドのサイズが8byteとなるが、通常通りDLCに8を割当てるのではなく、9を割当てる。3番目のフレームは、データフィールドのサイズが8byteとなるが、通常通りDLCに8を割当てるのではなく、10を割当てる。
【0060】
図6(c)は、DLCの値と送信の順序、及びデータサイズの関係の別の例を示している。図6(a)との相違は、DLCが15の場合、最後に送信されるフレームであることを示している点である。すなわち、DLCが最大値である15の場合であり、これが終端情報としても機能している。
この場合、図6(c)に示すルールに従えば、図6(d)に示す通り、3番目のフレームは最後に送信されるフレームであるので、DLCに15を割当てる。
【0061】
この例によれば、DLCとして使用されていなかった範囲を識別情報や終端情報に割当てるので、データフィールドを用いることなく識別情報や終端情報をフレームに格納することができる。すなわち、データフィールドを圧迫することなく、部分MACを送受信することができる。
【0062】
(B)識別情報等をデータフィールドに格納する場合
図7を用いて、識別情報や終端情報をデータフィールドに格納する例を説明する。
この例では、フレーム生成部101dが生成するフレームがClassic CAN通信プロトコルに準拠する場合、データフィールドが最大8byteとなるので、例えばそのうちの1byteを識別情報に割当てる。
【0063】
図7(a)はMACを3つに分割して送信する場合を示している。図7(a)においては、MACのサイズが16byteであるため、1番目のフレームに4byteの送信データ及び3byteのMAC(1)を、2番目のフレームに7byteのMAC(2)を、3番目のフレームに6byteのMAC(3)を格納している。そして、この順序で各フレームが送信される。
図7(a)の場合、1番目のフレームのデータフィールドには、識別情報として0x00を格納する。2番目のフレームのデータフィールドには、識別情報として0x01を格納する。3番目のフレームのデータフィールドには、識別情報として0x02を格納する。これによって、各フレームが分割MACを格納しているか否かと、フレームセットのうちの何番目のフレームであるかを識別することができる。なお、データフィールドに識別情報を格納する場合の識別情報のサイズは1byte以外でもよい。例えば、2~4bitとしてもよい。
【0064】
図7(b)は、別の例を示している。図7(a)との相違は、3番目のフレームのデータフィールドには、識別情報として0xFFを格納している点である。すなわち、識別情報が最大値である0xFFの場合であり、これが終端情報としても機能している。
【0065】
この例によれば、データフィールドに識別情報や終端情報を格納するので、MACのサイズが大きい場合、すなわちMACの分割数が多い場合にも対応することができる。また、データフィールドのサイズが大きい場合や可変長であるような通信プロトコル、例えばEthernet(登録商標)を使う場合に有用である。
【0066】
(C)識別情報等をアービトレーションフィールドに格納する場合
図8を用いて、識別情報や終端情報をアービトレーションフィールドに格納する例を説明する。
この例では、フレーム生成部101dが生成するフレームがClassic CAN通信プロトコルに準拠する場合、識別情報は、アービトレーションフィールドに格納されたCAN ID(11byte)に「割当てられる」。
ここで、「割当てられる」とは、IDに識別情報そのものが割当てられる場合の他、ID本来の意義を有する情報とともに識別情報が割当てられてもよい。
【0067】
CAN IDは11bitで構成され、送受信するデータの種類を示す識別子である。すなわち、送受信するデータフィールド内のデータの種類によって、対応するCAN IDを予め定義しておくことで、CAN IDによりデータフィールドに格納されたデータの種類を識別することができる。この例では、CAN IDに識別情報を割当てている。例えば使用されていない11bitのCAN IDに識別情報を割当ててもよい。あるいは、使用されているCAN IDのうち使用されていない下位bitに識別情報を割当ててもよい。
【0068】
図8(a)の場合、1番目のフレームのCAN IDに識別情報として下位bitに100を割当て、2番目のフレームのCAN IDに識別情報として下位bitに101を割当て、3番目のフレームのCAN IDに識別情報として下位bitに102を割当てる。
【0069】
図8(b)は、別の例を示している。図8(a)との相違は、3番目のフレームのCAN IDに識別情報として下位bitに109を割当てている点である。すなわち、識別情報が最大値である109の場合であり、これが終端情報としても機能している。
【0070】
この例によれば、CAN IDとして使用されていなかった範囲を識別情報や終端情報に割当てるので、データフィールドを用いることなく識別情報や終端情報をフレームに格納することができる。すなわち、データフィールドを圧迫することなく、部分MACを送受信することができる。
【0071】
(D)識別情報と終端情報を別のフィールドに格納する場合
図9を用いて、識別情報と終端情報をそれぞれ別のフィールドに格納する例を説明する。
図9(a)は、アービトレーションフィールドのCAN IDに識別情報を、コントロールフィールドのDLCに終端情報を、割当てている例を示す。
【0072】
図9(a)の場合、1番目のフレームのCAN IDに識別情報として下位bitに100を割当て、2番目のフレームのCAN IDに識別情報として下位bitに101を割当て、3番目のフレームのCAN IDに識別情報として下位bitに102を割当てる。
【0073】
また、1番目のフレームは、データフィールドのサイズが8byteとなるので、DLCに8を割当てる。2番目のフレームは、データフィールドのサイズが8byteとなるので、DLCに8を割当てる。3番目のフレームは、最後に送信されるフレームであるので、DLCに15を割当てる。2番目のフレームに9を割当てないのは、DLCに識別情報の機能を持たせる必要がないからである。
なお、DLCに識別情報の機能を持たせる必要がない場合は、DLCは0~8の範囲の値しか取らないので、9以上の値を終端情報としてもよい。
【0074】
図9(b)は、コントロールフィールドのDLCに識別情報を割当て、データフィールドに終端情報を格納している例を示す。
【0075】
図9(b)の場合、1番目のフレームは、識別情報としてDLCに8を割当てる。2番目のフレームは、識別情報としてDLCに9を割当てる。3番目のフレームは、識別情報としてDLCに10を割当てる。
【0076】
また、1番目のフレームのデータフィールドには、識別情報として0x00を格納する。2番目のフレームのデータフィールドには、識別情報として0x00を格納する。3番目のフレームのデータフィールドには、識別情報として0xFFを格納する。1番目のフレームのデータフィールドに0x01、2番目のフレームのデータフィールドに0x02を格納しないのは、データフィールドに識別情報の機能を持たせる必要がないからである。
【0077】
識別情報と終端情報を異なるフィールドに格納する場合の組み合わせは、図9(a)、(b)に限られず、図10に示すような組み合わせが考えられる。すなわち、コントロールフィールドのDLC、データフィールド、アービトレーションフィールドのCAN IDのいずれか1つを識別情報として機能させ、他の2つのうち1つを終端情報として機能させるとよい。
【0078】
(3)電子制御装置(ECU)の動作
図11及び図12のフローチャートを用いて、本実施形態のECU100及びECU200の動作について説明する。
なお、以下の動作は、ECU100で実行されるMAC送信方法を示すだけでなく、ECU100で実行可能なMAC送信プログラムの処理手順を示すものである。また、ECU200で実行されるMAC受信方法を示すだけでなく、ECU200で実行可能なMAC受信プログラムの処理手順を示すものである。そして、これらの処理は、図11及び図12で示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
【0079】
送信側のECU100において、MAC生成部101aは、送信データに基づきメッセージ認証コード(MAC)を生成する(S1)。
【0080】
MAC分割部101bは、送信データとS1で生成したMACとの合計のサイズを算出する(S2)。図3の場合であれば、送信データが4byteであり、MACが18byteであるので、合計サイズは22byteとなる。
【0081】
続いて、合計サイズからフレームの分割数を算出してMACを分割し(S3)、複数の部分MACを生成する。(S3)。図3の場合であれば、合計サイズが22byteであり、1つのフレームのデータフィールドの最大のサイズが8byteであるので、

N>(送信データのサイズ+MACサイズ)/8byte

の式に基づき3つのフレームに分割する。
【0082】
識別情報生成部101cは、S1で生成したMACにおいて、S3で生成した各部分MACがそれぞれ占めていた部分を示す情報である各識別情報を生成する(S4)。さらに、識別情報生成部101cは、必要に応じて終端情報を生成する(S4)。
【0083】
フレーム生成部101dは、送信データを複数のフレームのうち少なくとも1つに格納するとともに、複数のフレームのそれぞれにS3で生成した各部分MAC並びにS4で生成した各識別情報及び終端情報を格納することにより、複数のフレームを生成する(S5)。なお、フレームの枠自体の生成は、送信データの生成時、部分MACの生成時、識別情報の生成時のいずれであってもよい。また、情報の格納時は、各情報の生成時でもよい。
【0084】
送信部103は、S5で生成したフレームセットである複数のフレームをECU200及びその他のECUに送信する。
なお、S5でのフレーム生成及びS6でのフレーム送信は、複数のフレームをまとめて生成及び送信しているが、1つずつフレームを生成し送信することを繰り返すようにしてもよい。
【0085】
受信側のECU200において、受信部204はS6でECU100から送信されたフレームセットである複数のフレームを受信する(S11)。
【0086】
MAC復元部201aは、S11で受信した複数のフレームそれぞれに格納されている各部分MAC並びに各識別情報及び終端情報を用いて復元MAC(「第1のMAC」に相当)を生成する(S12)。S12については、後ほど図12を用いて詳細に説明する。
【0087】
MAC復元部201aは、連結終了フラグがONになっているかどうかを判断する(S13)。ONになっている場合(S13:YES)、S14に処理を移す。OFFになっている場合(S12:No)は終了する。連結終了フラグはMACの復元が完了したか否かを示すフラグであり、生成方法については図12で説明する。
【0088】
MAC生成部201bは、S11で受信した複数のフレームのうち少なくとも1つに格納された送信データに基づきMAC(「第2のMAC」に相当)を生成する(S13)。
【0089】
認証部201cは、S12で復元した復元MACとS13で生成したMACとを比較して、送信データに対する認証を行う(S14)。
【0090】
次に、図12を参照して、復元MACの生成(S12)について詳細に説明する。この例では、識別情報は0から始まり、終端情報を兼ねた識別情報を示す整数Eまでとする。
【0091】
まず、受信したフレームに対して、識別情報が1番目のフレームを指しているかを判定する(S21)。図12では、識別情報が0の時、1番目のフレームを指しているとする。識別情報が1番目のフレームを指している場合(S21:YES)、記憶部202に設けられたバッファをクリアし(S22)、S11で受信したフレームから送信データ及び/又は部分MACをバッファに格納する(S23)。そして、識別情報(ここでは0)を、連結完了識別情報とする(S24)。
【0092】
受信したフレームの識別情報が1番目のフレームを指していない場合(S21:NO)、連結完了識別情報に1を加えた数字と、今回受信したフレームの識別情報の数字とが一致するかどうかを判定する(S25)。一致する場合(S25:YES)、受信したフレームから部分MACをバッファに格納し、既にバッファに格納されている部分MACと連結する(S26)。そして、識別情報を、連結完了識別情報とする(S27)。
【0093】
連結完了情報がMACの終端情報を示す整数Eであるか否かを判定する(S28)。整数E、すなわち送信順序が最後であることを示す場合(S28:YES)、連結終了フラグをONとする(S29)。整数Eでない、すなわち送信順序が最後でないことを示す場合(S28:NO)、連結終了フラグをOFFとする(S30)。
【0094】
なお、S25で一致しない場合(S25:NO)、送受信が適切に行われていない可能性があるので受信した部分MACを破棄し(S31)、連結終了フラグをOFFとする(S32)。
【0095】
なお、受信側のECUが部分MACの復元に対応していない場合は、送信データと部分MACを備える1番目のフレームのみを使ってMAC認証を行うようにすればよい。これについては、実施形態3で説明する。
【0096】
以上、本実施形態の構成例及び動作例は通信プロトコルとしてCANが使用される場合に基づき説明したが、CANに限らず他の通信プロトコルに適用してもよい。
【0097】
(4)小括
以上、本実施形態によれば、フレームのデータフィールドのサイズ若しくは長さに依らず、より安全性を確保することができるMACを送信することができる。
また、本実施形態によれば、車載ネットワークにおいて、部分MACの復元に対応せず一部の部分MACのみでMAC認証を行うような受信側のECUが接続されている場合においても、当該受信側のECUは動作することができる。すなわち、一部の部分MACのみでMAC認証を行う機器との間で上位互換を有することになる。
【0098】
3.実施形態2
実施形態1は、ECU100において、MACを分割して複数の部分MACを生成した場合に、全ての部分MACを送信部103から送信していた。本実施形態は、ECU100がMACを分割して複数の部分MACを生成した場合に、全ての部分MACを送信するか否かを決定し、一部の部分MAC又は全ての部分MACを送信する。以下、実施形態1と異なる部分のみ説明を行い、実施形態1と同じ部分は実施形態1の説明を引用する。
【0099】
図13を参照して、本実施形態における電子制御システム及びそれを構成する各ECUの構成について説明する。ECU100の制御部101は、実施形態1の構成であるMAC生成部101a、MAC分割部101b、識別情報生成部101c、フレーム生成部101dに加えて、さらにMAC範囲決定部101eを備える。
【0100】
MAC範囲決定部101eは、「送信データの種類」又は送信データの送信先に基づき、複数の部分MACの全てを送信するか否かを決定する。例えば、図3(b)のように3つのフレームからなるフレームセットの全てを送信するか、1番目のフレームのみを送信するか、を決定する。一部の部分MACを送信する場合、送信する部分MACは1つでも複数でもよい。
ここで、「送信データの種類」とは、送信データが示す情報の内容の他、送信データの特徴や属性であってもよい。
【0101】
送信データの種類は、例えばCAN IDによって判断できる。複数の部分MACの全てを送信する場合としては、走行制御など移動体(車両)の挙動に関するような高いセキュリティを確保したい送信データなどが挙げられる。一方で、走行に直接関係しないような送信データなど、セキュリティの優先順位が比較的低い送信データに対しては、フレームセットのうちの一部の部分MACのみ送信してもよい。
また、送信データの送信先として、例えば部分MACからMACを復元することに対応していない送信先である場合は、複数の部分MACのうち1番目の部分MACのみを送信するとよい。
【0102】
MAC範囲決定部101eの決定は、図11のS6までの任意のタイミングで行えばよい。そして、MAC範囲決定部101eが複数の部分MACの全てを送信しないと決定した場合、送信部103は、送信データ及び複数の部分MACのうち少なくとも1つの部分MACを格納したフレームを送信する。
【0103】
なお、本実施形態では、フレーム生成部101dは複数のフレームからなるフレームセットを生成し、送信部103がそのうち少なくとも1つの部分MACを格納したフレームを送信しているが、フレーム生成部101dは、送信部103が送信するフレームのみを生成するようにしてもよい。
【0104】
このように、実施形態2では、送信データの種類又は送信データの送信先に基づき、複数の部分MACの全てを送信するか否か選択できる。これによって、大きなサイズのMACによる高いセキュリティを維持したい送信データは複数のフレームからなるフレームセットを使用して送信することができ、セキュリティの優先順位が低い送信データに対してはフレームの数を一部に限定することで、フレームを送信するための処理を減らすとともに、車載ネットワークの通信量を減らすことができる。
【0105】
4.実施形態3
実施形態1は、ECU100において、MACを分割して複数の部分MACを生成した場合に、全ての部分MACを送信部103から送信していた。そして、これを受信するECU200においては、受信した複数の部分MACの全てを用いてMACを復元し、MAC認証を行っていた。本実施形態は、ECU200が、全ての部分MACを用いて認証を行うか否かを決定し、全ての部分MACを用いないと決定した場合、一部の部分MACを用いて認証を行う。以下、実施形態1と異なる部分のみ説明を行い、実施形態1と同じ部分は実施形態1の説明を引用する。
【0106】
図14を参照して、本実施形態における電子制御システム及びそれを構成する各ECUの構成について説明する。ECU200の制御部201は、実施形態1の構成であるMAC復元部201a、MAC生成部201b、認証部201cに加えて、さらにMAC範囲決定部201dを備える。
【0107】
MAC範囲決定部201dは、受信部204で受信した複数のフレームの少なくとも1つに格納された「送信データの種類」に基づき、各部分MAC全てを用いて認証を行うか否かを決定する。例えば図3(b)のように、1番目のフレームに格納された送信データに基づいて、1番目から3番目までの全てのフレームの部分MAC全てを用いて認証を行うか、1番目のフレームの部分MACのみを用いて認証を行うかを決定する。
ここで、「送信データの種類」とは、送信データが示す情報の内容の他、送信データの特徴や属性であってもよい。
【0108】
送信データの種類に基づくとは、CAN IDによって送信データの内容を把握することができるため、CAN IDに基づいて各部分MAC全てを用いて認証を行うか否かを決定することも含まれる。複数の部分MACの全てを用いて認証するものとしては、走行制御など移動体(車両)の挙動に関するような高いセキュリティを確保したい送信データなどが挙げられる。一方で、走行に関係のないような送信データなど、セキュリティの優先順位が比較的低いデータに対しては、フレームセットのうちの一部のフレームの部分MACのみを使って認証してもよい。
複数の部分MACの全てを用いて認証を行うとは、複数の部分MACの全てを用いてECU100が生成したMACを復元し、この復元MACを用いて認証を行うことと同義である。
【0109】
MAC範囲決定部201dの決定は、例えば図11のS11の後に行われるとよい。MAC範囲決定部201dが各部分MAC全てを用いないと決定した場合、MAC復元部201aは、複数のフレームのうち1つのフレームに含まれる部分MAC(「第1の部分MAC」に相当)と識別情報を抽出する。また、MAC生成部201bは、受信部204で受信した複数のフレームの少なくとも1つに格納された送信データ及び識別情報に基づき部分MAC(「第2の部分MAC」に相当)を生成する。認証部201cは、MAC復元部201aで抽出した部分MACとMAC生成部201bで生成した部分MACとを比較して、送信データに対する認証を行う。
【0110】
なお、MAC復元部201aで抽出した部分MACとMAC生成部201bで生成した部分MACとの比較により送信データに対する認証を行った後に、実施形態1で行ったように全ての部分MACを連結して生成した復元MACとMAC生成部201bで生成したMACとで再度認証を行ってもよい。
【0111】
このように、実施形態3では、受信した複数のフレームの少なくとも1つに格納された送信データの種類に基づいて、各部分MAC全てを用いて認証を行うか否かを選択できる。これによって、高いセキュリティを維持したい送信データは各部分MAC全てを用いて認証を行うことができ、セキュリティの優先順位が低い送信データに対しては、一部の部分MACを用いて迅速に認証を行うことができる。
【0112】
5.総括
以上、本発明の各実施形態における電子制御システム及び電子制御装置の特徴について説明した。
【0113】
各実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
【0114】
実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
【0115】
各実施形態に記載した処理、フロー、及び方法として把握できる機能ブロック、については、一のステップでその前段の他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
【0116】
各実施形態、及び特許請求の範囲で使用する、第1、第2、乃至、第N(Nは整数)、の用語は、同種の2以上の構成や方法を区別するために使用しており、順序や優劣を限定するものではない。
【0117】
各実施形態では、各実施形態に開示の電子制御装置を車両に搭載する前提で説明したが、歩行者が所持する前提としてもよい。
【0118】
また、本発明の電子制御装置の形態の例として、以下のものが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバ、クラウドサーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
【0119】
また電子制御装置に、アンテナや通信用インターフェースなど、必要な機能を追加してもよい。
【0120】
加えて、本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録した本発明を実現するためのプログラム、及びこれを実行可能な専用又は汎用CPU及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
【0121】
専用や汎用のハードウェアの非遷移的実体的記録媒体(例えば、外部記憶装置(ハードディスク、USBメモリ、CD/BD等)、又は内部記憶装置(RAM、ROM等))に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【産業上の利用可能性】
【0122】
本発明の電子制御装置は、主として自動車に搭載される車両用の電子制御装置として説明したが、自動二輪車、電動機付自転車、鉄道はもちろん、歩行者、船舶、航空機等、移動する移動体全般に適用することが可能である。
【符号の説明】
【0123】
1 電子制御システム
100,200,300 ECU
101,201 制御部
103,203 送信部
104,204 受信部
101a MAC生成部
101b MAC分割部
101c 識別情報生成部
101d フレーム生成部
101e MAC範囲決定部
201a MAC復元部
201b MAC生成部
201c 認証部
201d MAC範囲決定部
図1
図2
図3
図4
図5
図6ab
図6cd
図7
図8
図9
図10
図11
図12
図13
図14