(57)【特許請求の範囲】
【請求項１】
ネットワークを介してメッセージを送受信する複数の通信装置と、前記メッセージの認証を行う認証装置とを含む通信システムであって、
前記通信装置は、
送信する各メッセージのデータフィールドに格納される送信データに対する前記データフィールドの最大データ長に基づいた空き領域を検出する手段と、
前記空き領域が検出された場合に、前記送信する複数のメッセージを入力データとして、共通鍵に基づく送信側メッセージ認証子を生成する手段と、
前記生成された送信側メッセージ認証子を、前記送信データを含むデータフィールドの前記空き領域に格納する手段と、
前記送信データ及び前記送信側メッセージ認証子を含むメッセージを送信するメッセージ送信手段と、含み、
前記認証装置は、
前記ネットワークを介して前記通信装置から送信される各メッセージを受信するとともに、前記通信装置から受信したメッセージに前記送信側メッセージ認証子が含まれているか否かを判別する手段と、
前記送信側メッセージ認証子が含まれていると判別された場合に、前記受信した各メッセージから当該送信側メッセージ認証子の前記入力データに対応する前記複数のメッセージを入力データとして、前記通信装置と共有される前記共通鍵に基づく受信側メッセージ認証子を生成する手段と、
前記生成された受信側メッセージ認証子と前記送信側メッセージ認証子とに基づいて、前記通信装置が送信する複数のメッセージを対象にしたメッセージ認証処理を遂行する手段と、を含むことを特徴とする通信システム。
【請求項２】
ネットワークを介してメッセージを送受信する複数の通信装置と、前記メッセージの認証を行う認証装置とを含む通信システムであって、
前記通信装置は、
前記メッセージのデータフィールドに格納される送信データを、送信するメッセージ順に記憶する記憶手段と、
前記データフィールドの最大データ長に基づいて、送信するメッセージの前記送信データのデータ長に対する前記データフィールドの空き領域を検出する手段と、
前記空き領域が検出された場合に、当該空き領域が検出された第１メッセージの送信順を基準に、前記第１メッセージの送信データと前記第１メッセージ以前に送信済みの少なくとも１つ以上のメッセージであって前記空き領域が検出されなかった第２メッセージの送信データとを入力データとして、共通鍵に基づく送信側メッセージ認証子を生成する手段と、
前記生成された送信側メッセージ認証子を、前記送信データを含むデータフィールドの前記空き領域に格納する手段と、
前記送信データ及び前記送信側メッセージ認証子を含む前記第１メッセージを送信するメッセージ送信手段と、含み、
前記認証装置は、
前記ネットワークを介して前記通信装置が送信した各メッセージを受信し、前記通信装置が送信した送信順に各メッセージの送信データを記憶する記憶手段と、
受信したメッセージが前記送信側メッセージ認証子を含むかを判別する手段と、
前記送信側メッセージ認証子を含むと判別された場合に、当該送信側メッセージ認証子を含むと判別された前記第１メッセージの受信順を基準に、前記第１メッセージの送信データ及び前記第１メッセージ以前に受信済の少なくとも１つ以上の前記第２メッセージの送信データを入力データとして、前記通信装置と共有される前記共通鍵に基づく受信側メッセージ認証子を生成する手段と、
前記生成された受信側メッセージ認証子と前記送信側メッセージ認証子とに基づいて、前記通信装置が送信する複数のメッセージを対象にしたメッセージ認証処理を遂行する手段と、を含むことを特徴とする通信システム。
【請求項３】
前記通信装置は、前記送信側メッセージ認証子を前記空き領域のデータ長以下に圧縮する圧縮手段をさらに含み、
前記認証装置は、前記受信側メッセージ認証子を前記空き領域のデータ長以下に圧縮する圧縮手段をさらに含むことを特徴とする請求項１又は２に記載の通信システム。
【請求項４】
前記メッセージ認証処理を遂行する手段は、前記生成された受信側メッセージ認証子と前記送信側メッセージ認証子とが一致するか否かを判別し、
前記認証装置は、一致しないと判別された場合に、前記複数のメッセージに対するエラー情報を前記ネットワークに出力する手段をさらに含むことを特徴とする請求項１から３のいずれか１つに記載の通信システム
【請求項５】
前記通信装置は、送信するメッセージの種別毎に重要度が定義されたメッセージ重要度情報を記憶する重要度記憶手段と、
前記送信する各メッセージを前記重要度を用いてフィルタリングするフィルタリング手段と、をさらに含み、
前記認証装置は、受信したメッセージの種別毎に重要度が定義されたメッセージ重要度情報を記憶する重要度記憶手段と、
前記受信した各メッセージを前記重要度を用いてフィルタリングするフィルタリング手段と、をさらに含み、
前記送信側メッセージ認証子を生成する手段は、前記フィルタリングされたメッセージを対象に前記送信側メッセージ認証子を生成し、
前記受信側メッセージ認証子を生成する手段は、前記フィルタリングされたメッセージを対象に前記受信側メッセージ認証子を生成すること、を特徴とする請求項１から４のいずれか１つに記載の通信システム。
【請求項６】
前記通信装置は、送信するメッセージに対するメッセージ認証子の生成条件を定義した認証子付与条件情報を記憶する認証子付与条件記憶手段と、
前記空き領域が検出されなかった場合に、前記認証子付与条件にマッチングする否かを判別する手段と、をさらに含み、
前記送信側メッセージ認証子を生成する手段は、前記認証子付与条件にマッチングすると判別された場合に、前記空き領域が検出されなかった複数のメッセージを入力データとして、共通鍵に基づく送信側メッセージ認証子を生成し、
前記メッセージ送信手段は、前記生成された送信側メッセージ認証子のみをデータフィールドに含む認証専用メッセージを送信し、
前記認証装置の前記受信側メッセージ認証子を生成する手段は、前記認証専用メッセージを受信した場合に、前記受信した各メッセージから前記認証専用メッセージに含まれる送信側メッセージ認証子の前記入力データに対応する前記複数のメッセージを入力データとして、前記通信装置と共有される前記共通鍵に基づく受信側メッセージ認証子を生成することを特徴とする請求項１から５のいずれか１つに記載の通信システム。
【請求項７】
ネットワークを介してメッセージを送受信する複数の通信装置と、前記メッセージの認証を行う認証装置から構成される通信システムであって、
前記通信装置は、
送信するメッセージに対するメッセージ認証子の生成条件を定義した認証子付与条件情報を記憶する認証子付与条件記憶手段と、
前記送信するメッセージが前記認証子付与条件にマッチングする否かを判別する手段と、
前記認証子付与条件にマッチングすると判別された場合に、前記マッチングすると判別された時点における複数のメッセージを入力データとして、共通鍵に基づく送信側メッセージ認証子を生成する手段と、
前記生成された送信側メッセージ認証子のみをデータフィールドに含む認証専用メッセージを送信する前記メッセージ送信手段と、を含み、
前記認証装置は、
前記ネットワークを介して前記通信装置から送信される各メッセージを受信するとともに、前記通信装置から受信したメッセージが前記認証専用メッセージであるか否かを判別する手段と、
前記認証専用メッセージであると判別された場合に、前記受信した各メッセージから前記送信側メッセージ認証子の前記入力データに対応する前記複数のメッセージを入力データとして、前記通信装置と共有される前記共通鍵に基づく受信側メッセージ認証子を生成する手段と、
前記生成された受信側メッセージ認証子と前記送信側メッセージ認証子とに基づいて、前記通信装置が送信する複数のメッセージを対象にしたメッセージ認証処理を遂行する手段と、を含むことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メッセージ認証を行う通信に関する。
【背景技術】
【０００２】
通信システムで送受信されるメッセージに対する改ざんやなりすましに関し、メッセージの完全性（送信側が送信したメッセージが正しく受信側に届くこと）を保証する技術が提案されている。
【０００３】
例えば、送信側が、送信するメッセージに対応するメッセージ認証子を送信し、受信側が、受信したメッセージ認証子と、当該受信側で送信側と同じアルゴリズムを用いて生成したメッセージ認証子とを比較することで、送受信されたメッセージの完全性を検証することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１６７９４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通信負荷を抑制したメッセージ認証を行う通信システムを提供する。
【課題を解決するための手段】
【０００６】
実施形態の通信システムは、ネットワークを介してメッセージを送受信する複数の通信装置と、メッセージの認証を行う認証装置とを含む通信システムであり、通信装置は、送信する各メッセージのデータフィールドに格納される送信データに対するデータフィールドの最大データ長に基づいた空き領域を検出する手段と、空き領域が検出された場合に、複数のメッセージを入力データとして、共通鍵に基づく送信側メッセージ認証子を生成する手段と、生成された送信側メッセージ認証子を、送信データを含むデータフィールドの空き領域に格納する手段と、送信データ及び送信側メッセージ認証子を含むメッセージを送信するメッセージ送信手段と、含み、認証装置は、ネットワークを介して通信装置から送信される各メッセージを受信するとともに、通信装置から受信したメッセージに送信側メッセージ認証子が含まれているか否かを判別する手段と、送信側メッセージ認証子が含まれていると判別された場合に、受信した各メッセージから当該送信側メッセージ認証子の入力データに対応する複数のメッセージを入力データとして、通信装置と共有される共通鍵に基づく受信側メッセージ認証子を生成する手段と、生成された受信側メッセージ認証子と送信側メッセージ認証子とに基づいて、通信装置が送信する複数のメッセージを対象にしたメッセージ認証処理を遂行する手段と、を含むことを特徴とする。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態の通信システムの構成例を示す図である。
【図２】第１実施形態の通信システムのメッセージデータ例を示す図である。
【図３】第１実施形態の通信システムのメッセージ送信処理の説明図である。
【図４】第１実施形態の通信システムの通信装置に記憶されるデータ例を示す図である。
【図５】第１実施形態の通信システムのメッセージ送信処理の動作フローを示す図である。
【図６】第１実施形態の通信システムの認証子付与処理の動作フローを示す図である。
【図７】第１実施形態の通信システムの認証子生成処理の動作フローを示す図である。
【図８】第１実施形態の通信システムの認証装置に記憶されるデータ例を示す図である。
【図９】第１実施形態の通信システムのメッセージ受信処理の動作フローを示す図である。
【図１０】第１実施形態の通信システムの認証子検証処理の動作フローを示す図である。
【図１１】第２実施形態の通信システムの構成例を示す図である。
【図１２】第２実施形態のメッセージ重要度情報の一例を示す図である。
【図１３】第２実施形態の通信システムのメッセージ送信処理の動作フローを示す図である。
【図１４】第２実施形態の通信システムのメッセージ受信処理の動作フローを示す図である。
【図１５】第３実施形態の通信システムの構成例を示す図である。
【図１６】第３実施形態の認証子付与条件情報の一例を示す図である。
【図１７】第３実施形態の通信システムのメッセージ送信処理の説明図である。
【図１８】第３実施形態の通信システムの通信装置に記憶されるデータ例を示す図である。
【図１９】第３実施形態の通信システムの認証子付与処理の動作フローを示す図である。
【図２０】第３実施形態の通信システムの認証専用メッセージの認証子生成処理の動作フローを示す図である。
【図２１】第３実施形態の通信システムのメッセージ送信処理の変形例を示す図である。
【図２２】第３実施形態の通信システムのメッセージ受信処理の動作フローを示す図である。
【図２３】第３実施形態の通信システムの認証専用メッセージを用いた認証子検証処理の動作フローを示す図である。
【発明を実施するための形態】
【０００８】
以下、実施形態につき、図面を参照して説明する。
【０００９】
（第１実施形態）
図１から図１０は、第１実施形態に係る図である。図１は、本実施形態の通信システムの構成例を示す図である。本実施形態の通信システム１は、複数の通信装置１００及び少なくとも１つの認証装置２００を含み、各装置は通信線等のネットワークＮＷを介して接続される。
【００１０】
本実施形態の通信システム１は、通信装置１００がメッセージを送信する際に、送信するメッセージのデータフィールドの空き領域を検出する。空き領域が検出された場合に当該通信装置１００が送信する複数のメッセージを入力データとして送信側メッセージ認証子を生成して送信側メッセージ認証子を空き領域に格納したメッセージを送信する。ネットワークＮＷを介して接続する認証装置は、１つの認証子を用いた複数のメッセージを対象とするメッセージ認証処理を遂行する。
【００１１】
図２は、本実施形態の通信システム１で送受信されるメッセージのデータ構造の一例を示す図である。図２（ａ）に示すように、本実施形態のメッセージ構造は、へッダ、データフィールド、トレーラの各フィールドから構成される。
【００１２】
ヘッダには、メッセージの種類を一意に識別するメッセージＩＤ、データフィールドのデータ長などが格納される。
【００１３】
データフィールドには、アプリケーション部１０７が処理するデータ本体（送信データ）Ｄが格納される。データフィールドは、最大で格納可能なデータ長ｄ１が予め設定されており、このデータ長ｄ１の範囲内でデータ本体Ｄが格納される。例えば、ＣＡＮ通信の場合、データフィールドは０〜８バイトのフィールドである。最大で８バイトのデータ本体Ｄを格納することができ、データ本体Ｄは、１〜８バイトのデータ長ｄ２を有することになる。
【００１４】
本実施形態のメッセージは、データ本体Ｄのデータ長ｄ２がデータフィールドのデータ長ｄ１よりも小さい場合、データフィールド内に未使用領域が含まれ、例えば、データ本体Ｄが１バイトであれば、データフィールドの残り７バイトは、利用可能な領域（空き領域）となる。
【００１５】
本実施形態では、この利用可能なデータフィールドの空き領域を利用し、複数のメッセージデータを対象とした１つのメッセージ認証子Ｔが当該空き領域に格納される。データ本体Ｄ及びメッセージ認証子Ｔを含むメッセージは、送信元である通信装置１００から送信先の通信装置１００と認証装置２００とに伝送され、認証装置２００においてメッセージ認証子Ｔを用いたメッセージ認証が遂行される。
【００１６】
なお、データフィールドは、メッセージ毎にそのデータ長が異なる可変長のデータ領域であってもよい。例えば、データ本体Ｄが５バイトである場合、データフィールドの最大で利用可能なデータ長ｄ１の範囲内で、当該データ本体Ｄのデータ長ｄ２に合わせたデータ長にデータフィールドに可変したメッセージを生成することもできる。
【００１７】
トレーラには、データの整合性を確認するための情報などが格納される。例えば、ＣＡＮ通信の場合、誤り検出用のエラー検出情報としてＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）が格納される。
【００１８】
図２（ｂ）に示すメッセージＭ１は、データ本体Ｄのデータ長ｄ２がデータフィールドのデータ長ｄ１と同じあるメッセージデータである。また、図２（ｃ）に示すメッセージＭ２は、データ本体Ｄのデータ長ｄ２がデータフィールドのデータ長ｄ１よりも短い小さいメッセージであり、データフィールドの一部がデータ本体Ｄによって使用され、残りの一部が空き領域となっている。
【００１９】
図２（ｄ）は、認証子付きメッセージＭ３の一例を示す図である。認証子付きメッセージＭ３は、例えば、図２（ｃ）で示したデータフィールド内の空き領域にメッセージ認証子Ｔが格納されたメッセージである。空き領域には、当該空き領域のデータ長以下のデータ長のメッセージ認証子Ｔが格納され、空き領域のデータ長よりも短いメッセージ認証子Ｔも格納される。
【００２０】
通信装置１００は、通信システム１に接続される他の通信装置１００に伝送するメッセージデータを生成してネットワークＮＷに出力する送信機能、及び他の通信装置１００からネットワークＮＷに出力されたメッセージを受信する受信機能を備える。なお、本実施形態の通信装置１００は、受信機能を備えずに、所定のメッセージを生成して他の通信装置に送信する送信機能のみを具備するものが含まれてもよい。
【００２１】
通信装置１００は、通信部１０１、制御部１０２、記憶部１０３、鍵管理部１０４、認証子生成部１０５、認証子付与部１０６、及びアプリケーション部１０７を含んで構成される。これらの各部は、制御部１０２によって制御される。また、記憶部１０３、鍵管理部１０４、認証子生成部１０５、及び認証子付与部１０６は、本実施形態のメッセージ認証子処理手段として機能する。
【００２２】
通信部１０１は、ネットワークＮＷとの間の通信インタフェース制御を遂行し、ネットワークＮＷに生成されたメッセージデータを出力して他の通信装置１００及び認証装置２００に伝送したり、他の通信装置１００からネットワークＮＷに出力されたメッセージを受信する通信制御を行う。
【００２３】
記憶部１０３は、制御部１０２を介して読出／書込可能なハードウェア資源としての記憶装置であり、他の通信装置１００に伝送するメッセージに関する情報を記憶する。
【００２４】
鍵管理部１０４は、認証子生成部１０５によるメッセージ認証子Ｔの生成処理で使用する鍵情報である共通鍵Ｋを管理（記憶）する。本実施形態では、該共通鍵Ｋを用いたアルゴリズムを利用したメッセージ認証を行う。一例として、ＭＡＣ（ＭａｓｓａｇｅＡｕｔｈｅｎｔｉｃａｉｏｎＣｏｄｅ）アルゴリズムを利用することができ、ＭＡＣアルゴリズムは、ブロック暗号を利用したＣＭＡＣや鍵付きハッシュ関数を利用したＨＭＡＣなどがある。
【００２５】
なお、鍵管理部１０４で管理される共通鍵Ｋは、認証装置２００と予め共有されている。また、共通鍵Ｋは、通信システム１００を構成する各通信装置１００間で共通であってもよく、また、各通信装置１００で異なる共通鍵を適用することができる。この場合、各通信装置１００それぞれの複数の異なる共通鍵は、同様に認証装置２００と予め共有され、認証装置が各通信装置それぞれの複数の共通鍵を保持する。
【００２６】
また、通信装置１００は、鍵管理部１０４を含まない構成であってもよい。例えば、認証装置２００の鍵管理部２０４で管理される（記憶される）共通鍵Ｋを、認証装置２００から所定のタイミングで取得し、記憶部１０３や所定の記憶領域に記憶するように構成することも可能である。この場合においても、認証装置２００の鍵管理部２０４が各通信装置１００それぞれで異なる複数の共通鍵を管理するように構成することもできる。
【００２７】
認証子生成部１０５は、アプリケーション部１０７で生成されたメッセージに含まれるデータ本体Ｄ及び共通鍵Ｋを用いてメッセージ認証子Ｔを生成する。このとき、認証子生成部１０５は、データ圧縮機能を含むことができ、生成したメッセージ認証子Ｔを所定のデータ長に圧縮処理して圧縮メッセージ認証子σを生成することができる。
【００２８】
認証子付与部１０６は、アプリケーション部１０７で生成されるデータ本体Ｄのデータ長ｄ２からデータ本体Ｄが格納されるメッセージのデータフィールドの空き領域を検出する。認証子付与部１０６は、データ本体Ｄのデータ長ｄ２がデータフィールドのデータ長ｄ１に基づく所定値よりも小さいか否かを判別する処理を遂行し、当該データ本体Ｄに対応するメッセージのデータフィールドに所定値以上の空き領域が存在するか否かを検出する。
【００２９】
認証子付与部１０６は、データフィールドに所定値以上の空き領域が検出された場合に、認証子生成部１０５に制御部１０２を介してメッセージ認証子生成命令を送信する。また、認証子付与部１０６は、認証子生成部１０５で生成されたメッセージ認証子Ｔを、空き領域が所定値以上と判別されたデータフィールドの当該空き領域に格納する。
【００３０】
アプリケーション部１０７は、通信装置１００が備える不図示のタイマー部からの時刻通知や他の通信装置１００からのメッセージ受信などのイベントを契機として、送信するメッセージに含まれるデータ本体Ｄを生成する機能を遂行する。例えばＣＡＮ通信の場合、このデータ本体Ｄは、他の通信装置１００に送信する制御データである。
【００３１】
ここで、図３及び図４を参照して、本実施形態のメッセージ送信処理について詳細に説明する。図３は、本実施形態のメッセージ送信処理例を説明する模式図であり、図４は、記憶部１０３に記憶されるメッセージに関する情報の一例を示す図である。
【００３２】
通信装置１００は、アプリケーション部１０７でデータ本体Ｄが生成されると、メッセージ送信処理を遂行し、生成されたデータ本体Ｄをデータフィールドに含むメッセージデータを生成してネットワークＮＷに出力するが、通信装置１００は、メッセージ認証子付与処理を含むメッセージ送信処理を遂行し、メッセージデータを他の通信装置１００及び認証装置２００に送信する。
【００３３】
まず、通信装置１００の制御部１０２は、アプリケーション部１０７で生成されたデータ本体Ｄをデータフィールドに含む図２で示したデータ構造の送信メッセージを生成して送信する前に、アプリケーション部１０７で生成された全てのデータ本体Ｄを一旦記憶部１０３に送信順に記憶する。
【００３４】
図４に示すように、制御部１０２は、生成されたデータ本体ＤのメッセージＩＤ、データ本体Ｄ、メッセージ送信時刻Ｔｓ、メッセージステータスＳｍ、認証子ステータスＳｔを記憶部１０３に記憶する。これら記憶部１０３に記憶される情報は、通信装置１００が送信するメッセージに関する情報であり、送信する各メッセージ別のデータ本体Ｄを含むメッセージ送信履歴情報である。なお、メッセージの送信状況Ｓｍは、“未送信”、“送信済”、“送信成功”又は“送信失敗”の順に遷移するステータス情報であり、認証子ＴステータスＳｔは、“未送信”、“送信済”の順に遷移するステータス情報である。
【００３５】
認証子付与部１０６は、記憶部１０３に記憶されたデータ本体Ｄを参照し、データ本体Ｄのデータ長ｄ２及びデータフィールドのデータ長ｄ１に基づいて、データ本体Ｄが格納された際のデータフィールドの空き領域を検出する。この空き領域検出処理は、データ本体Ｄに対してデータフィールドに所定値以上の空き領域が存在するか、つまり、データ本体Ｄのデータ長ｄ２がデータフィールドのデータ長ｄ１に基づく所定値以下のデータ長であるか否かの判別処理を含むことができる。
【００３６】
本実施形態では、データ本体Ｄのデータ長ｄ２が、「データフィールドの最大データ長ｄ１−データ本体のデータ長ｄ２≧有効認証子データ長ｄａ」を満たすか否か（データ本体Ｄのデータ長ｄ２が、「データ本体Ｄのデータ長ｄ２≦データフィールドの最大データ長ｄ１−有効認証子データ長ｄａ」を満たす否か）を判別し、データフィールドに所定データ長以上の空き領域があるか否かを検出する。なお、データフィールドに空き領域が存在するか否かの検出と、空き領域が所定データ長以上であるか否かの検出とを、個別に行うことも可能であり、空き領域が存在しない場合には空き領域が所定データ長以上であるか否かを検出する処理を行わないように構成することができる。
【００３７】
認証子付与部１０６は、アプリケーション部１０７でその都度生成される送信メッセージに含まれるデータ本体Ｄに対するデータフィールドの空き領域検出処理を遂行し、空き領域が検出されない場合は、通信装置１００（制御部１０２）は、データ本体Ｄを含むメッセージを生成してネットワークＮＷに出力する。
【００３８】
図３の例ではメッセージ送信時刻の古い順に、データ本体Ｄ（ｎ−２）が格納されるメッセージＭ（ｎ−２）のデータフィールドには、空き領域が検出されなかったので、データ本体Ｄ（ｎ−２）を含むメッセージＭ（ｎ−２）は、ネットワークＮＷにそのまま出力される。データ本体Ｄ（ｎ−２）の次に生成されたデータ本体Ｄ（ｎ−１）が格納されるメッセージＭ（ｎ−１）のデータフィールドには、空き領域が検出されたものの、所定データ長以上の空き領域が検出されなかった、言い換えれば、データフィールドに空き領域は存在するが、メッセージ認証子Ｔを格納するに十分な空き領域は存在しないので、データ本体Ｄ（ｎ−１）を含むメッセージＭ（ｎ−１）も、ネットワークＮＷにそのまま出力される。
【００３９】
データ本体Ｄ（ｎ−１）の次に生成されたデータ本体Ｄ（ｎ）が格納されるメッセージＭ（ｎ）のデータフィールドには、所定データ長以上の空き領域が検出されたので、認証子付与部１０６は、メッセージ認証子Ｔを含むメッセージＭ（ｎ）を生成し、メッセージＭ（ｎ）は、認証子付きメッセージとしてネットワークＮＷに出力される。
【００４０】
認証子付与部１０６は、所定データ長以上の空き領域が検出されると、認証子生成部１０５に制御部１０２を介してメッセージ認証子生成命令を送信し、認証子生成部１０５は、メッセージ認証子生成命令に基づいて認証子生成処理を遂行する。
【００４１】
認証子生成部１０５は、記憶部１０３を参照し、所定データ長以上の空き領域が検出されたメッセージＭ（ｎ）を基準に、当該メッセージＭ（ｎ）を含む認証子対象メッセージを識別する。
【００４２】
本実施形態では、メッセージＭ（ｎ）の送信順を基準に、通信装置１００が送信したメッセージのうちメッセージ認証子Ｔを含まないで過去に送信された複数のメッセージＭ（ｍ），・・・，Ｍ（ｎ−１）を、記憶部１０３を参照して識別する。ここで、ｎは、送信時刻に基づく送信順を示すものであり、ｎが小さいほど送信順が古く、大きいほど最近送信されたものである。メッセージＭ（ｎ）は、送信順で最も最近に送信される未送信のメッセージである。
【００４３】
認証子生成部１０５は、認証子ステータスＳｔを参照することで、メッセージＭ（ｎ）の送信順を基準に、通信装置１００が送信したメッセージのうちメッセージ認証子Ｔを含まないで過去に送信された複数のメッセージＭ（ｍ），・・・，Ｍ（ｎ−１）を識別することができる。例えば、通信システム１が起動してから通信装置１００が最初に送信するメッセージからｎ回目に送信するメッセージＭ（ｎ）のデータフィールドに初めて空き領域が検出された場合、メッセージＭ（ｎ）の送信順を基準に過去に送信したメッセージに対する認証子ステータスＳｔは、全て”未送信”となっているので、最初に送信されたメッセージをＭ（ｍ）とすると、メッセージＭ（ｎ）を加えたメッセージＭ（ｍ），・・・Ｍ（ｎ−２），Ｍ（ｎ−１），Ｍ（ｎ）のメッセージ群を認証子対象メッセージとして識別することができる（ただし、ｍ≦ｎである）。例えば、図４の例では、送信時刻順に４番目に送信されるメッセージに空き領域が検出されたので、通信装置１００が最初に送信した一番目のメッセージから空き領域が検出された４番目に送信されるメッセージまでの複数のメッセージ（４つのメッセージ）を、認証子対象メッセージとして識別する。
【００４４】
また、過去にメッセージ認証子Ｔを含むメッセージデータが送信されている場合、メッセージ認証子Ｔを含むメッセージに対応する認証子ステータスＳｔは”送信済”となっているので、認証子生成部１０５は、メッセージＭ（ｎ）の送信順を基準に、前回送信した認証子付きメッセージ、言い換えれば、最も最近の認証子ステータスＳｔが”送信済”となっているメッセージＭ（ｍ＋１）を識別し、メッセージＭ（ｍ＋１）の次に送信されたメッセージＭ（ｍ＋２），・・・・Ｍ（ｎ−２），Ｍ（ｎ−１）を、通信装置１００が送信したメッセージのうちメッセージ認証子Ｔを含まないで過去に送信された複数のメッセージとして識別する。そして、メッセージＭ（ｎ）を加えたメッセージＭ（ｍ＋２），・・・・Ｍ（ｎ−２），Ｍ（ｎ−１），Ｍ（ｎ）のメッセージ群を認証子対象メッセージとして識別することができる。例えば、図４の例では、送信順で最も最近に送信される８番目の未送信のメッセージを基準に、最も最近の認証子ステータスＳｔが”送信済”となっている５番目のメッセージを識別し、５番目のメッセージの次に送信された６番目のメッセージから空き領域が検出された８番目に送信される複数のメッセージ（３つメッセージ）を、認証子対象メッセージとして識別する。
【００４５】
認証子生成部１０５は、認証子対象メッセージとして識別された各メッセージのデータ本体Ｄそれぞれを抽出し、複数のメッセージを対象にした１つのメッセージ認証子Ｔを、これら複数のデータ本体Ｄ及び共通鍵Ｋを用いて生成（計算）する。データ本体Ｄを入力データとし、データ本体Ｄ（ｍ），…，Ｄ（ｎ）及び共通鍵Ｋを用い、「メッセージ認証子Ｔ＝ＭＡＣ（Ｋ，Ｄ（ｍ）‖…‖Ｄ（ｎ））」を計算し、メッセージ認証子Ｔを生成する。ここで、「‖」は連接を表す記号である。
【００４６】
次に、認証子生成部１０５は、生成されたメッセージ認証子Ｔを圧縮処理して圧縮メッセージ認証子σを生成する。
【００４７】
本実施形態のメッセージ認証子Ｔは、通信装置１００が送信したメッセージのうちメッセージ認証子Ｔを含まないで過去に送信された複数メッセージ、言い換えれば、空き領域が検出されない又は検出された空き領域が所定データ長未満であった過去の複数のメッセージに対する認証子であり、メッセージ認証子を含む認証子付きメッセージの送信間隔が短ければ短いほど、言い換えれば、空き領域検出処理において検出される所定値以上のデータ長を有する空き領域が検出される頻度が高ければ高いほど、メッセージの完全性を検出する効率（不正メッセージの検出効率）が向上する。
【００４８】
本実施形態では、生成されたメッセージ認証子を圧縮処理によりメッセージ認証子Ｔのデータ容量（データ長）を低減し、圧縮メッセージ認証子σをデータフィールドの空き領域に格納した認証子付きメッセージを生成する。
【００４９】
有効認証子データ長ｄａは、メッセージの完全性を保証する上で必要となる圧縮メッセージ認証子σのデータ長の下限値であり、空き領域には有効認証子データ長ｄａ以上の長さが必要となる。このため、有効認証子データ長ｄａが長ければ、不正メッセージの検出率は向上するが、有効認証子データ長ｄａより大きい空き領域は少ないため、圧縮メッセージ認証子σを格納する頻度は少なくなる（つまり、不正メッセージの検出効率が悪くなる）。逆に、有効認証子データ長ｄａが短ければ、不正メッセージの検出率は低下するが、有効認証子データ長ｄａより大きい空き領域は多いため、圧縮メッセージ認証子σを格納する頻度は高くなる（つまり、不正メッセージの検出効率が良くなる）。
【００５０】
本実施形態の圧縮処理の一例としては、例えば、データフィールドの空き領域のデータ長をＬとした場合、メッセージ認証子Ｔをデータ長Ｌに圧縮する関数ｆ（圧縮メッセージ認証子σ＝ｆ（Ｌ，Ｔ））を適用して圧縮メッセージ認証子σを生成することができ、このデータ長Ｌは有効認証子データ長ｄａよりも大きくなければならない。有効認証子データ長ｄａは、システムパラメータであり、メッセージの完全性を保証する際の不正メッセージの検出率や検出効率等を考慮して設定（決定）される。
【００５１】
圧縮関数ｆは、メッセージ認証子Ｔのデータ内容を保持したままデータ容量を削減してデータ長Ｌに圧縮したり、メッセージ認証子Ｔを先頭からデータ長Ｌ分だけ切り出してデータ長Ｌに圧縮することもできる。以下の説明では、メッセージ認証子Ｔを先頭からデータ長Ｌ分だけ切り出してデータ長Ｌに圧縮する圧縮処理を適用した態様を一例に説明している。
【００５２】
なお、メッセージの完全性を保証する上でメッセージ認証子Ｔのデータ長は、そのデータ長が長いほど、不正メッセージの検出率は高くなるので、メッセージ認証子Ｔを先頭からデータ長Ｌ分だけ切り出してデータ長Ｌに圧縮する場合のデータ長Ｌ（圧縮率）の値は、メッセージの完全性を保証するセキュリティ強度（不正メッセージの検出率及び検出効率等）を考慮して設定（決定）される。
【００５３】
また、メッセージ認証子Ｔを先頭からデータ長Ｌ分だけ切り出してデータ長Ｌに圧縮する圧縮処理には、実質的にメッセージ認証子Ｔが圧縮されない（メッセージ認証子Ｔのデータ長が変わらない）圧縮も含まれる。つまり、メッセージ認証子Ｔのデータ長がデータ長Ｌと同じか小さければ、メッセージ認証子Ｔを先頭からデータ長Ｌ分だけ切り出しても、メッセージ認証子Ｔの圧縮前のデータ長と変わらないので、この場合、メッセージ認証子Ｔ＝圧縮メッセージ認証子σとなる。
【００５４】
なお、データフィールドの空き領域を十分確保できる場合、例えば、データフィールドのデータ長が長かったり、データフィールドに格納されるデータ本体Ｄのデータ長が短い場合など、メッセージ認証子Ｔを圧縮処理せずに、メッセージ認証子Ｔのデータ長に関係なくそのままデータフィールドの空き領域に格納した認証子付きメッセージを生成することも可能である。
【００５５】
認証子付与部１０６は、認証子生成部１０５で圧縮メッセージ認証子σが生成されると、圧縮メッセージ認証子σをメッセージＭ（ｎ）の空き領域に格納する。このとき、圧縮メッセージ認証子σをデータフィールドに含まれるデータ本体Ｄの直後に格納するが、データフィールドにおける圧縮メッセージ認証子σの開始位置が特定される必要がある。データフィールドに含まれるデータ本体Ｄのメッセージ種類（メッセージＩＤ）によって当該データ本体Ｄのデータ長が一意に定まっている場合には、データフィールドに含まれる圧縮メッセージ認証子σの開始位置が特定できる。一方、メッセージ種別によってデータ本体Ｄのデータ長が一意に定まらない場合、認証子付与部１０６は、圧縮メッセージ認証子σの開始位置を示す情報を圧縮メッセージ認証子σの直前（データ本体Ｄと圧縮メッセージ認証子σの間）に挿入することで、データフィールドにおける圧縮メッセージ認証子σの開始位置を特定することができる。
【００５６】
制御部１０２は、メッセージＭ（ｎ）のデータフィールド以外の部分であるヘッダ及びトレーラを付与し、データ本体Ｄ及び圧縮メッセージ認証子Ｔを含んだデータフィールドを有する認証子付きメッセージデータを生成する。制御部１０２は、通信部１０１のインタフェースを通じてネットワークＮＷに認証子付きメッセージであるメッセージＭ（ｎ）を出力する。
【００５７】
図３の例では、メッセージＭ（ｎ−２）、メッセージＭ（ｎ−１）、メッセージＭ（ｎ）のデータ本体Ｄ（ｎ−２）、Ｄ（ｎ−１）、Ｄ（ｎ）をまとめて、メッセージ認証子Ｔを生成し、生成されたメッセージ認証子ＴをメッセージＭ（ｎ）のデータフィールドの空き領域に格納可能なデータ長Ｌまで圧縮し、圧縮メッセージ認証子σをメッセージＭ（ｎ）のデータフィールドの空き領域に格納して、認証子付きメッセージデータとしてメッセージＭ（ｎ）が送信される。
【００５８】
なお、本実施形態では、１つのメッセージを対象にした１つのメッセージ認証子Ｔを生成して、データフィールドの空き領域にメッセージ認証子Ｔを格納した認証子付きメッセージデータも送信する。
【００５９】
例えば、システム起動後に一番最初に送信されるメッセージのデータフィールドに空き領域が検出された場合や、メッセージＭ（ｎ）の送信順を基準に、最も最近の認証子ステータスＳｔが”送信済”となっているメッセージが送信順で１つ前のメッセージである場合（図４の例では送信順で５番目のメッセージ）は、メッセージＭ（ｎ）の送信順を基準に、過去にメッセージ認証子Ｔを含むメッセージデータが送信されていないので（認証子ステータスＳｔが”未送信”のメッセージがないので）、データフィールドに空き領域が検出されたメッセージＭ（ｎ）自身のみを対象にしたメッセージ認証子Ｔが生成され、データフィールドの空き領域に１つのメッセージを対象とするメッセージ認証子Ｔを格納した認証子付きメッセージデータが送信される。
【００６０】
図５は、本実施形態の通信装置１００のメッセージ送信処理の動作フローの一例を示す図である。また、図６は認証子付与処理、図７は認証子生成処理の動作フローの一例を示す図であり、本実施形態のメッセージ送信処理は、認証子付与処理及び認証子生成処理が含まれる。
【００６１】
図５に示すように、通信装置１００は、アプリケーション部１０７が制御部１０２にメッセージＭ（ｎ）のデータ本体Ｄ（ｎ）を出力することを契機として、メッセージ送信処理を開始する（Ｓ１０１）。
【００６２】
制御部１０２は、アプリケーション部１０７によって生成されたメッセージＭ（ｎ）のデータ本体Ｄ（ｎ）を記憶部１０３に記憶する。制御部１０２は、データ本体Ｄ（ｎ）、メッセージＭ（ｎ）のメッセージＩＤ、メッセージステータスＳｍ（“未送信”）、及び認証子ステータスＳｔ（“未送信”）を記憶部１０３に記憶する（Ｓ１０２）。
【００６３】
制御部１０２は、記憶部１０３へのデータ本体Ｄ（ｎ）の記憶処理を契機に、認証子付与命令を認証子付与部１０６に送信する（Ｓ１０３）。認証子付与命令を受信した認証子付与部１０６は、図６に示すように認証子付与処理を開始する。
【００６４】
図６に示すように、認証子付与部１０６は、記憶部１０３からメッセージステータスＳｍが“未送信”のデータ本体Ｄ（ｎ）を取得し、メッセージＭ（ｎ）のデータフィールドの最大データ長ｄ１、データ本体Ｄ（ｎ）のデータ長ｄ２及び有効認証子データ長ｄａに基づいて、メッセージＭ（ｎ）のデータフィールドにメッセージ認証子Ｔを格納する空き領域があるか否かの空き領域検出処理を遂行する（Ｓ２０１）。
【００６５】
認証子付与部１０６は、メッセージＭ（ｎ）のデータフィールドに有効認証子データ長ｄａ以上の空き領域がないと判別された場合、認証子付与処理を終了して制御部１０２に空き領域がないと判別された旨の通知を送信する（Ｓ２０２のＮＯ）。一方、メッセージＭ（ｎ）のデータフィールドに有効認証子データ長ｄａ以上の空き領域があると判別された場合、認証子付与部１０６は、制御部１０２を介して認証子生成部１０５にメッセージ認証子生成命令を送信する（Ｓ２０３）。メッセージ認証子生成命令を受信した認証子生成部１０５は、図７に示すように認証子生成処理を開始する。
【００６６】
図７に示すように、認証子生成部１０５は、メッセージ認証子生成命令を受信すると、認証子生成対象メッセージを識別し（Ｓ３０２）、識別された認証子生成対象メッセージのデータ本体Ｄ（ｍ），…，Ｄ（ｎ）を記憶部１０３から取得する（Ｓ３０３）。また、認証子生成部１０５は、認証装置２００と事前に共有された共通鍵Ｋを鍵管理部１０４から取得する（Ｓ３０４）。
【００６７】
認証子生成部１０５は、取得した複数のデータ本体Ｄと共通鍵Ｋを用いて、複数のメッセージを対象にした１つのメッセージ認証子Ｔを生成し（Ｓ３０５）、生成したメッセージ認証子Ｔをさらに圧縮処理して圧縮メッセージ認証子σを生成し（Ｓ３０６）、制御部１０２を介して認証子付与部１０６に圧縮メッセージ認証子σを出力する（Ｓ３０７）。認証子生成部１０５は、圧縮メッセージ認証子σを出力した後、認証子生成処理を終了する。
【００６８】
認証子生成部１０５から圧縮メッセージ認証子σが出力されると、図６において認証子付与部１０６は、圧縮メッセージ認証子σをメッセージＭ（ｎ）のデータフィールドにおけるデータ本体Ｄ（ｎ）の直後に格納する（Ｓ２０４）。認証子付与部１０６は、圧縮メッセージ認証子σを格納した後、認証子付与処理を終了し、メッセージＭ（ｎ）のデータフィールドを認証子付与部１０６から制御部１０２へ出力する。
【００６９】
制御部１０２は、図５においてメッセージＭ（ｎ）のデータフィールド以外の部分であるヘッダＨ及びトレーラＣを生成し（Ｓ１０４）、通信部１０１のインタフェースを通じてネットワークＮＷに、認証子付きメッセージとしてメッセージＭ（ｎ）を送信する（Ｓ１０５）。制御部１０２は、メッセージＭ（ｎ）の記憶部１０３に記憶されているメッセージ送信履歴情報を、送信時刻Ｔｓに現在時刻を書き込み確認し、メッセージＭ（ｎ）のメッセージステータスＳｍを“送信済”に更新する（Ｓ１０６）。
【００７０】
なお、本実施形態の通信装置１００は、他の通信装置１００及び認証装置２００に対してメッセージを同時に送信し、ブロードキャスト又はマルチキャストでメッセージを送信する。マルチキャストの場合、送信先として認証装置２００及び１つ又は複数の他の通信装置１００が含まれ、他の通信装置１００に送信されるメッセージは、同時に認証装置２００にも送信される。
【００７１】
また、図６のステップＳ２０２において、メッセージＭ（ｎ）のデータフィールドに有効認証子データ長ｄａ以上の空き領域がないと判別された場合、認証子付与部１０６から受信する空き領域がない旨の通知を契機に、メッセージＭ（ｎ）のデータフィールド以外の部分であるヘッダＨ及びトレーラＣを生成し（Ｓ１０４）、通信部１０１のインタフェースを通じてネットワークＮＷに、データ本体Ｄ（ｎ）のみを含むメッセージＭ（ｎ）を出力する（Ｓ１０５）。
【００７２】
次に、制御部１０２は、メッセージＭ（ｎ）の送信が成功したか否かを確認し、成功した場合、メッセージＭ（ｎ）のメッセージステータスＳｍを“送信成功”に更新する（Ｓ１０６）。メッセージＭ（ｎ）の送信成功の確認手段としては、例えば、メッセージＭ（ｎ）送信後の一定期間内に送信先の通信装置１００からエラーメッセージを受信しなかったこと、又は送信先の通信装置１００から送信成功を示す応答メッセージを受信することで、メッセージＭ（ｎ）の送信成功の有無を確認することができる。
【００７３】
また、制御部１０２は、送信に成功したメッセージＭ（ｎ）が圧縮メッセージ認証子σを含んだ認証子付きメッセージである場合、圧縮メッセージ認証子σの対象メッセージとなったデータ本体Ｄ（ｍ），…，Ｄ（ｎ）に対応する全ての認証子ステータスＳｔを“送信済”に更新する。また、制御部１０２は、認証子ステータスＳｔが“送信済”に更新された時点で、任意のタイミングでデータ本体Ｄ（ｍ），…，Ｄ（ｎ）を記憶部１０３から削除することもできる。この場合、記憶部１０３に記憶される情報は、メッセージ送信ログとなるので、認証子ステータスＳｔが“送信済”のデータ本体Ｄ（ｍ），…，Ｄ（ｎ）のみを記憶部１０３から削除するようにしてもよい。
【００７４】
制御部１０２では、その後、メッセージ送信処理が終了する。
【００７５】
次に、本実施形態の認証装置２００について説明する。
【００７６】
図１に示すように、認証装置２００は、通信部２０１、制御部２０２、記憶部２０３、鍵管理部２０４、認証子検証部２０５を含んで構成される。これらの各部は、制御部２０２によって制御される。また、記憶部２０３、鍵管理部２０４、認証子検証部２０５は、本実施形態の認証手段として機能する。
【００７７】
通信部２０１は、ネットワークＮＷとの間の通信インタフェース制御を遂行し、通信システム１の各通信装置１００から送信されるメッセージデータをネットワークＮＷを介して受信する通信制御を行う通信インタフェースである。
【００７８】
記憶部２０３は、制御部２０２を介して読出／書込可能なハードウェア資源としての記憶装置である。記憶部２０３には、通信部２０１が受信するメッセージＭに含まれるデータフィールドのデータ本体Ｄが記憶される。
【００７９】
図８は、記憶部２０３に記憶されるデータ例を示す図であり、認証検証情報が記憶される。本実施形態では、通信部２０１が受信するメッセージＭのメッセージの種類を一意に識別するメッセージＩＤ、送信元の通信装置１００を特定する情報Ｉｓ、メッセージＭを受信した時刻Ｔｒ、メッセージ認証子Ｔの検証のステータスＳｖを、受信する各メッセージ別に記憶する。検証ステータスＳｖは、“未検証”、“検証成功”又は“検証失敗”の順に、ステータスが遷移する。
【００８０】
記憶部２０３に記憶されるメッセージＩＤ及びデータ本体Ｄは、図４で示した通信装置１００の記憶部１０３に記憶されるメッセージＩＤ及びデータ本体Ｄと同じである。メッセージの送信元の通信装置１００を特定する情報Ｉｓは、複数の各通信装置１００をユニークに識別する識別情報であり、例えば、メッセージＭのヘッダに含まれる情報である。
【００８１】
鍵管理部２０４は、通信装置１００の認証子生成部１０５によって生成されるメッセージ認証子Ｔの生成処理で使用する共通鍵Ｋを管理（記憶）する。
【００８２】
認証子検証部２０５は、通信装置１００の認証子生成部１０５と同様の認証子生成処理を遂行する。すなわち、認証子生成部１０５によるメッセージ認証子Ｔ及び圧縮メッセージ認証子σの生成過程と、同じアルゴリズム及び同じ圧縮処理を通じて受信したメッセージＭ（ｎ）に含まれる圧縮メッセージ認証子σに対応する圧縮メッセージ認証子σ’を生成し、認証装置２００側で生成した圧縮メッセージ認証子σ’と、受信メッセージＭに含まれる通信装置１００側で生成された圧縮メッセージ認証子σとを比較する。比較の結果、不一致である場合にメッセージの改ざんやなりすましの可能性があると判断する認証処理を行う。
【００８３】
認証子検証部２０５は、通信装置１００から受信したメッセージＭ（ｎ）に圧縮メッセージ認証子σが含まれているか否かを判別し、含まれていると判別された場合に、記憶部２０３を参照し、メッセージＭ（ｎ）の受信時を基準として、メッセージＭ（ｎ）を送信した同じ通信装置１００から過去に受信した圧縮メッセージ認証子σが含まれない複数のメッセージＭ（ｍ），…，Ｍ（ｎ−１）（ただし、ｍ≦ｎ）を識別し、メッセージＭ（ｎ）を加えたメッセージＭ（ｍ），・・・・Ｍ（ｎ−２），Ｍ（ｎ−１），Ｍ（ｎ）のメッセージ群を、メッセージＭ（ｎ）に含まれる圧縮メッセージ認証子σの認証対象メッセージとして識別する。
【００８４】
認証子検証部２０５は、検証ステータスＳｖを参照することで、メッセージＭ（ｎ）の受信順を基準に、送信元の通信装置１００を特定する情報Ｉｓが同じ通信装置１００から受信したメッセージのうち圧縮メッセージ認証子σを含まないで過去に受信した複数のメッセージＭ（ｍ），・・・，Ｍ（ｎ−１）を識別することができる。例えば、通信システム１が起動してから通信装置１００から最初に受信したメッセージからｎ回目に受信するメッセージＭ（ｎ）のデータフィールド内に圧縮メッセージ認証子を検出した場合、メッセージＭ（ｎ）の受信順を基準に過去に受信したメッセージに対する検証ステータスＳｖは、全て”未検証”となっているので、最初に受信したメッセージＭ（ｍ）とすると、メッセージＭ（ｎ）を加えたメッセージＭ（ｍ），・・・Ｍ（ｎ−２），Ｍ（ｎ−１），Ｍ（ｎ）のメッセージ群を認証対象メッセージとして識別することができる（ただし、ｍ≦ｎである）。例えば、図８の例では、送信元の通信装置１００を特定する情報Ｉｓが同じメッセージであって、受信時刻順に４番目に受信したメッセージに圧縮メッセージ認証子σが検出されたので、認証装置２００が最初に受信した一番目のメッセージから圧縮メッセージ認証子σが検出された４番目に受信したメッセージまでの複数のメッセージ（４つのメッセージ）を、認証対象メッセージとして識別する。
【００８５】
また、過去に圧縮メッセージ認証子σを含むメッセージデータを受信している場合、圧縮メッセージ認証子σを含むメッセージに対応する検証ステータスＳｖは”検証成功”又は”検証失敗”となっているので、認証子検証部２０５は、メッセージＭ（ｎ）の受信順を基準に、前回受信した認証子付きメッセージ、言い換えれば、最も最近の検証ステータスＳｖが”検証成功”又は”検証失敗”となっているメッセージＭ（ｍ＋１）を識別し、メッセージＭ（ｍ＋１）の次に受信したメッセージＭ（ｍ＋２），・・・・Ｍ（ｎ−２），Ｍ（ｎ−１）を、認証装置２００が受信したメッセージのうち圧縮メッセージ認証子σを含まない過去に受信した複数のメッセージとして識別する。そして、メッセージＭ（ｎ）を加えたメッセージＭ（ｍ＋２），・・・・Ｍ（ｎ−２），Ｍ（ｎ−１），Ｍ（ｎ）のメッセージ群を認証対象メッセージとして識別することができる。例えば、図８の例では、送信元の通信装置１００を特定する情報Ｉｓが「１」で受信順で最も最近に送信される１０番目の未検証の認証子付きメッセージを基準に、最も最近の検証ステータスＳｖが”検証失敗”となっている５番目のメッセージを識別し、５番目のメッセージの次に送信された６番目のメッセージ、７番目のメッセージ及び圧縮メッセージ認証子σが検出された１０番目に受信した複数の各メッセージ（３つのメッセージ）を、認証対象メッセージとして識別する。
【００８６】
また、システム起動後に一番最初に受信したメッセージのデータフィールドに圧縮メッセージ認証子σが検出された場合や、メッセージＭ（ｎ）の受信順を基準に、最も最近の検証ステータスＳｖが”検証成功”又は”検証失敗”となっているメッセージが受信順で１つ前のメッセージである場合（図８の例では受信順で８番目のメッセージ）は、メッセージＭ（ｎ）の受信順を基準に、過去に圧縮メッセージ認証子σを含むメッセージデータを受信していないので（検証ステータスＳｖが”検証成功”又は”検証失敗”の受信メッセージがないので）、データフィールドに圧縮メッセージ認証子σが検出されたメッセージＭ（ｎ）自身のみを対象にした認証処理が遂行される。
【００８７】
なお、通信装置１００から受信したメッセージＭ（ｎ）に圧縮メッセージ認証子σが含まれているか否かは、データフィールドを参照して上述したようにメッセージＩＤから一意に定まるデータ本体Ｄのデータ長、又はデータ本体Ｄの直後に付与された識別情報に基づいてデータフィールド内の圧縮メッセージ認証子σの開始位置を識別し、メッセージＭ（ｎ）に圧縮メッセージ認証子σが含まれているか否かを判別できる。
【００８８】
認証子検証部２０５は、認証対象メッセージとして識別された各メッセージのデータ本体Ｄそれぞれを記憶部２０３から抽出し、抽出された複数のデータ本体Ｄ及び鍵管理部２０４から取得する当該通信装置１００と共有する共通鍵Ｋを用い、通信装置１００の認証子生成部１０５と同様の認証子生成処理を遂行して、メッセージ認証子Ｔ’及び生成されたメッセージ認証子Ｔ’をデータ長Ｌまで圧縮した圧縮メッセージ認証子σ’を生成する。
【００８９】
認証子検証部２０５は、当該認証子検証部２０５が生成した圧縮メッセージ認証子σ’と、受信メッセージＭに含まれる圧縮メッセージ認証子σを比較し、１つの認証子を用いた複数のメッセージ全体の完全性に対する認証チェックを遂行する。比較の結果、不一致である場合には、複数のメッセージのうち少なくとも１つ以上のメッセージに改ざんやなりすましの可能性があると判断する。改ざんやなりすましの可能性があると判断された場合、認証子検証部２０５は、制御部２０２に検証失敗を通知する。
【００９０】
図９は、本実施形態の認証装置２００のメッセージ受信処理の動作フローの一例を示す図である。また、図１０は認証子生成処理を含む認証子検証処理の動作フローの一例を示す図である。本実施形態のメッセージ受信処理は、認証子検証処理が含まれる。
【００９１】
図９に示すように、認証装置２００は、通信装置２０１を介してネットワークＮＷから通信装置１００から送信されるメッセージを受信し、メッセージＭ（ｎ）を受信したことを契機に、メッセージ受信処理を開始する（Ｓ４０１）。
【００９２】
制御部２０２は、受信したメッセージＭ（ｎ）のデータ本体Ｄ（ｎ）を記憶部２０３に記憶する。制御部２０２は、データ本体Ｄ（ｎ）、メッセージＭ（ｎ）のメッセージＩＤ、メッセージＭ（ｎ）の送信元の通信装置１００を特定する情報Ｉｓ、メッセージＭを受信した時刻Ｔｒ、メッセージ認証子Ｔの検証のステータスＳｖ（未検証）を、記憶部２０３に記憶する（Ｓ４０２）。なお、送信元の通信装置１００は、例えば、メッセージＩＤ、データ本体Ｄ、メッセージ周期などから特定できる。
【００９３】
制御部２０２は、記憶部１０３へのデータ本体Ｄ（ｎ）の記憶処理を契機に、認証子検証命令を認証子検証部２０５に送信する（Ｓ４０３）。認証子検証命令を受信した認証子検証部２０５は、図１０に示すように認証子検証処理を開始する。
【００９４】
図１０に示すように、認証子検証部２０５は、受信したメッセージＭ（ｎ）のデータフィールド内の圧縮メッセージ認証子σを検出する（Ｓ５０１）。認証子検証部２０５は、メッセージＭ（ｎ）のデータフィールドに圧縮メッセージ認証子σがないと判別された場合、認証子検証処理を終了して制御部２０２に受信したメッセージＭ（ｎ）のデータフィールド内の圧縮メッセージ認証子σがない旨の通知を出力する（Ｓ５０１のＮＯ）。
【００９５】
一方、メッセージＭ（ｎ）のデータフィールドに圧縮メッセージ認証子σがあると判別された場合、認証子検証部２０５は、圧縮メッセージ認証子σ’を生成する。認証子検証部２０５は、認証対象メッセージを識別し（Ｓ５０２）、記憶部２０３から圧縮メッセージ認証子σが検出されたメッセージＭ（ｎ）のデータ本体Ｄ（ｎ）及びデータ本体Ｄ（ｎ）と同じ送信元情報Ｉｓのデータ本体Ｄ（ｍ），…，Ｄ（ｎ−１）を取得する（Ｓ５０３）。また、認証子検証部２０５は、鍵管理部２０４から送信元情報Ｉｓで特定される通信装置１００と認証装置２００が共有する共通鍵Ｋを取得する（Ｓ５０４）。
【００９６】
認証子検証部２０５は、取得した複数のデータ本体Ｄと共通鍵Ｋを用いて、メッセージ認証子Ｔ’を生成し（Ｓ５０５）、メッセージＭ（ｎ）のデータフィールドの空き領域の長さＬにメッセージ認証子Ｔ’を圧縮処理して（Ｓ５０６）、圧縮メッセージ認証子σ’を生成する。
【００９７】
認証子検証部２０５は、メッセージＭ（ｎ）のデータフィールドに格納されている圧縮メッセージ認証子σと、生成した圧縮メッセージ認証子σ’とを比較し、両者が一致する場合には、制御部２０２に検証成功の旨の検証結果を通知し、一致しない場合には、制御部２０２に検証失敗の旨の検証結果を通知する（Ｓ５０７）。
【００９８】
制御部２０２は、認証子検証部２０５からの検証結果に基づいて、検証成功の場合には（Ｓ４０４のＹＥＳ）、記憶部２０３のメッセージＭ（ｍ），…，Ｍ（ｎ）の全ての検証ステータスＳｖを“検証成功”に更新し（Ｓ４０６）、検証失敗の場合には（Ｓ４０４のＮＯ）、記憶部２０３のメッセージＭ（ｍ），…，Ｍ（ｎ）の全ての検証ステータスＳｖをエラー処理（Ｓ４０５）をして“検証失敗”に更新する（Ｓ４０６）。圧縮メッセージ認証子σ’が検出されたメッセージＭ（ｎ）のデータ本体Ｄ（ｎ）に対応する検証ステータスＳｖのみを“検証成功”又は“検証失敗”に更新してもよい。
【００９９】
制御部２０２は、検証失敗の場合（Ｓ４０４のＮＯ）、関連する通信装置１００、ステップＳ４０５のエラー処理として、例えば、記憶部２０３の送信元情報Ｉｓから特定されるメッセージ送信元の通信装置１００に通信部２０１のインタフェースを介してエラーメッセージ（例えば、再送メッセージ）を送信したり、記憶部２０３のメッセージＩＤから特定されるメッセージ送信先の通信装置１００に通信部２０１のインタフェースを介してエラーメッセージ（例えば、該当メッセージに関する処理中止メッセージなど）を送信する、エラー処理を遂行できる。
【０１００】
制御部２０２は、その後、メッセージ受信処理が終了する。
【０１０１】
なお、認証子検証部２０５は、認証子検証処理を終えた際に、記憶部２０３から認証対象メッセージの全データ本体Ｄを削除することもできる。
【０１０２】
このように本実施形態の通信システム１は、通信負荷を抑制したメッセージ認証を行うことができる。
【０１０３】
すなわち、複数のメッセージを入力データとしてメッセージ認証子を生成し、メッセージ認証子をデータフィールドに空き領域があるメッセージにのみ付与するので、ネットワークの通信負荷を最小限に抑えつつ、メッセージの完全性を保証した通信環境を実現できる。
【０１０４】
送受信されるメッセージに格納可能なデータのデータ長が短い通信、例えば、自動車の制御システムなどに利用されるＣＡＮ通信（Ｃｏｎｔｒｏｌｌｅｒ Ａｒｅａ Ｎｅｔｗｏｒｋ）通信のような、データを格納するデータフィールドが８バイトと短く、リアルタイム制御を要求される場合であっても、本実施形態の通信システムを車両用の電子制御装置（ＥＣＵ）に適用することで、メッセージの種別を問わずに複数のメッセージを入力データとする１つのメッセージ認証子を生成してデータ量を低減させつつ、データ本体Ｄを含むメッセージのデータフィールドの空き領域を利用してメッセージ認証子を送信することで、ネットワークの通信負荷を最小限に抑えたメッセージ認証を実現することが可能となる。
【０１０５】
なお、ＣＡＮ通信（プロトコル）以外にも、ＬＩＮ通信、ＦｌｅｘＲａｙ通信、Ｉ２Ｃ通信などの、メッセージに格納可能なデータのデータ長が短い通信においても本実施形態の通信システム１は、ネットワークの通信負荷を最小限に抑えたメッセージ認証を実現することができ、これらの通信規格以外の通信プロトコルの通信システムでも同様である。
【０１０６】
また、本実施形態では、空き領域が検出されたメッセージＭのデータ本体Ｄを含むメッセージ認証子を生成しているが、これに限らず、例えば、空き領域が検出されたメッセージＭのデータ本体Ｄを含まないメッセージ認証子を生成し、空き領域が検出されたメッセージＭのデータ本体Ｄに対するメッセージ認証子は、次の送信するメッセージにおいて空き領域が検出された際のメッセージ認証子の対象となるようにしてもよい。
【０１０７】
（第２実施形態）
図１１から図１４は、第２実施形態に係る図である。
【０１０８】
本実施形態は、上記第１実施形態に対し、メッセージ認証子を用いたメッセージ認証の対象となるメッセージを、メッセージ種別毎に予め割り当てられたメッセージ重要度を用いてフィルタリングし、メッセージの完全性を保証するセキュリティ上の重要度の高いメッセージのみを認証対象としたメッセージ認証を行う実施態様である。
【０１０９】
例えば、システムの状況に応じてメッセージ認証子を付与するメッセージの重要度を選択することで、必要最低限の安全性（メッセージに対する完全性の保証）を確保する観点からセキュリティ上の重要度の高いメッセージのみを選別してメッセージ認証子を用いた認証対象を減らし、ネットワークの通信負荷をより抑制したメッセージ認証を行う通信システムを実現する。
【０１１０】
図１１は、本実施形態の通信システム１Ａの構成例を示す図である。以下の説明では、第１実施形態との相違点を中心に述べ、各図における同一の図番が付された同一の構成及び処理についての説明は省略する。本実施形態の通信システム１Ａの通信装置１００及び認証装置２００それぞれには、メッセージ重要度記憶部１０８、２０６が設けられ、同じメッセージ別重要度情報を共有している。
【０１１１】
メッセージ重要度記憶部１０８は、制御部１０２から読出／書込可能なハードウェア資源としての記憶装置であり、図１２に示す通信装置１００が送信するメッセージのメッセージＩＤ別の重要度と、メッセージ認証子を用いたメッセージ認証の対象メッセージ（メッセージ認証子Ｔがデータフィールドに格納される対象となるメッセージ）の重要度のしきい値とを記憶している。メッセージ重要度記憶部２０６も同様である。
【０１１２】
本実施形態のメッセージの重要度は、例えば、１（低）〜５（高）段階で定義することができ、各メッセージの特性に応じた重要度がメッセージＩＤ別に関連付けられる。ＣＡＭ通信を一例に説明すると、例えば、車両の制御システムにおいて、ブレーキやエンジンに関連するメッセージの重要度を高く設定し、ドア施錠に関連するメッセージの重要度を低く設定することができる。
【０１１３】
また、図１２に示すように、各メッセージに関連付けられる重要度は、メッセージの種類別に固定的（静的）に関連付けることもできが、可変的（動的）に各メッセージに対する重要度を決定して関連付けることもできる。例えば、不正メッセージ検出の必要性が変化する場合、各メッセージの重要度を動的に決定してもよく、車両の制御システムにおいて、走行中はブレーキやエンジンに関連するメッセージに対する重要度のみ高くし、停車中はドア施錠に関連するメッセージに対する重要度のみ高くすることができる。このような動的な各メッセージに対する重要度の決定は、制御部１０２が遂行することができ、走行中のメッセージ別重要度情報と、停車中のメッセージ別重要度情報と個別にメッセージ重要度記憶部１０８に予め記憶しておき、制御部１０２が走行中である場合には走行中のメッセージ別重要度情報を、停車中である場合には停車中のメッセージ別重要度情報を選択して、各メッセージの重要度を識別可能に制御することができる。
【０１１４】
重要度のしきい値は、メッセージ認証子を用いたメッセージ認証の対象となるメッセージを選別する基準であり、本実施形態では、しきい値以上の重要度のメッセージのみがメッセージ認証子を用いたメッセージ認証の対象となるメッセージ、言い換えれば、メッセージ認証子Ｔを付与する対象となるメッセージとなる。しきい値未満の重要度が割り当てられたメッセージは、メッセージ認証子を用いたメッセージ認証の対象外のメッセージとなる。
【０１１５】
なお、重要度のしきい値は、システムパラメータとして固定的（静的）に決定することもでき、また、可変的（動的）に決定することもできる。例えば、不正メッセージ検出の必要性が変化するシステムの場合、重要度のしきい値を動的に決定してもよく、システムが通常動作しているときは、しきい値を低く設定してメッセージの通信負荷よりも不正メッセージの検出率を高くし、システムの緊急時には、しきい値を高く設定して不正メッセージの検出率よりもメッセージの通信負荷を抑えて、システムの動作を優先することができる。この場合も予め通常動作時の第１しきい値及び緊急動作時の第２しきい値を個別にメッセージ重要度記憶部１０８に記憶しておき、制御部１０２は、通常動作時は第１しきい値を、緊急動作時は第２しきい値を選択して、重要度のしきい値を可変に制御できる。
【０１１６】
図１３は、本実施形態のメッセージ送信処理の動作フローの一例を示す図であり、通信装置１００の制御部１０２は、アプリケーション部１０７からデータ本体Ｄが出力されると（Ｓ１０１）、メッセージ重要度記憶部１０８を参照し、生成されたデータ本体Ｄをデータフィールドに含むメッセージＭの重要度を当該データ本体Ｄから特定されるメッセージＩＤに基づいて識別し、識別されたデータ本体Ｄに対応する重要度がしきい値以上であるか否かを判別して（Ｓ１０１１）、しきい値以上の重要度のデータ本体Ｄのみを記憶部１０３に記憶する（Ｓ１０２）。
【０１１７】
通信装置１００は、メッセージＭの重要度がしきい値以上であると判別し、メッセージ認証子Ｔを付与する対象メッセージであると判断された場合、第１実施形態と同様に、メッセージＭに含まれるデータフィールドのデータ本体ＤをＤ（ｎ）として記憶部１０３に記憶し、メッセージＭに対する認証子付与処理及び認証子生成処理を含むメッセージ送信処理が遂行される。
【０１１８】
一方、ステップＳ１０１１において、メッセージＭの重要度がしきい値未満であると判別された場合、制御部１０２は、データ本体ＤをＤ（ｎ）として記憶部１０３に記憶せずに、かつ認証子付与処理の命令出力及び認証子生成処理の命令出力を経ずに、ステップＳ１０４に進み、制御部１０２は、メッセージＭ（ｎ）のデータフィールド以外の部分であるヘッダＨ及びトレーラＣを生成し、通信部１０１のインタフェースを通じてネットワークＮＷにメッセージＭ（ｎ）を送信する（Ｓ１０５）。
【０１１９】
なお、制御部１０２は、ステップＳ１０６においてメッセージＭ（ｎ）送信後の一定期間内に送信先の通信装置１００からエラーメッセージを受信したり、送信先の通信装置１００から送信失敗を示す応答メッセージを受信した場合は、アプリケーション部１０７にメッセージ再送命令を出力し、ステップＳ１０１に戻ってメッセージＭ（ｎ）に対するメッセージ送信処理を再度遂行する。このとき、制御部１０２は、重要度がしきい値未満であると判断されたメッセージＭに対しては、メッセージ送信のみを行い、記憶部１０３への送信時刻Ｔｓ及びメッセージステータスＳｍ等の送信ログ情報の記憶は行わなくてもよい。
【０１２０】
図１４は、制御部２０２における本実施形態のメッセージ受信処理の動作フローの一例を示す図である。認証装置２００の制御部２０２は、通信装置２０１を介してネットワークＮＷから通信装置１００から送信されるメッセージを受信し、メッセージＭ（ｎ）を受信したことを契機に、メッセージ受信処理を開始する（Ｓ４０１）。
【０１２１】
制御部２０２は、メッセージ重要度記憶部２０６を参照し、受信したメッセージＭ（ｎ）の重要度をメッセージＩＤに基づいて識別し、識別されたデータ本体Ｄに対応する重要度がしきい値以上であるか否かを判別して（Ｓ４０１１）、しきい値以上の重要度のメッセージＭ（ｎ）のみを記憶部２０３に記憶する（Ｓ４０２）。制御部２０２は、しきい値以上の重要度のメッセージＭ（ｎ）、言い換えれば、記憶部２０３に記憶されるメッセージＭ（ｎ）に対してのみ、認証子検証部２０５による認証子検証処理を含むメッセージ受信処理を遂行する。
【０１２２】
一方、ステップＳ４０１１において、メッセージＭの重要度がしきい値未満であると判別された場合、制御部２０２は、メッセージ受信処理（メッセージ認証処理）を終了する。
【０１２３】
本実施形態は、メッセージの種類別に重要度付けを行い、メッセージ認証子を用いたメッセージ認証の対象となるメッセージを、メッセージ重要度を用いてフィルタリングすることで、メッセージの完全性を保証するセキュリティ上の重要度の高いメッセージのみを認証対象としたメッセージ認証を行うことができる。
【０１２４】
このため、本実施形態では、重要度の高い必要最低限のメッセージに対する完全性の保証しつつ、しきい値未満の重要度のメッセージに対するメッセージ認証を行わないことで、ネットワークの通信負荷をより抑制したメッセージ認証を行う通信システムを実現することができる。
【０１２５】
（第３実施形態）
図１５から図２３は、第３実施形態に係る図である。以下の説明でも、第１実施形態との相違点を中心に述べ、各図における同一の図番が付された同一の構成及び処理についての説明は省略する。
【０１２６】
本実施形態は、第１実施形態のメッセージ送信処理において、メッセージ認証子を用いたメッセージ認証の対象となるメッセージが所定の条件を満たす場合に、メッセージ認証子を生成してメッセージ認証専用メッセージを送信する実施形態である。
【０１２７】
第１実施形態のメッセージ送信処理では、認証子付与処理を通じてデータフィールドにメッセージ認証子Ｔを格納可能な空き領域を検出し、その空き領域にメッセージ認証子Ｔを格納し、データフィールドにデータ本体Ｄ及びメッセージ認証子を含むメッセージを生成してメッセージ送信を行うが、本実施形態では、認証子付与処理においてデータフィールドにメッセージ認証子Ｔを格納可能な空き領域を検出されない場合、認証子付与条件マッチングを行い、認証子付与条件にマッチングする場合に、複数のメッセージに対する１つのメッセージ認証子を強制的に発生させ、アプリケーション部１０７で生成されるデータ本体Ｄをデータフィールドに含むメッセージとは個別に、メッセージ認証子のみを含む認証専用メッセージを生成して送信する。
【０１２８】
図１５は、本実施形態の通信システム１Ｂの構成例を示す図であり、図１に示した通信装置１００が認証子付与条件記憶部１０９をさらに含んで構成される。認証子付与条件記憶部１０９は、制御部１０２を介して読出／書込可能なハードウェア資源としての記憶装置であり、通信装置１００が送信するメッセージのメッセージＩＤ別に認証子付与条件情報を記憶している。
【０１２９】
図１６は、認証子付与条件情報の一例を示す図であり、認証子付与条件は、送信するメッセージに対するメッセージ認証子の生成条件である。図１６に示すようにメッセージの種類（メッセージＩＤ）別に、未付与メッセージ数、未付与時間、認証子有無等の条件情報を記憶している。例えば、未付与メッセージ数は、送信順で最も最新に送信されるデータ本体Ｄに対応するメッセージＭ（ｎ）のメッセージＩＤが「１００００００００１０」の場合、送信順を基準に、過去に同じメッセージＩＤのメッセージが、メッセージ認証子の認証子生成対象メッセージとなっておらず、そのメッセージ数（認証子ステータスＳｔが”未送信”の同じメッセージＩＤのメッセージ数）が記憶部１０３に１０個存在する場合に、メッセージ認証子を生成して認証専用メッセージを送信する。
【０１３０】
未付与時間（ｍｓｅｃ）は、送信順で最も最新に送信されるデータ本体Ｄに対応するメッセージＭ（ｎ）のメッセージＩＤが「１００００００００１０」の場合、過去に同じメッセージＩＤのメッセージが、前回メッセージ認証子を含む認証子付きメッセージ又は認証専用メッセージが送信されてから起算して（送信順で最も最近の認証子ステータスＳｔが”送信済”のメッセージの送信時刻から起算して）、データ本体Ｄに対応するメッセージＭ（ｎ）の送信時刻までにメッセージ認証子を含む認証子付きメッセージ又は認証専用メッセージが送信されていない時間が１０００ｍｓｅｃを超える場合、メッセージ認証子を生成して認証専用メッセージを送信する。
【０１３１】
図１６の例では、メッセージＭ（ｎ）のメッセージＩＤが「１００００００００１１」の場合、認証子付与条件が設定されていないので、認証専用メッセージを生成しない。
【０１３２】
また、認証子有無は、データフィールドの空き領域の検出有無に関係なく、認証子付与処理を経ずに必ずメッセージ認証子を生成して認証専用メッセージを送信する。図１６の例では、メッセージＩＤ「１０００００００１００」に認証子有無の「ＭＵＳＴ」が設定され、メッセージＭ（ｎ）のメッセージＩＤが「１０００００００１００」を送信する場合、当該メッセージＭ（ｎ）のデータフィールドの空き領域の有無に関係なく、必ずメッセージ認証子を生成して認証専用メッセージを送信する。
【０１３３】
なお、本実施形態の未付与メッセージ数、未付与時間、認証子有無等の各条件情報は、１つのメッセージに対してＯＲ条件又はａｎｄ条件とすることができ、図１６の例では、メッセージＭ（ｎ）のメッセージＩＤが「１００００００００１０」に、未付与メッセージ数と未付与時間がそれぞれＯＲ条件で、設定されている。
【０１３４】
また、図１６の例では、各メッセージの種類毎に各認証子付与条件が設定されているが、これに限らずに、メッセージの種類に関係なく、通信装置１００が送信する全メッセージを対象とした、メッセージ認証子の生成間隔やメッセージ認証子の対象メッセージとなっていないメッセージ数を、認証子付与条件として設定することもできる。さらに、このような各認証子付与条件は、認証装置２００で管理することもでき、認証装置２００の認証子検証処理が所定時間以上行われてない場合、認証装置２００が通信装置１００に対してメッセージ認証子の生成命令を送信し、通信装置が認証装置２００から受信するメッセージ認証子の生成命令を認証子付与条件として、メッセージ認証子を生成して認証専用メッセージを送信することができる。
【０１３５】
図１７は、本実施形態のメッセージ送信処理例の説明図である。図１８は、記憶部１０３に記憶されるメッセージに関する情報の一例を示す図であり、図４と同様に、アプリケーション部１０７で生成されたデータ本体ＤのメッセージＩＤ、データ本体Ｄ、メッセージ送信時刻Ｔｓ、メッセージステータスＳｍ、認証子ステータスＳｔを記憶している。
【０１３６】
通信装置１００の制御部１０２は、アプリケーション部１０７で生成されたデータ本体Ｄをデータフィールドに含む送信メッセージを生成して送信する前に、アプリケーション部１０７で生成された全てのデータ本体Ｄを一旦記憶部１０３に送信順に記憶する。
【０１３７】
本実施形態では、第１実施形態同様、認証子付与部１０６及び認証子生成部１０７による認証子付与処理及び認証子生成処理を経て、データフィールドにデータ本体Ｄ及びメッセージ認証子Ｔを含む認証子付きメッセージを送信するメッセージ送信処理を遂行するとともに、認証子付与処理においてデータフィールド内にメッセージ認証子を格納するための空き領域の検出とは関係なく（認証子付きメッセージではなく）、アプリケーション部１０７で生成されたデータ本体Ｄをデータフィールドに含む送信メッセージの送信処理を契機に、認証子付与条件に基づいて強制的に個別の認証専用メッセージを送信する処理を遂行する。なお、データフィールドにデータ本体Ｄ及びメッセージ認証子Ｔを含む認証子付きメッセージを送信するメッセージ送信処理は、第１実施形態と同様である。
【０１３８】
図１７の例ではメッセージ送信時刻の古い順に、メッセージＭ（ｎ−２）、メッセージＭ（ｎ−１）及び最も送信順が新しいメッセージＭ（ｎ）に空き領域検出処理に基づく空き領域が検出されなかった場合、認証子付与条件記憶部１０９を参照し、認証子付与条件マッチング処理を遂行する。
【０１３９】
本実施形態では、各メッセージＭ（ｎ−２）、メッセージＭ（ｎ−１）及び最も送信順が新しいメッセージＭ（ｎ）のそれぞれの空き領域検出処理において、空き領域が検出されなかった場合、それぞれ認証子付与条件マッチング処理を遂行する、図１７では、各メッセージＭ（ｎ−２）、メッセージＭ（ｎ−１）の各認証子付与条件マッチング処理では、認証子付与条件にマッチングせず、メッセージＭ（ｎ）の認証子付与条件マッチング処理で認証子付与条件にマッチングした例を示している。
【０１４０】
認証子付与部１０６は、認証子付与条件にマッチングすると、認証子生成部１０５に制御部１０２を介して認証専用メッセージの認証子生成命令を送信し、認証子生成部１０５は、該命令に基づいて認証専用メッセージの認証子生成処理を遂行する。なお、制御部１０２は、空き領域が検出されなかった時点で認証子付与条件マッチング処理とは関係なく、メッセージ作成処理及びメッセージ送信処理を通じて当該メッセージＭを、認証専用メッセージとは別に、ネットワークＮＷに出力する送信処理を遂行する。
【０１４１】
認証子生成部１０５は、送信順で最も新しく空き領域が検出されなかったメッセージＭ（ｎ）を基準に、当該メッセージＭ（ｎ）を含むメッセージ認証子対象メッセージを識別する。
【０１４２】
本実施形態では、メッセージＭ（ｎ）の送信順を基準に、通信装置１００が送信したメッセージのうちメッセージ認証子の対象メッセージとならず、空き領域検出処理に基づく空き領域が検出されなかった過去に送信された複数のメッセージＭ（ｍ），・・・，Ｍ（ｎ−１）と、メッセージＭ（ｎ）とを記憶部１０３を参照して認証専用メッセージのメッセージ認証子の対象メッセージとして識別する。
【０１４３】
認証子生成部１０５は、認証子ステータスＳｔを参照することで、メッセージＭ（ｎ）の送信順を基準に、通信装置１００が送信したメッセージのうちメッセージ認証子Ｔを含まないで過去に送信された複数のメッセージＭ（ｍ），・・・，Ｍ（ｎ−１）を識別することができる。図１８の例では、送信時刻順に３番目のメッセージ以降、空き領域検出処理に基づく空き領域が検出されず、９番目のメッセージに空き領域が検出されなかったものの、認証子付与条件にマッチングしたので（未付与時間が条件値を超えたので）、３番目から８番目の各メッセージと、９番目のメッセージとを認証対象メッセージとして識別する。
【０１４４】
認証子生成部１０５は、認証対象メッセージとして識別された各メッセージのデータ本体Ｄそれぞれを抽出し、第１実施形態同様に、複数のメッセージを対象にした１つのメッセージ認証子Ｔを、これら複数のデータ本体Ｄ及び共通鍵Ｋを用いて生成（計算）する。データ本体Ｄを入力データとし、データ本体Ｄ（ｍ），…，Ｄ（ｎ）及び共通鍵Ｋを用い、「メッセージ認証子Ｔ＝ＭＡＣ（Ｋ，Ｄ（ｍ）‖…‖Ｄ（ｎ））」を計算し、メッセージ認証子Ｔを生成する。
【０１４５】
また、本実施形態の認証対象メッセージは、図２で示した同様のデータ構造を有し、データフィールドにメッセージ認証子のみを含むメッセージであるので、メッセージ認証子を格納する十分な空き領域が存在する。このため、認証子生成部１０５は、第１実施形態のように生成されたメッセージ認証子Ｔを圧縮しなくてもよい。
【０１４６】
認証子付与部１０６は、認証生成部１０５でメッセージ認証子Ｔが生成されると、メッセージ認証子ＴをメッセージＭ（ｎ）のデータフィールドに格納し、制御部１０２は、メッセージＭ（ｎ）のデータフィールド以外の部分であるヘッダ及びトレーラを付与し、メッセージ認証子Ｔのみを含んだデータフィールドを有する認証専用メッセージを生成する。制御部１０２は、通信部１０１のインタフェースを通じてネットワークＮＷに認証専用メッセージを出力する。
【０１４７】
図１９は、本実施形態の通信システム１Ｂの認証子付与部１０６における認証子付与処理の動作フローを示す図である。図２０は、同じく通信システム１Ｂの認証子生成部１０５における本実施形態の認証専用メッセージの認証子生成処理の動作フローを示す図である。
【０１４８】
認証子付与部１０６は、ステップＳ２０２の空き領域検出処理において空き領域が検出されなかった場合に、認証子付与条件記憶部１０９を参照して認証子付与条件マッチング処理を遂行する（Ｓ２０１１）。認証子付与部１０６は、認証子付与条件にマッチングすると判別された場合、認証子生成部１０５に制御部１０２を介して認証専用メッセージの認証子生成命令を送信した後（Ｓ２０１２）、認証子付与処理を終了する。
【０１４９】
認証子付与部１０６は、ステップＳ２０２の空き領域検出処理において空き領域が検出されなかった場合に、制御部１０２は、認証子付与条件マッチング処理とは個別に、メッセージ作成処理（Ｓ１０５）及びメッセージ送信処理（Ｓ１０６）を通じて空き領域が検出されなかったメッセージＭを、ネットワークＮＷに出力する送信処理を遂行する。
【０１５０】
認証子生成部１０５は、認証専用メッセージの認証子生成命令を受信すると（Ｓ３０１）、記憶部１０３を参照して、認証子生成対象メッセージを識別し（Ｓ３０１２）、識別された認証子生成対象メッセージのデータ本体Ｄ（ｍ），…，Ｄ（ｎ）を記憶部１０３から取得する（Ｓ３０３）。また、認証子生成部１０５は、認証装置２００と事前に共有された共通鍵Ｋを鍵管理部１０４から取得する（Ｓ３０１４）。
【０１５１】
認証子生成部１０５は、取得した複数のデータ本体Ｄと共通鍵Ｋを用いて、複数のメッセージを対象にした１つのメッセージ認証子Ｔを生成し（Ｓ３０１５）、生成したメッセージ認証子Ｔを制御部１０２に出力した後（Ｓ３０１６）、認証子生成処理を終了する。
【０１５２】
認証子付与部１０６は、認証生成部１０５でメッセージ認証子Ｔが生成されると、メッセージ認証子Ｔをデータフィールドに格納し、制御部１０２は、データフィールド以外の部分であるヘッダ及びトレーラを付与し、メッセージ認証子Ｔのみを含んだデータフィールドを有する認証専用メッセージを生成する（Ｓ１０４）。制御部１０２は、通信部１０１のインタフェースを通じてネットワークＮＷに認証専用メッセージを出力する（Ｓ１０５）。
【０１５３】
制御部１０２は、データ本体Ｄ（ｍ），…，Ｄ（ｎ）に対応する各メッセージのメッセージ送信履歴情報における認証子ステータスＳｔを“送信済”に更新する（Ｓ１０６）。
【０１５４】
図２１は、本実施形態の通信システム１Ｂの制御部１０２におけるメッセージ送信処理の変形例を示す図である。本実施形態の認証子付与条件マッチング処理は、認証子付与処理及びメッセージＭの空き領域に格納される認証子の生成処理とは個別に、遂行することができる。
【０１５５】
図２１に示すように、通信装置１００の制御部１０２は、記憶部１０３へのデータ本体Ｄ（ｎ）の記憶処理を契機に、認証子付与命令を認証子付与部１０６に送信（Ｓ１０３）する前に、認証子付与条件マッチング処理を遂行（Ｓ１０１２）し、認証子付与条件にマッチングすると判別された場合に、図２０の認証専用メッセージの認証子生成処理を経て、認証専用メッセージを生成（Ｓ１０１３）して送信する。また、ステップＳ１０１２において認証子付与条件にマッチングしないと判別された場合、制御部１０２は、認証子付与命令を認証子付与部１０６に出力し、認証子付与部１０６及び認証子生成部１０５を通じたデータフィールドの空き領域を利用したメッセージ認証子の送信処理を行う（Ｓ１０４〜Ｓ１０６）。
【０１５６】
図２２は、本実施形態の認証装置２００のメッセージ受信処理の動作フローの一例を示す図である。また、図２３は認証専用メッセージを用いた認証子検証処理の動作フローの一例を示す図である。
【０１５７】
図２２に示すように、認証装置２００は、通信装置２０１を介してネットワークＮＷから通信装置１００から送信されるメッセージを受信し、メッセージＭ（ｎ）を受信したことを契機に、メッセージ受信処理を開始する（Ｓ４０１）。このとき、受信したメッセージが認証専用メッセージであるか否かを判別し（Ｓ４０１２）、認証専用メッセージでない場合は、ステップＳ４０２に進んで、第１実施形態と同様の認証子検証処理を含むメッセージ受信処理を遂行する。
【０１５８】
制御部２０２は、ステップＳ４０１２において、受信したメッセージが認証専用メッセージであると判別された場合、認証子検証部２０５に、認証専用メッセージを用いた認証子検証処理命令を送信し、認証子検証部２０５が認証専用メッセージを用いた認証子検証処理を遂行する。
【０１５９】
認証子検証部２０５は、認証専用メッセージを用いた認証子検証処理命令を受信すると、認証対象メッセージを識別し（Ｓ５０１１）、記憶部２０３から識別された認証対象メッセージのＭ（ｎ）のデータ本体Ｄ（ｎ）及びデータ本体Ｄ（ｎ）と同じ送信元情報Ｉｓのデータ本体Ｄ（ｍ），…，Ｄ（ｎ−１）を取得する（Ｓ５０１２）。また、認証子検証部２０５は、鍵管理部２０４から送信元情報Ｉｓで特定される通信装置１００と認証装置２００が共有する共通鍵Ｋを取得する（Ｓ５０１３）。
【０１６０】
認証子検証部２０５は、取得した複数のデータ本体Ｄと共通鍵Ｋを用いて、メッセージ認証子Ｔ’を生成し（Ｓ５０１４）、認証専用メッセージのデータフィールドに格納されているメッセージ認証子Ｔと、生成したメッセージ認証子Ｔ’とを比較し、両者が一致する場合には、制御部２０２に検証成功の旨の検証結果を通知し、一致しない場合には、制御部２０２に検証失敗の旨の検証結果を通知する（Ｓ５０１５）。
【０１６１】
制御部２０２は、認証子検証部２０５からの検証結果に基づいて、検証成功の場合には（Ｓ４０４のＹＥＳ）、記憶部２０３のメッセージＭ（ｍ），…，Ｍ（ｎ）の全ての検証ステータスＳｖを“検証成功”に更新し（Ｓ４０６）、検証失敗の場合には（Ｓ４０４のＮＯ）、エラー処理（Ｓ４０５）をして記憶部２０３のメッセージＭ（ｍ），…，Ｍ（ｎ）の全ての検証ステータスＳｖを“検証失敗”に更新する（Ｓ４０６）。制御部２０２では、その後、メッセージ受信処理が終了する。
【０１６２】
本実施形態では、複数のメッセージを入力データとしてメッセージ認証子を生成し、メッセージ認証子を通信装置１００が送信するデータ本体Ｄを含むメッセージとは個別の認証専用メッセージに格納して送信することにより、通信装置１００が送信するメッセージに空き領域が検出されなくても、通信負荷を抑制した認証子を用いたメッセージ認証を実現することができる。
【０１６３】
以上、本発明の実施形態を説明したが、当該実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６４】
１００    通信装置
１０１    通信部
１０２    制御部
１０３    記憶部
１０４    鍵管理部
１０５    認証子生成部
１０６    認証子付与部
１０７    アプリケーション部
１０８    メッセージ重要度記憶部
１０９    認証子付与条件記憶部
２００    認証装置
２０１    通信部
２０２    制御部
２０３    記憶部
２０４    鍵管理部
２０５    認証子検証部
２０６    メッセージ重要度記憶部
ＮＷ      ネットワーク
【図１】
0005694851.tif 000002
【図２】
0005694851.tif 000003
【図３】
0005694851.tif 000004
【図４】
0005694851.tif 000005
【図５】
0005694851.tif 000006
【図６】
0005694851.tif 000007
【図７】
0005694851.tif 000008
【図８】
0005694851.tif 000009
【図９】
0005694851.tif 000010
【図１０】
0005694851.tif 000011
【図１１】
0005694851.tif 000012
【図１２】
0005694851.tif 000013
【図１３】
0005694851.tif 000014
【図１４】
0005694851.tif 000015
【図１５】
0005694851.tif 000016
【図１６】
0005694851.tif 000017
【図１７】
0005694851.tif 000018
【図１８】
0005694851.tif 000019
【図１９】
0005694851.tif 000020
【図２０】
0005694851.tif 000021
【図２１】
0005694851.tif 000022
【図２２】
0005694851.tif 000023
【図２３】
0005694851.tif 000024