(57)【要約】【課題】  アドホックネットワーク等のネットワークシステムに、適宜、新たなノードを追加することを課題とする。【解決手段】第一の要素における第一の値と、第二の要素における第二の値とにより識別されるノードは、前記第一の値に応じた第一の鍵および前記第二の値に応じた第二の鍵であって、少なくともいずれか一方は前記複数のノードのうち少なくとも３以上のノードで共有される該第一の鍵および該第二の鍵を記憶する第一の記憶部と、前記複数のノードの各々における前記第一の要素が取りうる値の第一の範囲に関する情報と、前記第二の要素が取りうる値の第二の範囲に関する情報を記憶する第二の記憶部と、前記第一の要素が前記第一の値であって、前記第二の要素が前記第二の範囲のいずれかの値である他のノードと、前記第一の鍵を用いて通信を行う通信部とを有する。
2014016863.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークシステムに含まれる複数のノードのうちの、第一の要素における第一の値と、第二の要素における第二の値とにより識別されるノードであって、
前記第一の値に応じた第一の鍵および前記第二の値に応じた第二の鍵であって、少なくともいずれか一方は前記複数のノードのうち少なくとも３以上のノードで共有される該第一の鍵および該第二の鍵を記憶する第一の記憶部と、
前記複数のノードの各々における前記第一の要素が取りうる値の第一の範囲に関する情報と、前記第二の要素が取りうる値の第二の範囲に関する情報を記憶する第二の記憶部と、
前記第一の要素が前記第一の値であって、前記第二の要素が前記第二の範囲のいずれかの値である他のノード、または、該第一の要素が前記第一の範囲のいずれかの値であって、該第二の要素が前記第二の値である他のノードと、前記第一の鍵または前記第二の鍵を用いて通信を行う通信部とを有することを特徴とするノード。
【請求項２】
前記ネットワークシステムを管理する装置から、前記第一の範囲または前記第二の範囲が変更された旨の通知を受信した場合に、該通知に基づいて、前記第二の記憶部に記憶された情報を更新する更新部をさらに備えることを特徴とする請求項１記載のノード。
【請求項３】
前記通信部は、前記第一の鍵または前記第二の鍵を用いて、前記他のノードに、自ノードと前記他のノードとの間で暗号通信する共通鍵を送信することを特徴とする請求項１または２記載のノード。
【請求項４】
前記第一の要素が第三の値であって、前記第二の要素が第四の値である共有先ノードと、共通鍵を共有する場合、前記第一の要素に前記第一の値を、前記第二の要素に前記第四の値を有する前記他のノードを、仲介ノードとして決定する決定部をさらに有し、
前記通信部は、前記他のノードに対して、前記第一の鍵で暗号化した前記共通鍵を送信することを特徴とする請求項１または２記載のノード。
【請求項５】
前記共有先ノードと共有する前記共通鍵を生成する鍵生成部をさらに有することを特徴とする請求項４記載のノード。
【請求項６】
ネットワークシステムに含まれる複数のノードのうちの、第一の要素における第一の値と、第二の要素における第二の値とにより識別されるノードが、
前記複数のノードの各々における前記第一の要素が取りうる値の第一の範囲に関する情報と、前記第二の要素が取りうる値の第二の範囲に関する情報を記憶する第一の記憶部を参照し、前記第一の要素が前記第一の値であって、前記第二の要素が前記第二の範囲のいずれかの値である他のノードを特定し、
前記第一の値に応じた第一の鍵および前記第二の値に応じた第二の鍵であって、少なくともいずれか一方は前記複数のノードのうち少なくとも３以上のノードで共有される該第一の鍵および該第二の鍵を記憶する第一の記憶部から、該第一の鍵を取得し、
前記第一の鍵を用いて、前記他のノードと通信する処理を実行することを特徴とする通信方法。
【請求項７】
前記ノードが、
前記ネットワークシステムを管理する装置から、前記第一の範囲または前記第二の範囲が変更された旨の通知を受信し、
前記通知に基づいて、前記第一の記憶部に記憶された情報を更新する処理をさらに実行することを特徴とする請求項６記載の通信方法。
【請求項８】
前記ノードが、前記通信する処理において、
前記第一の鍵を用いて、前記他のノードに、自ノードと前記他のノードとの間で暗号通信する共通鍵を送信することを特徴とする請求項６または７記載の通信方法。
【請求項９】
前記ノードが、
前記第一の要素が第三の値であって、前記第二の要素が第四の値である共有先ノードと、共通鍵を共有する場合、前記第一の要素に前記第一の値を、前記第二の要素に前記第四の値を有する前記他のノードを、仲介ノードとして決定し、
前記通信する処理において、前記他のノードに対して、前記第一の鍵で暗号化した前記共通鍵を送信することを特徴とする請求項６または７記載の通信方法。
【請求項１０】
前記ノードが、
前記共有先ノードと共有する前記共通鍵を生成する処理をさらに実行することを特徴とする請求項９記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示する技術は、ネットワークシステムにおけるノード間で、暗号化通信を行う技術に関する。
【背景技術】
【０００２】
ネットワークの一種として、アドホックネットワークがある。アドホックネットワークとは、無線通信によってリンクする自己構成型のネットワークである。アドホックネットワークは、通信機能を有する複数の装置により構成される。なお、アドホックネットワークにおける、通信機能を有する装置は、ノードと呼ばれる。【０００３】
各ノードは、マルチホップ通信によりパケットを送受信する。マルチホップ通信は、互いの通信圏内に存在しないノード同士であっても、各ノードの通信圏内に存在する別のノードを介して通信を可能にする技術である。なお、パケットがマルチホップ通信により、始点から終点まで転送される際の経路を、転送経路と称する。転送経路は、始点から終点までの複数のノードにより形成される。【０００４】
例えば、アドホックタイプのセンサネットワークシステムとして、検針システムがある。検針システムは、各家庭の電力メータに無線通信可能なノードを組み込むことにより、アドホックネットワーク経由で各家庭の消費電力量などを収集する。検針システムでは、各電力メータが検出した各家庭の消費電力量を含むパケットが、各家庭の電力メータが備える各ノードから電力会社のシステムまで転送される。【０００５】
ここで、セキュリティの観点からパケット内のデータは暗号化されることが望ましい。つまり、データの送信元は、データ暗号化用の鍵を用いて、データを暗号化した後に、データ送信先に対して送信することが望ましい。【０００６】
例えば、共通鍵暗号方式を採用する場合には、データの送信元とデータの送信先とで、データ暗号用の鍵を共有しておく必要があるが、共有の為に、各ノードに事前に配布されたＰａｉｒｗｉｓｅ  Ｋｅｙを利用する技術がある（例えば、非特許文献１）。【０００７】
当該技術においては、センサネットワーク内の各ノードには、事前に、各々ＩＤ（ｘ，ｙ）が付与されるとともに、ＩＤに応じた複数のＰａｉｒｗｉｓｅ  Ｋｅｙが配布される。そして、２つのノード間のみで共有されるＰａｉｒｗｉｓｅ  Ｋｅｙを用いて、データの送信元とデータの受信先との間で、データ暗号化用の鍵が共有される。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ｈａｏｗｅｎ  Ｃｈａｎ，  Ａｄｒｉａｎ  Ｐｅｒｒｉｇ、  「ＰＩＫＥ：  Ｐｅｅｒ  Ｉｎｔｅｒｍｅｄｉａｒｉｅｓ  ｆｏｒ  Ｋｅｙ  Ｅｓｔａｂｌｉｓｈｍｅｎｔ  ｉｎ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ」  ＩＥＥＥ、  ＩＥＥＥ  ＩＮＦＯＣＯＭ  ２００５、  ｐｐ．５２４−５３５
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来のセンサネットワークは、まず、ｍの２乗個のノードを、仮想的にｍ行×ｍ列に配置する。そして、行と列の２つの要素からなるＩＤ（ｉ，ｊ）が、各々のノードに付与される。なお、以下、パケット内のデータ暗号化用の鍵を、共通鍵と称する。また、共通鍵を共有する為に用いられる鍵であって、各ノードに事前に配布される鍵を事前共有鍵と称する。【００１０】
図１は、従来のセンサネットワークにおける事前共有鍵の配布方法を説明する為の図である。図１においては、合計９個のノードが、３行×３列に配列されていると仮定し、各々のノードにＩＤが付与される。例えば、ノードＡには（０，０）、ノードＢには（０，１）等のＩＤが付与される。【００１１】
そして、各ノードには、複数の事前共有鍵が配布される。事前共有鍵は、あるノードと、行又は列のいずれかが共通である他のノードとの間で、各々共有される鍵である。【００１２】
例えば、ノードＡ（０，０）は、ノードＢ（０，１）との事前共有鍵ＡＢを有する。また、ノードＡ（０，０）は、ノードＣ（０，２）との事前共有鍵ＡＣを有する。さらに、ノードＡは、ノードＤ（１，０）との事前共有鍵ＡＤを有する。また、ノードＡは、ノードＧ（２，０）との事前共有鍵ＡＧを有する。なお、各事前共有鍵は、２ノード間で共有される鍵であって、他の事前共有鍵とは異なる鍵である。【００１３】
図１のように９個のノードから構成されるセンサネットワークを構築する場合には、各ノードには、４つの事前共有鍵が予め配布されることとなる。【００１４】
ノードＡ（０，０）は、ノードＢ（０，１）とは事前共有鍵ＡＢを共有している為、事前共有鍵ＡＢを用いて、ノードＡとノードＢとの暗号化通信に用いる共通鍵を共有することができる。一方、ノードＡ（０，０）が有する事前共有鍵と、ノードＩ（２，２）が事前共有鍵とは異なる。そこで、ノードＡは、ノードＡと事前共有鍵を共有し、かつノードＩと事前共有鍵を共有するノードを利用する。図１の例では、ノードＣまたはノードＧを利用して、ノードＡは、ノードＣとの暗号化通信に用いる共通鍵を共有する。【００１５】
ここで、センサネットワーク等のアドホックネットワークに対して、新たなノードを追加する場合を考える。従来のセンサネットワークでは、新たなノードにＩＤを付与すると共に、新たなノードに対して、行または列が等しいノードと共有する事前共有鍵を設定する必要がある。さらに、すでに稼働しているセンサネットワーク内のノードに対しても、新たなノードと共有する事前共有鍵を各々配布しなければならない。【００１６】
例えば、図１のノードＡ乃至Ｉに、新たにノードＪを追加する際に、ノードＪにＩＤ（０，３）を付与したとする。ここで、ノードＪとノードＡ、ノードＪとノードＢ、ノードＪとノードＣ等の間で各々固有の事前共有鍵を、ノードＪに配布すると共に、すでに稼働しているノードＡ乃至Ｃに対しても付与しなければならない。【００１７】
しかし、新たに事前共有鍵を既存ノードに配布する手法は、煩雑な管理が必要となる。さらに、事前共有鍵という極めて重要な情報を、通信により配布しなければならない。特に無線通信の場合は、セキュリティの観点から現実的ではない。【００１８】
そこで、本実施例は、アドホックネットワーク等のネットワークシステムに、適宜、新たなノードを追加する事が可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の一観点によれば、ネットワークシステムに含まれる複数のノードのうちの、第一の要素における第一の値と、第二の要素における第二の値とにより識別されるノードは、前記第一の値に応じた第一の鍵および前記第二の値に応じた第二の鍵であって、少なくともいずれか一方は前記複数のノードのうち少なくとも３以上のノードで共有される該第一の鍵および該第二の鍵を記憶する第一の記憶部と、前記複数のノードの各々における前記第一の要素が取りうる値の第一の範囲に関する情報と、前記第二の要素が取りうる値の第二の範囲に関する情報を記憶する第二の記憶部と、前記第一の要素が前記第一の値であって、前記第二の要素が前記第二の範囲のいずれかの値である他のノード、または、該第一の要素が前記第一の範囲のいずれかの値であって、該第二の要素が前記第二の値である他のノードと、前記第一の鍵または前記第二の鍵を用いて通信を行う通信部とを有する。
【発明の効果】
【００２０】
本発明の一観点によれば、アドホックネットワーク等のネットワークシステムに、適宜新たなノードを追加することができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、従来技術の事前共有鍵の配布方法を説明する為の図である。
【図２】図２は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。
【図３】図３は、本実施例における事前共有鍵の配布方法を説明する為の図である。
【図４】図４は、ネットワークシステムへの新たなノードの追加可能性について説明する為の図である。
【図５】図５は、ノードの機能ブロック図である。
【図６】図６は、データパケットのデータ構成例である。
【図７】図７は、ハローパケットのデータ構成例である。
【図８】図８ＡおよびＢは、事前共有鍵情報のデータ構成例を示す図である。
【図９】図９は、ルーティングテーブルのデータ構成例である。
【図１０】図１０ＡおよびＢは、範囲情報のデータ構成例を示す図である。
【図１１】図１１は、共通鍵テーブルのデータ構成例を示す図である。
【図１２】図１２は、管理装置４０の機能ブロック図である。
【図１３】図１３は、管理テーブルのデータ構成例を示す図である。
【図１４】図１４は、サーバＳの機能ブロック図である。
【図１５】図１５は、ノードＮがデータパケットを送信する際のフローチャートである。
【図１６】図１６は、共有処理のフローチャートである。
【図１７】図１７は、パケットの受信する際のフローチャート（その１）である。
【図１８】図１８は、パケットの受信する際のフローチャート（その２）である。
【図１９】図１９は、サーバＳにおける追加処理およびノードＮにおける追加処理のフローチャートである。
【図２０】図２０は、ノードＮのハードウェア構成例である。
【図２１】図２１はサーバＳおよび管理装置４０のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下に添付図面を参照して、この発明にかかるノード、通信方法、およびシステムの実施の形態を詳細に説明する。
【００２３】
図２は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。ネットワークシステムは、複数のノードＮと、シンクノードＳＮと、サーバＳとを含む。まず、図２を用いて、本実施の形態に係るネットワークシステムおよび、ネットワークシステムにおけるパケットの送信について、説明する。また、本実施の形態に係るネットワークシステムは、アドホックネットワークシステムである。
【００２４】
アドホックネットワークを流れるパケットには、データパケットとハローパケットとが含まれる。データパケットは、ユニキャストされるパケットであって、転送経路に従って、始点から終点までデータを送信する為のパケットである。ハローパケットは、ブロードキャストされるパケットであって、転送経路を生成する為のパケットである。
【００２５】
サーバＳとシンクノードＳＮとはインターネット、ＬＡＮ、ＷＡＮなどの通常ネットワーク２００を介して接続されている。シンクノードＳＮとノードＮａ乃至Ｎｈとは、アドホックネットワーク１００を介して接続されている。アドホックネットワーク１００内には、複数のノードＮが設けられる。図２では、代表としてノードＮａ〜Ｎｈを示している。
【００２６】
サーバＳは、アドホックネットワークを管理するコンピュータである。例えば、各ノードからデータを収集し、蓄積する。また、サーバＳは、シンクノードＳＮやノードＮに対して、各種命令を行う。
【００２７】
シンクノードＳＮは、アドホックネットワーク１００と通常ネットワーク２００とを接続する中継機器である。シンクノードＳＮは、アドホックネットワーク１００のプロトコルの形式の情報と通常ネットワーク２００のプロトコルの形式の情報の両方を送受信可能である。
【００２８】
また、シンクノードＳＮは、アドホックネットワーク１００と通常ネットワーク２００との間で情報をプロトコル変換することにより、通信を行う。例えば、アドホックネットワーク１００内のノードＮのいずれかからサーバＳ宛に送信されたデータパケットは、シンクノードＳＮにてプロトコル変換される。その後、シンクノードＳＮが、データパケットを、通常ネットワーク２００に送信することで、データパケットはサーバＳに到達する。
【００２９】
また、サーバＳやシンクノードＳＮからそれぞれのノードＮ宛てに送信されたデータパケットは、シンクノードＳＮにてプロトコル変換され、シンクノードＳＮからアドホックネットワーク１００内の各ノードＮにデータパケットとして送信される。
【００３０】
各ノードＮは、所定の通信圏内で通信可能な他ノードと通信が可能な装置である。例えば、ノードＮｃは、ノードＮｃにおいて生成したルーティングテーブルにしたがって、ノードＮｂとパケットの送受信を行う。また、ノードＮは、センサから取得した値を、アドホックネットワーク経由で、サーバＳへ送信する。なお、ルーティングテーブルは、転送経路に関する情報をもつテーブルである。
【００３１】
アドホックネットワーク１００では、すべてのノードＮａ乃至Ｎｈが直接シンクノードＳＮと通信できる必要はなく、他のノードを経由する事で、各ノードＮａ乃至Ｎｈは、シンクノードＳＮと通信する。このため、アドホックネットワーク１００では、一部のノードがシンクノードＳＮと通信可能であればよい。図２では、シンクノードＳＮと直接通信可能なノードは、ノードＮａ，Ｎｄであるとする。
【００３２】
また、各ノードＮは、共通鍵によってパケット内の少なくとも一部のデータを暗号化する。共通鍵は、データパケット内のデータを暗号化する為の鍵である。本実施例においては、共通鍵として、セッション毎に変更されたセッション鍵が利用される。つまり、転送経路の始点となるノードと終点となるノードとの間でのみ共有された共通鍵が利用される。セッション毎に異なる共通鍵を利用することで、ネットワーク全体のセキュリティを向上させることができる。
【００３３】
さらに、各ノードは、共通鍵を共有する為に、事前共有鍵を利用する。事前共有鍵は、共通鍵を共有する為に用いられる鍵であって、各ノードが、アドホックネットワークを形成する前に、後述の手法により配布される鍵である。
【００３４】
次に、転送経路について説明する。各ノードＮは、周囲のノードＮと通信状況に関する情報に基づいて、ルーティングテーブルを生成する。このように、各ノードが通信状況に応じて、適宜ルーティングテーブルを生成することで、ノードＮｆとノードＮｇが通信不能となった場合でも、新たな送信ルートの設定が可能となる。例えば、ノードＮｇは、ノードＮｅを経由する新たなルートを構築することができる。
【００３５】
図２には、アドホックネットワークの各々のノードが、最終送信先としてサーバＳ（またはシンクノードＳＮ）を指定して、データパケットを送信する場合の転送経路の例が、示されている。例えば、アドホックネットワーク１００を構成するノードＮａ乃至Ｎｈにより、ある時点において、４つの転送経路Ｒ１乃至Ｒ４が形成されているものとする。各ノードＮａ〜Ｎｈは、各々検出したデータをルーティングされた転送経路Ｒ１〜Ｒ４に従ってシンクノードＳＮに送信する。
【００３６】
具体的には、転送経路Ｒ１は、ノードＮｃとノードＮｂとノードＮａとシンクノードＳＮとを含むルートである。転送経路Ｒ２は、ノードＮｅとノードＮｄとシンクノードＳＮとを含むルートである。転送経路Ｒ３は、ノードＮｇとノードＮｆとノードＮｄとシンクノードＳＮとを含むルートである。転送経路Ｒ４は、ノードＮｈとノードＮｆとノードＮｄとシンクノードＳＮとを含むルートである。
【００３７】
例えば、ノードＮｃがデータパケットをシンクノードＳＮへ送信する際には、ノードＮｃは、シンクノードＳＮに応じた共通鍵を用い、データパケットを暗号化する。そして、ノードＮｃは、最終の送信先をシンクノードＳＮに指定したうえで、ルーティングテーブルに基づき、ノードＮｂへデータパケットを送信する。
【００３８】
暗号化されたデータパケットは、ノードＮｂおよびＮａを経て、最終送信先であるシンクノードＳＮにより受信される。そして、シンクノードＳＮは、ノードＮｃが生成したデータパケットを、ノードＮｃと共有した共通鍵で復号する。なお、データパケットは、シンクノードＳＮにて復号されずに、サーバＳにて復号されてもよい。ただし、サーバＳは、ノードＮｃとの共通鍵を管理する。
【００３９】
このように、ノードＮｃとサーバＳ（またはシンクノードＳＮ）とが共通鍵を共有している状態であれば、データパケットを暗号化することができる。その一方で、共通鍵が共有されていない装置を最終送信先として、データパケットを送信する場合には、まず、共通鍵を共有する必要がある。例えば、ノードＮｃがノードＮｂに対してデータパケットを送信する場合に、ノードＮｃとノードＮｂとの間での共通鍵が未共有であるとする。
【００４０】
本実施例においては、共通鍵を共有していないノードと暗号化通信を行う為に、事前共有鍵を利用して共通鍵を共有する。さらに、事前共有鍵を共有していないノード同士で共通鍵を共有する場合は、仲介ノードを経由して共通鍵を共有する。詳細は後述する。
【００４１】
図３は、本実施例における事前共有鍵の配布方法を説明する為の図である。なお、事前共有鍵の生成および配布は、ノードがアドホックネットワークを形成する前に行われる。
【００４２】
また、事前共有鍵の生成および配布は、管理装置が実行する。ただし、サーバＳが管理装置の機能を兼ねることも可能であるが、ここでは、管理装置は、サーバＳとは異なるコンピュータとする。
【００４３】
まず、管理装置は、複数のノードを、仮想的にｍ行×ｎ列に配置する。なお、仮想的な配置は、アドホックネットワーク形成時（図２）の配置とは、関連する必要はない。
【００４４】
そして、管理装置は、各ノードにＩＤを付与する。ＩＤは、第一の要素と第二の要素とを含む。本実施例においては、行を第一の要素、列を第二の要素とする。各ノードは、ＩＤにおける第一の要素の値と、第二の要素の値との組み合わせで識別される。図３では、第一の要素の値はｉ、第二の要素の値はｊであって、各ノードにはＩＤ（ｉ，ｊ）が付与される。なお、ｉは、０乃至ｍ−１までの整数であって、ｊは、０乃至ｎ−１までの整数である。
【００４５】
さらに、管理装置は、各要素の値ごとに、一つの事前共有鍵を生成する。図３では、管理装置は、要素の値ｉ毎に、事前共有鍵Ｋｉを生成し、要素の値ｊ毎に事前共有鍵Ｌｊを生成する。例えば、第一の要素の値「０」に対して、事前共有鍵Ｋ０を生成する。また、第二の要素の値「０」に対して、事前共有鍵Ｌ０を生成する。
【００４６】
そして、管理装置は、各要素の値毎に生成された事前共有鍵を、各ノードに付与したＩＤに応じて、各ノードに配布する。例えば、ＩＤ（０，０）であるノードには、事前共有鍵Ｋ０と事前共有鍵Ｌ０とが配布される。なお、事前共有鍵の配布はオフラインで行われてもよい。
【００４７】
管理装置によりＩＤおよび事前共有鍵が付与されたノードは、図２に示すアドホックネットワークを形成する。ここで、例えば、図２におけるノードＮｆには、ＩＤ（０，０）が割り当てられているとする。ノードＮｆは、事前共有鍵Ｋ０とＬ０とを有する。また、ノードＮｇには、ＩＤ（３，０）が割り当てられているとする。ノードＮｇは事前共有鍵Ｋ３とＬ０とを有する。
【００４８】
ノードＮｆ（０，０）とノードＮｇ（３，０）とは、お互いが所有する事前共有鍵Ｌ０を用いて、共通鍵を共有する。ノードＮｆとノードＮｇとは、共通鍵を利用し、データパケットを暗号化通信することができる。
【００４９】
一方、ノードＮｈは、ＩＤ（３，２）が割り当てられているとする。ノードＮｈは、事前共有鍵Ｋ３とＬ２を有する。ここで、ノードＮｆ（０，０）とノードＮｈ（３，２）は、共通の事前共有鍵を持たない。
【００５０】
そこで、ノードＮｆ（０，０）は、事前共有鍵Ｋ０または事前共有鍵Ｌ０を有し、共通鍵を共有したい相手ノードＮｈ（３，２）と事前共有鍵Ｋ３または事前共有鍵Ｌ２を共有する仲介ノードを特定する。一方の要素について、自ノードのＩＤの値を有し、他方の要素について、相手ノードのＩＤの値を持つノードを、仲介ノードとして特定する。例えば、ノードＮｆは、自ノードＮｆのＩＤ（０，０）と共通鍵を共有したい相手ノードＮｈのＩＤ（３，２）とから、仲介ノードとしてＩＤ（３，０）または（０，２）のノードを特定する。
【００５１】
例えば、ノードＮｆは、仲介ノードとして、ＩＤ（３，０）であるノードＮｇを特定したとする。まず、自ノードと仲介ノードとで共有する事前共有鍵Ｌ０を用いて、ノードＮｈ用の共通鍵を暗号化する。そして、暗号化した共通鍵を、ノードＮｇへ送信する。なお、共通鍵とともに、共通鍵の共有先となるノードＮｈのＩＤ（３，２）も送信される。
【００５２】
そして、ノードＮｇは、事前共有鍵Ｌ０を用いて、受信した共通鍵を復号する。ノードＮｇは、自ノードのＩＤ（３，０）と、共有先となるノードＮｈのＩＤ（３，２）に基づいて、共有する事前共有鍵Ｋ３を特定する。そして、事前共有鍵Ｋ３を用いて共通鍵を暗号化する。
【００５３】
事前共有鍵Ｋ３で再暗号化された共通鍵は、ノードＮｈへ送信される。暗号化された共通鍵を受信した場合、ノードＮｈは、事前共有鍵Ｋ３を用いて、共通鍵を復号する。以上の処理によって、ＮｆとＮｈとの間で共通鍵を共有することができる。
【００５４】
なお、図２では、ノードＮｆとノードＮｇとノードＮｈは、直接通信ができる位置に配置されているとして図示しているが、直接的に通信できる位置に配置されている必要はない。アドホック通信によれば、最終送信先に到達するためのルートが適宜形成される為、事前共有鍵によって暗号化された共通鍵は、最終送信先までマルチホップ通信される。
【００５５】
次に、図４を用いて、ネットワークシステムへの新たなノードの追加可能性について説明する。図４は、ネットワークシステムへの新たなノードの追加可能性について説明する為の図である。なお、管理装置が、新たなノードの追加に関わる処理を実行してもよいし、サーバＳが同様の処理を行ってもよい。本実施例においては、新たなノードの追加時には、サーバＳが当該処理を行うとする。
【００５６】
サーバＳは、すでに付与したＩＤについて、第一の要素の値の範囲、第二の要素の値の範囲に係る情報を保持する。図３の状態であれば、ｉの最大値３であるため、第一の要素ｉの値の範囲は、０乃至３が記憶される。また、ｊの最大値２であるため、第二の要素ｊの値の範囲は、０乃至２が記憶される。さらに、サーバは、各要素の値毎の事前共有鍵を記憶する。例えば、第一の要素ｉが「０」に対応する事前共有鍵はＫ０であるという情報を記憶する。
【００５７】
サーバＳは、新たなノードを追加する場合に、新たなノードに対して、新たなＩＤを付与する。新たなＩＤは、一方の要素の値は、既存のノードのいずれかと共通する値をであって、他方の要素の値は、既存のノードのいずれとも共通しない新たな値を含む。ただし、新たな値は、複数の新たなノードに対して、同一の値が付与される。
【００５８】
例えば、図４では、４個の新たなノードを追加する。４個のノードの各々には、第一の要素ｉには、すでに付与された０乃至３までのいずれかの値が設定される。一方、第二の要素ｊには、すでに付与された０乃至２の値以外の値「３」が、４つのノード共通で設定される。追加されたノードに対して、例えば、ＩＤ（０，３）、（１，３）、（２，３）、（３，３）が付与される。
【００５９】
さらに、サーバＳは、新たな値に応じた事前共有鍵を生成する。例えば、第二の要素ｊの新たな値「３」に対応する事前共有鍵Ｌ３を生成する。次に、サーバＳは、新たなノードの各々に対して、新たなノードのＩＤに応じた事前共有鍵を配布する。
【００６０】
例えば、ノードＩＤ（０，３）には、事前共有鍵Ｋ０およびＬ３が付与される。事前共有鍵Ｋ０は、既存のノードの少なくとも一つであるノード（０，０）、（０，１）、（０，２）と、共有された事前共有鍵である。また、事前共有鍵Ｌ３は、新たなノードの少なくとも一つ（１，３）、（２，３）、（３，３）と、共有された事前共有鍵である。
【００６１】
以上のように、ＩＤのいずれかの要素が、すでに稼働しているノードと同じ値をＩＤに含むことは、当該値に対応する事前共有鍵を、すでに稼働しているノードのいずれかと共有することになる。また、新たなノードのＩＤのいずれかの要素には、複数の新たなノードで共有する値であって、新たな値が設定される。つまり、新たな値に応じた新たな事前共有鍵が、新たなノードに配布される。
【００６２】
一方、既存のノードは、新たにノードが追加されたことに伴って、新たな事前共有鍵を持つ必要はない。新たなノード間では、当該新たなノードに対してのみ事前共有鍵を配布することで、事前共有鍵が漏えいする可能性を低減することができる。
【００６３】
図５は、ノードＮの機能ブロック図である。ノードＮは、通信部１０、制御部１０１、記憶部１０２を有する。
【００６４】
通信部１０は、他のノードＮや、シンクノードＳＮと通信を行う。例えば、他のノードＮに対してデータパケットを送信したり、ハローパケットをブロードキャストする。
【００６５】
制御部１０１は、ノード全体の処理を制御する。制御部１０１は、パケット生成部１１、暗号処理部１２、決定部１３、鍵生成部１４、更新部１５を含む。
【００６６】
記憶部１０２は、各種処理に必要な情報を記憶する。記憶部１０２は、事前共有鍵記憶部１６、ルーティングテーブル記憶部１７、範囲情報記憶部１８、共通鍵記憶部１９を有する。
【００６７】
続いて、制御部１０１に含まれる各処理部について説明する。パケット生成部１１は、ハローパケットやデータパケットを生成する。本実施例においては、データパケットには、共通鍵を共有する為の共通鍵データパケットと、各ノードが取得したデータを送信する為のセンシングデータパケットとが含まれる。
【００６８】
図６は、データパケットのデータ構成例である。データパケット２０には、ヘッダ情報格納部２１、ペイロードデータ格納部２２がそれぞれ割り当てられる。ヘッダ情報格納部２１には、ヘッダ情報が格納される。ヘッダ情報は、ローカル送信元アドレス、ローカル送信先アドレス、グローバル送信元アドレス、グローバル送信先アドレス、パケットタイプを含む。なお、ヘッダ情報は、さらに、各アドレスに対応するノードＩＤを、含んでも良い。
【００６９】
ローカル送信元アドレスは、マルチホップ通信を構成する各通信において、データパケットを送信する装置のアドレスに関する情報である。ローカル送信元アドレスは、各々の通信において、送信を行う装置のアドレスに書き換えられる。
【００７０】
ローカル送信先アドレスは、マルチホップ通信を構成する各通信において、データパケットの送信先となる装置のアドレスに関する情報である。ローカル送信先アドレスは、各々の通信において、送信先となる装置のアドレスに書き換えられる。
【００７１】
グローバル送信元アドレスは、マルチホップ通信の始点となる装置のアドレスに関する情報である。例えば、転送経路の始点に相当する装置のアドレスである。グローバル送信元アドレスは、ひとつの転送経路内でデータパケットが転送されている限りは、書きかえられない。
【００７２】
グローバル送信先アドレスは、データパケットの最終的な送信先となる装置のアドレスに関する情報である。例えば、グローバル送信先アドレスは、転送経路の終点に相当する装置のアドレスである。グローバル送信先アドレスは、ひとつの転送経路内でデータパケットが転送されている限りは、書きかえられない。
【００７３】
また、本実施例においては、グローバル送信元とグローバル送信先とで共有された鍵によって、データパケットが暗号化される。データパケットが、共通鍵データパケットである場合には、データパケットは事前共有鍵で暗号化される。一方、データパケットがセンサデータパケットである場合には、データパケットは共通鍵で暗号化される。
【００７４】
パケットタイプは、パケットの種類を識別する為の情報である。例えば、データパケットのうち、共通鍵データパケットは、パケットタイプ「１」が設定される。データパケットの内、センシングデータパケットは、パケットタイプ「２」が設定される。後述のハローパケットには、例えば、パケットタイプ「３」が設定される。
【００７５】
ペイロードデータ格納部２２には、ペイロードデータが格納される。ペイロードデータは、パケットタイプに応じた情報を含む。共通鍵データパケットにおけるペイロードデータは、共有先情報および共有元情報、事前共有鍵で暗号化された共通鍵を含む。共有先情報は、共通鍵を共有する相手ノードのＩＤである。共有元情報は、共通鍵を生成したノードのＩＤである。
【００７６】
また、データパケットがセンシングデータパケットの場合は、ペイロードデータは、センサから取得したデータ等を含む。
【００７７】
図７は、ハローパケットのデータ構成例である。データパケット３０には、ヘッダ情報格納部３１、ペイロードデータ格納部３２がそれぞれ割り当てられる。ヘッダ情報格納部３１には、ヘッダ情報が格納される。ヘッダ情報は、宛先アドレス、送信元アドレス、パケットタイプを含む。
【００７８】
宛先アドレスは、ブロードキャスト専用の特別なアドレスである。例えば、宛先アドレスは、予め用意されたアドレス「２５５．２５５．２５５．２５５」である。各ノードは、個別に設定されたアドレス宛に送信されたパケットを受信するが、当該特別なアドレス宛に送信されたパケットも受信する。つまり、特別なアドレスが設定されたパケットは、当該パケットを送信したノードと通信可能な範囲に存在する全てのノードにより受信される。
【００７９】
送信元アドレスは、ハローパケットを送信した装置のアドレスに関する情報である。なお、ハローパケットもマルチホップ通信される場合は、送信元アドレスとしてグローバル送信元アドレスとローカル送信元アドレスの２種類を有しても良い。
【００８０】
パケットタイプは、パケットの種類を識別する為の情報である。ハローパケットの場合は、例えば、「２」が設定される。
【００８１】
ペイロードデータ格納部３２には、ペイロードデータが格納される。ハローパケットにおけるペイロードデータは、例えば、ハローパケットを生成したノードのＩＤが含まれる。各ノードＮが、ハローパケットを受信することで、ハローパケットの送信元であるノードのＩＤと、アドレスとを取得することができる。
【００８２】
ハローパケットをノード間でやり取りする事で、ノード間の通信強度を特定することができる。例えば、あるノードからハローパケットを大量に受信する場合には、通信強度が大きいということになる。そして、ノードＮは、通信強度に基づいて、ルーティングテーブルを生成する。なお、ルーティングテーブルの生成は、従来と同様の手法を採用することができる。
【００８３】
図５の説明に戻る。暗号処理部１２は、データパケットの種類に応じた鍵を用いてデータを暗号化する。また、自ノードがグローバル送信先として設定されたデータパケットを受信した場合に、パケットタイプに応じた鍵を用いて、データを復号する。
【００８４】
例えば、共通鍵データパケットを送信する場合に、暗号処理部１２は、グローバル送信先に応じた事前共有鍵を用いて暗号化する。センサデータパケットを送信する場合には、グローバル送信先に応じた共通鍵を用いる。
【００８５】
また、自ノードがグローバル送信先として設定された共通鍵データパケットを受信した場合であって、かつ共有先も自ノードである場合には、暗号処理部１２は、グローバル送信元に応じた事前共有鍵を用いて、共通鍵を復号する。一方、自ノードがグローバル送信先として設定された共通鍵データパケットを受信した場合であって、かつ共有先も自ノードでない場合には、自ノードは仲介ノードであることになる。したがって、暗号処理部１２は、後述のとおり、共通鍵データパケットの再暗号化を行う。
【００８６】
決定部１３は、共通鍵を共有する際に、自ノードと相手ノードとで事前共有鍵を共有しているか判定するとともに、共有していない場合に、仲介ノードを決定する。
【００８７】
例えば、決定部１３は、自ノードのＩＤ（ｘ，ｙ）と相手ノードのＩＤ（ｕ，ｖ）とを比較する。第一の要素の値または第二の要素の値が同一である場合は、決定部１３は、相手ノードは共通の事前共有鍵ＫｘまたはＬｙを有すると判定する。つまり、共通鍵を共有する際に、暗号処理部１２に対して、事前共有鍵ＫｘまたはＬｙを用いるよう、命令する。
【００８８】
また、決定部１３は、第一の要素の値および第二の要素の値がともに同一でない場合は、仲介ノードとなるノードを決定する。具体的には、決定部１３は、自ノードのＩＤと相手ノードのＩＤとに基づいて、仲介ノードを決定する。
【００８９】
例えば、決定部１３は、自ノードＩＤにおける第一の要素の値ｘと、相手ノードＩＤにおける第二の要素の値ｖとを、ＩＤに持つノード（ｘ，ｖ）を仲介ノードに決定する。また、例えば、自ノードＩＤにおける第二の要素の値ｙと、相手ノードＩＤにおける第一の要素の値ｕとを、ＩＤに持つノード（ｕ，ｙ）を仲介ノードに決定する。
【００９０】
鍵生成部１４は、自ノード（ｘ，ｙ）と相手ノード（ｕ，ｖ）とで共通鍵を共有していない場合に、新たに共通鍵を、生成する。そして、鍵生成部１４は、生成した共通鍵を、共通鍵記憶部１９へ、相手ノードのＩＤ（ｕ，ｖ）に対応付けて記憶する。
【００９１】
更新部１５は、新たなノードが追加された旨の通知を、他の装置から受信した場合に、範囲情報記憶部に記憶された範囲情報を、更新する。範囲情報は、ネットワークシステム内の各ノードにおける各要素が取りうる値の範囲に関する情報である。通知は、新たなノードの追加に伴い変更された範囲情報を含む。
【００９２】
事前共有鍵記憶部１６は、事前共有鍵情報を記憶する記憶部である。事前共有鍵情報は、自ノードのＩＤを構成する各要素の値と、各要素の値に対応する事前共有鍵とを含む情報である。
【００９３】
図８ＡおよびＢは、事前共有鍵情報のデータ構成例を示す図である。事前共有鍵記憶部１６は、事前共有鍵情報として、自ノードＩＤを構成する各要素の値と、各要素の値に応じた事前共有鍵の情報を対応づけて記憶する。
【００９４】
例えば、ノードＮのＩＤが（ｘ，ｙ）である場合、第一の要素ｉの値「ｘ」に対応づけて、事前共有鍵Ｋｘが記憶される。第二の要素ｊの値「ｙ」に対応づけて、事前共有鍵Ｌｙが記憶される。
【００９５】
ルーティングテーブル記憶部１７は、ルーティング情報を記憶する記憶部である。ルーティング情報は、転送経路に関する情報である。なお、ルーティング情報の一例は、ルーティングテーブルである。
【００９６】
図９は、ルーティングテーブルのデータ構成例である。ルーティングテーブルは、グローバル送信先アドレス、グローバル送信先ＩＤ、ローカル送信先アドレス、ローカル送信先ＩＤ、評価値を対応付けて記憶する。
【００９７】
なお、ルーティングテーブルの作成手法は、従来の手法が採用される。また、ノードＮは、ルーティングテーブルを作成する手段を有し、ハローパケットに基づいて、ルーティングテーブルを生成する。そして、生成されたルーティングテーブルは、ルーティングテーブル記憶部１７へ格納される。なお、ルーティングテーブルは定期的に更新される。
【００９８】
項目「グローバル送信先アドレス」には、データパケットのグローバル送信先となるノードのアドレスが記述される。項目「グローバル送信先ＩＤ」には、グローバル送信先となるノードのＩＤが記述される。
【００９９】
項目「ローカル送信先アドレス」には、自ノードと直接通信可能な他のノードのアドレスが記述される。項目「ローカル送信先ＩＤ」には、ローカル送信先となるノードのＩＤが記述される。なお、各種アドレスおよびＩＤは、ハローパケットから取得される。
【０１００】
項目「評価値」は、各ローカル送信先と自ノードとの通信状況に応じて算出された評価値が格納される。なお、評価値は、例えば、通信強度が大きいほど、大きな値が設定される。ルーティングテーブルを生成する手段は、単位時間あたりに受信したハローパケットの数に基づいて、ハローパケットの送信元に関する評価値を算出する。
【０１０１】
図９は、ノードＮｆのルーティングテーブルを示している。例えば、ノードＮｆが、シンクノードＳＮへパケットを送る場合、評価値が最も大きい「Ｎｄのアドレス」がローカル送信先アドレスとして取得される。
【０１０２】
また、図９の例では、ノードＮｆが、ノードＮｈへデータパケットを送る場合には、ローカル送信先として、ノードＮｈが決定される。なお、これは、１ホップで、データパケットが所望のノードへ到達する経路であることを示す。ただし、ノードＮｆがノードＮｈへデータパケットを送る場合には、ＮｆとＮｈとが共通鍵を共有している必要がある。共通鍵を未共有である場合には、まず、ノードＮｆは、共通鍵の共有処理を行う。
【０１０３】
次に、図５における範囲情報記憶部１８は、範囲情報を記憶する。範囲情報は、ネットワークシステム内の各ノードにおける各要素が取りうる値の範囲に関する情報である。ｍ行×ｎ列に仮想的にノードを配置して、ＩＤを付与する場合には、第一の要素の値は、０からｍ−１までの整数となる。また、第二の要素の値は、０からｎ−１までの値となる。
【０１０４】
図１０ＡおよびＢは、範囲情報のデータ構成例を示す図である。各々の要素と、当該要素が取りうる値の範囲に関する情報を対応づけて記憶する。図１０Ａの例では、ネットワークシステム内のノードは、第一の要素の値は、最小値「０」であることを示している。また、第一の要素の値は、最大値「ｍ−１」であることを示している。つまり、ネットワークシステム内のノードは、第一の要素の値として、０からｍ−１までの整数をとることを示している。
【０１０５】
また、図１０Ｂの例では、ネットワークシステム内のノードは、第二の要素の値として、０からｎ−１までの整数をとることを示している。また、範囲情報として、各値が取りうる範囲の最大値のみを記憶してもよい。
【０１０６】
ここで、新たなノードが追加された場合に、全ノードが、ｍ´行×ｎ´列に仮想的にノードが配置されるとする。サーバから第一の要素の値は、０からｍ´−１まで、第二の要素が０からｎ´−１までという範囲情報を含む通知を受信した場合に、更新部１５は、範囲情報のうち、各要素の最大値を、更新する。
【０１０７】
例えば、第一の要素については、最大値「ｍ−１」を「ｍ´−１」に更新する。また、第二の要素については、最大値「ｎ−１」を「ｎ´−１」に更新する。
【０１０８】
共通鍵記憶部１９は、共通鍵情報を記憶する記憶部である。共通鍵情報は、共通鍵を共有する共有先と、共通鍵とを含む情報である。共通鍵情報の一例は、共通鍵テーブルである。
【０１０９】
図１１は、共通鍵テーブルのデータ構成例を示す図である。共通鍵テーブルは、共有先ＩＤと、共通鍵とを対応付けて記憶する。図１１は、ノードＮｆ（０，０）が有する共通鍵テーブルである。図１１は、ノードＮｆは、ノードＩＤ（３，０）と、共通鍵Ｍ１をすでに共有していることを示す。つまり、ノードＩＤ（３，０）であるノードＮｇと、データパケットをやり取りする場合には、共通鍵Ｍ１を用いる。なお、Ｍ１やＭ２として、各々「０ｘ２５６４５１」や「０ｘ６４５１２５」の値が格納される。
【０１１０】
また、ノードＮｆが、新たな共通鍵Ｍ３を、ノードＮｈと共有した場合には、共通鍵テーブルに、ノードＮｈのＩＤ（３，２）と共通鍵Ｍ３とが対応付けて、新たに格納される。
【０１１１】
次に、管理装置の機能ブロックについて説明する。図１２は、管理装置４０の機能ブロック図である。なお、本実施例においては、ネットワークシステムの稼働前およびネットワークシステムの稼働後において、管理装置４０が各ノードにＩＤや事前共有鍵の付与を行う。よって、管理装置４０は、必ずしもネットワークシステムに含まれる必要はなく、独立したコンピュータであってもよい。
【０１１２】
ただし、管理装置の機能を、サーバＳが有するとしても良い。つまり、サーバＳが、全てのノードに対してＩＤおよび事前共有鍵の付与を行っても良い。この場合には、後述するサーバＳは、図１４の処理部に加えて、図１２に示す処理部をさらに備える。
【０１１３】
管理装置４０は、通信部４１、ＩＤ生成部４２、鍵生成部４３、決定部４４、管理テーブル記憶部４５、範囲情報記憶部４６を有する。
【０１１４】
通信部４１は、他の装置と通信を行う。例えば、ノードＮに、ＩＤとＩＤに応じた事前共有鍵を送信する。なお、通信網を介せずに、オフラインでＩＤおよび事前共有鍵を付与してもよい。
【０１１５】
ＩＤ生成部４２は、各ノードＮについて、一意のＩＤ（ｉ，ｊ）を生成する。まず、ＩＤ生成部４２は、第一の要素の値の範囲と、第二の要素の値の範囲とを範囲情報記憶部４６に格納する。そして、第一の要素の値の範囲のいずれかの値と、第二の要素の値の範囲の何れかの値を有するＩＤを生成する。さらに、ＩＤ生成部４２は、生成したＩＤを各ノードに送信する様、通信部４１に命令する。また、ＩＤを付与した時点における範囲情報を、各ノードに送信する様、通信部４１に命令する。
【０１１６】
本実施例においては、ある時点で一つのネットワークシステムに加入させるノードの数に応じて、初めに、各要素の値の範囲が決定される。例えば、図３のように、１２個のノードを含むネットワークシステムの稼働を想定している場合には、管理者により、４行×３列という情報が入力される。
【０１１７】
そして、ＩＤ生成部４２は、第一の要素の範囲情報として、最小値「０」から最大値「３」までという範囲情報を生成する。また、第二の要素の範囲情報として、最小値「０」から最大値「２」までという情報を生成する。次に、ＩＤ生成部４２は、範囲情報に基づいてＩＤを付与するとともに、範囲情報を範囲情報記憶部４６に格納する。
【０１１８】
また、新たなノードが追加される場合にも、新たに追加されるノードの数に応じて、管理者は、各要素の範囲を増加させる入力を行う。入力に応じて、範囲情報記憶部４６は更新される。ＩＤ生成部４２は、新たなノードのＩＤとして、いずれかの要素が更新前の範囲情報内の値であって、他の要素が新たな値であるＩＤが設定される。
【０１１９】
鍵生成部４３は、事前共有鍵を生成する。例えば、各要素の値毎に一意の事前共有鍵ＫｉまたはＬｊを生成する。そして、値と、該値に対応する事前共有鍵を、管理テーブル記憶部４５に格納する。例えば、第一の要素の値の範囲が、０からｍ−１である場合は、値各々について、事前共有鍵を生成するとともに、各値と、各事前共有鍵を対応付けて格納する。また、新たなノードが追加されたことに伴い、範囲情報が更新された場合には、新たに範囲情報に含まれる値について、事前共有鍵を生成する。
【０１２０】
決定部４４は、各ノードに配布する事前共有鍵を、ＩＤに基づいて決定する。そして、決定部４４は、ＩＤの各要素の値に対応する事前共有鍵を、管理テーブル記憶部４５から取得する。そして、通信部４１に、ノードＮへの事前共有鍵の送信を命令する。
【０１２１】
管理テーブル記憶部４５は、事前共有鍵を管理する為の管理テーブルを記憶する。図１３は、管理テーブルのデータ構成例を示す図である。管理テーブルは、各要素の値と、各要素の値毎に一意の事前共有鍵を対応付けて記憶する。例えば、Ｋ０やＫ１として、例えば、各々「０ｘ７６３５４２」や「０ｘ２４３５４５」の値が格納される。
【０１２２】
なお、図１３に示す管理テーブルは、第一の要素に関する事前共有鍵の管理テーブルである。なお、第二の要素に関する管理テーブルも同様に、保持する。
【０１２３】
決定部４４は、管理テーブル記憶部４５を参照し、例えば、第一の要素が「０」であるノードには、事前共有鍵Ｋ０を配布することを決定する。
【０１２４】
範囲情報記憶部４６は、付与されたＩＤの値の範囲に関する範囲情報を記憶する。なお、ノードＮにおける範囲情報記憶部１８と同様のデータ構成である。
【０１２５】
次に、サーバＳの機能ブロックについて説明する。図１４は、サーバＳの機能ブロック図である。サーバＳは、ネットワークシステム稼働後に、各ノードＮに対して、ネットワークシステムへの新たなノードの追加を通知するコンピュータである。先にも述べたとおり、全ノードに対するＩＤおよび事前共有鍵の付与は、管理装置４０が行うこととして説明する。ただし、サーバＳが、少なくとも一部のノードにＩＤおよび事前共有鍵の付与を行ってもよい。
【０１２６】
サーバＳは、通信部５１、更新部５２、通知生成部５３、範囲情報記憶部５４、管理テーブル記憶部５５を有する。通信部５１は、シンクノードＳＮや管理装置４０と通信を行う。
【０１２７】
例えば、通信部５１は、管理装置４０から、範囲情報を受信する。なお、新たなノードの追加に伴い、範囲情報が更新された場合にも、通信部５１は、新たな範囲情報や新たな事前共有鍵の情報を受信する。また、範囲情報は、管理装置４０から受信せずに、管理者によって、入力されても良い。例えば、新たなノードを、各地点に設置が完了した時点で、範囲情報が入力される。
【０１２８】
また、通信部５１は、範囲情報の更新に伴って、シンクノードＳＮ経由で、新たなノードの追加に関わる通知を各ノードＮへ送信する。
【０１２９】
更新部５２は、各種記憶部に記憶された情報の更新を行う。例えば、管理装置４０から新たな範囲情報を受信した場合、新たな範囲情報で、過去の範囲情報を書き換える。また、新たな範囲情報に伴い追加された新たな事前共有鍵を、管理テーブル記憶部５５に追加する。
【０１３０】
通知生成部５３は、新たなノードの追加の通知を生成する。例えば、通知は、更新された範囲情報を含む。なお、当該通知は、シンクノードＳＮから各ノードＮに対してブロードキャストされる。
【０１３１】
範囲情報記憶部５４は、範囲情報を記憶する。なお、範囲情報記憶部５４は、ノードＮにおける範囲情報記憶部１８と同様のデータ構成である。例えば、管理装置から、範囲情報を取得し、格納する。また、管理者から、範囲情報の入力を受け付ける構成としてもよい。
【０１３２】
管理テーブル記憶部５５は、事前共有鍵を管理する為の管理テーブルを記憶する。管理装置４０における管理テーブル記憶部４５と同様のデータ構成である。
【０１３３】
サーバＳと管理装置４０は、ネットワークを介して接続されていても、独立していても良い。また、サーバＳは、従来のアドホックネットワークシステムにおけるサーバＳとしての機能も有する。
【０１３４】
次に、ノードＮがデータパケットを送信する際の処理について説明する。図１５は、ノードＮがデータパケットを送信する際のフローチャートである。ノードＮが、データパケットのグローバル送信先となる場合は、図１５および図１６の処理を実行する。ノードＮのＩＤを（ｘ、ｙ）とする。また、図１５の処理に先駆けて、ノードＮの制御部１０１は、センサから、センサデータを取得しているとする。そして、所定のタイミングで、センサデータをセンサデータパケットとして、送信する処理を実行する。
【０１３５】
パケット生成部１１は、ノードＮのプロセッサー制御の下、データパケットのグローバル送信先（ｕ，ｖ）を決定する（Ｏｐ．１）。なお、データパケットは、センサデータパケットである。例えば、センサデータの内容に応じて、グローバル送信先が決定される。
【０１３６】
ｕは第一の要素の値であって、第一の要素の範囲情報に含まれる値である。つまり、範囲情報が、０からｍ−１である場合には、ｕは０からｍ−１までの値の何れかである。ｖは第一の要素の値であって、第二の要素の範囲情報に含まれる値である。つまり、範囲情報が、０からｎ−１である場合には、ｖは０からｎ−１までの値の何れかである。
【０１３７】
さらに、Ｏｐ．１において、パケット生成部１１は、グローバル送信先（ｕ，ｖ）に対応するアドレスをルーティングテーブルから取得するとともに、ヘッダ情報格納部２１へ格納する。また、グローバル送信先アドレスとして、自ノード（ｘ、ｙ）のアドレスを設定する。さらに、パケットタイプとして、センサデータパケットを示す「２」を設定する。
【０１３８】
次に、暗号処理部１２は、共通鍵記憶部１９を参照し、グローバル送信先（ｕ，ｖ）に応じた共通鍵を有しているか判定する（Ｏｐ．２）。グローバル送信先（ｕ，ｖ）に応じた共通鍵を有している場合には（Ｏｐ．２ＹＥＳ）、暗号処理部１２は、共通鍵でセンサデータを暗号化する（Ｏｐ．３）。さらに、暗号処理部１２は、暗号化したセンサデータを含むペイロードデータを、ペイロードデータ格納部２２へ格納する。また、暗号処理部１２は、センサデータ以外のデータも暗号化してもよい。
【０１３９】
次に、パケット生成部１１は、ルーティングテーブルを参照して、ローカル送信先を決定する（Ｏｐ．４）。具体的には、パケット生成部１１は、グローバル送信先アドレスをキーにルーティングテーブルを参照する。そして、パケット生成部１１は、グローバル送信先アドレスに対応づいたローカル送信先アドレスの内、もっとも評価値が大きいローカル送信先アドレスを取得する。
【０１４０】
そして、パケット生成部１１は、取得したローカル送信先アドレスを、ヘッダ情報格納部２１に設定する。また、ローカル送信先アドレスとして、自ノードのアドレスを設定する。
【０１４１】
次に、通信部１０は、センサデータパケットを送信する（Ｏｐ．５）。そして、センサデータパケットがローカル送信先に受信された場合には、ローカル送信先に当たるノードからの応答を受信する（Ｏｐ．６）。なお、応答は、グローバル送信先から受信するものとしてもよい。
【０１４２】
以上の処理によって、センサデータパケットは、グローバル送信元から、グローバル送信先に対して送信される。さらに、センサデータパケットは、グローバル送信先に応じた共通鍵で暗号化されている為、転送経路内での情報漏洩を防止することができる。
【０１４３】
一方、ノード（ｘ，ｙ）とノード（ｕ，ｖ）とが共通鍵を持たない場合は（Ｏｐ．２ＮＯ）、ノードＮは共有処理を行う（Ｏｐ．７）。そして、共有処理が終了した場合には、Ｏｐ．２へ戻り、センサデータパケットの送信処理を引き続き行う。
【０１４４】
ノードＮ（ｘ，ｙ）が、グローバル送信先（ｕ，ｖ）を、共通鍵の共有先として設定した場合の共有処理について  説明する。図１６は、共有処理のフローチャートである。
【０１４５】
まず、決定部１３は、自ノードのＩＤと共有先のＩＤとを比較して、第一の要素の値が等しいか否かを判定する（Ｏｐ．１０）。第一の要素の値が等しい（ｕ＝ｘ）場合は（Ｏｐ．１０ＹＥＳ）、決定部１３は、共通鍵データパケットのグローバル送信先を、共有先（ｕ，ｖ）に決定する。
【０１４６】
そして、パケット生成部１１は、当該決定を受けて、共通鍵データパケットのグローバル送信先を、共有先（ｕ，ｖ）に決定する（Ｏｐ．２０）。パケット生成部１１は、グローバル送信先（ｕ，ｖ）のアドレスを、グローバル送信先アドレスに設定する。また、グローバル送信先アドレスとして、自ノードのアドレスを設定する。さらに、パケットタイプとして、共通鍵データパケットを示す「１」を設定する。
【０１４７】
一方、第一の要素の値が等しくない（ｕ≠ｘ）場合は（Ｏｐ．１０ＮＯ）、第二の要素の値が等しいか否かを判定する（Ｏｐ．１１）。第二の要素の値が等しい（ｖ＝ｙ）場合は（Ｏｐ．１１ＹＥＳ）、決定部１３は、共通鍵データパケットのグローバル送信先を、共有先（ｕ，ｖ）に決定する（Ｏｐ．２０）。
【０１４８】
ここで、自ノードのＩＤにおける第一の要素の値または第二の要素の値と、共有先のＩＤにおける第一の要素の値または第二の要素の値が等しいことは、事前共有鍵を共有していることを示す。したがって、共有された事前共有鍵を用いて、自ノードと共有先とは、共通鍵を共有することができる。
【０１４９】
一方、第二の要素の値が等しくない（ｖ≠ｙ）場合は（Ｏｐ．１１ＮＯ）、自ノードのＩＤ（ｘ，ｙ）と共有先のＩＤ（ｕ，ｖ）とに基づいて、決定部１３は仲介ノードを決定する（Ｏｐ．１２）。例えば、決定部１３は、自ノードのＩＤ（ｘ，ｙ）の第一の要素の値と、共有先のＩＤ（ｕ，ｖ）の第二の要素の値を有するノード（ｘ，ｖ）を仲介ノードに決定する。また、決定部１３は、自ノードのＩＤ（ｘ，ｙ）の第二の要素の値と、共有先のＩＤ（ｕ，ｖ）の第一の要素の値を有するノード（ｕ，ｙ）を仲介ノードに決定する。
【０１５０】
そして、パケット生成部１１は、仲介ノードを、共通鍵データパケットのグローバル送信先に設定する（Ｏｐ．１３）。具体的には、パケット生成部１１は、グローバル送信先に対応するアドレスをルーティングテーブルから取得するとともに、ヘッダ情報格納部２１へ格納する。さらに、グローバル送信先アドレスとして、自ノードのアドレスを設定するとともに、パケットタイプとして、共通鍵データパケットを示す「１」を設定する。
【０１５１】
次に、鍵生成部１４は、自ノード（ｘ，ｙ）と共有先（ｕ，ｖ）との間での暗号通信に用いられる共通鍵を、生成する（Ｏｐ．１４）。例えば、共通鍵は、乱数生成器を利用して、生成される。
【０１５２】
そして、決定部１３は、グローバル送信先のＩＤと自ノードのＩＤとに基づいて、事前共有鍵を決定する（Ｏｐ．１５）。例えば、決定部１３は、グローバル送信先が共有先（ｕ，ｖ）であって、ｕとｘが等しい場合は、事前共有鍵Ｋｘに決定する。グローバル送信先が共有先（ｕ，ｖ）であって、ｖとｙが等しい場合には事前共有鍵Ｌｙに決定する。
【０１５３】
また、グローバル送信先が仲介ノード（ｘ，ｖ）である場合には、事前共有鍵Ｋｘに決定する。グローバル送信先が仲介ノード（ｕ，ｙ）である場合には、事前共有鍵Ｌｙに決定する。
【０１５４】
そして、暗号処理部１２は、決定部１３により決定された事前共有鍵を利用して、共通鍵を暗号化する（Ｏｐ．１６）。さらに、暗号処理部１２は、暗号化された共通鍵を、ペイロードデータ格納部２２へ格納する。また、パケット生成部１１は、ペイロードデータ格納部２２に、共通鍵の共有先として、共有先のＩＤ（ｕ，ｖ）を格納するとともに、共有元として、自ノードのＩＤ（ｘ，ｙ）を格納する。
【０１５５】
次に、パケット生成部１１は、ルーティングテーブルを参照し、グローバル送信先に基づいて、ローカル送信先を決定する（Ｏｐ．１７）。Ｏｐ．１７において、パケット生成部１１は、ローカル送信先に対応するアドレスをルーティングテーブルから取得するとともに、ヘッダ情報格納部２１へ格納する。また、ローカル送信先アドレスとして、自ノードのアドレスを設定する。
【０１５６】
つぎに、通信部１０は、共通鍵データパケットを、ローカル送信先アドレスに対して送信する（Ｏｐ．１８）。そして、データパケットがローカル送信先に受信された場合には、ローカル送信先に当たるノードからの応答を受信する（Ｏｐ．１９）。
【０１５７】
以上のように、自ノードと共有先との間で事前共有鍵を共有している場合には、グローバル送信先と共有先とが同一のノードとなる。そして、自ノードと共有先との間で共通の事前共有鍵を用いて、共通鍵を共有先と共有することができる。
【０１５８】
自ノードと共有先との間で事前共有鍵を共有していない場合には、仲介ノードをグローバル送信先として、共通鍵データパケットを送信する。そして、仲介ノード経由で、共有先に共通鍵パケットが送信される。仲介ノードを経由して、共通鍵の共有を試みることができる。さらに、仲介ノードは、自ノードと少なくとも一つの事前共有鍵を共有し、共通鍵の共有先と少なくともひとつの事前共有鍵を共有しているノードとすることができる。仲介ノードとなるノードを最低数（１つ）とすることで、ネットワークの輻輳を低減することができる。
【０１５９】
次に、ノードＮがパケットを受信した場合の処理について、説明する。図１７および図１８は、パケットの受信する際のフローチャートである。ノードＮがパケットを受信する側である場合は、図１７および図１８の処理を実行する。
【０１６０】
通信部１０は、パケットを受信する（Ｏｐ．３０）。制御部１０１は、グローバル送信先が自ノードであるかを判定する（Ｏｐ．３１）。例えば、グローバル送信先アドレスに自ノードのアドレス、またはブロードキャスト用のアドレスが設定されている場合に、受信したパケットは、自ノード宛のパケットであると判定する。なお、Ｏｐ．３０においてハローパケットを受信した場合には、Ｏｐ．３１の処理においては、必ずＹＥＳの判定がなされることとなる。
【０１６１】
グローバル送信先が自ノードでない場合は（Ｏｐ．３１ＮＯ）、通信部１０は、受信したパケットを転送する（ＯＰ．４１）。パケット生成部１１が、自身のルーティングテーブルに従って、グローバル送信先に応じて、ローカル送信先アドレスを書き換える。さらに、ローカル送信元アドレスを、自ノードのアドレスで書きかえる。そして、処理を終了する。
【０１６２】
一方、グローバル送信先が自ノードである場合は（Ｏｐ．３１ＹＥＳ）、制御部１０１は、受信したパケットのパケットタイプが「１」であるか判定する（Ｏｐ．３２）。パケットタイプが「１」でない場合は（Ｏｐ．３２ＮＯ）、パケット生成部１１は、パケットタイプが「２」であるか判定する（Ｏｐ．３８）。
【０１６３】
パケットタイプが「２」でない場合は（Ｏｐ．３８ＮＯ）、制御部１０１はルーティングテーブルを更新する（Ｏｐ．４０）。グローバル送信先が自ノードであって、パケットタイプが「２」でないパケットは、本実施例においては、ハローパケットということになる。なお、ルーティングテーブルの生成および更新は従来の手法を採用することができる。そして、処理を終了する。
【０１６４】
一方、パケットタイプが「２」である場合は（Ｏｐ．３８ＹＥＳ）、データパケットを共通鍵で復号する（Ｏｐ．３９）。具体的には、パケットタイプが「２」であるということは、受信したパケットはセンサデータパケットであることを示す。よって、暗号処理部１２は、自ノードとグローバル送信元とで共有している共通鍵を、共通鍵記憶部１９から取得する。そして、共通鍵を用いて、データパケット内のセンサデータを復号する。そして、処理を終了する。
【０１６５】
一方、Ｏｐ．３２において、パケットタイプが「１」である場合は（Ｏｐ．３２ＹＥＳ）、受信したパケットは共通鍵データパケットであることになる。よって、決定部１３は、共通鍵データパケットのペイロードデータ格納部２２を参照し、共有先として自ノードが設定されているか判定する（Ｏｐ．３３）。
【０１６６】
ここで、共有先が自ノードである場合は（Ｏｐ．３３ＹＥＳ）、決定部１３は、自ノードとグローバル送信元と共通の事前共有鍵を特定する（Ｏｐ．３４）。具体的には、まず、決定部１３は、ヘッダ情報を参照し、グローバル送信元アドレスに対応するＩＤを取得する。なお、ヘッダ情報にＩＤを含まない場合は、ルーティングテーブルを参照し、グローバル送信元アドレスに対応するＩＤを検索する。
【０１６７】
そして、決定部１３は、取得したＩＤに含まれる、第一の要素の値、または第二の要素の値のうち、自ノードのＩＤと同じ値に対応する事前共有鍵を、特定する。
【０１６８】
次に、暗号処理部１２は、特定された事前共有鍵を事前共有鍵記憶部１６から取得すると共に、共通鍵を復号する（Ｏｐ．３５）。そして、制御部１０１は、共通鍵と、共有元のＩＤとを対応付けて、共通鍵記憶部１９へ格納する（Ｏｐ．３６）さらに、共通鍵データパケットを受信した旨の応答を、共通鍵データパケットにおけるグローバル送信先に対して送信する（Ｏｐ．３７）。
【０１６９】
以上の処理によって、共有先となるノードは、共有元から、共通鍵を入手することができる。したがって、共有元となったノードと共有先となったノードとの間で、センサデータパケットをやり取りする際には、共通鍵を用いて暗号化通信することができる。
【０１７０】
一方、共有先が自ノードでない場合は（Ｏｐ．３３ＮＯ）、Ｏｐ．５０へ進む。これは、自ノードが仲介ノードであることを示す。
【０１７１】
決定部１３は、グローバル送信元のＩＤと、自ノードとのＩＤに応じて、共通の事前共有鍵を特定する（Ｏｐ．５０）。まず、決定部１３は、グローバル送信元のＩＤに含まれる、第一の要素の値、または第二の要素の値のうち、自ノードのＩＤと同じ値に対応する事前共有鍵を特定する。
【０１７２】
そして、暗号処理部１２は、特定した事前共有鍵で、共通鍵を復号する（Ｏｐ．５１）。次に、決定部１３は、共通鍵データパケットのペイロードデータ格納部２２を参照し、共有先として指定されたノードのＩＤと、自ノードのＩＤとに基づいて、共有先と自ノードとで共通の事前共有鍵を特定する（ＯＰ．５２）。
【０１７３】
暗号処理部１２は、特定した事前共有鍵を用いて、Ｏｐ．５１にて復号した共通鍵を再暗号化する（Ｏｐ．５３）。続いて、パケット生成部１１は、新たなヘッダ情報を生成する（ＯＰ．５４）。新たなヘッダ情報としては、共有先のアドレスをグローバル送信先アドレスに、自ノードのアドレスをグローバル送信元に設定する。さらに、パケット生成部１１は、ルーティングテーブルに応じたローカル送信先アドレスを設定するとともに、自ノードのアドレスをローカル送信元アドレスに設定する。
【０１７４】
そして、新たに生成された共通鍵データパケットを、送信する（Ｏｐ．５５）。そして、共有処理を終了する。なお、Ｏｐ．３７と同様に、通信部１０が応答を送信してもよい。
【０１７５】
以上の処理によって、自ノードが仲介ノードである場合には、共有先に応じた再暗号化を行ったうえで、新たな共有鍵データパケットを、共有先に対して送信することができる。よって、共有先は、新たな共有鍵データパケットを受信したとしても、仲介ノードと自ノードとの間で共通の事前共有鍵を利用することで、共有元と自ノードとの間で用いる共通鍵を入手することができる。
【０１７６】
次に、新たなノードが追加された場合における、サーバＳとノードＮとの追加処理を説明する。図１９は、サーバＳにおける追加処理およびノードＮにおける追加処理のフローチャートである。
【０１７７】
サーバＳの通信部５１は、管理装置４０の通信部より、ノードＮの追加指示を受け付ける（Ｏｐ．６０）。なお、管理者による入力によって、追加指示を受付けてもよい。追加指示は、第一の要素が取りうる新たな範囲と、第二の要素が取りうる新たな範囲の情報を含む。さらに、新たに範囲情報に含まれることとなった値と、当該値に対応して新たに生成された事前共有鍵の情報を含む。
【０１７８】
ただし、サーバＳが、新たなＩＤと事前共有鍵を生成する場合には、追加指示には、新たに範囲情報に含まれることとなった値と、当該値に対応して新たに生成された事前共有鍵の情報は含まれない。そして、追加指示を受付けた後に、サーバＳは、新たなＩＤと事前共有鍵を生成する。
【０１７９】
サーバＳは、追加指示に基づいて、新たに範囲情報に含まれることとなった値と、当該値に対応して新たに生成された事前共有鍵を、管理テーブル記憶部５５に格納する（Ｏｐ．６１）。
【０１８０】
つぎに、サーバＳの更新部５２は、追加指示に基づいて、範囲情報記憶部５４に記憶された範囲情報を更新する（Ｏｐ．６２）。例えば、更新部５２は、第一の要素の範囲情報が、０からｍ−１までであった場合に、追加指示に基づいて、０からｍ´―１までに更新する。さらに、第二の要素の範囲情報が、０からｎ−１であった場合に、追加指示に基づいて、０からｎ´−１に更新する。
【０１８１】
次に、通知生成部５３は、更新された範囲情報に基づいて、通知を生成する（Ｏｐ．６３）。なお、通知は、更新された範囲情報を含む。そして、通信部５１は、通知を送信する（Ｏｐ．６４）。なお、通知は、シンクノードにおいてプロトコル変換されるとともに、ブロードキャスト用のパケットに変換される。各ノードＮは、変換後の通知を受信することとなる。
【０１８２】
一方、ノードＮの通信部１０は、シンクノードＳＮ経由で、通知を受信する（Ｏｐ．７０）。なお、通知はマルチホップ通信によりノードＮに受信される場合もある。次に、ノードＮの更新部１５は、通知に基づいて、範囲情報記憶部１８に記憶された範囲情報を更新する（Ｏｐ．７１）。
【０１８３】
例えば、更新部１５は、第一の要素の範囲情報が、０からｍ−１までであった場合に、追加指示に基づいて、０からｍ´―１までに更新する。さらに、第二の要素の範囲情報が、０からｎ−１であった場合に、追加指示に基づいて、０からｎ´−１に更新する。さらに、通信部１０は、通知を他のノードへ転送する（Ｏｐ．７２）。通知はブロードキャストされるとしても良い。
【０１８４】
以上の処理によって、ネットワークシステムを管理するサーバＳにおいて、新たなノードの追加に伴い、範囲情報を更新することができる。さらに、ネットワークシステム内のノードに対しては、範囲情報を含む通知を送信することで、事前共有鍵等の情報を送信する事無く、新たなノードを追加することができる。
【０１８５】
また、ノードＮは、通知に基づいて範囲情報を更新することで、新たなノードの追加を検知することができる。さらに、新たなノードの追加に伴い、事前共有鍵に関する情報は更新されることはない。したがって、本実施例によれば、ネットワークシステムへのノードの追加を、より容易に行うことができる。
【０１８６】
図２０は、ノードＮのハードウェア構成例である。ノードＮは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０２と、フラッシュメモリ３０３と、インターフェース（Ｉ／Ｆ）３０４と、暗号化回路３０５と、センサ３０６と、バス３０７とを備えている。ＣＰＵ３０１乃至センサ３０６は、バス３０７よってそれぞれ接続されている。
【０１８７】
ＣＰＵ３０１は、ノード１０の全体の制御を司る。ＣＰＵ３０１は、ＲＡＭ３０２に展開されたプログラムを実行することにより、制御部１０１として機能する。
【０１８８】
ＲＡＭ３０２は、ＣＰＵ３０１のワークエリアとして使用される。フラッシュメモリ３０３は、プログラムや、各種鍵の情報、ルーティングテーブルを記憶している。なお、フラッシュメモリ３０３は、記憶部１０２の一例である。プログラムには、例えば、図１５乃至図１９のフローチャートに示したノードにおける各処理を実行させる為のプログラムが含まれる。例えば、データパケットの送信処理、共有処理、パケットの受信処理、追加処理を、ノードＮに実行させる為の制御プログラムが、フラッシュメモリ３０３に記憶される。
【０１８９】
フラッシュメモリ３０３に記憶されたプログラムを、ＲＡＭ３０２に展開し、ＣＰＵ３０１が実行することで、ノード１０は、図５に記載した各種処理部として機能する。また、ノード１０は、図１５乃至図１９の処理を実行する。
【０１９０】
Ｉ／Ｆ３０４は、マルチホップ通信によりパケットを送受信する。Ｉ／Ｆ３０４は、通信部１０の一例である。
【０１９１】
暗号化回路３０５は、データを暗号化する場合に暗号鍵によりデータを暗号化する回路である。例えば、パケットを暗号化して送信する場合は、暗号化回路３０５が機能する。暗号化回路３０５は、暗号処理部１２の一例である。なお、暗号化をソフトウェア的に実行する場合は、ＣＰＵ３０１が暗号処理部１２として機能する。ＣＰＵ３０１は、暗号化回路３０５に相当するプログラムをフラッシュメモリ３０３から読み出し、実行する。
【０１９２】
センサ３０６は、センサ３０６固有のデータを検出する。たとえば、温度、湿度、水位、降水量、風量、音量、電力使用量、時間、時刻、加速度など、測定対象にあったデータを検出する。なお、ＣＰＵ３０１は、センサ３０６から検出値を取得する。そして、取得した検出値を、センサデータとして、他の装置へ送信する。
【０１９３】
図２１はサーバＳおよび管理装置４０のハードウェア構成の一例を示す図である。コンピュータ１０００は、サーバＳもしくは管理装置４０、またはサーバＳおよび管理装置４０両方の機能を有する装置として機能する。
【０１９４】
コンピュータ１０００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１００２，ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１００３，通信装置１００４、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１００５、入力装置１００６、表示装置１００７、媒体読取装置１００９を有しており、各部はバス１００８を介して相互に接続されている。そしてＣＰＵ１００１による管理下で相互にデータの送受を行うことができる。
【０１９５】
図１９に示す追加処理が記述されたプログラムや、先に述べたＩＤおよび事前共有鍵の付与を行う為のプログラムが、コンピュータが読み取り可能な記録媒体に記録される。コンピュータが読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。また、実施例にて説明した各種処理に関わるプログラムが、コンピュータが読み取り可能な記録媒体に記録される。
【０１９６】
光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  −  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ  −  ＯＰｔｉｃａｌ  ｄｉｓｋ）などがある。このプログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売されることが考えられる。
【０１９７】
そしてコンピュータ１０００は、例えば媒体読取装置１００９が、各種プログラムを記録した記録媒体から、該プログラムを読み出す。なお、読みだすプログラムによって、コンピュータ１０００は、サーバＳ、管理装置４０として機能する。ＣＰＵ１００１は、読み出されたプログラムをＨＤＤ１００５若しくはＲＯＭ１００２、ＲＡＭ１００３に格納する。
【０１９８】
ＣＰＵ１００１は、サーバＳまたは管理装置４０全体の動作制御を司る中央処理装置である。ＨＤＤ１００５には、上記の各実施例に示したサーバＳまたは管理装置４０と同様の機能をコンピュータに発揮させるプログラムとして、各処理をコンピュータに実行させるプログラムが記憶されている。
【０１９９】
そして、ＣＰＵ１００１が、プログラムをＨＤＤ１００５から読み出して実行することで、図１２に示す管理装置４０におけるＩＤ生成部４２、鍵生成部４３、決定部４４として機能するようになる。また、図１４に示すサーバＳにおける更新部５２、通知生成部５３として機能するようになる。また、各種プログラムはＣＰＵ１００１とアクセス可能なＲＯＭ１００２またはＲＡＭ１００３に格納されていても良い。
【０２００】
さらにＨＤＤ１００５にはＣＰＵ１００１の管理下で図１２に示す管理テーブル記憶部４５または範囲情報記憶部４６として機能する。また、図１４に示す範囲情報記憶部５４または管理テーブル記憶部５５として機能する。プログラム同様、記憶部の情報はＣＰＵ１００１とアクセス可能なＲＯＭ１００２またはＲＡＭ１００３に格納されても良い。また、ＲＯＭ１００２またはＲＡＭ１００３は、処理の過程で一時的に生成された情報も記憶する。表示装置１００７は、必要に応じて各画面を表示する。
【０２０１】
通信装置１００４はネットワークを介して他の装置からの信号を受信し、その信号の内容をＣＰＵ１００１に渡す。さらに通信装置１００４はＣＰＵ１００１からの指示に応じてネットワークを介して他の装置に信号を送信する。入力装置１００６は、ユーザからの情報の入力を受け付ける。
【０２０２】
本実施例のアドホックネットワークシステムは、たとえば各家庭の電力の使用量を収集するシステムに適用される。このようなシステムの場合、各ノードＮは、各家庭の電力の使用量を検出するための各家庭の電力メータに設置される。各ノードＮが検出した電力の使用量を、シンクノードＳＮを経由してサーバＳに送信することで、サーバＳは、各家庭の電力の使用量を収集することが可能になる。
【０２０３】
具体的には、例えば、各家庭の電力メータにそれぞれノードＮが組み込まれているとする。各ノードＮは、各ノードＮは、各家庭の電力や使用量を、アドホックネットワーク１００を介してサーバＳに送信する。
【０２０４】
なお、各家庭の電力の使用量は、各ノードが計測してもよく、また、各ノードが電力メータから取得してもよい。また、各ノードは、自身の記憶領域に、検出した電力使用量を記憶する。シンクノードＳＮは、アドホックネットワーク１００内の各ノードから受信した各家庭の電力や使用量を、通常ネットワーク２００を介して電力会社のサーバＳに送信する。これにより、作業員が現地に出向くことなく電力の使用量を収集することができる。
【０２０５】
また、本ネットワークシステムは、電力の使用量の収集だけでなく、各ノードに温度，湿度，光量などを検知するセンサ機能を持たせて、例えば、環境などの調査に使用することも可能である。
【０２０６】
（変形例１）
上記本実施例においては、ノード（ｘ，ｙ）とノード（ｕ，ｖ）が共通鍵を共有する際に、できるだけホップ数が少なくなる可能性が高いノード（ｘ，ｖ）または（ｕ，ｙ）を仲介ノードとして決定した。しかし、これに限られず、例えば、複数の仲介ノードを経由して、自ノードと相手ノードとが共通鍵を共有するとしても良い。
【０２０７】
具体的には、あるノード（ｘ，ｙ）が相手ノード（ｕ，ｖ）と共通鍵を共有する場合には、あるノード（ｘ，ｙ）は、第一の仲介ノードとして、（ｘ，ｐ）に決定する。ただし、ｐはｙ以外の整数であって、ネットワークシステム内の各ノードが取りうる第一の要素の値範囲内の数である。
【０２０８】
そして、第一の仲介ノード（ｘ，ｐ）は、第二の仲介ノードとして（ｑ，ｖ）を決定する。ただし、ｑはｕ以外の整数であって、ネットワークシステム内の各ノードが取りうる第二の要素の値範囲内の数である。第二の仲介ノード（ｑ，ｖ）は、相手ノード（ｕ，ｖ）と共通の事前共有鍵Ｌｖを有する為、あるノード（ｘ，ｙ）が生成した共通鍵を、事前共有鍵Ｌｖで再暗号化する。
【０２０９】
また、ノード（ｘ、ｙ）の決定部１３は、初めに、仲介ノード（ｘ，ｖ）または仲介ノード（ｕ，ｙ）に対して、相手ノード（ｕ，ｖ）への仲介を依頼したあと、所定時間応答がなかった場合に、仲介ノード（ｘ，ｐ）を決定しても良い。ただし、ｐは、ｖまたはｙ以外の整数である。
【０２１０】
（変形例２）
データパケットに対して、２重の暗号化を行ってもよい。例えば、アプリケーション層の暗号化には、グローバル送信先と共有した共通鍵または事前共有鍵を利用し、アドホック層の暗号化には、ローカル送信先とローカル送信元で共有したアクセスキーを利用する。
【０２１１】
転送経路を構成する各通信において、各ノードは、アドホック層の再暗号化を行う。さらに、転送経路の終点となるグローバル送信先においては、直前の送信元との間で共有されたアクセスキーでアドホック層の復号を行う。さらに、グローバル送信元との間で共有された共通鍵または事前共有鍵によって、アプリケーション層の復号を行う。
【０２１２】
このように、アクセスキーを利用することで、転送経路を構成するノード間で、パケットの正当性を評価することができる為、よりセキュリティが向上する。
【０２１３】
（変形例３）
図２の例では、アドホックネットワーク１００内に１台のシンクノードＳＮを設ける構成としたが、一つのアドホックネットワーク１００内に複数台のシンクノードＳＮを設ける構成としてもよい。また、図２ではアドホックネットワーク１００は一つであるが、複数のアドホックネットワークを含む場合もある。複数のアドホックネットワークを含む場合、複数のアドホックネットワークにはそれぞれ少なくとも一つのシンクノードＳＮが含まれており、サーバＳは当該シンクノードＳＮと通常ネットワークを介して接続する。この構成により、サーバＳと全てのノードＮとのデータ送受信が可能になる。
【符号の説明】
【０２１４】
Ｎ      ノード
１０    通信部
１０１  制御部
１１    パケット生成部
１２    暗号処理部
１３    決定部
１４    鍵生成部
１５    更新部
１０２  記憶部
１６    事前共有鍵記憶部
１７    ルーティングテーブル記憶部
１８    範囲情報記憶部
１９    共通鍵記憶部
４０    管理装置
４１    通信部
４２    ＩＤ生成部
４３    鍵生成部
４４    決定部
４５    管理テーブル記憶部
４６    範囲情報記憶部
Ｓ      サーバ
５１    通信部
５２    更新部
５３    通知生成部
５４    範囲情報記憶部
５５    管理テーブル記憶部
ＳＮ    シンクノード
３０１    ＣＰＵ
３０２    ＲＡＭ
３０３    フラッシュメモリ
３０４    Ｉ／Ｆ
３０５    暗号化回路
３０６    センサ
３０７    バス
１０００  コンピュータ
１００１  ＣＰＵ
１００２  ＲＯＭ
１００３  ＲＡＭ
１００４  通信装置
１００５  ＨＤＤ
１００６  入力装置
１００７  表示装置
１００８  バス
１００９  媒体読取装置
【図１】
2014016863.tif 000003
【図２】
2014016863.tif 000004
【図３】
2014016863.tif 000005
【図４】
2014016863.tif 000006
【図５】
2014016863.tif 000007
【図６】
2014016863.tif 000008
【図７】
2014016863.tif 000009
【図８】
2014016863.tif 000010
【図９】
2014016863.tif 000011
【図１０】
2014016863.tif 000012
【図１１】
2014016863.tif 000013
【図１２】
2014016863.tif 000014
【図１３】
2014016863.tif 000015
【図１４】
2014016863.tif 000016
【図１５】
2014016863.tif 000017
【図１６】
2014016863.tif 000018
【図１７】
2014016863.tif 000019
【図１８】
2014016863.tif 000020
【図１９】
2014016863.tif 000021
【図２０】
2014016863.tif 000022
【図２１】
2014016863.tif 000023
【手続補正書】
【提出日】平成27年3月20日(2015.3.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークシステムに含まれる複数のノードのうちの、第一の要素における第一の値と、第二の要素における第二の値とにより識別されるノードであって、
前記第一の値に応じた第一の鍵および前記第二の値に応じた第二の鍵であって、少なくともいずれか一方は前記複数のノードのうち少なくとも３以上のノードで共有される該第一の鍵および該第二の鍵を記憶する第一の記憶部と、
前記複数のノードの各々における前記第一の要素が取りうる値の第一の範囲に関する情報と、前記第二の要素が取りうる値の第二の範囲に関する情報を記憶する第二の記憶部と、
前記第一の要素が前記第一の値であって、前記第二の要素が前記第二の範囲のいずれかの値である他のノード、または、該第一の要素が前記第一の範囲のいずれかの値であって、該第二の要素が前記第二の値である他のノードと、前記第一の鍵または前記第二の鍵を用いて通信を行う通信部とを有することを特徴とするノード。
【請求項２】
前記ネットワークシステムを管理する装置から、前記第一の範囲または前記第二の範囲が変更された旨の通知を受信した場合に、該通知に基づいて、前記第二の記憶部に記憶された情報を更新する更新部をさらに備えることを特徴とする請求項１記載のノード。
【請求項３】
前記通信部は、前記第一の鍵または前記第二の鍵を用いて、前記他のノードに、自ノードと前記他のノードとの間で暗号通信する共通鍵を送信することを特徴とする請求項１または２記載のノード。
【請求項４】
前記第一の要素が第三の値であって、前記第二の要素が第四の値である共有先ノードと、共通鍵を共有する場合、前記第一の要素に前記第一の値を、前記第二の要素に前記第四の値を有する前記他のノードを、仲介ノードとして決定する決定部をさらに有し、
前記通信部は、前記他のノードに対して、前記第一の鍵で暗号化した前記共通鍵を送信することを特徴とする請求項１または２記載のノード。
【請求項５】
前記共有先ノードと共有する前記共通鍵を生成する鍵生成部をさらに有することを特徴とする請求項４記載のノード。
【請求項６】
ネットワークシステムに含まれる複数のノードのうちの、第一の要素における第一の値と、第二の要素における第二の値とにより識別されるノードが、
前記複数のノードの各々における前記第一の要素が取りうる値の第一の範囲に関する情報と、前記第二の要素が取りうる値の第二の範囲に関する情報を記憶する第一の記憶部を参照し、前記第一の要素が前記第一の値であって、前記第二の要素が前記第二の範囲のいずれかの値である他のノードを特定し、
前記第一の値に応じた第一の鍵および前記第二の値に応じた第二の鍵であって、少なくともいずれか一方は前記複数のノードのうち少なくとも３以上のノードで共有される該第一の鍵および該第二の鍵を記憶する第一の記憶部から、該第一の鍵を取得し、
前記第一の鍵を用いて、前記他のノードと通信する処理を実行することを特徴とする通信方法。
【請求項７】
前記ノードが、
前記ネットワークシステムを管理する装置から、前記第一の範囲または前記第二の範囲が変更された旨の通知を受信し、
前記通知に基づいて、前記第一の記憶部に記憶された情報を更新する処理をさらに実行することを特徴とする請求項６記載の通信方法。
【請求項８】
前記ノードが、前記通信する処理において、
前記第一の鍵を用いて、前記他のノードに、自ノードと前記他のノードとの間で暗号通信する共通鍵を送信することを特徴とする請求項６または７記載の通信方法。
【請求項９】
前記ノードが、
前記第一の要素が第三の値であって、前記第二の要素が第四の値である共有先ノードと、共通鍵を共有する場合、前記第一の要素に前記第一の値を、前記第二の要素に前記第四の値を有する前記他のノードを、仲介ノードとして決定し、
前記通信する処理において、前記仲介ノードに対して、前記第一の鍵で暗号化した前記共通鍵を送信することを特徴とする請求項６または７記載の通信方法。
【請求項１０】
前記ノードが、
前記共有先ノードと共有する前記共通鍵を生成する処理をさらに実行することを特徴とする請求項９記載の通信方法。 
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
また、自ノードがグローバル送信先および共有先にそれぞれ設定されていない共通鍵データパケットを受信した場合には、暗号処理部１２は、グローバル送信元に応じた事前共有鍵を用いて、共通鍵を復号する。一方、自ノードがグローバル送信先として設定された共通鍵データパケットを受信した場合であって、かつ共有先も自ノードでない場合には、自ノードは仲介ノードであることになる。したがって、暗号処理部１２は、後述のとおり、共通鍵データパケットの再暗号化を行う。 
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
更新部１５は、新たなノードが追加された旨の通知を、他の装置から受信した場合に、範囲情報記憶部１８に記憶された範囲情報を、更新する。範囲情報は、ネットワークシステム内の各ノードにおける各要素が取りうる値の範囲に関する情報である。通知は、新たなノードの追加に伴い変更された範囲情報を含む。 
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１０５
【補正方法】変更
【補正の内容】
【０１０５】
また、図１０Ｂの例では、ネットワークシステム内のノードは、第二の要素の値として、０からｎ−１までの整数をとることを示している。また、範囲情報として、各要素が取りうる範囲の最大値のみを記憶してもよい。 
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
また、新たなノードが追加される場合にも、新たに追加されるノードの数に応じて、管理者は、各要素の範囲を増加させる入力を行う。入力に応じて、範囲情報記憶部４６は更新される。ＩＤ生成部４２は、新たなノードのＩＤとして、いずれかの要素が更新前の範囲情報内の値でありかつ他の要素が更新によって増加された範囲における新たな値であるＩＤを生成する。 
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１３４
【補正方法】変更
【補正の内容】
【０１３４】
次に、ノードＮがデータパケットを送信する際の処理について説明する。図１５は、ノードＮがデータパケットを送信する際のフローチャートである。ノードＮが、データパケットのグローバル送信元となる場合は、図１５および図１６の処理を実行する。ノードＮのＩＤを（ｘ、ｙ）とする。また、図１５の処理に先駆けて、ノードＮの制御部１０１は、センサから、センサデータを取得しているとする。そして、所定のタイミングで、センサデータをセンサデータパケットとして、送信する処理を実行する。 
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１３６
【補正方法】変更
【補正の内容】
【０１３６】
ｕは第一の要素の値であって、第一の要素の範囲情報に含まれる値である。つまり、範囲情報が、０からｍ−１である場合には、ｕは０からｍ−１までの値の何れかである。ｖは第二の要素の値であって、第二の要素の範囲情報に含まれる値である。つまり、範囲情報が、０からｎ−１である場合には、ｖは０からｎ−１までの値の何れかである。 
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１４６
【補正方法】変更
【補正の内容】
【０１４６】
そして、パケット生成部１１は、当該決定を受けて、共通鍵データパケットのグローバル送信先を、共有先（ｕ，ｖ）に設定する（Ｏｐ．２０）。パケット生成部１１は、グローバル送信先（ｕ，ｖ）のアドレスを、グローバル送信先アドレスに設定する。また、グローバル送信元アドレスとして、自ノードのアドレスを設定する。さらに、パケットタイプとして、共通鍵データパケットを示す「１」を設定する。 
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１５０
【補正方法】変更
【補正の内容】
【０１５０】
そして、パケット生成部１１は、仲介ノードを、共通鍵データパケットのグローバル送信先に設定する（Ｏｐ．１３）。具体的には、パケット生成部１１は、グローバル送信先に対応するアドレスをルーティングテーブルから取得するとともに、ヘッダ情報格納部２１へ格納する。さらに、グローバル送信元アドレスとして、自ノードのアドレスを設定するとともに、パケットタイプとして、共通鍵データパケットを示す「１」を設定する。 
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１５５
【補正方法】変更
【補正の内容】
【０１５５】
次に、パケット生成部１１は、ルーティングテーブルを参照し、グローバル送信先に基づいて、ローカル送信先を決定する（Ｏｐ．１７）。Ｏｐ．１７において、パケット生成部１１は、ローカル送信先に対応するアドレスをルーティングテーブルから取得するとともに、ヘッダ情報格納部２１へ格納する。また、ローカル送信元アドレスとして、自ノードのアドレスを設定する。 
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１５８
【補正方法】変更
【補正の内容】
【０１５８】
自ノードと共有先との間で事前共有鍵を共有していない場合には、仲介ノードをグローバル送信先として、共通鍵データパケットを送信する。そして、仲介ノード経由で、共有先に共通鍵データパケットが送信される。仲介ノードを経由して、共通鍵の共有を試みることができる。さらに、仲介ノードは、自ノードと少なくとも一つの事前共有鍵を共有し、共通鍵の共有先と少なくともひとつの事前共有鍵を共有しているノードとすることができる。仲介ノードとなるノードを最低数（１つ）とすることで、ネットワークの輻輳を低減することができる。 
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１６８
【補正方法】変更
【補正の内容】
【０１６８】
次に、暗号処理部１２は、特定された事前共有鍵を事前共有鍵記憶部１６から取得すると共に、共通鍵を復号する（Ｏｐ．３５）。そして、制御部１０１は、共通鍵と、共有元のＩＤとを対応付けて、共通鍵記憶部１９へ格納する（Ｏｐ．３６）。さらに、共通鍵データパケットを受信した旨の応答を、共通鍵データパケットにおけるグローバル送信先に対して送信する（Ｏｐ．３７）。 
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１７７
【補正方法】変更
【補正の内容】
【０１７７】
サーバＳの通信部５１は、管理装置４０の通信部４１より、ノードＮの追加指示を受け付ける（Ｏｐ．６０）。なお、管理者による入力によって、追加指示を受付けてもよい。追加指示は、第一の要素が取りうる新たな値の範囲と、第二の要素が取りうる新たな値の範囲の情報を含む。さらに、新たに範囲情報に含まれることとなった値と、当該値に対応して新たに生成された事前共有鍵の情報を含む。 
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１８０
【補正方法】変更
【補正の内容】
【０１８０】
つぎに、サーバＳの更新部５２は、追加指示に基づいて、範囲情報記憶部５４に記憶された範囲情報を更新する（Ｏｐ．６２）。例えば、更新部５２は、範囲情報記憶部５４に記憶されている第一の要素の範囲情報が、０からｍ−１までであった場合に、追加指示に基づいて、第一の要素範囲情報を、０からｍ´−１までに更新する。また、例えば、更新部５２は、範囲情報記憶部５４に記憶されている第二の要素の範囲情報が、０からｎ−１であった場合に、追加指示に基づいて、第二の要素範囲情報を、０からｎ´−１に更新する。 
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０１８１
【補正方法】変更
【補正の内容】
【０１８１】
次に、通知生成部５３は、更新された範囲情報に基づいて、通知を生成する（Ｏｐ．６３）。なお、通知は、更新された範囲情報を含む。そして、通信部５１は、通知を送信する（Ｏｐ．６４）。なお、通知は、シンクノードＳＮにおいてプロトコル変換されるとともに、ブロードキャスト用のパケットに変換される。各ノードＮは、変換後の通知を受信することとなる。 
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１８７
【補正方法】変更
【補正の内容】
【０１８７】
ＣＰＵ３０１は、ノードＮの全体の制御を司る。ＣＰＵ３０１は、ＲＡＭ３０２に展開されたプログラムを実行することにより、制御部１０１として機能する。 
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１８９
【補正方法】変更
【補正の内容】
【０１８９】
フラッシュメモリ３０３に記憶されたプログラムを、ＲＡＭ３０２に展開し、ＣＰＵ３０１が実行することで、ノードＮは、図５に記載した各種処理部として機能する。また、ノードＮは、図１５乃至図１９の処理を実行する。 
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０２００
【補正方法】変更
【補正の内容】
【０２００】
さらに、ＨＤＤ１００５は、ＣＰＵ１００１の管理下で図１２に示す管理テーブル記憶部４５または範囲情報記憶部４６として機能する。また、ＨＤＤ１００５は、図１４に示す範囲情報記憶部５４または管理テーブル記憶部５５として機能する。プログラム同様、記憶部の情報はＣＰＵ１００１とアクセス可能なＲＯＭ１００２またはＲＡＭ１００３に格納されても良い。また、ＲＯＭ１００２またはＲＡＭ１００３は、処理の過程で一時的に生成された情報も記憶する。表示装置１００７は、必要に応じて各画面を表示する。 
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】０２０３
【補正方法】変更
【補正の内容】
【０２０３】
具体的には、例えば、各家庭の電力メータにそれぞれノードＮが組み込まれているとする。各ノードＮは、各家庭の電力の使用量を、アドホックネットワーク１００を介してサーバＳに送信する。 
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０２０４
【補正方法】変更
【補正の内容】
【０２０４】
なお、各家庭の電力の使用量は、各ノードが計測してもよく、また、各ノードが電力メータから取得してもよい。また、各ノードは、自身の記憶領域に、検出した電力使用量を記憶する。シンクノードＳＮは、アドホックネットワーク１００内の各ノードから受信した各家庭の電力の使用量を、通常ネットワーク２００を介して電力会社のサーバＳに送信する。これにより、作業員が現地に出向くことなく電力の使用量を収集することができる。 
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】０２０７
【補正方法】変更
【補正の内容】
【０２０７】
具体的には、あるノード（ｘ，ｙ）が相手ノード（ｕ，ｖ）と共通鍵を共有する場合には、あるノード（ｘ，ｙ）は、第一の仲介ノードとして、（ｘ，ｐ）に決定する。ただし、ｐはｙ以外の整数であって、ネットワークシステム内の各ノードが取りうる第二の要素の値範囲内の値である。 
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】０２０８
【補正方法】変更
【補正の内容】
【０２０８】
そして、第一の仲介ノード（ｘ，ｐ）は、第二の仲介ノードとして（ｑ，ｖ）を決定する。ただし、ｑはｕ以外の整数であって、ネットワークシステム内の各ノードが取りうる第一の要素の値範囲内の値である。第二の仲介ノード（ｑ，ｖ）は、相手ノード（ｕ，ｖ）と共通の事前共有鍵Ｌｖを有する為、あるノード（ｘ，ｙ）が生成した共通鍵を、事前共有鍵Ｌｖで再暗号化する。
【国際調査報告】
2014016863.tif 000024
2014016863.tif 000025
2014016863.tif 000026
2014016863.tif 000027