(57)【要約】【課題】  印刷が行える場所を制限することのできるプリンタ及び印刷クライアントを提供する。【解決手段】  印刷クライアント２０とプリンタ３０は、それぞれ、設置時の位置情報に依存した公開鍵を生成し、保持しておく。また、印刷クライアント２０とプリンタ３０は、それぞれ、乱数を生成するとともに、お互いに相手の公開鍵でこの乱数を暗号化して、相手に送信する。暗号化された乱数を受信した印刷クライアント２０とプリンタ３０では、それぞれ、その時点の位置情報に依存した秘密鍵を生成し、この秘密鍵を用いて、暗号化された乱数を復号して、乱数を取得する。この取得した相手の乱数と自らが生成した乱数とを用いて共通鍵を生成することにより、印刷クライアント２０とプリンタ３０とが同じ共通鍵を保持することなる。そして、印刷クライアント２０は、印刷データをこの共通鍵で暗号化して送信し、プリンタ３０ではこれを共通鍵で復号する。【選択図】  図１
2005138418.tif 000002
【特許請求の範囲】
【請求項１】
印刷データに基づいて印刷を行うプリンタであって、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報をプリンタ位置情報取得手段から取得し、これを第１プリンタ位置情報とする、第１プリンタ位置情報取得手段と、
前記第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成する、プリンタ公開鍵生成手段と、
前記プリンタ公開鍵生成手段で生成したプリンタ公開鍵を保持する、プリンタ公開鍵保持手段と、
印刷クライアントからの要求に応じて、前記プリンタ公開鍵保持手段に保持されているプリンタ公開鍵を印刷クライアントに送信する、プリンタ公開鍵送信手段と、
前記印刷クライアントから、前記プリンタ公開鍵を用いてクライアント乱数を暗号化することにより生成された暗号化クライアント乱数を受信する、暗号化クライアント乱数受信手段と、
前記プリンタ位置情報取得手段からプリンタ位置情報を取得し、これを第２プリンタ位置情報とする、第２プリンタ位置情報取得手段と、
前記第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成する、プリンタ秘密鍵生成手段と、
前記プリンタ秘密鍵を用いて、前記暗号化クライアント乱数を復号して、クライアント乱数を取得する、クライアント乱数取得手段と、
プリンタ乱数を生成する、プリンタ乱数生成手段と、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成する、共通鍵生成手段と、
前記印刷クライアントから、印刷データを暗号化することにより生成された暗号化印刷データを受信する、暗号化印刷データ受信手段と、
前記共通鍵を用いて、前記暗号化印刷データを復号し、印刷データを取得する、印刷データ取得手段と、
を備えることを特徴とするプリンタ。
【請求項２】
前記印刷クライアントから、クライアント公開鍵を受信する、クライアント公開鍵受信手段と、
前記クライアント公開鍵を用いて、前記プリンタ乱数を暗号化することにより、暗号化プリンタ乱数を生成する、暗号化プリンタ乱数生成手段と、
前記暗号化プリンタ乱数を前記印刷クライアントに送信する、暗号化プリンタ乱数送信手段と、
を備えることを特徴とする請求項１に記載のプリンタ。
【請求項３】
前記暗号化クライアント乱数受信手段で前記暗号化クライアント乱数を受信した後、及び／又は、前記暗号化印刷データ受信手段で前記暗号化印刷データを受信した後に、前記第２プリンタ位置情報取得手段は、前記プリンタ位置情報取得手段からプリンタ位置情報を取得する、ことを特徴とする請求項１又は請求項２に記載のプリンタ。
【請求項４】
前記プリンタ公開鍵生成手段で、前記プリンタ公開鍵を生成する際にプリンタ秘密鍵が生成された場合でも、このプリンタ秘密鍵は保存されることなく破棄される、ことを特徴とする請求項１乃至請求項３のいずれかに記載のプリンタ。
【請求項５】
前記プリンタ秘密鍵生成手段で、前記プリンタ秘密鍵を生成する際にプリンタ公開鍵が生成された場合でも、このプリンタ公開鍵は保存されることなく破棄される、ことを特徴とする請求項１乃至請求項４のいずれかに記載のプリンタ。
【請求項６】
前記プリンタ秘密鍵生成手段で生成された前記プリンタ秘密鍵は、前記クライアント乱数取得手段で前記暗号化クライアント乱数を復号した後に、破棄される、ことを特徴とする請求項１乃至請求項５のいずれかに記載のプリンタ。
【請求項７】
前記共通鍵生成手段で生成された前記共通鍵は、前記印刷データ取得手段で前記暗号化印刷データを復号した後に、破棄される、ことを特徴とする請求項１乃至請求項６のいずれかに記載のプリンタ。
【請求項８】
前記プリンタ公開鍵生成手段は、前記第１プリンタ位置情報に加えて、当該プリンタの固有の情報である機器固有情報を含むパスフレーズを用いて、プリンタ公開鍵を生成するとともに、
前記プリンタ秘密鍵生成手段も、前記第２プリンタ位置情報に加えて、前記機器固有情報を含むパスフレーズを用いて、プリンタ秘密鍵を生成する、
ことを特徴とする請求項１乃至請求項７のいずれかに記載のプリンタ。
【請求項９】
印刷データに基づいて印刷を行うプリンタの制御方法であって、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報をプリンタ位置情報取得手段から取得し、これを第１プリンタ位置情報とするステップと、
前記第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成するステップと、
前記生成したプリンタ公開鍵を、プリンタ公開鍵保持手段に保持させるステップと、
印刷クライアントからの要求に応じて、前記プリンタ公開鍵保持手段に保持されているプリンタ公開鍵を印刷クライアントに送信するステップと、
前記印刷クライアントから、前記プリンタ公開鍵を用いてクライアント乱数を暗号化することにより生成された暗号化クライアント乱数を受信するステップと、
前記プリンタ位置情報取得手段からプリンタ位置情報を取得し、これを第２プリンタ位置情報とするステップと、
前記第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成するステップと、
前記プリンタ秘密鍵を用いて、前記暗号化クライアント乱数を復号して、クライアント乱数を取得するステップと、
プリンタ乱数を生成するステップと、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成するステップと、
前記印刷クライアントから、印刷データを暗号化することにより生成された暗号化印刷データを受信するステップと、
前記共通鍵を用いて、前記暗号化印刷データを復号し、印刷データを取得するステップと、
を備えることを特徴とするプリンタの制御方法。
【請求項１０】
印刷データを生成する印刷クライアントであって、
当該印刷クライアントの設置されている場所を特定するためのクライアント位置情報をプリンタ位置情報取得手段から取得し、これを第１クライアント位置情報とする、第１クライアント位置情報取得手段と、
前記第１クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント公開鍵を生成する、クライアント公開鍵生成手段と、
前記クライアント公開鍵生成手段で生成したクライアント公開鍵を保持する、クライアント公開鍵保持手段と、
プリンタからの要求に応じて、前記クライアント公開鍵保持手段に保持されているクライアント公開鍵をプリンタに送信する、クライアント公開鍵送信手段と、
前記プリンタから、前記クライアント公開鍵を用いてプリンタ乱数を暗号化することにより生成された暗号化プリンタ乱数を受信する、暗号化プリンタ乱数受信手段と、
前記クライアント位置情報取得手段からクライアント位置情報を取得し、これを第２クライアント位置情報とする、第２クライアント位置情報取得手段と、
前記第２クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント秘密鍵を生成する、クライアント秘密鍵生成手段と、
前記クライアント秘密鍵を用いて、前記暗号化プリンタ乱数を復号して、プリンタ乱数を取得する、プリンタ乱数取得手段と、
クライアント乱数を生成する、クライアント乱数生成手段と、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成する、共通鍵生成手段と、
前記共通鍵を用いて、印刷データを暗号化することにより、暗号化印刷データを生成する、暗号化印刷データ生成手段と、
前記プリンタに前記暗号化印刷データを送信する、暗号化印刷データ送信手段と、
を備えることを特徴とする印刷クライアント。
【請求項１１】
印刷データを生成する印刷クライアントの制御方法であって、
当該印刷クライアントの設置されている場所を特定するためのクライアント位置情報をプリンタ位置情報取得手段から取得し、これを第１クライアント位置情報とするステップと、
前記第１クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント公開鍵を生成するステップと、
前記生成したクライアント公開鍵を、クライアント公開鍵保持手段に保持させるステップと、
プリンタからの要求に応じて、前記クライアント公開鍵保持手段に保持されているクライアント公開鍵をプリンタに送信するステップと、
前記プリンタから、前記クライアント公開鍵を用いてプリンタ乱数を暗号化することにより生成された暗号化プリンタ乱数を受信するステップと、
前記クライアント位置情報取得手段からクライアント位置情報を取得し、これを第２クライアント位置情報とするステップと、
前記第２クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント秘密鍵を生成するステップと、
前記クライアント秘密鍵を用いて、前記暗号化プリンタ乱数を復号して、プリンタ乱数を取得するステップと、
クライアント乱数を生成するステップと、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成するステップと、
前記共通鍵を用いて、印刷データを暗号化することにより、暗号化印刷データを生成するステップと、
前記プリンタに前記暗号化印刷データを送信するステップと、
を備えることを特徴とする印刷クライアントの制御方法。
【請求項１２】
印刷データに基づいて印刷を行うプリンタと、このプリンタに接続される印刷クライアントとを有する、印刷システムであって、
前記プリンタは、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報をプリンタ位置情報取得手段から取得し、これを第１プリンタ位置情報とする、第１プリンタ位置情報取得手段と、
前記第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成する、プリンタ公開鍵生成手段と、
前記プリンタ公開鍵生成手段で生成したプリンタ公開鍵を保持する、プリンタ公開鍵保持手段と、
を備えており、
前記印刷クライアントは、前記プリンタ公開鍵の送信を要求するプリンタ公開鍵送信要求を、前記プリンタに送信する、プリンタ公開鍵送信要求送信手段を備えており、
前記プリンタは、
前記印刷クライアントから送信された前記プリンタ公開鍵送信要求を受信する、プリンタ公開鍵送信要求受信手段と、
前記プリンタ公開鍵送信要求を受信した場合に、前記プリンタ公開鍵保持手段に保持されているプリンタ公開鍵を印刷クライアントに送信する、プリンタ公開鍵送信手段と、
を備えており、
前記印刷クライアントは、
前記プリンタから送信された前記プリンタ公開鍵を受信する、プリンタ公開鍵受信手段と、
クライアント乱数を生成する、クライアント乱数生成手段と、
前記プリンタ公開鍵を用いて、前記クライアント乱数を暗号化することにより、暗号化クライアント乱数を生成する、暗号化クライアント乱数生成手段と、
前記暗号化クライアント乱数を、前記プリンタに送信する、暗号化クライアント乱数送信手段と、
を備えており、
前記プリンタは、
前記印刷クライアントから送信された前記暗号化クライアント乱数を受信する、暗号化クライアント乱数受信手段と、
前記プリンタ位置情報取得手段からプリンタ位置情報を取得し、これを第２プリンタ位置情報とする、第２プリンタ位置情報取得手段と、
前記第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成する、プリンタ秘密鍵生成手段と、
前記プリンタ秘密鍵を用いて、前記暗号化クライアント乱数を復号して、クライアント乱数を取得する、クライアント乱数取得手段と、
プリンタ乱数を生成する、プリンタ乱数生成手段と、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成する、共通鍵生成手段と、
前記印刷クライアントから、印刷データを暗号化することにより生成された暗号化印刷データを受信する、暗号化印刷データ受信手段と、
前記共通鍵を用いて、前記暗号化印刷データを復号し、印刷データを取得する、印刷データ取得手段と、
を備えることを特徴とする印刷システム。
【請求項１３】
印刷データに基づいて印刷を行うプリンタと、このプリンタに接続される印刷クライアントとを有する、印刷システムの制御方法であって、
前記プリンタの設置されている場所を特定するためのプリンタ位置情報をプリンタ位置情報取得手段から取得し、これを第１プリンタ位置情報とするステップと、
前記第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成するステップと、
前記プリンタ公開鍵生成手段で生成したプリンタ公開鍵を保持するステップと、
前記印刷クライアントから前記プリンタに、前記プリンタ公開鍵の送信を要求するプリンタ公開鍵送信要求を送信するステップと、
前記プリンタにおいて、前記印刷クライアントから送信された前記プリンタ公開鍵送信要求を受信するステップと、
前記プリンタ公開鍵送信要求を受信した場合に、前記プリンタ公開鍵保持手段に保持されているプリンタ公開鍵を、前記プリンタから前記印刷クライアントに送信するステップと、
前記印刷クライアントにおいて、前記プリンタから送信された前記プリンタ公開鍵を受信するステップと、
前記印刷クライアントにおいて、クライアント乱数を生成するステップと、
前記プリンタ公開鍵を用いて、前記クライアント乱数を暗号化することにより、暗号化クライアント乱数を生成するステップと、
前記暗号化クライアント乱数を、前記印刷クライアントから前記プリンタに送信するステップと、
前記プリンタにおいて、前記印刷クライアントから送信された前記暗号化クライアント乱数を受信するステップと、
前記プリンタ位置情報取得手段からプリンタ位置情報を取得し、これを第２プリンタ位置情報とするステップと、
前記第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成するステップと、
前記プリンタ秘密鍵を用いて、前記暗号化クライアント乱数を復号して、クライアント乱数を取得するステップと、
前記プリンタにおいて、プリンタ乱数を生成するステップと、
前記プリンタにおいて、前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成するステップと、
印刷データを暗号化することにより生成された暗号化印刷データを、前記印刷クライアントから前記プリンタに送信するステップと、
前記プリンタにおいて、前記暗号化印刷データを受信するステップと、
前記共通鍵を用いて、前記暗号化印刷データを復号し、印刷データを取得するステップと、
を備えることを特徴とする印刷システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、印刷クライアント及び印刷システムに関し、特に、印刷データの印刷を行える場所を制限することのできるプリンタ、そのようなプリンタに印刷を要求できる場所を制限することのできる印刷クライアント、並びに、そのようなプリンタ及び印刷クライアントを有する印刷システムに関する。
【背景技術】
【０００２】
近年、プリンタを用いたビジネスモデルとして、プリンタメーカがユーザにプリンタを無償で貸し出し、ユーザがこのプリンタを用いて印刷した枚数だけ、そのプリンタメーカに使用料を支払うという形態が、注目されてきている。このようなビジネスモデルにおいては、印刷枚数に応じた課金の他に、使用期間に応じた課金や、使用インク量に応じた課金などが考えられる。
【０００３】
また、コンピュータ等の印刷クライアントからプリンタに印刷データを送信する際に、この印刷データを印刷できるプリンタの位置を制限して、印刷データのセキュリティを確保したいという要望もある。このような要望に対応して、コンピュータからプリンタに印刷データを暗号化して送信するとともに、この暗号化された印刷データが、復号できるプリンタの位置を制限する技術が、特開平１１−３３１１４４号公報（以下、特許文献１という）に開示されている。
【０００４】
この特許文献１の印刷システムでは、暗号化サーバが暗号化鍵と復号化鍵を管理することとしている。そして、データを送信するコンピュータは、暗号化サーバから暗号化鍵を取得する際に、その復号化鍵を送信してもよい位置を指定するとともに、この暗号化鍵で印刷データを暗号化して、プリンタに送信する。この暗号化された印刷データを受信したプリンタでは、プリンタの位置を暗号化サーバに送信し、暗号化サーバでは、そのプリンタの位置がコンピュータに指定された位置と合致した場合にのみ、復号化鍵をプリンタに送信することとしている。
【特許文献１】特開平１１−３３１１４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したようなプリンタを無償で貸し出すビジネスモデルでは、プリンタメーカから貸し出されたプリンタを、ユーザが無断で転売したり、他人に貸し出したりしてしまうと、プリンタメーカがプリンタの使用に応じた課金をすることができなくなってしまう。このため、プリンタメーカとしては、貸し出したプリンタが使用できる場所、つまり、正常な印刷ができる場所を、その貸し出したユーザの場所に限定したい。
【０００６】
特許文献１の印刷システムでは、暗号化されたデータを送信する際に、そのデータを復号できるプリンタの位置を指定できるのみであり、無断で移動されたプリンタであっても、そのプリンタの位置を正しく指定してしまえば、印刷を実行できてしまう。
【０００７】
また、プリンタのビジネスモデルと同様に、コンピュータ等に関しても、メーカーが無償で貸し出して、使用料を徴収するビジネスモデルも考えられる。この場合には、コンピュータが使用できる場所を、その貸し出しをしたユーザの場所に限定する必要がある。
【０００８】
そこで本発明は、前記課題に鑑みてなされたものであり、予め登録された場所でしか、印刷することのできないプリンタ、印刷クライアント、並びに、そのようなプリンタ及び印刷クライアントを含む印刷システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明に係るプリンタは、印刷データに基づいて印刷を行うプリンタであって、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報をプリンタ位置情報取得手段から取得し、これを第１プリンタ位置情報とする、第１プリンタ位置情報取得手段と、
前記第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成する、プリンタ公開鍵生成手段と、
前記プリンタ公開鍵生成手段で生成したプリンタ公開鍵を保持する、プリンタ公開鍵保持手段と、
印刷クライアントからの要求に応じて、前記プリンタ公開鍵保持手段に保持されているプリンタ公開鍵を印刷クライアントに送信する、プリンタ公開鍵送信手段と、
前記印刷クライアントから、前記プリンタ公開鍵を用いてクライアント乱数を暗号化することにより生成された暗号化クライアント乱数を受信する、暗号化クライアント乱数受信手段と、
前記プリンタ位置情報取得手段からプリンタ位置情報を取得し、これを第２プリンタ位置情報とする、第２プリンタ位置情報取得手段と、
前記第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成する、プリンタ秘密鍵生成手段と、
前記プリンタ秘密鍵を用いて、前記暗号化クライアント乱数を復号して、クライアント乱数を取得する、クライアント乱数取得手段と、
プリンタ乱数を生成する、プリンタ乱数生成手段と、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成する、共通鍵生成手段と、
前記印刷クライアントから、印刷データを暗号化することにより生成された暗号化印刷データを受信する、暗号化印刷データ受信手段と、
前記共通鍵を用いて、前記暗号化印刷データを復号し、印刷データを取得する、印刷データ取得手段と、
を備えることを特徴とする。
【００１０】
この場合、前記印刷クライアントから、クライアント公開鍵を受信する、クライアント公開鍵受信手段と、
前記クライアント公開鍵を用いて、前記プリンタ乱数を暗号化することにより、暗号化プリンタ乱数を生成する、暗号化プリンタ乱数生成手段と、
前記暗号化プリンタ乱数を前記印刷クライアントに送信する、暗号化プリンタ乱数送信手段と、
をさらに備えるようにしてもよい。
【００１１】
また、前記暗号化クライアント乱数受信手段で前記暗号化クライアント乱数を受信した後、及び／又は、前記暗号化印刷データ受信手段で前記暗号化印刷データを受信した後に、前記第２プリンタ位置情報取得手段は、前記プリンタ位置情報取得手段からプリンタ位置情報を取得するようにしてもよい。
【００１２】
また、前記プリンタ公開鍵生成手段で、前記プリンタ公開鍵を生成する際にプリンタ秘密鍵が生成された場合でも、このプリンタ秘密鍵は保存されることなく破棄されるようにしてもよい。
【００１３】
また、前記プリンタ秘密鍵生成手段で、前記プリンタ秘密鍵を生成する際にプリンタ公開鍵が生成された場合でも、このプリンタ公開鍵は保存されることなく破棄されるようにしてもよい。
【００１４】
また、前記プリンタ秘密鍵生成手段で生成された前記プリンタ秘密鍵は、前記クライアント乱数取得手段で前記暗号化クライアント乱数を復号した後に、破棄されるようにしてもよい。
【００１５】
また、前記共通鍵生成手段で生成された前記共通鍵は、前記印刷データ取得手段で前記暗号化印刷データを復号した後に、破棄されるようにしてもよい。
【００１６】
また、前記プリンタ公開鍵生成手段は、前記第１プリンタ位置情報に加えて、当該プリンタの固有の情報である機器固有情報を含むパスフレーズを用いて、プリンタ公開鍵を生成するとともに、
前記プリンタ秘密鍵生成手段も、前記第２プリンタ位置情報に加えて、前記機器固有情報を含むパスフレーズを用いて、プリンタ秘密鍵を生成するようにしてもよい。
【００１７】
本発明に係るプリンタの制御方法は、
印刷データに基づいて印刷を行うプリンタの制御方法であって、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報をプリンタ位置情報取得手段から取得し、これを第１プリンタ位置情報とするステップと、
前記第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成するステップと、
前記生成したプリンタ公開鍵を、プリンタ公開鍵保持手段に保持させるステップと、
印刷クライアントからの要求に応じて、前記プリンタ公開鍵保持手段に保持されているプリンタ公開鍵を印刷クライアントに送信するステップと、
前記印刷クライアントから、前記プリンタ公開鍵を用いてクライアント乱数を暗号化することにより生成された暗号化クライアント乱数を受信するステップと、
前記プリンタ位置情報取得手段からプリンタ位置情報を取得し、これを第２プリンタ位置情報とするステップと、
前記第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成するステップと、
前記プリンタ秘密鍵を用いて、前記暗号化クライアント乱数を復号して、クライアント乱数を取得するステップと、
プリンタ乱数を生成するステップと、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成するステップと、
前記印刷クライアントから、印刷データを暗号化することにより生成された暗号化印刷データを受信するステップと、
前記共通鍵を用いて、前記暗号化印刷データを復号し、印刷データを取得するステップと、
を備えることを特徴とする。
【００１８】
本発明に係る印刷クライアントは、
印刷データを生成する印刷クライアントであって、
当該印刷クライアントの設置されている場所を特定するためのクライアント位置情報をプリンタ位置情報取得手段から取得し、これを第１クライアント位置情報とする、第１クライアント位置情報取得手段と、
前記第１クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント公開鍵を生成する、クライアント公開鍵生成手段と、
前記クライアント公開鍵生成手段で生成したクライアント公開鍵を保持する、クライアント公開鍵保持手段と、
プリンタからの要求に応じて、前記クライアント公開鍵保持手段に保持されているクライアント公開鍵をプリンタに送信する、クライアント公開鍵送信手段と、
前記プリンタから、前記クライアント公開鍵を用いてプリンタ乱数を暗号化することにより生成された暗号化プリンタ乱数を受信する、暗号化プリンタ乱数受信手段と、
前記クライアント位置情報取得手段からクライアント位置情報を取得し、これを第２クライアント位置情報とする、第２クライアント位置情報取得手段と、
前記第２クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント秘密鍵を生成する、クライアント秘密鍵生成手段と、
前記クライアント秘密鍵を用いて、前記暗号化プリンタ乱数を復号して、プリンタ乱数を取得する、プリンタ乱数取得手段と、
クライアント乱数を生成する、クライアント乱数生成手段と、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成する、共通鍵生成手段と、
前記共通鍵を用いて、印刷データを暗号化することにより、暗号化印刷データを生成する、暗号化印刷データ生成手段と、
前記プリンタに前記暗号化印刷データを送信する、暗号化印刷データ送信手段と、
を備えることを特徴とする。
【００１９】
本発明に係る印刷クライアントの制御方法は、
印刷データを生成する印刷クライアントの制御方法であって、
当該印刷クライアントの設置されている場所を特定するためのクライアント位置情報をプリンタ位置情報取得手段から取得し、これを第１クライアント位置情報とするステップと、
前記第１クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント公開鍵を生成するステップと、
前記生成したクライアント公開鍵を、クライアント公開鍵保持手段に保持させるステップと、
プリンタからの要求に応じて、前記クライアント公開鍵保持手段に保持されているクライアント公開鍵をプリンタに送信するステップと、
前記プリンタから、前記クライアント公開鍵を用いてプリンタ乱数を暗号化することにより生成された暗号化プリンタ乱数を受信するステップと、
前記クライアント位置情報取得手段からクライアント位置情報を取得し、これを第２クライアント位置情報とするステップと、
前記第２クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント秘密鍵を生成するステップと、
前記クライアント秘密鍵を用いて、前記暗号化プリンタ乱数を復号して、プリンタ乱数を取得するステップと、
クライアント乱数を生成するステップと、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成するステップと、
前記共通鍵を用いて、印刷データを暗号化することにより、暗号化印刷データを生成するステップと、
前記プリンタに前記暗号化印刷データを送信するステップと、
を備えることを特徴とする。
【００２０】
本発明に係る印刷システムは、
印刷データに基づいて印刷を行うプリンタと、このプリンタに接続される印刷クライアントとを有する、印刷システムであって、
前記プリンタは、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報をプリンタ位置情報取得手段から取得し、これを第１プリンタ位置情報とする、第１プリンタ位置情報取得手段と、
前記第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成する、プリンタ公開鍵生成手段と、
前記プリンタ公開鍵生成手段で生成したプリンタ公開鍵を保持する、プリンタ公開鍵保持手段と、
を備えており、
前記印刷クライアントは、前記プリンタ公開鍵の送信を要求するプリンタ公開鍵送信要求を、前記プリンタに送信する、プリンタ公開鍵送信要求送信手段を備えており、
前記プリンタは、
前記印刷クライアントから送信された前記プリンタ公開鍵送信要求を受信する、プリンタ公開鍵送信要求受信手段と、
前記プリンタ公開鍵送信要求を受信した場合に、前記プリンタ公開鍵保持手段に保持されているプリンタ公開鍵を印刷クライアントに送信する、プリンタ公開鍵送信手段と、
を備えており、
前記印刷クライアントは、
前記プリンタから送信された前記プリンタ公開鍵を受信する、プリンタ公開鍵受信手段と、
クライアント乱数を生成する、クライアント乱数生成手段と、
前記プリンタ公開鍵を用いて、前記クライアント乱数を暗号化することにより、暗号化クライアント乱数を生成する、暗号化クライアント乱数生成手段と、
前記暗号化クライアント乱数を、前記プリンタに送信する、暗号化クライアント乱数送信手段と、
を備えており、
前記プリンタは、
前記印刷クライアントから送信された前記暗号化クライアント乱数を受信する、暗号化クライアント乱数受信手段と、
前記プリンタ位置情報取得手段からプリンタ位置情報を取得し、これを第２プリンタ位置情報とする、第２プリンタ位置情報取得手段と、
前記第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成する、プリンタ秘密鍵生成手段と、
前記プリンタ秘密鍵を用いて、前記暗号化クライアント乱数を復号して、クライアント乱数を取得する、クライアント乱数取得手段と、
プリンタ乱数を生成する、プリンタ乱数生成手段と、
前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成する、共通鍵生成手段と、
前記印刷クライアントから、印刷データを暗号化することにより生成された暗号化印刷データを受信する、暗号化印刷データ受信手段と、
前記共通鍵を用いて、前記暗号化印刷データを復号し、印刷データを取得する、印刷データ取得手段と、
を備えることを特徴とする。
【００２１】
本発明に係る印刷システムの制御方法は、
印刷データに基づいて印刷を行うプリンタと、このプリンタに接続される印刷クライアントとを有する、印刷システムの制御方法であって、
前記プリンタの設置されている場所を特定するためのプリンタ位置情報をプリンタ位置情報取得手段から取得し、これを第１プリンタ位置情報とするステップと、
前記第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成するステップと、
前記プリンタ公開鍵生成手段で生成したプリンタ公開鍵を保持するステップと、
前記印刷クライアントから前記プリンタに、前記プリンタ公開鍵の送信を要求するプリンタ公開鍵送信要求を送信するステップと、
前記プリンタにおいて、前記印刷クライアントから送信された前記プリンタ公開鍵送信要求を受信するステップと、
前記プリンタ公開鍵送信要求を受信した場合に、前記プリンタ公開鍵保持手段に保持されているプリンタ公開鍵を、前記プリンタから前記印刷クライアントに送信するステップと、
前記印刷クライアントにおいて、前記プリンタから送信された前記プリンタ公開鍵を受信するステップと、
前記印刷クライアントにおいて、クライアント乱数を生成するステップと、
前記プリンタ公開鍵を用いて、前記クライアント乱数を暗号化することにより、暗号化クライアント乱数を生成するステップと、
前記暗号化クライアント乱数を、前記印刷クライアントから前記プリンタに送信するステップと、
前記プリンタにおいて、前記印刷クライアントから送信された前記暗号化クライアント乱数を受信するステップと、
前記プリンタ位置情報取得手段からプリンタ位置情報を取得し、これを第２プリンタ位置情報とするステップと、
前記第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成するステップと、
前記プリンタ秘密鍵を用いて、前記暗号化クライアント乱数を復号して、クライアント乱数を取得するステップと、
前記プリンタにおいて、プリンタ乱数を生成するステップと、
前記プリンタにおいて、前記プリンタ乱数と前記クライアント乱数とを用いて、共通鍵を生成するステップと、
印刷データを暗号化することにより生成された暗号化印刷データを、前記印刷クライアントから前記プリンタに送信するステップと、
前記プリンタにおいて、前記暗号化印刷データを受信するステップと、
前記共通鍵を用いて、前記暗号化印刷データを復号し、印刷データを取得するステップと、
を備えることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、予め登録された場所でしか、印刷することのできないプリンタ、印刷クライアント、並びに、そのようなプリンタ及び印刷クライアントを含む印刷システムを提供することができる。
【発明を実施するための最良の形態】
【００２３】
まず、図１に基づいて、本実施形態に係る印刷システムの処理の概要を説明する。図１に示すように、本実施形態においては、プリンタ３０の設置時に、プリンタ３０が設置されている位置を表すプリンタ位置情報を少なくとも含むパスフレーズを用いてプリンタ公開鍵とプリンタ秘密鍵を生成し、プリンタ３０はプリンタ公開鍵は保持するが、プリンタ秘密鍵は破棄する（ステップ〔１〕）。そして、プリンタ３０は、印刷データを送信したい印刷クライアント２０からプリンタ公開鍵を要求された場合は、保持しているプリンタ公開鍵をその印刷クライアント２０に送信する（ステップ〔２〕）。
【００２４】
印刷クライアント２０では、乱数発生器を用いて、適当な乱数を生成し、これをクライアント乱数とする（ステップ〔３〕）。そして、印刷クライアント２０は、受信したプリンタ公開鍵を用いて、クライアント乱数を暗号化し、暗号化クライアント乱数を生成する（ステップ〔４〕）。続いて、印刷クライアント２０は、この暗号化クライアント乱数を、プリンタ３０に送信する（ステップ〔５〕）。
【００２５】
この暗号化クライアント乱数を受信したプリンタ３０では、再度、プリンタ位置情報を取得し、このプリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵とプリンタ秘密鍵を生成する（ステップ〔６〕）。そして、プリンタ３０は、ここで生成されたプリンタ秘密鍵を用いて、暗号化クライアント乱数を復号し、クライアント乱数を取得する（ステップ〔７〕）。なお、プリンタ公開鍵は保存することなく、破棄されるとともに、プリンタ秘密鍵もステップ〔７〕の処理の後、破棄される。
【００２６】
一方、印刷クライアント２０においては、印刷クライアント２０の設置時に、印刷クライアント２０が設置されている位置を表すクライアント位置情報を少なくとも含むパスフレーズを用いてクライアント公開鍵とクライアント秘密鍵を生成し、印刷クライアント２０はクライアント公開鍵は保持するが、クライアント秘密鍵は破棄する（ステップ〔８〕）。そして、印刷クライアント２０は、プリンタ３０からクライアント公開鍵を要求された場合は、保持しているクライアント公開鍵をそのプリンタ３０に送信する（ステップ〔９〕）。
【００２７】
プリンタ３０では、乱数発生器を用いて、適当な乱数を生成し、これをプリンタ乱数とする（ステップ〔１０〕）。そして、プリンタ３０は、受信したクライアント公開鍵を用いて、プリンタ乱数を暗号化し、暗号化プリンタ乱数を生成する（ステップ〔１１〕）。続いて、プリンタ３０は、この暗号化プリンタ乱数を、印刷クライアント２０に送信する（ステップ〔１２〕）。
【００２８】
この暗号化プリンタ乱数を受信した印刷クライアント２０では、再度、クライアント位置情報を取得し、このクライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント公開鍵とクライアント秘密鍵を生成する（ステップ〔１３〕）。そして、印刷クライアント２０は、ここで生成されたクライアント秘密鍵を用いて、暗号化プリンタ乱数を復号し、プリンタ乱数を取得する（ステップ〔１４〕）。なお、クライアント公開鍵は保存することなく、破棄されるとともに、クライアント秘密鍵も、ステップ〔１４〕の処理の後、破棄される。
【００２９】
続いて、印刷クライアント２０は、クライアント乱数とプリンタ乱数とに基づいて、１つの変数を生成し、この変数を用いて、共通鍵を生成する（ステップ〔１５〕）。変数の生成手法は、例えば、クライアント乱数とプリンタ乱数を掛け合わせる、クライアント乱数とプリンタ乱数の排他的論理和を算出する、適当に組み合わせた式をかける、等がある。
【００３０】
続いて、印刷クライアント２０は、印刷データを生成し、この共通鍵を用いて、印刷データを暗号化し、暗号化印刷データを生成する（ステップ〔１６〕）。そして、この暗号化印刷データを、プリンタ３０に送信する（ステップ〔１７〕）。
【００３１】
一方、プリンタ３０においては、ステップ〔７〕で取得したクライアント乱数と、ステップ〔１０〕で生成したプリンタ乱数とに基づいて、１つの変数を生成し、この変数を用いて、共通鍵を生成する（ステップ〔１８〕）。ここで、変数の生成手法は、印刷クライアント２０のステップ〔１５〕と同じにする必要がある。換言すれば、ここで生成される変数は、ステップ〔１５〕で生成される変数と同じにする必要がある。続いて、プリンタ３０は、生成した共通鍵を用いて、受信した暗号化印刷データを復号し、印刷データを取得する（ステップ〔１９〕）。そして、プリンタ３０は、この取得した印刷データに基づいて、印刷を行う。
【００３２】
結局、プリンタ３０においては、プリンタ公開鍵を生成した位置から移動していなければ、暗号化クライアント乱数を復号することができ、したがって、適切な共通鍵を生成することができる。一方、印刷クライアント２０においては、クライアント公開鍵を生成した位置から移動していなければ、暗号化プリンタ乱数を復号することができ、したがって、適切な共通鍵を生成することができる。プリンタ３０と印刷クライアント２０の双方で、適切な共通鍵を生成できれば、プリンタ３０と印刷クライアント２０とで同じ共通鍵を保持していることなる。すなわち、印刷クライアント２０で共通鍵を用いて暗号化された暗号化印刷データを、プリンタ３０で同じ共通鍵を用いて復号することができるようになるのである。
【００３３】
この説明から分かるように、プリンタ公開鍵をプリンタ３０から印刷クライアント２０に送信するタイミングは、プリンタ３０の設置後、印刷要求の発生までの間の任意のタイミングでよい。但し、プリンタ３０の使用できる位置を制限するためには、ステップ〔６〕のプリンタ秘密鍵の生成は、印刷クライアント２０で印刷要求が発生した後に行うことが望ましい。具体的には、ステップ〔６〕のプリンタ秘密鍵の生成は、プリンタ３０が暗号化クライアント乱数を受信した後、及び／又は、暗号化印刷データを受信した後にすることが望ましい。
【００３４】
同様に、クライアント公開鍵を印刷クライアント２０からプリンタ３０に送信するタイミングは、印刷クライアント２０の設置後、印刷要求の発生までの任意のタイミングでよい。但し、印刷クライアント２０の使用できる位置を制限するためには、ステップ〔１３〕のクライアント秘密鍵の生成は、印刷クライアント２０で印刷要求が発生した後に行うことが望ましい。具体的には、ステップ〔１３〕のクライアント秘密鍵の生成は、ユーザが印刷クライアント２０に印刷の実行を指示した後に行われることが望ましい。
【００３５】
次に、図２に基づいて、本実施形態に係る印刷システムの構成を説明する。図２は、本実施形態に係る印刷システムのハードウェア構成を示すブロック図である。
【００３６】
この図２に示すように、本実施形態に係る印刷システムは、ネットワーク１０に接続された印刷クライアント２０と、同じくネットワーク１０に接続されたプリンタ３０とを備えている。本実施形態においては、ネットワーク１０は、ＴＣＰ／ＩＰ（transmission control protocol/internet protocol）を用いたインターネットにより構成されている。但し、ネットワーク１０の態様は、インターネットに限るものではなく、例えば、イーサーネット（登録商標）等のＬＡＮにより構成されていてもよい。
【００３７】
印刷クライアント２０は、例えば、ホストコンピュータやパーソナルコンピュータと呼ばれる各種のコンピュータにより構成されている。本実施形態では、特に印刷クライアント２０は、共通鍵で印刷データを暗号化した暗号化印刷データを生成し、この暗号化印刷データをネットワーク１０を介してプリンタ３０に送信する。このネットワーク１０に接続される印刷クライアントの台数は任意であり、１台でもよく、複数台でもよい。また、この印刷クライアントは、コンピュータに限られるものではなく、例えば、撮影した画像を印刷する必要のあるデジタルカメラや、印刷画像データをコンテンツとして蓄積してあるコンテンツサーバ等でもよい。
【００３８】
また本実施形態においては、プリンタ３０はいわゆるネットワークプリンタである。本実施形態においては、特にプリンタ３０は、暗号化印刷データを印刷クライアント２０から受信し、この暗号化印刷データを共通鍵で復号して、印刷を行う。
【００３９】
本実施形態においては、プリンタ３０は、ネットワーク１０に直接接続されており、プリンタ３０は固有のネットワークアドレスを有している。したがって、印刷クライアント２０は、このネットワークアドレスを指定することにより、暗号化印刷データをプリンタ３０に送信することができる。
【００４０】
なお、この図２においては、プリンタ３０は、ネットワーク１０に直接接続されているが、プリンタサーバを介して接続するようにしてもよい。また、このネットワーク１０に接続されるプリンタの台数は任意であり、１台でもよく、複数台でもよい。
【００４１】
図３は、プリンタ３０の内部構成を説明するためのブロック図である。この図３に示すように、プリンタ３０は、ＣＰＵ（Central Processing Unit）４０と、ＲＡＭ（Random Access Memory）４２と、ＲＯＭ（Read Only Memory）４４とを備えており、これらは互いに内部バス４６を介して接続されている。また、この内部バス４６には、通信用のインターフェース４８が接続されており、この通信用のインターフェース４８を介して、上述したネットワーク１０にプリンタ３０が接続されている。さらに、内部バス４６には、インターフェース５０が接続されており、このインターフェース５０には印刷エンジン５２が接続されている。
【００４２】
また、内部バス４６には、位置検出部５４が接続されている。この位置検出部５４は、プリンタ３０が設置されている位置を特定する機能を有する。本実施形態においては、例えば、ＧＰＳ（global positioning system）により構成されており、このプリンタ３０が設置されている位置の緯度、経度、高度が特定できるようになっている。現時点におけるＧＰＳの精度は、緯度、経度、高度において、それぞれ±１０ｍ程度であると言われている。
【００４３】
但し、この位置検出部５４は、ＧＰＳを用いた構成に限らず、例えば、無線ＬＡＮによりこのプリンタ３０がネットワーク１０に接続されている場合には、このプリンタ３０が収容されている無線基地局に基づいて、プリンタ３０の位置を特定するようにしてもよい。或いは、ＰＨＳ（Personal Handyphone System）などの移動体通信技術を利用して、プリンタ３０の位置を特定するようにしてもよい。
【００４４】
また、位置検出部５４にＧＰＳ機能とＰＨＳ機能の双方を搭載し、通常はＧＰＳを用いて設置位置を検出するが、電波事情等によりＧＰＳを用いて位置検出ができない場合には、ＰＨＳにより位置検出をするようにしてもよい。
【００４５】
さらに本実施形態に係るプリンタ３０は、内部バス４６に接続されたＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）５６を不揮発性半導体記憶装置として、備えている。このＥＥＰＲＯＭ５６に格納された情報は、プリンタ３０の電源をオフにした場合でも、保持されることになる。
【００４６】
また、図３においては、位置検出部５４をプリンタ３０に内蔵しているが、この位置検出部５４は、図４に示すように、プリンタ３０の外付けにするようにしてもよい。例えば、必要が生じたときに、ＧＰＳを搭載した携帯電話をプリンタ３０に接続し、プリンタ３０に位置検出機能を持たせるようにしてもよい。
【００４７】
図５は、印刷クライアント２０の内部構成を説明するためのブロック図である。この図５に示すように、本実施形態に係る印刷クライアント２０は、コンピュータ本体６０とディスプレイ６２とを備えて構成されている。
【００４８】
コンピュータ本体６０は、ＣＰＵ６４と、ＲＡＭ６６と、ＲＯＭ６８とを備えており、これらは互いに内部バス７０を介して接続されている。また、この内部バス７０には、通信用のインターフェース７２が接続されており、この通信用のインターフェース７２を介して、上述したネットワーク１０に印刷クライアント２０が接続されている。
【００４９】
さらに、内部バス７０には、インターフェース７４が接続されており、このインターフェース７４には大容量記憶装置であるハードディスク７６が接続されている。また、内部バス７０には、位置検出部７７が接続されている。この位置検出部７７は、印刷クライアント２０が設置されている位置を特定する機能を有する。本実施形態においては、例えば、ＧＰＳ（global positioning system）により構成されており、この印刷クライアント２０が設置されている位置の緯度、経度、高度が特定できるようになっている。
【００５０】
但し、この位置検出部７７は、ＧＰＳを用いた構成に限らず、例えば、無線ＬＡＮによりこの印刷クライアント２０がネットワーク１０に接続されている場合には、この印刷クライアント２０が収容されている無線基地局に基づいて、印刷クライアント２０の位置を特定するようにしてもよい。或いは、ＰＨＳ（Personal Handyphone System）などの移動体通信技術を利用して、印刷クライアント２０の位置を特定するようにしてもよい。
【００５１】
また、位置検出部７７にＧＰＳ機能とＰＨＳ機能の双方を搭載し、通常はＧＰＳを用いて設置位置を検出するが、電波事情等によりＧＰＳを用いて位置検出ができない場合には、ＰＨＳにより位置検出をするようにしてもよい。
【００５２】
さらに、内部バス７０には、インターフェース７８が接続されており、このインターフェース７８から延びるケーブル８０を介して、上述したディスプレイ６２が接続されている。
【００５３】
また、図５においては、位置検出部７７を印刷クライアント２０に内蔵しているが、この位置検出部７７は、図６に示すように、印刷クライアント２０の外付けにするようにしてもよい。例えば、必要が生じたときに、ＧＰＳを搭載した携帯電話を印刷クライアント２０に接続し、印刷クライアント２０に位置検出機能を持たせるようにしてもよい。
【００５４】
次に、図１を用いて説明した処理を実現するために、プリンタ３０、及び、印刷クライアント２０で実行される処理を詳しく説明する。
【００５５】
まず、図７に基づいて、プリンタ３０の設置時にプリンタ３０で実行されるプリンタ公開鍵生成処理について説明する。この図７は、プリンタ３０で実行されるプリンタ公開鍵生成処理を説明するフローチャートである。このプリンタ公開鍵生成処理は、プリンタのＲＯＭ４４に格納されているプリンタ公開鍵生成プログラムをＣＰＵ４０が読み込んで実行することにより実現される処理である。
【００５６】
図７に示すように、まず、プリンタ３０は、プリンタ３０の操作者に設置認定情報を入力するように要求する（ステップＳ１００）。例えば、プリンタ３０は、このプリンタ３０に設けられている表示パネルに、設置認証情報を入力する指示を、表示する。操作者は、例えば、プリンタ３０に設けられている操作パネルを操作して、設置認証情報を入力する。例えば、本実施形態においては、この設置認証情報は、設置認証情報用のＩＤとパスワードの組み合わせにより構成されている。したがって、操作者は、操作パネルから、これら設置認証情報用のＩＤとパスワードとを入力する。
【００５７】
次に、プリンタ３０は、入力された設置認証情報が、予めこのプリンタ３０に登録されている設置認証情報と一致するかどうかを判断する（ステップＳ１０２）。具体的には、上述したように、操作者が入力した設置認証情報用のＩＤとパスワードが、予めプリンタ３０に登録されている設置認証情報用のＩＤとパスワードと一致するかどうかを判断する。本実施形態においては、例えば、プリンタ３０の製品出荷時に、ＥＥＰＲＯＭ５６にこの設置認証情報用のＩＤとパスワードが格納されており、この設置認証情報用のＩＤとパスワードを知り得るのは、このプリンタ３０の製造メーカだけという仕組みになっている。
【００５８】
設置認証情報が一致しなかった場合（ステップＳ１０２：Ｎｏ）には、プリンタ３０は、プリンタ３０の表示パネルに設置認証情報が一致しなかった旨を表示し（ステップＳ１０４）、このプリンタ公開鍵生成処理を終了する。
【００５９】
一方、設置認証情報が一致した場合（ステップＳ１０２：Ｙｅｓ）には、プリンタ３０は、このプリンタ３０の機器固有情報を取得する（ステップＳ１０６）。ここで、機器固有情報とは、このプリンタ３０に関して、固有に割り当てられている識別情報であり、例えば、プリンタ３０の製造シリアルナンバー、ＭＡＣアドレス等がある。
【００６０】
次に、プリンタ３０は、位置検出部５４から、その時点におけるプリンタ３０のプリンタ位置情報を取得する（ステップＳ１０８）。続いて、プリンタ３０は、機器固有情報とプリンタ位置情報とを用いてパスフレーズを作成する（ステップＳ１１０）。このパスフレーズの作成手法は種々のものが考えられるが、本実施形態においては、単純に機器固有情報の後ろにプリンタ位置情報をつなげることにより、パスフレーズを作成する。なお、パスフレーズは、これら機器固有情報及びプリンタ位置情報以外のデータを含んでいてもよい。
【００６１】
次に、プリンタ３０は、作成したパスフレーズを用いて、公開鍵暗号法により、公開鍵（プリンタ公開鍵）と秘密鍵（プリンタ秘密鍵）とを生成する（ステップＳ１１２）。公開鍵暗号法では、使用するパスフレーズが同じであれば、再び、公開鍵と秘密鍵とを生成しても、同じものが生成されるという性質を有している。続いて、プリンタ３０は、この生成したプリンタ公開鍵とプリンタ秘密鍵のうち、プリンタ公開鍵のみを格納して保持する（ステップＳ１１４）。なお、プリンタ秘密鍵は保存されることなく破棄される。これにより、本実施形態に係るプリンタ公開鍵生成処理が終了する。
【００６２】
図８は、ステップＳ１１４でプリンタ公開鍵が格納されるプリンタ公開鍵格納部ＴＢ１０の一例を示す図である。本実施形態においては、このプリンタ公開鍵格納部ＴＢ１０は、ＥＥＰＲＯＭ５６内に形成される。このため、このプリンタ公開鍵格納部ＴＢ１０に格納されたプリンタ公開鍵は、プリンタ３０の電源がオフになっても不揮発的に保持される。
【００６３】
次に、図９に基づいて、印刷クライアント２０の設置時に印刷クライアント２０で実行されるクライアント公開鍵生成処理について説明する。この図９は、印刷クライアント２０で実行されるクライアント公開鍵生成処理を説明するフローチャートである。このクライアント公開鍵生成処理は、印刷クライアント２０のＲＯＭ６８又はハードディスク７６に格納されているクライアント公開鍵生成プログラムをＣＰＵ６４が読み込んで実行することにより実現される処理である。
【００６４】
図９に示すように、まず、印刷クライアント２０は、印刷クライアント２０の操作者に設置認定情報を入力するように要求する（ステップＳ１５０）。例えば、印刷クライアント２０は、この印刷クライアント２０のディスプレイ６２に、設置認証情報を入力する指示を、表示する。操作者は、例えば、印刷クライアント２０のキーボードを操作して、設置認証情報を入力する。例えば、本実施形態においては、この設置認証情報は、設置認証情報用のＩＤとパスワードの組み合わせにより構成されている。したがって、操作者は、操作パネルから、これら設置認証情報用のＩＤとパスワードとを入力する。
【００６５】
次に、印刷クライアント２０は、入力された設置認証情報が、予めこの印刷クライアント２０に登録されている設置認証情報と一致するかどうかを判断する（ステップＳ１５２）。具体的には、上述したように、操作者が入力した設置認証情報用のＩＤとパスワードが、予め印刷クライアント２０に登録されている設置認証情報用のＩＤとパスワードと一致するかどうかを判断する。本実施形態においては、例えば、印刷クライアント２０の製品出荷時に、ハードディスク７６にこの設置認証情報用のＩＤとパスワードが格納されており、この設置認証情報用のＩＤとパスワードを知り得るのは、この印刷クライアント２０の製造メーカだけという仕組みになっている。
【００６６】
設置認証情報が一致しなかった場合（ステップＳ１５２：Ｎｏ）には、印刷クライアント２０は、印刷クライアント２０のディスプレイ６２に設置認証情報が一致しなかった旨を表示し（ステップＳ１５４）、このクライアント公開鍵生成処理を終了する。
【００６７】
一方、設置認証情報が一致した場合（ステップＳ１５２：Ｙｅｓ）には、印刷クライアント２０は、この印刷クライアント２０の機器固有情報を取得する（ステップＳ１５６）。ここで、機器固有情報とは、この印刷クライアント２０に関して、固有に割り当てられている識別情報であり、例えば、印刷クライアント２０の製造シリアルナンバー、ＭＡＣアドレス等がある。
【００６８】
次に、印刷クライアント２０は、位置検出部７７から、その時点における印刷クライアント２０のクライアント位置情報を取得する（ステップＳ１５８）。続いて、印刷クライアント２０は、機器固有情報とクライアント位置情報とを用いてパスフレーズを作成する（ステップＳ１６０）。このパスフレーズの作成手法は種々のものが考えられるが、本実施形態においては、単純に機器固有情報の後ろにクライアント位置情報をつなげることにより、パスフレーズを作成する。なお、パスフレーズは、これら機器固有情報及びクライアント位置情報以外のデータを含んでいてもよい。
【００６９】
次に、印刷クライアント２０は、作成したパスフレーズを用いて、公開鍵暗号法により、公開鍵（クライアント公開鍵）と秘密鍵（クライアント秘密鍵）とを生成する（ステップＳ１６２）。公開鍵暗号法では、使用するパスフレーズが同じであれば、再び、公開鍵と秘密鍵とを生成しても、同じものが生成されるという性質を有している。続いて、印刷クライアント２０は、この生成したクライアント公開鍵とクライアント秘密鍵のうち、クライアント公開鍵のみを格納して保持する（ステップＳ１６４）。なお、クライアント秘密鍵は保存されることなく破棄される。これにより、本実施形態に係るクライアント公開鍵生成処理が終了する。
【００７０】
図１０は、ステップＳ１６４でクライアント公開鍵が格納されるクライアント公開鍵格納部ＴＢ２０の一例を示す図である。本実施形態においては、このクライアント公開鍵格納部ＴＢ２０は、ハードディスク７６内に形成される。このため、このクライアント公開鍵格納部ＴＢ２０に格納されたクライアント公開鍵は、印刷クライアント２０の電源がオフになっても不揮発的に保持される。
【００７１】
図１１乃至図１３は、印刷クライアント２０で実行される印刷要求処理を説明するフローチャートである。この印刷要求処理は、印刷クライアントのＲＯＭ６８又はハードディスク７６に格納されている印刷要求プログラムをＣＰＵ６４が読み込んで実行することにより実現される処理である。本実施形態においては、この印刷要求処理は、ユーザが印刷すべきデータを作成し、プリンタ３０で印刷を行うように印刷クライアント２０に指示した際に起動される処理である。
【００７２】
この図１１に示すように、まず、印刷クライアント２０は、プリンタ３０にプリンタ公開鍵の送信を要求するプリンタ公開鍵取得要求を送信する（ステップＳ２００）。続いて、印刷クライアント２０は、プリンタ３０からプリンタ公開鍵を受信したかどうかを判断する（ステップＳ２０２）。プリンタ公開鍵を受信していない場合（ステップＳ２０２：Ｎｏ）には、このステップＳ２０２の処理を繰り返して待機する。
【００７３】
一方、プリンタ公開鍵を受信した場合（ステップＳ２０２：Ｙｅｓ）には、印刷クライアント２０は乱数を生成し、これをクライアント乱数とする（ステップＳ２０４）。本実施形態においては、ＣＰＵ６４がソフトウェア的に乱数を生成する。
【００７４】
次に、印刷クライアント２０は、ステップＳ２０２で受信したプリンタ公開鍵を用いて、ステップＳ２０４で生成したクライアント乱数を暗号化し、暗号化クライアント乱数を生成する（ステップＳ２０５）。そして、この暗号化クライアント乱数をプリンタ３０に送信する（ステップＳ２０６）。
【００７５】
次に、印刷クライアント２０は、プリンタ３０から解読不能通知を受信したかどうかを判断する（ステップＳ２０８）。この解読不能通知を受信した場合（ステップＳ２０８：Ｙｅｓ）には、ユーザにプリンタ３０が暗号化クライアント乱数を復号できなかった旨を通知し（ステップＳ２１０）、この印刷要求処理を終了する。
【００７６】
一方、ステップＳ２０８で解読不能通知を受信していない場合（ステップＳ２０８：Ｎｏ）には、プリンタ３０からクライアント公開鍵取得要求を受信したかどうかを判断する（ステップＳ２１２）。クライアント公開鍵取得要求を受信していない場合（ステップＳ２１２：Ｎｏ）には、上述したステップＳ２０８からを繰り返す。
【００７７】
一方、クライアント公開鍵取得要求を受信した場合（ステップＳ２１２：Ｙｅｓ）には、印刷クライアント２０は、クライアント公開鍵格納部ＴＢ２０から、クライアント公開鍵を取得する（ステップＳ２１４）。続いて、印刷クライアント２０は、このクライアント公開鍵をプリンタ３０に送信する（ステップＳ２１６）。
【００７８】
次に、図１２に示すように、印刷クライアント２０は、プリンタ３０から暗号化プリンタ乱数を受信したかどうかを判断する（ステップＳ２５０）。暗号化プリンタ乱数を受信していない場合（ステップＳ２５０：Ｎｏ）には、このステップＳ２５０を繰り返して待機する。
【００７９】
一方、暗号化プリンタ乱数を受信した場合（ステップＳ２５０：Ｙｅｓ）には、印刷クライアント２０は、印刷クライアント２０の機器固有情報を取得する（ステップＳ２５２）。続いて、印刷クライアント２０は、位置検出部７７から、その時点における印刷クライアント２０のクライアント位置情報を取得する（ステップＳ２５４）。このようにクライアント位置情報を、その都度、位置検出部７７から取得することとしているのは、印刷クライアント２０が当初設置された場所から別の場所に移動されている可能性があり、このような場合には印刷クライアント２０で印刷が行われないようにするためである。
【００８０】
次に、印刷クライアント２０は、機器固有情報とクライアント位置情報とに基づいて、パスフレーズを作成する（ステップＳ２５６）。このパスフレーズの作成手法は、上述したクライアント公開鍵生成処理におけるステップＳ１６０と同じ手法である必要がある。なぜなら、パスフレーズが異なると、プリンタ３０から送信された暗号化プリンタ乱数を、クライアント秘密鍵で復号できなくなってしまうからである。
【００８１】
次に、印刷クライアント２０は、ステップＳ２５６で生成したパスフレーズを用いて、公開鍵暗号法によりクライアント公開鍵とクライアント秘密鍵とを生成する（ステップＳ２５８）。続いて、印刷クライアント２０は、生成されたクライアント秘密鍵を用いて、受信した暗号化プリンタ乱数を復号し、プリンタ乱数を取得する（ステップＳ２６０）。続いて、印刷クライアント２０は、ステップＳ２５８で生成したクライアント公開鍵とクライアント秘密鍵とを破棄する（ステップＳ２６２）。
【００８２】
次に、印刷クライアント２０は、ステップＳ２６０で暗号化プリンタ乱数が復号され、プリンタ乱数を取得することができたかどうかを判断する（ステップＳ２６４）。暗号化プリンタ乱数の復号ができなかった場合（ステップＳ２６４：Ｎｏ）には、ユーザに、印刷クライアント２０が移動されてしまったため暗号化プリンタ乱数の復号ができない旨を通知して（ステップＳ２６６）、この印刷要求処理を終了する。
【００８３】
一方、暗号化プリンタ乱数の復号ができた場合（ステップＳ２６４：Ｙｅｓ）には、ステップＳ２０４で生成したクライアント乱数と、ステップＳ２６０で取得したプリンタ乱数とを用いて、１つの変数を生成する（ステップＳ２６８）。変数の生成手法には様々な手法が考えられるが、本実施形態においては、例えば、（１）クライアント乱数とプリンタ乱数を掛け合わせる、（２）クライアント乱数とプリンタ乱数の排他的論理和を算出する、（３）適当に組み合わせた式をかけるのいずれかの手法で生成する。
【００８４】
次に、図１３に示すように、印刷クライアント２０は、ステップＳ２６８で生成した変数を用いて、共通鍵を生成する（ステップＳ３００）。続いて、印刷クライアント２０は、印刷データを生成する（ステップＳ３０２）。この印刷データは、プリンタ３０が実際に印刷を行うのに必要となるデータである。
【００８５】
次に、印刷クライアント２０は、生成した印刷データを、ステップＳ３００で生成した共通鍵を用いて暗号化し、暗号化印刷データを生成する（ステップＳ３０４）。続いて、印刷クライアント２０は、この暗号化印刷データをプリンタ３０に送信する（ステップＳ３０６）。続いて、印刷クライアント２０は、ステップＳ３００で生成した共通鍵を破棄する（ステップＳ３０８）。続いて、印刷クライアント２０は、ステップＳ２０４で生成したクライアント乱数と、ステップＳ２６０で取得したプリンタ乱数と、ステップＳ２６８で生成した変数を、破棄する（ステップＳ３１０）。
【００８６】
次に、印刷クライアント２０は、プリンタ３０から解読不能通知を受信したかどうかを判断する（ステップＳ３１２）。この解読不能通知を受信した場合（ステップＳ３１２：Ｙｅｓ）には、ユーザに暗号化印刷データの復号ができなかった旨を通知して、この印刷要求処理を終了する。
【００８７】
一方、解読不能通知を受信していない場合（ステップＳ３１２：Ｎｏ）には、プリンタ３０から印刷完了通知を受信したかどうかを判断する（ステップＳ３１６）。印刷完了通知を受信していない場合（ステップＳ３１６：Ｎｏ）には、上述したステップＳ３１２からを繰り返す。
【００８８】
一方、印刷完了通知を受信した場合（ステップＳ３１６：Ｙｅｓ）には、印刷が正常に完了したことになるので、この印刷要求処理を終了する。
【００８９】
次に、図１４乃至図１６に基づいて、印刷クライアント２０の印刷要求処理に対応して、プリンタ３０で実行される印刷実行処理について説明する。図１４乃至図１６は、プリンタ３０で実行される印刷実行処理を説明するフローチャートである。この印刷実行処理は、プリンタ３０のＲＯＭ４４に格納されている印刷実行プログラムをＣＰＵ４０が読み込んで実行することにより実現される処理である。本実施形態においては、この印刷実行処理は、定常的に実行されている処理である。
【００９０】
図１４に示すように、プリンタ３０は、印刷クライアント２０からプリンタ公開鍵取得要求を受信したかどうかを判断する（ステップＳ３５０）。このプリンタ公開鍵取得要求を受信していない場合（ステップＳ３５０：Ｎｏ）には、このステップＳ３５０の処理を繰り返して待機する。
【００９１】
一方、プリンタ公開鍵取得要求を受信した場合（ステップＳ３５０：Ｙｅｓ）には、プリンタ３０は、プリンタ公開鍵格納部ＴＢ１０からプリンタ公開鍵を取得する（ステップＳ３５２）。続いて、プリンタ３０は、このプリンタ公開鍵を印刷クライアント２０に送信する（ステップＳ３５４）。
【００９２】
次に、プリンタ３０は、印刷クライアント２０から暗号化クライアント乱数を受信したかどうかを判断する（ステップＳ３５６）。この暗号化クライアント乱数を受信していない場合（ステップＳ３５６：Ｎｏ）には、このステップＳ３５６の処理を繰り返して待機する。
【００９３】
一方、暗号化クライアント乱数を受信した場合（ステップＳ３５６：Ｙｅｓ）には、プリンタ３０は自らの機器固有情報を取得する（ステップＳ３５８）。続いて、プリンタ３０は、位置検出部５４から、その時点におけるプリンタ３０のプリンタ位置情報を取得する（ステップＳ３６０）。このようにプリンタ位置情報を、その都度、位置検出部５４から取得することとしているのは、プリンタ３０が当初設置された場所から別の場所に移動されている可能性があり、このような場合にはプリンタ３０で印刷が行われないようにするためである。
【００９４】
次に、プリンタ３０は、機器固有情報とプリンタ位置情報とに基づいて、パスフレーズを作成する（ステップＳ３６２）。このパスフレーズの作成手法は、上述したプリンタ公開鍵生成処理におけるステップＳ１１０と同じ手法である必要がある。なぜなら、パスフレーズが異なると、印刷クライアント２０から送信された暗号化クライアント乱数を、プリンタ秘密鍵で復号できなくなってしまうからである。
【００９５】
次に、プリンタ３０は、パスフレーズを用いて、公開鍵暗号法によりプリンタ公開鍵とプリンタ秘密鍵とを生成する（ステップＳ３６４）。続いて、図１５に示すように、プリンタ３０は、生成されたプリンタ秘密鍵を用いて、受信した暗号化クライアント乱数を復号して、クライアント乱数を取得する（ステップＳ４００）。続いて、プリンタ３０は、ステップＳ３６４で生成したプリンタ公開鍵とプリンタ秘密鍵とを破棄する（ステップＳ４０２）。
【００９６】
次に、プリンタ３０は、ステップＳ４００で暗号化クライアント乱数が復号され、クライアント乱数を取得することができたかどうかを判断する（ステップＳ４０４）。暗号化クライアント乱数の復号ができなかった場合（ステップＳ４０４：Ｎｏ）には、印刷クライアント２０に、プリンタ３０が移動されてしまったため暗号化クライアント乱数の復号ができない旨の解読不能通知を送信して（ステップＳ４０６）、上述したステップＳ３５０の処理に戻る。
【００９７】
一方、暗号化クライアント乱数の復号ができた場合（ステップＳ４０４：Ｙｅｓ）には、プリンタ３０は、印刷クライアント２０にクライアント公開鍵の送信を要求するクライアント公開鍵取得要求を送信する（ステップＳ４０８）。続いて、プリンタ３０は、印刷クライアント２０からクライアント公開鍵を受信したかどうかを判断する（ステップＳ４１０）。クライアント公開鍵を受信していない場合（ステップＳ４１０：Ｎｏ）には、このステップＳ４１０の処理を繰り返して待機する。
【００９８】
一方、クライアント公開鍵を受信した場合（ステップＳ４１０：Ｙｅｓ）には、プリンタ３０は乱数を生成し、これをプリンタ乱数とする（ステップＳ４１２）。本実施形態においては、ＣＰＵ４０がソフトウェア的に乱数を生成する。
【００９９】
次に、プリンタ３０は、ステップＳ４１０で受信したクライアント公開鍵を用いて、ステップＳ４１２で生成したプリンタ乱数を暗号化し、暗号化プリンタ乱数を生成する（ステップＳ４１４）。そして、この暗号化プリンタ乱数を印刷クライアント２０に送信する（ステップＳ４１６）。
【０１００】
次に、図１６に示すように、プリンタ３０は、印刷クライアント２０から解読不能通知を受信したかどうかを判断する（ステップＳ４５０）。この解読不能通知を受信した場合（ステップＳ４５０：Ｙｅｓ）には、プリンタ３０は、上述したステップＳ３５０の処理に戻る。
【０１０１】
一方、ステップＳ４５０で解読不能通知を受信していない場合（ステップＳ４５０：Ｎｏ）には、印刷クライアント２０から暗号化印刷データを受信したかどうかを判断する（ステップＳ４５２）。暗号化印刷データを受信していない場合（ステップＳ４５２：Ｎｏ）には、上述したステップＳ４５０からを繰り返す。
【０１０２】
一方、暗号化印刷データを受信した場合（ステップＳ４５２：Ｙｅｓ）には、ステップＳ４００で取得したクライアント乱数と、ステップＳ４１２で生成したプリンタ乱数とを用いて、１つの変数を生成する（ステップＳ４５４）。このステップＳ４５４における変数の生成手法は、上述したステップＳ２６８における変数の生成手法と同じである必要がある。このため、ここで生成される変数は、ステップＳ２６８で生成される変数と同じになる。
【０１０３】
次に、プリンタ３０は、ステップＳ４５４で生成した変数を用いて、共通鍵を生成する（ステップＳ４５６）。このステップＳ４５６で生成される共通鍵は、ステップＳ３００で生成される共通鍵と同じになる。なぜなら、共通鍵を生成する際に使用する変数が、ステップＳ３００と同じだからである。
【０１０４】
次に、プリンタ３０は、この共通鍵を用いて、受信した暗号化印刷データを復号し、印刷データを取得する（ステップＳ４５８）。続いて、プリンタ３０は、暗号化印刷データの復号ができたかどうかを判断する（ステップＳ４５９）。暗号化印刷データの復号ができなかった場合（ステップＳ４５９：Ｎｏ）には、プリンタ３０は解読不能通知を印刷クライアント２０に送信し（ステップＳ４７０）、上述したステップＳ３５０の処理に戻る。
【０１０５】
一方、暗号化印刷データの復号ができた場合（ステップＳ４５９：Ｙｅｓ）には、プリンタ３０は、得られた印刷データに基づいて、印刷エンジン５２を駆動した印刷を実行する（ステップＳ４６０）。具体的には、印刷データの言語解釈を行い、印刷エンジン５２に適合した印刷要求データを生成する。そして、この印刷要求データを印刷エンジン５２に送信することにより、印刷エンジン５２で印刷用紙等に印刷が行われる。
【０１０６】
次に、プリンタ３０は、ステップＳ４５６で生成した共通鍵を破棄する（ステップＳ４６２）。続いて、プリンタ３０は、ステップＳ４００で取得したクライアント乱数と、ステップＳ４１２で生成したプリンタ乱数と、ステップＳ４５６で生成した変数を破棄する（ステップＳ４６４）。続いて、プリンタ３０は、印刷が正常に完了した旨の印刷完了通知を印刷クライアント２０に送信する（ステップＳ４６６）。そして、上述したステップＳ３５０の処理に戻る。
【０１０７】
図１７は、上述した各処理をハードウェアにより実現した場合の構成を示す機能ブロック図である。この図１７に示すように、プリンタ３０を設置する際に、プリンタ３０の設置されている場所を特定するためのプリンタ位置情報を位置検出部５４から取得し、これを第１プリンタ位置情報とし、プリンタ公開鍵生成部１００は、この第１プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ公開鍵を生成する。そして、プリンタ公開鍵生成部１００で生成したプリンタ公開鍵を、プリンタ公開鍵保持部１０２に保持させる。
【０１０８】
一方、印刷クライアント２０を設置する際に、印刷クライアント２０の設置されている場所を特定するためのクライアント位置情報を位置検出部７７から取得し、これを第１クライアント位置情報とし、クライアント公開鍵生成部２２０は、この第１クライアント位置情報を少なくとも含むパスフレーズを用いて、クライアント公開鍵を生成する。そして、クライアント公開鍵生成部２２０で生成したクライアント公開鍵を、クライアント公開鍵保持部２２２に保持させる。
【０１０９】
そして、本実施形態においては、印刷クライアント２０は、ユーザから印刷を要求された場合に、プリンタ公開鍵送信要求送信部２００が、プリンタ公開鍵の送信を要求するプリンタ公開鍵送信要求を、プリンタ３０に送信する。プリンタ３０では、印刷クライアント２０から送信されたプリンタ公開鍵送信要求を、プリンタ公開鍵送信要求受信部１０６で受信する。このプリンタ公開鍵送信要求を受信した場合には、プリンタ３０では、プリンタ公開鍵送信部１０６が、プリンタ公開鍵保持部１０２に保持されているプリンタ公開鍵を読み出して、印刷クライアント２０に送信する。
【０１１０】
印刷クライアント２０では、プリンタ公開鍵受信部２０２で、プリンタ３０から送信されたプリンタ公開鍵を受信する。そして、クライアント乱数生成部２０４で、クライアント乱数を生成する。続いて、暗号化クライアント乱数生成部２０６で、プリンタ公開鍵受信部２０２で受信したプリンタ公開鍵を用いて、このクライアント乱数を暗号化することにより、暗号化クライアント乱数を生成する。続いて、暗号化クライアント乱数送信部２０８は、この暗号化クライアント乱数を、プリンタ３０に送信する。
【０１１１】
プリンタ３０の暗号化クライアント乱数受信部１１０では、印刷クライアント２０から送信された暗号化クライアント乱数を受信する。また、プリンタ３０では、位置検出部５４からプリンタ位置情報を取得し、これを第２プリンタ位置情報とし、プリンタ秘密鍵生成部１１２は、この第２プリンタ位置情報を少なくとも含むパスフレーズを用いて、プリンタ秘密鍵を生成する。そして、クライアント乱数取得部１１４は、プリンタ秘密鍵生成部１１２で生成したプリンタ秘密鍵を用いて、暗号化クライアント乱数を復号して、クライアント乱数を取得する。
【０１１２】
また、プリンタ３０のクライアント公開鍵送信要求送信部１２０は、印刷クライアント２０に、クライアント公開鍵の送信を要求するクライアント公開鍵送信要求を送信する。このクライアント公開鍵送信要求は、印刷クライアント２０のクライアント公開鍵送信要求受信部２２４で受信される。このクライアント公開鍵送信要求を受信した場合、印刷クライアント２０のクライアント公開鍵送信部２２６は、クライアント公開鍵保持部２２２から、公開鍵を取得して、プリンタ３０に送信する。
【０１１３】
印刷クライアント２０から送信されたクライアント公開鍵は、プリンタ３０のクライアント公開鍵受信部１２２で受信される。クライアント公開鍵を受信した場合、プリンタ３０のプリンタ乱数生成部１２４は、プリンタ乱数を生成する。そして、暗号化プリンタ乱数生成部１２６は、このプリンタ乱数を、クライアント公開鍵を用いて暗号化し、暗号化プリンタ乱数を生成する。続いて、暗号化プリンタ乱数送信部１２８は、この生成した暗号化プリンタ乱数を、印刷クライアント２０に送信する。
【０１１４】
プリンタ３０から送信された暗号化プリンタ乱数は、暗号化プリンタ乱数受信部２４０で受信される。この暗号化プリンタ乱数を受信した印刷クライアント２０では、クライアント秘密鍵生成部２４２が、位置検出部からその時点のクライアント位置情報を取得して、これを第２クライアント位置情報とし、この第２クライアント位置情報を少なくとも含むパスフレーズを用いてクライアント秘密鍵を生成する。プリンタ乱数取得部２４４は、この生成したクライアント秘密鍵を用いて、暗号化プリンタ乱数を復号し、プリンタ乱数を取得する。そして、共通鍵生成部２４６は、クライアント乱数生成部２０４で生成したクライアント乱数と、プリンタ乱数取得部２４４で取得したプリンタ乱数とを用いて、１つの共通鍵を生成する。
【０１１５】
次に、印刷クライアント２０は、印刷データ生成部２６０で印刷データを生成する。続いて、暗号化印刷データ生成部２６２は、共通鍵を用いて、この印刷データを暗号化し、暗号化印刷データを生成する。そして、暗号化印刷データ送信部２６４は、この暗号化印刷データを、プリンタ３０に送信する。
【０１１６】
印刷クライアント２０から送信された暗号化印刷データは、プリンタ３０の暗号化印刷データ受信部１３０で受信される。また、共通鍵取得部１３２では、プリンタ乱数生成部１２４で生成したプリンタ乱数と、クライアント乱数取得部１１４で取得したクライアント乱数とを用いて、共通鍵を生成する。そして、印刷データ取得部１３４では、この共通鍵を用いて、暗号化印刷データを復号し、印刷データを取得し、印刷実行部１３６では、この印刷データに基づいて印刷を実行する。
【０１１７】
以上のように、本実施形態に係る印刷システムによれば、印刷クライアント２０はクライアント公開鍵を生成した場所でのみ正常な印刷要求をすることができ、プリンタ３０はプリンタ公開鍵を生成した場所でのみ正常な印刷を行うことができる。このため、印刷クライアント２０とプリンタ３０の使用できる場所を制限することができる。
【０１１８】
すなわち、本実施形態におけるプリンタ３０では、このプリンタ３０がプリンタ公開鍵を生成した場所と異なる場所に移動された場合には、印刷クライアント２０から送信された暗号化クライアント乱数を正しく復号できないので、正しいクライアント乱数を取得することができない。このため、プリンタ３０は正しい共通鍵を生成できないのである。
【０１１９】
一方、本実施形態における印刷クライアント２０では、この印刷クライアント２０がクライアント公開鍵を生成した場所と異なる場所に移動された場合には、プリンタ３０から送信された暗号化プリンタ乱数を正しく復号できないので、正しいプリンタ乱数を取得することができない。このため、印刷クライアント２０は正しい共通鍵を生成できないのである。
【０１２０】
しかも、本実施形態においては、印刷データは共通鍵を用いて暗号化されている。一般に、公開鍵暗号法による秘密鍵でデータを復号する速度よりも、共通鍵暗号法による共通鍵でデータを復号する速度の方が、１０００倍程度速いと言われている。このため、データ量の大きい印刷データを、共通鍵を用いて迅速に復号することができるようになる。
【０１２１】
また、これに伴って、本実施形態に係る印刷システムによれば、印刷クライアント２０は、暗号化して送信した暗号化印刷データの印刷をできるプリンタの位置を、実質的に制限することができるので、印刷クライアント２０のユーザが意図していない位置にあるプリンタで印刷が行われしまうのを回避することができる。
【０１２２】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態においては、プリンタ位置情報に加えて、機器固有情報をパスフレーズに用いたが、機器固有情報は必ずしも必要なものではない。
【０１２３】
また、使用できる位置を制限するデータ受信装置としてプリンタを例示して説明したが、本発明はプリンタに限定されるものではない。さらに、データ送信装置も、印刷クライアントに限定されるものではない。
【０１２４】
例えば、データ送受信システムにおけるデータ送信装置が画像撮影用のデジタルカメラであり、データ受信装置がデジタルカメラで撮影した画像データを蓄積するデータサーバであってもよい。この場合、デジタルカメラから送信される乱数はデータサーバから受信した公開鍵を用いて暗号化されており、この暗号化された乱数を受信したデータサーバでは、上述した手法により乱数を取得して、共通鍵を取得する。また、データサーバから送信される乱数はデジタルカメラから受信した公開鍵を用いて暗号化されており、この暗号化された乱数を受信したデジタルカメラでは、上述した手法により乱数を取得して、共通鍵を取得する。そして、デジタルカメラから送信されるデータは、共通鍵を用いて暗号化されており、この暗号化されたデータを受信したデータサーバは、取得した共通鍵を用いてこれを復号し、データを取得する。そして、データサーバは、データの復号できた場合には、そのデータを蓄積することとなる。
【０１２５】
また、上述した実施形態では、プリンタ３０の印刷媒体が印刷用紙である場合を例に説明したが、印刷媒体はこれに限るものではなく、例えば、ＯＨＰシート等の他の印刷媒体であっても本発明を適用することができる。
【０１２６】
さらに、上述の実施形態で説明した各処理については、これら各処理を実行するためのプログラムをフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＲＯＭ、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、このプログラムが記録された記録媒体を印刷クライアント２０及び／又はプリンタ３０に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【０１２７】
また、印刷クライアント２０及び／又はプリンタ３０は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、印刷クライアント２０及び／又はプリンタ３０の備える他のプログラムを活用し、記録媒体には印刷クライアント２０及び／又はプリンタ３０が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を記録するようにしてもよい。
【０１２８】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、印刷クライアント２０及び／又はプリンタ３０に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【０１２９】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだ印刷クライアント２０及び／又はプリンタ３０は、そのプログラムの復号や伸張を行った上で、実行する必要がある。
【図面の簡単な説明】
【０１３０】
【図１】本発明の一実施形態に係る印刷システムにおける共通鍵、公開鍵、及び、秘密鍵の用い方を説明する図。
【図２】本実施形態に係る印刷システムの全体構成を説明するブロック図。
【図３】本実施形態に係るプリンタのハードウェア構成を説明するブロック図。
【図４】プリンタのハードウェア構成の変形例を説明するブロック図。
【図５】本実施形態に係る印刷クライアントのハードウェア構成を説明する図。
【図６】印刷クライアントのハードウェア構成の変形例を説明する図。
【図７】本実施形態におけるプリンタ公開鍵生成処理を説明するフローチャートを示す図。
【図８】本実施形態におけるプリンタ公開鍵格納部の構成の一例を示す図。
【図９】本実施形態におけるクライアント公開鍵生成処理を説明するフローチャートを示す図。
【図１０】本実施形態におけるクライアント公開鍵格納部の構成の一例を示す図。
【図１１】本実施形態における印刷要求処理を説明するフローチャートを示す図（その１）。
【図１２】本実施形態における印刷要求処理を説明するフローチャートを示す図（その２）。
【図１３】本実施形態における印刷要求処理を説明するフローチャートを示す図（その３）。
【図１４】本実施形態における印刷実行処理を説明するフローチャートを示す図（その１）。
【図１５】本実施形態における印刷実行処理を説明するフローチャートを示す図（その２）。
【図１６】本実施形態における印刷実行処理を説明するフローチャートを示す図（その３）。
【図１７】本実施形態に係る印刷システムの処理をハードウェアにより実現した場合を説明する機能ブロック図。
【符号の説明】
【０１３１】
１０  ネットワーク
２０  印刷クライアント
３０  プリンタ
４０  ＣＰＵ
４２  ＲＡＭ
４４  ＲＯＭ
４６  内部バス
４８、５０  インターフェース
５２  印刷エンジン
５４  位置検出部
５６  ＥＥＰＲＯＭ
６０  コンピュータ本体
６２  ディスプレイ
６４  ＣＰＵ
６６  ＲＡＭ
６８  ＲＯＭ
７０  内部バス
７２、７４、７８  インターフェース
７６  ハードディスク
７７  位置検出部
【図１】
2005138418.tif 000003
【図２】
2005138418.tif 000004
【図３】
2005138418.tif 000005
【図４】
2005138418.tif 000006
【図５】
2005138418.tif 000007
【図６】
2005138418.tif 000008
【図７】
2005138418.tif 000009
【図８】
2005138418.tif 000010
【図９】
2005138418.tif 000011
【図１０】
2005138418.tif 000012
【図１１】
2005138418.tif 000013
【図１２】
2005138418.tif 000014
【図１３】
2005138418.tif 000015
【図１４】
2005138418.tif 000016
【図１５】
2005138418.tif 000017
【図１６】
2005138418.tif 000018
【図１７】
2005138418.tif 000019