(57)【要約】【課題】イベント発生時においても、イベントへの対応とデータの収集の双方を両立することが可能なアクターノード、センサノード、担当区画変更方法、パラメータ変更方法、プログラムおよび情報処理システムを提供すること。【解決手段】本発明に係るアクターノードは、センサノードからのデータの取得を担当する区画を一時的に変更し、担当する区画内の少なくとも一部の部分領域に設置されたセンサノードからのデータ取得を他のアクターノードに一時的に委託する動的変更部を備え、動的変更部は、他のアクターノードから、当該アクターノードに固有の識別情報を取得し、取得した識別情報を、部分領域内に設置されたセンサノードに通知し、取得した識別情報および部分領域内に設置されたセンサノードとの通信に利用される鍵を利用して生成した一時鍵とハッシュチェインの一部とを、他のアクターノードに通知する。【選択図】図１
2011130012.tif 000002
【特許請求の範囲】
【請求項１】
複数の区画に区分された所定の領域内に設置されているセンサノードと相互に通信が可能であり、センサノードが生成したデータを、担当する前記区画に設置されている前記センサノードから取得するアクターノードであって、
他の前記アクターノードと通信を行う際に利用する鍵と、担当区画に設置されている前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、前記担当区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得部と、
前記センサノードからのデータの取得を担当する区画を一時的に変更し、前記担当する区画内の少なくとも一部の部分領域に設置された前記センサノードからのデータ取得を前記他のアクターノードに一時的に委託する動的変更部と、
を備え、
前記動的変更部は、
前記他のアクターノードから、当該他のアクターノードに固有の識別情報を取得し、
前記他のアクターノードに固有の識別情報を、データの収集を行うアクターノードが一時的に変更される旨を表す識別子とともに前記部分領域内に設置された前記センサノードに通知し、
前記他のアクターノードに固有の識別情報および前記部分領域内に設置された前記センサノードとの通信に利用される鍵を利用して生成した一時鍵と、前記ハッシュチェインの一部とを、前記他のアクターノードに通知する、アクターノード。
【請求項２】
前記アクターノードは、担当区画に含まれる複数の区画それぞれについて、当該区画に相隣接する区画を特定するための区画特定情報を保持しており、
前記動的変更部は、前記他のアクターノードへの前記部分領域の委託に際して、
前記区画特定情報に変更が生じる区画を特定し、
変更後の前記区画特定情報と、委託により変更が生じた所定の鍵に関する情報とを、変更前および変更後で共通する前記担当区画に設置された前記センサノードに対して通知する、請求項１に記載のアクターノード。
【請求項３】
前記動的変更部は、
前記他のアクターノードへの前記部分領域の委託が解消されなかった場合、前記部分領域内に設置されたセンサノードに対して、他のアクターノードへの委託を解消する旨を表す識別子と、前記ハッシュチェインの一部とを通知する、請求項２に記載のアクターノード。
【請求項４】
前記鍵生成情報には、所定の次数を有する２変数多項式に関する情報が含まれており、
前記アクターノードは、前記担当区画内に設置された前記センサノードとの通信に利用する当該センサノードに固有の鍵を、前記２変数多項式に、前記アクターノードに固有な識別情報と、前記センサノードに固有な識別情報とを代入することで算出する、請求項１に記載のアクターノード。
【請求項５】
前記アクターノードは、一の前記担当区画に配置されている通信目標のセンサノードと直接通信できない場合、ブルームフィルタを用いて前記通信目標のセンサノードを特定する情報を生成する、請求項１に記載のアクターノード。
【請求項６】
前記アクターノードは、障害が発生したセンサノードまたは他のアクターノードをシステムから排除するノード排除部を更に備え、
前記ノード排除部は、前記センサノードに障害が発生した場合、
前記障害が発生したセンサノードとの通信に利用する当該障害が発生したセンサノードに固有の鍵に変えて、無作為に乱数を選択し、
前記無作為に選択した乱数を用いて、前記障害が発生したセンサノードが属する区画に設置された他のセンサノードが、当該区画内におけるセンサノード間通信に利用する鍵を更新するための鍵更新情報を生成し、
前記鍵更新情報を、前記障害が発生したセンサノードを含む区画に通知する、請求項１に記載のアクターノード。
【請求項７】
前記アクターノードは、
前記担当区画内に設置された前記センサノードとの間で、通信に先立ち相互認証を行う初期認証部と、
障害が発生したセンサノードまたは他のアクターノードをシステムから排除するノード排除部と、
を更に備え、
前記他のアクターノードに障害が発生し、当該他のアクターノードが担当していた前記区画を新たに担当することとなった場合、
前記ノード排除部は、新たに担当することとなった前記区画に属する前記センサノードに対して、前記アクターノードに固有の識別情報と、障害が発生したアクターノードを排除する旨を表す識別子とを通知し、
前記初期認証部は、前記新たに担当することとなった区画に属するセンサノードとの間で相互認証を行う、請求項１に記載のアクターノード。
【請求項８】
複数の区画に区分された所定の領域内に設置されており、生成したデータを、設置されている区画を担当するアクターノードに対して出力するセンサノードであって、
前記アクターノードまたは他の前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、設置されている前記区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得部と、
生成したデータの送信先である前記アクターノードからの指示に応じて、他の前記センサノードとの通信に利用するパラメータを一時的に変更する動的変更部と、
を備え、
前記動的変更部は、
前記アクターノードからの指示により、前記データの送信先が他の前記アクターノードへと一時的に変更になる場合、前記アクターノードから通知された前記他のアクターノードに固有の識別情報を利用して、前記他のアクターノードとの通信に利用する鍵、および、前記他のセンサノードとの通信に利用する鍵を更新する、センサノード。
【請求項９】
前記鍵生成情報には、所定の次数を有する２変数多項式に関する情報が含まれており、
前記センサノードは、前記２変数多項式に、前記アクターノードに固有な識別情報と、前記センサノードに固有な識別情報とを代入することで、前記アクターノードとの通信に利用する前記センサノードに固有な鍵を算出する、請求項８に記載のセンサノード。
【請求項１０】
前記センサノードは、当該センサノードが設置されている前記区画に隣接する区画を特定するための区画特定情報と、前記隣接する区画との通信に利用する鍵とを含む区画関連情報を、生成したデータの送信先である前記アクターノードから予め通知されており、
前記動的変更部は、前記データの送信先が前記他のアクターノードへと一時的に変更になる場合、前記アクターノードから新たに通知された前記区画関連情報を用いて、前記他のアクターノードとの通信を行う、請求項８に記載のセンサノード。
【請求項１１】
前記動的変更部は、
前記データの送信先が一時的に変更になる場合、変更前の前記区画関連情報を所定の箇所に保存しておき、
前記他のアクターノードから、データの送信先を前記アクターノードへ変更する指示があった場合、前記区画関連情報を、保存しておいた前記変更前の区画関連情報に置き換える、請求項１０に記載のセンサノード。
【請求項１２】
前記センサノードは、データの送信先である前記アクターノードとの間で、通信に先立ち相互認証を行う初期認証部を更に備え、
前記初期認証部は、
前記センサノードに固有の鍵を一方向性関数ツリーのリーフノードとみなし、前記一方向性関数ツリーの木構造と前記鍵情報に含まれるハッシュ関数とを利用して、同一の前記区画に属する前記他のセンサノードとの通信に利用する鍵を算出する、請求項９に記載のセンサノード。
【請求項１３】
前記センサノードは、障害が発生したアクターノードまたは他のセンサノードをシステムから排除するノード排除部を更に備え、
前記アクターノードに障害が発生した場合、
前記ノード排除部は、障害が発生した前記アクターノードを代行する代行アクターノードから送信された、当該代行アクターノードに固有の識別情報を取得し、
前記初期認証部は、前記ノード排除部が取得した前記代行アクターノードに固有の識別情報を利用して、前記代行アクターノードと相互認証を行う、請求項１２に記載のセンサノード。
【請求項１４】
前記ノード排除部は、前記他のセンサノードに障害が発生した場合、データ送信先の前記アクターノードから通知された、前記他のセンサノードとの通信に利用する鍵を更新するための鍵更新情報と、前記一方向性関数ツリーとを利用して、他のセンサノードとの通信に利用する鍵を更新する、請求項１３に記載のセンサノード。
【請求項１５】
複数の区画に区分された所定の領域内に設置されているセンサノードと相互に通信が可能であり、センサノードが生成したデータを、担当する前記区画に設置されている前記センサノードから取得するアクターノードが実施する担当区画変更方法であって、
他の前記アクターノードと通信を行う際に利用する鍵と、担当区画に設置されている前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、前記担当区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得するステップと、
前記センサノードからのデータの取得を担当する区画を一時的に変更し、前記担当する区画内の少なくとも一部の部分領域に設置された前記センサノードからのデータ取得を前記他のアクターノードに一時的に委託するステップと、
を含み、
前記データ取得を一時的に委託するステップでは、
前記他のアクターノードから、当該他のアクターノードに固有の識別情報を取得し、
前記他のアクターノードに固有の識別情報を、データの収集を行うアクターノードが一時的に変更される旨を表す識別子とともに前記部分領域内に設置された前記センサノードに通知し、
前記他のアクターノードに固有の識別情報および前記部分領域内に設置された前記センサノードとの通信に利用される鍵を利用して生成した一時鍵と、前記ハッシュチェインの一部とを、前記他のアクターノードに通知する、担当区画変更方法。
【請求項１６】
複数の区画に区分された所定の領域内に設置されており、生成したデータを、設置されている区画を担当するアクターノードに対して出力するセンサノードが実施するパラメータ変更方法であって、
前記アクターノードまたは他の前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、設置されている前記区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得するステップと、
生成したデータの送信先である前記アクターノードからの指示に応じて、他の前記センサノードとの通信に利用するパラメータを一時的に変更するステップと、
を含み、
前記パラメータを一時的に変更するステップは、
前記アクターノードからの指示により、前記データの送信先が他の前記アクターノードへと一時的に変更になる場合、前記アクターノードから通知された前記他のアクターノードに固有の識別情報を利用して、前記他のアクターノードとの通信に利用する鍵、および、前記他のセンサノードとの通信に利用する鍵を更新する、パラメータ変更方法。
【請求項１７】
コンピュータを、複数の区画に区分された所定の領域内に設置されているセンサノードと相互に通信が可能であり、センサノードが生成したデータを、担当する前記区画に設置されている前記センサノードから取得するアクターノードとして機能させるためのプログラムであって、
コンピュータに、
他の前記アクターノードと通信を行う際に利用する鍵と、担当区画に設置されている前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、前記担当区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得機能と；
前記他のアクターノードから、当該他のアクターノードに固有の識別情報を取得する機能、前記他のアクターノードに固有の識別情報を、データの収集を行うアクターノードが一時的に変更される旨を表す識別子とともに前記部分領域内に設置された前記センサノードに通知する機能、ならびに、前記他のアクターノードに固有の識別情報および前記部分領域内に設置された前記センサノードとの通信に利用される鍵を利用して生成した一時鍵と、前記ハッシュチェインの一部とを、前記他のアクターノードに通知する機能を含む、前記センサノードからのデータの取得を担当する区画を一時的に変更し、前記担当する区画内の少なくとも一部の部分領域に設置された前記センサノードからのデータ取得を前記他のアクターノードに一時的に委託する動的変更機能と；
を実現させるためのプログラム。
【請求項１８】
コンピュータを、複数の区画に区分された所定の領域内に設置されており、生成したデータを、設置されている区画を担当するアクターノードに対して出力するセンサノードとして機能させるためのプログラムであって、
コンピュータに、
前記アクターノードまたは他の前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、設置されている前記区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得機能と；
前記アクターノードからの指示により、前記データの送信先が他の前記アクターノードへと一時的に変更になる場合、前記アクターノードから通知された前記他のアクターノードに固有の識別情報を利用して、前記他のアクターノードとの通信に利用する鍵、および、前記他のセンサノードとの通信に利用する鍵を更新する機能を含む、生成したデータの送信先である前記アクターノードからの指示に応じて、他の前記センサノードとの通信に利用するパラメータを一時的に変更する動的変更機能と、
を実現させるためのプログラム。
【請求項１９】
複数の区画に区分された所定の領域内に設置されており、設置されている前記区画内において所定のデータを生成するセンサノードと、
担当する前記区画に設置されている前記センサノードから、当該センサノードが生成した前記データを取得するアクターノードと、
を含む情報処理システムであって、
前記アクターノードは、
他の前記アクターノードと通信を行う際に利用する鍵と、担当区画に設置されている前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、前記担当区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得部と、
前記センサノードからのデータの取得を担当する区画を一時的に変更し、前記担当する区画内の少なくとも一部の部分領域に設置された前記センサノードからのデータ取得を前記他のアクターノードに一時的に委託する動的変更部と、
を有し、
前記アクターノードの動的変更部は、
前記他のアクターノードから、当該他のアクターノードに固有の識別情報を取得し、
前記他のアクターノードに固有の識別情報を、データの収集を行うアクターノードが一時的に変更される旨を表す識別子とともに前記部分領域内に設置された前記センサノードに通知し、
前記他のアクターノードに固有の識別情報および前記部分領域内に設置された前記センサノードとの通信に利用される鍵を利用して生成した一時鍵と、前記ハッシュチェインの一部とを、前記他のアクターノードに通知し、
前記センサノードは、
前記アクターノードまたは他の前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、設置されている前記区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得部と、
生成したデータの送信先である前記アクターノードからの指示に応じて、他の前記センサノードとの通信に利用するパラメータを一時的に変更する動的変更部と、
を有し、
前記センサノードの動的変更部は、
前記アクターノードからの指示により、前記データの送信先が他の前記アクターノードへと一時的に変更になる場合、前記アクターノードから通知された前記他のアクターノードに固有の識別情報を利用して、前記他のアクターノードとの通信に利用する鍵、および、前記他のセンサノードとの通信に利用する鍵を更新する、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクターノード、センサノード、担当区画変更方法、パラメータ変更方法、プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
ワイヤレスセンサネットワーク（Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋ：ＷＳＮ）に関する研究が古くから行われている。このワイヤレスセンサネットワークは、所定の領域内に設けられた多数のセンサノード（ｓｅｎｓｏｒ  ｎｏｄｅ）からデータを取得して、取得したデータに基づき所定の処理を行うというシステムである。近年、多数のセンサノードからのデータ取得を容易に行うために、ネットワークフィールド上を移動することが可能なアクターノード（Ａｃｔｏｒ  ｎｏｄｅ）を利用する方法が利用されるようになってきた。アクターノードを利用したデータ収集を行うシステムは、ワイヤレスセンサーアンドアクターネットワーク（Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  ａｎｄ  Ａｃｔｏｒ  Ｎｅｔｗｏｒｋ：ＷＳＡＮ）と呼ばれている。
【０００３】
このＷＳＡＮは、例えば火災の防止や侵入者の有無の監視といった、実現を希望する目的を果たすために用いられるシステムであり、火災の発生や侵入者の存在といった、本来果たすべき目的に障害をもたらす可能性があるイベントが発生すると、このイベントを取り除くようにシステムが稼働する。
【０００４】
ＷＳＡＮでは、アクターノードおよびセンサノード間、および、アクターノード間での通信により各種の情報や命令が伝達される。そのため、各ノード間の通信セキュリティの向上を図ることが重要である。そのため、ＷＳＡＮにおける通信セキュリティの向上を目的とした研究がなされている（例えば、非特許文献１および２を参照。）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｘ．Ｃａｏ，Ｍ．Ｈｕａｎｇ，Ｙ．Ｃｈｅｎ  ａｎｄ  Ｇ．Ｃｈｅｎ，“Ｈｙｂｒｉｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｎｄ  Ｋｅｙ  Ｍａｎａｇｅｍｅｎｔ  Ｓｃｈｅｍｅ  ｆｏｒ  ＷＳＡＮｓ”，ＩＳＰＡ  Ｗｏｒｋｓｈｏｐ  ２００５，ＬＮＣＳ  ３７５９，ｐｐ．４５４−４６５，２００５．
【非特許文献２】Ｂ．Ｙｕ，Ｊ．Ｍａ，Ｚ．Ｗａｎｇ，Ｄ．Ｍａｏ  ａｎｄ  Ｃ．Ｇａｏ，“Ｋｅｙ  Ｅｓｔａｂｌｉｓｈｍｅｎｔ  Ｂｅｔｗｅｅｎ  Ｈｅｔｅｒｏｇｅｎｏｕｓ  Ｎｏｄｅｓ  ｉｎ  Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  ａｎｄ  Ａｃｔｏｒ  Ｎｅｔｗｏｒｋｓ”，ＩＷＳＮ  ２００６，ＬＮＣＳ  ３８４２，ｐｐ．１９６−２０５，２００６．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記非特許文献１および２に記載の方法は、ノード間の認証処理および通信に用いる鍵の共有に関する方法であって、イベント発生時には、イベントへの対応とデータの収集の双方を両立できないという問題があった。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、イベント発生時においても、イベントへの対応とデータの収集の双方を両立することが可能な、アクターノード、センサノード、担当区画変更方法、パラメータ変更方法、プログラムおよび情報処理システムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、複数の区画に区分された所定の領域内に設置されているセンサノードと相互に通信が可能であり、センサノードが生成したデータを、担当する前記区画に設置されている前記センサノードから取得するアクターノードが提供される。このアクターノードは、他の前記アクターノードと通信を行う際に利用する鍵と、担当区画に設置されている前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、前記担当区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得部と、前記センサノードからのデータの取得を担当する区画を一時的に変更し、前記担当する区画内の少なくとも一部の部分領域に設置された前記センサノードからのデータ取得を前記他のアクターノードに一時的に委託する動的変更部と、を備え、前記動的変更部は、前記他のアクターノードから、当該他のアクターノードに固有の識別情報を取得し、前記他のアクターノードに固有の識別情報を、データの収集を行うアクターノードが一時的に変更される旨を表す識別子とともに前記部分領域内に設置された前記センサノードに通知し、前記他のアクターノードに固有の識別情報および前記部分領域内に設置された前記センサノードとの通信に利用される鍵を利用して生成した一時鍵と、前記ハッシュチェインの一部とを、前記他のアクターノードに通知する。
【０００９】
前記アクターノードは、担当区画に含まれる複数の区画それぞれについて、当該区画に相隣接する区画を特定するための区画特定情報を保持しており、前記動的変更部は、前記他のアクターノードへの前記部分領域の委託に際して、前記区画特定情報に変更が生じる区画を特定し、変更後の前記区画特定情報と、委託により変更が生じた所定の鍵に関する情報とを、変更前および変更後で共通する前記担当区画に設置された前記センサノードに対して通知してもよい。
【００１０】
前記動的変更部は、前記他のアクターノードへの前記部分領域の委託が解消されなかった場合、前記部分領域内に設置されたセンサノードに対して、他のアクターノードへの委託を解消する旨を表す識別子と、前記ハッシュチェインの一部とを通知してもよい。
【００１１】
前記鍵生成情報には、所定の次数を有する２変数多項式に関する情報が含まれており、前記アクターノードは、前記担当区画内に設置された前記センサノードとの通信に利用する当該センサノードに固有の鍵を、前記２変数多項式に、前記アクターノードに固有な識別情報と、前記センサノードに固有な識別情報とを代入することで算出してもよい。
【００１２】
前記アクターノードは、一の前記担当区画に配置されている通信目標のセンサノードと直接通信できない場合、ブルームフィルタを用いて前記通信目標のセンサノードを特定する情報を生成してもよい。
【００１３】
前記アクターノードは、障害が発生したセンサノードまたは他のアクターノードをシステムから排除するノード排除部を更に備え、前記ノード排除部は、前記センサノードに障害が発生した場合、前記障害が発生したセンサノードとの通信に利用する当該障害が発生したセンサノードに固有の鍵に変えて、無作為に乱数を選択し、前記無作為に選択した乱数を用いて、前記障害が発生したセンサノードが属する区画に設置された他のセンサノードが、当該区画内におけるセンサノード間通信に利用する鍵を更新するための鍵更新情報を生成し、前記鍵更新情報を、前記障害が発生したセンサノードを含む区画に通知してもよい。
【００１４】
前記アクターノードは、前記担当区画内に設置された前記センサノードとの間で、通信に先立ち相互認証を行う初期認証部と、障害が発生したセンサノードまたは他のアクターノードをシステムから排除するノード排除部と、を更に備え、前記他のアクターノードに障害が発生し、当該他のアクターノードが担当していた前記区画を新たに担当することとなった場合、前記ノード排除部は、新たに担当することとなった前記区画に属する前記センサノードに対して、前記アクターノードに固有の識別情報と、障害が発生したアクターノードを排除する旨を表す識別子とを通知し、前記初期認証部は、前記新たに担当することとなった区画に属するセンサノードとの間で相互認証を行ってもよい。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、複数の区画に区分された所定の領域内に設置されており、生成したデータを、設置されている区画を担当するアクターノードに対して出力するセンサノードが提供される。このセンサノードは、前記アクターノードまたは他の前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、設置されている前記区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得部と、生成したデータの送信先である前記アクターノードからの指示に応じて、他の前記センサノードとの通信に利用するパラメータを一時的に変更する動的変更部と、を備え、前記動的変更部は、前記アクターノードからの指示により、前記データの送信先が他の前記アクターノードへと一時的に変更になる場合、前記アクターノードから通知された前記他のアクターノードに固有の識別情報を利用して、前記他のアクターノードとの通信に利用する鍵、および、前記他のセンサノードとの通信に利用する鍵を更新する。
【００１６】
前記鍵生成情報には、所定の次数を有する２変数多項式に関する情報が含まれており、
前記センサノードは、前記２変数多項式に、前記アクターノードに固有な識別情報と、前記センサノードに固有な識別情報とを代入することで、前記アクターノードとの通信に利用する前記センサノードに固有な鍵を算出してもよい。
【００１７】
前記センサノードは、当該センサノードが設置されている前記区画に隣接する区画を特定するための区画特定情報と、前記隣接する区画との通信に利用する鍵とを含む区画関連情報を、生成したデータの送信先である前記アクターノードから予め通知されており、前記動的変更部は、前記データの送信先が前記他のアクターノードへと一時的に変更になる場合、前記アクターノードから新たに通知された前記区画関連情報を用いて、前記他のアクターノードとの通信を行ってもよい。
【００１８】
前記動的変更部は、前記データの送信先が一時的に変更になる場合、変更前の前記区画関連情報を所定の箇所に保存しておき、前記他のアクターノードから、データの送信先を前記アクターノードへ変更する指示があった場合、前記区画関連情報を、保存しておいた前記変更前の区画関連情報に置き換えてもよい。
【００１９】
前記センサノードは、データの送信先である前記アクターノードとの間で、通信に先立ち相互認証を行う初期認証部を更に備え、前記初期認証部は、前記センサノードに固有の鍵を一方向性関数ツリーのリーフノードとみなし、前記一方向性関数ツリーの木構造と前記鍵情報に含まれるハッシュ関数とを利用して、同一の前記区画に属する前記他のセンサノードとの通信に利用する鍵を算出してもよい。
【００２０】
前記センサノードは、障害が発生したアクターノードまたは他のセンサノードをシステムから排除するノード排除部を更に備え、前記アクターノードに障害が発生した場合、前記ノード排除部は、障害が発生した前記アクターノードを代行する代行アクターノードから送信された、当該代行アクターノードに固有の識別情報を取得し、前記初期認証部は、前記ノード排除部が取得した前記代行アクターノードに固有の識別情報を利用して、前記代行アクターノードと相互認証を行ってもよい。
【００２１】
前記ノード排除部は、前記他のセンサノードに障害が発生した場合、データ送信先の前記アクターノードから通知された、前記他のセンサノードとの通信に利用する鍵を更新するための鍵更新情報と、前記一方向性関数ツリーとを利用して、他のセンサノードとの通信に利用する鍵を更新してもよい。
【００２２】
また、上記課題を解決するために、本発明の更に別の観点によれば、複数の区画に区分された所定の領域内に設置されているセンサノードと相互に通信が可能であり、センサノードが生成したデータを、担当する前記区画に設置されている前記センサノードから取得するアクターノードが実施する担当区画変更方法であって、他の前記アクターノードと通信を行う際に利用する鍵と、担当区画に設置されている前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、前記担当区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得するステップと、前記センサノードからのデータの取得を担当する区画を一時的に変更し、前記担当する区画内の少なくとも一部の部分領域に設置された前記センサノードからのデータ取得を前記他のアクターノードに一時的に委託するステップと、を含み、前記データ取得を一時的に委託するステップでは、前記他のアクターノードから、当該他のアクターノードに固有の識別情報を取得し、前記他のアクターノードに固有の識別情報を、データの収集を行うアクターノードが一時的に変更される旨を表す識別子とともに前記部分領域内に設置された前記センサノードに通知し、前記他のアクターノードに固有の識別情報および前記部分領域内に設置された前記センサノードとの通信に利用される鍵を利用して生成した一時鍵と、前記ハッシュチェインの一部とを、前記他のアクターノードに通知する、担当区画変更方法が提供される。
【００２３】
また、上記課題を解決するために、本発明の更に別の観点によれば、複数の区画に区分された所定の領域内に設置されており、生成したデータを、設置されている区画を担当するアクターノードに対して出力するセンサノードが実施するパラメータ変更方法であって、前記アクターノードまたは他の前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、設置されている前記区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得するステップと、生成したデータの送信先である前記アクターノードからの指示に応じて、他の前記センサノードとの通信に利用するパラメータを一時的に変更するステップと、を含み、前記パラメータを一時的に変更するステップは、前記アクターノードからの指示により、前記データの送信先が他の前記アクターノードへと一時的に変更になる場合、前記アクターノードから通知された前記他のアクターノードに固有の識別情報を利用して、前記他のアクターノードとの通信に利用する鍵、および、前記他のセンサノードとの通信に利用する鍵を更新する、パラメータ変更方法が提供される。
【００２４】
また、上記課題を解決するために、本発明の更に別の観点によれば、コンピュータを、複数の区画に区分された所定の領域内に設置されているセンサノードと相互に通信が可能であり、センサノードが生成したデータを、担当する前記区画に設置されている前記センサノードから取得するアクターノードとして機能させるためのプログラムであって、コンピュータに、他の前記アクターノードと通信を行う際に利用する鍵と、担当区画に設置されている前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、前記担当区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得機能と；前記他のアクターノードから、当該他のアクターノードに固有の識別情報を取得する機能、前記他のアクターノードに固有の識別情報を、データの収集を行うアクターノードが一時的に変更される旨を表す識別子とともに前記部分領域内に設置された前記センサノードに通知する機能、ならびに、前記他のアクターノードに固有の識別情報および前記部分領域内に設置された前記センサノードとの通信に利用される鍵を利用して生成した一時鍵と、前記ハッシュチェインの一部とを、前記他のアクターノードに通知する機能を含む、前記センサノードからのデータの取得を担当する区画を一時的に変更し、前記担当する区画内の少なくとも一部の部分領域に設置された前記センサノードからのデータ取得を前記他のアクターノードに一時的に委託する動的変更機能と；を実現させるためのプログラムが提供される。
【００２５】
また、上記課題を解決するために、本発明の更に別の観点によれば、コンピュータを、複数の区画に区分された所定の領域内に設置されており、生成したデータを、設置されている区画を担当するアクターノードに対して出力するセンサノードとして機能させるためのプログラムであって、コンピュータに、前記アクターノードまたは他の前記センサノードとの通信に利用する鍵を生成するための鍵生成情報と、設置されている前記区画に固有な所定の長さのハッシュチェインと、を含む鍵情報を所定の装置から取得する鍵取得機能と；前記アクターノードからの指示により、前記データの送信先が他の前記アクターノードへと一時的に変更になる場合、前記アクターノードから通知された前記他のアクターノードに固有の識別情報を利用して、前記他のアクターノードとの通信に利用する鍵、および、前記他のセンサノードとの通信に利用する鍵を更新する機能を含む、生成したデータの送信先である前記アクターノードからの指示に応じて、他の前記センサノードとの通信に利用するパラメータを一時的に変更する動的変更機能と、を実現させるためのプログラムが提供される。
【００２６】
また、上記課題を解決するために、本発明の更に別の観点によれば、上記アクターノードおよび上記センサノードを含む情報処理システムが提供される。
【発明の効果】
【００２７】
以上説明したように本発明によれば、イベント発生時に、アクターノードが突発的なイベントに対応している場合、アクターノード間で担当領域の一時的な変更を行うことが可能となる。その結果、イベント対応中のアクターノードがデータ収集を担当することになっていたセンサノードからのデータ収集を、他のアクターノードが代行することが可能となる。これにより、本発明では、イベント発生時においても、イベントへの対応とデータの収集の双方を両立することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本発明の第１の実施形態に係る情報処理システムを説明するための説明図である。
【図２】同実施形態に係る情報処理システムを説明するための説明図である。
【図３】同実施形態に係る情報処理システムを説明するための説明図である。
【図４】同実施形態に係る鍵生成装置の構成を説明するためのブロック図である。
【図５】同実施形態に係るデータ処理装置の構成を説明するためのブロック図である。
【図６】同実施形態に係るアクターノードの構成を説明するためのブロック図である。
【図７】同実施形態に係るセンサノードの構成を説明するためのブロック図である。
【図８】同実施形態に係る情報処理システムで実施される処理を説明するための流れ図である。
【図９】同実施形態に係る鍵生成装置で実施されるセットアップ処理について説明するための流れ図である。
【図１０Ａ】一方向関数ツリーを説明するための説明図である。
【図１０Ｂ】一方向関数ツリーを説明するための説明図である。
【図１１Ａ】同実施形態に係るアクターノードで実施される初期認証処理について説明するための流れ図である。
【図１１Ｂ】同実施形態に係るアクターノードで実施される初期認証処理について説明するための流れ図である。
【図１２Ａ】同実施形態に係るセンサノードで実施される初期認証処理について説明するための流れ図である。
【図１２Ｂ】同実施形態に係るセンサノードで実施される初期認証処理について説明するための流れ図である。
【図１３Ａ】同実施形態に係る情報処理システムにおけるメッセージの伝達方法について説明するための説明図である。
【図１３Ｂ】同実施形態に係る情報処理システムにおけるメッセージの伝達方法について説明するための説明図である。
【図１４Ａ】同実施形態に係るアクターノードで実施されるブロードキャスト認証処理について説明するための流れ図である。
【図１４Ｂ】同実施形態に係るアクターノードで実施されるブロードキャスト認証処理について説明するための流れ図である。
【図１５Ａ】ブルームフィルタについて説明するための説明図である。
【図１５Ｂ】ブルームフィルタについて説明するための説明図である。
【図１６Ａ】同実施形態に係るセンサノードで実施されるブロードキャスト認証処理について説明するための流れ図である。
【図１６Ｂ】同実施形態に係るセンサノードで実施されるブロードキャスト認証処理について説明するための流れ図である。
【図１７Ａ】同実施形態に係るアクターノードで実施されるノード排除処理について説明するための流れ図である。
【図１７Ｂ】同実施形態に係るアクターノードで実施されるノード排除処理について説明するための流れ図である。
【図１８】同実施形態に係るセンサノードで実施されるノード排除処理について説明するための流れ図である。
【図１９Ａ】同実施形態に係るアクターノードで実施される動的変更処理について説明するための流れ図である。
【図１９Ｂ】同実施形態に係るアクターノードで実施される動的変更処理について説明するための流れ図である。
【図２０】同実施形態に係るセンサノードで実施される動的変更処理について説明するための流れ図である。
【図２１Ａ】同実施形態に係る動的変更処理について説明するための説明図である。
【図２１Ｂ】同実施形態に係る動的変更処理について説明するための説明図である。
【図２２】同実施形態に係るアクターノードで実施される動的変更処理について説明するための流れ図である。
【図２３】同実施形態に係るセンサノードで実施される動的変更処理について説明するための流れ図である。
【図２４】本発明の実施形態に係る鍵処理装置のハードウェア構成を説明するためのブロック図である。
【発明を実施するための形態】
【００２９】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００３０】
なお、説明は、以下の順序で行うものとする。
（１）第１の実施形態
（１−１）情報処理システムについて
（１−２）鍵生成装置の構成について
（１−３）データ処理装置の構成について
（１−４）アクターノードの構成について
（１−５）センサノードの構成について
（１−６）情報処理システム内で実施される処理の概要について
（１−７）セットアップ処理について
（１−８）初期認証処理について
（１−９）ブロードキャスト認証処理について
（１−１０）ノード排除処理について
（１−１１）担当グリッドの動的変更処理について
（２）本発明の実施形態に係る鍵生成装置、データ処理装置、アクターノードおよびセンサノードのハードウェア構成について
（３）まとめ
【００３１】
（第１の実施形態）
＜情報処理システムについて＞
まず、図１〜図３を参照しながら、本発明の第１の実施形態に係る情報処理システムについて、詳細に説明する。図１〜図３は、本実施形態に係る情報処理システムを説明するための説明図である。
【００３２】
［情報処理システムの概略について］
本実施形態に係る情報処理システム１は、例えば図１に示したように、鍵生成装置１０と、データ処理装置２０とを含む。また、情報処理システム１は、アクターノード３０Ａ，３０Ｂ，３０Ｃ・・・（以下、アクターノード３０と略記する。）と、センサノード４０Ａ，４０Ｂ，４０Ｃ・・・（以下、センサノード４０と略記する。）と、を含む。これらの装置は、通信網３を介して互いに接続されている。
【００３３】
通信網３は、鍵生成装置１０、データ処理装置２０、アクターノード３０およびセンサノード４０それぞれを双方向通信可能に接続する通信回線網である。この通信網は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）、Ｅｔｈｅｒｎｅｔ（登録商標）、ワイヤレスＬＡＮ等の専用回線網などで構成されており、有線／無線を問わない。すなわち、本実施形態に係る情報処理システム１は、公衆回線網を用いた公共のサービスの一部であってもよく、ＬＡＮ等を用いた第三者に公開しないプライベートなものであってもよい。
【００３４】
鍵生成装置１０は、データ処理装置２０、アクターノード３０およびセンサノード４０との間で行われる通信の際に利用される鍵を生成する装置である。この鍵生成装置１０は、アクターノード３０およびセンサノード４０が配置されているフィールドを複数の区画に区分して、アクターノード３０が担当する担当区画（以下、担当グリッドとも称する。）を決定する。各アクターノード３０が担当する担当グリッドは、１つの区画であってもよく、複数の区画からなる領域であってもよい。また、フィールドの区分が決定すると、各区画に隣接する区画を表す情報等を決定する。
【００３５】
また、鍵生成装置１０は、データ処理装置２０、アクターノード３０およびセンサノード４０が、相互の通信を行う際に利用する各種のシステムパラメータを決定し、それぞれの装置の種別に応じて、生成すべき鍵などを生成する。
【００３６】
上で概略を説明したような鍵生成装置１０が行うセットアップ処理については、以下で改めて詳細に説明する。
【００３７】
データ処理装置２０は、鍵生成装置１０から取得した鍵およびシステムパラメータ等を含む鍵情報を利用して、フィールドに展開されているアクターノード３０およびセンサノード４０と通信可能な装置である。データ処理装置２０は、いわゆるシンクノード（ｓｉｎｋ  ｎｏｄｅ）として機能する装置であり、アクターノード３０に対して、センサノード４０からデータを収集するように要請する。その後、データ処理装置２０は、各アクターノード３０がセンサノード４０から収集したデータを、それぞれのアクターノード３０から収集し、所定のデータ処理を行う。また、データ処理装置２０は、アクターノード３０およびセンサノード４０の少なくとも何れかに障害が生じたか否かを判断することが可能な装置である。データ処理装置２０は、アクターノード３０およびセンサノード４０と、無線を介して通信を行うことが可能である。このデータ処理装置２０については、以下で改めて詳細に説明する。
【００３８】
アクターノード３０は、鍵生成装置１０から取得した鍵およびシステムパラメータ等を含む鍵情報を利用して、データ処理装置２０およびセンサノード４０と通信可能な装置である。アクターノード３０は、所定のフィールド内を移動することが可能な装置である。アクターノード３０は、担当グリッド内を移動して、担当グリッド内に存在するセンサノード４０から、センサノード４０が生成したデータ（例えば、測定データ）等を、無線通信を介して取得する。また、アクターノード３０は、センサノード４０から取得したデータを、データ処理装置２０に伝送する。
【００３９】
また、アクターノード３０は、障害が発生したセンサノード４０を検出することが可能である。これにより、アクターノード３０は、故障が発生したセンサノード４０や、ハッカーに侵入されたセンサノード４０等を把握し、障害が発生したセンサノード４０をフィールドから排除することができる。
【００４０】
アクターノード３０は、以下で説明する、初期認証処理、ブロードキャスト認証処理、ノード排除処理および動的変更処理等を実施する。このアクターノード３０の詳細およびアクターノード３０が実施するこれらの処理については、以下で改めて詳細に説明する。
【００４１】
センサノード４０は、鍵生成装置１０から取得した鍵およびシステムパラメータ等を含む鍵情報を利用して、アクターノード３０と通信可能な装置である。センサノード４０は、情報処理システム１が目的とする事柄（例えば、火災の防止、侵入者の有無の監視など）を果たすために利用される各種の機器を備えた装置である。センサノード４０が備える機器の例として、例えば、動画や静止画を撮像可能な撮像装置、温度計や湿度計といった各種センサ等を挙げることができる。センサノード４０は、フィールド内の各所に配置されているが、アクターノード３０のように移動機能を持たないため、測定したデータを、センサノード４０が位置しているグリッドを担当するアクターノード３０へ通知する。
【００４２】
なお、センサノード４０は、自身が位置しているグリッド内、および、このグリッドに隣接するグリッドとの間の通信が可能な程度の近距離通信機能を有しているのみである。しかし、他のセンサノード４０から出力された通信内容をリレー方式で伝達することで、遠方の装置（例えば、他のグリッドに位置するセンサノードなど）に通信内容を間接的に伝達することが可能である。
【００４３】
センサノード４０は、以下で説明する、初期認証処理、ブロードキャスト認証処理、ノード排除処理および動的変更処理等を実施する。このセンサノード４０の詳細およびセンサノード４０が実施するこれらの処理については、以下で改めて詳細に説明する。
【００４４】
［情報処理システムの具体例について］
続いて、図２および図３を参照しながら、本実施形態に係る情報処理システム１の具体例について説明する。
【００４５】
図２は、通常の状態にあるフィールドの一部を示した模式図である。ここで、通常の状態とは、イベントが発生していない状態を意味する。また、イベントとは、情報処理システム１が実現を希望する目的に障害をもたらす可能性がある事象を意味する。図２では、鍵生成装置１０によって、フィールドの一部が３６個の矩形のグリッドに区画されている。以下では、各グリッドを、Ｇｘ，ｙのように表すこととする。
【００４６】
ここで、データ処理装置２０は、グリッドＧ０，０に位置するものとする。また、本実施形態に係る情報処理システム１では、１つのグリッドを１つのアクターノードが担当する。また、鍵生成装置１０は、各アクターノード３０が互いにほぼ同数のグリッドを担当するように、各アクターノード３０が担当する領域を決定する。
【００４７】
図２では、グリッドＧ０，０〜Ｇ２，２をアクターノード１（以下、Ａｃｔｏｒ１と略記する。以下、同様の表記を行う。）が担当し、グリッドＧ３，０〜Ｇ５，２をＡｃｔｏｒ２が担当している。同様に、グリッドＧ０，３〜Ｇ２，５をＡｃｔｏｒ３が担当し、グリッドＧ３，３〜Ｇ５，５をＡｃｔｏｒ４が担当している。
【００４８】
図２に示したような通常の状態にあるフィールドでは、Ａｃｔｏｒ１〜Ａｃｔｏｒ４の各アクターノード３０は、エネルギー消費を抑制するために、担当するグリッド（担当グリッド）のほぼ中央に位置している。各アクターノード３０は、担当グリッド内に存在するセンサノード４０から収集したデータを、図２に示したように、データ処理装置２０に最も近い位置に存在するアクターノード３０を介して、データ処理装置２０に伝送してもよい。また、各アクターノード３０は、収集したデータを、直接データ処理装置２０に伝送してもよい。
【００４９】
図３は、フィールドにイベントが発生した場合を図示した説明図である。図３では、グリッドＧ４，０およびＧ５，０において、あるイベントが発生した場合を示している。この場合、イベントの発生したグリッドの近傍に位置するアクターノードは、発生したイベントを解消するために、イベントの近傍まで移動する。このアクターノード３０の移動に伴い、各アクターノード３０の担当グリッドは、動的に変更される。また、一部のアクターノード３０がフィールドの一部に偏って存在することとなるため、この偏りを解消するために、新たなアクターノード（図３においては、２つの更なるアクターノード）がフィールド内に移動してくる。これにより、本実施形態に係る情報処理システム１では、イベント発生時に、イベントの解消とデータ収集とを両立させることが可能となる。
【００５０】
なお、図２および図３では、フィールドが矩形のグリッドに区画されている場合を図示したが、グリッドの形状は図示した例に限定されるわけではなく、三角形や六角形など、所定の領域に隙間無く並べることが可能な形状であってもよい。
【００５１】
以上、本実施形態に係る情報処理システム１について説明した。
【００５２】
＜鍵生成装置の構成について＞
続いて、図４を参照しながら、本実施形態に係る鍵生成装置の構成について、詳細に説明する。図４は、本実施形態に係る鍵生成装置の構成を説明するためのブロック図である。
【００５３】
本実施形態に係る鍵生成装置１０は、例えば図４に示したように、パラメータ設定部１０１と、フィールド分割部１０３と、アクターノード割当部１０５と、鍵生成部１０７と、ハッシュチェイン生成部１０９と、通信部１１１と、記憶部１１３と、を主に備える。これらの処理部は、単独で、または、互いに連携しながら、情報処理システム１内で使用される鍵やシステムパラメータ等に関する情報を含む鍵情報を生成する。
【００５４】
パラメータ設定部１０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により実現される。パラメータ設定部１０１は、本実施形態に係る情報処理システム１内で各装置が通信を行う際に利用する鍵を生成するための各種のパラメータを設定する。パラメータ設定部１０１が設定したパラメータのうちのいくつかは、システムパラメータとして、データ処理装置２０、アクターノード３０およびセンサノード４０にも通知される。
【００５５】
パラメータ設定部１０１が設定するパラメータの例として、例えば、フィールド中のグリッドの区画数、鍵の生成に用いられる２変数多項式、データ処理装置２０およびアクターノード３０の識別情報、ハッシュ関数等を挙げることができる。ここで、データ処理装置２０およびアクターノード３０の識別情報は、フィールド内で一意となるように設定される。
【００５６】
グリッドの区画数は、センサノードが設置されたフィールドをいくつのグリッドに区画するかを表す値である。この値は、例えば図２に示したようにフィールドを矩形のグリッドに区画する際には、横をｘ個、縦をｙ個（すなわち、フィールドをｘ×ｙ個に区画）のように、各方向の分割数を表す値であってもよい。また、グリッドの区画数は、フィールド全体を計Ｘ個に分割する、といったような、全体の数を表す値のみであってもよい。
【００５７】
パラメータ設定部１０１が設定する２変数多項式Ｆ（ｘ，ｙ）は、情報処理システム１内で利用される鍵を生成するために利用されるｔ次の多項式であり、以下の式１０１に示すような多項式である。
【００５８】
【数１】
2011130012.tif 000003
【００５９】
ここで、上記式１０１中のａｉ，ｊ（ａｉ，ｊ∈Ｆｑ）は、各項の係数であり、Ｆ（ｘ，ｙ）＝Ｆ（ｙ，ｘ）となるように設定される。すなわち、本実施形態に係る情報処理システム１で利用される鍵は、Ｆ（ｘ，ｙ）を用いて生成されるペア鍵（ｐａｉｒｗｉｓｅ  ｋｅｙ）であり、かつ、Ｆ（ｘ，ｙ）＝Ｆ（ｙ，ｘ）が成立する対称鍵（ｓｙｍｍｅｔｒｉｃ  ｋｅｙ）である。
【００６０】
本実施形態に係る情報処理システム１では、２変数多項式Ｆ（ｘ，ｙ）の変数として、各装置の識別情報（以下、ＩＤと略記する。）が用いられる。例えば、識別情報ＩＤがＩＤ１という値で表されるアクターノード３０と、ＩＤ２という値で表されるアクターノード３０との間で用いられる鍵は、Ｆ（ＩＤ１，ＩＤ２）として算出することができる。
【００６１】
パラメータ設定部１０１は、以下に示す種類の鍵を生成することができる２変数多項式を設定する。ここで、下記５種類の２変数多項式全てが、同一の係数を用いて表される同一の多項式（式１０１で表される一般式）であってもよく、互いに異なる係数を用いて表される別々の多項式であってもよく、５種類のうちのいくつかが同一の多項式であってもよい。
【００６２】
（ａ）データ処理装置２０−アクターノード３０間の通信で用いられる鍵の生成用
（ｂ）データ処理装置２０−センサノード４０間の通信で用いられる鍵の生成用
（ｃ）アクターノード３０間の通信で用いられる鍵の生成用
（ｄ）グリッド間の通信で用いられる鍵の生成用
（ｅ）グリッド内の通信で用いられる鍵の生成用
【００６３】
また、パラメータ設定部１０１は、設定したハッシュ関数を、システムパラメータとして、データ処理装置２０、アクターノード３０およびセンサノード４０に通知し、各装置でこのハッシュ関数を共有する。
【００６４】
フィールド分割部１０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。フィールド分割部１０３は、パラメータ設定部１０１により設定されたグリッドの区画数に基づいて、センサノード４０が設置されているフィールドを複数のグリッドに分割する。また、フィールド分割部１０３は、各グリッドの相対的な位置関係を表す情報を、あわせて生成する。この相対的な位置関係を表す情報を利用することで、後述するアクターノード割当部１０５は、アクターノードの割り当てを効率よく行うことが可能となる。なお、グリッドは、あくまでもアクターノード３０およびセンサノード４０の制御上設定されるものであり、実際のフィールドが複数のグリッドに分割されているわけではない。
【００６５】
また、フィールド分割部１０３は、フィールドを複数のグリッドに区画した後、各グリッドに固有の識別情報（例えば、図２および図３におけるＧｘ，ｙのような識別情報）を関連づける。これによりデータ処理装置２０、アクターノード３０およびセンサノード４０は、各グリッドの位置を客観的に把握することが可能となる。以下では、各グリッドにＧｘ，ｙ（ｘ，ｙは、グリッドの位置を表す座標）という識別情報が関連づけられているものとして説明を行うものとする。
【００６６】
また、フィールド分割部１０３は、フィールドを複数のグリッドに区画した後に、各グリッドに含まれるセンサノード４０を特定し、各センサノード４０に対して識別情報を関連付ける。ここで、センサノード４０の識別情報は、少なくともグリッド内で一意であればよい。また、各センサノード４０の識別情報は、システム全体として一意なものであってもよい。なお、センサノード４０の識別情報をグリッド内でのみ一意となるように関連付ける場合、アクターノード３０は、後述する初期認証処理において、センサノード４０それぞれの識別情報を保持せずに、各グリッド内のセンサノード４０の個数のみを保持すれば良い。これにより、アクターノード３０が保持すべきデータ量を削減することが可能となる。
【００６７】
このようにしてグリッドが定義されることで、鍵生成装置１０は、どのグリッドにどのセンサノード４０が含まれているかを把握することができる。また、各センサノード４０が位置しているグリッドの識別情報が確定した際に、フィールド分割部１０３は、各センサノード４０の識別情報に、位置しているグリッドの識別情報を関連づけても良い。
【００６８】
アクターノード割当部１０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。アクターノード割当部１０５は、フィールド内に配置可能なアクターノード３０の個数と、パラメータ設定部１０１により設定されたグリッドの区画数とに応じて、各アクターノード３０が担当するグリッド（担当グリッド）を割り当てる。この担当グリッドが、一つのアクターノード３０が、担当グリッド内に存在する全てのセンサノード４０を管理する区切り（パーティション）となる。
【００６９】
この際、アクターノード割当部１０５は、グリッドの相対的な位置関係を表す情報を利用して、互いに近接するグリッドを、あるアクターノード３０の担当グリッドとなるようにすることが好ましい。また、アクターノード割当部１０５は、各アクターノード３０が担当するセンサノード４０の個数が、なるべく等しくなるように担当グリッドを設定していくことが好ましい。
【００７０】
また、アクターノード割当部１０５は、各アクターノード３０の担当グリッドが決定すると、各担当グリッド内のそれぞれのグリッドについて、自己のグリッドに隣接しているグリッドがどれかを表す情報（隣接グリッド特定情報）を生成する。
【００７１】
鍵生成部１０７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。鍵生成部１０７は、パラメータ設定部１０１により設定された各装置の識別番号と、２変数多項式とを利用して、各装置が利用する各種の鍵を生成する。鍵の生成は、先に説明した式１０１で表される２変数多項式を利用して行われる。本実施形態に係るデータ処理装置（以下、シンクノードとも称する。）２０、アクターノード３０およびセンサノード４０は、鍵生成部１０７により生成された鍵を、通信を行う装置との間で共有することで、鍵を共有する装置との間で安全な通信を行うことが可能となる。
【００７２】
鍵生成部１０７が生成する鍵としては、例えば、以下のものがある。
・データ処理装置（Ｓ）２０と各アクターノード３０（Ａ）とが共有する鍵（Ｓ−Ａ  ｋｅｙ）
・データ処理装置２０（Ｓ）と各センサノード４０（Ｓ）とが共有する鍵（Ｓ−Ｓ  ｋｅｙ）
・各アクターノード３０（Ａ）間で共有される鍵（Ａ−Ａ  ｋｅｙ）
【００７３】
鍵生成部１０７は、上記３種類の鍵の他に、アクターノード割当部１０５により生成された近接グリッド特定情報に基づいて、同一のパーティションに含まれる各グリッドに対して、グリッド間で通信を行う際に用いられる鍵を生成する。このグリッド（Ｇ）間で行われる通信で用いられる鍵（Ｇ−Ｇ  ｋｅｙ）は、該当するグリッドに属するノード間で共有される。
【００７４】
また、鍵生成部１０７は、同一のパーティションに含まれる各グリッドに対して、２変数多項式の一方の変数に当該パーティションを担当グリッドとするアクターノード３０の識別情報を代入し、他方の変数は変数のまま残した多項式を生成する。これにより生成される多項式は、１変数の多項式となる。この１変数多項式は、このパーティションを担当グリッドとするアクターノード３０により管理される。この１変数多項式を用いることで、アクターノート３０は、該当するグリッドに存在する他のノードとの間で共有すべき鍵を、アクターノード３０自身で生成することが可能となる。
【００７５】
更に、鍵生成部１０７は、各グリッドに属するセンサノード４０それぞれに対して、２変数多項式の一方の変数にセンサノード４０の識別情報を代入し、他方の変数は変数のまま残した多項式を生成する。この１変数多項式を用いることで、センサノート４０は、該当するグリッドに存在する他のノードとの間で共有すべき鍵を、センサノード４０自身で生成することが可能となる。
【００７６】
ハッシュチェイン生成部１０９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。ハッシュチェイン生成部１０９は、グリッドＧｘ，ｙごとに、一方向ハッシュチェインを生成する。また、生成された一方向ハッシュチェインは、該当するグリッドＧｘ，ｙ内に存在するセンサノード４０全てと、このグリッドＧｘ，ｙを担当グリッドとするアクターノード３０とにより共有される。
【００７７】
一方向ハッシュチェインＯｎは、初期値ｒと、繰り返しパラメータｎとを用いて生成される。ハッシュチェイン生成部１０９は、乱数ｒを発生させ、一方向ハッシュチェインＯｎの初期値（すなわち、ｎ＝０の場合）とする。また、ハッシュチェイン生成部１０９は、パラメータ設定部１０１によって設定されたハッシュ関数と繰り返しパラメータｎとを利用して、以下のように一方向ハッシュチェインを生成する。なお、以下の式１０２において、Ｈは、ハッシュ関数を表す。また、繰り返しパラメータｎは、十分に大きな数であり、システム１内における処理に際して、一方向ハッシュチェインの値が足りなくなるという事態が発生しないような値であるものとする。
【００７８】
Ｏ１＝Ｈ（Ｏ０）＝Ｈ（ｒ），Ｏ２＝Ｈ（Ｏ１），・・・，Ｏｎ＝Ｈ（Ｏｎ−１）
・・・（式１０２）
【００７９】
一方向性ハッシュチェインＯｎは、その名前の通り、Ｏｎの値を用いてＯｎ−１の値を算出することが出来ないという一方向性を有する、複数の値のつながりである。逆に、一方向性ハッシュチェインの生成に用いるハッシュ関数を共有している装置間では、Ｏｎ−１の値を用いてＯｎの値を算出することができる。
【００８０】
この一方向性ハッシュチェインは、次のように使用することができる。
一方向性ハッシュチェインを共有する各装置は、メッセージを送信する際に、Ｏｎ−１の値をメッセージに添付し、送信先の装置へと送信する。メッセージを受信した装置は、ハッシュ関数とメッセージに添付されたＯｎ−１とを用いて、Ｏｎの値を算出し、自身で保持しているＯｎの値と同じ値となるかを確認する。メッセージを受信した装置は、値が等しくなった場合に、受信したメッセージが正当なものであると判断することができる。
【００８１】
通信部１１１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等により実現される。通信部１１１は、鍵生成装置１０で生成された各種の鍵やシステムパラメータを、データ処理装置２０、アクターノード３０およびセンサノード４０に送信する。
【００８２】
通信部１１１が各装置に送信する内容（すなわち、鍵情報）は、以下のような情報を含むものである。以下の内容から明らかなように、各装置に送信される鍵情報には、鍵そのものに関する情報と、鍵を生成するために利用される鍵生成情報と、ハッシュチェインやハッシュ関数のようなシステムパラメータとが含まれている。
【００８３】
データ処理装置２０への送信内容
・各アクターノード３０との間で用いられるペア鍵（Ｓ−Ａ  ｋｅｙ）
・各センサノード４０との間で用いられるペア鍵（Ｓ−Ｓ  ｋｅｙ）
【００８４】
各アクターノード３０への送信内容
・他のアクターノード３０との間で用いられるペア鍵（Ａ−Ａ  ｋｅｙ）
・データ処理装置２０との間で用いられるペア鍵（Ｓ−Ａ  ｋｅｙ）
・識別情報  ＩＤＡ（ｉ）
・担当グリッドに関する情報  Ｐ
・全てのグリッド用の２変数多項式ＦＧ（ｘ，ｙ）（ＩＤＡ（ｉ），ｙ）（ｙ：変数）
・各担当グリッドの一方向性ハッシュチェインＯＧ（ｘ，ｙ）ｎ
・各担当グリッドの隣接グリッド特定情報ＧＧ（ｘ，ｙ）
・各担当グリッドのグリッド間通信用の鍵ＫＧ（ｘ，ｙ）（Ｇ−Ｇ  ｋｅｙ）
・ハッシュ関数
【００８５】
各センサノード４０への送信内容
・データ処理装置２０との間で用いられるペア鍵（Ｓ−Ｓ  ｋｅｙ）
・識別情報  ＩＤＳ＜ｊ＞
・自装置が位置するグリッドの識別情報  ＩＤＧ（ｘ，ｙ）
・自装置が位置するグリッドの一方向性ハッシュチェインＯＧ（ｘ，ｙ）ｎ
・自装置が位置するグリッド用の２変数多項式ＦＧ（ｘ，ｙ）（ＩＤＳ＜ｊ＞，ｙ）（ｙ：変数）
・ハッシュ関数
【００８６】
なお、上記の記載において、下付き文字中に記載されている（  ）は、下付き文字に更に付加されている下付き文字（下付き文字の下付き文字）を表している。また、下付き文字中に記載されている＜  ＞は、下付き文字に付加されている上付き文字（下付き文字の上付き文字）を表している。以下、本明細書中において、同様に記載を行うものとする。また、上付き文字に対しても、同様の記載を行うものとする。すなわち、上付き文字に更に付加されている下付き文字を（  ）で表すものとし、上付き文字に更に付加されている上付き文字を＜  ＞で表すものとする。
【００８７】
記憶部１１３は、本実施形態に係る鍵生成装置１０が有するストレージ装置の一例である。この記憶部１１３には、鍵生成装置１０が生成した各種の鍵情報や、システムパラメータ等が格納されてもよい。また、この記憶部１１３には、鍵生成装置１０が何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が適宜格納される。この記憶部１１３は、本実施形態に係る鍵生成装置１０が備える各処理部が、自由に読み書きを行うことが可能である。
【００８８】
以上、本実施形態に係る鍵生成装置１０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【００８９】
なお、上述のような本実施形態に係る鍵生成装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【００９０】
＜データ処理装置の構成について＞
続いて、図５を参照しながら、本実施形態に係るデータ処理装置の構成について、詳細に説明する。図５は、本実施形態に係るデータ処理装置の構成を説明するためのブロック図である。
【００９１】
データ処理装置２０は、いわゆるシンクノードとして機能する装置である。このデータ処理装置２０は、例えば図５に示したように、ノード制御部２０１と、データ取得部２０３と、データ処理部２０５と、排除ノード特定部２０７と、通信部２０９と、記憶部２１１と、を主に備える。
【００９２】
ノード制御部２０１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。ノード制御部２０１は、フィールド内に設置されているアクターノード３０およびセンサノード４０の制御を行う処理部である。
【００９３】
ノード制御部２０１は、所定のタイミング毎、または、データ処理装置２０の管理者の指示等に応じて、データ処理部２０３に対して、アクターノード３０からデータを取得するように要請する。これによりデータ処理装置２０は、フィールド内に配置されているアクターノード３０（ひいては、センサノード４０）から、データを取得することが可能となる。
【００９４】
データ取得部２０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。データ取得部２０３は、鍵生成装置１０により生成されたデータ処理装置２０用の鍵情報を、鍵生成装置１０から取得し、後述する記憶部２１１に格納する。また、ノード制御部２０１からの要請に応じて、フィールド内に配置された各アクターノード３０から、当該アクターノード３０が収集したデータを収集し、後述するデータ処理部２０５に伝送する。
【００９５】
データ処理部２０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。データ処理部２０５は、データ取得部２０３が取得したデータに基づいて、所定のデータ処理を実行する。これにより、本実施形態に係る情報処理システム１は、目的とすべき事項を実現することが可能となる。
【００９６】
排除ノード特定部２０７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。排除ノード特定部２０７は、フィールド内に配置されているアクターノード３０およびセンサノード４０の動作状態を把握することが可能であり、これらのノードに障害が発生した場合には、その旨を把握することができる。フィールド内に配置されている各ノードに故障等の障害が発生した場合、または、悪意のある第三者に、通信に用いる鍵を含む鍵情報が漏洩してしまった場合等に、排除ノード特定部２０７は、どのノードに対して障害が発生したかを把握する。
【００９７】
障害の発生したノードがアクターノード３０である場合、排除ノード特定部２０７は、障害の発生したアクターノード３０に関する情報を、他のアクターノード３０に通知する。また、障害の発生したアクターノード３０が担当していたグリッドを、他のアクターノード３０に割り当てなおし、データの収集に影響が生じないようにする。
【００９８】
また、障害の発生したノードがセンサノード４０である場合には、排除ノード特定部２０７は、障害の発生したセンサノード４０に関する情報を、アクターノード３０で共有する。
【００９９】
これにより、データ処理装置２０は、障害の発生したノードが存在した場合であっても、情報処理システム１が目的とする事項を実現することが可能となる。
【０１００】
通信部２０９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等により実現される。通信部２０９は、データ処理装置２０と、各装置との間で行われる通信の制御を行う処理部である。通信部２０９は、情報処理システム１内で用いられるプロトコルに則して、鍵生成装置１０、アクターノード３０およびセンサノード４０と通信を行う。
【０１０１】
記憶部２１１は、本実施形態に係るデータ処理装置２０が有するストレージ装置の一例である。この記憶部２１１には、鍵生成装置１０が生成した各種の鍵情報や、システムパラメータ等が格納されてもよい。また、この記憶部２１１には、データ処理装置２０が何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が適宜格納される。この記憶部２１１は、本実施形態に係るデータ処理装置２０が備える各処理部が、自由に読み書きを行うことが可能である。
【０１０２】
以上、本実施形態に係るデータ処理装置２０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０１０３】
なお、上述のような本実施形態に係るデータ処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０１０４】
＜アクターノードの構成について＞
続いて、図６を参照しながら、本実施形態に係るアクターノード３０の構成について、詳細に説明する。図６は、本実施形態に係るアクターノード３０の構成を説明するためのブロック図である。
【０１０５】
アクターノード３０は、例えば図６に示したように、鍵取得部３０１、初期認証部３０３、データ収集部３０５、データ転送部３０７、ブロードキャスト認証部３０９、ノード排除処理部３１１、動的変更部３１３、通信部３１５および記憶部３１７を主に備える。
【０１０６】
鍵取得部３０１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。鍵取得部３０１は、鍵生成装置１０で生成されたアクターノード３０用の鍵生成情報と各種のシステムパラメータとを含む鍵情報を取得する。また、鍵取得部３０１は、取得した鍵情報を、後述する記憶部３１７に格納してもよい。
【０１０７】
本実施形態に係るアクターノード３０は、この鍵情報を取得することで、データ処理装置２０、他のアクターノード３０、および、センサノード４０と相互に通信を行うことが可能となる。
【０１０８】
初期認証部３０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。初期認証部３０３は、アクターノード３０の担当グリッド内に含まれるグリッド毎に、当該グリッド内に存在するセンサノード４０との間で、以下で改めて説明する初期認証処理を実施する。これにより、アクターノード３０と担当グリッド内のセンサノード４０とは、相互認証を行うことができる。この初期認証処理は、アクターノード３０が担当グリッド内のグリッドを移動しながら行う処理であり、初期認証処理が終了した後、アクターノード３０は、担当グリッドのほぼ中央に位置する場所まで移動する。
【０１０９】
この初期認証処理については、以下で改めて詳細に説明する。
【０１１０】
データ収集部３０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。データ収集部３０５は、担当グリッド内に設置されているセンサノード４０から、センサノード４０が測定した各種のデータを取得する。また、データ収集部３０５は、各センサノード４０と例えば定期的に通信を行うことで、センサノード４０に障害が生じているか否かを把握することが可能である。同様に、データ収集部３０５は、他のアクターノード３０に障害が生じているか否かも把握することが可能である。
【０１１１】
データ転送部３０７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。データ転送部３０７は、データ収集部３０５によって収集されたデータ（担当グリッド内のセンサノード４０から取得したデータ）を、シンクノードであるデータ処理装置２０に転送する。これにより、データ処理装置２０は、各センサノード４０が測定した測定データ等を、取得することが可能となる。
【０１１２】
ブロードキャスト認証部３０９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。ブロードキャスト認証部３０９は、担当グリッド内のあるグリッド中に設置されているセンサノード４０に対して同報送信を行う場合に、同報送信するメッセージを認証する処理を実施する。この処理を、以下では、ブロードキャスト認証処理と称することとする。ブロードキャスト認証部３０９は、鍵生成装置１０で生成された一方向ハッシュチェインと、メッセージ認証コード（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ：ＭＡＣ）とを利用することで、メッセージの認証を行う。また、ブロードキャスト認証部３０９は、送信目標であるグリッドに対して、直接メッセージを送信する場合や、担当グリッド内のいくつかのグリッドを中継しながら送信する場合がある。
【０１１３】
このブロードキャスト認証処理については、以下で改めて詳細に説明する。
【０１１４】
ノード排除処理部３１１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。ノード排除処理部３１１は、担当グリッド内のセンサノード４０、または、他のアクターノード３０に何らかの障害が発生した場合に、障害の発生したノードをシステムから排除するノード排除処理を実施する処理部である。
【０１１５】
ノード排除処理部３１１は、担当グリッド内のセンサノード４０に障害が発生した場合には、障害の発生したセンサノード４０が存在するグリッド内の他のセンサノード４０と連携しながら、ノード排除処理を実施する。また、ノード排除処理部３１１は、他のアクターノード３０に障害が発生した場合には、データ処理装置２０および障害の発生していない他のアクターノード３０と連携しながら、ノード排除処理を実施する。
【０１１６】
このノード排除処理については、以下で改めて詳細に説明する。
【０１１７】
動的変更部３１３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。動的変更部３１３は、少なくとも一部のアクターノード３０との間で担当グリッドを一時的に変更し、担当グリッドの少なくとも一部の位置するセンサノード４０からのデータ取得を、他のアクターノード３０に委託する。この担当グリッドの一時的な変更は、情報処理システム１内にあるイベントが発生した場合に行われる。この担当グリッドの一時的な変更処理（以下、動的変更処理と称する。）は、データ処理装置２０と連携しながら行っても良い。データ処理装置２０と連携することで、担当グリッドの効率的な再割り当てを行うことが可能である。本実施形態に係る情報処理システム１では、アクターノード３０の動的変更部３１３が、イベント発生時における動的変更処理を実施することで、発生したイベントへの対処とデータの収集とを両立させることが可能となる。
【０１１８】
動的変更部３１３により実施される動的変更処理は、主に、他のアクターノード３０およびアクターノード３０が変更となるグリッドに位置するセンサノード４０と、動的変更部３１３とが連携することで実施される。この動的変更部３１３による動的変更処理は、動的変更の開始に伴う処理と、通常時における担当グリッドへの復帰処理という２つの大きな流れがあるが、これらの詳細については、以下で改めて説明する。
【０１１９】
通信部３１５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等により実現される。通信部３１５は、アクターノード３０と、他のアクターノード３０を含む各装置との間で行われる通信の制御を行う処理部である。通信部３１５は、情報処理システム１内で用いられるプロトコルに則して、鍵生成装置１０、アクターノード３０およびセンサノード４０と通信を行う。
【０１２０】
記憶部３１７は、本実施形態に係るアクターノード３０が有するストレージ装置の一例である。この記憶部３１７には、鍵生成装置１０が生成した各種の鍵情報や、システムパラメータ等が格納されてもよい。また、この記憶部３１７には、アクターノード３０が何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が適宜格納される。この記憶部３１７は、本実施形態に係るアクターノード３０が備える各処理部が、自由に読み書きを行うことが可能である。
【０１２１】
以上、本実施形態に係るアクターノード３０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０１２２】
なお、上述のような本実施形態に係るアクターノードの各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０１２３】
＜センサノードの構成について＞
続いて、図７を参照しながら、本実施形態に係るセンサノード４０の構成について、詳細に説明する。図７は、本実施形態に係るセンサノード４０の構成を説明するためのブロック図である。
【０１２４】
センサノード４０は、例えば図７に示したように、鍵取得部４０１、初期認証部４０３、センサ部４０５、データ転送部４０７、ブロードキャスト認証部４０９、ノード排除処理部４１１、動的変更部４１３、通信部４１５および記憶部４１７を主に備える。
【０１２５】
鍵取得部４０１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。鍵取得部４０１は、鍵生成装置１０で生成されたセンサノード４０用の鍵生成情報と各種のシステムパラメータとを含む鍵情報を取得する。また、鍵取得部４０１は、取得した鍵情報を、後述する記憶部４１７に格納してもよい。
【０１２６】
本実施形態に係るセンサノード４０は、この鍵情報を取得することで、データ処理装置２０、アクターノード３０、および、他のセンサノード４０と相互に通信を行うことが可能となる。
【０１２７】
初期認証部４０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。初期認証部４０３は、自装置が存在するグリッドを担当するアクターノード３０との間で、以下で改めて説明する初期認証処理を実施する。これにより、センサノード４０とアクターノード３０とは、相互認証を行うことができる。
【０１２８】
センサ部４０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、各種のセンサ等により実現される。センサ部４０５は、センサノード４０が設置されている位置の周囲の環境に関する様々なデータを検出したり測定したりして、周囲の環境に関するデータを生成する。センサ部４０５が備えるセンサは、本実施形態に係る情報処理システム１が果たすべき目的を実現するために利用される各種のデータを得るために用いられる各種のデバイス等である。
【０１２９】
例えば、本実施形態に係る情報処理システム１が、火災の防止を目的とするシステムであるならば、センサ部４０５は、火災を検知するために有用な測定デバイス（例えば、温度計、カメラなどの撮像装置、ガス検知器等）をセンサとして実装する。また、本実施形態に係る情報処理システム１が、侵入者の検知を目的とするシステムであるならば、センサ部４０５は、侵入者を検知するために有用な測定デバイス（例えば、各種の撮像装置や集音マイク等）をセンサとして実装する。上述のようなセンサの例は、あくまでも一例であって、センサ部３０５は、これらの検出装置・測定装置以外にも、任意の装置を実装可能である。
【０１３０】
データ転送部４０７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。データ転送部４０７は、センサ部４０５によって収集されたデータを、自身が位置するグリッドを担当グリッドするアクターノード３０に転送する。これにより、データ処理装置２０は、各センサノード４０が測定した測定データ等を、取得することが可能となる。
【０１３１】
ブロードキャスト認証部４０９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。ブロードキャスト認証部４０９は、自身が位置するグリッドを担当グリッドとするアクターノード３０から同報送信されたメッセージを認証する処理（ブロードキャスト認証処理）を実施する。ブロードキャスト認証部４０９は、鍵生成装置１０で生成された一方向ハッシュチェインと、メッセージ認証コード（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ：ＭＡＣ）とを利用することで、メッセージの認証を行う。
【０１３２】
また、ブロードキャスト認証部４０９は、アクターノード３０から同報送信されたメッセージが、自身の位置するグリッドに対して送信されたものか、他のグリッドに対して送信されたものかを判断する。アクターノード３０が送信目標としているグリッドが自身の位置するグリッドではない場合、ブロードキャスト認証部４０９は、同報送信されたメッセージを中継して、送信目標であるグリッドに向けて同報送信を行う。
【０１３３】
このブロードキャスト認証処理については、以下で改めて詳細に説明する。
【０１３４】
ノード排除処理部４１１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。ノード排除処理部４１１は、自身が位置するグリッドを担当するアクターノード３０、または、自身が位置するグリッド内の他のセンサノード４０に何らかの障害が発生した場合に、障害の発生したノードをシステムから排除するノード排除処理を実施する。ノード排除処理部４１１は、自身が位置するグリッドを担当グリッドとしているアクターノード３０、または、自身が位置するグリッドを今後担当グリッドとするアクターノード３０と連携しながら、ノード排除処理を実施する。
【０１３５】
このノード排除処理についても、以下で改めて詳細に説明する。
【０１３６】
動的変更部４１３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。動的変更部４１３は、自身が位置するグリッドを担当グリッドとするアクターノード３０が一時的に変更となった場合に、変更前のアクターノード３０と連携しながら、アクターノード３０の動的変更処理を実施する。この動的変更部４１３による動的変更処理は、動的変更の開始に伴う処理と、通常時におけるアクターノード３０への復帰処理という２つの大きな流れがあるが、これらの詳細については、以下で改めて説明する。
【０１３７】
通信部４１５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等により実現される。通信部４１５は、センサノード４０と、各装置との間で行われる通信の制御を行う処理部である。通信部４１５は、情報処理システム１内で用いられるプロトコルに則して、鍵生成装置１０、アクターノード３０および他のセンサノード４０と通信を行う。
【０１３８】
記憶部４１７は、本実施形態に係るセンサノード４０が有するストレージ装置の一例である。この記憶部４１７には、鍵生成装置１０が生成した各種の鍵情報や、システムパラメータ等が格納されてもよい。また、この記憶部４１７には、センサノード４０が何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が適宜格納される。この記憶部４１７は、本実施形態に係るセンサノード４０が備える各処理部が、自由に読み書きを行うことが可能である。
【０１３９】
以上、本実施形態に係るセンサノード４０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０１４０】
なお、上述のような本実施形態に係るセンサノードの各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０１４１】
＜情報処理システム内で実施される処理の概要について＞
続いて、図８を参照しながら、本実施形態に係る情報処理システム内で実施される処理の概要について、簡単に説明する。図８は、本実施形態に係る情報処理システムで実施される処理を説明するための流れ図である。
【０１４２】
本実施形態に係る情報処理システム１では、まず、鍵生成装置１０によって、フィールドのグリッドへの分割、各種の鍵の生成、システムパラメータの設定といった処理を含むセットアップ処理が実施される（Ｓ１１）。鍵生成装置１０によって生成された鍵や一部のシステムパラメータを含む鍵情報は、データ処理装置２０、アクターノード３０およびセンサノード４０に伝送される。
【０１４３】
続いて、フィールド内に設置されたアクターノード３０とセンサノード４０との間で、初期認証処理が実施され、アクターノード３０とセンサノード４０との間の相互認証が成される（ステップＳ１３）。
【０１４４】
この初期認証処理を経ることで、アクターノード３０はセンサノード４０からデータを収集することが可能となり、データ処理装置２０によって、アクターノード３０を利用したセンサノード４０からのデータ収集処理が実施される（ステップＳ１５）。このデータ収集処理については、特定の方法に限定されるわけではなく、任意のデータ収集処理を利用することが可能である。
【０１４５】
また、データ処理装置２０およびアクターノード３０は、アクターノード３０またはセンサノード４０に障害が発生しているか否かを監視している（ステップＳ１７）。ノードが故障した、または、ノードが悪意のある第三者に乗っ取られた、等の障害がノードに発生した場合には、障害の発生していないアクターノード３０およびセンサノード４０が連携して、ノード排除処理が実施される（ステップＳ１９）。このノード排除処理では、シンクノードであるデータ処理装置２０も処理に参加する場合がある。
【０１４６】
また、ノードに障害が発生していない場合であっても、アクターノード３０がセンサノード４０に対して、各種の命令等を発行する場合がある（ステップＳ２１）。このような場合、アクターノード３０とセンサノード４０は、互いに連携して、同報送信されたメッセージの認証処理（ブロードキャスト認証処理）を実施する（ステップＳ２３）。
【０１４７】
また、情報処理システム１内において、システムが本来果たすべき目的に悪影響を及ぼしうるイベントが発生する場合もある（ステップＳ２５）。かかる場合には、アクターノード３０とセンサノード４０との間で、アクターノード３０が担当するグリッドを一時的に変更する処理である、担当グリッドの動的変更処理が実施される（ステップＳ２７）。
【０１４８】
このように、本実施形態に係る情報処理システム１では、様々な状況に応じて、各種の処理が実施されている。以下では、これらの処理のうち、セットアップ処理、初期認証処理、ブロードキャスト認証処理、ノード排除処理および担当グリッドの動的変更処理について、各図を参照しながら詳細に説明する。
【０１４９】
＜セットアップ処理について＞
まず、図９を参照しながら、本実施形態に係る鍵生成装置１０が実施するセットアップ処理について、詳細に説明する。図９は、本実施形態に係るセットアップ処理を説明するための流れ図である。
【０１５０】
なお、以下の説明に先立ち、データ処理装置２０およびアクターノード３０には、パラメータ設定部１０１により、システム１内で一意な識別情報が関連付けられているものとする。
【０１５１】
鍵生成装置１０で実施されるセットアップ処理は、情報処理システム１が構築され、運用を開始する際などに実施される処理である。まず、鍵生成装置１０のパラメータ設定部１０１は、グリッドの区画数に関するパラメータを設定する。その上で、フィールド分割部１０３は、アクターノード３０およびセンサノード４０が配置されるフィールドを、グリッドの区画数に関するパラメータを参照しながら、複数のグリッドに分割し、各グリッドに対して識別情報を割り当てる（ステップＳ１０１）。以下の説明では、フィールドが計ＸＹ個（０≦ｘ≦Ｘ−１，０≦ｙ≦Ｙ−１）のグリッドＧｘ，ｙに分割され、各グリッドに識別情報ＩＤＧ（ｘ，ｙ）が割り当てられたものとする。
【０１５２】
次に、パラメータ設定部１０１は、各グリッドＧｘ，ｙに対して、ｔ次の２変数多項式ＦＧ（ｘ，ｙ）を無作為に生成する（ステップＳ１０３）。
【０１５３】
また、ハッシュチェイン生成部１０９は、パラメータ設定部１０１により設定されたハッシュ関数Ｈと、無作為に生成した乱数ｒとを用いて、グリッドＧｘ，ｙごとに、一方向性ハッシュチェインＯＧ（ｘ，ｙ）ｎを生成する（ステップＳ１０５）。
【０１５４】
次に、フィールド分割部１０３は、各グリッドＧｘ，ｙに含まれるセンサノード４０を特定して（ステップＳ１０７）、各センサノード４０に対して識別情報を関連付ける。また、アクターノード割当部１０５は、アクターノード３０の担当するセンサノード４０の個数がほぼ等しくなるように、各アクターノードＡｉが担当するグリッド（担当グリッド）ＰＡ（ｉ）を決定する（ステップＳ１０９）。この担当グリッドＰＡ（ｉ）が、一つのアクターノード３０が、担当グリッド内に存在する全てのセンサノード４０を管理する区切り（パーティション）となる。
【０１５５】
各アクターノードＡｉの担当グリッドが決定すると、アクターノード割当部１０５は、各パーティションに含まれる各グリッドＧｘ，ｙについて、相隣接するグリッドを特定し（ステップＳ１１１）、隣接グリッド特定情報ＧＧ（ｘ，ｙ）を生成する。
【０１５６】
次に、鍵生成部１０７は、隣接グリッド特定情報ＧＧ（ｘ，ｙ）を参照して、グリッド間通信に用いる鍵（Ｇ−Ｇ  ｋｅｙ）ＫＧ（ｘ，ｙ）を生成する（ステップＳ１１３）。このグリッド間通信に用いる鍵は、グリッドに関連付けられた識別情報ＩＤＧ（ｘ，ｙ）と、２変数多項式Ｆ（ｘ，ｙ）とを用いて算出することが可能である。
【０１５７】
続いて、鍵生成部１０７は、各アクターノードＡｉおよび各センサノードＳｊ用の鍵を含む鍵情報を生成する（ステップＳ１１５）。具体的には、鍵生成部１０７は、データ処理装置２０と各アクターノート３０との間で共有する対称鍵、アクターノード間で共有される対称鍵をそれぞれ生成する。なお、アクターノード間で共有される対称鍵について、アクターノードの個数がＡ個であるとすると、生成される対称鍵の個数は、Ａ（Ａ＋１）／２となる。これは、２変数多項式Ｆ（ｘ，ｙ）において、Ｆ（ｘ，ｙ）＝Ｆ（ｙ，ｘ）が成立しているためである。
【０１５８】
更に、鍵生成部１０７は、各アクターノードＡｉの識別情報ＩＤＡ（ｉ）を利用して、全てのグリッドＧｘ，ｙに対して、鍵生成用の多項式ＦＧ（ｘ，ｙ）（ＩＤＡ（ｉ），ｙ）（ｙ：変数）を生成する。また、鍵生成部１０７は、同一のグリッドＧｘ，ｙに位置している各センサノードＳｊに対して、各センサノードＳｊの識別情報ＩＤＳ＜ｊ＞を利用して、鍵生成用の多項式ＦＧ（ｘ，ｙ）（ＩＤＳ＜ｊ＞，ｙ）（ｙ：変数）を生成する。
【０１５９】
その後、鍵生成装置１０の通信部１１１は、データ処理装置２０、アクターノード３０およびセンサノード４０に対して、先に述べたような鍵生成情報およびシステムパラメータを含む鍵情報を配信する（ステップＳ１１７）。
【０１６０】
以上のようにして生成された鍵情報を利用することで、本実施形態に係る情報処理システム１内に含まれるデータ処理装置２０、アクターノード３０およびセンサノード４０は、互いの装置間でセキュアな情報のやり取りを行うことが可能となる。
【０１６１】
＜初期認証処理について＞
続いて、図１０Ａ〜図１２Ｂを参照しながら、本実施形態に係るアクターノード３０およびセンサノード４０で実施される初期認証処理について、詳細に説明する。図１０Ａおよび図１０Ｂは、初期認証処理において利用される一方向性関数ツリーを説明するための説明図である。図１１Ａおよび図１１Ｂは、本実施形態に係るアクターノード３０で実施される初期認証処理を説明するための流れ図である。図１２Ａおよび図１２Ｂは、本実施形態に係るセンサノード４０で実施される初期認証処理を説明するための流れ図である。
【０１６２】
［一方向性関数ツリーについて］
初期認証処理について説明するに先立ち、図１０Ａおよび図１０Ｂを参照しながら、初期認証処理において用いられる一方向性関数ツリー（ｏｎｅ  ｗａｙ  ｆｕｎｃｔｉｏｎ  ｔｒｅｅ）について、簡単に説明する。
【０１６３】
本実施形態に係る情報処理システム１では、暗号化されたメッセージの送受信を行う際に、送信側の装置と受信側の装置とで共通の鍵を共有している場合にのみ、暗号化されたメッセージの復号を行うことが可能となる。本実施形態では、各アクターノード間、データ処理装置とアクターノードとの間、および、データ処理装置とセンサノードとの間では、互いに鍵を共有しているため、セキュアにメッセージを送受信することが可能となる。しかしながら、場合によっては、同一のグリッド内に存在するセンサノード間でセキュアに情報のやり取りを実現したい場合も生じうる。そのため、本実施形態に係る情報処理システム１では、図１０Ａに示したような一方向性関数ツリーを利用し、必要最低限の情報に基づいた、同一のグリッド内に存在するセンサノードと通信を行うことが可能な鍵の生成を実現する。
【０１６４】
図１０Ａに、一方向性関数ツリーの一例を示した。本実施形態に係る一方向性関数ツリーでは、木構造の各ノードが、対称鍵に対応している。また、木構造の一番末端のノード（リーフノード）Ｋ１〜ＫＮが、各センサノードＳｊが保持している対称鍵を表す。
【０１６５】
ここで、Ｋ１というリーフノードに着目する。このノードは、あるグリッド内に存在するセンサノードＳ１に対応している。センサノードＳ１は、図１０Ａに示した鍵Ｋ１のみしか保持していない場合、同じ階層に位置するセンサノード（例えば、センサノードＳ２）とは鍵を利用したメッセージの送受信を行うことはできない。しかしながら、センサノードＳ１およびセンサノードＳ２が、親ノードであるＫ１２という鍵を算出して共有することができれば、センサノードＳ１は、センサノードＳ２とセキュアな通信を実行できる。
【０１６６】
同様にして、ノードＫ１２に対応する鍵と、ノードＫ３４に対応する鍵とを利用することで、これらのノードの親ノードであるＫ１４に対応する鍵を算出し、該当するセンサノード間で共有することで、センサノードＳ１〜Ｓ４は、セキュアな通信を実現できる。
【０１６７】
そこで、本実施形態に係る情報処理システム１では、初期認証処理に際して、各グリッドを担当するアクターノード３０が、図１０Ａに例示したような一方向性関数ツリーを生成し、担当グリッド内のセンサノード４０に対して、最低限必要な情報を通知する。なお、先の説明からも明らかなように、図１０ＡにおけるＫｊｋは、Ｓｊ，Ｓｊ＋１，・・・，Ｓｋの間で共有される鍵を表し、ルートに対応する鍵ＲＫＧ（ｘ，ｙ）は、グリッド内に位置するセンサノード４０間で共有される鍵を表す。
【０１６８】
親ノードに対応する鍵（例えば、Ｋ１に着目した場合のＫ１２）を算出する際には、本実施形態に係る情報処理システム１では、システムパラメータであるハッシュ関数Ｈを利用する。また、親ノードに対応する鍵を算出する際には、算出しようとする親ノードから枝分かれしている、着目したノードと同じ階層に位置するノード（兄弟ノード：ｓｉｂｌｉｎｇ  ｎｏｄｅ）の鍵も必要となる。以下では、図１０Ｂに示した例を参照しながら、親ノードに対応する鍵の算出方法について、具体的に説明する。
【０１６９】
なお、以下の説明では、アクターノード３０は、担当グリッド内に設置されているセンサノード４０の識別情報を把握しているものとする。アクターノード３０とセンサノード４０との間で共有される対称鍵は、以下で改めて説明するように、各ノードの識別情報を用いて生成されるものである。そのため、アクターノード３０は、担当グリッド内のセンサノード４０との間で共有する鍵を全て保持しているといえる。
【０１７０】
まず、アクターノード３０は、鍵Ｋ１と、システムパラメータであるハッシュ関数Ｈとを利用して、鍵Ｋ１のハッシュ値Ｌ１＝Ｈ（Ｋ１）を算出する。同様にして、アクターノード３０は、鍵Ｋ２〜Ｋ４それぞれとハッシュ関数Ｈとを利用して、ハッシュ値Ｌ２〜Ｌ４を算出する。
【０１７１】
続いて、アクターノード３０は、Ｋ１およびＫ２の親ノードであるＫ１２を、Ｋ１２＝Ｈ（Ｌ１｜｜Ｌ２）により算出する。ここで、記号（ｘ｜｜ｙ）は、ビット列ｘおよびビット列ｙの連結を表す記号である。同様に、アクターノード３０は、Ｋ３およびＫ４の親ノードであるＫ３４を、Ｋ３４＝Ｈ（Ｌ３｜｜Ｌ４）により算出する。
【０１７２】
次に、アクターノード３０は、算出した鍵Ｋ１２およびＫ３４と、ハッシュ関数Ｈとを利用して、ルート鍵Ｋ１４を、Ｋ１４＝Ｈ（Ｌ１２｜｜Ｌ３４）により算出する。
【０１７３】
このような計算を繰り返すことで、アクターノード３０は、図１０Ａに示したような一方向性関数ツリーのルート鍵ＲＫＧ（ｘ，ｙ）を算出することができる。
【０１７４】
また、図１０Ｂにおいて、センサノードＳ１に着目してみると、センサノードＳ１がルート鍵Ｋ１４を算出する場合、木構造から明らかなように、まず、Ｋ１２を算出して、次いでルート鍵Ｋ１４を算出することとなる。この際、センサノードＳ１は、ノードＫ１２の兄弟ノードであるノードＫ２のハッシュ値Ｌ２と、ノードＫ１４の兄弟ノードであるノードＫ３４のハッシュ値Ｌ３４とが必要となる。そこで、アクターノード３０は、以下で改めて説明するように、ルート鍵の算出に必要となる兄弟ノードに対応するハッシュ値を、兄弟ノード情報として各センサノード４０に伝送する。これにより、各センサノードＳｊは、同一グリッド内の他のセンサノード４０との間で共有される鍵を算出することができる。また、算出に必要となる最低限の情報のみを送信することとなるため、初期認証処理時にアクターノード３０からセンサノード４０へ送信されるメッセージのデータサイズを削減することが可能となる。
【０１７５】
［アクターノードにおける初期認証処理］
続いて、図１１Ａおよび図１１Ｂを参照しながら、アクターノードにおける初期認証処理の流れについて、詳細に説明する。
【０１７６】
なお、以下の説明に先立ち、アクターノード３０は、担当グリッド内に存在するセンサノード４０の識別情報を、予め把握しているものとする。また、以下では、ある一つのアクターノード３０（アクターノードＡｉ）を例にとって、説明を行うものとする。
【０１７７】
まず、アクターノードＡｉは、担当グリッド内の、未だ初期認証処理を実行していないグリッド（未認証グリッド）へ移動する（ステップＳ２０１）。次に、初期認証部３０３は、自身の識別情報ＩＤＡ（ｉ）と、グリッド内のセンサノードＳｊ（１≦ｊ≦Ｎ）の識別情報ＩＤＳ＜ｊ＞とを利用して、各センサノード用のペア鍵ＫＡ（ｉ），Ｓ＜ｊ＞を、以下の式２０１に基づいて算出する（ステップＳ２０３）。以下の式２０１から明らかなように、各センサノード用のペア鍵は、鍵生成情報に含まれる２変数多項式（より詳細には、一方の変数に自己の識別情報が代入された多項式）を用いて生成される。
【０１７８】
【数２】
2011130012.tif 000004
【０１７９】
続いて、初期認証部３０３は、算出したペア鍵ＫＡ（ｉ），Ｓ＜ｊ＞を利用して、図１０Ａ、図１０Ｂに例示したような一方向性関数ツリーＴＧ（ｘ，ｙ）生成し（ステップＳ２０５）、記憶部３１７に格納する。
【０１８０】
次に、初期認証部３０３は、自身の識別情報ＩＤＡ（ｉ）を、グリッド内に存在する全てのセンサノードＳｊに対して、同報送信する（ステップＳ２０７）。これにより、グリッド内の各センサノードＳｊにおいても、センサノードＳｊを担当するアクターノード３０との間の通信で利用されるペア鍵を算出することが可能となる。
【０１８１】
続いて、初期認証部３０３は、生成した一方向性関数ツリーＴＧ（ｘ，ｙ）を利用して、ツリー内の各センサノードＳｊに対応する兄弟ノードを特定し、兄弟ノードに関する情報（兄弟ノード情報）ＶＳ＜ｊ＞を生成する（ステップＳ２０９）。この兄弟ノードに関する情報には、兄弟ノードに対応する鍵Ｋのハッシュ値Ｌ＝Ｈ（Ｋ）が含まれている。例を挙げれば、図１０Ｂに示したような一方向性関数ツリーが生成され、センサノードＳ１に着目した場合、その兄弟ノードはＫ２およびＫ３４であり、兄弟ノードに関する情報ＶＳ＜１＞には、ハッシュ値Ｌ２およびＬ３４が含まれている。
【０１８２】
続いて、初期認証部３０３は、生成した各センサノードＳｊ用の兄弟ノード情報ＶＳ＜ｊ＞を、センサノードＳｊ用の鍵ＫＡ（ｉ），Ｓ＜ｊ＞を用いて暗号化して、暗号文とする（ステップＳ２１１）。生成される暗号文を、以下では、次の表記２０１のように表すこととする。
【０１８３】
【数３】
2011130012.tif 000005
【０１８４】
続いて、初期認証部３０３は、生成した兄弟ノード情報の暗号文を利用して、この暗号文のメッセージ認証コード（ＭＡＣ）を生成する（ステップＳ２１３）。このＭＡＣの算出には、センサノードＳｊ用の鍵ＫＡ（ｉ），Ｓ＜ｊ＞が用いられる。このＭＡＣを利用することで、メッセージを受信したセンサノードＳｊは、メッセージの正当性を確認することが可能となる。生成されるＭＡＣを、以下では、次の表記２０２のように表すこととする。
【０１８５】
【数４】
2011130012.tif 000006
【０１８６】
続いて、初期認証部３０３は、生成した兄弟ノード情報の暗号文Ｅｎｃと、そのＭＡＣとを、該当するセンサノードＳｊへ送信（ユニキャスト）する（ステップＳ２１５）。
【０１８７】
その後、アクターノードＡｉは、グリッドＧｘ，ｙ内の各センサノードＳｊから、返信メッセージを受信する（ステップＳ２１７）。この返信メッセージには、各センサノードの識別情報ＩＤＳ＜ｊ＞と、センサノードＳｊが生成したルート鍵ＲＫＧ（ｘ，ｙ）を利用した識別情報ＩＤＳ＜ｊ＞のＭＡＣとが含まれている。
【０１８８】
続いて、アクターノードＡｉの初期認証部３０３は、返信メッセージに含まれるＭＡＣを確認して（ステップＳ２１９）、各返信メッセージがセンサノードＳｊから送信された正当なメッセージである旨を確認する。このメッセージは、上述のように、センサノードＳｊが算出したルート鍵を用いて生成されているため、このメッセージの正当性を確認することで、アクターノードＡｉは、センサノードＳｊとルート鍵を共有できたことを確認することができる。
【０１８９】
次に、初期認証部３０３は、グリッドＧｘ，ｙ内に存在する全てのセンサノードＳｊから、有効なメッセージを受信したか否かを判断する（ステップＳ２２１）。全てのセンサノードＳｊから有効なメッセージを受信していない場合には、初期認証部３０３は、ステップＳ２０３に戻って初期認証処理を繰り返す。
【０１９０】
また、グリッドＧｘ，ｙ内の全てのセンサノードＳｊから有効なメッセージが得られた場合、初期認証部３０３は、鍵情報に含まれる担当グリッドに関する情報ＰＡ（ｉ）を参照して、担当グリッドが処理中の１グリッドのみかを確認する（ステップＳ２２３）。担当グリッドが１グリッドのみであった場合、初期認証部３０３は、初期認証処理を終了する。
【０１９１】
他方、担当グリッドが１グリッドだけではなかった場合、初期認証部３０３は、以下の処理を行う。すなわち、初期認証部３０３は、グリッドＧｘ，ｙ用のハッシュチェインＯｎのうちのＯｎ−１と、隣接グリッド特定情報ＧＧ（ｘ，ｙ）と、グリッド間通信用の鍵ＫＧ（ｘ，ｙ）とを含む、隣接グリッドに関する情報を生成する。その後、初期認証部３０３は、生成した隣接グリッドに関する情報を、グリッドＧｘ，ｙのルート鍵ＲＫＧ（ｘ，ｙ）を用いて暗号化し、以下の表記２０３のような暗号文を生成する（ステップＳ２２５）。
【０１９２】
【数５】
2011130012.tif 000007
【０１９３】
続いて、初期認証部３０３は、以下の表記２０４で表される、生成した隣接グリッドに関する情報の暗号文のＭＡＣを、ルート鍵ＲＫＧ（ｘ，ｙ）を用いて算出する（ステップＳ２２７）。
【０１９４】
【数６】
2011130012.tif 000008
【０１９５】
続いて、初期認証部３０３は、グリッドＧｘ，ｙ内の全てのセンサノードＳｊに対して、表記２０３の暗号文および表記２０４のＭＡＣを含むメッセージを同報送信する（ステップＳ２２９）。
【０１９６】
次に、初期認証部３０３は、処理中のグリッドが、担当グリッド中の最後のグリッドであるか否かを判断する（ステップＳ２３１）。処理中のグリッドが最後のグリッドである場合には、初期認証部３０３は、初期認証処理を終了する。また、最後のグリッドではない場合には、初期認証部３０３は、ステップＳ２０１に戻って、他のグリッドに対して初期認証処理を実行する。
【０１９７】
［センサノードにおける初期認証処理］
続いて、図１２Ａおよび図１２Ｂを参照しながら、センサノードにおける初期認証処理の流れについて、詳細に説明する。
【０１９８】
まず、グリッドＧｘ，ｙ内に位置するセンサノードＳｊの初期認証部４０３は、当該グリッドを担当するアクターノードＡｉから、アクターノードＡｉの識別情報ＩＤＡ（ｉ）を受信する（ステップＳ２５１）。
【０１９９】
次に、初期認証部４０３は、自身の識別情報ＩＤＡ＜ｊ＞と、取得したアクターノードＡｉの識別情報ＩＤＡ（ｉ）とを利用して、アクターノード用のペア鍵ＫＳ＜ｊ＞，Ａ（ｉ）を、以下の式２１１に基づいて算出する（ステップＳ２５３）。以下の式２１１から明らかなように、アクターノード用のペア鍵は、鍵生成情報に含まれる２変数多項式（より詳細には、一方の変数に自己の識別情報が代入された多項式）を用いて生成される。また、本実施形態に係る２変数多項式の性質から、式２１１で表されるペア鍵は、式２０１で表されるペア鍵と同一となる。
【０２００】
【数７】
2011130012.tif 000009
【０２０１】
次に、初期認証部４０３は、アクターノードＡｉから、表記２０１の暗号文（兄弟ノード情報の暗号文）および表記２０２で表される兄弟ノード情報の暗号文のＭＡＣを含むメッセージを受信する（ステップＳ２５５）。メッセージを受信すると、初期認証部４０３は、表記２０２で表されるＭＡＣを確認し（ステップＳ２５７）、受信したメッセージがアクターノードＡｉから送信された正当なものであることを確認する。
【０２０２】
ＭＡＣが有効なものではなかった場合には、センサノードＳｊは、ステップＳ２５１に戻って、アクターノードＡｉの識別情報を待ち受ける。
【０２０３】
他方、ＭＡＣが有効なものであった場合、初期認証部４０３は、表記２０１の暗号文を、ステップＳ２５３で生成した鍵を用いて復号する（ステップＳ２６１）。その後、初期認証部４０３は、復号の結果得られた兄弟ノード情報と、ステップＳ２５３で生成した鍵とを用いて、一方向性関数ツリーにおける自身の位置からルートに至る経路上に存在している各ノードに対応する鍵を算出する（ステップＳ２６３）。
【０２０４】
次に、センサノードＳｊの初期認証部４０３は、自身の識別情報ＩＤＳ＜ｊ＞のＭＡＣを、算出したルート鍵ＲＫＧ（ｘ，ｙ）を用いて算出する（ステップＳ２６５）。続いて、初期認証部４０３は、グリッドを担当するアクターノードＡｉおよび同一グリッド内の他のセンサノードに対して、識別情報ＩＤＳ＜ｊ＞およびそのＭＡＣを含むメッセージをユニキャストする（ステップＳ２６７）。
【０２０５】
続いて、センサノードＳｊは、同一グリッド内の他のセンサノードＳｋ（ｋ≠ｊ）から送信された、識別情報ＩＤＳ＜ｋ＞およびそのＭＡＣを含むメッセージを受信する（ステップＳ２６９）。その後、初期認証部４０３は、受信したメッセージに含まれるＭＡＣを確認する（ステップＳ２７１）。
【０２０６】
初期認証部４０３は、ＭＡＣの検証結果に基づいて、全てのセンサノードから有効なメッセージを受信したか否かを判断する（ステップＳ２７３）。全てのセンサノードから有効なメッセージを受信していない場合には、初期認証部４０３は、ステップＳ２５１に戻って、初期認証処理を繰り返す。
【０２０７】
他方、全てのセンサノードから有効なメッセージを受信した場合には、初期認証部４０３は、アクターノードＡｉから送信される隣接グリッドに関する情報を含むメッセージを待ち受ける。初期認証部４０３は、表記２０３の暗号文（隣接グリッドに関する情報の暗号文）および表記２０４で表されるＭＡＣを含むメッセージを受信すると（ステップＳ２７５）、メッセージに含まれるＭＡＣを確認する（ステップＳ２７７）。ＭＡＣの正当性が確認できた場合、初期認証部４０３は、メッセージに含まれている暗号文を復号する（ステップＳ２７９）。
【０２０８】
この隣接グリッドに関する情報には、先に説明したように、グリッドＧｘ，ｙで使用される一方向性ハッシュチェインＯｎの一部（Ｏｎ−１）が含まれている。そこで、初期認証部４０３は、ハッシュチェインＯｎ−１と、システムパラメータであるハッシュ関数Ｈとを用いてＨ（Ｏｎ−１）を算出し、算出したハッシュ値が自身の保持している一方向性ハッシュチェインＯｎの値と等しいかを検証する（ステップＳ２８１）。
【０２０９】
初期認証部４０３は、ハッシュチェインの検証に成功したか否かを判断する（ステップＳ２８３）。検証に失敗した場合には、初期認証部４０３は、ステップＳ２７５に戻って、アクターノードＡｉからのメッセージを待ち受ける。また、検証に成功した場合には、初期認証部４０３は、メッセージに含まれる隣接グリッドに関する情報（ＧＧ（ｘ，ｙ），ＫＧ（ｘ，ｙ））を、記憶部４１７に格納する（ステップＳ２８５）。
【０２１０】
本実施形態に係るアクターノードＡｉおよびセンサノードＳｊは、以上説明したような初期認証処理を実施することで、ノード間で行われる通信に利用される鍵を共有することができる。
【０２１１】
＜ブロードキャスト認証処理について＞
続いて、図１３Ａ〜図１６Ｂを参照しながら、本実施形態に係るアクターノード３０およびセンサノード４０で実施されるブロードキャスト認証処理について、詳細に説明する。図１３Ａおよび図１３Ｂは、本実施形態に係る情報処理システムにおけるメッセージの伝達方法を説明するための説明図である。図１４Ａおよび図１４Ｂは、本実施形態に係るアクターノード３０で実施されるブロードキャスト認証処理を説明するための流れ図である。図１５Ａおよび図１５Ｂは、ブルームフィルタについて説明するための説明図である。図１６Ａおよび図１６Ｂは、本実施形態に係るセンサノード４０で実施されるブロードキャスト認証処理を説明するための流れ図である。
【０２１２】
［メッセージの伝達方法について］
本実施形態に係るブロードキャスト認証処理について説明するに先立ち、本実施形態に係る情報処理システム１におけるメッセージの伝達方法について、図１３Ａおよび図１３Ｂを参照しながら、簡単に説明する。
【０２１３】
本実施形態に係るアクターノード３０およびセンサノード４０が備える通信装置（無線通信装置）の通信可能範囲には限度がある。そのため、本実施形態に係る情報処理システム１では、図１３Ａおよび図１３Ｂに示したような２種類のメッセージの伝達方法を使い分け、アクターノード３０が、担当グリッド内に存在するセンサノード４０に対して、確実にメッセージを伝達できるようにする。
【０２１４】
図１３Ａは、アクターノード３０がメッセージを送信したいグリッド（送信目標のグリッド。以下目標グリッドとも称する。）Ｇｘ，ｙが、アクターノード３０の通信可能範囲内に存在する場合の例である。かかる場合には、アクターノード３０は、送信目標のグリッドＧｘ，ｙ内に存在するセンサノード４０に対して、直接メッセージを伝達することができる（直接伝達）。
【０２１５】
また、図１３Ｂに示したように、送信目標のグリッドＧｘ，ｙがアクターノード３０の遠方にある場合も生じうる。この場合、アクターノード３０は、直接送信目標のグリッドＧｘ，ｙにメッセージを送信するのではなく、送信目標のグリッドの間に存在するグリッドを用いて、リレー方式でメッセージを伝達する（リレー伝達）。図１３Ｂに示した例では、グリッドＧｖ，ｗの近傍に位置するアクターノード３０は、グリッドＧｒ，ｓを中継グリッドとして用いて、リレー方式で、送信目標のグリッドＧｘ，ｙに対してメッセージを送信することが可能である。
【０２１６】
［アクターノードにおけるブロードキャスト認証処理］
続いて、図１４Ａおよび図１４Ｂを参照しながら、アクターノードにおけるブロードキャスト認証処理の流れについて、詳細に説明する。
【０２１７】
まず、アクターノードＡｉのブロードキャスト認証部３０９は、目標グリッドＧｘ，ｙに送信する指令（ｉｎｓｔｒｕｃｔｉｏｎ）Ｉを生成する（ステップＳ３０１）。続いて、ブロードキャスト認証部３０９は、グリッドの相対的な位置関係を表す情報を利用して、目標グリッドＧｘ，ｙに、図１３Ａに示したような直接伝達方式で指令Ｉを送信可能か、判断する（ステップＳ３０３）。
【０２１８】
ブロードキャスト認証部３０９は、直接伝達が可能だと判断した場合、ハッシュチェインの一部と、生成した指令Ｉとを用いて伝送情報を生成し、以下の式３０１で表される伝送パラメータＢＶを算出する（ステップＳ３０５）。
【０２１９】
【数８】
2011130012.tif 000010
【０２２０】
ここで、上記式３０１において、ハッシュチェインの一部Ｏｉ−１が記載されているが、この記載は、ブロードキャスト認証処理の実行時に未だ使用されていないハッシュチェインを意味する。例えば、ブロードキャスト認証処理の実行時に、ハッシュチェインＯｎ（ｎ＞１００）のうち、Ｏ１００（ｎ＝１００）までが使用されていたとすると、上記式３０１では、Ｏ９９が選択されることを意味する。
【０２２１】
他方、ブロードキャスト認証部３０９は、直接伝達を用いないと判断した場合、ハッシュチェインの一部と、生成した指令Ｉとを用いて伝送情報を生成し、各センサノードＳｊに対して、以下の式３０２で表されるＭＡＣを算出する（ステップＳ３０７）。各センサノードＳｊに対して算出されるＭＡＣは、以下の処理では、ひとまとまりのデータ（伝送パラメータ）として用いられる。この伝送パラメータを、以下では、ｐｒｅ＿ＢＶと称することとする。
【０２２２】
【数９】
2011130012.tif 000011
【０２２３】
次に、ブロードキャスト認証部３０９は、算出した複数のＭＡＣに対して、ブルームフィルタ処理を行い、ブルームフィルタからの出力を伝送パラメータＢＶとする（ステップＳ３０９）。なお、以下では、データｘに対するブルームフィルタ処理をＢＦ（ｘ）と表すこととする。この表記によれば、ステップＳ３０９における処理は、ＢＶ＝ＢＦ（ｐｒｅ＿ＢＶ）と表すことができる。
【０２２４】
ここで、一旦ブロードキャスト認証処理に関する説明を中断し、図１５Ａおよび図１５Ｂを参照しながら、ブルームフィルタについて簡単に説明する。
【０２２５】
ブルームフィルタは、ある要素が、ある集合のメンバーであるかどうかを判断するために用いられる、確率的データ構造である。このブルームフィルタは、Ｍビットのデータ配列として表される。
【０２２６】
このブルームフィルタには、データ配列のビット数Ｍ、データ配列の生成に用いるハッシュ関数の個数ｋ、および、フィルタ処理を行う要素の要素数ｎという、３つのパラメータが存在する。ここで、データ配列の生成に用いるハッシュ関数は、入力された値を、｛０，１,・・・，ｍ−１｝番目の何れかのビットへ一様に写像するハッシュ関数である。
【０２２７】
図１５Ａでは、便宜的に、Ｍ＝１２、ｋ＝２、ｎ＝３の場合におけるブルームフィルタを図示している。図の中央に位置しているＭビットのデータ列の左側に示した処理が、Ｍビットのデータ生成時（ブルームフィルタの生成時）に行われる処理の概要を示している。また、Ｍビットのデータ列の右側に示した処理が、要素がメンバーか否かの検証時に行われる処理の概要を示している。
【０２２８】
まず、Ｍビットのデータ生成時の処理について、説明する。
処理開始時におけるブルームフィルタは、Ｍ個のゼロからなるデータ配列である。ここで、１番目の要素である要素Ａを、第１のハッシュ関数Ｈ１に代入した結果、図に示したように、要素Ａは一番上のビットに写像されたものとする。この場合、一番上のビットの値は、０から１へと変化する。同様に、要素Ａを第２のハッシュ関数Ｈ２に代入した結果、図に示したように、要素Ａは上から６番目のビットに写像されたものとする。この場合、一番上から６番目のビットの値が、０から１へと変化する。
【０２２９】
以下同様にして、要素Ｂおよび要素Ｃに対して処理を行うと、図の中央に示したようなデータ配列が生成される。生成されたデータ配列が、要素が集合のメンバーであるか否かを判断するためのフィルタとして利用されるわけである。なお、図の下から２番目に位置するビットのように、複数の要素の写像が一つのビットに集中する場合も生じうる。ブルームフィルタでは、このような写像の衝突は許容し、２個以上の要素からの写像が衝突した場合であっても、該当するビットの値は１のままで維持する。
【０２３０】
次に、メンバーか否かの検証処理について説明する。
なお、検証処理に先立ち、ブルームフィルタの生成に関する上記パラメータが、何らかの方法によって検証者との間で共有されているものとする。検証者は、要素Ａが正当な要素であるか否かを判断する場合、予め共有されているハッシュ関数を用いて、Ｈ１（Ａ）およびＨ２（Ａ）を算出し、該当する双方のビットの値が共に「１」となっているかを判断する。算出した全ての値が、ブルームフィルタの値と一致した場合、要素Ａは、正当な要素であると判断する。なお、図中に示したように、正当ではない要素Ｄのハッシュ値Ｈ１（Ｄ）およびＨ２（Ｄ）が、ブルームフィルタの値と一致する場合も生じうる。しかしながら、ブルームフィルタでは、このような偽陽性（ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ）による誤判定を許容する。
【０２３１】
本実施形態に係る情報処理システム１では、このようなブルームフィルタを利用して、メッセージの受信者であるセンサノードが適式なメンバーであるか否かを判断する。より詳細には、図１５Ｂに示したように、ブロードキャスト認証部３０９は、生成したｐｒｅ＿ＢＶに含まれる各ＭＡＣについてブルームフィルタを生成し、得られたブルームフィルタをセンサノードに送信する。また、センサノード側では、各センサノードが受信したメッセージを、図１５Ｂに示したようにブルームフィルタを用いて検証する。
【０２３２】
ブロードキャスト認証処理時には、自己のノードが、メッセージの送信相手のノードからなる集合の中に含まれているかを確認する作業が行われる場合がある。この際に、上述のようなブルームフィルタを用いることで、送信相手を特定するための情報を逐一メッセージに添付する必要がなくなり、メッセージの通信量を削減することが可能となる。
【０２３３】
なお、図１５Ｂでは、ハッシュ関数の種類が２つ（ｋ＝２）の場合について図示しているが、本実施形態に係るハッシュ関数の種類が２種類に限定されるわけではない。また、生成するビット数Ｍについても、要素の個数ｎ等に応じて、任意の値に設定することが可能である。
【０２３４】
再び図１４Ａおよび図１４Ｂに戻って、本実施形態に係るアクターノード３０で実施されるブロードキャスト認証処理について説明する。
【０２３５】
アクターノードＡｉのブロードキャスト認証部３０９は、伝送パラメータＢＶを生成した後に、指令Ｉとハッシュチェインの一部とからなる伝送情報の暗号文ＥＩ（式３０３）を生成する（ステップＳ３１１）。
【０２３６】
【数１０】
2011130012.tif 000012
【０２３７】
続いて、ブロードキャスト認証部３０９は、グリッドの相対的な位置関係を表す情報を利用して、目標グリッドＧｘ，ｙに、図１３Ａに示したような直接伝達方式で指令Ｉを送信可能か、判断する（ステップＳ３１３）。なお、ブロードキャスト認証部３０９は、このステップにおいて再度伝達方式を判断するのではなく、先だって実施したステップＳ３０３での判定結果を記憶しておき、判定結果をこのステップにおける処理に流用してもよい。
【０２３８】
ブロードキャスト認証部３０９は、直接伝達が可能だと判断した場合、グリッドＧｘ，ｙに対して、直接伝達である旨を表す識別子と、目標グリッドの識別情報と、生成したデータＥＩおよびＢＶとを含むメッセージを生成し、同報送信する（ステップＳ３１５）。このステップにおいて同報送信されるメッセージの内容は、以下の表記３０１のようになる。
【０２３９】
【数１１】
2011130012.tif 000013
【０２４０】
他方、ブロードキャスト認証部３０９は、直接伝達を用いないと判断した場合、中継グリッドのルート鍵ＲＫＧ（ｖ，ｗ）を利用して生成したデータＥＩおよびＢＶを含む情報のＭＡＣを生成する（ステップＳ３１７）。ブロードキャスト認証部３０９は、生成したＭＡＣ（式３０４）を、リレー用ＭＡＣ（Ｒ＿ＭＡＣ）として利用する。
【０２４１】
【数１２】
2011130012.tif 000014
【０２４２】
続いて、ブロードキャスト認証部３０９は、リレー伝達である旨を表す識別子と、目標グリッドの識別情報と、生成したＥＩおよびＢＶと、リレー用ＭＡＣとを含むメッセージ（表記３０２）を生成し、中継グリッドＧｖ，ｗに同報送信する（ステップＳ３１９）。
【０２４３】
【数１３】
2011130012.tif 000015
【０２４４】
［センサノードにおけるブロードキャスト認証処理］
続いて、図１６Ａおよび図１６Ｂを参照しながら、センサノードにおけるブロードキャスト認証処理の流れについて、詳細に説明する。
【０２４５】
グリッドＧｖ，ｗ内に存在するセンサノードＳｊは、まず、アクターノードから同報送信されたメッセージを受信する（ステップＳ３５１）。続いて、ブロードキャスト認証部４０９は、メッセージ中に含まれる目標グリッドの識別情報ＩＤＧ（ｘ，ｙ）を参照して、目標グリッドＧｘ，ｙが、自身の位置するグリッドであるかを判断する（ステップＳ３５３）。
【０２４６】
自身の位置するグリッドが目標グリッドであった場合、ブロードキャスト認証部４０９は、以下で説明するステップＳ３５５〜ステップＳ３７１を実施する。また、自身の位置するグリッドが目標グリッドではなかった場合、ブロードキャスト認証部４０９は、メッセージをリレー伝達することとなり、以下で説明するステップＳ３７３〜ステップＳ３８７を実施する。
【０２４７】
まず、自身の位置するグリッドが目標グリッドであった場合について説明する。
この場合、ブロードキャスト認証部４０９は、受信したメッセージがどのように伝達されてきたのかを判断する（ステップＳ３５５）。この判断は、ブロードキャスト認証部４０９が受信したメッセージに含まれる識別子を参照することで行うことができる。
【０２４８】
リレー伝達によりメッセージが伝達されてきた場合、ブロードキャスト認証部４０９は、受信したメッセージに含まれるリレー用ＭＡＣ（Ｒ＿ＭＡＣ）の確認を行う（ステップＳ３５７）。リレー用ＭＡＣの確認に成功した場合、ブロードキャスト認証部４０９は、次のステップＳ３５９を実施する。
【０２４９】
他方、受信したメッセージが直接伝達により伝達されたものである場合、ブロードキャスト認証部４０９は、以下で説明するステップＳ３５９を実施する。
【０２５０】
受信したメッセージが直接伝達によるものであった場合、または、リレー用ＭＡＣの確認に成功した場合、ブロードキャスト認証部４０９は、メッセージに含まれる暗号文ＥＩを復号する（ステップＳ３５９）。その後、ブロードキャスト認証部４０９は、暗号文ＥＩの復号により得られた指令Ｉと、ハッシュチェインの一部Ｏｉ−１とを用いて、以下の式３１１で表されるパラメータｔを算出する（ステップＳ３６１）。
【０２５１】
【数１４】
2011130012.tif 000016
【０２５２】
次に、ブロードキャスト認証部４０９は、メッセージの伝達方式を、再度確認する（ステップＳ３６３）。なお、ブロードキャスト認証部４０９は、このステップにおいて再度伝達方式を判断するのではなく、先だって実施したステップＳ３５５での判定結果を記憶しておき、判定結果をこのステップにおける処理に流用してもよい。
【０２５３】
ブロードキャスト認証部４０９は、メッセージが直接伝達により伝達されたものである場合、算出したパラメータｔの値が、受信したメッセージに含まれるパラメータＢＶと等しいか否かを判断する（ステップＳ３６５）。パラメータｔ＝パラメータＢＶが成立する場合、ブロードキャスト認証部４０９は、伝達されたメッセージを受諾して（ステップＳ３６９）、ブロードキャスト認証処理を終了する。他方、パラメータｔ＝パラメータＢＶが成立しなかった場合、ブロードキャスト認証部４０９は、伝達されたメッセージを破棄して（ステップＳ３７１）、ブロードキャスト認証処理を終了する。
【０２５４】
また、ブロードキャスト認証部４０９は、メッセージがリレー伝達により伝達されたものである場合、算出したパラメータｔを、ブルームフィルタＢＦを用いて検証する（ステップＳ３６７）。すなわち、ブロードキャスト認証部４０９は、ＢＦ（ｔ）∈ＢＶが成立するか否かを判断する。ブルームフィルタの検証に成功した場合、ブロードキャスト認証部４０９は、伝達されたメッセージを受諾して（ステップＳ３６９）、ブロードキャスト認証処理を終了する。他方、ブルームフィルタの検証が成功しなかった場合、ブロードキャスト認証部４０９は、伝達されたメッセージを破棄して（ステップＳ３７１）、ブロードキャスト認証処理を終了する。
【０２５５】
続いて、目標グリッドが自身の位置するグリッドではないについて説明する。
この場合、ブロードキャスト認証部４０９は、受信したメッセージがどのように伝達されてきたのかを判断する（ステップＳ３７３）。この判断は、ブロードキャスト認証部４０９が受信したメッセージに含まれる識別子を参照することで行うことができる。
【０２５６】
受信したメッセージが直接伝達により伝達されたものである場合、ブロードキャスト認証部４０９は、自身の位置するグリッドの鍵ＲＫＧ（ｖ，ｗ）を用いて、リレー用ＭＡＣ（Ｒ＿ＭＡＣ）の確認を行う（ステップＳ３７５）。
【０２５７】
また、受信したメッセージがリレー伝達により伝達されたものである場合、ブロードキャスト認証部４０９は、送信元のグリッドＧｔ，ｕとの間で共有している鍵ＫＧ（ｔ，ｕ），Ｇ（ｖ，ｗ）を用いて、リレー用ＭＡＣ（Ｒ＿ＭＡＣ）の確認を行う（ステップＳ３７７）。
【０２５８】
続いて、ブロードキャスト認証部４０９は、グリッドの相対的な位置関係を表す情報等を利用して、自身が属するグリッドと目標グリッドとの位置関係を把握し、メッセージのリレー先のグリッドＧｒ，ｓを特定する（ステップＳ３７９）。
【０２５９】
リレー先のグリッドを特定すると、ブロードキャスト認証部４０９は、自身が位置するグリッドとリレー先のグリッドとの間で共有している鍵を用いて、データＥＩおよびＢＶを含む情報のリレー用ＭＡＣを算出する（ステップＳ３８１）。算出されるリレー用ＭＡＣ（Ｒ＿ＭＡＣ’）は、下記の式３１２で表されるものとなる。
【０２６０】
【数１５】
2011130012.tif 000017
【０２６１】
続いて、ブロードキャスト認証部４０９は、同一のグリッドに属する他のセンサノードが、受信したメッセージに対するリレー伝達処理を既に行っているか否かを確認する（ステップＳ３８３）。
【０２６２】
まず、同一のグリッドに属する他のセンサノードが、未だリレー伝達用のメッセージの同報送信を行っていない場合について説明する。
この場合、ブロードキャスト認証部４０９は、リレー伝達である旨を表す識別子と、目標グリッドの識別情報と、生成したデータＥＩおよびＢＶと、算出したリレー用ＭＡＣ（Ｒ＿ＭＡＣ’）とを含むメッセージ（表記３０３）を生成する。その後、ブロードキャスト認証部４０９は、生成したメッセージを、リレー先のグリッドＧｒ，ｓに対して同報送信する。
【０２６３】
【数１６】
2011130012.tif 000018
【０２６４】
他方、他のセンサノードが既にリレー伝達用のメッセージを同報送信している場合には、メッセージが重複して送信されることとなるため、ブロードキャスト認証部３０９は、リレー伝達処理を中止する（ステップＳ３８７）。
【０２６５】
本実施形態に係るアクターノードＡｉおよびセンサノードＳｊは、互いに連携して以上説明したようなブロードキャスト認証処理を実施することで、あるメッセージを目的とするグリッドに属するセンサノードへセキュアに同報送信することができる。
【０２６６】
＜ノード排除処理について＞
続いて、図１７Ａ〜図１８を参照しながら、本実施形態に係るアクターノード３０およびセンサノード４０で実施されるノード排除処理について、詳細に説明する。図１７Ａおよび図１７Ｂは、本実施形態に係るアクターノード３０で実施されるノード排除処理について説明するための流れ図である。図１８は、本実施形態に係るセンサノード４０で実施されるノード排除処理について説明するための流れ図である。
【０２６７】
［アクターノードにおけるノード排除処理］
まず、図１７Ａおよび図１７Ｂを参照しながら、アクターノードにおけるノード排除処理の流れについて、詳細に説明する。
【０２６８】
フィールド内のアクターノード３０またはセンサノード４０に障害が発生すると、シンクノードであるデータ処理装置２０およびアクターノード３０は、どのノードに障害が発生したのかを検出する（ステップＳ４０１）。障害が発生したノードの検出は、任意の方法を用いて行うことが可能である。
【０２６９】
次に、データ処理装置２０およびアクターノード３０は、障害が発生したノードの種類（アクターノードであるのか、センサノードであるのか）を判定する（ステップＳ４０３）。障害の発生したノードの種別に応じて、以降実施されるノード排除処理の内容が異なってくる。
【０２７０】
まず、障害の発生したノードがアクターノードＡｉである場合について説明する。
アクターノードＡｉに障害が発生している場合、データ処理装置２０の排除ノード特定部２０７は、表記４０１で表されるアクターノードＡｉの識別情報ＩＤＡ（ｉ）のＭＡＣを算出する（ステップＳ４０５）。下記の表記４０１から明らかなように、このＭＡＣは、シンクノードであるデータ処理装置２０と各センサノード４０とが共有している鍵（Ｓ−Ｓ  ｋｅｙ）を用いて生成される。表記４０１で表されるＭＡＣは、該当するグリッド内に存在する各センサノードに対して生成されるため、実際には、表記４０１で表されるＭＡＣの集合が生成されることとなる。
【０２７１】
【数１７】
2011130012.tif 000019
【０２７２】
次に、データ処理装置２０の排除ノード特定部２０７は、排除されるアクターノードＡｉを代行する１または複数のアクターノードＡｋを決定する（ステップＳ４０７）。続いて、データ処理装置２０の排除ノード特定部２０７は、決定した代行アクターノードＡｋに対して、ステップＳ４０５で生成したＭＡＣを送信する（ステップＳ４０９）。
【０２７３】
代行アクターノードＡｋのノード排除処理部３１１は、データ処理装置２０から送信されたＭＡＣを受信すると、表記４０２で表されるメッセージを生成する。このメッセージは、下記のように、ノード排除を表す識別子と、排除されるアクターノードＡｉの識別情報と、排除されるアクターノードＡｉの識別情報のＭＡＣと、を含むメッセージである。
【０２７４】
【数１８】
2011130012.tif 000020
【０２７５】
ノード排除処理部３１１は、メッセージを生成すると、生成したメッセージを該当するセンサノードＳｊに対して、ユニキャストする（ステップＳ４１１）。このメッセージを送信することで、代行アクターノードＡｋは、アクターノードＡｉが排除されることを、各センサノードＳｊに対して通知することができる。
【０２７６】
続いて、代行アクターノードＡｋの初期認証部３０３は、新たに担当することとなったグリッドに属するセンサノードと、先に説明した初期認証処理を実施する（ステップＳ４１３）。
【０２７７】
以上説明したような処理により、本実施形態に係る情報処理システム１は、障害の発生したアクターノードを排除して、新たなアクターノードとセンサノードとのデータのやり取りを維持することが可能となる。
【０２７８】
次に、障害が発生したノードが、あるグリッドＧｘ，ｙ内に存在するセンサノードＳｊである場合について説明する。この場合、センサノードＳｊが属するグリッドＧｘ，ｙを担当するアクターノードＡｉが、以下の処理を実施する。
【０２７９】
まず、アクターノードＡｉのノード排除処理部３１１は、乱数ＲＡ（ｉ）を無作為に生成し（ステップＳ４１５）、障害のあったセンサノードの鍵Ｋｊを乱数ＲＡ（ｉ）に置き換えて、該当するグリッドＧｘ，ｙの一方向性関数ツリーを更新する（ステップＳ４１７）。
【０２８０】
続いて、ノード排除処理部３１１は、更新後の一方向性関数ツリーを利用して、以下の式４０１で表される鍵更新情報ＫＵを生成する（ステップＳ４１９）。
【０２８１】
【数１９】
2011130012.tif 000021
【０２８２】
ここで、上記式４０１において、パラメータｈは、一方向性関数ツリーの高さ（階層数）を表すパラメータである。例えば図１０Ｂに示した一方向性関数ツリーでは、パラメータｈ＝３となり、ｈ＝３がルートの存在する階層を表す。また、ＶｉＳ＜ｊ＞は、一方向性関数ツリーのセンサノードＳｊに対応する鍵からルートへと至る経路において、ｈ＝ｉの階層における経路上のノードの兄弟ノードに対応する鍵を意味する。例えば図１０Ｂに示した一方向性関数ツリーにおいて、センサノードＳ１に着目した場合、Ｖ１Ｓ＜１＞は、Ｋ２であり、Ｖ２Ｓ＜１＞は、Ｋ３４となる。また、Ｋｉ＋１Ｓ＜ｊ＞は、一方向性関数ツリーのセンサノードＳｊに対応する鍵からルートへと至る経路において、ｈ＝ｉ＋１の階層における経路上のノードに対応する鍵を意味する。例えば図１０Ｂに示した一方向性関数ツリーにおいて、センサノードＳ１に着目した場合、Ｋ２Ｓ＜１＞は、Ｋ１２となる。
【０２８３】
続いて、ノード排除処理部３１１は、以下の表記４０３で表されるメッセージを生成する。次に、ブロードキャスト認証部３０９は、グリッドＧｘ，ｙに属するセンサノードＳｊ以外のセンサノードに対して、生成したメッセージを、ブロードキャスト認証処理を用いて送信する（ステップＳ４２１）。
【０２８４】
【数２０】
2011130012.tif 000022
【０２８５】
排除されるセンサノードＳｊが属するグリッド中に存在する他のセンサノードは、表記４０３で表されるメッセージを受信することで、センサノードＳｊをシステムから排除することを把握することができる。
【０２８６】
また、センサノードに発生した障害によっては、グリッド内の通信に用いられる鍵が悪意のある第三者に明らかになってしまう場合も生じうる。しかしながら、第三者が知ることができる情報は、障害の発生したセンサノードに固有な鍵に関する情報であって、悪意のある第三者は、一方向性関数ツリーの構造については、知ることができない。そこで、本実施形態に係るノード排除処理では、障害の発生したセンサノードＳｊに固有な鍵を新たに生成した乱数に置き換え、一方向性関数ツリーの構造そのものは再利用して、新たにセンサノード間通信に用いられる鍵を生成する。この鍵の再生成処理をセンサノードに実行させるために、アクターノードは、鍵更新情報ＫＵを含むメッセージを、障害の発生していない他のセンサノードに対して送信する。他のセンサノードは、メッセージに含まれるＫＵを用いることで、他のセンサノードは、グリッド内のセンサノード間通信に用いられる鍵を、容易に更新することが可能となる。
【０２８７】
［センサノードにおけるノード排除処理］
次に、図１８を参照しながら、センサノードにおけるノード排除処理の流れについて、詳細に説明する。
【０２８８】
まず、センサノードＳｊは、アクターノードＡｉからノード排除に関するメッセージを受信する（ステップＳ４５１）。
【０２８９】
続いて、センサノードＳｊのノード排除処理部４１１は、受信したメッセージに記載されている識別情報を参照して、障害が発生したノードの種類を判定する（ステップＳ４５３）。
【０２９０】
障害が発生したノードがアクターノードである場合には、ノード排除処理部４１１は、まず、データ処理装置と共有している鍵を用いてメッセージに含まれているＭＡＣを確認する（ステップＳ４５５）。ＭＡＣの正当性が確認できると、続いて、センサノードＳｊの初期認証部４０３は、新たなアクターノードと初期認証処理を実施する（ステップＳ４５７）。これにより、障害の発生したアクターノードが担当していたグリッド中に存在するセンサノードは、新たな代行アクターノードとの間でセキュアな通信環境を確立することができる。
【０２９１】
次に、障害が発生したノードが同一のグリッドＧｘ，ｙ内に存在するセンサノードＳｊである場合について説明する。
この場合、グリッド内に存在する他のセンサノードＳｋのノード排除処理部４１１は、パーティションを担当するアクターノードからブロードキャスト認証処理を利用して送信されたメッセージを受信する（ステップＳ４５９）。
【０２９２】
続いて、ノード排除処理部４１１は、受信したメッセージ中に記載されている鍵更新情報の中から、グリッド内のセンサノード間通信に用いられる鍵を更新するために利用する情報を抽出する（ステップＳ４６１）。この抽出処理は、暗号化に用いられた鍵ＶｉＳ＜ｊ＞が自己の保持している鍵ＫｉＳ＜ｋ＞と等しいものを抽出することで行われる。
【０２９３】
続いて、ノード排除処理部４１１は、鍵更新情報の中から抽出した情報を、自己の保持している鍵ＫｉＳ＜ｋ＞を用いて復号する（ステップＳ４６３）。次に、ノード排除処理部４１１は、復号した情報を用いて、一方向性関数ツリーの経路上に存在する各ノードの鍵を更新する（ステップＳ４６５）。
【０２９４】
かかる処理により、センサノードＳｋは、障害の発生したセンサノードＳｊを排除でき、また、障害の発生していないセンサノード間で、新たなセンサノード間通信用の鍵を安全に生成することが可能となる。
【０２９５】
＜担当グリッドの動的変更処理について＞
続いて、図１９Ａ〜図２３を参照しながら、本実施形態に係るアクターノード３０およびセンサノード４０で実施される動的変更処理について、詳細に説明する。図１９Ａおよび図１９Ｂは、本実施形態に係るアクターノードで実施される動的変更処理について説明するための流れ図である。図２０Ａおよび図２０Ｂは、本実施形態に係る動的変更処理について説明するための説明図である。図２１は、本実施形態に係るセンサノードで実施される動的変更処理について説明するための流れ図である。図２２は、本実施形態に係るアクターノードで実施される動的変更処理について説明するための流れ図である。図２３は、本実施形態に係るセンサノードで実施される動的変更処理について説明するための流れ図である。
【０２９６】
本実施形態に係る担当グリッドの動的変更処理は、先に説明したように、動的変更の開始に伴う処理と、通常状態への復帰処理という２種類の処理から成り立っている。以下では、まず、動的変更の開始に伴う処理について、図１９Ａ〜図２１Ｂを参照しながら、詳細に説明する。
【０２９７】
○動的変更の開始に伴う処理
［アクターノードにおける動的変更処理］
まず、図１９Ａおよび図１９Ｂを参照しながら、アクターノードにおける動的変更処理（動的変更の開始に伴う処理）について、詳細に説明する。
【０２９８】
なお、以下の説明に先立ち、イベント発生による変更後の担当グリッドに関する情報が、データ処理装置２０等から、予めアクターノードに通知されているものとする。また、アクターノードは、動的変更処理を実施する前の担当グリッドＰＡ（ｉ）、隣接グリッド特定情報ＧＧ（ｘ，ｙ）、グリッド間通信に用いる鍵ＫＧ（ｘ，ｙ）等を、イベント発生状態が終了するまで、記憶部３１７等に格納することで保持しているものとする。
【０２９９】
まず、アクターノードＡｉの動的変更部３１３は、データ処理装置２０等から通知された情報等に基づいて、変更後の担当グリッドＰ’Ａ（ｉ）を特定する（ステップＳ５０１）。続いて、動的変更部３１３は、変更後の担当グリッドに含まれる各グリッドＧｘ，ｙについて、当該グリッドに隣接するグリッドがどのグリッドであるのかを特定し、新たに隣接グリッド特定情報Ｇ’Ｇ（ｘ，ｙ）を生成する（ステップＳ５０３）。
【０３００】
次に、動的変更部３１３は、新たに生成した隣接グリッド特定情報Ｇ’Ｇ（ｘ，ｙ）を参照しながら、変更後の担当グリッドに含まれる各グリッドについて、グリッド間通信に用いる鍵を更新する（ステップＳ５０５）。動的変更部３１３は、グリッド間通信に用いる鍵それぞれについて変更の有無を確認していくが、グリッド間で鍵を共有していないグリッドが存在した場合には、乱数を無作為に発生させ、ランダムキーとする。このような処理を行うことで、新たなグリッド間通信に用いる鍵Ｋ’Ｇ（ｘ，ｙ）が生成されることとなる。
【０３０１】
続いて、ブロードキャスト認証部３０９は、変更前および変更後の担当グリッドに共通するグリッドＧｘ，ｙ（Ｇｘ，ｙ∈ＰＡ（ｉ）  ａｎｄ  Ｐ’Ａ（ｉ））に対して、変更後の情報｛Ｇ’Ｇ（ｘ，ｙ），Ｋ’Ｇ（ｘ，ｙ）｝を、ブロードキャスト認証処理を利用して送信する（ステップＳ５０７）。
【０３０２】
次に、動的変更部３１３は、動的変更の種別、すなわち、グリッドＧｘ，ｙを他のアクターノードの担当に切り替える変更なのか、グリッドＧｘ，ｙを他のアクターノードの担当から切り替える変更なのか、を判定する（ステップＳ５０９）。
【０３０３】
以下では、まず、グリッドＧｘ，ｙを他のアクターノードの担当に切り替える変更処理（以下、Ｌｅｎｄｉｎｇ処理とも称する。）の流れについて説明する。
この場合、アクターノードＡｉの動的変更部３１３は、グリッドＧｘ，ｙを担当することとなった他のアクターノードＡｊから、当該グリッドＧｘ，ｙのグリッド関連情報と、アクターノードＡｊの識別情報ＩＤＡ（ｊ）とを含む以下のメッセージを受信する（ステップＳ５１１）。ここで、グリッド関連情報とは、｛ＧＧ（ｘ，ｙ），ＫＧ（ｘ，ｙ）｝を意味する。
【０３０４】
【数２１】
2011130012.tif 000023
【０３０５】
次に、アクターノードＡｉの動的変更部３１３は、アクターノードが変更となるセンサノード（すなわち、グリッドＧｘ，ｙに属するセンサノード）に送信するための、下記表記５０２で表されるメッセージを生成する。
【０３０６】
【数２２】
2011130012.tif 000024
【０３０７】
続いて、アクターノードＡｉのブロードキャスト認証部３０９は、アクターノードが変更となるグリッドＧｘ，ｙに属するセンサノードに、表記５０２で表されるメッセージを、ブロードキャスト認証処理を利用して送信する（ステップＳ５１３）。
【０３０８】
次に、アクターノードＡｉの動的変更部３１３は、アクターノードＡｊの識別情報ＩＤＡ（ｊ）と、グリッドＧｘ，ｙのルート鍵ＲＫＧ（ｘ，ｙ）とを利用して、担当してもらうグリッドの新たな鍵ＲＫ’Ｇ（ｘ，ｙ）を生成する（ステップＳ５１５）。
【０３０９】
【数２３】
2011130012.tif 000025
【０３１０】
続いて、アクターノードＡｉの動的変更部３１３は、以下の表記５０３で表されるメッセージを生成し、アクターノードＡｊに対して送信する（ステップＳ５１７）。
【０３１１】
【数２４】
2011130012.tif 000026
【０３１２】
ここで、表記５０３において、“Ｕｐｄａｔｅ  ＯＫ”は変更完了を表す識別子である。また、｛ＯｔＧ（ｘ，ｙ）｝（ｔ＜ｉ−１）等は、グリッドＧｘ，ｙに固有の一方向性ハッシュチェインである。
【０３１３】
先だって説明したように、一方向性ハッシュチェインは、各グリッドＧｘ，ｙに固有のものであり、このハッシュチェインは、グリッドを担当するアクターノードと、グリッド内に存在するセンサノードとの間で共有されている。本実施形態に係る動的変更処理により、あるアクターノードが他のアクターノードへデータの収集を含む一連の処理を委託する場合、当該他のアクターノードは、このグリッドに固有のハッシュチェインを知ることができない。そこで、他のアクターノードへ一連の処理を委託するアクターノードは、自身が保持するハッシュチェインのうち未使用の部分を上述のメッセージに添付して、他のアクターノートへ通知する。
【０３１４】
このような処理により、グリッドＧｘ，ｙにおける一連の処理を委託するアクターノードＡｉは、委託先のアクターノードＡｊに対して、センサノードの管理に用いられる一連の情報を通知することができる。
【０３１５】
続いて、グリッドＧｘ，ｙを他のアクターノードＡｊの担当から切り替える変更処理（以下、Ｂｏｒｒｏｗｉｎｇ処理とも称する。）の流れについて説明する。
この場合、アクターノードＡｉの動的変更部３１３は、担当が変化するグリッドＧｘ，ｙのグリッド関連情報と、アクターノードＡｉの識別情報ＩＤＡ（ｉ）とを含む以下のメッセージを、他のアクターノードＡｊに対して送信する（ステップＳ５１９）。
【０３１６】
【数２５】
2011130012.tif 000027
【０３１７】
その後、アクターノードＡｉの動的変更部３１３は、従来グリッドＧｘ，ｙを担当していたアクターノードＡｊから、表記５０３で表されるメッセージを受信する（ステップＳ５２１）。続いて、アクターノードＡｉは、メッセージに含まれるハッシュチェインの一部およびグリッド内通信に用いられる鍵ＲＫ’Ｇ（ｘ，ｙ）を、記憶部３１７等に格納する（ステップＳ５２３）。
【０３１８】
また、アクターノードＡｉは、全てのグリッドＧｘ，ｙについて、各グリッドに固有な２変数多項式（正確には、２変数の一方に自己の識別情報が代入された多項式）を保持している。そこで、アクターノードＡｉは、新たに担当するグリッドＧｘ，ｙの多項式と、このグリッドに属するセンサノードＳｊの識別情報とを用いて、センサノードＳｊに固有のペア鍵を算出する。
【０３１９】
かかる処理により、アクターノードＡｉは、グリッドＧｘ，ｙのセンサノードの管理に用いられる一連の情報を取得することができる。
【０３２０】
［センサノードにおける動的変更処理］
次に、図２０を参照しながら、センサノードにおける動的変更処理（動的変更の開始に伴う処理）について、詳細に説明する。
【０３２１】
なお、以下の説明に先立ち、センサノードは、動的変更処理が実施される前の隣接グリッド特定情報ＧＧ（ｘ，ｙ）およびグリッド間通信に用いる鍵ＫＧ（ｘ，ｙ）を、イベント発生状態が終了するまで、記憶部４１７等に格納することで保持しているものとする。
【０３２２】
まず、センサノードＳｊの動的変更部４１３は、アクターノードからブロードキャスト認証処理を利用して送信されたメッセージを受信する（ステップＳ５５１）。続いて、動的変更部４１３は、受信したメッセージの内容から、自身が属するグリッドがＬｅｎｄｉｎｇ処理の対象となるグリッドであるかどうかを判断する（ステップＳ５５３）。
【０３２３】
Ｌｅｎｄｉｎｇ処理の対象となるグリッドに属するセンサノードＳｊには、アクターノードＡｉから、表記５０２に示したメッセージが送信される。そのため、センサノードＳｊは、表記５０２に示したメッセージを受信することとなる（ステップＳ５５５）。
【０３２４】
この場合、動的変更部４１３は、受信したメッセージに含まれている、新たなアクターノードの識別情報と、自己の保持しているルート鍵ＲＫＧ（ｘ，ｙ）とを利用して、式５０１により、新たなルート鍵ＲＫ’Ｇ（ｘ，ｙ）を算出する（ステップＳ５５７）。また、動的変更部４１３は、自己の保持している２変数多項式と、メッセージに含まれる新たなアクターノードの識別情報とを利用して、新たなアクターノードとの通信に用いられるペア鍵を、式５１１により算出する（ステップＳ５５７）。
【０３２５】
【数２６】
2011130012.tif 000028
【０３２６】
続いて、動的変更部４１３は、算出した鍵と、受信したメッセージの内容、（すなわち、新たなアクターノードＡｊの識別情報ＩＤＡ（ｊ）、および、グリッド関連情報）を、記憶部４１７等に格納する（ステップＳ５５９）。
【０３２７】
他方、Ｌｅｎｄｉｎｇ処理の対象ではないグリッドに属するセンサノードＳｊには、アクターノードＡｉから、｛ＧＧ（ｘ，ｙ），ＫＧ（ｘ，ｙ）｝からなるメッセージが送信される。そのため、センサノードＳｊは、｛ＧＧ（ｘ，ｙ），ＫＧ（ｘ，ｙ）｝からなるメッセージを受信することとなる（ステップＳ５６１）。そこで、センサノードＳｊは、受信したグリッド関連情報を、記憶部４１７等に格納する（ステップＳ５６３）。
【０３２８】
［具体例］
続いて、このアクターノードおよびセンサノードにおける動的変更処理（動的変更の開始に伴う処理）の具体例を、図２１Ａおよび図２１Ｂに則して説明する。
【０３２９】
以下の説明では、通常状態において図２１Ａに示したような担当グリッドとなっているＡｃｔｏｒ１〜Ａｃｔｏｒ４が、あるイベントの発生によって、図２１Ｂに示したような担当グリッドへと変化した場合を考える。なお、以下の説明では、Ａｃｔｏｒ１における処理について、簡単に説明する。Ａｃｔｏｒ２〜Ａｃｔｏｒ４における処理も、以下の説明と同様にして行われる。
【０３３０】
通常状態において、Ａｃｔｏｒ１の担当グリッドは、図２１Ａに示したように、グリッドＧ０，０〜Ｇ２，２の９個のグリッドである。この担当グリッドが、あるイベントによって、図２１Ｂのように変化した場合、グリッドＧ３，１が新たにＡｃｔｏｒ１の担当となり、グリッドＧ０，２がＡｃｔｏｒ３の担当となったことがわかる。
【０３３１】
そこで、Ａｃｔｏｒ１の動的変更部３１３は、変更の前後で共通するグリッドＧ０，０、Ｇ０，１、Ｇ１，０、Ｇ１，１、Ｇ１，２、Ｇ２，０、Ｇ２，１、Ｇ２，２に属するセンサノード対して、変更後のグリッド関連情報を送信する。
【０３３２】
この際、隣接グリッド特定情報が変更前後で変化するグリッドは、Ｇ０，１、Ｇ１，２、Ｇ２，１の３種類のグリッドのみであり、それ以外のグリッドについては、グリッド関連情報に変化はない。そこで、動的変更部３１３は、変化の無いグリッドも含めて変更の前後で共通するグリッドではなく、変化のあるグリッドにのみ、変更後のグリッド関連情報を送信するようにしてもよい。
【０３３３】
次に、グリッドを担当するアクターノードが変化する、グリッドＧ０，２に着目する。
この場合、Ａｃｔｏｒ１にとっては、グリッドＧ０，２はＬｅｎｄｉｎｇ処理の対象であり、Ａｃｔｏｒ３にとっては、グリッドＧ０，２はＢｏｒｒｏｗｉｎｇ処理の対象である。
【０３３４】
まず、Ａｃｔｏｒ３の動的変更部３１３が、自身の識別情報ＩＤＡ（３）と、グリッドＧ０，２のグリッド関連情報とを、Ａｃｔｏｒ１に送信する。その結果、Ａｃｔｏｒ１は、受信した識別情報ＩＤＡ（３）およびグリッドＧ０，２のグリッド関連情報と、Ｌｅｎｄｉｎｇ処理を表す識別子とを含むメッセージを、グリッドＧ０，２に属するセンサノードに同報送信する。
【０３３５】
また、Ａｃｔｏｒ１は、取得したＡｃｔｏｒ３の識別情報と、Ａｃｔｏｒ１が保持しているグリッドＧ０，２のルート鍵とを利用して、新たなルート鍵を生成する。その後、Ａｃｔｏｒ１は、新たに生成したルート鍵およびハッシュチェインの一部と、変更完了を表す識別子とを含むメッセージを、Ａｃｔｏｒ３に送信する。
【０３３６】
Ａｃｔｏｒ３は、グリッドＧ０，２に属するセンサノードに固有のペア鍵を算出するとともに、受信したメッセージに含まれるルート鍵およびハッシュチェインの一部を所定の箇所に格納する。
【０３３７】
また、Ｇ０，２に属するセンサノードは、Ａｃｔｏｒ１から送信されたメッセージに含まれる識別情報を用いて、新たなルート鍵と、ペア鍵とを算出し、算出した新たな鍵と、受信したメッセージに含まれるグリッド関連情報とを、所定の箇所に格納する。
【０３３８】
これにより、Ａｃｔｏｒ３は、グリッドＧ０，３における一連の処理に用いられる鍵を取得することができる。
【０３３９】
なお、グリッドＧ３，１においても同様の処理が行われるため、以下では詳細な説明は省略する。
【０３４０】
○通常状態への復帰処理
［アクターノードにおける動的変更処理］
次に、図２２を参照しながら、アクターノードにおける動的変更処理（通常状態への復帰処理）について、詳細に説明する。
【０３４１】
通常状態への復帰処理は、まず、一時的にグリッドＧｘ，ｙを担当しているアクターノードＡｊが、初期位置（すなわち、通常状態での位置）へ戻ることを決定することから開始される（ステップＳ６０１）。この際、アクターノードＡｊの動的変更部３１３は、以下の表記６０１で表される通常状態への復帰を表す識別子を含むメッセージを生成する。続いて、アクターノードＡｊのブロードキャスト認証部３０９は、現在担当しているグリッド内のセンサノードに対して、ブロードキャスト認証処理を利用して、生成したメッセージを同報送信する（ステップＳ６０３）。その後、アクターノードＡｊは、初期位置へと移動する（ステップＳ６０５）。
【０３４２】
【数２７】
2011130012.tif 000029
【０３４３】
次に、一時的にアクターノードＡｊへ処理を委託していたアクターノードＡｉの動的変更部３１３は、以下の表記６０２で表されるような、復帰確認のメッセージである旨を表す識別子を含むメッセージを生成する。また、生成されるメッセージには、グリッドを担当しているアクターノードの識別情報を返信するようなメッセージが、あわせて記載される。続いて、アクターノードＡｉのブロードキャスト認証部３０９は、担当グリッド内のセンサノードに対して、ブロードキャスト認証処理を利用して、生成したメッセージを同報送信する（ステップＳ６０７）。その後、アクターノードＡｉは、担当グリッド内のセンサノードから送信される返信メッセージを待ち受ける。
【０３４４】
【数２８】
2011130012.tif 000030
【０３４５】
アクターノードＡｉの動的変更部３１３は、担当グリッド内に存在する全てのセンサノードから、上記メッセージに対する返信メッセージが送信されたか否かに基づいて、全てのセンサノードが通常状態に復帰したか否かを判断する（ステップＳ６０９）。
【０３４６】
担当グリッド内の全てのセンサノードから適式な返信メッセージがあり、全てのセンサノードが通常状態（動的変更を行う前の状態）に復帰したと判断できる場合には、アクターノードＡｉの動的変更部３１３は、通常状態への復帰処理を終了する。ここで、アクターノードＡｉの動的変更部３１３は、返信メッセージに含まれる識別情報が、自己に割り当てられている識別情報ＩＤＡ（ｉ）であるか否かに基づいて、判断を行う。
【０３４７】
他方、担当グリッド内の全てのセンサノードから適式な返信メッセージがない場合には、アクターノードＡｉの動的変更部３１３は、強制的な復帰要請を表す識別子と、ハッシュチェインの一部とを含む、以下の表記６０３で表されるメッセージを生成する。なお、このメッセージに添付されるハッシュチェインは、未だ復帰していないグリッドに固有のハッシュチェインである。その後、アクターノードＡｉのブロードキャスト認証部３１３は、復帰していないグリッド内に位置するセンサノードに対して、動的変更部３１３が生成したメッセージを、ブロードキャスト認証処理を利用して同報送信する（ステップＳ６１１）。その後、動的変更部３１３は、ステップＳ６０９に戻って処理を継続する。
【０３４８】
【数２９】
2011130012.tif 000031
【０３４９】
以上のような処理を行うことで、一時的に担当グリッドの変更が生じていたアクターノードＡｉは、その担当グリッドが通常状態における担当グリッドへと復帰し、通常状態における動作を実施することが可能となる。
【０３５０】
［センサノードにおける動的変更処理］
次に、図２３を参照しながら、センサノードにおける動的変更処理（通常状態への復帰処理）について、詳細に説明する。
【０３５１】
一時的に担当のアクターノードが変更となっているグリッドＧｘ，ｙ内のセンサノードＳｊは、アクターノードからブロードキャスト認証処理により送信されたメッセージを受信する（ステップＳ６５１）。続いて、センサノードＳｊの動的変更部４１３は、メッセージ中に記載されている識別子を確認する（ステップＳ６５３）。
【０３５２】
動的変更部４１３は、識別子が復帰確認のメッセージである旨を表す識別子“Ｒｅｔｕｒｎ＿ｃｏｎｆｉｒｍ”であった場合、グリッドＧｘ，ｙを担当しているアクターノードＡｉの識別情報ＩＤＡ（ｉ）を、返信メッセージとして送信する（ステップＳ６５５）。返信メッセージを受信したアクターノードは、メッセージ中に記載されている識別情報を判別することで、センサノードＳｊが通常状態に復帰しているか否かを判断することが可能となる。
【０３５３】
また、動的変更部４１３は、識別子が強制的な復帰要請を表す識別子“Ｄｅｐｏｒｔａｔｉｏｎ”であった場合、メッセージ中に記載されていたハッシュチェインの有効性を検証する（ステップＳ６５７）。すなわち、動的変更部４１３は、メッセージに記載されたハッシュチェインＯｔ−１をシステムパラメータであるハッシュ関数Ｈに代入し、得られた値Ｈ（Ｏｔ−１）が、自己の保持しているハッシュチェインＯｔと等しいか否かを判断する（ステップＳ６５９）。算出した値が自己の保持しているハッシュチェインと等しい場合、動的変更部４１３は、検証に成功したと判断する。また、算出した値が自己の保持しているハッシュチェインと等しくない場合、動的変更部４１３は、検証に失敗したと判断する。
【０３５４】
ハッシュチェインの検証に成功した場合、動的変更部４１３は、自己の保持しているハッシュチェインを、メッセージ中に含まれていたハッシュチェインＯｔ−１に置き換える（ステップＳ６６１）。例えば、センサノードＳｊが未使用のまま保持しているハッシュチェインがＯ１００であり、上述のメッセージ中にＯ９０が含まれていた場合、動的変更部４１３は、ハッシュチェインＯ９１〜Ｏ１００の使用状態に関わらず、ハッシュチェインをＯ９０に置き換える。その後、動的変更部４１３は、後述するステップＳ６６５を実施する。
【０３５５】
他方、ハッシュチェインの検証に失敗した場合には、動的変更部４１３は、アクターノードＡｉから送信されたメッセージ（強制的な復帰を要請するメッセージ）を破棄し（ステップＳ６６３）、処理を終了する。
【０３５６】
また、動的変更部４１３は、ステップＳ６５３においてメッセージに含まれる識別子が復帰を表す識別子“Ｒｅｔｕｒｎ”であった場合、または、ステップＳ６６１においてハッシュチェインの置き換えを実施した場合に、以下の処理を実施する。すなわち、動的変更部４１３は、イベント発生時に使用していたグリッド関連情報を、保持していた変更前の情報（通常状態における情報）へと復旧する（ステップＳ６６５）。
【０３５７】
以上のような処理を行うことで、各グリッド内のセンサノードＳｊは、通常状態へと復帰し、通常状態における動作を実施することが可能となる。
【０３５８】
（ハードウェア構成について）
次に、図２４を参照しながら、本発明の実施形態に係る鍵生成装置１０のハードウェア構成について、詳細に説明する。図２４は、本発明の実施形態に係る鍵生成装置１０のハードウェア構成を説明するためのブロック図である。
【０３５９】
鍵生成装置１０は、主に、ＣＰＵ９０１と、ＲＯＭ９０３と、ＲＡＭ９０５と、を備える。また、鍵生成装置１０は、更に、ホストバス９０７と、ブリッジ９０９と、外部バス９１１と、インターフェース９１３と、入力装置９１５と、出力装置９１７と、ストレージ装置９１９と、ドライブ９２１と、接続ポート９２３と、通信装置９２５とを備える。
【０３６０】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、鍵生成装置１０内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバス等の内部バスにより構成されるホストバス９０７により相互に接続されている。
【０３６１】
ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。
【０３６２】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール手段（いわゆる、リモコン）であってもよいし、鍵生成装置１０の操作に対応した携帯電話やＰＤＡ等の外部接続機器９２９であってもよい。さらに、入力装置９１５は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路などから構成されている。鍵生成装置１０のユーザは、この入力装置９１５を操作することにより、鍵生成装置１０に対して各種のデータを入力したり処理動作を指示したりすることができる。
【０３６３】
出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。このような装置として、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなどがある。出力装置９１７は、例えば、鍵生成装置１０が行った各種処理により得られた結果を出力する。具体的には、表示装置は、鍵生成装置１０が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
【０３６４】
ストレージ装置９１９は、鍵生成装置１０の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種データなどを格納する。
【０３６５】
ドライブ９２１は、記録媒体用リーダライタであり、鍵生成装置１０に内蔵、あるいは外付けされる。ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体９２７に記録を書き込むことも可能である。リムーバブル記録媒体９２７は、例えば、ＤＶＤメディア、ＨＤ−ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア等である。また、リムーバブル記録媒体９２７は、コンパクトフラッシュ（登録商標）（ＣｏｍｐａｃｔＦｌａｓｈ：ＣＦ）、フラッシュメモリ、または、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等であってもよい。また、リムーバブル記録媒体９２７は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｃａｒｄ）または電子機器等であってもよい。
【０３６６】
接続ポート９２３は、機器を鍵生成装置１０に直接接続するためのポートである。接続ポート９２３の一例として、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポート等がある。接続ポート９２３の別の例として、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポート等がある。この接続ポート９２３に外部接続機器９２９を接続することで、鍵生成装置１０は、外部接続機器９２９から直接各種のデータを取得したり、外部接続機器９２９に各種のデータを提供したりする。
【０３６７】
通信装置９２５は、例えば、通信網９３１に接続するための通信デバイス等で構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード等である。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、または、各種通信用のモデム等であってもよい。この通信装置９２５は、例えば、インターネットや他の通信機器との間で、例えばＴＣＰ／ＩＰ等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置９２５に接続される通信網９３１は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
【０３６８】
以上、本発明の実施形態に係る鍵生成装置１０の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【０３６９】
また、本発明の実施形態に係るデータ処理装置２０およびアクターノード３０のハードウェア構成は、本発明の実施形態に係る鍵生成装置１０のハードウェア構成と同様であるため、詳細な説明は省略する。また、本発明の実施形態に係るセンサノード４０のハードウェア構成は、センサノード４０が各種のセンサを備える以外は本発明の実施形態に係る鍵生成装置１０のハードウェア構成とほぼ同様であるため、詳細な説明は省略する。
【０３７０】
（まとめ）
以上説明したように、本発明の実施形態に係る情報処理システムでは、あるイベントが発生した場合に、フィールド内に存在しているアクターノードが担当するグリッドを、動的に変更する。これにより、アクターノードが突発的なイベントに対応している場合であっても、他のアクターノードが、イベントに対応しているアクターノードが本来データ収集を行うはずであったセンサノードから、データを収集することが可能となる。その結果、本発明の実施形態に係る情報処理システムでは、イベント発生時においても、イベントへの対応とデータの収集の双方を両立することが可能となる。
【０３７１】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０３７２】
１    情報処理システム
１０    鍵生成装置
２０    データ処理装置
３０    アクターノード
４０    センサノード
１０１    パラメータ設定部
１０３    フィールド分割部
１０５    アクターノード割当部
１０７    鍵生成部
１０９    ハッシュチェイン生成部
１１１，２０９，３１５，４１５    通信部
１１３，２１１，３１７，４１７    記憶部
２０１    ノード制御部
２０３    データ取得部
２０５    データ処理部
２０７    排除ノード特定部
３０１，４０１    鍵取得部
３０３，４０３    初期認証部
３０５    データ収集部
３０７，４０７    データ転送部
３０９，４０９    ブロードキャスト認証部
３１１，４１１    ノード排除処理部
３１３，４１３    動的変更部
４０５    センサ部
【図１】
2011130012.tif 000032
【図２】
2011130012.tif 000033
【図３】
2011130012.tif 000034
【図４】
2011130012.tif 000035
【図５】
2011130012.tif 000036
【図６】
2011130012.tif 000037
【図７】
2011130012.tif 000038
【図８】
2011130012.tif 000039
【図９】
2011130012.tif 000040
【図１０Ａ】
2011130012.tif 000041
【図１０Ｂ】
2011130012.tif 000042
【図１１Ａ】
2011130012.tif 000043
【図１１Ｂ】
2011130012.tif 000044
【図１２Ａ】
2011130012.tif 000045
【図１２Ｂ】
2011130012.tif 000046
【図１３Ａ】
2011130012.tif 000047
【図１３Ｂ】
2011130012.tif 000048
【図１４Ａ】
2011130012.tif 000049
【図１４Ｂ】
2011130012.tif 000050
【図１５Ａ】
2011130012.tif 000051
【図１５Ｂ】
2011130012.tif 000052
【図１６Ａ】
2011130012.tif 000053
【図１６Ｂ】
2011130012.tif 000054
【図１７Ａ】
2011130012.tif 000055
【図１７Ｂ】
2011130012.tif 000056
【図１８】
2011130012.tif 000057
【図１９Ａ】
2011130012.tif 000058
【図１９Ｂ】
2011130012.tif 000059
【図２０】
2011130012.tif 000060
【図２１Ａ】
2011130012.tif 000061
【図２１Ｂ】
2011130012.tif 000062
【図２２】
2011130012.tif 000063
【図２３】
2011130012.tif 000064
【図２４】
2011130012.tif 000065