(57)【要約】【課題】ユーザの利便性を向上させるための技術を提供すること。【解決手段】通信装置の出力部は、所定の指示が通信装置に入力される場合に、第１の公開鍵を用いて得られる第１の情報を出力する。通信装置は、第１の情報が出力された後に、第１の公開鍵を取得した端末装置から、第１の無線インターフェースを介して、第１の公開鍵が利用された認証要求を受信して、認証要求に対する応答である認証応答を端末装置に送信し、認証応答が端末装置に送信された後に、端末装置から接続情報を受信し、接続情報を利用して、通信装置と外部装置との間に第１の無線インターフェースを介した無線接続を確立し、第１の情報が出力された後に所定条件が満たされる場合に、第２の公開鍵を生成して記憶する。出力部は、さらに、第２の公開鍵が記憶された後に所定の指示が通信装置に再び入力される場合に、第２の公開鍵を用いて得られる第２の情報を出力する。【選択図】図５
2019205021.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
出力部と、
第１の無線インターフェースと、
第１の公開鍵を記憶するメモリであって、前記出力部は、前記第１の公開鍵が前記メモリに記憶された後に所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第１の公開鍵を用いて得られる第１の情報を出力する、前記メモリと、
前記第１の情報が出力された後に、前記第１の公開鍵を取得した端末装置から、前記第１の無線インターフェースを介して、前記第１の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記第１の無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記第１の無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記第１の無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記外部装置との間に前記第１の無線インターフェースを介した前記無線接続を確立する確立部と、
前記第１の情報が出力された後に所定条件が満たされる場合に、前記第１の公開鍵とは異なる第２の公開鍵を生成して、前記第２の公開鍵を前記メモリに記憶する公開鍵生成部と、を備え、
前記出力部は、さらに、前記第２の公開鍵が前記メモリに記憶された後に前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第２の公開鍵を用いて得られる第２の情報を出力する、通信装置。
【請求項２】
前記接続情報が前記端末装置から受信される場合に、前記所定条件が満たされる、請求項１に記載の通信装置。
【請求項３】
前記出力部は、前記認証応答が前記端末装置に送信される場合に、前記第１の情報の出力を停止する、請求項１又は２に記載の通信装置。
【請求項４】
前記出力部が前記第１の情報の出力を停止した後に前記所定条件が満たされる、請求項１から３のいずれか一項に記載の通信装置。
【請求項５】
前記出力部は、表示部であり、
前記第１の情報は、前記第１の公開鍵がコード化されることによって得られる第１のコード画像であり、
前記第２の情報は、前記第２の公開鍵がコード化されることによって得られる第２のコード画像であり、
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記第１のコード画像である前記第１の情報を前記表示部である前記出力部に表示させる第１の表示制御部と、
前記所定の指示が前記通信装置に再び入力される場合に、前記第２のコード画像である前記第２の情報を前記表示部である前記出力部に表示させる第２の表示制御部と、を備える、請求項１から４のいずれか一項に記載の通信装置。
【請求項６】
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第１の公開鍵を利用して、前記第１のコード画像を生成する第１の画像生成部と、
前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第２の公開鍵を利用して、前記第２のコード画像を生成する第２の画像生成部と、を備える、請求項５に記載の通信装置。
【請求項７】
前記出力部は、印刷実行部であり、
前記第１の情報は、前記第１の公開鍵がコード化されることによって得られる第１のコード画像であり、
前記第２の情報は、前記第２の公開鍵がコード化されることによって得られる第２のコード画像であり、
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記第１のコード画像である前記第１の情報の印刷を前記印刷実行部である前記出力部に実行させる第１の印刷制御部と、
前記所定の指示が前記通信装置に再び入力される場合に、前記第２のコード画像である前記第２の情報の印刷を前記印刷実行部である前記出力部に実行させる第２の印刷制御部と、を備え、
前記第１のコード画像である前記第１の情報の印刷が実行されてから所定期間が経過する場合に、前記所定条件が満たされる、請求項１に記載の通信装置。
【請求項８】
前記第１の印刷制御部は、さらに、前記所定期間を示す情報の印刷を前記印刷実行部である前記出力部に実行させる、請求項７に記載の通信装置。
【請求項９】
前記第１の印刷制御部は、さらに、前記第１の公開鍵を利用して前記無線接続を確立するためのアプリケーションプログラムに関係する情報の印刷を前記印刷実行部である前記出力部に実行させる、請求項７又は８に記載の通信装置。
【請求項１０】
前記公開鍵生成部は、
前記端末装置から前記認証要求が受信される前に、前記所定期間が経過することに起因して前記所定条件が満たされる場合に、前記第２の公開鍵を生成し、
前記端末装置から前記接続情報が受信された後に、前記所定期間が経過することに起因して前記所定条件が満たされる場合に、前記第２の公開鍵を生成し、
前記端末装置から前記認証要求が受信された後であって、前記端末装置から前記接続情報が受信される前に、前記所定期間が経過することに起因して前記所定条件が満たされても、前記第２の公開鍵を生成せず、前記端末装置から前記接続情報が受信された後に、前記第２の公開鍵を生成する、請求項７から９のいずれか一項に記載の通信装置。
【請求項１１】
前記通信装置と前記外部装置との間に前記無線接続が確立される場合に、前記所定条件が満たされる、請求項１に記載の通信装置。
【請求項１２】
前記通信装置は、さらに、
前記通信装置と前記外部装置との間に前記無線接続が確立され、かつ、前記通信装置と前記端末装置とが前記外部装置を経由して通信可能である場合に、前記所定条件が満たされる、請求項１１に記載の通信装置。
【請求項１３】
前記出力部は、第２の無線インターフェースであり、
前記第２の無線インターフェースである前記出力部は、
前記所定の指示が前記通信装置に入力される場合に、前記第１の情報を外部に送信し、
前記所定の指示が前記通信装置に再び入力される場合に、前記第２の情報を外部に送信し、
前記通信装置は、さらに、
前記通信装置と前記外部装置との間に前記無線接続が確立される場合に、前記第２の無線インターフェースを介した前記第１の情報の送信を停止する停止部を備える、請求項１１又は１２に記載の通信装置。
【請求項１４】
前記公開鍵生成部は、前記所定の指示が前記通信装置に再び入力されることなく、前記第１の情報が出力された後に前記所定条件が満たされる場合に、前記第２の公開鍵を生成する、請求項１から１３のいずれか一項に記載の通信装置。
【請求項１５】
前記所定の指示は、
前記通信装置の操作部に対する所定操作がユーザによって実行されること、及び、
前記端末装置から特定の信号を受信すること、
のうちの少なくとも一方を含む、請求項１から１４のいずれか一項に記載の通信装置。
【請求項１６】
前記通信装置は、さらに、
前記認証応答が前記端末装置に送信された後に、前記無線接続を確立するための処理を実行中であることを示す実行中画面を前記通信装置の表示部に表示させる画面表示制御部を備える、請求項１から１５のいずれか一項に記載の通信装置。
【請求項１７】
前記公開鍵生成部は、前記通信装置の通信量に関係する情報を利用して、前記第２の公開鍵を生成する、請求項１から１６のいずれか一項に記載の通信装置。
【請求項１８】
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記通信装置の動作状態を不可能状態から可能状態に移行させる第１の状態移行部であって、前記不可能状態は、前記端末装置から前記認証要求が受信されても、前記認証応答を送信しない状態であり、前記可能状態は、前記端末装置から前記認証要求が受信される場合に、前記認証応答を前記端末装置に送信する状態である、前記第１の状態移行部を備え、
前記認証応答送信部は、前記通信装置の動作状態が前記可能状態に移行された後に、前記端末装置から前記認証要求が受信される場合に、前記第１の無線インターフェースを介して、前記認証応答を前記端末装置に送信する、請求項１から１７のいずれか一項に記載の通信装置。
【請求項１９】
前記通信装置は、さらに、
前記通信装置の動作状態が前記可能状態である状況において、前記第２の公開鍵が生成される場合に、前記通信装置の動作状態を前記可能状態から前記不可能状態に移行させる第２の状態移行部を備える、請求項１８に記載の通信装置。
【請求項２０】
前記公開鍵生成部は、さらに、前記通信装置の電源が投入される際に、前記第１の公開鍵を生成して、前記第１の公開鍵を前記メモリに記憶させる、請求項１から１９のいずれか一項に記載の通信装置。
【請求項２１】
通信装置のためのコンピュータプログラムであって、
前記通信装置は、
出力部と、
第１の無線インターフェースと、
第１の公開鍵を記憶するメモリであって、前記出力部は、前記第１の公開鍵が前記メモリに記憶された後に所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第１の公開鍵を用いて得られる第１の情報を出力する、前記メモリと、を備え、
前記コンピュータプログラムは、前記通信装置のコンピュータを、
前記第１の情報が出力された後に、前記第１の公開鍵を取得した端末装置から、前記第１の無線インターフェースを介して、前記第１の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記第１の無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記第１の無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記第１の無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記外部装置との間に前記第１の無線インターフェースを介した前記無線接続を確立する確立部と、
前記第１の情報が出力された後に所定条件が満たされる場合に、前記第１の公開鍵とは異なる第２の公開鍵を生成して、前記第２の公開鍵を前記メモリに記憶する公開鍵生成部と、として機能させ、
前記出力部は、さらに、前記第２の公開鍵が前記メモリに記憶された後に前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第２の公開鍵を用いて得られる第２の情報を出力する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、外部装置との無線接続を確立可能な通信装置に関する技術を開示する。
【背景技術】
【０００２】
特許文献１に記載の技術では、カメラは、ユーザから通信パラメータ設定処理を実行するための指示を受け付ける場合に、通信パラメータ設定処理の認証処理に用いる情報を生成する。そして、カメラは、当該情報からコード情報を生成して表示する。スマートフォンは、カメラのコード情報を撮影して当該情報を取得し、当該情報を利用してカメラに認証要求を送信し、その結果、カメラによって認証処理が実行される。認証処理が成功すると、カメラとスマートフォンとの間でデータ通信が可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１３０７２７号公報
【非特許文献】
【０００４】
【非特許文献１】「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」 Wi-Fi Alliance, ２０１７年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の文献の技術では、ユーザから通信パラメータ設定処理を実行するための指示を受け付けた後に認証処理に用いる情報を生成するので、ユーザは、当該情報が生成されるのを待つ必要がある。このために、ユーザの利便性が損なわれる可能性がある。本明細書では、ユーザの利便性を向上させるための技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書によって開示される通信装置は、出力部と、第１の無線インターフェースと、第１の公開鍵を記憶するメモリであって、前記出力部は、前記第１の公開鍵が前記メモリに記憶された後に所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第１の公開鍵を用いて得られる第１の情報を出力する、前記メモリと、前記第１の情報が出力された後に、前記第１の公開鍵を取得した端末装置から、前記第１の無線インターフェースを介して、前記第１の公開鍵が利用された認証要求を受信する認証要求受信部と、前記端末装置から前記認証要求が受信される場合に、前記第１の無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記第１の無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記第１の無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記外部装置との間に前記第１の無線インターフェースを介した前記無線接続を確立する確立部と、前記第１の情報が出力された後に所定条件が満たされる場合に、前記第１の公開鍵とは異なる第２の公開鍵を生成して、前記第２の公開鍵を前記メモリに記憶する公開鍵生成部と、を備える。前記出力部は、さらに、前記第２の公開鍵が前記メモリに記憶された後に前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第２の公開鍵を用いて得られる第２の情報を出力する。
【０００７】
上記のように、通信装置は、第１の情報が出力された後に所定の条件が満たされる場合に、第２の公開鍵を生成してメモリに記憶する。そして、通信装置は、第２の公開鍵がメモリに記憶された後に所定の指示が通信装置に再び入力される場合に、メモリ内の第２の公開鍵を用いて得られる第２の情報を出力する。このような構成によれば、所定の指示が通信装置に再び入力された後に第２の公開鍵を生成する構成と比較して、第２の情報を早期に出力することができ、この結果、ユーザの利便性を向上させることができる。
【０００８】
上記の通信装置を実現するためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体も新規で有用である。また、上記の通信装置によって実行される方法も新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成を示す。
【図２】実施例の概要を説明するための説明図を示す。
【図３】１回目のＢｏｏｔｓｔｒａｐｐｉｎｇの処理のシーケンス図を示す。
【図４】Ａｕｔｈｅｎｔｉｃａｔｉｏｎの処理のシーケンス図を示す。
【図５】Ｃｏｎｆｉｇｕｒａｔｉｏｎの処理のシーケンス図を示す。
【図６】Ｎｅｔｗｏｒｋ  Ａｃｃｅｓｓの処理のシーケンス図を示す。
【図７】２回目のＢｏｏｔｓｔｒａｐｐｉｎｇの処理のシーケンス図を示す。
【図８】第２実施例においてＱＲコードが撮影されない場合の１回目のＢｏｏｔｓｔｒａｐｐｉｎｇの処理のシーケンス図を示す。
【図９】第２実施例においてＱＲコードが撮影される場合の１回目のＢｏｏｔｓｔｒａｐｐｉｎｇの処理のシーケンス図を示す。
【図１０】第２実施例においてＱＲコードが撮影される場合のＣｏｎｆｉｇｕｒａｔｉｏｎの処理のシーケンス図を示す。
【図１１】第３実施例を説明するための説明図を示す。
【発明を実施するための形態】
【００１０】
（通信システム；図１）
図１に示されるように、通信システム２は、複数個のＡＰ（Access Pointの略）６、８と、複数個の端末１０、５０、７０と、プリンタ１００と、を備える。本実施例では、ユーザが端末（例えば端末１０）を利用して、プリンタ１００とＡＰ（例えばＡＰ６）との間にＷｉ−Ｆｉ方式に従った無線接続（以下では「Ｗｉ−Ｆｉ接続」と記載する）を確立させる状況を想定している。
【００１１】
（端末１０の構成）
端末１０は、携帯電話（例えばスマートフォン）、ＰＤＡ、タブレットＰＣ等の可搬型の端末装置である。なお、変形例では、端末１０は、据置型のＰＣ、ノートＰＣ等であってもよい。端末１０は、カメラ１５と、Ｗｉ−Ｆｉインターフェース１６と、を備える。以下では、インターフェースを単に「Ｉ／Ｆ」と記載する。カメラ１５は、物体を撮影するためのデバイスであり、本実施例では、特に、ＡＰ（例えばＡＰ６）及びプリンタ１００のためのＱＲコード（登録商標）を撮影するために利用される。また、端末１０は、接続アプリケーション４０（以下では単に「アプリ４０」と記載する）を記憶している。アプリ４０は、プリンタ１００とＡＰとの間にＷｉ−Ｆｉ接続を確立させるためのプログラムであり、例えば、プリンタ１００のベンダによって提供されるインターネット上のサーバから端末１０にインストールされる。他の各端末５０、７０は、端末１０と同様の構成を備える。
【００１２】
Ｗｉ−ＦｉＩ／Ｆ１６は、Ｗｉ−Ｆｉ方式に従ったＷｉ−Ｆｉ通信を実行するための無線インターフェースである。Ｗｉ−Ｆｉ方式は、例えば、ＩＥＥＥ（The Institute of Electrical and Electronics Engineers, Inc.の略）の８０２．１１の規格、及び、それに準ずる規格（例えば８０２．１１ａ，１１ｂ、１１ｇ、１１ｎ、１１ａｃ等）に従って、無線通信を実行するための無線通信方式である。特に、Ｗｉ−ＦｉＩ／Ｆ１６は、Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅによって策定される予定であるＤＰＰ（Device Provisioning Protocolの略）方式をサポートしている。ＤＰＰ方式は、Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅによって作成された規格書のドラフトである「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」に記述されており、端末（例えば端末１０）を利用して一対のデバイス（例えばプリンタ１００とＡＰ６）の間に容易にＷｉ−Ｆｉ接続を確立させるための無線通信方式である。
【００１３】
（プリンタ１００の構成）
プリンタ１００は、印刷機能を実行可能な周辺装置（例えば、端末１０の周辺装置）である。プリンタ１００は、操作部１１２と、表示部１１４と、Ｗｉ−ＦｉＩ／Ｆ１１６と、印刷実行部１１８と、制御部１３０と、を備える。各部１１２〜１３０は、バス線（符号省略）に接続されている。
【００１４】
操作部１１２は、複数のキーを備える。ユーザは、操作部１１２を操作することによって、様々な指示をプリンタ１００に入力することができる。表示部１１４は、様々な情報を表示するためのディスプレイである。Ｗｉ−ＦｉＩ／Ｆ１１６は、端末１０のＷｉ−ＦｉＩ／Ｆ１６と同様である。即ち、Ｗｉ−ＦｉＩ／Ｆ１１６は、ＤＰＰ方式をサポートしている。また、Ｗｉ−ＦｉＩ／Ｆ１１６は、ＭＡＣアドレス「ａｂｃ」を有する。印刷実行部１１８は、インクジェット方式、レーザ方式等の印刷機構を備える。
【００１５】
制御部１３０は、ＣＰＵ１３２とメモリ１３４とを備える。ＣＰＵ１３２は、メモリ１３４に格納されているプログラム１３６に従って、様々な処理を実行する。メモリ１３４は、揮発性メモリ、不揮発性メモリ等によって構成される。
【００１６】
（本実施例の概要；図２）
続いて、図２を参照して、本実施例の概要を説明する。端末１０及びプリンタ１００がＤＰＰ方式をサポートしていることを上記したが、ＡＰ６もＤＰＰ方式をサポートしている。そして、本実施例では、まず、ＡＰ６、端末１０、及び、プリンタ１００がＤＰＰ方式に従った通信を実行することによって、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を確立することを実現する。本実施例では、さらに、プリンタ１００とＡＰ６との間に確立されたＷｉ−Ｆｉ接続が切断された後に、ＡＰ８、端末５０、及び、プリンタ１００がＤＰＰ方式に従った通信を実行することによって、プリンタ１００とＡＰ８との間のＷｉ−Ｆｉ接続を確立することを実現する。以下では、理解の容易化のために、各デバイスのＣＰＵ（例えばＣＰＵ１３２等）が実行する動作を、ＣＰＵを主体として記載せずに、各デバイス（例えばプリンタ１００）を主体として記載する。
【００１７】
Ｔ２では、端末１０は、ＤＰＰ方式のＢｏｏｔｓｔｒａｐｐｉｎｇ（以下では、単に「ＢＳ」と記載する）をＡＰ６と実行する。当該ＢＳは、ＡＰ６に貼り付けられているＱＲコードが端末１０によって撮影されることに応じて、後述のＴ４のＡｕｔｈｅｎｔｉｃａｔｉｏｎ（以下では、単に「Ａｕｔｈ」と記載する）で利用される情報をＡＰ６から端末１０に提供する処理である。
【００１８】
Ｔ４では、端末１０は、Ｔ２のＢＳで取得済みの情報を利用して、ＤＰＰ方式のＡｕｔｈをＡＰ６と実行する。当該Ａｕｔｈは、端末１０及びＡＰ６のそれぞれが通信相手を認証するための処理である。
【００１９】
Ｔ６では、端末１０は、ＤＰＰ方式のＣｏｎｆｉｇｕｒａｔｉｏｎ（以下では、単に「Ｃｏｎｆｉｇ」と記載する）をＡＰ６と実行する。当該Ｃｏｎｆｉｇは、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を確立するための情報をＡＰ６に送信する処理である。具体的には、端末１０は、当該Ｃｏｎｆｉｇにおいて、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させるための第１のＣｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｂｊｅｃｔ（以下では、Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｂｊｅｃｔのことを単に「ＣＯ」と記載する）を生成して、第１のＣＯをＡＰ６に送信する。この結果、ＡＰ６では、第１のＣＯが記憶される。
【００２０】
次いで、端末１０は、Ｔ１２において、ＤＰＰ方式のＢＳをプリンタ１００と実行する。当該ＢＳは、プリンタ１００に表示されるＱＲコードが端末１０によって撮影されることに応じて、後述のＴ１４のＡｕｔｈで利用される情報をプリンタ１００から端末１０に提供する処理である。
【００２１】
Ｔ１４では、端末１０は、Ｔ１２のＢＳで取得済みの情報を利用して、ＤＰＰ方式のＡｕｔｈをプリンタ１００と実行する。当該Ａｕｔｈは、端末１０及びプリンタ１００のそれぞれが通信相手を認証するための処理である。
【００２２】
Ｔ１６では、端末１０は、ＤＰＰ方式のＣｏｎｆｉｇをプリンタ１００と実行する。当該Ｃｏｎｆｉｇは、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を確立するための情報をプリンタ１００に送信する処理である。端末１０は、当該Ｃｏｎｆｉｇにおいて、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させるための第２のＣＯを生成して、第２のＣＯをプリンタ１００に送信する。この結果、プリンタ１００では、第２のＣＯが記憶される。
【００２３】
Ｔ２０では、プリンタ１００及びＡＰ６は、記憶済みの第１及び第２のＣＯを利用して、ＤＰＰ方式のＮｅｔｗｏｒｋ  Ａｃｃｅｓｓ（以下では、単に「ＮＡ」と記載する）を実行する。ＮＡは、Ｗｉ−Ｆｉ接続を確立するための接続キーをプリンタ１００及びＡＰ６の間で共有するための処理である。
【００２４】
Ｔ３０では、プリンタ１００及びＡＰ６は、４ｗａｙ−ｈａｎｄｓｈａｋｅの通信を実行する。４ｗａｙ−ｈａｎｄｓｈａｋｅの通信の少なくとも一部の過程において、プリンタ１００及びＡＰ６は、Ｔ２０のＮＡで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立される。これにより、プリンタ１００は、ＡＰ６によって形成される無線ネットワークに子局として参加することができ、この結果、ＡＰ６を介して、当該無線ネットワークに参加している他のデバイス（例えば端末７０）との通信を実行することができる。なお、変形例では、プリンタ１００及びＡＰ６は、４ｗａｙ−ｈａｎｄｓｈａｋｅの通信に代えて、ＳＡＥ（Simultaneous Authentication of Equalsの略、通称「Dragonfly」）の通信を実行してもよい。
【００２５】
本実施例では、端末７０とＡＰ６との間にＷｉ−Ｆｉ接続が既に確立されている。このため、プリンタ１００がＡＰ６によって形成される無線ネットワークに参加すると、端末７０及びプリンタ１００の双方が当該無線ネットワークに参加している状態になる。このために、プリンタ１００は、Ｔ３２において、端末７０から、ＡＰ６を経由して、印刷対象の画像を表わす印刷データを受信することができる。この場合、プリンタ１００は、Ｔ３４において、当該印刷データに従った印刷を実行する。
【００２６】
本実施例では、プリンタ１００のユーザが、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立されている状態に代えて、プリンタ１００とＡＰ８との間にＷｉ−Ｆｉ接続が確立されている状態が構築されることを望む。この場合、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続が切断された後に、Ｔ５２〜Ｔ８０の処理が実行されて、プリンタ１００とＡＰ８との間にＷｉ−Ｆｉ接続が確立される。
【００２７】
具体的には、端末５０は、Ｔ５２において、ＤＰＰ方式のＢＳをＡＰ８と実行し、Ｔ５４において、Ｔ５２のＢＳで取得済みの情報を利用して、ＤＰＰ方式のＡｕｔｈをＡＰ８と実行し、Ｔ５６において、ＤＰＰ方式のＣｏｎｆｉｇをＡＰ８と実行する。この結果、ＡＰ８では、プリンタ１００とＡＰ８との間にＷｉ−Ｆｉ接続を確立させるための第３のＣＯが記憶される。
【００２８】
また、端末５０は、Ｔ６２において、ＤＰＰ方式のＢＳをプリンタ１００と実行し、Ｔ６４において、Ｔ６２のＢＳで取得済みの情報を利用して、ＤＰＰ方式のＡｕｔｈをプリンタ１００と実行し、Ｔ６６において、ＤＰＰ方式のＣｏｎｆｉｇをプリンタ１００と実行する。この結果、プリンタ１００では、プリンタ１００とＡＰ８との間にＷｉ−Ｆｉ接続を確立させるための第４のＣＯが記憶される。
【００２９】
プリンタ１００及びＡＰ８は、Ｔ７０において、記憶済みの第３及び第４のＣＯを利用してＤＰＰ方式のＮＡを実行し、Ｔ８０において、４ｗａｙ−ｈａｎｄｓｈａｋｅの通信を実行する。この結果、プリンタ１００とＡＰ８との間にＷｉ−Ｆｉ接続が確立される。
【００３０】
（各処理の説明；図３〜図７）
続いて、図３〜図７を参照して、図２のＴ１２〜Ｔ１６、及び、Ｔ６２において実行される各処理の詳細を説明する。なお、Ｔ２〜Ｔ６の処理は、プリンタ１００に代えてＡＰ６が利用される点を除いて、Ｔ１２〜Ｔ１６と同様であり、Ｔ５２〜Ｔ５６の処理は、プリンタ１００に代えてＡＰ８が利用される点を除いて、Ｔ１２〜Ｔ１６と同様であり、Ｔ６４及びＴ６６の処理は、端末１０に代えて端末５０が利用される点を除いて、Ｔ１４、Ｔ１６と同様である。このため、これらの処理の詳細な説明は省略する。
【００３１】
（１回目のＢｏｏｔｓｔｒａｐｐｉｎｇ（ＢＳ）；図３）
まず、図３を参照して、図２のＴ１２においてプリンタ１００によって実行される１回目のＢＳの処理を説明する。図３の初期状態では、プリンタ１００が出荷されてから、プリンタ１００の電源が一度も投入されていない。
【００３２】
プリンタ１００は、Ｔ１００において、ユーザから電源投入操作を受け付けると、Ｔ１０２において、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１を生成する。具体的には、プリンタ１００は、擬似乱数を利用して公開鍵ＰＰＫ１を生成する。また、プリンタ１００は、生成済みの公開鍵ＰＰＫ１を利用して、公開鍵ＰＰＫ１と対になる秘密鍵ｐｓｋ１を生成する。以下でも特に説明しない限り、公開鍵及び秘密鍵は上記の手法で生成される。そして、プリンタ１００は、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１をメモリ１３４に記憶する。これにより、後述するＱＲコードボタンの選択（Ｔ１２０参照）の前に、公開鍵ＰＰＫ１を予めメモリ１３４に記憶することができる。この結果、後述するＱＲコードボタンの選択後に、公開鍵ＰＰＫ１をコード化することによって得られるＱＲコードを早期に表示することができる。
【００３３】
Ｔ１０５では、プリンタ１００は、メニュー画面を表示部１１４に表示させる。メニュー画面は、換言すればプリンタ１００のデフォルト画面であり、プリンタ１００に印刷を実行させる印刷ボタンと、プリンタ１００の各種設定（例えば印刷設定等）を指定するための設定ボタンと、を含む。
【００３４】
Ｔ１０６では、プリンタ１００は、メニュー画面内の設定ボタンがユーザによって選択されると、Ｔ１０７において、設定画面を表示部１１４に表示させる。設定画面は、プリンタ１００の印刷設定を変更するための印刷設定ボタンと、ＱＲコードの表示をプリンタ１００に実行させるためのＱＲコードボタンと、を含む。
【００３５】
プリンタ１００は、Ｔ１２０において、設定画面内のＱＲコードボタンの選択を受け付けると、Ｔ１２１において、メモリ１３４内の公開鍵ＰＰＫ１と、ＭＡＣアドレス「ａｂｃ」と、をコード化することによって、ＱＲコードを生成する。別言すれば、ＱＲコードは、公開鍵ＰＰＫ１とＭＡＣアドレス「ａｂｃ」とを用いて得られるコード画像である。プリンタ１００は、Ｔ１２２において、生成済みのＱＲコードを表示部１１４に表示させる。
【００３６】
例えば、上記のＴ１０２で公開鍵ＰＰＫ１が生成された後であって、ＱＲコードボタンの選択の前に、ＱＲコードを生成してメモリ１３４に記憶しておく比較例が想定される。この場合、ＱＲコードボタンが選択されるまでＱＲコードを記憶する領域がメモリ１３４内に必要である。これに対して、本実施例では、ＱＲコードボタンの選択の後にＱＲコードが生成されるので、当該領域をメモリ１３４内に設ける必要がない。なお、変形例では、上記の比較例の構成を採用してもよい。
【００３７】
次いで、Ｔ１２４では、プリンタ１００は、プリンタ１００の動作状態を不可能状態から可能状態に移行させる。不可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、端末１０からＤＰＰ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｒｅｑｕｅｓｔ（以下では、単に「ＡＲｅｑ」と記載する）（後述の図４のＴ２００参照）を受信しても、ＤＰＰ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｒｅｓｐｏｎｓｅ（以下では、単に「ＡＲｅｓ」と記載する）（後述のＴ２１０参照）を送信しない状態である。可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、端末１０からＡＲｅｑを受信することに応じて、ＡＲｅｓを端末１０に送信する状態である。即ち、プリンタ１００は、不可能状態から可能状態に移行されることによって、Ａｕｔｈ（図２のＴ１４参照）を実行可能な状態になる。具体的には、本実施例では、不可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、外部から信号を受信しても、当該信号をＣＰＵ１３２に供給しない状態である。また、可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、外部から信号を受信することに応じて、当該信号をＣＰＵ１３２に供給し、当該信号に対する応答を送信する状態である。可能状態は、ＣＰＵ１３２が外部から受信した信号を処理する状態であるので、不可能状態と比較して処理負荷が高い。なお、変形例では、不可能状態がＷｉ−ＦｉＩ／Ｆ１１６に通電されていない状態であり、可能状態がＷｉ−ＦｉＩ／Ｆ１１６に通電されている状態であってもよい。また、別の変形例では、不可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、外部からＡＲｅｑを受信しても、ＡＲｅｑが受信されたことを示す通知をＣＰＵ１３２に供給しない状態であり、可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、外部からＡＲｅｑを受信することに応じて、ＡＲｅｑが受信されたことを示す通知をＣＰＵ１３２に供給する状態であってもよい。
【００３８】
次いで、端末１０は、Ｔ１３０において、ユーザからアプリ４０の起動操作を受け付けると、アプリ４０を起動し、さらに、カメラ１５を起動する。端末１０によって実行される以降の各処理は、アプリ４０によって実現される。次いで、端末１０は、Ｔ１３２において、カメラ１５を利用して、プリンタ１００に表示されたＱＲコード（Ｔ１２２参照）を撮影する。そして、端末１０は、Ｔ１３４において、撮影済みのＱＲコードをデコードして、公開鍵ＰＰＫ１とＭＡＣアドレス「ａｂｃ」とを取得する。
【００３９】
Ｔ１３６では、端末１０は、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立するための接続処理を実行するのか否かをユーザに問い合せる確認画面を表示する。確認画面は、接続処理を実行することを示すＹＥＳボタンと、接続処理を実行しないことを示すＮＯボタンと、を含む。Ｔ１４０では、端末１０は、ユーザから接続画面内のＹＥＳボタンの選択を受け付ける。Ｔ１４０の処理が終了すると、図３の処理が終了する。
【００４０】
（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ（Ａｕｔｈ）；図４）
続いて、図４を参照して、図２のＴ１４のＡｕｔｈの処理を説明する。端末１０は、図３のＴ１４０において、接続画面内のＹＥＳボタンの選択を受け付けると、Ｔ１４１において、端末１０の公開鍵ＴＰＫ１及び秘密鍵ｔｓｋ１を生成する。次いで、端末１０は、Ｔ１４２において、ＥＣＤＨ（Elliptic curve Diffie-Hellman key exchangeの略）に従って、生成済みの秘密鍵ｔｓｋ１と、図３のＴ１３４で取得されたプリンタ１００の公開鍵ＰＰＫ１と、を用いて、共有鍵ＳＫ１を生成する。そして、端末１０は、Ｔ１４４において、生成済みの共有鍵ＳＫ１を用いてランダム値ＲＶ１を暗号化して、暗号化データＥＤ１を生成する。
【００４１】
Ｔ２００では、端末１０は、Ｗｉ−ＦｉＩ／Ｆ１６を介して、図３のＴ１３４で取得されたＭＡＣアドレス「ａｂｃ」を送信先として、ＡＲｅｑをプリンタ１００に送信する。ＡＲｅｑは、認証の実行をプリンタ１００に要求する信号である。当該ＡＲｅｑは、Ｔ１４１で生成された端末１０の公開鍵ＴＰＫ１と、Ｔ１４４で生成された暗号化データＥＤ１と、端末１０のｃａｐａｂｉｌｉｔｙと、を含む。
【００４２】
ｃａｐａｂｉｌｉｔｙは、ＤＰＰ方式をサポートしている機器において予め指定されている情報であり、ＤＰＰ方式のＣｏｎｆｉｇｕｒａｔｏｒのみとして動作可能であることを示す値と、ＤＰＰ方式のＥｎｒｏｌｌｅｅのみとして動作可能であることを示す値と、Ｃｏｎｆｉｇｕｒａｔｏｒ及びＥｎｒｏｌｌｅｅのどちらとしても動作可能であることを示す値と、のいずれか１個の値を含む。なお、Ｃｏｎｆｉｇｕｒａｔｏｒは、Ｃｏｎｆｉｇ（図２のＴ１６）において、ＮＡ（図２のＴ２０）で利用されるＣＯをＥｎｒｏｌｌｅｅに送信するデバイスを意味する。一方、Ｅｎｒｏｌｌｅｅは、Ｃｏｎｆｉｇにおいて、ＣｏｎｆｉｇｕｒａｔｏｒからＮＡで利用されるＣＯを受信するデバイスを意味する。上記のように、本実施例では、端末１０が第１又は第２のＣＯを生成してＡＰ６又はプリンタ１００に送信する。従って、端末１０のｃａｐａｂｉｌｉｔｙは、Ｃｏｎｆｉｇｕｒａｔｏｒのみとして動作可能であることを示す値を含む。
【００４３】
次いで、プリンタ１００は、ＡＲｅｑの送信元（即ち端末１０）を認証するための以下の処理を実行する。具体的には、まず、プリンタ１００は、Ｔ２０２において、ＥＣＤＨに従って、当該ＡＲｅｑ内の端末１０の公開鍵ＴＰＫ１と、メモリ１３４内に予め記憶されているプリンタ１００の秘密鍵ｐｓｋ１と、を用いて、共有鍵ＳＫ１を生成する。ここで、Ｔ１４２で端末１０によって生成される共有鍵ＳＫ１と、Ｔ２０４でプリンタ１００によって生成される共有鍵ＳＫ１と、は同じである。従って、プリンタ１００は、Ｔ２０４において、生成済みの共有鍵ＳＫ１を用いて、当該ＡＲｅｑ内の暗号化データＥＤ１を適切に復号することができ、この結果、ランダム値ＲＶ１を取得することができる。プリンタ１００は、暗号化データＥＤ１の復号が成功する場合には、当該ＡＲｅｑの送信元がプリンタ１００で表示されたＱＲコードを撮影した端末であると判断し、即ち、認証が成功したと判断し、Ｔ２０６以降の処理を実行する。一方、プリンタ１００は、仮に、暗号化データＥＤ１の復号が成功しない場合には、当該ＡＲｅｑの送信元がプリンタ１００で表示されたＱＲコードを撮影した端末でないと判断し、即ち、認証が失敗したと判断し、Ｔ２０６以降の処理を実行しない。
【００４４】
Ｔ２０６では、プリンタ１００は、プリンタ１００の新たな公開鍵ＰＰＫ２及び新たな秘密鍵ｐｓｋ２を生成する。なお、変形例では、公開鍵ＰＰＫ２及び秘密鍵ｐｓｋ２は、Ｔ１０２の時点で生成されてメモリ１３４に予め記憶されていてもよい。次いで、プリンタ１００は、Ｔ２０７において、ＥＣＤＨに従って、Ｔ２００のＡＲｅｑ内の端末１０の公開鍵ＴＰＫ１と、生成済みのプリンタ１００の秘密鍵ｐｓｋ２と、を用いて、共有鍵ＳＫ２を生成する。そして、プリンタ１００は、Ｔ２０８において、生成済みの共有鍵ＳＫ２を用いて、取得済みのランダム値ＲＶ１及び新たなランダム値ＲＶ２を暗号化して、暗号化データＥＤ２を生成する。
【００４５】
Ｔ２１０では、プリンタ１００は、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＡＲｅｓを端末１０に送信する。当該ＡＲｅｓは、Ｔ２０６で生成されたプリンタ１００の公開鍵ＰＰＫ２と、Ｔ２０８で生成された暗号化データＥＤ２と、プリンタ１００のｃａｐａｂｉｌｉｔｙと、を含む。当該ｃａｐａｂｉｌｉｔｙは、Ｅｎｒｏｌｌｅｅのみとして動作可能であることを示す値を含む。
【００４６】
端末１０は、Ｔ２１０において、プリンタ１００から、Ｗｉ−ＦｉＩ／Ｆ１６を介して、ＡＲｅｓを受信することに応じて、当該ＡＲｅｓの送信元（即ちプリンタ１００）を認証するための以下の処理を実行する。具体的には、まず、端末１０は、Ｔ２１２において、ＥＣＤＨに従って、Ｔ１４１で生成された端末１０の秘密鍵ｔｓｋ１と、当該ＡＲｅｓ内のプリンタ１００の公開鍵ＰＰＫ２と、を用いて、共有鍵ＳＫ２を生成する。ここで、Ｔ２０７でプリンタ１００によって生成される共有鍵ＳＫ２と、Ｔ２１２で端末１０によって生成される共有鍵ＳＫ２と、は同じである。従って、端末１０は、Ｔ２１４において、生成済みの共有鍵ＳＫ２を用いて、当該ＡＲｅｓ内の暗号化データＥＤ２を適切に復号することができ、この結果、ランダム値ＲＶ１及びＲＶ２を取得することができる。端末１０は、暗号化データＥＤ２の復号が成功する場合には、当該ＡＲｅｓの送信元が撮影済みのＱＲコードを表示したプリンタであると判断し、即ち、認証が成功したと判断し、Ｔ２２０以降の処理を実行する。一方、端末１０は、仮に、暗号化データＥＤ２の復号が成功しない場合には、当該ＡＲｅｓの送信元が撮影済みのＱＲコードを表示したプリンタでないと判断し、即ち、認証が失敗したと判断し、Ｔ２２０以降の処理を実行しない。
【００４７】
Ｔ２２０では、端末１０は、Ｗｉ−ＦｉＩ／Ｆ１６を介して、Ｃｏｎｆｉｒｍをプリンタ１００に送信する。Ｃｏｎｆｉｒｍは、端末１０がＣｏｎｆｉｇｕｒａｔｏｒとして動作し、かつ、プリンタ１００がＥｎｒｏｌｌｅｅとして動作することを示す情報を含む。この結果、Ｔ２２２において、Ｃｏｎｆｉｇｕｒａｔｏｒとして動作することが端末１０によって決定され、Ｔ２２４において、Ｅｎｒｏｌｌｅｅとして動作することがプリンタ１００によって決定される。
【００４８】
プリンタ１００は、Ｔ２２４において、Ｅｎｒｏｌｌｅｅとして動作することを決定すると、Ｔ２２６において、図３のＴ１２２で表示されたＱＲコードに代えて、Ｓｅｔｕｐ画面を表示部１１４に表示させる。即ち、プリンタ１００は、ＱＲコードの表示を停止して、Ｓｅｔｕｐ画面の表示を開始する。Ｓｅｔｕｐ画面は、後述するＣｏｎｆｉｇの処理（図５参照）とＮＡの処理（図６参照）が実行されている間に表示される画面であり、これら処理を実行中であることを示す。これにより、ユーザは、プリンタ１００がＷｉ−Ｆｉ接続を確立するための処理を実行中であることを知ることができる。また、ＱＲコードの表示を停止することにより、公開鍵ＰＰＫ１が他の端末によって取得されることを抑制することができる。Ｔ２２６の処理が終了すると、図４の処理が終了する。
【００４９】
（Ｃｏｎｆｉｇｕｒａｔｉｏｎ（Ｃｏｎｆｉｇ）；図５）
続いて、図５を参照して、図２のＴ１６のＣｏｎｆｉｇの処理を説明する。Ｔ３００では、プリンタ１００は、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＤＰＰ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｑｕｅｓｔ（以下では、単に「ＣＲｅｑ」と記載する）を端末１０に送信する。当該ＣＲｅｑは、ＣＯ（即ちプリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を確立するための情報）の送信を要求する信号である。
【００５０】
端末１０は、Ｔ３００において、Ｗｉ−ＦｉＩ／Ｆ１６を介して、プリンタ１００からＣＲｅｑを受信すると、Ｔ３０１において、端末１０のメモリ（図示省略）から、グループＩＤ「Ｇｒｏｕｐ１」と公開鍵ＴＰＫ２と秘密鍵ｔｓｋ２とを取得する。上記のように、端末１０は、図２のＴ６のＣｏｎｆｉｇをＡＰ６と実行済みであり、この際に、グループＩＤ「Ｇｒｏｕｐ１」と公開鍵ＴＰＫ２と秘密鍵ｔｓｋ２とを生成してメモリに記憶する。グループＩＤ「Ｇｒｏｕｐ１」は、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続が確立されることによって形成される無線ネットワークを識別する情報である。なお、変形例では、ユーザによって指定された文字列がグループＩＤとして利用されてもよい。即ち、Ｔ３０１では、端末１０は、図２のＴ６で記憶された各情報を取得する。次いで、端末１０は、Ｔ３０２において、第２のＣＯ（図２のＴ１６参照）を生成する。具体的には、端末１０は、以下の各処理を実行する。
【００５１】
端末１０は、端末１０の公開鍵ＴＰＫ２をハッシュ化することによって、ハッシュ値ＨＶを生成する。また、端末１０は、ハッシュ値ＨＶと、グループＩＤ「Ｇｒｏｕｐ１」と、図４のＴ２１０のＡＲｅｓ内のプリンタ１００の公開鍵ＰＰＫ２と、の組み合わせをハッシュ化することによって、特定値を生成する。そして、端末１０は、ＥＣＤＳＡ（Elliptic Curve Digital Signature Algorithmの略）に従って、端末１０の秘密鍵ｔｓｋ２を用いて、生成済みの特定値を暗号化することによって、電子署名ＤＳ１を生成する。この結果、端末１０は、ハッシュ値ＨＶと、グループＩＤ「Ｇｒｏｕｐ１」と、プリンタ１００の公開鍵ＰＰＫ２と、電子署名ＤＳ１と、を含むプリンタ用Ｓｉｇｎｅｄ−Ｃｏｎｎｅｃｔｏｒ（以下では、Ｓｉｇｎｅｄ−Ｃｏｎｎｅｃｔｏｒのことを単に「ＳＣｏｎｔ」と記載する）を生成することができる。そして、端末１０は、プリンタ用ＳＣｏｎｔと、端末１０の公開鍵ＴＰＫ２と、を含む第２のＣＯを生成する。
【００５２】
Ｔ３１０では、端末１０は、Ｗｉ−ＦｉＩ／Ｆ１６を介して、第２のＣＯを含むＤＰＰ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅ（以下では、単に「ＣＲｅｓ」と記載する）をプリンタ１００に送信する。
【００５３】
プリンタ１００は、Ｔ３１０において、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、端末１０からＣＲｅｓを受信すると、Ｔ３１２において、当該ＣＲｅｓ内の第２のＣＯをメモリ１３４に記憶する。
【００５４】
また、プリンタ１００は、Ｔ３２０において、図３のＴ１０２で生成された公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１をメモリ１３４から削除する。そして、Ｔ３２２では、プリンタ１００は、後述する２回目のＢｏｏｔｓｔｒａｐｐｉｎｇ（図２のＴ６２、図７参照）のために、公開鍵ＰＰＫ１とは異なる公開鍵ＰＰＫ３と、秘密鍵ｐｓｋ１とは異なる秘密鍵ｐｓｋ３と、を生成する。具体的には、プリンタ１００は、プリンタ１００の通信量に関係する情報（例えば、Ｗｉ−ＦｉＩ／Ｆ１１６を介して受信されたパケットの総数、Ｗｉ−ＦｉＩ／Ｆ１１６を介して受信された情報の総データサイズ等）を利用して、擬似乱数を生成し、擬似乱数を利用して公開鍵ＰＰＫ３を生成する。このように、上記の通信量に関係する情報とＭＡＣアドレス「ａｂｃ」とを利用すれば、ユニークな擬似乱数を生成することができ、この結果、今までに生成されていない公開鍵ＰＰＫ３を適切に生成することができる。なお、変形例では、上記の通信量に関係する情報を利用せずに公開鍵ＰＰＫ３を生成してもよいし、プリンタ１００に関係するその他の情報（例えば、印刷枚数）を利用して公開鍵ＰＰＫ３を生成してもよい。また、プリンタ１００は、生成済みの公開鍵ＰＰＫ３を利用して、公開鍵ＰＰＫ３と対になる秘密鍵ｐｓｋ３を生成する。そして、プリンタ１００は、公開鍵ＰＰＫ３と秘密鍵ｐｓｋ３とをメモリ１３４に記憶する。
【００５５】
また、プリンタ１００は、Ｔ３２４において、プリンタ１００の動作状態を可能状態から不可能状態に移行させる。これにより、プリンタ１００において長時間に亘って可能状態が継続することを抑制することができる。即ち、Ｗｉ−ＦｉＩ／Ｆ１１６が外部から受信した信号をＣＰＵ１３２に供給する状態、即ち、ＣＰＵ１３２が外部から受信された信号を処理する状態が継続することを抑制できる。これにより、プリンタ１００の処理負荷を軽減することができる。Ｔ３２４の処理が終了すると、図５の処理が終了する。
【００５６】
（Ｎｅｔｗｏｒｋ  Ａｃｃｅｓｓ（ＮＡ）；図６）
続いて、図６を参照して、プリンタ１００とＡＰ６との間で実行される図２のＴ２０のＮＡの処理を説明する。上記のように、図２のＴ２〜Ｔ６の処理が端末１０及びＡＰ６の間で実行済みである。ただし、ＡＰ６は、図３のＴ１０２〜Ｔ１２４の処理を実行しない。ＡＰ６は、ＡＰ６の公開鍵ＡＰＫ１及び秘密鍵ａｓｋ１を予め記憶している。そして、ＡＰ６の公開鍵ＡＰＫ１と、ＡＰ６のＭＡＣアドレスと、をコード化することによって得られるＱＲコードが、ＡＰ６の筐体に貼り付けられている。端末１０が当該ＱＲコードを撮影することによって、端末１０及びＡＰ６の間で図３のＴ１３４以降の各処理と同様の各処理が実行される。この結果、ＡＰ６は、ＡＰ６の公開鍵ＡＰＫ２及び秘密鍵ａｓｋ２を記憶し（図４のＴ２０６参照）、さらに、端末１０から受信される第１のＣＯを記憶する（図５のＴ３１０参照）。第１のＣＯは、ＡＰ用ＳＣｏｎｔと、端末１０の公開鍵ＴＰＫ２と、を含む。当該公開鍵ＴＰＫ２は、第２のＣＯに含まれる公開鍵ＴＰＫ２と同じである。また、ＡＰ用ＳＣｏｎｔは、ハッシュ値ＨＶと、グループＩＤ「Ｇｒｏｕｐ１」と、ＡＰ６の公開鍵ＡＰＫ２と、電子署名ＤＳ２と、を含む。当該ハッシュ値ＨＶ及び当該グループＩＤ「Ｇｒｏｕｐ１」は、それぞれ、第２のＣＯに含まれるハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」と同じである。電子署名ＤＳ２は、ハッシュ値ＨＶとグループＩＤ「Ｇｒｏｕｐ１」と公開鍵ＡＰＫ２との組み合わせをハッシュ化することによって得られる特定値が端末１０の秘密鍵ｔｓｋ２によって暗号化された情報であり、第２のＣＯに含まれる電子署名ＤＳ１とは異なる値である。
【００５７】
プリンタ１００は、Ｔ４００において、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、プリンタ用ＳＣｏｎｔを含むＤＰＰ  Ｐｅｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｒｅｑｕｅｓｔ（以下では、単に「ＤＲｅｑ」と記載する）をＡＰ６に送信する。当該ＤＲｅｑは、認証の実行と、ＡＰ用ＳＣｏｎｔの送信と、をＡＰ６に要求する信号である。
【００５８】
ＡＰ６は、Ｔ４００において、プリンタ１００からＤＲｅｑを受信すると、ＤＲｅｑの送信元（即ちプリンタ１００）、及び、ＤＲｅｑ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＰＰＫ２）を認証するための処理を実行する。具体的には、ＡＰ６は、Ｔ４０２において、まず、受信済みのプリンタ用ＳＣｏｎｔ内のハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」が、それぞれ、記憶済みの第１のＣＯに含まれるＡＰ用ＳＣｏｎｔ内のハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」に一致するのか否かに関する第１のＡＰ判断処理を実行する。図６のケースでは、ＡＰ６は、第１のＡＰ判断処理で「一致する」と判断するので、ＤＲｅｑの送信元（即ちプリンタ１００）の認証が成功したと判断する。なお、受信済みのプリンタ用ＳＣｏｎｔ内のハッシュ値ＨＶと、記憶済みの第１のＣＯに含まれるＡＰ用ＳＣｏｎｔ内のハッシュ値ＨＶと、が一致するということは、プリンタ用ＳＣｏｎｔ及びＡＰ用ＳＣｏｎｔが、同じデバイス（即ち、端末１０）によって生成されたことを意味する。従って、ＡＰ６は、受信済みのプリンタ用ＳＣｏｎｔの生成元（即ち、端末１０）の認証が成功したとも判断する。さらに、ＡＰ６は、記憶済みの第１のＣＯに含まれる端末１０の公開鍵ＴＰＫ２を用いて、受信済みのプリンタ用ＳＣｏｎｔ内の電子署名ＤＳ１を復号する。図６のケースでは、電子署名ＤＳ１の復号が成功するので、ＡＰ６は、電子署名ＤＳ１を復号することによって得られた特定値と、受信済みのプリンタ用ＳＣｏｎｔ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＰＰＫ２）をハッシュ化することによって得られる値と、が一致するのか否かに関する第２のＡＰ判断処理を実行する。図６のケースでは、ＡＰ６は、第２のＡＰ判断処理で「一致する」と判断するので、ＤＲｅｑ内の各情報の認証が成功したと判断し、Ｔ４０４以降の処理を実行する。第２のＡＰ判断処理で「一致する」と判断されることは、第２のＣＯがプリンタ１００に記憶された後に、受信済みのプリンタ用ＳＣｏｎｔ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＰＰＫ２）が第三者によって改ざんされていないことを意味する。一方、第１のＡＰ判断処理で「一致しない」と判断される場合、電子署名ＤＳ１の復号が失敗する場合、又は、第２のＡＰ判断処理で「一致しない」と判断される場合には、ＡＰ６は、認証が失敗したと判断し、Ｔ４０４以降の処理を実行しない。
【００５９】
次いで、ＡＰ６は、Ｔ４０４において、ＥＣＤＨに従って、取得済みのプリンタ１００の公開鍵ＰＰＫ２と、記憶済みのＡＰ６の秘密鍵ａｓｋ２と、を用いて、接続キー（即ち共有鍵）ＣＫを生成する。
【００６０】
Ｔ４１０では、ＡＰ６は、ＡＰ用ＳＣｏｎｔを含むＤＰＰ  Ｐｅｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｒｅｓｐｏｎｓｅ（以下では、単に「ＤＲｅｓ」と記載する）をプリンタ１００に送信する。
【００６１】
プリンタ１００は、Ｔ４１０において、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＡＰ６からＤＲｅｓを受信すると、ＤＲｅｓの送信元（即ちＡＰ６）、及び、ＤＲｅｓ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＡＰＫ２）を認証するための処理を実行する。具体的には、プリンタ１００は、Ｔ４１２において、まず、受信済みのＡＰ用ＳＣｏｎｔ内のハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」が、それぞれ、記憶済みの第２のＣＯに含まれるプリンタ用ＳＣｏｎｔ内のハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」に一致するのか否かに関する第１のＰＲ判断処理を実行する。図６のケースでは、プリンタ１００は、第１のＰＲ判断処理で「一致する」と判断するので、ＤＲｅｓの送信元（即ちＡＰ６）の認証が成功したと判断する。なお、受信済みのＡＰ用ＳＣｏｎｔ内のハッシュ値ＨＶと、記憶済みの第２のＣＯに含まれるプリンタ用ＳＣｏｎｔ内のハッシュ値ＨＶと、が一致するということは、プリンタ用ＳＣｏｎｔ及びＡＰ用ＳＣｏｎｔが、同じデバイス（即ち、端末１０）によって生成されたことを意味する。従って、プリンタ１００は、受信済みのＡＰ用ＳＣｏｎｔの生成元（即ち、端末１０）の認証が成功したとも判断する。さらに、プリンタ１００は、記憶済みの第２のＣＯに含まれる端末１０の公開鍵ＴＰＫ２を用いて、受信済みのＡＰ用ＳＣｏｎｔ内の電子署名ＤＳ２を復号する。図６のケースでは、電子署名ＤＳ２の復号が成功するので、プリンタ１００は、電子署名ＤＳ２を復号することによって得られた特定値と、受信済みのＡＰ用ＳＣｏｎｔ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＡＰＫ２）をハッシュ化することによって得られる値と、が一致するのか否かに関する第２のＰＲ判断処理を実行する。図６のケースでは、プリンタ１００は、第２のＰＲ判断処理で「一致する」と判断するので、ＤＲｅｓ内の各情報の認証が成功したと判断し、Ｔ４１４以降の処理を実行する。第２のＰＲ判断処理で「一致する」と判断されることは、第１のＣＯがＡＰ６に記憶された後に、ＡＰ用ＳＣｏｎｔ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＡＰＫ２）が第三者によって改ざんされていないことを意味する。一方、第１のＰＲ判断処理で「一致しない」と判断される場合、電子署名ＤＳ２の復号が失敗する場合、又は、第２のＰＲ判断処理で「一致しない」と判断される場合には、プリンタ１００は、認証が失敗したと判断し、Ｔ４１４以降の処理を実行しない。
【００６２】
プリンタ１００は、Ｔ４１４において、ＥＣＤＨに従って、記憶済みのプリンタ１００の秘密鍵ｐｓｋ２と、受信済みのＡＰ用ＳＣｏｎｔ内のＡＰ６の公開鍵ＡＰＫ２と、を用いて、接続キーＣＫを生成する。ここで、Ｔ４０４でＡＰ６によって生成される接続キーＣＫと、Ｔ４１４でプリンタ１００によって生成される接続キーＣＫと、は同じである。これにより、Ｗｉ−Ｆｉ接続を確立するための接続キーＣＫがプリンタ１００及びＡＰ６の間で共有される。Ｔ４１４が終了すると、図６の処理が終了する。
【００６３】
上記のように、接続キーＣＫがプリンタ１００及びＡＰ６の間で共有された後に、図２のＴ３０において、プリンタ１００及びＡＰ６は、接続キーＣＫを利用して、４ｗａｙ−ｈａｎｄｓｈａｋｅの通信を実行する。この結果、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立される。
【００６４】
（２回目のＢｏｏｔｓｔｒａｐｐｉｎｇ（ＢＳ）；図７）
続いて、図７を参照して、図２のＴ６２においてプリンタ１００によって実行される２回目のＢＳの処理を説明する。図７の初期状態では、図２に示すように、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続が切断されている。さらに、図５のＴ３２２の処理によって、公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３がプリンタ１００のメモリ１３４に予め記憶されている。まず、プリンタ１００は、図３のＴ１０５〜Ｔ１２０と同様の処理を実行する。プリンタ１００は、設定画面内のＱＲコードボタンがユーザによって選択される場合（図３のＴ１２０参照）に、Ｔ５２１において、メモリ１３４内の公開鍵ＰＰＫ３と、ＭＡＣアドレス「ａｂｃ」と、をコード化することによって、ＱＲコードを生成する。プリンタ１００は、Ｔ５２２において、生成済みのＱＲコードを表示部１１４に表示させる。Ｔ５２４は、図３のＴ１２４と同様である。
【００６５】
Ｔ５３０、Ｔ５３２は、それぞれ、図３のＴ１３０、Ｔ１３２と同様である。端末５０は、Ｔ５３４において、Ｔ５３２で撮影したＱＲコードをデコードして、公開鍵ＰＰＫ３とＭＡＣアドレス「ａｂｃ」とを取得する。Ｔ５３６、Ｔ５４０は、それぞれ、図３のＴ１３６、Ｔ１４０と同様である。Ｔ５４０が終了すると、図７のＢＳの処理が終了する。
【００６６】
図７（即ち図２のＴ６２）のＢＳの処理が実行された後に、Ｔ６４〜Ｔ８０の処理が実行される。この結果、プリンタ１００とＡＰ８との間にＷｉ−Ｆｉ接続が確立される。
【００６７】
（本実施例の効果）
プリンタ１００が同じ公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１を利用し続けると、プリンタ１００の正規のユーザではない第三者によって公開鍵ＰＰＫ１が取得され得る。この場合、第三者は、プリンタ１００を第三者のＡＰに接続させることができ、プリンタ１００を不正に利用することができる。これを避けるために、本実施例では、プリンタ１００は、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１を利用したＢＳ及びＡｕｔｈが終了すると、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１を削除して、新たな公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３を生成する。これにより、第三者がプリンタ１００を不正に利用することを抑制することができる。
【００６８】
ここで、例えば、図５のＴ３２２の処理が実行されずに、図７のＢＳにおいて、設定画面内のＱＲコードボタンがユーザによって選択された後に、公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３が生成される比較例が想定される。この場合、ユーザは、設定画面内のＱＲコードボタンを選択した後に、公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３が生成されるのを待つ必要がある。これに対して、本実施例では、プリンタ１００は、図５のＣｏｎｆｉｇにおいて、公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３を生成してメモリ１３４に記憶する。即ち、プリンタ１００は、図７のＢＳにおいてＱＲコードボタンがユーザによって再び選択される前に、公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３を生成してメモリ１３４に予め記憶する（図５のＴ３２２）。このために、プリンタ１００は、ＱＲコードボタンがユーザによって再び選択される場合に、メモリ１３４内の公開鍵ＰＰＫ３を用いて得られるＱＲコードを表示部１１４に迅速に表示させることができる（図７のＴ５２２）。この結果、プリンタ１００とＡＰ８との間のＷｉ−Ｆｉ接続を迅速に確立することができる。本実施例によると、ユーザの利便性を向上させることができる。
【００６９】
（対応関係）
プリンタ１００、端末１０、ＡＰ６が、それぞれ、「通信装置」、「端末装置」、「外部装置」の一例である。表示部１１４、Ｗｉ−ＦｉＩ／Ｆ１１６が、それぞれ、「出力部」、「第１の無線インターフェース」の一例である。図３のＴ１２０においてＱＲコードボタンを選択することが、「所定の指示」の一例である。図３の公開鍵ＰＰＫ１が、「第１の公開鍵」の一例であり、Ｔ１２２のＱＲコードが、「第１の情報（及び第１のコード画像）」の一例である。図４のＴ２００のＡＲｅｑ、Ｔ２１０のＡＲｅｓが、それぞれ、「認証要求」、「認証応答」の一例である。図４のＴ２２６のＳｅｔｕｐ画面が、「実行中画面」の一例である。図５のＴ３０２の第２のＣＯが、「接続情報」の一例である。図５のＴ３１０において端末１０からＣＲｅｓが受信されることが、「所定条件が満たされる場合」の一例である。図５の公開鍵ＰＰＫ３が、「第２の公開鍵」の一例であり、図７のＴ５２２のＱＲコードが、「第２の情報（及び第２のコード画像）」の一例である。
【００７０】
図４のＴ２００の処理、Ｔ２１０の処理、図５のＴ３１０の処理、図２のＴ３０の処理、図５のＴ３２２の処理が、それぞれ、「認証要求受信部」、「認証応答送信部」、「接続情報受信部」、「確立部」、「公開鍵生成部」によって実現される処理の一例である。
【００７１】
（第２実施例）
本実施例では、プリンタ１００は、公開鍵を用いて得られるＱＲコードを表示するのに代えて（図３のＴ１２２）、ＱＲコードを含むＱＲ画像を印刷する。
【００７２】
（各処理の説明；図８〜図１０）
続いて、図８〜図１０を参照して、図２のＴ１２及びＴ１６において実行される各処理の詳細を説明する。
【００７３】
（図２のＴ１２のＢＳ（撮影されないケース）；図８）
図８を参照して、図２のＴ１２のＢＳにおいて、ＱＲコードが撮影されないケースを説明する。
【００７４】
Ｔ６００〜Ｔ６０６は、図３のＴ１００〜Ｔ１０６と同様である。Ｔ６０７で表示される設定画面は、ＱＲコードを表示するためのボタンに代えて、ＱＲ画像を印刷するためのコード印刷ボタンを含む。
【００７５】
プリンタ１００は、Ｔ６２０において、設定画面内のコード印刷ボタンの選択を受け付けると、Ｔ６２１において、メモリ１３４内の公開鍵ＰＰＫ１と、ＭＡＣアドレス「ａｂｃ」と、をコード化することによって、接続用ＱＲコードを生成する。そして、プリンタ１００は、Ｔ６２２において、接続用ＱＲコードと、アプリダウンロード用ＱＲコードと、印刷日時と、有効期間と、を含むＱＲ画像の印刷を印刷実行部１１８に実行させる。
【００７６】
アプリダウンロード用ＱＲコードは、アプリ４０のインターネット上の位置、即ち、アプリ４０を記憶しているサーバのＵＲＬ（Uniform Resource Locatorの略）がコード化されることによって得られるコード画像である。例えば、端末１０は、カメラ１５を利用して、ＱＲ画像内のアプリダウンロード用ＱＲコードを撮影すると、撮影済みのアプリダウンロード用ＱＲコードをデコードして、ＵＲＬを取得する。そして、端末１０は、取得済みのＵＲＬを利用してサーバにアクセスして、サーバからアプリ４０をインストールする。これにより、ユーザは、アプリ４０が端末１０にインストールされていない状況でも、アプリ４０を端末１０にインストールしてプリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させることができる。
【００７７】
印刷日時は、ＱＲ画像が印刷された日時を示す。有効期間は、公開鍵ＰＰＫ１を利用可能な期間を示す。有効期間は、例えば、印刷日時から１時間が経過するまでの期間である。接続用ＱＲコードを含む印刷物が第三者によって取得されると、プリンタ１００の公開鍵ＰＰＫ１が第三者によって取得される。本実施例のように公開鍵ＰＰＫ１の有効期間を設けると、公開鍵ＰＰＫ１が第三者によって取得されることを抑制することができる。
【００７８】
Ｔ６２４は、図３のＴ１２４と同様である。本ケースでは、ＱＲ画像が印刷された後に、端末１０によって接続用ＱＲコードが撮影されずに有効期間が経過する。この場合、プリンタ１００は、Ａｕｔｈの処理等を実行することなく、Ｔ７２０Ａにおいて、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１をメモリ１３４から削除する。そして、Ｔ７２２Ａでは、プリンタ１００は、公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３を生成してメモリ１３４に記憶する。Ｔ７２４Ａは、図５のＴ３２４と同様である。
【００７９】
本ケースによれば、公開鍵ＰＰＫ３等が有効期間の経過時に生成されるので、設定画面内のコード印刷ボタンが再び選択される際に、公開鍵ＰＰＫ３を用いて得られる接続用ＱＲコードを含むＱＲ画像を迅速に印刷することができる。ユーザの利便性を向上させることができる。
【００８０】
（図２のＴ１２のＢＳ（撮影されるケース）；図９）
図９を参照して、印刷されたＱＲ画像内のＱＲコードが撮影されるケースにおける１回目のＢＳの処理を説明する。
【００８１】
Ｔ６００〜Ｔ６２４は、図８と同様である。本ケースでは、有効期間が経過する前に、端末１０によってＱＲ画像内の接続用ＱＲコードが撮影される。具体的には、Ｔ６３０は、図３のＴ１３０と同様であり、Ｔ６３２は、ＱＲ画像内の接続用ＱＲコードが撮影される点を除いて、図３のＴ１３２と同様である。Ｔ６３４〜Ｔ６４０は、図３のＴ１３４〜Ｔ１４０と同様である。これにより、図２のＴ１４のＡｕｔｈの処理（図４参照）が実行される。
【００８２】
（Ｃｏｎｆｉｇｕｒａｔｉｏｎ；図１０）
図１０を参照して、Ａｕｔｈの処理に続いて実行される図２のＴ１６のＣｏｎｆｉｇの処理を説明する。
【００８３】
図１０のケースＣ１では、Ｃｏｎｆｉｇの処理が完了した後に有効期間が経過する。具体的には、Ｔ７００Ｂ〜Ｔ７１２Ｂは、図５のＴ３００〜Ｔ３１２と同様である。Ｔ７１２Ｂの処理が終了することによって、Ｃｏｎｆｉｇの処理が完了する。そして、プリンタ１００は、Ｔ７１２Ｂの処理が終了した後（即ち、端末１０から第２のＣＯを含むＣＲｅｓを受信して記憶した後）に、有効期間が経過する場合に、Ｔ７２０Ｂ〜Ｔ７２４Ｂの処理を実行する。Ｔ７２０Ｂ〜Ｔ７２４Ｂは、図８のＴ７２０Ａ〜Ｔ７２４Ａと同様である。その後、図２のＴ２０及びＴ３０が実行されて、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立される。
【００８４】
ケースＣ１でも、図８のケースと同様に、公開鍵ＰＰＫ３等が有効期間の経過時に生成される。このために、設定画面内のコード印刷ボタンが再び選択される際に、接続用ＱＲコードを含むＱＲ画像を迅速に印刷することができる。
【００８５】
図１０のケースＣ２では、Ｃｏｎｆｉｇの処理が完了する前に有効期間が経過する。具体的には、Ｔ７００ＣにおいてＣＲｅｑが端末１０に送信された後であって、Ｔ７１０Ｃにおいて端末１０からＣＲｅｓが受信される前に、有効期間が経過する。この場合、プリンタ１００は、公開鍵ＰＰＫ１の削除及び公開鍵ＰＰＫ３の生成を実行しない。そして、プリンタ１００は、Ｔ７１０Ｃにおいて、端末１０からＣＲｅｓを受信すると、Ｔ７１２Ｃにおいて、ＣＲｅｓ内の第２のＣＯをメモリ１３４に記憶して、Ｔ７２０Ｂ〜Ｔ７２４Ｂと同様の処理を実行する。なお、例えば、Ａｕｔｈの処理の途中で有効期間が経過する場合も、プリンタ１００は、公開鍵ＰＰＫ１の削除及び公開鍵ＰＰＫ３の生成を実行せずに、端末１０からＣＲｅｓを受信する場合に、公開鍵ＰＰＫ１の削除及び公開鍵ＰＰＫ３の生成を実行する。
【００８６】
例えば、Ａｕｔｈの処理及びＣｏｎｆｉｇの処理の途中で有効期間が経過することに起因して公開鍵ＰＰＫ１が削除されると、Ａｕｔｈの処理及びＣｏｎｆｉｇの処理を継続することが不可能になり得る。本実施例では、Ｃｏｎｆｉｇの処理が完了する前に有効期間が経過しても公開鍵ＰＰＫ１が削除されないので、Ａｕｔｈの処理及びＣｏｎｆｉｇの処理を適切に実行することができる。また、プリンタ１００は、端末１０からＣＲｅｓを受信すると（Ｔ７１０Ｃ）公開鍵ＰＰＫ３を生成するので、設定画面内のコード印刷ボタンが再び選択される際に、接続用ＱＲコードを含むＱＲ画像を迅速に印刷することができる。
【００８７】
（対応関係）
図８のＴ６２０においてコード印刷ボタンを選択することが、「所定の指示」の一例である。有効期間、接続アプリケーション４０が、それぞれ、「所定期間」、「アプリケーションプログラム」の一例である。有効期間が経過することが、「所定の条件が満たされる場合」の一例である。
【００８８】
（第３実施例）
本実施例では、プリンタ１００は、公開鍵を用いて得られるＱＲコードを表示又は印刷するのに代えて、Ｂｌｕｅｔｏｏｔｈ（登録商標）を利用して公開鍵ＰＰＫ１を含む信号を送信する。
【００８９】
本実施例では、図１に示すように、プリンタ１００は、Ｂｌｕｅｔｏｏｔｈインターフェース１２０（以下では「ＢＴＩ／Ｆ１２０」と記載する）を備える。ＢＴＩ／Ｆ１２０は、Ｂｌｕｅｔｏｏｔｈ方式（以下では「ＢＴ方式」と記載）に従った無線通信を実行するためのＩ／Ｆである。ＢＴ方式は、例えば、ＩＥＥＥ８０２．１５．１の規格、及び、それに準ずる規格に基づく無線通信方式である。より具体的に言うと、ＢＴＩ／Ｆ２２は、ＢＬＥ（Bluetooth Low Energyの略）をサポートしている。ＢＬＥは、ＢＴ方式のバージョン４．０以降のバージョンで実現されている規格である。ＢＬＥでは、後述するＡｄｖｅｒｔｉｓｅ信号を利用可能である。また、端末１０も、プリンタ１００のＢＴＩ／Ｆ１２０と同様のＢＴＩ／Ｆ２０を備える。
【００９０】
Ｗｉ−Ｆｉ方式とＢＴ方式との相違点を記述しておく。Ｗｉ−Ｆｉ通信の通信速度（例えば最大の通信速度が６００Ｍｂｐｓ）は、ＢＴ通信の通信速度（例えば最大の通信速度が２４Ｍｂｐｓ）よりも速い。Ｗｉ−Ｆｉ通信における搬送波の周波数は、２．４ＧＨｚ帯又は５．０ＧＨｚ帯である。ＢＴ通信における搬送波の周波数は、２．４ＧＨｚ帯である。即ち、Ｗｉ−Ｆｉ通信における搬送波の周波数として５．０ＧＨｚ帯が採用される場合には、Ｗｉ−Ｆｉ通信における搬送波の周波数とＢＴ通信における搬送波の周波数とは異なる。また、Ｗｉ−Ｆｉ通信を実行可能な最大の距離（例えば約２５０ｍ）は、ＢＴ通信を実行可能な最大の距離（例えば約１００ｍ）よりも大きい。
【００９１】
（本実施例の処理；図１１）
図１１を参照して、本実施例の処理を説明する。図１１の初期状態では、プリンタ１００が出荷されてからプリンタ１００の電源が一度も投入されていない。また、端末１０とＡＰ６との間にＷｉ−Ｆｉ接続が確立されている。さらに、端末１０とＡＰ６との間で図２のＴ２〜Ｔ６の処理が実行済みである。
【００９２】
プリンタ１００は、Ｔ８００において、ユーザから電源投入操作を受け付けると、図３のＴ１０２〜Ｔ１０６と同様の処理を実行する。Ｔ８０７で表示される設定画面は、ＱＲコードの表示又は印刷を実行するためのボタンに代えて、ＡＰ６とのＷｉ−Ｆｉ接続を確立するための処理をプリンタ１００に実行させるための接続実行ボタンを含む点。
【００９３】
プリンタ１００は、Ｔ８２０において、設定画面内の接続実行ボタンの選択を受け付けると、Ｔ８２２において、ＢＴＩ／Ｆ１２０を介して、公開鍵ＰＰＫ１とＭＡＣアドレス「ａｂｃ」とを含むＡｄｖｅｒｔｉｓｅ信号をブロードキャストによって送信する。Ａｄｖｅｒｔｉｓｅ信号は、プリンタ１００の周囲の機器にプリンタ自身の存在を知らせるための信号である。Ｔ８２４は、図３のＴ１２４と同様である。
【００９４】
端末１０は、Ｔ８２２において、ＢＴＩ／Ｆ２０を介して、プリンタ１００からＡｄｖｅｒｔｉｓｅ信号を受信する。これにより、端末１０は、Ａｄｖｅｒｔｉｓｅ信号内の情報（即ち、公開鍵ＰＰＫ１とＭＡＣアドレス「ａｂｃ」）を取得する。Ｔ８３６、Ｔ８４０は、それぞれ、図３のＴ１３６、Ｔ１４０と同様である。Ｔ９１４〜Ｔ９３０は、図２のＴ１４〜Ｔ３０と同様である。これにより、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立される。
【００９５】
また、端末１０は、Ｔ９５０、Ｔ９５２において、プリンタ１００がＡＰ６によって形成される無線ネットワークに子局として参加したのか否かを判断する。具体的には、端末１０は、Ｔ９５０において、Ｗｉ−ＦｉＩ／Ｆ１６を介して、ブロードキャストの確認信号をＡＰ６に送信する。これにより、ＡＰ６とのＷｉ−Ｆｉ接続を確立している全ての子局に確認信号が送信される。上記のように、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立されているので、プリンタ１００は、Ｔ９５０において、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＡＰ６から確認信号を受信する。この場合、プリンタ１００は、Ｔ９５２において、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、確認信号に対する応答信号をＡＰ６に送信する。当該応答信号は、ＭＡＣアドレス「ａｂｃ」を含む。
【００９６】
ＡＰ６は、Ｔ９５２において、プリンタ１００から応答信号を受信する。ただし、ＡＰ６は、プリンタ１００のみならず、他の子局からの応答信号を受信し得る。この場合、ＡＰ６は、Ｔ９５２において、各子局から受信される各応答信号を端末１０に送信する。
【００９７】
端末１０は、Ｔ９５２において、Ｗｉ−ＦｉＩ／Ｆ１６を介して、ＡＰ６から各応答信号を受信する。この場合、端末１０は、受信済みの各応答信号の中に、Ｔ８２２で取得されたプリンタ１００のＭＡＣアドレス「ａｂｃ」を含む応答信号が存在するのか否かを判断する。本ケースでは、ＭＡＣアドレス「ａｂｃ」を含む応答信号が存在するので、端末１０は、プリンタ１００がＡＰ６によって形成される無線ネットワークに子局として参加したと判断する。そして、端末１０は、Ｔ９５４において、Ｗｉ−ＦｉＩ／Ｆ１６を介して、ＡＰ６を経由して、完了通知をプリンタ１００に送信する。完了通知は、端末１０及びプリンタ１００が同じＡＰ６とのＷｉ−Ｆｉ接続を確立している状態となったことを示す通知である。
【００９８】
プリンタ１００は、Ｔ９５４において、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＡＰ６を経由して、端末１０から完了通知を受信すると、端末１０及びプリンタ１００が同じＡＰ６とのＷｉ−Ｆｉ接続を確立している状態となったこと、即ち、ＡＰ６を経由して端末１０と通信可能であると判断して、Ｔ９５６以降の処理を実行する。Ｔ９５６は、図５のＴ３２４と同様である。Ｔ９５８では、プリンタ１００は、Ａｄｖｅｒｔｉｓｅ信号の送信を停止する。これにより、プリンタ１００の処理負荷を低減することができる。
【００９９】
また、プリンタ１００は、Ｔ９５４において、端末１０から完了通知を受信すると、Ｔ９６０において、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１を削除し、Ｔ９６２において、公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３を生成する。
【０１００】
以上の処理が実行されると、端末１０及びプリンタ１００が同じＡＰ６とのＷｉ−Ｆｉ接続を確立している状態になる。この場合、プリンタ１００は、Ｔ９７０において、端末１０からＡＰ６を経由して印刷データを受信することができる。この結果、プリンタ１００は、Ｔ９７２において、当該印刷データに従った印刷を実行することができる。
【０１０１】
本実施例によると、プリンタ１００は、ＡＰ６とプリンタ１００との間にＷｉ−Ｆｉ接続が確立されて、端末１０と通信可能であると判断する場合（Ｔ９５２）に、公開鍵ＰＰＫ３及び秘密鍵ｐｓｋ３を生成してメモリ１３４に記憶する（Ｔ９６２）。このような構成によれば、設定画面内の接続実行ボタンがユーザによって再び選択される場合に、公開鍵ＰＰＫ３を含むＡｄｖｅｒｔｉｓｅ信号を迅速に送信することができる。このために、ユーザの利便性を向上させることができる。
【０１０２】
一方、プリンタ１００は、Ｔ９５０で応答信号を送信してから所定時間が経過しても端末１０から完了通知を受信しない場合に、ＡＰ６を経由して端末１０と通信可能でないと判断する。例えば、端末１０とＡＰ６との間のＷｉ−Ｆｉ接続が切断されてしまった場合には、応答信号が端末１０によって受信されないので、プリンタ１００は、完了通知を受信することができない。この場合、プリンタ１００は、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１を削除しない。これにより、端末１０及びプリンタ１００が同じＡＰ６とのＷｉ−Ｆｉ接続を確立している状態となるまで、公開鍵ＰＰＫ１を含むＡｄｖｅｒｔｉｓｅ信号の送信を継続することができる。
【０１０３】
（対応関係）
公開鍵ＰＰＫ１、公開鍵ＰＰＫ３が、それぞれ、「第１の情報」、「第２の情報」の一例である。ＢＴＩ／Ｆ１２０が、「第２の無線インターフェース」の一例である。図１１のＴ９５２において応答信号を受信することが、「所定条件が満たされる場合」の一例である。
【０１０４】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【０１０５】
（変形例１）上記の第１実施例では、プリンタ１００は、公開鍵ＰＰＫ１を用いて得られるＱＲコードを表示する（図３のＴ１２２、図７のＴ５２２）。これに代えて、プリンタ１００は、公開鍵ＰＰＫ１（又はＰＰＫ３）を用いて得られるバーコードを表示してもよい。本変形例では、バーコードが、「第１の情報（及び第１のコード画像）」、「第２の情報（及び第２のコード画像）」の一例である。
【０１０６】
（変形例２）上記の第１実施例では、プリンタ１００は、端末１０からＣＲｅｓが受信される場合に、公開鍵ＰＰＫ３を生成する（図５のＴ３２２）。これに代えて、プリンタ１００は、図４のＴ２１０において、ＡＲｅｓを端末１０に送信する場合に、公開鍵ＰＰＫ３を生成してもよい。一般的に言えば、認証応答が端末装置に送信される場合に、所定条件が満たされてもよい。また、上記の構成に代えて、プリンタ１００は、図４のＴ２２６が実行された後に、公開鍵ＰＰＫ３を生成してもよいし、操作部１１２に対するユーザの所定操作に応じてＱＲコードの表示が停止する場合に、公開鍵ＰＰＫ３を生成してもよい。一般的に言えば、出力部が前記第１の情報の出力を停止する場合に、所定条件が満たされてもよい。
【０１０７】
（変形例３）図４のＴ２２６の処理は実行されなくてもよい。一般的に言えば、出力部は、第１の情報の出力を停止しなくてもよい。また、本変形例では、「画面表示制御部」を省略可能である。
【０１０８】
（変形例４）上記の第１実施例では、プリンタ１００は、Ｔ３２２の前に、Ｔ２２６の処理を実行する。これに代えて、プリンタ１００は、Ｔ３２２の後に、Ｔ２２６の処理を実行してもよい。一般的に言えば、出力部が第１の情報の出力を停止する前に、所定条件が満たされてもよい。
【０１０９】
（変形例５）上記の第１実施例では、プリンタ１００は、設定画面内のＱＲコードボタンがユーザによって選択される場合に、ＱＲコードを生成する（図３のＴ１２１）。これに代えて、プリンタ１００は、ＱＲコードボタンの選択の前に、ＱＲコードを生成してもよい。本変形例では、「第１の画像生成部」、「第２の画像生成部」を省略可能である。
【０１１０】
（変形例６）上記の第２実施例では、プリンタ１００は、有効期間を含むＱＲ画像の印刷を実行する。これに代えて、プリンタ１００は、有効期間が終了する日時を含むＱＲ画像の印刷を実行してもよい。本変形例では、有効期間が終了する日時が、「所定期間を示す情報」の一例である。
【０１１１】
（変形例７）上記の第２実施例では、プリンタ１００は、アプリダウンロード用ＱＲコードを含むＱＲ画像の印刷を実行する。これに代えて、プリンタ１００は、サーバのＵＲＬ、接続アプリケーション４０のアプリ名等を含むＱＲ画像の印刷を実行してもよい。本変形例では、ＵＲＬ、アプリ名が、「アプリケーションプログラムに関係する情報」の一例である。
【０１１２】
（変形例８）ＱＲ画像は、有効期間を含まなくてもよい。本変形例では、所定期間を示す情報の印刷を省略可能である。また、ＱＲ画像は、アプリダウンロード用ＱＲコードを含まなくてもよい。本変形例では、アプリケーションプログラムに関係する情報の印刷を省略可能である。
【０１１３】
（変形例９）図１０のケースＣ２の処理は実行されなくてもよい。一般的に言えば、端末装置から認証要求が受信された後であって、端末装置から接続情報が受信される前に、所定期間が経過することに起因して所定条件が満たされる場合に、第２の公開鍵が生成されてもよい。
【０１１４】
（変形例１０）上記の第３実施例では、プリンタ１００は、端末１０から完了通知を受信する場合に、プリンタ１００と端末１０とがＡＰ６を経由して通信可能であると判断する（図１１のＴ９５４）。これに代えて、プリンタ１００は、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＡＰ６を経由して、確認信号を端末１０に送信し、端末１０から確認信号に対する応答信号を受信する場合に、プリンタ１００と端末１０とがＡＰ６を経由して通信可能であると判断してもよい。本変形例では、端末１０から応答信号を受信することが、「通信装置と端末装置とが外部装置を経由して通信可能である場合」の一例である。
【０１１５】
（変形例１１）「第２の無線インターフェース」は、ＢＴＩ／Ｆ１２０に限らず、例えば、ＮＦＣ（Near Field Communicationの略）、赤外線通信、トランスファージェット等の他の通信方式に従った無線通信を実行するためのＮＦＣＩ／Ｆであってもよい。また、「第２の無線インターフェース」は「第１の無線インターフェース」と同じであってもよい。具体的には、プリンタ１００は、Ｗｉ−ＦｉＩ／Ｆ１１６のインバンドの機能を利用して、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、公開鍵ＰＰＫ１を端末１０に送信してもよい（図１１のＴ８２２参照）。
【０１１６】
（変形例１２）上記の第３実施例では、プリンタ１００は、プリンタ１００と端末１０とがＡＰ６を経由して通信可能であると判断する場合（図１１のＴ９５４）に、公開鍵ＰＰＫ３を生成する（Ｔ９６２）。これに代えて、プリンタ１００は、Ｔ９５０〜Ｔ９５４の処理を実行せず、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立される場合（Ｔ９３０）に、公開鍵ＰＰＫ３を生成してもよい。一般的に言えば、「所定条件が満たされること」は、通信装置と端末装置とが外部装置を経由して通信可能であることを含まなくてもよい。
【０１１７】
（変形例１３）図１１のＴ９３２の処理は実行されなくてもよい。本変形例では、「停止部」を省略可能である。
【０１１８】
（変形例１４）「所定の指示」は、操作部１１２に対する所定操作（例えば、設定画面内のＱＲコードボタンの選択（図３のＴ１２０））がユーザによって実行されることに限らず、例えば、端末１０から特定の信号を受信することであってもよい。特定の信号は、例えば、Ｗｉ−Ｆｉ方式に従ったＰｒｏｂｅ要求信号、ＢＴ方式に従ったＡｄｖｅｒｔｉｓｅ信号、ＮＦＣ方式に従ったＰｏｌｌｉｎｇ信号等である。
【０１１９】
（変形例１５）図２のＴ２０において、端末１０とプリンタ１００との間でＮＡの処理が実行されて、端末１０とプリンタ１００との間でＷｉ−Ｆｉ接続が確立されてもよい。即ち、「外部装置」は、「端末装置」と同じであってもよい。
【０１２０】
（変形例１６）図３のＴ１２４の処理は実行されなくてもよい。本変形例では、「第１の状態移行部」を省略可能である。また、図５のＴ３２４の処理は実行されなくてもよい。本変形例では、「第２の状態移行部」を省略可能である。
【０１２１】
（変形例１７）図３のＴ１０２の処理は実行されなくてもよい。例えば、公開鍵ＰＰＫ１は、プリンタ１００の出荷段階からメモリ１３４に予め記憶されていてもよい。一般的に言えば、第１の公開鍵は、通信装置の電源が投入される際に生成されなくてもよい。
【０１２２】
（変形例１８）「通信装置」は、プリンタでなくてもよく、スキャナ、多機能機、携帯端末、ＰＣ、サーバ等の他のデバイスであってもよい。
【０１２３】
（変形例１９）上記の各実施例では、図２〜図１１の各処理がソフトウェア（即ちプログラム１３６）によって実現されるが、これらの各処理のうちの少なくとも１つが論理回路等のハードウェアによって実現されてもよい。
【０１２４】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【０１２５】
２：通信システム、１０：端末、１５：カメラ、１６：Ｗｉ−ＦｉＩ／Ｆ、２０：ＢＴＩ／Ｆ、４０：接続アプリケーション、５０：端末、７０：端末、１００：プリンタ、１１２：操作部、１１４：表示部、１１６：Ｗｉ−ＦｉＩ／Ｆ、１１８：印刷実行部、１２０：ＢＴＩ／Ｆ、１３０：制御部、１３２：ＣＰＵ、１３４：メモリ、１３６：プログラム、ＡＰＫ１、ＡＰＫ２：公開鍵、ａｓｋ１、ａｓｋ２：秘密鍵、ＣＫ：接続キー、ＤＳ１、ＤＳ２：電子署名、ＥＤ１、ＥＤ２：暗号化データ、ＨＶ：ハッシュ値、ＰＰＫ１、ＰＰＫ２、ＰＰＫ３：公開鍵、ｐｓｋ１、ｐｓｋ２、ｐｓｋ３：秘密鍵、ＲＶ１、ＲＶ２：ランダム値、ＳＫ１、ＳＫ２：共有鍵、ＴＰＫ１、ＴＰＫ２：公開鍵、ｔｓｋ１、ｔｓｋ２：秘密鍵
【図１】
2019205021.tif 000003
【図２】
2019205021.tif 000004
【図３】
2019205021.tif 000005
【図４】
2019205021.tif 000006
【図５】
2019205021.tif 000007
【図６】
2019205021.tif 000008
【図７】
2019205021.tif 000009
【図８】
2019205021.tif 000010
【図９】
2019205021.tif 000011
【図１０】
2019205021.tif 000012
【図１１】
2019205021.tif 000013