(57)【特許請求の範囲】
【請求項１】
通信装置であって、
他の通信装置から公開鍵と乱数とが含まれるメッセージを受信する受信手段と、
前記受信手段において受信されたメッセージに含まれる前記公開鍵と、前記通信装置が予め保持する秘密鍵とを用いて、共通鍵を算出する算出手段と、
前記算出手段による前記共通鍵の算出の開始から完了までの間に、前記受信手段において前記他の通信装置から前記メッセージを複数回受信し、該複数回のメッセージそれぞれに含まれる前記公開鍵が同一である場合に、前記受信手段において最後に受信されたメッセージに含まれる乱数を含むメッセージを前記他の通信装置に送信する送信手段と
を有することを特徴とする通信装置。
【請求項２】
前記算出手段による前記共通鍵の算出の開始から完了までの間に、前記受信手段において前記他の通信装置から異なる公開鍵が含まれる前記メッセージを受信した場合、前記算出手段は、前記異なる公開鍵を用いて共通鍵を算出することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記算出手段による前記共通鍵の算出の開始から完了までの間に、前記受信手段において前記他の通信装置から前記メッセージを複数回受信し、該複数回のメッセージそれぞれに含まれる前記公開鍵が同一であり、前記乱数も同一であった場合、前記送信手段は、前記受信手段において最初に受信されたメッセージに含まれる乱数を含むメッセージを前記他の通信装置に送信することを特徴とする請求項１に記載の通信装置。
【請求項４】
通信装置の制御方法であって、
受信手段が、他の通信装置から公開鍵と乱数とが含まれるメッセージを受信する受信工程と、
算出手段が、前記受信工程において受信されたメッセージに含まれる前記公開鍵と、前記通信装置が予め保持する秘密鍵とを用いて、共通鍵を算出する算出工程と、
送信手段が、前記算出工程における前記共通鍵の算出の開始から完了までの間に、前記受信工程において前記他の通信装置から前記メッセージを複数回受信し、該複数回のメッセージそれぞれに含まれる前記公開鍵が同一である場合に、前記受信工程において最後に受信されたメッセージに含まれる乱数を含むメッセージを前記他の通信装置に送信する送信工程と
を有することを特徴とする通信装置の制御方法。
【請求項５】
通信装置において、コンピュータに、
他の通信装置から公開鍵と乱数とが含まれるメッセージを受信する受信工程と、
前記受信工程において受信されたメッセージに含まれる前記公開鍵と、前記通信装置が予め保持する秘密鍵とを用いて、共通鍵を算出する算出工程と、
前記算出工程における前記共通鍵の算出の開始から完了までの間に、前記受信工程において前記他の通信装置から前記メッセージを複数回受信し、該複数回のメッセージそれぞれに含まれる前記公開鍵が同一である場合に、前記受信工程において最後に受信されたメッセージに含まれる乱数を含むメッセージを前記他の通信装置に送信する送信工程と
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
ＩＥＥＥ８０２．１１規格シリーズに準拠した無線ＬＡＮにおいて無線通信を行うにあたっては、各通信装置の使用前に多数の設定項目を設定しておく必要がある。
【０００３】
具体的には、ネットワーク識別子としてのＳＳＩＤ（Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ）や、暗号方式、暗号鍵、認証方式、認証鍵等、無線通信を行うために必要な各種通信パラメータが挙げられる。そして、従来、これらの設定項目はユーザが全て手入力で設定していたため、ユーザにとって非常に煩雑な作業となっていた。
【０００４】
これに対し、近年、各種通信パラメータを通信装置に簡単に設定できるようにするための業界標準の自動設定方法として、Ｗｉ−Ｆｉ  Ｐｒｏｔｅｃｔｅｄ  Ｓｅｔｕｐ（以下、ＷＰＳ。非特許文献１参照）が規格化され、現在、通信装置への搭載が進められている。
【０００５】
図８は、ＷＰＳに開示されている、通信装置Ａ（受信装置として機能する通信装置）と通信装置Ｂ（提供装置として機能する通信装置）との間におけるＷＰＳによる通信パラメータの自動設定処理のシーケンスを簡潔に示したものである。図８に示すＷＳＣ−Ｓｔａｒｔ（Ｆ８０５）からＷＳＣ−Ｄｏｎｅ（Ｆ８１４）までの各メッセージは、ＲＦＣ３７４８  Ｅｘｔｅｎｓｉｂｌｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌにより規定されたＥＡＰプロトコルに基づいて送受信される。
【０００６】
ここで、図８に示すＷＳＣ−Ｍ１（Ｆ８０６）、ＷＳＣ−Ｍ２（Ｆ８０７）、及びＷＳＣ−Ｍ３（Ｆ８０８）の各メッセージのフォーマットの詳細を図９〜図１１に示す。
【０００７】
図９に示すとおり、ＷＳＣ−Ｍ１メッセージ（Ｆ８０６）は、ＥＡＰヘッダのほか、ＷＰＳのバージョン情報（Ｖｅｒｓｉｏｎ）９０１を要素として備える。更に、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）９０２および受信装置の公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）９０３を要素として備える。
【０００８】
また、図１０に示すとおり、ＷＳＣ−Ｍ２メッセージ（Ｆ８０６）は、ＷＰＳのバージョン情報（Ｖｅｒｓｉｏｎ）１００１、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）１００３を要素として備える。更に、提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）１００４、提供装置の公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）１００５、およびメッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）１００６を要素として備える。
【０００９】
なお、ＷＳＣ−Ｍ２メッセージ（Ｆ８０７）が備える受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）１００３は、ＷＳＣ−Ｍ１メッセージ（Ｆ８０６）が備える受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）９０２と同一の値である必要がある。
【００１０】
また、メッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）１００６は、１つ前に受信したメッセージ（ここではＷＳＣ−Ｍ１メッセージ）と今回送信するメッセージ（ここではＷＳＣ−Ｍ２メッセージ）とから算出されるハッシュ値である。当該ハッシュ値は受信装置として機能する通信装置Ａで検算することが可能であり、当該ハッシュ値を用いることで送受信されたメッセージが改ざんされていないか、あるいは一部破壊されていないかといった情報を確認することができる。
【００１１】
また、図１１に示すとおり、ＷＳＣ−Ｍ３メッセージ（Ｆ８０８）は、ＷＰＳのバージョン情報（Ｖｅｒｓｉｏｎ）１１０１、提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）１１０３を要素として備える。更に、メッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）１１０４を要素として備える。
【００１２】
なお、ＷＳＣ−Ｍ３メッセージ（Ｆ８０８）が備える提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）１１０３は、ＷＳＣ−Ｍ２メッセージ（Ｆ８０７）が備える提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）１００４と同一の値である必要がある。また、メッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）１１０４は、１つ前に受信したメッセージ（ここではＷＳＣ−Ｍ２メッセージ）と今回送信するメッセージ（ここではＷＳＣ−Ｍ３メッセージ）とから算出されるハッシュ値である。
【００１３】
なお、図８に示すＷＳＣ−Ｍ８メッセージ（Ｆ８１３）では、通信装置Ａ（提供装置）から通信装置Ｂ（受信装置）への通信パラメータの送信を行うが、この際、通信パラメータは、各通信装置の公開鍵と乱数とから算出された共通鍵を用いて暗号化されている。
【００１４】
このように、ＷＰＳによる通信パラメータの自動設定処理においては、互いに、公開鍵暗号方式の公開鍵と各通信装置固有の乱数とを送信し、通信装置間における共通鍵の算出を行う。これにより、通信装置Ａ（提供装置）から通信装置Ｂ（受信装置）へのと通信パラメータの送信にあたり、より安全な仕組みを提供することができる。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】“Ｗｉ−Ｆｉ  Ｐｒｏｔｅｃｔｅｄ  Ｓｅｔｕｐ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”，  Ｖｅｒｓｉｏｎ  １．０ｈ，  Ｄｅｃｅｍｂｅｒ，  ２００６
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、共通鍵の算出処理は複雑であり演算時間がかかるが、コンパクトデジタルカメラをはじめとする各種組み込み機器のように、低性能のＣＰＵが搭載される通信装置の場合、高い演算能力を期待することはできない。
【００１７】
一方で、通信装置が共通鍵の算出処理を実行している間、対向する通信装置では、自装置が送信したメッセージに対する、通信装置からの応答の有無を判断する。このため、共通鍵の算出処理に時間がかかり所定時間内に応答がない場合には、タイムアウト処理を動作させることとなり、結果的に通信パラメータの自動設定処理が正常に終了しなくなってしまう。
【００１８】
図１２は、このような状況を詳細に説明するための自動設定処理のシーケンス図である。なお、説明にあたり、通信装置Ｂ（提供装置）と通信装置Ａ（受信装置）とは同一のネットワークに接続されているものとする。また、Ｆ１２０２からＦ１２０６までの処理では、上記ＷＰＳによる通信パラメータの自動設定処理の仕様にしたがって、メッセージのやりとりが行われているものとする。
【００１９】
図１２において、ＷＳＣ−Ｍ１メッセージ（Ｆ１２０６）は、先に述べたとおり通信装置Ａ（受信装置）の公開鍵を備える。このため、ＷＳＣ−Ｍ１メッセージ（Ｆ１２０６）を受信した通信装置Ｂ（提供装置）では、内部に保持している秘密鍵と当該受信した公開鍵とに基づいて、共通鍵の算出処理を実行する（Ｆ１２０７）。
【００２０】
このとき、通信装置Ｂ（提供装置）では、低性能ののＣＰＵにより共通鍵の算出処理（Ｆ１２０７）を実行するため、処理の完了までには時間がかかる。このため、ＷＳＣ−Ｍ１メッセージ（Ｆ１２０６）を送信した通信装置Ａ（受信装置）では、対向する通信装置Ｂから後続のメッセージが送信されない状態が続くこととなり、タイムアウトを発生する（Ｆ１２０８）。
【００２１】
タイムアウトが発生すると、通信装置Ａ（受信装置）では、ＷＳＣ−Ｍ１メッセージ（Ｆ１２０９）を再送する。このとき、再送されるＷＳＣ−Ｍ１メッセージ（Ｆ１２０９）と、先に送信されたＷＳＣ−Ｍ１メッセージ（Ｆ１２０６）とでは、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）が異なっている。
【００２２】
一方、通信装置Ｂ（提供装置）では、共通鍵の算出処理（Ｆ１２０７）が終了したことを契機としてＷＳＣ−Ｍ２メッセージ（Ｆ１２１０）を送信する。これに伴って、通信装置Ａ（受信装置）では、ＷＳＣ−Ｍ２メッセージ（Ｆ１２１０）を受信する。このとき、当該ＷＳＣ−Ｍ２メッセージ（Ｆ１２１０）は、再送されたＷＳＣ−Ｍ１メッセージ（Ｆ１２０９）ではなく、先に送信されたＷＳＣ−Ｍ１メッセージ（Ｆ１２０６）に基づいて構築されたメッセージとなっている。
【００２３】
このため、通信装置Ａ（受信装置）では、受信すべきメッセージと異なることを理由に、当該ＷＳＣ−Ｍ２メッセージ（Ｆ１２１０）を無視し、ＷＳＣ−Ｍ１メッセージ（Ｆ１２１１）を再送することとなる。ＷＳＣ−Ｍ１メッセージ（Ｆ１２１１）を受信した通信装置Ｂ（提供装置）では、当該ＷＳＣ−Ｍ１メッセージ（Ｆ１２１１）に基づいて、再び共通鍵の算出処理を実施する（Ｆ１２１２）。
【００２４】
このとき、通信装置Ｂ（提供装置）において実行される共通鍵の算出処理（Ｆ１２１２）は、先の共通鍵の算出処理（Ｆ１２０７）と同様、処理が完了するまでに時間がかかる。このため、通信装置Ａ（受信装置）では、再びタイムアウトを発生し（Ｆ１２１３）、ＷＳＣ−Ｍ１メッセージ（Ｆ１２１３）を再々送することとなる。
【００２５】
このように、共通鍵の算出処理に多くの処理時間を要する通信装置の場合、ＷＰＳによる通信パラメータの自動設定処理が正常に終了しないという問題がある。
【００２６】
本発明は、上記課題に鑑みてなされたものであり、共通鍵の算出に時間がかかってしまっても、通信パラメータの自動設定処理を正常に完了させることができるようにすることを目的とする。
【課題を解決するための手段】
【００２７】
上記の目的を達成するために、本発明に係る通信装置は、例えば、以下のような構成を備える。即ち、
通信装置であって、
他の通信装置から公開鍵と乱数とが含まれるメッセージを受信する受信手段と、
前記受信手段において受信されたメッセージに含まれる前記公開鍵と、前記通信装置が予め保持する秘密鍵とを用いて、共通鍵を算出する算出手段と、
前記算出手段による前記共通鍵の算出の開始から完了までの間に、前記受信手段において前記他の通信装置から前記メッセージを複数回受信し、該複数回のメッセージそれぞれに含まれる前記公開鍵が同一である場合に、前記受信手段において最後に受信されたメッセージに含まれる乱数を含むメッセージを前記他の通信装置に送信する送信手段とを有することを特徴とする。
【発明の効果】
【００２８】
本発明によれば、共通鍵の算出に時間がかかってしまっても、通信パラメータの自動設定処理を正常に完了させることが可能となる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態に係る通信装置によって形成されるネットワークの一例を示す図である。
【図２】本発明の一実施形態に係る通信装置のハードウェア構成を示す図である。
【図３】本発明の一実施形態に係る通信装置の機能構成を示す図である。
【図４】本発明の一実施形態に係る通信装置による通信パラメータの自動設定処理の流れを示すシーケンス図である。
【図５】本発明の一実施形態に係る通信装置における通信パラメータの自動設定処理の流れを示すフローチャートである。
【図６】本発明の一実施形態に係る通信装置における通信パラメータの自動設定処理の流れを示すシーケンス図である。
【図７】本発明の一実施形態に係る通信装置における通信パラメータの自動設定処理の流れを示すフローチャートである。
【図８】非特許文献２に開示されているＷＰＳによる通信パラメータの自動設定処理の流れを示すシーケンス図である。
【図９】非特許文献２に開示されているＷＳＣ−Ｍ１のメッセージフォーマットを示す図である。
【図１０】非特許文献２に開示されているＷＳＣ−Ｍ２のメッセージフォーマットを示す図である。
【図１１】非特許文献２に開示されているＷＳＣ−Ｍ３のメッセージフォーマットを示す図である。
【図１２】低性能ＣＰＵが搭載された通信装置におけるＷＰＳによる通信パラメータの自動設定処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００３０】
以下、本発明の各実施形態の通信装置について、図面を参照しながら詳細に説明する。なお、以下では、ＩＥＥＥ８０２．１１シリーズに準拠した無線ＬＡＮに適用された場合について説明するが、本発明の適用先は、必ずしもＩＥＥＥ８０２．１１準拠した無線ＬＡＮには限定されるものではない。
【００３１】
［第１の実施形態］
＜１．ネットワーク構成＞
はじめに、本発明の一実施形態に係る通信装置が形成するネットワークについて説明する。図１は、本発明の一実施形態に係る通信装置Ｂと、該通信装置Ｂに対向する通信装置Ａとによって形成されるネットワークＡを示す図である。
【００３２】
図１に示すように、ネットワークＡでは、通信装置Ａが受信装置１０１として機能し、通信装置Ｂが提供装置１０２として機能する。なお、ネットワークＡはインフラストラクチャネットワークであってもよいし、アドホックネットワークであってもよい。
【００３３】
＜２．通信装置のハードウェア構成＞
次に、ネットワークＡを形成する通信装置Ａ及び通信装置Ｂのハードウェア構成について説明する。なお、本実施形態において、通信装置Ａと通信装置Ｂとは、ハードウェア構成が同じであるため、ここでは図２を用いて通信装置Ｂのハードウェア構成についてのみ説明する。
【００３４】
図２において、２０１は、記憶部２０２に記憶される制御プログラムを実行することにより通信装置全体を制御する制御部である。制御部２０１は、他の通信装置（通信装置Ａ）との間で通信パラメータの自動設定処理を実行する。
【００３５】
２０２は制御部２０１が実行する制御プログラムと、通信パラメータ等の各種情報を記憶する記憶部である。後述する通信パラメータの自動設定処理は、記憶部２０２に記憶された制御プログラムが読み出され制御部２０１にて実行されることにより実現される。
【００３６】
２０３はＩＥＥＥ８０２．１１シリーズに準拠した無線ＬＡＮにおいて無線通信を行うための無線部である。２０４は各種表示を行う表示部であり、ＬＣＤやＬＥＤのように視覚で認知可能な情報の出力、あるいはスピーカなどの音出力が可能となっている。つまり、表示部２０４は視覚情報および音情報の少なくともどちらか一方を出力する機能を備える。
【００３７】
２０５は通信パラメータの自動設定処理を開始するトリガを与える設定ボタンである。設定ボタン２０５が操作されると、通信パラメータの自動設定処理が開始される。制御部２０１では、ユーザによる設定ボタン２０５の操作を検出すると、後述する自動設定処理を実施する。
【００３８】
２０６はアンテナ制御部、２０７はアンテナである。また、２０８は、ユーザが各種入力を行うための入力部である。
【００３９】
＜３．通信装置の機能構成＞
次に、ネットワークＡを形成する通信装置Ａ及び通信装置Ｂの制御部２０１において実現される、通信パラメータの自動設定機能について図３を用いて説明する。なお、本実施形態では、通信装置Ａの制御部２０１と通信装置Ｂの制御部２０１とは、それぞれが通信パラメータの自動設定機能として、共通の自動設定機能を有しているものとする。
【００４０】
図３において、３０１は自動設定制御部であり、設定ボタン２０５の制御や、入力部２０８および表示部２０４の制御など通信パラメータの自動設定処理についての全体的な制御を行う。
【００４１】
３０２はパケット受信部であり、無線部２０３を通じて受信したパケットの解析処理等を実行する。３０３はパケット送信部であり、通信パラメータの自動設定処理において必要なパケットの組み立て及び対向する通信装置へのパケットの送信などを行う。
【００４２】
３０４は暗号鍵計算部であり、公開鍵暗号方式による共通鍵の算出処理を実行する。３０５はハッシュ計算部であり、メッセージ認証コード（Ａｕｔｈｅｔｉｃａｔｏｒ）の算出処理を実行する。
【００４３】
３０６は通信パラメータ受信部であり、通信装置が受信装置として機能する場合には、対向する通信装置（提供装置として機能する通信装置）から通信パラメータを受信し、受信した通信パラメータの正当性の確認等を行う。
【００４４】
３０７は通信パラメータ提供部であり、通信装置が提供装置として機能する場合には、対向する通信装置（受信装置として機能する通信装置）への通信パラメータの送信を行う。
【００４５】
３０８は通信パラメータ記憶部であり、通信装置が提供装置として機能する場合には、当該通信パラメータ記憶部３０８から通信パラメータが取り出され、対向する通信装置（受信装置）へと送信される。一方、通信装置が受信装置として機能する場合には、通信パラメータ受信部３０６で受信した通信パラメータが格納される。
【００４６】
なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものとする。また、上記機能ブロックは一例であり、複数の機能ブロックを１つの機能ブロックで構成するようにしてもよいし、何れかの機能ブロックを更に複数の機能ブロックに分けて構成するようにしてもよい。
【００４７】
＜４．通信装置Ａ及び通信装置Ｂによる通信パラメータの自動設定処理＞
次に、通信装置Ａ及び通信装置Ｂによる通信パラメータの自動設定処理の流れについて、図４に示すシーケンス図を用いて説明する。図４に示すように、受信装置として機能する通信装置Ａは、提供装置として機能する通信装置Ｂとの間で接続処理（Ｆ４０１）を実行する。これにより、通信装置Ａと通信装置Ｂとは、同一のネットワークＡに接続される。
【００４８】
なお、その後の処理のうち、処理（Ｆ４０２）〜処理（Ｆ４０６）は、ＷＰＳによる通信パラメータの自動設定処理の仕様に従った、一般的なパケットの送受信処理であるため、ここでは詳細な説明を省略する。
【００４９】
ＷＳＣ−Ｍ１メッセージ（Ｆ４０６）には、上述したように、受信装置として機能する通信装置Ａの公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）が含まれている。そして、ＷＳＣ−Ｍ１メッセージ（Ｆ４０６）を受信した通信装置Ｂでは、内部に保持している秘密鍵と、受信したＷＳＣ−Ｍ１メッセージ（Ｆ４０６）に含まれる公開鍵とに基づいて、共通鍵を算出する共通鍵算出処理を実行する。
【００５０】
共通鍵算出処理（Ｆ４０７）は、低性能のＣＰＵが搭載された通信装置Ｂにおいては、処理の完了までに時間がかかる。そのため、ＷＳＣ−Ｍ１メッセージ（Ｆ４０６）を送信した通信装置Ａでは、通信装置Ｂから後続のメッセージが送信されない状態が続くこととなり、タイムアウトを発生する。
【００５１】
そして、タイムアウトが発生すると、通信装置ＡではＷＳＣ−Ｍ１メッセージ（Ｆ４０８）を再送する。このとき、送信されるＷＳＣ−Ｍ１メッセージ（Ｆ４０８）は、先に送信したＷＳＣ−Ｍ１メッセージ（Ｆ４０６）とは、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）が異なっている。
【００５２】
一方、通信装置Ｂでは、共通鍵算出処理（Ｆ４０７）が終了したことを契機として、ＷＳＣ−Ｍ２メッセージを構築する。このとき、通信装置Ｂでは、共通鍵算出処理（Ｆ４０７）の実行中に、新たなＷＳＣ−Ｍ１メッセージ（Ｆ４０８）を受信している。
【００５３】
そこで、通信装置Ｂでは、構築済みのＷＳＣ−Ｍ２メッセージに対して、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）及びメッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）を差し替え、ＷＳＣ−Ｍ２メッセージの再構築を行う。なお、それ以外の要素は既に構築済みのメッセージフォーマットのままにしておく。
【００５４】
通信装置Ｂでは、ＷＳＣ−Ｍ２メッセージを再構築した後に、通信装置Ａへ当該ＷＳＣ−Ｍ２メッセージを送信する（Ｆ４０９）。このとき送信されるＷＳＣ−Ｍ２メッセージ（Ｆ４０９）の受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）及びメッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）には、最新のＷＳＣ−Ｍ１メッセージ（Ｆ４０８）に対応した値が格納されている。このため、通信装置Ａでは、その後の処理を正常に実行することができる。
【００５５】
この結果、処理（Ｆ４１０〜Ｆ４１７）が上記ＷＰＳによる通信パラメータの自動設定処理の仕様に沿って実行され、通信パラメータの自動設定処理が正常に完了することとなる。
【００５６】
＜５．通信装置Ｂにおける通信パラメータの自動設定処理の流れ＞
次に、通信装置Ｂにおける通信パラメータの自動設定処理について説明する。図５は、通信装置Ｂにおける通信パラメータの自動設定処理の流れを示すフローチャートである。なお、ここでは、説明の簡略化のため、ＷＳＣ−Ｍ１メッセージ（Ｆ４０６）の受信からＷＳＣ−Ｍ２メッセージ（Ｆ４０９）の送信までの処理の流れについて説明する。
【００５７】
ステップＳ５０１において、通信装置Ｂは通信装置ＡからＷＳＣ−Ｍ１メッセージ（Ｆ４０６）を受信する。ステップＳ５０２では、ステップＳ５０１において受信したＷＳＣ−Ｍ１メッセージ（Ｆ４０６）を解析する。
【００５８】
ステップＳ５０３では、ステップＳ５０２における解析の結果、ＷＳＣ−Ｍ１メッセージ（Ｆ４０６）に含まれる受信装置の公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）と、通信装置Ｂが内部で保持している秘密鍵とを用いて、共通鍵（ＤＨ−Ｋｅｙ）を計算する。この共通鍵（ＤＨ−Ｋｅｙ）は、ＷＰＳ仕様書に定義されているとおり、通信パラメータを送信する際の暗号処理および、メッセージ認証コードの算出処理に用いる鍵の基となる情報である。
【００５９】
なお、上述したとおり、低性能のＣＰＵが搭載された通信装置Ｂでは、共通鍵（ＤＨ−Ｋｅｙ）の算出処理の完了までには時間がかかる。
【００６０】
ステップＳ５０３における共通鍵（ＤＨ−ｋｅｙ）の算出処理が終了すると、通信装置Ｂでは、ステップＳ５０４においてＷＳＣ−Ｍ２メッセージを構築する。なお、ＷＳＣ−Ｍ２メッセージのフォーマットは図１０を用いて説明したとおりである。
【００６１】
ステップＳ５０４においてＷＳＣ−Ｍ２メッセージを構築した後は、ステップＳ５０５において、新たなＷＳＣ−Ｍ１メッセージ（Ｆ４０８）を受信しているか否かを確認する。
【００６２】
ステップＳ５０５において受信していないことが確認された場合には、ステップＳ５１０に進み、ステップＳ５０４において構築したＷＳＣ−Ｍ２メッセージ（最初に構築したＷＳＣ−Ｍ２メッセージ）を通信装置Ａに送信する。
【００６３】
一方、ステップＳ５０５において、新たなＷＳＣ−Ｍ１メッセージ（Ｆ４０８）を受信したことが確認された場合には、ステップＳ５０６に進む。
【００６４】
ステップＳ５０６では、ステップＳ５０５において受信したことが確認された新たなＷＳＣ−Ｍ１メッセージ（Ｆ４０８）を解析する。ステップＳ５０７では、ステップＳ５０６における解析の結果、先に受信したＷＳＣ−Ｍ１メッセージ（Ｆ４０６）と新たに受信したＷＳＣ−Ｍ１メッセージ（Ｆ４０８）との間に差異があるか否かを判断する。
【００６５】
具体的には、先に受信したＷＳＣ−Ｍ１メッセージ（Ｆ４０６）が備える受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）について、新たに受信したＷＳＣ−Ｍ１メッセージ（Ｆ４０８）との間で差異があるか否かを判定する。
【００６６】
ステップＳ５０７において、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）について差異がないと判定された場合には、ステップＳ５１０に進む。ステップＳ５１０では、ステップＳ５０４において構築したＷＳＣ−Ｍ２メッセージ（最初に構築したＷＳＣ−Ｍ２メッセージ）を通信装置Ａに送信する。
【００６７】
一方、ステップＳ５０７において、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）について差異があったと判定された場合には、ステップＳ５０８に進む。
【００６８】
ステップＳ５０８では、先に受信したＷＳＣ−Ｍ１メッセージ（Ｆ４０６）が備える公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）について、新たに受信したＷＳＣ−Ｍ１メッセージ（Ｆ４０８）との間で差異があるか否かを判定する。
【００６９】
ステップＳ５０８において、公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）について差異があると判定された場合には、ステップＳ５０３に戻り、共通鍵（ＤＨ−Ｋｅｙ）の再計算を行う。
【００７０】
一方、ステップＳ５０８において、公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）について差異がない（同一である）と判定された場合には、ステップＳ５０９に進む。ステップＳ５０９では、ステップＳ５０３において計算した共通鍵（ＤＨ−Ｋｅｙ）を、そのまま使用してＷＳＣ−Ｍ２メッセージを再構築する。つまり、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）とメッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）のみを再計算してＷＳＣ−Ｍ２メッセージを再構築する。
【００７１】
具体的には、受信装置の乱数（Ｅｎｒｏｌｌｅｅ  Ｎｏｎｃｅ）を、ステップＳ５０４で設定した値から、ステップＳ５０６において取得された乱数（つまり、複数回受信したメッセージのうち、最後のメッセージに含まれる乱数）に置き換える。なお、メッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）はハッシュ計算のみであるため、通信装置ＢのＣＰＵの演算能力が低い場合であっても、通信装置Ａの動作には影響しない。
【００７２】
ステップＳ５０９においてＷＳＣ−Ｍ２メッセージが再構築されると、ステップＳ５１０では、再構築したＷＳＣ−Ｍ２メッセージ（Ｆ４０９）を通信装置Ａに対して送信する。その後は、図４を用いて説明したシーケンス図に従って自動設定処理が正常に実行される。
【００７３】
以上の説明から明らかなように、本実施形態にかかる通信装置（提供装置）では、共通鍵算出処理の実施中に同一のメッセージが再送された場合に、必要な部分のみを差し替えたうえで、メッセージを再構築し送信する構成とした。
【００７４】
この結果、提供装置として機能する通信装置ＢのＣＰＵの演算能力が低く、公開鍵暗号方式による共通鍵の算出処理に時間がかかる場合であっても、通信パラメータの自動設定処理を正常に完了させることが可能となった。
【００７５】
［第２の実施形態］
上記第１の実施形態においては、提供装置である通信装置Ｂにおいて共通鍵の算出処理を実行する場合について説明した。しかしながら、本発明はこれに限定されない。例えば、上記第１の実施形態とは逆に、受信装置である通信装置ＡのＣＰＵの演算能力が低い場合であって、受信装置である通信装置Ａにおいて共通鍵の算出処理が行われる場合についても同様である。
【００７６】
そこで、本実施形態では、ＣＰＵの演算能力の低い通信装置Ａにおいて共通鍵の算出処理を実行する場合について説明する。なお、ネットワークＡの構成、通信装置のハードウェア構成、及び通信装置の機能構成については、図１〜図３を用いて既に説明済みであるため、ここでは説明を省略する。
【００７７】
＜１．通信装置Ａ及び通信装置Ｂによる通信パラメータの自動設定処理＞
はじめに、本実施形態に係る通信装置Ａ（受信装置として機能する通信装置）と該通信装置Ａに対向する通信装置Ｂ（提供装置として機能する通信装置）とによる通信パラメータの自動設定処理の流れについて図６に示すシーケンス図を用いて説明する。
【００７８】
図６に示すように、受信装置として機能する通信装置Ａは、提供装置として機能する通信装置Ｂとの間で接続処理（Ｆ６０１）を実行する。これにより、通信装置Ａと通信装置Ｂとは、同一のネットワークＡに接続される。
【００７９】
なお、接続された後の処理のうち、処理（Ｆ６０２）〜処理（Ｆ６０７）は、ＷＰＳによる通信パラメータの自動設定処理の仕様に従った、一般的なパケットの送受信処理であるため、ここでは詳細な説明を省略する。
【００８０】
ＷＳＣ−Ｍ２メッセージ（Ｆ６０７）には、上述したように、提供装置として機能する通信装置Ｂの公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）が含まれている。そして、ＷＳＣ−Ｍ２メッセージ（Ｆ６０７）を受信した通信装置Ａでは、内部に保持している秘密鍵と、受信したＷＳＣ−Ｍ２メッセージ（Ｆ６０７）に含まれる公開鍵とに基づいて、共通鍵の算出処理を実行する（Ｆ６０８）。
【００８１】
共通鍵算出処理（Ｆ６０８）は、低性能のＣＰＵが搭載された通信装置Ａでは、上記第１の実施形態の通信装置Ｂ（提供装置）と同様、処理の完了までに時間がかかる。そのため、ＷＳＣ−Ｍ２メッセージ（Ｆ６０７）を送信した通信装置Ｂでは、通信装置Ａから後続のメッセージが送信されない状態が続くこととなり、タイムアウトを発生する。
【００８２】
そして、タイムアウトが発生すると、通信装置ＢではＷＳＣ−Ｍ２メッセージ（Ｆ６０９）を再送する。このとき、送信されるＷＳＣ−Ｍ２メッセージ（Ｆ６０９）は、先に送信したＷＳＣ−Ｍ２メッセージ（Ｆ６０７）とは、提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）が異なっている。
【００８３】
一方、通信装置Ａでは、共通鍵算出処理（Ｆ６０８）が終了したことを契機として、ＷＳＣ−Ｍ３メッセージを構築する。このとき、通信装置Ａでは、共通鍵算出処理（Ｆ６０８）の実行中に、新たなＷＳＣ−Ｍ２メッセージ（Ｆ６０９）を受信している。
【００８４】
そこで、通信装置Ａでは、構築済みのＷＳＣ−Ｍ３メッセージに対して、提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）及びメッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）を差し替え、ＷＳＣ−Ｍ３メッセージの再構築を行う。なお、それ以外の要素は既に構築済みのメッセージフォーマットのままにしておく。
【００８５】
通信装置Ａでは、ＷＳＣ−Ｍ３メッセージを再構築した後に、通信装置Ｂへ当該ＷＳＣ−Ｍ３メッセージを送信する（Ｆ６１０）。このとき送信されるＷＳＣ−Ｍ３（Ｆ６１０）及びメッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）には、最新のＷＳＣ−Ｍ２メッセージ（Ｆ６０９）に対応した値が格納されている。このため、通信装置Ｂでは、その後の処理を正常に実行することができる。
【００８６】
この結果、処理（Ｆ６１１〜Ｆ６１７）が上記ＷＰＳによる通信パラメータの自動設定処理の仕様に沿って実行され、通信パラメータの自動設定処理が正常に完了することとなる。
【００８７】
＜２．通信装置Ａにおける通信パラメータの自動設定処理の流れ＞
次に、通信装置Ａにおける通信パラメータの自動設定処理について説明する。図７は、通信装置Ａにおける通信パラメータの自動設定処理の流れを示すフローチャートである。なお、ここでは、説明の簡略化のため、ＷＳＣ−Ｍ１メッセージ（Ｆ６０６）の送信からＷＳＣ−Ｍ３メッセージ（Ｆ６１０）の送信までの処理の流れについて説明する。
【００８８】
ステップＳ７０１において、通信装置Ａは通信装置ＢへＷＳＣ−Ｍ１メッセージ（Ｆ６０６）を送信する。ステップＳ７０１におけるＷＳＣ−Ｍ１メッセージ（Ｆ６０６）の送信に応答して、通信装置Ｂでは、ＷＳＣ−Ｍ２メッセージ（Ｆ６０７）を送信し、通信装置Ａでは、当該ＷＳＣ−Ｍ２メッセージ（Ｆ６０７）を受信する。ステップＳ７０３では、ステップＳ７０２において受信したＷＳＣ−Ｍ２メッセージ（Ｆ６０７）を解析する。
【００８９】
ステップＳ７０４では、ステップＳ７０３における解析の結果、ＷＳＣ−Ｍ２メッセージ（Ｆ６０７）に含まれる公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）と、通信装置Ａが内部で保持している秘密鍵とに基づいて、共通鍵（ＤＨ−Ｋｅｙ）を算出する。この共通鍵（ＤＨ−Ｋｅｙ）は、ＷＰＳ仕様書に定義されているとおり、通信パラメータを送信する際の暗号処理および、メッセージ認証コードの算出処理に用いる鍵の基となる情報である。
【００９０】
なお、上述したとおり、低性能のＣＰＵが搭載された通信装置Ａでは、共通鍵（ＤＨ−Ｋｅｙ）の算出処理の完了までには時間がかかる。
【００９１】
ステップＳ７０４における共通鍵（ＤＨ−ｋｅｙ）の算出処理が終了すると、通信装置Ａでは、ステップＳ７０５においてＷＳＣ−Ｍ３メッセージを構築する。なお、ＷＳＣ−Ｍ３メッセージのフォーマットは図１１を用いて説明したとおりである。
【００９２】
ステップＳ７０５においてＷＳＣ−Ｍ３メッセージを構築した後は、ステップＳ７０６において、新たなＷＳＣ−Ｍ２メッセージ（Ｆ６０９）を受信しているか否かを確認する。
【００９３】
ステップＳ７０６において受信していないことが確認された場合には、ステップＳ７１１に進み、ステップＳ７０５において構築したＷＳＣ−Ｍ３メッセージ（最初に構築したＷＳＣ−Ｍ３メッセージ）を通信装置Ｂに送信する。
【００９４】
一方、ステップＳ７０６において、新たなＷＳＣ−Ｍ２メッセージ（Ｆ６０９）を受信していたことが確認された場合には、ステップＳ７０７に進む。
【００９５】
ステップＳ７０７では、ステップＳ７０６において受信していたことが確認された新たなＷＳＣ−Ｍ２メッセージ（Ｆ６０９）を解析する。ステップＳ７０８では、ステップＳ７０７における解析の結果、先に受信したＷＳＣ−Ｍ２メッセージ（Ｆ６０７）と新たに受信したＷＳＣ−Ｍ２メッセージ（Ｆ６０９）との間に差異があるか否かを判断する。
【００９６】
具体的には、先に受信したＷＳＣ−Ｍ２（Ｆ６０７）メッセージが備える提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）について、新たに受信したＷＳＣ−Ｍ２メッセージ（Ｆ６０９）との間で差異があるか否かを判定する。
【００９７】
ステップＳ７０８において、提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）について差異がないと判定された場合には、ステップＳ７１１に進む。ステップＳ７１１では、ステップＳ７０５において構築したＷＳＣ−Ｍ３メッセージ（最初に構築したＷＳＣ−Ｍ３メッセージ）を通信装置Ｂに送信する。
【００９８】
一方、ステップＳ７０８において、提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）について差異があると判定された場合には、ステップＳ７０９に進む。
【００９９】
ステップＳ７０９では、先に受信したＷＳＣ−Ｍ２メッセージ（Ｆ６０７）が備える公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）について、新たに受信したＷＳＣ−Ｍ２メッセージ（Ｆ６０９）との間で差異があるか否かを判定する。
【０１００】
ステップＳ７０９において、公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）について差異があると判定された場合には、ステップＳ７０４に戻り、共通鍵（ＤＨ−Ｋｅｙ）の再計算を行う。
【０１０１】
一方、ステップＳ７０９において、公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙが）について差異がない（同一である）と判定された場合には、ステップＳ７１０に進む。ステップＳ７１０では、ステップＳ７０４において算出した共通鍵（ＤＨ−Ｋｅｙ）を、そのまま使用してＷＳＣ−Ｍ３メッセージを再構築する。つまり、提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）とメッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）のみを再計算してＷＳＣ−Ｍ３メッセージを再構築する。
【０１０２】
具体的には、提供装置の乱数（Ｒｅｇｉｓｔｒａｒ  Ｎｏｎｃｅ）について、ステップＳ７０５で設定した値から、ステップＳ７０７において取得された乱数（つまり、複数回受信したメッセージのうちの最後のメッセージに含まれる乱数）に置き換える。なお、メッセージ認証コード（Ａｕｔｈｅｎｔｉｃａｔｏｒ）はハッシュ計算のみであるため、通信装置ＡのＣＰＵの演算能力が低い場合であっても、通信装置Ｂの動作には影響しない。
【０１０３】
ステップＳ７１０においてＷＳＣ−Ｍ３メッセージが再構築されると、ステップＳ７１１では、再構築したＷＳＣ−Ｍ３メッセージ（Ｆ６１０）を通信装置Ｂに対して送信する。その後は、図６を用いて説明したシーケンス図に従って自動設定処理が正常に実行される。
【０１０４】
以上の説明から明らかなように、本実施形態に係る通信装置（受信装置）では、共通鍵算出処理の実施中に同一のメッセージが再送された場合に、必要な部分のみを差し替えたうえで、メッセージを再構築し送信する構成とした。
【０１０５】
この結果、受信装置として機能する通信装置ＡのＣＰＵの演算能力が低く、公開鍵暗号方式による共通鍵の算出処理に時間がかかる場合であっても、通信パラメータの自動設定処理を正常に完了させることが可能となった。
【０１０６】
［第３の実施形態］
上記第１及び第２の実施形態では、ＩＥＥＥ８０２．１１準拠の無線ＬＡＮシステムに適用した場合について説明した。しかしながら、本発明はこれに限定されず、ワイヤレスＵＳＢ、ＭＢＯＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＷＢ、ＺｉｇＢｅｅ等の他の無線システムに適用してもよい。また、有線ＬＡＮ等の有線通信システムに適用してもよい。
【０１０７】
なお、ここでいうＭＢＯＡとは、Ｍｕｌｔｉ  Ｂａｎｄ  ＯＦＤＭ  Ａｌｌｉａｎｃｅの略である。また、ＵＷＢには、ワイヤレスＵＳＢ、ワイヤレス１３９４、ＷＩＮＥＴなどが含まれるものとする。
【０１０８】
また、上記第１及び第２の実施形態では、通信パラメータとしてネットワーク識別子、暗号方式、暗号鍵、認証方式、認証鍵等を例に挙げたが、本発明はこれに限定されず、他の設定項目であってもよい。あるいは、当該他の設定項目が上記通信パラメータに加えて含まれていてもよい。
【０１０９】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005602602.tif 000002
【図２】
0005602602.tif 000003
【図３】
0005602602.tif 000004
【図４】
0005602602.tif 000005
【図５】
0005602602.tif 000006
【図６】
0005602602.tif 000007
【図７】
0005602602.tif 000008
【図８】
0005602602.tif 000009
【図９】
0005602602.tif 000010
【図１０】
0005602602.tif 000011
【図１１】
0005602602.tif 000012
【図１２】
0005602602.tif 000013