(57)【要約】【課題】送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知できるようにメッセージを送信する電子機器、メッセージ送信方法およびプログラムを提供する。【解決手段】実施形態の電子機器は、メッセージを送信する電子機器であって、予め定めたメッセージの最長送信間隔ＴｌとＴｌにおいて許容されるメッセージの最大送信回数Ｍとに基づいてメッセージの送信タイミングを制御し、Ｍに基づいて定まるＮ回のカウントで巡回する送信カウンタの値を含むメッセージを送信する。【選択図】図９
2019126007.tif 000002
【特許請求の範囲】
【請求項１】
メッセージを送信する電子機器であって、
予め定めたメッセージの最長送信間隔ＴｌとＴｌにおいて許容されるメッセージの最大送信回数Ｍとに基づいてメッセージの送信タイミングを制御し、Ｍに基づいて定まるＮ回のカウントで巡回する送信カウンタの値を含むメッセージを送信する
ことを特徴とする電子機器。
【請求項２】
直前のメッセージ送信時刻からＴｌが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると前記送信カウンタの値を含むメッセージを送信し、
直前のメッセージ送信時刻からＴｌが経過する前に前記メッセージ送信イベントが発生した場合は、Ｍ個前のメッセージの送信時刻からＴｌが経過しているか否かを判断し、Ｔｌが経過していれば前記送信カウンタの値を含むメッセージをすぐに送信し、Ｔｌが経過していなければＴｌが経過するまで待って前記送信カウンタの値を含むメッセージを送信する
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
ＡＵＴＯＳＡＲの通信仕様のＭＩＸＥＤ送信モードでメッセージを送信する電子機器であって、
ＰＥＲＩＯＤＩＣ送信については、前記送信カウンタの値とＰＥＲＩＯＤＩＣ送信であることを示すフラグとを含むメッセージをＴｌ周期でＰＥＲＩＯＤＩＣ送信し、
ＤＩＲＥＣＴ送信については、直前のＰＥＲＩＯＤＩＣ送信の後にＤＩＲＥＣＴ送信が行われた回数がＭに達しているか否かを判断し、Ｍ未満であれば前記送信カウンタの値とＤＩＲＥＣＴ送信であることを示すフラグとを含むメッセージをＤＩＲＥＣＴ送信し、Ｍに達していればＤＩＲＥＣＴ送信を行わない
ことを特徴とする請求項１に記載の電子機器。
【請求項４】
ＡＵＴＯＳＡＲの通信仕様のＭＩＸＥＤ送信モードでメッセージを送信する電子機器であって、
ＰＥＲＩＯＤＩＣ送信については、直前のＤＩＲＥＣＴ送信またはＰＥＲＩＯＤＩＣ送信のメッセージに含まれる前記送信カウンタの値と同じ値を含むメッセージをＴｌ周期でＰＥＲＩＯＤＩＣ送信し、
ＤＩＲＥＣＴ送信については、直前のＰＥＲＩＯＤＩＣ送信の後にＤＩＲＥＣＴ送信が行われた回数がＭに達しているか否かを判断し、Ｍ未満であれば前記送信カウンタの値を含むメッセージをＤＩＲＥＣＴ送信し、Ｍに達していればＤＩＲＥＣＴ送信を行わない
ことを特徴とする請求項１に記載の電子機器。
【請求項５】
メッセージを送信する電子機器であって、
予め定めたメッセージの最長送信間隔ＴｌとＴｌよりも短い間隔で送信する短間隔メッセージに許容される最短送信間隔Ｔｓとに基づいてメッセージの送信タイミングを制御し、Ｔｌ／Ｔｓに基づいて定まるＮ回のカウントで巡回する送信カウンタの値を含むメッセージを送信する
ことを特徴とする電子機器。
【請求項６】
直前のメッセージ送信時刻からＴｌが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると前記送信カウンタの値を含むメッセージを送信し、
直前のメッセージ送信時刻からＴｌが経過する前に前記メッセージ送信イベントが発生した場合は、直前のメッセージ送信時刻からＴｓが経過しているか否かを判断し、Ｔｓが経過していれば前記送信カウンタの値を含むメッセージをすぐに送信し、Ｔｓが経過していなければＴｓが経過するまで待って前記送信カウンタの値を含むメッセージを送信する
ことを特徴とする請求項５に記載の電子機器。
【請求項７】
直前のメッセージ送信時刻からＴｌが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると前記送信カウンタの値を含むメッセージを送信し、
直前のメッセージ送信時刻からＴｌが経過する前に前記メッセージ送信イベントが発生した場合は、直前に送信したメッセージが前記短間隔メッセージでなければ前記送信カウンタの値を含むメッセージをすぐに送信し、直前に送信したメッセージが前記短間隔メッセージであれば、直前のメッセージ送信時刻からＴｓが経過しているか否かを判断し、Ｔｓが経過していれば前記送信カウンタの値を含むメッセージをすぐに送信し、Ｔｓが経過していなければＴｓが経過するまで待って前記送信カウンタの値を含むメッセージを送信する
ことを特徴とする請求項５に記載の電子機器。
【請求項８】
ＡＵＴＯＳＡＲの通信仕様のＭＩＸＥＤ送信モードでメッセージを送信する電子機器であって、
ＰＥＲＩＯＤＩＣ送信については、直前のＤＩＲＥＣＴ送信またはＰＥＲＩＯＤＩＣ送信のメッセージに含まれる前記送信カウンタの値と同じ値を含むメッセージをＴｌ周期でＰＥＲＩＯＤＩＣ送信し、
ＤＩＲＥＣＴ送信については、直前に送信したメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであれば前記送信カウンタの値を含むメッセージをすぐにＤＩＲＥＣＴ送信し、直前に送信したメッセージがＤＩＲＥＣＴ送信のメッセージであれば、直前のメッセージ送信時刻からＴｓが経過しているか否かを判断し、Ｔｓが経過していれば前記送信カウンタの値を含むメッセージをすぐにＤＩＲＥＣＴ送信し、Ｔｓが経過していなければ、Ｔｓが経過する前にＰＥＲＩＯＤＩＣ送信のタイミングにならない場合はＴｓが経過するまで待って前記送信カウンタの値を含むメッセージをＤＩＲＥＣＴ送信し、Ｔｓが経過する前にＰＥＲＩＯＤＩＣ送信のタイミングとなる場合はＤＩＲＥＣＴ送信を行わない
ことを特徴とする請求項５に記載の電子機器。
【請求項９】
メッセージを送信する方法であって、
予め定めたメッセージの最長送信間隔ＴｌとＴｌにおいて許容されるメッセージの最大送信回数Ｍとに基づいてメッセージの送信タイミングを制御し、Ｍに基づいて定まるＮ回のカウントで巡回する送信カウンタの値を含むメッセージを送信する
ことを特徴とするメッセージ送信方法。
【請求項１０】
メッセージを送信する方法であって、
予め定めたメッセージの最長送信間隔ＴｌとＴｌよりも短い間隔で送信する短間隔メッセージに許容される最短送信間隔Ｔｓとに基づいてメッセージの送信タイミングを制御し、Ｔｌ／Ｔｓに基づいて定まるＮ回のカウントで巡回する送信カウンタの値を含むメッセージを送信する
ことを特徴とするメッセージ送信方法。
【請求項１１】
メッセージを送信する電子機器で実行されるプログラムであって、
予め定めたメッセージの最長送信間隔ＴｌとＴｌにおいて許容されるメッセージの最大送信回数Ｍとに基づいてメッセージの送信タイミングを制御し、Ｍに基づいて定まるＮ回のカウントで巡回する送信カウンタの値を含むメッセージを送信する機能を前記電子機器に実現させるためのプログラム。
【請求項１２】
メッセージを送信する電子機器で実行されるプログラムであって、
予め定めたメッセージの最長送信間隔ＴｌとＴｌよりも短い間隔で送信する短間隔メッセージに許容される最短送信間隔Ｔｓとに基づいてメッセージの送信タイミングを制御し、Ｔｌ／Ｔｓに基づいて定まるＮ回のカウントで巡回する送信カウンタの値を含むメッセージを送信する機能を前記電子機器に実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器、メッセージ送信方法およびプログラムに関する。
【背景技術】
【０００２】
例えば自動車に搭載される車載ネットワークでは、メッセージの不正送信によって自動車が運転手の意図と異なる挙動をすることが知られている。こうしたネットワークへの攻撃に対する対策として、メッセージの不正送信を検知する技術の開発が進められている。例えば、周期送信されるメッセージの周期異常を検知することによりメッセージの不正送信を検知し、不正送信されたメッセージの破棄などを行う技術などが提案されている。
【０００３】
しかし、送信メッセージの周期性に着目した不正送信の検知方法では、送信間隔が変化するメッセージの不正送信を適切に検知できない。例えば、ＡＵＴＯＳＡＲ  ＣＯＭ（車載制御ソフトウェアの標準化団体であるＡＵＴＯＳＡＲで規定されたＥＣＵ間通信仕様）のＭＩＸＥＤ送信モードでは、周期的なＰＥＲＩＯＤＩＣ送信と不定期のＤＩＲＥＣＴ送信が混在するが、このような送信モードでメッセージを送信する場合、メッセージの送信間隔が変化するため、送信メッセージの周期性に着目した不正送信の検知方法ではメッセージの不正送信を適切に検知することができない。このため、送信間隔が変化するメッセージの不正送信を適切に検知できるようにすることが求められている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５９１９２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知できるようにメッセージを送信する電子機器、メッセージ送信方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態の電子機器は、メッセージを送信する電子機器であって、予め定めたメッセージの最長送信間隔ＴｌとＴｌにおいて許容されるメッセージの最大送信回数Ｍとに基づいてメッセージの送信タイミングを制御し、Ｍに基づいて定まるＮ回のカウントで巡回する送信カウンタの値を含むメッセージを送信する。
【図面の簡単な説明】
【０００７】
【図１】図１は、車載ネットワークの構成例を示す図である。
【図２】図２は、送信カウンタの値をもとにメッセージの不正送信を検知する方法を説明する図である。
【図３】図３は、メッセージのデータ構造の一例を示す図である。
【図４】図４は、実施形態の概要を説明する図である。
【図５】図５は、正規送信ＥＣＵのハードウェア構成例を示すブロック図である。
【図６】図６は、正規送信ＥＣＵの機能的な構成例を示すブロック図である。
【図７】図７は、送信履歴テーブルのデータ構造の一例を示す図である。
【図８】図８は、第１実施形態の概要を説明する図である。
【図９】図９は、第１実施形態の送信制御部による処理手順の一例を示すフローチャートである。
【図１０】図１０は、受信ＥＣＵの機能的な構成例を示すブロック図である。
【図１１】図１１は、受信履歴テーブルのデータ構造の一例を示す図である。
【図１２】図１２は、第１実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。
【図１３】図１３は、第２実施形態の概要を説明する図である。
【図１４】図１４は、第２実施形態の送信制御部による処理手順の一例を示すフローチャートである。
【図１５】図１５は、第２実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。
【図１６】図１６は、第３実施形態の概要を説明する図である。
【図１７】図１７は、送信履歴テーブルのデータ構造の一例を示す図である。
【図１８】図１８は、第３実施形態の送信制御部による処理手順の一例を示すフローチャートである。
【図１９】図１９は、受信履歴テーブルのデータ構造の一例を示す図である。
【図２０】図２０は、第３実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。
【図２１】図２１は、メッセージのデータ構造の一例を示す図である。
【図２２】図２２は、第４実施形態の送信制御部による処理手順の一例を示すフローチャートである。
【図２３】図２３は、第４実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。
【図２４】図２４は、第５実施形態の概要を説明する図である。
【図２５】図２５は、第５実施形態の送信制御部による処理手順の一例を示すフローチャートである。
【図２６】図２６は、第５実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。
【図２７】図２７は、第６実施形態の概要を説明する図である。
【図２８】図２８は、第６実施形態の送信制御部による処理手順の一例を示すフローチャートである。
【図２９】図２９は、第６実施形態の不正送信検知部による処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、実施形態に係る電子機器、メッセージ送信方法およびプログラムを、図面を参照して詳細に説明する。以下では、自動車に搭載される車載ネットワークにおいてメッセージの送信を行う電子制御ユニット（ＥＣＵ）への適用例を例示するが、適用可能な電子機器はこれに限定されるものではなく、送信間隔が変化するメッセージを送信する様々な電子機器に対して有効に適用できる。
【０００９】
＜実施形態の概要＞
車載ネットワークは、自動車に設けられた多数のＥＣＵ間で、メッセージ識別子により識別されるメッセージを送受信するネットワークである。この車載ネットワークへの攻撃として、正規のメッセージと同じメッセージ識別子を持つ「なりすまし」メッセージを不正送信する攻撃が知られている。本実施形態は、このようなメッセージの不正送信を適切かつ簡便に検知できる仕組みを提案する。以下では、正規のメッセージを送信するＥＣＵを「正規送信ＥＣＵ」、メッセージを受信するＥＣＵを「受信ＥＣＵ」、メッセージを不正送信するＥＣＵを「不正送信ＥＣＵ」と呼ぶ。
【００１０】
図１は、本実施形態において想定する車載ネットワークの構成例を示す図である。本実施形態では、図１に示すように、正規送信ＥＣＵ１０と受信ＥＣＵ２０に加え、不正送信ＥＣＵ３０がネットワークバス４０に接続された車載ネットワークを想定する。
【００１１】
正規送信ＥＣＵ１０は、受信ＥＣＵ２０に伝えるべきシグナルを含むユーザデータの先頭に、自身が送信するメッセージに対して割り当てられた所定のメッセージ識別子を付加したメッセージを、ネットワークバス４０上に送信する。正規送信ＥＣＵ１０は、シグナルの変化などのメッセージ送信イベントが発生したときにメッセージの送信を行うことに加え、シグナルの変化がない場合でも、少なくとも予め定めた最長送信間隔Ｔｌで１回はメッセージの送信を行う。最長送信間隔Ｔｌは、直前のメッセージ送信時刻から起算されてもよいし、上述のＡＵＴＯＳＡＲ  ＣＯＭのＭＩＸＥＤ送信モードにおけるＰＥＲＩＯＤＩＣ送信の間隔であってもよい。このようなメッセージの送信方法は、特に、シグナルの変化の頻度が比較的低い場合に、通信量の削減とシグナル変化に対する応答性とを両立させる方法として有効である。
【００１２】
不正送信ＥＣＵ３０は、ネットワークバス４０上に送信されるメッセージをモニタし、任意のタイミングで、正規送信ＥＣＵ１０が送信したメッセージと同じメッセージ識別子を持つメッセージを、ネットワークバス４０上に不正送信する。
【００１３】
受信ＥＣＵ２０は、ネットワークバス４０上に送信されるメッセージをモニタし、自身が受信すべきメッセージ識別子を持つメッセージがネットワークバス４０上に送信されると、このメッセージを受信する。受信ＥＣＵ２０が受信するメッセージには、正規送信ＥＣＵ１０が送信したメッセージに加え、不正送信ＥＣＵ３０が不正送信したメッセージも含まれる。受信ＥＣＵ２０は、このようなメッセージの不正送信を検知する機能を持つ。
【００１４】
実施形態に係る電子機器、メッセージ送信方法およびプログラムは、一例として、図１に示す構成の車載ネットワークにおける正規送信ＥＣＵ１０に適用される。正規送信ＥＣＵ１０は、上述のように送信間隔が変化するメッセージを送信するが、このような送信間隔が変化するメッセージの不正送信を受信ＥＣＵ２０において適切かつ簡便に検知できるように、メッセージの送信を行う。
【００１５】
送信間隔が変化するメッセージの不正送信を検知する方法として、送信カウンタを用いる方法がある。送信カウンタは、メッセージを送信するたびに値をインクリメント（＋１）するカウンタである。メッセージに送信カウンタの値（送信カウンタ値）を含めて送信することで、受信側では送信カウンタ値の不連続性からメッセージの不正送信が生じたことを検知できる。例えば図２に示すように、不正送信ＥＣＵ３０が、送信カウンタ値が１のメッセージが送信されたことを検知して、送信カウンタ値が２のメッセージを不正送信したとする。この場合、受信ＥＣＵ２０は、正規送信ＥＣＵ１０が送信した送信カウンタ値が２のメッセージを受信した時点で、受信したメッセージの送信カウンタ値に不連続が生じていることが分かり、メッセージの不正送信を検知できる。
【００１６】
図３は、送信カウンタを用いてメッセージの不正送信を検知する場合のメッセージのデータ構造の一例を示す図である。送信カウンタを用いる場合、図３に示すように、メッセージのユーザデータの領域の一部が送信カウンタ値を格納する領域に割り当てられる。ここで、送信カウンタ値のサイズが大きいとユーザデータの領域が圧迫されるため、Ｎ（一般にＮ＝２ｎ）回のカウントで巡回するカウンタ（モジュロＮカウンタ）を送信カウンタとして用い、送信カウンタ値のサイズをできるだけ小さくすることが望ましい。
【００１７】
しかし、モジュロＮカウンタを送信カウンタとして用いる場合、送信カウンタ値の不連続性から不正送信を検知できなくなる場合がある。例えば図４（ａ）に示すように、正規送信ＥＣＵ１０が最長送信間隔Ｔｌでメッセージを送信する間に、不正送信ＥＣＵ３０が、送信カウンタ値が連続するようにＮ個のメッセージを不正送信したとする。この場合、正規送信、Ｎ個の不正送信、正規送信の順番で受信ＥＣＵ２０が受信するメッセージは、送信カウンタ値が連続することになるため、不正送信を検知できない。
【００１８】
そこで、本実施形態では、図４（ｂ）に示すように、最長送信間隔Ｔｌにおいて許容されるメッセージの最大送信回数Ｍ（Ｍ≦Ｎ）、あるいは、最長送信間隔Ｔｌよりも短い間隔で送信するメッセージ（短間隔メッセージ）に許容される最短送信間隔Ｔｓ（Ｔｓ≧Ｔｌ／Ｎ）を定めるようにしている。そして、正規送信ＥＣＵ１０は、最大送信回数Ｍまたは最短送信間隔Ｔｓを用いてメッセージの送信タイミングを制御し、受信ＥＣＵ２０は、送信カウンタ値の連続性に加えて、最大送信回数Ｍまたは最短送信間隔Ｔｓを用いてメッセージの不正送信を検知する。なお、実際には通信のアービトレーションなどによりメッセージの送信間隔にばらつきが生じるため、最長送信間隔Ｔｌや最短送信間隔Ｔｓに変動を吸収するパラメータを加えてもよい。
【００１９】
例えば、正規送信ＥＣＵ１０が最長送信間隔Ｔｌでメッセージを送信する間に、不正送信ＥＣＵ３０が、送信カウンタ値が連続するようにＮ個のメッセージを不正送信したとする。この場合、図４（ｃ）に示すように、少なくとも１つのメッセージ送信間隔Ｔが最短送信間隔Ｔｓよりも短くなるため、受信ＥＣＵ２０は、受信したメッセージの送信カウンタ値が連続していたとしても、最短送信間隔Ｔｓの違反によりメッセージの不正送信を検知できる。また、受信ＥＣＵ２０が、正規送信ＥＣＵ１０が送信した送信カウンタ値が０のメッセージを受信してから最長送信間隔Ｔｌの間で受信するメッセージの数は、不正送信ＥＣＵ３０が送信したＮ個のメッセージと、最長送信間隔Ｔｌで正規送信ＥＣＵ１０が送信した送信カウンタ値が１のメッセージとを合せてＮ＋１になる。このため、受信ＥＣＵ２０は、受信したメッセージの送信カウンタ値が連続していたとしても、最大送信回数Ｍの違反によりメッセージの不正送信を検知できる。
【００２０】
以下では、より具体的な実施形態について説明する。なお、以下に示す各実施形態においては、車載ネットワークの通信規格としてＣＡＮ（Controller  Area  Network）を用いることを想定する。ＣＡＮは、メッセージ識別子（ＣＡＮ＿ＩＤ）で識別されるメッセージを送受信する車載ネットワークの通信規格として一般的な規格である。ただし、メッセージ識別子で識別されるメッセージを送受信する他の通信規格を用いてもよい。また、以下に説明する各実施形態において、同様の機能を持つ構成要素については同一の符号を付して、重複した説明を適宜省略する。
【００２１】
＜第１実施形態＞
まず、正規送信ＥＣＵ１０の構成について説明する。図５は、正規送信ＥＣＵ１０のハードウェア構成例を示すブロック図である。正規送信ＥＣＵ１０は、例えば図５に示すように、ＬＳＩ（Large-Scale  Integration）１１と、ネットワークバス４０に接続されるトランシーバ１２とを備える。トランシーバ１２は、ネットワークバス４０における差動電位をデジタル信号に変換したり、デジタル信号を差動電位に変換したりといったアナログ処理を行う。
【００２２】
ＬＳＩ１１は、デジタル信号処理を行う集積回路（マイクロコンピュータ）であり、ＣＰＵ１３、ＲＡＭ１４、ＲＯＭ１５、通信コントローラ１６、およびタイマ１７などが実装されている。ＣＰＵ１３は、所定のプログラムを実行して正規送信ＥＣＵ１０全体の動作を制御するプロセッサである。ＲＡＭ１４は、ＣＰＵ１３がプログラムを実行する際のワークエリアとなるメモリであり、ＲＯＭ１５は、ＣＰＵ１３が実行するプログラムやデータを格納するメモリである。通信コントローラ１６は、トランシーバ１２と協働して、ネットワークバス４０へのメッセージの送信を行うためのコントローラである。タイマ１７は、正規送信ＥＣＵ１０で扱う時間の計測を行い、例えば、送信タイミングの判断や送信タイムスタンプの記録などのために時間を計測する。
【００２３】
実施形態に係る電子機器としての機能は、一例として、上述した正規送信ＥＣＵ１０のハードウェアとソフトウェア（プログラム）との協働により実現することができる。すなわち、正規送信ＥＣＵ１０を実施形態に係る電子機器として機能させるためのプログラムをＲＯＭ１５に格納し、ＣＰＵ１３が、ＲＡＭ１４をワークエリアとして利用して、ＲＯＭ１５に格納されたプログラムを読み出して実行することにより、正規送信ＥＣＵ１０を実施形態に係る電子機器として機能させることができる。
【００２４】
図６は、実施形態に係る電子機器としての機能を持つ正規送信ＥＣＵ１０の機能的な構成例を示すブロック図である。正規送信ＥＣＵ１０は、機能的な構成要素として、例えば図６に示すように、送信部５１と、送信制御部５２と、シグナル更新部５５とを備える。また、正規送信ＥＣＵ１０は、送信制御部５２が読み書きする送信履歴テーブル５３と、送信制御部５２が参照するシグナルテーブル５４とを備える。
【００２５】
送信部５１は、通信コントローラ１６を制御して、ネットワークバス４０にトランシーバ１２を介してメッセージを送信する機能である。送信制御部５２は、送信部５１が送信するメッセージをバッファに設定し、適切なタイミングで送信部５１に送信の指示を行う。送信部５１が送信するメッセージは、上述のようにモジュロＮカウンタとして構成される送信カウンタの値（送信カウンタ値）を含む。送信制御部５２は、直前に送信したメッセージの送信カウンタ値をインクリメント（＋１）してユーザデータに設定し、この送信カウンタ値を含むメッセージをバッファに設定し、適切なタイミングで送信部５１に送信の指示を行う。なお、送信カウンタはモジュロＮカウンタであるためＮカウントで巡回する。ここで、インクリメントとは、送信カウンタ値がＮ−１から巡回して０に戻ることも含む。
【００２６】
送信履歴テーブル５３は、メッセージ識別子が同一のメッセージごとに、少なくとも送信済みのメッセージの送信カウンタ値と送信タイムスタンプとを保持する。送信履歴テーブル５３の一例を図７に示す。送信制御部５２は、送信部５１がメッセージを送信するたびに、そのメッセージに含まれる送信カウンタ値と、そのメッセージの送信時刻を示す送信タイムスタンプとの組み合わせを、新たなレコードとして送信履歴テーブル５３に追加する。なお、送信履歴テーブル５３に所定数（例えばＭ個）以上のレコードが溜まった場合は、古いレコードから削除するようにしてもよい。
【００２７】
シグナルテーブル５４は、正規送信ＥＣＵ１０がモニタする各種シグナル（メッセージにより受信ＥＣＵ２０に伝えるべき各種シグナル）の最新の値を保持する。シグナルの変化が検知されると、シグナル更新部５５が、シグナルテーブル５４の該当するシグナルの値を、変化した後の値に更新する。
【００２８】
なお、以上説明した正規送信ＥＣＵ１０の構成は、基本的に、後述の各実施形態においても共通である。ただし、送信制御部５２がメッセージの送信タイミングを制御する手法が、実施形態ごとに異なっている。
【００２９】
本実施形態の正規送信ＥＣＵ１０では、送信制御部５２が、予め定めたメッセージの最長送信間隔Ｔｌと、Ｔｌにおいて許容されるメッセージの最大送信回数Ｍ（Ｍ≦Ｎ）とに基づいて、メッセージの送信タイミングを制御する。すなわち、本実施形態の正規送信ＥＣＵ１０は、直前のメッセージ送信時刻からＴｌが経過するまでの間にシグナルの変化などのメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると、モジュロＮの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からＴｌが経過する前にメッセージ送信イベントが発生した場合は、Ｍ個前のメッセージの送信時刻からＴｌが経過しているか否かを判断し、Ｍ個前のメッセージの送信時刻からＴｌが経過していれば、モジュロＮの送信カウンタ値を含むメッセージをすぐに送信する。一方、Ｍ個前のメッセージの送信時刻からＴｌが経過していなければ、Ｔｌが経過するまで待って、モジュロＮの送信カウンタ値を含むメッセージを送信する。
【００３０】
本実施形態では、シグナルの変化などのメッセージ送信イベントが高頻度で発生する場合、最長送信間隔Ｔｌの間にＭ回までのメッセージの送信が許容され、Ｍ＋１回目のメッセージの送信は禁止される。したがって、図８に示すように、Ｍ個前のメッセージ送信時刻から最長送信間隔Ｔｌが経過する前にメッセージ送信イベントが発生したとしても、Ｔｌが経過するまでの間は送信禁止期間となり、Ｔｌが経過したときにメッセージの送信が許容される。これにより、不正送信ＥＣＵ３０が送信カウンタ値に不連続が生じないようにメッセージの不正送信を行った場合には、最大送信回数Ｍの違反が生じ、受信ＥＣＵ２０がこの不正送信を検知することができる。
【００３１】
図９は、本実施形態の送信制御部５２による処理手順の一例を示すフローチャートである。送信制御部５２は、送信履歴テーブル５３とシグナルテーブル５４とを参照しながら、この図９のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
【００３２】
送信制御部５２は、まず、直前のメッセージ送信時刻からの経過時間Ｔｗが最長送信間隔Ｔｌに達したか否かを判定し（ステップＳ１０１）、直前のメッセージ送信時刻からの経過時間Ｔｗが最長送信間隔Ｔｌに達していなければ（ステップＳ１０１：Ｎｏ）、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する（ステップＳ１０２）。この判定は、例えば、送信制御部５２がシグナルテーブル５４を参照することで行ってもよいし、シグナルの変化が検知されたときにシグナル更新部５５が送信制御部５２に通知する構成として、この通知の有無に基づいて行ってもよい。
【００３３】
ここで、メッセージ送信イベントが発生していなければ（ステップＳ１０２：Ｎｏ）、ステップＳ１０１に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は（ステップＳ１０２：Ｙｅｓ）、送信制御部５２は、次に、Ｍ個前のメッセージ送信時刻からの経過時間Ｔｚが最長送信間隔Ｔｌに達したか否かを判定する（ステップＳ１０３）。そして、ＴｚがＴｌに達していれば（ステップＳ１０３：Ｙｅｓ）、送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ１０４）。
【００３４】
一方、ＴｚがＴｌに達していなければ（ステップＳ１０３：Ｎｏ）、送信制御部５２は、ＴｚがＴｌに達するまで待機し、ＴｚがＴｌに達した段階で送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ１０４）。また、ステップＳ１０１の判定で、ＴｗがＴｌに達している場合（ステップＳ１０１：Ｙｅｓ）、送信制御部５２は送信部５１に対して送信の指示を行い、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ１０４）。
【００３５】
本実施形態では、正規送信ＥＣＵ１０の送信制御部５２が以上のようにメッセージの送信タイミングを制御することにより、受信ＥＣＵ２０が、送信カウンタ値の不連続性または最大送信回数Ｍの違反により、メッセージの不正送信を検知することができる。
【００３６】
ここで、不正送信を検知する機能を持つ受信ＥＣＵ２０について説明する。図１０は、受信ＥＣＵ２０の機能的な構成例を示すブロック図である。受信ＥＣＵ２０は、機能的な構成要素として、例えば図１０に示すように、受信部６１と、受信制御部６２と、不正送信検知部６４とを備える。また、受信ＥＣＵ２０は、受信制御部６２により書き込まれて不正送信検知部６４により参照される受信履歴テーブル６３を備える。なお、受信ＥＣＵ２０のハードウェア構成は正規送信ＥＣＵ１０と同様（図５参照）であるため、説明を省略する。
【００３７】
受信部６１は、通信コントローラ１６を制御して、ネットワークバス４０からトランシーバ１２を介してメッセージを受信する機能である。受信制御部６２は、ネットワークバス４０に送信されたメッセージのメッセージ識別子をもとに、このメッセージを受信すべきか否かを判断し、受信すべきメッセージであれば受信部６１に対して受信の指示を行う。
【００３８】
受信履歴テーブル６３は、メッセージ識別子が同一のメッセージごとに、少なくとも受信済みのメッセージの送信カウンタ値と受信タイムスタンプとを保持する。受信履歴テーブル６３の一例を図１１に示す。受信制御部６２は、受信部６１がメッセージを送信するたびに、そのメッセージに含まれる送信カウンタ値と、そのメッセージの受信時刻を示す受信タイムスタンプとの組み合わせを、新たなレコードとして受信履歴テーブル６３に追加する。なお、受信履歴テーブル６３に所定数（例えばＭ個）以上のレコードが溜まった場合は、古いレコードから削除するようにしてもよい。
【００３９】
不正送信検知部６４は、受信したメッセージに含まれる送信カウンタ値の不連続性または最大送信回数Ｍの違反を検知することで、送信間隔が変化するメッセージの不正送信を検知する。最大送信回数Ｍの違反は、正規送信ＥＣＵ１０と共有する最長送信間隔Ｔｌと最大送信回数Ｍとに基づいて判断される。
【００４０】
なお、以上説明した受信ＥＣＵ２０の構成は、基本的に、後述の各実施形態においても共通である。ただし、不正送信検知部６４が不正送信を検知する手順が、実施形態ごとに異なっている。
【００４１】
図１２は、本実施形態の不正送信検知部６４による処理手順の一例を示すフローチャートである。不正送信検知部６４は、受信部６１によりメッセージが受信されるたびに、受信履歴テーブル６３を参照しながら、この図１２のフローチャートで示す一連の処理を繰り返し実行する。
【００４２】
受信部６１によりメッセージが受信されると、不正送信検知部６４は、まず、今回受信したメッセージの受信時刻とＭ個前のメッセージの受信時刻との間隔Ｔｚ’が最長送信間隔Ｔｌ以上であるか否かを判定する（ステップＳ２０１）。そして、Ｔｚ’がＴｌ以上であれば（ステップＳ２０１：Ｙｅｓ）、不正送信検知部６４は、次に、今回受信したメッセージの送信カウンタ値Ｃｍ０が、直前に受信したメッセージの送信カウンタ値Ｃｍ１からインクリメントされているか否かを判定する（ステップＳ２０２）。
【００４３】
そして、Ｃｍ０がＣｍ１からインクリメントされていれば（ステップＳ２０２：Ｙｅｓ）、不正送信検知部６４は、不正送信なしと判断する（ステップＳ２０３）。一方、ステップＳ２０１の判定で、Ｔｚ’がＴｌ未満であった場合（ステップＳ２０１：Ｎｏ）、または、ステップＳ２０２の判定で、Ｃｍ０がＣｍ１からインクリメントされていない場合は（ステップＳ２０２：Ｎｏ）、不正送信検知部６４は、不正送信ありと判断する（ステップＳ２０４）。
【００４４】
以上説明したように、本実施形態の正規送信ＥＣＵ１０は、直前のメッセージ送信時刻から最長送信間隔Ｔｌが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると、モジュロＮの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からＴｌが経過する前にメッセージ送信イベントが発生した場合は、Ｍ個前のメッセージの送信時刻からＴｌが経過しているか否かを判断し、Ｍ個前のメッセージの送信時刻からＴｌが経過していれば、モジュロＮの送信カウンタ値を含むメッセージをすぐに送信する。一方、Ｍ個前のメッセージの送信時刻からＴｌが経過していなければ、Ｔｌが経過するまで待って、モジュロＮの送信カウンタ値を含むメッセージを送信する。したがって、受信ＥＣＵ２０は、送信カウンタ値の不連続性または最大送信回数Ｍの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
【００４５】
＜第２実施形態＞
次に、第２実施形態について説明する。本実施形態では、正規送信ＥＣＵ１０の送信制御部５２が、予め定めたメッセージの最長送信間隔Ｔｌと、Ｔｌよりも短い間隔で送信する短間隔メッセージに許容される最短送信間隔Ｔｓ（Ｔｓ≧Ｔｌ／Ｎ）とに基づいて、メッセージの送信タイミングを制御する。すなわち、本実施形態の正規送信ＥＣＵ１０は、直前のメッセージ送信時刻からＴｌが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると、モジュロＮの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からＴｌが経過するまでの間にメッセージ送信イベントが発生した場合は、直前のメッセージの送信時刻から最短送信間隔Ｔｓが経過しているか否かを判断し、直前のメッセージの送信時刻からＴｓが経過していれば、モジュロＮの送信カウンタ値を含むメッセージをすぐに送信する。一方、直前のメッセージの送信時刻からＴｓが経過していなければ、Ｔｓが経過するまで待って、モジュロＮの送信カウンタ値を含むメッセージを送信する。
【００４６】
本実施形態では、シグナルの変化などのメッセージ送信イベントが高頻度で発生する場合、最短送信間隔Ｔｓよりも短い間隔で短間隔メッセージを送信することが禁止される。したがって、図１３に示すように、直前のメッセージ送信時刻から最短送信間隔Ｔｓが経過する前にメッセージ送信イベントが発生したとしても、Ｔｓが経過するまでの間は送信禁止期間となり、Ｔｓが経過したときにメッセージの送信が許容される。これにより、不正送信ＥＣＵ３０が送信カウンタ値に不連続が生じないようにメッセージの不正送信を行った場合には、最短送信間隔Ｔｓの違反が生じ、受信ＥＣＵ２０がこの不正送信を検知することができる。
【００４７】
図１４は、本実施形態の送信制御部５２による処理手順の一例を示すフローチャートである。送信制御部５２は、送信履歴テーブル５３とシグナルテーブル５４とを参照しながら、この図１４のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
【００４８】
送信制御部５２は、まず、直前のメッセージ送信時刻からの経過時間Ｔｗが最長送信間隔Ｔｌに達したか否かを判定し（ステップＳ３０１）、直前のメッセージ送信時刻からの経過時間Ｔｗが最長送信間隔Ｔｌに達していなければ（ステップＳ３０１：Ｎｏ）、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する（ステップＳ３０２）。
【００４９】
ここで、メッセージ送信イベントが発生していなければ（ステップＳ３０２：Ｎｏ）、ステップＳ３０１に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は（ステップＳ３０２：Ｙｅｓ）、送信制御部５２は、次に、直前のメッセージ送信時刻からの経過時間Ｔｗが最短送信間隔Ｔｓに達したか否かを判定する（ステップＳ３０３）。そして、ＴｗがＴｓに達していれば（ステップＳ３０３：Ｙｅｓ）、送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ３０４）。
【００５０】
一方、ＴｗがＴｓに達していなければ（ステップＳ３０３：Ｎｏ）、送信制御部５２は、ＴｗがＴｓに達するまで待機し、ＴｗがＴｓに達した段階で送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ３０４）。また、ステップＳ３０１の判定で、ＴｗがＴｌに達している場合（ステップＳ３０１：Ｙｅｓ）、送信制御部５２は送信部５１に対して送信の指示を行い、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ３０４）。
【００５１】
本実施形態では、正規送信ＥＣＵ１０の送信制御部５２が以上のようにメッセージの送信タイミングを制御することにより、受信ＥＣＵ２０が、送信カウンタ値の不連続性または最短送信間隔Ｔｓの違反により、メッセージの不正送信を検知することができる。
【００５２】
図１５は、本実施形態の不正送信検知部６４による処理手順の一例を示すフローチャートである。不正送信検知部６４は、受信部６１によりメッセージが受信されるたびに、受信履歴テーブル６３を参照しながら、この図１５のフローチャートで示す一連の処理を繰り返し実行する。
【００５３】
受信部６１によりメッセージが受信されると、不正送信検知部６４は、まず、直前に受信したメッセージの受信時刻と今回受信したメッセージの受信時刻との間隔Ｔｗ’が最短送信間隔Ｔｓ以上であるか否かを判定する（ステップＳ４０１）。そして、Ｔｗ’がＴｓ以上であれば（ステップＳ４０１：Ｙｅｓ）、不正送信検知部６４は、次に、今回受信したメッセージの送信カウンタ値Ｃｍ０が、直前に受信したメッセージの送信カウンタ値Ｃｍ１からインクリメントされているか否かを判定する（ステップＳ４０２）。
【００５４】
そして、Ｃｍ０がＣｍ１からインクリメントされていれば（ステップＳ４０２：Ｙｅｓ）、不正送信検知部６４は、不正送信なしと判断する（ステップＳ４０３）。一方、ステップＳ４０１の判定で、Ｔｗ’がＴｓ未満であった場合（ステップＳ４０１：Ｎｏ）、または、ステップＳ４０２の判定で、Ｃｍ０がＣｍ１からインクリメントされていない場合は（ステップＳ４０２：Ｎｏ）、不正送信検知部６４は、不正送信ありと判断する（ステップＳ４０４）。
【００５５】
以上説明したように、本実施形態の正規送信ＥＣＵ１０は、直前のメッセージ送信時刻から最長送信間隔Ｔｌが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると、モジュロＮの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からＴｌが経過する前にメッセージ送信イベントが発生した場合は、直前のメッセージの送信時刻から最短送信間隔Ｔｓが経過しているか否かを判断し、直前のメッセージの送信時刻からＴｓが経過していれば、モジュロＮの送信カウンタ値を含むメッセージをすぐに送信する。一方、直前のメッセージの送信時刻からＴｓが経過していなければ、Ｔｓが経過するまで待って、モジュロＮの送信カウンタ値を含むメッセージを送信する。したがって、受信ＥＣＵ２０は、送信カウンタ値の不連続性または最短送信間隔Ｔｓの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
【００５６】
＜第３実施形態＞
次に、第３実施形態について説明する。本実施形態の送信制御部５２は、上述の第２実施形態と同様に最長送信間隔Ｔｌと最短送信間隔Ｔｓとに基づいてメッセージの送信タイミングを制御するが、最長送信間隔Ｔｌでメッセージを送信した直後の短間隔メッセージについては、最短送信間隔Ｔｓの制限を適用しない。すなわち、本実施形態の正規送信ＥＣＵ１０は、直前のメッセージ送信時刻からＴｌが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると、モジュロＮの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からＴｌが経過するまでの間にメッセージ送信イベントが発生した場合は、直前に送信したメッセージが短間隔メッセージでなければ（最長送信間隔Ｔｌで送信したメッセージであれば）モジュロＮの送信カウンタ値を含むメッセージをすぐに送信し、直前に送信したメッセージが短間隔メッセージであれば、直前のメッセージの送信時刻から最短送信間隔Ｔｓが経過しているか否かを判断する。そして、直前のメッセージの送信時刻からＴｓが経過していれば、モジュロＮの送信カウンタ値を含むメッセージをすぐに送信し、直前のメッセージの送信時刻からＴｓが経過していなければ、Ｔｓが経過するまで待って、モジュロＮの送信カウンタ値を含むメッセージを送信する。
【００５７】
本実施形態では、最長送信間隔Ｔｌでメッセージを送信した直後の短間隔メッセージに最短送信間隔Ｔｓの制限が適用されない。したがって、最短送信間隔Ｔｓは、図１６に示すように、直前の短間隔メッセージの送信時刻から起算され、最短送信間隔Ｔｓが経過する前にメッセージ送信イベントが発生したとしても、Ｔｓが経過するまでの間は送信禁止期間となり、Ｔｓが経過したときにメッセージの送信が許容される。なお、本実施形態における最短送信間隔Ｔｓは、送信カウンタの巡回するカウント数Ｎと最長送信間隔Ｔｌとの関係から、Ｔｓ≧Ｔｌ／（Ｎ−１）と定義される。これにより、不正送信ＥＣＵ３０が送信カウンタ値に不連続が生じないようにメッセージの不正送信を行った場合には、最短送信間隔Ｔｓの違反が生じ、受信ＥＣＵ２０がこの不正送信を検知することができる。
【００５８】
本実施形態の正規送信ＥＣＵ１０は、直前に送信したメッセージが最長送信間隔Ｔｌで送信したメッセージか否かを判断する必要がある。そこで、例えば図１７に示すように、送信履歴テーブル５３に最長送信間隔Ｔｌでの送信か否かを示す最長間隔送信フラグの値を格納するカラムを追加し、送信したメッセージが最長送信間隔Ｔｌで送信したメッセージであれば１、そうでなければ０を格納する。
【００５９】
図１８は、本実施形態の送信制御部５２による処理手順の一例を示すフローチャートである。送信制御部５２は、送信履歴テーブル５３とシグナルテーブル５４とを参照しながら、この図１８のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
【００６０】
送信制御部５２は、まず、直前のメッセージ送信時刻からの経過時間Ｔｗが最長送信間隔Ｔｌに達したか否かを判定し（ステップＳ５０１）、直前のメッセージ送信時刻からの経過時間Ｔｗが最長送信間隔Ｔｌに達していなければ（ステップＳ５０１：Ｎｏ）、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する（ステップＳ５０２）。
【００６１】
ここで、メッセージ送信イベントが発生していなければ（ステップＳ５０２：Ｎｏ）、ステップＳ５０１に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は（ステップＳ５０２：Ｙｅｓ）、送信制御部５２は、次に、直前に送信したメッセージの最長間隔送信フラグの値が１であるか否かを判定する（ステップＳ５０３）。そして、直前に送信したメッセージの最長間隔送信フラグの値が０であれば（ステップＳ５０３：Ｎｏ）、直前のメッセージ送信時刻からの経過時間Ｔｗが最短送信間隔Ｔｓに達したか否かを判定し（ステップＳ５０４）、ＴｗがＴｓに達していれば（ステップＳ５０４：Ｙｅｓ）、送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ５０５）。
【００６２】
一方、ＴｗがＴｓに達していなければ（ステップＳ５０４：Ｎｏ）、送信制御部５２は、ＴｗがＴｓに達するまで待機し、ＴｗがＴｓに達した段階で送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ５０５）。また、ステップＳ５０１の判定で、ＴｗがＴｌに達している場合（ステップＳ５０１：Ｙｅｓ）、あるいは、ステップＳ５０３の判定で、直前に送信したメッセージの最長間隔送信フラグの値が１であれば（ステップＳ５０３：Ｙｅｓ）、送信制御部５２は送信部５１に対して送信の指示を行い、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ５０５）。
【００６３】
本実施形態では、正規送信ＥＣＵ１０の送信制御部５２が以上のようにメッセージの送信タイミングを制御することにより、受信ＥＣＵ２０が、送信カウンタ値の不連続性または最短送信間隔Ｔｓの違反により、メッセージの不正送信を検知することができる。
【００６４】
本実施形態の受信ＥＣＵ２０は、直前に受信したメッセージが最長送信間隔Ｔｌで送信されたメッセージか否かを判断する必要がある。そこで、例えば図１９に示すように、受信履歴テーブル６３に最長送信間隔Ｔｌでの送信か否かを示す最長間隔送信検知フラグの値を格納するカラムを追加し、メッセージの受信時に前回受信したメッセージとの受信時刻の差分を求め、前回受信したメッセージとの受信時刻の差分がＴｌ＋α以上であれば１、そうでなければ０を格納する。ここでαは、メッセージの送信間隔の変動を吸収するパラメータである。
【００６５】
図２０は、本実施形態の不正送信検知部６４による処理手順の一例を示すフローチャートである。不正送信検知部６４は、受信部６１によりメッセージが受信されるたびに、受信履歴テーブル６３を参照しながら、この図２０のフローチャートで示す一連の処理を繰り返し実行する。
【００６６】
受信部６１によりメッセージが受信されると、不正送信検知部６４は、まず、前回受信したメッセージの最長間隔送信検知フラグの値が１であるか否かを判定する（ステップＳ６０１）。そして、前回受信したメッセージの最長間隔送信検知フラグの値が０であれば（ステップＳ６０１：Ｎｏ）、不正送信検知部６４は、次に、直前に受信したメッセージの受信時刻と今回受信したメッセージの受信時刻との間隔Ｔｗ’が最短送信間隔Ｔｓ以上であるか否かを判定し（ステップＳ６０２）、Ｔｗ’がＴｓ以上であれば（ステップＳ６０２：Ｙｅｓ）、今回受信したメッセージの送信カウンタ値Ｃｍ０が、直前に受信したメッセージの送信カウンタ値Ｃｍ１からインクリメントされているか否かを判定する（ステップＳ６０３）。なお、ステップＳ６０１の判定で、前回受信したメッセージの最長間隔送信検知フラグの値が１であれば（ステップＳ６０１：Ｙｅｓ）、ステップＳ６０２の判定は行わずにステップＳ６０３に進む。
【００６７】
そして、Ｃｍ０がＣｍ１からインクリメントされていれば（ステップＳ６０３：Ｙｅｓ）、不正送信検知部６４は、不正送信なしと判断する（ステップＳ６０４）。一方、ステップＳ６０２の判定で、Ｔｗ’がＴｓ未満であった場合（ステップＳ６０２：Ｎｏ）、または、ステップＳ６０３の判定で、Ｃｍ０がＣｍ１からインクリメントされていない場合は（ステップＳ６０３：Ｎｏ）、不正送信検知部６４は、不正送信ありと判断する（ステップＳ６０５）。
【００６８】
以上説明したように、本実施形態の正規送信ＥＣＵ１０は、直前のメッセージ送信時刻から最長送信間隔Ｔｌが経過するまでの間にメッセージ送信イベントが発生しない場合は、直前のメッセージ送信時刻からＴｌが経過すると、モジュロＮの送信カウンタ値を含むメッセージを送信する。また、直前のメッセージ送信時刻からＴｌが経過する前にメッセージ送信イベントが発生した場合は、直前に送信したメッセージが短間隔メッセージでなければモジュロＮの送信カウンタ値を含むメッセージをすぐに送信し、直前に送信したメッセージが短間隔メッセージであれば、直前のメッセージの送信時刻から最短送信間隔Ｔｓが経過しているか否かを判断し、直前のメッセージの送信時刻からＴｓが経過していれば、モジュロＮの送信カウンタ値を含むメッセージをすぐに送信する。一方、直前のメッセージの送信時刻からＴｓが経過していなければ、Ｔｓが経過するまで待って、モジュロＮの送信カウンタ値を含むメッセージを送信する。したがって、受信ＥＣＵ２０は、送信カウンタ値の不連続性または最短送信間隔Ｔｓの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
【００６９】
＜第４実施形態＞
次に、第４実施形態について説明する。本実施形態は、ＡＵＴＯＳＡＲ  ＣＯＭのＭＩＸＥＤ送信モードでメッセージを行う場合の適用例である。ＭＩＸＥＤ送信モードは、所定周期でメッセージの送信を行うＰＥＲＩＯＤＩＣ送信と、シグナルの変化などのメッセージ送信イベントに応じて不定期でメッセージの送信を行うＤＩＲＥＣＴ送信が混在する。ＭＩＸＥＤ送信モードでは、メッセージ送信イベントが発生しなくてもＰＥＲＩＯＤＩＣ送信のタイミングでメッセージが送信されるため、ＰＥＲＩＯＤＩＣ送信の周期が最長送信間隔Ｔｌとなる。なお、上述の各実施形態では、メッセージ送信イベントが発生することなく最長送信間隔Ｔｌが経過するとメッセージを送信したが、本実施形態では、ＤＩＲＥＣＴ送信の有無にかかわらず、ＰＥＲＩＯＤＩＣ送信のタイミングでは必ずメッセージを送信する。
【００７０】
本実施形態では、正規送信ＥＣＵ１０の送信制御部５２が、メッセージの最長送信間隔（ＰＥＲＩＯＤＩＣ送信の周期）Ｔｌと、Ｔｌにおいて許容されるメッセージの最大送信回数（ＰＥＲＩＯＤＩＣ送信の間に許容されるＤＩＲＥＣＴ送信の最大数）Ｍとに基づいて、ＭＩＸＥＤ送信モードのＰＥＲＩＯＤＩＣ送信とＤＩＲＥＣＴ送信のタイミングを制御する。なお、本実施形態における最大送信回数Ｍは、ＰＥＲＩＯＤＩＣ送信の間に許容されるＤＩＲＥＣＴ送信の最大数であるため、Ｍ≦Ｎ−１と定義される。
【００７１】
本実施形態では、受信ＥＣＵ２０が受信したメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであるかＤＩＲＥＣＴ送信のメッセージであるかを判断する必要がある。そこで、例えば図２１に示すように、ＰＥＲＩＯＤＩＣ送信かＤＩＲＥＣＴ送信かを識別するためのＰＥＲＩＯＤＩＣ送信フラグをメッセージに含めて送信する。ＰＥＲＩＯＤＩＣ送信フラグは、そのメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであれば１、ＤＩＲＥＣＴ送信のメッセージであれば０をとる。
【００７２】
本実施形態の正規送信ＥＣＵ１０は、ＰＥＲＩＯＤＩＣ送信については、モジュロＮの送信カウンタの値とＰＥＲＩＯＤＩＣ送信フラグの値１とを含むＰＥＲＩＯＤＩＣ送信のメッセージをＴｌ周期で送信する。また、ＤＩＲＥＣＴ送信については、直前のＰＥＲＩＯＤＩＣ送信の後にＤＩＲＥＣＴ送信が行われた回数がＭに達しているか否かを判断し、Ｍ未満であればモジュロＮの送信カウンタの値とＰＥＲＩＯＤＩＣ送信フラグの値０とを含むＤＩＲＥＣＴ送信のメッセージを送信し、Ｍに達していればＤＩＲＥＣＴ送信のメッセージは送信せずに、次のＰＥＲＩＯＤＩＣ送信のタイミングでＰＥＲＩＯＤＩＣ送信のメッセージを送信する。
【００７３】
図２２は、本実施形態の送信制御部５２による処理手順の一例を示すフローチャートである。送信制御部５２は、送信履歴テーブル５３とシグナルテーブル５４とを参照しながら、この図２２のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
【００７４】
送信制御部５２は、まず、ＰＥＲＩＯＤＩＣ送信のタイミングであるか否かを判定し（ステップＳ７０１）、ＰＥＲＩＯＤＩＣ送信のタイミングでなければ（ステップＳ７０１：Ｎｏ）、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する（ステップＳ７０２）。
【００７５】
ここで、メッセージ送信イベントが発生していなければ（ステップＳ７０２：Ｎｏ）、ステップＳ７０１に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は（ステップＳ７０２：Ｙｅｓ）、送信制御部５２は、次に、前回のＰＥＲＩＯＤＩＣ送信後のＤＩＲＥＣＴ送信の回数ｎが最大送信回数Ｍに達したか否かを判定する（ステップＳ７０３）。そして、ｎがＭに達していなければ（ステップＳ７０３：Ｎｏ）、送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値とＰＥＲＩＯＤＩＣ送信フラグの値０とを含むメッセージを送信する（ステップＳ７０４）。
【００７６】
一方、ｎがＭに達していれば（ステップＳ７０３：Ｙｅｓ）、送信制御部５２は、次のＰＥＲＩＯＤＩＣ送信のタイミングとなるまで待ち（ステップＳ７０５）、ＰＥＲＩＯＤＩＣ送信のタイミングがくると、送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値とＰＥＲＩＯＤＩＣ送信フラグの値１とを含むメッセージを送信する（ステップＳ７０６）。また、ステップＳ７０１の判定で、ＰＥＲＩＯＤＩＣ送信のタイミングであると判定した場合も（ステップＳ７０１：Ｙｅｓ）、送信制御部５２は送信部５１に対して送信の指示を行い、モジュロＮの送信カウンタ値とＰＥＲＩＯＤＩＣ送信フラグの値１とを含むメッセージを送信する（ステップＳ７０６）。
【００７７】
本実施形態では、正規送信ＥＣＵ１０の送信制御部５２が以上のようにメッセージの送信タイミングを制御することにより、受信ＥＣＵ２０が、送信カウンタ値の不連続性または最大送信回数Ｍの違反により、メッセージの不正送信を検知することができる。
【００７８】
図２３は、本実施形態の不正送信検知部６４による処理手順の一例を示すフローチャートである。不正送信検知部６４は、受信部６１によりメッセージが受信されるたびに、受信履歴テーブル６３を参照しながら、この図２３のフローチャートで示す一連の処理を繰り返し実行する。
【００７９】
受信部６１によりメッセージが受信されると、不正送信検知部６４は、まず、今回受信したメッセージの送信カウンタ値Ｃｍ０が、直前に受信したメッセージの送信カウンタ値Ｃｍ１からインクリメントされているか否かを判定する（ステップＳ８０１）。そして、Ｃｍ０がＣｍ１からインクリメントされていなければ（ステップＳ８０１：Ｎｏ）、不正送信検知部６４は、不正送信ありと判断する（ステップＳ８０６）。
【００８０】
一方、Ｃｍ０がＣｍ１からインクリメントされていれば（ステップＳ８０１：Ｙｅｓ）、不正送信検知部６４は、次に、受信したメッセージのＰＥＲＩＯＤＩＣ送信フラグの値が１であるか否かを判定し（ステップＳ８０２）、ＰＥＲＩＯＤＩＣ送信フラグの値が１であれば（ステップＳ８０２：Ｙｅｓ）、ＰＥＲＩＯＤＩＣ送信の周期が正常か否かを判定する（ステップＳ８０３）。この判定には、例えば特許文献１に記載の方法など、メッセージの周期異常を検知する公知の方法を用いればよい。そして、不正送信検知部６４は、ＰＥＲＩＯＤＩＣ送信の周期が正常であれば（ステップＳ８０３：Ｙｅｓ）、不正送信なしと判断し（ステップＳ８０５）、ＰＥＲＩＯＤＩＣ送信の周期が異常であれば（ステップＳ８０３：Ｎｏ）、不正送信ありと判断する（ステップＳ８０６）。
【００８１】
また、ステップＳ８０２の判定で、受信したメッセージのＰＥＲＩＯＤＩＣ送信フラグの値が０であれば（ステップＳ８０２：Ｎｏ）、不正送信検知部６４は、直近のＰＥＲＩＯＤＩＣ送信のメッセージ（ＰＥＲＩＯＤＩＣ送信フラグの値が１のメッセージ）を受信した後にＤＩＲＥＣＴ送信のメッセージ（ＰＥＲＩＯＤＩＣ送信フラグの値が１のメッセージ）を受信した回数ｎが、今回の受信も含めてＭ以下であるか否かを判定する（ステップＳ８０４）。そして、不正送信検知部６４は、ｎがＭ以下であれば（ステップＳ８０４：Ｙｅｓ）、不正送信なしと判断し（ステップＳ８０５）、ｎがＭを超えていれば（ステップＳ８０４：Ｎｏ）、不正送信ありと判断する（ステップＳ８０６）。
【００８２】
以上説明したように、本実施形態の正規送信ＥＣＵ１０は、ＰＥＲＩＯＤＩＣ送信については、モジュロＮの送信カウンタの値とＰＥＲＩＯＤＩＣ送信フラグの値１とを含むＰＥＲＩＯＤＩＣ送信のメッセージをＴｌ周期でＰＥＲＩＯＤＩＣ送信し、ＤＩＲＥＣＴ送信については、直前のＰＥＲＩＯＤＩＣ送信の後にＤＩＲＥＣＴ送信が行われた回数がＭに達しているか否かを判断し、Ｍ未満であればモジュロＮの送信カウンタの値とＰＥＲＩＯＤＩＣ送信フラグの値０とを含むＤＩＲＥＣＴ送信のメッセージを送信し、Ｍに達していればＤＩＲＥＣＴ送信のメッセージを送信せずに、次のＰＥＲＩＯＤＩＣ送信のタイミングでＰＥＲＩＯＤＩＣ送信のメッセージを送信する。したがって、受信ＥＣＵ２０は、送信カウンタ値の不連続性または最大送信回数Ｍの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
【００８３】
＜第５実施形態＞
次に、第５実施形態について説明する。本実施形態の送信制御部５２は、上述の第４実施形態と同様に最長送信間隔Ｔｌと最大送信回数Ｍとに基づいてＭＩＸＥＤ送信モードのＰＥＲＩＯＤＩＣ送信とＤＩＲＥＣＴ送信のタイミングを制御するが、メッセージにＰＥＲＩＯＤＩＣ送信フラグの値を含めない。その代わり、ＰＥＲＩＯＤＩＣ送信のメッセージに含める送信カウンタ値を、直前に送信したメッセージの送信カウンタ値と同じにすることで、受信ＥＣＵ２０が受信したメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであるかＤＩＲＥＣＴ送信のメッセージであるかを判断できるようにする。
【００８４】
すなわち、本実施形態では、ＰＥＲＩＯＤＩＣ送信の間にＤＩＲＥＣＴ送信がない場合は、図２４（ａ）に示すように、最新のＰＥＲＩＯＤＩＣ送信のメッセージに含まれる送信カウンタの値が、直近のＰＥＲＩＯＤＩＣ送信のメッセージに含まれる送信カウンタの値と同じになる。また、ＰＥＲＩＯＤＩＣ送信の間にＤＩＲＥＣＴ送信があった場合は、図２４（ｂ）に示すように、最新のＰＥＲＩＯＤＩＣ送信のメッセージに含まれる送信カウンタの値が、直前のＤＩＲＥＣＴ送信のメッセージに含まれる送信カウンタの値と同じになる。
【００８５】
図２５は、本実施形態の送信制御部５２による処理手順の一例を示すフローチャートである。送信制御部５２は、送信履歴テーブル５３とシグナルテーブル５４とを参照しながら、この図２５のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
【００８６】
送信制御部５２は、まず、ＰＥＲＩＯＤＩＣ送信のタイミングであるか否かを判定し（ステップＳ９０１）、ＰＥＲＩＯＤＩＣ送信のタイミングでなければ（ステップＳ９０１：Ｎｏ）、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する（ステップＳ９０２）。
【００８７】
ここで、メッセージ送信イベントが発生していなければ（ステップＳ９０２：Ｎｏ）、ステップＳ９０１に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は（ステップＳ９０２：Ｙｅｓ）、送信制御部５２は、次に、前回のＰＥＲＩＯＤＩＣ送信後のＤＩＲＥＣＴ送信の回数ｎが最大送信回数Ｍに達したか否かを判定する（ステップＳ９０３）。そして、ｎがＭに達していなければ（ステップＳ９０３：Ｎｏ）、送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ９０４）。
【００８８】
一方、ｎがＭに達していれば（ステップＳ９０３：Ｙｅｓ）、送信制御部５２は、次のＰＥＲＩＯＤＩＣ送信のタイミングとなるまで待ち（ステップＳ９０５）、ＰＥＲＩＯＤＩＣ送信のタイミングがくると、送信部５１に対して送信の指示を行って、直前に送信したメッセージと同じ送信カウンタ値を含むメッセージを送信する（ステップＳ９０６）。また、ステップＳ９０１の判定で、ＰＥＲＩＯＤＩＣ送信のタイミングであると判定した場合も（ステップＳ９０１：Ｙｅｓ）、送信制御部５２は送信部５１に対して送信の指示を行い、直前に送信したメッセージと同じ送信カウンタ値を含むメッセージを送信する（ステップＳ９０６）。
【００８９】
図２６は、本実施形態の不正送信検知部６４による処理手順の一例を示すフローチャートである。不正送信検知部６４は、受信部６１によりメッセージが受信されるたびに、受信履歴テーブル６３を参照しながら、この図２６のフローチャートで示す一連の処理を繰り返し実行する。
【００９０】
受信部６１によりメッセージが受信されると、不正送信検知部６４は、まず、今回受信したメッセージの送信カウンタ値Ｃｍ０が、直前に受信したメッセージの送信カウンタ値Ｃｍ１と同じであるか否かを判定する（ステップＳ１００１）。そして、Ｃｍ０がＣｍ１と同じであれば（ステップＳ１００１：Ｙｅｓ）、不正送信検知部６４は、次に、ＰＥＲＩＯＤＩＣ送信の周期が正常か否かを判定し（ステップＳ１００２）、ＰＥＲＩＯＤＩＣ送信の周期が正常であれば（ステップＳ１００２：Ｙｅｓ）、不正送信なしと判断し（ステップＳ１００５）、ＰＥＲＩＯＤＩＣ送信の周期が異常であれば（ステップＳ１００２：Ｎｏ）、不正送信ありと判断する（ステップＳ１００６）。
【００９１】
また、ステップＳ１００１の判定で、Ｃｍ０がＣｍ１と同じでなければ（ステップＳ１００１：Ｎｏ）、不正送信検知部６４は、次に、Ｃｍ０がＣｍ１からインクリメントされているか否かを判定する（ステップＳ１００３）。そして、Ｃｍ０がＣｍ１からインクリメントされていなければ（ステップＳ１００３：Ｎｏ）、不正送信検知部６４は、不正送信ありと判断する（ステップＳ１００６）。
【００９２】
一方、Ｃｍ０がＣｍ１からインクリメントされていれば（ステップＳ１００３：Ｙｅｓ）、不正送信検知部６４は、次に、直近のＰＥＲＩＯＤＩＣ送信のメッセージ（送信カウンタ値が１つ前と同じメッセージ）を受信した後にＤＩＲＥＣＴ送信のメッセージ（送信カウンタ値が１つ前からインクリメントされているメッセージ）を受信した回数ｎが、今回の受信も含めてＭ以下であるか否かを判定する（ステップＳ１００４）。そして、不正送信検知部６４は、ｎがＭ以下であれば（ステップＳ１００４：Ｙｅｓ）、不正送信なしと判断し（ステップＳ１００５）、ｎがＭを超えていれば（ステップＳ１００４：Ｎｏ）、不正送信ありと判断する（ステップＳ１００６）。
【００９３】
以上説明したように、本実施形態では、ＰＥＲＩＯＤＩＣ送信については、直前に送信したメッセージと同じ値の送信カウンタ値をメッセージに含めるようにしているので、メッセージにＰＥＲＩＯＤＩＣ送信フラグの値を含めることなく、ＰＥＲＩＯＤＩＣ送信とＤＩＲＥＣＴ送信とを区別できる。
【００９４】
＜第６実施形態＞
次に、第６実施形態について説明する。本実施形態の送信制御部５２は、メッセージの最長送信間隔（ＰＥＲＩＯＤＩＣ送信の周期）Ｔｌと、ＤＩＲＥＣＴ送信のメッセージ（短間隔メッセージ）に許容される最短送信間隔Ｔｓとに基づいて、ＭＩＸＥＤ送信モードのＰＥＲＩＯＤＩＣ送信とＤＩＲＥＣＴ送信のタイミングを制御する。また、本実施形態では、ＰＥＲＩＯＤＩＣ送信の直後のＤＩＲＥＣＴ送信のメッセージについては、最短送信間隔Ｔｓの制限を適用しない。このため、本実施形態における最短送信間隔Ｔｓは、上述の第３実施形態と同様に、Ｔｓ≧Ｔｌ／（Ｎ−１）と定義される。また、本実施形態では、上述の第５実施形態と同様に、ＰＥＲＩＯＤＩＣ送信のメッセージに含める送信カウンタ値を、直前に送信したメッセージの送信カウンタ値と同じにすることで、受信ＥＣＵ２０が受信したメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであるかＤＩＲＥＣＴ送信のメッセージであるかを判断できるようにする。
【００９５】
すなわち、本実施形態の正規送信ＥＣＵ１０は、ＰＥＲＩＯＤＩＣ送信については、直前のメッセージに含まれる送信カウンタ値と同じ送信カウンタ値を含むＰＥＲＩＯＤＩＣ送信のメッセージをＴｌ周期で送信する。また、ＤＩＲＥＣＴ送信については、直前に送信したメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであれば、モジュロＮのカウンタ値を含むＤＩＲＥＣＴ送信のメッセージをすぐに送信し、直前に送信したメッセージがＤＩＲＥＣＴ送信のメッセージであれば、直前のＤＩＲＥＣＴ送信のメッセージの送信時刻から最短送信間隔Ｔｓが経過しているか否かを判断する。そして、直前のＤＩＲＥＣＴ送信のメッセージの送信時刻からＴｓが経過していれば、モジュロＮの送信カウンタ値を含むＤＩＲＥＣＴ送信のメッセージをすぐに送信し、直前のＤＩＲＥＣＴ送信のメッセージの送信時刻からＴｓが経過していなければ、Ｔｓが経過するまで待って、モジュロＮの送信カウンタ値を含むＤＩＲＥＣＴ送信のメッセージを送信する。また、直前のＤＩＲＥＣＴ送信のメッセージの送信時刻からＴｓが経過する前にＰＥＲＩＯＤＩＣ送信のタイミングとなった場合は、ＤＩＲＥＣＴ送信のメッセージは送信せずに、ＰＥＲＩＯＤＩＣ送信のメッセージを送信する。
【００９６】
本実施形態では、ＤＩＲＥＣＴ送信の直後のＤＩＲＥＣＴ送信のメッセージについては、最短送信間隔Ｔｓの制限が適用されない。したがって、最短送信間隔Ｔｓは、図２７に示すように、直前のＤＩＲＥＣＴ送信のメッセージの送信時刻から起算され、最短送信間隔Ｔｓが経過する前にメッセージ送信イベントが発生したとしても、Ｔｓが経過するまでの間は送信禁止期間となり、Ｔｓが経過したときに次のＤＩＲＥＣＴ送信のメッセージを送信できる。また、直前のＤＩＲＥＣＴ送信のメッセージの送信時刻からＴｓが経過する前にＰＥＲＩＯＤＩＣ送信のタイミングとなった場合は、ＤＩＲＥＣＴ送信のメッセージは送信されず、ＰＥＲＩＯＤＩＣ送信のメッセージが送信される。
【００９７】
図２８は、本実施形態の送信制御部５２による処理手順の一例を示すフローチャートである。送信制御部５２は、送信履歴テーブル５３とシグナルテーブル５４とを参照しながら、この図２８のフローチャートで示す一連の処理を所定周期で繰り返し実行する。
【００９８】
送信制御部５２は、まず、ＰＥＲＩＯＤＩＣ送信のタイミングであるか否かを判定し（ステップＳ１１０１）、ＰＥＲＩＯＤＩＣ送信のタイミングでなければ（ステップ１１０１：Ｎｏ）、シグナルの変化などのメッセージ送信イベントが発生したか否かを判定する（ステップＳ１１０２）。
【００９９】
ここで、メッセージ送信イベントが発生していなければ（ステップＳ１１０２：Ｎｏ）、ステップＳ１１０１に戻って処理を繰り返す。一方、メッセージ送信イベントが発生した場合は（ステップＳ１１０２：Ｙｅｓ）、送信制御部５２は、次に、直前に送信したメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであるか否かを判定し（ステップＳ１１０３）、直前に送信したメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであれば（ステップＳ１１０３：Ｙｅｓ）、送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ１１０４）。
【０１００】
一方、直前に送信したメッセージがＤＩＲＥＣＴ送信のメッセージであれば（ステップＳ１１０３：Ｎｏ）、送信制御部５２は、次に、直前のＤＩＲＥＣＴ送信のメッセージ送信時刻からの経過時間Ｔｗが最短送信間隔Ｔｓに達したか否かを判定し（ステップＳ１１０５）、ＴｗがＴｓに達していれば（ステップＳ１１０５：Ｙｅｓ）、送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ１１０４）。
【０１０１】
一方、ＴｗがＴｓに達していなければ（ステップＳ１１０５：Ｎｏ）、送信制御部５２は、ＴｗがＴｓに達するまで待機し、ＴｗがＴｓに達する前にＰＥＲＩＯＤＩＣ送信のタイミングになった場合は（ステップＳ１１０６：Ｙｅｓ）、送信部５１に対して送信の指示を行い、直前に送信したメッセージと同じ送信カウンタ値を含むメッセージを送信する（ステップＳ１１０７）。一方、ＰＥＲＩＯＤＩＣ送信のタイミングになる前にＴｗがＴｓに達すると（ステップＳ１１０６：Ｎｏ、ステップＳ１１０５：Ｙｅｓ）、送信制御部５２は送信部５１に対して送信の指示を行って、モジュロＮの送信カウンタ値を含むメッセージを送信する（ステップＳ１１０４）。
【０１０２】
図２９は、本実施形態の不正送信検知部６４による処理手順の一例を示すフローチャートである。不正送信検知部６４は、受信部６１によりメッセージが受信されるたびに、受信履歴テーブル６３を参照しながら、この図２９のフローチャートで示す一連の処理を繰り返し実行する。
【０１０３】
受信部６１によりメッセージが受信されると、不正送信検知部６４は、まず、今回受信したメッセージの送信カウンタ値Ｃｍ０が、直前に受信したメッセージの送信カウンタ値Ｃｍ１と同じであるか否かを判定する（ステップＳ１２０１）。そして、Ｃｍ０がＣｍ１と同じであれば（ステップＳ１２０１：Ｙｅｓ）、不正送信検知部６４は、次に、ＰＥＲＩＯＤＩＣ送信の周期が正常か否かを判定し（ステップＳ１２０２）、ＰＥＲＩＯＤＩＣ送信の周期が正常であれば（ステップＳ１２０２：Ｙｅｓ）、不正送信なしと判断し（ステップＳ１２０６）、ＰＥＲＩＯＤＩＣ送信の周期が異常であれば（ステップＳ１２０２：Ｎｏ）、不正送信ありと判断する（ステップＳ１２０７）。
【０１０４】
また、ステップＳ１２０１の判定で、Ｃｍ０がＣｍ１と同じでなければ（ステップＳ１２０１：Ｎｏ）、不正送信検知部６４は、次に、Ｃｍ０がＣｍ１からインクリメントされているか否かを判定する（ステップＳ１２０３）。そして、Ｃｍ０がＣｍ１からインクリメントされていなければ（ステップＳ１２０３：Ｎｏ）、不正送信検知部６４は、不正送信ありと判断する（ステップＳ１２０７）。
【０１０５】
一方、Ｃｍ０がＣｍ１からインクリメントされていれば（ステップＳ１２０３：Ｙｅｓ）、不正送信検知部６４は、次に、直前に受信したメッセージの送信カウンタ値Ｃｍ１が、２つ前に受信したメッセージの送信カウンタ値Ｃｍ２と同じであるか否かを判定する（ステップＳ１２０４）。そして、Ｃｍ１がＣｍ２と同じであれば（ステップＳ１２０４：Ｙｅｓ）、不正送信なしと判断する（ステップＳ１２０６）。一方、Ｃｍ１がＣｍ２と同じでなければ（ステップＳ１２０４：Ｎｏ）、不正送信検知部６４は、次に、直前に受信したＤＩＲＥＣＴ送信のメッセージの受信時刻と今回受信したＤＩＲＥＣＴ送信のメッセージの受信時刻との間隔Ｔｗ’が最短送信間隔Ｔｓ以上であるか否かを判定する（ステップＳ１２０５）。そして、不正送信検知部６４は、Ｔｗ’がＴｓ以上であれば（ステップＳ１２０５：Ｙｅｓ）、不正送信なしと判断し（ステップＳ１２０６）、Ｔｗ’がＴｓ未満であれば（ステップＳ１２０５：Ｎｏ）、不正送信ありと判断する（ステップＳ１２０７）。
【０１０６】
以上説明したように、本実施形態の正規送信ＥＣＵ１０は、ＰＥＲＩＯＤＩＣ送信については、直前のメッセージに含まれる送信カウンタ値と同じ送信カウンタ値を含むＰＥＲＩＯＤＩＣ送信のメッセージをＴｌ周期で送信し、ＤＩＲＥＣＴ送信については、直前のメッセージがＰＥＲＩＯＤＩＣ送信のメッセージであればモジュロＮの送信カウンタの値を含むＤＩＲＥＣＴ送信のメッセージを送信し、直前のメッセージがＤＩＲＥＣＴ送信のメッセージであれば、直前のＤＩＲＥＣＴ送信のメッセージ送信時刻から最短送信間隔Ｔｓが経過しているか否かを判断する。そして、直前のＤＩＲＥＣＴ送信のメッセージ送信時刻から最短送信間隔Ｔｓが経過していればモジュロＮの送信カウンタの値を含むＤＩＲＥＣＴ送信のメッセージを送信し、最短送信間隔Ｔｓが経過していなければ、最短送信間隔Ｔｓが経過した時点でＤＩＲＥＣＴ送信のメッセージを送信、あるいは次のＰＥＲＩＯＤＩＣ送信のタイミングでＰＥＲＩＯＤＩＣ送信のメッセージを送信する。したがって、受信ＥＣＵ２０は、送信カウンタ値の不連続性または最短送信間隔Ｔｓの違反により、送信間隔が変化するメッセージの不正送信を適切かつ簡便に検知することができる。
【０１０７】
また、本実施形態では、ＰＥＲＩＯＤＩＣ送信については、直前に送信したメッセージと同じ値の送信カウンタ値をメッセージに含めるようにしているので、上述の第５実施形態と同様に、メッセージにＰＥＲＩＯＤＩＣ送信フラグの値を含めることなく、ＰＥＲＩＯＤＩＣ送信とＤＩＲＥＣＴ送信とを区別できる。
【０１０８】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０９】
１０  正規送信ＥＣＵ
１１  ＬＳＩ
１２  トランシーバ
５１  送信部
５２  送信制御部
５３  送信履歴テーブル
５４  シグナルテーブル
５５  シグナル更新部
【図１】
2019126007.tif 000003
【図２】
2019126007.tif 000004
【図３】
2019126007.tif 000005
【図４】
2019126007.tif 000006
【図５】
2019126007.tif 000007
【図６】
2019126007.tif 000008
【図７】
2019126007.tif 000009
【図８】
2019126007.tif 000010
【図９】
2019126007.tif 000011
【図１０】
2019126007.tif 000012
【図１１】
2019126007.tif 000013
【図１２】
2019126007.tif 000014
【図１３】
2019126007.tif 000015
【図１４】
2019126007.tif 000016
【図１５】
2019126007.tif 000017
【図１６】
2019126007.tif 000018
【図１７】
2019126007.tif 000019
【図１８】
2019126007.tif 000020
【図１９】
2019126007.tif 000021
【図２０】
2019126007.tif 000022
【図２１】
2019126007.tif 000023
【図２２】
2019126007.tif 000024
【図２３】
2019126007.tif 000025
【図２４】
2019126007.tif 000026
【図２５】
2019126007.tif 000027
【図２６】
2019126007.tif 000028
【図２７】
2019126007.tif 000029
【図２８】
2019126007.tif 000030
【図２９】
2019126007.tif 000031