(57)【要約】【課題】通信端末装置間での接続関係の変化が激しいアドホックネットワークでは、接続関係が変化するたびに認証をおこなうと処理量の負荷が大きくなる。【解決手段】通信端末装置が同じ共通鍵を有するときには、その共通鍵で相互認証をおこない、同じ共通鍵を有さないときには、公開鍵による相互認証をおこなう。相互認証をおこなった通信端末装置間では、自分が選択した共通鍵および他の通信端末装置から受信した共通鍵を互いに交換し保持する。通信端末装置の認証のときには、共通鍵を双方が有していないときには、片方が共通鍵を生成して、他方に配布し、共通鍵を片方が有しているときには、その共通鍵を生成して、他方に配布する。また、中継ノードにあたる通信端末装置の保持する共通鍵は、定期的にブロードキャストされる。【選択図】        図１
2006165984.tif 000002
【特許請求の範囲】
【請求項１】
無線通信端末が相互に通信することにより構成されるアドホックネットワークの認証方法において、
前記無線通信端末は、
無線通信端末間の第一の相互認証をおこなう手段と、
共通鍵により無線通信端末間の第二の相互認証をおこなう手段と、
相互認証のための共通鍵に関する共通鍵情報を送信する手段と、
相互認証のための共通鍵に関する共通鍵情報を受信する手段と、
相互認証のための共通鍵を保持する手段とを有し、
アドホックネットワーク上の第一の無線通信端末と第二の無線通信端末が相互認証をおこなうときに、
前記第一の無線通信端末と前記第二の無線通信端末が、共通に保持する共通鍵が存在するか否かを判定する手順と、
共通に保持する共通鍵が存在しないときには、前記第一の相互認証をおこなう手順と、
共通に保持する共通鍵が存在するときには、その共通鍵を用いて前記共通鍵により無線通信端末間の第二の相互認証をおこなう手段によって、相互認証をおこなう手順とを有することを特徴とするアドホックネットワークの認証方法。
【請求項２】
前記第一の相互認証は、公開鍵によりおこなわれることを特徴とする請求項１記載のアドホックネットワークの認証方法。
【請求項３】
前記共通鍵情報は、自端末で生成した共通鍵および他の端末より受信した共通鍵情報に含まれる共通鍵を含むことを特徴とする請求項１記載のアドホックネットワークの認証方法。
【請求項４】
前記第一の無線通信端末と前記第二の無線通信端末が前記第一の相互認証をおこなったときに、互いに保持する前記共通鍵情報を交換することを特徴とする請求項１記載のアドホックネットワークの認証方法。
【請求項５】
前記無線通信端末は、保持する共通鍵情報を定期的に送信することを特徴とする請求項１記載のアドホックネットワークの認証方法。
【請求項６】
前記第一の無線通信端末と前記第二の無線通信端末が、共通に保持する共通鍵が存在するか否かを判定する手順において、
前記第一の無線通信端末と前記第二の無線通信端末とに、共に共通鍵が存在しないときには、前記第一の無線通信端末が共通鍵を生成して、その共通鍵を含む共通鍵情報を前記第二の無線通信端末に送信し、
前記第一の無線通信端末に共通鍵が存在し、前記第二の無線通信端末に共通鍵が存在しないときには、前記第一の無線通信端末が前記共通鍵を含む共通鍵情報を前記第二の無線通信端末に送信し、
前記第一の無線通信端末に共通鍵が存在し、かつ、前記第二の無線通信端末に共通鍵が存在するときには、第一の無線通信端末が保持する共通鍵を含む共通鍵情報を前記第二の無線通信端末に送信し、かつ、第二の無線通信端末が保持する共通鍵を含む共通鍵情報を前記第一の無線通信端末に送信することを特徴とする請求項１記載のアドホックネットワークの認証方法。
【請求項７】
無線通信端末が相互に通信することにより構成されるアドホックネットワークの無線通信端末において、
無線通信端末間の第一の相互認証をおこなう手段と、
共通鍵により無線通信端末間の第二の相互認証をおこなう手段と、
相互認証のための共通鍵に関する共通鍵情報メッセージを送信する手段と、
相互認証のための共通鍵に関する共通鍵情報メッセージを受信する手段と、
相互認証のための共通鍵を保持する手段と、
アドホックネットワーク上の他の無線通信端末との相互認証をおこなうときに、他の無線通信端末が共通に保持する共通鍵が存在するか否かを判定する手段とを有し、
前記他の無線通信端末が共通に保持する共通鍵が存在するか否かを判定する手段によって、前記共通に保持する共通鍵が存在しないと判定されたときには、前記無線通信端末間の第一の相互認証をおこなう手段によって、他の無線通信端末により相互認証をおこない、
前記他の無線通信端末が共通に保持する共通鍵が存在するか否かを判定する手段によって、前記共通に保持する共通鍵が存在すると判定されたときには、その共通鍵を用いて前記共通鍵により無線通信端末間の第二の相互認証をおこなう手段によって、相互認証をおこなうことを特徴とするアドホックネットワークの無線通信端末。
【請求項８】
前記第一の相互認証は、公開鍵によりおこなわれることを特徴とする請求項７記載のアドホックネットワークの無線通信端末。
【請求項９】
前記共通鍵情報メッセージは、自端末で生成した共通鍵および他の端末より受信した共通鍵が共通鍵情報リストとして含むことを特徴とする請求項７記載のアドホックネットワークの無線通信端末。
【請求項１０】
前記共通鍵情報メッセージを、他の無線通信端末と互いに送信および受信しあうことを特徴とする請求項７記載のアドホックネットワークの無線通信端末。
【請求項１１】
前記共通鍵情報メッセージを、定期的にブロードキャストすることを特徴とする請求項７記載のアドホックネットワークの無線通信端末。
【請求項１２】
自端末で生成した共通鍵および他の端末より受信した共通鍵を、存在可能共通鍵情報として保持することを特徴とする請求項７記載のアドホックネットワークの無線通信端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドホックネットワークの認証方法、および、その無線通信端末に係り、接続関係が流動的なアドホックネットワークに好適であって、無線通信端末間の相互認証の処理を効率的におこない無線通信端末の処理の負荷を軽減するアドホックネットワークの認証方法、および、その無線通信端末に関する。
【背景技術】
【０００２】
アドホックネットワークは、無線通信端末(パソコン、ＰＤＡ、携帯電話など)が端末間に介在するアクセスポイントを必要とせず、自律的に相互に接続する形態を持つネットワークである。このため、アドホックネットワークでは基地局やアクセスポイントが不要となり、このようなインフラを持たない場所で安価にネットワークを構築することができ、ある限られた域内での簡易なネットワークの構築の手段として有効である。
【０００３】
このように、アドホックネットワークは、電話回線、携帯電話ネットワーク、インターネットワークなど既存の特定のネットワークインフラに依存することなく、各通信端末は互いに対等で自律分散的に振舞い、伝送範囲内にある通信端末装置（ノード）同士が無線通信により、直接情報を交換することが可能である。また、電波が届かず直接情報を交換できないノード同士も、途中のノードが中継すること（無線マルチホップ通信）により、情報を交換することが可能である。
【０００４】
このようなアドホックネットワークにおいて、あるグループに属する通信端末装置間でのみ通信することができる閉域通信網を構成する場合には、グループ内の情報のセキュリティを確保するために、グループに属さない通信端末装置の接続を防止したり、通信データの漏洩を防ぐ必要がある。また、ノードが移動し、ノード間の接続関係が変化した場合にも安全かつ円滑に通信をおこなう必要がある。
【０００５】
閉域通信網におけるセキュリティに関して、例えば、以下の特許文献１に、不特定多数の通信端末と自立的に閉域通信網を構築するグループ通信方法において、暗号化のための共通鍵を配布すること等により、セキュリティを確保するための技術が開示されている。具体的には、呼び掛けのメッセージの送信元である通信端末装置が、応答した通信端末装置との間でＰｔｏＰ（Peer to Peer）のコネクションを構成し、応答側の通信端末装置の公開鍵で共通鍵を配布することで、グループ内で共通鍵を共有することが提案されている。
【０００６】
また、以下の特許文献２には、ある通信端末装置がアドホックネットワークに参加する際における、直接的には接続されないノードとの認証技術について開示されている。
【０００７】
また、以下の特許文献３には、複数の基地局と移動通信端末が存在したときに、移動通信端末装置との接続がある基地局から他の基地局に変化した場合の認証方法について開示されている。具体的には、ある基地局で基地局間で共有する鍵を使って認証継続鍵を生成し、通信端末装置に配布する。そして、その通信端末装置が、他の基地局と接続すると、受信した認証継続鍵を使って、その他の基地局との認証をおこなうものである。
【０００８】
【特許文献１】特開２００２−１１１６７９号公報
【特許文献２】欧州特許出願公開第１１０２４３０号明細書
【特許文献３】特開２００２−３００１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記特許文献１に開示された技術は、閉域通信網を構成する通信端末装置同士が相互にＰｔｏＰのコネクションを構成していることを前提としている。このため、マルチホップ通信が用いられるアドホックネットワークには、特に、共通鍵を共有するための共通鍵の配布について、そのまま適用することができないという問題点がある。
【００１０】
また、上記特許文献２においても、共通鍵の配布や接続関係が変化した場合の認証処理の効率化については考慮されていない。
【００１１】
さらに、上記特許文献３で開示された技術は、サーバ・クライアント型であり、サーバが存在しないアドホックネットワークではそのまま適用することができないという問題点がある。
【００１２】
ところで、アドホックネットワークでは、相互の認証のため公開鍵を用いる方式がある。この公開鍵を用いる認証では、認証する端末が乱数などのデータを送信する。認証される端末では、このデータを秘密鍵により暗号化して、認証する端末に送り返す。そして、認証する端末でこの暗号化されたデータを公開鍵により復号して、元の送信データと一致するときには、認証する端末が秘密鍵を持っていることが確認されたので、その端末が真正の通信先であると認証する。この公開鍵を用いた認証は、復号化に用いる鍵の管理が容易である利点がある。
【００１３】
一方、どちらの端末も共通の暗号鍵を使って認証する、いわゆる秘密鍵方式もある。しかしながら、アドホックネットワークのすべての端末で同じ暗号鍵を用いるため一つの鍵が盗まれるとネットワーク上のすべての端末の暗号鍵が使用できなくなるというセキュリティ上の問題点がある。
【００１４】
公開鍵方式では、端末毎に別々の暗号鍵を用いるために、セキュリティ上は優れているが認証のための処理の負荷が大きくなるという欠点がある。このことは、端末の位置関係が流動的であり、認証処理がしばしば発生するアドホックネットワークにおいては大きな問題となる。
【００１５】
本発明は、上記問題点を解決するためになされたもので、その目的は、セキュリティを保持しながら、端末相互の認証処理を効率的におこなえるようなアドホックネットワークの認証方法を提供することにある。
【課題を解決するための手段】
【００１６】
本発明は、通信端末装置が移動し、ネットワークの接続関係が変化した場合、または一時的に接続が切れた後に再びアドホックネットワークに参加した場合に、アドホックネットワークを構成する全ての通信端末装置で共有する鍵を用いて認証をおこなうことで、認証処理の効率化を図るものである。
【００１７】
具体的には、通信端末装置がアドホックネットワークに参加する際に、隣接する通信端末装置と認証をおこなう。共通の鍵を持っていないときには、公開鍵により相互認証をおこなう。共通の鍵を持っているときには、その共通の鍵で相互認証をおこなう。
【００１８】
認証に成功すると、通信端末装置間で共通の鍵を互いに共有する。
【００１９】
通信端末装置が移動し、接続関係が変化した場合や、一時的に接続が切れ、再び接続した場合にも、共通の鍵を共有してるときには、その鍵を使って認証をおこなう。
【００２０】
このアドホックネットワークを構成する通信端末装置で共有する鍵は、アドホックネットワークのルーティングの中継ノードにおいて各通信端末装置が定期的に配布する。
【００２１】
共通の鍵は、別々の端末間で発生し使われる可能性がある。そのため一般には、アドホックネットワークの通信端末装置間の共通の鍵は複数ある。そこで、通信端末装置は、自分が他の端末との認証に用いた共通の鍵以外にも、他の通信端末装置から受信した共通の鍵を、また他の通信端末装置に共通鍵情報として配布することにする。共通鍵情報を受信した通信無線端末は、ある一定の基準（生成時刻が古い鍵は捨て、新しい鍵を残すなど）により、この共通鍵情報を編集して、これをまた他の通信端末装置に配布する。
【発明の効果】
【００２２】
本発明によれば、セキュリティを保持しながら、端末相互の認証処理を効率的におこなえるようなアドホックネットワークの認証方法を提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明に係る各実施形態を、図１ないし図２１を用いて説明する。
【００２４】
〔本発明のアドホックネットワークによる通信の概要〕
先ず、図１を用いて本発明のアドホックネットワークによる通信の概要、基本概念について説明する。
図１は、本発明のアドホックネットワークによる通信の概要を説明するための図である。
【００２５】
図１に示されるように、不特定多数の通信端末装置１０（ノード）のうち、特定のグループに属する通信端末装置１０（Ａ１〜Ａ６）が自律分散的な無線通信により一時的な閉域通信網であるアドホックネットワークを構成している場合を考える。
【００２６】
具体的には、通信端末装置１０（Ａ２）が通信端末装置１０（Ａ１、Ａ３、Ａ４）と接続状態にあり、また、通信端末装置１０（Ａ４）が通信端末装置１０（Ａ２、Ａ５、Ａ６）と接続状態にある。これらは、後述するようにグループに属する通信端末装置１０同士が、それぞれの無線伝送範囲に含まれた場合に接続状態になるものとする。このような状態の下で、通信端末装置１０（Ａ１〜Ａ６）は、グループ内における相互の通信が可能となっている。例えば、通信端末装置１０（Ａ１）は、通信端末装置１０（Ａ４）と接続状態にないが、通信端末装置１０（Ａ２）を中継して通信端末装置１０（Ａ４）と通信することができる。
【００２７】
本発明は、このようにアドホックネットワークの通信端末装置１０でグループが構成されているときに、各々の通信端末装置１０が移動し、接続の関係が変化した場合、あるいは、グループ内の通信端末装置１０が一時的にグループを離脱し、再度参加した場合の認証処理の簡略化に関するものである。
【００２８】
例えば、通信端末装置１０（Ａ２）と接続状態にある通信端末装置１０（Ａ１）が移動し、通信端末装置１０（Ａ４）と新たに接続状態になった場合に、通信端末装置１０（Ａ４）との認証処理を簡略におこない、接続が円滑におこなえるようにする。また、通信端末装置１０（Ａ５）がグループを離脱し、一時的に通信端末装置１０（Ａ４）と通信が不可能な状態になった後、再度通信端末装置１０（Ａ４）と接続した場合に認証処理を簡略におこない、接続が円滑におこなえるようにするものである。
【００２９】
接続を円滑にするため、本発明では、通信端末装置１０が移動または一時的に離脱した場合の認証には、アドホックネットワークに接続している通信端末装置１０のすべてが共有する共通鍵を使用する。この鍵の個数は、アドホックネットワーク内で一つであることもあるし、複数であることもある。本明細書において、このアドホックネットワークのグループで共通に用いられる共通鍵を「アドホック鍵」と称するものとする。
【００３０】
ここで、アドホック鍵は、後述するように相互認証後の鍵交換のときに互いの通信端末装置１０がアドホック鍵を保持していない場合に片方のう通信端末装置１０で生成され、中継ノードによって、中継ノードに隣接する全ての通信端末装置１０に配布される。このため、アドホックネットワーク内には、複数のアドホック鍵が存在する可能性がある。このため各アドホック鍵には、システム内で一意的な識別子が付されていて、各通信端末装置１０では、アドホック鍵の管理がおこなえるようになっている。
【００３１】
なお、各通信端末装置１０は、アドホック鍵以外にも、ノード間鍵、サークル内鍵を管理して、通信端末装置１０同士、あるいは、通信端末装置１０の伝送可能範囲内（「サークル内」と称する）における通信の暗号化をおこなう。特に、サークル内鍵は、アドホック鍵の配布の際にも用いられる。
【００３２】
ここで、例えば、通信端末装置１０（Ａ２）のサークル内鍵は、通信端末装置１０（Ａ２）が生成し、通信端末装置１０（Ａ２）との相互認証を終えた通信端末装置１０、図１の例でいえば、通信端末装置１０（Ａ１、Ａ３、Ａ４）に配布され、それぞれの通信端末装置１０（Ａ１〜Ａ４）で共有される。したがって、図１の例では、Ａ１〜Ａ６の合計六つのサークル内鍵が存在することになる。
【００３３】
また、ノード間鍵は、相互認証を行なった通信端末装置１０同士が共有する鍵である。したがって、図１の例では、Ａ１−Ａ２、Ａ２−Ａ３、Ａ２−Ａ４、Ａ４−Ａ５、Ａ４−Ａ６の六つのノード間鍵が存在することになる。
【００３４】
なお、ノード間鍵、サークル内鍵、アドホック鍵は、それぞれ通信データを暗号化する暗号鍵だけでなく、データの完全性を保証する完全性保証鍵など、用途別の鍵を複数含むことができるものとする。
【００３５】
〔アドホックネットワークのルーティング方式〕
次に、図４を用いて本発明の説明のために想定するアドホックネットワークにおけるルーティング方式の概要について説明する。
図４は、ＨｅｌｌｏメッセージとＴｃメッセージのフォーマットの一例を示す図である。
【００３６】
アドホックネットワークのルーティング方式については、ＩＥＴＦ  ＭＡＮｅｔ（Mobile Ad Hoc Networking）において、標準化が検討されているが、ここでは提案されている方式の１つであるＯＬＳＲ（Optimized Link State Routing）方式を例に説明する。ＯＬＳＲ方式は、いわゆるＰｒｏａｃｔｉｖｅ型のルーティング方式である。なお、ＯＬＳＲ方式については、http://www.ietf.org/rfc/rfc3626.txtに詳述されている。
【００３７】
ただし、本発明は、この方式に限られず、その他のＰｒｏａｃｔｉｖｅ型、あるいは、Ｒｅａｃｔｉｖｅ型、ハイブリッド型等のルーティング方式に適用することができる。
【００３８】
ＯＬＳＲ方式において、各通信端末装置１０は、制御メッセージとしてＨｅｌｌｏメッセージを、例えば、２秒毎に自律的にブロードキャスト配信する。ここで、Ｈｅｌｌｏメッセージには、発信元の識別子、直接（１ホップ）通信可能な隣接ノードのリスト、および、次に説明するＭＰＲノードのリストであるＭＰＲノードリストが含まれるものとする。このＨｅｌｌｏメッセージは、伝送範囲内に存在する他の通信端末装置１０で受信される。なお、相互認証についてはここでは触れないものとする。
【００３９】
Ｈｅｌｌｏメッセージを受信した他の通信端末装置１０は、Ｈｅｌｌｏメッセージを参照し、自身は直接通信をおこなうことはできないが、Ｈｅｌｌｏメッセージの送信元ノードに転送してもらえば間接的に通信できるノードがある場合には、その送信元ノードをＭＰＲノード（MultiPoint Relays）として識別する。そして、次に送信すべきＨｅｌｌｏメッセージに、ＭＰＲノードとして識別したノードをＭＰＲノードリストに付加して送信する。
【００４０】
例えば、図１において、通信端末装置１０（Ａ１）は、通信端末装置１０（Ａ３)とは直接的には通信をおこなうことができないが、通信端末装置１０（Ａ２）を介して間接的に通信をおこなうことができる。この場合、通信端末装置１０（Ａ２）からのＨｅｌｌｏメッセージによって、通信端末装置１０（Ａ１）にとって通信端末装置１０（Ａ２）は、ＭＰＲノードであると識別され、通信端末装置１０（Ａ１）から送信されるＨｅｌｌｏメッセージのＭＰＲノードリストに通信端末装置１０（Ａ２）の識別子、例えば、ＩＰアドレスが含められる。
【００４１】
図４（ａ）は、Ｈｅｌｌｏメッセージのフォーマットの一例を示す図である。
【００４２】
Ｈｅｌｌｏメッセージ４００は、図４（ａ）に示されるように、メッセージ種別４０１、送信元ノードＩＤ４０２、隣接ノードリスト４０３、ＭＰＲノードリスト４０４、ＭＡＣ（Message Authentication Code）４０５よりなる。
【００４３】
メッセージ種別４０１は、このメッセージがＨｅｌｌｏメッセージであることを示す識別子である。送信元ノードＩＤ４０２は、送信元である通信端末装置１０を識別するための識別子である。隣接ノードリスト４０３は、１ホップの距離にある隣接ノードのリストである。 ＭＰＲノードリスト４０４は、このメッセージの送信元から見てＭＰＲノードにあたるノードのリストである。ＭＡＣ（Message Authentication Code）４０５は、メッセージの内容の完全性を保証するコードである。
【００４４】
ここで、送信元ノードＩＤ４０２としては、例えば、ＩＰアドレスを用いることができる。また、１ホップ隣接ノードリスト４０３、ＭＰＲノードリスト４０４においてもＩＰアドレスでリストに含められる各ノードを識別することができる。
【００４５】
なお、図１の例で、通信端末装置１０（Ａ１）がＨｅｌｌｏメッセージ４００の送信元であるとすると、隣接ノードリスト４０３とＭＰＲノードリスト４０４には、共に、通信端末装置１０（Ａ２）の識別子が入ることになる。
【００４６】
ＭＡＣ４０５は、例えば、サークル内鍵によってメッセージの内容をコード化して格納するものであり、これにより改ざんなどを防ぐことができる。
【００４７】
また、ＭＰＲとなった通信端末装置１０は、Ｈｅｌｌｏメッセージに加え、Ｔｃ（Topology Control）メッセージを、例えば、５秒毎に自律的にブロードキャスト送信する。ここで、Ｔｃメッセージには、アドホックネットワーク内でＭＰＲとなったノードのリストであるＭＰＲノードリストが含まれるものとする。なお、自通信端末装置１０がＭＰＲとなったか否かは、他の通信端末装置１０から送られてきたＨｅｌｌｏメッセージを参照することで判断することができる。
【００４８】
Ｔｃメッセージを受信したＭＰＲノードは、このＴｃメッセージを隣接するノードに転送する。このとき、ＭＰＲノードリストに自身の識別子、例えば、ＩＰアドレスを付加して転送する。
【００４９】
また、Ｔｃメッセージを受信した各通信端末装置１０は、Ｔｃメッセージに基づいて、ルーティングテーブルを生成・更新する。これにより、各通信端末装置１０は、アドホックネットワークのトポロジーを把握することができ、ルーティングテーブルにしたがって、アドホックネットワーク内の通信データの配信を制御する。
【００５０】
図４（ｂ）は、Ｔｃメッセージのフォーマットの一例を示す図である。
【００５１】
Ｔｃメッセージ４１０は、図４（ｂ）に示されるように、メッセージ種別４１１、送信元ノードＩＤ４１２、生成元ノードＩＤ４１３、直接ノードリスト４１４、ＭＡＣ４１５よりなる。
【００５２】
メッセージ種別４１１は、このメッセージがＴｃメッセージであることを示す識別子である。送信元ノードＩＤ４１２は、Ｔｃメッセージの送信元のノードを示す識別子である。生成元ノードＩＤ４１３は、Ｔｃメッセージの生成元のノードを示す識別子である。直接ノードリスト４１４は、Ｔｃメッセージの生成元ノードにおける直接ノードのリストである。ＭＡＣ４１５は、メッセージの内容の完全性を保証するコードである。
【００５３】
ここで、直接ノードは、そのＴｃメッセージの送信元を、ＭＰＲノードとして認識しているノードであり、図１の例で、通信端末装置１０（Ａ２）がＴｃメッセージの送信元であるときには、直接ノードリスト４１４には、通信端末装置１０（Ａ１）と通信端末装置１０（Ａ３）の識別子が入る。
【００５４】
ＭＰＲとなった通信端末装置１０は、受信したメッセージにより、アドホックネットワークのトポロジーの内容を管理してＴｃメッセージを生成することができる。
【００５５】
〔アドホック鍵情報メッセージ４２０〕
次に、図５を用いてアドホック鍵情報メッセージ４２０について説明する。
図５は、アドホック鍵情報メッセージ４２０の一例を示す図である。
【００５６】
アドホック鍵情報メッセージ４２０は、自ノードが知っているアドホック鍵に関する情報を他のノードに伝えるものであり、図５に示されるように、メッセージ種別４２１、送信元ノードＩＤ４２２、シーケンス番号４２３、アドホック鍵４２４、識別子４２５、生成時刻４２５、アドホック鍵情報リスト４２７、ＭＡＣ４２８よりなる。
【００５７】
メッセージ種別４２１は、このメッセージがアドホック鍵情報メッセージであることを示す識別子である。送信元ノードＩＤ４２２は、アドホック鍵情報メッセージ送信元のノードを示す識別子である。シーケンス番号４２３は、アドホック鍵情報メッセージを識別する続き番号である。アドホック鍵４２４は、現在自ノードが選択しているアドホック鍵である。識別子４２５は、アドホック鍵４２４の識別子である。生成時刻４２５は、アドホック鍵４２４の生成された時刻である。アドホック鍵情報リスト４２７は、自ノードの過去のアドホック鍵または隣接ノードから受信したアドホック鍵のリストである。 ＭＡＣ４２８は、メッセージ内容の完全性を保証するためのコードである。
【００５８】
シーケンス番号４２３、アドホック鍵４２４、識別子４２５、生成時刻４２５、アドホック鍵情報リスト４２７は、セキュリティを高めるためにサークル内鍵で暗号化される。
【００５９】
アドホック鍵情報メッセージ４２０は、このように自ノードが知りうるアドホック鍵に関する情報を記録したメッセージであり、このアドホック鍵情報が通信端末装置１０間で、送受信されるのは、後述するように、ＭＰＲノードからＴｃメッセージとともに送信される場合と、互いの認証が終わり、鍵交換をおこなうときである。
【００６０】
このアドホック鍵情報メッセージ４２０により、アドホックネットワーク内の各通信装置端末１０はネットワークのトポロジーを把握すると同時にアドホック鍵を取得することが可能となる。
【００６１】
〔通信端末装置の構成〕
次に、図２および図３を用いて本発明のアドホックネットワークで用いられる通信端末装置１０の構成について説明する。
図２は、本発明に係る通信端末装置１０のハードウェア構成の一例を示すブロック図である。
図３は、本発明における通信端末装置１０の機能構成の一例を示すブロック図である。
【００６２】
通信端末装置１０は、図２に示されるように、ＣＰＵ１０１、メモリ１０２、入出力制御装置１０３、液晶ディスプレイ等の表示装置１０４、ポインティングデバイス、ボタンキー等の入力装置１０５、無線モジュール１０６を備えて構成される。このような構成を備えた通信端末装置としては、例えば、ノートパソコン、ＰＤＡなどの携帯型情報処理装置、携帯電話等が代表的である。もちろん、通信端末装置１０のハードウェア構成は、これに限られるものではない。
【００６３】
無線モジュール１０６は、所定の無線ＬＡＮ、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの仕様に対応した無線通信をおこなう。なお、無線ＬＡＮの仕様は、IEEE 802.11 : ANSI/IEEE Std 802.11 1999 Edition(http://www.ieee.org )等により標準化が進められており、また、Ｂｌｕｅｔｏｏｔｈの仕様は、“Specifications of the Bluetooth System，Version1.0B” (http://www.bluetooth.com )に開示されている。ただし、無線モジュール１０６は、他の無線仕様、例えば、携帯電話網を使用する無線仕様で通信をおこなうものであってもよい。
【００６４】
この通信端末装置１０は、図３に示されるような機能部を有する。これらの機能は、メモリ１０２に記録されたプログラムコード、データ等にしたがってＣＰＵ１０１が処理をおこなうことにより実現される。なお、メモリ１０２には、この通信端末装置１０で実行されるプログラムが格納されるが、このプログラムは、ＳＤカードなどのようなメモリカードからロードしてもよいし、サーバから無線によりダウンロードしてもよい。
【００６５】
本図に示すように通信端末装置１０は、通信制御処理部１１０、ＩＤ記憶部１２０、アドホックネットワーク管理情報記憶部１３０、認証用鍵記憶部１４０、ポリシー記憶部１５０を備えている。
【００６６】
通信制御処理部１１０は、送受信制御処理、アドホック接続制御処理、相互認証処理、鍵生成管理処理、暗号処理等をおこなう。
【００６７】
ＩＤ記憶部１２０は、通信端末装置１０を識別するための識別情報を記憶する。識別情報としては、例えば、ＩＰアドレス、ＭＡＣ（Media Access Control）アドレス等を用いることができる。
アドホックネットワーク管理情報記憶部１３０は、アドホックネットワークを構成するために必要な情報を記憶する。
認証用鍵記憶部１４０は、通信端末装置１０同士の相互認証処理の際に用いる公開鍵、秘密鍵、認証局公開鍵を含む公開鍵暗号方式の鍵を記録する。
ポリシー記憶部１５０は、送受信制御処理、アドホック接続制御処理、相互認証処理、鍵生成管理処理、暗号処理等に関して通信制御処理部１１０が参照するポリシーを記録する。
【００６８】
アドホックネットワーク管理情報記憶部１３０は、自ノード情報１３１、ＭＰＲノード情報１３２、直接ノード情報１３３、間接ノード情報１３４、アドホック鍵情報１３５、アドホック鍵履歴情報１３６、存在可能性のあるアドホック鍵情報１３７、シーケンス番号情報１３７を記憶する。
【００６９】
〔アドホックネットワーク管理情報記憶部１３０の情報の詳細〕
次に、図６を用いてアドホックネットワーク管理情報記憶部１３０に保持される情報の詳細について説明する。
図６は、自ノード情報１３１とＭＰＲノード情報１３２の一例を示す図である。
図７は、直接自ノード情報１３１とＭＰＲノード情報１３２の一例を示す図である。
図８は、アドホック鍵に関する情報の一例を示す図である。
【００７０】
自ノード情報１３１は、通信端末装置１０自身に関する情報であり、図６（ａ）に示されるように、ノードＩＤ１３１ａ、ＭＰＲフラグ１３１ｂ、サークル内鍵１３１ｃ、サークル内鍵生成時刻１３１ｄよりなる。
【００７１】
ノードＩＤ１３１ａは、通信端末装置１０の識別子であり、例えば、ＩＰアドレスを用いることができる。ＭＰＲフラグ１３１ｂは、自身がＭＰＲノードとなっているか否かを示すフラグである。サークル内鍵１３１ｃは、自身が生成したサークル内鍵である。サークル内鍵生成時刻１３１ｄは、サークル内鍵を生成した時刻である。
【００７２】
なお、自ノード情報１３１には、これ以外の情報、例えば、自ノードの状態を示すステータス情報等を含めるようにしてもよい。
【００７３】
ＭＰＲノード情報１３２は、アドホックネットワーク内に存在しているＭＰＲノードに関する情報をＭＰＲノード単位のリスト形式で管理するものであり、図６（ｂ）に示されるように、ノードＩＤ１３２ａ、経由ＭＰＲノード１３２ｂ、ホップ数１３２ｃよりなる。
【００７４】
なお、ＭＰＲノードは、上述の如くＴｃメッセージの生成元となるノードである。
【００７５】
ノードＩＤ１３２ａは、ＭＰＲの識別子であり、例えば、ＩＰアドレスを用いることができる。経由ＭＰＲノード１３２ｂは、そのＭＰＲノードにデータを送信する際に、転送を依頼するＭＰＲノードの識別子である。ホップ数１３２ｃは、自通信端末装置１０からそのＭＰＲノードまでのホップ数を記憶する。
【００７６】
ＭＰＲノード情報１３２には、これ以外の情報、例えば、ＭＰＲノードの状態を示すステータス情報等を含めるようにしてもよい。
【００７７】
直接ノード情報１３３は、自ノードと１ホップで直接的に通信をおこなえる隣接ノードを直接ノードとしてノード単位のリスト形式で管理ものであり、図７（ａ）に示されるように、ノードＩＤ１３３ａ、ＭＰＲ認識フラグ１３３ｂ、証明情報１３３ｃ、サークル内鍵１３３ｄ、ノード間鍵１３３ｅよりなる。
【００７８】
ノードＩＤ１３３ａは、隣接ノードの識別子であり、例えば、ＩＰアドレスを用いることができる。ＭＰＲ認識フラグ１３３ｂは、その隣接ノードが自通信端末装置１０をＭＰＲノードとしてみなしているか否かを示すフラグである。証明情報１３３ｃは、その隣接ノードとの相互認証に関する情報である。サークル内鍵１３３ｄは、隣接ノードのサークル鍵であり、ノード間鍵１３３ｄは、その隣接ノードとの間で共有する鍵であるノード間鍵である。このノード間鍵は、隣接ノードとの相互認証の際に生成される。
【００７９】
直接ノード情報１３３には、これ以外の情報、例えば、ノード間の状態を示すステータス情報等を含めるようにしてもよい。
【００８０】
間接ノード情報１３４は、自ノードと間接的に通信をおこなえる間接ノードに関する情報をノード単位のリスト形式で管理するものであり、図７（ｂ）に示されるように、ノードＩＤ１３４ａ、経由ＭＰＲノード１３４ｂ、ホップ数１３４ｃ、証明情報１３４ｄよりなる。
【００８１】
なお、各通信端末装置１０のノードは、間接ノードとは、上述の如くＭＰＲノードを介して通信をおこなう。
【００８２】
ノードＩＤ１３４ａは、間接ノードの識別子であり、例えば、ＩＰアドレスを用いることができる。経由ＭＰＲノード１３４ｂは、その間接ノードにデータを送信する際に、転送を依頼するＭＰＲノードの識別子である。経由ＭＰＲノードは、そのノードから見ると直接ノードになる。なお、経由ＭＰＲノードは、複数あってもよい。ホップ数１３４ｃは、自通信端末装置１０からその間接ノードまでのホップ数を記憶する。証明情報１３４ｄは、その間接ノードに対してＭＰＲノードとなっている通信端末装置１０が送信するＴｃメッセージに含まれるＭＡＣ等の証明データである。これによって、間接ノードの正当性が間接的に保証される。
【００８３】
間接ノード情報１３４には、これ以外の情報、例えば、間接ノードの状態を示すステータス情報等を含めるようにしてもよい。
【００８４】
アドホック鍵情報１３５は、アドホック鍵に関する情報であり、図８（ａ）に示されるように、アドホック鍵１３５ａ、識別子１３５ｂ、生成時刻１３５ｃよりなる。
【００８５】
アドホック鍵１３５ａは、自ノードが最新のアドホック鍵として選択した鍵である。識別子１３５ｂは、アドホック鍵１３５ａの識別子であり、生成時刻１３５ｃは、アドホック鍵１３５ａが生成された時刻である。識別子１３５ｂは、例えば、ノードＩＤ、生成時刻などの情報の一部あるいは全部を含み、アドホックネットワーク全体で一意に判断できる識別ルールに基づいて設定することができる。
【００８６】
存在可能アドホック鍵情報１３６は、過去に自ノードが選択したアドホック鍵または隣接ノードから受信したアドホック鍵に関する情報をアドホック鍵単位のリスト形式で管理するものであり、図８（ｂ）に示されるように、アドホック鍵１３５ａ、識別子１３６ｂ、生成時刻１３６ｃ、更新時刻１３６ｄよりなる。
【００８７】
アドホック鍵１３５ａは、過去に自ノードが選択したアドホック鍵または隣接ノードから受信したアドホック鍵である。識別子１３６ｂは、アドホック鍵１３６ａの識別子であり、生成時刻１３６ｃはアドホック鍵１３６ａを生成した時刻である。また、更新時刻１３６ｄは、アドホック鍵１３６ａが登録された時刻である。
【００８８】
なお、アドホック鍵情報１３５は、一つだけであるが、この存在可能アドホック鍵情報１３６は、複数あることもある。更新時刻１３６ｄが、更新されるのは、一回目に、他のノードから受信されたときであり、二回目からの受信の際には更新されない。これは、古い時期に生成されたアドホック鍵がいつまでもネットワークに残るのを避けるようにするためである。
【００８９】
シーケンス番号情報１３７は、アドホック鍵情報メッセージ４２０のシーケンス番号をノード単位のリスト形式で管理するものであり、図８（ｃ）に示されるように、ノードＩＤ１３７ａ、シーケンス番号１３７ｂよりなる。
【００９０】
ノードＩＤ１３７ａは、アドホック鍵情報メッセージ４２０を送信した通信端末装置１０の識別子であり、シーケンス番号１３７ｂはノードＩＤ１３７ａが送信したアドホック鍵情報メッセージ４２０のシーケンス番号である。
【００９１】
なお、アドホックネットワーク管理情報記憶部１３０のデータの構成は、ルーティング方式によって異なるため、アドホックネットワークで採用するルーティング方式に対応させるものとする。
【００９２】
〔アドホックネットワークの通信処理〕
次に、図９ないし図１３を用いて本発明のアドホックネットワークの通信処理の詳細について説明する。
【００９３】
先ず、図９を用いて通信端末装置１０における通信制御処理について説明する。
図９は、通信端末装置１０における通信制御処理を示すフローチャートである。
【００９４】
通信端末装置１０は、タイマによりＨｅｌｌｏメッセージとＴｃメッセージの送信を制御している。すなわち、ＨｅｌｌｏメッセージおよびＴｃメッセージの送信間隔を、例えば、それぞれ２秒および５秒とすると、Ｈｅｌｌｏタイマを２秒に設定し、Ｔｃタイマを５秒に設定して、それぞれの間隔でタイマアップイベントが発生するようにする（９０１）。
【００９５】
そして、イベントの発生を待つ（９０２）。イベントとしては、タイマアップイベントの他、他の通信端末装置１０からのメッセージ受信等があげられる。
【００９６】
通信端末装置１０は、イベントの発生を検知すると（９０２：Ｙ）、そのイベントに応じた処理をおこなう。
【００９７】
すなわち、発生したイベントがＨｅｌｌｏタイマのタイマアップイベントの場合には、Ｈｅｌｌｏメッセージを生成し、ブロードキャスト配信をおこなう（９０３）。Ｈｅｌｌｏメッセージは、アドホックネットワーク管理情報記憶部１３０に記録された情報に基づいて生成することができる。そして、Ｈｅｌｌｏタイマをリセットして（９０４）、次のイベントの発生を待つ（９０２）。
【００９８】
また、発生したイベントがＴｃタイマのタイマアップイベントの場合には、アドホックネットワーク管理情報記憶部１３０の自ノード情報１３１を参照して、自身がＭＰＲノードであるか否かを判断する（９０５）。この結果、ＭＰＲノードでない場合には、Ｔｃタイマをリセットして（９０７）、次のイベントの発生を待つ（９０２）。一方、自身がＭＰＲノードの場合には、Ｔｃメッセージ生成し、ブロードキャスト配信をおこなう（９０６）。このＴｃメッセージは、アドホックネットワーク管理情報記憶部１３０に記録された情報に基づいて作成することができる。
【００９９】
次に、アドホック鍵情報メッセージ４２０を生成し、上述のＴｃメッセージとともにブロードキャスト配信をおこなう（９１８）。
【０１００】
そして、Ｔｃタイマをリセットして（９０７）、次のイベントの発生を待つ（９０２）。
【０１０１】
発生したイベントが他の通信端末装置１０からのメッセージ受信の場合には、その通信端末装置１０が認証済の通信端末装置１０であるか否かを判断する（９０８）。その通信端末装置１０が認証済か否かは、アドホックネットワーク管理情報記憶部１３０の直接ノード情報１３３を参照することで判別することができる。
【０１０２】
その結果、未認証の通信端末装置であった場合には、受信したメッセージの種別を判定する（９０９）。受信したメッセージがＨｅｌｌｏメッセージ、認証要求メッセージ、認証応答メッセージ以外の場合は受信したメッセージを廃棄する（９１６）。
【０１０３】
受信したメッセージがＨｅｌｌｏメッセージの場合には、認証要求メッセージを作成し、Ｈｅｌｌｏメッセージ生成元ノードへ送信する（９１０）。認証要求メッセージは、認証の開始を要求するメッセージであり、Ｈｅｌｌｏメッセージ生成元ノードに認証の種別を判定してもらうため、自通信端末装置が保持するアドホック鍵の識別子を送信する。この認証要求メッセージの詳細は後述する。
【０１０４】
受信したメッセージが認証要求メッセージの場合には、認証応答メッセージを作成し、認証要求メッセージ送信元ノードに送信する（９１１）。認証応答メッセージは、認証の種別を通知するためのメッセージである。認証応答メッセージの詳細は後述する。
【０１０５】
受信したメッセージが認証応答メッセージの場合には、認証応答メッセージに記載された認証種別（後述）の値に従って、未認証の通信端末装置１０との間で相互認証をおこなう（９１２）。
【０１０６】
相互認証は、初めてアドホックネットワークに参加する場合には、公開鍵を用いた相互認証、アドホックネットワーク内を移動または一時離脱した場合は共通鍵であるアドホック鍵を用いた相互認証をおこない、認証処理の簡略化を図る。どのような手順により相互認証をおこなうかは、認証ポリシーとしてポリシー記憶部１５０に記録しておくことができる。認証ポリシーには、さらに、再認証をおこなうインターバル時間、認証継続回数、認証レベル等を記録しておくことができる。
【０１０７】
また、相互認証は、双方の通信端末装置１０が相手を確認した段階で開始するようにしてもよいし、一方の通信端末装置１０が相手を認識した段階で開始するようにしてもよい。
【０１０８】
認証処理はＩＳＯ／ＩＥＣ９７９８に詳述されるように、複数回のメッセージの交換によって実現される。よって、相互認証（９１０）は、実際には、通信端末装置１０間の複数回のメッセージのやり取りでおこなわれる。
【０１０９】
相互認証の結果、通信相手の認証ができなかった場合には（９１３：Ｎ）、グループ外の通信端末装置１０であるとして、アドホックネットワークへの接続を許可せず、受信したＨｅｌｌｏメッセージを廃棄する（９１６）。これにより、グループ外の通信端末装置１０がアドホックネットワークに接続することを防止することができる。
【０１１０】
相互認証の結果、通信相手の認証ができた場合には（９１３：Ｙ）、グループに含まれる通信端末装置１０であるとして、アドホックネットワークへの接続を許可し、通信端末装置１０間で、鍵交換メッセージにより、ノード間鍵、および、サークル内鍵の交換をおこない（後述）、アドホック鍵情報メッセージ４２０を互いに送受信して、アドホック鍵に関する情報も交換する（９１４）。そして、アドホックネットワーク管理情報記憶部１３０に必要な情報を登録する。
【０１１１】
なお、このフローチャートに示される例では、いったん相互認証を完了したら、その後は、認証処理は起動されないが、認証は定期的なタイミング、あるいは各端末が必要と認識したタイミングで自律的には開始することができる。
【０１１２】
発生したイベントが認証済みの他の通信端末装置１０からのメッセージ受信の場合には（９０８：Ｙ）、メッセージ種別を参照して、そのメッセージに対応した処理をおこなう（９１７）。
【０１１３】
すなわち、受信したメッセージがＨｅｌｌｏメッセージであれば、必要に応じてアドホックネットワーク管理情報記憶部１３０を更新する。また、受信したメッセージがＴｃメッセージであれば、必要に応じてアドホックネットワーク管理情報記憶部１３０を更新するとともに、自身がＭＰＲノードであれば、受信したＴｃメッセージを隣接するノードに転送する。また、自身がＭＰＲノードであれば、受信したアドホック鍵情報メッセージ４２０も隣接するノードに転送する。
【０１１４】
その他、この明細書中に記載しなかったその他のメッセージについてもそのメッセージの種類に応じた適切な処理をおこなう。
【０１１５】
〔アドホック鍵に関する処理〕
次に、図１０ないし図１２を用いてアドホック鍵に関する処理について説明する。
先ず、図１０のフローチャートによりアドホック鍵情報メッセージ４２０を作成する処理について説明する。
図１０は、アドホック鍵情報メッセージ４２０を作成する処理を説明するフローチャートである。
【０１１６】
アドホック鍵情報メッセージ４２０を作成するときには、図１０に示されるように、アドホック鍵情報リスト４２７、ＭＡＣ４２８以外の値をアドホック鍵情報メッセージ４２０に記録する（１００１）。アドホック鍵情報メッセージ４２０のメッセージ種別４２１には、アドホック鍵情報メッセージを示す識別子を、生成元ノードＩＤ４２２には自ノード情報１３１のノードＩＤ１３１ａを、シーケンス番号４２３には、アドホック鍵情報メッセージを識別する連番を記録する。また、アドホック鍵情報メッセージ４２０の中のアドホック鍵４２４、識別子４２５、生成時刻４２６には、アドホック鍵情報１３５のアドホック鍵１３５ａ、識別子１３５ｂ、生成時刻１３５ｃを記録する。
【０１１７】
次に、存在可能アドホック鍵情報１３６の先頭から順にアドホック鍵の情報を取得し（１００４）、更新時刻１３６ｄを確認し、この更新時刻１３６ｄから一定時間が経過していないことを確認する（１００５）。一定時間経過している場合には、存在可能アドホック鍵情報１３５から削除し（１００６）、アドホック鍵情報メッセージにも記録しない。一定時間経過していない場合は、そのアドホック鍵に関して、アドホック鍵情報１３６のアドホック鍵１３６ａ、識別子１３６ｂ、生成時刻１３６ｃから取り出した値を、アドホック鍵情報メッセージ４２０のアドホック鍵情報リスト４２７の中のアドホック鍵、識別子、生成時刻（図示せず）にそれぞれ記録する（１００７）。
【０１１８】
これを存在可能アドホック鍵情報１３６の全アドホック鍵に対して実行した後、ＭＡＣ４２８を生成し（１００８）、アドホック鍵情報メッセージを自ノード情報１３１のサークル鍵１３１ｃを用いて暗号化する（１００９）。
【０１１９】
次に、図１１のフローチャートにより受信したメッセージがアドホック鍵情報メッセージの場合の処理について説明する。
【０１２０】
図１１は、受信したメッセージがアドホック鍵情報メッセージの場合の処理を説明するフローチャートである。
【０１２１】
通信端末装置１０が、アドホック鍵情報メッセージ４２０を受信すると、はじめに、シーケンス番号情報１３７を参照し、受信したアドホック鍵情報メッセージ４２０の生成元ノードＩＤ４２２に関して、そのアドホック鍵情報メッセージ４２０が最新のメッセージであるか否かを確認する（１１０１）。
【０１２２】
その結果、最新でない場合にはメッセージを破棄する（１１０２）。
【０１２３】
最新の場合には、受信したアドホック鍵情報メッセージ４２０の生成元ノードＩＤ４２２のサークル内鍵でアドホック鍵情報メッセージ４２０を復号化し（１１１０）、ＭＡＣを検証する（１１１１）。ＭＡＣの検証に失敗した場合は、メッセージを破棄し（１１０２）、成功した場合は、自ノードのアドホック鍵情報１３５と受信したアドホック鍵４２４を比較し、最新のアドホック鍵を選択する。
【０１２４】
最新のアドホック鍵の選択方法は、例えば、ポリシー記憶部１５０に鍵選択ポリシーとして記録しておくようにする。鍵選択ポリシーは、例えば、生成時刻が最新の鍵を選択するポリシーとすることができる。このとき、アイドリング時間Ｗをさらに定め、アドホック鍵選択のタイミングから時間Ｗより前に配信されたアドホック鍵の中で、生成時刻が最新の鍵を選ぶようなポリシーを用いることもできる。ここで、Ｗが「０」であれば、最新の鍵が選ばれることになる。
【０１２５】
アドホック鍵選択の結果、アドホック鍵が更新された場合には、今までのアドホック鍵により存在可能アドホック鍵情報１３６を更新する（１１０４）。
【０１２６】
アドホック鍵選択の結果、アドホック鍵が更新されなかった場合には、受信したアドホック鍵によりを存在可能アドホック鍵情報１３６を更新する（１１０５）。
【０１２７】
そして、自通信端末装置のサークル内鍵１３１ｃでＭＡＣを作成し（１１１２）、アドホック鍵情報メッセージを暗号化した後に（１１１３）、その通信端末装置１０がＭＰＲノードのときには、他の通信端末装置１０に転送する（１１０９）。
【０１２８】
次に、図１２のフローチャートにより存在可能アドホック鍵情報１３６を更新する処理について説明する。
【０１２９】
図１２は、存在可能アドホック鍵情報１３６を更新する処理を説明するフローチャートである。
【０１３０】
先ず、カウント数として更新する可能性のあるアドホック鍵のリスト数を設定する。受信したアドホック鍵情報メッセージ４２０のアドホック鍵情報リスト４２７により、存在可能アドホック鍵情報１３６を更新するときには、そのアドホック鍵情報リスト４２７になる。
【０１３１】
そして、ｉ番目のアドホック鍵が存在可能アドホック鍵情報１３６に存在するか否かを判定し（１２０１）、存在する場合には、そのｉ番目のアドホック鍵は、スキップして、存在しない場合には、そのｉ番目のアドホック鍵を存在可能アドホック鍵情報１３６に登録する（１２０３）。
【０１３２】
これを、順次、カウント数に達するまで繰り返す。
【０１３３】
〔アドホックネットワークの通信端末装置１０の相互認証処理〕
次に、図１３ないし図１５を用いて本発明のアドホックネットワークの通信端末装置１０の相互認証処理について説明する。
図１３は、通信端末装置１０（Ａ１、Ａ２）間での相互認証の流れを示すシーケンス図である。
図１４は、認証要求メッセージと認証応答メッセージの一例を示す図である。
図１５は、認証メッセージと鍵交換メッセージの一例を示す図である。
【０１３４】
先ず、図１３により通信端末装置１０（Ａ１）と通信端末装置１０（Ａ２）が相互認証をおこなう場合の処理の流れを説明する。
【０１３５】
通信端末装置１０（Ａ１）が未認証端末である通信端末装置（Ａ２）からＨｅｌｌｏメッセージを受信すると認証要求メッセージ１４００を作成し（１３０１）、通信端末装置１０（Ａ２）に送信する。
【０１３６】
認証要求メッセージ１４００を受信した通信端末装置１０（Ａ２）は、相互認証の種別を判定する（１３０２）。相互認証の種別判定結果に応じた認証応答メッセージ１４１０を作成し（１３０３）、通信端末装置１０（Ａ１）に送信する。
【０１３７】
相互認証の種別判定は、認証要求メッセージ１４００のアドホック鍵識別子リスト１４０４のアドホック鍵識別子と、自通信端末装置１０のアドホック鍵情報１３５、存在可能鍵情報１３６のアドホック鍵識別子とで同じ識別子が存在するか否かで決定する。同じアドホック鍵識別子が存在した場合には、アドホック鍵による認証をおこない、存在しなかった場合には、公開鍵による認証となる。
【０１３８】
公開鍵による認証は、例えば、以下のようにおこなう。
【０１３９】
一方の通信端末装置１０（認証の主体）が乱数によって生成したデータを他の通信端末装置１０（認証の対象）に送信する。そして、そのデータを受信した通信端末装置１０では、そのデータを暗号化して、データ送信元の通信端末装置１０に送り返す。データ送信元の通信端末装置１０は、公開鍵によりそのデータを復号化して、元のデータと一致したときには、暗号化されたデータを送信してきた通信端末装置１０を真正の通信相手と認める。なお、公開鍵は、公開鍵が真正であることを示す証明書データとともに、認証の対象の通信端末装置１０が認証の主体の通信端末装置１０に送る必要がある。
【０１４０】
一方、アドホック鍵による認証は、公開鍵による認証の手順で暗号化と復号化を共に共通するアドホック鍵でおこなうことが異なっているのみである。
【０１４１】
認証応答メッセージ１４１０を受信した通信端末装置１０（Ａ１）は相互認証の種別を確認し（１４０４）、種別に応じた相互認証を開始する。相互認証に成功すると、鍵交換をおこなう。
【０１４２】
鍵交換のプロセスでは、後述の鍵交換メッセージ１５１０をやり取りし、必要な鍵を互いに共有できるようにする。
【０１４３】
そして、この鍵交換時に必要ならばアドホック鍵の生成をおこない、アドホック鍵情報メッセージ４２０を互いに送受信して、アドホック鍵の共有もおこなう。
【０１４４】
すなわち、アドホックネットワーク上に存在するアドホック鍵の数をできるだけ減らすため、相互認証に成功した通信端末装置１０（Ａ１）と通信端末装置１０（Ａ２）間で互いにアドホック鍵を持っているか否かを確認する。通信端末装置（Ａ１、Ａ２）ともにアドホック鍵を保持していない場合にのみ、片方の通信端末装置がアドホック鍵およびアドホック鍵識別子を生成する。そして、生成したアドホック鍵、アドホック鍵識別子およびアドホック鍵生成時刻をアドホックネットワーク管理情報記録部１３０のアドホック鍵情報１３５に記録し、アドホック鍵情報メッセージ４２０を作成し、鍵交換メッセージとともに送信する。
【０１４５】
片方の通信端末装置が保持している場合は、アドホック鍵を保持している通信端末装置が他方にアドホック鍵情報メッセージ４２０を作成し、鍵交換メッセージとともに送信する。
【０１４６】
通信端末装置（Ａ１、Ａ２）が共にアドホック鍵を保持している場合には、互いにアドホック鍵情報メッセージを作成し、鍵交換メッセージとともに送信する。
【０１４７】
以上の方法により、通信端末装置１０が移動し接続関係が変化した場合、または一時的に接続が切れた後、再び接続関係になった場合、アドホック鍵を用いた認証をおこなうことで処理の簡略化を図ることが可能となる。
【０１４８】
認証要求メッセージ１４００は、上述の如く、一方の通信端末装置１０が他の通信端末装置１０に認証の要求をするメッセージであり、図１４（ａ）に示されるように、メッセージ種別１４０１、送信者ノードＩＤ１４０２、認証相手ノードＩＤ１４０３、アドホック鍵識別子リスト１４０４、ＭＡＣ１４０５よりなる。
【０１４９】
メッセージ種別１４０１は、このメッセージが認証要求メッセージであることを示す識別子である。送信者ノードＩＤ１４０２は、自通信端末装置１０のノードＩＤを示す識別子である。認証相手ノードＩＤ１４０３は、認証相手の通信端末装置１０のノードＩＤを示す識別子である。アドホック鍵識別子リスト１４０４は、自ノードが管理するアドホック鍵の識別子、すなわち、アドホック鍵情報１３５、存在可能性のあるアドホック鍵情報１３６に存在するアドホック鍵の識別子のリストである。ＭＡＣ１４０５は、認証要求メッセージの完全性を保証するコードである。
【０１５０】
認証応答メッセージ１４１０は、上述の如く、認証要求メッセージ１４００に応答するメッセージであり、図１４（ｂ）に示されるように、メッセージ種別１４１１、送信者ノードＩＤ１４１２、認証相手のノードＩＤ１４１３、認証の種別１４１４、アドホック鍵識別子１４１５、ＭＡＣ１４１６よりなる。
【０１５１】
メッセージ種別１４１１は、このメッセージが認証応答メッセージであることを示す識別子である。送信者ノードＩＤ１４１２は、自通信端末装置１０のノードＩＤを示す識別子である。認証相手のノードＩＤ１４１３は、認証開始メッセージを送信した通信端末装置のノードＩＤを示す識別子である。認証の種別１４１４は、公開鍵による認証をおこなうかアドホック鍵による認証をおこなうかを示すフラグである。なお、この相互認証の種別１４１４は、受信した認証要求メッセージ１４００のアドホック鍵識別子リスト１４０４の識別子が自通信端末装置１０にあるアドホックネットワーク管理情報記録部１３０のアドホック鍵情報１３５、存在可能アドホック鍵情報１３６の中に存在すればアドホック鍵による相互認証、存在しなければ公開鍵による相互認証となる。アドホック鍵識別子１４１５は、認証の種別１４１４がアドホック鍵による認証の場合に、相互認証に使用するアドホック鍵の識別子である。なお、このアドホック鍵識別子１４１５は、認証の種別１４１４が公開鍵による認証の場合には何も記録しない（ヌル値）。ＭＡＣ１４１６は、認証応答メッセージの完全性を保証するコードである。
【０１５２】
認証メッセージ１５００は、相互認証の際に互いにやりとりされるメッセージであり、図１５（ａ）に示されるように、メッセージ種別１５０１、送信者ＩＰアドレス１５０２、認証相手ＩＰアドレス１５０３、乱数１５０４、送信者公開鍵証明書１５０５、認証データ１５０６、ＭＡＣ１５０７よりなる。
【０１５３】
メッセージ種別１５０は、このメッセージが認証メッセージであることを示す識別子である。送信者ＩＰアドレス１５０２は、認証メッセージの送信元の通信端末装置１０を識別するためのアドレスである。認証相手ＩＰアドレス１５０３は、認証相手の通信端末装置１０を識別するためのアドレスである。乱数１５０４は、送信元の通信端末装置１０が生成した乱数データであり、これを認証される側が暗号化することにより下記の認証データ１５０６を作成する。送信者公開鍵証明書１５０５は、公開鍵の正当性を証明するためのデジタル証明書であり、この中には、公開鍵も含まれている。ここで公開鍵を送信するのは、自分を認証しようとする相手に真正の公開鍵を渡して、自分が暗号化したデータの復号化をおこなわせるためである。
【０１５４】
認証データ１５０６は、認証相手が生成した乱数に対して、送信元の通信端末装置１０が秘密鍵情報で暗号化したデータである。ＭＡＣ１５０７メッセージ内容の完全性を保証するためのコードである。
【０１５５】
鍵交換メッセージは、相互認証の後に互いの鍵を共有するためにやりとりされるメッセージであり、図１５（ｂ）に示されるように、メッセージ種別１５１１、送信者ＩＰアドレス１５１２、受信者ＩＰアドレス１５１３、ノード間鍵１５１４、サークル内鍵１５１５、ＭＡＣ１５１６よりなる。
【０１５６】
メッセージ種別１５１１は、このメッセージが鍵交換メッセージであることを示す識別子である。送信者ＩＰアドレス１５１２は、鍵交換メッセージの送信元の通信端末装置１０を識別するためのアドレスである。受信者ＩＰアドレス１５１３は、鍵交換メッセージの送信先の通信端末装置１０を識別するためのアドレス例である。ノード間鍵１５１４は、通信端末装置１０間でノード単位で共有されるノード間鍵をあらわす。サークル内鍵１５１５は、通信端末装置１０間のサークル単位で共有されるサークル間鍵をあらわす。ＭＡＣ１５１６は、メッセージの内容の完全性を保証するコードである。
【０１５７】
これらのうち、ノード間鍵１５１４、サークル内鍵１５１５、ＭＡＣ１５１７は、例えば、受信側の通信端末装置１０の公開鍵を用いて暗号化される。
【０１５８】
〔具体的なアドホックネットワークのトポロジーと認証処理の関係〕
次に、図１６ないし図２１を用いて具体的なアドホックネットワークのトポロジーと通信端末装置１０の相互認証処理の関係について説明する。
図１６ないし図１８は、アドホックネットワークにおけるトポロジー変化の一例を示す図である。
図１９は、図１６に示すトポロジー変化時の各通信端末装置の処理の流れを示すシーケンス図である。
図２０は、図１７に示すトポロジー変化時の各通信端末装置の処理の流れを示すシーケンス図である。
図２１は、図１８に示すトポロジー変化時の各通信端末装置の処理の流れを示すシーケンス図である。
【０１５９】
先ず、第一の例として、図１６のように通信端末装置１０（Ａ１）が移動し、新たな接続関係が発生した場合について考える。
【０１６０】
図１６に示すアドホックネットワークは、通信端末装置１０（Ａ１、Ａ２、Ａ３）から構成される。今、通信端末装置１０（Ａ１）と通信端末装置１０（Ａ２）、通信端末装置１０（Ａ２）と通信端末装置１０（Ａ３）が接続関係にある。
【０１６１】
始めに通信端末装置１０（Ａ１）と通信端末装置１０（Ａ２）間で公開鍵による相互認証を開始する（１９０１）。このとき、通信端末装置１０（Ａ１、Ａ２）ともにアドホック鍵を保持していないので、片方がアドホック鍵を生成し、配布する。ここでは通信端末装置１０（Ａ２）がアドホック鍵Ｋｅｙ_１を生成することにし（１１）、サークル内鍵などの鍵交換のときに、アドホック鍵情報メッセージ４２０を通信端末装置１０（Ａ１）に送信する（１９０２、１９０３）。
【０１６２】
次に、通信端末装置１０（Ａ２）と通信端末装置１０（Ａ３）間で公開鍵による相互認証を開始する（１９０４）。このとき、通信端末装置１０（Ａ２）はすでにアドホック鍵Ｋｅｙ_１を持っているので、サークル内鍵などの交換のときに、アドホック鍵情報メッセージ４２０を送信し、通信端末装置１０（Ａ３）にアドホック鍵Ｋｅｙ_１を配布する（１９０５、１９０６）。
【０１６３】
そして、通信端末装置１０（Ａ１）が移動し、新たに通信端末装置１０（Ａ３）と接続関係になり（１９０７）、通信端末装置１０（Ａ１）からのＨｅｌｌｏメッセージを通信端末装置１０（Ａ３）が受信したとすると、通信端末装置１０（Ａ３）は、アドホック鍵Ｋｅｙ_１の識別子を記録した認証要求メッセージを通信端末装置１０（Ａ１）に送信する。通信端末装置１０（Ａ１）は、受信した認証要求メッセージのアドホック鍵の識別子と自ノードが保持するアドホック鍵の識別子を比較した結果、同じアドホック鍵Ｋｅｙ_１を保持していることが判明するため、アドホック鍵Ｋｅｙ_１を用いた認証を認証応答メッセージで要求し、新たに接続関係になった通信端末装置１０（Ａ１）と通信端末装置１０（Ａ３）間でアドホック鍵Ｋｅｙ_１による負荷のかからない相互認証を開始する（１９０９）。
【０１６４】
次に、第二の例として、図１７のように通信端末装置１０（Ａ１）が一時的にアドホックネットワークを離脱した場合について考える。
【０１６５】
図１７に示すアドホックネットワークは、通信端末装置１０（Ａ１、Ａ２、Ａ３）から構成される。今、通信端末装置１０（Ａ１）と通信端末装置１０（Ａ２）、通信端末装置１０（Ａ２）と通信端末装置１０（Ａ３）が接続関係にある。
【０１６６】
始めに通信端末装置１０（Ａ１）と通信端末装置１０（Ａ２）間で公開鍵による相互認証を開始する（２００１）。このとき、通信端末装置１０（Ａ１、Ａ２）ともにアドホック鍵を保持していないので、片方がアドホック鍵を生成し、配布する。ここでは通信端末装置１０（Ａ２）がアドホック鍵Ｋｅｙ_１を生成することにし（２０１４）、サークル鍵などの鍵交換のときに、アドホック鍵情報メッセージ４２０を通信端末装置１０（Ａ１）に送信する（２００２、２００３）。
【０１６７】
次に、通信端末装置１０（Ａ２）と通信端末装置１０（Ａ３）間で公開鍵による相互認証を開始する（２００４）。このとき、通信端末装置１０（Ａ２）は、すでにアドホック鍵Ｋｅｙ_１を持っているので、通信端末装置１０（Ａ３）に、アドホック鍵情報メッセージ４２０を送信し、アドホック鍵Ｋｅｙ_１をサークル鍵などの鍵交換のときに配布する（２００５、２００６）。
【０１６８】
このとき、通信端末装置１０（Ａ１）が移動し、通信端末装置１０（Ａ２）との接続が切れた後に（２００７）、アドホック鍵の更新が発生し（２００８）、通信端末装置１０（Ａ２、Ａ３）間でのアドホック鍵がＫｅｙ_２になった（２００９）とする。その後、通信端末１０（Ａ１）と通信端末装置１０（Ａ３）と接続関係になったとする（２０１０）。このとき、通信端末装置１０（Ａ１）からのＨｅｌｌｏメッセージを通信端末装置１０（Ａ３）が受信すると、通信端末装置１０（Ａ３）は自ノードのアドホック鍵Ｋｅｙ_２とアドホック鍵情報に記録されているアドホック鍵Ｋｅｙ_１を認証要求メッセージに記録し、通信端末装置１０（Ａ１）に送信する。通信端末装置１０（Ａ１）は、受信した認証要求メッセージのアドホック鍵の識別子リストと自ノードが保持するアドホック鍵Ｋｅｙ_１の識別子を比較し、同じ識別子が存在することを確認する。そして、通信端末装置１０（Ａ１）は、アドホック鍵Ｋｅｙ_１を用いた認証応答メッセージを作成し、通信端末装置１０（Ａ１）と通信端末装置１０（Ａ３）間でアドホック鍵Ｋｅｙ_１による負荷のかからない相互認証を開始する。
【０１６９】
次に、第三の例として、図１８のようにアドホックネットワークの一時的な離脱と新たな接続関係が発生した場合について考える。
【０１７０】
図１８に示す例では、通信端末装置１０（Ａ１、Ａ２、Ａ３）から構成されるアドホックネットワークｇｒｏｕｐ１ と通信端末装置１０（Ｂ１、Ｂ２、Ｂ３）から構成されるアドホックネットワークｇｒｏｕｐ２が存在する。
【０１７１】
今、ｇｒｏｕｐ１は、通信端末装置１０（Ａ１）と通信端末装置１０（Ａ２）、通信端末装置１０（Ａ２）と通信端末装置１０（Ａ３）が接続関係にあり、アドホック鍵Ｋｅｙ_１を共有する（２１０１）。
【０１７２】
一方、ｇｒｏｕｐ２は、通信端末装置１０（Ｂ１）と通信端末装置１０（Ａ２）、通信端末装置１０（Ｂ２）と通信端末装置１０（Ｂ３）が接続関係にあり、アドホック鍵Ｋｅｙ_２を共有する（２１０２）。
【０１７３】
このとき、通信端末装置１０（Ａ１）がｇｒｏｕｐ１を離脱し（２１０３）、その直後にｇｒｏｕｐ１とｇｒｏｕｐ２が近づき（２１０４）、通信端末装置１０（Ａ２）と通信端末装置１０（Ｂ１）間が接続関係になった後に、通信端末装置１０（Ａ１）が通信端末装置１０（Ｂ２）と接続関係になったとする。 
通信端末装置１０（Ａ２）と通信端末装置１０（Ｂ１）間が接続関係になると（２１０４）、相互認証が開始され（２１０５）、サークル鍵、アドホック鍵などの交換がおこなわれる（２１０５）。
【０１７４】
アドホック鍵Ｋｅｙ_２を取得した通信端末装置１０（Ａ２）は、自通信端末装置と他の通信端末を経由せずにデータを送信できる通信端末装置１０（Ａ３）にアドホック鍵Ｋｅｙ_２を転送する（２１１０）。
【０１７５】
アドホック鍵Ｋｅｙ_１を取得した通信端末装置１０（Ｂ１）は、自通信端末装置と他の通信端末を経由せずにデータを送信できる通信端末装置１０（Ｂ２）にアドホック鍵Ｋｅｙ_１を転送する（２１１０）。
【０１７６】
同様に、通信端末装置１０（Ｂ２）も通信端末装置１０（Ｂ３）に転送する（２１１１）。
【０１７７】
その結果、通信端末装置１０（Ａ２、Ａ３、Ｂ１〜Ｂ３）は同じアドホック鍵Ｋｅｙ_１、Ｋｅｙ_２の情報を保持する。
【０１７８】
ここで、通信端末装置１０（Ａ１）と通信端末装置１０（Ｂ２）が接続関係になり（２１１２）、通信端末装置１０（Ａ１）からのＨｅｌｌｏメッセージを通信端末装置１０（Ｂ３）が受信すると、通信端末装置１０（Ｂ３）は自ノードのアドホック鍵Ｋｅｙ_２とアドホック鍵情報に記録されているアドホック鍵Ｋｅｙ_１を認証要求メッセージに記録し、通信端末装置１０（Ａ１）に送信する。通信端末装置１０（Ａ１）は、受信した認証要求メッセージのアドホック鍵の識別子リストと自ノードが保持するアドホック鍵Ｋｅｙ_１の識別子を比較し、同じ識別子が存在することを確認する。そして、通信端末装置１０（Ａ１）は、アドホック鍵Ｋｅｙ_１を用いた認証応答メッセージを作成し、通信端末装置１０（Ａ１）と通信端末装置１０（Ｂ３）間でアドホック鍵Ｋｅｙ_１による負荷のかからない相互認証を開始する（２１１４）。
【図面の簡単な説明】
【０１７９】
【図１】本発明のアドホックネットワークによる通信の概要を説明するための図である。
【図２】本発明に係る通信端末装置１０のハードウェア構成の一例を示すブロック図である。
【図３】本発明における通信端末装置１０の機能構成の一例を示すブロック図である。
【図４】ＨｅｌｌｏメッセージとＴｃメッセージのフォーマットの一例を示す図である。
【図５】アドホック鍵情報メッセージ４２０の一例を示す図である。
【図６】自ノード情報１３１とＭＰＲノード情報１３２の一例を示す図である。
【図７】直接自ノード情報１３１とＭＰＲノード情報１３２の一例を示す図である。
【図８】アドホック鍵に関する情報の一例を示す図である。
【図９】通信端末装置１０における通信制御処理を示すフローチャートである。
【図１０】アドホック鍵情報メッセージ４２０を作成する処理を説明するフローチャートである。
【図１１】受信したメッセージがアドホック鍵情報メッセージの場合の処理を説明するフローチャートである。
【図１２】存在可能アドホック鍵情報１３６を更新する処理を説明するフローチャートである。
【図１３】通信端末装置１０（Ａ１、Ａ２）間での相互認証の流れを示すシーケンス図である。
【図１４】認証要求メッセージと認証応答メッセージの一例を示す図である。
【図１５】認証メッセージと鍵交換メッセージの一例を示す図である。
【図１６】アドホックネットワークにおけるトポロジー変化の一例を示す図である（その一）。
【図１７】アドホックネットワークにおけるトポロジー変化の一例を示す図である（その二）。
【図１８】アドホックネットワークにおけるトポロジー変化の一例を示す図である（その三）。
【図１９】図１６に示すトポロジー変化時の各通信端末装置の処理の流れを示すシーケンス図である。
【図２０】図１７に示すトポロジー変化時の各通信端末装置の処理の流れを示すシーケンス図である。
【図２１】図１８に示すトポロジー変化時の各通信端末装置の処理の流れを示すシーケンス図である。
【図１】
2006165984.tif 000003
【図２】
2006165984.tif 000004
【図３】
2006165984.tif 000005
【図４】
2006165984.tif 000006
【図５】
2006165984.tif 000007
【図６】
2006165984.tif 000008
【図７】
2006165984.tif 000009
【図８】
2006165984.tif 000010
【図９】
2006165984.tif 000011
【図１０】
2006165984.tif 000012
【図１１】
2006165984.tif 000013
【図１２】
2006165984.tif 000014
【図１３】
2006165984.tif 000015
【図１４】
2006165984.tif 000016
【図１５】
2006165984.tif 000017
【図１６】
2006165984.tif 000018
【図１７】
2006165984.tif 000019
【図１８】
2006165984.tif 000020
【図１９】
2006165984.tif 000021
【図２０】
2006165984.tif 000022
【図２１】
2006165984.tif 000023