(57)【特許請求の範囲】
【請求項１】
１つの根ノードとなるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーを形成するネットワークの前記根ノード以外の第１のノードであって、
前記第１のノードが復号可能に暗号化されたグループ鍵である暗号化グループ鍵と、前記グループ鍵の配送が禁止される対象の第２のノードを示すリストを含む第１のメッセージを前記第１のノードの親ノードから受信する受信部と、
前記暗号化グループ鍵を復号化して、前記グループ鍵を得る復号部と、
前記第１のノードの子ノードのうち前記リストによって示される第２のノード以外の第１の子ノードが復号可能に前記グループ鍵を暗号化する暗号化部と、
前記第１の子ノードに対して暗号化されたグループ鍵である暗号化グループ鍵と、前記リストとを含む第２のメッセージを送信する送信部と、
前記親ノードが複数存在する場合、複数の前記親ノードの中から第１の親ノードを選択する選択部と、を備え、
前記復号部は、複数の前記親ノードのうち前記第１の親ノード以外の第２の親ノードから受信された前記第１のメッセージに含まれる前記暗号化グループ鍵を復号化しない
ノード。
【請求項２】
前記送信部は、前記第１のノードの子ノード又は前記第１の子ノードが存在しない場合、前記第１のメッセージを受信した旨を示す第３のメッセージを前記親ノードに送信する
請求項１に記載のノード。
【請求項３】
前記受信部は、前記第１の子ノードが存在する場合、更に、前記第１の子ノードから前記第２のメッセージを受信した旨を示す第４のメッセージを受信し、
前記送信部は、前記第１の子ノードが存在する場合、更に、前記第１の子ノードに対して送信した前記第２のメッセージを所定の時間間隔で再送し、前記第１の子ノードから送信された前記第４のメッセージの受信の結果に応じて、前記第３のメッセージを前記親ノードに送信する
請求項２に記載のノード。
【請求項４】
前記受信部は、更に、前記根ノードから送信された、前記グループ鍵が使用可能であることを示す第５のメッセージを受信し、
前記第５のメッセージが受信された場合、前記グループ鍵を有効化する有効化部を更に備える
請求項１乃至３のいずれか一項に記載のノード。
【請求項５】
１つの根ノードとなるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーを形成するネットワークにおいて、
前記根ノードが、
グループ鍵と、前記グループ鍵の配送が禁止される対象の第１のノードを示すリストとを生成し、
前記根ノードの子ノードのうち前記第１のノード以外の第１の子ノードが復号可能に前記グループ鍵を暗号化し、
前記第１の子ノードに対して暗号化されたグループ鍵である暗号化グループ鍵と、前記リストとを含む第１のメッセージを送信し、
前記根ノード以外の第２のノードが、
前記第２のノードが復号可能に暗号化されたグループ鍵である暗号化グループ鍵と、前記グループ鍵の配送が禁止される対象の第３のノードを示すリストを含む第２のメッセージを前記第２のノードの親ノードから受信し、
前記暗号化グループ鍵を復号化して、前記グループ鍵を得て、
前記第２のノードの子ノードのうち前記リストによって示される第３のノード以外の第２の子ノードが復号可能に前記グループ鍵を暗号化し、
前記第２の子ノードに対して暗号化されたグループ鍵である暗号化グループ鍵と、前記リストとを含む第３のメッセージを送信し、
前記暗号化グループ鍵を受信した前記第２の子ノードは、さらに前記第２の子ノードの子ノードに対して受信した前記暗号化グループ鍵を送信する、
グループ鍵更新方法。
【請求項６】
前記根ノードが、更に、前記第１の子ノードに対して送信した前記第１のメッセージを所定の時間間隔で再送し、
前記第２のノードが、前記第２のノードの子ノード又は前記第２の子ノードが存在しない場合、前記第２のメッセージを受信した旨を示す第６のメッセージを前記親ノードに送信し、前記第２の子ノードが存在する場合、更に、前記第２の子ノードに対して送信した前記第３のメッセージを所定の時間間隔で再送し、前記第２の子ノードからの前記第３のメッセージを受信した旨を示す第７のメッセージの受信の結果に応じて、前記第６のメッセージを前記親ノードに送信し、
前記根ノードが、前記第１の子ノードからの前記第１のメッセージを受信した旨を示す第４のメッセージの受信の結果に応じて、前記グループ鍵が使用可能であることを示す第５のメッセージを前記複数のノードに送信して、前記グループ鍵を有効化し、
前記複数のノードの全部又は一部が、前記第５のメッセージを受信して、前記グループ鍵を有効化する
請求項５に記載のグループ鍵更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ノード及びグループ鍵更新方法に関する。
【背景技術】
【０００２】
従来より、１つの根ノード（ルートノードという）となるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーを形成するネットワークにおいて、グループ鍵を各ノードに配送する技術がある。グループ鍵は、例えば、ネットワークに接続された各ノードに対する通信の可否を確認するための認証に用いられる。この技術では、グループ鍵は暗号化されてルートノード(エッジルータ)から各ノードに配送される。このとき、上位のノードから下位のノードへ、暗号化されたグループ鍵を含むグループ鍵配送メッセージが転送される。グループ鍵が配送される際の暗号化に用いられる暗号化鍵は、各ノードがグループに参加する際にルートノードとの間で実行されるネットワークアクセス認証が成功した時に生成される。このようなグループ鍵は、例えば、ネットワークに接続されたノードが変更される度に、更新され、グループ鍵配送メッセージと同様にして、ネットワークにおいて通信可能な各ノードに対して暗号化されたグループ鍵を含むグループ鍵更新メッセージが各々配送される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１０８５２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術においてグループ鍵を配送する方法では、上位のノードほど、転送するグループ鍵更新メッセージの数が増える。ブロードキャストやマルチキャストによりグループ鍵を配送する方法も考えられるが、ブロードキャストやマルチキャストの信頼性が低く且つ休眠状態であるノードも存在する無線メッシュネットワークではその適用が困難であった。
【０００５】
本発明の一側面は、１つの根ノードとなるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーを形成するネットワークにおいて、グループ鍵を更新する際に、送受信されるグループ鍵更新メッセージの数を低減可能なノード及びグループ鍵更新方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一実施形態のノードは、１つの根ノードとなるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーを形成するネットワークの前記根ノード以外の第１のノードであって、前記第１のノードが復号可能に暗号化されたグループ鍵である暗号化グループ鍵と、前記グループ鍵の配送が禁止される対象の第２のノードを示すリストを含む第１のメッセージを前記第１のノードの親ノードから受信する受信部と、前記暗号化グループ鍵を復号化して、前記グループ鍵を得る復号部と、前記第１のノードの子ノードのうち前記リストによって示される第２のノード以外の第１の子ノードが復号可能に前記グループ鍵を暗号化する暗号化部と、前記第１の子ノードに対して暗号化されたグループ鍵である暗号化グループ鍵と、前記リストとを含む第２のメッセージを送信する送信部とを備える。
【図面の簡単な説明】
【０００７】
【図１】一実施の形態のネットワークを例示する図。
【図２】初段ノード装置５０の機能的構成を例示する図。
【図３】グループ鍵更新メッセージのデータ構成を例示する図。
【図４】非初段ノード装置の機能的構成を例示する図。
【図５】グループ鍵更新処理の概要を示すシーケンスチャート。
【図６】初段ノード装置５０の行う処理の手順を示すフローチャート。
【図７】非初段ノード装置の行う処理の手順を示すフローチャート。
【図８】一変形例のＭＫＢの構造及びデバイス鍵の割当てを例示する図。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、本実施形態に係るノード及びグループ鍵更新方法を詳細に説明する。
【０００９】
[第１の実施の形態]
本実施の形態に係る１つの根ノードとなるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーを形成するネットワークは、木構造のトポロジーを形成するものとする。図１は、本実施の形態に係る木構造のトポロジーを形成するネットワークを例示する図である。同図に示されるネットワークは、隣接する階層のノード間で親子関係を各々有する３つの階層を有する。最上位の階層には、根ノードに相当する初段ノード装置５０が存在し、２番目に上位の階層には、第２段ノード装置６０ａ，６０ｂが存在し、最下位の階層には、葉ノードに相当する第３段ノード装置７０ａ，７０ｂ，７０ｃが存在する。初段ノード装置５０の子ノードは、第２段ノード装置６０ａ，６０ｂであり、第２段ノード装置６０ａの子ノードは、第３段ノード装置７０ａ，７０ｂであり、第２段ノード装置６０ｂの子ノードは、第３段ノード装置７０ｃである。尚、初段ノード装置５０、第２段ノード装置６０ａ，６０ｂ及び第３段ノード装置７０ａ，７０ｂ，７０ｃのいずれも区別する必要がない場合には、単にノード装置という。また、初段ノード装置５０と、初段ノード装置５０以外のノード装置とを区別する必要がある場合には、後者を非初段ノード装置という場合がある。各ノード装置には、各々を識別するためのノード識別情報が各々割り当てられている。
【００１０】
次に、本実施の形態に係るノード装置のハードウェア構成について説明する。ノード装置は、装置全体を制御するＣＰＵ（Central  Processing  Unit）等の制御部と、各種データや各種プログラムを記憶するＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）等の主記憶部と、各種データや各種プログラムを記憶するＨＤＤ（Hard  Disk  Drive）やＣＤ（Compact  Disk）ドライブ装置等の補助記憶部と、外部装置の通信を制御する通信Ｉ／Ｆ（interface）と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、ノード装置には、情報を表示する表示部と、ユーザの指示入力を受け付けるキーボードやマウス等の操作入力部とが有線又は無線により各々接続されるようにしても良い。尚、非初段ノード装置には、グループ鍵の配送の際の暗号化に用いる各々暗号化鍵が各々割り当てられており、各初段ノード装置の補助記憶部には、自身に割り当てられた暗号化鍵と、自身の子ノードに割り当てられた暗号化鍵とが記憶されている。一方、初段ノード装置５０の補助記憶部には、初段ノード装置５０の子ノードである第２段ノード装置６０ａ，６０ｂに各々割り当てられた暗号化鍵が各々記憶されている。また、これらの暗号化鍵には、各々を識別するための暗号化鍵識別情報が割り当てられている。
【００１１】
次に、このようなハードウェア構成において、ノード装置によって実現される各種機能について説明する。初段ノード装置５０の機能的構成と、非初段ノード装置の機能的構成とは異なるため、これらを区別して説明する。まず、初段ノード装置５０の機能的構成について図２を用いて説明する。初段ノード装置５０は、通信制御部５１と、鍵更新制御部５２とを有する。通信制御部５１の機能は、初段ノード装置５０の有する通信Ｉ／Ｆと、初段ノード装置５０の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。鍵更新制御部５２の機能は、初段ノード装置５０の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。
【００１２】
通信制御部５１は、非初段ノード装置との通信を制御するものであり、送信部及び受信部に相当する。具体的には、通信制御部５１は、後述の鍵更新制御部５２が初段ノード装置５０の子ノードである第２段ノード装置６０ａ，６０ｂに対してそれぞれ生成したグループ鍵更新メッセージを送信したり、第２段ノード装置６０ａ，６０ｂからグループ鍵更新メッセージを受信した旨を示す送達確認メッセージを受信したり、後述のグループ鍵更新完了メッセージをネットワークに接続された全てのノード装置に送信したりする。
【００１３】
鍵更新制御部５２は、グループ鍵の更新を制御するものであり、生成部及び暗号化部に相当する。具体的には、鍵更新制御部５２は、所定の更新条件に従って、新たなグループ鍵と、グループ鍵の配送が禁止される対象の非初段ノード装置（配送禁止ノードという）のノード識別情報を示すグループ鍵配送禁止リストとを生成する。グループ鍵には、当該グループ鍵を識別するためのグループ鍵識別情報が割り当てられるものとする。所定の更新条件とは、例えば、ネットワークを構成するノード装置が変わったこと等である。配送禁止ノードは、例えば、当該ネットワークから離脱した非初段ノード装置であったり、ネットワークの利用に関する契約上で一時的又は永久的にネットワークの利用が禁止された非初段ノード装置であったりする。前者の配送禁止ノードについては、鍵更新制御部５２が、通信制御部５１を介してネットワークに接続された非初段ノード装置を定期的又は任意のタイミングで検知することにより、当該ネットワークから離脱した非初段ノード装置を配送禁止ノードとして検知して、当該非初段ノード装置のノード識別情報を取得する。後者の配送禁止ノードについては、当該配送禁止ノードのノード識別情報が初段ノード装置５０の例えば補助記憶部に予め記憶されており、鍵更新制御部５２は、当該ノード識別情報を補助記憶部から読み出すことにより取得する。
【００１４】
そして、鍵更新制御部５２は、初段ノード装置５０の子ノードのうち配送禁止ノードでない子ノードに対して当該子ノードが復号可能に暗号化したグループ鍵（暗号化グループ鍵という）を含むグループ鍵更新メッセージを生成し、通信制御部５１を介してこのグループ鍵更新メッセージを送信する。ここでは、初段ノード装置５０の子ノードである第２段ノード装置６０ａ，６０ｂは配送禁止ノードでないとする。この場合、具体的には、鍵更新制御部５２は、第２段ノード装置６０ａに対して、第２段ノード装置６０ａに割り当てられた暗号化鍵を用いて、新たなグループ鍵を暗号化し、暗号化したグループ鍵（暗号化グループ鍵）及び配送禁止ノードリストを含むグループ鍵更新メッセージを生成してこれを通信制御部５１を介して送信する。第２段ノード装置６０ｂに対しても同様に、鍵更新制御部５２は、第２段ノード装置６０ｂに割り当てられた暗号化鍵を用いて、新たなグループ鍵を暗号化し、暗号化グループ鍵及び配送禁止ノードリストを含むグループ鍵更新メッセージを生成し、通信制御部５１を介してこのグループ鍵更新メッセージを送信する。
【００１５】
図３は、グループ鍵更新メッセージのデータ構成を例示する図である。グループ鍵更新メッセージは、グループ鍵情報と、配送禁止ノードリストとを含む。グループ鍵情報は、暗号化鍵を用いて暗号化されたグループ鍵である暗号化グループ鍵と、当該グループ鍵を識別するためのグループ鍵識別情報と、グループ鍵の暗号化に用いられた暗号化鍵を識別するための暗号化鍵識別情報とを含む。同図の例では、配送禁止ノードリストは、配送禁止ノードのノード識別情報をリスト要素としてＮ個示すと共に、そのリスト要素の数（リスト要素数）Ｎ個自体を示す。尚、グループ鍵更新メッセージのデータ構成は、暗号化グループ鍵及び配送禁止ノードを少なくとも含むものであれば、これに限らない。
【００１６】
また、鍵更新制御部５２は、グループ鍵更新メッセージを送信した全ての子ノード（ここでは第２段ノード装置６０ａ，６０ｂである）から通信制御部５１が送達確認メッセージを受信した場合、グループ鍵を使用可能であることを示すグループ鍵更新完了メッセージを、ネットワークに接続された全てのノードに通信制御部５１を介して一斉送信して、グループ鍵を有効化する。グループ鍵を有効化とするとは、ネットワークに接続された各ノード装置に対する通信の可否を確認するための認証に当該グループ鍵を用いるということである。
【００１７】
次に、非初段ノード装置の機能的構成について図４を用いて説明する。非初段ノード装置は、通信制御部８１と、鍵更新制御部８２とを有する。通信制御部８１の機能は、非初段ノード装置の有する通信Ｉ／Ｆと、非初段ノード装置の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。鍵更新制御部８２の機能は、非初段ノード装置の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。
【００１８】
通信制御部８１は、当該非初段ノード装置の子ノードや親ノードとの通信を制御するものであり、送信部及び受信部に相当する。具体的には、通信制御部８１は、当該非初段ノード装置の親ノードからグループ鍵更新メッセージを受信したり、後述の鍵更新制御部８２が当該非初段ノード装置の子ノードに対して生成したグループ鍵更新メッセージを送信したり、当該子ノードからグループ鍵更新メッセージを受信した旨を示す送達確認メッセージを受信したり、当該子ノードからの送達確認メッセージの受信を契機として当該非初段ノード装置の親ノードに送達確認メッセージを送信したり、初段ノード装置５０から一斉送信されたグループ鍵更新完了メッセージを受信したりする。尚、通信制御部８１は、当該非初段ノード装置の親ノードからグループ鍵更新メッセージを受信した後、後述の鍵更新制御部８２がグループ鍵更新メッセージを生成しない場合、グループ鍵更新メッセージを送信することなく、当該非初段ノード装置の親ノードに送達確認メッセージを送信する。
【００１９】
鍵更新制御部８２は、グループ鍵の更新を制御するものであり、復号部及び暗号化部に相当する。具体的には、鍵更新制御部８２は、通信制御部８１を介して自身の親ノードからグループ鍵更新メッセージを受信すると、グループ鍵更新メッセージに含まれる暗号化グループ鍵及びグループ鍵配送禁止リストを取得し、自身に割り当てられた暗号化鍵を用いて当該暗号化グループ鍵を復号して、グループ鍵を得る。そして、鍵更新制御部８２は、自身に子ノードが存在する場合、当該子ノードのうち、グループ鍵配送禁止リストによってそのノード識別情報が示されていない子ノードに対して当該子ノードが復号可能に暗号化されたグループ鍵（暗号化グループ鍵という）を含むグループ鍵更新メッセージを生成してこれを通信制御部８１を介して送信する。具体的には、鍵更新制御部８２は、、当該子ノードに割り当てられた暗号化鍵を用いて、当該グループ鍵を暗号化し、暗号化したグループ鍵である暗号化グループ鍵及び受信したグループ鍵更新メッセージに含まれる配送禁止ノードリストを含むグループ鍵更新メッセージを生成してこれを通信制御部８１を介して送信する。尚、鍵更新制御部８２は、自身に子ノードが存在しない場合や、自身に子ノードが存在する場合であっても当該子ノード全てが配送禁止ノードである場合、即ち、当該子ノード全てのノード識別情報がグループ鍵配送禁止リストによって示されている場合は、ノードグループ鍵更新メッセージを生成しない。
【００２０】
また、鍵更新制御部８２は、通信制御部８１を介して初段ノード装置５０からグループ鍵更新完了メッセージを受信すると、復号して得たグループ鍵を有効化する。
【００２１】
次に、本実施の形態に係るネットワークにおいてグループ鍵を更新するグループ鍵更新処理について説明する。図５は、グループ鍵更新処理の概要を示すシーケンスチャートである。初段ノード装置５０は、所定の更新条件に従って、新たなグループ鍵と、配送禁止ノードのノード識別情報を示すグループ鍵配送禁止リストとを生成する。ここでは、第３段ノード装置７０ｂを配送禁止ノードとする。このため、初段ノード装置５０は、第３段ノード装置７０ｂのノード識別情報を示すグループ鍵配送禁止リストを生成することになる。
【００２２】
初段ノード装置５０の子ノードである第２段ノード装置６０ａ，６０ｂは配送禁止ノードではないため、初段ノード装置５０は、第２段ノード装置６０ａ，６０ｂのそれぞれに対してグループ鍵更新メッセージを生成する。具体的には、初段ノード装置５０は、第２段ノード装置６０ａ，６０ｂのそれぞれに対して割り当てられた暗号化鍵を用いてグループ鍵を各々暗号化し、暗号化したグループ鍵である暗号化グループ鍵及びグループ鍵配送禁止リストを含むグループ鍵更新メッセージを各々生成する。そして、初段ノード装置５０は、第２段ノード装置６０ａに対して生成したグループ鍵更新メッセージを第２段ノード装置６０ａに送信し（ステップＳ１）、第２段ノード装置６０ｂに対して生成したグループ鍵更新メッセージを送達確認付きユニキャストにより第２段ノード装置６０ｂに送信する（ステップＳ２）。
【００２３】
第２段ノード装置６０ａは、初段ノード装置５０から送信されたグループ鍵更新メッセージを受信すると、当該グループ鍵更新メッセージに含まれる暗号化グループ鍵及びグループ鍵配送禁止リストを取得し、自身に割り当てられた暗号化鍵を用いて当該暗号化グループ鍵を復号して、グループ鍵を得る。また、第２段ノード装置６０ａは、グループ鍵配送禁止リストによって示されるノード識別情報を参照して、自身の子ノードである第３段ノード装置７０ａ，７０ｂのうち第３段ノード装置７０ｂが配送禁止ノードであることを判別し、第３段ノード装置７０ｂに対してグループ鍵更新メッセージの生成及び送信を行わないことを決定する。そして、第２段ノード装置６０ａは、自身の子ノードのうち配送禁止ノード以外の子ノードである第３段ノード装置７０ａに対して割り当てられた暗号化鍵を用いてグループ鍵を暗号化し、暗号化したグループ鍵である暗号化グループ鍵及びグループ鍵配送禁止リストを含むグループ鍵更新メッセージを生成する。そして、第２段ノード装置６０ａは、第３段ノード装置７０ａに対して生成したグループ鍵更新メッセージを送達確認付きユニキャストにより送信する（ステップＳ３）。第２段ノード装置６０ｂは、初段ノード装置５０から送信されたグループ鍵更新メッセージを受信すると、第２段ノード装置６０ａと同様にして、グループ鍵配送禁止リストによって示されるノード識別情報を参照する。このとき、第２段ノード装置６０ｂは、自身の子ノードである第３段ノード装置７０ｃが配送禁止ノードでないことを判別し、第３段ノード装置７０ｃに対して割り当てられた暗号化鍵を用いてグループ鍵を暗号化し、暗号化したグループ鍵である暗号化グループ鍵及びグループ鍵配送禁止リストを含むグループ鍵更新メッセージを生成する。そして、第２段ノード装置６０ｂは、第３段ノード装置７０ｃに対して生成したグループ鍵更新メッセージを送達確認付きユニキャストにより送信する（ステップＳ４）。
【００２４】
第３段ノード装置７０ａは、親ノードである第２段ノード装置６０ａから送信されたグループ鍵更新メッセージを受信すると、自身の子ノードが存在しないため、第２段ノード装置６０ａに対してグループ鍵更新メッセージを受信した旨を示す送達確認メッセージを送信する（ステップＳ５）。第３段ノード装置７０ｃについても第３段ノード装置７０ａと同様に、親ノードである第２段ノード装置６０ｂから送信されたグループ鍵更新メッセージを受信すると、自身の子ノードが存在しないため、第２段ノード装置６０ｂに対して送達確認メッセージを送信する（ステップＳ６）。
【００２５】
第２段ノード装置６０ａは、第３段ノード装置７０ａから送信された送達確認メッセージを受信すると、親ノードである初段ノード装置５０に送達確認メッセージを送信する（ステップＳ７）。第２段ノード装置６０ｂについても第２段ノード装置６０ａと同様に、第３段ノード装置７０ｃから送信された送達確認メッセージを受信すると、親ノードである初段ノード装置５０に送達確認メッセージを送信する（ステップＳ８）。
【００２６】
初段ノード装置５０は、第２段ノード装置６０ａから送信された送達確認メッセージ及び第２段ノード装置６０ｂから送信された送達確認メッセージを受信すると、グループ鍵を使用可能であることを示すグループ鍵更新完了メッセージをネットワークに接続された全てのノード装置に一斉送信して（ステップＳ９）、グループ鍵を有効化する。一斉送信の方法としては、ブロードキャスト、マルチキャストのいずれを用いても良い。
【００２７】
第２段ノード装置６０ａ，６０ｂ、第３段ノード装置７０ａ，７０ｃは、グループ鍵更新完了メッセージを受信すると、自身の親ノードから受信したグループ鍵更新メッセージから得られたグループ鍵を有効化する。以上のようにして、グループ鍵が更新される。
【００２８】
ここで、上述のグループ鍵更新処理において初段ノード装置５０の行う処理の詳細について図６を用いて説明する。上述したように、初段ノード装置５０は、所定の更新条件に従って、新たなグループ鍵と、配送禁止ノードのノード識別情報を示すグループ鍵配送禁止リストＰとを生成する（ステップＳ２０）。ここで、初段ノード装置５０の子ノードのノード識別情報を示すリストをＬとし、グループ鍵更新メッセージに対する送達確認メッセージの受信を待機している対象の子ノードのノード識別情報を示すリストをＴとし、Ｔの初期値を「null」とし、グループ鍵更新完了メッセージの送信の可否を示すグループ鍵更新完了メッセージ送信フラグをＳとし、Ｓの値を「偽」とする。
【００２９】
次いで、初段ノード装置５０は、「Ｌが空か？」という条件の真偽を判断し、当該条件が真であれば、ステップＳ２５に進み、当該条件が偽であれば、ステップＳ２２に進む。ステップＳ２２では、初段ノード装置５０は、Ｌによって示されるノード識別情報のうち未抽出のノード識別情報を１つ抽出する。これをＸとする。初段ノード装置５０は、「ＸがＰによって示されているか?」という条件の真偽を判断し（ステップＳ２３）、当該条件が真であれば、ステップＳ２１に戻り、当該条件が偽であれば、ステップＳ２４に進む。ステップＳ２４では、初段ノード装置５０は、Ｘに対応するノード装置（ここでは第２段ノード装置６０ａ，６０ｂのいずれか）に割り当てられた暗号化鍵を用いてグループ鍵を暗号化し、暗号化したグループ鍵である暗号化グループ鍵ＫＥＹＭＡＴ及びＰを含むグループ鍵更新メッセージＭを生成し、これをＸに対応するノード装置に送信し、ＴにＸを追加する。
【００３０】
ステップＳ２５では、初段ノード装置５０は、「Ｔが空か?」という条件の真偽を判断し、当該条件が真であれば、ステップＳ２９に進み、当該条件が偽であれば、ステップＳ２６に進む。ステップＳ２６では、初段ノード装置５０は、ステップＳ２４で送信したグループ鍵更新メッセージに対する送達確認メッセージの受信を待機し、待機の対象である子ノードのノード識別情報をＸとし、ＴからＸを削除する。そして、初段ノード装置５０は、「送達確認メッセージを受信したか?」、即ち、「送達確認結果が成功か?」という条件の真偽を判断し（ステップＳ２７）、当該条件が真であれば、ステップＳ２８に進み、当該条件が偽であれば、ステップＳ２５に戻る。ステップＳ２８では、初段ノード装置５０は、Ｓを真とし、ステップＳ２５に戻る。
【００３１】
ステップＳ２９では、初段ノード装置５０は、「Ｓが真か?」という条件の真偽を判断し、当該条件が真であれば、ステップＳ３０に進み、当該条件が偽であれば、処理を終了する。ステップＳ３０では、初段ノード装置５０は、鍵更新完了メッセージをネットワークに接続された全てのノード装置に一斉送信して、グループ鍵を有効化し、処理を終了する。
【００３２】
上述のグループ鍵更新処理において非初段ノード装置の行う処理の詳細について図７を用いて説明する。上述したように、非初段ノード装置は、親ノードからグループ鍵更新メッセージＭを受信すると、当該グループ鍵更新メッセージに含まれる暗号化グループ鍵及びグループ鍵配送禁止リストＰを取得し、自身に割り当てられた暗号化鍵を用いて当該暗号化グループ鍵ＫＥＹＭＡＴを復号して、グループ鍵Ｋを得る（ステップＳ４０）。ここで、当該非初段ノード装置の子ノードのノード識別情報を示すリストをＬとし、グループ鍵更新完了メッセージに対する送達確認メッセージの受信を待機している対象の子ノードのノード識別情報をＴとし、Ｔの初期値を「null」とする。
【００３３】
次いで、非初段ノード装置は、「Ｌが空か？」という条件の真偽を判断し（ステップＳ４１）、当該条件が真であれば、ステップＳ４５に進み、当該条件が偽であれば、ステップＳ４２に進む。ステップＳ４２では、非初段ノード装置は、Ｌによって示されるノード識別情報のうち未抽出のノード識別情報を１つ抽出する。これをＸとする。初段ノード装置５０は、「ＸがＰによって示されているか?」という条件の真偽を判断し（ステップＳ４３）、当該条件が真であれば、ステップＳ４１に戻り、当該条件が偽であれば、ステップＳ４４に進む。ステップＳ４４では、初段ノード装置５０は、Ｘに対応するノード装置に割り当てられた暗号化鍵を用いてグループ鍵を暗号化し、暗号化したグループ鍵である暗号化グループ鍵ＫＥＹＭＡＴ´及びＰを含むグループ鍵更新メッセージＭを生成し、これをＸに対応するノード装置に送信し、ＴにＸを追加する。
【００３４】
ステップＳ４５では、非初段ノード装置は、「Ｔが空か?」という条件の真偽を判断し、当該条件が真であれば、ステップＳ４７に進み、当該条件が偽であれば、ステップＳ４６に進む。ステップＳ４６では、非初段ノード装置は、ステップＳ４４で送信したグループ鍵更新メッセージに対する送達確認メッセージの受信を待機し、待機の対象である子ノードのノード識別情報をＸとし、ＴからＸを削除する。ステップＳ４７では、非初段ノード装置は、親ノードに送達確認メッセージを送信する。その後、非初段ノード装置は、初段ノード装置５０から送信された鍵更新完了メッセージの受信に成功したか否かを判断し（ステップＳ４８）、当該判断結果が肯定的である場合、ステップＳ４９に進み、当該判断結果が否定的である場合、処理を終了する。ステップＳ４９では、非初段ノード装置は、グループ鍵を有効化して、処理を終了する。
【００３５】
以上のように、１つの根ノードとなるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーを形成するネットワークにおいて、グループ鍵を更新する際に、暗号化した新たなグループ鍵と鍵更新禁止ノードリストとを含むグループ鍵更新メッセージを、送達確認付きユニキャストにより、ネットワークの根ノードから順に、親子関係を有するノード装置間で下の階層へと伝搬させる。これにより、各ノード装置が送信するグループ鍵更新メッセージの数がノード装置の存在する階層に依存しなくなり、かつ、ネットワーク内で送受信されるグループ鍵更新メッセージの総数を低減することができる。また、ブロードキャストやマルチキャストの信頼性が低いネットワークにおいてもグループ鍵の更新が可能となる。
【００３６】
[変形例]
尚、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても良い。更に、異なる実施形態にわたる構成要素を適宜組み合わせても良い。また、以下に例示するような種々の変形が可能である。
【００３７】
上述した実施の形態において、ノード装置で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供するように構成しても良い。
【００３８】
上述した実施の形態において、ノード装置は、電力メータ、電気自動車、センサ、家電機器、蓄電池、太陽光発電装置、ＨＥＭＳ(Home  Energy  Management  System)、ＢＥＭＳ  (Building  EMS)及びＣＥＭＳ(Community  EMS)等のエネルギー機器の中に組み込まれていても良い。
【００３９】
上述した実施の形態において、ノード装置は、子ノードが休眠状態である場合には、子ノードが通常状態になるまでグループ鍵更新メッセージの送信をペンディングしても良く、その場合、子ノードから何らかのパケット(例えば、IEEE  802.15.4のData  Request  MACフレーム)を受信すると、子ノードが通常状態になったとみなして、子ノードにグループ鍵更新メッセージを送信するようにしても良い。
【００４０】
上述した実施の形態において、初段ノード装置５０は、自身の子ノードのうち配送禁止ノード以外の子ノードに対してグループ鍵更新メッセージを送信後、所定の時間間隔で再送するようにしても良い。そして、初段ノード装置５０は、当該子ノードからの送達確認メッセージの受信に成功した場合又は失敗した場合でも、即ち、当該子ノードからの送達確認メッセージの受信の結果に応じて、グループ鍵更新完了メッセージを一斉送信して、グループ鍵を有効化しても良い。
【００４１】
また、非初段ノード装置は、自身の子ノードのうち配送禁止ノード以外の子ノードに対してグループ鍵更新メッセージを送信後、所定の時間間隔で再送するようにしても良い。そして、非初段ノード装置は、当該子ノードからの送達確認メッセージの受信に成功した場合又は失敗した場合でも、即ち、当該子ノードからの送達確認メッセージの受信の結果に応じて、自身の親ノードに送達確認メッセージを送信するようにしても良い。
【００４２】
また、非初段ノード装置は、グループ鍵更新メッセージの受信に失敗した又はグループ鍵更新メッセージの受信には成功したがグループ鍵更新完了メッセージの受信に失敗した場合、特許文献１に記載のグループ鍵配送方法を用いて更新されたグループ鍵を取得しても良い。
【００４３】
上述した実施の形態において、１つの根ノードとなるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーは、ルーチングプロトコルが生成するトポロジー情報を下に構成されるようにしても良い。例えば、参考文献１に規定されるＲＰＬ(IPv6  Routing  Protocol  for  Low  power  and  Lossy  Networks)が生成するＤＯＤＡＧ(Destination  Oriented  Directed  Acyclic  Graph)の情報を下に無閉路有向グラフトポロジーが構成されるようにしても良い。
（参考文献１）http://tools.ietf.org/html/draft-ietf-roll-rpl-15
【００４４】
上述した実施の形態において、子ノードは、複数の親ノードを有する場合、複数の親ノードの中から１つの親ノード（代表親ノードという）を選択し、代表親ノードからグループ鍵更新メッセージを受信した場合、上述の実施の形態と同様にして、自身の子ノードのうち配送禁止ノード以外の子ノードに対してグループ鍵更新メッセージを生成して送信し、当該子ノードから送達確認メッセージを受信すると、当該代表親ノードに送達確認メッセージを送信する。一方、複数の親ノードを有する子ノードが、代表親ノード以外の親ノードからグループ鍵更新メッセージを受信した場合、自身の子ノードが存在しないものとして動作する、即ち、代表親ノード以外の親ノードから受信したグループ鍵更新メッセージに含まれる暗号化グループ鍵を復号することなく、自身の子ノードに対してグループ鍵更新メッセージを生成せず送信しない。
【００４５】
上述した実施の形態においては、グループ鍵の暗号化に用いる暗号化鍵は、上述の例に限らない。例えば、子ノードに割り当てられた公開鍵を暗号化鍵として用いるようにしても良い。また、子ノードと親ノードとの間でのみ共有される共有鍵を暗号化鍵として用いるようにしても良い。
【００４６】
また、暗号化鍵としてＭＫＢ（media  key  block）を用いても良い。ＭＫＢは、例えば初段ノード装置５０により生成され、各非初段ノード装置に対してＭＫＢに含まれるデバイス鍵が各々割り当てられる。図８は、本変形例に係るＭＫＢの構造及び非初段ノード装置に暗号化鍵としてのデバイス鍵の割当てを例示する図である。同図に示されるＭＫＢでは、複数のデバイス鍵Ｋ１，Ｋ２１，Ｋ２２，Ｋ３１〜Ｋ３４，Ｋ４１〜Ｋ４８が１次元の木構造をなしている。この木構造において、最上位の階層に存在する根ノードはデバイス鍵Ｋ１であり、最下位の階層に存在する葉ノードはデバイス鍵Ｋ４１〜Ｋ４８である。この木構造における各葉ノードに各非初段ノード装置を各々対応させて、各非初段ノード装置に、この木構造における根ノードから葉ノードまでのパス上のデバイス鍵の組を暗号化鍵として割り当てる。例えば、第２段ノード装置６０ａには、デバイス鍵「ＤＫ２＝（Ｋ１，Ｋ２１，Ｋ３１，Ｋ４２）」が割り当てられ、第２段ノード装置６０ｂには、デバイス鍵「ＤＫ３＝（Ｋ１，Ｋ２１，Ｋ３２，Ｋ４３）」が割り当てられ、第３段ノード装置７０ａには、デバイス鍵「ＤＫ４＝（Ｋ１，Ｋ２１，Ｋ３２，Ｋ４４）」が割り当てられ、第３段ノード装置７０ｂには、デバイス鍵「ＤＫ５＝（Ｋ１，Ｋ２２，Ｋ３３，Ｋ４５）」が割り当てられ、第３段ノード装置７０ｃには、デバイス鍵「ＤＫ６＝（Ｋ１，Ｋ２２，Ｋ３３，Ｋ４６）」が割り当てられる。このような構成において、初段ノード装置５０は、グループ鍵更新メッセージに含ませる暗号化グループ鍵を、各非初段ノード装置に対して割り当てられた有効なデバイス鍵の各々でグループ鍵ＧＫが暗号化された暗号化グループ鍵の集合、即ち、｛Ｅ（ＧＫ，ＤＫ２），Ｅ（ＧＫ，ＤＫ３），Ｅ（ＧＫ，ＤＫ４），Ｅ（ＧＫ，ＤＫ５）,Ｅ（ＧＫ，ＤＫ６）｝としても良い。ここで、Ｅ（ｍ，ｙ）は、ｍをｙで暗号化した値である。但し、上述の実施の形態と同様に、第３段ノード装置７０ｂが配送禁止ノードである場合、第３段ノード装置７０ｂのデバイス鍵ＤＫ５は無効化されていても良く、その場合、初段ノード装置５０は、グループ鍵更新メッセージに含ませる暗号化グループ鍵からＥ（ＧＫ，ＤＫ５）は除外するようにしても良い。一方、各非初段ノード装置は、自身の親ノードからグループ鍵更新メッセージを受信すると、自身に割り当てられたデバイス鍵を用いて暗号化グループ鍵の復号化を行う。そして、各非初段ノード装置は、自身の子ノードにグループ鍵更新メッセージを送信する際、当該子ノードに対して割り当てられた暗号化鍵であるデバイス鍵を用いてグループ鍵を暗号化することなく、自身の親ノードから受信したグループ鍵更新メッセージを送信すれば良い。
【００４７】
具体的には、図５のグループ鍵更新処理では、初段ノード装置５０は、ステップＳ１〜Ｓ２で、暗号化グループ鍵の集合及びグループ鍵配送禁止リストを含むグループ鍵更新メッセージを第２段ノード装置６０ａ，６０ｂのそれぞれに送信する。ステップＳ３では、第２段ノード装置６０ａは、初段ノード装置５０から送信されたグループ鍵更新メッセージを受信すると、当該グループ鍵更新メッセージに含まれる暗号化グループ鍵の集合及びグループ鍵配送禁止リストを取得し、自身に割り当てられたデバイス鍵を用いて当該暗号化グループ鍵の集合に含まれる暗号化グループ鍵（ここではＥ（ＧＫ，ＤＫ２）である）を復号して、グループ鍵を得る。そして、第２段ノード装置６０ａは、第３段ノード装置７０ａに対して、初段ノード装置５０から受信したグループ鍵更新メッセージを送信する。ステップＳ４もステップＳ３と同様である。
【００４８】
以上のような構成によっても、１つの根ノードとなるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードにより無閉路有向グラフトポロジーを形成するネットワークにおいて、グループ鍵を更新する際に、送受信されるグループ鍵更新メッセージの数を低減することができる。更に、非初段ノード装置が、グループ鍵の暗号化を行う必要をなくし、自身の子ノードに割り当てられた暗号化鍵を記憶する必要をなくすことができる。
【符号の説明】
【００４９】
５０  初段ノード装置
５１  通信制御部
５２  鍵更新制御部
６０ａ，６０ｂ  第２段ノード装置
７０ａ，７０ｂ，７０ｃ  第３段ノード装置
８１  通信制御部
８２  鍵更新制御部
【図１】
0005908621.tif 000002
【図２】
0005908621.tif 000003
【図３】
0005908621.tif 000004
【図４】
0005908621.tif 000005
【図５】
0005908621.tif 000006
【図６】
0005908621.tif 000007
【図７】
0005908621.tif 000008
【図８】
0005908621.tif 000009