以下、図面を参照しながら実施形態に係る通信システムについて詳細に説明する。本実施形態に係る伝送システムは、グループ鍵等の情報を複数の機器に効率良く送信できるように、管理木情報に機器を割り当てることができる。
なお、本実施形態においては、データを暗号化する暗号鍵を用いる。暗号鍵によりデータを暗号化および復号するためのアルゴリズムは、AES等の対称鍵暗号方式を用いてもよいし、非対称鍵暗号方式(公開鍵暗号方式)を用いてもよい。
図1は、実施形態に係る通信システム10の構成を示す図である。通信システム10は、管理装置20と、複数の機器30(30−A〜30−F)を備える。
管理装置20および複数の機器30は、互いにネットワークを介して接続可能である。ネットワークは、例えば家庭内に形成されたLAN等である。また、ネットワークは、インターネットまたはVPN(Virtual Private Network)等の公衆回線が含まれてもよい。また、ネットワークは、物理レイヤおよびリンクレイヤとして、IEEE802.11に準拠した無線LAN、イーサネット(登録商標)、IEEE1394等の種々の形態を適用できる。
管理装置20は、コンピュータ等の情報処理装置である。管理装置20は、オペレーティングシステム上において所定のプログラムを実行し、例えば常時起動している。
機器30は、通信機能および情報処理機能を有する装置である。例えば、機器30は、家庭で用いられる電化製品(エアーコンディショナ、テレビジョン装置および冷蔵庫等であって、ネットワークに接続可能な装置)であってよい。また、機器30は、スマートフォン、タブレットまたはノート型コンピュータ等の携帯型の情報機器であってもよい。
通信システム10では、管理装置20と機器30との間、または、機器30と機器30との間でデータが送信される。送信されるデータは、例えば、機器30の動作を制御するための制御コマンド、管理装置20または機器30が暗号化または認証に用いる鍵の値、鍵の識別子情報、および、管理装置20または機器30の識別情報(MACアドレスまたはIPアドレス等)等である。また、送信されるデータは、動画像データ、音声データ、テキストデータまたはプログラムコード等であってもよい。
このようなデータは、グループ鍵により暗号化される。グループ鍵は、グループに属する機器30が共通に保有する鍵である。
管理装置20は、ネットワークに接続された複数の機器30に対して、例えばユーザ等の指示または予め設定された規則等に従いグループを設定する。管理装置20は、複数のグループを設定してもよい。また、管理装置20は、1つの機器30を複数のグループに属させてもよい。また、グループに属さない機器30が存在していてもよい。管理装置20は、グループ毎に固有のグループ鍵を割り当てる。管理装置20は、データをグループ鍵により暗号化してネットワークに送信することにより、グループに属する機器30にデータを取得させ、グループに属さない機器30に対してデータを秘匿することができる。
また、管理装置20は、グループ鍵を、それぞれの機器30に割り当てられたノード鍵により暗号化して機器30に与える。ノード鍵は、管理装置20と機器30とが共有する鍵である。1つの機器30は、少なくとも1つのノード鍵の組をデバイス鍵として保有する。管理装置20は、それぞれの機器30が保有するノード鍵を、木構造(ループを有さない無向グラフ)を表す管理木情報を用いて管理する。なお、管理装置20は、データをノード鍵により暗号化して機器30へと送信してもよい。
図2は、管理木情報の一例を示す図である。管理木情報は、複数のノード(図2の丸で示す)と、ノードとノードとの間を接続する複数のエッジとを含む。木構造の頂点(最上位層)の1つのノードをルートノードと呼ぶ。また、木構造の末端(最下位層)に配置されるそれぞれのノードをリーフノードと呼ぶ。
ノードには、固有のノード番号が割り振られている。図2の例では、丸の中の数字がノード番号を示す。
管理装置20は、ノード鍵をそれぞれのノードに割り当てる。ノード鍵は、ノード毎に異なる。図2の例では、管理装置20は、ノード番号が1〜15のノードに、K1〜K15のノード鍵を割り当てている。
また、管理装置20は、それぞれの機器30を、何れかのリーフノードに割り当てる。管理装置20は、1つのリーフノードに1つの機器30を割り当て、1つのリーフノードに複数の機器30を重複して割り当てない。管理木情報は、何れの機器30も割り当てられていない空のリーフノードを含んでよい。図2の例では、管理装置20は、ノード番号8,9,10,11,13,15のノードに、識別情報A,B,C,D,E,Fの機器30を割り当てている。
また、管理装置20は、それぞれの機器30に、管理木情報におけるルートノードから、当該機器30が割り当てられた対応するリーフノードまでのパスに割り当てられている少なくとも1つのノード鍵(例えば、ルートノードから対応するリーフノードまでのパスに割り当てられている全てのノード鍵)を送信する。機器30は、管理装置20から送信された少なくとも1つのノード鍵の組をデバイス鍵として記憶する。例えば、管理装置20は、ノード番号8に割り当てられた識別情報Aの機器30に、K1,K2,K4,K8のノード鍵を送信する。なお、管理装置20は、少なくともリーフノードに割り当てられたノード鍵を送信すれば、ルートノードから対応するリーフノードまでパスの全てのノード鍵を送信しなくてもよい。
なお、管理木情報は、2分木に限らず、3分木以上であってもよい。また、管理木情報は、非完全の木構造であってもよく、様々な構造であってよい。
図3は、グループの一例を示す図である。管理装置20は、それぞれのグループ毎に、固有のグループ鍵を生成する。管理装置20は、グループに属するそれぞれの機器30に対して、1つのグループ鍵を少なくとも1つのノード鍵で暗号化して生成した少なくとも1つの暗号文を送信する。具体的には、管理装置20は、グループに属する全ての機器30が何れかの暗号文を復号可能であり、且つ、送信する暗号文の数が最も少なくなるように、少なくとも1つのノード鍵を選択する。そして、管理装置20は、選択したそれぞれのノード鍵で暗号文を生成して送信する。
図3の例においては、識別情報A,Bの機器30がグループαを形成している。ノード鍵K4は、識別情報A,Bの機器30が共通に保有しているが、他の機器30は保有していない。従って、管理装置20は、グループαのグループ鍵GKαを、ノード鍵K4で暗号化する。これにより、管理装置20は、グループαを形成している2つの機器30に、効率良くグループ鍵GKαを送信することができる。
また、図3の例においては、識別情報A,B,C,Dの機器30がグループβを形成している。ノード鍵K2は、識別情報A,B,C,Dの機器30が共通に保有しているが、他の機器30は保有していない。従って、管理装置20は、グループβのグループ鍵GKβを、ノード鍵K2で暗号化する。これにより、管理装置20は、グループβを形成している4つの機器30に、効率良くグループ鍵GKβを送信することができる。
また、図3の例においては、識別情報E,Fの機器30がグループγを形成している。ノード鍵K3は、識別情報E,Fの機器30が共通に保有しているが、他の機器30は保有していない。従って、管理装置20は、グループγのグループ鍵GKγを、ノード鍵K3で暗号化する。これにより、管理装置20は、グループγを形成している2つの機器30に、効率良くグループ鍵GKγを送信することができる。
図4は、機器30から管理装置20へと送信される属性情報と、管理装置20から機器30へと送信される属性情報に基づき決定されたノード鍵を示す図である。図5は、属性情報と、属性情報に基づき決定されたノード鍵の他の送信例を示す図である。
機器30は、当該機器30の属性を表す属性情報を管理装置20へと送信する。属性情報は、少なくとも1つの要素情報を含む。属性情報は、例えば、識別情報、ベンダ名、種別、平均消費電力または最頻コマンド名等を、要素情報として含む。なお、属性情報の詳細については、図8を参照して後述する。
管理装置20は、このような属性情報に基づいて、それぞれの機器30に割り当てる1以上のノード鍵を決定し、そのノード鍵を機器30に送信する。また、管理装置20は、図5のように、機器30−1へのノード鍵の割り当てに伴い、その他の機器30-2のノード鍵の割り当てに変更が生じた場合には、機器30−2に変更後のノード鍵を送信する。
ここで、管理装置20は、第1の機器30の属性情報を受け取り、第1の機器30の属性情報と、1以上の第2の機器30の属性情報に基づき構成された管理木情報のルートノードからリーフノードまでのパスに割り当てられた少なくとも1つのノード鍵を送信する。
より具体的には、管理装置20は、第1の機器30の属性情報である第1属性情報を受け取り、第1のリーフノードより最も近い第2のリーフノードに割り当てることで構成された管理木情報のルートノードから第2のリーフノードまでのパスに割り当てられた少なくとも1つのノード鍵を送信する。なお、第1のリーフノードは、第2の機器30が割り当てられたノードである。また、第2の機器30は、第2の機器30の属性情報である第2属性情報が第1属性情報と一致する機器30である。また、この場合、管理装置20は、管理木情報のルートノードから第1のリーフノードまでのパスに割り当てられた少なくとも1つのノード鍵を更に送信してもよい。
また、管理装置20は、複数の機器30の少なくとも1以上の機器30の属性情報を受け取り、管理木情報のルートノードから各リーフノードまでのパスに割り当てられた少なくとも1つのノード鍵を送信してもよい。この場合、管理木情報は、複数の機器30のうち、受け取った属性情報が一致する機器30を第1のリーフノードに割り当てられたものであり、かつ、複数の機器30のうち、受け取った属性情報が一致しない機器30を第2のリーフノードに割り当てられたものである。
また、例えば、管理装置20は、管理木情報に新たな機器30を割り当てる場合、その新たな機器30の属性情報に基づき割り当て位置(リーフノードの位置)を決定する。より具体的には、管理装置20は、類似した属性情報の機器30同士が近くなり、類似していない属性情報の機器30同士が遠くなるように、新たな機器30の割り当て位置を決定する。これにより、管理装置20は、同一のグループに属する複数の機器30に、グループ鍵等の情報を少ない情報量(暗号文数)で効率良く送信することができる。
図6は、管理装置20の構成を示す図である。管理装置20は、木記憶部41と、グループ記憶部42と、属性記憶部43と、機器発見部44と、機器認証部45と、属性取得部46と、類似度算出部47と、割当部48と、割当送信部49と、グループ鍵送信部50と、生成部51と、拡張部52と、再構成部53と、暗号化部54と、第1通信部55とを有する。
木記憶部41は、ノードにノード鍵が割り当てられ、リーフノードに機器30が割り当てられた管理木情報を記憶する。グループ記憶部42は、グループ毎に、グループ識別情報、グループ鍵、および、属する機器30のリストを記憶する。属性記憶部43は、機器30毎に属性情報を記憶する。
機器発見部44は、ネットワーク上に存在する機器30を発見する。機器認証部45は、機器30と認証処理を行い、通信相手の機器30が正当な権限を有するかを確認する。
属性取得部46は、認証された機器30から属性情報を取得する。属性取得部46は、例えばネットワークに新たな機器30が接続された場合、新たな機器30から属性情報を取得する。また、属性取得部46は、属性情報のうち、時間によって変化する要素情報を、それぞれの機器30から定期的に取得してもよい。属性取得部46は、取得した属性情報を属性記憶部43に記憶させる。
類似度算出部47は、2つの機器30の属性情報の類似度を算出する。例えばネットワークに新たな機器30が接続されて、管理木情報にその新たな機器30を割り当てる場合には、類似度算出部47は、新たな機器30の属性情報と、管理木情報に割り当て済みのそれぞれの機器30の属性情報との類似度を算出する。
割当部48は、木記憶部41に記憶されている管理木情報に、新たな機器30を割り当てる。この場合において、割当部48は、新たな機器30の属性情報と管理木情報に割り当て済みの既存の機器30の属性情報との類似度に基づき、新たな機器30の割り当て位置(リーフノードの位置)を決定する。より具体的には、割当部48は、類似度が高い機器30同士が近い範囲に配置されるように、新たな機器30を割り当てるリーフノードの位置を決定する。例えば、割当部48は、新たな機器30の属性情報との類似度が基準より高い機器30(例えば、類似度が最も高い機器30)が割り当てられたリーフノードから、予め定められたエッジ数で到達可能な空のリーフノードに、新たな機器30を割り当てる。
割当送信部49は、管理木情報に新たな機器30が割り当てられた場合、少なくとも1つのノード鍵を認証処理により共有した鍵により暗号化して、新たな機器30に送信する。より具体的には、割当送信部49は、管理木情報におけるルートノードから、新たな機器30に対応するリーフノードまでのパスに割り当てられた少なくとも1つのノード鍵を、新たな機器30に送信する。新たな機器30は、受信した少なくとも1つのノード鍵の組をデバイス鍵として記憶する。さらに、割当送信部49は、新たな機器30に、管理木情報における割り当て位置およびノード鍵の識別情報を暗号化して送信してもよい。
グループ鍵送信部50は、新たなグループが形成された場合、グループ鍵を生成する。そして、グループ鍵送信部50は、形成された新たなグループに属する全ての機器30に、グループ鍵を送信する。この場合において、グループ鍵送信部50は、グループに属する全ての機器30が少なくとも何れか1つを保有しており、グループに属さない機器30が保有しておらず、且つ、暗号文の数が最も少なくなるような1または複数のノード鍵を選択する。そして、グループ鍵送信部50は、選択した1または複数のノード鍵によりグループ鍵を暗号化して1または複数の暗号文を送信する。
また、グループ鍵送信部50は、新たな機器30が管理木情報に割り当てられ、その新たな機器30が何れかのグループに追加された場合、新たな機器30に、対応するグループ鍵を送信する。この場合、グループ鍵送信部50は、新たな機器30が保有しており、グループに属さない機器30が保有していないノード鍵により、対応するグループ鍵を暗号化する。
生成部51は、新たな管理木情報を生成して木記憶部41に記憶させる。例えば、生成部51は、ネットワークに最初に新たな機器30が接続されて、割り当てるべき管理情報が木記憶部41に存在しない場合、新たな管理木情報を生成して木記憶部41に記憶させる。
拡張部52は、管理木情報の空のリーフノードの数が予め定められた数より少ない場合、木記憶部41に記憶された管理木情報を拡張する。例えば、拡張部52は、ネットワークに新たな機器30が接続された場合であって、木記憶部41に記憶された管理木情報に空のリーフノードが存在しない場合、管理木情報を拡張する。なお、管理木情報を拡張するとは、管理木情報に含まれるリーフノードが増えるように、新たなノードおよびエッジを追加することをいう。
再構成部53は、木記憶部41に記憶された管理木情報を再構成する。例えば、再構成部53は、管理木情報における機器30のリーフノードへの割り当て位置を、類似度が高い機器30同士が近い範囲に集中して配置されるように変更する。より具体的には、例えば、再構成部53は、管理木情報における機器30のリーフノードへの割り当て位置を、属性情報の類似度が予め定められた値以上の機器30同士が予め定められたエッジ数で到達可能な範囲に属するように変更する。再構成部53は、例えば、定期的または予め定められたイベントが発生した場合に、再構成を実行する。
暗号化部54は、管理装置20から何れかの機器30へとデータを送信する場合、グループ鍵またはノード鍵を用いて対象のデータを暗号化する。暗号化部54は、指定されたグループに属する機器30に一括してデータを送信する場合には、グループ鍵により対象のデータを暗号化する。また、暗号化部54は、指定された何れか1つまたは複数の機器30にデータを送信する場合には、指定された機器30が保有しており、他の機器30が保有していないノード鍵を選択して対象のデータを暗号化する。
第1通信部55は、ネットワークを介して機器30と通信を行う。第1通信部55は、例えば、機器30と通信を行うための物理レイヤおよびデータリンクレイヤ等のレイヤ処理を実行する。
図7は、機器30の構成を示す図である。機器30は、情報記憶部61と、固定属性記憶部62と、属性測定部63と、管理装置発見部64と、要求部65と、管理装置認証部66と、属性送信部67と、割当受信部68と、グループ鍵受信部69と、復号部70と、第2通信部71とを有する。
情報記憶部61は、この機器30に割り当てられた少なくとも1つのノード鍵の組であるデバイス鍵を記憶する。さらに、情報記憶部61は、それぞれのノード鍵の識別情報および管理木情報における割り当て位置を記憶してもよい。さらに、情報記憶部61は、この機器30が属するグループのグループ鍵およびグループの識別情報を記憶する。
固定属性記憶部62は、属性情報に含まれる要素情報のうち、時間によって変化しない要素情報を記憶する。属性測定部63は、属性情報に含まれる要素情報のうち、時間によって変化する要素情報を測定する。属性測定部63は、定期的に測定してもよいし、予め定められたイベントが発生した場合に測定してもよい。
管理装置発見部64は、ネットワーク上に存在する管理装置20を発見する。要求部65は、管理装置20に対して、管理木情報への割り当ておよび少なくとも1つのノード鍵の組の発行を要求する。要求部65は、例えばこの機器30がネットワークに新たに接続された場合に、少なくとも1つのノード鍵の組の発行を要求する。管理装置認証部66は、管理装置20と認証処理を行い、通信相手の管理装置20が正当な権限を有するかを確認する。
属性送信部67は、属性情報を管理装置20へと送信する。属性送信部67は、例えば、管理木情報への割り当ておよび少なくとも1つのノード鍵の組の発行の要求時において、管理装置20に対して属性情報を送信する。また、属性送信部67は、属性情報に含まれる要素情報のうちの時間変化する要素情報を、定期的または予め定められたイベントが発生した場合に管理装置20へと送信してもよい。
割当受信部68は、管理装置20から送信される少なくとも1つのノード鍵を受信する。割当受信部68は、受信した少なくとも1つのノード鍵の組を、デバイス鍵として情報記憶部61に記憶させる。また、割当受信部68は、この機器30の管理木情報における割り当て位置、および、それぞれのノード鍵の識別情報を受信する。割当受信部68は、受信したこれらの情報を情報記憶部61に記憶させる。なお、この機器30がネットワークに新たに接続された場合、ノード鍵、割り当て位置およびノード鍵の識別情報は、管理装置20との間の認証処理により共有した鍵により暗号化されている。割当受信部68は、この共有した鍵により、ノード鍵、割り当て位置およびノード鍵の識別情報を復号する。
グループ鍵受信部69は、管理装置20から暗号化されたグループ鍵を受信する。グループ鍵は、この機器30が保有しているデバイス鍵に含まれる少なくとも1つのノード鍵の組のうちの何れかのノード鍵により暗号化されている。従って、グループ鍵受信部69は、情報記憶部61に記憶されているデバイス鍵に含まれる少なくとも1つのノード鍵の組のうちの何れかのノード鍵を選択し、選択したノード鍵を用いて、グループ鍵を復号する。グループ鍵受信部69は、復号したグループ鍵を情報記憶部61に記憶させる。
復号部70は、管理装置20から送信されたデータをグループ鍵、または、デバイス鍵に含まれる何れかのノード鍵を用いて復号する。第2通信部71は、ネットワークを介して管理装置20および他の機器30と通信を行う。第2通信部71は、例えば、管理装置20または他の機器30と通信を行うための物理レイヤおよびデータリンクレイヤ等のレイヤ処理を実行する。
図8は、属性情報に含まれる要素を示す図である。属性情報は、時間によって変化しない要素情報(固定の要素情報)と、時間によって変化する要素情報(経時変化の要素情報)とを含む。なお、属性情報は、固定の要素情報と、経時変化の要素情報との何れか一方を含んでもよい。
固定の要素情報は、一例として、識別情報、ベンダ名、種別、メモリ量および最大消費電力等である。識別情報は、ネットワーク上で一意に機器30を識別するための情報であり、例えば機器30のMACアドレス、IPアドレスまたは製造番号等である。ベンダ名は、機器30の製造会社名または販売会社名等である。種別は、機器30の製品機能を表す名称である。具体的には、種別は、例えば、エアーコンディショナ、テレビジョン装置および冷蔵庫等が記述される。
メモリ量は、機器30が備えるメモリの容量値である。メモリ量は、容量値に限らず、容量値が予め定められた閾値より大きいか否か等の情報であってもよい。最大消費電力は、機器30が消費する電力の最大値である。
経時変化の要素情報は、一例として、平均消費電力、最頻コマンド名およびコマンド頻度等である。平均消費電力は、ある期間(例えば、運転開始から現時点まで)において、機器30が消費した電力の平均値である。最頻コマンド名は、ある期間(例えば、運転開始から現時点まで)において、機器30が実行した最も多い制御コマンドの名称である。また、コマンド頻度は、ある期間(例えば、運転開始から現時点まで)において、機器30が制御コマンドを実行した頻度である。
なお、属性情報に含まれる要素情報は、これら以外に、例えば、機種名、機器のキャッシュ量、CPU(Central Processing Unit)の名称、定格消費電力、通信方式、ネットワークのトポロジー、管理装置20から機器30に到達するまでのホップ数、電波強度、機器30の製造年月日、機器30の設置場所、機器30が移動可能であるかまたは固定であるか、接続される周辺装置の識別情報等であってもよい。また、属性情報に含まれる要素情報の組み合わせは、どのような組み合わせであってもよい。
図9は、実施形態に係る通信システム10のシーケンス図である。通信システム10では、ネットワークに新しい機器30が接続された場合、図9に示すシーケンスに従って処理が実行される。
まず、ステップS11において、管理装置20および機器30は、ネットワークを介して互いの機器を発見する。続いて、ステップS12において、機器30は、管理装置20に対して、管理木情報への割り当ておよび少なくとも1つのノード鍵の組(デバイス鍵)の発行を要求する。
続いて、ステップS13において、管理装置20および機器30は、互いに認証処理を行い、通信相手が正当な権限を有するかを確認する。管理装置20は、ステップS13の機器30と接続してよいかを判定するための認証処理を、ステップS11またはステップS12の処理と併せて実行してもよい。
なお、管理装置20および機器30は、例えば、ISO/IEC9798−1またはISO/IEC9798−3等の方法を用いて認証する。また、管理装置20および機器30は、公開鍵証明書を用いる方法で認証してもよい。また、管理装置20および機器30は、認証に用いる鍵を予め共有されたパスワードに基づいて生成してもよいし、認証に用いる鍵に工場出荷時等に機器30に埋め込まれた秘密鍵を用いてもよい。
続いて、相手が正当な管理装置20であると確認した場合、ステップS14において、機器30は、属性情報を送信する。この場合において、機器30は、時間変化しない要素情報を送信する。また、機器30は、時間変化する要素情報を測定済みの場合には、時間変化する要素情報も送信してもよい。
なお、機器30は、次の割当処理(S15)の前であれば、属性情報をいつ送信してもよい。例えば、機器30は、発見処理(S11)にUPnP SSDPを用いる場合には、デバイスディスクリプションの1つのエントリに属性情報を含めて送信してもよい。また、機器30は、要求処理(S12)のプロトコルにHTTPを用いる場合には、HTTPリクエストヘッダの1つのエンティティとして専用のフィールドを定義して属性情報を送信してもよいし、HTTP GETリクエストのURLに属性情報の格納場所を含めてもよい。
続いて、ステップS15において、管理装置20は、機器30を管理木情報における何れかのリーフノードに割り当てる割当処理を実行する。なお、割当処理については図10を参照して後述する。
続いて、ステップS16において、管理装置20は、ステップS15の割当処理により得られた割当情報を、機器30へ送信する。割当情報は、対応する機器30に割り当てられた少なくとも1つのノード鍵の組(デバイス鍵)を含む。また、割当情報は、管理木情報における割り当て位置、および、それぞれのノード鍵の識別情報を含んでもよい。また、管理装置20は、割当情報を、認証処理により共有された鍵により暗号化して機器30に送信する。
続いて、ステップS17において、管理装置20は、対応する機器30が属するグループのグループ鍵を取得して、ステップS16で機器30へと送信した少なくとも1つのノード鍵のうちの何れか1以上のノード鍵により暗号化する。この場合において、管理装置20は、グループ以外の機器30が保有していないノード鍵によりグループ鍵を暗号化する。
続いて、ステップS18において、暗号化したグループ鍵を機器30へ送信する。続いて、ステップS19において、機器30は、管理装置20から暗号化したグループ鍵を受信して、保有している少なくとも1つのノード鍵の組(デバイス鍵)のうちの何れかのノード鍵を選択し、選択したノード鍵により復号する。以上の処理により、機器30は、管理装置20から少なくとも1つのノード鍵の組(デバイス鍵)およびグループ鍵を取得することができる。
図10は、管理装置20の割当処理のフローチャートである。管理装置20は、割当処理(S15)において、図10に示す処理を実行する。
まず、ステップS21において、管理装置20の生成部51は、木記憶部41に管理木情報が存在するか否かを判断する。管理木情報が存在しない場合(S21のNo)、ステップS22において、生成部51は、新たな管理木情報を生成して、木記憶部41に記憶させる。この場合において、生成部51は、階層が予め定められたi段の管理木情報を生成する(iは、2以上の整数)。なお、管理木情報の階層とは、ルートノードからリーフノードまでのルートのエッジ数を表す。続いて、ステップS23において、管理装置20の割当部48は、新たな管理木情報における何れかのリーフノードに、新たな機器30を割り当てる。そして、ステップS23を終了すると、管理装置20は、割当処理を終了する。
一方、管理木情報が存在する場合(S21のYes)、ステップS24において、管理装置20の類似度算出部47は、新たな機器30の属性情報と、管理木情報に既に割り当てられているそれぞれの機器30の属性情報との類似度を算出する。
2つの属性情報の類似度を算出する場合、類似度算出部47は、例えば、対応する要素情報同士が、同一であるか、または、値の差が一定範囲内であるかを比較する。例えば、類似度算出部47は、ベンダ名が同一であるか、種別が同一であるか、メモリ量の差が一定範囲内であるか、最大消費電力の差が一定範囲内であるか、平均消費電力の差が一定範囲内であるか、最頻コマンド名が同一であるか、コマンド頻度の差が一定範囲内であるか等を比較する。
そして、類似度算出部47は、複数の要素情報毎の比較結果を合成して類似度を算出する。例えば、類似度算出部47は、要素情報が同一または値の差が一定範囲内である場合には1点、要素情報が同一ではないまたは値の差が一定範囲を超えている場合には0点とし、複数の要素情報の点数を合計した値を類似度とする。
また、類似度算出部47は、属性情報のうちの全ての要素情報について比較するのではなく、予め定められた特定の1または複数の要素情報を抽出して比較してもよい。例えば、類似度算出部47は、種別と、平均消費電力とを比較して、これらの比較結果を合成して類似度を算出してもよい。
また、類似度算出部47は、要素情報によって比較結果に重みを変えて合成してもよい。類似度算出部47は、例えば、種別が一致する場合には5点、ベンダ名が一致する場合には2点、平均消費電力の値の差が一定の範囲内の場合には4点といったように重みを変えてもよい。なお、類似度算出部47は、以上の算出方法に代えて、他の算出方法により類似度を算出してもよい。
続いて、ステップS25において、割当部48は、算出した類似度に基づき、管理木情報における何れかのリーフノードに、新たな機器30を割り当てる。この場合、割当部48は、類似する機器30が近くに集中して配置されるように、新たな機器30を何れかの空のリーフノードに割り当てる。例えば、割当部48は、新たな機器30の属性情報と最も類似度の高い機器30から、一定のエッジ数以内で到達できる空のリーフノードに新たな機器30を割り当てる。また、割当部48は、最も類似度の高い機器30から一定のエッジ数以内で到達できる空のリーフノードが存在しない場合には、拡張部52に管理木情報を拡張させてから、新たな機器30を割り当ててもよい。
そして、ステップS25を終了すると、管理装置20は、割当処理を終了する。
図11は、図10のステップS25での処理の一例を示すフローチャートである。割当部48は、図10のステップS25において、例えば図11に示すような処理を実行してもよい。
まず、ステップS31において、割当部48は、管理木情報に既に割り当てられている機器30のうち、新たな機器30の属性情報との類似度が最も高い機器30が割り当てられたリーフノードを検出する。
続いて、ステップS32において、割当部48は、類似度が最も高い機器30が割り当てられたリーフノードからn親等以内に、空のリーフノードが存在するか否かを判断する。ここで、n親等以内のリーフノードとは(nは1以上の整数である。)、ある機器30が割り当てられたリーフノードから、n回以下のエッジ数で到達可能な他のリーフノードをいう。例えば、図2に示した例においては、リーフノード8とリーフノード9との間の親等数は、2である。また、リーフノード8とリーフノード12の間の親等数は、6である。
類似度が最も高い機器30が割り当てられたリーフノードからn親等以内に、空のリーフノードが存在する場合(S32のYes)、ステップS33において、割当部48は、そのn親等以内の空のリーフノードに、新たな機器30を割り当てる。つまり、割当部48は、類似度が最も高い機器30が割り当てられたリーフノードから、予め定められたエッジ数で到達可能な空のリーフノードに、新たな機器30を割り当てる。これにより、割当部48は、管理木情報における、属性情報が最も類似する既存の機器30に近い位置に新たな機器30を割り当てることができる。
なお、ステップS31において、割当部48は、類似度が基準値以上のうちの、類似度が最も高い機器30が割り当てられたリーフノードを検出してもよい。この場合において、もし、類似度が基準値以上の機器30が存在しなければ、割当部48は、逆にn親等より離れた空のリーフノードに、新たな機器30を割り当ててもよい。これにより、割当部48は、管理木情報における、属性情報が類似しない既存の機器30の遠くの位置に、新たな機器30を割り当てることができる。
そして、管理装置20は、ステップS33を終了すると、処理を図10のフローに戻す。
一方、類似度が最も高い機器30が割り当てられたリーフノードからn親等以内に、空のリーフノードが存在しない場合(S32のNo)、ステップS34において、割当部48は、管理木情報に空のリーフノードが存在するか否かを判断する。割当部48は、管理木情報に空のリーフノードが存在しない場合(S34のNo)、処理をステップS35に進め、管理木情報に空のリーフノードが存在する場合(S34のYes)、処理をステップS36に進める。
ステップS35において、拡張部52は、管理木情報の木構造を拡張する。これにより、拡張部52は、管理木情報に空のリーフノードを作成することができる。そして、拡張部52は、管理木情報を拡張した後に、処理をステップS32に戻して処理を繰り返させる。なお、拡張部52は、管理木情報を拡張した後に、処理をステップS36に進めてもよい。なお、管理木情報の拡張処理については、図14〜図20を参照して後述する。
また、ステップS36において、割当部48は、何れかの空のリーフノードに新たな機器30を割り当てる。そして、管理装置20は、ステップS36を終了すると、処理を図10のフローに戻す。
なお、ステップS34において、割当部48は、管理木情報に空のリーフノードが存在するか否かに代えて、管理木情報に空のリーフノードが予め定められた数以上存在するか否かを判断してもよい。この場合、割当部48は、空のリーフノードが予め定められた数以上存在しなければ、処理をステップS35に進め、存在すれば、処理をステップS36に進める。
図12は、管理木情報への機器30の第1の割り当て例を示す図である。例えば、管理木情報は、図12に示すように、2階層の完全2分木の構造であり、ノード番号4のリーフノードに第1の機器30−Aが割り当てられ、ノード番号6のリーフノードに第2の機器30−Bが割り当てられ、ノード番号7のリーフノードに第3の機器30−Cが割り当てられているとする。また、図12の例において、第1の機器30−Aは、3つのノード鍵K1,K2,K4の組(デバイス鍵)を保有する。第2の機器30−Bは、3つのノード鍵K1,K3,K6の組(デバイス鍵)を保有する。第3の機器30−Cは、3つのノード鍵K1,K3,K7の組(デバイス鍵)を保有する。
図12の例において、第1の機器30−Aおよび第2の機器30−Bに制御コマンドCMDを実行させる場合、管理装置20は、次式で表される2つの暗号文を生成して送信する。これにより、第1の機器30−Aおよび第2の機器30−Bは、グループ鍵GKを保有することができる。なお、E(K,M)は、鍵Kを用いてデータMを暗号化した暗号文を表す。
C1=E(K4,GK)
C2=E(K6,GK)
続いて、管理装置20は、制御コマンドCMDを、グループ鍵GKを用いて次式で表されるように暗号化し、暗号文をマルチキャスト送信する。
C3=E(GK,CMD)
第1の機器30−Aおよび第2の機器30−Bは、受信した暗号文をグループ鍵GKを用いて復号する。これにより、第1の機器30−Aおよび第2の機器30−Bは、制御コマンドCMDを実行することができる。このように、管理木情報が図12のように構成されている場合、管理装置20は、3つの暗号文を送信することにより、第1の機器30−Aおよび第2の機器30−Bに制御コマンドCMDを実行させることができる。
なお、図12の例において、管理装置20は、グループ鍵GKを送信せずに、第1の機器30−Aおよび第2の機器30−Bに制御コマンドCMDを実行させることもできる。この場合、管理装置20は、次式で表される暗号文を生成して送信する。グループ鍵GKを送信しない場合には、管理装置20は、2つの暗号文を送信することにより、第1の機器30−Aおよび第2の機器30−Bに制御コマンドCMDを実行させることができる。
C1´=E(K4,CMD)
C2´=E(K6,CMD)
図13は、管理木情報への機器30の第2の割り当て例を示す図である。図13に示す管理木情報は、第2の機器30−Bがノード番号5のノードに割り当てられている点において、図12と異なる。図13の例では、第2の機器30−Bは、3つのノード鍵K1,K2,K5の組(デバイス鍵)を保有する。
図13の例において、第1の機器30−Aおよび第2の機器30−Bに制御コマンドCMDを実行させるには、まず、管理装置20は、次式で表される暗号文を生成して、マルチキャスト送信する。これにより、第1の機器30−Aおよび第2の機器30−Bは、グループ鍵GKを保有することができる。
C1´´=E(K2,GK)
続いて、管理装置20は、制御コマンドCMDを、グループ鍵GKを用いて次式で表されるように暗号化し、暗号文をマルチキャスト送信する。
C3=E(GK,CMD)
第1の機器30−Aおよび第2の機器30−Bは、受信した暗号文をグループ鍵GKを用いて復号する。これにより、第1の機器30−Aおよび第2の機器30−Bは、制御コマンドCMDを実行することができる。以上のように、管理木情報が図13のように構成されている場合、管理装置20は、2つの暗号文を送信することにより、第1の機器30−Aおよび第2の機器30−Bに制御コマンドCMDを実行させることができる。
また、図13の例において、管理装置20は、グループ鍵GKを送信せずに、第1の機器30−Aおよび第2の機器30−Bに制御コマンドCMDを実行させることもできる。この場合、管理装置20は、次式で表される暗号文を生成して、マルチキャスト送信する。このようにグループ鍵GKを送信しない場合には、管理装置20は、1つの暗号文を送信することにより、第1の機器30−Aおよび第2の機器30−Bに制御コマンドCMDを実行させることができる。
C1´´´=E(K2,CMD)
以上のように、第1の機器30−Aおよび第2の機器30−Bに同一の制御コマンドCMDを実行させる場合、図12の管理木情報よりも、図13の管理木情報の方が、データの送信量を少なくすることができ、効率が良い。
ここで、図12の管理木情報と図13の管理木情報とを比較する。図12の管理木情報は、第1の機器30−Aが割り当てられたリーフノードと第2の機器30−Bが割り当てられたリーフノードとの間が、4親等の距離となっている。これに対して、図13の管理木情報は、第1の機器30−Aが割り当てられたリーフノードと第2の機器30−Bが割り当てられたリーフノードとの間が、2親等の距離となっている。すなわち、図13の管理木情報は、図12の管理木情報よりも、近い範囲に第1の機器30−Aおよび第2の機器30−Bが割り当てられている。このことから、管理木情報は、1つのグループに属する機器30同士が、近いリーフノードに割り当てられている方が、遠いリーフノードに割り当てられている場合よりも、送信する情報量(暗号文数)を少なくすることができる。
また、管理装置20は、属性情報の類似度の高い複数の機器30に、同一のデータを同時に送信する可能性が高い。例えば、通信システム10の全体の消費電力を抑制する場合、管理装置20は、複数のエアーコンディショナに対して、電力消費量を低下させる制御コマンド等を同時に送信する可能性が高い。従って、管理装置20は、属性情報の類似度の高い複数の機器30を管理木情報における所定の範囲内のリーフノードに割り当てることにより、送信する情報量(暗号文数)を少なくすることができる。
本実施形態に係る管理装置20は、属性情報の類似度が高い機器30同士を管理木情報における近い位置に割り当てる。従って、管理装置20によれば、複数の機器30に少ない情報量で効率良くデータを送信することができる。
(管理木情報の拡張)
拡張部52は、例えば、新たな機器30を管理木情報に割り当てる場合において、管理木情報の空のリーフノードの数が予め定められた数より少ない場合(例えば、空のリーフノードが存在しない場合)、管理木情報を拡張する。
また、拡張部52は、管理木情報における新たな機器30と最も類似度が高い属性情報の機器30のリーフノードからn親等以内に空のリーフノードが存在しない場合に、管理木情報を拡張してもよい。また、拡張部52は、定期的または所定のイベントが発生した場合であって、管理木情報の空のリーフノードの数が予め定められた数より少ない場合、管理木情報を拡張してもよい。また、拡張部52は、例えば、ネットワークに接続された機器30の個数が予め定められた数を超える毎に、管理木情報を拡張してもよい。
以下、管理木情報の拡張例および拡張後のノード鍵の送信方法について説明する。
図14は、拡張前の管理木情報の第1例を示す図である。例えば、管理木情報は、図14に示すように、1階層の完全2分木の構造であり、ノード番号4のリーフノードに第1の機器30−Aが割り当てられ、ノード番号5のリーフノードに第2の機器30−Bが割り当てられているとする。図14の例において、第1の機器30−Aは、2つのノード鍵K2,K4の組(デバイス鍵)を保有する。第2の機器30−Bは、2つのノード鍵K2,K5の組(デバイス鍵)を保有する。
このような場合、割当部48は、新たな機器30を管理木情報に割り当てることができない。そこで、拡張部52は、例えば、管理木情報の既存のルートノードの上位層にさらにノードを追加する。
図15は、図14の管理木情報におけるルートノードの上位層に、新たなにノードを追加した例を示す図である。図15の例において、拡張部52は、例えば、元のルートノードであるノード番号2の上位層に、ノード番号1の新たなルートノードを追加する。さらに、拡張部52は、ノード番号1のルートノードの下位層に、1階層の完全2分木の部分木を追加する。これにより、拡張部52は、管理木情報に、新たに2つの空のリーフノードを形成して、新たな機器30を割り当て可能にできる。
続いて、割当送信部49は、管理木情報における拡張したノードに割り当てられた新たなノード鍵を、管理木情報に割り当て済みの機器30に送信する。この場合、割当送信部49は、拡張したノードに割り当てられた新たなノード鍵を、既存のノードに割り当てられていたノード鍵であって、送信対象となる機器30のみが保有するノード鍵により暗号化して送信する。
図15の例においては、割当送信部49は、次式に示すように、拡張したノード番号1のノードに割り当てられたノード鍵K1を、既存のノード番号2のノードに割り当てられたノード鍵K2により暗号化して、第1の機器30−Aおよび第2の機器30−Bにマルチキャスト送信する。
C4=E(K2,K1)
これにより、拡張前に管理木情報に割り当てられていた既存の第1の機器30−Aおよび第2の機器30−Bは、拡張後の管理木情報における、ルートノードから対応するリーフノードまでに割り当てられている全てのノード鍵を保有することができる。図15の例においては、第1の機器30−Aは、3つのノード鍵K1,K2,K4の組(デバイス鍵)を保有し、第2の機器30−Bは、3つのノード鍵K1,K2,K5の組(デバイス鍵)を保有することができる。
このように、割当送信部49は、管理木情報をルートノードの上位層へ拡張することにより、管理木情報における拡張したノードに割り当てられた新たなノード鍵を、既存の機器30へ、既に保有しているノード鍵を用いて暗号化して送信することができる。特に、この場合、割当送信部49は、新たなノード鍵を元のルートノードに割り当てられていた1つのノード鍵で暗号化すればよいので、送信する情報量を少なくすることができる。
図16は、拡張前の管理木情報の第2例を示す図である。例えば、管理木情報は、図16に示すように、1階層の完全2分木の構造であり、ノード番号2のリーフノードに第1の機器30−Aが割り当てられ、ノード番号3のリーフノードに第2の機器30−Bが割り当てられているとする。図16の例において、第1の機器30−Aは、2つのノード鍵K1,K2の組(デバイス鍵)を保有する。第2の機器30−Bは、2つのノード鍵K1,K3の組(デバイス鍵)を保有する。
このような場合、割当部48は、新たな機器30を管理木情報に割り当てることができない。そこで、拡張部52は、例えば、管理木情報の既存のリーフノードの下位層にさらにノードを追加してもよい。そして、この場合、拡張部52は、下位層にノードが追加された既存のリーフノードに割り当てられていた機器30を、新たなリーフノードに割り当て直す。また、拡張部52は、例えば、管理木情報の既存のリーフノードとルートノードとの間の中間層にさらにノードを追加してもよい。
図17は、図16の管理木情報におけるリーフノードの下位層に、新たにノードを追加した例を示す図である。図17の例において、拡張部52は、例えば、元のリーフノードであるノード番号2の下位層に、ノード番号4およびノード番号5の新たな2つのリーフノードを追加する。さらに、拡張部52は、ノード番号3の下位層に、ノード番号6およびノード番号7の新たな2つのリーフノードを追加する。
また、図17の例において、拡張部52は、元のリーフノードであるノード番号2に割り当てられていた第1の機器30−Aを、ノード番号4の新たなリーフノードに割り当て直す。また、拡張部52は、元のリーフノードであるノード番号3に割り当てられていた第2の機器30−Bを、ノード番号5の新たなリーフノードに割り当て直す。これにより、拡張部52は、管理木情報に、新たに2つの空のリーフノードを形成して、新たな機器30を割り当て可能にできる。
また、図17の例において、拡張部52は、元のリーフノードであるノード番号2およびノード番号3のノードに、新たなノード鍵K2´,K3´を割り当て直す。
続いて、割当送信部49は、新たに保有すべきノード鍵を、既存のノードに割り当てられていたノード鍵であって、送信対象となる機器30のみが保有するノード鍵により暗号化して、管理木情報に割り当て済みの機器30に送信する。図17の例においては、割当送信部49は、次式に示すように、新たなノード鍵K2´,K4を、既存のノード番号2のノードに割り当てられたノード鍵K2により暗号化して、第1の機器30−Aに送信する。ノード鍵K2は、送信対象である第1の機器30−Aのみが保有し、第2の機器30−Bは保有しない。これにより、第1の機器30−Aは、3つのノード鍵K1,K2´,K4の組(デバイス鍵)を保有することができる。
C5=E(K2,K2´)
C6=E(K2,K4)
また、図17の例においては、割当送信部49は、次式に示すように、新たなノード鍵K2´,K5を、既存のノード番号3のノードに割り当てられたノード鍵K3により暗号化して、第2の機器30−Bに送信する。ノード鍵K3は、送信対象である第2の機器30−Bのみが保有し、第1の機器30−Aは保有しない。これにより、第2の機器30−Bは、3つのノード鍵K1,K2´,K5の組(デバイス鍵)を保有することができる。
C7=E(K3,K2´)
C8=E(K3,K5)
このように、割当送信部49は、管理木情報をリーフノードの下位層へ拡張することにより、管理木情報における拡張したノードに割り当てられた新たなノード鍵を、既存の機器30へ、既に保有しているノード鍵を用いて暗号化して送信することができる。なお、拡張部52は、K2´=K2としてもよい。これにより、割当送信部49は、第1の機器30−Aにノード鍵K2を送信しなくてもよいので、送信する情報量をさらに削減することができる。
図18は、図16の管理木情報におけるルートノードとリーフノードとの間の層に、新たにノードを追加した例を示す図である。拡張部52は、例えば、管理木情報のルートノードとリーフノードとの間の層に、さらに新たなノードを追加してもよい。
図18の例において、拡張部52は、例えば、ノード番号1のルートノードの下位層にノード番号4のノードを新たに追加する。そして、拡張部52は、ノード番号2のリーフノードおよびノード番号3のリーフノードを、ノード番号4のノードの下位層に接続する。さらに、拡張部52は、ノード番号1のルートノードの下位層に、1階層の完全2分木の部分木を追加する。これにより、拡張部52は、管理木情報に、新たに2つの空のリーフノードを形成して、新たな機器30を割り当て可能にできる。
続いて、割当送信部49は、追加されたノード番号4のノードに割り当てられたノード鍵を、管理木情報に割り当て済みの第1の機器30−Aおよび第2の機器30−Bに送信する。図18の例においては、割当送信部49は、次式に示すように、新たなノード鍵K4を、既存のノード番号2のノードに割り当てられたノード鍵K2と、既存のノード番号3のノードに割り当てられたノード鍵K3により、それぞれ暗号化して、第1の機器30−Aおよび第2の機器30−Bにマルチキャスト送信する。これにより、第1の機器30−Aは、3つのノード鍵K1,K2,K4の組(デバイス鍵)を保有することができる。また、第2の機器30−Bは、3つのノード鍵K1,K3,K4の組を保有することができる。
C9=E(K2,K4)
C10=E(K3,K4)
このように、管理木情報のルートノードとリーフノードとの間の層にさらに新たなノードを追加することにより、割当送信部49は、追加された新たなノードに割り当てられたノード鍵を、既存のノードに割り当てられていたノード鍵により暗号化して送信することができる。これにより、割当送信部49によれば、送信する情報量を少なくすることができる。
なお、割当送信部49は、次式に示すように、新たなノード鍵K4を、既存のノード番号1のノードに割り当てられたノード鍵K1により暗号化して、第1の機器30−Aおよび第2の機器30−Bにマルチキャスト送信するように構成してもよい。このように構成しても、第1の機器30−Aは、3つのノード鍵K1,K2,K4の組(デバイス鍵)を保有することができる。また、第2の機器30−Bは、3つのノード鍵K1,K3,K4の組(デバイス鍵)を保有することができる。さらに、これにより、割当送信部49は、1つの暗号文を送信するだけでよいので、送信する情報量をさらに削減することができる。
C11=E(K1,K4)
図19は、図16の管理木情報における一方のリーフノードの下位層に、新たなノードを追加した例を示す図である。拡張部52は、例えば、管理木情報の既存の何れか1つのリーフノードの下位層に、さらにノードを追加してもよい。そして、この場合、拡張部52は、下位層にノードが追加された既存のリーフノードに割り当てられていた機器30を、新たなリーフノードに割り当て直す。
図19の例において、拡張部52は、例えば、元のリーフノードであるノード番号3の下位層に、ノード番号4およびノード番号5の新たな2つのリーフノードを追加する。また、図19の例において、拡張部52は、元のリーフノードであるノード番号3に割り当てられていた第2の機器30−Bを、ノード番号4の新たなリーフノードに割り当て直す。これにより、拡張部52は、管理木情報に、新たに1つの空のリーフノードを形成して、新たな機器30を割り当て可能にできる。また、図19の例において、拡張部52は、元のリーフノードであるノード番号3のノードに、新たなノード鍵K3´を割り当て直す。
続いて、割当送信部49は、割り当て位置を変更した第2の機器30−Bに対して、新たに保有すべきノード鍵を送信する。図19の例においては、割当送信部49は、次式に示すように、新たなノード鍵K3´,K4を、既存のノード番号3のノードに割り当てられたノード鍵K3により暗号化して、第2の機器30−Bに送信する。これにより、第2の機器30−Bは、3つのノード鍵K1,K3´,K4の組(デバイス鍵)を保有することができる。
C12=E(K3,K3´)
C13=E(K3,K4)
このように、割当送信部49は、管理木情報を一方のリーフノードの下位層へ拡張することにより、管理木情報における拡張したノードに割り当てられた新たなノード鍵を、既存の機器30へ、既に保有しているノード鍵を用いて暗号化して送信することができる。なお、拡張部52は、K3´=K3としてもよい。これにより、割当送信部49は、第2の機器30−Bにノード鍵K3を送信しなくてもよいので、送信する情報量を少なくすることができる。
図20は、図16の管理木情報におけるルートノードと一方のリーフノードとの間の層に、新たにノードを追加した例を示す図である。拡張部52は、例えば、管理木情報のルートノードと1つのリーフノードとの間の層に、さらに新たなノードを追加してもよい。
図20の例において、拡張部52は、例えば、ノード番号1のルートノードとノード番号3のリーフノードとの間に、ノード番号4のノードを新たに追加する。そして、拡張部52は、ノード番号5の新たなリーフノードを、ノード番号4のノードの下位層に追加する。これにより、拡張部52は、管理木情報に、新たに1つの空のリーフノードを形成して、新たな機器30を割り当て可能にできる。
続いて、割当送信部49は、追加されたノード番号4のノードに割り当てられたノード鍵を、管理木情報に割り当て済みの第2の機器30−Bに送信する。図20の例においては、割当送信部49は、次式に示すように、新たなノード鍵K4を、既存のノード番号3のノードに割り当てられたノード鍵K3により暗号化して、第2の機器30−Bに送信する。これにより、第2の機器30−Bは、デバイス3つのノード鍵K1,K3,K4の組(デバイス鍵)を保有することができる。
C14=E(K3,K4)
このように、管理木情報のルートノードとリーフノードとの間の層にさらに新たなノードを追加することにより、割当送信部49は、追加された新たなノードに割り当てられたノード鍵を、既存のノードに割り当てられていたノード鍵により暗号化して送信することができる。これにより、割当送信部49によれば、送信する情報量を少なくすることができる。
(管理木情報の再構成)
つぎに、管理木情報の再構成方法および再構成後のノード鍵の送信方法について説明する。再構成部53は、管理木情報における機器30のリーフノードへの割り当て位置を、類似度が高い機器30同士が近いノードの範囲に集中して配置されるように変更する。
再構成部53は、例えば、定期的または予め定められたイベントが発生した場合に、再構成を実行する。例えば、再構成部53は、拡張部52により管理木情報が拡張された後に、管理木情報を再構成してもよい。また、例えば、再構成部53は、管理木情報における新たな機器30と最も類似度が高い属性情報の機器30のリーフノードから、n親等以内に空のリーフノードが存在しない場合に、管理木情報を再構成してもよい。また、例えば、再構成部53は、管理木情報における新たな機器30と最も類似度が高い属性情報の機器30のリーフノードから、n親等以内に空のリーフノードが存在した場合であっても、管理木情報を再構成してもよい。
以下、属性情報に含まれる時刻の経過に応じて変化する要素情報を類似度の指標として用いて、管理木情報を再構成する例について説明する。
図21は、再構成前の管理木情報を示す図である。図21の例において、再構成前の管理木情報は、2階層の完全2分木の構造であり、ノード番号4のリーフノードに第1の機器30−Aが割り当てられ、ノード番号5のリーフノードに第2の機器30−Bが割り当てられ、ノード番号6のリーフノードに第3の機器30−Cが割り当てられているとする。図21の例において、第1の機器30−Aは、3つのノード鍵K1,K2,K4の組(デバイス鍵)を保有する。第2の機器30−Bは、3つのノード鍵K1,K2,K5の組(デバイス鍵)を保有する。第3の機器30−Cは、3つのノード鍵K1,K3,K6の組(デバイス鍵)を保有する。
属性取得部46は、それぞれの機器30から属性情報を取得する。第1の機器30−Aの平均消費電力が1000[W]、第2の機器30−Bの平均消費電力が100[W]、第3の機器30−Cの平均消費電力が1200[W]であったとする。この場合、第1の機器30−Aおよび第3の機器30−Cは、平均消費電力の差が小さく類似度が高いので、例えば、電力消費の抑制を指示する制御コマンドを同時に受け取る可能性が高い。
第1の機器30−Aおよび第3の機器30−Cに制御コマンドを実行させる場合、まず、管理装置20は、次式で示される暗号文を生成して送信する。これにより、第1の機器30−Aおよび第3の機器30−Cは、グループ鍵GKを保有することができる。なお、第2の機器30−Bは、ノード鍵K4およびK6を保有していないので、グループ鍵GKを取得することができない。
C15=E(K4,GK)
C16=E(K6,GK)
続いて、管理装置20は、次式に示すように、制御コマンドCMDをグループ鍵GKにより暗号化して、第1の機器30−Aおよび第3の機器30−Cにマルチキャスト送信する。
C17=E(GK,CMD)
第1の機器30−Aおよび第3の機器30−Cは、受信した暗号文をグループ鍵GKにより復号し、制御コマンドCMDを実行する。このように、管理木情報が図21に示されるように構成されている場合、管理装置20は、第1の機器30−Aおよび第3の機器30−Cに制御コマンドを送信するためには、3つの暗号文を生成しなければならない。
図22は、再構成後の管理木情報を示す図である。再構成部53は、例えば、属性情報のうちの平均消費電力が一定値以上の機器30同士が近傍に配置されるように、管理木情報を再構成する。例えば、再構成部53は、平均消費電力が1000[W]以上の機器30が、2親等以内に配置されるように管理木情報を再構成する。従って、再構成部53は、図22に示すように、例えば、ノード番号4のリーフノードに第1の機器30−Aを割り当て、ノード番号5のリーフノードに第3の機器30−Cを割り当て、ノード番号6のリーフノードに第2の機器30−Bを割り当てる。
さらに、再構成部53は、機器30の割り当ての変更に伴い、それぞれのノードに割り当てられるノード鍵を変更する。この場合、再構成部53は、割り当て変更がされた機器30が保有していたノード鍵を変更し、割り当て変更がされた機器30が保有していないノード鍵は変更しなくてよい。また、再構成部53は、割り当て変更がされた全ての機器30が共通に保有していたノード鍵も変更しなくてもよい。図22の例においては、再構成部53は、ノード番号2のノード、ノード番号3のノード、ノード番号5のノードおよびノード番号6のノードのノード鍵を変更する。
そして、割当送信部49は、変更されたノード鍵を機器30へと送信する。図22の例においては、割当送信部49は、下記の式に示すように、ノード鍵K2´をノード鍵K4で暗号化して第1の機器30−Aに送信する。これにより、第1の機器30−Aは、3つのノード鍵K1,K2´,K4の組(デバイス鍵)を保有することができる。
C18=E(K4,K2´)
また、割当送信部49は、下記の式に示すように、ノード鍵K2´、K5´をノード鍵K6で暗号化して第3の機器30−Cに送信する。これにより、第3の機器30−Cは、3つのノード鍵K1,K2´,K5´の組(デバイス鍵)を保有することができる。
C19=E(K6,K2´)
C20=E(K6,K5´)
また、割当送信部49は、下記の式に示すように、ノード鍵K3´、K6´をノード鍵K5で暗号化して第2の機器30−Bに送信する。これにより、第2の機器30−Bは、3つのノード鍵K1,K3´,K6´の組(デバイス鍵)を保有することができる。
C21=E(K5,K3´)
C22=E(K5,K6´)
続いて、第1の機器30−Aおよび第3の機器30−Cに制御コマンドを実行させる場合、まず、管理装置20は、次式で示される暗号文を生成して、第1の機器30−Aおよび第3の機器30−Cにマルチキャスト送信する。これにより、第1の機器30−Aおよび第3の機器30−Cは、グループ鍵GKを保有することができる。
C21=E(K2´,GK)
続いて、管理装置20は、次式に示すように、制御コマンドCMDをグループ鍵GKにより暗号化して、第1の機器30−Aおよび第3の機器30−Cにマルチキャスト送信する。
C22=E(GK,CMD)
つまり、管理木情報を図22のように再構成した場合、管理装置20は、第1の機器30−Aおよび第3の機器30−Cに制御コマンドを実行させるために、2つの暗号文を送信すればよい。従って、管理装置20は、第1の機器30−Aおよび第3の機器30−Cに制御コマンドを実行させるために送信しなければならない暗号文の数を1つ削減することができる。
なお、管理装置20は、第1の機器30−Aと第3の機器30−Cとの間でグループ鍵GKを共有せずに、ノード鍵K2´により制御コマンドCMDを暗号化してマルチキャスト送信してもよい。この場合、管理装置20は、1つの暗号文で第1の機器30−Aおよび第3の機器30−Cに制御コマンドを送信することができる。
以上のように、制御コマンドがマルチキャスト送信される可能性が高い機器30を少数の部分木に収まるように管理木情報を再構成することにより、管理装置20は、送信すべき暗号文の数を削減することができ、送信時の情報量を削減できる。
なお、再構成部53は、管理木情報の再構成を行う際の類似度の指標として平均消費電力を用いたが、これに限らず、時間変化の無い属性情報の要素情報を類似度の指標としてもよい。また、再構成部53は、複数の種類の要素情報を合成した値を類似度の指標としてもよい。さらに、再構成部53は、要素情報に応じて重み付けを変えて合成した類似度を指標としてもよい。
上述したように本実施形態に係る管理装置20は、制御コマンドがマルチキャスト送信される可能性が高い機器30が少数のノードが構成される部分木に収まるように管理木情報を再構成する。これにより、管理装置20によれば、暗号化または認証に用いるグループ鍵またはノード鍵を共有するための通信量を削減することができる。また、管理装置20は、機器30の増加に応じて管理木情報を拡張することができる。従って、管理装置20は、機器30の数が少ない場合には管理木情報を小さくして、メモリ量等を削減することができる。
図23は、実施形態に係る管理装置20のハードウェア構成の一例を示す図である。本実施形態に係る管理装置20は、例えば図23に示すようなハードウェア構成の情報処理装置により実現される。なお、機器30も、管理装置20と同様のハードウェア構成の情報処理装置により実現される。
この情報処理装置は、CPU(Central Processing Unit)201と、RAM(Random Access Memory)202と、ROM(Read Only Memory)203と、操作入力装置204と、表示装置205と、記憶装置206と、通信装置207とを備える。そして、これらの各部は、バスにより接続される。
CPU201は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。CPU201は、RAM202の所定領域を作業領域として、ROM203および記憶装置206等に記憶されたプログラムとの協働により各種処理を実行する。
RAM202は、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリである。RAM202は、CPU201の作業領域として機能する。ROM203は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
操作入力装置204は、マウスおよびキーボード等の入力デバイスである。操作入力装置204は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をCPU201に出力する。
表示装置205は、LCD(Liquid Crystal Display)等の表示デバイスである。表示装置205は、CPU201からの表示信号に基づいて、各種情報を表示する。
記憶装置206は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置206は、CPU201からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信装置207は、CPU201からの制御に応じて外部機器とネットワークを介して通信する。
本実施形態の管理装置20で実行されるプログラムは、機器発見モジュール、機器認証モジュール、属性取得モジュール、類似度算出モジュール、割当モジュール、割当送信モジュール、グループ鍵送信モジュール、生成モジュール、拡張モジュール、再構成モジュール、暗号化モジュール、および、第1通信モジュールを含むモジュール構成となっている。このプログラムは、CPU201(プロセッサ)によりRAM202上に展開して実行されることにより、情報処理装置を、機器発見部44、機器認証部45、属性取得部46、類似度算出部47、割当部48、割当送信部49、グループ鍵送信部50、生成部51、拡張部52、再構成部53、暗号化部54および第1通信部55として機能させる。
なお、管理装置20は、このような構成に限らず、機器発見部44、機器認証部45、属性取得部46、類似度算出部47、割当部48、割当送信部49、グループ鍵送信部50、生成部51、拡張部52、再構成部53、暗号化部54および第1通信部55の少なくとも一部をハードウェア回路(例えば半導体集積回路)により実現した構成であってもよい。
本実施形態の機器30で実行されるプログラムは、属性測定モジュール、管理装置発見モジュール、要求モジュール、管理装置認証モジュール、属性送信モジュール、割当受信モジュール、グループ鍵受信モジュール、復号モジュール、および、第2通信モジュールを含むモジュール構成となっている。このプログラムは、CPU201(プロセッサ)によりRAM202上に展開して実行されることにより、情報処理装置を、属性測定部63、管理装置発見部64、要求部65、管理装置認証部66、属性送信部67、割当受信部68、グループ鍵受信部69、復号部70、および、第2通信部71として機能させる。
なお、機器30は、このような構成に限らず、属性測定部63、管理装置発見部64、要求部65、管理装置認証部66、属性送信部67、割当受信部68、グループ鍵受信部69、復号部70、および、第2通信部71の少なくとも一部をハードウェア回路(例えば半導体集積回路)により実現した構成であってもよい。
また、本実施形態の管理装置20で実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、CD−ROM、フレキシブルディスク、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態の管理装置20で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の管理装置20で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、管理装置20で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。