(57)【要約】  一実施形態は、暗号鍵の配信効率を改善する。一実施形態に係る車両システムは、車両の各部を制御するための複数の電子制御装置と、複数の電子制御装置を管理する管理電子制御装置とを含む。管理電子制御装置は、或るメッセージの検証に用いる暗号鍵を別の暗号鍵に更新する場合に、或るメッセージを識別するためのＣＡＮ‐ＩＤを含む第１のメッセージとともに、別の暗号鍵を含む第２のメッセージをネットワークに送出する。複数の電子制御装置は、第１のメッセージに含まれる或るメッセージのＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤである場合に、第２のメッセージに含まれる別の暗号鍵に、或るメッセージの検証に用いる暗号鍵を更新する。
2018198297.tif 000002
【特許請求の範囲】
【請求項１】
車両の各部を制御するための複数の電子制御装置と、
前記複数の電子制御装置を管理する管理電子制御装置と、
を含む車両システムであって、
前記管理電子制御装置は、或るメッセージの検証に用いる暗号鍵を別の暗号鍵に更新する場合に、前記或るメッセージを識別するためのＣＡＮ‐ＩＤを含む第１のメッセージとともに、前記別の暗号鍵を含む第２のメッセージをネットワークに送出し、
前記複数の電子制御装置は、前記第１のメッセージに含まれる前記或るメッセージのＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤである場合に、前記第２のメッセージに含まれる前記別の暗号鍵に、前記或るメッセージの検証に用いる暗号鍵を更新する、
ことを特徴とする、車両システム。
【請求項２】
前記複数の電子制御装置のうちの第１の電子制御装置は、前記或るメッセージの検証に
用いる暗号鍵の更新を要求する場合に、前記或るメッセージを識別するための前記ＣＡＮ‐ＩＤを含む第３のメッセージを前記ネットワークに送出する、
請求項１に記載の車両システム。
【請求項３】
車両システムにおける鍵配信方法であって、
車両の各部を制御するための複数の電子制御装置を管理する管理電子制御装置が、或るメッセージの検証に用いる暗号鍵を別の暗号鍵に更新する場合に、前記或るメッセージを識別するためのＣＡＮ‐ＩＤを含む第１のメッセージとともに、前記別の暗号鍵を含む第２のメッセージをネットワークに送出し、
前記複数の電子制御装置は、前記第１のメッセージに含まれる前記或るメッセージのＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤである場合に、前記第２のメッセージに含まれる前記別の暗号鍵に、前記或るメッセージの検証に用いる暗号鍵を更新する、
処理を含む、鍵配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両システム及び鍵配信方法に関する。
【背景技術】
【０００２】
ＥＣＵは、車両の各部の制御に用いられている。なお、ＥＣＵは、例えば、Engine Control Unit（エンジンコントロールユニット、エンジン制御装置）、又はElectronic Control Unit（エレクトロニックコントロールユニット、電子制御装置）の略称である。そして、車両へのサイバー攻撃に対してセキュリティ強度を確保（システムの機密性・可用性・完全性を維持）するために、ＥＣＵには随所で暗号技術が活用されている。例えば、ＥＣＵは、秘匿性や真正性の確保が望まれるメッセージのやり取りで暗号鍵を利用している。暗号鍵は、セキュアかつ高効率にＥＣＵ内に格納されることが望まれる。同じ鍵を使い続けるとセキュリティの低下を招くため、暗号鍵の更新（鍵の生成と配信）が行われる。【０００３】
また、近年、自動運転技術が注目されている。自動運転技術は、例えば、人間が運転操作を行わなくとも自動で車両の走行を制御する技術である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１２／１０１７２１号
【特許文献２】特開２０１２−３９２４５号公報
【特許文献３】特開２００４−３４３６２６号公報
【非特許文献】
【０００５】
【非特許文献１】「セキュアかつ効率的な車載鍵管理の提案」、電子情報通信学会論文、2016年
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば、自動運転技術が進歩すると、完全な自律走行などが可能になると予想される。しかしながら、そうした自動運転技術の発展のためには、例えば、走る、曲がる、及び止まるなどの走行を制御するメッセージをより速く通信することが求められており、ＥＣＵ間での通信のネットワーク負荷を少しでも軽減することが望まれる。そのため、暗号鍵の配信効率の改善が望まれている。【０００７】
１つの側面では、本発明は、暗号鍵の配信効率を改善することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一つの態様の車両システムは、車両の各部を制御するための複数の電子制御装置と、複数の電子制御装置を管理する管理電子制御装置とを含む。管理電子制御装置は、或るメッセージの検証に用いる暗号鍵を別の暗号鍵に更新する場合に、或るメッセージを識別するためのＣＡＮ‐ＩＤを含む第１のメッセージとともに、別の暗号鍵を含む第２のメッセージをネットワークに送出する。複数の電子制御装置は、第１のメッセージに含まれる或るメッセージのＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤである場合に、第２のメッセージに含まれる別の暗号鍵に、或るメッセージの検証に用いる暗号鍵を更新する。
【発明の効果】
【０００９】
暗号鍵の配信効率を改善することができる。
【図面の簡単な説明】
【００１０】
【図１】車両システムのＣＡＮネットワークの構成を例示する図である。
【図２】ＥＣＵのハードウェア構成を例示する。
【図３】ＣＡＮ通信におけるメッセージのデータフレームの構成を例示する図である。
【図４】例示的なＭＡＣ値によるメッセージの真正性の検証を示す図である。
【図５】例示的な鍵配信処理で用いられるメッセージを説明する図である。
【図６】マスタＥＣＵからの鍵配信対象のＥＣＵへの例示的な鍵配信を示すシーケンス図である。
【図７】実施形態に係るマスタＥＣＵのブロック構成を例示する図である。
【図８】実施形態に係るＥＣＵのブロック構成を例示する図である。
【図９】実施形態に係る鍵配信処理で用いるメッセージを説明する図である。
【図１０】ＥＣＵの記憶部に保持されている情報を例示する図である。
【図１１】マスタＥＣＵの記憶部に保持されている情報を例示する図である。
【図１２】実施形態に係る鍵配信処理を例示するシーケンス図である。
【図１３】実施形態に係る鍵配信処理の流れを説明する図である。
【図１４】実施形態に係る鍵配信処理の流れを説明する図である。
【図１５】実施形態に係る鍵配信処理の流れを説明する図である。
【図１６】実施形態に係る鍵配信処理の流れを説明する図である。
【図１７】実施形態に係る鍵配信処理の流れを説明する図である。
【図１８】実施形態に係る鍵配信処理の流れを説明する図である。
【図１９】実施形態に係る鍵配信処理の流れを説明する図である。
【図２０】実施形態に係る鍵配信処理の流れを説明する図である。
【図２１】実施形態に係る鍵配信処理の流れを説明する図である。
【図２２】実施形態に係る鍵配信処理の流れを説明する図である。
【図２３】実施形態に係る鍵配信処理の流れを説明する図である。
【図２４】実施形態に係る鍵配信処理の流れを説明する図である。
【図２５】実施形態に係る鍵配信処理の流れを説明する図である。
【図２６】実施形態に係るＥＣＵの制御部が実行するＭ０メッセージの送信処理を示す図である。
【図２７】実施形態に係るマスタＥＣＵの制御部が実行する更新鍵通知処理を示す図である。
【図２８】実施形態に係るマスタＥＣＵの制御部が実行するレスポンス受信処理を例示する図である。
【図２９】実施形態に係るＥＣＵの制御部が実行する鍵格納処理を例示する図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
【００１２】
図１は、車両システム１００のＣＡＮ（Controller Area Network）ネットワーク１０１の構成を例示する図である。図１では、例えば、ＣＡＮ１、ＣＡＮ２、ＣＡＮ３のそれぞれのＣＡＮネットワーク１０１に複数のＥＣＵ１０２が接続されている。また、複数のＣＡＮネットワーク１０１は、セントラルゲートウェイ（Central Gateway）１０３に接続されている。なお、セントラルゲートウェイ１０３は、車両システム１００に含まれていなくてもよい。ＥＣＵ１０２には、マスタＥＣＵ（Master ECU）１０４として動作するＥＣＵが含まれている。マスタＥＣＵ１０４と各ＥＣＵ１０２は、ハードウェアの構成は同じであってよいが、動作するソフトウェアが異なっていてよい。マスタＥＣＵ１０４は、車両システム１００に複数含まれていてもよい。例えば、ＣＡＮ１、ＣＡＮ２、及びＣＡＮ３のそれぞれにマスタＥＣＵ１０４が含まれていてもよい。マスタＥＣＵ１０４は、例えば、ＭＡＣ検証などの検証を実行するためのメッセージ認証コードなどの情報の生成に用いられる暗号鍵を生成し、他のＥＣＵ１０２に配信してよい。マスタＥＣＵ１０４と、暗号鍵の配信先のＥＣＵ１０２は、同じＣＡＮネットワーク１０１上に含まれていても、いなくてもよい。例えば、図１では、マスタＥＣＵ１０４は、ＣＡＮ１、ＣＡＮ２、ＣＡＮ３に含まれるＥＣＵに鍵配信を行ってよい。ＥＣＵ１０２は、車両の各部に配置されており、それぞれが対応する機器の動作を制御したり監視したりしてよい。例えば、モーターに接続されたＥＣＵ１０２はモーターを制御し、ワイパーに接続されたＥＣＵ１０２はワイパーを制御する。また、ＥＣＵ１０２は、車両の速度、エンジンの回転数、ブレーキの状態などを制御してよい。そして、車両システム１００は、例えば、ＥＣＵ１０２間でメッセージを通信することにより車両の全体の動作を制御してよい。なお、以下では、ＥＣＵ１０２を、例えば、エンジン制御装置又は電子制御装置と呼ぶことがある。また、マスタＥＣＵ１０４を、例えば、管理エンジン制御装置又は管理電子制御装置と呼ぶことがある。
【００１３】
図２は、ＥＣＵ１０２（マスタＥＣＵ１０４）のハードウェア構成を例示する図である。ＥＣＵ１０２は、例えば、プロセッサ２０１、ＲＡＭ２０２、不揮発メモリ２０３、外部インターフェース２０４、及びＣＡＮ通信装置２０５を含む。なお、ＲＡＭは、Random Access Memoryの略称である。プロセッサ２０１、ＲＡＭ２０２、不揮発メモリ２０３、外部インターフェース２０４、及びＣＡＮ通信装置２０５は、例えば、バス２１０を介して互いに接続されていてよい。
【００１４】
プロセッサ２０１は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ２０１は、ＲＡＭ２０２にプログラムを読み出して実行することで、ＥＣＵの各部を制御してよい。不揮発メモリ２０３は、例えば、フラッシュメモリ等の半導体メモリであってよい。ＣＡＮ通信装置２０５は、例えば、プロセッサ２０１の指示に従ってＣＡＮネットワーク１０１（ＣＡＮバス）に接続し、他のＥＣＵ１０２と通信する。また、外部インターフェース２０４は、例えば、プロセッサ２０１の指示に従って外部機器２２０と接続し、外部機器２２０を制御してよい。外部機器２２０は、例えば、ＥＣＵ１０２が制御する対象となる車両の機器を表す。例えば、ＥＣＵ１０２がモーターを制御するＥＣＵ１０２であれば、外部機器２２０は、モーターである。ＥＣＵ１０２がワイパーを制御するＥＣＵ１０２であれば、外部機器２２０は、ワイパーである。なお、マスタＥＣＵ１０４は、例えば、ＥＣＵ１０２と同じハードウェアの構成を有していてもよく、また、動作するソフトウェアは異なっていてもよい。
【００１５】
続いて、ＣＡＮ通信プロトコルについて述べる。なお、ＣＡＮ通信プロトコルは、例えば、ＩＳＯにて国際的に標準化されたシリアル通信プロトコルである。
【００１６】
［ＣＡＮ通信プロトコル］
ＣＡＮ通信プロトコルは、例えば、耐ノイズ性が強化されるように設計された規格であり、相互接続された機器間のデータ転送に使われる。自動車では、例えば、速度、エンジンの回転数、ブレーキの状態、及び故障診断などの情報の転送に使用されている。
【００１７】
ＣＡＮ通信におけるメッセージのデータフレームの構成を図３に示す。図３の各フィールドは以下を表す。
SOF（Start Of Frame）：データフレームの開始を表す
CAN‐ID（Identifier）：メッセージの宛先を表すＣＡＮのＩＤ
RTR（Remote Transmission Request）：データフレームとリモートフレームを識別する
コントロール：予約ビット（r0，r1）とデータ長（DLC：Data Length Code）を表す
データフィールド：データの内容
CRC（Cyclic Redundancy Check）：フレームの送信エラーのチェックを行う
ACK（Acknowledgement）：正常に受信した場合に返事を返す
EOF（End of Frame）：データフレームの終了を表す
【００１８】
図３のメッセージの例では、ＣＡＮ−ＩＤが１１ｂｉｔで規定されている。各ＥＣＵ１０２は、宛先となるＣＡＮ−ＩＤを指定してＣＡＮネットワークにデータ（１フレームは０〜８バイト）を送出する。ＣＡＮ−ＩＤは、例えば、個々のメッセージを識別するための識別子である。各ＥＣＵ１０２は、自装置に関係のあるＣＡＮ−ＩＤが指定されているデータのみを処理対象とする。そのため、ＣＡＮ−ＩＤは、例えば、メッセージの宛先を表している。なお、以下で述べるＭ０〜Ｍ５のデータは、データフィールドのデータである。
【００１９】
続いて、ＣＡＮネットワークにおけるメッセージの真正性の検証について述べる。メッセージの真正性を検証する手法として、ＭＡＣ（Message Authentication Code、メッセージ認証コード）値を用いた検証が知られている。ＭＡＣ値は、メッセージを認証するために用いられる短い情報である。ＭＡＣアルゴリズムは、入力として暗号鍵と認証すべき任意長のメッセージを受け取り、ＭＡＣ値を出力する。ＭＡＣ値を用いることで、例えば、ＥＣＵ１０２は、メッセージの内容の変化を検出可能であり、メッセージの完全性を保護することができる。例えば、図４のようにして、ＭＡＣ値はメッセージの真正性の検証に用いられてよい。
【００２０】
図４は、例示的なＭＡＣ値によるメッセージの真正性の検証を示す図である。図４において、ＥＣＵ１０２‐Ａは、保持している暗号鍵（ＫＥＹ１）を用いて元データからＭＡＣ値（検証データ）を生成する（図４の（１））。そして、ＥＣＵ１０２‐Ａは、生成したＭＡＣ値を元データに付加したメッセージを、所定のＣＡＮ‐ＩＤを指定してＣＡＮネットワークに出力する（図４の（２））。なお、ＣＡＮネットワークに出力されるメッセージは、例えば、ブロードキャストされてよい。
【００２１】
そして、ＥＣＵ１０２‐Ｃは、ＣＡＮネットワーク上を流れるメッセージのうち処理対象のＣＡＮ‐ＩＤが宛先のＣＡＮ‐ＩＤとして指定されたメッセージを収集する。ここでは、ＥＣＵ１０２‐Ｃは、ＥＣＵ１０２‐Ａが出力したＭＡＣ値が付加された元データを含むメッセージを収集してよい（図４の（３））。そして、ＥＣＵ１０２‐Ｃは、保持している暗号鍵（ＫＥＹ１）を用いて受信した元データからＭＡＣ値を生成し（図４の（４））、受信したＭＡＣ値と一致するかを検証する（図４の（５））。それにより、ＥＣＵ１０２‐Ｃは、元データの真正性を確認することができる。例えば、以上のようにして、暗号鍵を用いて生成したＭＡＣ値により、メッセージの真正性を確認することができる。
【００２２】
ここで、例えば、ＭＡＣ検証のための暗号鍵（ＫＥＹ１）を長期間使い続けると、セキュリティの低下を招き、セキュリティ攻撃成功の可能性が高まってしまう。そのため、セキュリティを高く保つために暗号鍵の更新（鍵の生成と配信）が行われる。
【００２３】
以下では、マスタＥＣＵ１０４から鍵を配信する対象のＥＣＵ１０２に新しい鍵を配信する鍵配信処理の例を述べる。例えば、ＥＣＵ１０２のセキュリティとしてＳＨＥ（Secure Hardware Extension）方式が知られており、以下では、ＳＨＥ方式における鍵配信を例示する。ＳＨＥ方式では、例えば、ＣＡＮ通信プロトコルを用いて、Ｍ１、Ｍ２、Ｍ３、Ｍ４、及びＭ５と呼ばれるメッセージをやり取りする。
【００２４】
図５は、例示的な鍵配信処理で用いられるＭ１、Ｍ２、Ｍ３、Ｍ４、及びＭ５のメッセージを説明する図である。図５に示すように、Ｍ１メッセージは、鍵配信対象の暗号鍵を利用しているＥＣＵ１０２を識別するためのＵＩＤ（ユニークＩＤ）と、鍵配信対象の暗号鍵が格納されているスロットとを指定する情報を含む。また、Ｍ２メッセージは、リプレイ防止用のカウンタ値と、暗号化した新しい暗号鍵とを含んでよい。Ｍ３メッセージは、Ｍ１メッセージとＭ２メッセージから導出したＭＡＣ値の情報を含む。Ｍ４メッセージは、例えば、暗号鍵が更新されたＥＣＵ１０２のＵＩＤ、新しい暗号鍵が格納されたスロット、及び暗号化したリプレイ防止用のカウンタ値の情報を含む。Ｍ５メッセージは、例えば、Ｍ４メッセージから導出したＭＡＣ値を含む。また、メッセージには、メッセージの宛先として、それぞれ個別のＣＡＮ‐ＩＤが指定されていてよい。
【００２５】
図６は、マスタＥＣＵ１０４からの鍵配信対象のＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃへの例示的な鍵配信を示すシーケンス図である。例えば、マスタＥＣＵ１０４は、メッセージの検証に用いている暗号鍵が、生成から所定期間が経過しており古くなったタイミングなどの所定のタイミングで図６のシーケンスを開始してよい。なお、図６のシーケンスでは更新対象となる暗号鍵は、ＥＣＵ１０２‐ＡとＥＣＵ１０２‐Ｃとの間でやり取りされる所定のＣＡＮ‐ＩＤで識別されるメッセージの検証に用いられるものとする。
【００２６】
ステップ６０１（以降、ステップを“Ｓ”と記載し、例えば、Ｓ６０１と表記する）においてマスタＥＣＵ１０４は、新しい暗号鍵（ＫＥＹ１’）を生成する。続いて、マスタＥＣＵ１０４は、Ｍ１メッセージ及びＭ２メッセージを生成する。なお、Ｍ１メッセージは、例えば、図５で述べた様に、暗号鍵を更新する対象のＥＣＵ１０２のＵＩＤと、その暗号鍵が格納されているスロットの情報をデータフィールドに含む。また、Ｍ２メッセージは、例えば、図５で述べた様に、リプレイ防止用のカウンタ値と、共通鍵で暗号化した新しい暗号鍵とをデータフィールドに含む。なお、共通鍵は、例えば、マスタＥＣＵ１０４と他のＥＣＵ１０２との間で共通して保持されている暗号鍵である。
【００２７】
Ｓ６０３においてマスタＥＣＵ１０４は、Ｍ１メッセージ及びＭ２メッセージから共通鍵を用いてＭ３メッセージ（Ｍ１メッセージとＭ２メッセージから導出したＭＡＣ値をデータフィールドに含む）を生成する。
【００２８】
Ｓ６０４においてマスタＥＣＵ１０４は、ＣＡＮネットワークに生成したＭ１、Ｍ２、及びＭ３メッセージを送出する。一方、ＥＣＵ１０２‐Ａは、ＣＡＮネットワークを流れるメッセージの宛先のＣＡＮ‐ＩＤを確認し、処理対象のＣＡＮ‐ＩＤを有するメッセージを収集する。更に、ＥＣＵ１０２‐Ａは、収集したメッセ―ジのＣＡＮ‐ＩＤがＭ１メッセージである場合に、Ｍ１メッセージのデータフィールドに含まれるＵＩＤが、自装置に割り当てられたＵＩＤと合致するか否かを判定する。そして、ＥＣＵ１０２‐Ａは、データフィールドに含まれるＵＩＤが自装置のＵＩＤと合致する場合に、Ｍ１メッセージと、それに続く、Ｍ２及びＭ３メッセージを、自装置を対象とするメッセージとして処理する。ここでは、Ｍ１メッセージのデータフィールドのＵＩＤがＥＣＵ１０２‐ＡのＵＩＤであるものとする。そのため、ＥＣＵ１０２‐Ａは、マスタＥＣＵ１０４から送出されたＭ１、Ｍ２、及びＭ３メッセージを、自装置を対象とするメッセージとして取得する。
【００２９】
Ｓ６０５においてＥＣＵ１０２‐Ａは、取得したＭ２メッセージに含まれるカウンタ値を検証する。例えば、各ＥＣＵ１０２は、使用する鍵と対応するカウンタ値を不揮発メモリ２０３に記憶していてよい。そして、ＥＣＵ１０２‐Ａは、Ｍ２メッセージに含まれるカウンタ値と、不揮発メモリ２０３に保存されている更新対象の鍵と対応付けられたカウンタ値とのズレが許容範囲内であるか否かを判定する。カウンタ値のズレが許容範囲を超えている場合、ＥＣＵ１０２‐Ａは、Ｍ１、Ｍ２、及びＭ３メッセージを破棄してよい。一方、カウンタ値のズレが許容範囲内であれば、シーケンスはＳ６０６に進む。
【００３０】
Ｓ６０６においてＥＣＵ１０２‐Ａは、Ｍ３メッセージを用いてＭ１及びＭ２メッセージのＭＡＣ検証を行う。例えば、ＥＣＵ１０２‐Ａは、不揮発メモリ２０３に記憶されている共通鍵を用いて、Ｍ１及びＭ２メッセージからＭＡＣ値を生成し、Ｍ３メッセージのデータフィールドに含まれるＭＡＣ値と一致するかを検証する。一致しない場合、ＥＣＵ１０２‐Ａは、Ｍ１、Ｍ２、及びＭ３メッセージを破棄してよい。一方、ＭＡＣ値が一致した場合、シーケンスはＳ６０７に進む。
【００３１】
Ｓ６０７においてＥＣＵ１０２‐Ａは、Ｍ２メッセージに含まれる暗号化された新しい鍵を共通鍵で復号し、Ｍ１メッセージで指定されるスロットに格納する。Ｓ６０８においてＥＣＵ１０２‐Ａは、Ｍ４メッセージ及びＭ５メッセージを生成する。なお、Ｍ４メッセージは、例えば、自装置のＵＩＤ、暗号鍵を格納したスロット、暗号化したリプレイ防止用のカウンタ値を含む。また、Ｍ５メッセージは、例えば、Ｍ４メッセージから導出したＭＡＣ値を含む。
【００３２】
Ｓ６０９においてＥＣＵ１０２‐Ａは、生成したＭ４及びＭ５メッセージをＣＡＮネット―ワークに送出する。マスタＥＣＵ１０４は、ＣＡＮネットワークを流れるメッセージの宛先のＣＡＮ‐ＩＤを確認し、処理対象のＣＡＮ‐ＩＤを有するメッセージを収集する。例えば、マスタＥＣＵ１０４は、Ｍ４及びＭ５メッセージのＣＡＮ‐ＩＤを処理対象としており、これにより、マスタＥＣＵ１０４は、ＥＣＵ１０２‐Ａから送出されたＭ４及びＭ５メッセージを受信してよい。
【００３３】
Ｓ６１０においてマスタＥＣＵ１０４は、Ｍ４メッセージから共通鍵を用いてＭＡＣ値を生成する。そして、Ｓ６１１においてマスタＥＣＵ１０４は、生成したＭＡＣ値が、Ｍ５メッセージのＭＡＣ値と一致するか検証する。ＭＡＣ値が一致した場合、マスタＥＣＵ１０４は、Ｍ４メッセージに含まれるＵＩＤで識別されるＥＣＵ１０２‐Ａへの鍵配信が完了したことを確認することができる。
【００３４】
続く、Ｓ６１２〜Ｓ６２１の処理において、マスタＥＣＵ１０４と、ＥＣＵ１０２‐Ｃは、例えば、Ｓ６０１〜Ｓ６１１の処理と対応する処理を実行してよい。ただし、Ｓ６０１〜Ｓ６１１の処理と異なり、Ｓ６１２〜Ｓ６２１の処理では、鍵配信の対象がＥＣＵ１０２‐Ｃである。そのため、マスタＥＣＵ１０４は、例えば、Ｓ６１２においてＭ１メッセージのデータフィールドにＥＣＵ１０２‐ＣのＵＩＤを指定してよい。そして、Ｓ６１４でＣＡＮネットワークに送出されたＭ１、Ｍ２、Ｍ３メッセージは、ＥＣＵ１０２‐Ｃで受信され、その後の処理で、ＥＣＵ１０２‐Ｃへの鍵配信が実行されてよい。
【００３５】
以上で述べた様に、例示的な鍵配信処理により、マスタＥＣＵ１０４は、ＥＣＵ１０２‐ＡとＥＣＵ１０２‐Ｃへの鍵配信を実行することができる。しかしながら、例えば、自動運転技術などでは、走る、曲がる、及び止まるなどの走行を制御するメッセージをより迅速に通信することが求められており、ＥＣＵ１０２間での通信のネットワーク負荷を少しでも軽減することが望まれている。そのため、暗号鍵の更新の効率の改善が望まれている。
【００３６】
以下で述べる実施形態は、マスタＥＣＵ１０４は、鍵配信が要求される全てのＥＣＵ１０２を対象に１度に鍵配信を行うことを可能とする。従って、図６で例示したように、鍵配信対象のＥＣＵ１０２を個別にＵＩＤで指定して、それぞれのＥＣＵ１０２に個別に鍵配信処理を実行する場合と異なり、暗号鍵の更新の効率を改善することができる。以下、実施形態に係る鍵配信処理について更に詳細を説明する。
【００３７】
＜実施形態＞
図７は、実施形態に係るマスタＥＣＵ１０４のブロック構成を例示する図である。マスタＥＣＵ１０４は、例えば、制御部７０１及び記憶部７０２を含んでいる。マスタＥＣＵ１０４の記憶部７０２は、例えば、後述する共通鍵、マスタＣＡＮ通信情報１１０１、メッセージ処理対象情報１１０２、及びＥＣＵ識別情報１１０３などの情報を記憶している。なお、上述のプロセッサ２０１は、例えば、ＲＡＭ２０２にプログラムを読み出して実行することで、制御部７０１として動作してよい。また、上述のＲＡＭ２０２及び不揮発メモリ２０３は、例えば、記憶部７０２の一例である。これらの各部の詳細及び記憶部７０２に格納されている情報の詳細については後述する。
【００３８】
また、図８は、実施形態に係るＥＣＵ１０２のブロック構成を例示する図である。ＥＣＵ１０２は、例えば、制御部８０１及び記憶部８０２を含んでいる。ＥＣＵ１０２の記憶部８０２は、例えば、後述する共通鍵、自装置のＵＩＤ、及びＣＡＮ通信情報１００１などの情報を記憶している。なお、上述のプロセッサ２０１は、例えば、ＲＡＭ２０２にプログラムを読み出して実行することで、制御部８０１として動作してよい。また、上述のＲＡＭ２０２及び不揮発メモリ２０３は、例えば、記憶部８０２の一例である。これらの各部の詳細及び記憶部８０２に格納されている情報の詳細については後述する。
【００３９】
続いて、実施形態に係る鍵配信処理について説明する。図６の例示的な鍵配信処理では、マスタＥＣＵ１０４が、所定のタイミングで鍵配信を実施する例を述べている。しかしながら、例えば、ＥＣＵ１０２が、攻撃を検知した場合など、ＥＣＵ１０２からマスタＥＣＵ１０４に鍵配信の実行を依頼することが好ましい場合がある。そこで、以下で述べる実施形態では、Ｍ１〜Ｍ５メッセージの他に、更に、ＥＣＵ１０２からマスタＥＣＵ１０４に鍵配信を依頼するＭ０メッセージを設けている。
【００４０】
図９は、実施形態に係る鍵配信処理で用いるＭ０、Ｍ１、Ｍ２、Ｍ３、Ｍ４、及びＭ５のメッセージを説明する図である。図９に示すように、Ｍ０メッセージは、データフィールドに鍵配信対象の暗号鍵で検証が行われるメッセージのＣＡＮ‐ＩＤと、鍵配信対象の暗号鍵と対応するカウンタ値と、及びこれらのＣＡＮ‐ＩＤとカウンタ値から共通鍵を用いて導出したＭＡＣ値とを含む。なお、以下の説明では、鍵配信対象の暗号鍵で検証が行われるメッセージのＣＡＮ‐ＩＤを、鍵配信対象のＣＡＮ‐ＩＤと呼ぶことがある。Ｍ１メッセージは、データフィールドに鍵配信対象のＣＡＮ‐ＩＤを含む。Ｍ２メッセージは、共通鍵で暗号化された新しい暗号鍵と、鍵配信対象のＣＡＮ‐ＩＤと対応づけられたカウンタ値を含む。Ｍ３メッセージは、Ｍ１メッセージとＭ２メッセージから導出したＭＡＣ値を含む。Ｍ４メッセージは、例えば、鍵が更新されたＥＣＵ１０２のＵＩＤ、新しい暗号鍵が格納されたスロット、及び新しい暗号鍵と対応するカウンタ値を共通鍵で暗号化したカウンタ値を含む。Ｍ５メッセージは、例えば、Ｍ４メッセージから導出したＭＡＣ値を含む。また、各メッセージには、そのメッセージの宛先を示す情報として、それぞれ個別のＣＡＮ‐ＩＤが設定されていてよい。
【００４１】
図１０は、ＥＣＵ１０２の記憶部８０２に保持されている情報を例示する図である。ＥＣＵ１０２は、例えば、共通鍵（例えば、Master_ECU_Key）と、自装置のＵＩＤ（例えば、UID C）と、ＣＡＮ通信情報１００１とを記憶部８０２に保持していてよい。共通鍵は、マスタＥＣＵ１０４やＥＣＵ１０２の間で共通して保持されている暗号鍵である。自装置のＵＩＤは、図１０に示す情報を記憶部８０２に保持するＥＣＵ１０２を識別するためのＵＩＤである。ＣＡＮ通信情報１００１には、ＣＡＮ通信情報１００１を記憶部８０２に保持するＥＣＵ１０２が、処理対象とするメッセージのＣＡＮ‐ＩＤと、そのＣＡＮ‐ＩＤに対応付けてカウンタ値、鍵スロット、鍵、及びMAC値の情報を含む。例えば、カウンタ値は、ＣＡＮ通信情報１００１のエントリのＣＡＮ‐ＩＤに対応付けられているカウンタ値である。また、例えば、鍵は、ＣＡＮ‐ＩＤで識別されるメッセージのやり取りで検証に用いられる暗号鍵であり、鍵スロットは、その暗号鍵が格納されているスロットである。ＭＡＣ値は、エントリのＣＡＮ‐ＩＤと、カウンタ値とから共通鍵で生成したＭＡＣ値である。例えば、ＥＣＵ１０２は、以上のような情報を保持していてよい。
【００４２】
また、図１１は、マスタＥＣＵ１０４の記憶部７０２に保持されている情報を例示する図である。例えば、記憶部７０２には、共通鍵（例えば、Master_ECU_Key）と、マスタＣＡＮ通信情報１１０１と、メッセージ処理対象情報１１０２と、ＥＣＵ識別情報１１０３とが記憶されていてよい。共通鍵は、他のＥＣＵ１０２との間で共通して保持されている暗号鍵である。マスタＣＡＮ通信情報１１０１は、マスタＥＣＵ１０４が管理するメッセージのＣＡＮ‐ＩＤと、そのＣＡＮ‐ＩＤと対応するカウンタ値、鍵、及びＭＡＣ値の情報を含む。例えば、カウンタ値は、エントリのＣＡＮ‐ＩＤに対応付けられているカウンタ値である。鍵は、例えば、エントリのＣＡＮ‐ＩＤで識別されるメッセージのやり取りで検証に用いられる暗号鍵である。ＭＡＣ値は、エントリのＣＡＮ‐ＩＤと、カウンタ値とから共通鍵で生成したＭＡＣ値である。
【００４３】
また、メッセージ処理対象情報１１０２は、エントリのＣＡＮ‐ＩＤで識別されるメッセージを処理対象とするＥＣＵ１０２がどれであるかを示す情報を登録している。例えば、メッセージ処理対象情報１１０２において、暗号鍵が検証に用いられるメッセージのＣＡＮ‐ＩＤを含むエントリの場合、その暗号鍵の鍵スロットの情報が、そのメッセージを処理対象とするＥＣＵ１０２及びマスタＥＣＵ１０４に登録されていてよい。また、例えば、検証に暗号鍵が用いられないメッセージのＣＡＮ‐ＩＤを含むエントリの場合には、そのＣＡＮ‐ＩＤのメッセージを処理対象とするＥＣＵ１０２及びマスタＥＣＵ１０４に処理対象であることを示す情報が登録されていてよい。なお、処理対象であることを示す情報は、例えば、図１１では“対象”である。また、図１１のメッセージ処理対象情報１１０２の例では、エントリのＣＡＮ‐ＩＤで識別されるメッセージを処理対象としないＥＣＵ１０２には、鍵スロットの情報や処理対象であることを示す情報は登録されない。
【００４４】
また、ＥＣＵ識別情報１１０３には、マスタＥＣＵ１０４が管理対象とするＥＣＵ１０２のそれぞれのＵＩＤを示す情報が登録されている。例えば、マスタＥＣＵ１０４は、以上のような情報を保持していてよい。
【００４５】
図１２は、実施形態に係る鍵配信処理を例示するシーケンス図である。例えば、ＥＣＵ１０２‐Ｃの制御部８０１は、鍵の生成から所定期間が経過し鍵が古くなったタイミングや、攻撃を受けたタイミングなど、所定のタイミングで図１２のシーケンスを開始してよい。
【００４６】
Ｓ１２０１においてＥＣＵ１０２‐Ｃの制御部８０１は、鍵配信を依頼する対象の暗号鍵を用いて検証を行っていたメッセージのＣＡＮ‐ＩＤ、及びそのＣＡＮ‐ＩＤとＣＡＮ通信情報１００１において対応付けられているカウンタ値を取得する。そして、ＥＣＵ１０２‐Ｃの制御部８０１は、取得したＣＡＮ‐ＩＤ、カウンタ値、並びにこれらのＣＡＮ‐ＩＤ及びカウンタ値から共通鍵を用いて生成したＭＡＣ値を含むＭ０メッセージを生成する。
【００４７】
Ｓ１２０２においてＥＣＵ１０２‐Ｃの制御部８０１は、生成したＭ０メッセージをＣＡＮネットワークに送出する。マスタＥＣＵ１０４の制御部７０１は、ＣＡＮネットワーク上を流れるメッセージの宛先のＣＡＮ‐ＩＤを確認し、処理対象のＣＡＮ‐ＩＤを有するメッセージを収集する。例えば、マスタＥＣＵ１０４は、メッセージ処理対象情報１１０２に示すようにＭ０メッセージのＣＡＮ‐ＩＤ：0x100を処理対象としており、そのため、マスタＥＣＵ１０４は、ＥＣＵ１０２‐Ｃから送出されたＭ０メッセージを処理対象として収集してよい。
【００４８】
Ｓ１２０３においてマスタＥＣＵ１０４の制御部７０１は、マスタＣＡＮ通信情報１１０１においてＭ０メッセージに含まれるＣＡＮ‐ＩＤと対応付けられているカウンタ値と、Ｍ０メッセージに含まれるカウンタ値が所定の許容範囲内にあるか検証する。そして、カウンタ値が所定の許容範囲内にある場合、シーケンスはＳ１２０４に進む。なお、カウンタ値が所定の許容範囲内にない場合、マスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージを破棄して、シーケンスは終了してよい。例えば、このようにカウンタ値の検証を行うことで、再送攻撃を検知することができる。
【００４９】
Ｓ１２０４においてマスタＥＣＵ１０４の制御部７０１は、マスタＣＡＮ通信情報１１０１においてＭ０メッセージに含まれるＣＡＮ‐ＩＤと対応付けられているＭＡＣ値と、Ｍ０メッセージに含まれるＭＡＣ値とが一致するか、ＭＡＣ検証を行う。検証に成功した場合、シーケンスはＳ１２０５に進む。なお、検証に失敗した場合、マスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージを破棄して、シーケンスは終了してよい。
【００５０】
Ｓ１２０５においてマスタＥＣＵ１０４の制御部７０１は、鍵配信要求があった暗号鍵を保持するＥＣＵ１０２を鍵配信対象のＥＣＵ１０２として特定する。例えば、マスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージに含まれるＣＡＮ‐ＩＤを含むエントリをメッセージ処理対象情報１１０２において参照し、鍵スロットの情報が登録されているＥＣＵ１０２を鍵配信対象のＥＣＵ１０２として特定してよい。
【００５１】
Ｓ１２０６においてマスタＥＣＵ１０４の制御部７０１は、新しい暗号鍵（ＫＥＹ１’）を生成する。Ｓ１２０７においてマスタＥＣＵ１０４の制御部７０１は、Ｍ１及びＭ２メッセージを生成する。例えば、制御部７０１は、データフィールドにＭ０メッセージで通知された鍵配信対象のＣＡＮ‐ＩＤを含むＭ１メッセージを生成してよい。また、制御部７０１は、Ｓ１２０６で生成した新しい鍵を共通鍵で暗号化した暗号鍵と、マスタＣＡＮ通信情報１１０１において鍵配信対象のＣＡＮ‐ＩＤと対応付けられているカウンタ値とをデータフィールドに含むＭ２メッセージを生成する。
【００５２】
Ｓ１２０８においてマスタＥＣＵ１０４の制御部７０１は、Ｓ１２０６で生成したＭ１及びＭ２メッセージから共通鍵を用いてＭＡＣ値を取得し、取得したＭＡＣ値をデータフィールドに含むＭ３メッセージを生成する。
【００５３】
Ｓ１２０９（Ｓ１２０９ａ及びＳ１２０９ｂ）においてマスタＥＣＵ１０４の制御部７０１は、例えば、生成したＭ１、Ｍ２、及びＭ３メッセージをＣＡＮネットワークに送出し、その後、Ｍ４及びＭ５メッセージが受信されるのを待機する。ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃの制御部８０１は、ＣＡＮネットワーク上を流れるＣＡＮメッセージを収集し、自装置が処理対象とする宛先のＣＡＮ‐ＩＤを有するメッセージを収集する。ここでは、ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃの制御部８０１は、Ｍ１、Ｍ２、及びＭ３メッセージを収集し、Ｍ１メッセージのデータフィールドに含まれるＣＡＮ‐ＩＤが、自装置が処理対象とするメッセージのＣＡＮ‐ＩＤであるか否かを確認する。例えば、ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃの制御部８０１は、Ｍ１メッセージのデータフィールドに含まれるＣＡＮ‐ＩＤが、ＣＡＮ通信情報１００１に処理対象として登録されているか確認してよい。Ｍ１メッセージのデータフィールドに含まれるＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤではない場合、ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃの制御部８０１は、Ｍ１、Ｍ２、及びＭ３メッセージを破棄してよい。一方、Ｍ１メッセージのデータフィールドに含まれるＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤである場合、ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃの制御部８０１は、Ｍ１、Ｍ２、及びＭ３メッセージを処理対象として取得し、シーケンスはＳ１２１０に進む。
【００５４】
なお、以降の処理は、例えば、ＥＣＵ１０２‐Ａと、ＥＣＵ１０２‐Ｃとでそれぞれ処理が並列に実行されてよい。なお、ＥＣＵ１０２‐ＡとマスタＥＣＵ１０４が実行する処理には添え字“ａ”を付し、ＥＣＵ１０２‐ＣとマスタＥＣＵ１０４が実行する処理には添え字“ｃ”を付している。即ち、図１２において、ＥＣＵ１０２‐ＡとマスタＥＣＵ１０４がＳ１２１０ａ〜Ｓ１２１６ａの処理を実行し、ＥＣＵ１０２‐ＣとマスタＥＣＵ１０４がＳ１２１０ｃ〜Ｓ１２１６ｃの処理を実行する。これらは対応する処理であり、以下では、例としてＥＣＵ１０２‐ＡとマスタＥＣＵ１０４とが実行するＳ１２１０ａ〜Ｓ１２１６ａの処理を説明する。
【００５５】
Ｓ１２１０ａにおいてＥＣＵ１０２‐Ａの制御部８０１は、ＣＡＮ通信情報１００１においてＭ１メッセージに含まれるＣＡＮ‐ＩＤと対応付けられているカウンタ値から、Ｍ２メッセージに含まれるカウンタ値が所定の許容範囲内にあるか否かを検証する。カウンタ値のズレが許容範囲を超えていれば、ＥＣＵ１０２‐Ａの制御部８０１は、Ｍ１、Ｍ２、及びＭ３メッセージを破棄してよい。一方、カウンタ値のズレが許容範囲を内であれば、シーケンスはＳ１２１１ａに進む。
【００５６】
Ｓ１２１１ａにおいてＥＣＵ１０２‐Ａの制御部８０１は、受信したＭ１及びＭ２メッセージから共通鍵でＭＡＣ値を生成し、Ｍ３メッセージに含まれるＭＡＣ値と一致するか検証する。ＭＡＣ値が異なれば、ＥＣＵ１０２‐Ａの制御部８０１は、Ｍ１、Ｍ２、及びＭ３メッセージを破棄してよい。一方、ＭＡＣ値が一致しており、ＭＡＣ検証に成功した場合、シーケンスはＳ１２１２ａに進む。
【００５７】
Ｓ１２１２ａにおいてＥＣＵ１０２‐Ａの制御部８０１は、Ｍ２メッセージに含まれる暗号化された新しい鍵を共通鍵で復号する。そして、ＥＣＵ１０２‐Ａの制御部８０１は、得られた新しい鍵をＣＡＮ通信情報１００１においてＭ１メッセージのデータフィールドで指定されたＣＡＮ‐ＩＤを含むエントリの鍵スロットに示されるスロットに格納する。
【００５８】
Ｓ１２１３ａにおいてＥＣＵ１０２‐Ａの制御部８０１は、Ｍ４及びＭ５メッセージを生成する。例えば、ＥＣＵ１０２‐Ａの制御部８０１は、ＣＡＮ通信情報１００１においてＭ１メッセージのデータフィールドのＣＡＮ‐ＩＤを含むエントリからカウンタ値を取得する。そして、ＥＣＵ１０２‐Ａの制御部８０１は、自装置に対して設定されているＵＩＤと、Ｓ１２１２ａで新しい鍵を格納したスロットと、取得したカウンタ値とをデータフィールドに含むＭ４メッセージを生成する。また、ＥＣＵ１０２‐Ａの制御部８０１は、Ｍ４メッセージから共通鍵を用いて生成したＭＡＣ値をデータフィールドに含むＭ５メッセージを生成する。
【００５９】
Ｓ１２１４ａにおいてＥＣＵ１０２‐Ａの制御部８０１は、生成したＭ４及びＭ５メッセージをＣＡＮネットワークに送出する。マスタＥＣＵ１０４の制御部７０１は、ＣＡＮネットワーク上を流れるメッセージの宛先のＣＡＮ‐ＩＤを確認し、処理対象のＣＡＮ‐ＩＤを有するメッセージを収集する。例えば、マスタＥＣＵ１０４の制御部７０１は、メッセージの宛先に含まれるＣＡＮ‐ＩＤが、メッセージ処理対象情報１１０２で処理対象として登録されているか確認してよい。これにより、マスタＥＣＵ１０４の制御部７０１は、ＥＣＵ１０２‐Ａから送出されたＭ４及びＭ５メッセージを受信する。
【００６０】
なお、マスタＥＣＵ１０４の制御部７０１は、Ｍ１、Ｍ２、及びＭ３メッセージを送信すると、それらのメッセージと対応するＭ４及びＭ５メッセージが受信されるのを待機している。そして、Ｓ１２１５ａではマスタＥＣＵ１０４の制御部７０１は、Ｍ４メッセージに含まれる暗号化されたカウンタ値を共通鍵で復号する。続いて、マスタＥＣＵ１０４の制御部７０１は、マスタＣＡＮ通信情報１１０１においてＭ１メッセージのデータフィールドに指定したＣＡＮ‐ＩＤと対応するカウンタ値と、Ｍ４メッセージから復号したカウンタ値とのズレが所定の許容範囲内にあるか検証する。カウンタ値のズレが許容範囲を超えていれば、マスタＥＣＵ１０４の制御部７０１は、Ｍ４及びＭ５メッセージを破棄してよい。一方、カウンタ値のズレが許容範囲を内であれば、シーケンスはＳ１２１６ａに進む。
【００６１】
Ｓ１２１６ａにおいてマスタＥＣＵ１０４の制御部７０１は、Ｍ４メッセージから共通鍵を用いてＭＡＣ値を生成し、ＥＣＵ１０２‐Ａから受信したＭ５メッセージのデータフィールドのＭＡＣ値と一致するか検証する。検証に成功した場合、マスタＥＣＵ１０４の制御部７０１は、ＥＣＵ１０２‐Ａの鍵配信が完了したことを検出することができる。
【００６２】
なお、検証できた場合、マスタＥＣＵ１０４は、鍵配信の完了に伴うデータの更新を実行してよい。例えば、マスタＥＣＵ１０４の制御部７０１は、生成した新しい鍵を、Ｍ１メッセージのデータフィールドで通知したＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリの鍵に格納する。また、制御部７０１は、例えば、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリのカウンタ値が、Ｍ４メッセージで通知されたカウンタ値と異なる場合、Ｍ４メッセージのカウンタ値にエントリのカウンタ値を更新する。また、マスタＥＣＵ１０４の制御部７０１は、例えば、Ｍ４メッセージで通知されたＵＩＤと対応するＥＣＵ１０２をＥＣＵ識別情報１１０３で特定する。そして、制御部７０１は、例えば、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むメッセージ処理対象情報１１０２のエントリのスロットと、Ｍ４メッセージに含まれるスロットとが異なる場合、Ｍ４メッセージに含まれるスロットにエントリのスロットを更新する。
【００６３】
なお、上述のようにＳ１２１０ａ〜Ｓ１２１６ａの処理は、Ｓ１２１０ｃ〜Ｓ１２１６ｃの処理と対応しており、ＥＣＵ１０２‐Ｃの制御部８０１とマスタＥＣＵ１０４の制御部７０１は、Ｓ１２１０ｃ〜Ｓ１２１６ｃの処理により同様に鍵交換を完了させてよい。
【００６４】
また、以上で述べた図１２のシーケンスの処理の流れを、以下の図１３から図２５を参照して更に説明する。
【００６５】
図１３は、例えば、上述のＳ１２０１の処理を説明する図であり、ＥＣＵ１０２‐Ｃの記憶部８０２には、共通鍵：Master_ECU_Key、ＥＣＵ１０２‐ＣのＵＩＤ：UID C、ＣＡＮ通信情報１００１が記憶されている。そして、ＥＣＵ１０２‐Ｃの制御部８０１は、古くなった鍵（ＫＥＹ１）の更新を要求する場合に、Ｍ０メッセージを生成する（図１３の（１））。Ｍ０メッセージは、更新対象の鍵：ＫＥＹ１で検証が行われるメッセージのＣＡＮ‐ＩＤ：0x001と、ＣＡＮ通信情報１００１においてＣＡＮ‐ＩＤ：0x001と対応付けられているカウンタ値Ａと、それらから生成されたMAC値cAとを含んでよい。
【００６６】
図１４は、例えば、上述のＳ１２０２の処理を説明する図であり、ＥＣＵ１０２‐Ｃの制御部８０１は、Ｍ０メッセージをＣＡＮネットワークに出力する（図１４の（２））。一方で、マスタＥＣＵ１０４の制御部７０１は、ＣＡＮネットワーク上を流れるＣＡＮメッセージを収集し、自装置が処理対象とするＣＡＮ‐ＩＤを宛先として有するメッセージを取得する。ここでは、マスタＥＣＵ１０４の制御部７０１は、ＥＣＵ１０２‐Ｃが出力したＭ０メッセージを取得してよい（図１４の（３））。
【００６７】
図１５は、例えば、上述のＳ１２０３の処理を説明する図である。制御部７０１は、例えば、Ｍ０メッセージのデータフィールドに指定されるＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリのカウンタ値と、Ｍ０メッセージに含まれるカウンタ値とのズレが所定の許容範囲内であるか検証する（図１５の（４））。
【００６８】
図１６は、例えば、上述のＳ１２０４及びＳ１２０５の処理を説明する図である。マスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージに含まれるＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリのＣＡＮ‐ＩＤとカウンタ値とから導出したＭＡＣ値と、Ｍ０メッセージのＭＡＣ値とが一致するか検証する（図１６の（５））。また、マスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージで鍵の更新が要求されたＣＡＮ‐ＩＤのメッセージをやり取りする鍵配信対象のＥＣＵ１０２をメッセージ処理対象情報１１０２から特定する（図１６の（６））。
【００６９】
図１７は、例えば、上述のＳ１２０６の処理を説明する図である。マスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージのデータフィールドで指定されたＣＡＮ‐ＩＤのメッセージの検証に用いる新しい暗号鍵（ＫＥＹ１’）を生成する（図１７の（７））。
【００７０】
図１８は、例えば、上述のＳ１２０７の処理を説明する図である。マスタＥＣＵ１０４の制御部７０１は、鍵配信対象のＣＡＮ‐ＩＤを含むＭ１メッセージを生成する（図１８の（８））。また、マスタＥＣＵ１０４の制御部７０１は、鍵配信対象のＣＡＮ‐ＩＤと対応するカウンタ値をマスタＣＡＮ通信情報１１０１から特定する。また、マスタＥＣＵ１０４の制御部７０１は、新しい鍵を共通鍵（Master_ECU_Key）で暗号化し、特定したカウンタ値と暗号化した新しい鍵とを含むＭ２メッセージを生成する（図１８の（９））。
【００７１】
図１９は、例えば、上述のＳ１２０８の処理を説明する図である。マスタＥＣＵ１０４の制御部７０１は、例えば、Ｍ１及びＭ２メッセージから共通鍵を用いてＭ３メッセージを生成する（図１９の（１０））。
【００７２】
図２０は、例えば、上述のＳ１２０９の処理を説明する図である。マスタＥＣＵ１０４の制御部７０１は、生成したＭ１、Ｍ２、及びＭ３メッセージをＣＡＮネットワークにブロードキャストする（図２０の（１１））。そして、Ｍ１、Ｍ２、及びＭ３メッセージは、ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃで処理対象のメッセージとして収集されてよい（図２０の（１２））。ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃの制御部８０１は、Ｍ１、Ｍ２、及びＭ３メッセージを受信すると、Ｍ１メッセージのデータフィールドのＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤであるか否かを判定する。そして、データフィールドのＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤである場合、ＥＣＵ１０２の制御部８０１は、受信したＭ１、Ｍ２、Ｍ３メッセージを用いて鍵配信処理を継続する。
【００７３】
図２１は、例えば、上述のＳ１２１０の処理を説明する図である。例えば、ＥＣＵ１０２‐Ａの制御部８０１は、Ｍ２メッセージに含まれるカウンタ値を、ＣＡＮ通信情報１００１においてＭ１メッセージのＣＡＮ‐ＩＤを含むエントリのカウンタ値と比較して、カウンタ値を検証する（図２１の（１３））。また、同様に、ＥＣＵ１０２‐Ｃの制御部８０１も、カウンタ値を検証してよい（図２１の（１３））。
【００７４】
図２２は、例えば、上述のＳ１２１１の処理を説明する図である。例えば、ＥＣＵ１０２‐Ａの制御部８０１は、受信したＭ１及びＭ２メッセージから共通鍵（Master_ECU_Key）でＭＡＣ値を生成し、Ｍ３メッセージに含まれるＭＡＣ値と一致するか検証する（図２２の（１４））。また、同様に、ＥＣＵ１０２‐Ｃの制御部８０１も、ＭＡＣ値を検証してよい（図２２の（１４））。
【００７５】
図２３は、例えば、上述のＳ１２１２の処理を説明する図である。例えば、ＥＣＵ１０２‐Ａの制御部８０１は、Ｍ２メッセージに含まれる暗号化された新しい鍵を共通鍵（Master_ECU_Key）で復号する。そして、ＥＣＵ１０２‐Ａの制御部８０１は、得られた新しい鍵を、ＣＡＮ通信情報１００１においてＭ１メッセージのデータフィールドで指定されたＣＡＮ‐ＩＤで識別されるエントリの鍵スロットに格納する（図２３の（１５））。また、同様に、ＥＣＵ１０２‐Ｃの制御部８０１も、新しい鍵をスロットに格納してよい（図２３の（１５））。
【００７６】
図２４は、例えば、上述のＳ１２１３及びＳ１２１４の処理を説明する図である。例えば、ＥＣＵ１０２‐Ａの制御部８０１は、Ｍ４及びＭ５メッセージを生成する。ＥＣＵ１０２‐Ａの制御部８０１は、例えば、ＣＡＮ通信情報１００１からＭ１メッセージのデータフィールドで指定されたＣＡＮ‐ＩＤで識別されるエントリのカウンタ値を取得する。そして、ＥＣＵ１０２‐Ａの制御部８０１は、ＥＣＵ１０２‐Ａの記憶部８０２に保存されているＵＩＤと、新しい鍵を格納したスロットと、取得したカウンタ値とをデータフィールドに含むＭ４メッセージを生成する。また、ＥＣＵ１０２‐Ａの制御部８０１は、Ｍ４メッセージから共通鍵（Master_ECU_Key）を用いて生成したＭＡＣ値をデータフィールドに含むＭ５メッセージを生成する（図２４の（１６））。なお、同様に、ＥＣＵ１０２‐Ｃの制御部８０１も、Ｍ４及びＭ５メッセージを生成してよい（図２４の（１６））。
【００７７】
そして、ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃの制御部８０１は、生成したＭ４及びＭ５メッセージをＣＡＮネットワークに送出する（図２４の（１７））。マスタＥＣＵ１０４の制御部７０１は、ＣＡＮネットワーク上を流れるメッセージの宛先のＣＡＮ‐ＩＤを確認し、処理対象のＣＡＮ‐ＩＤを有するメッセージを収集する。それにより、マスタＥＣＵ１０４の制御部７０１は、Ｍ４及びＭ５メッセージを処理対象のメッセージとして収集する（図２４の（１８））。
【００７８】
図２５は、例えば、上述のＳ１２１５及びＳ１２１６の処理を説明する図である。マスタＥＣＵ１０４の制御部７０１は、Ｍ４メッセージに含まれる暗号化されたカウンタ値を共通鍵で復号する。そして、制御部７０１は、マスタＣＡＮ通信情報１１０１においてＭ１メッセージのデータフィールドに指定したＣＡＮ‐ＩＤと対応付けられているカウンタ値と、Ｍ４メッセージから復号したカウンタ値とを用いて、カウンタ値を検証する（図２５の（１９））。なお、同様に、ＥＣＵ１０２‐Ｃの制御部８０１も、カウンタ値の検証を実行してよい（図２５の（１９））。
【００７９】
続いて、マスタＥＣＵ１０４の制御部７０１は、ＥＣＵ１０２‐Ａ及びＥＣＵ１０２‐Ｃのそれぞれから受信したＭ４メッセージから共通鍵を用いてＭＡＣ値を生成する。そして、マスタＥＣＵ１０４の制御部７０１は、ＥＣＵ１０２‐Ａから受信したＭ４メッセージから生成したＭＡＣ値を、ＥＣＵ１０２‐Ａから受信したＭ５メッセージのＭＡＣ値と比較し、Ｍ４メッセージを検証する（図２５の（２０））。また、同様に、マスタＥＣＵ１０４の制御部７０１は、ＥＣＵ１０２‐Ｃから受信したＭ４メッセージから生成したＭＡＣ値を、ＥＣＵ１０２‐Ｃから受信したＭ５メッセージのＭＡＣ値と比較し、Ｍ４メッセージを検証する（図２５の（２０））。なお、Ｍ４メッセージには、送信元のＥＣＵ１０２のＵＩＤが含まれているため、マスタＥＣＵ１０４の制御部７０１は、ＵＩＤからメッセージの送信元を特定することができる。例えば、以上の処理により、マスタＥＣＵ１０４の制御部７０１は、鍵の更新処理の完了を検出することができる。
【００８０】
なお、マスタＥＣＵ１０４の制御部７０１は、鍵の更新処理の完了を検出した場合、鍵配信の完了に伴うデータの更新を実行してよい。例えば、マスタＥＣＵ１０４の制御部７０１は、Ｓ１２０６で生成した新しい鍵を、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリの鍵に格納する。また、制御部７０１は、例えば、Ｍ４メッセージで通知されたカウンタ値が、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリのカウンタ値と異なる場合、Ｍ４メッセージで通知されたカウンタ値に更新してよい。また、マスタＥＣＵ１０４の制御部７０１は、例えば、Ｍ４メッセージで通知されたＵＩＤと対応するＥＣＵ１０２をＥＣＵ識別情報１１０３で特定する。そして、制御部７０１は、例えば、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むメッセージ処理対象情報１１０２のエントリにおけるＭ４メッセージのＵＩＤから特定したＥＣＵ１０２のスロットと、Ｍ４メッセージで通知されたスロットが異なるかを確認する。そして、スロットが異なる場合、制御部７０１は、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むメッセージ処理対象情報１１０２のエントリにおいて、Ｍ４メッセージのＵＩＤから特定されるＥＣＵ１０２のスロットを、Ｍ４メッセージのスロットの値に更新する。
【００８１】
また、図２６〜図２９は、以上で述べた鍵配信処理の動作フローを例示する図である。図２６は、ＥＣＵ１０２の制御部８０１が実行するＭ０メッセージの送信処理を示す図である。例えば、ＥＣＵ１０２の制御部８０１は、起動すると図２６の処理を開始してよい。
【００８２】
Ｓ２６０１においてＥＣＵ１０２の制御部８０１は、鍵配信が要求される状況を検知する。例えば、ＥＣＵ１０２の制御部８０１は、許容回数を超える攻撃を受けた場合や、カウンタ値、鍵の漏えいなどが起きたことを検知した場合に、鍵配信が要求される状況にあると検知してよい。
【００８３】
Ｓ２６０２においてＥＣＵ１０２の制御部８０１は、Ｍ０メッセージのデータ部のデータを取得する。例えば、ＥＣＵ１０２の制御部８０１は、鍵配信対象の暗号鍵で暗号化が行われるメッセージのＣＡＮ‐ＩＤ、及びそのＣＡＮ‐ＩＤと対応するカウンタ値の情報をＣＡＮ通信情報１００１からデータ部のデータとして取得する。
【００８４】
Ｓ２６０３においてＥＣＵ１０２の制御部８０１は、Ｍ０メッセージの検証部のデータを生成する。例えば、ＥＣＵ１０２の制御部８０１は、データ部のデータとして取得したＣＡＮ‐ＩＤ、及びカウンタ値から共通鍵を用いてＭＡＣ値を生成し、検証部のデータとして用いてよい。
【００８５】
Ｓ２６０４においてＥＣＵ１０２の制御部８０１は、Ｍ０メッセージのデータ部のデータと、検証部のデータを結合してＭ０メッセージのデータフィールドに格納し、Ｍ０メッセージをＣＡＮネットワークに送信し、本動作フローは終了する。
【００８６】
以上で述べた、図２６の動作フローによりＥＣＵ１０２からＣＡＮネットワークに、ＣＡＮ‐ＩＤで指定されるメッセージの検証に用いる暗号鍵の配信を依頼するＭ０メッセージが送信される。
【００８７】
図２７は、マスタＥＣＵ１０４の制御部７０１が実行する更新鍵通知処理を示す図である。例えば、マスタＥＣＵ１０４の制御部７０１は、起動すると図２７の処理を開始してよい。
【００８８】
Ｓ２７０１においてマスタＥＣＵ１０４の制御部７０１は、ＣＡＮネットワーク上を流れるメッセージの宛先のＣＡＮ‐ＩＤを確認し、処理対象のＣＡＮ‐ＩＤを有するメッセージを収集する。それにより、マスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージを処理対象のメッセージとして受信する。Ｓ２７０２においてマスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージのデータフィールドに含まれるカウンタ値を、Ｍ０メッセージのデータフィールドに含まれるＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリのカウンタ値と比較する。そして、マスタＥＣＵ１０４の制御部７０１は、カウンタ値のズレが所定の許容範囲内であるか検証する。カウンタ値の検証に成功した場合（Ｓ２７０２がＹＥＳ）、フローはＳ２７０３に進む。
【００８９】
Ｓ２７０３において制御部７０１は、Ｍ０メッセージのデータフィールドに含まれるＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリのＣＡＮ‐ＩＤとカウンタ値とから導出したＭＡＣ値と、Ｍ０メッセージに含まれるＭＡＣ値とが一致するか検証する。ＭＡＣ値の検証に成功した場合（Ｓ２７０３がＹＥＳ）、フローはＳ２７０４に進む。
【００９０】
なお、Ｓ２７０２においてカウンタ値が異なる場合（Ｓ２７０２がＮＯ）、及びＳ２７０３においてＭＡＣ値が異なる場合（Ｓ２７０３がＮＯ）、フローはＳ２７１０に進む。Ｓ２７１０においてマスタＥＣＵ１０４の制御部７０１は、受信したＭ０メッセージを破棄し、本動作フローは終了する。
【００９１】
Ｓ２７０４においてマスタＥＣＵ１０４の制御部７０１は、Ｍ０メッセージに含まれるＣＡＮ‐ＩＤを含むメッセージ処理対象情報１１０２のエントリを参照し、鍵スロットが登録されているＥＣＵ１０２を鍵配信対象のＥＣＵ１０２として特定してよい。
【００９２】
Ｓ２７０５においてマスタＥＣＵ１０４の制御部７０１は、新しい検証用の鍵を生成する。Ｓ２７０６においてマスタＥＣＵ１０４の制御部７０１は、Ｍ１及びＭ２メッセージを生成する。例えば、制御部７０１は、データフィールドにＭ０メッセージで通知された鍵配信対象のＣＡＮ‐ＩＤを含むＭ１メッセージを生成してよい。また、制御部７０１は、データフィールドにＳ２７０５で生成した新しい鍵を共通鍵で暗号化した新しい鍵と、マスタＣＡＮ通信情報１１０１において鍵配信対象のＣＡＮ‐ＩＤと対応付けられているカウンタ値とを含むＭ２メッセージを生成する。
【００９３】
Ｓ２７０７においてマスタＥＣＵ１０４の制御部７０１は、Ｍ１及びＭ２メッセージに対して共通鍵を用いてＭＡＣ値を取得し、取得したＭＡＣ値をデータフィールドに含むＭ３メッセージを生成する。
【００９４】
Ｓ２７０８においてマスタＥＣＵ１０４の制御部７０１は、生成したＭ１、Ｍ２、及びＭ３メッセージをＣＡＮネットワークに送出し、送出したＭ１、Ｍ２、及びＭ３メッセージに対するレスポンスであるＭ４及びＭ５メッセージを受信するのを待機する。
【００９５】
Ｓ２７０９においてマスタＥＣＵ１０４の制御部７０１は、送出したＭ１、Ｍ２、及びＭ３メッセージに対する応答であるＭ４及びＭ５メッセージを受信して検証するためのレスポンス受信処理を実行する。図２８は、Ｓ２７０９で実行されるレスポンス受信処理を例示する図である。
【００９６】
Ｓ２８０１においてマスタＥＣＵ１０４の制御部７０１は、ＣＡＮネットワーク上を流れるメッセージの宛先のＣＡＮ‐ＩＤを確認し、処理対象のＣＡＮ‐ＩＤを有するメッセージを収集する。これにより、マスタＥＣＵ１０４の制御部７０１は、Ｓ２７０８において送出したＭ１、Ｍ２、及びＭ３メッセージに対するレスポンスであるＭ４及びＭ５メッセージをＥＣＵ１０２から受信する。
【００９７】
Ｓ２８０２においてマスタＥＣＵ１０４の制御部７０１は、Ｍ４メッセージに含まれる暗号化されたカウンタ値を共通鍵で復号する。そして、マスタＥＣＵ１０４の制御部７０１は、復号したカウンタ値と、Ｓ２７０８において送出したＭ１メッセージのＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリから取得したカウンタ値とのズレが所定の許容範囲内であるか検証する。カウンタ値のズレが所定の許容範囲内である場合（Ｓ２８０２がＹＥＳ）、フローはＳ２８０３に進む。
【００９８】
Ｓ２８０３においてマスタＥＣＵ１０４の制御部７０１は、Ｍ４メッセージから共通鍵を用いてＭＡＣ値を生成する。そして、マスタＥＣＵ１０４の制御部７０１は、例えば、生成したＭＡＣ値が、ＥＣＵ１０２から受信したＭ５メッセージのＭＡＣ値と一致するか比較し、Ｍ４メッセージを検証する。検証できた場合（Ｓ２８０３がＹＥＳ）、マスタＥＣＵ１０４の制御部７０１は、Ｍ４メッセージのデータフィールドに含まれるＵＩＤで識別されるＥＣＵ１０２の鍵配信が完了したと判定することができ、フローはＳ２８０４にすすむ。
【００９９】
Ｓ２８０４においてマスタＥＣＵ１０４の制御部７０１は、鍵配信の完了に伴うデータの更新を実行する。例えば、マスタＥＣＵ１０４の制御部７０１は、Ｓ２７０５で生成した新しい鍵を、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリの鍵に格納する。また、制御部７０１は、Ｍ４メッセージで通知されたカウンタ値が、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むマスタＣＡＮ通信情報１１０１のエントリのカウンタ値と異なる場合、Ｍ４メッセージで通知されたカウンタ値にエントリのカウンタ値を更新する。制御部７０１は、例えば、Ｍ４メッセージで通知されたＵＩＤと対応するＥＣＵ１０２をＥＣＵ識別情報１１０３で特定する。そして、制御部７０１は、Ｍ１メッセージで通知したＣＡＮ‐ＩＤを含むメッセージ処理対象情報１１０２のエントリに含まれるＭ４メッセージのＵＩＤから特定したＥＣＵ１０２のスロットと、Ｍ４メッセージで通知されたスロットとが異なるかを確認する。そして、制御部７０１は、スロットが異なる場合には、Ｍ４メッセージで通知されたスロットの値に、メッセージ処理対象情報１１０２のエントリに含まれるＭ４メッセージのＵＩＤから特定したＥＣＵ１０２のスロットを更新し、本動作フローは終了する。なお、マスタＥＣＵ１０４の制御部７０１は、Ｓ２８０４ において、例えば、鍵配信が完了したＥＣＵ１０２のＵＩＤの情報などの鍵配信の完了に関するログを保存してもよい。
【０１００】
また、Ｓ２８０２においてカウンタ値が異なる場合（Ｓ２８０２がＮＯ）、及びＳ２８０３においてＭＡＣ値が異なる場合（Ｓ２８０３がＮＯ）、フローはＳ２８０５に進む。Ｓ２８０５においてマスタＥＣＵ１０４の制御部７０１は、受信したＭ４及びＭ５メッセージを破棄し、本動作フローは終了する。図２８の動作フローが終了すると、フローはＳ２７０９の処理を完了し、図２７の動作フローも終了する。
【０１０１】
なお、図２８のレスポンス受信処理は、Ｍ１メッセージで通知したＣＡＮ‐ＩＤで識別されるメッセージを処理対象とする全てのＥＣＵ１０２との間で実行されてよい。
【０１０２】
図２９は、ＥＣＵ１０２の制御部８０１が実行する鍵格納処理を例示する図である。ＥＣＵ１０２の制御部８０１は、例えば、起動すると図２９の動作フローを開始してよい。
【０１０３】
Ｓ２９０１においてＥＣＵ１０２の制御部８０１は、ＣＡＮネットワーク上を流れるメッセージの宛先のＣＡＮ‐ＩＤを確認し、処理対象のＣＡＮ‐ＩＤを有するメッセージを収集する。そして、ＥＣＵ１０２の制御部８０１は、収集したメッセージがＭ１メッセージである場合、Ｍ１メッセージのデータフィールドのＣＡＮ‐ＩＤが処理対象のＣＡＮ‐ＩＤであるかを確認する。処理対象のＣＡＮ‐ＩＤである場合、ＥＣＵ１０２の制御部８０１は、収集したＭ１、Ｍ２、Ｍ３メッセージを処理対象として取得する。
【０１０４】
Ｓ２９０２においてＥＣＵ１０２の制御部８０１は、Ｍ２メッセージに含まれるカウンタ値と、Ｍ１メッセージのデータフィールドに指定されるＣＡＮ‐ＩＤを含むＣＡＮ通信情報１００１のエントリのカウンタ値とが所定の許容範囲内であるか検証する。カウンタ値が許容範囲内であり、検証に成功した場合（Ｓ２９０２がＹＥＳ）、フローはＳ２９０３に進む。
【０１０５】
Ｓ２９０３においてＥＣＵ１０２の制御部８０１は、Ｍ１及びＭ２メッセージから共通鍵でＭＡＣ値を生成し、Ｍ３メッセージに含まれるＭＡＣ値と一致するか検証する。ＭＡＣ値が一致し、検証に成功した場合（Ｓ２９０３がＹＥＳ）、フローはＳ２９０４に進む。
【０１０６】
Ｓ２９０４においてＥＣＵ１０２の制御部８０１は、Ｍ２メッセージに含まれる暗号化された新しい鍵を共通鍵で復号する。そして、ＥＣＵ１０２の制御部８０１は、得られた新しい鍵をＭ１メッセージのデータフィールドに指定されたＣＡＮ‐ＩＤを含むＣＡＮ通信情報１００１のエントリの鍵スロットに格納する。
【０１０７】
Ｓ２９０５においてＥＣＵ１０２の制御部８０１は、Ｍ４及びＭ５メッセージを生成する。例えば、ＥＣＵ１０２の制御部８０１は、ＣＡＮ通信情報１００１からＭ１メッセージのデータフィールドに指定されたＣＡＮ‐ＩＤで識別されるエントリのカウンタ値を取得する。そして、ＥＣＵ１０２の制御部８０１は、ＥＣＵ１０２に設定されているＵＩＤと、新しい鍵を格納したスロットと、取得したカウンタ値とをデータフィールドに含むＭ４メッセージを生成する。また、ＥＣＵ１０２の制御部８０１は、生成したＭ４メッセージから共通鍵を用いてＭＡＣ値を生成し、ＭＡＣ値をデータフィールドに含むＭ５メッセージを生成する。
【０１０８】
Ｓ２９０６においてＥＣＵ１０２の制御部８０１は、Ｍ４及びＭ５メッセージをＣＡＮネットワークに送出し、本動作フローは終了する。
【０１０９】
また、Ｓ２９０２においてカウンタ値の検証に失敗した場合（Ｓ２９０２がＮＯ）、又はＳ２５０３においてＭＡＣ検証に失敗した場合（Ｓ２９０３がＮＯ）、フローはＳ２９０７に進む。Ｓ２９０７においてＥＣＵ１０２の制御部８０１は、Ｓ２９０１で収集したＭ１、Ｍ２、又はＭ３メッセージを破棄し、本動作フローは終了する。
【０１１０】
以上で述べた様に、実施形態によれば、Ｍ１メッセージのデータフィールドで、鍵配信対象となる暗号鍵を検証に用いるメッセージのＣＡＮ‐ＩＤを指定している。そのため、例えば、図６で述べたようにＵＩＤにより個別にＥＣＵ１０２を指定して、Ｍ１、Ｍ２、Ｍ３メッセージを送信する場合と異なり、ＣＡＮ‐ＩＤで指定されるメッセージの伝送に関わる全てのＥＣＵ１０２に一度に鍵交換を依頼することができる。そして、鍵配信対象のそれぞれのＥＣＵ１０２で、鍵交換の処理を並列して実行することが可能になる。そのため、ＥＣＵ間での通信のネットワーク負荷を軽減することができる。また、暗号鍵の更新の効率を改善できる。
【０１１１】
また更に、実施形態によればＥＣＵ１０２は、Ｍ０メッセージを用いてマスタＥＣＵ１０４に鍵配信を依頼することが可能である。そのため、例えば、ＥＣＵ１０２が攻撃を受けた場合などに迅速に鍵配信を行い、高いセキュリティを保つことができる。
【０１１２】
なお、上述の実施形態では、Ｍ０メッセージにより鍵配信が開始する例を述べたが、実施形態はこれに限定されるものではない。例えば、別の実施形態では、マスタＥＣＵ１０４は、鍵配信対象のＣＡＮ‐ＩＤの指定を受け付け、図１２ではＳ１２０６から及び図２７ではＳ２７０４から指定されたＣＡＮ‐ＩＤに対して鍵配信を実行する処理を実行してもよい。この場合、Ｍ０メッセージは用いられなくてもよい。
【０１１３】
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、又は、一部の処理が省略されてもよい。例えば、図２７のＳ２７０２とＳ２７０３の処理、Ｓ２７０４とＳ２７０５の処理、図２８のＳ２８０２とＳ２８０３、図２９のＳ２９０２とＳ２９０３の処理はそれぞれ順序を入れ替えて実行してもよい。
【０１１４】
また、上述の実施形態において、ＥＣＵ１０２及びマスタＥＣＵ１０４は、例えば、車両内に搭載されている。しかしながら、実施形態はこれに限定されるものではない。別の実施形態では、例えば、マスタＥＣＵ１０４は、車両に搭載されたＥＣＵではなく、セルラ回線を介して車両内に搭載されたＥＣＵ１０２と接続されるネットワーク上のサーバなどであってもよい。
【０１１５】
また、上述の実施形態では、例えば、新しい鍵やカウンタ値の暗号化に共通鍵を用いる例を述べているが、実施形態はこれに限定されるものではない。例えば、別の実施形態では、共通鍵の代わりに更新対象となっている古くなった暗号鍵を用いてもよい。
【０１１６】
また、例えば、上述の実施形態においてカウンタ値の検証やＭＡＣ検証に失敗した場合のために、マスタＥＣＵ１０４の制御部７０１は、Ｍ１、Ｍ２、Ｍ３メッセージを送信してからの経過時間をタイマで管理していてよい。そして、マスタＥＣＵ１０４の制御部７０１は、任意のしきい値以上の期間内にレスポンスであるＭ４及びＭ５メッセージを受信しなかった場合に、Ｍ１、Ｍ２、Ｍ３メッセージを再送してもよい。
【０１１７】
また、図２を参照して述べたＥＣＵ１０２を実現するためのハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の機能部の一部または全部の機能がＦＰＧＡ及びＳｏＣなどによるハードウェアとして実装されてもよい。なお、ＦＰＧＡは、Field Programmable Gate Arrayの略称である。ＳｏＣは、System-on-a-chipの略称である。
【０１１８】
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
【符号の説明】
【０１１９】
１００      車両システム
１０１      ＣＡＮネットワーク
１０２      ＥＣＵ
１０３      セントラルゲートウェイ
１０４      マスタＥＣＵ
２０１      プロセッサ
２０２      ＲＡＭ
２０３      不揮発メモリ
２０４      外部インターフェース
２０５      ＣＡＮ通信装置
２１０      バス
２２０      外部機器
７０１      制御部
７０２      記憶部
８０１      制御部
８０２      記憶部
【図１】
2018198297.tif 000003
【図２】
2018198297.tif 000004
【図３】
2018198297.tif 000005
【図４】
2018198297.tif 000006
【図５】
2018198297.tif 000007
【図６】
2018198297.tif 000008
【図７】
2018198297.tif 000009
【図８】
2018198297.tif 000010
【図９】
2018198297.tif 000011
【図１０】
2018198297.tif 000012
【図１１】
2018198297.tif 000013
【図１２】
2018198297.tif 000014
【図１３】
2018198297.tif 000015
【図１４】
2018198297.tif 000016
【図１５】
2018198297.tif 000017
【図１６】
2018198297.tif 000018
【図１７】
2018198297.tif 000019
【図１８】
2018198297.tif 000020
【図１９】
2018198297.tif 000021
【図２０】
2018198297.tif 000022
【図２１】
2018198297.tif 000023
【図２２】
2018198297.tif 000024
【図２３】
2018198297.tif 000025
【図２４】
2018198297.tif 000026
【図２５】
2018198297.tif 000027
【図２６】
2018198297.tif 000028
【図２７】
2018198297.tif 000029
【図２８】
2018198297.tif 000030
【図２９】
2018198297.tif 000031
【国際調査報告】
2018198297.tif 000032
2018198297.tif 000033