(57)【特許請求の範囲】
【請求項１】
相互に接続された複数のノード（１０）を備え、各ノードはカウンタのカウント値を用いてメッセージ認証コードを生成し、該メッセージ認証コードを用いて、前記ノード間で送受信されるメッセージの完全性を保証する通信システムであって、
前記メッセージを送信する側のノードを送信ノード、前記メッセージを受信する側のノードを受信ノードとし、前記カウンタのカウント値を２分割した上位側を上位カウント値、下位側を下位カウント値として、
前記送信ノードは、
前記カウント値を保持する送信側カウント値保持部（１１）と、
他ノードに対する送信要求がある毎に、前記送信側カウント値保持部に保持された前記カウント値をインクリメントし、前記送信要求に係る送信データ、前記送信側カウント値保持部に保持された下位カウント値、前記送信データおよび前記送信側カウント値保持部に保持されたカウント値に基づいて生成されたメッセージ認証コードを含んだメッセージである通常メッセージを生成する通常メッセージ生成部（１４１：Ｓ１１０〜Ｓ１３０）と、
前記受信ノードからの再同期要求に従って、同期メッセージを生成する同期メッセージ生成部（１４１：Ｓ１４０〜Ｓ１５０）と、
を備え、
前記受信ノードは、
前記カウント値を保持する受信側カウント値保持部（１１）と、
前記通常メッセージを受信した場合に、該通常メッセージの内容、および前記受信側カウント値保持部に保持されたカウント値に基づき、前記メッセージ認証コードを用いた検証を実施するメッセージ検証部（１４２：Ｓ２３０）と、
前記メッセージ検証部により、メッセージの完全性を否定する結果が得られた場合、前記送信ノードに対してカウンタの再同期を要求する再同期要求部（１４２：Ｓ２８０）と、
前記同期メッセージを受信した場合に、前記受信側カウント値保持部の上位カウント値を更新するカウント値更新部（１４２：Ｓ２９０〜Ｓ３００，Ｓ２４０〜Ｓ２６０）と、
を備えることを特徴とする通信システム。
【請求項２】
前記同期メッセージ生成部が生成する前記同期メッセージには、前記送信側カウント値保持部に保持された上位カウント値が含まれ、
前記カウント値更新部は、前記同期メッセージに示された上位カウント値によって、前記受信側カウント値保持部の上位カウント値を更新する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記同期メッセージに含まれる前記上位カウント値は、該上位カウント値全体の中の一部であることを特徴とする請求項１または請求項２に記載の通信システム。
【請求項４】
前記カウント値更新部は、前記同期メッセージに示された上位カウント値を一時的に記憶する一時記憶部に記憶した後、前記メッセージ検証部にてメッセージの完全性を肯定する結果が得られた場合に、前記受信側カウント値保持部の上位カウント値を更新することを特徴とする請求項１から請求項３のいずれか１項に記載の通信システム
【請求項５】
前記同期メッセージには、前記上位カウント値を用いて生成されたメッセージ認証コードが含まれ、
前記カウント値更新部は、前記同期メッセージに含まれるメッセージ認証コードを用いた検証により、メッセージの完全性を肯定する結果が得られた場合に前記受信側カウント値保持部の上位カウント値を更新することを特徴とする請求項３に記載の通信システム。
【請求項６】
相互に接続された複数のノード（１０）を備え、各ノードがカウンタのカウント値を用いてメッセージ認証コードを生成し、該メッセージ認証コードを用いて、前記ノード間で送受信されるメッセージの完全性を保証する通信システムにおいて、前記ノード間でカウント値を同期させるカウント値同期方法であって、
前記メッセージを送信する側のノードを送信ノード、前記メッセージを受信する側のノードを受信ノードとし、前記カウンタのカウント値を２分割した上位側を上位カウント値、下位側を下位カウント値として、
前記送信ノードは、
他ノードに対する送信要求がある毎に、送信側カウント値保持部に保持されたカウント値をインクリメントし、前記送信要求に係る送信データと、前記送信側カウント値保持部に保持された下位カウント値と、前記送信データおよび前記送信側カウント値保持部に保持されたカウント値に基づいて生成されたメッセージ認証コードと、を含んだメッセージである通常メッセージを生成し（Ｓ１１０〜Ｓ１３０）、
前記受信ノードからの再同期要求に従って、同期メッセージを生成し（Ｓ１４０〜Ｓ１５０）、
前記受信ノードは、
前記通常メッセージを受信した場合に、該通常メッセージの内容、および受信側カウント値保持部に保持されたカウント値に基づき、前記メッセージ認証コードを用いた検証を実施し（Ｓ２３０）、
前記検証により、メッセージの完全性を否定する結果が得られた場合、前記送信ノードに対してカウンタの再同期を要求し（Ｓ２８０）、
前記同期メッセージを受信した場合に、前記受信側カウント値保持部の上位カウント値を更新する（Ｓ２９０〜Ｓ３００，Ｓ２４０〜Ｓ２６０）、
ことを特徴とするカウント値同期方法。
【請求項７】
相互に接続された複数のノード（１０）を備え、各ノードはカウンタのカウント値を用いてメッセージ認証コードを生成し、該メッセージ認証コードを用いて、前記ノード間で送受信されるメッセージの完全性を保証する通信システムにおいて、前記メッセージを送信する側のノードを送信ノード、前記メッセージを受信する側のノードを受信ノードとし、前記カウンタのカウント値を２分割した上位側を上位カウント値、下位側を下位カウント値として、
前記送信ノードが有するコンピュータを、
前記カウント値を保持する送信側カウント値保持部（１１）と、
他ノードに対する送信要求がある毎に、前記送信側カウント値保持部に保持された前記カウント値をインクリメントし、前記送信要求に係る送信データ、前記送信側カウント値保持部に保持された下位カウント値、前記送信データおよび前記送信側カウント値保持部に保持されたカウント値に基づいて生成されたメッセージ認証コードを含んだメッセージである通常メッセージを生成する通常メッセージ生成部（１４１：Ｓ１１０〜Ｓ１３０）と、
前記受信ノードからの再同期要求に従って、同期メッセージを生成する同期メッセージ生成部（１４１：Ｓ１４０〜Ｓ１５０）と、
として機能させるためのプログラム。
【請求項８】
相互に接続された複数のノード（１０）を備え、各ノードはカウンタのカウント値を用いてメッセージ認証コードを生成し、該メッセージ認証コードを用いて、前記ノード間で送受信されるメッセージの完全性を保証する通信システムにおいて、前記メッセージを送信する側のノードを送信ノード、前記メッセージを受信する側のノードを受信ノードとし、前記カウンタのカウント値を２分割した上位側を上位カウント値、下位側を下位カウント値として、
前記受信ノードが有するコンピュータを、
前記カウント値を保持する受信側カウント値保持部（１１）と、
前記通常メッセージを受信した場合に、該通常メッセージの内容、および前記受信側カウント値保持部に保持されたカウント値に基づき、前記メッセージ認証コードを用いた検証を実施するメッセージ検証部（１４２：Ｓ２３０）と、
前記メッセージ検証部により、メッセージの完全性を否定する結果が得られた場合、前記送信ノードに対してカウンタの再同期を要求する再同期要求部（１４２：Ｓ２８０）と、
前記同期メッセージを受信した場合に、前記受信側カウント値保持部の上位カウント値を更新するカウント値更新部（１４２：Ｓ２９０〜Ｓ３００，Ｓ２４０〜Ｓ２６０）と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムにおいてメッセージを認証する技術に関する。
【背景技術】
【０００２】
従来、車載ネットワークでのメッセージ認証において、各ＥＣＵでＣＡＮＩＤ（ＣＡＮプロトコルのメッセージ識別子）毎にメッセージの送信回数をカウントし、そのカウント値をメッセージ認証コード（ＭＡＣ）の生成に利用することで、リプレイ攻撃への耐性を持たせる技術が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−９８７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来技術では、ゲートウェイがメッセージを間引く等、何等かの理由でメッセージ抜けが生じると、送信側と受信側とでカウント値にずれが生じ、ＭＡＣの検証結果が一致しなくなることがある。このような場合に、カウンタの初期値をブロードキャストする等して、送信側と受信側とでカウント値を合わせる、いわゆる再同期を行う必要がある。
【０００５】
そして、ＣＡＮのような一つのメッセージで送信可能なデータ量が比較的少ない通信では、カウント値を一度に送信することができないため、再同期に時間がかかるという問題があった。また、従来技術では、再同期のために送信されたカウント値が外部からの攻撃で改変されていないことを保証するために、このカウント値の送信にもＭＡＣを付加することが提案されているが、再同期時に送信するデータ量を更に増大させてしまうという問題があった。
【０００６】
本発明は、こうした問題に鑑みてなされたものであり、高速かつ安全にカウンタの再同期を行う技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の通信システムは、相互に接続された複数のノードを備え、各ノードはカウンタのカウント値を用いてメッセージ認証コードを生成し、該メッセージ認証コードを用いて、前記ノード間で送受信されるメッセージの完全性を保証する。ここで、メッセージを送信する側のノードを送信ノード、メッセージを受信する側のノードを受信ノードとし、カウンタのカウント値を２分割した上位側を上位カウント値、下位側を下位カウント値とする。
【０００８】
送信ノードは、送信側カウント値保持部と、通常メッセージ生成部と、同期メッセージ生成部とを備える。送信側カウント値保持部は、カウント値を保持する。通常メッセージ送信部は、他ノードに対する送信要求がある毎に、送信側カウント値保持部に保持されたカウント値をインクリメントし、送信要求に係る送信データ、送信側カウント値保持部に保持された下位カウント値、送信データおよび送信側カウント値保持部に保持されたカウント値に基づいて生成されたメッセージ認証コードを含んだメッセージである通常メッセージを生成する。同期メッセージ生成部は、受信ノードからの再同期要求に従って、送信側カウント値保持部に保持された上位カウント値を含んだメッセージである同期メッセージを生成する。
【０００９】
受信ノードは、受信側カウント値保持部と、メッセージ検証部と、再同期要求部と、カウント値更新部とを備える。受信側カウント値保持部は、カウント値を保持する。メッセージ検証部は、通常メッセージを受信した場合に、該通常メッセージの内容、および受信側カウント値保持部に保持されたカウント値に基づき、メッセージ認証コードを用いた検証を実施する。再同期要求部は、メッセージ検証部により、メッセージの完全性を否定する結果が得られた場合、送信ノードに対してカウンタの再同期を要求する。カウント値更新部は、同期メッセージを受信した場合に、該同期メッセージに示された上位カウント値によって、前記受信側カウント値保持部の上位カウント値を更新する。
【００１０】
つまり、受信した通常メッセージの検証結果が、否定的なものであった場合に、受信ノードは再同期要求を送信する。再同期要求を受信した送信ノードは上位カウント値を含んだ同期メッセージを送信する。同期メッセージを受信した受信ノードは、自ノードが有する上位カウント値を更新する。これにより、次に通常メッセージを受信したときに、先に受信した同期メッセージの上位カウント値が外部からの改変を受けていなければ肯定的な検証結果が得られ、改変を受けていれば否定的な検証結果が得られる。
【００１１】
このような構成によれば、カウンタの再同期時には、カウンタ値の全部ではなく、その一部である上位カウント値のみを送信するため、再同期時の通信量を削減することができる。
【００１２】
また、再同期メッセージに示された上位カウント値が改変を受けているか否かを、その後に受信した通常メッセージによって検証を行うことができ、再同期メッセージには、メッセージ検証コードを必ずしも付与する必要がないため、再同期時の通信量を増加させることなく、カウンタのなりすまし等の不正を防止して、安全に再同期を行うことができる。
【００１３】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１４】
【図１】通信システムの全体構成を示すブロック図である。
【図２】カウンタの構成を示す説明図である。
【図３】メッセージの構成を示す説明図であり、（ａ）は通常メッセージ、（ｂ）は同期メッセージである。
【図４】通常メッセージの送受信時に、メッセージ処理部が実行する処理の概要を示す説明図である。
【図５】同期メッセージの送受信時に、メッセージ処理部が実行する処理の概要を示す説明図である。
【図６】送信処理部が実行する処理のフローチャートである。
【図７】受信処理部が実行する処理のフローチャートである。
【図８】他の実施形態における同期メッセージの構成を示す説明図である。
【発明を実施するための形態】
【００１５】
以下に本発明が適用された実施形態について、図面を用いて説明する。
［１．構成］
通信システム１は、車両に搭載され、図１に示すように、複数のノード１０と、各ノード１０を相互に接続するバス状の通信路３とを備える。また、通信システム１では、通信路３上で調停負けしたノード１０は送信を直ちに停止し、調停勝ちしたノード１０のみが送信を継続する、いわゆるＣＳＭＡ／ＣＡ方式のアクセス制御方式が用いられている。具体的には、ＣＡＮプロトコル（ＩＳＯ１１８９８）が用いられ、フレームのヘッダ部分に付与される識別子（ＣＡＮＩＤ）を用いて調停が実施される。
【００１６】
ノード１０は、いわゆる電子制御装置（ＥＣＵ：Electronic Control Unit ）からなり、以下では、ＥＣＵ１０と表記する。
［２．ＥＣＵ］
ＥＣＵ１０は、カウント値保持部１１、鍵保持部１２、制御部１３、メッセージ処理部１４、通信コントローラ１５を備える。
【００１７】
通信コントローラ１５は、周知のＣＡＮコントローラからなり、メッセージ処理部１４から供給される各種メッセージを、ＣＡＮプロトコルに従った通信フレームに載せて通信路３に送信すると共に、通信路３から自ＥＣＵ１０で受信すべきＣＡＮＩＤが付与された通信フレームを受信すると、メッセージを抽出して、メッセージ処理部１４に供給する。なお、通信フレームには、メッセージの種類に応じたＣＡＮＩＤが付与される。
【００１８】
カウント値保持部１１は、読み書き自在な不揮発性メモリ、または揮発性メモリからなり、通信用カウンタおよび一時カウンタのカウント値を保持するエリアを備える。
通信用カウンタは、図２（ａ）に示すように、後述するメッセージ認証コード（ＭＡＣ）の生成に使用する所定ビット（ここでは６４ビット）のカウンタである。通信用カウンタのカウント値ＣＴは、上位４８ビットと下位１６ビットに２分割され、その上位側（ＭＳＢ）のカウント値を上位カウント値ＣＨ、下位側（ＬＳＢ）のカウント値を下位カウント値ＣＬという。
【００１９】
また、通信用カウンタのカウント値ＣＴは、自ＥＣＵ１０の送信対象または受信対象となるＣＡＮＩＤ毎に設けられている。各ＥＣＵ１０は、一つのＣＡＮＩＤについては、送信または受信のうち一方のみが可能であるため、ＣＡＮＩＤ毎に設けられた各通信カウンタは、それぞれ送信用の通信用カウンタまたは受信用の通信用カウンタのいずれかとして動作する。
【００２０】
一時カウンタは、図２（ｂ）に示すように、通信用カウンタの上位カウント値ＣＨと同じビット幅を有する。以下では、そのカウント値をｔ＿ＣＨで示す。一時カウンタは、通信用カウンタと同様にＣＡＮＩＤ毎に設けられている。但し、ＣＡＮＩＤが受信用の場合にのみ使用される。
【００２１】
つまり、カウント値保持部１１は、送信側カウント値保持部としての機能および受信側カウント値保持部として機能の両方を備える。
鍵保持部１２は、読み書き自在な不揮発性メモリからなり、ＭＡＣの生成に使用する所定ビット（ここでは１２８ビット）のいわゆる共通鍵Ｋを記憶する。この共通鍵Ｋは、全てのＥＣＵ１０に共通のものであり、鍵保持部１２に予め記憶されている。
【００２２】
制御部１３は、周知のコンピュータからなり、メッセージ処理部１４および通信コントローラ１５を介した他のＥＣＵ１０との通信によって、予め自ＥＣＵ１０に割り当てられた機能を実現するための各種処理を実行する。その際、制御部１３は、メッセージ処理部１４との間でデータＰＤＵをやりとりする。
【００２３】
メッセージ処理部１４は、他のＥＣＵ１０にメッセージを送信する処理、即ち送信ノードとしての機能を実現する処理を実行する送信処理部１４１、他のＥＣＵ１０からメッセージを受信する処理、即ち受信ノードとしての機能を実現する処理を実行する受信処理部１４２を備える。これらの処理の詳細は後述する。
【００２４】
[３．メッセージ処理部]
メッセージ処理部１４が扱うメッセージを、図３に示す。メッセージには、通常メッセージと同期メッセージがある。
【００２５】
通常メッセージは、図３（ａ）に示すように、ＤＡＴＡ領域、ＣＮＴ領域、ＭＡＣ領域を備える。そして、ＤＡＴＡ領域にはデータＰＤＵ、ＣＮＴ領域には下位カウント値ＣＬ、ＭＡＣ領域には、ＤＡＴＡ領域およびＣＮＴ領域の情報を用いて生成されたＭＡＣの一部が格納される。
【００２６】
同期メッセージは、図３（ｂ）に示すように、ＤＡＴＡ領域だけからなり、そのＤＡＴＡ領域には上位カウント値ＣＨが格納される。
ここで、メッセージ処理部１４が、通常メッセージを送受信する際に実施する処理の概要を、図４を用いて説明する。
【００２７】
通常メッセージを送信する送信側のＥＣＵ１０では、制御部１３から供給されるデータＰＤＵと、鍵保持部１２に保持されている共通鍵Ｋと、カウント値保持部１１に保持されている通信用カウンタのカウント値ＣＴ（ＣＨ，ＣＬ）とを用いてＭＡＣを生成する。そして、ＤＡＴＡ領域にはデータＰＤＵ、ＣＮＴ領域には下位カウント値ＣＬ、ＭＡＣ領域には生成されたＭＡＣの一部を載せたメッセージを生成し、これを通信コントローラ１５に供給する。
【００２８】
一方、通信コントローラ１５を介して通常メッセージを受信した受信側のＥＣＵ１０では、メッセージのＤＡＴＡ領域の値と、鍵保持部１２に保持されている共通鍵Ｋと、カウント値保持部１１に保持されている上位カウント値ＣＨ（またはｔ＿ＣＨ）にメッセージのＣＮＴ領域の値（ｒ＿ＣＬ）を下位カウント値として連結したカウント値ｒ＿ＣＴとを用いてＭＡＣを生成する。この際、自らが保持するカウント値ＣＴよりも大きいことを確認する。そして、生成されたＭＡＣとメッセージのＭＡＣ領域の値とを比較することでＭＡＣを検証し、メッセージの完全性が肯定された場合、即ちＭＡＣ検証ＯＫの場合は、メッセージのＤＡＴＡ領域の値をデータＰＤＵとして制御部１３に供給し、完全性が否定された場合、即ちＭＡＣ検証ＮＧの場合は、メッセージを破棄する。
【００２９】
次に、メッセージ処理部１４が、同期メッセージを送受信する際に実施する処理の概要を、図５を用いて説明する。
同期メッセージを送信する送信側のＥＣＵ１０では、カウント値保持部１１に保持されている通信用カウンタの上位カウント値ＣＨをＤＡＴＡ領域に載せたメッセージを生成し、これを通信コントローラ１５に供給する。このとき、下位カウント値ＣＬを０にリセットする。
【００３０】
一方、通信コントローラ１５を介して同期メッセージを受信した受信側のＥＣＵ１０では、同期メッセージのＤＡＴＡ領域の値ｒ＿ＣＨを、一時カウンタのカウント値ｔ＿ＣＨとして保存する。その後に受信した通常メッセージの検証を、一時カウンタのカウント値ｔ＿ＣＨを用いて実施し、検証ＯＫであれば、一時カウンタのカウント値ｔ＿ＣＨにより通信用カウンタの上位カウント値ＣＨを更新すると共に、下位カウント値ＣＬを０にリセットする。
【００３１】
［３．１．送信処理部］
ＥＣＵ１０の送信処理部１４１が実行する処理を、図６に示すフローチャートを用いて説明する。本処理は、ＥＣＵ１０の電源が投入されると起動する。
【００３２】
送信処理部１４１は、本処理が起動すると、Ｓ１１０にて、制御部１３からの送信要求があるか否かを判断する。送信要求がなければＳ１４０に移行し、他のＥＣＵ１０から再同期要求を受信したか否かを判断する。再同期要求を受信していなければ、Ｓ１１０に戻り、送信要求があるか、再同期要求を受信するまで待機する。
【００３３】
先のＳ１１０にて送信要求があると判断されると、Ｓ１２０にて、送信要求の内容に係るＣＡＮＩＤを特定し、そのＣＡＮＩＤで使用する通信用カウンタのカウント値ＣＴをインクリメント（ＣＴ←ＣＴ＋１）する。
【００３４】
続くＳ１３０では、送信要求とともに制御部１３から供給されるデータＰＤＵおよびＳ１２０でインクリメントされたカウント値ＣＴを用いて通常メッセージを生成（図４の送信側参照）、送信し、Ｓ１１０に戻る。
【００３５】
先のＳ１４０にて再同期要求を受信したと判断されると、Ｓ１５０にて、通信用カウンタの上位カウント値ＣＨを用いて同期メッセージを生成（図５の送信側参照）、送信し、Ｓ１１０に戻る。
【００３６】
［３．２．受信処理部］
ＥＣＵ１０の受信処理部１４２が実行する処理を、図７に示すフローチャートを用いて説明する。本処理は、ＥＣＵ１０の電源が投入されると起動する。
【００３７】
受信処理部１４２は、本処理が起動すると、Ｓ２１０にて、通常メッセージを受信したか否かを判断する。通常メッセージを受信していなければＳ２２０に進み、同期メッセージを受信したか否かを判断する。同期メッセージを受信していなければ、Ｓ２１０に戻り、通常メッセージまたは同期メッセージを受信するまで待機する。
【００３８】
なお、以下で説明するＳ２３０〜Ｓ３００の処理では、受信した通常メッセージまたは同期メッセージの対象となるＣＡＮＩＤについての通信用カウンタおよび一時カウンタに対する処理を表すものとする。
【００３９】
先のＳ２２０にて同期メッセージを受信したと判断されると、Ｓ２９０に移行し、同期メッセージのＤＡＴＡ領域に示されたデータｒ＿ＣＨを、一時カウンタのカウント値ｔ＿ＣＨとして記憶する。
【００４０】
続くＳ３００では、再同期中であることを表す同期中フラグＦをオン（Ｆ＝ＯＮ）に設定して、Ｓ２１０に戻る。
先のＳ２１０にて通常メッセージを受信したと判断されると、Ｓ２３０に進み、通常メッセージのＤＡＴＡ領域に示された値、自ＥＣＵ１０が保持する上位カウント値（Ｆ＝ＯＦＦの場合はＣＨ、Ｆ＝ＯＮの場合はｔ＿ＣＨ）とＣＮＴ領域に示された値ｒ＿ＣＬからなるカウント値ｒ＿ＣＴと、鍵保持部１２に保持された共通鍵Ｋとに基づいてＭＡＣを生成し、この生成したＭＡＣと通常メッセージのＭＡＣ領域に示された値とを比較することでＭＡＣ検証をする。その結果、ＭＡＣ検証ＮＧであればＳ２８０に進み、受信した通常メッセージの送信元のＥＣＵ１０に対して再同期要求を送信すると共に、受信した通常メッセージを破棄して、Ｓ２１０に戻る。一方、ＭＡＣ検証ＯＫであればＳ２４０に進む。
【００４１】
Ｓ２４０では、同期中フラグＦがオン（Ｆ＝ＯＮ）に設定されているか否かを判断する。Ｆ＝ＯＮであれば、Ｓ２５０に移行し、Ｆ＝ＯＦＦであればＳ２５０，Ｓ２６０をスキップしてＳ２７０に移行する。
【００４２】
Ｓ２５０では、一時カウンタのカウント値ｔ＿ＣＨにより、カウント値保持部１１に保持された上位カウント値ＣＨを更新すると共に、下位カウント値ＣＬを０にリセットする。
【００４３】
続くＳ２６０では、同期中フラグＦをオフに設定する。
続くＳ２７０では、通常メッセージは正常であるものとして、そのＤＡＴＡ領域に示されたデータを抽出し、これをデータＰＤＵとして制御部１３に供給すると共に、カウント値保持部１１に保持されたカウント値ＣＴをインクリメント（ＣＴ←ＣＴ＋１）して、Ｓ２１０に戻る。
【００４４】
つまり、同期メッセージを受信した場合、同期メッセージに示された値ｒ＿ＣＨを一時カウンタに記憶し、その後、受信した通常メッセージのＭＡＣ検証がＯＫであれば、一時カウンタの格納値ｔ＿ＣＨを、正式な上位カウント値ＣＨとしてカウント値格納部１１に格納する。
【００４５】
但し、ＭＡＣ検証をする際にＭＡＣの生成に用いるｒ＿ＣＴの上位カウント値として、前回の受信が同期メッセージ（即ちＦ＝ＯＮ）であれば、一時カウンタの格納値ｔ＿ＣＨを用い、前回の受信が通常メッセージ（即ちＦ＝ＯＦＦ）であれば、カウント値保持部１１の格納値ＣＨを用いる。
【００４６】
なお、送信処理部１４１，受信処理部１４２での処理は、その全部を論理回路等の組み合わせによって実現してもよいし、その一部または全部をコンピュータが実行する処理によって実現してもよい。
【００４７】
［４．動作］
以上説明したように通信システム１では、ＥＣＵ１０は、メッセージ種別（ＣＡＮＩＤ）毎に通信用カウンタを管理し、通信用カウンタを上位カウント値ＣＨと、下位カウント値ＣＬとに分け、通常メッセージを送信する送信側のＥＣＵ１０は、通常メッセージを送信する毎にカウント値ＣＴをインクリメントすると共に、通常メッセージに下位カウント値ＣＬを含めて送信する。
【００４８】
受信側のＥＣＵ１０は、通信用カウンタのＣＨ、ＣＬから構成されるカウント値ＣＴを保持し、通常メッセージを受信したときには、自ＥＣＵ１０が保持する上位カウント値ＣＨまたはｔ＿ＣＨと通常メッセージのＣＮＴ領域に示された値ｒ＿ＣＬとからなるカウント値ｒ＿ＣＴを用いてＭＡＣ検証を行う。この際、自らが保持するＣＴよりも大きいことを確認する。ＭＡＣ検証ＯＫの場合は、通常メッセージのＤＡＴＡ領域に示されたデータを受け入れる。一方、ＭＡＣ検証ＮＧの場合は、送信側のＥＣＵ１０に対して再同期要求を送信する。
【００４９】
再同期要求を受信した送信側のＥＣＵ１０は、ＤＡＴＡ領域に上位カウント値ＣＨを載せた同期メッセージを送信する。
同期メッセージを受信した受信側のＥＣＵ１０は、同期メッセージのＤＡＴＡ領域に示された値ｒ＿ＣＨを一時カウンタに保持し、その一時カウンタのカウント値ｔ＿ＣＨを用いて、通常メッセージのＭＡＣ検証に成功した場合、そのカウント値ｔ＿ＣＨを正式な上位カウント値ＣＨとしてカウント値保持部１１に格納する。
【００５０】
［５．効果］
以上説明したように、通信システム１では、通信用カウンタのカウント値ＣＴの再同期時に送信する同期メッセージにおいて、カウント値ＣＴの一部（上位カウント値ＣＨのみ）を送信するだけでなく、同期メッセージを用いて送信されたデータｒ＿ＣＨ（＝ｔ＿ＣＨ）の検証は、その後に受信される通常メッセージのＭＡＣ検証によって行っている。
【００５１】
このため、同期メッセージには検証用のデータを含める必要がなく、個々の通信フレームで送信可能なデータ量が少ないＣＡＮプロトコルであっても、再同期に必要な情報を単一の通信フレームで送信することがでる。その結果、再同期に必要な情報の安全性や信頼性を確保しつつ、再同期時の通信量を抑制することができる。
【００５２】
［６．他の実施形態］
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得る。
【００５３】
（１）上記実施形態では、同期メッセージにより、上位カウント値ＣＨの全体を送信しているが、送受信間でカウント値が不一致になったとしても、上位カウント値ＣＨの下位ビットのみがずれる可能性が高いため、図８（ａ）に示すように、上位カウント値ＣＨの中の下位数ビット（例えば、２〜３ビット）のみを送信するようにしてもよい。また、この場合、同期メッセージに、上位カウント値ＣＨ以外の他の情報を載せる余地ができるため、図８（ｂ）に示すように、上位カウント値ＣＨを用いて生成したＭＡＣの一部を載せることにより、受信側では、同期メッセージのみで上位カウント値の更新値の検証を完結させるようにしてもよい。
【００５４】
（２）上記実施形態における一つの構成要素が有する機能を複数の構成要素に分散させたり、複数の構成要素が有する機能を一つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換等してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【００５５】
（３）上述した通信システムの他、当該通信システムを構成するノード（ＥＣＵ）、該ノードのメッセージ処理部としてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、メッセージ認証に用いるカウンタの更新方法など、種々の形態で実現することもできる。
【符号の説明】
【００５６】
１…通信システム、３…通信路、１０…ノード（ＥＣＵ）、１１…カウント値保持部、１２…鍵保持部、１３…制御部、１４…メッセージ処理部、１５…通信コントローラ、１４１…送信処理部、１４２…受信処理部
【図１】
0006376073.tif 000002
【図２】
0006376073.tif 000003
【図３】
0006376073.tif 000004
【図４】
0006376073.tif 000005
【図５】
0006376073.tif 000006
【図６】
0006376073.tif 000007
【図７】
0006376073.tif 000008
【図８】
0006376073.tif 000009