(57)【特許請求の範囲】
【請求項１】
無線ネットワークにおいて複数の他の通信装置と通信する通信装置であって、
前記無線ネットワークにおける通信に使用される暗号鍵を記憶する記憶手段と、
前記他の通信装置と暗号鍵を共有する処理を開始するための開始パケットを前記他の通信装置から受信する受信手段と、
前記記憶手段に記憶されている暗号鍵の数が所定数よりも大きいか否かを判定する第１の判定手段と、
前記第１の判定手段により前記暗号鍵の数が前記所定数よりも大きいと判定された場合、ユーザに所定の通知を行う通知手段と、
を有し、
前記通知手段による通知が行われてから所定時間が経過しても、前記無線ネットワークを構成する他の通信装置の台数が減少していない場合、前記記憶手段は、前記記憶手段により既に記憶されている暗号鍵を削除し、当該削除された暗号鍵に代えて、前記開始パケットに基づいて新たに共有される暗号鍵を記憶することを特徴とする通信装置。
【請求項２】
前記所定数は、前記通信装置が保有可能な暗号鍵の上限値であることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記通知手段は、表示部に警告を表示させることで、前記所定の通知を行うことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記暗号鍵は、前記他の通信装置との通信に使用されるユニキャスト鍵と、前記無線ネットワークに属する前記複数の他の通信装置との通信に使用される共有するグループ鍵とを含むことを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記グループ鍵の保持数が前記ユニキャスト鍵の保持数よりも多いか否かを判定する第２の判定手段を更に有し、
前記第２の判定手段により前記グループ鍵の保持数が前記ユニキャスト鍵の保持数よりも少ないと判定された場合に、前記第１の判定手段による判定が行われることを特徴とする請求項４に記載の通信装置。
【請求項６】
前記通知手段による通知が行われてから所定時間が経過しても前記無線ネットワークを構成する前記複数の他の通信装置の数が減少していない場合、前記ユニキャスト鍵を削除する第１の削除手段を更に有することを特徴とする請求項４または５に記載の通信装置。
【請求項７】
前記第１の削除手段による削除後に、前記開始パケットに応じて新たに共有された前記グループ鍵を保持する保持手段を更に有することを特徴とする請求項６に記載の通信装置。
【請求項８】
前記他の通信装置との通信に使用されるユニキャスト鍵を有しているか否かを判定する第３の判定手段と、
前記第３の判定手段により前記他の通信装置との通信に使用されるユニキャスト鍵を有していないと判定された場合には、前記グループ鍵を削除する第２の削除手段を更に有することを特徴とする請求項４乃至７のいずれか１項に記載の通信装置。
【請求項９】
前記第２の削除手段により前記グループ鍵が削除された場合、前記他の通信装置との通信に使用されるユニキャスト鍵をテンポラリユニキャスト鍵として取得する第１の取得手段を更に有することを特徴とする請求項８に記載の通信装置。
【請求項１０】
前記第２の削除手段は、前記テンポラリユニキャスト鍵を利用する通信が所定時間行われない場合、当該テンポラリユニキャスト鍵を削除することを特徴とする請求項９に記載の通信装置。
【請求項１１】
前記グループ鍵を更新するために使用される更新鍵を取得する第２の取得手段と、
前記更新鍵を使用して、前記グループ鍵を更新する更新手段と、
を更に有することを特徴とする請求項４乃至１０のいずれか１項に記載の通信装置。
【請求項１２】
前記更新手段による更新が完了すると、前記更新鍵を削除する第３の削除手段を更に有することを特徴とする請求項１１に記載の通信装置。
【請求項１３】
前記第２の取得手段は、前記他の通信装置と４ウェイハンドシェイクを行うことにより前記更新鍵を取得することを特徴とする請求項１１または１２に記載の通信装置。
【請求項１４】
無線ネットワークにおいて複数の他の通信装置と通信する通信装置の制御方法であって、
前記無線ネットワークにおける通信に使用される暗号鍵を記憶手段に記憶する記憶工程と、
前記他の通信装置と暗号鍵を共有する処理を開始するための開始パケットを前記他の通信装置から受信する受信工程と、
前記記憶手段に記憶されている暗号鍵の数が所定数よりも大きいか否かを判定する判定工程と、
前記暗号鍵の数が前記所定数よりも大きいと判定された場合、ユーザに所定の通知を行う通知工程と、
前記通知工程による通知が行われてから所定時間が経過しても、前記無線ネットワークを構成する他の通信装置の台数が減少していない場合、前記記憶手段に既に記憶されている暗号鍵を削除し、当該削除された暗号鍵に代えて、前記開始パケットに基づいて新たに共有される暗号鍵を記憶する工程と、
を有することを特徴とする制御方法。
【請求項１５】
コンピュータを請求項１乃至１３のいずれか１項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信装置の制御方法、およびプログラムに関し、特にアドホックネットワークにおいてWPAによって暗号通信を行う通信装置、通信装置の制御方法、およびプログラムに関する。
【背景技術】
【０００２】
盗聴や改竄の防止のために、通信データの暗号化が行われている。特に、無線通信は盗聴が容易なため、安全な通信路の確保が重要である。
【０００３】
無線LANインフラストラクチャモードにおいて、通信装置(STA)およびアクセスポイント(AP)はwired equivalent privacy (WEP)もしくはWi-Fi protected access (WPA)等の標準規格を実装する。WEPは、STAおよびAPに対して事前に暗号鍵を設定し、その暗号鍵を通信に使用することにより安全性を保証する。しかし、この方式では、暗号鍵が常に固定であり、WEPが採用する暗号アルゴリズムの強度も高くないため、安全性が保証できない場面があることが指摘されている。そこで、WPAでは、暗号アルゴリズムの強度を向上させるとともに、STAおよびAPに対して事前に設定された情報からネットワークに参加する度に毎回暗号鍵を生成することによって安全性をより高めている。
【０００４】
インフラストラクチャモードでは、STAは、APを介して、他のSTAにデータを送信する。言い替えれば、STAは、APとのみ直接に通信するため、APとの通信の安全性のみを保証すればよい。
【０００５】
一方、アドホックモードでは、APが存在せず、STAは通信相手と直接通信する。従って、複数のSTAと通信する場合、それら複数のSTAとの通信の安全性を考慮する必要がある。ネットワーク構成は異なるもののインフラストラクチャモードと同様に安全性を確保するには、通信セッションごとに暗号鍵を変更することが望ましい。しかし、市販の無線LANデバイスを用いてアドホックモードで通信する場合、事前にネットワークに参加するすべてのSTAに同じ暗号鍵を設定し、その暗号鍵を利用する。そのためインフラストラクチャモードにおいて懸念されるセキュリティ上の問題は残ったままである。
【０００６】
これらの問題に対してWPAよりも後に標準化されたIEEE 802.11iは、アドホックモードにおいても、通信セッションごとに暗号鍵を動的に生成することを提案している。IEEE 802.11iでは、２つの通信STAは互いに４ｗａｙハンドシェイクと呼ばれるメッセージ交換を行い、ユニキャスト鍵PTK (pairwise transient key)とグループ鍵GTK (group temporal key)とを生成して共有する。
【０００７】
この方式の特徴は、通信相手ごとに暗号鍵を切り替えて通信すること、および、送信と受信とで別の鍵を設定することである。送信用のグループ鍵はネットワーク上の全STAが受信できるように一つ決定され、STAごとに受信用のグループ鍵が保持される。
【０００８】
一方、無線LANデバイスではユニキャスト鍵およびグループ鍵を保持できる数に制限がある場合が多い。これは、高速なパケット処理が求められる無線LANデバイスでは無線LANチップ内でのパケットの符号化/複合化が行われることが多く、無線LANチップ内にユニキャスト鍵およびグループ鍵を保持する必要があるからである。
【０００９】
このとき、各無線LANデバイスのユニキャスト鍵およびグループ鍵を保持できる数の上限（鍵保持上限数）は装置によって異なる。
【００１０】
鍵保持上限数が異なる装置同士がWPAを用いたアドホック通信を行う場合、鍵を保持できる上限数に既に達している装置と、鍵を保持できる上限数に未だ達していない装置とが同一ネットワーク内に発生することが考えられる。すなわち、同一アドホックネットワーク内に通信が疎通する装置と疎通しない装置とが存在する場合が発生することになり、鍵保持上限数が装置ごとに一致しない場合でも装置同士の疎通を確保するようなアルゴリズムが必要とされる。
【００１１】
特許文献1では、鍵保持上限数が1の装置と、鍵保持上限数が2以上の装置との間でWPAを用いたアドホック通信を行うアルゴリズムが開示されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開2007-336010号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、鍵保持上限数が2以上の通信装置同士がWPAを用いたアドホックネットワークを構築した場合、アドホックネットワークの構成装置数が装置の鍵保持上限を超えることに起因して、通信サービスを提供できなくなるという課題がある。
【００１４】
上記の課題に鑑み、本発明は、アドホックネットワークの構成装置数が装置の鍵保持上限を超えた時に対処可能にすることを目的とする。
【課題を解決するための手段】
【００１５】
上記の目的を達成する本発明に係る通信装置は、
無線ネットワークにおいて複数の他の通信装置と通信する通信装置であって、
前記無線ネットワークにおける通信に使用される暗号鍵を記憶する記憶手段と、
前記他の通信装置と暗号鍵を共有する処理を開始するための開始パケットを前記他の通信装置から受信する受信手段と、
前記記憶手段に記憶されている暗号鍵の数が所定数よりも大きいか否かを判定する第１の判定手段と、
前記第１の判定手段により前記暗号鍵の数が前記所定数よりも大きいと判定された場合、ユーザに所定の通知を行う通知手段と、
を有し、
前記通知手段による通知が行われてから所定時間が経過しても、前記無線ネットワークを構成する他の通信装置の台数が減少していない場合、前記記憶手段は、前記記憶手段により既に記憶されている暗号鍵を削除し、当該削除された暗号鍵に代えて、前記開始パケットに基づいて新たに共有される暗号鍵を記憶することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、アドホックネットワークの構成装置数が装置の鍵保持上限を超えても対処可能になる。
【図面の簡単な説明】
【００１７】
【図１】プリンタの構成を示す図。
【図２】WPAアドホックネットワークにおける鍵あふれ状態の説明図。
【図３】鍵保持上限判定処理の手順を示すフローチャート。
【図４】ユーザへの警告画面の例を示す図。
【図５】グループ鍵待機モードを示す図。
【図６】グループ鍵待機モードを実行するアドホックネットワークを示す図。
【図７】グループ鍵待機モード印刷サービスを示すシーケンス図。
【図８】グループ鍵待機モードにおける処理の手順を示すフローチャート。
【図９】グループ鍵の登録の手順を示すフローチャート。
【図１０】ユニキャスト鍵の登録の手順を示すフローチャート。
【図１１】動作モードを切替中であることを示す画面の例を示す図。
【図１２】グループ鍵更新のシーケンス図。
【発明を実施するための形態】
【００１８】
（第1実施形態）
本発明の無線通信装置を有効に機能させる一実施形態として、プリンタを含むアドホックネットワークへの適用例を以下に示す。
【００１９】
図1を参照して、本実施形態のシステムをプリンタ13に適用した機能構成例を説明する。プリンタ13は、プリンタエンジン102と、プリント処理部103と、無線通信機能部104と、RF部105と、表示部106と、表示処理部107と、メモリカードI/F 108と、メモリカード109と、操作部110と、システムコントローラ111と、USB I/F 112と、フラッシュメモリ113と、パラレルI/F 114と、CPU 115と、ROM 116と、RAM 117とを備える。
【００２０】
プリンタエンジン102は、プリント処理部103から出力される画像信号に基づき記録紙に画像をプリントする。プリント処理部103は、画像信号をプリンタエンジン102へ出力する。無線通信機能部104は、他の無線通信機器と無線通信を行い、無線規格に基づくパケットのフレーミング、データに対する応答、データの暗号/復号処理などを実行する。RF部105は、他の無線通信機器との間で無線信号の送受信を行う。なお、無線通信機能部104およびRF部105は、一つの機能ブロックとして実現される場合もある。表示部106は、LCD表示、LED表示、音声表示などによってユーザへ情報を表示する。表示処理部107は、表示部106の表示内容を制御する。メモリカードI/F 108には、メモリカード109が接続されるインタフェースである。メモリカード109は、各種情報を記憶する。操作部110は、各種キーを備えており、システムコントローラ111を介してCPU 115に接続されている。
【００２１】
なお、表示部106に表示された情報を選択する等のユーザ操作は、操作部110と連動して行われる。つまり、表示部106と操作部110とはユーザ・インタフェースを構成する。USB I/F 112は、外部機器との接続用のシリアルバス・インタフェースを提供する。フラッシュメモリ113は、不揮発性のメモリであり、無線通信の設定情報などを記憶する。パラレルI/F 114は、外部機器との接続用のパラレル・インタフェースを提供する。CPU 115は、RAM 117またはフラッシュメモリ113をワークメモリとして、ROM 116やフラッシュメモリ113に格納されたプログラムを実行し、各構成要素を制御する。また、通常、ROM 116は無線通信機能部104およびRF部105をアプリケーションの指示により起動するプログラムを格納する。
【００２２】
無線通信機能部104は、通信相手であるSTAごとに暗号鍵を保持する機能を有する。暗号鍵の保持最大数は装置によって実装依存となるが、本実施形態においてはプリンタ13の鍵最大保持数は3とする。最大保持数は接続可能な装置数を表し、この場合ユニキャスト鍵3つと、グループ鍵3つとの合計6つの鍵を保持することが可能な仕様となる。
【００２３】
次に、図2を参照して、本実施形態のプリンタを含むWPAアドホックネットワーク例を説明する。図2に示される無線ネットワークは、PC10（PC1）と、カメラ11（カメラ2）と、カメラ12（カメラ1）と、プリンタ13と、PC14（PC2）とを備える。すなわち、プリンタ13以外に複数の通信装置が存在する。ここで、T20乃至T24のそれぞれは、各装置に対応するWPA鍵テーブルを表している。
【００２４】
図2に示される例では、鍵保持上限数3のプリンタ13の鍵テーブルT23は、3台の対向装置との通信のための鍵を保持している。一方、PC10、カメラ11、カメラ12、およびPC14の鍵テーブルT20、T21、T22、およびT24は、それぞれ自装置を除いた4台の対向装置との通信のための鍵を保持している。
【００２５】
つまり、プリンタ13が通信できる対向装置数と、プリンタ13以外の装置が通信できる対向装置数とが異なり、同一アドホックネットワークに存在しながら通信できる装置数に違いが生じるという現象が発生する。これによって鍵保持上限数（保有可能上限数）の少ない装置では、鍵を保持することができない対向装置が発生する。このような状態になった場合、同一アドホックネットワークに存在する装置同士で通信が可能な装置と、通信が不可能な装置とが発生してしまう。
【００２６】
このような状況では、例えば無線ネットワーク内の情報を収集するARP（Address Resolution Protocol）等のプロトコルを実行する際に問題が発生する。この問題について図2を例として説明する。
【００２７】
PC14が、プリンタ13が使用するIPv4アドレスを自装置に付けようとする場合を考える。プリンタ13の動作として、PC14(PC2)からのARPリクエストにより指定されたIPv4アドレスが既に自装置が使用するIPv4アドレスであるため、ARPレスポンスにより重複を通知することが期待される。しかしながら、プリンタ13は、鍵テーブル T23にPC14(PC2)のグループ鍵を所有していないため、ARPリクエストパケットを復号化できずにパケットを破棄してしまうことになる。そのため、ARPレスポンスによりPC14(PC2)に対してIPv4アドレスの重複を通知することができない。従って、図2のアドホックネットワーク内には同一のIPv4アドレスを有する機器が、プリンタ13とPC14(PC2)との2台存在することになる。よって、カメラ12等の無線ネットワーク内の他の装置が、プリンタ13またはPC14(PC2)のどちらかの所望の装置に正しくパケットを送信できなくなるという現象が発生する。このような問題に対処するため、鍵交換時にプリンタ13は自装置の鍵保持数が上限に達しているかどうかを判別し、上限に達している場合、警告画面を出してユーザにネットワーク構成の再構築を促す。
【００２８】
図3のフローチャートを参照して、鍵保持上限に達したプリンタ13が警告画面を表示し、ユーザにネットワーク構成の再構築を促す手順を説明する。
【００２９】
まずS301において、プリンタ13の無線通信機能部104は、鍵交換を開始する交換開始パケットを受信する。S302において、CPU 115は、新規装置と鍵交換を行う際に鍵保持上限数判定処理を行う。S303において、CPU 115は、その時点での鍵テーブルT23の鍵保持数が鍵保持上限数に達しているかどうか、すなわち今回の鍵交換によって鍵保持数が鍵保持上限数を超えるかどうかを判定する。鍵保持数が鍵交換により鍵保持上限数を超えると判定された場合（S303;YES）、S304へ進む。鍵保持数が鍵交換を行っても鍵保持上限数以下であると判定された場合（S303;NO）、処理を終了する。S304において、CPU 115は、図4に示されるような警告画面を表示部106に表示することによってユーザにネットワーク構成の再構築を促す。以上で図3のフローチャートの各処理が終了する。
【００３０】
本実施形態によれば、ユーザは、鍵保持上限を超えた装置数のネットワークになったことを認識することができる。その結果として、ネットワーク環境の改善を行い、当該装置による通信サービスの提供を維持することができる。
【００３１】
（第2実施形態）
第1実施形態に示した本発明の実施形態において、ユーザへネットワーク構成の再構築を促しても、その後ユーザによるネットワーク環境の再構成が行われないケースが考えられる。このような場合、本実施形態では、プリンタ13がグループ鍵待機モードという動作モードで動作することにより、ネットワークを構成する装置間で第1実施形態に示したような通信が不通となる状態を改善する方法を提案する。プリンタ13の機能構成については図1で説明した機能構成と同様であるため、説明を省略する。
【００３２】
ここで、図5を参照して、上述のグループ鍵待機モードについて説明する。図5は、プリンタ13のWPA鍵テーブルを表している。プリンタ13は鍵保持上限数が3の装置である。通常は鍵通常管理モードの鍵テーブル501が表すように、グループ鍵の保持数が3、ユニキャスト鍵の保持数が3となっている。鍵通常管理モードからグループ鍵待機モードに遷移すると、鍵テーブルの内訳が鍵テーブル502のようになる。図5の例では、グループ鍵の保持数が4、ユニキャスト鍵の保持数が2へと変化する。このように、ユニキャスト鍵の保持数よりもグループ鍵の保持数が多い状態をグループ鍵待機モードと規定する。
【００３３】
次に、図6を参照して、プリンタ13がグループ鍵待機モードに遷移した場合の動作について説明する。図6に示されるネットワークは、PC10(PC1)と、カメラ11(カメラ2)と、カメラ12(カメラ1)と、プリンタ13と、PC14(PC2)とを備える。ここで、T20乃至T24のそれぞれは、各装置のWPA鍵テーブルを表している。プリンタ13は、鍵保持上限数が3でありながら4台の装置との通信を確保するために、ユニキャスト鍵を放棄し4台分の装置のグループ鍵を確保しており、グループ鍵待機モードで動作している。これによってプリンタ13は、ネットワーク内のいかなる装置からのブロードキャスト通信およびマルチキャスト通信も受信可能な状態となっている。グループ鍵待機モードでの動作時、プリンタ13は、ネットワーク内の装置からブロードキャスト通信およびマルチキャスト通信のパケットを受信した後、通信を発行した装置とのユニキャスト鍵を生成する。プリンタ13は、ユニキャスト鍵を所定時間保持することで、ブロードキャスト通信およびマルチキャスト通信を発行した装置とのユニキャスト通信をサポートする。
【００３４】
次に、図7を参照して、プリンタ13がグループ鍵待機モードで動作している時にPC14に対してプリントサービスを提供する、グループ鍵待機モードでの印刷サービスシーケンスを説明する。なお、プリンタ13がグループ鍵待機モードに遷移する方法は、図8のグループ鍵待機モード遷移チャート、および、図9のグループ鍵登録チャートを参照しながら後述する。
【００３５】
S700において、PC14のCPUは、ネットワーク内のいずれかのプリンタに対してプリンタdiscoveryパケットをブロードキャスト送信する。
【００３６】
S701において、PC14のグループ鍵を持つCPU 115は、受信パケットがブロードキャストパケットであることを検出し、ブロードキャストパケット送信元装置のユニキャスト鍵を取得するためにPC14と４ｗａｙハンドシェイク（４ウェイハンドシェイク）を行う。
【００３７】
S702において、CPU 115は、４ｗａｙハンドシェイクを行った後にPC14との通信に暫定的に使用する鍵であるテンポラリユニキャスト鍵を取得する。このテンポラリユニキャスト鍵は、図6で説明した鍵テーブルT23に保持される。テンポラリユニキャスト鍵を取得する方法については、図10のユニキャスト鍵登録チャートを参照して後述する。
【００３８】
S703において、CPU 115は、S702で取得されたテンポラリユニキャスト鍵を使用してプリンタdiscoveryパケットS700に対する返答パケットであるdiscoveryAckパケットをPC14に対して送信する。
【００３９】
この後、S704乃至S707においてテンポラリユニキャスト鍵を使用して印刷のための印刷パケット通信が行われる。具体的には、PC14のCPUは、印刷を実行するための印刷指示パケットをプリンタ13へ送信し、CPU 115は、受信した印刷指示パケットに対する返答パケットである印刷AckパケットをPC14へ送信する。
【００４０】
その後、S708において、印刷終了となる。
【００４１】
S709において、CPU 115は、PC14からのユニキャスト通信を所定時間受信しない場合、ユニキャスト鍵削除トリガが駆動され、テンポラリユニキャスト鍵を不要な鍵として決定する。
【００４２】
S710において、その後CPU 115は、テンポラリユニキャスト鍵を鍵テーブルT23から削除する。以上で処理を終了する。
【００４３】
以上説明したように、プリンタ13の鍵保持上限を超える装置数から構成されるネットワークにおいても、プリンタ13がグループ鍵待機モードに遷移することによってプリントサービスを実現できる。
【００４４】
図8のフローチャートを参照して、プリンタ13の無線通信機能部104がRF部105を通じて鍵交換開始パケットを受信した後に、グループ鍵待機モードに遷移する手順を説明する。
【００４５】
S800において、CPU 115は、鍵交換開始パケットを受信する。S801において、CPU 115は、自装置の動作モードを解析する。S802において、CPU 115は、S801における解析の結果、自装置がグループ鍵待機モードで動作しているか否かを判定する。すなわち、暗号鍵を保持する鍵テーブルにおいて、グループ鍵の保持数がユニキャスト鍵の保持数よりも多い状態（グループ鍵待機モード）であるか否かを判定する（保持数判定処理）。自装置がグループ鍵待機モードで動作していると判定された場合（S802;YES）、S811へ進む。一方、自装置がグループ鍵待機モードで動作していない（グループ鍵の保持数がユニキャスト鍵の保持数以下である状態）と判定された場合（S802;NO）、S803へ進む。
【００４６】
S803において、CPU 115は、鍵交換による鍵数と、装置の鍵保持上限数とを比較する。S804において、CPU 115は、鍵交換により鍵数が装置の鍵保持上限数を超えるか否かを判定する。鍵数が装置の鍵保持上限数を超えると判定された場合（S804;YES）、S805へ進む。一方、鍵数が装置の鍵保持上限数以下であると判定された場合（S804;NO）、処理を終了する。S805において、CPU 115は、ユーザ警告画面401（図4参照）を表示部106に表示する。
【００４７】
S806において、CPU 115は、ユーザ警告画面401を表示してから所定時間待機する。S807において、CPU 115は、所定時間経過後、プリンタ13が接続するWPAアドホックネットワーク環境の所属装置数の減少の有無について解析する。
【００４８】
S808において、CPU 115は、解析の結果として所属装置数が減少しているか否か、すなわちネットワーク環境が改善しているか否かを判定する。ネットワーク環境が改善していると判定された場合（S808;YES）、処理を終了する。一方、ネットワーク環境が改善していないと判定された場合（S808;NO）、S809へ進む。
【００４９】
S809において、CPU 115は、鍵テーブルにおけるグループ鍵の保持数がユニキャスト鍵の保持数よりも多い状態であるグループ鍵待機モードへ動作モードを切替中であることを示す画面1101（図11参照）を表示部106に表示する。S810において、後述の図9のフローチャートにおけるS900へ進む。S811において、後述の図9のフローチャートにおけるS902へ進む。以上で図8に示すフローチャートの処理が終了する。
【００５０】
次に、図9のフローチャートを参照して、プリンタ13がグループ鍵待機モードに遷移した場合のグループ鍵登録処理の手順を説明する。
【００５１】
S900において、CPU 115は、ユニキャスト鍵を判別する。CPU 115は、この処理により削除可能なユニキャスト鍵を特定する。S901において、CPU 115は、S900で特定されたユニキャスト鍵を削除する。ここで、ユニキャスト鍵は必ずしも削除しなくてもよく、RAM 117のメモリ空間またはフラッシュメモリ113上の鍵キャッシュ記憶領域（一次記憶領域）に退避してもよい。
【００５２】
S902において、CPU 115は、ユニキャスト鍵を削除した後、削除によってプリンタ13の鍵テーブルに空きが出たことを確認する。
【００５３】
S903において、CPU 115は、鍵テーブルに所定数の空きがあるか否かを判定する。所定数の空きがあると判定された場合（S903;YES）、S904へ進む。一方、所定数の空きがないと判定された場合（S903;NO）、S903へ進む。
【００５４】
S904において、CPU 115は、鍵テーブルT23へグループ鍵を登録する。S905において、CPU 115は、グループ鍵待機モードを終了する。以上で図9に示すフローチャートの処理が終了する。
【００５５】
さらに、図10のフローチャートを参照して、プリンタ13の無線通信機能部104がRF部105を通じてマルチキャストパケットまたはブロードキャストパケットを受信した後の動作を表したユニキャスト鍵登録処理の手順を説明する。
【００５６】
S1000において、CPU 115は、ブロードキャストパケットまたはマルチキャストパケットを受信する。S1001において、CPU 115は、自装置の動作モードを解析する。S1002において、CPU 115は、自装置がグループ鍵待機モードで動作しているか否かを判定する。自装置がグループ鍵待機モードで動作していると判定された場合（S1002;YES）、S1003へ進む。一方、自装置がグループ鍵待機モードで動作していないと判定された場合（S1002;NO）、S1010へ進む。
【００５７】
S1003において、CPU 115は、所有しているユニキャスト鍵を解析する。S1004において、CPU 115は、S1000で受信したパケットの送信元のユニキャスト鍵を所有しているか否かを判定する（鍵所有判定処理）。送信元のユニキャスト鍵を所有していると判定された場合（S1004;YES）、S1010へ進む。一方、送信元のユニキャスト鍵を所有していないと判定された場合（S1004;NO）、S1005へ進む。
【００５８】
S1005において、CPU 115は、削除可能なグループ鍵を特定する。S1006において、CPU 115は、S1005で特定された削除可能なグループ鍵を削除する。S1007において、CPU 115は、鍵テーブルT23の空きを確認する。S1008において、CPU 115は、鍵テーブルT23に所定数の空きがあるか否かを判定する。所定数の空きがあると判定された場合（S1008;YES）、S1009へ進む。一方、所定数の空きがないと判定された場合（S1008;NO）、S1010へ進む。
【００５９】
S1009において、CPU 115は、ユニキャスト鍵を取得する。ユニキャスト鍵は４ｗａｙハンドシェイクを行うことにより取得されてもよく、RAM 117のメモリ空間またはフラッシュメモリ113上に退避したユニキャスト鍵が改めて使用されてもよい。S1010において、CPU 115は、通常のパケット処理を実行する。以上で図10に示されるフローチャートの処理が終了する。
【００６０】
次に、図12を参照して、グループ鍵更新シーケンスを説明する。WPAはグループ鍵を更新する機能を有するが、グループ鍵の更新の際にはユニキャスト鍵を用いた暗号通信が行われるため、ユニキャスト鍵が必要となる。一方、本発明の特徴の一つはユニキャスト鍵を一旦放棄し、ブロードキャスト通信またはマルチキャスト通信が発生した通信相手のユニキャスト鍵をテンポラリで所持することにより、鍵保持上限数を超える接続可能装置数を確保することである。従って、本発明を実施することによってグループ鍵を更新する対象の装置のユニキャスト鍵を所持しない状態でグループ鍵の更新タイミングが来てしまう場合がある。この問題を解決するため、グループ鍵を更新するためのユニキャスト鍵を、新規に４ｗａｙハンドシェイクを行うことにより取得し、取得したユニキャスト鍵でグループ鍵交換を行う方法を提案する。
【００６１】
図12に示される例は、プリンタ13がグループ鍵の更新タイミングに従ってPC14とグループ鍵を交換するシーケンスを表している。
【００６２】
S1200において、CPU 115は、グループ鍵の更新を行う必要のある装置を特定する。本実施形態では、CPU 115は、PC14を対象装置として特定している。S1201において、CPU 115は、メッセージ1（MSG1）をPC14へ送信する。このメッセージフレームはEAPOLというプロトコルに従ったフォーマットに準拠している。このメッセージは、ユニキャスト鍵の交換のためのメッセージである（Unicast）という情報、およびプリンタ13が生成した乱数値（Anonce）の情報を含んでいる。なお、EAPOLは拡張認証プロトコル(extensible authentication protocol)の略である。
【００６３】
S1202において、MSG1を受信したPC14のCPUは、PTK（Pairwies Trasient Key）を生成し、プリンタ13とは異なる乱数（Snonce）を生成する。S1203において、PC14のCPUは、メッセージ2（MSG2）をプリンタ13へ送信する。このメッセージフレームはEAPOLというプロトコルに従ったフォーマットに準拠している。このメッセージは、ユニキャスト鍵の交換のためのメッセージである（Unicast）という情報、およびPC14が生成した乱数値（Snonce）の情報を含んでいる。S1204において、CPU 115は、PTKを生成する。
【００６４】
AnonceおよびSnonceという情報と、プリンタ13およびPC14が事前に保持している情報と、からPTKを生成することができる。これによって、S1202およびS1204において、プリンタ13とPC2 (PC14)とは、ともにPTKを生成することができる。
【００６５】
S1205において、CPU 115は、メッセージ3（MSG3）をPC14へ送信する。S1206において、PC14のCPUは、メッセージ4（MSG3）をプリンタ13へ送信する。MSG3およびMSG4は、PTKを正しく生成することができたことに対する確認応答を表すメッセージである。S1207において、PC14のCPUは、PTKをユニキャスト鍵として設定する。S1208において、CPU 115は、PTKをテンポラリユニキャスト鍵として設定する（ユニキャスト鍵取得処理）。
【００６６】
以降、ユニキャストに関してはプリンタ13とPC14との間では暗号化されたデータが転送される。なお、これまで４ｗａｙハンドシェイクによりテンポラリユニキャスト鍵を設定する方法を説明したが、プリンタ13が既にPC14のユニキャスト鍵を所有している場合は、CPU 115は４ｗａｙハンドシェイクを行わずに、それを使用してもよい。
【００６７】
次にグループ鍵の共有方式について説明する。S1209において、S1200乃至S1206の４ｗａｙハンドシェイクが完了すると、CPU 115は、GTK（Group Trasient Key）を生成する。また、プリンタ13がGTKを既に所有している場合はそれを使用してもよい。
【００６８】
S1210において、CPU 115は、グループキーハンドシェークというメッセージ5(MSG5)をPC14へ送信する。このメッセージフレームもEAPOLというプロトコルに従ったフォーマットに準拠しており、このメッセージはGTKの交換のためのメッセージである（Group）という情報を含んでいる。既に交換済であるユニキャスト鍵によりメッセージ5は暗号化されているため、メッセージ5は安全に送信される。
【００６９】
S1211において、PC14のCPUは、メッセージ5を受信したことを確認するメッセージ6(MSG6)をプリンタ13へ送信する。S1212において、CPU 115は、GTKをグループ鍵として設定する。S1213において、PC14のCPUは、GTKをグループ鍵として設定する。これにより、ブロードキャストパケットが暗号化されるようになる。S1214において、グループ鍵の更新が完了した後、CPU 115は、不要となったグループ鍵交換用のテンポラリユニキャスト鍵を削除する。以上で図12に示されるシーケンスの処理が終了する。
【００７０】
本実施形態によれば、ユーザによる通信環境の改善がない場合でも、グループ鍵を優先的に保持し必要な時にユニキャスト鍵を生成することによって通信サービスを提供することができる。
【００７１】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005904718.tif 000002
【図２】
0005904718.tif 000003
【図３】
0005904718.tif 000004
【図４】
0005904718.tif 000005
【図５】
0005904718.tif 000006
【図６】
0005904718.tif 000007
【図７】
0005904718.tif 000008
【図８】
0005904718.tif 000009
【図９】
0005904718.tif 000010
【図１０】
0005904718.tif 000011
【図１１】
0005904718.tif 000012
【図１２】
0005904718.tif 000013