(57)【特許請求の範囲】
【請求項１】
アドホック無線ネットワークにおいて通信する通信装置であって、
第１の通信装置との間で、暗号鍵を共有するための共有処理であり、該共有処理を開始した装置が暗号鍵を提供する装置になる共有処理を実行する共有手段と、
第２の通信装置と共有するグループ暗号鍵を保有するか否かを判定する判定手段と、
前記判定手段により前記第２の通信装置と共有するグループ暗号鍵を所有していると判定した場合、前記第１の通信装置から前記共有処理が開始されても、前記第１の通信装置との前記共有処理を前記通信装置から開始する切替手段と、
を有することを特徴とする通信装置。
【請求項２】
前記判定手段は、前記第２の通信装置と既にネットワークを構築しているか否かを判定することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記切替手段は、前記第１の通信装置から前記共有処理が開始され、前記第１の通信装置から暗号鍵が提供された後に、前記通信装置から前記共有処理を開始することを特徴とする請求項１または請求項２に記載の通信装置。
【請求項４】
前記切替手段は、前記第１の通信装置から前記共有処理が開始されると、該共有処理を中止し、前記通信装置から前記共有処理を開始することを特徴とする請求項１または請求項２に記載の通信装置。
【請求項５】
前記切替手段により前記通信装置から前記共有処理を開始した場合は、前記共有手段は、前記第２の通信装置と共有している暗号鍵を前記第１の通信装置に提供することを特徴とする請求項１乃至請求項４の何れかに記載の通信装置。
【請求項６】
前記切替手段により前記通信装置から前記共有処理を開始した場合は、前記共有手段は、前記第２の通信装置と共有する暗号鍵とは異なる暗号鍵を前記第１の通信装置に提供すると共に、前記第２の通信装置にも当該暗号鍵を提供することを特徴とする請求項１乃至請求項４の何れかに記載の通信装置。
【請求項７】
通信装置のアドホック無線ネットワークにおける通信方法であって、
他の通信装置と共有するグループ暗号鍵を保有するか否かを判定する判定ステップと、
前記判定ステップにおいて他の通信装置とグループ暗号鍵を共有していると判定された場合、第１の通信装置から暗号鍵を共有するための共有処理が開始された後に、前記通信装置から前記第１の通信装置との前記共有処理を開始することを特徴とする通信装置の通信方法。
【請求項８】
請求項７に記載の通信方法を、通信装置が実行するためのプログラム。
【請求項９】
請求項８のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信装置の通信方法、プログラム、記憶媒体に関する。
【背景技術】
【０００２】
従来、盗聴や改竄を防止するために通信データを暗号化することが行われている。特に、無線通信においては盗聴が容易なため安全な通信路を確保することが重要となっている。
【０００３】
例えば無線ＬＡＮのインフラストラクチャモードにおいては、通信端末とアクセスポイントはＷＥＰ（Ｗｉｒｅｄ  Ｅｑｕｉｖａｌｅｎｔ  Ｐｒｉｖａｃｙ）という標準規格を実装している。ＷＥＰでは、通信端末とアクセスポイントに事前に暗号鍵を設定し、毎回の通信においてその暗号鍵を使うことによって安全性を保障しようとする。しかし、この方式では、暗号鍵が常に固定であり、ＷＥＰで採用されている暗号アルゴリズムの強度も高くないため安全性が保証できない場面が様々指摘されている。
【０００４】
この問題を解消するために、ＷＰＡ（Ｗｉ−Ｆｉ  Ｐｒｏｔｅｃｔｅｄ  Ａｃｃｅｓｓ）という標準規格が策定された。ＷＰＡでは、暗号アルゴリズムの強度を向上させるとともに、通信端末がネットワークに参加するセッション度に毎回暗号鍵を生成することで安全性を高めている。
【０００５】
インフラストラクチャモードではアクセスポイントを介して、他の通信端末にデータを送信するため、アクセスポイントとのみ直接に通信する。よって、アクセスポイントとの通信の安全性のみを保障すればよい。一方、アドホックモードにおいては、アクセスポイントが存在しないため、通信したい相手と直接通信を行う。即ち、各端末が、他の端末と暗号通信するためには、他の端末毎の暗号鍵を保有するか、ネットワーク全体で共通の暗号鍵を利用する必要がある。
【０００６】
各端末が、他の端末毎の暗号鍵を保有する場合は、端末数が増えれば増えるほど、暗号鍵の管理が複雑かつ困難になる。
【０００７】
ネットワーク全体で共通の暗号鍵を利用する場合は、端末毎の鍵管理の負荷は減る。
【０００８】
例えば特許文献１には、アドホックモードにおける暗号鍵の使用方法について言及されている。
【特許文献１】特開２００６−３３２８９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、共通の暗号鍵を利用する場合、ネットワークに新規に端末が参加する新規端末にも同じ暗号鍵を配付するのは困難であるいう問題がある。
【００１０】
無線ＬＡＮのＷＰＡには、複数の端末で共有する暗号鍵として、グループ鍵がある。このグループ鍵は、４ウェイハンドシェイクおよびグループキーハンドシェイクを実施することで、４ウェイハンドシェイクを開始した端末から他方に端末に送られる。しかしながら、アドホックモードでは、４ウェイハンドシェイクを開始する端末が決められていない。
【００１１】
また、アドホックモードでは、ネットワークに存在する端末を集中的に管理する仕組みが無い。よって、ネットワークに既に参加している端末は、グループ鍵を保有していない端末を把握していない。そのため、ネットワークに既に参加している端末が、グループ鍵を保有していない端末を見つけ出し、４ウェイハンドシェイクを開始することは困難である。
【００１２】
また、ネットワークに新規に参加する端末から４ウェイハンドシェイクを開始すると、新規端末がグループ鍵を配付することになり、今までネットワークで利用されていたグループ鍵を新規端末に配付することはできない。
【００１３】
本発明は、アドホックモードのような環境であっても、ネットワークに新規に参加する通信装置に対して、暗号鍵を共有できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、他の通信装置と共有する暗号鍵を保有するか否かを判定し、該判定の結果に応じて、第１の通信装置から暗号鍵を共有するための共有処理が開始された後に、通信装置から第１の通信装置との共有処理を開始する。
【発明の効果】
【００１５】
本発明により、アドホックモードのような環境であっても、ネットワークに新規に参加する通信装置に対して、暗号鍵を共有できる。
【発明を実施するための最良の形態】
【００１６】
＜実施形態１＞
以下、本発明に係る通信装置について、図面を参照しながら詳細に説明する。以下では、ＩＥＥＥ８０２．１１シリーズに準拠した無線ＬＡＮシステムを用いた例について説明するが、本発明は他の通信方式に適用することもできる。
【００１７】
本実施形態に好適な事例におけるハードウェア構成について説明する。
【００１８】
図１は、本実施形態における通信装置の構成例を表すブロック図である。１０１は通信装置全体を示す。１０２は、記憶部１０３に記憶される制御プログラムを実行することにより装置全体を制御する制御部である。制御部１０２は、他の通信装置との間での暗号鍵交換のシーケンス制御も行う。１０３は制御部１０２が実行する制御プログラムと、通信パラメータ等の各種情報を記憶する記憶部である。後述する動作フローチャート、シーケンスチャートの各種動作は、記憶部１０３に記憶された制御プログラムを制御部１０２が実行することにより行われる。１０４は無線通信を行うための無線部である。１０５は各種表示を行う表示部でありＬＣＤやＬＥＤのように視覚で認知可能な情報の出力、あるいはスピーカなどの音出力が可能な機能を有する。１０７はアンテナ制御部、そして１０８のアンテナである。
【００１９】
図９は、本実施形態における通信装置が実行するソフトウェア機能ブロックの構成例を表すブロック図である。
【００２０】
９０１は端末全体を示している。９０２は各種通信にかかわるパケットを受信するパケット受信部である。９０３は各種通信にかかわるパケットを送信するパケット送信部である。９０４はプローブリクエストなどの機器検索信号の送信を制御する検索信号送信部である。後述するプローブリクエストの送信は、検索信号送信部９０４により行われる。また、受信したプローブリクエストに対する応答信号であるプローブレスポンスの送信も検索信号送信部９０４により行われる。
【００２１】
９０５は他の端末からのプローブリクエストなどの機器検索信号の受信を制御する検索信号受信部である。後述するプローブリクエストの受信は、検索信号受信部９０５により行われる。また、プローブレスポンスの受信も検索信号受信部９０５により行われる。なお、プローブレスポンスには、プローブレスポンスを送信する機器の各種情報（自己情報）が付加されている。
【００２２】
９０６は他の通信装置との間でのセッション鍵、グループ鍵の交換処理におけるシーケンス制御などを司る鍵交換制御部である。本実施形態において例示する、ＷＰＡ鍵交換処理における４ウェイハンドシェイクおよびグループキーハンドシェイクの各メッセージの処理は、鍵交換制御部９０６により行われる。
【００２３】
ここで、ＷＰＡ（Ｗｉ−Ｆｉ  Ｐｒｏｔｅｃｔｅｄ  Ａｃｃｅｓｓ）の４ウェイハンドシェイクおよびグループキーハンドシェイクについて簡単に説明する。４ウェイハンドシェイクおよびグループキーハンドシェイクは、本実施形態では、暗号鍵の交換処理として説明するが、一方の通信装置から他方の通信装置に暗号鍵を提供して共有する共有処理と言う事もできる。
【００２４】
４ウェイハンドシェイクおよびグループキーハンドシェイクは、認証側機器（オーセンティケーター）と被認証側機器（サプリカント）との間で実行される。なお、以下の説明では、認証側機器（オーセンティケーター）を認証側、被認証側機器（サプリカント）を被認証側として説明する。
【００２５】
４ウェイハンドシェイクでは、認証側、被認証側とで共有鍵（事前共有鍵）を事前に共有しておき、セッション鍵の生成には、この事前共有鍵を利用する。
【００２６】
まず、認証側が乱数（第１の乱数）を生成し、生成した第１の乱数を含むメッセージ１を被認証側に送信する。
【００２７】
このメッセージ１を受信した被認証側は、自身でも乱数（第２の乱数）を生成する。そして、被認証側は、自身で生成した第２の乱数と、認証側から受信した第１の乱数と、事前共有鍵と、からセッション鍵を生成する。
【００２８】
セッション鍵を生成した被認証側は、第２の乱数と、自身の暗号・認証サポート情報（ＷＰＡＩＥ）と、を含むメッセージ２を認証側に送る。
【００２９】
メッセージ２を受信した認証側では、自身で生成した第１の乱数と、被認証側から受信した第２の乱数と、事前共有鍵と、から、セッション鍵を生成する。この段階で、認証側と被認証側とは、第１の乱数、第２の乱数、事前共有鍵が同じであれば、同じセッション鍵を生成したことになる。
【００３０】
セッション鍵を生成した認証側は、自身の暗号・認証サポート情報（ＷＰＡＩＥ）とセッション鍵のインストール指示を含むメッセージ３を被認証側に送信する。
【００３１】
メッセージ３の送受信を契機に認証側および被認証側は、セッション鍵をインストールすることができる。
【００３２】
メッセージ３を受信した被認証側は、メッセージ３を受信したことを通知するためのメッセージ４を認証側に送信する。
【００３３】
このように、４ウェイハンドシェイクは、認証側と被認証側との間でメッセージ１からメッセージ４を送受信することで、暗号鍵であるセッション鍵を交換（実際には、セッション鍵を生成するための乱数交換）し、共有化することができる。
【００３４】
なお、セッション鍵のインストールはメッセージ４の送受信を契機することもできる。
【００３５】
グループキーハンドシェイクでは、認証側は、４ウェイハンドシェイクで交換したセッション鍵を用いてグループ鍵を暗号化する。そして、認証側は、この暗号化したグループ鍵を含むメッセージ１を被認証側に送信する。グループ鍵は、グループ通信を行うための暗号鍵である。そのため、既に他の通信装置と共有しているグループ鍵を被認証側とも共有する場合は、そのグループ鍵を送信する。他の通信装置と共有しているグループ鍵が無い、また、他の通信装置と共有しているグループ鍵を被認証側とは共有しない場合は、認証側がグループ鍵を生成し、生成したグループ鍵を被認証側に送信する。
【００３６】
被認証側は、受信したメッセージ１に含まれるグループ鍵をセッション鍵で複号し、メッセージ１を受信したことを通知するためのメッセージ２を認証側に送信する。
【００３７】
このように、グループキーハンドシェイクは、認証側と被認証側との間でメッセージ１及びメッセージ２を送受信することで、グループ通信時の暗号鍵であるグループ鍵を共有化することができる。
【００３８】
以上のように、認証側は、暗号鍵を提供する提供装置、被認証側は、認証側（提供装置）が提供する暗号鍵を受ける受信装置（受理装置、受取装置）、と言い換えることもできる。
【００３９】
なお、４ウェイハンドシェイクおよびグループキーハンドシェイクは、ＩＥＥＥ８０２．１１ｉにおいて規格化されているので、詳細については、ＩＥＥＥ８０２．１１ｉ規格を参照されたい。
【００４０】
９０７は鍵交換制御部９０６において交換されたセッション鍵、グループ鍵を保存する暗号鍵保存部である。他の通信装置との間で鍵交換が実施済みであるか否かは、暗号鍵保存部９０７に情報が保存されていることで判定ができる。
【００４１】
９０８は乱数生成部である。前述の鍵交換制御部９０６においてセッション鍵を生成する際の乱数情報を生成するのが乱数生成部９０８である。また、グループ鍵を生成する際にも、乱数生成部９０８において生成した乱数を利用してもよい。
【００４２】
なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものである。また、上記機能ブロックは一例であり、複数の機能ブロックが１つの機能ブロックを構成するようにしてもよいし、何れかの機能ブロックが更に複数の機能を行うブロックに分かれてもよい。
【００４３】
図２は、端末Ａ２２、端末Ｂ２３、端末Ｃ２４，および端末Ａ２２と端末Ｂ２３が構成するアドホックネットワーク２１を示した図である。
【００４４】
各端末は、ＩＥＥＥ８０２．１１無線ＬＡＮ通信機能を備えており、無線ＬＡＮアドホック（以下、アドホック）通信により無線通信を行い、先に説明した図１、図９の構成を有する。
【００４５】
図２は、最初に端末Ａ２２（以下、端末Ａと称す）と端末Ｂ２３（以下、端末Ｂと称す）との間で暗号鍵の交換が完了しているものとする。
【００４６】
暗号鍵の交換により確立したネットワーク２１に対し、新たな通信装置である端末Ｃ２４（以下、端末Ｃと称す）が参加することを考える。
【００４７】
図５は、端末Ｃが、ネットワーク２１に参加する際の動作フローチャート図である。
【００４８】
端末Ｃは、参加すべきネットワークを検索するためにプローブリクエストを送信する（Ｓ５０１）。ネットワーク２１が存在する場合、端末Ａもしくは端末Ｂからプローブレスポンスが返送される（Ｓ５０２）。ここでは、端末Ｂからのプローブレスポンスを受信したとする。
【００４９】
ここで通信相手が特定されたため、ネットワークへの新規参加端末である端末Ｃは鍵交換処理における認証側としての処理を開始する。まず、端末Ｃは端末Ｂに向けてＷＰＡの４ウェイハンドシェイクのメッセージ１を送信する（Ｓ５０３）。その後、端末ＢからのＷＰＡの４ウェイハンドシェイクのメッセージ２を受信する（Ｓ５０４）。メッセージ２の受信により、端末Ｂと端末Ｃとは鍵交換を行う同意が取れていることとなり、残りのＷＰＡ鍵交換処理を実施する（Ｓ５０５）。
【００５０】
ここで、残りのＷＰＡ鍵交換処理について説明する。ステップＳ５０４に引き続き、端末Ｃは、４ウェイハンドシェイクのメッセージ３を端末Ｂへ送信し、その応答として端末Ｂから４ウェイハンドシェイクのメッセージ４を受信する。４ウェイハンドシェイクにより、セッション鍵の生成及び配付を行い、端末Ｂ及び端末Ｃ間でセッション鍵を共有化する。
【００５１】
４ウェイハンドシェイク終了後、端末Ｃは、グループキーハンドシェイクを実施する。グループキーハンドシェイクでは、まず、認証側である端末Ｃからグループキーハンドシェイクのメッセージ１を送信する。メッセージ１の応答として、端末Ｃは、端末Ｂからメッセージ２を受信する。このグループキーハンドシェイクにより、グループ鍵を共有化することができる。
【００５２】
このように、４ウェイハンドシェイクとグループキーハンドシェイクの一連のメッセージ交換をＷＰＡの鍵交換処理と称している。以下同様である。
【００５３】
ステップＳ５０３からステップＳ５０５までのＷＰＡ鍵交換処理により、端末Ｂと端末Ｃとの間でセッション鍵が共有され、セッション鍵によってグループ鍵を暗号化することで保護し、端末Ｃから端末Ｂへグループ鍵を安全に送付することができる。
【００５４】
ここまでの処理で端末Ｂと端末Ｃとの間で、端末Ｃが生成したグループ鍵が共有された。しかし、端末Ｂが既にネットワーク２１に参加している場合は、今回共有されたグループ鍵とネットワーク２１のグループ鍵とが異なり、既存のネットワーク２１と端末Ｃとが互いに通信することができない。そこで、既存のネットワーク２１の持つグループ鍵を、端末Ｃに送信するために、今度は、端末Ｂが認証側として鍵交換を開始する。
【００５５】
鍵交換の契機は４ウェイハンドシェイクのメッセージ１であるため、端末Ｃは、端末Ｂから４ウェイハンドシェイクのメッセージ１を受信するかどうかを判定する（Ｓ５０６）。ここで特に受信が無い場合は、鍵交換処理を完了して処理を終了する（Ｓ５０８）。
【００５６】
ステップＳ５０６で、端末Ｂから４ウェイハンドシェイクのメッセージ１を受信した場合は、先に述べたとおり、端末Ｂを認証側として、ＷＰＡ鍵交換処理を実施する（Ｓ５０７）。ステップＳ５０７のＷＰＡ鍵交換処理により、端末Ｂと端末Ｃとの間でセッション鍵が生成され、セッション鍵によってグループ鍵を暗号化することにより保護し、端末Ｂから端末Ｃへグループ鍵を安全に送付することができる。このとき端末Ｂは、ネットワーク２１のグループ鍵（端末Ａと端末Ｂとで共通なグループ鍵）を端末Ｃに送付する。
【００５７】
よって端末Ｃは端末Ｂが既に持っていたグループ鍵を共有することができる。ここで、安全のために、端末Ｂは今まで持っていたグループ鍵を更新してもよい。端末Ｂがグループ鍵を更新する場合は、端末Ｂが新規に生成したグループ鍵を端末Ｃに送信する。また、端末Ｂは、端末Ｃに送信したグループ鍵と同じグループ鍵を他の端末（端末Ａ）にも送信する。これにより、ネットワーク２１に所属している端末が保有しているグループ鍵が全て更新されることとなる。参加端末が増えるごとにグループ鍵を更新することにより、いままでのＷＥＰ等によるアドホックネットワークよりも暗号的に強固なネットワークを構築することができる。
【００５８】
図６は、端末Ｂの動作フローチャート図である。
【００５９】
新たにネットワーク２１に参加しようとしている端末Ｃからプローブリクエストを受信する（Ｓ６０１）。端末Ｂは端末Ｃへ向けて、プローブリクエストへの返答としてプローブレスポンスを返送する（Ｓ６０２）。
【００６０】
端末Ｃはネットワーク２１を認識できたため、４ウェイハンドシェイクのメッセージ１を送信してくるため、それを受信する（Ｓ６０３）。
【００６１】
メッセージ１を受信すると、端末Ｂは、メッセージ２を端末Ｃに送信する（Ｓ６０４）。メッセージ１及びメッセージ２の送受信により、端末Ｂと端末Ｃとは鍵交換処理の実施を同意したことになり、残りのＷＰＡ鍵交換処理を実施する（Ｓ６０５）。つまり、４ウェイハンドシェイクのメッセージ３、メッセージ４、グループキーハンドシェイクのメッセージ１、メッセージ２の送受信を行う。
【００６２】
この鍵交換処理により端末Ｂは端末Ｃからグループ鍵を受信することとなるが、端末Ｂが既にネットワーク２１を構築済みである場合、端末Ｃとの間で鍵交換を実施する前にグループ鍵を持っている。ただしネットワーク２１を構成しておらず、今回が初回の鍵交換である場合もある。そこで、端末Ｂは自身がすでにグループ鍵を保有しているかどうかを判定する（Ｓ６０６）。言い換えれば、端末Ｂは既にネットワーク２１を構築済みであるか否かを判定する。既にネットワーク２１を構築済みの場合は、端末Ｂは自身がすでにグループ鍵を保有していることになり、未構築の場合は、グループ鍵を保有していないことになる。
【００６３】
ステップＳ６０６における判定の結果、グループ鍵を保有していなかった場合は、そのまま処理を終了する。一方、ステップＳ６０６における判定の結果、既にグループ鍵を保有していた場合、既存のネットワーク２１内で端末Ｃが通信できるように、端末Ｂは端末Ｃへ向けて４ウェイハンドシェイクのメッセージ１を送信する（Ｓ６０７）。つまり、端末Ｂの役割を被認証側から認証側に切替え、端末Ｂを認証側として鍵交換処理開始する。そして、端末Ｂと端末Ｃとの間で残りのメッセージ２〜メッセージ４の送受信及びグループキーハンドシェイクを実施し、端末Ｂを認証側とした鍵交換処理を完了する（Ｓ６０８）。
【００６４】
なお、Ｓ６０７、Ｓ６０８での端末Ｂと端末Ｃとの鍵交換処理については図５のＳ５０６、Ｓ５０７において説明済みであるのでここでは省略する。
【００６５】
図３は、端末Ｃが、ネットワーク２１に参加する際のシーケンス図である。端末Ｂおよび端末Ｃの動作アルゴリズムは、それぞれ前述の図６および図５のとおりである。
【００６６】
新規参加端末である端末Ｃがネットワーク２１を構成する端末Ｂに向けて４ウェイハンドシェイクのメッセージ１を送信する（Ｆ３０１）。それを受けて端末Ｂでは４ウェイハンドシェイクのメッセージ２を送信する（Ｆ３０２）。引き続き、４ウェイハンドシェイクのメッセージ３（Ｆ３０３）、メッセージ４（Ｆ３０４）をやり取りする。４ウェイハンドシェイクの終了後、グループキーハンドシェイクのメッセージ１（Ｆ３０５）およびメッセージ２（Ｆ３０６）のやり取りを行う。これにより端末Ｃから端末Ｂへグループ鍵が共有されたことになる。
【００６７】
しかし、端末Ｂは、図２に示したとおり端末Ａとの間で既にネットワーク２１を構築している。そこでネットワーク２１の端末同士が通信するためには、端末Ｃのグループ鍵を端末Ａおよび端末Ｂのものと一致させなければならない。そこで、端末Ｂと端末Ｃとの役割を切替え、改めて端末Ｂから端末Ｃに向けて４ウェイハンドシェイクのメッセージ１を送信する（Ｆ３０７）。この後、Ｆ３０１〜Ｆ３０６までの動作とは役割を逆転させて、４ウェイハンドシェイクおよびグループキーハンドシェイクを実施する（Ｆ３０７〜Ｆ３１２）。
【００６８】
結果として端末Ｂの持つグループ鍵が端末Ｃへ適用されることとなり、端末Ａ、端末Ｂ、端末Ｃが同じグループ鍵を共有できる。
【００６９】
＜実施形態２＞
実施形態２におけるハードウェア構成例は、実施形態１と同様に図１であり、ソフトウェアブロック構成は図９であるとする。また、実施形態２におけるネットワーク構成例も、実施形態１と同様に図２であるとする。
【００７０】
図７は、本実施形態に係る端末Ｃの動作フローチャート図である。
【００７１】
端末Ｃは、参加すべきネットワークを検索するためにプローブリクエストを送信する（Ｓ７０１）。ネットワーク２１が存在する場合、端末Ａもしくは端末Ｂからプローブレスポンスが返送される（Ｓ７０２）。ここでは、端末Ｂからのプローブレスポンスを受信したとする。
【００７２】
ここで通信相手が特定されたため、ネットワークへの新規参加端末である端末Ｃは鍵交換処理における認証側としての処理を開始する。まず、端末Ｃは端末Ｂに向けてＷＰＡの４ウェイハンドシェイクのメッセージ１を送信する（Ｓ７０３）。
【００７３】
端末Ｂが既にネットワーク２１に参加している場合、端末Ｃが認証側となって端末Ｂにグループ鍵を送信すると、端末Ｃはネットワーク２１の端末と通信できない。偶然にも、端末Ｃが生成したグループ鍵がネットワーク２１のグループ鍵と同じ場合は、端末Ｃはネットワーク２１の端末と通信できるが、その可能性は非常に低い。そこで、端末Ｂは、既存のネットワーク２１の持つグループ鍵を持つ場合は、その鍵を端末Ｃに送信するために、認証側として鍵交換を開始する。
【００７４】
端末Ｃは、ＷＰＡの４ウェイハンドシェイクのメッセージ１を端末Ｂに送信すると、端末Ｂから４ウェイハンドシェイクのメッセージ１を受信するかどうかを判定する（Ｓ７０４）。
【００７５】
ここで特に受信が無い場合は、端末Ｂからは４ウェイハンドシェイクのメッセージ２を受信することになる（Ｓ７０９）。引き続き、残りの鍵交換処理を実施し（Ｓ７１０）、鍵交換処理を終了する（Ｓ７０８）。
【００７６】
つまり、端末Ｃが認証側のまま、４ウェイハンドシェイク及びグループキーハンドシェイクを行い、端末Ｃのグループ鍵を端末Ｂに送信し、端末Ｃのグループ鍵を共有する。
【００７７】
一方、ステップＳ７０４で、端末Ｂから４ウェイハンドシェイクのメッセージ１を受信した場合は、端末Ｃは、認証側としての鍵交換処理を中止する。この場合、端末Ｂが認証側として鍵交換処理を開始することになり、端末Ｃは、端末Ｂへ向けては４ウェイハンドシェイクのメッセージ２を送信する（Ｓ７０６）。そして、端末Ｃは、端末Ｂとの間で４ウェイハンドシェイクが開始されたため、残りのＷＰＡ鍵交換処理を実施する（Ｓ７０７）。ステップＳ７０７のＷＰＡ鍵交換処理により、端末Ｂと端末Ｃとの間でセッション鍵が共有化される。そして、このセッション鍵によってグループ鍵を保護し、端末Ｂから端末Ｃへグループ鍵を安全に送付する。このとき端末Ｂは、ネットワーク２１のグループ鍵（端末Ａと端末Ｂとで共通なグループ鍵）を端末Ｃに送付する。よって端末Ｃは端末Ｂが持っていたグループ鍵を共有することができる。ここで、安全のために、端末Ｂは今まで持っていたグループ鍵を更新することができる。端末Ｂがグループ鍵を更新する場合は、端末Ｂが新規に生成したグループ鍵を端末Ｃに送信する。また、端末Ｂは、端末Ｃに送信したグループ鍵と同じグループ鍵を他の端末（端末Ａ）にも送信する。これにより、ネットワーク２１に所属している端末が保有しているグループ鍵が全て更新されることとなる。参加端末が増えるごとにグループ鍵を更新することにより、いままでのＷＥＰ等によるアドホックネットワークよりも暗号的に強固なネットワークを構築することができる。
【００７８】
図８は、端末Ｂの動作フローチャート図である。
【００７９】
新たにネットワーク２１に参加しようとしている端末Ｃからプローブリクエストを受信する（Ｓ８０１）。端末Ｂは端末Ｃへ向けて、前記プローブリクエストへの返答としてプローブレスポンスを返送する（Ｓ８０２）。
【００８０】
端末Ｃはネットワーク２１を認識できたため、４ウェイハンドシェイクのメッセージ１を送信してくるため、それを受信する（Ｓ８０３）。
【００８１】
このまま４ウェイハンドシェイク及びグループキーハンドシェイクを続けると、端末Ｂは端末Ｃからグループ鍵を受信することとなる。しかしながら、端末Ｂが既にネットワーク２１を構築済みでる場合、端末Ｂは端末Ｃとの間で鍵交換を実施するまえにネットワーク２１のグループ鍵（端末Ａと共通のグループ鍵）を持っている。ただしネットワークを構成しておらず、今回が初回の鍵交換である場合もある。そこで、端末Ｂは自身がすでにグループ鍵を保有しているどうかを判定する（Ｓ８０４）。言い換えれば、端末Ｂは既にネットワーク２１を構築済みであるか否かを判定する。既にネットワーク２１を構築済みの場合は、端末Ｂは自身がすでにグループ鍵を保有していることになり、未構築の場合は、グループ鍵を保有していないことになる。
【００８２】
ステップＳ８０４における判定の結果、グループ鍵を保有していない場合は、そのまま処理を継続する。即ち、端末Ｃへ向けて４ウェイハンドシェイクのメッセージ２を送信する（Ｓ８０５）。引き続き、端末Ｃとの間で残りのＷＰＡ鍵交換処理を実施（Ｓ８０６）し、端末Ｃを認証側とした鍵交換処理を完了させる（Ｓ８０７）。
【００８３】
一方、ステップＳ８０４における判定の結果、既にグループ鍵を保有している場合、既存のネットワーク２１で端末Ｃが通信できるように、端末Ｃへ向けて４ウェイハンドシェイクのメッセージ１を送信する（Ｓ８０８）。つまり、端末Ｃが認証側として鍵交換処理を開始したが、その処理を中止させ、端末Ｂを認証側に切替えて鍵交換処理を開始するために、端末Ｂから端末Ｃにメッセージ１を送信する。
【００８４】
その後、端末ＣからのＷＰＡの４ウェイハンドシェイクのメッセージ２を受信する（Ｓ８０９）。メッセージ２の受信により、端末Ｂと端末Ｃとは鍵交換を実施する同意が取れていることとなり、残りのＷＰＡ鍵交換処理を実施する（Ｓ８１０）。
【００８５】
図４は、端末Ｃが、ネットワーク２１に参加する際のシーケンス図である。端末Ｂおよび端末Ｃの動作アルゴリズムは、それぞれ前述の図８および図７のとおりである。
【００８６】
新規参加端末である端末Ｃがネットワーク２１を構成する端末Ｂに向けて４ウェイハンドシェイクのメッセージ１を送信する（Ｆ４０１）。
【００８７】
端末Ｂは、図２に示したとおり端末Ａとの間で既にネットワーク２１を構築している。そこでネットワーク２１の端末同士が通信するためには、端末Ｃのグループ鍵を端末Ａおよび端末Ｂのものと一致させなければならない。
【００８８】
そこで、改めて端末Ｂから端末Ｃに向けて４ウェイハンドシェイクのメッセージ１を送信する（Ｆ４０２）。役割を逆転させて、４ウェイハンドシェイクおよびグループキーハンドシェイクを実施する（Ｆ４０２〜Ｆ４０７）。
【００８９】
結果として端末Ｂの持つグループ鍵が端末Ｃへ適用されることとなり、端末Ａ、端末Ｂ、端末Ｃが同じグループ鍵を共有できる。
【００９０】
以上のように上記説明によれば、通信装置は、第２の通信装置と共有する暗号鍵を保有するか否かを判定する。そして、該判定の結果に応じて、第１の通信装置から暗号鍵を共有するための共有処理が開始された後に、通信装置自身からから第１の通信装置との共有処理を開始するようにした。
【００９１】
よって、アドホックモードのような環境であっても、ネットワークに新規に参加する通信装置に対して、暗号鍵を共有できる。
【００９２】
また、新規の通信装置とグループ鍵を共有する際に、グループ鍵を更新することもできる。このようにすることにより、より高いセキュリティレベルを提供することができる。つまり、通信セッションが確立するたびに異なる暗号鍵を利用でき、傍受や盗聴といった行為に対して強固になる。
【００９３】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例のみに限定する趣旨ではない。本発明の要旨を逸脱しない範囲で、実施形態は種々に変形することが可能である。
【００９４】
例えば、以上の実施形態の説明においては、ＷＰＡで規定されている鍵交換メッセージを用いたが、鍵交換の手法を限定するものではなく、同様の役割を行えるものであれば、いかなる鍵交換方法であっても構わない。
【００９５】
また、上記説明はＩＥＥＥ８０２．１１準拠の無線ＬＡＮを例に説明した。本発明は、ワイヤレスＵＳＢ、ＭＢＯＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＷＢ、ＺｉｇＢｅｅ等の他の無線媒体において実施してもよい。また、有線ＬＡＮ等の有線通信媒体において実施してもよい。
【００９６】
ここで、ＭＢＯＡは、Ｍｕｌｔｉ  Ｂａｎｄ  ＯＦＤＭ  Ａｌｌｉａｎｃｅの略である。また、ＵＷＢは、ワイヤレスＵＳＢ、ワイヤレス１３９４、ＷＩＮＥＴなどが含まれる。
【００９７】
本発明は前述の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、システムあるいは装置のコンピュータ（ＣＰＵ、ＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行するようにしてもよい。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９８】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００９９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳが実際の処理の一部または全部を行い、前述の機能を実現してもよい。ＯＳとは、オペレーティングシステムの略である。
【０１００】
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、そのプログラムコードの指示に基づき、機能拡張ボードや機能拡張ユニットに備わるＣＰＵが実際の処理の一部または全部を行い、前述の機能を実現してもよい。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施形態における端末のブロック構成図
【図２】本発明の実施形態における３台の端末によりアドホック  ネットワークを形成した場合の構成図
【図３】第一の実施形態における端末Ｂ，端末Ｃの動作を表すシーケンス図
【図４】第二の実施形態における端末Ｂ，端末Ｃの動作を表すシーケンス図
【図５】第一の実施形態における端末Ｃの動作を表すフローチャート図
【図６】第一の実施形態における端末Ｂの動作を表すフローチャート図
【図７】第二の実施形態における端末Ｃの動作を表すフローチャート図
【図８】第二の実施形態における端末Ｂの動作を表すフローチャート図
【図９】本発明の実施形態における端末内のソフトウェア機能ブロック図
【符号の説明】
【０１０２】
９０１  通信装置
９０２  パケット受信部
９０３  パケット送信部
９０４  検索信号送信部
９０５  検索信号受信部
９０６  鍵交換制御部
９０７  暗号鍵保存部
９０８  乱数生成部
【図１】
0004881813.tif 000002
【図２】
0004881813.tif 000003
【図３】
0004881813.tif 000004
【図４】
0004881813.tif 000005
【図５】
0004881813.tif 000006
【図６】
0004881813.tif 000007
【図７】
0004881813.tif 000008
【図８】
0004881813.tif 000009
【図９】
0004881813.tif 000010