説明

ルートノード及びプログラム

【課題】無線メッシュネットワーク内の各ノードに対して、サイズの小さいMedia Key Blockを送付する。
【解決手段】ルートノード100は、複数の群にそれぞれ有限個属するデバイス鍵と無線メッシュネットワークに参加中の参加ノード及び過去参加していた過去参加ノードとの対応関係を記憶するデバイス鍵割り当てDB306を備える。また、新たに参加した新規ノードが過去参加ノードである場合、過去割り当てられていたデバイス鍵を再度割り当てるとともに、過去参加ノードでない場合、新たなデバイス鍵を割り当てるデバイス鍵割り当て部304を備える。また、無線メッシュネットワーク内にメッセージを送信する際、参加ノード及び新規ノードに割り当てられたデバイス鍵を用いて、メッセージを暗号化して暗号文を生成する暗号文生成部307を備える。暗号文は、少ない群から選択したデバイス鍵を用いて生成して小さくする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ルートノード及びプログラムに関する。
【背景技術】
【0002】
従来、1つの根ノード(ルートノードという)となるノードを含み且つ隣接する階層のノード間で親子関係を有する複数のノードによりツリー形状のルーチングトポロジーを形成する無線メッシュネットワークにおいて、1つのグループ鍵を無線メッシュネットワーク内の各ノードで共有する技術がある。
【0003】
グループ鍵は、例えば、無線メッシュネットワークに接続された各ノードに対する通信の可否を確認するための認証に用いられる。
【0004】
新規ノードは、無線メッシュネットワークに新たに参加する時に、新規ノードとルートノードとの間で実行されるネットワークアクセス認証を行う。ネットワークアクセス認証が成功すれば、ルートノードと新規ノードは、それぞれ共通の暗号鍵を生成し、共通の暗号鍵を共有する。
【0005】
そして、ルートノードは、新規ノードに対して、暗号鍵で暗号化したグループ鍵を送信する。
【0006】
このように、新規ノードはルートノードからグループ鍵を取得することができる。
【0007】
グループ鍵は、有効期限を持ち、有効期限切れになる前に更新され、新しいグループ鍵が生成されることがある。そして、新しいグループ鍵は、無線メッシュネットワークに接続する全てのノードで共有する必要がある。
【0008】
ルートノードが、新しいグループ鍵を、無線メッシュネットワークに接続するノードに通知する際、無線メッシュネットワーク外に新しいグループ鍵が漏えいすることを防ぐため、新しいグループ鍵を暗号化する必要がある。
【0009】
データの暗号化の方法として、MKB(Media Key Block)を用いた方法がある。
【0010】
MKBを用いた方法では、データ送付対象の各機器に各々異なるデバイス鍵を割り当てる。次に、割り当てたデバイス鍵全てを用いてデータを暗号化してMKBを生成する。各機器は、MKBを受け取ると、デバイス鍵を用いてMKBを復号し、データを取得する。ここでMKBのサイズは、デバイス鍵の組み合わせ方次第で決まる。
【0011】
MKBは、従来からHD DVD等に用いられている技術である。HD DVDにMKBを書き込み、HD DVD機器は、デバイス鍵を用いてMKBを復号して、データを取得することができる。
【0012】
MKBをHD DVDで用いる場合、他の機器にデータが流出することを防ぐため、リボケーション機能が用いられている。リボケーション機能は、デバイス鍵が情報流出等した場合に、当該デバイス鍵を無効化し、当該デバイス鍵の使用を禁止する機能である。
【0013】
MKBを無線メッシュネットワークに用いる場合、例えば、以下のようにデータの暗号化、復号が行われる。ルートノードは、無線メッシュネットワークに参加したノード各々に対して、異なるデバイス鍵を割り当てる。ルートノードは、無線メッシュネットワークに参加したノード各々に割り当てたデバイス鍵全てを用いて、新しいグループ鍵を暗号化し、MKBを生成する。ルートノードは、無線メッシュネットワークに参加する全てのノードに対して、MKBを送信する。各ノードは、デバイス鍵を用いて、MKBを復号して、新しいグループ鍵を取得する。
【0014】
無線メッシュネットワークでは、ノードが無線メッシュネットワークへの参加と退出を頻繁に繰り返すことがありうる。ここで、ルートノードが、ノードが退出をするたびに、デバイス鍵を削除し、参加するたびに、新たなデバイス鍵を割り当てた場合を想定する。つまり、MKBをHD DVDに用いる場合に適用されるリボケーション機能をそのまま無線メッシュネットワークでも適用する場合を想定する。この場合、ノードが参加と退出を繰り返すほど、ルートノードが選択しうるデバイス鍵の選択肢は減ることとなる。前述したように、MKBのサイズは、デバイス鍵の組み合わせ方次第で決まる。したがって、MKB生成のためのデバイス鍵の選択肢が減ると、ルートノードが生成するMKBのサイズは増大することとなる。この結果、無線メッシュネットワークに接続するノードの処理負荷が増大することとなりうる。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開2010−108520号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
本発明の一側面は、無線メッシュネットワーク内の各ノードに対して、サイズの小さいMKBを送付し、各ノードの処理負荷を低減することを目的とする。
【課題を解決するための手段】
【0017】
本発明の一側面に係るルートノードは、暗号文を復号可能な鍵であって、複数の群に有限個数ずつ属する鍵であるデバイス鍵を各々割り当てられた複数の参加ノードを含む無線メッシュネットワーク内にあって、前記無線メッシュネットワークに新たに参加する新規ノードを検出する参加ノード管理部と、前記参加ノードと前記参加ノードに割り当てられているデバイス鍵との対応関係を記憶するとともに、前記無線メッシュネットワークに過去参加していた過去参加ノードと前記過去参加ノードに割り当てられていたデバイス鍵との対応関係を記憶するデバイス鍵割り当てDBと、前記新規ノードが前記過去参加ノードである場合、前記新規ノードに過去割り当てられていたデバイス鍵を再度割り当てるとともに、前記新規ノードが前記過去参加ノードでない場合、前記新規ノードに対して、新たなデバイス鍵を割り当てるデバイス鍵割り当て部と、前記無線メッシュネットワーク内の前記参加ノード及び前記新規ノードに対してメッセージを送信する際、前記参加ノードに割り当てられているデバイス鍵及び前記新規ノードに割り当てられたデバイス鍵を用いて、前記メッセージを暗号化して暗号文を生成する暗号文生成部とを備え、前記暗号文は、前記参加ノードに割り当てられているデバイス鍵及び前記新規ノードに割り当てられたデバイス鍵が、前記複数の群のうち少ない群から選択されていればいるほど、小さいサイズとなることを特徴とする。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態にかかるシステムを示すブロック図である。
【図2】本発明の第1の実施形態にかかるシステムの動作を示すシーケンス図である。
【図3】本発明の第1の実施形態にかかるルートノードを示すブロック図である。
【図4】本発明の第1の実施形態にかかるルートノードのデータベースを示す図である。
【図5】本発明の第1の実施形態にかかるルートノードの動作を示すフローチャート。
【図6】本発明の第1の実施形態にかかるルートノードのデータベースを示す図である。
【図7】本発明の第1の実施形態にかかるルートノードのデータベースを示す図である。
【図8】本発明の第1の実施形態にかかるルートノードのデータベースを示す図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態について、図面を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0020】
<第1の実施形態>
図1は、本発明の第1の実施形態にかかるシステム10を示すブロック図である。
【0021】
システム10は、1つの根ノード(ルートノードという)を含み且つ隣接する階層のノード間で親子関係を有する複数のノードによりツリー形状のルーチングトポロジーを形成する無線メッシュネットワーク10である。本実施例のシステム10は、ルートノード10を第1階層としたとき、最下位層のノードは第N+1階層であるシステムであるとする。
【0022】
ルートノード100は、無線メッシュネットワーク10内に一つ存在する。ルートノード100は、システム10の最上位層(第1階層)のノードである。
【0023】
ルートノード100は、無線メッシュネットワーク10内の各ノードの管理を行う。また、ルートノード100は、無線メッシュネットワーク10内の各ノード間で共有するグループ鍵の管理を行う。尚、グループ鍵についての説明は、後述する。
【0024】
ここで、ルートノード100が行うノードの管理とは、例えば、無線メッシュネットワーク10へのノードの参加の許可若しくは禁止することや、ノードが、無線メッシュネットワーク10から離脱することを検出することや、無線メッシュネットワーク10内のノード一覧を把握することである。また、グループ鍵の管理とは、例えば、グループ鍵を生成すること、グループ鍵の有効期限を監視すること、及びグループ鍵を更新して新しいグループ鍵を生成することである。
【0025】
ネットワーク103は、システム10のうち、第2階層のノードから第N−1階層のノードを含むネットワークである。図1において、ノード101A及び101Dは第2階層のノードであり、ノード101B及び101Eは、第3階層のノードであり、ノード101C、ノード101Fは、第N-1階層のノードである。
【0026】
親ノード101Gは、システム10の第N階層のノードである。親ノード101は、ネットワーク103内のノード101Cと接続する。ノード101Cから受け取ったデータを、子ノード101Hに対して、転送する。より詳細には、親ノード101Gは、ノード101から受け取ったMKBを、自装置のデバイス鍵で復号し、更新後のグループ鍵を取得するとともに、子ノード101HにMKBを転送する。
【0027】
子ノード101Hは、親ノード101Gとの間でデータの送受信を行う。子ノード101Hは、システム10の最下位層(第N+1階層)のノードである。より詳細には、子ノード101Hは、親ノード101Gが送信したMKBを受け取ると、自装置のデバイス鍵で復号し、更新後のグループ鍵を取得する。
【0028】
尚、一般的に、親ノード及び子ノードとは、ルーティングツリー上の相対的位置関係から導き出される。つまり、2つの隣接する階層のノードのうち、上位の層にあるノードが親ノードであり、下位の層にあるノードが子ノードである。つまり、親ノード101Gは、子ノード101Hにとっての親ノードであるが、ノード101Cにとっては子ノードである。
【0029】
本実施例では、説明の明確化のために、図1に示すように、システム10の最下位層(第N+1階層)のノードを子ノードとし、最下位層より1層上(第N階層)のノードであるノードを親ノードとして説明する。
【0030】
図3は、ルートノード100を示すブロック図である。
【0031】
通信部300は、無線メッシュネットワーク10内の各ノードと通信を行う。
【0032】
グループ鍵生成部301は、グループ鍵を生成する。
【0033】
参加ノード管理部302は、ノードが、無線メッシュネットワーク10に新たに参加(接続)したことを検出し、新たに参加したノード(新規ノードと称する。)との間でネットワークアクセス認証処理を行う。ネットワークアクセス認証処理を行うと、認証結果を、デバイス鍵割り当て部304に通知する。
【0034】
また、参加ノード管理部302は、ノードが、無線メッシュネットワーク10から離脱したことを検出する。参加ノード管理部302は、ノードの参加、若しくは離脱を検出すると、参加ノードDB303を更新する。更新方法の具体的方法は後述する。また、ノードの参加を検出すると、デバイス鍵割り当て部304に対して、デバイス鍵の割り当てを指示する。
【0035】
参加ノードDB303は、無線メッシュネットワーク10に現在参加しているノード(参加ノードと称する。)と過去参加したノード(過去参加ノードと称する。)を管理する。例えば、図4(a)に示すように、ノードを特定する情報(例えば、ノードを特定する識別子)と当該ノードの参加状況を記憶する。前述した、参加ノードとは、参加状況が「現在参加」中のノードであり、過去参加ノードとは、参加状況が、「過去参加」のノードである。ここで、参加ノードの情報とは、ノードを特定する情報と参加状況が「現在参加」であるとの情報の組み合わせの情報であるとする。また、過去参加ノードの情報とは、ノードを特定する情報と参加状況が「過去参加」であるとの情報の組み合わせである。尚、参加ノードの情報及び過去参加ノードの情報とは、これらの情報に限られず、どのノードがどういった参加状況であるかを特定できる情報であればよい。
【0036】
図4(a)に、参加ノードDB303が記憶する情報の一例を示す。参加ノード管理部302が、ノードの参加若しくは離脱を検出すると、参加ノードDB303の情報は更新される。例えば、過去に参加したノード101Hが、再度参加した場合、参加状況が、「過去参加」から「現在参加」に更新される。また、新たに参加したノードが、過去に参加したことがないノードである場合、新たに参加したノードをデータベースに追加する。また、ノードが、無線メッシュネットワークから離脱した場合、離脱したノードの参加状況を「現在参加」から「過去参加」に更新する。参加ノードDB303が記憶する参加状況は、後述する暗号文生成部307が、更新後のグループ鍵を暗号化してMKBを生成する際に、参照する。参照することで、現在参加しているノードが復号可能で、現在参加していないノードが復号不可能なMKBを生成する。暗号文生成部307のMKBを生成する動作の詳細は後述する。
【0037】
デバイス鍵割り当て部304は、参加ノード管理部302からデバイス鍵の割り当ての指示を受けると、無線メッシュネットワーク10に参加したノードに対して、デバイス鍵の割り当てを行う。デバイス鍵割り当て部304は、無線メッシュネットワーク10に参加したノードに対して、割り当てたデバイス鍵を通知する。この際、通知するデバイス鍵は、参加したノードとの間で共通鍵であるルート鍵で暗号化して通知する。このルート鍵は、参加ノード管理部302が、ネットワークアクセス認証処理を行った結果である認証結果を用い、生成する。デバイス鍵割り当て部304は、無線メッシュネットワーク10に参加したノードに対してデバイス鍵を割り当てると、デバイス鍵割り当てDB306を更新する。デバイス鍵割り当てDB306の具体的更新方法は後述する。新たに無線メッシュネットワーク10に参加したノードが過去参加したことがあるノードである場合、当該ノードには過去参加したときに割り当てられたデバイス鍵がある。そのデバイス鍵の有効期限が切れていない場合、デバイス鍵割り当て部304は、過去に割り当てられたデバイス鍵を割り当てる。一方、過去に割り当てたデバイス鍵の有効期限が切れている場合、新たなデバイス鍵を割り当てる。また、参加したノードが過去参加したことがないノードである場合、新たなデバイス鍵を割り当てる。
【0038】
ネットワークアクセス認証DB305は、無線メッシュネットワークに参加するノードを認証するための情報を記憶している。図4(b)にネットワークアクセス認証DB305が記憶する情報の一例を示す。ネットワークアクセス認証DBは、ノード毎に、認証のために必要な情報を記憶する。認証のために必要な情報の一つとして、ノードが過去に無線メッシュネットワークに接続したか否かの情報も記憶していても良い。
【0039】
デバイス鍵割り当てDB306は、デバイス鍵と当該デバイス鍵を割り当てたノードとの対応関係を記憶する。なお、デバイス鍵割り当てDB306は、デバイス鍵そのものを記憶してもよいし、デバイス鍵を識別する情報を記憶してもよい。デバイス鍵割り当てDB306は、また、当該デバイス鍵を割り当てたノードが現在、無線メッシュネットワークに参加しているか否かを記憶する。また、デバイス鍵が、有効であるか無効であるかを記憶する。ここで、「有効」とは、デバイス鍵が使用可能であることを示し、「無効」とは、デバイス鍵が、使用不可能であり、今後使われないことを示す。また、デバイス鍵割り当てDB306は、デバイス鍵の割り当てられたノードが現在、無線メッシュネットワークに参加しているか否かを記憶する。また、デバイス鍵割り当てDB306は、デバイス鍵の有効期限がいつであるかを管理する。図4(C)に、デバイス鍵割り当てDB306の一例を示す。例えば、デバイス鍵X2は、ノード101Bに割り当てられ、有効であり、当該ノード101Bは参加中であり、有効期限は2012年10月であることを示している。
【0040】
暗号文生成部307は、更新された新しいグループ鍵を、無線メッシュネットワークに参加中のノードに割り当てられたデバイス鍵を用いて暗号化してMKBを生成し、送信する。暗号文生成部307は、参加ノードDB303、ネットワークアクセス認証DB305、デバイス鍵割り当てDB306いずれかの情報から、現在参加しているノードを認識し、デバイス鍵割り当てDB306を参照し、当該参加しているノードに割り当てられているデバイス鍵を求めて、当該デバイス鍵を用いてMKBを生成する。
【0041】
ここで、生成に用いるデバイス鍵とMKBとの関係を説明する。一般に、MKBは、用いるデバイス鍵の組み合わせによってサイズが大きくなる場合と短くなる場合がある。以下では、図4(C)を用いて説明する。図4(C)において、デバイス鍵X1〜X4の群(以下、群Xと称する。)のいずれか(若しくはすべて)のデバイス鍵を用いて、データを暗号化した場合、生成されるMKBが、CXと表せるとする。また、デバイス鍵Y1〜Y4の群(以下、群Yと称する。)のいずれか(若しくはすべて)のデバイス鍵を用いて、データを暗号化した場合、生成されるMKBが、CYと表せるとする。また、デバイス鍵Z1〜Z4の群(以下、群Zと称する。)のいずれか(若しくはすべて)のデバイス鍵を用いて、データを暗号化した場合、生成されるMKBが、CZと表せるとする。そして、2つの群(例えば、群Xと群Y)のデバイス鍵を用いてMKBを生成した場合、CXYと表される。3つの群を用いてMKBを生成した場合、同様に、CXYZと表される。つまり、少ない群のデバイス鍵を用いてMKBを生成した場合、MKBのサイズは小さくなり、多くの群のデバイス鍵を用いてMKBを生成した場合、MKBのサイズが大きくなる。本実施例では、MKBのサイズを小さくするための最適なデバイス鍵の組み合わせとは、ノードに対してデバイス鍵を割り当てる際、できるだけ少ない群からデバイス鍵を割り当てることである。
【0042】
本実施例においては、MKBのサイズをできるだけ小さくするため、ノードに対してデバイス鍵を割り当てる際、できるだけ少ない群のデバイス鍵を用いることを目的とした工夫をしている。具体的には、ノードが無線メッシュネットワークから離脱しても、当該ノードに割り当てられていたデバイス鍵を使用不可能とせず、ノードが再度参加した場合に、過去割り当てたデバイス鍵を、再度割り当てる工夫をしている。
【0043】
次に、このような工夫をすることで、少ない群の中からデバイス鍵を割り当てることができる理由を説明する。
【0044】
図4(c)において、過去参加していたノード101Hが、再度参加した場合を考える。
【0045】
本実施例の工夫を用いない場合、ノード101Hに過去に割り当てられたデバイス鍵Y4は、ノードの離脱により使用禁止となっているため、ノードが再び参加した場合に、割り当てることができない。この場合、ノード101Hに、Z1〜Z4いずれかのデバイス鍵を割り当てることとなる。その結果、データを暗号化して生成されるMKBは、CXYZとなる。一方、本実施例の工夫がある場合、ノード101Hに過去割り当てられたデバイス鍵Y4を、使用不可能とせず、再度割り当てることができる。その結果、生成されるMKBは、CXYとなる。以上のように、本実施例の工夫を用いると、MKBのサイズを小さくすることができる。その結果、無線メッシュネットワーク内の各ノードの処理負荷低減につながる。
【0046】
以上の説明においては、一つの群を構成するデバイス鍵が4つである例を説明したが、これに限られない。しかしながら、一つの群を構成するデバイス鍵の数は有限個数である。したがって、本実施例の工夫を用いて、過去割り当てたデバイス鍵を再割り当てすることで、無線メッシュネットワークに参加するノードに対して、より少ない群のデバイス鍵を割り当てることが可能となる。特に、無線メッシュネットワークにおいては、多数のノードが、参加と離脱を繰り返す可能性がある。そのようなことを想定すると本技術はサイズの小さいMKBを生成するために有効な技術であるといえる。
【0047】
次に、本実施例で、MKBを用いる場面を説明する。MKBは、無線メッシュネットワーク内の各ノードに、更新後のグループ鍵を配布する場面で用いる。
【0048】
まず、グループ鍵について説明する。グループ鍵は、例えば、無線メッシュネットワーク10内のデータの暗号化等に使用される。そして、グループ鍵は、無線メッシュネットワーク10内のすべてのノード間で共有される情報である。つまり、グループ鍵は、無線メッシュネットワーク10内の各ノードにとって共通鍵である。グループ鍵を用いた暗号化復号は、共通鍵暗号方式が用いられる。
【0049】
グループ鍵は、無線メッシュネットワーク10に参加する全てのノードで共有する必要がある。
【0050】
グループ鍵は、ノードが無線メッシュネットワーク10に参加する際に、ルートノードが、新たに接続したノードに対して、通知する(詳細な動作は後述する)。この際、グループ鍵は、無線メッシュネットワーク外に漏えいすることを防ぐため、暗号化されて通知される。この際に用いられる暗号化鍵は、ルートノードと新たに参加したノードとの間で共有する暗号化鍵である。暗号化鍵は、ノードがルートノードに新たに参加する際に行われるネットワークアクセス認証の際に生成されるものである。
【0051】
ここで、グループ鍵は有効期限を持つ。したがって、ルートノードは、使用中のグループ鍵が有効期限切れになる前にグループ鍵の更新を行い、更新後の新しいグループ鍵を無線メッシュネットワーク内の各ノードに送信する必要がある。無線メッシュネットワーク内の各ノードが常に有効なグループ鍵を保持するように維持するためである。この更新後の新しいグループ鍵を含むメッセージも暗号化されて通知される必要がある。グループ鍵が無線メッシュネットワーク外に漏えいしないようにするためである。
【0052】
無線メッシュネットワーク内の各ノードに、情報の漏えいを通知することなるく通知する方法として、更新後の新しいグループ鍵を暗号化してMKBによって各ノードに通知する方法がある。
【0053】
次に、ルートノード100が、MKBを用いて、無線メッシュネットワーク内の各ノードに更新後のグループ鍵を通知する方法を説明する。
【0054】
ここで、MKBとは、あるデータ(本実施例では、グループ鍵)を複数のデバイス鍵を用いて暗号化したデータである。そして、暗号化に用いたデバイス鍵を有するノードが、MKBを取得すると、当該デバイス鍵を用いて、MKBを復号し、データを取得することができる。一方、暗号化に用いたデバイス鍵を有しないノードは、MKBを取得しても、MKBを復号できず、データを取得できない。このように、MKBを用いると、データを、特定の対象(デバイス鍵を有するもの)すべてに、1回の送信で通知することができる。つまり、効率よく、かつ安全に情報を伝達することができる。
【0055】
次に、MKBを用いてグループ鍵を伝達する方法を説明する。
【0056】
図2は、図1のシステムにおいて、MKBで暗号化した更新後のグループ鍵を配布する動作を示すシーケンス図である。
【0057】
以下では、子ノード101Hが、無線メッシュネットワーク10に新たに参加する場合を例にとって説明する。
【0058】
子ノード101Hが、無線メッシュネットワーク10に新たに参加する場合、子ノード101Hは、ルートノード100との間でネットワークアクセス認証を行う(S100)。
【0059】
ルートノード100が、子ノード101Hの認証を成功すると、子ノード101Hは、ルートノード100から認証成功の通知を受信する。
【0060】
子ノード101Hは、認証成功の通知を受信すると、認証結果を用いて、ルート鍵を生成する(S102)。また、ルートノード100も、認証成功の通知を子ノード101Hに対して通知するとともに、認証結果を用いて、子ノード101Hと同様の方法でルート鍵を生成する(S101)。この結果、ルートノード100と子ノード101Hの間で、ルート鍵を共有することになる。
【0061】
次に、ルートノード100は、ルートノード100が管理するグループ鍵及びデバイス鍵を、ルート鍵を用いて暗号化し、子ノード101Hに対して送信する。ここで、子ノード101Hに対して、どのデバイス鍵を割り当てるかの割り当て方法については後述する。子ノード101Hは、暗号化されたグループ鍵及びデバイス鍵の通知を受信する(S103)。子ノード101Hは、ルート鍵でグループ鍵及びデバイス鍵を復号し、グループ鍵及びデバイス鍵を得る。
【0062】
次に、ルートノード100が、グループ鍵を更新した場合の動作を説明する。
【0063】
ルートノード100は、グループ鍵を更新すると、更新後のグループ鍵を暗号化しMKBを生成し、無線メッシュネットワーク内の各ノードに通知する。MKBは、ブロードキャストで通知しても良いし、ユニキャストで通知しても良い。図4(c)の例においては、MKBは、群Xと群Yのデバイス鍵を用いて生成されるため、MKBは、CXYとなる。
【0064】
次に、親ノード101G及び子ノード101Hが更新後のグループ鍵を取得する方法を説明する。
【0065】
親ノード101Gは、MKBを取得すると、自身のデバイス鍵Y3によってMKBを復号し、グループ鍵を取得する。また、親ノード101Gは、子ノード101Hに対して、MKBを転送する(S105)。子ノード101Hは、親ノード101GからMKBを取得すると、自身のデバイス鍵Y4でMKBを復号し、更新後の新しいグループ鍵を取得する。
【0066】
以上の動作では、図1において示したルートノード100と親ノード101Gと子ノード102Hとの間での処理を説明した。しかしながら、以上の動作は、ネットワーク103内の各ノードについても同様の処理が実行される。つまり、ネットワーク103内の各ノードは、自身のデバイス鍵で、ルートノード100が送信した新しいグループ鍵を復号するとともに、下の階層のノードに対してMKBを転送する。この処理をノード間で繰り返すことで、新しいグループ鍵を次々に伝搬することができる。
【0067】
以上の動作により、ルートノードが構成する無線メッシュネットワーク内のノード全てが、更新された新しいグループ鍵を安全にかつ効率的に共有することができる。
【0068】
次に、無線メッシュネットワークに新たに参加した子ノード101Hに対してデバイス鍵を割り当てる方法を説明する。図1に示すように、以下では、無線メッシュネットワーク10に参加中のノードがノード101A〜101Gであり、新たに参加するノードが子ノード101Hである場合を例に説明する。
【0069】
図5は、ルートノード100の動作を示すフローチャートである。
【0070】
まず、参加ノード管理部302は、無線メッシュネットワーク10に新規のノードが参加したか否かを判定する(S200)。参加ノード管理部302が、新規のノードが参加したと判定すると、デバイス鍵割り当て部304は、ノード101Hが過去に無線メッシュネットワーク10参加したノードであるか否かを判定する(S202)。デバイス鍵割り当て部304は、ノード101Hが過去に参加したノードであるかを、例えば、参加ノードDB303の情報を基に判定する。図4に、本実施例の参加ノードDB303の情報の1例を示す。図4の例では、ノード101Hは、過去参加したノードであると判定することができる。
【0071】
次に、デバイス鍵割り当て部304は、新たに参加したノードが過去に参加したノードであると判定した場合、当該ノードに過去に割り当てたデバイス鍵の有効期限が切れているか否かを判定する(S203)。デバイス鍵割り当て部304は、例えば、デバイス鍵割り当てDB306の情報を基に判定する。デバイス鍵割り当て部304は、デバイス鍵の有効期限が切れていないと判定した場合、過去に割り当てたデバイス鍵を再度ノードに割り当てる(S205)。例えば、図4(c)を見ると、ノード101Hは、過去参加したノードであり、有効期限が2011年6月であることがわかる。現在、2011年2月であるとすると、有効期限は切れていないことがわかる。
【0072】
一方、ステップS203において、デバイス鍵の有効期限が切れていると判定した場合、デバイス鍵割り当て部304は、ノードに新しいデバイス鍵を割り当てる(S204)。また、ステップS202において、ノードが過去に参加したノードでなかった場合も、同様に当該ノードに新しいデバイス鍵を割り当てる(S204)。デバイス鍵割り当て部304は、割り当てるデバイス鍵を決定すると、通信部300を介して、参加ノードに通知する。また、デバイス鍵割り当て部304は、デバイス鍵割り当てDB306の情報を更新する。また、参加ノード管理部302は、参加ノードDB303の情報を更新する(S206)。
【0073】
一方、ステップS200においてノードが参加していないと判定した場合、参加ノード管理部302は、ノードが離脱したか否かを判定する(S201)。参加ノード管理部302が、ノードが離脱したと判定した場合、参加ノードDB303とネットワークアクセス認証DB305とデバイス鍵割り当てDB306とを更新する。
【0074】
そして、ステップS201において、ノードが離脱しなかった場合、あるいはステップS206の処理の後、一連の処理を終了する。
【0075】
尚、以上の動作では、S202において、デバイス鍵割り当て部304が、ノード101Hが過去に参加したノードであるか否かを判定する際、参加ノードDB303の情報を基に判定したが、ネットワークアクセス認証DB305、デバイス鍵割り当てDB306の情報を用いても判定することができる。図4を用いて説明する。ネットワークアクセス認証DBは、認証情報として、ノード101Hが過去に参加したか否かの情報を記憶しておくことができる。また、デバイス鍵割り当てDB306は、ノード101Hについて、参加状況として「過去参加」という情報を記憶しておくことができる。したがって、デバイス鍵割り当て部304は、ノード101Hが過去に参加したノードであるか否かを判定する際、ネットワークアクセス認証DB305、若しくはデバイス鍵割り当てDB306の情報を用いて判定することができる。
【0076】
次に、以下では、参加中のノードが離脱した場合、及びノードが参加した場合に、参加ノードDB304、ネットワークアクセス認証DB305、デバイス鍵割当てDBがどのように更新され、どのようなデバイス鍵が割り当てられ、生成されるMKBはどのようなデータになるかを説明する。特に、新たに参加ノードが参加した場合については、ノードが過去に参加したか否か、過去に参加したノードに割り当てられたデバイス鍵が、有効期限内であるか否かによって、参加ノードDB304、ネットワークアクセス認証DB305、デバイス鍵割当てDBがどのように更新され、参加ノードには、どのようなデバイス鍵が割り当てられ、生成されるMKBはどのようなデータになるかを説明する。
【0077】
以下では、図1のシステム10を用いて説明する。図1のシステムにおいては、無線メッシュネットワークに参加しているノードは、ノード101A、101B、101C、101D、101E、101F、101G、101Hであるとする。
【0078】
この状態での参加ノードDB304、ネットワークアクセス認証DB305、デバイス鍵割当てDB306は、図6のようになる。MKBを生成する際は、群Xのデバイス鍵(X1 、X2 、X3 、X4)と群Yのデバイス鍵(Y1 、Y2 、Y3 、Y)を用いて生成するため、生成されるMKBは、CXYと表されることとなる。
【0079】
次に、この状態から子ノード101Hが離脱する場合を説明する。
【0080】
この状態から子ノード101Hが離脱すると、ネットワークアクセス認証DB305、デバイス鍵割当てDBは、図4のようになる。図6と図4の違いの1つ目は、図4(a)の参加ノードDB304のノード101Hの参加状況が、「現在参加」から「過去参加」となっていることである。図6と図4の違いの2つ目は、図4(c)のデバイス鍵割り当てDB304のノード101Hの参加状況が、「現在参加」から「過去参加」となっていることである。MKBを生成する際は、群Xのデバイス鍵(X1 、X2 、X3 、X4)と群Yのデバイス鍵(Y1 、Y2 、Y3 )を用いて生成するため、生成されるMKBは、CXYと表されることとなる。
【0081】
次に、図1において、子ノード101Hが一旦離脱した後、再度参加する場合であって、子ノード101Hに過去に割り当てられたデバイス鍵の有効期限が切れていない場合を説明する。
【0082】
子ノード101Hが、再度参加すると、ネットワークアクセス認証DB305、デバイス鍵割当てDBは、図4の状態から図6の状態になる。図6と図4の違いの1つ目は、図4(a)の参加ノードDB304のノード101Hの参加状況が、「過去参加」から「現在参加」となっていることである。図6と図4の違いの1つ目は、図4(a)の参加ノードDB304のノード101Hの参加状況が、「過去参加」から「現在参加」となっていることである。MKBを生成する際は、群Xのデバイス鍵(X1 、X2 、X3 、X4)と群Yのデバイス鍵(Y1 、Y2 、Y3 、Y)を用いて生成するため、生成されるMKBは、CXYと表されることとなる。
【0083】
次に、図1において、子ノード101Hが一旦離脱した後、再度参加する場合であって、子ノード101Hに過去に割り当てられたデバイス鍵の有効期限が切れている場合を説明する。
【0084】
子ノード101Hが、再度参加すると、ネットワークアクセス認証DB305、デバイス鍵割当てDBは、図4の状態から図7の状態になる。図7と図4の違いの1つ目は、参加ノードDB304のノード101Hの参加状況が、「過去参加」から「現在参加」となっていることである。図7と図4の違いの2つ目は、デバイス鍵割り当てDB306の、デバイス鍵Yの有効無効状況が、「有効」から「無効」となっていることである。図7と図4の違いの3つ目は、デバイス鍵Z1が、新たにノードHに割り当てられていることである。MKBを生成する際は、群Xのデバイス鍵(X1 、X2 、X3 、X4)と群Yのデバイス鍵(Y1 、Y2 、Y3)と群Yのデバイス鍵(Z1)を用いて生成するため、生成されるMKBは、CXYZと表されることとなる。
【0085】
次に、図1において、子ノード101Hが過去参加したことがなく、子ノード101Hが初めて参加する場合を例に説明する。
【0086】
子ノード101Hが、参加する前の各DBの情報データは、図8のようになる。子ノード101Hが、参加した後の各DBの情報データは、図6のようになる。図8と図6の違いの1つ目は、図6では、参加ノードDB304に、ノード101Hが追加されていることである。図8と図6の違いの1つ目は、図6では、デバイス鍵割り当てDB306において、デバイス鍵Yがノード101Hに新たに割り当てられていることである。MKBを生成する際は、群Xのデバイス鍵(X1 、X2 、X3 、X4)と群Yのデバイス鍵(Y1 、Y2 、Y3 、Y)を用いて生成するため、生成されるMKBは、CXYと表されることとなる。
【0087】
以上、本実施例においては、ノードが参加、離脱を繰り返す場合であっても、一度割り当てたデバイス鍵を再割り当てする。その結果、より少ないデバイス鍵の群を用いて、MKBを生成することができる。
【0088】
以上説明した少なくとも1つの実施形態によれば、無線メッシュネットワークの更新後のグループ鍵を転送する際に生成するMKBのサイズを小さくすることができるため、無線メッシュワーク内のノードの処理負荷を低減することができる。
【0089】
以上、本実施例では、一つの群を用いて生成するMKBが、用いるデバイス鍵の数によらず、一定の長さのデータ(例えば、CX)であると説明したが、デバイス鍵の数によってデータの長さは変わる場合もある。また、生成されるMKBは、用いるデバイス鍵の数によらず、二つの群、三つの群をまたがって生成する場合、それぞれ、CXY、CXYZであると説明したが、データの長さは、デバイス鍵の長さによって変わる場合もある。この場合であっても、同じ数のデバイス鍵を用いてMKBを生成する場合、生成されるMKBのデータの長さは、より少ない群からデバイス鍵を選択する場合ほど、短くなる。つまり、所定の数のデバイス鍵を用いてMKBを生成する場合、より少ない群からデバイス鍵を選択することで小さいサイズのMKBを生成することができる。
【0090】
また、本実施例では、生成されるMKBは、一つの群からデバイス鍵を生成する場合であって、例えば、X群からデバイス鍵を生成する場合とY群からデバイス鍵を選択する場合で、データCX、CYの長さは、それぞれ異なる長さであってもよいし、同じ長さであってもよい。異なる長さである場合、デバイス鍵割り当ての際、より短い長さのデータを生成する群からデバイス鍵を優先的に選択していくことが好ましい。
【0091】
また、本実施例では、デバイス鍵の群として3つの場合を説明したが、群の数は、3つに限られない。
【0092】
また、本実施例では、一つの群には、デバイス鍵の数は4つである例を示したが、一つの群に含まれるデバイス鍵は4つに限られない。
【0093】
例えば、一つの群に含まれるデバイス鍵は一つであってもよい。この場合、MKBのデータが小さい最適なデバイス鍵を選択して割り当てることとは、より小さいMKBを生成可能なデバイス鍵を優先的に選択することである。
【0094】
また、本実施例では、更新後のグループ鍵を暗号化してMKBを生成する例を説明したが、更新後のグル―プ鍵以外の情報を暗号化してMKBを生成して、無線メッシュワーク内の各ノードに当該情報を伝達しても良い。暗号化する情報は、例えば、無線メッシュワーク内の各ノードに、無線メッシュネットワーク外に情報漏えいしたくない情報である。また、無線メッシュネットワーク内の特定のデバイスに情報を伝達したい場合も、MKBを用いることができる。
【0095】
また、本実施例では、更新後のグループ鍵を暗号化してMKBを生成する例を説明したが、グループ鍵を暗号化する手法は、MKB以外でも良い。即ち、暗号化手法は、以下のような条件を満たせば良い。具体的には、まず、無線メッシュワーク内の各ノードに、各ノード固有の鍵を割り当てる。そして、ルートノードが、各ノードに割り当てた鍵を用いて更新後のグループ鍵を暗号化し、暗号文を生成する。無線メッシュワーク内の各ノードは、各ノード固有の鍵を用いて当該暗号文を復号し、更新後のグループ鍵を取得するとともに、下の階層のノードに、暗号文を転送する。このような条件を満たす手法であれば良い。例えば、ブロードキャスト暗号や放送暗号で、このような手法を用いている。
【0096】
また、本実施例では、更新後のグループ鍵を暗号化する際、参加中の全てのノードに割り当てたデバイス鍵を用いてMKBを生成し、参加中の全てのノードにMKBを送信する例を説明した。しかしながら、参加中の一部のノードに割り当てたデバイス鍵を用いてMKBを生成し、当該一部のノードにMKBを送信しても良い。例えば、図1においては、ノード101A、101B、101C、101D、101Hに割り当てたデバイス鍵を用いてMKBを生成し、ノード101A、101B、101C、101D、101Hに更新後のグループ鍵を伝達してもよい。そして、その他のノードに対しても、それぞれ送信対象のノード毎にMKBを生成し、更新後のグループ鍵を伝達しても良い。このようにすることで、よりMKBのサイズを小さくすることができるため、無線メッシュネットワーク内の各ノードの処理負荷低減を達成することができる。
【0097】
また、本実施例では、デバイス鍵割り当てDB306の、デバイス鍵の有効期限として、年月を記憶していたが、年月に限られない。例えば、有効期限として、最初にノードにデバイス鍵を割り当てた時から所定の期間経過後として定めても良い。また、有効期限として、ノードに当該デバイス鍵を割り当てる回数として定めても良い。
【0098】
尚、ルートノード100は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、通信部300、グループ鍵生成部301、参加ノード管理部302、参加ノードDB303、デバイス鍵割り当て部304、ネットワークアクセス認証DB305、デバイス鍵割り当てDB306、暗号文生成部307、は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、ルートノード100は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、参加ノードDB303、ネットワークアクセス認証DB305、デバイス鍵割り当てDB306は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
【0099】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0100】
100・・・ルートノード、101A、101B、101C、101D、101E、101F・・・ノード、101G・・・親ノード、101H・・・子ノード、103・・・ネットワーク、300・・・通信部、301・・・グループ鍵生成部、302・・・参加ノード管理部、303・・・参加ノードDB、304・・・デバイス鍵割り当て部、305・・・ネットワークアクセス認証DB、306・・・デバイス鍵割り当てDB、307・・・暗号文生成部。

