(57)【特許請求の範囲】
【請求項１】
通信装置であって、
他の通信装置と第１の暗号鍵を共有する第１の処理を実行する第１の共有手段と、
前記第１の暗号鍵が共有された場合に、前記第１の暗号鍵を利用して前記他の通信装置と第２の暗号鍵を共有する第２の処理と、前記第１の暗号鍵を利用することなく前記他の通信装置と前記第２の暗号鍵を共有する第３の処理と、を実行する第２の共有手段と、
を有し、
前記第２の共有手段は、前記第３の処理に失敗した場合に前記第２の処理を実行し、前記第３の処理に成功した場合には前記第２の処理を実行しない、
ことを特徴とする通信装置。
【請求項２】
前記第１の処理、前記第２の処理、及び前記第３の処理は、ユニキャスト鍵およびグループ鍵を共有するための４ウェイハンドシェークである、
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１の処理において前記通信装置が認証側装置として動作した場合には前記第２の処理及び前記第３の処理において前記通信装置は被認証側装置として動作し、
前記第１の処理において前記通信装置が被認証側装置として動作した場合には前記第２の処理及び前記第３の処理において前記通信装置は認証側装置として動作する、
ことを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記第３の処理は、平文を用いて前記他の通信装置と前記第２の暗号鍵を共有する処理である、
ことを特徴とする請求項１から３のいずれか１項に記載の通信装置。
【請求項５】
前記第１の処理、前記第２の処理、及び前記第３の処理は、ＩＥＥＥ８０２．１１シリーズに準拠した処理である、
ことを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記第１の暗号鍵及び前記第２の暗号鍵は、ＩＥＥＥ８０２．１１シリーズに準拠したアドホックモードでの無線通信を行うための暗号鍵である、
ことを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
通信装置の制御方法であって、
他の通信装置と第１の暗号鍵を共有する第１の処理を実行する第１の共有工程と、
前記第１の暗号鍵が共有された場合に、前記第１の暗号鍵を利用することなく前記他の通信装置と第２の暗号鍵を共有する第３の処理を実行し、前記第３の処理に失敗した場合に前記第１の暗号鍵を利用して前記他の通信装置と前記第２の暗号鍵を共有する第２の処理を実行し、前記第３の処理に成功した場合には前記第２の処理を実行しない、第２の共有工程と、
を有することを特徴とする制御方法。
【請求項８】
コンピュータを請求項１から６のいずれか１項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置と相手方の通信装置との間で暗号鍵を交換する技術に関する。
【背景技術】
【０００２】
近年、無線ＬＡＮ機能を搭載した、プリンタや携帯電話などの機器が増加している。そして、機器の使用者のプライバシーを守るために、無線ＬＡＮにおいては、通信路を暗号化する仕組みが標準化されている。非特許文献１には、認証側装置（オーセンティケータ）と被認証側装置（サプリカント）との間で、暗号鍵の共有処理を行う仕組み関する標準規格が記載されている。現状、機器が接続する基地局との間で実行する処理として、４ウェイハンドシェイクと呼ばれるユニキャスト鍵およびグループ鍵交換処理が定められており、基地局を通じて機器同士が信号を暗号化して通信する仕組みが確立されている。同様に、基地局を介さないで機器同士が直接通信するアドホックモードの場合の４ウェイハンドシェイクについても規定されている。
【０００３】
アドホックモードの場合は、それぞれの機器が認証側装置と被認証側装置の両方の役割を担うこととなり、２回の双方向の４ウェイハンドシェイクが実行される。グループ鍵は送信元に固有な鍵であるため、認証側装置と被認証側装置とのグループ鍵を互いに送信するために、４ウェイハンドシェイクは送信元を変えて２回行われる。また、通信路のユニキャスト暗号鍵については、認証側装置と被認証側装置のそれぞれの機器のＭＡＣアドレスの大小によって、どちらの暗号鍵を適用するかが定められている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−０９９１１２号公報
【非特許文献】
【０００５】
【非特許文献１】ＬＡＮ／ＭＡＮ  Ｃｏｍｍｉｔｔｅｅ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ，ＩＥＥＥ  Ｓｔｄ  ８０２．１１−２００７  （Ｒｅｖｉｓｉｏｎ  ｏｆ  ＩＥＥＥ  Ｓｔｄ  ８０２．１１−１９９９）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、アドホックモードにおける暗号鍵の共有処理については、非特許文献１に記載されている仕様は、解釈によって複数の実装形態が発生することが考えられる。その結果、異なる実装形態を有する機器間において相互接続ができない場合が発生しうるという課題があった。
【０００７】
特許文献１は、ユニキャスト暗号鍵が４ウェイハンドシェイクの３番目のメッセージ（メッセージ３）で定まるが、４番目のメッセージ（メッセージ４）が平文と暗号文とのいずれを用いて送られるかが定まらないことを指摘している。そして、引用文献１には、これを解決するための技術として、サプリカントは、暗号化したメッセージ４の送信後に、メッセージ３を受信した場合は、メッセージ４を平文で送る技術が記載されている。しかしながら、引用文献１においては、アドホックネットワークに関しては特段の記載がなく、アドホックネットワークに対する同様の相互接続性の向上策が要求されている。
【０００８】
本発明は上記課題に鑑みてなされたものであり、異なるセキュリティ技術の実装形態が混在する場合であっても、通信装置間の相互接続を可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明による通信装置は、他の通信装置と第１の暗号鍵を共有する第１の処理を実行する第１の共有手段と、前記第１の暗号鍵が共有された場合に、前記第１の暗号鍵を利用して前記他の通信装置と第２の暗号鍵を共有する第２の処理と、前記第１の暗号鍵を利用することなく前記他の通信装置と前記第２の暗号鍵を共有する第３の処理と、を実行する第２の共有手段と、を有し、前記第２の共有手段は、前記第３の処理に失敗した場合に前記第２の処理を実行し、前記第３の処理に成功した場合には前記第２の処理を実行しない、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、暗号鍵共有処理についての相互接続性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】通信装置の構成例を示すブロック図。
【図２】通信装置のソフトウェア機能の一例を示すブロック図。
【図３】ネットワーク構成例を示す図。
【図４】アドホックモードにおける鍵交換処理の動作を示すシーケンス図。
【図５】アドホックモードにおける鍵交換処理の組み合わせを示す表。
【図６】実施形態１における第１の通信装置の動作例を示すフローチャート。
【図７】一方の通信装置のみが暗号に関する処理を有効とする場合の鍵交換処理の動作の例を示すシーケンス図。
【図８】実施形態２の方法を用いる鍵交換処理の動作例を示すシーケンス図。
【図９】実施形態２における第２の通信装置の動作例を示すフローチャート。
【図１０】一方の通信装置のみが暗号に関する処理を有効とする場合の鍵交換処理の動作のもう１つの例を示すシーケンス図。
【図１１】実施形態２の方法を用いる鍵交換処理の動作のもう１つの例を示すシーケンス図。
【図１２】一方の通信装置のみが暗号に関する処理を有効とする場合の鍵交換処理の動作のもう１つの例を示すシーケンス図。
【図１３】実施形態３の方法を用いる鍵交換処理の動作例を示すシーケンス図。
【図１４】実施形態３における第２の通信装置の動作例を示すフローチャート。
【図１５】実施形態３の方法を用いる鍵交換処理のもう１つの動作例を示すシーケンス図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。なお、以下では、ＩＥＥＥ８０２．１１シリーズに準拠した無線ＬＡＮシステムを用いた例について説明するが、本発明は、ＩＥＥＥ８０２．１１準拠の無線ＬＡＮに限らず、他の通信技術にも適用することができる。
【００１３】
＜＜実施形態１＞＞
（通信装置のハードウェア構成）
図１は、本実施形態に係る、通信装置の構成例を示すブロック図である。通信装置１０１は、例えば、制御部１０２、記憶部１０３、無線部１０４、表示部１０５、設定ボタン１０６、アンテナ制御部１０７、アンテナ１０８、及び入力部１０９を有する。
【００１４】
制御部１０２は、記憶部１０３に記憶される制御プログラムを実行し、通信装置１０１を制御する。制御部１０２は、また、他の通信装置との間における通信パラメータの設定の制御をも実行する。記憶部１０３は、例えば、制御部１０２が実行する制御プログラム、及び通信パラメータ等の各種情報を記憶する。後述する各種動作は、例えば、記憶部１０３に記憶された制御プログラムを、制御部１０２が実行することにより行われる。
【００１５】
無線部１０４は、ＩＥＥＥ８０２．１１シリーズに準拠した無線ＬＡＮ通信を行うための機能部である。表示部１０５は、ＬＣＤ（液晶ディスプレイ）やＬＥＤ（発光ダイオード）のように視覚で認知可能な情報の出力、あるいはスピーカなどの音出力が可能な機能を有し、それらを用いて情報を表示する。設定ボタン１０６は、例えば、通信パラメータ設定処理を開始するトリガを与えるハードウェアボタンである。設定ボタン１０６が操作されると、制御部１０２はその操作を検出し、後述する処理を含む通信パラメータの自動設定処理を開始する。アンテナ制御部１０７は、アンテナ１０８を制御し、アンテナ１０８を介して無線信号の送出と受信との少なくともいずれかを実行する。入力部１０９は、ユーザが各種入力を行うための機能部であり、例えばキーボードやマウスなどである。
【００１６】
（通信装置の機能構成）
図２は、後述の暗号鍵交換処理を実行するソフトウェア機能の一例を示すブロック図である。通信装置２０１は、例えば、ネットワーク制御部２０２、パケット受信部２０３、パケット送信部２０４、検索信号送信部２０５、検索信号受信部２０６、鍵交換制御部２０７、及び暗号鍵保持部２０８の機能を有する。
【００１７】
ネットワーク制御部２０２は、ネットワーク接続を制御し、無線ＬＡＮアドホックネットワークへの接続処理などを実行する。パケット受信部２０３は、各種通信に係るパケットを受信する。ビーコン（報知信号）の受信は、パケット受信部２０３が行う。パケット送信部２０４は、各種通信に係るパケットを送信する。ビーコンの送信は、パケット送信部２０４が行う。なお、ビーコンには、送信元の機器の各種情報が付加される。なお、パケット受信部２０３とパケット送信部２０４は、パケット以外の信号を送受信するための送信部と受信部とにそれぞれ置き換えられてもよい。
【００１８】
検索信号送信部２０５はプローブリクエストなどの機器検索信号の送信を制御する。なお、プローブリクエストは、所望のネットワークを検索するためのネットワーク検索信号である。検索信号送信部２０５は、プローブリクエストと、受信したプローブリクエストに対する応答信号であるプローブレスポンスとを送信する。検索信号受信部２０６は、他の通信装置からのプローブリクエストなどの機器検索信号の受信を制御する。検索信号受信部２０６は、プローブリクエストとプローブレスポンスとを受信する。なお機器検索信号、及びその応答信号には、その信号を送信する通信装置に関する各種情報が付加される。
【００１９】
鍵交換制御部２０７は、ＷＰＡでの鍵交換やＷＰＡ−Ｎｏｎｅでの鍵設定を制御する。暗号鍵保持部２０８は、通信装置ごとに予め定めた数だけ暗号鍵を保持し、通信パケットの暗号化および復号処理は、保持された暗号鍵を用いて実行される。暗号鍵保持部２０８では、主にＷＰＡの鍵交換処理で共有されたセッション鍵やグループ鍵を通信相手ごとに保持する。
【００２０】
なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものである。また、上述の機能ブロック構成は一例であり、複数の機能ブロックにより上述の１つの機能ブロックを実現してもよいし、上述の複数のブロックの機能を１つの機能ブロックにより実現してもよい。
【００２１】
（ネットワーク構成）
図３は、本実施形態に係るネットワーク構成例を示す図である。アドホックネットワーク３１は、第１の通信装置３２と第２の通信装置３３とを含んで構成される。アドホックネットワーク３１では、各通信装置は基地局を介さないで直接通信する。ここで、第１の通信装置と第２の通信装置とは、図１のハードウェア構成と図２のソフトウェア構成とを有するものとする。なお、第１の通信装置と第２の通信装置との間でＷＰＡでの暗号通信を行う場合は、第１の通信装置と第２の通信装置との間で、ユニキャスト鍵（ＰＴＫ）とグループ鍵（ＧＴＫ）とを設定する必要がある。
【００２２】
（鍵交換処理の動作）
図４はアドホックモードにおける鍵交換処理の一例を示すシーケンス図である。第１の通信装置と第２の通信装置は、それぞれオーセンティケータ（認証側装置）とサプリカント（被認証側装置）となり、鍵交換を行う（Ｆ４０１〜Ｆ４０４）。なお、処理の詳細は、非特許文献１を参照されたい。ここでは、第１の通信装置と第２の通信装置との間でユニキャスト鍵（ＰＴＫ）を共有し、そのユニキャスト鍵を用いて、第１の通信装置のグループ鍵を第２の通信装置へ送信する。
【００２３】
その後、第１の通信装置と第２の通信装置との役割を反転し、それぞれがサプリカントとオーセンティケータとなって鍵交換を行う（Ｆ４０５〜Ｆ４０８）。ここでは、第１の通信装置と第２の通信装置との間でユニキャスト鍵を共有し、そのユニキャスト鍵を用いて、第２の通信装置のグループ鍵を第１の通信装置へ送信する。
【００２４】
これらの２回の鍵交換が完了した後に、第１の通信装置と第２の通信装置は、ユニキャスト鍵と、交換した２つのグループ鍵とを用いて暗号鍵保持部２０８を有効化する（Ｆ４０９、Ｆ４１０）。なお、ユニキャスト鍵は、第１の通信装置と第２の通信装置とのうちＭＡＣアドレスの大きな方がオーセンティケータであった際に共有したものを用いる。そして、第１の通信装置および第２の通信装置の双方にて暗号回路が有効化されることにより、第１の通信装置と第２の通信装置との間で暗号通信が可能となる（Ｆ４１１）。なお、上述の説明では、１回目の鍵交換では第１の通信装置がオーセンティケータとなる場合について説明したが、１回目の鍵交換において第２の通信装置がオーセンティケータとなってもよい。
【００２５】
なお、３つ以上の通信装置が存在する場合は、通常、それらの通信装置からいずれかを選択して、２つの通信装置間で認証側装置および被認証側装置として１回ずつの鍵交換を行う。ただし、３つ以上の通信装置に対して１度に鍵交換を行うようにしてもよい。この場合、例えば、通信装置は１回だけ認証側装置として鍵交換を行い、他の通信装置が認証側装置である間は被認証側装置として鍵交換を行う。このように、通信装置は、認証側装置および被認証側装置として、それぞれ少なくとも１回の暗号鍵の交換を行う。
【００２６】
ここで、第１の通信装置と第２の通信装置とのＭＡＣアドレスの大小関係および、１回目の鍵交換のオーセンティケータがどちらになるかを考慮すると、図５に示すように、パターン１からパターン４までの４通りの組み合わせが考えられる。図５のパターン１とパターン４においては、仕様上、１回目の鍵交換においてユニキャスト鍵（ＰＴＫ）を決定することが可能である。このため、実装によっては、２回目の鍵交換において、第１の通信装置と第２の通信装置とのいずれかのみが暗号に関する処理を有効とすることにより、２回目の鍵交換が失敗する場合が発生する。すなわち、暗号に関する処理を有効とした通信装置は、相手方の通信装置からの信号は暗号化を施されていると判断し、その信号に対して復号処理を実行する。しかしながら、相手方の通信装置からの信号は平文で送られているため、復号処理を行うことにより、信号を解釈することができなくなる。同様に、暗号化を施した信号は、相手方の通信装置が解釈できないものであるため、結果として２回目の暗号鍵交換処理が失敗することとなる。
【００２７】
このため、本実施形態では、通信装置に、１回目の鍵交換だけでは暗号鍵が確定しないことにより２回目の鍵交換が必ず平文で行われる、パターン２およびパターン３の処理を行わせる制御を行う。
【００２８】
図６は、このような制御の動作を示すフローチャートである。ここでは、図６の動作を第１の通信装置が実行するものとして説明するが、第２の通信装置が同様の処理を実行してもよい。第１の通信装置は、まず、第２の通信装置を検出する（Ｓ６０１）。第２の通信装置が検出されない場合（Ｓ６０１でＮｏ）は、検出するまで第１の通信装置は一定時間待ち続ける。第２の通信装置が検出された場合（Ｓ６０１でＹｅｓ）は、第１の通信装置は、自らのＭＡＣアドレスと、第２の通信装置のＭＡＣアドレスとの大小を比較する（Ｓ６０２）。
【００２９】
そして、第２の通信装置のＭＡＣアドレスが第１の通信装置のＭＡＣアドレスより大きい場合は（Ｓ６０２でＹｅｓ）、第１の通信装置は自身の役割をオーセンティケータとして鍵交換処理を実行する（Ｓ６０３）。なお、この時に第２の通信装置がオーセンティケータとなって鍵交換処理を試みようとしている場合は、そのパケットを無視する。そして、第１の通信装置をオーセンティケータとして鍵交換処理をした後に、今度は第２の通信装置をオーセンティケータとして鍵交換処理を実行する（Ｓ６０４）。
【００３０】
一方、第２の通信装置のＭＡＣアドレスが第１の通信装置のＭＡＣアドレスよりも小さい場合（Ｓ６０２でＮｏ）、第１の通信装置は、第２の通信装置をオーセンティケータとして鍵交換処理を実行する（Ｓ６０４）。なお、第１の通信装置は、Ｓ６０２の処理の後、第２の通信装置がオーセンティケータとして鍵交換処理を実行するのを待ち受ける。そして、Ｓ６０４の鍵交換処理が完了した後、再度第１の通信装置と第２の通信装置のＭＡＣアドレスの大小を比較する（Ｓ６０５）。
【００３１】
ここで、第２の通信装置のＭＡＣアドレスが大きい場合は、Ｓ６０４の鍵交換処理によりすでに２回の鍵交換は完了しているため、暗号鍵保持部２０８において、暗号に関する処理を有効化して処理を終了する（Ｓ６０７）。一方、第１の通信装置のＭＡＣアドレスが第２の通信装置のＭＡＣアドレスより大きい場合は、第１の通信装置をオーセンティケータとして鍵交換処理を実行する（Ｓ６０６）。なお、Ｓ６０５では、ＭＡＣアドレスの大小比較でなく、鍵交換処理を既に２回実行したか否かを判定してもよい。
【００３２】
このように、本実施形態によれば、１回目の鍵交換処理において、ＭＡＣアドレスの小さい通信装置がオーセンティケータとして鍵交換処理を実行するように、鍵交換処理において各通信装置がオーセンティケータとなる順序を決定する。例えば、第１の通信装置のＭＡＣアドレスの方が第２の通信装置のＭＡＣアドレスより小さい場合は、１回目の鍵交換処理において第１の通信装置がオーセンティケータとして動作するように決定する。これにより、１回目の鍵交換処理でＰＴＫが決定されず、２回目の鍵交換処理において第１の通信装置と第２の通信装置のいずれかのみが暗号に関する処理を有効化することによる、鍵交換処理の失敗を防ぐことが可能となる。
【００３３】
なお、本実施形態では、ＭＡＣアドレスの大小関係を判定し、その判定結果に基づいて先にオーセンティケータとなる通信装置を決定したが、これに限られない。例えば、鍵交換を行う通信装置間において、いずれの通信装置が提供するユニキャスト鍵が、これらの通信装置間で共通して暗号化に使用すべきユニキャストであるかを判定してもよい。そして、判定結果に応じて、これらの通信装置が共通して暗号化に使用するユニキャスト鍵を提供する通信装置を、最後の鍵交換処理においてオーセンティケータとするように順序を決定してもよい。例えば、製造年月日が最新のものがオーセンティケータのときに交換されるユニキャスト鍵が使用すべきユニキャスト鍵である場合は、製造年月日を比較するようにしてもよい。これによれば、使用されるユニキャスト鍵は、最後の鍵交換処理で交換されるため、それまでの鍵交換処理で暗号文が用いられることを防ぐことが可能となる。
【００３４】
なお、３つ以上の複数の通信装置間での暗号鍵交換は、２つの通信装置ごとにそれぞれ行ってもよいし、複数の通信装置間で一度に行ってもよい。ここで、３つ以上の複数の通信装置間で一度に暗号鍵交換を行う場合にも、本実施形態に係る処理を適用することができる。すなわち、複数の通信装置が用いるべき鍵が、いずれの通信装置が提供する鍵であるかを判定し、その鍵を提供する通信装置が最後に認証側装置として機能するようにする。これにより、複数回の鍵交換処理で、一部の通信装置が暗号文を用い、他の通信装置がそれを解釈できないという問題を解消することができる。
【００３５】
＜＜実施形態２＞＞
本実施形態では、鍵交換処理の順序ではなく、暗号化の有無を制御することによって相互接続性を向上させる。本実施形態における通信装置のハードウェア構成やソフトウェア機能構成、ネットワーク構成などは、実施形態１と同様である。なお、以下の説明では、第１の通信装置は、１回目の鍵交換処理で使用すべきユニキャスト鍵（ＰＴＫ）を取得すると、２回目の鍵交換処理を実行前であっても、そのユニキャスト鍵による暗号に関する処理を有効とする実装がなされているものとする。また、特に断らない限り、第２の通信装置は、１回目の鍵交換処理で使用すべきユニキャスト鍵を取得したとしても、２回目の鍵交換処理を実行後にユニキャスト鍵による暗号に関する処理を有効とする実装がなされているものとする。
【００３６】
ここでは、まず、課題を認識するため、図５のパターン１のケースについて図７を用いて説明する。パターン１においては、第１の通信装置がオーセンティケータである場合の鍵交換処理により交換されるユニキャスト鍵が、第１の通信装置と第２の通信装置とが使用すべきユニキャスト鍵である。
【００３７】
図７のシーケンス図においては、まず、第１の通信装置と第２の通信装置とが、それぞれオーセンティケータとサプリカントとなって鍵交換を行う（Ｆ７０１〜Ｆ７０４）。ここでは、第１の通信装置と第２の通信装置との間でユニキャスト鍵（ＰＴＫ）を共有し、そのユニキャスト鍵を用いて、第１の通信装置のグループ鍵が第２の通信装置へ送信される。ここで、先に述べたように、第１の通信装置は、１回目の鍵交換処理で使用すべきユニキャスト鍵を取得すると、２回目の鍵交換処理の前であってもユニキャスト鍵による暗号に関する処理を有効化する（Ｆ７０５）。
【００３８】
第１の通信装置が暗号に関する処理を有効とした後、第１の通信装置と第２の通信装置との役割を、それぞれサプリカントとオーセンティケータに反転して鍵交換を開始する。ここで、第２の通信装置は、先に述べたように、第１の通信装置がオーセンティケータであった期間に交換されたユニキャスト鍵が、使用すべきユニキャスト鍵であったとしても、２回目の鍵交換処理が完了するまでは暗号に関する処理を有効とはしない。したがって、第２の通信装置では、１回目の鍵交換の後では暗号に関する処理を有効としないため、平文で鍵交換パケットを送信する（Ｆ７０６）。しかし、第１の通信装置は暗号に関する処理を有効としているため、第２の通信装置からの平文のパケットを認識できない。このため、第１の通信装置は、第２の通信装置からの平文の鍵交換パケットを破棄し応答を返さない。
【００３９】
一方、第２の通信装置は、応答を受信しないため、鍵交換パケットを再送する（Ｆ７０７、Ｆ７０８）。第２の通信装置は、例えば予め定めた回数だけ鍵交換パケットの再送信を行うが、最終的にタイムアウトが発生する（Ｆ７０９）。結果として、第１の通信装置と第２の通信装置との間でＷＰＡによる暗号通信が確立できないという問題が発生する。
【００４０】
そこで、本実施形態の第２の通信装置は、図８に示すように、タイムアウトが発生した時点またはその後に、第１の通信装置と同様にユニキャスト鍵について暗号に関する処理を有効にする（Ｆ８０１）。そして、第２の通信装置において暗号に関する処理を有効にした後、Ｆ７０６〜Ｆ７０８において再送していたのと同様の鍵交換パケットを暗号化して送信する（Ｆ８０２）。この場合は、暗号に関する処理を有効としている第１の通信装置は、鍵交換パケットを解読することができるため、そのパケットを破棄することはなく鍵交換処理が続行される（Ｆ８０３〜Ｆ８０５）。鍵交換を完了した後、第１の通信装置および第２の通信装置は、グループ鍵に基づく暗号に関する処理を有効化する（Ｆ８０６、Ｆ８０７）。これにより、第１の通信装置および第２の通信装置の双方において暗号に関する処理を有効とするため、暗号通信が可能となる（Ｆ８０８）。
【００４１】
図８に示すシーケンス図を実現するための、第２の通信装置が実行する処理について、図９を用いて説明する。まず、第２の通信装置は第１の通信装置を検出する（Ｓ９０１）。第１の通信装置が検出されない場合（Ｓ９０１でＮｏ）は、第２の通信装置は、検出するまで一定時間待ち続ける。そして、第２の通信装置は、第１の通信装置を検出した場合（Ｓ９０１でＹｅｓ）は、第１の通信装置から鍵交換が開始されたかどうかを判定する（Ｓ９０２）。ここでは、図８のＦ７０１に相当する、４ウェイハンドシェイクのメッセージ１を受信したかどうかを判定する。
【００４２】
第１の通信装置から鍵交換が開始される場合（Ｓ９０２でＮｏ）、第２の通信装置をオーセンティケータとして鍵交換処理を行う（Ｓ９０４）。この場合、第１の通信装置と第２の通信装置は、この時点では第１の通信装置がオーセンティケータとしてユニキャスト鍵を交換していないため、２回目の鍵交換が行われるまでユニキャスト鍵に基づく暗号に関する処理を有効にしない。そして、この後第１の通信装置をオーセンティケータとして平文で鍵交換処理を行い（不図示）、鍵交換を終了する。
【００４３】
第２の通信装置は、第１の通信装置から鍵交換が開始されたと判定した場合（Ｓ９０２でＹｅｓ）、第１の通信装置をオーセンティケータとして鍵交換処理を実行する（Ｓ９０３）。この時、第２の通信装置は、自らの役割をサプリカントとする。鍵交換処理（Ｓ９０３）の完了後、第１の通信装置と第２の通信装置との役割を変えて鍵交換処理を開始する（Ｓ９０４）。すなわち、第２の通信装置をオーセンティケータとして鍵交換処理を開始し、第２の通信装置は第１の通信装置へ向けて４ウェイハンドシェイクのメッセージ１を送信する。そして、第２の通信装置は、Ｓ９０４の１回の鍵交換処理の開始後、終了する前に、予め定めたタイマーが満了することによるタイムアウトエラーと予め定めた回数の再送が完了したことによるリトライエラーとのいずれかが発生したかを確認する（Ｓ９０５）。ここで、エラーが発生しなかった場合（Ｓ９０５でＮｏ）は、暗号鍵を有効化し（Ｓ９０８）、処理を終了する。
【００４４】
一方、図７および図８に示したシーケンス図においては、第１の通信装置はユニキャスト暗号に関する処理を有効化しているが、第２の通信装置はユニキャスト暗号化を実行していない。このため、第２の通信装置がＳ９０４で送信する４ウェイハンドシェイクのメッセージ１は平文である。しかしながら、第１の通信装置においては平文を認識できないため、第２の通信装置は応答を受信することはなく、タイムアウトエラーとリトライエラーの少なくともいずれかが発生する。第２の通信装置は、タイムアウトエラーとリトライエラーとの少なくともいずれかを検出した場合（Ｓ９０５でＹｅｓ）、Ｓ９０３の鍵交換処理で得たユニキャスト鍵に基づく暗号に関する処理を有効化する（Ｓ９０６）。その後、第２の通信装置は自らをオーセンティケータとして、ユニキャスト鍵に基づく暗号関連処理を有効とした状態で鍵交換処理を実行する（Ｓ９０７）。ここでは、第１の通信装置が第２の通信装置からのメッセージを理解することができるため、メッセージ１以下の鍵交換処理の処理を進めることができる。その後、暗号鍵を有効化して処理を終了する（Ｓ９０８）。
【００４５】
本実施形態では、１回目の鍵交換処理の完了後、２回目の鍵交換処理を平文で試行してエラーが発生した場合、すなわち、全ての鍵交換処理が完了する前にエラーが発生した場合、ユニキャスト鍵に基づく暗号関連処理を有効として再度鍵交換処理を実行する。これにより、暗号化を開始するタイミングに依存せず仕様上規定された複数回（２回）の鍵交換処理を完遂することが可能となり、第１の通信装置と第２の通信装置との間で暗号通信を実行することが可能となる。
【００４６】
上述の説明では、最初に第１の通信装置がオーセンティケータとして鍵交換処理を実行した場合について、暗号化の有無を制御する態様について説明した。ここで、上述の説明では、暗号に関する処理を有効とした通信装置は平文のパケットを解釈できない、という前提で説明したが、暗号関連処理が有効とあっても鍵交換プロトコルで用いられるＥＡＰｏＬパケットは平文でも解釈できる通信装置が存在する。この場合に生じる事象について図１０を用いて説明する。
【００４７】
まず、第１の通信装置がオーセンティケータとなり、第２の通信装置がサプリカントとなり、鍵交換を行う（Ｆ１００１〜Ｆ１００４）。ここでは、第１の通信装置と第２の通信装置との間でユニキャスト鍵（ＰＴＫ）を共有し、そのユニキャスト鍵を用いて、第１の通信装置のグループ鍵が第２の通信装置へ送信される。第１の通信装置はこの段階でユニキャスト鍵が確定するため、暗号に関する処理を有効にする（Ｆ１００５）。
【００４８】
第１の通信装置が暗号に関する処理を有効とした後、第１の通信装置と第２の通信装置との役割を、それぞれサプリカントとオーセンティケータに反転して鍵交換を開始する。第２の通信装置では、１回目の鍵交換の後では暗号関連処理を有効としないため、平文で鍵交換パケットを送信する（Ｆ１００６）。ここで、第１の通信装置は暗号関連処理を有効としていても鍵交換プロトコルで用いるＥＡＰｏＬパケットだけは平文を認識できるため、第２の通信装置に対して鍵交換の応答パケットを送信する（Ｆ１００７）。しかしながら、第１の通信装置がＦ１００７で送信する応答パケットは、第１の通信装置は暗号関連処理を有効としているため暗号化されている。
【００４９】
第２の通信装置は、暗号関連処理を有効としていないため、第１の通信装置から受信したパケットを認識できずに破棄して鍵交換パケットを再送する（Ｆ１００８）。第２の通信装置は予め定めた回数だけ鍵交換パケットの再送信を行うが、最終的にタイムアウトが発生する（Ｆ１０１２）。結果として、第１の通信装置と第２の通信装置との間でＷＰＡによる暗号通信を確立することができない。
【００５０】
そこで、第２の通信装置に図９で説明した本実施形態に係る処理を実行させる。すなわち、第２の通信装置において、タイムアウトが発生した時点で、第１の通信装置と同様にユニキャストの暗号に関する処理を有効にするようにする。その場合のシーケンス図を図１１に示す。第２の通信装置は、タイムアウトの発生（Ｆ１０１２）後、ユニキャストの暗号に関する処理を有効にする（Ｆ１１０１）。第２の通信装置は、ユニキャストの暗号に関する処理を有効にした後、暗号通信によりメッセージ１を送信し（Ｆ１１０２）、その応答を受信する（Ｆ１１０３）。ここで、第２の通信装置はユニキャストの暗号に関する処理を有効としているため、第１の通信装置から受信した応答（メッセージ２）を解釈することができ、その後の鍵交換処理（Ｆ１１０４〜Ｆ１１０５）を続行し、鍵交換を完了することができる。鍵交換が完了後、第１の通信装置と第２の通信装置は、グループ鍵に基づく暗号関連処理を有効化する（Ｆ１１０６、Ｆ１１０７）。これにより、第１の通信装置および第２の通信装置の双方において暗号関連処理を有効とするため、暗号通信を実行することが可能となる（Ｆ１１０８）。
【００５１】
このように、相手方の通信装置から暗号化された応答を受信し、それを解釈できないことによるタイムアウトが発生した場合にも本実施形態に係る処理を適用することができる。これにより、相手方の通信装置がメッセージを平文で解釈できても、その相手方の通信装置からの応答が暗号化されることにより鍵交換処理を完了できないという問題を解消することができる。
【００５２】
なお、本実施形態も、３つ以上の通信装置が一度に暗号鍵を交換する処理に適用することができる。例えば、まず、３つ以上の通信装置のいずれかがオーセンティケータとして鍵交換処理を行う。この時点以降、１回目の処理でオーセンティケータとして鍵交換処理を実行した通信装置が、自らが提供するユニキャスト鍵を用いて信号を暗号化して送信しうる。このため、２回目以降の鍵交換処理において、暗号化された信号を解釈できないことにより鍵交換処理が滞ると、タイムアウトエラーとリトライエラーの少なくともいずれかが発生しうる。このため、各通信装置は、２回目以降の鍵交換処理からその完了までの間においてエラーが発生したかを判定し、エラーが発生した場合に、それまでに取得したユニキャスト鍵による暗号に関する処理を有効としてもよい。
【００５３】
＜＜実施形態３＞＞
実施形態２では、第１の通信装置がオーセンティケータとして鍵交換処理を実行する図５のパターン１のケースについて説明を行った。本実施形態においては、図５のパターン４のケースについて説明する。まず、図５のパターン４のケースで、第１の通信装置が１回目の鍵交換処理の完了後に暗号に関する処理を有効化してしまう場合について、図１２を用いて説明する。パターン４においては、第２の通信装置がオーセンティケータである場合の鍵交換処理により交換されるユニキャスト鍵が、第１の通信装置と第２の通信装置とが使用すべきユニキャスト鍵である。
【００５４】
なお、以下の説明では、実施形態２と同様に、第１の通信装置は、１回目の鍵交換処理で使用すべきユニキャスト鍵（ＰＴＫ）を取得すると、２回目の鍵交換処理を実行前でも、そのユニキャスト鍵による暗号関連処理を有効とするように実装されているとする。また、特に断らない限り、第２の通信装置は、１回目の鍵交換処理で使用すべきユニキャスト鍵を取得したとしても、２回目の鍵交換処理を実行後にユニキャスト鍵による暗号に関する処理を有効とする実装がなされているものとする。
【００５５】
また、パターン４においては、まず、第１の通信装置と第２の通信装置が、それぞれサプリカントとオーセンティケータとなり、１回目の鍵交換処理を実行する（Ｆ１２０１〜Ｆ１２０４）。ここでは、第１の通信装置と第２の通信装置との間でユニキャスト鍵（ＰＴＫ）を共有し、そのユニキャスト鍵を用いて、第２の通信装置のグループ鍵が第１の通信装置へ送信される。ここで、先に述べたように、第１の通信装置は、１回目の鍵交換処理で使用すべきユニキャスト鍵を取得すると、２回目の鍵交換処理の前であってもユニキャスト鍵による暗号に関する処理を有効化する（Ｆ１２０５）。
【００５６】
第１の通信装置が暗号に関する処理を有効とした後、第１の通信装置と第２の通信装置との役割を、それぞれサプリカントとオーセンティケータに反転して鍵交換を開始する。なお、第１の通信装置はＦ１２０５にて暗号に関する処理を有効としているため、平文ではなく暗号文で鍵交換パケットを送信する（Ｆ１２０６）。ここで、第２の通信装置は、先に述べたように、第２の通信装置がオーセンティケータであった期間に交換されたユニキャスト鍵が使用すべきユニキャスト鍵であったとしても、２回目の鍵交換処理が完了するまでは暗号に関する処理を有効とはしない。したがって、第２の通信装置は、第１の通信装置からの暗号文のパケットを認識できず、そのパケットを破棄して応答を行わない。一方、第１の通信装置は、応答を受信しないため、鍵交換パケットを再送する（Ｆ１２０７、Ｆ１２０８）。
【００５７】
第１の通信装置は予め定めた回数だけ鍵交換パケットの再送信を行うが、すべて暗号化されているため、第２の通信装置においては認識することができないため、すべて破棄される。そして、第２の通信装置は、２回目の鍵交換が実行されないと判断し、最終的にタイムアウトが発生する（Ｆ１２０９）。結果として、第１の通信装置と第２の通信装置との間でＷＰＡによる暗号通信が確立できないという問題が発生する。
【００５８】
そこで、本実施形態の第２の通信装置は、図１３に示すように、タイムアウトが発生した時点またはその後に、第１の通信装置と同様にユニキャスト鍵について暗号に関する処理を有効にする（Ｆ１３０１）。これにより、第２の通信装置は、第１の通信装置から受信した鍵交換パケットを認識することが可能となる。このため、第２の通信装置は第１の通信装置へ応答を返し（Ｆ１３０３）、鍵交換処理が続行される（Ｆ１３０４、Ｆ１３０５）。鍵交換を完了した後、第１の通信装置および第２の通信装置は、グループ鍵による暗号関連処理を有効化する（Ｆ１３０６、Ｆ１３０７）。これにより、第１の通信装置および第２の通信装置の双方において暗号化が可能となるため、暗号通信が可能となる（Ｆ１３０８）。
【００５９】
図１３に示したシーケンス図を実現するための、第２の通信装置が実行する処理について、図１４を用いて説明する。第２の通信装置は、まず、第１の通信装置を検出する（Ｓ１４０１）。第１の通信装置が検出されない場合（Ｓ１４０１でＮｏ）は、検出するまで一定時間待ち続ける。第１の通信装置が検出された場合（Ｓ１４０１でＹｅｓ）は、第２の通信装置は、続いて、第１の通信装置から鍵交換が開始されたかを判定する（Ｓ１４０２）。
【００６０】
第２の通信装置は、第１の通信装置から鍵交換が開始されたと判定した場合（Ｓ１４０２でＹｅｓ）は、第１の通信装置と第２の通信装置を、それぞれオーセンティケータとサプリカントとして鍵交換処理を実行する（Ｓ１４０９）。そして、その後、役割を反転して鍵交換処理を実行する（Ｓ１４１０）。なお、本実施形態では、第２の通信装置がオーセンティケータの場合に交換されるユニキャスト鍵が、第１の通信装置と第２の通信装置が使用すべきユニキャスト鍵であるため、一方の通信装置が暗号に関する処理を有効とすることによる不都合は生じない。このため、２回目の鍵交換処理が完了後、グループ鍵による暗号に関する処理を有効化して（Ｓ１４０８）、処理を終了する。なお、実際の処理では、第２の通信装置は図５の４つのパターンのどれに該当するかを知らないため、Ｓ１４０２において第１の通信装置から鍵交換が開始されたと判定した場合（Ｓ１４０２でＹｅｓ）、処理を図９のＳ９０３へ移してもよい。
【００６１】
一方、第２の通信装置は、第１の通信装置から鍵交換が開始されていないと判定した場合（Ｓ１４０２でＮｏ）、第２の通信装置をオーセンティケータとして鍵交換処理を開始する（Ｓ１４０３）。第２の通信装置は、自らをオーセンティケータとしての鍵交換処理が完了した後、第１の通信装置をオーセンティケータとしての鍵交換処理を開始する（Ｓ１４０４）。そして、第２の通信装置は、予め定めたタイマーが満了することによるタイムアウトエラーと予め定めた回数の再送が完了したことによるリトライエラーとの少なくともいずれかが発生するかを判定する（Ｓ１４０５）。
【００６２】
ここで、本例においては、第１の通信装置はユニキャスト暗号に関する処理を有効とし、第２の通信装置はユニキャスト暗号に関する処理を有効としていない。すなわち、第１の通信装置が送信する４ウェイハンドシェイクのメッセージ１は暗号文であるが、第２の通信装置は、それを解釈することができない。このため、タイムアウトエラーとリトライエラーの少なくともいずれかが発生することとなる（Ｓ１４０５でＹｅｓ）。なお、エラーが発生しない場合は（Ｓ１４０５でＮｏ）、第１の通信装置と第２の通信装置との間で確定した暗号鍵に基づく暗号関連処理を有効化して（Ｓ１４０８）、処理を終了する。
【００６３】
一方、本例では、タイムアウトエラーとリトライエラーとの少なくともいずれかが検出されるため（Ｓ１４０５でＹｅｓ）、第２の通信装置は、Ｓ１４０３の鍵交換処理において取得したユニキャスト鍵に基づく暗号関連処理を有効化する（Ｓ１４０６）。その後、第２の通信装置は、自らをサプリカントとし、第１の通信装置をオーセンティケータとして鍵交換処理を再度実行する（Ｓ１４０７）。その後、暗号鍵による暗号関連処理を有効化して（Ｓ１４０８）、処理を終了する。
【００６４】
なお、第２の通信装置において暗号に関する処理を有効にした時点で第１の通信装置はすでに鍵交換処理を終了している場合がある。この場合、図１５に示すように、第２の通信装置は、第１の通信装置と同様にユニキャスト鍵による暗号に関する処理を有効化（Ｆ１３０１）した後、再び第２の通信装置をオーセンティケータとした鍵交換を暗号文で実行してもよい（Ｆ１５０１〜Ｆ１５０４）。そして、その後に、第１の通信装置および第２の通信装置は、役割を判定して鍵交換処理を実行し（Ｆ１５０５〜Ｆ１５０８）、グループ鍵による暗号に関する処理を有効にして（Ｆ１５０９、Ｆ１５１０）、暗号通信を行ってもよい（Ｆ１５１１）。
【００６５】
なお、この場合、図１４のＳ１４０７において、第２の通信装置は、自らをサプリカントとして第１の通信装置からの４ウェイハンドシェイクのメッセージ１を待ち受けていても、それを受信できないこととなる。このため、例えばＳ１４０７の後、第２の通信装置は、所定時間内に第１の通信装置からメッセージ１を受信したかを判定し、受信しなかった場合に、再度、自らをオーセンティケータとして鍵交換を実行してもよい。そして、第２の通信装置は、自らをオーセンティケータとしての鍵交換処理が完了した後、再度自らをサプリカントとして鍵交換処理を実行してもよい。
【００６６】
このように本実施形態では、１回目の鍵交換処理が完了した後に、２回目の鍵交換処理でタイムアウトを検知すると、暗号に関する処理を有効化して２回目の鍵交換処理を再度実行する。これにより、１回目の鍵交換処理において使用すべきユニキャスト鍵を取得すると、２回目の鍵交換処理前でも暗号化を実行する通信装置と、２回目の鍵交換処理が完了後に暗号化を実行する通信装置との間で、複数回の鍵交換処理を完遂することが可能となる。したがって、通信装置間で、鍵交換処理の動作に係る実装が異なっていても、複数回（２回）の鍵交換処理と暗号通信とを実行することができるようになる。
【００６７】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005981761.tif 000002
【図２】
0005981761.tif 000003
【図３】
0005981761.tif 000004
【図４】
0005981761.tif 000005
【図５】
0005981761.tif 000006
【図６】
0005981761.tif 000007
【図７】
0005981761.tif 000008
【図８】
0005981761.tif 000009
【図９】
0005981761.tif 000010
【図１０】
0005981761.tif 000011
【図１１】
0005981761.tif 000012
【図１２】
0005981761.tif 000013
【図１３】
0005981761.tif 000014
【図１４】
0005981761.tif 000015
【図１５】
0005981761.tif 000016