(57)【特許請求の範囲】
【請求項１】
少なくとも送信ノード及び受信ノードを備え、前記送信ノード及び前記受信ノードがネットワーク接続された通信システムであって、
前記送信ノードは、
送信側カウンタ値を記憶する送信側カウンタ値記憶ユニットと、
メインメッセージを送信する度に前記送信側カウンタ値をインクリメントするインクリメントユニットと、
最新の前記送信側カウンタ値の少なくとも一部、及び共通鍵を鍵導出関数に入力し、更新鍵を生成する送信側更新鍵生成ユニットと、
最新の前記送信側カウンタ値の少なくとも一部、メインメッセージ、及び前記更新鍵に基づいてメッセージ認証コードを生成する送信側認証コード生成ユニットと、
最新の前記送信側カウンタ値の少なくとも一部、前記メッセージ認証コードの少なくとも一部、及び前記メインメッセージを送信する送信ユニットと、
を備え、
前記受信ノードは、
受信側カウンタ値を記憶する受信側カウンタ値記憶ユニットと、
前記送信ノードが送信する、前記送信側カウンタ値の少なくとも一部、前記メッセージ認証コードの少なくとも一部、及び前記メインメッセージを受信する受信ユニットと、
前記受信ユニットで受信した、前記送信側カウンタ値の少なくとも一部を用いて、前記受信側カウンタ値を前記送信側カウンタ値に同期させる同期ユニットと、
前記同期ユニットによる同期後の前記受信側カウンタ値の少なくとも一部、及び前記共通鍵を前記鍵導出関数に入力し、前記更新鍵を生成する受信側更新鍵生成ユニットと、
前記同期ユニットによる同期後の前記受信側カウンタ値の少なくとも一部、前記受信ユニットで受信したメインメッセージ、及び前記受信側更新鍵生成ユニットで生成した前記更新鍵に基づいてメッセージ認証コードを生成する受信側認証コード生成ユニットと、
前記受信側認証コード生成ユニットで生成したメッセージ認証コードと、前記受信ユニットで受信したメッセージ認証コードとが一致するか否かによって、前記メインメッセージの正当性を検証する検証ユニットと、
を備え、
前記送信側更新鍵生成ユニットは、前記送信ノード及び前記受信ノードが共有し、時間の経過とともに変化する共有値が予め設定された値となるごとに、前記更新鍵を生成し、
前記受信側更新鍵生成ユニットは、前記共有値が前記予め設定された値となるごとに、前記更新鍵を生成し、
前記送信側カウンタ値の少なくとも一部は、前記送信側カウンタ値の変化にともなって変化し、
前記受信側カウンタ値の少なくとも一部は、前記受信側カウンタ値の変化にともなって変化することを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記共有値は、前記送信側カウンタ値及び前記受信側カウンタ値であることを特徴とする通信システム。
【請求項３】
請求項１又は２に記載の通信システムであって、
前記送信ノードを複数備え、
前記送信ユニットは、さらに、前記送信ユニットのノードＩＤを送信し、
前記受信側カウンタ値記憶ユニットは、前記ノードＩＤごとに受信側カウンタ値を記憶し、
前記同期ユニットは、前記受信ユニットで受信した前記ノードＩＤに対応する前記受信側カウンタ値を前記送信側カウンタ値に同期させ、
前記受信側更新鍵生成ユニットは、前記受信ユニットで受信した前記ノードＩＤに対応する前記受信側カウンタ値の少なくとも一部、及び前記共通鍵を前記鍵導出関数に入力し、前記更新鍵を生成し、
前記受信側認証コード生成ユニットは、前記受信ユニットで受信した前記ノードＩＤに対応する前記受信側カウンタ値の少なくとも一部、前記受信ユニットで受信したメインメッセージ、及び前記受信側更新鍵生成ユニットで生成した前記更新鍵に基づいてメッセージ認証コードを生成することを特徴とする通信システム。
【請求項４】
請求項１〜３のいずれか１項に記載の通信システムであって、
少なくとも一部の前記送信ノードは前記受信ノードとしても機能し、
少なくとも一部の前記受信ノードは前記送信ノードとしても機能することを特徴とする通信システム。
【請求項５】
請求項１〜４のいずれか１項に記載の通信システムであって、
前記送信ノード及び前記受信ノードは、車両に搭載されたＥＣＵであることを特徴とする通信システム。
【請求項６】
少なくとも送信ノード及び受信ノードがネットワーク接続された通信システムを構成する送信ノードであって、
送信側カウンタ値を記憶する送信側カウンタ値記憶ユニットと、
メインメッセージを送信する度に前記送信側カウンタ値をインクリメントするインクリメントユニットと、
最新の前記送信側カウンタ値の少なくとも一部、及び共通鍵を鍵導出関数に入力し、更新鍵を生成する送信側更新鍵生成ユニットと、
最新の前記送信側カウンタ値の少なくとも一部、メインメッセージ、及び前記更新鍵に基づいてメッセージ認証コードを生成する送信側認証コード生成ユニットと、
最新の前記送信側カウンタ値の少なくとも一部、前記メッセージ認証コードの少なくとも一部、及び前記メインメッセージを送信する送信ユニットと、
を備え、
前記送信側更新鍵生成ユニットは、前記送信ノード及び前記受信ノードが共有し、時間の経過とともに変化する共有値が予め設定された値となるごとに、前記更新鍵を生成し、
前記送信側カウンタ値の少なくとも一部は、前記送信側カウンタ値の変化にともなって変化することを特徴とする送信ノード。
【請求項７】
少なくとも送信ノード及び受信ノードがネットワーク接続された通信システムを構成する受信ノードであって、
受信側カウンタ値を記憶する受信側カウンタ値記憶ユニットと、
前記送信ノードが送信する、送信側カウンタ値の少なくとも一部、メッセージ認証コードの少なくとも一部、及びメインメッセージを受信する受信ユニットと、
前記受信ユニットで受信した、前記送信側カウンタ値の少なくとも一部を用いて、前記受信側カウンタ値を前記送信側カウンタ値に同期させる同期ユニットと、
前記同期ユニットによる同期後の前記受信側カウンタ値の少なくとも一部、及び共通鍵を前記鍵導出関数に入力し、前記更新鍵を生成する受信側更新鍵生成ユニットと、
前記同期ユニットによる同期後の前記受信側カウンタ値の少なくとも一部、前記受信ユニットで受信したメインメッセージ、及び前記受信側更新鍵生成ユニットで生成した前記更新鍵に基づいてメッセージ認証コードを生成する受信側認証コード生成ユニットと、
前記受信側認証コード生成ユニットで生成したメッセージ認証コードと、前記受信ユニットで受信したメッセージ認証コードとが一致するか否かによって、前記メインメッセージの正当性を検証する検証ユニットと、
を備え、
前記受信側更新鍵生成ユニットは、前記送信ノード及び前記受信ノードが共有し、時間の経過とともに変化する共有値が予め設定された値となるごとに、前記更新鍵を生成し、
前記送信側カウンタ値の少なくとも一部は、前記送信側カウンタ値の変化にともなって変化し、
前記受信側カウンタ値の少なくとも一部は、前記受信側カウンタ値の変化にともなって変化することを特徴とする受信ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信システム、送信ノード、及び受信ノードに関する。
【背景技術】
【０００２】
複数のノードがネットワーク接続された通信システムにおいて、送信側のノードはメインメッセージとともにメッセージ認証コード（ＭＡＣ）を送信し、受信側のノードは、ＭＡＣに基づきメッセージの正当性を検証する技術が知られている。
【０００３】
特許文献１記載の技術では、メッセージの送信ごとにインクリメントされるカウンタ値、共通鍵、及びメインメッセージを用いて暗号アルゴリズムによりＭＡＣを生成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−９８７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１記載の技術では、同じ共通鍵を使い続ける。一般に、同一の鍵を長期間使用するとセキュリティのリスクが高まり、通信システムが危殆化する。本発明は、こうした問題にかんがみてなされたものであり、危殆化を抑制できる通信システム、送信ノード、及び受信ノードを提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の通信システムは、少なくとも送信ノード及び受信ノードがネットワーク接続された通信システムある。送信ノードは、以下の各ユニットを備える。
送信側カウンタ値を記憶する送信側カウンタ値記憶ユニット。
【０００７】
メインメッセージを送信する度に送信側カウンタ値をインクリメントするインクリメントユニット。
最新の送信側カウンタ値の少なくとも一部、及び共通鍵を鍵導出関数に入力し、更新鍵を生成する送信側更新鍵生成ユニット。
【０００８】
最新の送信側カウンタ値の少なくとも一部、メインメッセージ、及び更新鍵に基づいてメッセージ認証コードを生成する送信側認証コード生成ユニット。
最新の送信側カウンタ値の少なくとも一部、メッセージ認証コードの少なくとも一部、及びメインメッセージを送信する送信ユニット。
【０００９】
また、受信ノードは、以下の各ユニットを備える。
受信側カウンタ値を記憶する受信側カウンタ値記憶ユニット。
送信ノードが送信する、送信側カウンタ値の少なくとも一部、メッセージ認証コードの少なくとも一部、及びメインメッセージを受信する受信ユニット。
【００１０】
受信ユニットで受信した、送信側カウンタ値の少なくとも一部を用いて、受信側カウンタ値を送信側カウンタ値に同期させる同期ユニット。
同期ユニットによる同期後の受信側カウンタ値の少なくとも一部、及び共通鍵を鍵導出関数に入力し、更新鍵を生成する受信側更新鍵生成ユニット。
【００１１】
同期ユニットによる同期後の受信側カウンタ値の少なくとも一部、受信ユニットで受信したメインメッセージ、及び受信側更新鍵生成ユニットで生成した更新鍵に基づいてメッセージ認証コードを生成する受信側認証コード生成ユニット。
【００１２】
受信側認証コード生成ユニットで生成したメッセージ認証コードと、受信ユニットで受信したメッセージ認証コードとが一致するか否かによって、メインメッセージの正当性を検証する検証ユニット。  
【００１３】
本発明の通信システムにおいて、送信ノードは、更新鍵を用いてメッセージ認証コードを生成する。更新鍵は、送信側カウンタ値に応じて変化する暗号鍵である。そのため、仮に、ある時点での更新鍵が外部に漏れたとしても、それを用いて将来の時点におけるメッセージ認証コードを複製される危険性は低い。よって、本発明の通信システムは、危殆化を抑制できる。
【００１４】
また、本発明の通信システムにおいて、受信ノードは、更新鍵を用いてメッセージ認証コードを生成する。更新鍵は、受信側カウンタ値が送信側カウンタ値と同期して変化すると、それに応じて変化する暗号鍵である。そのため、仮に、ある時点での更新鍵が外部に漏れたとしても、それを用いて将来の時点におけるメッセージ認証コードを複製される危険性は低い。よって、本発明の通信システムは、危殆化を抑制できる。
【００１５】
また、本発明の通信システムにおいて、送信ノードは、送信するメッセージに送信側カウンタ値の少なくとも一部を含む。そして、受信ノードは、受信側カウンタ値を、送信側カウンタ値に同期させる。そのことにより、送信側カウンタ値と受信側カウンタ値とを容易に一致させることができる。その結果、送信ノードと受信ノードとで、共通する更新鍵を容易に作成することができる。
【図面の簡単な説明】
【００１６】
【図１】通信システム１の全体構成を表すブロック図である。
【図２】送信機能ユニット５を表すブロック図である。
【図３】受信機能ユニット７を表すブロック図である。
【図４】ＥＣＵ３Ａが実行するメッセージ送信処理を表すフローチャートである。
【図５】ＥＣＵ３Ａが送信するメッセージを表す説明図である。
【図６】ＥＣＵ３Ｂが実行するメッセージ受信処理を表すフローチャートである。
【図７】ＥＣＵ３Ａにおいて更新鍵、及びＭＡＣを生成する方法を表す説明図である。
【図８】ＥＣＵ３Ｂにおいて更新鍵、及びＭＡＣを生成する方法を表す説明図である。
【発明を実施するための形態】
【００１７】
本発明の実施形態を図面に基づき説明する。
＜第１の実施形態＞
１．通信システム１の構成
通信システム１の構成を、図１〜図３に基づき説明する。通信システム１は、車両に搭載される車載通信システムである。通信システム１では、図１に示すように、複数のＥＣＵ３Ａ、３Ｂ、３Ｃ、３Ｄ・・・が、ネットワーク接続されている。ネットワークの規格はＣＡＮ（コントローラエリアネットワーク、登録商標）である。
【００１８】
ＥＣＵ３Ａ、３Ｂ、３Ｃ、３Ｄ・・・は、それぞれ、ＣＰＵ、ＲＡＭ、ＲＯＭ、センサやアクチュエータとのインターフェース等を備え、ＲＯＭに記憶したプログラムにより後述する処理を実行する。    
【００１９】
ＥＣＵ３Ａ、３Ｂ、３Ｃ、３Ｄ・・・は、それぞれ、機能的に、送信機能ユニット５と、受信機能ユニット７とを備える。
送信機能ユニット５は、さらに詳しくは、図２に示すように、送信側カウンタ値記憶ユニット９、インクリメントユニット１１、送信側更新鍵生成ユニット１３、送信側認証コード生成ユニット１５、及び送信ユニット１７から成る。
【００２０】
送信側カウンタ値記憶ユニット９は、送信側カウンタ値を記憶している。送信側カウンタ値は、送信機能ユニット５を備えるＥＣＵがメッセージを送信するごとにインクリメントされる（１だけ増加する）カウンタ値である。送信機能ユニット５を構成するその他のユニットの機能は後述する。
【００２１】
受信機能ユニット７は、さらに詳しくは、図３に示すように、受信側カウンタ値記憶ユニット１９、受信ユニット２１、同期ユニット２３、受信側更新鍵生成ユニット２５、受信側認証コード生成ユニット２７、及び検証ユニット２９から成る。
【００２２】
受信側カウンタ値記憶ユニット１９は、ＣＡＮ  ＩＤごとに、対応する受信カウンタ値を記憶している。例えば、ＣＡＮ  ＩＤの種類として、ＩＤ−１、ＩＤ−２、ＩＤ−３があったとすると、受信側カウンタ値記憶ユニット１９は、ＩＤ−１に対応する受信側カウンタ値と、ＩＤ−２に対応する受信側カウンタ値と、ＩＤ−３に対応する受信側カウンタ値とをそれぞれ記憶している。
【００２３】
なお、ＣＡＮ  ＩＤは、ＥＣＵが送信するメッセージに含まれる識別子である。ＣＡＮ  ＩＤは、メッセージの内容や、メッセージの送信元であるＥＣＵを識別するために使用される。メッセージに含まれるＣＡＮ  ＩＤは、そのメッセージの送信元であるＥＣＵごとに異なる。受信機能ユニット７を構成するその他のユニットの機能は後述する。
【００２４】
なお、ＥＣＵ３Ａ、３Ｂ、３Ｃ、３Ｄ・・・は、送信ノード及び受信ノードの一例である。また、ＣＡＮ  ＩＤはノードＩＤの一例である。
２．通信システム１が実行する処理
通信システム１が実行する処理を図４〜図６に基づき説明する。ＥＣＵ３Ａ、３Ｂ、３Ｃ、３Ｄ・・・は、それぞれ、メッセージを送信する機能と、他のＥＣＵが送信したメッセージを受信する機能とを有する。ここでは、ＥＣＵ３Ａがメッセージを送信し、そのメッセージをＥＣＵ３Ｂが受信する例について説明する。なお、ＥＣＵ３Ａ以外のＥＣＵがメッセージを送信する場合や、ＥＣＵ３Ｂ以外のＥＣＵがメッセージを受信する場合の処理も同様である。
【００２５】
（２−１）メッセージ送信処理
送信するメインメッセージが生じるごとＥＣＵ３Ａが実行するメッセージ送信処理を図４、図５に基づき説明する。図４のステップ１では、インクリメントユニット１１が、送信側カウンタ値記憶ユニット９に記憶されている送信側カウンタ値をインクリメントする。すなわち、送信側カウンタ値記憶ユニット９に記憶されている送信側カウンタ値（前回値）を読み出し、その値を１だけ増加させて最新の値を生成し、その最新の値を送信側カウンタ値記憶ユニット９に記憶する。
【００２６】
ステップ２では、送信側更新鍵生成ユニット１３が、以下のようにして更新鍵を生成する。送信側更新鍵生成ユニット１３は、予め、共通鍵を記憶している。なお、この共通鍵は、全てのＥＣＵにおいて共通するものである。共通鍵は、時間が経過しても変化しないものである。また、送信側更新鍵生成ユニット１３は、予め、鍵導出関数を記憶している。この鍵導出関数も、全てのＥＣＵにおいて共通するものである。鍵導出関数は、ハッシュ関数（ＳＨＡ等）、ＭＡＣ関数等、公知の鍵導出関数から適宜選択することができる。
【００２７】
送信側更新鍵生成ユニット１３は、前記ステップ１でインクリメントした後の最新の送信側カウンタ値、及び共通鍵を鍵導出関数に入力し、更新鍵を生成する。なお、鍵導出関数は、入力する送信側カウンタ値が異なれば、異なる更新鍵を生成する。
【００２８】
すなわち、送信側更新鍵生成ユニット１３は、送信側カウンタ値が１だけ増すごとに更新鍵を生成する。送信側カウンタ値は、ＥＣＵ３ＡとＥＣＵ３Ｂとで共有し、時間の経過とともに変化する共有値の一例である。
【００２９】
ステップ３では、送信側認証コード生成ユニット１５が、前記ステップ１でインクリメントした後の最新の送信側カウンタ値、メインメッセージ、及び前記ステップ２で生成した更新鍵に基づいて、暗号化アルゴリズムによりＭＡＣ（メッセージ認証コード）を生成する。
【００３０】
ステップ４では、送信ユニット１７が、メッセージを送信する。このメッセージは、図５に示すように、ＥＣＵ３Ａに対応するＣＡＮ  ＩＤ（図５ではＩＤと表示）と、メインメッセージ（図５ではＭＭＳと表示）と、前記ステップ１でインクリメントした後の最新の送信側カウンタ値（図５ではＣＮＴと表示）と、前記ステップ３で生成したＭＡＣとを含む。
【００３１】
なお、メッセージは、送信側カウンタ値の全ビットを含んでいてもよいし、一部のビット（例えば下位ビット）含んでいてもよい。一部のビットを含む場合は、全ビットを含む場合に比べて、メッセージのデータ量を低減できる。
【００３２】
また、メッセージは、ＭＡＣの全ビットを含んでいてもよいし、一部のビット（例えば下位ビット）含んでいてもよい。一部のビットを含む場合は、全ビットを含む場合に比べて、メッセージのデータ量を低減できる。
【００３３】
（２−２）メッセージ受信処理
他のＥＣＵ（例えばＥＣＵ３Ａ）が送信したメッセージをＥＣＵ３Ｂの受信ユニット２１が受信するごとにＥＣＵ３Ｂが実行するメッセージ受信処理を図６に基づき説明する。なお、受信するメッセージは、送信元のＥＣＵに対応するＣＡＮ  ＩＤと、メインメッセージと、送信側カウンタ値と、ＭＡＣとを含む（図５参照）。
【００３４】
図６のステップ１１では、同期ユニット２３が、受信したメッセージからＣＡＮ  ＩＤを抽出する。
ステップ１２では、同期ユニット２３が、受信したメッセージから、送信側カウンタ値を抽出する。
【００３５】
ステップ１３では、同期ユニット２３が、受信側カウンタ値記憶ユニット１９に記憶された受信側カウンタ値のうち、前記ステップ１１で抽出したＣＡＮ  ＩＤに対応する受信側カウンタ値を、前記ステップ１２で抽出した送信側カウンタ値と同期させる（同じ値にする）。
【００３６】
ステップ１４では、受信側更新鍵生成ユニット２５が、前記ステップ１３で同期した後の受信側カウンタ値、及び共通鍵を鍵導出関数に入力し、更新鍵を生成する。すなわち、受信側更新鍵生成ユニット２５は、受信側カウンタ値が１だけ増すごとに更新鍵を生成する。受信側カウンタ値は、ＥＣＵ３ＡとＥＣＵ３Ｂとで共有し、時間の経過とともに変化する共有値の一例である。なお、鍵導出関数、及び共通鍵は、上述したように、全てのＥＣＵにおいて共通するものである。
【００３７】
ステップ１５では、受信側認証コード生成ユニット２７が、前記ステップ１３で同期した後の受信側カウンタ値、受信したメインメッセージ、及び前記ステップ１４で生成した更新鍵に基づいて、暗号化アルゴリズムによりＭＡＣを生成する。
【００３８】
ステップ１６では、検証ユニット２９が、受信したメッセージに含まれるＭＡＣを抽出する。
ステップ１７では、前記ステップ１５で生成したＭＡＣと、前記ステップ１６で抽出したＭＡＣとが一致するか否かを検証ユニット２９が判断する。一致する場合はステップ１８に進み、一致しない場合はステップ１９に進む。
【００３９】
ステップ１８では、受信したメインメッセージは正当なものであると検証ユニット２９が認定し、そのメインメッセージを処理する。一方、ステップ１９では、受信したメインメッセージは正当ではないと検証ユニット２９が認定し、そのメインメッセージを破棄する。
【００４０】
３．通信システム１が奏する効果
（１Ａ）ＥＣＵ３Ａは、図７に示すように、更新鍵を用いてＭＡＣを生成する。更新鍵は、送信側カウンタ値がインクリメントされるごとに変化する暗号鍵である。そのため、仮に、ある時点での更新鍵が外部に漏れたとしても、それを用いて将来の時点におけるＭＡＣを複製される危険性は低い。よって、通信システム１は、危殆化を抑制できる。
【００４１】
（１Ｂ）ＥＣＵ３Ｂは、図８に示すように、更新鍵を用いてＭＡＣを生成する。更新鍵は、受信側カウンタ値が送信側カウンタ値と同期して変化すると、それに応じて変化する暗号鍵である。そのため、仮に、ある時点での更新鍵が外部に漏れたとしても、それを用いて将来の時点におけるＭＡＣを複製される危険性は低い。よって、通信システム１は、危殆化を抑制できる。
【００４２】
（１Ｃ）ＥＣＵ３Ａは、送信するメッセージに送信側カウンタ値を含む。そして、ＥＣＵ３Ｂは、受信側カウンタ値を、メッセージに含まれる送信側カウンタ値に同期させる。そのことにより、送信側カウンタ値と受信側カウンタ値とを容易に一致させることができる。その結果、ＥＣＵ３ＡとＥＣＵ３Ｂとで、共通する更新鍵を容易に生成することができる。
【００４３】
（１Ｄ）ＥＣＵ３Ｂの受信側カウンタ値記憶ユニット１９は、は、ＣＡＮ  ＩＤごとに受信側カウンタ値を記憶している。そして、ＥＣＵ３Ｂは、受信したメッセージに含まれるＣＡＮ  ＩＤに対応する受信側カウンタ値を同期し、同時した受信側カウンタ値を更新鍵やＭＡＣの生成に使用する。そのことにより、メッセージの送信元であるＥＣＵの送信側カウンタ値と、ＥＣＵ３Ｂの受信側カウンタ値とを正しく同期させ、更新鍵やＭＡＣを正しく生成することができる。
【００４４】
（１Ｅ）送信側更新鍵生成ユニット１３は、メッセージを１回送信するごと（送信側カウンタ値がインクリメントされるごと）に更新鍵を生成する。また、受信側更新鍵生成ユニット２５も、メッセージを１回受信するごとに更新鍵を生成する。そのことにより、ＥＣＵ３Ａ及びＥＣＵ３Ｂにおいて更新鍵は頻繁に変化する。その結果、通信システム１の危殆化を一層抑制できる。
【００４５】
（１Ｆ）通信システム１を構成する各ＥＣＵは、送信ノードとしても機能し、受信ノードとしても機能する。
＜その他の実施形態＞
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。
【００４６】
（１）前記ステップ２の処理では、送信側カウンタ値の全ビットを用いず、一部のビット（例えば下位ビット）を用いて更新鍵を生成してもよい。
前記ステップ３の処理では、送信側カウンタ値の全ビットを用いず、一部のビット（例えば下位ビット）を用いてＭＡＣを生成してもよい。
【００４７】
前記ステップ１４の処理では、受信側カウンタ値の全ビットを用いず、一部のビット（例えば下位ビット）を用いて更新鍵を生成してもよい。
前記ステップ１５の処理では、受信側カウンタ値の全ビットを用いず、一部のビット（例えば下位ビット）を用いてＭＡＣを生成してもよい。
【００４８】
（２）ＥＣＵ３Ａ、３Ｂが更新鍵を生成する周期は、適宜設定できる。例えば、ＥＣＵ３Ａは、送信側カウンタ値が予め設定された値（例えば下位ビットが０である値）となるごとに、更新鍵を生成してもよい。また、ＥＣＵ３Ｂは、受信側カウンタ値が、ＥＣＵ３Ａと共通する、予め設定された値となるごとに、更新鍵を生成してもよい。更新鍵を生成する周期を長くすれば、ＥＣＵ３Ａ、３Ｂの処理負担を軽減できる。なお、更新鍵を新たに生成するまでの間は、前回生成した更新鍵を使用することができる。
【００４９】
また、ＥＣＵ３Ａ、３Ｂは、送信側カウンタ値及び受信側カウンタ値以外にも、ＥＣＵ３Ａ、３Ｂで共有し、時間の経過ともに変化する共有値を保持してもよい。そして、ＥＣＵ３Ａ、３Ｂは、その共有値が予め設定された値となるごとに、更新鍵を生成してもよい。
【００５０】
そのような共有値としては、例えば、通信システム１を搭載する車両の車両情報や、現在時刻等が挙げられる。車両情報としては、例えば、走行距離、起動時間(車両の電源をオンにしてからの経過時間)等が挙げられる。
【００５１】
通信システム１を構成するＥＣＵの一部（例えば１つのＥＣＵ）が前記共有値をセンサや時計等から取得し、その共有値を他のＥＣＵに定期的に送信することで、複数のＥＣＵ間で前記共有値を共有する（同じ値を保持する）ことができる。  
【００５２】
（３）通信システム１は、車両以外の機器に用いられるシステムであってもよい。
（４）通信システム１を構成するＥＣＵの一部は、送信機能は有するが、受信機能は有しないものであってもよい。また、通信システム１を構成するＥＣＵの一部は、受信機能は有するが、送信機能は有しないものであってもよい。
【００５３】
（５）通信システム１におけるネットワークの規格は、ＣＡＮ以外の規格（例えば、フレックスレイ（登録商標）、イーサネット（登録商標）等）であってもよい。
（６）ＥＣＵ３Ａは、ＣＡＮ  ＩＤ、メインメッセージ、送信側カウンタ値、及びＭＡＣのうちの一部を他とは別のメッセージとして送信してもよい。
【００５４】
（７）通信システム１は、ＥＣＵに代えて、又はＥＣＵに加えて、他の送信ノード、受信ノードを備えていてもよい。他の送信ノード、受信ノードとしては、例えば、ＥＣＵ以外のコンピュータ、ハブ、ルーター等が挙げられる。
【００５５】
（８）上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【００５６】
（９）上述した通信システムの他、当該通信システムを構成する送信ノード、受信ノード、当該送信ノード、受信ノードとしてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、通信方法、メッセージ認証方法等、種々の形態で本発明を実現することもできる。
【符号の説明】
【００５７】
１…通信システム、３Ａ、３Ｂ、３Ｃ、３Ｄ…ＥＣＵ、５…送信機能ユニット、７…受信機能ユニット、９…送信側カウンタ値記憶ユニット、１１…インクリメントユニット、１３…送信側更新鍵生成ユニット、１５…送信側認証コード生成ユニット、１７…送信ユニット、１９…受信側カウンタ値記憶ユニット、２１…受信ユニット、２３…同期ユニット、２５…受信側更新鍵生成ユニット、２７…受信側認証コード生成ユニット、２９…検証ユニット
【図１】
0006512023.tif 000002
【図２】
0006512023.tif 000003
【図３】
0006512023.tif 000004
【図４】
0006512023.tif 000005
【図５】
0006512023.tif 000006
【図６】
0006512023.tif 000007
【図７】
0006512023.tif 000008
【図８】
0006512023.tif 000009