【特許請求の範囲】
【請求項1】
暗号文を復号可能な鍵であって、複数の群に有限個数ずつ属する鍵であるデバイス鍵を各々割り当てられた複数の参加ノードを含む無線メッシュネットワーク内にあって、
前記無線メッシュネットワークに新たに参加する新規ノードを検出する参加ノード管理部と、
前記参加ノードと前記参加ノードに割り当てられているデバイス鍵との対応関係を記憶するとともに、前記無線メッシュネットワークに過去参加していた過去参加ノードと前記過去参加ノードに割り当てられていたデバイス鍵との対応関係を記憶するデバイス鍵割り当てDBと、
前記新規ノードが前記過去参加ノードである場合、前記新規ノードに過去割り当てられていたデバイス鍵を再度割り当てるとともに、前記新規ノードが前記過去参加ノードでない場合、前記新規ノードに対して、新たなデバイス鍵を割り当てるデバイス鍵割り当て部と、
前記無線メッシュネットワーク内の前記参加ノード及び前記新規ノードに対してメッセージを送信する際、前記参加ノードに割り当てられているデバイス鍵及び前記新規ノードに割り当てられたデバイス鍵を用いて、前記メッセージを暗号化して暗号文を生成する暗号文生成部とを備え、
前記暗号文は、前記参加ノードに割り当てられているデバイス鍵及び前記新規ノードに割り当てられたデバイス鍵が、前記複数の群のうち少ない群から選択されていればいるほど、小さいサイズとなることを特徴とする
ルートノード。
【請求項2】
前記デバイス鍵割り当て部は、前記新規ノードに割り当てたデバイス鍵を暗号化して前記新規ノードに通知することを特徴とする
請求項1記載のルートノード。
【請求項3】
前記無線メッシュネットワークの複数の参加ノードは隣接する階層の参加ノード間で親子関係を有し、
前記暗号文は、前記参加ノード及び新規ノード各々が復号可能であるとともに、前記参加ノードが、前記暗号文を、前記参加ノード各々の子ノードに対して、転送可能であることを特徴とする請求項2記載のルートノード。
【請求項4】
前記暗号文は、MKBであることを特徴とする請求項3記載のルートノード。
【請求項5】
前記メッセージは、前記参加ノード間の共通鍵であるグループ鍵が更新された場合に生成される更新グループ鍵であることを特徴とする請求項4記載のルートノード。
【請求項6】
前記参加ノード管理部は、前記新規ノードを検出すると、前記新規ノードとの間でネットワークアクセス認証を行うとともに、当該ネットワークアクセス認証の認証結果を生成し、
前記デバイス鍵割り当て部は、前記認証結果を用いて、前記新規ノードとの間の共通鍵であるルート鍵を生成し、前記デバイス鍵を前記ルート鍵を用いて暗号化して前記ノ新規ノードに通知することを特徴とする
請求項5記載のルートノード。
【請求項7】
前記デバイス鍵割り当てDBは、更に、前記デバイス鍵各々の有効期限を記憶し、
前記デバイス鍵割り当て部は、前記新規ノードが前記過去参加ノードである場合であって、前記新規ノードに、過去に割り当てられていたデバイス鍵の有効期限が切れていない場合、前記過去に割り当てていたデバイス鍵を再度割り当て、前記有効期限が切れている場合、新しいデバイス鍵を割り当てることを特徴とする請求項6記載のルートノード。
【請求項8】
暗号文を復号可能な鍵であって、複数の群に有限個数ずつ属する鍵であるデバイス鍵を各々割り当てられた複数の参加ノードを含む無線メッシュネットワーク内のルートノードを制御するプログラムであって、
前記無線メッシュネットワークに新たに参加する新規ノードを検出する参加ノード管理機能と、
前記参加ノードと前記参加ノードに割り当てられているデバイス鍵との対応関係を記憶するとともに、前記無線メッシュネットワークに過去参加していた過去参加ノードと前記過去参加ノードに割り当てられていたデバイス鍵との対応関係を記憶するデバイス鍵記憶機能と、
前記新規ノードが前記過去参加ノードである場合、前記新規ノードに過去割り当てられていたデバイス鍵を再度割り当てるとともに、前記新規ノードが前記過去参加ノードでない場合、前記新規ノードに対して、新たなデバイス鍵を割り当てるデバイス鍵割り当て機能と、
前記無線メッシュネットワーク内の前記参加ノード及び前記新規ノードに対してメッセージを送信する際、前記参加ノードに割り当てられているデバイス鍵及び前記新規ノードに割り当てられたデバイス鍵を用いて、前記メッセージを暗号化して暗号文を生成する暗号文生成機能とを備え、
前記暗号文は、前記参加ノードに割り当てられているデバイス鍵及び前記新規ノードに割り当てられたデバイス鍵が、前記複数の群のうち少ない群から選択されていればいるほど、小さいサイズとなることを特徴とする
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate