(57)【要約】【課題】時変パラメータを利用して通信メッセージの信頼性を確保する場合であれ、通信メッセージの授受にかかる遅延を抑制することができる通信システムを提供する。【解決手段】ゲートウェイ１０は、上位ビットを含む同期用メッセージＭＡを送信し、第１ＥＣＵ２１及び第３ＥＣＵ２３は、同期用メッセージＭＡから上位ビットを取得する。第１ＥＣＵ２１は、記憶、管理する下位ビットと取得した上位ビットとから再構成したメッセージカウンタを利用して生成した認証子を含む通信メッセージＭＢを送信する。第３ＥＣＵ２３は、通信メッセージＭＢから再構成したメッセージカウンタを利用して再生成した認証子と、同通信メッセージＭＢに含まれる認証子との比較に基づいて受信した通信メッセージＭＢを認証するが、同期用メッセージＭＡが受信できていないことを条件に、受信した通信メッセージＭＢを認証されたものとして取り扱う。【選択図】図１
2020123961.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報と第２の情報とが組み合わされてなる管理コードのうちの前記第１の情報を記憶するとともに、記憶する前記第１の情報を前記第２の情報が複数回更新されることに基づいて１回更新するように管理する管理装置と、
前記管理装置に通信ネットワークを介して通信可能に接続された受信装置及び送信装置とを備え、
前記管理装置は、前記第１の情報を含む通信メッセージを送信し、前記受信装置及び送信装置は、前記管理装置が送信した前記通信メッセージを受信する都度、前記受信した通信メッセージに含まれる前記第１の情報を保持するものであり、
前記送信装置は、前記管理コードのうちの前記第２の情報を管理するものであり、通信データと、前記保持する前記第１の情報及び前記管理する第２の情報を組み合わせてなる前記管理コードとから認証子を生成して、前記通信データと、前記管理する第２の情報と、前記生成した認証子とを含み、前記保持する第１の情報を含まない通信メッセージを生成して送信するとともに、通信メッセージの生成後に前記管理する第２の情報の値を更新し、
前記受信装置は、前記送信装置の送信した前記通信メッセージを受信して、前記受信した通信メッセージに含まれる認証子と、前記受信した通信メッセージに基づいて再生成した認証子との比較に基づいて前記受信した通信メッセージを認証するものであって、
前記受信装置は、前記保持する第１の情報及び前記送信装置の送信した通信メッセージから取得した前記第２の情報を組み合わせて管理コードを再構成し、前記送信装置の送信した通信メッセージから取得した通信データと、前記再構成した管理コードとから前記再生成した認証子を取得するものであり、
前記受信装置は、前記第１の情報を含む通信メッセージが受信できていないことを条件に、前記受信した通信メッセージを認証されたものとして取り扱う
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載された複数の電子制御装置がネットワーク接続されている通信システムに関する。
【背景技術】
【０００２】
周知のように、車両に搭載された複数の電子制御装置（ＥＣＵ）は、それぞれが同じネットワークに接続されていて、それらの有する情報（車両情報）が相互に送受信可能である車両用の通信システムを構成していることが多い。こうした通信システムの一例が特許文献１に記載されている。
【０００３】
特許文献１に記載されている通信システムは、データを送信する送信端末と、その送信端末からデータを受信する受信端末とを備える。送信端末は、データ取得部と、受信部と、鍵取得部と、受信部からチャレンジ情報を受信し、時変パラメータを管理する時変パラメータ管理部とを有する。また、送信端末は、受信した鍵情報、チャレンジ情報及び時変パラメータを用いて受信した通信データを変換して変換データを生成するデータ変換部と、データ変換部から変換データを受信し、該変換データを受信端末へ送信する送信部とを有する。一方、受信端末は、チャレンジ情報を生成するチャレンジ生成部と、チャレンジ情報を送信端末へ送信する送信部と、送信端末から変換データを受信する受信部と、送信端末における鍵情報と同一の鍵情報を取得する鍵取得部とを有する。また、受信端末は、受信した変換データの新規性を判断する時変パラメータ判断部と、受信した鍵情報、チャレンジ情報及び時変パラメータを用いて、受信した変換データが正しく変換されているか否かを認証し、その認証結果を時変パラメータ判断部へ送信するデータ認証部とを有する。そして、時変パラメータ判断部は、データ認証部から受信した認証結果に基づいて変換データの新規性を判断する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−６６７０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のシステムによれば、通信メッセージに含まれている時変パラメータは、時変パラメータを適切に変更できない攻撃者による正規の送信者へのなりすましを抑制して、通信メッセージの信頼性を向上させるようになる。
【０００６】
ところで上記技術では、電源投入後やリセット後等であって時変パラメータが同期されるまでの間、受信装置と送信装置との間でそれぞれの記憶している時変パラメータが相違しているおそれがある。記憶している時変パラメータが相違しているような場合、受信装置は、送信装置が送信した正規の通信メッセージを正しいものとして認証しない。しかしながら、通信メッセージのなかには、時変パラメータが同期される以前であったとしても、電源投入直後から早期に、受信装置と送信装置との間で授受されることが望ましい通信データも存在する。つまり、こうした早期の授受が望ましい通信データであれ、時変パラメータが同期されるまで、その通信データの授受が遅延することになりかねない。
【０００７】
本発明は、このような実情に鑑みてなされたものであって、その目的は、時変パラメータを利用して通信メッセージの信頼性を確保する場合であれ、通信メッセージの授受にかかる遅延を抑制することができる通信システムを提供することにある。
【課題を解決するための手段】
【０００８】
以下、上記課題を解決するための手段及びその作用効果を記載する。
上記目的を達成するために通信システムは、第１の情報と第２の情報とが組み合わされてなる管理コードのうちの前記第１の情報を記憶するとともに、記憶する前記第１の情報を前記第２の情報が複数回更新されることに基づいて１回更新するように管理する管理装置と、前記管理装置に通信ネットワークを介して通信可能に接続された受信装置及び送信装置とを備え、前記管理装置は、前記第１の情報を含む通信メッセージを送信し、前記受信装置及び送信装置は、前記管理装置が送信した前記通信メッセージを受信する都度、前記受信した通信メッセージに含まれる前記第１の情報を保持するものであり、前記送信装置は、前記管理コードのうちの前記第２の情報を管理するものであり、通信データと、前記保持する前記第１の情報及び前記管理する第２の情報を組み合わせてなる前記管理コードとから認証子を生成して、前記通信データと、前記管理する第２の情報と、前記生成した認証子とを含み、前記保持する第１の情報を含まない通信メッセージを生成して送信するとともに、通信メッセージの生成後に前記管理する第２の情報の値を更新し、前記受信装置は、前記送信装置の送信した前記通信メッセージを受信して、前記受信した通信メッセージに含まれる認証子と、前記受信した通信メッセージに基づいて再生成した認証子との比較に基づいて前記受信した通信メッセージを認証するものであって、前記受信装置は、前記保持する第１の情報及び前記送信装置の送信した通信メッセージから取得した前記第２の情報を組み合わせて管理コードを再構成し、前記送信装置の送信した通信メッセージから取得した通信データと、前記再構成した管理コードとから前記再生成した認証子を取得するものであり、前記受信装置は、前記第１の情報を含む通信メッセージが受信できていないことを条件に、前記受信した通信メッセージを認証されたものとして取り扱うことを特徴とする。
【０００９】
通信の信頼性をより高めるためには管理コードを一度きりの値とすることが望ましいが、通信システムの使用期間に渡って管理コードを一度きりの値としようとすると管理コードに要する情報量が大きくなってしまう。そして、この管理コードを通信メッセージに含めるとなると、通信メッセージにおける管理コードの占有量が多くなり、送信したい通信内容であるメッセージデータに割り当てることのできる容量が少なくなってしまうといった問題がある。
【００１０】
この点、送信装置が送信する通信メッセージには管理コードのうちの第２の情報だけを含むようにすることで通信データのために多くの領域を確保することができる。
また、管理コードのうちの第１の情報は、管理装置によって管理されることから、送信装置及び受信装置のそれぞれの間で同期されるようにもなる。つまり、受信装置は、管理装置から送信された第１の情報と、送信装置から送信された通信メッセージに含まれる第２の情報とを組み合わせることで、送信装置で認証子の生成に利用された管理コードを再構成することができる。すなわち、管理コードの大きさを信頼性の確保に必要とされるサイズにしたとしても、通信メッセージの格納に要する容量を少なく抑えて、通信データのための容量の減少を抑制することができる。
【００１１】
また、管理装置から送信された管理コードのうちの第１の情報が受信されることによって、受信した管理コードのうちの第１の情報に受信装置及び送信装置が記憶している管理コードのうちの第１の情報が更新される、すなわち同期される。これにより、管理コードが第１の情報と第２の情報とに２分割されたとしても、通信メッセージを管理コードによって認証することが可能になる。
【００１２】
また、受信装置及び送信装置に記憶されている管理コードのうちの第１の情報を同期させることができるので、受信装置や送信装置は、記憶している管理コードのうちの第１の情報がリセット等により非同期に初期化されたとしても、その記憶している管理コードが同期されて正常な値に設定し直されることで、認証を正常に行うことが可能にもなる。
【００１３】
そして、このような構成によれば、受信装置は、第１の情報を含む通信メッセージが受信できていないことを条件に、受信した通信メッセージを認証されたものとして取り扱う。これにより、受信装置は、電源投入直後やリセット後であって、管理コードのうちの第１の情報を含む通信メッセージを管理装置からまだ受信できていない場合であっても、送信装置と受信装置との間で共有する必要のある通信データを共有できるようになる。なお、その後、管理コードのうちの第１の情報を含む通信メッセージが受信されれば、通信メッセージが認証されるようになることから必要とされる信頼性も維持される。これにより、時変パラメータを利用して通信メッセージの信頼性を確保する場合であっても、例えば、電源投入直後など、通信メッセージの授受にかかる遅延が抑制されるようになる。
【図面の簡単な説明】
【００１４】
【図１】通信システムを具体化した一実施形態について、その概略構成を示すブロック図。
【図２】同実施形態においてゲートウェイで実行される処理の概要を模式的に示す模式図。
【図３】同実施形態における電子制御装置（ＥＣＵ）の概略構成を模式的に示す模式図。
【図４】同実施形態において電子制御装置（ＥＣＵ）が送信時に実行する処理の概要を模式的に示す模式図。
【図５】同実施形態において電子制御装置（ＥＣＵ）が受信時に実行する処理の概要を模式的に示す模式図。
【図６】同実施形態においてメッセージカウンタが同期されるときのゲートウェイ側の手順を示すフローチャート。
【図７】同実施形態においてメッセージカウンタが同期されるときのＥＣＵ側の手順を示すフローチャート。
【図８】同実施形態においてメッセージカウンタが同期していないときの認証処理を示すフローチャート。
【図９】同実施形態においてメッセージカウンタが同期しているときの認証処理を示すフローチャート。
【発明を実施するための形態】
【００１５】
図１を参照して、通信システムを具体化した一実施形態について説明する。本実施形態の通信システムは、図示しない車両に搭載された車載ネットワークに適用された通信システムである。
【００１６】
図１に示すように、通信システムは、送信装置及び受信装置の少なくとも一方としての第１〜第４電子制御装置（ＥＣＵ）２１〜２４と、第１及び第２ＥＣＵ２１，２２が通信可能に接続される通信用バスＬ１と、第３及び第４ＥＣＵ２３，２４が通信可能に接続される通信用バスＬ２とを有している。本実施形態では、通信用バスＬ１と通信用バスＬ２とが通信ネットワークを構成する。また、通信システムは、通信用バスＬ１と通信用バスＬ２とに通信可能に接続される管理装置としてのゲートウェイ１０を備えている。ゲートウェイ１０は、通信用バスＬ１と通信用バスＬ２との間で通信メッセージＭＢを相互に転送（中継）することができる。よって、通信用バスＬ１に接続された第１及び第２ＥＣＵ２１，２２と、通信用バスＬ２に接続された第３及び第４ＥＣＵ２３，２４とは、ゲートウェイ１０を介して、相互に通信メッセージＭＢの送受信が可能である。
【００１７】
通信システムは、通信プロトコルとして、例えば、ＣＡＮ（コントローラエリアネットワーク）プロトコルが採用されている。また、通信システムは、通信経路の一部に無線通信を含んでいたり、ゲートウェイ等を介してその他のネットワークを経由する経路が含まれていたりしてもよい。
【００１８】
ＣＡＮプロトコルには、通信メッセージの構造であるフレームが規定されており、そのフレームには、通信メッセージの種類を示す識別子としての「メッセージＩＤ」の格納領域、ユーザが指定したデータである「メッセージデータ」の格納領域である「データフィールド」等が設けられている。「メッセージＩＤ」は、通信メッセージの種類毎に特定の値が定められており、各ＥＣＵは、送信する通信メッセージに、その種類に対応する「メッセージＩＤ」を付与して送信し、受信した通信メッセージの種類を「メッセージＩＤ」に基づいて判断する。この通信システムでは、ある１つの「メッセージＩＤ」を通信メッセージに付与して送信することができるのは、定められた一つのＥＣＵに限定されている。また、「メッセージデータ」が格納される領域である「データフィールド」は、０〜６４ビット（８ビット×０〜８バイト）のうちのいずれかの長さで設定される。
【００１９】
ゲートウェイ１０は、演算装置（ＣＰＵ）や記憶装置を有するマイクロコンピュータを含み構成されている。ゲートウェイ１０には、プログラムの演算処理を実行する演算装置と、そのプログラムやデータ等が記憶された読み出し専用メモリ（ＲＯＭ）と、演算装置の演算結果が一時的に記憶される揮発性メモリ（ＲＡＭ）とが設けられている。これにより、ゲートウェイ１０は、記憶装置に保持されているプログラムを演算装置に読み込み、実行することで、所定の機能を提供する。例えば、ゲートウェイ１０は、２つの通信用バスＬ１，Ｌ２の間で通信メッセージＭＢを転送する処理や、管理コードとしてのメッセージカウンタＭＣ（図２参照）を管理する処理を行う。また、ゲートウェイ１０は、バッテリから常に電力が供給されることにより設定値や演算値を記憶保持するバックアップメモリを備えている。
【００２０】
ゲートウェイ１０は、メッセージカウンタＭＣ（図２参照）を管理するコード管理部１１と、メッセージカウンタＭＣの一部を送信する送信部１２と、ゲートウェイ１０が接続された各通信用バスＬ１，Ｌ２との間で各通信メッセージＭＢを授受する通信Ｉ／Ｆ部１３とを備える。なお、コード管理部１１及び送信部１２の各機能は、ゲートウェイ１０によるプログラムの演算処理により実現される。
【００２１】
通信Ｉ／Ｆ１３は、通信用バスＬ１，Ｌ２との間でＣＡＮプロトコルに基づく通信メッセージＭＢを送受信する。また、通信Ｉ／Ｆ１３は、送信部１２等との間で通信メッセージＭＢを授受する。これにより、ゲートウェイ１０は、自身が出力する同期用メッセージＭＡを通信用バスＬ１，Ｌ２に送信可能であるとともに、通信用バスＬ１，Ｌ２を介して他のＥＣＵが送信する通信メッセージＭＢを取得することができる。なお、本実施形態では、同期用メッセージＭＡは、ＣＡＮプロトコルに基づく通常の通信メッセージのうちで同期用メッセージであることを示すメッセージＩＤが付与されたものである。よって、同期用メッセージＭＡは、通常の通信メッセージと同様に、各通信用バスＬ１，Ｌ２に接続されているＥＣＵ２１〜２４に対してブロードキャストで送信される。
【００２２】
図２を参照して、コード管理部１１について説明する。
コード管理部１１は、ゲートウェイ１０のバックアップメモリに記憶されるメッセージカウンタＭＣを管理する。なお、コード管理部１１は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を記憶、管理する。また、コード管理部１１は、メッセージカウンタＭＣのうちの「下位ビットＭＣＬ」の最新の値を通信メッセージＭＢから取得して、その値を監視するために記憶する。以下では、メッセージカウンタＭＣの全長については、単にメッセージカウンタＭＣと記載する。
【００２３】
メッセージカウンタＭＣは、「メッセージＩＤ」毎に管理されているカウンタであり、対応する「メッセージＩＤ」を有する通信メッセージが新たに生成されることに応じて、その値が更新されるカウンタである。つまり、「メッセージＩＤ」毎に対応するメッセージカウンタＭＣが更新される。本実施形態では、メッセージカウンタＭＣは、１ずつ増加させられるカウンタである。なお、以下では、１つの「メッセージＩＤ」と、これに対応するメッセージカウンタＭＣとを例にして説明し、説明の便宜上、その他の「メッセージＩＤ」とそれに対応するメッセージカウンタＭＣとの例についての説明は割愛する。
【００２４】
本実施形態では、メッセージカウンタＭＣを第１の情報としての「上位ビットＭＣＨ」と第２の情報としての「下位ビットＭＣＬ」とに２分割する。そして、「上位ビットＭＣＨ」をゲートウェイ１０で記憶、管理及び送信し、「下位ビットＭＣＬ」を各ＥＣＵ２１〜２４で記憶、管理及び送信するようにしている。また、メッセージカウンタＭＣは、「下位ビットＭＣＬ」が「０」から最大値まで変化したことに応じて、ゲートウェイ１０が「上位ビットＭＣＨ」の値を「１」だけ増加させるとともに、その「上位ビットＭＣＨ」の増加に応じてＥＣＵが「下位ビットＭＣＬ」を初期値「０」に設定することを繰り返す。これにより、メッセージカウンタＭＣは、二度と同じ値にならないようになっている。なお、ゲートウェイ１０は、メッセージカウンタＭＣを記憶する領域として確保された記憶領域にメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を記憶して、管理する。このとき、ゲートウェイ１０は、メッセージカウンタＭＣのうちの「下位ビットＭＣＬ」を上記確保した記憶領域の下位ビットに対応する位置に入れて管理してもよいし、上記確保したメッセージカウンタＭＣを記憶する記憶領域とは別に確保した記憶領域にメッセージカウンタＭＣと分けて格納して、管理してもよい。つまり、ゲートウェイ１０は、メッセージカウンタＭＣのうちの「下位ビットＭＣＬ」に対応するビットに、通信メッセージＭＢで受信される「下位ビットＭＣＬ」を入れてもよいし、所定の値を設定しておいてもよいし、「下位ビットＭＣＬ」に対応するビットを含まないかたちで管理してもよい。
【００２５】
メッセージカウンタＭＣは、通信メッセージＭＢの信頼性を担保できる情報量、すなわちビット長（ビット数）に設定される。例えば、メッセージカウンタＭＣを単調増加させつつ、二度と同じ値で使用することがないようにすることで通信メッセージＭＢの信頼性を担保する場合、車両寿命と通信メッセージＭＢの送信頻度とから、メッセージカウンタＭＣの長さ（ビット数）は、計算上、８バイトの長さが必要である。この８バイトの長さは、「データフィールド」の最大長６４ビット（＝８バイト）と同じ長さであるため、もし、メッセージカウンタＭＣを通信メッセージＭＢに格納して送信しようとすると、通信メッセージＭＢにユーザが指定したデータである「メッセージデータ」が格納できないことになってしまう。そこで、上述のように、メッセージカウンタＭＣを「上位ビットＭＣＨ」と「下位ビットＭＣＬ」とに２分割にして管理する。
【００２６】
詳述すると、コード管理部１１は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を管理する。例えば、本実施形態では、メッセージカウンタＭＣが８バイト長である場合、「上位ビットＭＣＨ」を７バイト（＝５６ビット）長、「下位ビットＭＣＬ」を１バイト（＝８ビット）長とする。この場合「下位ビットＭＣＬ」の最大値は「２５５」になる。
【００２７】
コード管理部１１は、メッセージカウンタＭＣが二度と同じ値にならないように、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を更新し、管理する。具体的には、コード管理部１１は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を、更新タイミングで単調増加させることで更新する。更新タイミングは、メッセージカウンタＭＣのうちの「下位ビットＭＣＬ」が最大値になったタイミング、すなわち、「下位ビットＭＣＬ」の有する全てのパターンが使い切られるタイミングである。例えば、コード管理部１１は、第１ＥＣＵ２１が送信する通信メッセージＭＢを受信することでメッセージカウンタＭＣのうちの「下位ビットＭＣＬ」を監視し、この「下位ビットＭＣＬ」が最大値以上になったときを更新タイミングにする。
【００２８】
コード管理部１１は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を更新することに応じて、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を送信部１２に伝達する。
【００２９】
送信部１２は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」から「認証子ＡＣ１」を生成するとともに、生成した「認証子ＡＣ１」とメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」とを含む同期用メッセージＭＡを生成する。同期用メッセージＭＡは、「データフィールド」にメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」と、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を暗号化した「認証子ＡＣ１」とを格納した通信メッセージである。そして、送信部１２は、通信Ｉ／Ｆ１３を介して、同期用メッセージＭＡを、ＣＡＮプロトコルにおいて優先度の高いメッセージＩＤを有する通信メッセージとして、第１〜第４ＥＣＵ２１〜２４へ送信する。なお、優先度の高いメッセージＩＤは、同期用メッセージＭＡのために予め設定されているものとする。そして、同期用メッセージＭＡは、ゲートウェイ１０で管理しているメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を第１〜第４ＥＣＵ２１〜２４へそれぞれ通知し、各ＥＣＵ２１〜２４で管理されているメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を同期させる。
【００３０】
図２に示すように、送信部１２は、暗号化エンジン１１１を備えている。暗号化エンジン１１１は、暗号鍵ＥＫが設定されており、コード管理部１１からメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を入力し、この入力したメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を暗号鍵ＥＫで暗号化することで「認証子ＡＣ１」を生成する。そして、送信部１２は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」と、「認証子ＡＣ１」とから同期用メッセージＭＡを生成する。なお、暗号鍵ＥＫは、耐タンパメモリ等を用いて外部から取得不可能であればなおよい。
【００３１】
また、送信部１２は、同期用メッセージＭＡを、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」が更新されることに応じて、全てのＥＣＵに対して送信する。つまり、ゲートウェイ１０は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を送信する。
【００３２】
図３及び図４を参照して、第１〜第４ＥＣＵ２１〜２４について説明する。なお、第１〜第４ＥＣＵ２１〜２４は、いずれも同様の構成を有しているので、ここでは第１ＥＣＵ２１について詳しく説明し、その他のＥＣＵの構成についての説明は割愛する。
【００３３】
第１ＥＣＵ２１は、演算装置（ＣＰＵ）や記憶装置を有するマイクロコンピュータを含み構成されている。第１ＥＣＵ２１には、プログラムの演算処理を実行する演算装置と、そのプログラムやデータ等が記憶された読み出し専用メモリ（ＲＯＭ）と、演算装置の演算結果が一時的に記憶される揮発性メモリ（ＲＡＭ）とが設けられている。これにより、第１ＥＣＵ２１は、記憶装置に保持されているプログラムを演算装置に読み込み、実行することで、所定の機能を提供する。例えば、第１ＥＣＵ２１は、通信用バスＬ１との間で通信メッセージＭＢを送受信する処理や同期用メッセージＭＡを受信する処理、管理コードとしてのメッセージカウンタＭＣを管理する処理を行う。また、第１ＥＣＵ２１は、バッテリから常に電力が供給されることにより設定値や演算値を記憶保持するバックアップメモリを備えている。
【００３４】
図３及び図４に示すように、第１ＥＣＵ２１は、ＣＡＮプロトコル用の通信Ｉ／Ｆ３０と、通信メッセージが一時的に格納される複数のＭＢＯＸ（ＭｅｓｓａｇｅＢｏｘ）３１ａ，３１ｂ，３１ｃと、送信する通信メッセージＭＢ等に含まれる「認証子ＡＣ２」を生成する認証子生成部３３とを備える。また、第１ＥＣＵ２１は、認証子を含み送受信される通信メッセージＭＢを処理するメッセージ処理部３４と、「メッセージデータＤＴ」を処理する情報処理部３２と、通信メッセージＭＢの受信の可否を「上位ビットＭＣＨ」の更新状態に応じて判定する仮受信判定部３７とを備える。なお、認証子生成部３３、メッセージ処理部３４及び仮受信判定部３７の各機能は、第１ＥＣＵ２１によるプログラムの演算処理により実現される。
【００３５】
通信Ｉ／Ｆ部３０は、通信用バスＬ１を介して同期用メッセージＭＡを受信したり、通信メッセージＭＢを送受信したりする。
複数のＭＢＯＸ３１ａ，３１ｂ，３１ｃは、通信Ｉ／Ｆ部３０によって受信された通信メッセージＭＢを中継する。また、複数のＭＢＯＸ３１ａ，３１ｂ，３１ｃは、通信Ｉ／Ｆ部３０から送信する通信メッセージＭＢを中継する。例えば、ＭＢＯＸ３１ａは、通信Ｉ／Ｆ部３０と情報処理部３２との間で認証子を含まない通信メッセージを中継する。また、ＭＢＯＸ３１ｂは、通信Ｉ／Ｆ部３０と認証子生成部３３との間で通信メッセージを中継する。ＭＢＯＸ３１ｂは、特に、メッセージカウンタＭＣの管理に必要である同期用メッセージＭＡを中継する。ＭＢＯＸ３１ｃは、通信Ｉ／Ｆ部３０とメッセージ処理部３４との間で通信メッセージを中継する。ＭＢＯＸ３１ｃは、特に、通信メッセージＭＢを中継等する。
【００３６】
情報処理部３２は、第１ＥＣＵ２１が受信した通信メッセージに含まれる「メッセージデータＤＴ」を利用する各種アプリケーションを実行する。また、情報処理部３２は、各種アプリケーションが出力したデータを外部へ送信する「メッセージデータＤＴ」として出力する。
【００３７】
認証子生成部３３は、「メッセージデータＤＴ」と「メッセージカウンタＭＣ」とから「認証子ＡＣ２」を生成する。認証子生成部３３は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を保持しているとともに、「下位ビットＭＣＬ」を記憶及び管理している。なお、認証子生成部３３は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」と「下位ビットＭＣＬ」とを１つだけ確保されたメッセージカウンタＭＣの記憶領域の対応する位置に記憶するようにしてもよいし、「上位ビットＭＣＨ」と「下位ビットＭＣＬ」とをそれぞれ別々に確保された記憶領域に記憶してもよい。
【００３８】
仮受信判定部３７は、認証子生成部３３とメッセージ処理部３４との間で授受した情報に基づいて仮受信の可否判断を行う。仮受信判定部３７は、認証子生成部３３に記憶されている「上位ビットＭＣＨ」とその状態を取得し、仮受信の可否結果を出力する。
【００３９】
詳述すると、仮受信判定部３７は、認証子生成部３３に記憶されている「上位ビットＭＣＨ」に基づいて通信メッセージＭＢの仮受信の可否について判定し、この判定した結果をメッセージ処理部３４に出力する。仮受信判定部３７は、認証子生成部３３に記憶されている「上位ビットＭＣＨ」の状態を判定し、この判定で「上位ビットＭＣＨ」が過渡状態であれば仮受信が「可」であると判定し、定常状態であれば仮受信が「否」である旨を判定する。ここで定常状態とは、「上位ビットＭＣＨ」が定期的に更新されている状態や、先の更新から所定の期間以内である状態をいう。逆に、過渡状態とは、「上位ビットＭＣＨ」が初期値のままである状態をいう。なお、過渡状態に「上位ビットＭＣＨ」の更新が停止されている状態や、先の更新から所定の期間を超えても更新されない状態等を含ませることもできる。仮受信判定部３７は、認証子生成部３３が認証子を認証する必要があるときに仮受信の可否の判定を行い、その判定結果を認証子生成部３３やメッセージ処理部３４に出力することができる。
【００４０】
メッセージ処理部３４は、送受信される通信メッセージＭＢの信頼性を以下のようにして確保する。
通信メッセージＭＢを受信したとき、メッセージ処理部３４は、ＭＢＯＸ３１ｃから通信メッセージＭＢを入力し、この入力した通信メッセージＭＢの受信可否の判定及び認証処理を行う。そして、メッセージ処理部３４は、認証子生成部３３で認証された通信メッセージＭＢに含まれる「メッセージデータＤＴ」を情報処理部３２に出力する。具体的には、メッセージ処理部３４は、認証処理を行うため、受信した通信メッセージＭＢを認証子生成部３３に送り、認証子生成部３３から通信メッセージＭＢに対する認証の結果を得る。認証子生成部３３で認証されたメッセージ処理部３４は、受信した通信メッセージＭＢから「メッセージデータＤＴ」が取得され、この取得された「メッセージデータＤＴ」が情報処理部３２に送られる。
【００４１】
一方、認証子生成部３３で認証されなかった場合、メッセージ処理部３４は、受信した通信メッセージＭＢについて受信可否の判定を取得する。詳述すると、認証子生成部３３は、受信した通信メッセージＭＢを仮受信判定部３７に送り、仮受信判定部３７から受信の可否の判定結果が入力される。そして、メッセージ処理部３４は、仮受信「否」の判定結果が入力されると、受信した通信メッセージＭＢを破棄する。これに対し、メッセージ処理部３４は、仮受信「可」の判定結果が入力されると、認証子生成部３３で認証されなかった受信した通信メッセージＭＢであれ、この受信した通信メッセージＭＢに対して認証されたときと同様の処理を行う。すなわち、メッセージ処理部３４は、仮受信「可」と判定された受信した通信メッセージＭＢから「メッセージデータＤＴ」を取得し、この取得した「メッセージデータＤＴ」を情報処理部３２に送る。これにより、電源投入直後やリセット直後等であって、「上位ビットＭＣＨ」が初期値のままであるときであっても、「メッセージデータＤＴ」が情報処理部３２に送られて、この「メッセージデータＤＴ」が第１ＥＣＵ２１と第３ＥＣＵ２３とで共用される。
【００４２】
また、通信メッセージＭＢを送信するとき、メッセージ処理部３４は、情報処理部３２から「メッセージデータＤＴ」を入力し、この入力した「メッセージデータＤＴ」に基づく「認証子ＡＣ２」を生成する。そして、メッセージ処理部３４は、「メッセージデータＤＴ」と「認証子ＡＣ２」とを含む送信する通信メッセージＭＢを生成し、この生成した送信する通信メッセージＭＢをＭＢＯＸ３１ｃに出力する。
【００４３】
認証子生成部３３は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」と「下位ビットＭＣＬ」とを管理している。なお、認証子生成部３３は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」と「下位ビットＭＣＬ」とを１つだけ確保されたメッセージカウンタＭＣの記憶領域の対応する位置に記憶するようにしてもよいし、「上位ビットＭＣＨ」と「下位ビットＭＣＬ」とをそれぞれ別々に確保された記憶領域に記憶するようにしてもよい。また、認証子生成部３３は、電源遮断やリセットによって「下位ビットＭＣＬ」を記憶保持するため記憶領域や、「上位ビットＭＣＨ」を記憶保持するため記憶領域の値が初期化により初期値になるようになっている。この初期化は、他のＥＣＵやゲートウェイ１０とは非同期に生じることも少なくない。
【００４４】
認証子生成部３３は、メッセージカウンタの同期処理と、通信メッセージの送信時処理と、通信メッセージの受信時処理とを行う。そこで各処理について、以下に詳述する。
［メッセージカウンタの同期処理］
認証子生成部３３は、ＭＢＯＸ３１ｂから同期用メッセージＭＡが入力されたとき、同期用メッセージＭＡを認証するとともに、認証できたことを条件に「上位ビットＭＣＨ」の値を同期用メッセージＭＡに含まれている「上位ビットＭＣＨ」の値により更新する。また、認証子生成部３３は、「上位ビットＭＣＨ」の値の更新を条件に「下位ビットＭＣＬ」の値を初期化して「０」にする。これにより「下位ビットＭＣＬ」は「０」から最大値までの範囲で更新可能に設定される。
【００４５】
また、認証子生成部３３は、同期用メッセージＭＡの認証を行う。認証子生成部３３は、ＭＢＯＸ３１ｂから入力した同期用メッセージＭＡから「認証子ＡＣ１」と「上位ビットＭＣＨ」を取得する。そして、認証子生成部３３は、取得した「上位ビットＭＣＨ」を、暗号化エンジン３５で暗号化して認証子を再生成する。そして、認証子生成部３３は、再生成した認証子と同期用メッセージＭＡから取得した「認証子ＡＣ１」とを比較し、比較の結果が一致すれば同期用メッセージＭＡを認証する旨を判定し、一致しないのであれば同期用メッセージＭＡを認証しない旨を判定する。
【００４６】
通常、認証子生成部３３に記憶されている「上位ビットＭＣＨ」は、同期用メッセージＭＡが入力されることで、定期的、又は、所定の期間以内毎に更新される。一方、電源投入直後やリセット直後であって同期用メッセージＭＡが受信されて入力されるまでの間は、認証子生成部３３に記憶されている「上位ビットＭＣＨ」は、初期値のままであったり、更新されていない状態であったりする。更新されていない状態とは、「上位ビットＭＣＨ」が所定の期間初期値であって、一度も、又は、長期間、同期用メッセージが受信されていないために更新されていない状態である。
【００４７】
なお、認証子生成部３３は、暗号化エンジン３５を備えている。暗号化エンジン３５は、暗号鍵ＥＫが設定されており、認証子生成部３３からメッセージデータＤＴやメッセージカウンタＭＣを入力し、暗号鍵ＥＫで暗号化することで認証子を生成する。暗号鍵ＥＫは、ゲートウェイ１０と同じものが設定されていることから、第１ＥＣＵ２１とゲートウェイ１０との間、及び、第１ＥＣＵ２１と第２〜４ＥＣＵ２２〜２４との間ではそれぞれ暗号化された通信が可能である。なお、暗号鍵ＥＫは、耐タンパメモリ等を用いて外部から取得不可能であればなおよい。
【００４８】
［通信メッセージの送信時処理］
認証子生成部３３は、通信メッセージＭＢの送信時処理として、送信する通信メッセージＭＢの認証子の生成処理を行う。認証子生成部３３は、メッセージ処理部３４から「メッセージデータＤＴ」が入力される。認証子生成部３３は、管理している「下位ビットＭＣＬ」と同期用メッセージＭＡから取得して保持している「上位ビットＭＣＨ」とから、メッセージカウンタＭＣを再構成するとともに、暗号化エンジン３５で、再構成したメッセージカウンタＭＣと入力されたメッセージデータＤＴとを暗号鍵ＥＫで暗号化して「認証子ＡＣ２」を生成する。また、認証子生成部３３は、入力した「メッセージデータＤＴ」と、「認証子ＡＣ２」の生成に使用した「下位ビットＭＣＬ」と、生成した「認証子ＡＣ２」とをメッセージ処理部３４に出力する。そして、メッセージ処理部３４は、認証子生成部３３から入力した「メッセージデータＤＴ」、「下位ビットＭＣＬ」及び「認証子ＡＣ２」から送信する通信メッセージＭＢを生成するとともに、この生成した通信メッセージＭＢをＭＢＯＸ３１ｃに出力する。また、認証子生成部３３は、「認証子ＡＣ２」を生成したことに対応して「下位ビットＭＣＬ」を１つ大きい値に更新する。これによって、「認証子ＡＣ２」が生成されるとき、メッセージカウンタＭＣが過去の値と二度と同じ値にならないようになっている。
【００４９】
［通信メッセージの受信時処理］
認証子生成部３３は、通信メッセージＭＢの受信時処理として、受信した通信メッセージＭＢの認証処理を行う。認証処理では、「認証子ＡＣ２」に基づく認証を行う。
【００５０】
つまり、図５に示すように、認証子生成部３３には、メッセージ処理部３４から受信した通信メッセージＭＢの「メッセージデータＤＴ」と、メッセージカウンタＭＣのうちの「下位ビットＭＣＬ」と、「認証子ＡＣ２」とが入力される。認証子生成部３３は、入力された「下位ビットＭＣＬ」と、保持している「上位ビットＭＣＨ」とから、メッセージカウンタＭＣを再構成するとともに、暗号化エンジン３５で、再構成したメッセージカウンタＭＣと入力された「メッセージデータＤＴ」とを暗号鍵ＥＫで暗号化して「認証子ＡＣ３」を再生成する。また、認証子生成部３３は、入力した「認証子ＡＣ２」と、再生成した「認証子ＡＣ３」とを比較して、一致すれば認証する旨を判定し、一致しないのであれば認証しない旨を判定する。そして、認証子生成部３３は、認証の判定結果をメッセージ処理部３４に出力する。メッセージ処理部３４は、認証された通信メッセージＭＢの「メッセージデータＤＴ」を情報処理部３２に出力する。一方、メッセージ処理部３４は、認証されなかった通信メッセージＭＢに対して仮受信判定部３７から受信の可否判断を取得し、受信「可」であれば、通信メッセージＭＢの「メッセージデータＤＴ」を情報処理部３２に出力し、受信「否」であれば、通信メッセージＭＢの「メッセージデータＤＴ」を破棄する。
【００５１】
本実施形態の通信システムの動作を説明する。
ここでは説明の便宜上、通信メッセージＭＢは、第１ＥＣＵ２１から送信されて、第３ＥＣＵ２３に受信されるものとする。
【００５２】
［上位ビットの更新］
図６及び図７には、ＥＣＵ２１〜２４の認証子生成部３３が保持しているメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を更新する手順を示す。この手順は、ゲートウェイ１０やＥＣＵ２１〜２４で所定の周期毎、又は所定の条件が成立する毎に実行が開始される。
【００５３】
図６に示すように、ゲートウェイ１０は、同期用メッセージＭＡを送信するタイミングであるか否かを判定する（図６のステップＳ１０）。送信するタイミングは、例えば、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」がゲートウェイ１０のコード管理部１１により更新されたとき等である。送信するタイミングではないと判定した場合（図６のステップＳ１０でＮＯ）、上位ビットを更新する処理が一旦終了される。
【００５４】
一方、送信するタイミングであると判定した場合（図６のステップＳ１０でＹＥＳ）、ゲートウェイ１０は、「同期用メッセージＭＡ」を全ＥＣＵ２１〜２４に送信する（図６のステップＳ１１）。そして、上位ビットを更新する処理は一旦終了する。
【００５５】
図７に示すように、各ＥＣＵ２１〜２４は、同期用メッセージＭＡを受信したか否かを判定する（図７のステップＳ２０）。同期用メッセージＭＡを受信していないと判定した場合（図７のステップＳ２０でＮＯ）、上位ビットを更新する処理は一旦終了する。一方、同期用メッセージＭＡを受信したと判定した場合（図７のステップＳ２０でＹＥＳ）、各ＥＣＵ２１〜２４は、受信した同期用メッセージＭＡの「認証子ＡＣ１」を認証する（図７のステップＳ２１）。「認証子ＡＣ１」の認証は、認証子生成部３３で再生成した認証子との比較で行われ、比較の結果が一致すれば認証される一方、比較の結果が一致しなければ認証されない。同期用メッセージＭＡの「認証子ＡＣ１」を認証できない場合（図７のステップＳ２１でＮＯ）、上位ビットを更新する処理は一旦終了する。
【００５６】
一方、同期用メッセージＭＡの認証子ＡＣ１を認証した場合（図７のステップＳ２１でＹＥＳ）、各ＥＣＵ２１〜２４は、記憶しているメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を更新する（図７のステップＳ２２）。そして、上位ビットを更新する処理は一旦終了する。
【００５７】
［通信メッセージの送信処理］
図４に示すように、第１ＥＣＵ２１は、情報処理部３２が「メッセージデータＤＴ」を生成すると、認証子生成部３３で「メッセージデータＤＴ」とメッセージカウンタＭＣとに基づいて「識別子ＡＣ２」を生成する。そして、第１ＥＣＵ２１は、「識別子ＡＣ２」を生成したときの「メッセージデータＤＴ」及びメッセージカウンタＭＣのうちの「下位ビットＭＣＬ」と、生成した「識別子ＡＣ２」とから通信メッセージＭＢを生成するとともに、この生成した通信メッセージＭＢを通信用バスＬ１に送信する。通信用バスＬ１に送信された通信メッセージＭＢは、ゲートウェイ１０で通信用バスＬ１から通信用バスＬ２に転送されて、通信用バスＬ２に接続されている第３ＥＣＵ２３で受信できるようになる。
【００５８】
［通信メッセージの受信処理］
図８及び図９に示す通信メッセージの受信処理は、所定の周期で繰り返し実行される、又は、通信メッセージＭＢの受信に応じて実行される。
【００５９】
図８に示すように、第３ＥＣＵ２３は、受信した通信メッセージＭＢがメッセージ処理部３４で取得されたことに基づいて、認証子生成部３３で同期用メッセージＭＡを受信しているか否かを判定する（図８のステップＳ５０）。同期用メッセージＭＡを受信しているか否かは、同期用メッセージＭＡに対応するメッセージＩＤを有する通信メッセージが受信されたか否か、及び、同期用メッセージＭＡが認証子生成部３３に入力されたか否かの少なくとも一方に基づいて判定される。よって、同期用メッセージＭＡが受信できていいないことは、同期用メッセージＭＡに対応するメッセージＩＤを有する通信メッセージが受信されていないこと、及び、同期用メッセージＭＡが認証子生成部３３に入力されていないことの少なくとも一方に基づいて判定される。また、受信しているか否かは、第３ＥＣＵ２３が電源投入されたことやリセットされたことによってＥＣＵが起動された後であることに基づいて判定される。同期用メッセージＭＡを受信していないと判定した場合（図８のステップＳ５０でＮＯ）、第３ＥＣＵ２３は、ＥＣＵ起動から所定期間経過しているか否かを判定する（図８のステップＳ５１）。ＥＣＵ起動とは、電源投入後やリセット後にＥＣＵが起動することであり、所定期間は、ＥＣＵ起動後に同期用メッセージＭＡが受信されることが期待される通常の期間であるとともに、メッセージＩＤ毎に予め設定されている期間である。ＥＣＵ起動から所定期間経過していると判定した場合（図８のステップＳ５１でＹＥＳ）、第３ＥＣＵ２３は、メッセージ処理部３４で受信した「メッセージデータＤＴ」を破棄するとともに、認証失敗を情報処理部３２のアプリケーションに通知する（図８のステップＳ５６）。そして、第３ＥＣＵ２３は、通信メッセージＭＢの受信処理を一旦終了する。
【００６０】
一方、ＥＣＵ起動から所定期間経過していないと判定した場合（図８のステップＳ５１でＮＯ）、第３ＥＣＵ２３は、暗号化エンジン３５で「メッセージデータＤＴ」と再構成したメッセージカウンタＭＣとから「認証子ＡＣ３」を再生成する（図８のステップＳ５２）。続いて、第３ＥＣＵ２３は、認証子生成部３３で、受信した通信メッセージＭＢから取得した「識別子ＡＣ２」と、上記再生成した「認証子ＡＣ３」とを比較して一致するか否か判定する（図８のステップＳ５３）。一致しないと判定した場合（図８のステップＳ５３でＮＯ）、第３ＥＣＵ２３は、再度、ＥＣＵ起動から所定期間経過しているか否かを判定する（図８のステップＳ５４）。そして、ＥＣＵ起動から所定期間経過していると判定した場合（図８のステップＳ５４でＹＥＳ）、上述したステップＳ５６の処理が行なわれ、その後、通信メッセージＭＢの受信処理が一旦終了される。他方、ＥＣＵ起動から所定期間経過していないと判定した場合（図８のステップＳ５４でＮＯ）、又は、上記ステップＳ５３の判定で一致すると判定した場合（図８のステップＳ５３でＹＥＳ）、第３ＥＣＵ２３は、「メッセージデータＤＴ」を情報処理部３２のアプリケーションに送る（図８のステップＳ５５）。そして、第３ＥＣＵ２３は、通信メッセージＭＢの受信処理を一旦終了する。
【００６１】
一方、図９に示すように、同期用メッセージＭＡを受信していると判定した場合（図８のステップＳ５０でＹＥＳ）、第３ＥＣＵ２３は、認証子生成部３３で同期用メッセージＭＡを受信処理しているか否かを判定する（図９のステップＳ４０）。ここで、同期用メッセージＭＡを受信処理しているか否かは、同期用メッセージＭＡが受信処理されて「上位ビットＭＣＨ」が適切に更新されているか否かに基づいて判定される。すなわち、受信しているか否かは、第３ＥＣＵ２３が電源投入されたことやリセットされたことによってＥＣＵが起動された後について判定される。また、適切に更新されていることは、「上位ビットＭＣＨ」が初期値から変更されていること、更新が停止されていないこと、及び、定期的に更新されていることに基づいて判定される。同期用メッセージＭＡを受信処理していないと判定した場合（図９のステップＳ４０でＮＯ）、第３ＥＣＵ２３は、メッセージ処理部３４で受信した「メッセージデータＤＴ」を破棄するとともに、認証失敗を情報処理部３２のアプリケーションに通知する（図９のステップＳ４５）。そして、第３ＥＣＵ２３は、通信メッセージＭＢの受信処理を一旦終了する。
【００６２】
一方、同期用メッセージＭＡを受信処理していると判定した場合（図９のステップＳ４０でＹＥＳ）、図５を併せて参照すると、第３ＥＣＵ２３は、認証子生成部３３で通信メッセージＭＢから「メッセージデータＤＴ」と、メッセージカウンタＭＣのうちの「下位ビットＭＣＬ」と、「識別子ＡＣ２」とを取得する（図９のステップＳ４１）。また、第３ＥＣＵ２３は、認証子生成部３３でメッセージカウンタＭＣのうちの「下位ビットＭＣＬ」と、同期用メッセージＭＡから事前に取得したメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」とからメッセージカウンタＭＣを再構成する。そして、第３ＥＣＵ２３は、暗号化エンジン３５で「メッセージデータＤＴ」と再構成したメッセージカウンタＭＣとから「認証子ＡＣ３」を再生成する（図９のステップＳ４２）。続いて、第３ＥＣＵ２３は、認証子生成部３３で、取得した「識別子ＡＣ２」と再生成した「認証子ＡＣ３」とを比較して一致するか否か判定する（図９のステップＳ４３）。
【００６３】
一致すると判定された場合（図９のステップＳ４３でＹＥＳ）、第３ＥＣＵ２３は、「メッセージデータＤＴ」を情報処理部３２のアプリケーションに送る（図９のステップＳ４４）。一方、一致しないと判定した場合（図９のステップＳ４３でＮＯ）、第３ＥＣＵ２３は、上述したステップＳ４５の処理、つまり、メッセージ処理部３４で受信したメッセージデータＤＴを破棄するとともに、認証失敗を情報処理部３２のアプリケーションに通知する処理を行う。そして、第３ＥＣＵ２３は、通信メッセージＭＢの受信処理を一旦終了する。
【００６４】
以上説明した一連の処理により、時変パラメータを利用して通信メッセージの信頼性を確保する場合、認証されなかった通信メッセージＭＢであっても仮受信が「可」であれば、「メッセージデータＤＴ」が情報処理部３２へ送られるようになり、通信メッセージの授受にかかる遅延を抑制することができる。
【００６５】
以上説明したように、本実施形態に係る通信システムによれば、以下に示すような効果が得られるようになる。
（１）通信メッセージＭＢにはメッセージカウンタＭＣのうちの「下位ビットＭＣＬ」だけが含まれることとなり、メッセージデータのために多くの領域を確保することができる。また、「上位ビットＭＣＨ」は、ゲートウェイ１０によって管理されることから、各ＥＣＵ２１〜２４のそれぞれの間で同期されるようにもなる。つまり、受信側の各ＥＣＵ２１〜２４は、ゲートウェイ１０からの「上位ビットＭＣＨ」と、通信メッセージＭＢに含まれる「下位ビットＭＣＬ」とを組み合わせることで、送信側の各ＥＣＵ２１〜２４で「認証子ＡＣ２」の生成に利用されたメッセージカウンタＭＣを再構成することができる。これにより、メッセージカウンタＭＣの大きさを信頼性の確保に必要とされるサイズにしたとしても、通信メッセージＭＢの格納に要する容量を少なく抑えて、メッセージデータのための容量の減少を抑制することができる。これにより、通信量の増大を抑えつつ、通信メッセージＭＢの信頼性を確保することができるようになる。
【００６６】
（２）ゲートウェイ１０から送信されたメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」が受信されることによって、各ＥＣＵ２１〜２４に記憶されているメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」が、受信したメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」に更新されて、すなわち同期される。これにより、メッセージカウンタＭＣが「上位ビットＭＣＨ」と「下位ビットＭＣＬ」とに２分割されたとしても、通信メッセージＭＢをメッセージカウンタＭＣによって認証することが可能になる。
【００６７】
また、各ＥＣＵ２１〜２４に記憶されているメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を同期させることができる。よって、各ＥＣＵ２１〜２４に記憶されているメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」がＥＣＵ２１〜２４のリセット等により非同期に初期化されたりしたとしても、記憶しているメッセージカウンタＭＣが正常な値に設定し直されることで、認証を正常に行うことが可能にもなる。
【００６８】
（３）「メッセージＩＤ」の別にメッセージカウンタＭＣが管理されるので、メッセージカウンタＭＣの大きさが抑えられる。また、「メッセージＩＤ」の別であればメッセージカウンタＭＣのうちの「下位ビットＭＣＬ」の更新にも時間的な余裕が得られるようになることからメッセージカウンタＭＣの同期の自由度も高められる。
【００６９】
（４）同期用メッセージＭＡで送信されるメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を暗号鍵ＥＫを用いて暗号化して得られる「認証子ＡＣ１」を利用することで、ゲートウェイ１０から同期用メッセージＭＡで送信されるメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」についても、その通信内容の信頼性が維持されるようになる。
【００７０】
すなわち、ゲートウェイ１０から同期用メッセージＭＡで送信される「認証子ＡＣ１」は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」から生成された「認証子ＡＣ１」である。このため、この同期用メッセージＭＡを受信した各ＥＣＵ２１〜２４においても、同期用メッセージＭＡで送信された「認証子ＡＣ１」と、この同期用メッセージＭＡで送信されるメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」から再生成した認証子とが取得でき、これら認証子の比較で、同期用メッセージＭＡの認証が可能になる。よって、各ＥＣＵ２１〜２４は、ゲートウェイ１０からの同期用メッセージＭＡを受信することで、信頼性の確保されたメッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を取得し、これに基づく同期用メッセージＭＡの認証を行うことができるようになる。
【００７１】
（５）メッセージカウンタＭＣの値が重複することがないように更新されるので、一度送信された通信メッセージＭＢが再送信されたとしてもこれを無効と判断することができるようになる。
【００７２】
（６）認証子ＡＣ１，ＡＣ２の信頼性、つまり通信メッセージＭＢの信頼性が共通の暗号鍵ＥＫにより確保される。耐タンパメモリ等を用いて暗号鍵ＥＫを外部から取得不可能にすればなおよい。
【００７３】
（７）第３ＥＣＵ２３は、メッセージカウンタＭＣのうちの上位ビットＭＣＨを含む同期用メッセージＭＡが受信できていないことを条件に、受信した通信メッセージＭＢを認証されたものとして取り扱う。これにより、第３ＥＣＵ２３は、電源投入直後やリセット後であって、メッセージカウンタＭＣのうちの上位ビットＭＣＨを含む同期用メッセージＭＡをゲートウェイ１０からまだ受信できていない場合であっても、第１ＥＣＵ２１と第３ＥＣＵ２３との間で共有する必要のあるメッセージデータＤＴを共有できるようになる。なお、その後、同期用メッセージＭＡが受信されれば、通信メッセージＭＢが認証されるようになることから必要とされる信頼性も維持される。
【００７４】
（その他の実施形態）
なお、上記実施形態は、以下の態様で実施することもできる。
［同期用メッセージ］
・上記実施形態では、メッセージカウンタが同期用メッセージで送信される場合について例示した。このとき、１つのメッセージＩＤに対して、同期用メッセージに用いるメッセージＩＤを１つずつ設けるようにしてもよい。この場合、通信システム全体としてメッセージＩＤの数が２倍以上になるおそれがある。
【００７５】
また、すべてのメッセージＩＤに対して、同期用メッセージに用いるメッセージＩＤを１つだけ設けるようにしてもよい。この場合、通信システム全体としてメッセージＩＤの数が１つ増えるだけである。さらに、全部よりも少ない複数のメッセージＩＤに対して、同期用メッセージに用いるメッセージＩＤを１つずつ設けるようにしてもよい。すなわち、同期用メッセージを共用することができれば、数に限りのあるメッセージＩＤのなかから同期用メッセージに割り当てるメッセージＩＤの数を少なく抑えることができる。メッセージＩＤの数が少なく抑えられれば、メッセージＩＤやメッセージデータを記憶するための領域の増加の抑制、処理負荷の増大の抑制、通信負荷の増大の抑制等も図られる。
【００７６】
［ゲートウェイ］
・上記実施形態では、ゲートウェイ１０は、複数の通信用バスＬ１，Ｌ２の間における通信メッセージを中継する場合について例示した。しかしこれに限らず、ゲートウェイは、１つの通信用バスに接続されていてもよいし、２つよりも多い通信用バスの間に通信メッセージを中継してもよい。
【００７７】
・上記実施形態では、ゲートウェイ１０が同期用メッセージＭＡを管理して送信する場合について例示した。しかしこれに限らず、ＥＣＵが同期用メッセージを管理して送信してもよい。
【００７８】
・上記実施形態では、１つのゲートウェイ１０が同期用メッセージＭＡを管理して送信する場合について例示した。しかしこれに限らず、複数のゲートウェイやＥＣＵが同期用メッセージを分担して管理してもよい。
【００７９】
・上記実施形態では、コード管理部１１は、メッセージカウンタＭＣのうちの「上位ビットＭＣＨ」を記憶、管理する場合について例示した。しかしこれに限らず、コード管理部は、メッセージカウンタＭＣの全長を保持していてもよい。そして、メッセージカウンタＭＣの「上位ビットＭＣＨ」に対応するビット部分を管理するようにしてもよい。なお、メッセージカウンタＭＣのうちの「下位ビットＭＣＬ」は最新の値を通信メッセージＭＢから取得してもよい。
【００８０】
・上記実施形態では、送信部１２はメッセージカウンタＭＣの一部を送信する場合について例示した。しかしこれに限らず、ゲートウェイがメッセージカウンタの全体を保持していれば、送信部は同期用メッセージでメッセージカウンタの全体（全ビット数）を送信してもよい。なお、同期用メッセージを受信したＥＣＵは、メッセージカウンタの全体（全ビット数）のうちから上位ビットに対応する部分だけを利用すればよい。
【００８１】
［通信プロトコル］
・上記実施形態では、通信プロトコルがＣＡＮプロトコルである場合について例示した。しかしこれに限らず、通信メッセージの信頼性確保にメッセージカウンタを用いるのであれば、通信プロトコルは、ＣＡＮプロトコル以外のプロトコル、例えば、イーサーネット（登録商標）やフレックスレイ（登録商標）などの通信プロトコルであってもよい。
【００８２】
［メッセージカウンタ］
・上記実施形態では、メッセージカウンタＭＣが「下位ビットＭＣＬ」と「上位ビットＭＣＨ」とからなる場合について例示した。しかしこれに限らず、メッセージカウンタは、ビット列のうち上位ビットとする位置と、下位ビットとする位置とが逆になってもよいし、別に確保された記憶領域をそれぞれ上位ビット用と下位ビット用として扱うようにしてもよい。
【００８３】
・上記実施形態では、メッセージカウンタＭＣの長さが８バイト（６４ビット）である場合について例示した。しかしこれに限らず、二度と同じ値が繰り返されないか、又は、同じ値が繰り返されるにしても長時間の時間間隔が確保できれば、メッセージカウンタの長さは、６４ビットよも長い１２４ビット等や、逆に、６４ビットよも短い３２ビット等であってもよい。
【００８４】
・上記実施形態では、コード管理部１１は、「下位ビットＭＣＬ」が最大値になることに応じて「上位ビットＭＣＨ」を更新する場合、いわゆる、ビット列において桁上がりが生じることと同様の態様について例示した。しかしこれに限らず、コード管理部はさらに、同期用メッセージＭＡを送信する所定の条件が成立することに応じて「上位ビットＭＣＨ」を更新してもよい。所定の条件には、イグニッションが「オフ」から「オン」された場合や、先の同期用メッセージを更新（送信）した時点から所定の時間（例えば、Ｙｍｓｅｃ：Ｙは設定可能な値）が経過した場合等の１又は複数の条件、及び、それらの条件の組み合わせからなる条件とすることができる。
【００８５】
・上記実施形態では、メッセージカウンタＭＣの「下位ビットＭＣＬ」が「０」から最大値まで変化したことに応じてゲートウェイ１０で「上位ビットＭＣＨ」の値が「１」だけ増加される（単調増加される）場合について例示した。しかしこれに限らず、メッセージカウンタＭＣが二度と同じ値にならないようにできるのであれば、「下位ビットＭＣＬ」が最大値を超えるよりも以前のタイミングを更新タイミングとして「上位ビットＭＣＨ」を更新してもよい。このとき、できるだけ「下位ビットＭＣＬ」の最大値に近い値であるときを更新タイミングとすれば、メッセージカウンタＭＣのビット数を有効に利用できるようになる。例えば、コード管理部で、ＥＣＵが送信する通信メッセージを受信することでメッセージカウンタのうちの「下位ビットＭＣＬ」を監視し、この「下位ビットＭＣＬ」が最大値未満に設定された閾値である更新値以上になったときを更新タイミングにするようにすればよい。
【００８６】
・上記実施形態では、メッセージカウンタＭＣのうちの「下位ビットＭＣＬ」が初期値の「０」から最大値に向けて変化する場合について例示した。しかしこれに限らず、初期値を「０」より大きい値に設定し、最大値の次に「０」に戻して初期値の手前の値まで変化させるようにしてもよい。
【００８７】
・上記実施形態では、メッセージカウンタは通信メッセージが送信される都度、値が「１」ずつ増加される場合について例示した。しかしこれに限らず、通信メッセージの信頼性が確保されるのであれば、メッセージカウンタは、例えば、二度と同じ値を使用しないように最大値から「０」まで減少してもよいし、不規則な変化をしてもよい。なお、上位ビットと下位ビットとは別々に管理されることから、上位ビットの変化態様と下位ビットの変化態様とは同一であってもよいし、別々であってもよい。
【００８８】
・上記実施形態では、１つのメッセージＩＤに１つのメッセージカウンタＭＣが対応している場合について例示した。しかしこれに限らず、１つのメッセージカウンタに、複数のメッセージＩＤが対応してもよい。メッセージカウンタが、複数のメッセージＩＤに対応する場合、管理するメッセージカウンタの数を減らすことができるようにもなる。
【００８９】
・上記実施形態では、メッセージカウンタＭＣが二度と同じ値にならないようにしている場合について例示したが、これに限らず、メッセージカウンタＭＣが一時的に同じ値になったりしてもよい。例えば、「上位ビット」の更新が間に合わなかったり、同期できなかったりした場合、メッセージカウンタが一時的に過去と同じ値になって二度使用されてもよい。また、必要な信頼性が確保できるのであれば、同じ値を、所定回数だけ使いまわすようにしてもよい。
【００９０】
・上記実施形態では、「上位ビットＭＣＨ」を７バイト、「下位ビットＭＣＬ」を１バイトとする場合について例示した。しかしこれに限らず、上位ビットと下位ビットとは、それ以外のバイト、例えば、「６バイト」及び「２バイト」等で区切ってもよい。また、バイト単位で区切るのではなく、例えば「６０ビット」と「４ビット」と等、ビットの単位で区切ってもよい。
【００９１】
［メッセージボックス］
・上記実施形態では、複数のＭＢＯＸ３１ａ，３１ｂ，３１ｃを備える場合について例示したが、これに限らず、ＭＢＯＸは、送受信する通信メッセージがＥＣＵのなかの適切な部分と授受できるように中継及び一時格納できるのであれば、１つでもよいし、２つや、４つ以上であってもよい。
【００９２】
［認証子生成部］
・上記実施形態では、「認証子ＡＣ２」に基づく認証を行う場合について例示した。このとき、「認証子ＡＣ２」に基づく認証に先立ち、通信メッセージＭＢからメッセージカウンタＭＣのうちの「下位ビットＭＣＬ」を取得し、取得した「下位ビットＭＣＬ」が、前回の取得した「下位ビットＭＣＬ」よりも大きい（更新されている）か否かを確認してもよい。そして、大きい（更新されている）場合、「認証子ＡＣ２」に基づく認証を行い、逆に、大きくない（更新されていない）場合、認証しない旨を判定するとともに、「認証子ＡＣ２」に基づく認証を割愛してもよい。
【符号の説明】
【００９３】
１０…ゲートウェイ、１１…コード管理部、１２…送信部、１３…通信Ｉ／Ｆ部、２１〜２４…第１電子制御装置（ＥＣＵ）、３０…通信Ｉ／Ｆ部、３１ａ，３１ｂ，３１ｃ…ＭＢＯＸ、３２…情報処理部、３３…認証子生成部、３４…メッセージ処理部、３５…暗号化エンジン、１１１…暗号化エンジン、ＤＴ…メッセージデータ、ＥＫ…暗号鍵、Ｌ１，Ｌ２…通信用バス、ＭＡ…同期用メッセージ、ＭＢ…通信メッセージ、ＭＣ…メッセージカウンタ、ＡＣ１，ＡＣ２…認証子。
【図１】
2020123961.tif 000003
【図２】
2020123961.tif 000004
【図３】
2020123961.tif 000005
【図４】
2020123961.tif 000006
【図５】
2020123961.tif 000007
【図６】
2020123961.tif 000008
【図７】
2020123961.tif 000009
【図８】
2020123961.tif 000010
【図９】
2020123961.tif 000011
【手続補正書】
【提出日】令和2年4月28日(2020.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の情報と第２の情報とが組み合わされてなる管理コードのうちの前記第１の情報を記憶するとともに、記憶する前記第１の情報を前記第２の情報が複数回更新されることに基づいて１回更新するように管理する管理装置と、
前記管理装置に通信ネットワークを介して通信可能に接続された受信装置及び送信装置とを備え、
前記管理装置は、前記第1の情報を含む同期用メッセージを送信し、前記受信装置及び送信装置は、前記同期用メッセージを受信する都度、前記受信した同期用メッセージに含まれる前記第１の情報を保持するものであり、
前記送信装置は、前記管理コードのうちの前記第２の情報を管理するものであり、通信データと、前記保持する前記第１の情報及び前記管理する第２の情報を組み合わせてなる前記管理コードとから認証子を生成して、前記通信データと、前記管理する第２の情報と、前記生成した認証子とを含み、前記保持する第１の情報を含まない通信メッセージを生成して送信するとともに、通信メッセージの生成後に前記管理する第２の情報の値を更新し、
前記受信装置は、前記通信メッセージを受信して、前記受信した通信メッセージに含まれる認証子と、前記受信した通信メッセージに基づいて再生成した認証子との比較に基づいて前記受信した通信メッセージを認証するものであって、
前記受信装置は、前記保持する第１の情報及び前記受信した通信メッセージから取得した前記第２の情報を組み合わせて管理コードを再構成し、前記受信した通信メッセージから取得した通信データと、前記再構成した管理コードとから前記再生成した認証子を取得するものであり、
前記受信装置は、前記同期用メッセージを受信しておらず、且つ当該受信装置が起動してから所定期間経過した場合には、前記受信した通信メッセージを破棄する
ことを特徴とする通信システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
ところで上記技術では、電源投入後やリセット後等であって時変パラメータが同期されるまでの間、受信装置と送信装置との間でそれぞれの記憶している時変パラメータが相違しているおそれがある。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
以下、上記課題を解決するための手段を記載する。
上記目的を達成するために通信システムは、第１の情報と第２の情報とが組み合わされてなる管理コードのうちの前記第１の情報を記憶するとともに、記憶する前記第１の情報を前記第２の情報が複数回更新されることに基づいて１回更新するように管理する管理装置と、前記管理装置に通信ネットワークを介して通信可能に接続された受信装置及び送信装置とを備え、前記管理装置は、前記第1の情報を含む同期用メッセージを送信し、前記受信装置及び送信装置は、前記同期用メッセージを受信する都度、前記受信した同期用メッセージに含まれる前記第１の情報を保持するものであり、前記送信装置は、前記管理コードのうちの前記第２の情報を管理するものであり、通信データと、前記保持する前記第１の情報及び前記管理する第２の情報を組み合わせてなる前記管理コードとから認証子を生成して、前記通信データと、前記管理する第２の情報と、前記生成した認証子とを含み、前記保持する第１の情報を含まない通信メッセージを生成して送信するとともに、通信メッセージの生成後に前記管理する第２の情報の値を更新し、前記受信装置は、前記通信メッセージを受信して、前記受信した通信メッセージに含まれる認証子と、前記受信した通信メッセージに基づいて再生成した認証子との比較に基づいて前記受信した通信メッセージを認証するものであって、前記受信装置は、前記保持する第１の情報及び前記受信した通信メッセージから取得した前記第２の情報を組み合わせて管理コードを再構成し、前記受信した通信メッセージから取得した通信データと、前記再構成した管理コードとから前記再生成した認証子を取得するものであり、前記受信装置は、前記同期用メッセージを受信しておらず、且つ当該受信装置が起動してから所定期間経過した場合には、前記受信した通信メッセージを破棄することを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】