(57)【要約】【課題】  全ノードで論理情報を予め共有することなく、各ノードが同一の符号情報を用いてパケット検証を行うことを課題とする。【解決手段】第一のノードと第二のノードとで共有された第一の論理情報を用いて、第二の論理情報を暗号化する第１の暗号処理部と、暗号化された第二の論理情報と、データと、データの内容および第二の論理情報に依存する符号情報とを含むパケットを送信する第１の送信部とを有する第一のノード、及び、パケットを受信する受信部と、第二の論理情報を、第一の論理情報で復号する復号処理部と、第二のノードと前記第三のノードとで共有された第三の論理情報で、第二の論理情報を暗号化する第２の暗号処理部と、暗号化された第二の論理情報と、データと、符号情報とを、第三のノードへ送信する第２の送信部とを有する第二のノードを含むネットワークシステム。
2013175539.tif 000002
【特許請求の範囲】
【請求項１】
第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおいて、
前記第一のノードは、
前記第一のノードと前記第二のノードとで共有された第一の論理が規定された第一の論理情報を用いて、データを検証する際に用いられる第二の論理が規定された第二の論理情報を暗号化する第１の暗号処理部と、
前記第一の論理情報で暗号化された前記第二の論理情報と、前記データと、該データの内容および該第二の論理情報に依存する符号情報とを含むパケットを、前記第二のノードに対して送信する第１の送信部とを有し、
前記第二のノードは、
パケットを受信する受信部と、
前記第二の論理情報を、前記第一の論理情報で復号する復号処理部と、
前記第二のノードと前記第三のノードとで共有された第三の論理が規定された第三の論理情報で、前記第二の論理情報を暗号化する第２の暗号処理部と、
前記第三の論理情報で暗号化された前記第二の論理情報と、前記受信したパケットに含まれるデータと、前記符号情報とを、前記第三のノードへ送信する第２の送信部と
を有することを特徴とするネットワークシステム。
【請求項２】
第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおける、該第一のノードは、
データと、該データを検証する際に用いられる第一の論理を規定した第一の論理情報が暗号化された暗号情報と、該データの内容および該第二の論理情報に依存する符号情報とを含むパケットを、前記第二のノードから受信する受信部と、
前記暗号情報を、前記第一のノードと前記第二のノードとで共有された第二の論理が規定された第二の論理情報を用いて、復号する復号処理部と、
復号により得られた前記第一の論理情報を、前記第一のノードと前記第三のノードとで共有された第三の論理が規定された第三の論理情報で暗号化する暗号処理部と、
前記第三の論理情報で暗号化された前記第一の論理情報と、前記データと、前記符号情報とを、前記第三のノードへ送信する送信部とを有することを特徴とする。
【請求項３】
前記符号情報、前記第一の論理情報を用いて、前記パケットを検証する検証部をさらに有することを特徴とする請求項２記載の第一のノード。
【請求項４】
前記検証部は、受信したパケット内の前記データに対して、前記第一の論理情報を用いて、他の符号情報を算出し、
前記符号情報と前記他の符号情報とが一致する場合に、前記パケットは正当なパケットであると判定することを特徴とする請求項３記載の第一のノード。
【請求項５】
前記符号情報は、メッセージ認証コードであって、
前記第一の論理情報は、該メッセージ認証コードを算出する際に利用されるメッセージ認証コード用の鍵情報であって、
前記第二の論理情報は、前記第一のノードと前記第二のノードとで共有された暗号鍵情報であって、
前記第三の論理情報は、前記第一のノードと前記第三のノードとで共有された他の暗号鍵情報であることを特徴とする請求項２乃至請求項４のいずれか一項に記載の第一のノード。
【請求項６】
第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおける、該第一のノードは、
データを検証する際に用いられる第一の論理が規定された第一の論理情報を生成する論理情報生成部と、
前記データの内容および前記第一の論理情報に依存する符号情報を算出する算出部と、
前記第一のノードと前記第二のノードとで共有された第二の論理が規定された第二の論理情報を用いて、前記第一の論理情報を暗号化する暗号処理部と、
前記第二の論理情報で暗号化された前記第一の論理情報と、前記データと、前記符号情報とを含むパケットを、前記第三のノードと通信する前記第二のノードに対して送信する送信部とを有することを特徴とする。
【請求項７】
前記第一のノードは、センサから検出値を取得する取得部をさらに有し、
前記検出値を含む前記データの内容に応じて、前記符号情報を算出することを特徴とする請求項６記載の第一のノード。
【請求項８】
前記符号情報は、メッセージ認証コードであって、
前記第一の論理情報は、該メッセージ認証コードを算出する際に利用されるメッセージ認証コード用の鍵情報であって、
前記第二の論理情報は、前記第一のノードと前記第二のノードとで共有された暗号鍵情報であることを特徴とする請求項６または請求項７のいずれか一項に記載の第一のノード。
【請求項９】
第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおける、該第一のノードが、
データと、該データを検証する際に用いられる第一の論理を規定した第一の論理情報が暗号化された暗号情報と、該データの内容および該第二の論理情報に依存する符号情報とを含むパケットを、前記第二のノードから受信し、
前記暗号情報を、前記第一のノードと前記第二のノードとで共有された第二の論理が規定された第二の論理情報を用いて、復号し、
前記第一の論理情報を、前記第一のノードと前記第三のノードとで共有された第三の論理が規定された第三の論理情報で暗号化し、
前記第三の論理情報で暗号化された前記第一の論理情報と、前記データと、前記符号情報とを、前記第三のノードへ送信する処理を実行することを特徴とする通信方法。
【請求項１０】
前記第一のノードは、
前記符号情報、前記第一の論理情報を用いて、前記パケットを検証する処理を実行することを特徴とする請求項９記載の通信方法。
【請求項１１】
前記検証する処理において、前記第一のノードは、受信したパケット内の前記データに対して、前記第一の論理情報を用いて、他の符号情報を算出し、
前記符号情報と前記他の符号情報とが一致する場合に、前記パケットは正当なパケットであると判定することを特徴とする請求項１０記載の通信方法。
【請求項１２】
前記符号情報は、メッセージ認証コードであって、
前記第一の論理情報は、該メッセージ認証コードを算出する際に利用されるメッセージ認証コード用の鍵情報であって、
前記第二の論理情報は、前記第一のノードと前記第二のノードとで共有された暗号鍵情報であって、
前記第三の論理情報は、前記第一のノードと前記第三のノードとで共有された他の暗号鍵情報であることを特徴とする請求項９乃至請求項１１のいずれか一項に記載の通信方法。
【請求項１３】
第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおける、該第一のノードが、
データを検証する際に用いられる第一の論理が規定された第一の論理情報を生成し、
前記データの内容および前記第一の論理情報に依存する符号情報を算出し、
前記第一のノードと前記第二のノードとで共有された第二の論理が規定された第二の論理情報を用いて、前記第一の論理情報を暗号化し、
前記第二の論理情報で暗号化された前記第一の論理情報と、前記データと、前記符号情報とを含むパケットを、前記第三のノードと通信する前記第二のノードに対して送信する処理を実行することを特徴とする通信方法。
【請求項１４】
前記第一のノードは、さらに、
センサから検出値を取得する処理を実行し、
前記算出する処理において、前記検出値を含む前記データの内容に応じて、前記符号情報を算出することを特徴とする請求項１３記載の通信方法。
【請求項１５】
前記符号情報は、メッセージ認証コードであって、
前記第一の論理情報は、該メッセージ認証コードを算出する際に利用されるメッセージ認証コード用の鍵情報であって、
前記第二の論理情報は、前記第一のノードと前記第二のノードとで共有された暗号鍵情報であることを特徴とする請求項１３または請求項１４のいずれか一項に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示する技術は、アドホックネットワークシステムにおいて、ノード間でパケット送受信する技術に関する。
【背景技術】
【０００２】
アドホックネットワークとは、無線通信によってリンクする自己構成型のネットワークの一種である。アドホックネットワークは、通信機能を有する複数の装置により構成される。なお、アドホックネットワークにおける、通信機能を有する装置は、ノードと呼ばれる。また、アドホックネットワーク内の各ノードは、マルチホップ通信によりパケットを送受信する。マルチホップ通信は、互いの通信圏内に存在しないノード同士であっても、各ノードの通信圏内に存在する別のノードを介して通信を可能にする技術である。なお、パケットがマルチホップ通信されるルートを、転送経路と称する。転送経路は、複数のノードにより形成される。【０００３】
例えば、アドホックネットワークを利用したシステムとして、各家庭の電力メータに無線通信可能なノードを組み込むことにより、アドホックネットワーク経由で各家庭の消費電力量などを収集する検針システムがある。検針システムでは、各電力メータが検出した各家庭の消費電力量を含むパケットが、各家庭の電力メータが備える各ノードから電力会社のシステムまで転送される。このように、検針システムで転送されるパケットに、各家庭の電力使用に係る個人情報が含まれる。【０００４】
アドホックネットワークにおけるセキュリティ対策として、パケットの少なくとも一部を暗号化することで、転送経路でパケットが第三者に搾取された場合でも、パケットの内容を秘匿化する技術がある。さらに、あるノードに対してパケットが送信された場合に、メッセージ認証子（ＭＡＣ）を利用して、パケットの改ざんや送信者のなりすましがないかを検証する技術がある。暗号化およびＭＡＣを利用したパケット検証を行う技術は、例えば、特許文献１に開示されている。【０００５】
一方、セキュリティをさらに強化する為に、各ノードにおける暗号用の暗号鍵を全ノードで共通とするではなく、あるノードと、当該ノードと通信可能な範囲に存在する他のノードとの間で共有されるアクセスキーを用いて、データを暗号化する技術がある。アクセスキーを利用したアドホック通信を行う技術は、例えば、特許文献２に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開２０１１−１２１７１３号公報
【特許文献２】国際公開２００９−１３０９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下、パケットの改ざんや送信者のなりすましを検証することを、パケットを検証するという。パケットを検証する方法として、代表的なものに先に述べたように、ＭＡＣ検証がある。【０００８】
まず、アドホックネットワークを例に、ＭＡＣを用いたパケット検証について説明する。ＭＡＣには、共通鍵暗号の技術が採用される。そして、送受信者間でＭＡＣ算出用のＭＡＣ鍵を、秘密の状態で共有することで、パケットの検証が可能となる。【０００９】
具体的には、まず、送信側は、送信したいデータとＭＡＣ鍵とに依存するタグを算出する。タグは、固定長のビット列で、例えば１２８ビットなどである。【００１０】
図１は、ＣＭＡＣを用いたＭＡＣ算出の例を示す図である。ＣＭＡＣは、ＭＡＣ算出のアルゴリズムの一つである。ＣＭＡＣというアルゴリズムでタグを算出する場合には、平文であるデータを、所定のビット長に区切る。区切られた各データは、ブロックと称される。【００１１】
複数のブロックのうち、最初のブロック１をＭＡＣ鍵でブロック暗号化する。次に、暗号化されたブロック１と、次のブロックとをＸＯＲ計算する。ＸＯＲ計算の結果は、さらにブロック暗号化される。プロセッサは、このような処理を連鎖的に実施する。最後のブロック４は、ＭＡＣ鍵に由来する定数を用いて、ＸＯＲ計算がなされ、さらにブロック暗号化される。【００１２】
以上の処理によって、固定長のタグが得られる。タグは、ＭＡＣ鍵とデータ内容とに依存する。アドホックネットワークでは、送信側のノードにより算出されたタグは、パケット内に設定され、他のノードへ送信される。【００１３】
パケットを受信したノードは、パケットの検証を実行する。具体的には、まず、受信側のノードも、上記と同様の処理で、データとＭＡＣ鍵とに依存するタグを算出する。【００１４】
次に、パケット内に設定されたタグと、算出されたタグとを比較する。一致している場合は、受信側のノードは、受信したパケットが、データの改ざんや送信者のなりすましがない正当なパケットであると判断できる。つまり、送信側で利用されたＭＡＣ鍵およびＭＡＣ算出の対象となったデータと、受信側で利用されたＭＡＣ鍵およびＭＡＣ算出の対象となったデータとが、同一であることが証明される。【００１５】
一方、一致しない場合は、受信側のノードは、受信したパケットが、データの改ざんや送信者のなりすましの可能性がある不正なパケットであると判断できる。【００１６】
上記説明したとおり、タグを算出する為に、共通鍵暗号処理と同程度の処理負荷が要される。ここでは、ＭＡＣを例に説明を行ったが、パケットを検証する為の他の技術でも、パケットを検証する為の符号情報を算出する為に、処理負荷が生じる。他の技術としては、畳み込み演算誤り訂正符号などが挙げられる。【００１７】
なお、符号情報は、論理情報とデータの内容とに応じて、一意に決まる情報である。上述のタグは、符号情報の一種である。論理情報は、あるアルゴリズムにおいて、採用される論理が規定された情報である。なお、セキュアな通信を確率する為には、論理情報は、第三者に対して秘密である必要がある。例えば、ＭＡＣ鍵は、論理情報の一種である。また、データを暗号化する為の暗号化アルゴリズムにおいて利用される暗号鍵も、論理情報の一種である。【００１８】
ここで、上述した従来技術においては、アドホックネットワークを構成する複数のノードにおいて、共通のＭＡＣ鍵が使用されている。共通のＭＡＣ鍵を各ノードが使用することで、次の様な利点が考えられる。【００１９】
転送経路の始点となるノードＡ、ノードＢ、ノードＣ，ノードＤとパケットが複数回転送される場合を考える。全ノードが同一のＭＡＣ鍵を有していれば、パケットの改ざんやなりすましがない限り、ノードＡにて算出されたタグと、他のノードが算出したタグとは一致する。【００２０】
つまり、全ノードで同一の論理情報が共有されていれば、パケット内に設定された符号情報は、特に更新される必要はない。いずれのノードも、共通の論理情報で算出した符号情報と、パケット内にはじめに設定された符号情報とを利用して、適切にパケットの検証が可能である。【００２１】
しかし、セキュリティの観点から、パケットの検証に、全ノードで共通の論理情報を用いることは好ましくない。論理情報が第三者に漏洩した場合に被害が及ぶ範囲が大きいことや、悪意のある第三者が論理情報を入手できる可能性を高めてしまうことが理由である。【００２２】
そこで、従来技術に開示されたアクセスキーを、パケット検証用の論理情報として採用することで、全ノードで共通の論理情報を用いないように、変更することが考えられる。つまり、アクセスキーに定義された論理関係を、符号情報を算出する為の論理情報として利用する。【００２３】
図２は、アドホック通信において、全ノードの内、一部のノードで論理情報を共有する場合のパケット検証を説明する為の図である。【００２４】
図２では、ノードＡ、ノードＢ、ノードＣ、ノードＤを含む転送経路が示されている。例えば、ノードＡとノードＢで論理情報Ｘを共有し、ノードＢとノードＣで論理情報Ｙを共有し、ノードＣとノードＤで論理情報Ｚを共有しているとする。なお、論理情報ＸＹＺには、互いに異なる論理関係が規定されているとする。符号情報を算出する為の論理情報は、事前に各ノードの記憶領域に論理情報が記録されてもよいし、または、従来技術に示すアクセスキーと同様の方法で定期的に各ノードが配布する形態でも良い。【００２５】
まず、ノードＡは、ノードＢに対してデータを含むパケットを送信する際に、ノードＢと共有された論理情報Xを用いて、パケットを検証する為の符号情報Ｘを算出する。そして、データおよび符号情報Ｘを含むパケットを、ノードＢに対して送信する。【００２６】
次に、ノードＢは、パケットを検証する。パケットの送信元であるノードＡと共有された論理情報Ｘを利用して符号情報を算出し、パケット内に含まれる符号情報Ｘと比較する。パケットが正当である場合には、ノードＢは、パケットをノードＣに送信するが、ノードＢは、ノードＣと共有された論理情報Ｙを利用して符号情報Ｙを算出する。そして、データおよび符号情報Ｙを含むパケットを、ノードＣに対して送信する。【００２７】
同様に、ノードＣからノードＤに対して、データおよび符号情報Ｚを含むパケットが送信される。なお、符号情報Ｚは、ノードＣとノードＤとが共有する論理情報Ｚにより算出された情報である。このように、各ノードでは、パケットの検証と、次の送信先に応じた符号情報の算出という処理が各々実行される。図２に示す技術を採用する事で、転送経路内で、パケットの検証が可能となるとともに、全ノードで共通の論理情報を共有する必要がなくなる。【００２８】
しかし、上述したとおり、各ノードでは、パケットの検証処理のほかに、次の送信先に応じた符号情報の算出という処理が強いられることになる。これは、転送経路内で、パケット検証用の論理情報が同一でない為、各々の論理情報に依存する符号情報も、共通にはならないからである。言い換えると、全ノードは、パケット検証において、同じ符号情報を利用することができない為、各ノードでは、次の送信先に応じた符号情報を新たに算出しなければならない。【００２９】
例えば、図２において、ノードＡは、論理情報Ｘに依存する符号情報Ｘが設定されたパケットを、ノードＢへ送信する。ここで、ノードＢは、符号情報Ｘが設定されたパケットを、そのままノードＣへ送信したとする。ノードＣが、ノードＢと共有した論理情報Ｙを用いてパケットの検証を行うと、パケットの改ざんやなりすましが無かったとしても、パケット内の符号情報Xと、論理情報Yにより算出された符号情報は一致しない。よって、ノードＣは、受信したパケットを不正なパケットと判定してしまう。このような事態を避けるために、全ノードにおいて、送信先に応じた論理情報で符号情報を算出する処理が必要となる。【００３０】
したがって、部分的に共有された論理情報を採用することで、セキュリティは向上されるが、同一の符号情報を利用することができなくなる。これは、パケット検証の処理以外に、符号情報を新たに算出する処理を全ノードに課す事となり、各ノードに処理負荷が生じる。さらに、符号情報を新たに算出する処理は、上述のとおり処理負荷が高いという点からも、好ましくない。【００３１】
したがって、本発明は、全ノードで論理情報を予め共有することなく、各ノードが同一の符号情報を用いてパケット検証を可能とすることを目的とする。
【課題を解決するための手段】
【００３２】
本発明の一観点によれば、第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおいて、前記第一のノードは、前記第一のノードと前記第二のノードとで共有された第一の論理が規定された第一の論理情報を用いて、データを検証する際に用いられる第二の論理が規定された第二の論理情報を暗号化する第１の暗号処理部と、前記第一の論理情報で暗号化された前記第二の論理情報と、前記データと、該データの内容および該第二の論理情報に依存する符号情報とを含むパケットを、前記第二のノードに対して送信する第１の送信部とを有し、前記第二のノードは、パケットを受信する受信部と、前記第二の論理情報を、前記第一の論理情報で復号する復号処理部と、前記第二のノードと前記第三のノードとで共有された第三の論理が規定された第三の論理情報で、前記第二の論理情報を暗号化する第２の暗号処理部と、前記第三の論理情報で暗号化された前記第二の論理情報と、前記受信したパケットに含まれるデータと、前記符号情報とを、前記第三のノードへ送信する第２の送信部とを有する。
【発明の効果】
【００３３】
本発明の一観点によれば、転送経路を形成する複数のノードは、論理情報を全ノードで事前に共有する事無く、同一の符号情報を利用してパケットを検証することができる。
【図面の簡単な説明】
【００３４】
【図１】図１は、ＣＭＡＣを用いたＭＡＣ算出の例を示す図である。
【図２】図２は、アドホック通信において、全ノードの内一部のノードで論理情報を共有する場合のパケット検証を説明する為の図である。
【図３】図３は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。
【図４】図４は、ノードの機能ブロック図である。
【図５】図５は、パケットのデータ構成例を示す図である。
【図６】図６は、ルーティングテーブルのデータ構成を示す図である。
【図７】図７は、管理テーブルのデータ構成例を示す図である。
【図８】図８は、ノード１０の機能ブロック図である。
【図９】図９は、ノード１１によるパケット送信処理フローチャートである。
【図１０】図１０は、ノード１２によるパケット検証およびパケット転送処理フローチャートである。
【図１１】図１１は、本実施例に開示の技術の一つの効果を説明する為の第一の図である。
【図１２】図１２は、本実施例に開示の技術の一つの効果を説明する為の第二の図である。
【図１３】図１３は、ノードのハードウェア構成例である。
【発明を実施するための形態】
【００３５】
以下に添付図面を参照して、この発明にかかる通信装置、通信方法、およびシステムの実施の形態を詳細に説明する。
【００３６】
（実施例１）
図３は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。ネットワークシステムは、複数のノードＮと、シンクノードＳＮと、サーバＳとを含む。まず、図３を用いて、本実施の形態に係るネットワークシステムおよび、ネットワークシステムにおけるパケットの送信について、説明する。また、本実施の形態に係るネットワークシステムは、アドホックネットワークシステムである。
【００３７】
サーバＳとシンクノードＳＮとはインターネット、ＬＡＮ、ＷＡＮなどの通常ネットワーク２００を介して接続されている。シンクノードＳＮとノードＮａ〜Ｎｈとは、アドホックネットワーク１００を介して接続されている。
【００３８】
アドホックネットワーク１００内には、複数のノードＮが設けられている。図３では、代表としてノードＮａ〜Ｎｈを示している。
【００３９】
シンクノードＳＮは、アドホックネットワーク１００と通常ネットワーク２００とを接続する中継機器である。シンクノードＳＮは、アドホックネットワーク１００のプロトコルの形式の情報と通常ネットワーク２００のプロトコルの形式の情報の両方を送受信可能である。
【００４０】
また、シンクノードＳＮは、アドホックネットワーク１００と通常ネットワーク２００との間で情報をプロトコル変換することにより、通信を行う。例えば、アドホックネットワーク１００内のノードＮのいずれかからサーバＳ宛に送信されたパケットは、シンクノードＳＮにてプロトコル変換される。その後、シンクノードＳＮが、当該パケットを、通常ネットワーク２００に送信することで、パケットはサーバＳに到達する。
【００４１】
また、サーバＳやシンクノードＳＮからそれぞれのノードＮ宛てに送信されたデータは、シンクノードＳＮにてプロトコル変換され、シンクノードＳＮからアドホックネットワーク１００内の各ノードＮにパケットとして送信される。
【００４２】
なお、シンクノードＳＮは、各ノードＮ間の通信の可否をルーティングテーブルにより把握する。そして、シンクノードＳＮは、ルーティングテーブルの情報を元に、パケットの送信ルートを、自律的に生成する。
【００４３】
また、各ノードＮは、個別にルーティングテーブルを生成してもよい。各ノードＮは、周囲のノードＮと通信状況に関する情報を交換する。そして、各ノードＮは、通信状況に関する情報に基づいて、ルーティングテーブルを生成する。例えば、ノードＮｆとノードＮｇが通信不能となった場合でも、新たな送信ルートの設定が可能となる。例えば、ノードＮｇは、ノードＮｅを経由する新たなルートを構築することができる。本実施の形態においては、各ノードがルーティングテーブルを生成するとして、以下説明を行う。
【００４４】
各ノードは、所定の通信圏内で通信可能な他ノードとマルチホップ通信が可能な装置である。アドホックネットワーク１００では、すべてのノードＮａ〜Ｎｈが直接シンクノードＳＮと通信できる必要はなく、他のノードを経由する事で、各ノードＮａ〜Ｎｈは、シンクノードＳＮと通信する。
【００４５】
このため、アドホックネットワーク１００では、一部のノードがシンクノードＳＮと通信可能であればよい。図３では、シンクノードＳＮと直接通信可能なノードは、ノードＮａ，Ｎｄであるとする。
【００４６】
なお、図３の例では、アドホックネットワーク１００内に１台のシンクノードＳＮを設ける構成としたが、一つのアドホックネットワーク１００内に複数台のシンクノードＳＮを設ける構成としてもよい。また、図３ではアドホックネットワーク１００は一つであるが、複数のアドホックネットワークを含む場合もある。複数のアドホックネットワークを含む場合、複数のアドホックネットワークにはそれぞれ少なくとも一つのシンクノードＳＮが含まれており、サーバＳは当該シンクノードＳＮと通常ネットワークを介して接続する。この構成により、サーバＳと全てのノードＮとのデータ送受信が可能になる。
【００４７】
本実施例のアドホックネットワークシステムは、たとえば各家庭の電力の使用量を収集するシステムに適用される。このようなシステムの場合、各ノードＮは、各家庭の電力の使用量を検出するための各家庭の電力メータに設置される。各ノードＮが検出した電力の使用量を、シンクノードＳＮを経由してサーバＳに送信することで、サーバＳは、各家庭の電力の使用量を収集することが可能になる。
【００４８】
具体的には、例えば、各家庭の電力メータにそれぞれノードＮが組み込まれているとする。各ノードＮは、各ノードＮは、各家庭の電力や使用量を、アドホックネットワーク１００を介してサーバＳに送信する。
【００４９】
なお、各家庭の電力の使用量は、各ノードが計測してもよく、また、各ノードが電力メータから取得してもよい。また、各ノードは、自身の記憶領域に、検出した電力使用量を記憶する。シンクノードＳＮは、アドホックネットワーク１００内の各ノードから受信した各家庭の電力や使用量を、通常ネットワーク２００を介して電力会社のサーバＳに送信する。これにより、作業員が現地に出向くことなく電力の使用量を収集することができる。
【００５０】
また、本ネットワークシステムは、電力の使用量の収集だけでなく、各ノードに温度，湿度，光量などを検知するセンサ機能を持たせて、例えば、環境などの調査に使用することも可能である。
【００５１】
図３では、アドホックネットワーク１００を構成するノードＮａ〜Ｎｈにより、４つの転送経路Ｒ１〜Ｒ４が設定されているものとする。具体的には、転送経路Ｒ１は、ノードＮｃとノードＮｂとノードＮａとシンクノードＳＮとを含むルートである。転送経路Ｒ２は、ノードＮｅとノードＮｄとシンクノードＳＮとを含むルートである。転送経路Ｒ３は、ノードＮｇとノードＮｆとノードＮｄとシンクノードＳＮとを含むルートである。転送経路Ｒ４は、ノードＮｈとノードＮｆとノードＮｄとシンクノードＳＮとを含むルートである。なお、ノードＮａやノードＮｄはシンクノードＳＮと直接通信するノードである。
【００５２】
シンクノードＳＮに近いノードを上流側のノードと呼ぶ。なお、アドホックネットワーク１００の規模によっては、ノードＮｂやノードＮｅも上流側のノードとなる。各ノードＮａ〜ＮｈからサーバＳへデータが送信される場合は、各ノードＮａ〜Ｎｈは、各々検出したデータをルーティングされた転送経路Ｒ１〜Ｒ４に従ってシンクノードＳＮに送信する。
【００５３】
図４は、ノードの機能ブロック図である。なお、ノードが、パケットを送信する送信ノードとなる場合は、図４におけるノード１１として機能する。一方、ノードが、パケットを転送する中継ノードとなる場合は、図４におけるノード１２として機能する。例えば、図３における転送経路Ｒ１において、ノードＮｃから、シンクノードＳＮへパケットが転送される場合には、ノードＮｃが送信ノードとなる。そして、ノードＮａおよびＮｂが中継ノードとなる。
【００５４】
ノード１１は、取得部１１１、パケット生成部１１２、論理情報生成部１１３、算出部１１４、暗号処理部１１５、通信部１１６、記憶部１１７を有する。
【００５５】
取得部１１１は、センサからの検出値を取得する処理部である。例えば、取得部１１１は、ノード１１と通信可能なセンサから、消費電力量や温度等の検出値を取得する。なお、取得された検出値は、パケットの一部として、他のノードまたはシンクノードへ送信される。
【００５６】
パケット生成部１１２は、パケットを生成する処理部である。例えば、パケット生成部１１２は、ヘッダ情報を生成するとともに、検出値およびヘッダ情報を含むパケットを生成する。
【００５７】
図４におけるパケット生成部１１２は、図５に示すパケットを生成する。
【００５８】
図５は、パケットのデータ構成例を示す図である。
【００５９】
パケット２０には、第一のヘッダ部２１、第二のヘッダ部２２、ペイロードデータ部２３、符号情報格納部２４、論理情報格納部２５が、それぞれ割り当てられる。第一のヘッダ部２１には、第一のヘッダ情報が記述される。第一のヘッダ情報は、ローカル送信元アドレス、ローカル送信先アドレスを含む。
【００６０】
ローカル送信元アドレスは、パケット２０を送信する装置のアドレスに関する情報である。ローカル送信先アドレスは、パケット２０の宛先となる装置のアドレスに関する情報である。なお、本実施例においては、ローカル送信元アドレスおよびローカル送信先アドレスは、ノード、シンクノードのアドレスである。
【００６１】
第二のヘッダ部２２には、第二のヘッダ情報が記述される。第二のヘッダ情報は、グローバル送信元アドレス、グローバル送信先アドレスを含む。なお、ヘッダ情報は、第一のヘッダ情報と第二のヘッダ情報とを含む情報である。グローバル送信元アドレスは、ペイロードデータ部２３に記述されるペイロードデータを生成した装置のアドレスに関する情報である。
【００６２】
グローバル送信先アドレスは、ペイロードデータ部２３に記述されるペイロードデータを最終的に受信する装置のアドレスに関する情報である。なお、本実施例においては、グローバル送信元アドレスおよびグローバル送信先アドレスは、ノード、シンクノードのアドレスである。
【００６３】
ペイロードデータ部２３には、ペイロードデータが記述される。例えば、各ノードで取得された検出値が記述される。また、検針システムにおいては、ペイロードデータには、各家庭の消費電力量の情報等が含まれる。なお、ペイロードデータ部２３に格納されるペイロードデータは、暗号化されたペイロードデータであってもよい。
【００６４】
符号情報格納部２４には、パケット２０を検証する為の符号情報が記述される。符号情報は、論理情報とデータの内容とに応じて、一意に決まる情報である。例えば、ＭＡＣのアルゴリズムにより算出されるタグは、符号情報の一種である。論理情報は、あるアルゴリズムにおいて、採用される論理が規定された情報である。
【００６５】
ここで、本実施例では、符号情報は、第二のヘッダ情報およびペイロードデータを含むデータに対して、算出されるものとする。なお、ペイロードデータに対して符号情報が算出されてもよい。ただし、第一のヘッダ情報は、符号情報の算出対象から除外される。
【００６６】
論理情報格納部２５には、暗号化された検証用の論理情報が記述される。検証用の論理情報は、論理情報の内、パケット検証時に利用される論理が規定された情報である。例えば、後述の論理情報生成部により生成されたＭＡＣ鍵は、検証用の論理情報の一例である。なお、検証用の論理情報は、後述の暗号処理部１１５によって、ローカル送信先アドレスに応じて暗号化される。
【００６７】
検証用の論理情報は、データ検証用のアルゴリズムにおいて用いられる鍵に相当する情報であって、例えばＭＡＣ鍵である。一方、後述する暗号処理部１１５による暗号化に利用される論理情報は、暗号用の論理情報と称される。暗号用の論理情報は、暗号化アルゴリズムにおいて用いられる鍵に相当する情報である。
【００６８】
パケット生成部１１２は、グローバル送信先アドレスおよびグローバル送信元アドレスを第二のヘッダ部に設定する。また、パケット生成部１１２は、暗号化されたペイロードデータを、ペイロードデータ部に設定する。そして、パケット生成部１１２は、符号情報を、符号情報格納部に格納する。さらに、パケット生成部１１２は、ルーティングテーブルを参照し、ローカル送信先アドレスを決定する。そして、ローカル送信先アドレスとローカル送信元アドレスを第一のヘッダ部に設定する。さらに、パケット生成部１１２は、ローカル送信先アドレスに応じて暗号化された検証用の論理情報を、論理情報格納部に格納する。
【００６９】
図４における論理情報生成部１１３は、検証用の論理情報を生成する。例えば、論理情報生成部１１３は、乱数を、検証用の論理情報として生成する。なお、論理情報生成部１１３は、乱数発生器により構成されるとしてもよい。
【００７０】
算出部１１４は、検証用の論理情報を用いて、符号情報を算出する。例えば、算出部１１４は、第二のヘッダ情報およびペイロードデータを対象として、ＭＡＣ算出処理を行う。ＭＡＣ算出によって、符号情報であるタグを取得する。なお、符号情報の算出対象は、暗号化されたペイロードデータであってもよい。例えば、後述の暗号処理部１１５により暗号化されたペイロードデータを、算出部１１４が取得し、暗号化されたペイロードと、第二のヘッダ情報に対して符号情報を算出する。
【００７１】
暗号化処理部１１５は、検証用の論理情報を暗号化する処理部である。なお、検証用の論理情報を暗号化する際には、ローカル送信先のノードと自ノードが共有する暗号用の論理情報が利用される。例えば、暗号化処理部１１５は、暗号用の論理情報として、ローカル送信先から配布されたアクセスキーを利用する。
【００７２】
また、暗号化処理部１１５は、パケットを第三者に対して秘匿する為に、ペイロードデータを暗号化する。なお、ペイロードデータを暗号化する際には、グローバル送信先のノードまたはシンクノードと、自ノードとが共有する暗号用の論理情報が利用される。例えば、暗号化処理部１１５は、事前に配布されたサーバキーを利用する。
【００７３】
通信部１１６は、他のノードと通信する処理部である。例えば、パケット生成部１１２が生成したパケットを、ローカル送信先アドレスに送信する。通信部１１６は、送信ノードにおける受信部および送信部として機能する。
【００７４】
記憶部１１７は、各種情報を記憶する。例えば、記憶部１１７は、ルーティングテーブル、暗号用の論理情報を管理する管理テーブルを記憶する。
【００７５】
図６は、ルーティングテーブルのデータ構成例である。ルーティングテーブル１１７１は、グローバル送信先アドレス、ローカル送信先アドレス、評価値を対応付けて記憶する。
【００７６】
なお、ルーティングテーブルの作成手法は、従来の手法が採用される。また、ノード１１およびノード１２は、ルーティングテーブルを作成する手段を有する。そして、当該手段がルーティングテーブル１１７１を作成し、記憶部１１７へ格納する。なお、ルーティングテーブルは定期的に更新される。
【００７７】
項目「グローバル送信先アドレス」には、パケットのグローバル送信先となるノードのアドレスが記述される。  項目「ローカル送信先アドレス」は、自ノードと通信可能な他のノードのアドレスが、各レコードに記述される。項目「評価値」は、各ローカル送信先と自ノードとの通信状況に応じて算出された評価値が格納される。なお、評価値は、例えば、通信強度が大きいほど、大きな値が設定される。
【００７８】
つまり、パケット生成部１１２は、パケット送信時に、パケットのグローバル送信先となるグローバル送信先アドレスをキーにルーティングテーブルを参照する。そして、パケット生成部１１２は、グローバル送信先アドレスに対応づいたローカル送信先アドレスの内、もっとも評価値が大きいローカル送信先アドレスを取得する。そして、パケット生成部１１２は、取得したローカル送信先アドレスを、第一のヘッダ部に設定する。
【００７９】
図６は、ノードＮｃのルーティングテーブルを示している。例えば、ノードＮｃが、シンクノードＳＮへパケットを送る場合、評価値が最も大きい「Ｎｂのアドレス」がローカル送信先アドレスとして取得される。
【００８０】
図７ＡおよびＢは、管理テーブルのデータ構成例である。図７Ａは、検証用の論理情報を暗号化する際の論理情報を管理する第一の管理デーブル１１７２である。図７Ｂは、ペイロードデータなどのデータを暗号化する際の論理情報を管理する第二の管理テーブル１１７３である。
【００８１】
第一の管理テーブル１１７２は、ローカル共有先アドレスと、暗号用の論理情報とを対応付けて記憶する。項目「ローカル共有先アドレス」には、論理情報を共有するノードのアドレスが記憶される。項目「暗号用の論理情報」には、ローカル共有先と自ノードとの間で共有された論理情報が記憶される。例えば、ローカル共有先毎に、ローカル共有先と共有されたアクセスキーが記憶される。つまり、検証用の論理情報を暗号化する場合の論理情報は、全ノードのうち、通信可能なノード間で共有された論理情報である。
【００８２】
図７Ａは、例えば、ノードＮｃの第一の管理テーブルである。パケット生成部１１２により、ローカル送信先アドレスが「Ｎｂのアドレス」に決定された場合には、暗号処理部１１５は「Ｎｂのアクセスキー」を用いて、検証用の論理情報を暗号化する。
【００８３】
第二の管理テーブル１１７３は、グローバル共有先アドレスと、暗号用の論理情報とを対応付けて記憶する。項目「グローバル共有先アドレス」には、論理情報を共有するノードまたはシンクノードのアドレスが記憶される。項目「暗号用の論理情報」には、グローバル共有先と自ノードとの間で共有された論理情報が記憶される。例えば、グローバル共有先毎に、グローバル共有先と共有されたサーバキーが記憶される。
【００８４】
図７Ｂは、例えば、ノードＮｃの第二の管理テーブルである。パケット生成部１１２が、グローバル送信先アドレスとして「ＳＮのアドレス」を設定した場合には、暗号処理部１１５は「サーバキー」を用いて、ペイロードデータを暗号化する。
【００８５】
次に、中継ノードとして機能するノード１２について説明する。ノード１２は、通信部１２１、復号処理部１２２、検証部１２３、パケット生成部１２４、暗号処理部１２５、記憶部１２６を有する。
【００８６】
通信部１２１は、他のノードと通信する処理部である。例えば、ノード１１からパケットを受信する。さらに、他のノードやシンクノードへパケットを転送する。通信部１２１は、中継ノードにおける受信部および送信部として機能する。
【００８７】
復号処理部１２２は、受信したパケットの論理情報格納部に格納された論理情報を復号する。なお、復号処理部１２２は、パケットのローカル送信元と自ノードとが共有した暗号用の論理情報を用いて、復号を行う。なお、復号処理部１２２は、自ノードがグローバル送信先アドレスに相当する場合は、ペイロードデータの復号を行う事により、ペイロードデータを入手する。
【００８８】
検証部１２３は、検証用の論理情報を用いて、パケットの検証を行う。例えば、検証部１２３は、ＭＡＣ鍵を用いて、パケットのＭＡＣ検証を行う。なお、パケットを受信する度に、パケットの検証を行う。また、自ノードの処理負荷が所定以下である場合に、パケットの検証を行ってもよい。パケットの検証の結果、パケットが正当なパケットであることが判定された場合には、他のノードへパケットは転送される。一方、パケットが不正なパケットである事が判定された場合には、パケットは破棄される。
【００８９】
パケット生成部１２４は、受信したパケットが正当なパケットである場合に、他のノードへ転送するパケットを生成する。つまり、パケット生成部１２４は、第一のヘッダ情報を書き換える。さらに、パケット生成部１２４は、後述の暗号処理部１２５により再暗号化された検証用の論理情報を、論理情報格納部に設定する。
【００９０】
暗号処理部１２５は、検証用の論理情報を、書き換えられた第一のヘッダ情報におけるローカル送信先に応じて、暗号化する処理部である。記憶部１２６は、記憶部１２５と同様に、ルーティングテーブルおよび管理テーブルを記憶する。つまり、パケット生成部１２４は、ルーティングテーブルを参照して、ローカル送信先アドレスを取得するとともに、第一のヘッダ情報に設定する。また、暗号処理部１２５は、第一の管理テーブルから、ローカル送信先アドレスをローカル共有先アドレスに持つレコードを検索し、当該レコードにおける暗号用の論理情報を取得する。そして、暗号処理部１２５は、取得した暗号化用の論理情報を利用して、検証用の論理情報を暗号化する。
【００９１】
図４においては、説明のために、送信ノードであるノード１１と、中継ノードであるノード１２とを別のノードとして記載したが、実際は、あるノード１０は、ノード１１として機能する場合と、ノード１２として機能する場合がある。
【００９２】
図８は、ノード１０の機能ブロック図である。なお、各処理部は、図４に示す各処理部と同様の処理を行う。例えば、あるノード１０が検出値をシンクノードＳＮへ送信する場合には、送信ノードであるノード１１として機能する。一方、あるノードが、他のノードから受信したパケットを他のノードへ転送する場合は、中継ノードであるノード１２として機能する。図８においては、各処理部は、ノード１１またはノード１２における同一の処理部と同様の処理を行う。
【００９３】
図９は、ノード１１によるパケット送信処理の処理フローチャートである。すなわち、ノード１０が、送信ノードとして機能する場合のパケット送信処理の処理フローである。
【００９４】
まず、取得部１１１が、センサから検出値を取得する（Ｏｐ．１）。そして、パケット生成部１１２は、第二のヘッダ情報を生成する（Ｏｐ．２）。そして、生成したヘッダ情報は、パケットの第二のヘッダ部に設定される。すなわち、グローバル送信先を決定するとともに、グローバル送信先アドレスを取得する。なお、記憶部１７は、各ノードおよびシンクノードのアドレスを記憶するテーブルを有しており、パケット生成部１１２は、当該テーブルより、アドレスを取得する。また、パケット生成部１１２は、グローバル送信元アドレスに自ノードのアドレスを設定する。
【００９５】
続いて、暗号処理部１１５は、検出値を含むペイロードデータを、グローバル送信先に応じた論理情報で、暗号化する（Ｏｐ．３）。暗号化されたペイロードデータは、パケットのペイロードデータ部に設定される。例えば、グローバル送信先アドレスが「ＳＮのアドレス」である場合に、暗号処理部１１５は、第二の管理テーブルを参照し、「ＳＮのアドレス」をグローバル共有先アドレスにもつレコードから、サーバキーを取得する。そして、サーバキーでペイロードデータを暗号化する。
【００９６】
次に、論理情報生成部１１３は、検証用の論理情報を生成する（Ｏｐ．４）。そして、算出部１１４は、暗号化されたペイロードデータ、および第二のヘッダ情報を対象として、検証用の論理情報に依存する符号情報を算出する（Ｏｐ．５）。算出された符号情報は、パケットの符号情報格納部に格納される。
【００９７】
パケット生成部１１２は、第一のヘッダ情報を生成する（ＯＰ．６）。生成された第一のヘッダ情報は、パケットの第一のヘッダ部に設定される。具体的には、パケット生成部１１２は、ルーティングテーブル１１７１を参照し、ローカル送信先アドレスを決定する。パケット生成部１１２は、ローカル送信先アドレスと自ノードのアドレスを含む第一のヘッダ情報を生成する。
【００９８】
次に、暗号処理部１１５は、検証用の論理情報を暗号化する（Ｏｐ．７）。暗号化された検証用の論理情報は、論理情報格納部に格納される。具体的には、暗号処理部１１５は、第一の管理テーブルを参照し、ローカル送信先アドレスを含むレコードから、暗号用の論理情報を取得する。暗号処理部１１５は、ローカル送信先と共有された論理情報で、検証用の論理情報を暗号化する。
【００９９】
通信部１１６は、パケットをローカル送信先アドレスに対して送信する（Ｏｐ.８）。
【０１００】
以上の処理によって、送信ノートから中継ノードへパケットが送信される。本実施例によれば、送信ノードにおいて、検証用の論理情報が生成される。さらに、検証用の論理情報は、ローカル送信先アドレスに応じて暗号化されるため、よりセキュリティが高い状態で、送信される。さらに、符号情報は、検証用の論理情報に依存する情報である為、検証用の論理情報を入手可能なノードであれば、同一の符号情報を用いてパケットを検証することができる。つまり、転送経路において、共通の符号情報が利用可能である。
【０１０１】
図１０は、ノード１２によるパケット検証およびパケット転送処理フローチャートである。すなわち、ノード１０が、中継ノードとして機能する場合のパケット検証およびパケット転送処理フローである。
【０１０２】
通信部１２１は、パケットを受信する（Ｏｐ．１０）。復号処理部１２２は、パケットの論理情報格納部に格納された検証用の論理情報を復号する（Ｏｐ．１１）。なお、復号処理部１２２は、第二の管理テーブルを参照し、ローカル送信元のアドレスに応じた暗号用の論理情報を利用して、復号を行う。
【０１０３】
検証部１２３は、パケット内に設定されたグローバル送信先アドレスが自ノードのアドレスと一致するか判定する（Ｏｐ．１２）。一致する場合は（Ｏｐ．１２Ｙｅｓ）、受信したパケットは、最終的な宛先を自ノードとするパケットであることとなる。
【０１０４】
一致する場合は（Ｏｐ．１２Ｙｅｓ）、検証部１２３は、パケットを検証し、正当なパケットであるか判定する（Ｏｐ．１３）。つまり、Ｏｐ．１２において復号された検証用の論理情報を用いて、ペイロードデータ格納部に格納されている情報、および第二のヘッダ部に格納されている情報を対象として、符号情報を算出する。そして、検証部１２３は、算出した符号情報と、パケットの符号情報格納部に格納されている情報とを比較する。一致する場合は、受信したパケットは、正当なパケットであると判定される。
【０１０５】
正当なパケットである場合は（Ｏｐ．１３Ｙｅｓ）、復号処理部１２２は、第二の管理テーブルを参照し、ペイロードデータを復号する（Ｏｐ．１４）。つまり、復号処理部１２２は、グローバル送信先アドレスを、グローバル共有先アドレスとするレコードを、第二の管理テーブルから検索する。そして、復号処理部１２２は、当該レコードにおける暗号用の論理情報を取得する。取得した論理情報を利用して、ペイロードデータを復号する。
【０１０６】
一方、受信したパケットが正当なパケットでない場合は（Ｏｐ．１３Ｎｏ）、検証部１２３は、受信したパケットを破棄する（Ｏｐ．１５）。
【０１０７】
Ｏｐ．１２において判定結果がＮｏである場合は、検証部１２３は、パケットの検証を実行するか判定する（Ｏｐ.１６）。例えば、処理負荷が閾値以上である場合は、パケットの検証を省略する事としてもよい。なお、Ｏｐ．１６の処理は省略され、必ずパケットの検証を行うとしてもよい。
【０１０８】
パケットの検証を実行する場合は（ＯＰ.１６Ｙｅｓ）、検証部１２３はパケットの検証を実行する。受信したパケットが正当なパケットである場合には（Ｏｐ.１７Ｙｅｓ）、パケット生成部１２４は第一のヘッダ情報を生成する（Ｏｐ．１８）。
【０１０９】
具体的には、ルーティングテーブルを参照し、グローバル送信先アドレスに対応するローカル送信先アドレスの内、もっとも評価値の高いアドレスを取得する。そして、ローカル送信元アドレスに自アドレスを、ローカル送信先アドレスに取得したアドレスを含む第一のヘッダ情報を生成する。そして、第一のヘッダ情報は、第一のヘッダ部に格納される。
【０１１０】
次に、暗号化処理部１２５は、検証用の論理情報を、ローカル送信先に応じて暗号化する（Ｏｐ．１９）。具体的には、第一の管理テーブルを参照し、ローカル送信先アドレスをローカル共有先アドレスに有するレコードから、暗号用の論理情報を取得する。そして、暗号化処理部１２５は、暗号用の論理情報を用いて、検証用の論理情報を暗号化する。なお、暗号化された論理情報は、論理情報格納部に格納される。
【０１１１】
続いて、通信部１２１は、ローカル送信先アドレスに対して、パケットを転送する。なお、送信されるパケットは、受信したパケットの内、第一のヘッダ情報が変更されている。また、論理情報格納部に格納される情報が、ローカル送信先に応じて再暗号化されている。
【０１１２】
なお、パケットが不正なパケットである場合は（Ｏｐ.１７Ｎｏ）、パケットは破棄される（Ｏｐ．２１）。また、パケットの検証を実行しない場合は（Ｏｐ.１６Ｎｏ）、Ｏｐ．１８以降の処理が実行される。
【０１１３】
以上の処理により、受信したパケットに含まれる符号情報は、検証用の論理情報とともに、ローカル送信先のノードへ共有される。つまり、転送経路を形成する各ノードには、同一の符号情報と、同一の検証用の論理情報が共有される。よって、中継ノードが、新たなローカル送信先に応じて、新たに符号情報を算出しなおす処理は不要化できる。さらに、検証用の論理情報は、自ノードとローカル送信先のノードとの間で共有された論理情報により暗号化される。つまり、正規のノード以外に検証用の論理情報が取得されることはない。
【０１１４】
したがって、本実施例に開示の技術では、全ノードで事前に共有した検証用の論理情報を利用する場合と比べ、セキュリティが向上される。さらに、図２に示す技術のように、ノード間で検証用の論理情報が異なることがない為、パケットの検証処理以外に、パケット転送毎に符号情報を算出しなおすという処理が不要となる。
【０１１５】
ここで、今回の本実施例に開示の技術は、次の様な側面からも、図２に示す技術よりも有利であるといえる。図１１は、本実施例に開示の技術の一つの効果を説明する為の第一の図である。図１１は、暗号化処理の一例として、ブロック暗号のＣＢＣモードを示す図である。
【０１１６】
ＣＢＣモードは、平文であるデータを、所定のビット長であるブロックに区切る。ＣＢＣモードでは、初期値として準備された乱数を用いて、ブロック１とＸＯＲ計算を実行する。そして、暗号用の論理情報にあたる暗号鍵を利用して、ブロック暗号を行う。このような処理を連鎖的に実施する。最後のブロック４が暗号化された時点で、全てのブロックの暗号処理の結果を合わせたものが暗号化データとなる。
【０１１７】
符号情報の算出処理と、暗号化処理とを比較すると、処理負荷はデータ長に依存する。特に、図１および図１１からわかる様に、ＣＭＡＣ算出処理と、ＣＢＣモードによる暗号化とは、処理内容は類似する為、データ長が長くなるほど、各々の処理コストが大きくなると考えて良い。
【０１１８】
図１２は、本実施例に開示の技術の一つの効果を説明する為の第二の図である。図１２には、中継ノードに関する処理コストが示される。中継ノードとは、あるノードからパケットを受信し、さらに他のノードへパケットの転送を行うノードである。上記のように、本実施例においては、パケットの検証処理は省略される場合もあるが、ここでは、パケットの検証処理を実行するとして説明を行う。
【０１１９】
また、通常、アドホックネットワークにおいて転送されるパケットのペイロードデータは、可変長であるが、ここでは、１２８バイトとして説明する。また、検証用の論理情報は、ここでは、１６バイトとする。これは、一般的に、ＭＡＣ算出において利用される鍵の長さが１２８ビット（すなわち１６バイト）である為である。
【０１２０】
ここで、パケットの検証処理の処理コストを「１」とする。なお、パケットの検証処理は、基本的に受信したパケット内のペイロードデータに対して、符号情報を算出する処理がボトルネックである為、算出された符号情報と、パケット内に設定された符号情報とを比較する処理は、基本的に無視できるとする。したがって、パケット検証の処理コストと、符号情報の処理コストとは、概ね等しいと考えることができる。
【０１２１】
また、図１２の説明においては、ペイロードデータのみを対象として、符号情報が算出されるとして説明を行うが、ペイロードデータおよび第二のヘッダ情報を対象として符号情報を算出する場合には、符号情報の算出にはさらに大きな処理コストが要される。
【０１２２】
まず、図２に示す技術は、パケットの検証処理のほかに、符号情報を再算出する処理が必要である。以上のように、図２に示す技術において、中継ノードには、概ね処理コスト「２」が発生する。なお、符号情報の再算出処理は、パケットの検証処理と処理コストは同じである。
【０１２３】
次に、本実施例においては、パケット検証処理のほかに、パケットに含まれる検証用の論理情報を復号する処理と、検証用の論理情報をローカル送信先に応じて暗号化する処理とが必要となる。検証用の論理情報に対する復号処理および暗号化処理は、受信パケット内に含まれる暗号化された論理情報を、ローカル送信先でも復号可能とする為に必要である。
【０１２４】
検証用の論理情報を復号する処理と、検証用の論理情報を暗号化する処理は、図１および図１１に示すように、暗号化（または復号）されるデータ長に依存すると考えられる。したがって、１２８バイトのペイロードデータに対して符号情報と算出する処理と、１６バイトの検証用の論理情報を暗号化（または復号）する処理とは、概ね、８対１の処理コストの関係にあると考えられる。よって、復号処理と暗号処理およびパケット検証処理を併せて、本実施例における中継ノードには、処理コスト「１．２５」が発生する。
【０１２５】
以上のように、本実施例は、予め検証用の論理情報を共有せずとも、符号情報再算出処理が不要となることで、中継ノードにおける処理負荷も、図２の技術と比較して低減することができる。また、この効果は、符号情報の算出対象となるデータ長が長くなるほど、顕著となる。したがって、より大きなデータをパケット転送する際に、本実地例はさらに有効である。
【０１２６】
図１３は、ノード１０のハードウェア構成例である。ノード１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０２と、フラッシュメモリ３０３と、インターフェース（Ｉ／Ｆ）３０４と、暗号化回路３０５と、センサ３０６と、バス３０７とを備えている。ＣＰＵ３０１乃至センサ３０６は、バス３０７よってそれぞれ接続されている。
【０１２７】
ＣＰＵ３０１は、ノード１０の全体の制御を司る。ＣＰＵ３０１は、ＲＡＭ３０２に展開されたプログラムを実行することにより、取得部１１１、パケット生成部１１２または１２４、論理情報生成部１１３、算出部１１４、検証部１２３として機能する。
【０１２８】
ＲＡＭ３０２は、ＣＰＵ３０１のワークエリアとして使用される。フラッシュメモリ３０３は、プログラムや、各種鍵の情報、ルーティングテーブルを記憶している。なお、フラッシュメモリ３０３は、記憶装置１１７または１２６の一例である。プログラムには、例えば、図９および図１０のフローチャートに示したノードにおける各処理を実行させる為のプログラムが含まれる。例えば、パケットの送信処理、パケットの検証処理、パケットの転送処理を、ノードに実行させる為の制御プログラムが、フラッシュメモリ３０３に記憶される。
【０１２９】
フラッシュメモリ３０３に記憶されたプログラムを、ＲＡＭ３０２に展開し、ＣＰＵ３０１が実行することで、ノード１０は、図４または図８に記載した各種処理部として機能する。また、ノード１０は、図９および図１０の処理を実行する。
【０１３０】
Ｉ／Ｆ３０４は、マルチホップ通信によりパケットを送受信する。Ｉ／Ｆ３０４は、通信部１１６または１２１の一例である。
【０１３１】
暗号化回路３０５は、データを暗号化する場合に暗号鍵によりデータを暗号化する回路である。例えば、パケットを暗号化して送信する場合は、暗号化回路３０５が機能する。暗号化回路３０５は、暗号処理部１１５または１２５、復号処理部１２２の一例である。なお、暗号化をソフトウェア的に実行する場合は、ＣＰＵ３０１が暗号処理部１１５または１２５、復号処理部１２２として機能する。ＣＰＵ３０１は、暗号化回路３０５に相当するプログラムをフラッシュメモリ２３から読み出し、実行する。
【０１３２】
センサ３０６は、センサ３０６固有のデータを検出する。たとえば、温度、湿度、水位、降水量、風量、音量、電力使用量、時間、時刻、加速度など、測定対象にあったデータを検出する。なお、ＣＰＵ３０１が、取得部１１１として機能する際には、センサ３０６から検出値を取得する。
【符号の説明】
【０１３３】
１０      ノード
１１      送信ノード
１２      中継ノード
１１１    取得部
１１２    パケット生成部
１１３    論理情報生成部
１１４    算出部
１１５    暗号処理部
１１６    通信部
１１７    記憶部
１２１    通信部
１２２    復号処理部
１２３    検証部
１２４    パケット生成部
１２５    暗号処理部
１２６    記憶部
３０１    ＣＰＵ
３０２    ＲＡＭ
３０３    フラッシュメモリ
３０４    Ｉ／Ｆ
３０５    暗号化回路
３０６    センサ
３０７    バス
【図１】
2013175539.tif 000003
【図２】
2013175539.tif 000004
【図３】
2013175539.tif 000005
【図４】
2013175539.tif 000006
【図５】
2013175539.tif 000007
【図６】
2013175539.tif 000008
【図７】
2013175539.tif 000009
【図８】
2013175539.tif 000010
【図９】
2013175539.tif 000011
【図１０】
2013175539.tif 000012
【図１１】
2013175539.tif 000013
【図１２】
2013175539.tif 000014
【図１３】
2013175539.tif 000015
【国際調査報告】
2013175539.tif 000016
2013175539.tif 000017
2013175539.tif 000018
2013175539.tif 000019