以下、本発明の実施の形態について図面を参照して説明する。
本発明を適用した鍵情報更新システムは、例えば図1に示すように構成されている。
鍵情報更新システムは、鍵情報制御装置1と、複数の通信機器2A,2B,2C(以下、総称する場合には単に通信機器2と呼ぶ。)とを含む。鍵情報制御装置1及び通信機器2は、通信中継装置100に接続されている。鍵情報制御装置1及び通信機器2は、通信中継装置100によって情報が中継されて、相互に通信可能となっている。
通信中継装置100は、例えばインターネット等の通信ネットワークNTと有線接続されている。通信中継装置100は、例えばブロードバンドルータが該当する。
通信機器2は、例えば家庭内に設置された各種の機器である。本実施形態において、通信機器2Aは、通信中継装置100との間で無線信号を授受する無線通信機器である。通信機器2B、2Cは、通信中継装置100と通信線で有線接続されている。
本実施形態において、通信機器2は、有線通信又は無線通信を行うものであってもよい。無線通信は、一般的に、有線通信よりも通信品質が低い。また、通信機器2は、任意のタイミングでスリープ状態となり、一定期間又は何らかの外部トリガーにより起動するものであってもよい。このスリープ状態は、最低限の電力のみで動作し、通信が行えないような状態を含む。なお、通信機器2は、3つ以上であってもよい。
鍵情報制御装置1は、複数の通信機器2との間で通信を行い、複数の通信機器2を制御する。鍵情報制御装置1は、通信機器2との間で暗号化通信を行う。このために、鍵情報制御装置1は、各通信機器2との間で認証処理、鍵配布処理を行う。さらに、鍵情報制御装置1は、複数の通信機器2を含むネットワークにおいて使用されるグループ鍵を更新する。
鍵情報制御装置1は、例えば図2に示すような機能的な各部を有している。鍵情報制御装置1は、プログラムを読み込んで実行可能なコンピュータである。鍵情報制御装置1は、コンピュータによってプログラムを実行することにより、図2に示すような各部として機能する。このプログラムは、本実施形態において、複数の通信機器2を含むネットワークにおいて使用されるグループ鍵を更新する鍵情報制御プログラムである。
鍵情報制御装置1は、制御部11、通信部12、認証処理部13、認証情報記憶部14、鍵管理部15、及び、暗号処理部16を有する。さらに、鍵情報制御装置1は、通信品質計測部17及び通信品質記憶部18を有する。さらに、鍵情報制御装置1は、タイマー部19を有する。
通信部12は、通信機器2との間で通信を行う。通信部12は、マルチキャスト通信方式及びユニキャスト通信方式の何れかで通信機器2と通信を行う。この通信方式の切り替えは、制御部11によって制御される。
制御部11は、鍵情報制御装置1の各部を制御する。制御部11は、プログラムを記録したコンピュータ読み取り可能な記録媒体としての記憶部11aに記憶された鍵情報制御プログラム11bを実行する。
認証処理部13は、鍵情報制御装置1に接続される通信機器2との間で認証処理を行う。この認証処理部13は、既存の各種の認証処理が実行可能で有ればよい。
認証処理部13は、認証処理時に、認証情報記憶部14に記憶された認証情報を読み出す。認証情報は、例えば通信機器2のノードIDと機器固有鍵KD(Key of Device)(又はパスワード)である。認証処理部13は、通信機器2から送信された認証情報と認証情報記憶部14に記憶された認証情報とを対比して、通信機器2が正当な権限を有しているか否かを判定する。なお、機器固有鍵KDの代わりに公開鍵と秘密鍵を用いて、通信機器2が正当な権限を有しているかを判断してもよい。機器固有鍵KDを秘密鍵としても同じように実施することができる。
鍵管理部15は、鍵情報制御装置1が通信機器2との間で暗号化通信を行う際に使用する鍵情報を管理する。鍵管理部15は、通信機器2の機器固有鍵KD(ユニキャストでの通信機器の認証及び鍵暗号化鍵の配信用の鍵(Key of Device))、鍵暗号化鍵KEK(Key Encryption Key)、グループ鍵K(Gn)を管理する。管理されている鍵情報は、鍵管理テーブル15aに記憶される。
通信機器2ごとの機器固有鍵KDは、鍵情報制御装置1が通信機器2へ送る鍵暗号化鍵KEKの暗号化や通信機器2を認証するための鍵情報である。この機器固有鍵KDは、予め鍵情報制御装置1と各通信機器2に設定され、共有される。
鍵暗号化鍵KEKは、鍵の暗号化用の鍵である。鍵暗号化鍵KEKは、鍵情報制御装置1が導出する。鍵暗号化鍵KEKは、認証、鍵配布時に全通信機器2と鍵情報制御装置1とで共有される。
なお、通信機器2の機器固有鍵KDは、鍵情報制御装置1と通信機器2との間で鍵暗号化鍵(KEK)を暗号化して通信機器2に配信するための鍵情報(暗号化鍵)である。鍵情報制御装置1はセキュリティ性を高めるために通信機器2の機器毎に異なる値の機器固有鍵KDを持つことができる。
グループ鍵K(Gn)は、鍵情報制御装置1及び全ての通信機器2間で暗号化したマルチキャスト通信を行うための鍵情報である。グループ鍵K(Gn)は、鍵情報制御装置1が導出する。グループ鍵K(Gn)は、鍵暗号化鍵KEKで暗号化され、マルチキャスト通信によって全ての通信機器2に配布される。なお、グループ鍵K(Gn)におけるnは鍵のバージョンである。鍵管理部15によって新たに生成するごとに、n=1,2,3,・・・と増加される。
鍵管理部15は、鍵暗号化鍵KEK、グループ鍵K(Gn)を導出し、予め全通信機器2の機器固有鍵KDを保持している。鍵管理部15は、導出した鍵暗号化鍵KEKを、通信部12から各通信機器2に送信させる。また、鍵管理部15は、マルチキャスト通信によってグループ鍵K(Gn)を更新させる。
鍵管理部15は、鍵識別子を管理する。鍵識別子は、グループ鍵K(Gn)が更新される度に変更される値(EPOCH値)である。鍵管理部15は、グループ鍵を更新する度に、古いEPOCH値を新たなEPOCH値に更新する。
暗号処理部16は、鍵管理テーブル15aに記憶されている鍵情報を用いて、メッセージの暗号化処理を行う。また、暗号処理部16は、通信部12によって受信した暗号化情報を鍵管理テーブル15aに記憶されている鍵情報を用いて、暗号化データを復号化する。このとき、暗号処理部16は、鍵管理テーブル15aに記憶された適切な鍵情報を選択して使用する。
通信品質計測部17は、各通信機器2との間における通信品質を計測する。通信品質計測部17は、通信機器2から送信された情報のうちEPOCH値を参照する。通信品質計測部17は、古いEPOCH値の場合に、マルチキャスト通信によって送信したグループ鍵K(Gn)を受信していない通信機器2を検出する(通信品質検出手段)。また、通信品質計測部17は、後述するように、ノンス値のカウンタ値を使用して通信品質を検出してもよい。
通信品質記憶部18は、通信品質計測部17によって参照したEPOCH値を通信機器2ごとに記憶する。EPOCH値は、通信品質計測部17によって参照される。これにより、通信品質計測部17は、EPOCH値の抜けがある通信機器2について、通信品質が低いと判定できる。
このような鍵情報制御装置1は、制御部11によって通信部12の通信方式を変更する。通信部12は、通常のグループ鍵K(Gn)の更新処理において、鍵管理部15により生成されたEPOCH値及びグループ鍵K(Gn)をマルチキャスト通信によって複数の通信機器2に送信する(マルチキャスト通信手段)。
通信部12は、通信品質検出手段としての通信品質計測部17によりグループ鍵K(Gn)を受信していない通信機器2が検出された場合に、当該通信機器2に、再送機能付きユニキャスト通信によってグループ鍵K(Gn)を送信する(ユニキャスト通信手段)。
タイマー部19は、グループ鍵K(Gn)をマルチキャスト通信によって送信する間隔を計測する。このグループ鍵K(Gn)の送信間隔は、制御部11によって所定期間が設定される。タイマー部19は、制御部11によってタイマー値のクリア、タイマー値の計時が制御される。
通信機器2は、例えば図3に示すような機能的な各部を有している。通信機器2は、プログラムを読み込んで実行可能なコンピュータである。通信機器2は、コンピュータによってプログラムを実行することにより、図3に示すような各部として機能する。このプログラムは、本実施形態において、自己が保持するグループ鍵を更新する鍵情報更新プログラムである。これにより、通信機器2は、鍵情報更新装置として機能する。
通信機器2は、制御部21、通信部22、認証処理部23、鍵管理部24、及び、暗号処理部25を有する。さらに、通信機器2は、通信品質計測部26及び通信品質記憶部27を有する。さらに、通信機器2は、タイマー部28を有する。
通信部22は、鍵情報制御装置1及び他の通信機器2との間で通信を行う。通信部22は、マルチキャスト通信方式及びユニキャスト通信方式の何れかで鍵情報制御装置1と通信を行う。この通信方式の切り替えは、制御部21によって制御される。
制御部21は、通信機器2の各部を制御する。制御部21は、プログラムを記録したコンピュータ読み取り可能な記録媒体としての記憶部21aに記憶された鍵情報更新プログラム21bを実行する。
認証処理部23は、鍵情報制御装置1との間で認証処理を行う。この認証処理部23は、既存の各種の認証処理が実行可能で有ればよい。
認証処理部23は、認証処理時に、予め設定された認証情報を読み出す。認証情報は、例えば通信機器2のノードIDと機器固有鍵KD(Key of Device)(又はパスワード)である。認証処理部23は、鍵情報制御装置1の要求に応じて、認証情報を通信部22から鍵情報制御装置1に送信させる。
鍵管理部24は、鍵情報制御装置1及び他の通信機器2との間で暗号化通信を行う際に使用する鍵情報を管理する。鍵管理部24は、通信機器2の機器固有鍵KD、鍵暗号化鍵KEK、グループ鍵K(Gn)を管理する。管理されている鍵情報は、鍵管理テーブル24aに記憶される。また、鍵管理部24は、鍵識別子を鍵管理テーブル24aに記憶させる。
暗号処理部25は、鍵管理テーブル24aに記憶されている鍵情報を用いて、メッセージの暗号化処理を行う。また、暗号処理部25は、通信部22によって受信した暗号化情報を鍵管理テーブル24aに記憶されている鍵情報を用いて、暗号化データを復号化する。このとき、暗号処理部25は、鍵管理テーブル24aに記憶された適切な鍵情報を選択して使用する。
通信品質計測部26は、鍵情報制御装置1との間における通信品質を計測する。通信品質計測部26は、鍵情報制御装置1又は他の通信機器2から送信された情報のうちEPOCH値を参照する。通信品質計測部26は、受信した情報のうちのEPOCH値と鍵管理テーブル24aに保持しているとEPOCH値を対比する。この対比の結果、通信品質計測部26は、双方のEPOCH値が異なることや、EPOCH値の差分を検出する。この場合、通信品質計測部26は、更新されたグループ鍵K(Gn)を受信していないことを検出する(通信品質検出手段)。また、通信品質計測部26は、タイマー値を参照して、通信品質として、グループ鍵K(Gn)を受信していないことを検出してもよい。
通信品質記憶部27は、通信品質計測部26によって参照したEPOCH値を記憶する。EPOCH値は、通信品質計測部26によって参照される。これにより、通信品質計測部26は、EPOCH値の抜けがある場合に、通信品質が低いと判定できる。
このような通信機器2は、通信品質計測部26により更新されたグループ鍵K(Gn)を受信していないことが検出された場合に、再送機能付きユニキャスト通信によってグループ鍵K(Gn)を要求する。このとき、通信機器2は、鍵要求メッセージを鍵情報制御装置1に送信する。これにより、通信機器2は、ユニキャスト通信によって、通信部22が現在のグループ鍵K(Gn)を取得する(通信手段)。
タイマー部28は、グループ鍵K(Gn)をマルチキャスト通信によって受信する間隔を計測する。このグループ鍵K(Gn)の受信間隔は、予め鍵情報制御装置1との間で、所定期間が設定される。タイマー部28は、制御部21によってタイマー値のクリア、タイマー値の計時が制御される。これにより、タイマー部28は、所定期間を超えてグループ鍵K(Gn)を受信していない場合に、マルチキャスト通信によってグループ鍵K(Gn)を受信できていないことを検出する。
この鍵情報更新システムにおいて、鍵情報制御装置1は、通信機器2との間で暗号化通信を行う。このために、鍵情報制御装置1は、通信機器2をそれぞれ認証する。その後、鍵情報制御装置1は、各通信機器2との間のみで暗号化通信できる鍵暗号化鍵KEKを配布する。さらに、鍵情報制御装置1は、全ての通信機器2と暗号化通信できるグループ鍵K(Gn)を配布する。
これにより、グループ鍵K(Gn)は、鍵情報制御装置1及び全ての通信機器2によって共有される。なお、グループ鍵K(Gn)において、Gnは当該グループ鍵の時代(EPOCH値)に対応している。
このような鍵情報更新システムは、図1に示すように、鍵情報制御装置1から通信機器2にグループ鍵S1をマルチキャスト通信により送信する。このグループ鍵S1は、通信中継装置100を介して、通信機器2に送信される。通信機器2Aは無線通信機器であるので、通信中継装置100から通信機器2Aに無線信号S2aが送信される。通信機器2B、2Cは有線通信機器であるので、通信中継装置100から通信機器2B、2Cに有線信号S2b、S2cが送信される。
例えば、無線信号S2aがノイズ等を起因とする通信不良によって消失したとする。この場合、通信機器2Aは、鍵情報制御装置1及び他の通信機器2B、2Cが使用するグループ鍵S1が受信できない。したがって、通信機器2Aは、その後にグループ鍵S1で暗号化されたマルチキャスト通信によって送信された情報を復号できない。また、通信機器2Aは、古いグループ鍵で暗号化した情報を送信する。したがって、通信機器2Aから送信された情報は、鍵情報制御装置1及び他の通信機器2B、2Cによって復号できない。
そこで、本実施形態の鍵情報更新システムは、グループ鍵の更新に失敗した場合であっても通信を行うことができるようにする。このため、鍵情報更新システムは、通信不良を検出する。通信不良が検出された場合、鍵情報更新システムは、マルチキャスト通信とユニキャスト通信とを併用して、通信不良が発生した通信機器2のグループ鍵を更新する。以下、この動作を詳細に説明する。
先ず、鍵情報更新システムにおいて通信するパケットに含まれるEPOCH値を含むノンス(Nonce)について、図4を参照して説明する。
鍵情報更新システムにおいて通信するパケットには、IPアドレスやUDPに加え、図4(a)又は図4(b)に示すノンスが含まれている。ノンスは、データ暗号化時のパラメータの一つとして使用し、送信データメッセージのヘッダー部に付加される。図4(a)に示すノンスには、EPOCH値及びカウンタ値が含まれている。図4(b)に示すノンスには、EPOCH値、ノードID、及び、カウンタ値が含まれている。
EPOCH値は、グループ鍵K(Gn)の識別子である。EPOCH値は、鍵情報制御装置1によって、グループ鍵K(Gn)が更新される度に変更される。鍵情報制御装置1は、グループ鍵K(Gn)を新たなものとする度に、EPOCH値をインクリメントする。
ノードIDは、鍵情報制御装置1及び通信機器2を識別する識別子である。鍵情報制御装置1及び通信機器2は、データを送信する際に自己のノードIDをメッセージに格納する。
カウンタ値は、EPOCH値で識別されるグループ鍵K(Gn)を用いて暗号化マルチキャスト通信を行った回数を表す。このカウンタ値は、鍵情報制御装置1及び通信機器2のそれぞれによって管理される。カウンタ値は、鍵情報制御装置1及び通信機器2がデータを送信するごとにカウントアップされる。グループ鍵K(Gn)の更新は、鍵情報制御装置1によって、カウンタ値が最大値に達する前に実施される。
つぎに、この鍵情報更新システムにおいて、通信不良が発生していない場合の動作について、図5を参照して説明する。
先ず、鍵情報制御装置1と通信機器2Cとの間で、認証処理及び鍵配布処理P1を行う。鍵情報制御装置1は、通信機器2Cが正当な機器であると判定した後、ユニキャスト通信によって、鍵暗号化鍵KEKを配布する。
次に、鍵情報制御装置1は、マルチキャスト通信によってグループ鍵K(G1)を配布する。このとき、鍵情報制御装置1は、関数E(KEK,K(G1))で得た暗号化情報をマルチキャスト通信で送信する。この関数Eは、鍵暗号化鍵KEKを用いてグループ鍵K(G1)を暗号化する関数である。この鍵暗号化鍵KEKは、処理P1にて配布された鍵暗号化鍵KEKである。
通信機器2Cは、鍵情報制御装置1からマルチキャスト通信された関数Eを受信すると、復号する。このとき、通信機器2Cは、関数D(KEK,E(KEK,KGn))なる演算を行う。この関数Dは、鍵暗号化鍵KEKを用いて、E(KEK,KGn)で得た暗号化情報を復号する関数である。これにより、通信機器2Cは、グループ鍵K(G1)を復号することができる。
鍵情報制御装置1は、通信機器2B、通信機器2Aについても、同様に認証処理及び鍵配布処理P2、P3を行う。さらに、鍵情報制御装置1は、認証処理及び鍵配布処理P2、P3が完了する度に、グループ鍵K(G2)、K(G3)を配布する。
これにより、鍵情報制御装置1及び全ての通信機器2は、グループ鍵K(G3)を用いて、暗号化マルチキャスト通信によってデータ通信処理P4を行うことができる。
グループ鍵K(Gn)の更新タイミングとなると、鍵情報制御装置1及び通信機器2は、鍵更新処理P5を行う。この鍵更新処理P5は、鍵情報制御装置1によって生成した新たなグループ鍵K(G4)をマルチキャスト通信によって全ての通信機器2に配布する。そして、それぞれの通信機器2は、マルチキャスト通信によってグループ鍵K(G4)を受信し、鍵管理テーブル24aに記憶しているグループ鍵K(G3)を、新たなグループ鍵K(G4)に更新する。
その後、例えば鍵情報制御装置1から全ての通信機器2に暗号化データを送信する。この暗号化データは、関数E(K(G4),データ)で得た暗号化情報を含む。各通信機器2は、鍵情報制御装置1から送信された暗号化データがマルチキャスト通信によって受信する。各通信機器2は、暗号化データをグループ鍵K(G4)で復号する。これにより、各通信機器2は、関数D(K(G4)),E(K(G4),データ))なる演算を行って、データを得ることができる。
つぎに、上述した鍵情報更新システムにおいて、グループ鍵K(Gn)を更新するときのノンス値について、図6を参照して説明する。ノンスに含まれるEPOCH値、ノードID、カウンタ値は、図6において、Nonce={EPOCH, ノードID,カウンタ値}として示している。
通信機器2Cによってグループ鍵K(G1)を用いて暗号化した暗号化データを送信する。この暗号化データには、ノンス値が付加される。この暗号化データは、マルチキャスト通信によって通信機器2A、通信機器2B、及び、鍵情報制御装置1に送信される。
先ず、1回目に送信される暗号化データには、Nonce = {0, 3, 0}が付加される。2回目に送信される暗号化データには、カウンタ値が増加されたNonce = {0, 3, 1}が付加される。そして、カウンタ値の最大値から1だけ差し引いた回数に送信される暗号化データにはNonce = {0, 3, 232-1}が付加される。
鍵情報制御装置1は、最大値から1だけ引いたカウンタ値をノンス値Nonce = {0, 3, 232-1}から検出する。すると、鍵情報制御装置1は、マルチキャスト通信によって新たなグループ鍵K(G2)を含む鍵更新メッセージを送信する。これにより、通信機器2Cは、グループ鍵K(G1)を、新たなグループ鍵K(G2)に更新する。
その後、通信機器2Cは、グループ鍵K(G2)で暗合した暗号化データのそれぞれに、Nonce = {1, 3, 0}、Nonce = {1, 3, 1}、Nonce = {1, 3, 232-1}を付加できる。さらにその後、グループ鍵K(G2)によって暗号化した暗号化データを送信した回数が232-1となると、グループ鍵K(G2)を、新たなグループ鍵K(G3)に更新することとなる。
つぎに、上述した鍵情報更新システムにおいて、鍵情報制御装置1がグループ鍵K(Gn)の未受信を検出した場合の動作について、図7を参照して説明する。
先ず、鍵情報更新システムは、図5を参照して説明したように、鍵情報制御装置1と通信機器2A,2B,2Cとの間で、認証処理及び鍵配布処理P1、P2、P3を行う。さらに、鍵情報制御装置1は、認証処理及び鍵配布処理後に、グループ鍵K(Gn)をマルチキャスト通信によって配布する。その結果、鍵情報制御装置1及び通信機器2A,2B,2Cは、最新のグループ鍵K(G3)を用いてデータ通信処理P4を行う。
その後、グループ鍵K(Gn)の更新タイミングとなると、鍵情報制御装置1は、通信機器2A,2B,2Cに対して、マルチキャスト通信によってグループ鍵K(G4)を配布する鍵更新処理P5を行う(マルチキャスト通信手段)。このグループ鍵K(G4)に対応したEPOCH値は「4」である。このとき、鍵情報制御装置1から通信機器2Aに送信された鍵更新メッセージは通信不良により通信機器2Aに受信されなかったとする。
その後、通信機器2Aは、旧グループ鍵K(Gn)としてのグループ鍵K(G3)によって暗号化した暗号化データを送信する。このグループ鍵K(G3)に対応したEPOCH値は「3」である。すると、この暗号化データは、通信機器2B、2C、及び、鍵情報制御装置1に受信される。しかし、通信機器2B、2C、及び、鍵情報制御装置1は、最新のグループ鍵K(G4)を用いて復号しようとしても復号が失敗する。
復号が失敗すると、鍵情報制御装置1は、通信機器2Aから送信された情報のうちEPOCH値を参照する。すると、鍵情報制御装置1が保持しているEPOCH値は「4」であるのに対し、通信機器2Aから送信された情報のうちEPOCH値は「3」である。これにより、鍵情報制御装置1は、マルチキャスト通信によって送信したグループ鍵K(G4)を受信していない通信機器として通信機器2Aを検出する(通信品質検出手段)。
この場合、鍵情報制御装置1は、通信機器2Aに、再送機能付きユニキャスト通信によってグループ鍵K(G4)を送信する(ユニキャスト通信手段)。このとき、鍵情報制御装置1は、認証処理及び鍵配布処理P3において配布した鍵暗号化鍵KEKによって、新たなグループ鍵K(G4)を暗号化する。
鍵情報制御装置1は、ユニキャスト通信によってグループ鍵K(G4)を送信する場合、再送機能付きユニキャスト通信を行う。この再送機能付きユニキャスト通信は、通信機器2から受信応答を受信するまで、ユニキャスト通信を繰り返す。鍵情報制御装置1は、例えば、2回に亘りユニキャスト通信を行ってグループ鍵K(G4)が通信不良によって消失しても、3回目のユニキャスト通信によって通信機器2Aにグループ鍵K(G4)を送信できる。
このユニキャスト通信によって送信されたグループ鍵K(G4)は、通信機器2Aの鍵暗号化鍵KEKを用いて復号される。通信機器2Aは、グループ鍵K(G3)を、最新のグループ鍵K(G4)に更新できる。通信機器2Aは、最新のグループ鍵K(G4)を受信すると、鍵情報制御装置1に対し、ユニキャスト通信によって受信応答を送信する。
また、鍵情報制御装置1は、再送機能付きユニキャスト通信によって、グループ鍵K(Gn)に加えて、最新のEPOCH値を送信してもよい。この場合、通信機器2Aは、グループ鍵K(G3)をグループ鍵K(G4)に更新すると共に、記憶しているEPOCH値「3」を、最新のEPOCH値「4」に更新できる。
以上のように、鍵情報更新システムによれば、マルチキャスト通信によって送信したグループ鍵K(Gn)が通信不良によって消失しても、グループ鍵K(Gn)を送信する通信方式を自動的にマルチキャスト通信から再送機能付きユニキャスト通信に切り替える。
これにより、鍵情報更新システムは、マルチキャスト通信方式から、受信応答を要する再送機能付きユニキャスト通信に切り替えてグループ鍵K(Gn)を送信することにより、グループ鍵K(Gn)の更新をより確実に実施することができる。
また、この鍵情報更新システムによれば、鍵管理部15によって、新たなグループ鍵に変更する度にEPOCH値の値を大きく変更する。鍵情報制御装置1は、通信品質計測部17によって、通信機器2から送信されたEPOCH値が、鍵管理部15により変更されたEPOCH値よりも小さい場合に、マルチキャスト通信によって送信したグループ鍵を受信していないことを検出できる。
このように、EPOCH値を参照して、マルチキャスト通信による鍵更新メッセージが消失したことを検出し、再送機能付きユニキャスト通信に切り替えて鍵更新を実施できる。これにより、確実にグループ鍵を更新でき、かつ、再度認証処理及びシステム全体の鍵更新の処理を行うことなく、グループ鍵を用いたマルチキャスト通信を実施できる。
さらに、この鍵情報更新システムによれば、鍵情報制御装置1によって、最新のグループ鍵に加えて、鍵管理部15が生成した最新のEPOCH値を送信することができる。これにより、鍵情報制御装置1から通信機器2に、再送機能付きユニキャスト通信によって、最新のEPOCH値を送信できる。これにより、鍵情報更新システムは、鍵情報制御装置1から通信機器2に最新のEPOCH値を送信して、直ちにグループ鍵を用いたマルチキャスト通信を容易に開始できる。
つぎに、上述した鍵情報更新システムにおいて、通信機器2がグループ鍵K(Gn)の未受信を検出した場合の動作について、図8を参照して説明する。
鍵情報更新システムは、上述したように、鍵情報制御装置1と通信機器2A,2B,2Cとの間で、認証処理及び鍵配布処理P1、P2、P3を行う。さらに、鍵情報制御装置1及び通信機器2A,2B,2Cは、最新のグループ鍵K(G3)を用いてデータ通信処理P4を行う。その後、グループ鍵K(Gn)の更新タイミングとなり、鍵情報制御装置1から通信機器2Aに送信された鍵更新メッセージは通信不良により通信機器2Aに受信されなかったとする。
その後、鍵情報制御装置1は、新たなグループ鍵K(G4)によって暗号化した暗号化データをマルチキャスト通信によって送信する。このグループ鍵K(G3)に対応したEPOCH値は「4」である。すると、この暗号化データは、通信機器2A,2B,2Cに受信される。通信機器2B、2Cは、鍵更新処理P5によって得た新たなグループ鍵K(G4)によって暗号化データの復号に成功できる。
しかし、通信機器2Aは、自身が鍵管理テーブル24aに記憶しているグループ鍵K(G3)によって復号しようとしても復号が失敗する。復号が失敗すると、通信機器2Aは、鍵情報制御装置1から送信された情報のうちEPOCH値を参照する。すると、通信機器2Aが保持しているEPOCH値は「3」であるのに対し、鍵情報制御装置1から送信された情報のうちEPOCH値は「4」である。これにより、通信機器2Aは、最新のグループ鍵K(Gn)を受信していないことを検出する(通信品質検出手段)。
この場合、通信機器2Aは、鍵情報制御装置1に、再送機能付きユニキャスト通信によって最新のグループ鍵K(Gn)の送信を要求する(ユニキャスト通信手段)。なお、通常は平文で、新たなグループ鍵の要求メッセージを送る。この平文のメッセージは、{MSG、EPOCH、D_2A}の構成例になる。ここで、MSGは要求であることを示す識別子であり、EPOCHは通信機器2Aが鍵情報制御装置1から受信したEPOCH値であり、D_2Aは通信機器2Aを識別できる識別子またはIDである。
このとき、通信機器2Aは、認証処理及び鍵配布処理P3において配布した暗号化鍵KEKによって、新たなグループ鍵K(Gn)を要求する鍵要求メッセージにメッセージ認証コード(MAC)の情報を付加してもよい。このメッセージ認証コードの情報は、通信機器2Aであることを証明するための情報である。
このメッセージ認証コード(MAC)を付加した要求は、例えば、{MSG,EPOCH,D_2A,MAC(KD_2A,MSG,D_2A,EPOCH)}の構成例になる。関数MACは、鍵情報としてKD_2A,メッセージとしてMSG,D_2A,EPOCHを入力値として計算し、MAC値を出力する。このMAC値は、通信機器2Aの機器固有鍵KDが含まれている。このため、機器固有鍵KDが異なると同じMSG,D_2A,EPOCHを入力してもMAC値は一致しない。したがって、MAC値は、通信機器2Aであることを証明する情報となる。MSGは要求であることを示す識別子(文字列も含む)である。EPOCHは、通信機器2Aが鍵情報制御装置1から受信したEPOCH値である。D_2Aは通信機器2Aを識別できる識別子またはノードIDである。
通信機器2Aは、ユニキャスト通信によってグループ鍵K(Gn)を要求する場合、再送機能付きユニキャスト通信を行う。この再送機能付きユニキャスト通信は、鍵情報制御装置1から受信応答を受信するまで、ユニキャスト通信を繰り返す。通信機器2Aは、例えば、2回に亘りユニキャスト通信を行ってグループ鍵K(Gn)の要求が通信不良によって消失しても、3回目のユニキャスト通信によって鍵情報制御装置1にグループ鍵K(Gn)の鍵要求メッセージを送信できる。
このユニキャスト通信によって送信されたグループ鍵K(Gn)の鍵要求メッセージは、メッセージ認証が付加されていた場合、鍵情報制御装置1の通信機器2Aの機器固有鍵KDを用いて検証される。メッセージ認証コードが付加されていない場合は、通信相手が正当な通信機器2Aではないと判定する。一方、メッセージ認証コードが付加されていた場合は通信機器2Aであることが確認でき、鍵情報制御装置1は、通信機器2Aに最新のグループ鍵K(G4)を送信するようユニキャスト通信を行う。このとき、鍵情報制御装置1は、再送機能付きユニキャスト通信によって、グループ鍵K(G4)を送信してもよい。
通信機器2Aは、グループ鍵K(Gn)の鍵要求メッセージに対して、鍵情報制御装置1から最新のグループ鍵K(G4)を受信すると、鍵暗号化鍵KEKを用いて復号できる。これにより、通信機器2Aは、グループ鍵K(G3)を、最新のグループ鍵K(G4)に更新できる。通信機器2Aは、最新のグループ鍵K(G4)を受信すると、鍵情報制御装置1に対し、ユニキャスト通信によって受信応答を送信する。
また、鍵情報制御装置1は、再送機能付きユニキャスト通信によって、グループ鍵K(Gn)に加えて、最新のEPOCH値を送信してもよい。この場合、通信機器2Aは、グループ鍵K(G3)をグループ鍵K(G4)に更新すると共に、記憶しているEPOCH値「3」を、最新のEPOCH値「4」に更新できる。
以上のように、鍵情報更新システムによれば、マルチキャスト通信によって送信したグループ鍵K(Gn)が通信不良によって消失しても、グループ鍵K(Gn)を送信する通信方式を自動的にマルチキャスト通信から再送機能付きユニキャスト通信に切り替える。
これにより、鍵情報更新システムは、通信機器2によって受信応答を要する再送機能付きユニキャスト通信によってグループ鍵K(Gn)の鍵要求メッセージを送信することにより、鍵情報制御装置1から最新のグループ鍵K(Gn)を得ることができる。したがって、この通信機器2によれば、マルチキャスト通信によって最新のグループ鍵K(Gn)が消失しても、グループ鍵K(Gn)の更新をより確実に実施することができる。
また、通信機器2は、鍵情報制御装置1又は他の通信機器2から送信された情報に含まれるEPOCH値が、通信機器2(自己)に記憶されたEPOCH値よりも大きい場合に、マルチキャスト通信によって送信したグループ鍵を受信していないことを検出できる。すなわち、通信機器2は、自身のEPOCH値が小さく、自身が保有しているグループ鍵K(Gn)が古い場合に、鍵更新メッセージを要求することができる。
このように、EPOCH値を参照して、マルチキャスト通信による鍵更新メッセージが消失したことを検出し、再送機能付きユニキャスト通信に切り替えて鍵更新を実施できる。これにより、通信相手に問い合わせることなく確実にグループ鍵を更新でき、かつ、再度認証処理及びシステム全体の鍵更新の処理を行うことなく、グループ鍵を用いたマルチキャスト通信を実施できる。
つぎに、上述した鍵情報更新システムにおいて、通信機器2がグループ鍵K(Gn)の未受信を検出する他の動作について、図9を参照して説明する。
通信機器2は、最新のグループ鍵K(G3)を配布する鍵更新メッセージを受信すると、タイマー部28を起動させる。通信機器2は、所定時間tを超えてグループ鍵K(Gn)を含む鍵更新メッセージを受信していない場合に、マルチキャスト通信によってグループ鍵を受信できていないことを検出する。
この場合、通信機器2Aは、鍵情報制御装置1に、再送機能付きユニキャスト通信によって最新のグループ鍵K(Gn)の送信を要求する(ユニキャスト通信手段)。なお、通常は平文で、新たなグループ鍵の要求メッセージを送る。この平文のメッセージは、{MSG、EPOCH、D_2A}の構成例になる。MSGは要求であることを示す識別子である。EPOCHは通信機器2Aが鍵情報制御装置1から受信したEPOCH値である。D_2Aは通信機器2Aを識別できる識別子またはIDである。
このとき、通信機器2Aは、認証処理及び鍵配布処理P3において配布した鍵暗号化鍵KEKによって、新たなグループ鍵K(Gn)を要求する鍵要求メッセージにメッセージ認証(MAC)の情報を暗号化して付加してもよい。このメッセージ認証コードの情報は、通信機器2Aであることを証明するための情報である。
このメッセージ認証コード(MAC)を付加した要求は、例えば、{MSG,EPOCH,D_2A,MAC(KD_2A,MSG,D_2A,EPOCH)}の構成例になる。関数MACは、鍵情報としてKD_2A,メッセージとしてMSG,D_2A,EPOCHを入力値として計算し、MAC値を出力する。このMAC値は、通信機器2Aの機器固有鍵KDが含まれている。このため、機器固有鍵KDが異なると同じMSG,D_2A,EPOCHを入力してもMAC値は一致しない。したがって、MAC値は、通信機器2Aであることを証明する情報となる。MSGは要求であることを示す識別子(文字列も含む)である。EPOCHは、通信機器2Aが鍵情報制御装置1から受信したEPOCH値である。D_2Aは通信機器2Aを識別できる識別子またはノードIDである。
このユニキャスト通信によって送信されたグループ鍵K(Gn)の鍵要求メッセージは、メッセージ認証が付加されていた場合、鍵情報制御装置1の通信機器2Aの機器固有鍵KDを用いて検証される。メッセージ認証コードが付加されていない場合は、通信相手が正当な通信機器2Aではないと判定する。一方、メッセージ認証コードが付加されていた場合は通信機器2Aであることが確認でき、鍵情報制御装置1は、通信機器2Aに最新のグループ鍵K(G4)を送信するようユニキャスト通信を行う。
通信機器2Aは、グループ鍵K(Gn)の鍵要求メッセージに対して、鍵情報制御装置1から最新のグループ鍵K(G4)を受信すると、鍵暗号化鍵KEKを用いて復号できる。これにより、通信機器2Aは、グループ鍵K(G3)を、最新のグループ鍵K(G4)に更新できる。通信機器2Aは、最新のグループ鍵K(G4)を受信すると、鍵情報制御装置1に対し、ユニキャスト通信によって受信応答を送信する。
この鍵情報更新システムによれば、鍵情報制御装置1によってグループ鍵をマルチキャスト通信によって送信する間隔を所定期間とする。一方、通信機器2は、所定期間を超えてグループ鍵を受信していない場合に、マルチキャスト通信によってグループ鍵を受信できていないことを検出する。この鍵情報更新システムによれば、通信機器2によって容易に鍵更新メッセージの通信不良を検出できる。これにより、通信機器2が直ちにグループ鍵を要求でき、通信機器2がマルチキャスト通信の不能な期間を短縮できる。
つぎに、上述した鍵情報更新システムにおいて、鍵情報制御装置1及び通信機器2のそれぞれの内部動作について説明する。
図10は、鍵情報制御装置1の動作手順を示すフローチャートである。この動作は、コンピュータとしての鍵情報制御装置1が、記録媒体としての記憶部11aに記憶された鍵情報制御プログラム11bを実行することによって行われる処理である。
先ずステップS1において、通信部12によって、外部から送信されたメッセージを受信する。
次のステップS2において、制御部11によって、ステップS1にて受信したメッセージが、通信機器2から送信された鍵要求メッセージか否かを判定する。このとき、制御部11は、アドレス情報又はノードIDを参照して、メッセージの送信元の通信機器2を特定する。また、制御部11は、ノンス値に付加された暗号化データを参照して、受信したメッセージが鍵要求メッセージか否かを判定する。鍵要求メッセージである場合にはステップS3に処理を進め、そうでない場合にはステップS5に処理を進める。
ステップS3において、通信部12は、再送機能付きユニキャスト通信によって、最新のグループ鍵K(Gn)を送信する。このとき、鍵管理部15は、制御部11の制御に従って、鍵管理テーブル15aから最新のグループ鍵K(Gn)を読み出す。また、鍵管理部15は、鍵要求メッセージの送信元の通信機器2に対応した鍵暗号化鍵KEKを読み出し、暗号処理部16によって暗号化させる。
次のステップS4において、通信部12は、ステップS3においてグループ鍵K(Gn)を送信したことに対し、ユニキャスト通信によって、通信機器2から受信応答を受信する。
ステップS5において、通信品質計測部17は、ステップS1にて受信したメッセージに含まれるEPOCH値(受信EPOCH値)が、現在のEPOCH値よりも古いか否かを判定する。このとき、通信品質計測部17は、現在鍵管理テーブル15aに記憶しているEPOCH値と受信EPOCH値との大小関係を比較する。受信EPOCH値が、鍵管理テーブル15aに記憶したEPOCH値よりも小さい場合には、受信EPOCH値が古いのでステップS6に処理を進める。双方のEPOCH値が同じ値である場合にはステップS9に処理を進める。
ステップS6において、制御部11は、ステップS1にて受信したメッセージに含まれるノードID、EPOCH値を含む機器情報を通信品質記憶部18に記録する。
次のステップS7において、通信部12は、ユニキャスト通信によって、グループ鍵K(Gn)を更新する鍵更新メッセージを送信する。このとき、制御部11の制御に従って、鍵管理部15は鍵管理テーブル15aから最新のグループ鍵K(Gn)を読み出す。暗号処理部16は、制御部11の制御に従って、グループ鍵K(Gn)を、鍵暗号化鍵KEKによって暗号化する。通信部12は、暗号化されたグループ鍵K(Gn)を含みメッセージ送信元機器のノードIDを含む鍵更新メッセージを送信する。
このユニキャスト通信のポート番号Bは、マルチキャスト通信によって使用するポート番号Aとは異なる値を使用することが望ましい。
次のステップS8において、通信部12は、ステップS7において送信した鍵更新メッセージに対する受信応答をユニキャスト通信によって受信する。
ステップS9において、暗号処理部16は、ステップS1にて受信したメッセージを、最新のグループ鍵K(Gn)によって復号する。
ステップS10において、制御部11は、ステップS9にて復号されたメッセージに従って各種の処理を行う。
ステップS11において、制御部11は、ノンス値に含まれるカウンタ値が閾値以上であるか否かを判定する。この閾値は、予め設定された値であり、例えばカウンタ値の割当ビット量に応じた232−1等の値が設定されている。カウンタ値が閾値以上である場合にはステップS12に処理を進め、そうでない場合には処理を終了する。
ステップS12において、通信部12は、全ての通信機器2のグループ鍵K(Gn)を最新にするために、最新のグループ鍵K(Gn)を含む鍵更新メッセージを送信する。この鍵更新メッセージは、鍵管理部15が導出した最新のグループ鍵K(Gn)を鍵暗号化鍵KEKによって暗号化した値を含む。このとき、通信部12は、マルチキャスト通信方式によって、鍵更新メッセージを送信する。
通信部12は、マルチキャスト通信(マルチキャスト通信手段)によって使用するポート番号Aを、ユニキャスト通信(ユニキャスト通信手段)によって使用するポート番号Bとは異なる値としてもよい。
次のステップS13において、制御部11は、通信機器2のうち、保証モードとなっている通信機器2があるか否かを判定する。保証モードとなっている通信機器2がある場合にはステップS14に処理を進め、ない場合には処理を終了する。なお、この保証モードについては後述する。
ステップS14において、通信部12は、再送機能付きユニキャスト通信によって、通信機器2に対して鍵更新メッセージを送信する。このとき、通信部12は、マルチキャスト通信において使用するポート番号Aとは異なる値のポート番号Bを使用してもよい。
以上のように、鍵情報制御装置1は、通信機器2からの鍵要求メッセージに応じて、ユニキャスト通信によってグループ鍵K(Gn)を送信できる。また、鍵情報制御装置1は、受信EPOCH値が篩場合には再送機能付きユニキャスト通信によって通信機器2に最新のグループ鍵K(Gn)を送信できる。さらに、鍵情報制御装置1は、カウンタ値が閾値以上となった場合にマルチキャスト通信によって全ての通信機器2のグループ鍵K(Gn)を更新できる。
図11は、通信機器2の動作手順を示すフローチャートである。この動作は、コンピュータとしての通信機器2が、制御部21に記憶された鍵情報更新プログラム21bを実行することによって行われる処理である。
先ずステップS21において、通信部22によって、外部から送信されたメッセージを受信する。
次のステップS22において、制御部21によって、ステップS21にて受信したメッセージが、鍵情報制御装置1からマルチキャスト通信によって送信された鍵更新メッセージか否かを判定する。このとき、制御部21は、アドレス情報又はノードIDを参照して、メッセージの送信元が鍵情報制御装置1であるかを特定する。また、制御部21は、ノンス値に付加された暗号化データを参照して、受信したメッセージが鍵更新メッセージか否かを判定する。鍵更新メッセージである場合にはステップS23に処理を進め、そうでない場合にはステップS24に処理を進める。
ステップS23において、制御部21は、ステップS21にて受信した鍵更新メッセージを暗号処理部25によって復号する。このとき、暗号処理部25は、鍵管理テーブル24aに記憶された鍵暗号化鍵KEKを用いて鍵更新メッセージを復号して、最新のグループ鍵K(Gn)を得る。鍵管理部24は、鍵管理テーブル24aに記憶している最新のグループ鍵K(Gn)を、鍵更新メッセージから取り出したグループ鍵K(Gn)に更新する。
ステップS24において、通信品質計測部26は、ステップS21にて受信したメッセージに含まれるEPOCH値(受信EPOCH値)が、現在のEPOCH値よりも新しいか否かを判定する。このとき、通信品質計測部26は、現在鍵管理テーブル24aに記憶しているEPOCH値と受信EPOCH値との大小関係を比較する。受信EPOCH値が、鍵管理テーブル24aに記憶したEPOCH値よりも大きい場合には、受信EPOCH値が新しいのでステップS25に処理を進める。双方のEPOCH値が同じ値である場合にはステップS29に処理を進める。
ステップS25において、制御部21は、ステップS21にて受信したメッセージを一時的に保存する。
次のステップS26において、通信部22は、最新のグループ鍵K(Gn)を要求する鍵要求メッセージを送信する。このとき、通信部22は、ユニキャスト通信によって、機器固有鍵KDによるメッセージ認証を付加した鍵要求メッセージを送信する。
次のステップS27において、通信部22は、ステップS26にて送信した鍵要求メッセージに対し、ユニキャスト通信によって鍵情報制御装置1から送信された鍵更新メッセージを受信する。このとき、鍵更新メッセージのポート番号Bが、マルチキャスト通信によって使用されているポート番号Aと異なっていてもよい。この場合、通信部22は、ユニキャスト通信に対応するポート番号Bによって受信を行う。
ステップS28において、制御部21は、ステップS27にて受信した鍵更新メッセージを暗号処理部25によって復号する。このとき、暗号処理部25は、鍵管理テーブル24aに記憶された鍵暗号化鍵KEKを用いて鍵更新メッセージを復号して、最新のグループ鍵K(Gn)を得る。鍵管理部24は、鍵管理テーブル24aに記憶している最新のグループ鍵K(Gn)を、鍵更新メッセージから取り出したグループ鍵K(Gn)に更新する。
次のステップS29において、暗号処理部16は、ステップS28にて更新された最新のグループ鍵K(Gn)を用いて、ステップS25で一時的に保存したメッセージを復号する。
次のステップS30において、通信部22は、ステップS21にて受信したメッセージに応じ、各種のマルチキャスト通信処理を行う。
以上のように、通信機器2は、鍵情報制御装置1からマルチキャスト通信によって鍵更新メッセージが送信された場合にはグループ鍵K(Gn)を更新できる。また、通信機器2は、受信EPOCH値が新しい場合には、ユニキャスト通信によって鍵要求メッセージを送信し、ユニキャスト通信によって最新のグループ鍵K(Gn)を受信してグループ鍵K(Gn)を更新できる。さらに、通信機器2は、喩え最新のグループ鍵K(Gn)を保持していなくても一時的にメッセージを保存しておき、最新のグループ鍵K(Gn)を取得して復号できる。
さらに、上述した鍵情報更新システムにおいて、鍵情報制御装置1及び通信機器2は、マルチキャスト通信に使用するポート番号とユニキャスト通信に使用するポート番号とを異なる値を割り当てる。これにより、鍵情報制御装置1及び通信機器2から送信するメッセージに、当該メッセージを暗号化した鍵を記述する必要が無くなる。また、グループ鍵K(Gn)のカウンタ値とは別に、鍵暗号化鍵KEKのカウンタ値を管理でき、グループ鍵K(Gn)を更新する管理を容易にすることができる。
つぎに、上述した鍵情報更新システムにおいて、通信機器2の通信不良が所定の閾値を超えたことを判定する処理について説明する。
図12に、通信機器2Aによってグループ鍵K(G1)を用いた暗号化データ通信のシーケンス図を示す。この例において、通信機器2Aが通信を開始する時には、鍵情報制御装置1及び全ての通信機器2との間で認証処理及び初期のグループ鍵K(G1)は共有できているとする。
通信機器2Aは、カウンタ値が最大値となるまでマルチキャスト通信を繰り返す。この例では、ノンス値がNonce={0, 1, 1}、Nonce={0, 1, 2}、Nonce={0, 1, 5}のメッセージは通信機器2B、2C、鍵情報制御装置1に到達する前に消失している。一方、ノンス値がNonce={0, 1, 0}、Nonce={0, 1, 3}、Nonce={0, 1, 4}、Nonce={0, 1, 6}のメッセージは通信機器2B、2C及び鍵情報制御装置1に到達している。
このようなシーケンスが行われる鍵情報更新システムにおいて、鍵情報制御装置1は、通信機器2ごとに、カウンタ値を用いて通信不良を判定する。
鍵情報制御装置1は、グループ鍵K(Gn)の更新タイミングとなると、マルチキャスト通信によって、鍵更新メッセージを送信する。図12の例では、グループ鍵K(Gn)がK(G2)、K(G3)、K(G4)、K(G5)と更新するごとに、鍵更新メッセージを配信する。各鍵更新メッセージのEPOCH値は、K(G2)、K(G3)、K(G4)、K(G5)と更新するごとに、1、2、3、4と増加する。
このような通信シーケンスにおいて、EPOCH値が0、1、4の鍵更新メッセージは通信機器2Aに受信されている。これにより、通信機器2Aは、EPOCH値が0、1、4に対応したグループ鍵K(G1)、K(G2)、グループ鍵K(G5)を用いたマルチキャスト通信を行って鍵情報制御装置1と通信できる。一方、EPOCH値が2、3、の鍵更新メッセージは通信機器2Aに到達する前に消失している。したがって、通信機器2Aは、EPOCH値が2、3に対応したグループ鍵K(G3)、K(G4)を用いたマルチキャスト通信は行えない。
このようなシーケンスが行われる鍵情報更新システムにおいて、鍵情報制御装置1は、通信機器2ごとに、EPOCH値を用いて通信不良を判定する。
鍵情報制御装置1は、カウンタ値又はEPOCH値を用いて通信機器2ごとの通信不良を判定する。鍵情報制御装置1は、図12のような通信シーケンスにおいて、通信機器2Aの通信不良を判定する。
この場合、鍵情報制御装置1は、図13に示すように、通信機器2Aに対し、マルチキャスト通信によってグループ鍵K(Gn)を送信する度にユニキャスト通信によって通信機器2Aにグループ鍵K(Gn)を送信する。
このような鍵情報更新システムにおける鍵情報制御装置1の動作を図14に示す。
先ず、ステップS41において、制御部11は、タイマー部19を制御して、通信不良判定のためのタイマー値としての所定時間tを設定する。
次のステップS42において、タイマー部19は、起動して計時を行うタイマー処理を行う。
次のステップS43において、制御部11は、タイマー部19により計時しているタイマー値が所定時間tに達して満了したか否かを判定する。タイマー値が満了した場合にはステップS44に処理を進め、そうでない場合にはステップS42のタイマー処理を継続する。
このタイマー処理を継続している所定時間tにおいて、鍵情報制御装置1は、通信品質記憶部18によって通信機器2から送信されたメッセージにおけるカウンタ値を蓄積する。又は、鍵情報制御装置1は、通信機器2から送信されたメッセージに含まれるEPOCH値を蓄積する。
ステップS44において、通信品質計測部17は、通信機器2ごとに、所定時間tにおける未受信回数を集計する。
未受信検出手段としての通信品質計測部17は、通信品質記憶部18に蓄積された通信機器2ごとのメッセージにおけるカウンタ値を参照する。通信品質計測部17は、カウンタ値における抜けを検出する。これにより通信品質計測部17は、通信機器2ごとに所定時間tにおける通信機器2から送信されたメッセージの未受信回数を計測する。
又は、通信品質検出手段としての通信品質計測部17は、通信品質記憶部18に蓄積された通信機器2ごとのメッセージにおけるEPOCH値を参照する。通信品質計測部17は、EPOCH値における抜けを検出する。これにより通信品質計測部17は、通信機器2ごとに所定時間tにおける通信機器2によるグループ鍵K(Gn)の未受信回数を計測する。
次のステップS45において、制御部11は、ステップS44において集計された未受信回数が所定の閾値より大きい通信機器2があるか否かを判定する。未受信回数が閾値よりも大きい通信機器2がある場合にはステップS46に処理を進め、ない場合にはステップS47に処理を進める。
ステップS46において、制御部11は、未受信回数が閾値よりも大きいことに該当した通信機器2を保証モードに設定する。この保証モードは、図13に示したように、通信機器2が閾値以上の通信不良を発生させた場合、マルチキャスト通信と併用し、当該マルチキャスト通信によって送信したメッセージを再送付きユニキャスト通信によって送信する動作モードである。
ステップS27において、制御部11は、未受信回数が閾値よりも大きくことに該当しない通信機器2を通常モードに設定する。この通常モードは、上述したようにマルチキャスト通信のみを行う動作モードである。
このような鍵情報制御装置1は、通信品質記憶部18によって、通信機器2ごとに、所定時間t[分]に受信したカウンタ値を蓄積する。図12に示した通信シーケンスの場合、通信品質記憶部18は、通信機器2Aに対応して、カウンタ値としての0、3、4、6を蓄積する。
通信品質計測部17は、所定時間tが経過すると、通信品質記憶部18に蓄積したカウンタ値を参照して、鍵情報制御装置1に未達のメッセージを検出する。図12の場合、通信品質計測部17は、カウンタ値1、2、5のメッセージが通信機器2Aに送信されたが、鍵情報制御装置1には未達(未受信)であることを検出する。これにより、制御部11は、所定時間t中に、7回中、3回が未受信回数であったと判定する。
制御部11は、メッセージの未受信回数と予め設定した閾値(例えば2回)とを比較する。メッセージの未受信回数が閾値を超えているので、制御部11は、通信機器2Aの動作モードを保証モードに設定する。これにより、制御部11は、図13に示したように、通信機器2Aに対するマルチキャスト通信によってメッセージを送信し、さらに、再送付きユニキャスト通信によってメッセージを送信する。
同様に、鍵情報制御装置1は、通信品質記憶部18によって、通信機器2ごとに、所定時間t[分]に受信したEPOCH値を蓄積する。図12に示した通信シーケンスの場合、通信品質記憶部18は、通信機器2Aに対応して、EPOCH値としての0、1、4を蓄積する。
通信品質計測部17は、所定時間tが経過すると、通信品質記憶部18に蓄積したEPOCH値を参照して、通信機器2Aに未達の鍵更新メッセージを検出する。図12の場合、通信品質計測部17は、EPOCH値が2、3の鍵更新メッセージが通信機器2Aには未達(未受信)であることを検出する。これにより、制御部11は、所定時間t中に、4回中、2回が未受信回数であったと判定する。
制御部11は、メッセージの未受信回数と予め設定した閾値(例えば2回)とを比較する。メッセージの未受信回数が閾値を超えているので、制御部11は、通信機器2Aの動作モードを保証モードに設定する。これにより、制御部11は、図13に示したように、通信機器2Aに対するマルチキャスト通信によってメッセージを送信し、さらに、再送付きユニキャスト通信によってメッセージを送信する。
以上のように、この鍵情報更新システムによれば、通信不良であることが判定された通信機器2についての動作モードを保証モードに設定する。これにより、鍵情報制御装置1は、マルチキャスト通信に加えて、再送付きユニキャスト通信によってメッセージを通信機器2に送信できる。これにより、鍵情報更新システムは、不安定な通信路にある通信機器2にマルチキャスト通信によって送信する鍵更新メッセージを確実に受信させることができる。
さらに、上述した鍵情報更新システムにおいて、鍵情報制御装置1は、不安定な通信路を検出した場合に、当該不安定な通信路にある通信機器2又は他の通信機器2に通知を行ってもよい(通信手段)。
例えば、図15に示すように、全ての通信機器2にグループ鍵K(G3)を配布してデータ通信処理P4を行った後、通信機器2Aの通信不良が発生したとする。この場合、鍵情報制御装置1は、上述したように、マルチキャスト通信によって鍵要求メッセージを送信し、さらに、ユニキャスト通信によって鍵要求メッセージを送信する。
この場合、鍵情報制御装置1は、制御部11の制御によって、不安定な通信路を通知する。制御部11は、不安定な通信路にある通信機器2A、通信機器2Aと通信を行う通信機器2B、2Cに通知を行う。このとき、制御部11は、認証処理及び鍵配布処理P1、P2、P3によって認証が許可された通信機器2の情報に基づいて通知を行う。
このような鍵情報制御装置1によれば、不安定な通信路にある通信機器2を通知することにより、不安定な通信路にある通信機器2によって、マルチキャスト通信に加えて、再送機能付きユニキャスト通信によってメッセージを送信する設定に変更できる。また、鍵情報制御装置1によれば、任意の通信機器2が不安定な通信路にある通信機器2と通信を行う場合に、マルチキャスト通信に加えて、再送機能付きユニキャスト通信によってメッセージを送信する設定に変更できる。これにより、この鍵情報更新システムによれば、メッセージを確実に通信相手に受信させることができる。
さらに、上述した鍵情報更新システムにおいて、鍵情報制御装置1は、グループ鍵K(Gn)をマルチキャスト通信によって送信する間隔を所定期間とする。これに対し、通信機器2は、所定期間を超えてグループ鍵K(Gn)を受信していない場合に、マルチキャスト通信によってグループ鍵K(Gn)を受信できていないことを検出する。
このような鍵情報更新システムにおいて、鍵情報制御装置1は、図16に示すような処理手順によって動作する。
先ず、ステップS51において、鍵情報制御装置1は、タイマー部19によってグループ鍵K(Gn)を更新するためのタイマー設定を行う。このとき、制御部11は、鍵要求メッセージを送信する所定期間を設定する。
次のステップS52において、タイマー部19は、ステップS51にて設定された所定期間を計時する。
次のステップS53において、制御部11は、タイマー部19により計時しているタイマー値が所定時間に達して満了したか否かを判定する。タイマー値が満了した場合にはステップS54に処理を進め、そうでない場合にはステップS542のタイマー処理を継続する。
ステップS54において、通信部12は、制御部11の制御に従って、暗号処理部16によって導出した最新のグループ鍵K(Gn)のための鍵更新メッセージをマルチキャスト通信によって送信する。
鍵更新メッセージは、所定期間ごとに鍵情報制御装置1から送信される。これにより、通信機器2は、タイマー部28によって所定期間を計時し、所定期間を超えて鍵更新メッセージを受信していない場合に通信不良を検出できる。通信機器2は、通信不良を検出した場合に、鍵情報制御装置1に鍵要求メッセージを送信することができる。
なお、この実施形態では、タイマー部19及びタイマー部28によって所定期間を計時したが、これに限らず、鍵更新メッセージを周期的に送信する時刻を設定してもよい。
この鍵情報更新システムによれば、タイマー又は時刻を用いて周期的に鍵更新メッセージの送信を実施するので、通信機器2によって容易に通信不良を検出できる。そして、通信機器2によって通信不良を検出した直後に鍵要求メッセージを送信できる。したがって、この鍵情報更新システムによれば、通信不良の通信機器2が新たなグループ鍵K(Gn)を用いて通信を再開するための期間を短縮できる。
さらに、上述した鍵情報更新システムは、認証処理及び鍵配布処理において、鍵暗号化鍵KEKに加えて、リカバリー鍵を鍵情報制御装置1及び全ての通信機器2に配布してもよい。このリカバリー鍵は、通信機器2が通信不良となった場合に一時的に通信を行うために使用される。
この鍵情報更新システムにおいて、認証処理及び鍵配布処理P1、P2、P3では、鍵情報制御装置1は、グループ鍵K(Gn)とは異なり、鍵情報制御装置1と複数の通信機器2とを含むネットワークにおいて使用されるリカバリー鍵を生成する。なお、このリカバー鍵は、グループ鍵K(G0)またはグループ鍵K(G(nの最大値))を生成してリカバー鍵としてもよい。このとき、グループ鍵K(G0)をリカバリー鍵とした場合は、グループ鍵はグループ鍵K(G1)から使用する。グループ鍵K(G(nの最大値))とした場合は、グループ鍵はグループ鍵K(G0)から使用することとしても良い。次に、鍵情報制御装置1は、鍵情報制御装置1と通信機器2との間で認証処理を行った後に、リカバリー鍵を配布する。
その後、鍵情報更新システムは、鍵情報制御装置1からマルチキャスト通信によって新たなグループ鍵K(Gn)を通信機器2に送信する。これにより、鍵情報更新システムは、鍵情報制御装置1から送信されたグループ鍵K(Gn)に、通信機器2のグループ鍵K(Gn)を更新する。これにより、鍵情報更新システムは、鍵情報制御装置1及び全ての通信機器2に対し、グループ鍵K(Gn)を設定する。なお、この時に、リカバリー鍵を設定してもよい。
鍵情報制御装置1は、リカバリー鍵を用いて、通信機器2と暗号化通信を行う。例えば図17に示すように、鍵更新処理P5において、最新のグループ鍵K(Gn)をグループ鍵K(G4)に更新する鍵更新メッセージを送信する。このとき、通信機器2A、2Bが通信不良によって鍵更新メッセージが受信できなかったとする。この場合、鍵情報制御装置1は、上述したように、通信機器2A、2Bから送信されたEPOCH値を参照して、更新されたグループ鍵K(G4)を受信していないことを検出できる。
このとき、鍵情報制御装置1は、リカバリー鍵を用いて暗号化したグループ鍵K(G4)を送信する。この場合、鍵情報制御装置1は、1つのリカバリー鍵によって暗号化した鍵更新メッセージを、通信機器2A、2Bの双方に再送機能付きユニキャスト通信によって送信する。
したがって、この鍵情報更新システムによれば、通信不能となった通信機器2が複数存在する場合であっても、1つのリカバリー鍵によって複数の通信機器2に再送機能付きユニキャスト通信によって鍵更新メッセージを送信できる。これにより、新しいグループ鍵K(Gn)を容易に特定の通信機器2のみに再度配布できる。すなわち、全ての通信機器2のグループ鍵K(Gn)を更新する必要が無く、最小限の通信で新たなグループ鍵K(Gn)に更新できる。
通信機器2は、リカバリー鍵を用いて鍵情報制御装置1及び他の通信機器2と暗号化通信を行う。例えば図18に示すように、通信機器2Aが鍵情報制御装置1から送信されたマルチキャスト通信の鍵更新メッセージ(K(G4))を受信できかったとする。この状況において、緊急に、通信機器2Aが他の通信機器2、鍵情報制御装置1にメッセージを送信する必要が発生したとする。
この場合、通信機器2Aは、マルチキャスト通信によって古いグループ鍵K(G3)で暗合したメッセージを送信しても、受信応答を得ることができない。そこで、通信機器2Aは、リカバリー鍵を用いてメッセージを暗号化して、他の通信機器2及び鍵情報制御装置1に再送機能付きユニキャスト通信を行う。
これにより、通信機器2Aは、緊急性が高いメッセージをマルチキャスト通信によって送信できない場合であっても、リカバリー鍵によって暗号化して他の通信機器2及び鍵情報制御装置1にメッセージを送信できる。
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。