特許第6260064号(P6260064)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ KDDI株式会社の特許一覧

<>
  • 特許6260064-通信ネットワークシステム及び車両 図000002
  • 特許6260064-通信ネットワークシステム及び車両 図000003
  • 特許6260064-通信ネットワークシステム及び車両 図000004
  • 特許6260064-通信ネットワークシステム及び車両 図000005
  • 特許6260064-通信ネットワークシステム及び車両 図000006
  • 特許6260064-通信ネットワークシステム及び車両 図000007
  • 特許6260064-通信ネットワークシステム及び車両 図000008
  • 特許6260064-通信ネットワークシステム及び車両 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6260064
(24)【登録日】2017年12月22日
(45)【発行日】2018年1月17日
(54)【発明の名称】通信ネットワークシステム及び車両
(51)【国際特許分類】
   H04L 9/32 20060101AFI20180104BHJP
   G09C 1/00 20060101ALI20180104BHJP
   H04L 12/28 20060101ALI20180104BHJP
【FI】
   H04L9/00 675A
   G09C1/00 640D
   H04L12/28 200M
【請求項の数】4
【全頁数】17
(21)【出願番号】特願2016-50125(P2016-50125)
(22)【出願日】2016年3月14日
(65)【公開番号】特開2017-168931(P2017-168931A)
(43)【公開日】2017年9月21日
【審査請求日】2017年2月17日
【前置審査】
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(72)【発明者】
【氏名】溝口 誠一郎
(72)【発明者】
【氏名】川端 秀明
(72)【発明者】
【氏名】竹森 敬祐
(72)【発明者】
【氏名】窪田 歩
【審査官】 青木 重徳
(56)【参考文献】
【文献】 国際公開第2013/065689(WO,A1)
【文献】 特開平11−265309(JP,A)
【文献】 国際公開第2015/186825(WO,A1)
【文献】 上田 浩史 ほか,車載ネットワークのセキュリティ監視システム ,SEIテクニカルレビュー,日本,住友電気工業株式会社,2015年 7月31日,No.187,p.1−5
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
H04L 12/28
(57)【特許請求の範囲】
【請求項1】
メッセージを送信する送信ノードと前記メッセージを受信する受信ノードとが接続される通信ネットワークシステムにおいて、
前記メッセージのメッセージ認証コードの生成と検査とに使用されるカウンタ値を前記送信ノードと前記受信ノードとへ通知するカウンタ値通知メッセージを前記通信ネットワークシステムの起動中に一定時間のカウンタ値通知周期で送信するカウンタ値通知ノードを備え
前記送信ノードは、
前記受信ノードと共有するセッション鍵を記憶するセッション鍵記憶部と、
前記メッセージの送信毎に所定のカウント値だけ増加させるカウンタ値を保持するカウンタ部と、
前記メッセージに格納される送信データと前記カウンタ部が保持しているカウンタ値と前記セッション鍵記憶部が記憶しているセッション鍵とに基づいてメッセージ認証コードを生成するメッセージ認証コード生成部と、
前記送信データと前記カウンタ部が保持しているカウンタ値のビット列のうち所定の下位のビット数分と前記メッセージ認証コード生成部が生成したメッセージ認証コードとを格納する前記メッセージを送信する送信部と、
前記カウンタ値通知メッセージによって取得したカウンタ値を前記カウンタ部が保持する新しいカウンタ値に設定するカウンタ設定部と、を備え、
前記受信ノードは、
前記カウンタ値通知メッセージによって取得したカウンタ値を保持するカウンタ部と、
前記送信ノードと共有するセッション鍵を記憶するセッション鍵記憶部と、
前記送信ノードから受信した前記メッセージに格納されている送信データと、自受信ノードの前記カウンタ部が保持しているカウンタ値のビット列のうち前記所定の下位のビット数分以外の残りの上位のビット数分と、前記送信ノードから受信した前記メッセージに格納されている前記所定の下位のビット数分と、自受信ノードの前記セッション鍵記憶部が記憶しているセッション鍵とに基づいてメッセージ認証コードを生成し、該生成したメッセージ認証コードと前記送信ノードから受信した前記メッセージに格納されているメッセージ認証コードとが一致するかを検査するメッセージ認証コード検査部と、を備え
前記カウンタ値通知周期は、前記送信ノードのカウンタ部のカウンタ値のビット列のうち前記所定の下位のビット数分がオーバーフローするのに要する時間未満である、
通信ネットワークシステム。
【請求項2】
前記カウンタ値通知ノードは、
前記送信ノードと前記受信ノードとが共有するセッション鍵を記憶するセッション鍵記憶部と、
前記送信ノードと前記受信ノードとへ通知するカウンタ値を自カウンタ値通知ノードの前記セッション鍵記憶部が記憶しているセッション鍵で暗号化する暗号化部と、
前記暗号化部がカウンタ値を暗号化した結果である暗号化カウンタ値を格納する前記カウンタ値通知メッセージを前記通信ネットワークシステムの起動中に前記カウンタ値通知周期で送信する送信部と、
を備え、
前記送信ノードと前記受信ノードとは、前記カウンタ値通知メッセージに格納されている暗号化カウンタ値を自ノードの前記セッション鍵記憶部が記憶しているセッション鍵で復号する復号部を備える、
請求項に記載の通信ネットワークシステム。
【請求項3】
前記カウンタ値通知ノードは、
前記送信ノードと前記受信ノードとが共有するセッション鍵を記憶するセッション鍵記憶部と、
前記送信ノードと前記受信ノードとへ通知するカウンタ値と自カウンタ値通知ノードの前記セッション鍵記憶部が記憶しているセッション鍵とに基づいてメッセージ認証コードを生成するメッセージ認証コード生成部と、を備え、
前記カウンタ値通知ノードの送信部は、前記暗号化カウンタ値と前記カウンタ値通知ノードのメッセージ認証コード生成部が生成したメッセージ認証コードとを格納する前記カウンタ値通知メッセージを前記通信ネットワークシステムの起動中に前記カウンタ値通知周期で送信し、
前記送信ノードと前記受信ノードとは、
前記復号部が復号した結果である復号カウンタ値と自ノードの前記セッション鍵記憶部が記憶しているセッション鍵とに基づいてメッセージ認証コードを生成し、該生成したメッセージ認証コードと前記カウンタ値通知メッセージに格納されているメッセージ認証コードとが一致するかを検査するメッセージ認証コード検査部を備える、
請求項に記載の通信ネットワークシステム。
【請求項4】
請求項1からのいずれか1項に記載の通信ネットワークシステムを備える車両。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信ネットワークシステム及び車両に関する。
【背景技術】
【0002】
近年、自動車は、ECU(Electronic Control Unit;電子制御装置)を有し、ECUによってエンジン制御等の機能を実現する。また、自動車に搭載される通信ネットワークの一つとして知られているCAN(Controller Area Network)が、自動車内の各種ECU間の通信に用いられている。そのCANにおいてメッセージの認証を可能にする技術として、例えば特許文献1に記載のメッセージ検査技術が知られている。特許文献1に記載のメッセージ検査技術では、送信ノードはメッセージ認証コード(Message Authentication Code:MAC)の生成に使用する送信カウンタ値を保持する送信カウンタ部を備え、受信ノードはMACの検査に使用する受信カウンタ値を保持する受信カウンタ部を備える。受信ノードの受信カウンタ部は、複数の送信ノードの各々に対応する複数の受信カウンタ値を保持する。受信ノードは、送信ノードから受信したメッセージのMACの検査に、該送信ノードに対応する受信カウンタ値を使用する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2016−12917号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上述した従来のメッセージ検査技術では、一つの送信ノードの送信カウンタ値と、複数の受信ノードの該送信ノードに対応する受信カウンタ値とを一致させることによって該送信ノードから受信したメッセージのMACの検査を行うことができるが、そのカウンタ値を一致させる処理が負担になる場合があった。例えば、送信カウンタ値と受信カウンタ値とを一致させる処理として、複数の受信ノードが送信ノードにカウンタ値を問い合わせる処理を実行すると、複数の受信ノードと送信ノードとの間でカウンタ値の問い合わせのやり取りが複数発生する。これにより、CANにかかる負荷が大きくなってCANの通信速度が低下する可能性があった。
【0005】
本発明は、このような事情を考慮してなされたものであり、メッセージを送信する送信ノードと該メッセージを受信する受信ノードとが接続される通信ネットワークシステムの効率の向上を図ることができる、通信ネットワークシステム及び車両を提供することを課題とする。
【課題を解決するための手段】
【0006】
(1)本発明の一態様は、メッセージを送信する送信ノードと前記メッセージを受信する受信ノードとが接続される通信ネットワークシステムにおいて、前記メッセージのメッセージ認証コードの生成と検査とに使用されるカウンタ値を前記送信ノードと前記受信ノードとへ通知するカウンタ値通知メッセージを前記通信ネットワークシステムの起動中に一定時間のカウンタ値通知周期で送信するカウンタ値通知ノードを備え前記送信ノードは、前記受信ノードと共有するセッション鍵を記憶するセッション鍵記憶部と、前記メッセージの送信毎に所定のカウント値だけ増加させるカウンタ値を保持するカウンタ部と、前記メッセージに格納される送信データと前記カウンタ部が保持しているカウンタ値と前記セッション鍵記憶部が記憶しているセッション鍵とに基づいてメッセージ認証コードを生成するメッセージ認証コード生成部と、前記送信データと前記カウンタ部が保持しているカウンタ値のビット列のうち所定の下位のビット数分と前記メッセージ認証コード生成部が生成したメッセージ認証コードとを格納する前記メッセージを送信する送信部と、前記カウンタ値通知メッセージによって取得したカウンタ値を前記カウンタ部が保持する新しいカウンタ値に設定するカウンタ設定部と、を備え、前記受信ノードは、前記カウンタ値通知メッセージによって取得したカウンタ値を保持するカウンタ部と、前記送信ノードと共有するセッション鍵を記憶するセッション鍵記憶部と、前記送信ノードから受信した前記メッセージに格納されている送信データと、自受信ノードの前記カウンタ部が保持しているカウンタ値のビット列のうち前記所定の下位のビット数分以外の残りの上位のビット数分と、前記送信ノードから受信した前記メッセージに格納されている前記所定の下位のビット数分と、自受信ノードの前記セッション鍵記憶部が記憶しているセッション鍵とに基づいてメッセージ認証コードを生成し、該生成したメッセージ認証コードと前記送信ノードから受信した前記メッセージに格納されているメッセージ認証コードとが一致するかを検査するメッセージ認証コード検査部と、を備え、前記カウンタ値通知周期は、前記送信ノードのカウンタ部のカウンタ値のビット列のうち前記所定の下位のビット数分がオーバーフローするのに要する時間未満である、通信ネットワークシステムである。
)本発明の一態様は、上記(1)の通信ネットワークシステムにおいて、前記カウンタ値通知ノードは、前記送信ノードと前記受信ノードとが共有するセッション鍵を記憶するセッション鍵記憶部と、前記送信ノードと前記受信ノードとへ通知するカウンタ値を自カウンタ値通知ノードの前記セッション鍵記憶部が記憶しているセッション鍵で暗号化する暗号化部と、前記暗号化部がカウンタ値を暗号化した結果である暗号化カウンタ値を格納する前記カウンタ値通知メッセージを前記通信ネットワークシステムの起動中に前記カウンタ値通知周期で送信する送信部と、を備え、前記送信ノードと前記受信ノードとは、前記カウンタ値通知メッセージに格納されている暗号化カウンタ値を自ノードの前記セッション鍵記憶部が記憶しているセッション鍵で復号する復号部を備える、通信ネットワークシステムである。
)本発明の一態様は、上記()の通信ネットワークシステムにおいて、前記カウンタ値通知ノードは、前記送信ノードと前記受信ノードとが共有するセッション鍵を記憶するセッション鍵記憶部と、前記送信ノードと前記受信ノードとへ通知するカウンタ値と自カウンタ値通知ノードの前記セッション鍵記憶部が記憶しているセッション鍵とに基づいてメッセージ認証コードを生成するメッセージ認証コード生成部と、を備え、前記カウンタ値通知ノードの送信部は、前記暗号化カウンタ値と前記カウンタ値通知ノードのメッセージ認証コード生成部が生成したメッセージ認証コードとを格納する前記カウンタ値通知メッセージを前記通信ネットワークシステムの起動中に前記カウンタ値通知周期で送信し、前記送信ノードと前記受信ノードとは、前記復号部が復号した結果である復号カウンタ値と自ノードの前記セッション鍵記憶部が記憶しているセッション鍵とに基づいてメッセージ認証コードを生成し、該生成したメッセージ認証コードと前記カウンタ値通知メッセージに格納されているメッセージ認証コードとが一致するかを検査するメッセージ認証コード検査部を備える、通信ネットワークシステムである。
【0007】
本発明の一態様は、上記(1)から()のいずれかの通信ネットワークシステムを備える車両である。
【0008】
(6)本発明の一態様は、メッセージを送信する送信ノードと前記メッセージを受信する受信ノードとが接続される通信ネットワークシステムのカウンタ値通知ノードであり、前記メッセージのメッセージ認証コードの生成と検査とに使用されるカウンタ値を前記送信ノードと前記受信ノードとへ通知するカウンタ値通知メッセージを定期的に送信する送信部を備えるカウンタ値通知ノードである。
【0009】
(7)本発明の一態様は、メッセージを送信する送信ノードと前記メッセージを受信する受信ノードとが接続される通信ネットワークシステムのカウンタ値共有方法であり、カウンタ値通知ノードが、前記メッセージのメッセージ認証コードの生成と検査とに使用されるカウンタ値を前記送信ノードと前記受信ノードとへ通知するカウンタ値通知メッセージを定期的に送信する送信ステップを含むカウンタ値共有方法である。
【0010】
(8)本発明の一態様は、メッセージを送信する送信ノードと前記メッセージを受信する受信ノードとが接続される通信ネットワークシステムのカウンタ値通知ノードのコンピュータに、前記メッセージのメッセージ認証コードの生成と検査とに使用されるカウンタ値を前記送信ノードと前記受信ノードとへ通知するカウンタ値通知メッセージを定期的に送信する送信機能を実現させるためのコンピュータプログラムである。
【発明の効果】
【0011】
本発明によれば、メッセージを送信する送信ノードと該メッセージを受信する受信ノードとが接続される通信ネットワークシステムの効率の向上を図ることができるという効果が得られる。
【図面の簡単な説明】
【0012】
図1】一実施形態に係る通信ネットワークシステム10の構成例を示す図である。
図2】一実施形態に係る第1ECU1の構成例を示す図である。
図3】一実施形態に係る第2ECU2の構成例を示す図である。
図4】一実施形態に係るデータフレームのデータフィールドの構成例を示す図である。
図5】一実施形態に係るデータフレームのデータフィールドの構成例を示す図である。
図6】一実施形態に係るカウンタ値共有方法の例を示すフローチャートである。
図7】一実施形態に係るカウンタ値共有方法の例を示すフローチャートである。
図8】一実施形態に係る自動車300の構成例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。また、通信ネットワークシステムの一態様として、自動車に搭載される通信ネットワークシステムを例に挙げて説明する。
【0014】
図1は、本実施形態に係る通信ネットワークシステム10の構成例を示す図である。通信ネットワークシステム10は自動車に搭載されている。図1において、通信ネットワークシステム10は、複数のECU(電子制御装置)1,2とCAN3とを有する。ECU1,2は、CAN3に接続されている。ECU1,2は、CPU(Central Processing Unit:中央演算処理装置)及びメモリ等から構成される。ECU1,2はコンピュータの一種である。ECU1,2のCPUが該ECU1,2の機能を実現させるためのコンピュータプログラムを実行することによって、該ECU1,2の機能が実現される。例えば、ECU1,2は、自動車内の機器を制御する制御機能を有する。ECU1,2は、例えば、駆動系ECU、車体系ECU、安全制御系ECUなどである。
【0015】
本実施形態では、説明の便宜上、通信ネットワークシステム10は4台のECU1,2を備えるものとし、該4台のECU1,2がCAN3に接続されている。CAN3は、各ECU1,2の間で交換されるメッセージを伝送する。各ECU1,2は、CAN3を介して、相互にメッセージを送受する。CAN3では、所定のフレーム形式でメッセージの伝送が行われる。ECU1,2は、CANに接続するノード(通信装置)として機能する。本実施形態では、ECU1,2は、メッセージを送信する送信ノードの機能と該メッセージを受信する受信ノードの機能とを有する。
【0016】
図1中に示されるように、4台の各ECU1,2には、CANの識別子(ID)として、ID10、ID11、ID12、ID13がそれぞれ付与されている。ID10が付与されているECU1を第1ECU1と称する。ID11、ID12、ID13が各々付与されているECU2を第2ECU2と称する。
【0017】
図2は、本実施形態に係る第1ECU1の構成例を示す図である。図2において、第1ECU1は、送信部111と受信部112とフレーム受信処理部113とMAC(メッセージ認証コード)生成部114とカウンタ部115とMAC検査部116とセッション鍵記憶部117と切替部118とカウンタ制御部119とカウンタ値生成部120と暗号化部121とを備える。
【0018】
送信部111は、CAN3の所定のフレーム形式のメッセージをCAN3に送信する。受信部112は、該所定のフレーム形式のメッセージをCAN3から受信する。CAN3の所定のフレーム形式のフレームの種類の一つとして、データフレームがある。送信部111は、データフレームをCAN3に送信する。受信部112は、データフレームをCAN3から受信する。
【0019】
送信部111には、データフレームのデータフィールド(Data Field:データ部)に格納するデータが切替部118から入力される。送信部111には、切替部118から、送信データ又は暗号化カウンタ値が入力される。暗号化カウンタ値は、カウンタ値を暗号化したデータである。送信部111は、切替部118から入力されたデータをデータフレーム中のデータフィールドに格納する。データフレームのデータフィールドに格納可能なデータ長の上限は64ビット(bit)である。フレーム受信処理部113は、受信部112がCAN3から受信したデータフレームについての受信処理を行う。
【0020】
MAC生成部114は、データフレーム中のデータフィールドに格納されるデータ等を使用してMACを生成する。MAC生成部114は、生成したMACを送信部111へ出力する。送信部111は、MAC生成部114から受け取ったMACをデータフレーム中の所定の部分に格納する。
【0021】
カウンタ部115は、送信カウンタ部として機能する。カウンタ部115は、送信カウンタ部の機能として、送信部111によるデータフレームの送信毎に所定のカウント値だけ増加させるカウンタ値を保持する。本実施形態では、一例として、該所定のカウント値は1である。したがって、カウンタ部115は、送信部111が一つのデータフレームをCAN3に送信する毎に1だけ増加させるカウンタ値を保持する。このカウンタ値は、自第1ECU1が一つのデータフレームをCAN3に送信する毎に1ずつ増やされる。本実施形態では、一例として、カウンタ部115が保持するカウント値のデータ長は32ビットである。
【0022】
MAC検査部116は、受信部112がCAN3から受信したデータフレームに格納されているMACについての検査を行う。セッション鍵記憶部117は、セッション鍵を記憶する。該セッション鍵は、第1ECU1及び第2ECU2で事前に共有されている。切替部118には送信データが入力される。また、切替部118には、カウンタ制御部119から暗号化カウンタ値が入力される。切替部118は、送信部111へ出力するデータを、送信データにするか又は暗号化カウンタ値にするかを切り替える。
【0023】
カウンタ値生成部120は、カウンタ値を生成する。例えば、カウンタ値生成部120は、乱数を発生し、該乱数に基づいてカウンタ値を生成する。カウンタ値生成部120が生成するカウンタ値のビット列の下位の所定ビット数分を0にしてもよい。カウンタ制御部119は、カウンタ値についての制御を行う。暗号化部121は、セッション鍵記憶部117に格納されているセッション鍵を使用してカウンタ値を暗号化する。
【0024】
カウンタ制御部119は、カウンタ値生成部120が生成したカウンタ値を暗号化部121へ出力する。暗号化部121は、カウンタ制御部119から受け取ったカウンタ値を、セッション鍵で暗号化する。暗号化部121は、該暗号化したカウンタ値である暗号化カウンタ値をカウンタ制御部119へ出力する。カウンタ制御部119は、暗号化部121から受け取った暗号化カウンタ値を切替部118へ出力する。切替部118は、カウンタ制御部119から暗号化カウンタ値を受け取ると、該暗号化カウンタ値を送信部111へ出力する。本実施形態では、一例として、暗号化カウンタ値は32ビットである。
【0025】
また、カウンタ制御部119は、暗号化カウンタ値の暗号化前の元のカウンタ値をカウンタ部115へ出力する。カウンタ部115は、カウンタ制御部119から受け取ったカウンタ値を、既に保持しているカウンタ値に代えて保持する。つまり、カウンタ値生成部120が生成したカウンタ値が、新しいカウンタ値としてカウンタ部115で保持される。このカウンタ部115で保持される新しいカウンタ値は、暗号化カウンタ値として、カウンタ制御部119から切替部118を介して送信部111に入力されて、データフレーム中の所定の部分に格納される。
【0026】
図3は、本実施形態に係る第2ECU2の構成例を示す図である。図3において、第2ECU2は、送信部211と受信部212とフレーム受信処理部213とMAC生成部214とカウンタ部215とMAC検査部216とセッション鍵記憶部217とカウンタ設定部220と復号部221とを備える。
【0027】
送信部211は、CAN3の所定のフレーム形式のメッセージをCAN3に送信する。受信部212は、該所定のフレーム形式のメッセージをCAN3から受信する。送信部211は、データフレームをCAN3に送信する。受信部212は、データフレームをCAN3から受信する。
【0028】
送信部211には、データフレームのデータフィールドに格納する送信データが入力される。送信部211は、入力された送信データをデータフレーム中のデータフィールドに格納する。フレーム受信処理部213は、受信部212がCAN3から受信したデータフレームについての受信処理を行う。
【0029】
MAC生成部214は、データフレーム中のデータフィールドに格納される送信データ等を使用してMACを生成する。MAC生成部214は、生成したMACを送信部211へ出力する。送信部211は、MAC生成部214から受け取ったMACをデータフレーム中の所定の部分に格納する。
【0030】
カウンタ部215は、送信カウンタ部として機能する。カウンタ部215は、送信カウンタ部の機能として、送信部211によるデータフレームの送信毎に所定のカウント値だけ増加させるカウンタ値を保持する。該所定のカウント値は、第1ECU1のカウンタ部115と同じである。本実施形態では、該所定のカウント値は1である。したがって、カウンタ部215は、送信部211が一つのデータフレームをCAN3に送信する毎に1だけ増加させるカウンタ値を保持する。このカウンタ値は、自第2ECU2が一つのデータフレームをCAN3に送信する毎に1ずつ増やされる。第2ECU2のカウンタ部215が保持するカウント値のデータ長は、第1ECU1のカウンタ部115が保持するカウント値のデータ長と同じである。本実施形態では、カウンタ部215が保持するカウント値のデータ長は32ビットである。
【0031】
MAC検査部216は、受信部212がCAN3から受信したデータフレームに格納されているMACについての検査を行う。セッション鍵記憶部217は、セッション鍵を記憶する。該セッション鍵は、第1ECU1及び第2ECU2で事前に共有されている。
【0032】
カウンタ設定部220は、カウンタ部215にカウンタ値を設定する。復号部221は、受信部212がCAN3から受信したデータフレームのデータフィールドに格納されている暗号化カウンタ値を復号する。復号部221は、暗号化カウンタ値の復号結果の復号データをカウンタ設定部220へ出力する。暗号化カウンタ値の復号結果の復号データは、カウンタ設定部220によってカウンタ部215のカウンタ値の設定に使用される。
【0033】
なお、MACの生成方法及び検査方法は、第1ECU1及び第2ECU2で共通である。また、該MACは、CMAC(Cipher-based Message Authentication Code)であってもよく、又は、HMAC(Hash-based Message Authentication Code)であってもよい。
【0034】
図4及び図5は、本実施形態に係るデータフレームのデータフィールドの構成例を示す図である。
【0035】
[カウンタ値を通知するデータフレームのデータフィールドの構成例]
図4には、カウンタ値を通知するデータフレームのデータフィールドの構成例が示される。カウンタ値を通知するデータフレームのことをカウンタ値通知フレームと称する。図4を参照して、カウンタ値通知フレームについて説明する。
【0036】
カウンタ値通知フレームは、第1ECU1からCAN3へ送信される。第1ECU1は、CAN3を介して、ID11、ID12及びID13の各第2ECU2へ、カウンタ値通知フレームを送信する。第1ECU1は、カウンタ値通知フレームをブロードキャストで送信してもよい。ブロードキャストで送信されたカウンタ値通知フレームは、CAN3を介して、ID11、ID12及びID13の各第2ECU2で受信される。
【0037】
カウンタ値通知フレームのデータフィールドには、32ビットの暗号化カウンタ値と、32ビットのMACとが格納される。第1ECU1の送信部111は、切替部118から受け取った暗号化カウンタ値と、MAC生成部114から受け取ったMACとをカウンタ値通知フレームのデータフィールドに格納する。なお、データフィールドに格納されるMACは、MAC生成部114が生成したMACのビット列のうち所定の一部分のみであってもよい。例えば、MAC生成部114が生成した256ビットのMACのビット列のうち所定の32ビットの部分のみをデータフィールドに格納してもよい。
【0038】
(第1ECU1のカウンタ値通知フレームの生成方法)
第1ECU1のカウンタ値通知フレームの生成方法を説明する。カウンタ制御部119は、カウンタ値生成部120が生成したカウンタ値についての暗号化カウンタ値を、切替部118を介して送信部111へ渡す。カウンタ制御部119は、該暗号化カウンタ値の暗号化前の元のカウンタ値をカウンタ部115へ出力する。カウンタ部115は、該カウンタ制御部119から受け取ったカウンタ値を、既に保持しているカウンタ値に代えて保持する。MAC生成部114は、セッション鍵記憶部117に格納されているセッション鍵を使用して、該カウンタ部115に保持された新しいカウンタ値のMACを生成する。MAC生成部114は、該生成したMACを送信部111へ出力する。
【0039】
送信部111は、カウンタ制御部119から切替部118を介して受け取った暗号化カウンタ値と、MAC生成部114から受け取ったMACとを、図4に例示されるように、カウンタ値通知フレームのデータフィールドに格納する。一つのカウンタ値通知フレームのデータフィールドに格納される暗号化カウンタ値とMACとは、同じカウンタ値を使用して生成されている。カウンタ値通知フレームにおいてデータフィールド以外の部分については、CANのデータフレームの所定のフレーム形式を適用する。送信部111は、カウンタ値通知フレームをCAN3に送信する。
【0040】
なお、カウンタ値生成部120が生成するカウンタ値のビット列の下位の所定ビット数分を0にしてもよい。具体的には、カウンタ値生成部120が生成するカウンタ値のビット列のうち、図5に例示されるデータフレームのデータフィールドに格納されるカウンタ値の下位のビット数分(図5の例では下位6ビット)を0にしてもよい。
【0041】
(第2ECU2のカウンタ値通知フレームの受信処理方法)
第2ECU2のカウンタ値通知フレームの受信処理方法を説明する。受信部212は、カウンタ値通知フレームをCAN3から受信する。復号部221は、受信部212が受信したカウンタ値通知フレームのデータフィールドに格納されている暗号化カウンタ値を復号する。この暗号化カウンタ値の復号結果のデータを復号カウンタ値と称する。復号部221は、復号カウンタ値をMAC検査部216とカウンタ設定部220とへ出力する。
【0042】
MAC検査部216は、受信部212が受信したカウンタ値通知フレームのデータフィールドに格納されているMACを検査する。このカウンタ値通知フレームのMACの検査方法を説明する。MAC検査部216は、復号部221から復号カウンタ値を受け取る。MAC検査部216は、セッション鍵記憶部217に格納されているセッション鍵を使用して、該復号カウンタ値のMACを生成する。この復号カウンタ値のMACを復号カウンタ値MACと称する。MAC検査部216は、該復号カウンタ値MACと、受信部212が受信したカウンタ値通知フレームのデータフィールドに格納されているMACとを比較する。この比較の結果、両者が一致する場合にはMAC検査が合格であり、両者が不一致である場合にはMAC検査が不合格である。
【0043】
なお、データフィールドに格納されるMACが、MAC生成部114が生成したMACのビット列のうち所定の一部分のみである場合には、MAC検査部216は、復号カウンタ値MACのビット列のうち所定の一部分のみをMAC検査に使用する。例えば、データフィールドに格納されるMACが、MAC生成部114が生成した256ビットのMACのビット列のうち所定の32ビットの部分のみである場合には、MAC検査部216は、復号カウンタ値MACのビット列のうち所定の32ビットの部分のみをMAC検査に使用する。
【0044】
MAC検査が合格である場合には、MAC検査部216は、カウンタ設定部220へ、MAC検査の合格を通知する。カウンタ設定部220は、MAC検査部216からMAC検査の合格を通知されると、復号部221から受け取った復号カウンタ値をカウンタ部215へ出力する。カウンタ部215は、該カウンタ設定部220から受け取った復号カウンタ値を、既に保持しているカウンタ値に代えて保持する。
【0045】
一方、MAC検査が不合格である場合には、MAC検査部216は、カウンタ設定部220へ、MAC検査の不合格を通知する。カウンタ設定部220は、MAC検査部216からMAC検査の不合格を通知された場合には、復号部221から受け取った復号カウンタ値を破棄する。つまり、カウンタ設定部220は、MAC検査部216からMAC検査の不合格を通知された場合には、復号部221から受け取った復号カウンタ値をカウンタ部215へ出力しない。よって、カウンタ部215は、既に保持しているカウンタ値をそのまま保持する。
【0046】
上述のカウンタ値通知フレームによって、第1ECU1から各第2ECU2へ、同じカウンタ値が通知される。これにより、第1ECU1及び第2ECU2が保持するカウンタ値が一致することになる。
【0047】
なお、ある第2ECU2においてカウンタ値通知フレームのMAC検査が不合格になった場合には、該第2ECU2は、該MAC検査の不合格を第1ECU1へ通知してもよい。第1ECU1は、第2ECU2からカウンタ値通知フレームのMAC検査が不合格を通知された場合には、再度、カウンタ値通知フレームを各第2ECU2へ送信してもよい。該カウンタ値通知フレームは、前回と同じカウンタ値を通知するカウンタ値通知フレームであってもよく、又は、前回とは異なる新たなカウンタ値を通知するカウンタ値通知フレームであってもよい。
【0048】
[送信データを伝送するデータフレームのデータフィールドの構成例]
図5には、送信データを伝送するデータフレームのデータフィールドの構成例が示される。送信データを伝送するデータフレームのことを送信データ伝送フレームと称する。図5を参照して、送信データ伝送フレームについて説明する。
【0049】
第1ECU1は、送信データ伝送フレームをCAN3へ送信する。第1ECU1は、送信データ伝送フレームをCAN3から受信する。第2ECU2は、送信データ伝送フレームをCAN3へ送信する。第2ECU2は、送信データ伝送フレームをCAN3から受信する。
【0050】
送信データ伝送フレームのデータフィールドには、最大26ビットの送信データと、カウンタ値の下位6ビットのビット列と、32ビットのMACとが格納される。第1ECU1の送信部111は、切替部118から受け取った送信データと、カウンタ部115が保持しているカウンタ値の下位6ビットのビット列と、MAC生成部114から受け取ったMACとを送信データ伝送フレームのデータフィールドに格納する。第2ECU2の送信部211は、入力された送信データと、カウンタ部215が保持しているカウンタ値の下位6ビットのビット列と、MAC生成部214から受け取ったMACとを送信データ伝送フレームのデータフィールドに格納する。
【0051】
なお、データフィールドに格納されるMACは、MAC生成部114,214が生成したMACのビット列のうち所定の一部分のみであってもよい。例えば、MAC生成部114,214が生成した256ビットのMACのビット列のうち所定の32ビットの部分のみをデータフィールドに格納してもよい。
【0052】
(送信データ伝送フレームの生成方法)
送信データ伝送フレームの生成方法を説明する。ここでは第2ECU2が送信データ伝送フレームを生成する場合を例に挙げて説明するが、第1ECU1についても同様である。MAC生成部214は、送信データ伝送フレームのデータフィールドに格納される送信データとカウンタ部215に保持されているカウンタ値とを連結した連結データを生成する。MAC生成部214は、セッション鍵記憶部217に格納されているセッション鍵を使用して、該連結データのMACを生成する。MAC生成部214、該生成したMACを送信部211へ出力する。
【0053】
送信部211は、入力された送信データと、カウンタ部215が保持しているカウンタ値の下位6ビットのビット列と、MAC生成部214から受け取ったMACとを、図5に例示されるように、送信データ伝送フレームのデータフィールドに格納する。送信データ伝送フレームにおいてデータフィールド以外の部分については、CANのデータフレームの所定のフレーム形式を適用する。送信部211は、送信データ伝送フレームをCAN3に送信する。
【0054】
(送信データ伝送フレームの受信処理方法)
送信データ伝送フレームの受信処理方法を説明する。ここでは第2ECU2が送信データ伝送フレームを受信する場合を例に挙げて説明するが、第1ECU1についても同様である。受信部212は、送信データ伝送フレームをCAN3から受信する。この受信部212が受信した送信データ伝送フレームのことを検査対象送信データ伝送フレームと称する。
【0055】
MAC検査部216は、検査対象送信データ伝送フレームのデータフィールドに格納されているMACを検査する。この検査対象送信データ伝送フレームのMACの検査方法を説明する。MAC検査部216は、検査対象送信データ伝送フレームのデータフィールドに格納されている送信データと、カウンタ部215に保持されているカウンタ値の上位26ビットのビット列と、該検査対象送信データ伝送フレームのデータフィールドに格納されているカウンタ値の下位6ビットのビット列とを連結した連結データを生成する。MAC検査部216は、セッション鍵記憶部217に格納されているセッション鍵を使用して、該連結データのMACを生成する。この連結データのMACを検査参照MACと称する。MAC検査部216は、該検査参照MACと、検査対象送信データ伝送フレームのデータフィールドに格納されているMACとを比較する。この比較の結果、両者が一致する場合にはMAC検査が合格であり、両者が不一致である場合にはMAC検査が不合格である。
【0056】
なお、データフィールドに格納されるMACが、MAC生成部114,214が生成したMACのビット列のうち所定の一部分のみである場合には、MAC検査部216は、検査参照MACのビット列のうち所定の一部分のみをMAC検査に使用する。例えば、データフィールドに格納されるMACが、MAC生成部114,214が生成した256ビットのMACのビット列のうち所定の32ビットの部分のみである場合には、MAC検査部216は、検査参照MACのビット列のうち所定の32ビットの部分のみをMAC検査に使用する。
【0057】
MAC検査が合格である場合には、MAC検査部216は、フレーム受信処理部213へ、MAC検査の合格を通知する。フレーム受信処理部113は、MAC検査部216からMAC検査の合格を通知されると、検査対象送信データ伝送フレームに対して、正常に受信した送信データ伝送フレームに対する所定の受信処理を行う。
【0058】
一方、MAC検査が不合格である場合には、MAC検査部216は、フレーム受信処理部213へ、MAC検査の不合格を通知する。フレーム受信処理部113は、MAC検査部216からMAC検査の不合格を通知された場合には、所定のエラー処理を実行する。
【0059】
上述の送信データ伝送フレームによって、第1ECU1と第2ECU2の間で、又は、第2ECU2同士の間で、送信データが交換される。
【0060】
図6図7は、本実施形態に係るカウンタ値共有方法の例を示すフローチャートである。まず図6を参照して、本実施形態に係る第1ECU1が実行するカウンタ値共有処理の手順を説明する。
【0061】
(ステップS1)第1ECU1のカウンタ制御部119は、カウンタ値を通知する周期(カウンタ値通知周期と称する)のタイミングであるかを判断する。この判断の結果、カウンタ値通知周期のタイミングである場合にはステップS2へ進み、カウンタ値通知周期のタイミングではない場合にはステップS1を継続する。カウンタ値通知周期には、予め、一定時間が設定される。
【0062】
カウンタ値通知周期として、送信データ伝送フレームのデータフィールドに格納されるカウンタ値の下位6ビットがオーバーフローするのに要する時間未満としてもよい。これにより、第1ECU1及び第2ECU2の各カウンタ値の下位6ビットがオーバーフローする前に、再度、カウンタ値通知フレームによって第1ECU1及び第2ECU2で同じカウンタ値を共有し、第1ECU1及び第2ECU2が保持するカウンタ値を一致させることができる。
【0063】
(ステップS2)第1ECU1はカウンタ値通知フレームを生成する。
(ステップS3)第1ECU1は該カウンタ値通知フレームをCAN3へ送信する。
【0064】
(ステップS4)図6のカウンタ値共有処理の終了である場合には本処理を終了する。一方、図6のカウンタ値共有処理の継続である場合にはステップS1に戻る。
【0065】
次に図7を参照して、本実施形態に係る第2ECU2が実行するカウンタ値共有処理の手順を説明する。
【0066】
(ステップS11)第2ECU2の受信部212は、カウンタ値通知フレームをCAN3から受信したかを判断する。この判断の結果、カウンタ値通知フレームを受信した場合にはステップS12へ進み、カウンタ値通知フレームを受信していない場合にはステップS11を継続する。
【0067】
(ステップS12)第2ECU2のMAC検査部216は、受信部212が受信したカウンタ値通知フレームのMAC検査を実行する。
(ステップS13)該MAC検査が合格である場合にはステップS14へ進む。一方、該MAC検査が合格である場合には、ステップS11へ戻る。
【0068】
(ステップS14)第2ECU2は、受信部212が受信したカウンタ値通知フレームのデータフィールドに格納されている暗号化カウンタ値の復号結果である復号カウンタ値をカウンタ部215の新しいカウンタ値に設定する。
【0069】
(ステップS15)図7のカウンタ値共有処理の終了である場合には本処理を終了する。一方、図7のカウンタ値共有処理の継続である場合にはステップS11に戻る。
【0070】
[自動車の構成例]
図8は、本実施形態に係る自動車300の構成例を示す図である。図8において、自動車300は、第1ECU1と複数の第2ECU2とCAN3と診断ポート304とインフォテイメント(Infotainment)機器302とを備える。第1ECU1と複数の第2ECU2とはCAN3に接続されている。第1ECU1及び第2ECU2は、自動車300に備わる車載コンピュータである。第1ECU1は、自動車300に搭載されたECUのうち、ゲートウェイ機能を有するECUである。第2ECU2は、自動車300に搭載されたECUのうち、エンジン制御等の機能を有するECUである。第2ECU2として、例えば、エンジン制御機能を有するECU、ハンドル制御機能を有するECU、ブレーキ制御機能を有するECUなどがある。
【0071】
第1ECU1は、CAN3を介して、各第2ECU2との間でデータを交換する。第2ECU2は、CAN3を介して、他の第2ECU2との間でデータを交換する。
【0072】
インフォテイメント機器302として、例えば、ナビゲーション機能、位置情報サービス機能、音楽や動画などのマルチメディア再生機能、音声通信機能、データ通信機能、インターネット接続機能などを有するものが挙げられる。インフォテイメント機器302は、外部機器400と接続して、外部機器400とデータを交換する。外部機器400として、例えば、携帯通信端末やオーディオビジュアル機器などが挙げられる。インフォテイメント機器302は第1ECU1に接続される。
【0073】
診断ポート304は、診断ツール410を接続する。診断ツール410は、診断ポート304を介して、第1ECU1や第2ECU2等の更新プログラムのインストールやデータの設定変更などを実行する。診断ポート304として、例えばOBD(On-board Diagnostics)ポートを使用してもよい。
【0074】
インフォテイメント機器302は、第1ECU1を介して、CAN3に接続されている第2ECU2とデータを送受する。第1ECU1は、インフォテイメント機器302と第2ECU2との間のデータの送受を監視する。
【0075】
診断ツール410は、診断ポート304及び第1ECU1を介して、CAN3に接続されている第2ECU2とデータを送受する。第1ECU1は、診断ツール410と第2ECU2との間のデータの送受を監視する。
【0076】
なお、車両に搭載される通信ネットワークとして、CAN以外の通信ネットワークを自動車300に備え、CAN以外の通信ネットワークを介して、第1ECU1と第2ECU2との間のデータの交換、及び、第2ECU2同士の間のデータの交換が行われてもよい。例えば、LIN(Local Interconnect Network)を自動車300に備えてもよい。また、CANとLINとを自動車300に備えてもよい。また、自動車300において、LINに接続する第2ECU2を備えてもよい。また、第1ECU1は、CANとLINとに接続されてもよい。また、第1ECU1は、CANを介して該CANに接続される第2ECU2との間でデータを交換し、また、LINを介して該LINに接続される第2ECU2との間でデータを交換してもよい。また、第2ECU2同士が、LINを介してデータを交換してもよい。
【0077】
本実施形態によれば、MACの生成及び検査に使用されるカウンタ値を第1ECU1及び第2ECU2で共有する処理として、定期的に、第1ECU1からカウンタ値通知フレームによって各第2ECU2へ同じカウンタ値を通知する。これにより、第1ECU1と各第2ECU2との間でカウンタ値の問い合わせのやり取りは不要であり、MACの検査における効率の向上を図ることができるという効果が得られる。
【0078】
なお、第1ECU1は、カウンタ値のデータ長が一つのカウンタ値通知フレームに収まらないデータ長である場合には、カウンタ値のビット列を複数に分割し、該分割後の各ビット列を複数のカウンタ値通知フレームに分散して格納する。第2ECU2は、一つのカウンタ値のビット列が分散して格納されている複数のカウンタ値通知フレームから、該一つのカウンタ値のビット列を復元する。この場合、該複数のカウンタ値通知フレームのデータフィールドに格納されるMACには、分割前の元のカウンタ値を使用して生成されたMACを使用する。
【0079】
本実施形態において、第1ECU1は、送信ノードと受信ノードとカウンタ値通知ノードとに対応する。また、第2ECU2は、送信ノードと受信ノードとに対応する。また、カウンタ値通知フレームはカウンタ値通知メッセージに対応する。また、送信データ伝送フレームはメッセージに対応する。
【0080】
なお、本実施形態において、カウンタ値通知ノードを単独のノードとして備えてもよい。また、上記の図8の自動車300の構成例では、ゲートウェイ機能を有する第1ECU1がカウンタ値通知ノードの機能を有したが、ゲートウェイ機能を有する第1ECU1の代わりに一つの第2ECU2がカウンタ値通知ノードの機能を有してもよい。
【0081】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0082】
上述した実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
【0083】
また、上述した第1ECU1又は第2ECU2の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0084】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0085】
1…第1ECU、2…第2ECU、3…CAN、10…通信ネットワークシステム、111,211…送信部、112,212…受信部、113,213…フレーム受信処理部、114,214…MAC生成部、115,215…カウンタ部、116,216…MAC検査部、117,217…セッション鍵記憶部、118…切替部、119…カウンタ制御部、120…カウンタ値生成部、121…暗号化部、220…カウンタ設定部、221…復号部、300…自動車、302…インフォテイメント機器、304…診断ポート
図1
図2
図3
図4
図5
図6
図7
図8