JP4045552B2 - プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム - Google Patents
プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム Download PDFInfo
- Publication number
- JP4045552B2 JP4045552B2 JP2004534094A JP2004534094A JP4045552B2 JP 4045552 B2 JP4045552 B2 JP 4045552B2 JP 2004534094 A JP2004534094 A JP 2004534094A JP 2004534094 A JP2004534094 A JP 2004534094A JP 4045552 B2 JP4045552 B2 JP 4045552B2
- Authority
- JP
- Japan
- Prior art keywords
- public key
- printer
- data
- predetermined number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
- G06F21/608—Secure printing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2111—Location-sensitive, e.g. geographical location, GPS
Description
このようなネットワークを用いた印刷システムにおいては、様々なユーザが、各印刷クライアントから印刷データをプリンタに送信し、印刷を行うことができる。
しかしながら、印刷クライアントから送信された印刷データを、プリンタが無条件に印刷してしまうこととすると、ユーザが意図した場所に設置されていないプリンタであってもそのまま印刷がなされてしまうこととなる。特に、以前使用されていた場所から別な場所に移動されたプリンタの場合、ネットワーク上のアドレスであるIPアドレス等は変更されていないこともあることから、移動後の場所にあるプリンタで、送信した印刷データの印刷が行われてしまうこととなる。このような事態は、印刷データのセキュリティを確保したいユーザにとっては、望ましくない。
さらには、印刷クライアントから送信された印刷データを、プリンタが無条件で印刷してしまうこととすると、本来そのプリンタで印刷する権限のない印刷クライアントからの印刷データまで、プリンタが印刷をしてしまうこととなる。この場合、そのプリンタで印刷できる印刷クライアントを制限できないこととなり、やはり好ましくない。特に、不正な意図をもって大量の印刷データを送信するユーザも存在し得ることを考えると、何らかの印刷制限を設ける必要がある。
また例えば、会社のある部署で使用していたプリンタを別の部署に移動させて、さらに使用する場合もある。このような場合、これまでそのプリンタで印刷する権限を有していた印刷クライアントであっても、プリンタの移動をした後には、このプリンタで印刷する権限を与えたくないことがある。このような状況において、印刷クライアントからの印刷データを、プリンタ側で印刷しないようにする技術の必要性が認められる(特開平11−331144号公報参照)。
さらには、ネットワーク上の経路情報を操作して、別の位置に同じプリンタを設置し、同じネットワークアドレスを使用することにより、別のプリンタがあたかも真正なプリンタになりすますことも想定できる。
また、プリンタ自体を認証するための証明書を組み込んだプリンタも存在するが、このようなプリンタを廃棄する場合には、このプリンタに組み込まれている証明書を確実に削除する必要がある。しかし、プリンタの設置場所を変更するだけで、プリンタの印刷ができなくなるのであれば、プリンタの破棄をより安全に行うことが可能になる。
そこで本発明は、前記課題に鑑みてなされたものであり、プリンタの設置されている位置情報に基づいて、印刷できる印刷データを制限することにより、印刷データ及びプリンタのセキュリティを確保した印刷システムを提供することを目的とする。また、データ受信装置の設置されている位置情報に基づいて、処理できるデータを制限することにより、送信するデータ及びデータ受信装置のセキュリティを確保したデータ送受信システムを提供することを目的とする。
当該プリンタの設置されている場所を特定するためのプリンタ位置情報を取得する、プリンタ位置情報取得部と、
前記プリンタ位置情報取得部からプリンタ位置情報を取得し、これを第1プリンタ位置情報とする、第1プリンタ位置情報取得部と、
前記第1プリンタ位置情報を少なくとも含むパスフレーズと、所定の数とを用いて、公開鍵を生成する、公開鍵生成部と、
前記公開鍵で暗号化された印刷データを受信する、印刷データ受信部と、
前記印刷データを受信した際に、前記プリンタ位置情報取得部からプリンタ位置情報を取得し、これを第2プリンタ位置情報とする、第2プリンタ位置情報取得部と、
前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、秘密鍵を生成する、秘密鍵生成部と、
前記秘密鍵を用いて、前記印刷データ受信部で受信した前記印刷データを復号する、復号部と、
を備える。
本発明の他の見地によれば、印刷データを処理するプリンタの制御方法は、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報を、プリンタ位置情報取得部から取得し、これを第1プリンタ位置情報とするステップと、
前記第1プリンタ位置情報を少なくとも含むパスフレーズと、所定の数とを用いて、公開鍵を生成するステップと、
印刷クライアントから印刷データを受信するステップと、
前記印刷データを受信した際に、前記プリンタ位置情報取得部からプリンタ位置情報を取得し、これを第2プリンタ位置情報とするステップと、
前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、秘密鍵を生成するステップと、
前記秘密鍵を用いて、前記印刷データ受信部で受信した前記印刷データを復号するステップと、
を備える。
本発明の他の見地によれば、少なくとも1台のプリンタと、前記プリンタにネットワークを介して接続される少なくとも1台の印刷クライアントとを有する、印刷システムは、
前記プリンタは、
前記プリンタの設置されている場所を特定するためのプリンタ位置情報を取得する、プリンタ位置情報取得部と、
前記プリンタ位置情報取得部からプリンタ位置情報を取得し、これを第1プリンタ位置情報とする、第1プリンタ位置情報取得部と、
前記第1プリンタ位置情報を少なくとも含むパスフレーズと、所定の数とを用いて、公開鍵を生成する、公開鍵生成部と、
を備えており、
前記印刷クライアントは、
前記プリンタで印刷を行うための印刷データを生成する、印刷データ生成部と、
前記公開鍵で前記印刷データを暗号化し、この暗号化した印刷データを、前記プリンタに送信する、印刷データ送信部と、
を備えており、
前記プリンタは、さらに、
前記印刷クライアントから送信された、前記公開鍵で暗号化された印刷データを受信する、印刷データ受信部と、
前記印刷データを受信した際に、前記プリンタ位置情報取得部からプリンタ位置情報を取得し、これを第2プリンタ位置情報とする、第2プリンタ位置情報取得部と、
前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、秘密鍵を生成する、秘密鍵生成部と、
前記秘密鍵を用いて、前記印刷データ受信部で受信した前記印刷データを復号する、復号部と、
を備える。
本発明の他の見地によれば、データを処理するデータ受信装置は、
当該データ受信装置の設置されている場所を特定するためのデータ受信装置位置情報を取得する、データ受信装置位置情報取得部と、
前記データ受信装置位置情報取得部からデータ受信装置位置情報を取得し、これを第1データ受信装置位置情報とする、第1データ受信装置位置情報取得部と、
前記第1データ受信装置位置情報を少なくとも含むパスフレーズと、乱数とを用いて、公開鍵を生成する、公開鍵生成部と、
前記公開鍵で暗号化されたデータを受信する、データ受信部と、
前記データを受信した際に、前記データ受信装置位置情報取得部からデータ受信装置位置情報を取得し、これを第2データ受信装置位置情報とする、第2データ受信装置位置情報取得部と、
前記第2データ受信装置位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、秘密鍵を生成する、秘密鍵生成部と、
前記秘密鍵を用いて、前記印刷データ受信部で受信した前記データを復号する、復号部と、
を備える。
本発明の他の見地によれば、少なくとも1台のデータ受信装置と、前記データ受信装置にネットワークを介して接続される少なくとも1台のデータ送信装置とを有する、データ送受信システムは、
前記データ受信装置は、
前記データ受信装置の設置されている場所を特定するためのデータ受信装置位置情報を取得する、データ受信装置位置情報取得部と、
前記データ受信装置位置情報取得部からデータ受信装置位置情報を取得し、これを第1データ受信装置位置情報とする、第1データ受信装置位置情報取得部と、
前記第1データ受信装置位置情報を少なくとも含むパスフレーズと、乱数とを用いて、公開鍵を生成する、公開鍵生成部と、
を備えており、
前記データ送信装置は、
前記データ受信装置で処理を行うためのデータを生成する、データ生成部と、
前記公開鍵で前記データを暗号化し、この暗号化したデータを、前記データ受信装置に送信する、データ送信部と、
を備えており、
前記データ受信装置は、さらに、
前記データ送信装置から送信された、前記公開鍵で暗号化されたデータを受信する、データ受信部と、
前記データを受信した際に、前記データ受信装置位置情報取得部からデータ受信装置位置情報を取得し、これを第2データ受信装置位置情報とする、第2データ受信装置位置情報取得部と、
前記第2データ受信装置位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、秘密鍵を生成する、秘密鍵生成部と、
前記秘密鍵を用いて、前記印刷データ受信部で受信した前記データを復号する、復号部と、
を備える。
図2は、本発明の第1実施形態に係るプリンタのハードウェア構成の一例を示す図、
図3は、本発明の第1実施形態に係る印刷クライアントの構成の一例を示す図、
図4は、本発明の第1実施形態において、公開鍵と秘密鍵とを用いた、印刷データの暗号化と復号を説明するための概念図、
図5は、本発明の第1実施形態に係る印刷クライアントが実行する公開鍵要求処理を説明するフローチャートを示す図、
図6は、本発明の第1実施形態に係る印刷クライアントが備える公開鍵テーブルの構成の一例を示す図、
図7は、本発明の第1実施形態に係るプリンタが実行する公開鍵送信処理を説明するフローチャートの一部を示す図(その1)、
図8は、本発明の第1実施形態に係るプリンタが実行する公開鍵送信処理を説明するフローチャートの一部を示す図(その2)、
図9は、本発明の第1実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図、
図10は、本発明の第1実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図、
図11は、本発明の第2実施形態に係るプリンタが実行する公開鍵送信処理を説明するフローチャートの一部を示す図、
図12は、本発明の第2実施形態に係るプリンタが備える乱数テーブルの構成の一例を示す図、
図13は、本発明の第2実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図、
図14は、本発明の第2実施形態において、印刷クライアントからプリンタに送信される印刷送信用データの構成の一例を示す図、
図15は、本発明の第2実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図、
図16は、本発明の第3実施形態に係る印刷クライアントが実行する公開鍵要求処理を説明するフローチャートを示す図、
図17は、本発明の第3実施形態に係る印刷クライアントが備える公開鍵テーブルの構成の一例を示す図、
図18は、本発明の第3実施形態に係るプリンタが実行する公開鍵送信処理を説明するフローチャートの一部を示す図(その1)、
図19は、本発明の第3実施形態に係るプリンタが実行する公開鍵送信処理を説明するフローチャートの一部を示す図(その2)、
図20は、本発明の第3実施形態に係るプリンタが備える乱数テーブルの構成の一例を示す図、
図21は、本発明の第3実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図、
図22は、本発明の第3実施形態において、印刷クライアントからプリンタに送信される印刷送信用データの構成の一例を示す図、
図23は、本発明の第3実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図、
図24は、第4実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートの一部を示す図(その1)、
図25は、第4実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートの一部を示す図(その2)、
図26は、第4実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートの一部を示す図(その1)、
図27は、第4実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートの一部を示す図(その2)、
図28は、第4実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートの一部を示す図(その3)、
図29は、本発明の第5実施形態において、公開鍵と秘密鍵とを用いた、印刷データの暗号化と復号を説明するための概念図、
図30は、本発明の第5実施形態に係る印刷クライアントが実行する公開鍵要求処理を説明するフローチャートを示す図、
図31は、本発明の第5実施形態に係る印刷クライアントが備える公開鍵テーブルの構成の一例を示す図、
図32は、本発明の第5実施形態に係るプリンタが実行する公開鍵送信処理を説明するフローチャートの一部を示す図(その1)、
図33は、本発明の第5実施形態に係るプリンタが実行する公開鍵送信処理を説明するフローチャートの一部を示す図(その2)、
図34は、本発明の第5実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図、
図35は、本発明の第5実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図、
図36は、本発明の第6実施形態に係る印刷クライアントが実行する公開鍵要求処理を説明するフローチャートを示す図、
図37は、本発明の第6実施形態に係る印刷クライアントが備える公開鍵テーブルの構成の一例を示す図、
図38は、本発明の第6実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図、
図39は、本実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートの一部を示す図(その1)、
図40は、本実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートの一部を示す図(その2)、
図41は、本実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートの一部を示す図(その1)、
図42は、本実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートの一部を示す図(その2)、
図43は、本実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートの一部を示す図(その3)、
図44は、乱数の代わりに、プリンタから印刷クライアントにアルゴリズムと付加情報とを送信する例を説明する図(印刷クライアントからプリンタには所定の数を送信する場合)、
図45は、図44の変形例を示す図(印刷クライアントからプリンタにはアルゴリズムと付加情報とを送信する場合)、
図46は、図44の別の変形例を示す図である(印刷クライアントからプリンタにはアルゴリズムは送信せずに、付加情報を送信する場合)。
好適な実施例
〔第1実施形態〕
本発明の第1実施形態に係る印刷システムは、プリンタが設置されている位置を表すプリンタ位置情報を少なくとも用いて公開鍵を生成し、これを印刷クライアントに取得させておき、印刷クライアントが印刷データをこのプリンタに送信する際には、この取得した公開鍵を用いて印刷データを暗号化して生成した印刷送信用データとして送信することとしたものである。そして、この印刷送信用データを受信したプリンタでは、受信時に再度、その時点におけるプリンタ位置情報を少なくとも用いて秘密鍵を生成し、この秘密鍵で印刷送信用データが復号できた場合にのみ印刷を実行するようにしたものである。また、一般に、公開鍵暗号法においては、公開鍵及び秘密鍵を生成する際に、乱数を使用するが、本実施形態においては、プリンタに予め乱数を登録しておき、印刷クライアントに送信する公開鍵を生成する際に使用する乱数と、印刷送信用データを復号するために秘密鍵を生成する際に使用する乱数とが、同じものになるようにすることにより、プリンタ位置情報が不変であれば同じ秘密鍵が得られるようにしたものである。より詳しくを、以下に説明する。
まず、図1に基づいて、本実施形態に係る印刷システムの構成を説明する。図1は、本実施形態に係る印刷システムのハードウェア構成を示すブロック図である。
この図1に示すように、本実施形態に係る印刷システムは、ネットワーク10に接続された印刷クライアント20、22と、同じくネットワーク10に接続されたプリンタ30、32とを備えている。本実施形態においては、ネットワーク10は、TCP/IP(transmission control protocol/internet protocol)を用いたインターネットにより構成されている。但し、ネットワーク10の態様は、インターネットに限るものではなく、例えば、イーサーネット〔登録商標〕等のLANや、インターネットとLANとの混在により構成されていてもよい。
印刷クライアント20、22は、例えば、ホストコンピュータやパーソナルコンピュータと呼ばれる各種のコンピュータにより構成されている。本実施形態では、特に印刷クライアント20、22は、印刷データを公開鍵で暗号化した印刷送信用データを生成し、この印刷送信用データをネットワーク10を介してプリンタ30及び/又はプリンタ32に送信する。このネットワーク10に接続される印刷クライアントの台数は任意であり、1台でもよく、複数台でもよい。また、この印刷クライアントは、コンピュータに限られるものではなく、例えば、撮影した画像を印刷する必要のあるデジタルカメラや、印刷画像データをコンテンツとして蓄積してあるコンテンツサーバ等でもよい。
また本実施形態においては、プリンタ30、32はいわゆるネットワークプリンタである。本実施形態においては、特にプリンタ30、32は、印刷送信用データを印刷クライアント20及び/又は印刷クライアント22から受信し、この印刷送信用データを、少なくともプリンタ位置情報を含むパスフレーズと、このプリンタ30、32に保持されている乱数とを用いて、秘密鍵を生成し、この秘密鍵で印刷送信用データを復号する。そして、印刷送信用データの復号ができた場合には、その印刷送信用データに基づく印刷を行い、印刷送信用データの復号ができなかった場合には、その印刷送信用データに基づく印刷は行わない。
本実施形態においては、プリンタ30、32は、ネットワーク10に直接接続されており、各プリンタ30、32は固有のネットワークアドレスを有している。したがって、印刷クライアント20、22は、このネットワークアドレスを指定することにより、印刷送信用データをプリンタ30又はプリンタ32に送信することができる。
但し、この図1においては、プリンタ30、32をネットワーク10に直接接続しているが、プリンタサーバを介して接続するようにしてもよい。また、このネットワーク10に接続されるプリンタの台数は任意であり、1台でもよく、複数台でもよい。
図2は、プリンタ30の内部構成を説明するためのブロック図である。なお、プリンタ32の内部構成もプリンタ30と同様である。
この図2に示すように、プリンタ30は、CPU(Central Processing Unit)40と、RAM(Random Access Memory)42と、ROM(Read Only Memory)44とを備えており、これらは互いに内部バス46を介して接続されている。また、この内部バス46には、通信用のインターフェース48が接続されており、この通信用のインターフェース48を介して、上述したネットワーク10にプリンタ30が接続されている。さらに、内部バス46には、インターフェース50が接続されており、このインターフェース50には印刷エンジン52が接続されている。
また、内部バス46には、位置検出部54が接続されている。この位置検出部54は、プリンタ30が設置されている位置を特定する機能を有する。本実施形態においては、例えば、GPS(global positioning system)により構成されており、このプリンタ30が設置されている位置の緯度、経度、高度が特定できるようになっている。現時点におけるGPSの精度は、緯度、経度、高度において、それぞれ±10m程度であると言われている。
但し、この位置検出部54は、GPSを用いた構成に限らず、例えば、無線LANによりこのプリンタ30がネットワーク10に接続されている場合には、このプリンタ30が収容されている無線基地局に基づいて、プリンタ30の位置を特定するようにしてもよい。或いは、PHS(Personal Handyphone System)などの移動体通信技術を利用して、プリンタ30の位置を特定するようにしてもよい。
さらに、内部バス46には、インターフェース56を介して、ハードディスク58が接続されている。本実施形態においては、このハードディスク58は、書き換え可能な不揮発性記憶装置として機能する。
図3は、印刷クライアント20の内部構成を説明するためのブロック図である。なお、本実施形態においては、印刷クライアント22の内部構成も印刷クライアント20と同様である。
この図3に示すように、本実施形態に係る印刷クライアント20は、コンピュータ本体60とディスプレイ62とを備えて構成されている。
コンピュータ本体60は、CPU64と、RAM66と、ROM68とを備えており、これらは互いに内部バス70を介して接続されている。また、この内部バス70には、通信用のインターフェース72が接続されており、この通信用のインターフェース72を介して、上述したネットワーク10に印刷クライアント20が接続されている。
さらに、内部バス70には、インターフェース74が接続されており、このインターフェース74には大容量記憶装置であるハードディスク76が接続されている。本実施形態においては、このハードディスク76は、書き換え可能な不揮発性記憶装置として機能する。また、内部バス70には、インターフェース78が接続されており、このインターフェース78から延びるケーブル80を介して、上述したディスプレイ62が接続されている。
次に、本実施形態に係る印刷システムにおいて、例えば、印刷クライアント20がプリンタ30で印刷を行う場合の処理を、概略的に説明する。
この場合、印刷クライアント20は、予め、例えばプリンタ30からこのプリンタ30の公開鍵を取得しておく。本実施形態においては、この公開鍵の取得は、ネットワーク10を介して行われる。すなわち、プリンタ30は、公開鍵の送信を要求してきた印刷クライアント20が正当な権限を有しているかどうかを確認し、正当な権限を有する場合にのみ、自らの公開鍵を通知する。この公開鍵は、プリンタ30が、プリンタ30の設置されている位置を示すプリンタ位置情報を少なくとも含むパスフレーズと、このプリンタ30で生成されて保持されている乱数とを用いて、公開鍵暗号法により生成する。つまり、プリンタ30では、公開鍵暗号法により使用する乱数を保持しておく機能を有している。
但し、この際、生成された秘密鍵は破棄する。すなわち、一般的な公開鍵暗号法では、公開鍵と秘密鍵は、同時に生成される。このため、本実施形態においては、公開鍵を生成する際に付随して秘密鍵が生成された場合でも、この秘密鍵を破棄することとしている。そしてこれにより、このプリンタ30の設置場所が移動された場合には、移動前に生成された公開鍵で暗号化された印刷送信用データが、移動後のプリンタ30で復号できないようにしているのである。
但し、プリンタ30の公開鍵は、必ずしもネットワーク10を介して印刷クライアント20に通知する必要はない。例えば、印刷クライアント20のユーザが、正当な権限を有する者であれば、プリンタ30の設置場所に出向いて、プリンタ30を操作することができるのであるから、ユーザがプリンタ30のコントロールパネルを操作して、プリンタ30の公開鍵を取得するようにしてもよい。この場合、ユーザはプリンタ30の公開鍵をフレキシブルディスク等の記録媒体に記録し、これを印刷クライアント20に読み込ませてもよい。
次に、印刷クライアント20のユーザは、図4に示すように、印刷するべきデータである印刷データD05を作成し、印刷クライアント20に対してプリンタ30を指定して印刷を指示する。
印刷クライアント20は、印刷データD05を、予め取得しておいたプリンタ30の公開鍵を用いて暗号化し、印刷送信用データD10を生成する。ここで、印刷データD05は、プリンタ30で印刷エンジン52を駆動した印刷を行うのに必要となる本来の印刷データを示している。なお、印刷送信用データD10は、この図4に示した印刷データD05以外のデータを含んでいてもよい。
この印刷送信用データD10を受信したプリンタ30は、図2に示すように、この受信した印刷送信用データD10をRAM42に一旦格納する。そして、プリンタ30は、この暗号化された印刷送信用データD10を、秘密鍵を用いて復号する。すなわち、プリンタ30は、プリンタ位置情報を少なくとも含むパスフレーズと、このプリンタ30で生成されて保持されている乱数とを用いて、公開鍵暗号法により、秘密鍵を生成する。
続いて、プリンタ30は、印刷送信用データD10が復号できたかどうかを判断する。印刷送信用データD10の復号ができた場合には、印刷送信用データD10を復号することにより取得した印刷データD05に基づいて印刷を行い、復号できなかった場合には、印刷は行わない。
次に、上述した処理の内容について、フローチャートを用いて詳しく説明する。まず、公開鍵を印刷クライアント20、22が取得する場合における、印刷クライアント20、22及びプリンタ30、32の処理について、説明する。
図5は、印刷クライアント20、22で実行される公開鍵要求処理を説明するフローチャートである。この公開鍵要求処理は、印刷クライアントのROM68又はハードディスク76に格納されている公開鍵要求プログラムをCPU64が読み込んで実行することにより実現される処理である。また、本実施形態においては、この公開鍵要求処理は、ユーザが印刷クライアントに公開鍵を要求する処理を起動するように指示入力した場合に、起動され、実行される処理である。
なお、以下においては、印刷クライアント20からプリンタ30に公開鍵を要求する場合を想定して、処理を説明する。
図5に示すように、この公開鍵要求処理においては、まず印刷クライアント20は、プリンタ30に接続する(ステップS100)。本実施形態においては、印刷クライアント20は、プリンタ30のネットワークアドレスを指定することにより、印刷クライアント20とプリンタ30との間の接続を確立する。また、本実施形態においては、SSL(Secure Socket Layer)通信などにより、セキュリティーを確保した上で、印刷クライアント20とプリンタ30との間の接続を確立する。
次に、印刷クライアント20は、プリンタ30へ認証情報を送信する(ステップS102)。本実施形態においては、この認証情報として、印刷クライアントを特定するための印刷クライアントIDと、パスワードとの組み合わせを用いている。したがって、印刷クライアント20は、印刷クライアントIDとパスワードとを、プリンタ30へ送信する。
これに続いて、印刷クライアント20は、プリンタ30から認証が受け入れられたか否かを示す認証結果を受信するので、この認証結果に基づいて、プリンタ30で認証が認められたかどうかを判断する(ステップS104)。認証が認められなかった場合(ステップS104:No)には、上述したステップS102からを繰り返す。
一方、認証が認められた場合(ステップS104:Yes)には、印刷クライアント20は、公開鍵取得要求をプリンタ30へ送信する(ステップS106)。そして、プリンタ30から公開鍵を受信したかどうかを判断する(ステップS108)。プリンタ30から公開鍵を受信していない場合(ステップS108:No)には、このステップS108を繰り返して待機する。
一方、プリンタ30から公開鍵を受信した場合(ステップS108:Yes)には、この公開鍵を格納する(ステップS110)。本実施形態においては、印刷クライアント20は、ハードディスク76に公開鍵テーブルTB10を設けており、取得した公開鍵は、この公開鍵テーブルTB10に格納され保持される。
図6は、この公開鍵テーブルTB10の構成の一例を示す図である。この図6に示すように、公開鍵テーブルTB10は、プリンタを特定するための情報を格納する項目TD10と、取得した公開鍵をプリンタに対応させて格納する項目TD11とを備えている。このように、公開鍵テーブルTB10は、複数のプリンタに関する公開鍵を、各プリンタ毎に保持することができるようになっている。また、このようにハードディスク78の公開鍵テーブルTB10に公開鍵を格納することにより、印刷クライアント20の電源がオフされて再び電源が投入された場合でも、それ以前に取得した公開鍵をそのままハードディスク78から読み出して使用することができるようになっている。
図5に示すように、次に、印刷クライアント20は、プリンタ30との接続を切断する(ステップS112)。これにより、図5に示した公開鍵要求処理は終了する。
次に、図7及び図8に基づいて、印刷クライアント20、22の公開鍵要求処理に対応して、プリンタ30、32で実行される公開鍵送信処理について説明する。この図7及び図8は、プリンタ30、32で実行される公開鍵送信処理を説明するフローチャートである。この公開鍵送信処理は、プリンタのROM44又はハードディスク58に格納されている公開鍵送信プログラムをCPU40が読み込んで実行することにより実現される処理である。また、この公開鍵送信処理は、上述した公開鍵要求処理に対応して、起動される処理である。
ここでも上述と同様に、印刷クライアント20からプリンタ30に公開鍵が要求された場合を想定して説明する。
図7に示すように、プリンタ30は、印刷クライアント20からの接続を待っており、印刷クライアント20から接続を要求された場合に、印刷クライアント20と接続を確立する(ステップS120)。これは上述した印刷クライアント20側のステップS100に対応している。すなわち、SSL通信などでセキュリティーを確保した上で、接続を確立する。続いて、プリンタ30は、印刷クライアント20から認証情報を受信したかどうかを判断する(ステップS122)。認証情報を受信していない場合(ステップS122:No)には、このステップS122の処理を繰り返して待機する。
一方、認証情報を印刷クライアント20から受信した場合(ステップS122:Yes)には、その認証情報がこのプリンタ30に予め登録してある認証情報と一致するかどうかを判断する(ステップS124)。具体的には、上述したように、印刷クライアント20から印刷クライアントIDとパスワードが認証情報として送信されてくるので、この印刷クライアントIDとパスワードが、このプリンタ30に予め登録されている印刷クライアントIDとパスワードと一致するかどうかを判断する。
認証情報が一致しなかった場合(ステップS124:No)には、プリンタ30は印刷クライアント20に、認証が受け入れられなかった旨の認証結果を送信し(ステップS126)、後述する図8のステップS154において、印刷クライアント20との接続を終了する。一方、認証が一致した場合(ステップS124:Yes)には、プリンタ30は印刷クライアント20に、認証が受け入れられた旨の認証結果を送信する(ステップS128)。
次に、プリンタ30は、印刷クライアント20から公開鍵取得要求を受信したかどうかを判断する(ステップS130)。この公開鍵取得要求を受信していない場合(ステップS130:No)には、このステップS130の処理を繰り返して待機する。
一方、印刷クライアント20から公開鍵取得要求を受信した場合(ステップS130:Yes)には、プリンタ30は、このプリンタ30の機器固有情報を取得する(ステップS132)。ここで、機器固有情報とは、このプリンタ30に関して、固有に割り当てられている識別情報であり、例えば、プリンタ30の製造シリアルナンバー、MACアドレス等がある。
次に、図8に示すように、プリンタ30は、位置検出部54から、その時点におけるプリンタ30のプリンタ位置情報を取得する(ステップS140)。このようにプリンタ位置情報をその都度、位置検出部54から取得することとしているのは、プリンタ30が別の場所に移動された場合には、その移動後の位置情報を用いて公開鍵を生成するようにするためである。
次に、プリンタ30は、機器固有情報とプリンタ位置情報とを用いてパスフレーズを作成する(ステップS142)。このパスフレーズの作成手法は種々のものが考えられるが、本実施形態においては、単純に機器固有情報の後ろにプリンタ位置情報をつなげることにより、パスフレーズを作成する。なお、パスフレーズは、これら機器固有情報及びプリンタ位置情報以外のデータを含んでいてもよい。
次に、プリンタ30は、このプリンタ30の乱数が予め登録されているかどうかを判断する(ステップS144)。乱数が登録されていない場合(ステップS144:No)には、プリンタ30は、乱数を1つ生成して、ハードディスク58に登録する(ステップS146)。すなわち、本実施形態においては、各プリンタは、それぞれ乱数を1度だけ生成して、ハードディスク58に登録して保持しておくこととしている。この乱数の生成は、プリンタ30が初めてこの公開鍵送信処理をした際に行われるものである。また、ハードディスク58に乱数を保持するので、プリンタ30の電源をオフにした場合でも、不揮発的に保持される。このため、再びプリンタ30の電源をオンにした場合でも、それまで使用した乱数が有効に保持されていることとなる。なお、このプリンタ30の乱数の生成は、必ずしも公開鍵送信処理で行う必要はなく、他の処理で行うようにしてもよい。例えば、プリンタ30を工場から出荷する際に、予め生成してハードディスク58に登録して保持するようにしてもよい。
一方、乱数がハードディスク58に保持されている場合(ステップS144:Yes)には、このステップS146の処理をバイパスする。
次に、プリンタ30は、ハードディスク58から、このプリンタ30の乱数を読み出して、取得する(ステップS148)。
次に、プリンタ30は、ステップS142で作成したパスフレーズと、ステップS148で取得した乱数とを用いて、公開鍵暗号法により、公開鍵と秘密鍵とを生成する(ステップS150)。公開鍵暗号法では、使用するパスフレーズと乱数が同じであれば、再び、公開鍵と秘密鍵とを生成しても、同じものが生成されるという性質を有している。続いて、プリンタ30は、この生成した公開鍵と秘密鍵のうち、公開鍵のみを印刷クライアント20に送信する(ステップS152)。なお、秘密鍵は保存されることなく破棄される。
次に、プリンタ30は、印刷クライアント20との接続を終了する(ステップS154)。これにより、本実施形態に係る公開鍵送信処理が終了する。
次に、印刷クライアント20、22が印刷を行いたいときに、その印刷要求をプリンタ30、32に送信する場合の印刷クライアント20、22及びプリンタ30、32の処理について、詳しく説明する。
図9は、印刷クライアント20、22で実行される印刷要求処理を説明するフローチャートである。この印刷要求処理は、印刷クライアントのROM68又はハードディスク76に格納されている印刷要求プログラムをCPU64が読み込んで実行することにより実現される処理である。本実施形態においては、この印刷要求処理は、ユーザが印刷クライアントに印刷指示を入力した場合に、起動され、実行される処理である。
ここでは、印刷クライアント20からプリンタ30に印刷を要求する場合を想定して説明する。
この図9に示すように、印刷クライアント20は、ユーザの印刷要求に基づいて、印刷データD05を作成する(ステップS160)。この印刷データD05は、プリンタ30が通常のプリンタである場合に、印刷を実際に行うのに必要となるデータである。
次に、印刷クライアント20は、ハードディスク76の公開鍵テーブルTB10から、プリンタ30の公開鍵を読み出す(ステップS162)。続いて、印刷クライアント20は、プリンタ30の公開鍵を用いて、印刷データD05を暗号化して、印刷送信用データD10を生成する(ステップS164)。なお、印刷送信用データD10は、印刷データ以外のデータを含んでいてもよい。
次に、印刷クライアント20は、プリンタ30との接続を確立する(ステップS165)。続いて、印刷クライアント20は、この暗号化した印刷送信用データD10を、プリンタ30に送信する(ステップS166)。具体的には、プリンタ30のネットワークアドレスを指定して、ネットワーク10に印刷送信用データD10を送出する。
次に、印刷クライアント20は、プリンタ30から印刷結果情報を受信したかどうかを判断する(ステップS168)。印刷結果情報を受信していない場合(ステップS168:No)には、このステップS168の処理を繰り返して待機する。一方、印刷結果情報を受信した場合(ステップS168:Yes)には、その印刷結果情報が印刷完了通知であるかどうかを判断する(ステップS170)。
この印刷結果情報が印刷完了通知である場合(ステップS170:Yes)には、プリンタ30で印刷が正常に終了したことを意味しているので、ユーザにプリンタ30で印刷が完了した旨を通知する(ステップS172)。一方、受信した印刷結果情報が印刷完了通知でない場合(ステップS170:No)には、その印刷結果情報が解読不能通知であるかどうかを判断する(ステップS174)。
印刷結果情報が解読不能通知である場合(ステップS174:Yes)には、ユーザに、プリンタ30で印刷送信用データD10の復号ができなかったため、印刷が行われなかった旨を通知する(ステップS176)。一方、印刷結果情報が解読不能通知でない場合(ステップS174:No)には、その他の何らかのエラーであると考えられるので、ユーザに、そのエラーの種類に応じた通知を行う(ステップS178)。
これらステップS172、ステップS176、及び、ステップS178の通知の後、印刷クライアント20は、プリンタ30との接続を切断する(ステップS179)。これにより、この印刷クライアント20における印刷要求処理は終了する。
次に、図10に基づいて、印刷クライアント20、22の印刷要求処理に対応して、プリンタ30、32で実行される印刷実行処理について説明する。図10は、プリンタ30、32で実行される印刷実行処理を説明するフローチャートである。この印刷実行処理は、プリンタ30、32のROM44又はハードディスク58に格納されている印刷実行プログラムをCPU40が読み込んで実行することにより実現される処理である。本実施形態においては、この印刷実行処理は、所定の時間間隔で定常的に実行されている処理である。
ここでも上述と同様に、印刷クライアント20からプリンタ30に印刷が要求された場合を想定して説明する。
図10に示すように、プリンタ30は、印刷クライアント20からの接続を待っており、印刷クライアント20から接続を要求された場合には、プリンタ30は、ネットワーク10を介した印刷クライアント20と接続を確立する(ステップS180)。印刷クライアント20と接続が確立した後、プリンタ30は、印刷送信用データD10をネットワーク10から受信したかどうかを判断する(ステップS181)。何ら印刷送信用データD10を受信していない場合(ステップS181:No)には、このステップS181の処理を繰り返して待機する。
一方、印刷送信用データD10を受信した場合(ステップS181:Yes)には、プリンタ30は自らの機器固有情報を取得する(ステップS182)。続いて、プリンタ30は、位置検出部54から、その時点におけるプリンタ30のプリンタ位置情報を取得する(ステップS184)。このようにプリンタ位置情報を、その都度、位置検出部54から取得することとしているのは、プリンタ30が別の場所に移動された場合には、このプリンタ30がユーザの意図しない場所に設置されている可能性があり、このような場合にはプリンタ30で印刷が行われないようにするためである。
次に、プリンタ30は、機器固有情報とプリンタ位置情報とに基づいて、パスフレーズを作成する(ステップS186)。このパスフレーズの作成手法は、上述した公開鍵送信処理におけるステップS142と同じ手法である必要がある。なぜなら、パスフレーズが異なると、印刷クライアントに送信した公開鍵で暗号化された印刷送信用データを、秘密鍵で復号できなくなってしまうからである。
次に、プリンタ30は、ハードディスク58から、上述したステップS146で登録されて保持されているこのプリンタ30の乱数を読み出して、取得する(ステップS188)。続いて、プリンタ30は、生成したパスフレーズと取得した乱数とを用いて、公開鍵暗号法により公開鍵と秘密鍵とを生成する(ステップS190)。このステップS190で使用するパスフレーズと乱数は、プリンタ30の設置位置が移動されていなければ、上述した公開鍵送信処理におけるステップS150で使用したパスフレーズと乱数と同じである。このため、ステップS150で生成したものと同じ公開鍵と秘密鍵が生成される。続いて、プリンタ30は、生成された秘密鍵を用いて、受信した印刷送信用データD10を復号して、印刷データD05を取得する(ステップS192)。
次に、プリンタ30は、秘密鍵を用いて印刷送信用データD10の復号ができたかどうかを判断する(ステップS194)。復号ができた場合(ステップS194:Yes)には、得られた印刷データD05に基づいて、印刷エンジン52を駆動した印刷を実行する(ステップS196)。具体的には、印刷データD05の言語解釈を行い、印刷エンジン52に適合した印刷要求データを生成する。そして、この印刷要求データを印刷エンジン52に送信することにより、印刷エンジン52で印刷用紙等に印刷が行われる。
このことから分かるように、本実施形態においては、位置検出部54で検出したプリンタ位置情報を少なくとも含むパスフレーズとプリンタ30に登録されている乱数とを用いて秘密鍵を生成し、この秘密鍵で印刷送信用データD10が復号できた場合には、印刷送信用データD10がプリンタ位置情報と合致したと判断することとなる。
この印刷が正常に完了した時点で、プリンタ30は、印刷が正常に終了した旨の印刷完了通知を、印刷結果情報として、印刷クライアント20に送信する(ステップS198)。
これに対して、ステップS194において、印刷送信用データD10の復号ができなかったと判断した場合(ステップS194:No)には、解読不能通知を印刷結果情報として、印刷クライアント20に送信する(ステップS200)。すなわち、本実施形態においては、位置検出部54で検出したプリンタ位置情報を少なくとも含むパスフレーズとプリンタ30に登録されている乱数とを用いて秘密鍵を生成し、この秘密鍵で印刷送信用データD10が復号できなかった場合には、印刷送信用データD10がプリンタ位置情報と合致しなかった判断することとなる。
これらステップS198又はステップS200の後、プリンタ30は、印刷クライアント20との接続を終了する(ステップS202)。そして、上述したステップS181の処理に戻る。
以上のように、本実施形態に係る印刷システムによれば、印刷クライアント20、22は、暗号化して送信した印刷送信用データD10の印刷をできるプリンタを、プリンタ位置情報に基づいて限定することができるので、印刷クライアント20、22のユーザが意図していない位置にあるプリンタで印刷が行われしまうのを回避することができる。例えば、プリンタ30が別の場所に移動されたが、ネットワーク10内におけるプリンタ30のネットワークアドレスは変更されていない場合に、印刷クライアント20から誤って印刷送信用データD10をこのプリンタ30に送信してしまっても、プリンタ30ではプリンタ位置情報が変更されているため、ステップS186で作成されるパスフレーズが移動前と異なったものになる。このため、このパスフレーズを用いて生成された秘密鍵を用いても、印刷送信用データD10の復号はできず、プリンタ30では印刷が行われない。このため、印刷データD05のセキュリティを高めることができる。
一方、プリンタ30、32側においても、本来であればこのプリンタ30、32で印刷する権限のない者が、印刷データをこれらプリンタ30、32に送信して、大量の印刷をプリンタ30、32に実行させてしまうのを回避することができる。例えば、何らかの理由で、プリンタ30のネットワークアドレスを第三者が知得して、このプリンタ30に印刷送信用データD10を送信しようとしても、このプリンタ30の公開鍵を取得することができない。もし、このユーザが異なる公開鍵で印刷データD05を暗号化して印刷送信用データD10を生成したり、暗号化しないで印刷送信用データD10を生成したりして、プリンタ30に印刷送信用データD10を送信したとしても、印刷実行処理のステップS194で復号できないと判断されるので、プリンタ30に印刷を実行させることができなくなる。このため、プリンタ30自体のセキュリティを高めることができる。
また、本実施形態においては、パスフレーズに機器固有情報も含めることとしたので、何らかの理由により第三者が、プリンタ30の位置を知得したとしても、プリンタ30の機器固有情報が分からなければ、プリンタ30で使用されているパスフレーズを特定することができない。このため、第三者がこのプリンタ30になりすまして印刷送信用データD10を受信し、この印刷送信用データD10を復号することを、極めて困難なものにすることができる。
さらに、本実施形態においては、パスフレーズに加えて乱数も用いて、公開鍵及び秘密鍵を生成することとしたので、第三者がこのプリンタ30になりすまして印刷送信用データD10を受信し、この印刷送信用データD10を復号することを、より一層困難なものにすることができる。
また、この乱数は、各プリンタ毎に生成して、生成した乱数をハードディスクなどの書き換え可能な不揮発性記憶装置に保持しておくこととしたので、公開鍵を生成した際に使用した乱数と同じものを、秘密鍵を生成する際にも使用することができる。このため、この乱数を使用して生成した公開鍵で暗号化された印刷送信用データD10を復号できる秘密鍵を、再び生成することができる。
〔第2実施形態〕
本発明の第2実施形態は、プリンタ30、32が、公開鍵及び秘密鍵を生成する際に用いる乱数を、印刷クライアント毎に生成し保持することにより、第三者による乱数の推測がより一層困難になるようにしたものである。より詳しくを、以下に説明する。
なお、本実施形態に係る印刷システムの構成は、上述した第1実施形態における図1と同様であり、プリンタ30、32の構成は、上述した図2と同様であり、印刷クライアント20、22の構成は、上述した図3と同様である。また、本実施形態に係る印刷クライアント20、22が実行する公開鍵要求処理も、上述した第1実施形態と同様である。
図11は、本実施形態に係るプリンタ30、32が実行する公開鍵送信処理の一部を説明するフローチャートを示す図であり、上述した第1実施形態における図8に対応する図である。
この図11に示すように、本実施形態に係る公開鍵送信処理は、ステップS142に示すパスフレーズの生成までは、上述した第1実施形態の処理と同様であるが、これ以降の処理が異なる。すなわち、パスフレーズの生成を終えた後、プリンタ30は、公開鍵を要求してきた印刷クライアントの乱数が、このプリンタ30に登録されているかどうかを判断する(ステップS300)。
図12は、本実施形態に係るプリンタ30が保持している、各印刷クライアント毎に乱数が登録されている乱数テーブルTB20の構成の一例を示す図である。本実施形態においては、この乱数テーブルTB20は、ハードディスク58に格納され、保持されている。
この図12に示すように、乱数テーブルTB20は、データ項目として、印刷クライアントID TD20と、乱数TD21とを備えて構成されている。印刷クライアントID TD20には、印刷クライアントを特定するための情報として、印刷クライアントIDが格納される。乱数TD21には、印刷クライアントID TD20に対応する乱数が格納される。
本実施形態においては、先の第1実施形態におけるステップS122で述べたように、印刷クライアント20、22から識別情報として印刷クライアントIDとパスワードが、プリンタ30に送信されてくる。このため、このステップS300では、印刷クライアント20、22から受信した印刷クライアントIDが、この乱数テーブルTB20に登録されており、乱数が保持されているかどうかを判断する。
図11に示すように、該当する印刷クライアントの乱数がこのプリンタ30に登録されていない場合(ステップS300:No)には、プリンタ30は、この印刷クライアント用の乱数を1つ生成して、乱数テーブルTB20に登録する(ステップS302)。具体的には、その印刷クライアントの印刷クライアントIDと、生成した乱数とを、乱数テーブルTB20に登録する。
一方、乱数がプリンタ30に登録されている場合(ステップS300:Yes)には、このステップS302の処理をバイパスする。
次に、プリンタ30は、公開鍵の送信を要求してきた印刷クライアントの乱数を、乱数テーブルTB20から読み出して、取得する(ステップS304)。
次に、プリンタ30は、ステップS142で作成したパスフレーズと、ステップS304で取得した乱数とを用いて、公開鍵暗号法により、公開鍵と秘密鍵とを生成する(ステップS306)。そして、上述した第1実施形態と同様に、プリンタ30は、この生成した公開鍵と秘密鍵のうち、公開鍵のみを印刷クライアント20に送信する(ステップS152)。なお、秘密鍵は保存されることなく破棄される。
次に、プリンタ30は、印刷クライアント20との接続を終了する(ステップS154)。これにより、本実施形態に係る公開鍵送信処理が終了する。
次に、図13に基づいて、本実施形態に係る印刷クライアント20、22が実行する印刷要求処理を説明する。この図13は、本実施形態に係る印刷クライアント20、22が実行する印刷要求処理を説明するフローチャートである。
この図13に示すように、本実施形態に係る印刷要求処理は、印刷送信用データを生成するための処理が、上述した第1実施形態と異なる。すなわち、ステップS162で公開鍵を読み出した後、印刷クライアント20は、公開鍵を用いて、印刷データD05を暗号化する(ステップS310)。
次に、印刷クライアント20は、この暗号化した印刷データD05に、自らの印刷クライアントIDを付加して、印刷送信用データを生成する(ステップS312)。図14は、本実施形態に係る印刷送信用データD20のフォーマットの一例を示す図である。この図14に示すように、本実施形態に係る印刷送信用データD20は、ステップS162で読み出した公開鍵で暗号化された印刷データD05に、ステップS162で読み出した公開鍵で暗号化されていない印刷クライアントID D15を付加することにより、構成されている。
ここで、印刷クライアントID D15を、ステップS162で読み出した公開鍵で暗号化しないのは、プリンタ30では印刷クライアント毎に異なる乱数を保持しているので、この印刷クライアントID D15が特定できないと秘密鍵を生成することができないからである。このため、ステップS162で読み出した公開鍵を用いずに、別な暗号法で、この印刷クライアントID D15を暗号化することはできる。なお、印刷送信用データD20は、これら印刷クライアントID D15と印刷データD05以外のデータを含んでいてもよい。
また、本実施形態においては、印刷データD05とともに、印刷クライアントID D15を送信することとしているが、印刷クライアントID D15を、印刷データD05とは別に送信するようにしてもよい。この場合、印刷データD05との関連性が維持されていれば、印刷クライアントID D15は、印刷データD05よりも先に送信してもよいし、後に送信してもよい。
このステップS312以降の処理は、上述した第1実施形態と同様である。
次に、図15に基づいて、本実施形態に係るプリンタ30、32が実行する印刷実行処理を説明する。この図15は、本実施形態に係るプリンタ30、32が実行する印刷実行処理を説明するフローチャートである。
この図15に示すように、本実施形態に係る印刷実行処理は、乱数を取得する際の処理が、上述した第1実施形態と異なる。すなわち、プリンタ30は、ステップS186でパスフレーズを生成した後、受信した印刷送信用データD20から、印刷クライアントID D15を取り出して、取得する(ステップS320)。
次に、プリンタ30は、印刷クライアントIDを検索キーとして、乱数テーブルTB20を検索し、該当する印刷クライアントの乱数を乱数テーブルTB20から読み出して、取得する(ステップS322)。続いて、プリンタ30は、ステップS186で生成したパスフレーズと、ステップS322で取得した乱数とを用いて、公開鍵暗号法により公開鍵と秘密鍵とを生成する(ステップS324)。
このステップS324以降の処理は、上述した第1実施形態と同様である。
以上のように、本実施形態に係る印刷システムによっても、上述した第1実施形態と同様の効果を得ることができる。さらに、本実施形態に係る印刷システムによれば、プリンタ30、32は、各印刷クライアント毎に乱数を生成して、これを保持することとしたので、第三者がこの乱数を推測することを極めて困難なものにすることができる。
〔第3実施形態〕
本発明の第3実施形態は、プリンタ30、32が、公開鍵及び秘密鍵を生成する際に用いる乱数を、ユーザ毎に生成し保持することにより、第三者による乱数の推測がより一層困難になるようにしたものである。より詳しくを、以下に説明する。
なお、本実施形態に係る印刷システムの構成は、上述した第1実施形態における図1と同様であり、プリンタ30、32の構成は、上述した図2と同様であり、印刷クライアント20、22の構成は、上述した図3と同様である。
図16は、本実施形態に係る印刷クライアント20、22が実行する公開鍵要求処理の一部を説明するフローチャートを示す図であり、上述した第1実施形態における図5に対応する図である。
この図16に示すように、本実施形態に係る公開鍵要求処理は、ステップS104で認証が認められた場合以降の処理が、上述した第1実施形態と異なる。すなわち、ステップS104で認証が認められた場合(ステップS104:Yes)には、印刷クライアント20は、この公開鍵を要求しているユーザのユーザIDと、公開鍵取得要求とを、プリンタ30に送信する(ステップS400)。本実施形態においては、このユーザIDは、ユーザがキーボード等を操作して、印刷クライアントに入力し、この入力されたユーザIDをプリンタ30に送信することとしている。
次に、印刷クライアント20は、プリンタ30から公開鍵を受信したかどうかを判断する(ステップS402)。プリンタ30から公開鍵を受信していない場合(ステップS402:No)には、このステップS402を繰り返して待機する。
一方、プリンタ30から公開鍵を受信した場合(ステップS402:Yes)には、この公開鍵を格納する(ステップS402)。本実施形態においては、印刷クライアント20は、ハードディスク76に公開鍵テーブルTB30をプリンタ毎に設けており、取得したプリンタ位置情報は、この公開鍵テーブルTB30に格納され保持される。
図17は、この公開鍵テーブルTB30の構成の一例を示す図である。この図17に示すように、公開鍵テーブルTB30は、各プリンタ30、32毎にテーブルが形成されており、各テーブルは、ユーザを特定するための情報を格納する項目TD30と、取得した公開鍵を各ユーザに対応させて格納する項目TD31とを備えている。このように、公開鍵テーブルTB30は、複数のユーザに関する公開鍵を、各ユーザ毎に且つ各プリンタ毎に保持することができるようになっている。また、このようにハードディスク78の公開鍵テーブルTB30に公開鍵を格納することにより、印刷クライアント20の電源がオフされて再び電源が投入された場合でも、それ以前に取得した公開鍵をそのままハードディスク78から読み出して使用することができるようになっている。
図16に示すように、次に、印刷クライアント20は、プリンタ30との接続を切断する(ステップS406)。これにより、図16に示した公開鍵要求処理は終了する。
次に、図18及び図19に基づいて、本実施形態に係るプリンタ30、32で実行される公開鍵送信処理について説明する。この図18及び図19は、プリンタ30、32で実行される公開鍵送信処理を説明するフローチャートであり、上述した第1実施形態における図7及び図8に対応している。
まず、図18に示すように、本実施形態に係るプリンタ30は、公開鍵取得要求とともに、ユーザIDを印刷クライアント20から受信する点が、上述した第1実施形態及び第2実施形態と異なる。すなわち、ステップS128で認証が受け入れられた旨の認証結果を送信した後、プリンタ30は、ユーザIDと公開鍵取得要求とを受信したかどうかを判断する(ステップS410)。そして、ユーザIDと公開鍵取得要求とのいずれか一方でも受信していない場合(ステップS410:No)には、このステップS410を繰り返して待機する。
一方、ユーザIDと公開鍵取得要求との双方とも受信した場合(ステップS410:Yes)には、上述した第1実施形態と同様に、ステップS132からの処理を実行する。
さらに、図19に示すように、本実施形態に係るプリンタ30は、乱数を取得する際の処理が、上述した第1実施形態及び第2実施形態と異なる。すなわち、パスフレーズの生成を終えた後、プリンタ30は、公開鍵を要求してきたユーザの乱数が、このプリンタ30で、この印刷クライアント20で登録されているかどうかを判断する(ステップS420)。
図20は、本実施形態に係るプリンタ30が保持している、各ユーザ毎に乱数が登録されている乱数テーブルTB40の構成の一例を示す図である。本実施形態においては、この乱数テーブルTB40は、印刷クライアント毎にテーブルが形成されている。また、この乱数テーブルTB40は、ハードディスク58に格納され、保持されている。
この図20に示すように、乱数テーブルTB40は、データ項目として、ユーザID TD40と、乱数TD41とを備えて構成されている。ユーザID TD40には、ユーザを特定するための情報として、ユーザIDが格納される。乱数TD41には、ユーザID TD40に対応する乱数が格納される。
本実施形態においては、先のステップS122で述べたように、印刷クライアント20から識別情報として印刷クライアントIDとパスワードが、プリンタ30に送信されてくる。また、ステップS410で述べたように、印刷クライアント20からユーザIDが送信されてくる。このため、このステップS300では、印刷クライアント20から受信した印刷クライアントIDに基づいて、乱数テーブルTB40における印刷クライアント20のテーブルを特定することができる。そして、印刷クライアント20から受信したユーザIDに基づいて、そのユーザに対応する乱数が、該当する印刷クライアントのテーブルに登録されているかどうかを判断することができる。
このことから分かるように、本実施形態においては、1人のユーザが複数の印刷クライアントを使用する場合も想定しており、この場合は、同じユーザであっても、印刷クライアントが異なれば、異なる乱数、つまり、異なる公開鍵と秘密鍵とを使用することとしている。
図19に示すように、該当する印刷クライアントにおいて、該当するユーザの乱数がこのプリンタ30に登録されていない場合(ステップS420:No)には、プリンタ30は、この印刷クライアントにおける該当ユーザの乱数を1つ生成して、乱数テーブルTB40に登録する(ステップS422)。具体的には、乱数テーブルTB40の中の印刷クライアント20のテーブルに、ユーザIDと、生成した乱数とを登録する。
一方、乱数がプリンタ30に登録されている場合(ステップS420:Yes)には、このステップS422の処理をバイパスする。
次に、プリンタ30は、公開鍵の送信を要求してきた印刷クライアントに対して登録されているユーザの乱数を、乱数テーブルTB40から読み出して、取得する(ステップS424)。
次に、プリンタ30は、ステップS142で作成したパスフレーズと、ステップS424で取得した乱数とを用いて、公開鍵暗号法により、公開鍵と秘密鍵とを生成する(ステップS426)。そして、上述した第1実施形態及び第2実施形態と同様に、プリンタ30は、この生成した公開鍵と秘密鍵のうち、公開鍵のみを印刷クライアント20に送信する(ステップS152)。なお、秘密鍵は保存されることなく破棄される。
次に、プリンタ30は、印刷クライアント20との接続を終了する(ステップS154)。これにより、本実施形態に係る公開鍵送信処理が終了する。
次に、図21に基づいて、本実施形態に係る印刷クライアント20、22が実行する印刷要求処理を説明する。この図21は、本実施形態に係る印刷クライアント20、22が実行する印刷要求処理を説明するフローチャートである。
この図21に示すように、本実施形態に係る印刷要求処理は、印刷送信用データを生成するための処理が、上述した第1実施形態及び第2実施形態と異なる。すなわち、ステップS162で、公開鍵テーブルTB30から該当するプリンタに対応した該当するユーザの公開鍵を読み出した後、印刷クライアント20は、この公開鍵を用いて、印刷データD05を暗号化する(ステップS430)。
次に、印刷クライアント20は、この暗号化した印刷データD05に、自らの印刷クライアントIDとユーザIDとを付加して、印刷送信用データを生成する(ステップS432)。図22は、本実施形態に係る印刷送信用データD30のフォーマットの一例を示す図である。この図22に示すように、本実施形態に係る印刷送信用データD30は、ステップS162で読み出した公開鍵で暗号化された印刷データD05に、ステップS162で読み出した公開鍵で暗号化されていない印刷クライアントID D15と、同じくステップS162で読み出した公開鍵で暗号化されていないユーザID D25とを付加することにより、構成されている。
ここで、印刷クライアントID D15とユーザID D25とを、ステップS162で読み出した公開鍵で暗号化しないのは、プリンタ30では、印刷クライアント毎に、且つ、ユーザ毎に、異なる乱数を保持しているので、この印刷クライアントID D15とユーザID D25とが特定できないと秘密鍵を生成することができないからである。このため、ステップS162で読み出した公開鍵を用いずに、別な暗号法で、この印刷クライアントID D15とユーザID D25とを暗号化することはできる。なお、印刷送信用データD30は、これら印刷クライアントID D15とユーザID D25と印刷データD05以外のデータを含んでいてもよい。
また、本実施形態においては、印刷データD05とともに、印刷クライアントID D15とユーザID D25とを送信することとしているが、印刷クライアントID D15とユーザID D25とを、印刷データD05とは別に送信するようにしてもよい。この場合、印刷データD05との関連性が維持されていれば、印刷クライアントID D15とユーザID D25とは、印刷データD05よりも先に送信してもよいし、後に送信してもよい。さらには、印刷クライアントID D15とユーザID D25とは、別々に送信してもよいし、同時に送信してもよい。
このステップS432以降の処理は、上述した第1実施形態及び第2実施形態と同様である。
次に、図23に基づいて、本実施形態に係るプリンタ30、32が実行する印刷実行処理を説明する。この図23は、本実施形態に係るプリンタ30、32が実行する印刷実行処理を説明するフローチャートである。
この図23に示すように、本実施形態に係る印刷実行処理は、乱数を取得する際の処理が、上述した第1実施形態及び第2実施形態と異なる。すなわち、プリンタ30は、ステップS186でパスフレーズを生成した後、受信した印刷送信用データD20から、印刷クライアントID D15とユーザID D25とを取り出して、取得する(ステップS440)。
次に、プリンタ30は、この取得した印刷クライアントIDとユーザIDとを検索キーとして、乱数テーブルTB40を検索し、該当する印刷クライアントに対して登録されているユーザの乱数を、乱数テーブルTB40から読み出して、取得する(ステップS442)。続いて、プリンタ30は、ステップS186で生成したパスフレーズと、ステップS442で取得した乱数とを用いて、公開鍵暗号法により公開鍵と秘密鍵とを生成する(ステップS444)。
このステップS444以降の処理は、上述した第1実施形態及び第2実施形態と同様である。
以上のように、本実施形態に係る印刷システムによっても、上述した第1実施形態及び第2実施形態と同様の効果を得ることができる。さらに、本実施形態に係る印刷システムによれば、プリンタ30、32は、各ユーザ毎に乱数を生成して、これを保持することとしたので、第三者がこの乱数を推測することを極めて困難なものにすることができる。
〔第4実施形態〕
本発明の第4実施形態に係る印刷システムは、印刷ジョブ毎に、プリンタが設置されている位置を表すプリンタ位置情報を少なくとも含むパスフレーズを用いて公開鍵を生成し、これを印刷クライアントに送信する。印刷クライアントは、この公開鍵を用いて印刷ジョブデータを暗号化して生成した印刷送信用データを送信する。そして、この印刷送信用データを受信したプリンタでは、受信時に再度、その時点におけるプリンタ位置情報を少なくとも含むパスフレーズを用いて秘密鍵を生成し、この秘密鍵で印刷送信用データが復号できた場合にのみ印刷を実行するようにしたものである。また、一般に、公開鍵暗号法においては、公開鍵及び秘密鍵を生成する際に、乱数を使用するが、本実施形態においては、印刷クライアントに送信する公開鍵を生成する際に使用した乱数を保持しておき、印刷送信用データを復号するために秘密鍵を生成する際にも、同じ乱数を使用することにより、プリンタ位置情報が不変であれば同じ秘密鍵が得られるようにしたものである。より詳しくを、以下に説明する。
なお、本実施形態に係る印刷システムの構成は、上述した第1実施形態における図1と同様であり、プリンタ30、32の構成は、上述した図2と同様であり、印刷クライアント20、22の構成は、上述した図3と同様である。
次に、本実施形態に係る印刷システムにおいて、例えば、印刷クライアント20がプリンタ30で印刷を行う場合の処理を、概略的に説明する。
この場合、まず印刷クライアント20は、プリンタ30からこのプリンタ30の公開鍵を取得する。本実施形態においては、この公開鍵の取得は、ネットワーク10を介して印刷ジョブ毎に行われる。すなわち、プリンタ30は、公開鍵の送信を要求してきた印刷クライアント20が正当な権限を有しているかどうかを確認し、正当な権限を有する場合にのみ、自らの公開鍵を印刷クライアント20に送信する。この公開鍵は、プリンタ30が、プリンタ30の設置されている位置を示すプリンタ位置情報を少なくとも含むパスフレーズと、このプリンタ30が印刷ジョブ毎に生成した乱数とを用いて、公開鍵暗号法により生成する。プリンタ30では、この公開鍵を生成する際に使用した乱数を保持しておく。
但し、この際、生成された秘密鍵は破棄する。すなわち、一般的な公開鍵暗号法では、公開鍵と秘密鍵は、同時に生成される。このため、本実施形態においては、公開鍵を生成する際に付随して秘密鍵が生成された場合でも、この秘密鍵を破棄することとしている。そしてこれにより、このプリンタ30の生成した秘密鍵が漏洩する可能性を可及的に低くしている。
次に、印刷クライアント20のユーザは、図4に示すように、プリンタ30で印刷を実行するのに必要となるデータを含んでいる印刷ジョブデータD05を作成し、印刷クライアント20に対してプリンタ30を指定して印刷を指示する。印刷クライアント20は、印刷ジョブデータD05を、先に取得したプリンタ30の公開鍵を用いて暗号化し、印刷送信用データD10を生成する。なお、印刷送信用データD10は、この図4に示した印刷ジョブデータD05以外のデータを含んでいてもよい。
この印刷送信用データD10を受信したプリンタ30は、図2に示すように、この受信した印刷送信用データD10をRAM42に一旦格納する。そして、プリンタ30は、この暗号化された印刷送信用データD10を、秘密鍵を用いて復号する。すなわち、プリンタ30は、プリンタ位置情報を少なくとも含むパスフレーズと、このプリンタ30で生成されて保持されている乱数とを用いて、公開鍵暗号法により、秘密鍵を生成する。そして、この秘密鍵で印刷送信用データD10を復号する。
続いて、プリンタ30は、印刷送信用データD10が復号できたかどうかを判断する。印刷送信用データD10の復号ができた場合には、印刷送信用データD10を復号することにより取得した印刷ジョブデータD05に基づいて印刷を行い、復号できなかった場合には、印刷は行わない。続いて、プリンタ30は、保持している乱数を削除する。
次に、上述した処理の内容について、フローチャートを用いて詳しく説明する。まず、印刷クライアント20、22がプリンタ30、32に印刷を要求する場合の処理である印刷要求処理を説明する。
図24及び図25は、印刷クライアント20、22で実行される印刷要求処理を説明するフローチャートである。この印刷要求処理は、印刷クライアントのROM68又はハードディスク76に格納されている印刷要求プログラムをCPU64が読み込んで実行することにより実現される処理である。また、本実施形態においては、この印刷要求処理は、ユーザが印刷クライアント20、22に、印刷を実行するように指示入力した場合に、起動され、実行される処理である。
なお、以下においては、印刷クライアント20からプリンタ30に印刷を要求する場合を想定して、処理を説明する。
図24に示すように、この印刷要求処理においては、まず印刷クライアント20は、プリンタ30にネットワーク10を介して接続要求を送信する(ステップS1100)。そして、印刷クライアント20とプリンタ30との間の接続を確立する(ステップS1102)。本実施形態においては、SSL(Secure Socket Layer)通信などにより、セキュリティーを確保した上で、印刷クライアント20とプリンタ30との間の接続を確立する。
次に、印刷クライアント20は、プリンタ30へ認証情報を送信する(ステップS1104)。本実施形態においては、この認証情報として、印刷クライアントを特定するための印刷クライアントIDと、パスワードとの組み合わせを用いている。したがって、印刷クライアント20は、印刷クライアントIDとパスワードとを、プリンタ30へ送信する。
これに続いて、印刷クライアント20は、プリンタ30から認証が受け入れられたか否かを示す認証結果を受信するので、この認証結果に基づいて、プリンタ30で認証が認められたかどうかを判断する(ステップS1106)。認証が認められなかった場合(ステップS1106:No)には、上述したステップS1104からを繰り返す。
一方、認証が認められた場合(ステップS1106:Yes)には、印刷クライアント20は、公開鍵取得要求をプリンタ30へ送信する(ステップS1108)。そして、プリンタ30から公開鍵を受信したかどうかを判断する(ステップS1110)。プリンタ30から公開鍵を受信していない場合(ステップS1110:No)には、このステップS1110を繰り返して待機する。
一方、プリンタ30から公開鍵を受信した場合(ステップS1110:Yes)には、この公開鍵を格納する(ステップS1112)。本実施形態においては、印刷クライアント20は、RAM66(図3参照)にこの公開鍵を一時的に格納し保持する。このようにRAM66に公開鍵を格納することにより、印刷クライアント20の電源がオフされた場合には、自動的に、公開鍵が消去されるので、公開鍵の秘密性を高めることができるようになっている。
次に、プリンタ30は、プリンタとの接続を解放する(ステップS1114)。すなわち、SSL通信等によりセキュリティを確保した状態で、この印刷クライアント20とプリンタ30との間に確立されている接続を、解放する。この接続の解放は、必ずしも必要な処理ではないが、後述するステップS1126で送信する印刷送信用データD10は公開鍵により別途暗号化されており、これ以降の処理でコネクション自体のセキュリティを確保する必要性に乏しいため、本実施形態では接続を解放することとしている。
次に、図25に示すように、印刷クライアント20は、ユーザの印刷要求に基づいて、印刷ジョブデータD05を作成する(ステップS1120)。この印刷ジョブデータD05は、プリンタ30で印刷を実行するのに必要となる、暗号化されていないデータである。
次に、印刷クライアント20は、RAM66から、ステップS1112で格納した公開鍵を読み出す(ステップS1122)。続いて、印刷クライアント20は、この公開鍵を用いて、印刷ジョブデータD05を暗号化して、印刷送信用データD10を生成する(ステップS1124)。なお、印刷送信用データD10は、印刷ジョブデータ以外のデータを含んでいてもよい。
次に、印刷クライアント20は、新たにプリンタ30との接続を確立する(ステップS1125)。上述したように、この接続は、必ずしもセキュリティの確保された接続でなくてもよい。
次に、印刷クライアント20は、この暗号化した印刷送信用データD10を、プリンタ30に送信する(ステップS1126)。具体的には、プリンタ30のネットワークアドレスを指定して、ネットワーク10に印刷送信用データD10を送出する。
次に、印刷クライアント20は、プリンタ30から印刷結果情報を受信したかどうかを判断する(ステップS1128)。印刷結果情報を受信していない場合(ステップS1128:No)には、このステップS1128の処理を繰り返して待機する。一方、印刷結果情報を受信した場合(ステップS1128:Yes)には、その印刷結果情報が印刷完了通知であるかどうかを判断する(ステップS1130)。
この印刷結果情報が印刷完了通知である場合(ステップS1130:Yes)には、プリンタ30で印刷が正常に終了したことを意味しているので、ユーザにプリンタ30で印刷が完了した旨を通知する(ステップS1132)。一方、受信した印刷結果情報が印刷完了通知でない場合(ステップS1130:No)には、その印刷結果情報が解読不能通知であるかどうかを判断する(ステップS1134)。
印刷結果情報が解読不能通知である場合(ステップS1134:Yes)には、ユーザに、プリンタ30で印刷送信用データD10の復号ができなかったため、印刷が行われなかった旨を通知する(ステップS1136)。一方、印刷結果情報が解読不能通知でない場合(ステップS1134:No)には、その他の何らかのエラーであると考えられるので、ユーザに、そのエラーの種類に応じた通知を行う(ステップS1138)。
これらステップS1132、ステップS1136、及び、ステップS1138の通知の後、印刷クライアント20は、ステップS1112でRAM66に格納した公開鍵を削除する(ステップS1140)。このステップS1140の処理は、必ずしも必要な処理ではないが、公開鍵の秘密性を向上させるために、本実施形態においては、1つの印刷ジョブの処理が終了する度に、取得した公開鍵を削除することとしている。
次に、印刷クライアント20は、プリンタ30との接続を解放する(ステップS1142)。これにより、この印刷クライアント20における印刷要求処理は終了する。
次に、図26乃至図28に基づいて、印刷クライアント20、22の印刷要求処理に対応して、プリンタ30、32で実行される印刷実行処理について説明する。この図26乃至図28は、プリンタ30、32で実行される印刷実行処理を説明するフローチャートである。この印刷実行処理は、プリンタのROM44又はハードディスク58に格納されている印刷実行プログラムをCPU40が読み込んで実行することにより実現される処理である。また、この印刷実行処理は、所定の時間間隔で定常的に実行されている処理である。
ここでも上述と同様に、印刷クライアント20からプリンタ30に印刷が要求された場合を想定して説明する。
図26に示すように、まず、プリンタ30は、印刷クライアント20から、ネットワーク10を介して接続要求を受信したかどうかを判断する(ステップS1200)。印刷クライアント20から接続要求を受信していない場合(ステップS1200:No)には、このステップS1200の処理を繰り返して待機する。一方、印刷クライアント20から接続要求を受信した場合(ステップS1200:Yes)には、上述したように、SSL通信等によりセキュリティを確保した上で、プリンタ30と印刷クライアント20との間の接続を確立する(ステップS1202)。
次に、プリンタ30は、印刷クライアント20から認証情報を受信したかどうかを判断する(ステップS1204)。認証情報を受信していない場合(ステップS1204:No)には、このステップS1204の処理を繰り返して待機する。
一方、認証情報を印刷クライアント20から受信した場合(ステップS1204:Yes)には、その認証情報がこのプリンタ30に予め登録してある認証情報と一致するかどうかを判断する(ステップS1206)。具体的には、上述したように、印刷クライアント20から印刷クライアントIDとパスワードが認証情報として送信されてくるので、この印刷クライアントIDとパスワードが、予めプリンタ30のハードディスク58等に登録されている印刷クライアントIDとパスワードと一致するかどうかを判断する。
認証情報が一致しなかった場合(ステップS1206:No)には、プリンタ30は印刷クライアント20に、認証が受け入れられなかった旨の認証結果を送信し(ステップS1208)、ステップS1204の処理に戻る。一方、認証が一致した場合(ステップS1206:Yes)には、プリンタ30は印刷クライアント20に、認証が受け入れられた旨の認証結果を送信する(ステップS1210)。
次に、プリンタ30は、印刷クライアント20から公開鍵取得要求を受信したかどうかを判断する(ステップS1212)。この公開鍵取得要求を受信していない場合(ステップS1212:No)には、このステップS1212の処理を繰り返して待機する。
一方、印刷クライアント20から公開鍵取得要求を受信した場合(ステップS1212:Yes)には、プリンタ30は、このプリンタ30の機器固有情報を取得する(ステップS1214)。ここで、機器固有情報とは、このプリンタ30に関して、固有に割り当てられている識別情報であり、例えば、プリンタ30の製造シリアルナンバー、MACアドレス等がある。
次に、図27に示すように、プリンタ30は、位置検出部54から、その時点におけるプリンタ30のプリンタ位置情報を取得する(ステップS1220)。このようにプリンタ位置情報をその都度、位置検出部54から取得することとしているのは、プリンタ30が別の場所に移動された場合には、その移動後の位置情報を用いて公開鍵を生成するようにするためである。
次に、プリンタ30は、機器固有情報とプリンタ位置情報とを用いてパスフレーズを作成する(ステップS1222)。このパスフレーズの作成手法は種々のものが考えられるが、本実施形態においては、単純に機器固有情報の後ろにプリンタ位置情報をつなげることにより、パスフレーズを作成する。なお、パスフレーズは、これら機器固有情報及びプリンタ位置情報以外のデータを含んでいてもよい。
次に、プリンタ30は、乱数を1つ生成してプリンタ30に格納する(ステップS1224)。本実施形態においては、この生成した乱数は、RAM42(図2参照)に格納する。このようにRAM42に乱数を格納することにより、プリンタ30の電源がオフされた場合には、自動的に、乱数が消去されるので、公開鍵及び秘密鍵の秘密性を高めることができるようになっている。
次に、プリンタ30は、ステップS1222で作成したパスフレーズと、ステップS1224で生成した乱数とを用いて、公開鍵暗号法により、公開鍵と秘密鍵とを生成する(ステップS1226)。公開鍵暗号法では、使用するパスフレーズと乱数とが同じであれば、再び、公開鍵と秘密鍵とを生成しても、同じものが生成されるという性質を有している。続いて、プリンタ30は、この生成した公開鍵と秘密鍵のうち、公開鍵のみを印刷クライアント20に送信する(ステップS1228)。なお、秘密鍵は保存されることなく破棄される。
次に、プリンタ30は、印刷クライアント20との間の接続を解放する(ステップS1230)。この処理は、上述した印刷要求処理のステップS1114に対応する処理である。また、上述したように、このステップS1230の処理は、必ずしも必要な処理ではない。
次に、プリンタ30は、印刷クライアント20から、ネットワーク10を介して接続要求を受信したかどうかを判断する(ステップS1232)。印刷クライアント20から接続要求を受信していない場合(ステップS1232:No)には、このステップS1232の処理を繰り返して待機する。一方、印刷クライアント20から接続要求を受信した場合(ステップS1232:Yes)には、プリンタ30と印刷クライアント20との間の接続を確立する(ステップS1234)。この接続においては、必ずしもセキュリティが確保されていなくともよい。
次に、プリンタ30は、印刷送信用データD10をネットワーク10から受信したかどうかを判断する(ステップS1236)。何ら印刷送信用データD10を受信していない場合(ステップS1236:No)には、このステップS1236の処理を繰り返して待機する。一方、印刷送信用データD10を受信した場合(ステップS1236:Yes)には、プリンタ30は自らの機器固有情報を取得する(ステップS1238)。
次に、図28に示すように、プリンタ30は、位置検出部54から、その時点におけるプリンタ30のプリンタ位置情報を取得する(ステップS1240)。このようにプリンタ位置情報を、その都度、位置検出部54から取得することとしているのは、プリンタ30が別の場所に移動された場合には、その移動後の位置情報を用いて秘密鍵を生成するようにするためである。
次に、プリンタ30は、機器固有情報とプリンタ位置情報とに基づいて、パスフレーズを作成する(ステップS1242)。このパスフレーズの作成手法は、上述したステップS1222と同じ手法である必要がある。なぜなら、パスフレーズが異なると、印刷クライアントに送信した公開鍵で暗号化された印刷送信用データD10を、秘密鍵で復号できなくなってしまうからである。
次に、プリンタ30は、ステップS1224で生成し、RAM42に保持されているこのプリンタ30の乱数を読み出して、取得する(ステップS1244)。続いて、プリンタ30は、生成したパスフレーズと取得した乱数とを用いて、公開鍵暗号法により公開鍵と秘密鍵とを生成する(ステップS1246)。このステップS1246で使用するパスフレーズは、その間にプリンタ30の設置位置が移動されていなければ、上述したステップS1226で使用したパスフレーズと同じである。また、乱数についても、上述したステップS1226と同じである。このため、ステップS1226で生成したものと同じ公開鍵と秘密鍵が生成される。続いて、プリンタ30は、生成された秘密鍵を用いて、受信した印刷送信用データD10を復号する(ステップS1248)。
次に、プリンタ30は、秘密鍵を用いて印刷送信用データD10の復号ができたかどうかを判断する(ステップS1250)。復号ができた場合(ステップS1250:Yes)には、得られた印刷ジョブデータD05に基づいて、印刷エンジン52を駆動した印刷を実行する(ステップS1252)。具体的には、印刷ジョブデータD05の言語解釈を行い、印刷エンジン52に適合した印刷要求データを生成する。そして、この印刷要求データを印刷エンジン52に送信することにより、印刷エンジン52で印刷用紙等に印刷が行われる。
このことから分かるように、本実施形態においては、位置検出部54で検出したプリンタ位置情報を少なくとも含むパスフレーズとRAM42に保持されている乱数とを用いて秘密鍵を生成し、この秘密鍵で印刷送信用データD10が復号できた場合には、印刷送信用データD10がプリンタ位置情報と合致したと判断することとなる。
この印刷が正常に完了した時点で、プリンタ30は、印刷が正常に終了した旨の印刷完了通知を、印刷結果情報として、印刷クライアント20に送信する(ステップS1254)。
これに対して、ステップS1250において、印刷送信用データD10の復号ができなかったと判断した場合(ステップS1250:No)には、解読不能通知を印刷結果情報として、印刷クライアント20に送信する(ステップS1256)。すなわち、本実施形態においては、位置検出部54で検出したプリンタ位置情報を少なくとも含むパスフレーズとRAM42に保持されている乱数とを用いて秘密鍵を生成し、この秘密鍵で印刷送信用データD10が復号できなかった場合には、印刷送信用データD10がプリンタ位置情報と合致しなかった判断することとなる。
これらステップS1254又はステップS1256の処理の後、プリンタ30は、RAM42に保持されている乱数を削除する(ステップS1258)。RAM42から乱数を削除する処理は必ずしも必要な処理ではないが、1つの印刷ジョブに関する処理が終了する度に、RAM42から乱数を削除することにより、乱数の秘密性を高めることができる。
次に、プリンタ30は、印刷クライアント20との接続を解放する(ステップS1260)。そして、上述した図26のステップS1200の処理に戻る。
以上の、ように、本実施形態に係る印刷システムによれば、プリンタ30、32は、公開鍵暗号法により、印刷ジョブ毎に異なる乱数を用いて公開鍵と秘密鍵を生成し、印刷クライアント20、22に公開鍵を送信することとしたので、公開鍵及び秘密鍵のセキュリティを高めることができる。
しかも、公開鍵を印刷クライアント20に送信する際に使用した乱数を保持しておき、秘密鍵を破棄することとしたので、秘密鍵のセキュリティも高めることができる。また、乱数を保持しておくこととしたので、この公開鍵を用いて暗号化された印刷送信用データD10を復号する際には、この保持している乱数を用いて、再び、公開鍵暗号法により、同じ秘密鍵を生成することができ、印刷送信用データD10を復号することができる。
さらに、プリンタ30、32においては、この秘密鍵で印刷送信用データD10が復号できなかった場合には、受信した印刷送信用データD10の印刷を実行しないようにしたので、不正な意図を有する第三者が、このプリンタ30、32で印刷を実行するのを回避することができる。
〔第5実施形態〕
本発明の第5実施形態に係る印刷システムは、プリンタが設置されている位置を表すプリンタ位置情報を少なくとも用いて公開鍵を生成し、これを印刷クライアントに取得させておき、印刷クライアントが印刷データをこのプリンタに送信する際には、この取得した公開鍵を用いて印刷データを暗号化して生成した暗号化印刷データを含んでいる印刷送信用データとして送信することとしたものである。そして、この印刷送信用データを受信したプリンタでは、受信時に再度、その時点におけるプリンタ位置情報を少なくとも用いて秘密鍵を生成し、この秘密鍵で印刷送信用データに含まれている暗号化印刷データが復号できた場合にのみ印刷を実行するようにしたものである。また、一般に、公開鍵暗号法においては、公開鍵及び秘密鍵を生成する際に、乱数を使用する。本実施形態においては、公開鍵生成時に使用した乱数を印刷クライアントに送信しておき、印刷クライアントに乱数を保持させておく。そして、印刷クライアントが暗号化印刷データをプリンタに送信する際に、この乱数も印刷送信用データに含めてプリンタに送信し、この印刷送信用データを受信したプリンタは、印刷送信用データに含まれている乱数を用いて、再び秘密鍵を生成する。これにより、公開鍵を生成する際に使用する乱数と、暗号化印刷データを復号するために秘密鍵を生成する際に使用する乱数とが、同じものになるようにし、プリンタ位置情報が不変であれば同じ秘密鍵が得られるようにしたものである。より詳しくを、以下に説明する。
なお、本実施形態に係る印刷システムの構成は、上述した第1実施形態における図1と同様であり、プリンタ30、32の構成は、上述した図2と同様であり、印刷クライアント20、22の構成は、上述した図3と同様である。
次に、本実施形態に係る印刷システムにおいて、例えば、印刷クライアント20がプリンタ30で印刷を行う場合の処理を、概略的に説明する。
この場合、印刷クライアント20は、予め、例えばプリンタ30からこのプリンタ30の公開鍵と、この公開鍵を生成する際に使用した乱数とを取得しておく。本実施形態においては、この公開鍵と乱数の取得は、ネットワーク10を介して行われる。すなわち、プリンタ30は、公開鍵と乱数の送信を要求してきた印刷クライアント20が正当な権限を有しているかどうかを確認し、正当な権限を有する場合にのみ、自らの公開鍵と、この公開鍵を生成する際に使用した乱数とを通知する。この公開鍵は、プリンタ30が、プリンタ30の設置されている位置を示すプリンタ位置情報を少なくとも含むパスフレーズと、生成した乱数とを用いて、公開鍵暗号法により生成する。そして、印刷クライアント20は、公開鍵と、公開鍵暗号法によりこの公開鍵を生成する際に使用した乱数とを保持しておく機能を有している。
但し、この際、プリンタ30は、生成された秘密鍵は破棄する。すなわち、一般的な公開鍵暗号法では、公開鍵と秘密鍵は、同時に生成される。このため、本実施形態においては、公開鍵を生成する際に付随して秘密鍵が生成された場合でも、この秘密鍵を破棄することとしている。そしてこれにより、このプリンタ30の設置場所が移動された場合には、移動前に生成された公開鍵で暗号化して生成された暗号化印刷データが、移動後のプリンタ30で復号できないようにしているのである。
但し、プリンタ30の公開鍵と使用した乱数とは、必ずしもネットワーク10を介して印刷クライアント20に通知する必要はない。例えば、印刷クライアント20のユーザが、正当な権限を有する者であれば、プリンタ30の設置場所に出向いて、プリンタ30を操作することができるのであるから、ユーザがプリンタ30のコントロールパネルを操作して、プリンタ30の公開鍵と使用した乱数とを取得するようにしてもよい。この場合、ユーザはプリンタ30の公開鍵と使用した乱数とをフレキシブルディスク等の記録媒体に記録し、これを印刷クライアント20に読み込ませてもよい。
次に、印刷クライアント20のユーザは、図29に示すように、印刷するべきデータを作成し、印刷クライアント20に対してプリンタ30を指定して印刷を指示する。印刷クライアント20は、印刷すべきデータに基づいて、印刷データD05を生成する。ここで、印刷データD05は、プリンタ30で印刷エンジン52を駆動した印刷を行うのに必要となる本来の印刷データを示している。
印刷クライアント20は、印刷データD05をプリンタ30から取得した公開鍵を用いて暗号化して、暗号化印刷データを生成する。そして、印刷クライアント20は、この暗号化印刷データに、同じくプリンタ30から取得した乱数を付加して、印刷送信用データD10を生成する。なお、印刷送信用データD10は、この図29に示した暗号化印刷データと乱数以外のデータを含んでいてもよい。
この印刷送信用データD10を受信したプリンタ30は、図2に示すように、この受信した印刷送信用データD10をRAM42に一旦格納する。そして、プリンタ30は、この印刷送信用データD10に含まれている暗号化印刷データを、秘密鍵を用いて復号する。すなわち、プリンタ30は、プリンタ位置情報を少なくとも含むパスフレーズと、この印刷送信用データD10に含まれている乱数とを用いて、公開鍵暗号法により、秘密鍵を生成する。
続いて、プリンタ30は、暗号化印刷データが復号できたかどうかを判断する。暗号化印刷データの復号ができた場合には、暗号化印刷データを復号することにより取得した印刷データD05に基づいて印刷を行い、復号できなかった場合には、印刷は行わない。
次に、上述した処理の内容について、フローチャートを用いて詳しく説明する。まず、公開鍵と乱数とを印刷クライアント20、22が取得する場合における、印刷クライアント20、22及びプリンタ30、32の処理について、説明する。
図30は、印刷クライアント20、22で実行される公開鍵要求処理を説明するフローチャートである。この公開鍵要求処理は、印刷クライアントのROM68又はハードディスク76に格納されている公開鍵要求プログラムをCPU64が読み込んで実行することにより実現される処理である。また、本実施形態においては、この公開鍵要求処理は、ユーザが印刷クライアントに公開鍵を要求する処理を起動するように指示入力した場合に、起動され、実行される処理である。
なお、以下においては、印刷クライアント20からプリンタ30に公開鍵を要求する場合を想定して、処理を説明する。
図30に示すように、この公開鍵要求処理においては、まず印刷クライアント20は、プリンタ30に接続する(ステップS2100)。本実施形態においては、印刷クライアント20は、プリンタ30のネットワークアドレスを指定することにより、印刷クライアント20とプリンタ30との間の接続を確立する。また、本実施形態においては、SSL(Secure Socket Layer)通信などにより、セキュリティーを確保した上で、印刷クライアント20とプリンタ30との間の接続を確立する。
次に、印刷クライアント20は、プリンタ30へ認証情報を送信する(ステップS2102)。本実施形態においては、この認証情報として、印刷クライアントを特定するための印刷クライアントIDと、パスワードとの組み合わせを用いている。したがって、印刷クライアント20は、印刷クライアントIDとパスワードとを、プリンタ30へ送信する。
これに続いて、印刷クライアント20は、プリンタ30から認証が受け入れられたか否かを示す認証結果を受信するので、この認証結果に基づいて、プリンタ30で認証が認められたかどうかを判断する(ステップS2104)。認証が認められなかった場合(ステップS2104:No)には、上述したステップS2102からを繰り返す。
一方、認証が認められた場合(ステップS2104:Yes)には、印刷クライアント20は、公開鍵取得要求をプリンタ30へ送信する(ステップS2106)。そして、プリンタ30から公開鍵とこの公開鍵を生成する際に使用した乱数とを受信したかどうかを判断する(ステップS2108)。プリンタ30から公開鍵と乱数とを受信していない場合(ステップS2108:No)には、このステップS2108を繰り返して待機する。
一方、プリンタ30から公開鍵と乱数とを受信した場合(ステップS2108:Yes)には、この公開鍵と乱数とを格納する(ステップS2110)。本実施形態においては、印刷クライアント20は、ハードディスク76に公開鍵テーブルTB210を設けており、取得した公開鍵と乱数とは、この公開鍵テーブルTB210に格納され保持される。
図31は、この公開鍵テーブルTB210の構成の一例を示す図である。この図31に示すように、公開鍵テーブルTB210は、プリンタを特定するための情報を格納する項目TD10と、取得した公開鍵をプリンタに対応させて格納する項目TD11と、取得した乱数をプリンタに対応させて格納する項目TD12とを備えている。このように、公開鍵テーブルTB210は、複数のプリンタに関する公開鍵及び乱数を、各プリンタ毎に保持することができるようになっている。また、このようにハードディスク78の公開鍵テーブルTB210に公開鍵及び乱数を格納することにより、印刷クライアント20の電源がオフされて再び電源が投入された場合でも、それ以前に取得した公開鍵及び乱数をそのままハードディスク78から読み出して使用することができるようになっている。
この公開鍵テーブルTB210に、取得した公開鍵と乱数とを格納することにより、図30に示した公開鍵要求処理は終了する。
次に、図32及び図33に基づいて、印刷クライアント20、22の公開鍵要求処理に対応して、プリンタ30、32で実行される公開鍵送信処理について説明する。この図32及び図33は、プリンタ30、32で実行される公開鍵送信処理を説明するフローチャートである。この公開鍵送信処理は、プリンタのROM44又はハードディスク58に格納されている公開鍵送信プログラムをCPU40が読み込んで実行することにより実現される処理である。また、この公開鍵送信処理は、上述した公開鍵要求処理に対応して、起動される処理である。
ここでも上述と同様に、印刷クライアント20からプリンタ30に公開鍵が要求された場合を想定して説明する。
図32に示すように、まず、プリンタ30は、印刷クライアント20と接続を確立する(ステップS2120)。これは上述した印刷クライアント20側のステップS2100に対応している。すなわち、SSL通信などでセキュリティーを確保した上で、接続を確立する。続いて、プリンタ30は、印刷クライアント20から認証情報を受信したかどうかを判断する(ステップS2122)。認証情報を受信していない場合(ステップS2122:No)には、このステップS2122の処理を繰り返して待機する。
一方、認証情報を印刷クライアント20から受信した場合(ステップS2122:Yes)には、その認証情報がこのプリンタ30に予め登録してある認証情報と一致するかどうかを判断する(ステップS2124)。具体的には、上述したように、印刷クライアント20から印刷クライアントIDとパスワードが認証情報として送信されてくるので、この印刷クライアントIDとパスワードが、このプリンタ30に予め登録されている印刷クライアントIDとパスワードと一致するかどうかを判断する。
認証情報が一致しなかった場合(ステップS2124:No)には、プリンタ30は印刷クライアント20に、認証が受け入れられなかった旨の認証結果を送信し(ステップS2126)、ステップS2122の処理に戻る。一方、認証が一致した場合(ステップS2124:Yes)には、プリンタ30は印刷クライアント20に、認証が受け入れられた旨の認証結果を送信する(ステップS2128)。
次に、プリンタ30は、印刷クライアント20から公開鍵取得要求を受信したかどうかを判断する(ステップS2130)。この公開鍵取得要求を受信していない場合(ステップS2130:No)には、このステップS2130の処理を繰り返して待機する。
一方、印刷クライアント20から公開鍵取得要求を受信した場合(ステップS2130:Yes)には、プリンタ30は、このプリンタ30の機器固有情報を取得する(ステップS2132)。ここで、機器固有情報とは、このプリンタ30に関して、固有に割り当てられている識別情報であり、例えば、プリンタ30の製造シリアルナンバー、MACアドレス等がある。
次に、図33に示すように、プリンタ30は、位置検出部54から、その時点におけるプリンタ30のプリンタ位置情報を取得する(ステップS2140)。このようにプリンタ位置情報をその都度、位置検出部54から取得することとしているのは、プリンタ30が別の場所に移動された場合には、その移動後の位置情報を用いて公開鍵を生成するようにするためである。
次に、プリンタ30は、機器固有情報とプリンタ位置情報とを用いてパスフレーズを作成する(ステップS2142)。このパスフレーズの作成手法は種々のものが考えられるが、本実施形態においては、単純に機器固有情報の後ろにプリンタ位置情報をつなげることにより、パスフレーズを作成する。なお、パスフレーズは、これら機器固有情報及びプリンタ位置情報以外のデータを含んでいてもよい。
次に、プリンタ30は、乱数を生成する(ステップS2144)。続いて、プリンタ30は、ステップS2142で作成したパスフレーズと、ステップS2144で生成した乱数とを用いて、公開鍵暗号法により、公開鍵と秘密鍵とを生成する(ステップS2146)。公開鍵暗号法では、使用するパスフレーズと乱数が同じであれば、再び、公開鍵と秘密鍵とを生成しても、同じものが生成されるという性質を有している。続いて、プリンタ30は、この生成した公開鍵と秘密鍵のうち公開鍵と、この公開鍵と秘密鍵を生成する際に使用した乱数とを印刷クライアント20に送信する(ステップS2148)。なお、秘密鍵は保存されることなく破棄される。これにより、本実施形態に係る公開鍵送信処理が終了する。
次に、印刷クライアント20、22が印刷を行いたいときに、その印刷要求をプリンタ30、32に送信する場合の印刷クライアント20、22及びプリンタ30、32の処理について、詳しく説明する。
図34は、印刷クライアント20、22で実行される印刷要求処理を説明するフローチャートである。この印刷要求処理は、印刷クライアントのROM68又はハードディスク76に格納されている印刷要求プログラムをCPU64が読み込んで実行することにより実現される処理である。本実施形態においては、この印刷要求処理は、ユーザが印刷クライアントに印刷指示を入力した場合に、起動され、実行される処理である。
ここでは、印刷クライアント20からプリンタ30に印刷を要求する場合を想定して説明する。
この図34に示すように、印刷クライアント20は、ユーザの印刷要求に基づいて、印刷データD05を作成する(ステップS2160)。この印刷データD05は、プリンタ30が通常のプリンタである場合に、印刷を実際に行うのに必要となるデータである。
次に、印刷クライアント20は、ハードディスク76の公開鍵テーブルTB210から、プリンタ30の公開鍵と、この公開鍵を生成する際に使用した乱数を読み出す(ステップS2162)。続いて、印刷クライアント20は、プリンタ30の公開鍵を用いて、印刷データD05を暗号化して、暗号化印刷データを生成する(ステップS2164)。
次に、印刷クライアント20は、生成した暗号化印刷データに、ステップS2162で読み出した乱数を付加して、印刷送信用データD10を生成する(ステップS2165)。なお、印刷送信用データD10は、これら印刷データ及び乱数以外のデータを含んでいてもよい。
次に、印刷クライアント20は、この生成した印刷送信用データD10を、プリンタ30に送信する(ステップS2166)。具体的には、プリンタ30のネットワークアドレスを指定して、ネットワーク10に印刷送信用データD10を送出する。
次に、印刷クライアント20は、プリンタ30から印刷結果情報を受信したかどうかを判断する(ステップS2168)。印刷結果情報を受信していない場合(ステップS2168:No)には、このステップS2168の処理を繰り返して待機する。一方、印刷結果情報を受信した場合(ステップS2168:Yes)には、その印刷結果情報が印刷完了通知であるかどうかを判断する(ステップS2170)。
この印刷結果情報が印刷完了通知である場合(ステップS2170:Yes)には、プリンタ30で印刷が正常に終了したことを意味しているので、ユーザにプリンタ30で印刷が完了した旨を通知する(ステップS2172)。一方、受信した印刷結果情報が印刷完了通知でない場合(ステップS2170:No)には、その印刷結果情報が解読不能通知であるかどうかを判断する(ステップS2174)。
印刷結果情報が解読不能通知である場合(ステップS2174:Yes)には、ユーザに、プリンタ30で印刷送信用データD10の復号ができなかったため、印刷が行われなかった旨を通知する(ステップS2176)。一方、印刷結果情報が解読不能通知でない場合(ステップS2174:No)には、その他の何らかのエラーであると考えられるので、ユーザに、そのエラーの種類に応じた通知を行う(ステップS2178)。
これらステップS2172、ステップS2176、及び、ステップS2178の通知により、この印刷クライアント20における印刷要求処理は終了する。
次に、図35に基づいて、印刷クライアント20、22の印刷要求処理に対応して、プリンタ30、32で実行される印刷実行処理について説明する。図35は、プリンタ30、32で実行される印刷実行処理を説明するフローチャートである。この印刷実行処理は、プリンタ30、32のROM44又はハードディスク58に格納されている印刷実行プログラムをCPU40が読み込んで実行することにより実現される処理である。本実施形態においては、この印刷実行処理は、所定の時間間隔で定常的に実行されている処理である。
ここでも上述と同様に、印刷クライアント20からプリンタ30に印刷が要求された場合を想定して説明する。
図35に示すように、プリンタ30は、印刷送信用データD10をネットワーク10から受信したかどうかを判断する(ステップS2180)。何ら印刷送信用データD10を受信していない場合(ステップS2180:No)には、このステップS2180の処理を繰り返して待機する。
一方、印刷送信用データD10を受信した場合(ステップS2180:Yes)には、プリンタ30は自らの機器固有情報を取得する(ステップS2182)。続いて、プリンタ30は、位置検出部54から、その時点におけるプリンタ30のプリンタ位置情報を取得する(ステップS2184)。このようにプリンタ位置情報を、その都度、位置検出部54から取得することとしているのは、プリンタ30が別の場所に移動された場合には、このプリンタ30がユーザの意図しない場所に設置されている可能性があり、このような場合にはプリンタ30で印刷が行われないようにするためである。
次に、プリンタ30は、機器固有情報とプリンタ位置情報とに基づいて、パスフレーズを作成する(ステップS2186)。このパスフレーズの作成手法は、上述した公開鍵送信処理におけるステップS2142と同じ手法である必要がある。なぜなら、パスフレーズが異なると、印刷クライアントに送信した公開鍵で暗号化された暗号化印刷データを、秘密鍵で復号できなくなってしまうからである。
次に、プリンタ30は、印刷送信用データD10に含まれている乱数を取得する(ステップS2188)。続いて、プリンタ30は、生成したパスフレーズと取得した乱数とを用いて、公開鍵暗号法により公開鍵と秘密鍵とを生成する(ステップS2190)。このステップS2190で使用するパスフレーズは、プリンタ30の設置位置が移動されていなければ、上述した公開鍵送信処理におけるステップS2146で使用したパスフレーズと同じである。また、ステップS2190で使用する乱数も、ステップS2146で使用した乱数と同じはずである。このため、ステップS2146で生成したものと同じ公開鍵と秘密鍵が生成される。続いて、プリンタ30は、生成された秘密鍵を用いて、印刷送信用データD10に含まれている暗号化印刷データを復号して、印刷データD05を取得する(ステップS2192)。
次に、プリンタ30は、秘密鍵を用いて暗号化印刷データの復号ができたかどうかを判断する(ステップS2194)。復号ができた場合(ステップS2194:Yes)には、得られた印刷データD05に基づいて、印刷エンジン52を駆動した印刷を実行する(ステップS2196)。具体的には、印刷データD05の言語解釈を行い、印刷エンジン52に適合した印刷要求データを生成する。そして、この印刷要求データを印刷エンジン52に送信することにより、印刷エンジン52で印刷用紙等に印刷が行われる。
このことから分かるように、本実施形態においては、位置検出部54で検出したプリンタ位置情報を少なくとも含むパスフレーズと、暗号化印刷データに付随して送信された乱数とを用いて秘密鍵を生成し、この秘密鍵で暗号化印刷データが復号できた場合には、この暗号化印刷データがプリンタ位置情報と合致したと判断することとなる。
この印刷が正常に完了した時点で、プリンタ30は、印刷が正常に終了した旨の印刷完了通知を、印刷結果情報として、印刷クライアント20に送信する(ステップS2198)。そして、上述したステップS2180の処理に戻る。
これに対して、ステップS2194において、暗号化印刷データの復号ができなかったと判断した場合(ステップS2194:No)には、解読不能通知を印刷結果情報として、印刷クライアント20に送信する(ステップS2200)。すなわち、本実施形態においては、位置検出部54で検出したプリンタ位置情報を少なくとも含むパスフレーズと、暗号化印刷データに付随して送信された乱数とを用いて秘密鍵を生成し、この秘密鍵で暗号化印刷データが復号できなかった場合には、この暗号化印刷データがプリンタ位置情報と合致しなかった判断することとなる。そして、上述したステップS2180の処理に戻る。
以上のように、本実施形態に係る印刷システムによれば、印刷クライアント20、22は、暗号化して送信した暗号化印刷データの印刷をできるプリンタを、プリンタ位置情報に基づいて限定することができるので、印刷クライアント20、22のユーザが意図していない位置にあるプリンタで印刷が行われしまうのを回避することができる。例えば、プリンタ30が別の場所に移動されたが、ネットワーク10内におけるプリンタ30のトワークアドレスは変更されていない場合に、印刷クライアント20から誤って暗号化印刷データを含む印刷送信用データD10をこのプリンタ30に送信してしまっても、プリンタ30ではプリンタ位置情報が変更されているため、ステップS2186で作成されるパスフレーズが移動前と異なったものになる。このため、このパスフレーズを用いて生成された秘密鍵を用いても、印刷送信用データD10に含まれている暗号化印刷データの復号はできず、プリンタ30では印刷が行われない。このため、印刷データD05のセキュリティを高めることができる。
一方、プリンタ30、32側においても、本来であればこのプリンタ30、32で印刷する権限のない者が、印刷データをこれらプリンタ30、32に送信して、大量の印刷をプリンタ30、32に実行させてしまうのを回避することができる。例えば、何らかの理由で、プリンタ30のネットワークアドレスを第三者が知得して、このプリンタ30に印刷データを送信しようとしても、このプリンタ30の公開鍵を取得することができない。もし、このユーザが異なる公開鍵で印刷データD05を暗号化して、暗号化印刷データを含む印刷送信用データD10を生成したり、暗号化していない印刷データを含む印刷送信用データD10を生成したりして、プリンタ30に印刷送信用データD10を送信したとしても、印刷実行処理のステップS2194で復号できないと判断されるので、プリンタ30に印刷を実行させることができなくなる。このため、プリンタ30自体のセキュリティを高めることができる。
また、本実施形態においては、パスフレーズに機器固有情報も含めることとしたので、何らかの理由により第三者が、プリンタ30の位置を知得したとしても、プリンタ30の機器固有情報が分からなければ、プリンタ30で使用されているパスフレーズを特定することができない。このため、第三者がこのプリンタ30になりすまして印刷送信用データD10を受信し、この印刷送信用データD10に含まれている暗号化印刷データを復号することを、極めて困難なものにすることができる。
また、この乱数は、各印刷クライアント20、22毎に生成して、各印刷クライアント20、22が、この乱数を公開鍵とともにハードディスクなどの書き換え可能な不揮発性記憶装置に保持しておくこととした。そして、印刷クライアント20、22は、印刷データを暗号化した暗号化印刷データとともに、この乱数をプリンタ30、32に送信することとしたので、プリンタ30、32は、その公開鍵を生成した際に使用した乱数と同じものを、秘密鍵を生成する際にも使用することができる。このため、この乱数を使用して生成した公開鍵で暗号化された暗号化印刷データを復号できる秘密鍵を、再び生成することができる。
〔第6実施形態〕
本発明の第6実施形態は、印刷クライアント20、22が、プリンタ毎、且つ、ユーザ毎に、公開鍵とこの公開鍵を生成する際に使用した乱数とを保持するようにしたものである。そして、これにより、第三者による乱数の推測がより一層困難になるようにしたものである。より詳しくを、以下に説明する。
なお、本実施形態に係る印刷システムの構成は、上述した第1実施形態における図1と同様であり、プリンタ30、32の構成は、上述した図2と同様であり、印刷クライアント20、22の構成は、上述した図3と同様である。また、本実施形態に係るプリンタ30、32が実行する公開鍵送信処理、印刷実行処理も、上述した第5実施形態と同様である。
図36は、本実施形態に係る印刷クライアント20、22が実行する公開鍵要求処理の一部を説明するフローチャートを示す図であり、上述した第5実施形態における図30に対応する図である。
この図36に示すように、本実施形態に係る公開鍵要求処理は、ステップS2108に示す公開鍵及び乱数の受信処理までは、上述した第5実施形態の処理と同様であるが、次のステップS2300の処理が異なる。すなわち、本実施形態に係る印刷クライアント20は、公開鍵と乱数とを受信した場合(ステップS2108:Yes)には、この公開鍵と乱数を、プリンタ毎に、且つ、ユーザ毎に区分して、公開鍵テーブルTB220に格納する。
図37は、本実施形態に係る公開鍵テーブルTB220の一例を示す図である。この図37に示すように、本実施形態における公開鍵テーブルTB220は、上述した第5実施形態における公開鍵テーブルTB210に加えて、データ項目として、ユーザIDを格納する項目TD20を備えている。すなわち、本実施形態においては、印刷クライアント20は、ユーザID毎に、公開鍵と乱数を格納することとしている。また、本実施形態の公開鍵テーブルTB220においては、プリンタ毎にテーブルが形成されている。このため、同一のユーザIDであっても、プリンタが異なれば、異なる公開鍵と乱数とを保持することができるようになる。
これら公開鍵と乱数とを、公開鍵テーブルTB220に格納することにより、本実施形態に係る公開鍵要求処理は、終了する。
次に、図38に基づいて、本実施形態に係る印刷クライアント20、22が実行する印刷要求処理を説明する。この図38は、本実施形態に係る印刷クライアント20、22が実行する印刷要求処理を説明するフローチャートである。
この図38に示すように、本実施形態に係る印刷要求処理は、公開鍵と乱数とを読み出す処理が、上述した第5実施形態と異なる。すなわち、ステップS2160で印刷データD05を生成した後、印刷クライアント20は、ユーザIDを取得する(ステップS2310)。すなわち、プリンタ30に印刷を指示したユーザのユーザIDを取得する。このユーザIDは、例えば、印刷クライアント20が印刷指示を入力された際に、ユーザに対して入力を要求してもよいし、或いは、印刷クライアント20をユーザが使用する際に認証としてユーザに入力を要求してもよい。
次に、印刷クライアント20は、図37の公開鍵テーブルTB220から、印刷を要求するプリンタのテーブルに、そのユーザIDで格納されている公開鍵と乱数とを読み出す(ステップS2312)。すなわち、本実施形態の公開鍵テーブルTB220においては、プリンタ毎にテーブルが構成されているので、ステップS2160で生成した印刷データD05を印刷するプリンタのテーブルにおいて、このユーザIDで登録されている公開鍵と乱数とを読み出す。これ以降の処理は、上述した第5実施形態と同様である。
以上のように、本実施形態に係る印刷システムによっても、上述した第5実施形態と同様の効果を得ることができる。さらに、本実施形態に係る印刷システムによれば、印刷クライアント20、22は、プリンタ毎、且つ、ユーザ毎に公開鍵と乱数を保持することとしたので、第三者がこの乱数を推測することを極めて困難なものにすることができる。
〔第7実施形態〕
本発明の一実施形態に係る印刷システムは、印刷ジョブ毎に乱数を生成し、この生成した乱数と、プリンタが設置されている位置を表すプリンタ位置情報を少なくとも含むパスフレーズとを用いて公開鍵を生成し、この公開鍵と乱数とをプリンタから印刷クライアントに送信する。印刷クライアントは、この公開鍵を用いて印刷ジョブデータを暗号化して暗号化印刷ジョブデータを生成するとともに、この暗号化印刷ジョブデータに、プリンタから送信された乱数を付加して、印刷送信用データを生成する。そして、印刷クライアントは、この印刷送信用データをプリンタに送信する。この印刷送信用データを受信したプリンタでは、受信時に再度、その時点におけるプリンタ位置情報を少なくとも含むパスフレーズと、印刷送信用データに含まれていた乱数とを用いて秘密鍵を生成し、この秘密鍵で暗号化印刷ジョブデータが復号できた場合にのみ印刷を実行するようにしたものである。より詳しくを、以下に説明する。
なお、本実施形態に係る印刷システムの構成は、上述した第1実施形態における図1と同様であり、プリンタ30、32の構成は、上述した図2と同様であり、印刷クライアント20、22の構成は、上述した図3と同様である。
次に、本実施形態に係る印刷システムにおいて、例えば、印刷クライアント20がプリンタ30で印刷を行う場合の処理を、概略的に説明する。
この場合、まず印刷クライアント20は、プリンタ30から公開鍵とこの公開鍵を生成する際に使用した乱数を取得する。本実施形態においては、この公開鍵と乱数の取得は、ネットワーク10を介して印刷ジョブ毎に行われる。すなわち、プリンタ30は、公開鍵の送信を要求してきた印刷クライアント20が正当な権限を有しているかどうかを確認し、正当な権限を有する場合にのみ、新たに生成した公開鍵と、この公開鍵を生成する際に使用した乱数とを、印刷クライアント20に送信する。すなわち、プリンタ30は、プリンタ30の設置されている位置を示すプリンタ位置情報を少なくとも含むパスフレーズと、このプリンタ30が印刷ジョブ毎に生成した乱数とを用いて、公開鍵暗号法により、公開鍵を生成する。プリンタ30では、この公開鍵を生成する際に使用した乱数を保持しておく必要はないので、破棄する。
また、この際、生成された秘密鍵も破棄する。すなわち、一般的な公開鍵暗号法では、公開鍵と秘密鍵は、同時に生成される。このため、本実施形態においては、公開鍵を生成する際に付随して秘密鍵が生成された場合でも、この秘密鍵を破棄することとしている。そしてこれにより、このプリンタ30の生成した秘密鍵が漏洩する可能性を可及的に低くしている。
次に、印刷クライアント20のユーザは、図29に示すように、印刷するべきデータを作成し、印刷クライアント20に対してプリンタ30を指定して印刷を指示する。印刷クライアント20は、印刷すべきデータに基づいて、印刷ジョブデータD05を生成する。ここで、印刷ジョブデータD05は、プリンタ30で印刷エンジン52を駆動した印刷を行うのに必要となる本来の印刷データを示している。
印刷クライアント20は、印刷ジョブデータD05を、先に取得したプリンタ30の公開鍵を用いて暗号化し、暗号化印刷ジョブデータを生成する。そして、印刷クライアント20は、この暗号化印刷ジョブデータに、同じくプリンタ30から取得した乱数を付加して、印刷送信用データD10を生成する。なお、印刷送信用データD10は、この図29に示した暗号化印刷データと乱数以外のデータを含んでいてもよい。
この印刷送信用データD10を受信したプリンタ30は、図2に示すように、この受信した印刷送信用データD10をRAM42に一旦格納する。そして、プリンタ30は、この印刷送信用データD10に含まれている暗号化印刷ジョブデータを、秘密鍵を用いて復号する。すなわち、プリンタ30は、プリンタ位置情報を少なくとも含むパスフレーズと、この印刷送信用データD10に含まれている乱数とを用いて、公開鍵暗号法により、秘密鍵を生成する。そして、この秘密で印刷送信用データD10に含まれている暗号化印刷ジョブデータを復号する。
続いて、プリンタ30は、暗号化印刷ジョブデータが復号できたかどうかを判断する。暗号化印刷ジョブデータの復号ができた場合には、暗号化印刷ジョブデータを復号することにより取得した印刷ジョブデータD05に基づいて印刷を行い、復号できなかった場合には、印刷は行わない。
次に、上述した処理の内容について、フローチャートを用いて詳しく説明する。まず、印刷クライアント20、22がプリンタ30、32に印刷を要求する場合の処理である印刷要求処理を説明する。
図39及び図40は、印刷クライアント20、22で実行される印刷要求処理を説明するフローチャートである。この印刷要求処理は、印刷クライアントのROM68又はハードディスク76に格納されている印刷要求プログラムをCPU64が読み込んで実行することにより実現される処理である。また、本実施形態においては、この印刷要求処理は、ユーザが印刷クライアント20、22に、印刷を実行するように指示入力した場合に、起動され、実行される処理である。
なお、以下においては、印刷クライアント20からプリンタ30に印刷を要求する場合を想定して、処理を説明する。
図39に示すように、この印刷要求処理においては、まず印刷クライアント20は、プリンタ30にネットワーク10を介して接続要求を送信する(ステップS3100)。そして、印刷クライアント20とプリンタ30との間のコネクションを確立する(ステップS3102)。本実施形態においては、SSL(Secure Socket Layer)通信などにより、セキュリティーを確保した上で、印刷クライアント20とプリンタ30との間のコネクションを確立する。
次に、印刷クライアント20は、プリンタ30へ認証情報を送信する(ステップS3104)。本実施形態においては、この認証情報として、印刷クライアントを特定するための印刷クライアントIDと、パスワードとの組み合わせを用いている。したがって、印刷クライアント20は、印刷クライアントIDとパスワードとを、プリンタ30へ送信する。
これに続いて、印刷クライアント20は、プリンタ30から認証が受け入れられたか否かを示す認証結果を受信するので、この認証結果に基づいて、プリンタ30で認証が認められたかどうかを判断する(ステップS3106)。認証が認められなかった場合(ステップS3106:No)には、上述したステップS3104からを繰り返す。
一方、認証が認められた場合(ステップS3106:Yes)には、印刷クライアント20は、公開鍵取得要求をプリンタ30へ送信する(ステップS3108)。そして、プリンタ30から公開鍵と、この公開鍵を生成する際に使用した乱数とを受信したかどうかを判断する(ステップS3110)。プリンタ30から公開鍵と乱数とを受信していない場合(ステップS3110:No)には、このステップS3110を繰り返して待機する。
一方、プリンタ30から公開鍵と乱数を受信した場合(ステップS3110:Yes)には、この公開鍵と乱数を格納する(ステップS3112)。本実施形態においては、印刷クライアント20は、RAM66(図3参照)にこの公開鍵と乱数を一時的に格納し保持する。このようにRAM66に公開鍵と乱数を格納することにより、印刷クライアント20の電源がオフされた場合には、自動的に、公開鍵と乱数が消去されるので、公開鍵と乱数の秘密性を高めることができるようになっている。
次に、プリンタ30は、プリンタとのコネクションを解放する(ステップS3114)。すなわち、SSL通信等によりセキュリティを確保した状態で、この印刷クライアント20とプリンタ30との間に確立されているコネクションを、解放する。このコネクションの解放は、必ずしも必要な処理ではないが、後述するステップS3126で送信する印刷ジョブデータD05は公開鍵により別途暗号化されており、これ以降の処理でコネクション自体のセキュリティを確保する必要性に乏しいため、本実施形態ではコネクションを解放することとしている。
次に、図40に示すように、印刷クライアント20は、ユーザの印刷要求に基づいて、印刷ジョブデータD05を作成する(ステップS3120)。この印刷ジョブデータD05は、プリンタ30で印刷を実行するのに必要となる、暗号化されていないデータである。
次に、印刷クライアント20は、RAM66から、ステップS3112で格納した公開鍵と乱数とを読み出す(ステップS3122)。続いて、印刷クライアント20は、この公開鍵を用いて、印刷ジョブデータD05を暗号化して、暗号化印刷ジョブデータを生成する(ステップS3124)。
次に、印刷クライアント20は、ステップS3124で生成した暗号化印刷ジョブデータに、ステップS3122で読み出した乱数を付加して、印刷送信用データD10を生成する(ステップS3125)。なお、印刷送信用データD10は、これら暗号化印刷ジョブデータ及び乱数以外のデータを含んでいてもよい。
次に、印刷クライアント20は、この印刷送信用データD10を、プリンタ30に送信する(ステップS3126)。具体的には、プリンタ30のネットワークアドレスを指定して、ネットワーク10に印刷送信用データD10を送出する。
次に、印刷クライアント20は、プリンタ30から印刷結果情報を受信したかどうかを判断する(ステップS3128)。印刷結果情報を受信していない場合(ステップS3128:No)には、このステップS3128の処理を繰り返して待機する。一方、印刷結果情報を受信した場合(ステップS3128:Yes)には、その印刷結果情報が印刷完了通知であるかどうかを判断する(ステップS3130)。
この印刷結果情報が印刷完了通知である場合(ステップS3130:Yes)には、プリンタ30で印刷が正常に終了したことを意味しているので、ユーザにプリンタ30で印刷が完了した旨を通知する(ステップS3132)。一方、受信した印刷結果情報が印刷完了通知でない場合(ステップS3130:No)には、その印刷結果情報が解読不能通知であるかどうかを判断する(ステップS3134)。
印刷結果情報が解読不能通知である場合(ステップS3134:Yes)には、ユーザに、プリンタ30で印刷送信用データD10の復号ができなかったため、印刷が行われなかった旨を通知する(ステップS3136)。一方、印刷結果情報が解読不能通知でない場合(ステップS3134:No)には、その他の何らかのエラーであると考えられるので、ユーザに、そのエラーの種類に応じた通知を行う(ステップS3138)。
これらステップS3132、ステップS3136、及び、ステップS3138の通知の後、印刷クライアント20は、ステップS3112でRAM66に格納した公開鍵と乱数を削除する(ステップS3140)。このステップS3140の処理は、必ずしも必要な処理ではないが、公開鍵と乱数の秘密性を向上させるために、本実施形態においては、1つの印刷ジョブの処理が終了する度に、取得した公開鍵と乱数とを削除して破棄することとしている。これにより、この印刷クライアント20における印刷要求処理は終了する。
次に、図41乃至図43に基づいて、印刷クライアント20、22の印刷要求処理に対応して、プリンタ30、32で実行される印刷実行処理について説明する。この図41乃至図43は、プリンタ30、32で実行される印刷実行処理を説明するフローチャートである。この印刷実行処理は、プリンタのROM44又はハードディスク58に格納されている印刷実行プログラムをCPU40が読み込んで実行することにより実現される処理である。また、この印刷実行処理は、所定の時間間隔で定常的に実行されている処理である。
ここでも上述と同様に、印刷クライアント20からプリンタ30に印刷が要求された場合を想定して説明する。
図41に示すように、まず、プリンタ30は、印刷クライアント20から、ネットワーク10を介して接続要求を受信したかどうかを判断する(ステップS3200)。印刷クライアント20から接続要求を受信していない場合(ステップS3200:No)には、このステップS3200の処理を繰り返して待機する。そして、上述したように、SSL通信等によりセキュリティを確保した上で、プリンタ30と印刷クライアント20との間のコネクションを確立する(ステップS3202)。
次に、プリンタ30は、印刷クライアント20から認証情報を受信したかどうかを判断する(ステップS3204)。認証情報を受信していない場合(ステップS3204:No)には、このステップS3204の処理を繰り返して待機する。
一方、認証情報を印刷クライアント20から受信した場合(ステップS3204:Yes)には、その認証情報がこのプリンタ30に予め登録してある認証情報と一致するかどうかを判断する(ステップS3206)。具体的には、上述したように、印刷クライアント20から印刷クライアントIDとパスワードが認証情報として送信されてくるので、この印刷クライアントIDとパスワードが、予めプリンタ30のハードディスク58等に登録されている印刷クライアントIDとパスワードと一致するかどうかを判断する。
認証情報が一致しなかった場合(ステップS3206:No)には、プリンタ30は印刷クライアント20に、認証が受け入れられなかった旨の認証結果を送信し(ステップS3208)、ステップS3204の処理に戻る。一方、認証が一致した場合(ステップS3206:Yes)には、プリンタ30は印刷クライアント20に、認証が受け入れられた旨の認証結果を送信する(ステップS3210)。
次に、プリンタ30は、印刷クライアント20から公開鍵取得要求を受信したかどうかを判断する(ステップS3212)。この公開鍵取得要求を受信していない場合(ステップS3212:No)には、このステップS3212の処理を繰り返して待機する。
一方、印刷クライアント20から公開鍵取得要求を受信した場合(ステップS3212:Yes)には、プリンタ30は、このプリンタ30の機器固有情報を取得する(ステップS3214)。ここで、機器固有情報とは、このプリンタ30に関して、固有に割り当てられている識別情報であり、例えば、プリンタ30の製造シリアルナンバー、MACアドレス等がある。
次に、図42に示すように、プリンタ30は、位置検出部54から、その時点におけるプリンタ30のプリンタ位置情報を取得する(ステップS3220)。このようにプリンタ位置情報をその都度、位置検出部54から取得することとしているのは、プリンタ30が別の場所に移動された場合には、その移動後の位置情報を用いて公開鍵を生成するようにするためである。
次に、プリンタ30は、機器固有情報とプリンタ位置情報とを用いてパスフレーズを作成する(ステップS3222)。このパスフレーズの作成手法は種々のものが考えられるが、本実施形態においては、単純に機器固有情報の後ろにプリンタ位置情報をつなげることにより、パスフレーズを作成する。なお、パスフレーズは、これら機器固有情報及びプリンタ位置情報以外のデータを含んでいてもよい。
次に、プリンタ30は、乱数を1つ生成する(ステップS3224)。続いて、プリンタ30は、ステップS3222で作成したパスフレーズと、ステップS3224で生成した乱数とを用いて、公開鍵暗号法により、公開鍵と秘密鍵とを生成する(ステップS3226)。公開鍵暗号法では、使用するパスフレーズと乱数とが同じであれば、再び、公開鍵と秘密鍵とを生成しても、同じものが生成されるという性質を有している。続いて、プリンタ30は、公開鍵と、この公開鍵を生成する際に使用した乱数とを印刷クライアント20に送信する(ステップS3228)。なお、公開鍵と乱数とを印刷クライアント20に送信した後に、これら秘密鍵と乱数は保存されることなく破棄される。
次に、プリンタ30は、印刷クライアント20との間のコネクションを解放する(ステップS3230)。この処理は、上述した印刷要求処理のステップS3114に対応する処理である。また、上述したように、このステップS3230の処理は、必ずしも必要な処理ではない。
次に、プリンタ30は、印刷送信用データD10をネットワーク10から受信したかどうかを判断する(ステップS3232)。何ら印刷送信用データD10を受信していない場合(ステップS3232:No)には、このステップS3232の処理を繰り返して待機する。一方、印刷送信用データD10を受信した場合(ステップS3232:Yes)には、プリンタ30は自らの機器固有情報を取得する(ステップS3234)。
次に、図43に示すように、プリンタ30は、位置検出部54から、その時点におけるプリンタ30のプリンタ位置情報を取得する(ステップS3240)。このようにプリンタ位置情報を、その都度、位置検出部54から取得することとしているのは、プリンタ30が別の場所に移動された場合には、その移動後の位置情報を用いて秘密鍵を生成するようにするためである。
次に、プリンタ30は、機器固有情報とプリンタ位置情報とに基づいて、パスフレーズを作成する(ステップS3242)。このパスフレーズの作成手法は、上述したステップS3222と同じ手法である必要がある。なぜなら、パスフレーズが異なると、印刷クライアントに送信した公開鍵で暗号化された印刷送信用データD10を、秘密鍵で復号できなくなってしまうからである。
次に、プリンタ30は、受信した印刷送信用データD10に含まれている乱数を取得する(ステップS3244)。続いて、プリンタ30は、生成したパスフレーズと取得した乱数とを用いて、公開鍵暗号法により公開鍵と秘密鍵とを生成する(ステップS3246)。このステップS3246で使用するパスフレーズは、その間にプリンタ30の設置位置が移動されていなければ、上述したステップS3226で使用したパスフレーズと同じである。また、乱数についても、正当な印刷クライアント20から送信された印刷送信用データD10であれば、上述したステップS3226と同じになるはずである。このため、このステップS3246では、ステップS3226で生成したものと同じ公開鍵と秘密鍵が生成される。続いて、プリンタ30は、生成された秘密鍵を用いて、受信した印刷送信用データD10に含まれている暗号化印刷ジョブデータを復号する(ステップS3248)。
次に、プリンタ30は、秘密鍵を用いて暗号化印刷ジョブデータの復号ができたかどうかを判断する(ステップS3250)。復号ができた場合(ステップS3250:Yes)には、暗号化印刷ジョブデータを復号することにより得られた印刷ジョブデータD05に基づいて、印刷エンジン52を駆動した印刷を実行する(ステップS3252)。具体的には、印刷ジョブデータD05の言語解釈を行い、印刷エンジン52に適合した印刷要求データを生成する。そして、この印刷要求データを印刷エンジン52に送信することにより、印刷エンジン52で印刷用紙等に印刷が行われる。
このことから分かるように、本実施形態においては、位置検出部54で検出したプリンタ位置情報を少なくとも含むパスフレーズと、印刷送信用データD10に含まれている乱数とを用いて秘密鍵を生成し、この秘密鍵で暗号化印刷ジョブデータが復号できた場合には、暗号化印刷ジョブデータがプリンタ位置情報と合致したと判断することとなる。
この印刷が正常に完了した時点で、プリンタ30は、印刷が正常に終了した旨の印刷完了通知を、印刷結果情報として、印刷クライアント20に送信する(ステップS3254)。
これに対して、ステップS3250において、暗号化印刷ジョブデータの復号ができなかったと判断した場合(ステップS3250:No)には、解読不能通知を印刷結果情報として、印刷クライアント20に送信する(ステップS3256)。すなわち、本実施形態においては、位置検出部54で検出したプリンタ位置情報を少なくとも含むパスフレーズと、印刷送信用データD10に含まれている乱数とを用いて秘密鍵を生成し、この秘密鍵で暗号化印刷ジョブデータが復号できなかった場合には、暗号化印刷ジョブデータがプリンタ位置情報と合致しなかった判断することとなる。
これらステップS3254又はステップS3256の処理の後、プリンタ30は、上述した図41のステップS3200の処理に戻る。
以上のように、本実施形態に係る印刷システムによれば、プリンタ30、32は、公開鍵暗号法により、印刷ジョブ毎に異なる乱数を用いて公開鍵と秘密鍵を生成し、印刷クライアント20、22に公開鍵と乱数を送信することとしたので、公開鍵、秘密鍵、及び、乱数のセキュリティを高めることができる。
しかも、公開鍵と、この公開鍵を生成する際に使用した乱数とを印刷クライアント20に送信し、プリンタ30側では秘密鍵と乱数を破棄することとしたので、秘密鍵のセキュリティも高めることができる。また、印刷クライアント20、22が乱数を一時的に保持しておき、暗号化印刷ジョブデータとともにプリンタ30、32にこの乱数をプリンタ30、32に送り返すこととした。このため、この公開鍵を用いて暗号化された暗号化印刷ジョブデータをプリンタ30、32が復号する際には、暗号化印刷ジョブデータとともに送信された乱数を用いて、再び、公開鍵暗号法により、同じ秘密鍵を生成することができ、暗号化印刷ジョブデータを復号することができる。
さらに、プリンタ30、32においては、この秘密鍵で暗号化印刷ジョブデータが復号できなかった場合には、受信した暗号化印刷ジョブデータの印刷を実行しないようにしたので、不正な意図を有する第三者が、このプリンタ30、32で印刷を実行するのを回避することができる。
なお本発明は上記実施形態に限定されずに種々に変形可能である。例えば、上述した実施形態においては、公開鍵及び秘密鍵を生成する際に用いる「所定の数」が乱数である場合を例に説明したが、この所定の数は乱数に限るものではない。例えば、そのプリンタでの第1回目の公開鍵及び秘密鍵の生成の場合には、所定の数を「1」とし、第2回目の公開鍵及び秘密鍵の生成の場合には、所定の数を「2」とし、第3回目の公開鍵及び秘密鍵の生成の場合には、所定の数を「3」とするように、所定の数に昇順の自然数を用いるようにしてもよい。
また、所定の数に、昇順の偶数を用いるようにしてもよいし、昇順の奇数を用いるようにしてもよい。換言すれば、所定のアルゴリズムを用いて、所定の数を生成するようにしてもよい。
また、図44乃至図46に示すように、プリンタ30、32から印刷クライアント20、22に所定の数を送信する代わりに、所定の数を導出する際に用いたアルゴリズム(例えば、昇順の偶数)と、そのアルゴリズムを用いて所定の数を導出するのに必要な付加情報(例えば、第1回目)を送信するようにしてもよい。
この場合、図44に示すように、印刷クライアント20、22は、印刷を要求する際には、所定の数そのものをプリンタ30、32に送信するようにしてもよい。この場合、印刷クライアント20、22は、プリンタ30、32から受信したアルゴリズムを特定する情報と、必要な付加情報とを保持していてもよいし、或いは、所定の数を生成して所定の数を保持するようにしてもよい。
また、図45に示すように、印刷クライアント20、22は、印刷を要求する際に、アルゴリズムと付加情報とをプリンタ30、32に送信するようにしてもよい。この場合、印刷クライアント20、22は、アルゴリズムを特定する情報と、必要な付加情報とを保持することとなる。
さらに、図46に示すように、印刷クライアント20、22は、印刷を要求する際に、アルゴリズムを送信せずに、付加情報だけをプリンタ30、32に送信するようにしてもよい。なぜなら、公開鍵及び秘密鍵を生成する際に用いるアルゴリズムは、プリンタ30、32において固定的に定まっている場合もあるからである。
上述した実施形態においては、セキュリティを確保すべきデータを送信するデータ送信装置として印刷クライアントを例示し、そのデータを受信するデータ受信装置としてプリンタを例示して、本発明を説明したが、データ送受信システムにおけるデータ送信装置とデータ受信装置の組み合わせは、上記実施形態に限定されるものではない。
例えば、データ送受信システムにおけるデータ送信装置が画像撮影用のデジタルカメラであり、データ受信装置がデジタルカメラで撮影した画像データを蓄積するデータサーバであってもよい。この場合、デジタルカメラから送信されるデータはデータサーバから受信した公開鍵を用いて暗号化されており、このデータを受信したデータサーバでは、上述した手法により秘密鍵を生成し、このデータの復号を行うこととなる。そして、受信したデータの復号ができた場合には、そのデータを蓄積し、復号できなかった場合には、そのデータを蓄積しないこととなる。
また、データ送受信システムにおけるデータ送信装置がパーソナルコンピュータであり、データ受信装置がそのパーソナルコンピュータから送信された画像データを投影するプロジェクタであってもよい。この場合、パーソナルコンピュータから送信されるデータはプロジェクタから受信した公開鍵を用いて暗号化されており、このデータを受信したプロジェクタでは、上述した手法により秘密鍵を生成し、このデータの復号を行うこととなる。そして、受信したデータの復号ができた場合には、そのデータを投影し、復号できなかった場合には、そのデータを投影しないこととなる。
さらには、データ送受信システムにおけるデータ送信装置が音楽等のコンテンツサーバであり、データ受信装置がコンテンツサーバから送信された音楽等のコンテンツデータの再生装置であってもよい。この場合、コンテンツサーバから送信されるデータは再生装置から受信した公開鍵を用いて暗号化されており、このデータを受信した再生装置では、上述した手法により秘密鍵を生成し、このデータの復号を行うこととなる。そして、受信したデータの復号ができた場合には、そのデータを再生し、復号できなかった場合には、そのデータを再生しないこととなる。
また、上述した実施形態では、プリンタ30、32の印刷媒体が印刷用紙である場合を例に説明したが、印刷媒体はこれに限るものではなく、例えば、OHPシート等の他の印刷媒体であっても本発明を適用することができる。
さらに、上述の実施形態で説明した各処理については、これら各処理を実行するためのプログラムをフレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、ROM、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、このプログラムが記録された記録媒体を印刷クライアント20、22及び/又はプリンタ30、32に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
また、印刷クライアント20、22及び/又はプリンタ30、32は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、印刷クライアント20、22及び/又はプリンタ30、32の備える他のプログラムを活用し、記録媒体には印刷クライアント20、22及び/又はプリンタ30、32が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を記録するようにしてもよい。
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、印刷クライアント20、22及び/又はプリンタ30、32に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだ印刷クライアント20、22及び/又はプリンタ30、32は、そのプログラムの復号や伸張を行った上で、実行する必要がある。
Claims (37)
- 印刷クライアントに接続され、前記印刷クライアントから送信された印刷データを処理するプリンタであって、
前記印刷クライアントから公開鍵取得要求を受信する、公開鍵取得要求受信部と、
前記公開鍵取得要求受信部が前記公開鍵取得要求を受信した際に、その時点で当該プリンタの設置されている場所を特定するための第1プリンタ位置情報を取得し、前記第1プリンタ位置情報を少なくとも含むパスフレーズと、所定の数とを用いて、公開鍵暗号法により公開鍵を生成する、公開鍵生成部と、
前記公開鍵生成部で生成された前記公開鍵を、前記印刷クライアントに送信する、公開鍵送信部と、
前記印刷クライアントにより前記公開鍵で暗号化された印刷データを、前記印刷クライアントから受信する、印刷データ受信部と、
前記印刷データ受信部が前記印刷データを受信した際に、その時点で当該プリンタの設置されている場所を特定するための第2プリンタ位置情報を取得し、前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、公開鍵暗号法により秘密鍵を生成する、秘密鍵生成部と、
前記秘密鍵を用いて、前記印刷データ受信部で受信した前記印刷データを復号する、復号部と、
前記秘密鍵を用いて前記印刷データが復号できた場合には、前記印刷データに基づく印刷を実行し、前記秘密鍵を用いて前記印刷データが復号できなかった場合には、前記印刷データに基づく印刷を実行しない、印刷実行部と、
を備えることを特徴とするプリンタ。 - 前記公開鍵生成部が公開鍵を生成する際に、秘密鍵が生成された場合でも、この秘密鍵は破棄する、ことを特徴とする請求項1に記載のプリンタ。
- 前記公開鍵生成部で用いた前記所定の数を保持する、所定の数保持部を、さらに備えることを特徴とする請求項1又は請求項2に記載のプリンタ。
- 前記所定の数保持部に保持されている所定の数は、当該プリンタに1つである、ことを特徴とする請求項3に記載のプリンタ。
- 前記所定の数保持部に保持されている所定の数は、前記印刷クライアント毎に1つである、ことを特徴とする請求項3に記載のプリンタ。
- 前記公開鍵で暗号化された前記印刷データに加えて、前記印刷データを送信した印刷クライアントから、前記公開鍵で暗号化されていない印刷クライアント識別情報を受信する、印刷クライアント識別情報受信部と、
前記所定の数保持部から、前記印刷クライアント識別情報に基づいて、前記印刷データを送信した印刷クライアントの所定の数を取得する、所定の数取得部と、
をさらに備えることを特徴とする、請求項5に記載のプリンタ。 - 前記所定の数保持部に保持されている所定の数は、ユーザ毎に1つである、ことを特徴とする請求項3に記載のプリンタ。
- 前記公開鍵で暗号化された前記印刷データに加えて、前記印刷データを送信した印刷クライアントから、前記公開鍵で暗号化されていないユーザ識別情報を受信する、ユーザ識別情報受信部と、
前記所定の数保持部から、前記ユーザ識別情報に基づいて、前記印刷データを送信したユーザの所定の数を取得する、所定の数取得部と、
をさらに備えることを特徴とする、請求項7に記載のプリンタ。 - 前記公開鍵生成部は、印刷ジョブ毎に印刷クライアントから送信される公開鍵取得要求に基づいて所定の数を生成し、前記公開鍵を生成することを特徴とする請求項1に記載のプリンタ。
- 秘密鍵生成部で前記秘密鍵を生成した後に、前記所定の数保持部に保持されている所定の数を削除する、所定の数削除部を、さらに備えることを特徴とする請求項9に記載のプリンタ。
- 前記公開鍵生成部で生成された公開鍵とともに、この公開鍵を生成する際に用いた前記所定の数を印刷クライアントに送信する、公開鍵所定の数送信部と、
所定の数を印刷クライアントから受信する、所定の数受信部と、
をさらに備えるとともに、
前記秘密鍵生成部は、前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記所定の数受信部で受信した前記所定の数とを用いて、秘密鍵を生成する、
ことを特徴とする請求項1に記載のプリンタ。 - 前記公開鍵取得要求受信部が印刷クライアントから公開鍵取得要求を受信した場合に、前記公開鍵生成部は、前記公開鍵と前記所定の数とを生成し、前記公開鍵所定の数送信部は、前記公開鍵とともに前記所定の数を、この公開鍵取得要求を送信した印刷クライアントに送信する、ことを特徴とする請求項11に記載のプリンタ。
- 前記公開鍵生成部は、印刷ジョブ毎に印刷クライアントから送信される公開鍵取得要求に基づいて所定の数を生成し、前記公開鍵を生成することを特徴とする請求項11に記載のプリンタ。
- 前記公開鍵生成部が公開鍵を生成する際に用いられた所定の数は、前記公開鍵所定の数送信部が前記所定の数を印刷クライアントに送信した後に破棄する、ことを特徴とする請求項13に記載のプリンタ。
- 前記公開鍵生成部で生成された公開鍵とともに、この公開鍵を生成する際に用いた前記所定の数を導出するのに必要な情報を、印刷クライアントに送信する、公開鍵情報送信部と、
所定の数を印刷クライアントから受信する、所定の数受信部と、
をさらに備えるとともに、
前記秘密鍵生成部は、前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記所定の数受信部で受信した前記所定の数とを用いて、秘密鍵を生成する、
ことを特徴とする請求項1に記載のプリンタ。 - 前記所定の数を導出するのに必要な情報は、所定の数を導出するアルゴリズムと、導出のための付加情報である、ことを特徴とする請求項15に記載のプリンタ。
- 前記所定の数は乱数である、ことを特徴とする請求項1乃至請求項16のいずれかに記載のプリンタ。
- 印刷クライアントに接続され、前記印刷クライアントから送信された印刷データを処理するプリンタの制御方法であって、
前記印刷クライアントから公開鍵取得要求を受信するステップと、
前記公開鍵取得要求を受信した際に、その時点で当該プリンタの設置されている場所を特定するための第1プリンタ位置情報を取得し、前記第1プリンタ位置情報を少なくとも含むパスフレーズと、所定の数とを用いて、公開鍵暗号法により公開鍵を生成するステップと、
生成された前記公開鍵を、前記印刷クライアントに送信するステップと、
前記印刷クライアントにより前記公開鍵で暗号化された印刷データを、前記印刷クライアントから受信するステップと、
前記印刷データを受信した際に、その時点で当該プリンタの設置されている場所を特定するための第2プリンタ位置情報を取得し、前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、公開鍵暗号法により秘密鍵を生成するステップと、
前記秘密鍵を用いて、受信した前記印刷データを復号するステップと、
前記秘密鍵を用いて前記印刷データが復号できた場合には、前記印刷データに基づく印刷を実行し、前記秘密鍵を用いて前記印刷データが復号できなかった場合には、前記印刷データに基づく印刷を実行しないステップと、
を備えることを特徴とするプリンタの制御方法。 - 前記公開鍵を生成するステップで生成された秘密鍵を破棄するステップを、さらに備えることを特徴とする請求項18に記載のプリンタの制御方法。
- 前記公開鍵を生成するステップで用いた前記所定の数を、所定の数保持部に保持するステップを、さらに備えることを特徴とする請求項18又は請求項19に記載のプリンタの制御方法。
- 前記所定の数保持部に保持されている所定の数は、当該プリンタに1つである、ことを特徴とする請求項20に記載のプリンタの制御方法。
- 前記所定の数保持部に保持されている所定の数は、前記印刷クライアント毎に1つである、ことを特徴とする請求項20に記載のプリンタの制御方法。
- 前記公開鍵で暗号化された前記印刷データに加えて、前記印刷データを送信した印刷クライアントから、前記公開鍵で暗号化されていない印刷クライアント識別情報を受信するステップと、
前記所定の数保持部から、前記印刷クライアント識別情報に基づいて、前記印刷データを送信した印刷クライアントの所定の数を取得するステップと、
をさらに備えることを特徴とする、請求項22に記載のプリンタの制御方法。 - 前記所定の数保持部に保持されている所定の数は、ユーザ毎に1つである、ことを特徴とする請求項20に記載のプリンタの制御方法。
- 前記公開鍵で暗号化された前記印刷データに加えて、前記印刷データを送信した印刷クライアントから、前記公開鍵で暗号化されていないユーザ識別情報を受信するステップと、
前記所定の数保持部から、前記ユーザ識別情報に基づいて、前記印刷データを送信したユーザの所定の数を取得するステップと、
をさらに備えることを特徴とする、請求項24に記載のプリンタの制御方法。 - 前記公開鍵取得要求は、印刷ジョブ毎に前記印刷クライアントから送信され、前記所定の数と前記公開鍵も印刷ジョブ毎に生成される、ことを特徴とする請求項18に記載のプリンタの制御方法。
- 前記秘密鍵を生成した後に、前記所定の数保持部に保持されている所定の数を削除するステップを、さらに備えることを特徴とする請求項26に記載のプリンタの制御方法。
- 前記生成された公開鍵とともに、この公開鍵を生成する際に用いた前記所定の数を印刷クライアントに送信するステップと、
所定の数を印刷クライアントから受信するステップと、
をさらに備えるとともに、
前記秘密鍵を生成するステップでは、前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記受信した前記所定の数とを用いて、秘密鍵を生成する、
ことを特徴とする請求項18に記載のプリンタの制御方法。 - 前記公開鍵を生成するステップでは、印刷クライアントから公開鍵取得要求を受信した場合に、前記公開鍵と前記所定の数とを生成し、
前記公開鍵を送信するステップでは、前記公開鍵とともに前記所定の数を、この公開鍵取得要求を送信した印刷クライアントに送信する、
ことを特徴とする請求項28に記載のプリンタの制御方法。 - 前記公開鍵取得要求は、印刷ジョブ毎に前記印刷クライアントから送信され、前記所定の数と前記公開鍵も印刷ジョブ毎に生成される、ことを特徴とする請求項28に記載のプリンタの制御方法。
- 前記公開鍵を生成する際に用いられた所定の数を、前記所定の数を印刷クライアントに送信した後に破棄するステップを、さらに備えることを特徴とする請求項30に記載のプリンタの制御方法。
- 前記生成された公開鍵とともに、この公開鍵を生成する際に用いた前記所定の数を導出するのに必要な情報を、印刷クライアントに送信するステップと、
所定の数を印刷クライアントから受信するステップと、
をさらに備えるとともに、
前記秘密鍵を生成するステップでは、前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記受信した前記所定の数とを用いて、秘密鍵を生成する、
ことを特徴とする請求項18に記載のプリンタの制御方法。 - 前記所定の数を導出するのに必要な情報は、所定の数を導出するアルゴリズムと、導出のための付加情報である、ことを特徴とする請求項32に記載のプリンタの制御方法。
- 前記所定の数は乱数である、ことを特徴とする請求項18乃至請求項33のいずれかに記載のプリンタの制御方法。
- 少なくとも1台のプリンタと、前記プリンタにネットワークを介して接続される少なくとも1台の印刷クライアントとを有する、印刷システムであって、
前記プリンタは、
前記印刷クライアントから公開鍵取得要求を受信する、公開鍵取得要求受信部と、
前記公開鍵取得要求受信部が前記公開鍵取得要求を受信した際に、その時点で当該プリンタの設置されている場所を特定するための第1プリンタ位置情報を取得し、前記第1プリンタ位置情報を少なくとも含むパスフレーズと、所定の数とを用いて、公開鍵暗号法により公開鍵を生成する、公開鍵生成部と、
前記公開鍵生成部で生成された前記公開鍵を、前記公開鍵取得要求を送信した前記印刷クライアントに送信する、公開鍵送信部と、
を備えており、
前記印刷クライアントは、
前記プリンタで印刷を行うための印刷データを生成する、印刷データ生成部と、
前記公開鍵で前記印刷データを暗号化し、この暗号化した印刷データを、前記プリンタに送信する、印刷データ送信部と、
を備えており、
前記プリンタは、さらに、
前記印刷クライアントから送信された、前記公開鍵で暗号化された印刷データを受信する、印刷データ受信部と、
前記印刷データ受信部が前記印刷データを受信した際に、その時点で当該プリンタの設置されている場所を特定するための第2プリンタ位置情報を取得し、前記第2プリンタ位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、公開鍵暗号法により秘密鍵を生成する、秘密鍵生成部と、
前記秘密鍵を用いて、前記印刷データ受信部で受信した前記印刷データを復号する、復号部と、
前記秘密鍵を用いて前記印刷データが復号できた場合には、前記印刷データに基づく印刷を実行し、前記秘密鍵を用いて前記印刷データが復号できなかった場合には、前記印刷データに基づく印刷を実行しない、印刷実行部と、
を備えることを特徴とする印刷システム。 - データ送信装置に接続され、前記データ送信装置から送信されたデータを処理するデータ受信装置であって、
前記データ送信装置から公開鍵取得要求を受信する、公開鍵取得要求受信部と、
前記公開鍵取得要求受信部が前記公開鍵取得要求を受信した際に、その時点で当該データ受信装置の設置されている場所を特定するための第1データ受信装置位置情報を取得し、前記第1データ受信装置位置情報を少なくとも含むパスフレーズと、所定の数とを用いて、公開鍵暗号法により公開鍵を生成する、公開鍵生成部と、
前記公開鍵生成部で生成された前記公開鍵を、前記データ送信装置に送信する、公開鍵送信部と、
前記データ送信装置により前記公開鍵で暗号化されたデータを、前記データ送信装置から受信する、データ受信部と、
前記データ受信部が前記データを受信した際に、その時点で当該データ受信装置の設置されている場所を特定するための第2データ受信装置位置情報を取得し、前記第2データ受信装置位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、公開鍵暗号法により秘密鍵を生成する、秘密鍵生成部と、
前記秘密鍵を用いて、前記データ受信部で受信した前記データを復号する、復号部と、
前記秘密鍵を用いて前記データが復号できた場合には、前記データに基づく処理を実行し、前記秘密鍵を用いて前記データが復号できなかった場合には、前記データに基づく処理を実行しない、処理実行部と、
を備えることを特徴とするデータ受信装置。 - 少なくとも1台のデータ受信装置と、前記データ受信装置にネットワークを介して接続される少なくとも1台のデータ送信装置とを有する、データ送受信システムであって、
前記データ受信装置は、
前記データ送信装置から公開鍵取得要求を受信する、公開鍵取得要求受信部と、
前記公開鍵取得要求受信部が前記公開鍵取得要求を受信した際に、その時点で当該データ受信装置の設置されている場所を特定するための第1データ受信装置位置情報を取得し、前記第1データ受信装置位置情報を少なくとも含むパスフレーズと、所定の数とを用いて、公開鍵暗号法により公開鍵を生成する、公開鍵生成部と、
前記公開鍵生成部で生成された前記公開鍵を、前記公開鍵取得要求を送信した前記データ送信装置に送信する、公開鍵送信部と、
を備えており、
前記データ送信装置は、
前記データ受信装置で処理を行うためのデータを生成する、データ生成部と、
前記公開鍵で前記データを暗号化し、この暗号化したデータを、前記データ受信装置に送信する、データ送信部と、
を備えており、
前記データ受信装置は、さらに、
前記データ送信装置から送信された、前記公開鍵で暗号化されたデータを受信する、データ受信部と、
前記データ受信部が前記データを受信した際に、その時点で当該データ受信装置の設置されている場所を特定するための第2データ受信装置位置情報を取得し、前記第2データ受信装置位置情報を少なくとも含むパスフレーズと、前記所定の数とを用いて、公開鍵暗号法により秘密鍵を生成する、秘密鍵生成部と、
前記秘密鍵を用いて、前記データ受信部で受信した前記データを復号する、復号部と、
前記秘密鍵を用いて前記データが復号できた場合には、前記データに基づく処理を実行し、前記秘密鍵を用いて前記データが復号できなかった場合には、前記データに基づく処理を実行しない、処理実行部と、
を備えることを特徴とするデータ送受信システム。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002253378 | 2002-08-30 | ||
JP2002253410 | 2002-08-30 | ||
JP2002253378 | 2002-08-30 | ||
JP2002253410 | 2002-08-30 | ||
JP2002277499 | 2002-09-24 | ||
JP2002277499 | 2002-09-24 | ||
JP2002277384 | 2002-09-24 | ||
JP2002277384 | 2002-09-24 | ||
PCT/JP2003/009280 WO2004022350A1 (ja) | 2002-08-30 | 2003-07-22 | プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004022350A1 JPWO2004022350A1 (ja) | 2005-12-22 |
JP4045552B2 true JP4045552B2 (ja) | 2008-02-13 |
Family
ID=31982504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004534094A Expired - Fee Related JP4045552B2 (ja) | 2002-08-30 | 2003-07-22 | プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US7552324B2 (ja) |
EP (1) | EP1493589A4 (ja) |
JP (1) | JP4045552B2 (ja) |
CN (1) | CN100361823C (ja) |
WO (1) | WO2004022350A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111959139A (zh) * | 2020-08-31 | 2020-11-20 | 湖南鼎一致远科技发展有限公司 | 一种热转印打印机的加密系统 |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3707407B2 (ja) | 2001-08-28 | 2005-10-19 | セイコーエプソン株式会社 | パスワードを投写するプロジェクタ |
US7293071B2 (en) | 2002-05-27 | 2007-11-06 | Seiko Epson Corporation | Image data transmission system, process and program, image data output device and image display device |
US6901863B2 (en) * | 2002-11-27 | 2005-06-07 | Seiko Epson Corporation | Printer and print system for executing a proper print operation only in a place registered in advance |
JP2004287160A (ja) | 2003-03-24 | 2004-10-14 | Seiko Epson Corp | 画像表示システム、プロジェクタ、画像表示方法、プロジェクタ制御方法、画像表示プログラムおよびプロジェクタ制御プログラム |
US20050152543A1 (en) * | 2003-11-04 | 2005-07-14 | Toshihiro Shima | Printer and print system |
JP2005151459A (ja) * | 2003-11-19 | 2005-06-09 | Canon Inc | 画像処理システムおよびその画像データ処理方法 |
KR100757456B1 (ko) * | 2004-01-20 | 2007-09-11 | 삼성전자주식회사 | 인쇄의 보안이 가능한 프린터 및 그 인쇄의 보안방법 |
JP4290036B2 (ja) * | 2004-02-27 | 2009-07-01 | キヤノン株式会社 | 情報処理装置及び印刷制御装置 |
JP4789432B2 (ja) * | 2004-06-29 | 2011-10-12 | キヤノン株式会社 | データ処理装置、データ処理装置の制御方法、コンピュータプログラム及び記憶媒体 |
US20050246803A1 (en) * | 2004-04-30 | 2005-11-03 | Spencer Andrew M | Peripheral device for processing data from a computing device |
US7788482B2 (en) * | 2004-05-10 | 2010-08-31 | Scientific Games International, Inc. | System and method for securing on-line documents using authentication codes |
US8037307B2 (en) * | 2004-05-10 | 2011-10-11 | Scientific Games International Inc. | System and method for securing on-line documents using authentication codes |
US8266631B1 (en) | 2004-10-28 | 2012-09-11 | Curen Software Enterprises, L.L.C. | Calling a second functionality by a first functionality |
US7774789B1 (en) | 2004-10-28 | 2010-08-10 | Wheeler Thomas T | Creating a proxy object and providing information related to a proxy object |
US7823169B1 (en) | 2004-10-28 | 2010-10-26 | Wheeler Thomas T | Performing operations by a first functionality within a second functionality in a same or in a different programming language |
US7861212B1 (en) | 2005-03-22 | 2010-12-28 | Dubagunta Saikumar V | System, method, and computer readable medium for integrating an original application with a remote application |
US8578349B1 (en) | 2005-03-23 | 2013-11-05 | Curen Software Enterprises, L.L.C. | System, method, and computer readable medium for integrating an original language application with a target language application |
JP4604847B2 (ja) * | 2005-06-01 | 2011-01-05 | コニカミノルタビジネステクノロジーズ株式会社 | 画像処理システム、画像処理装置および画像処理プログラム |
KR100644704B1 (ko) * | 2005-06-28 | 2006-11-10 | 삼성전자주식회사 | 보안문서 관리장치 및 방법 |
JP5040341B2 (ja) * | 2006-04-04 | 2012-10-03 | セイコーエプソン株式会社 | プロジェクタシステム |
US7810140B1 (en) | 2006-05-23 | 2010-10-05 | Lipari Paul A | System, method, and computer readable medium for processing a message in a transport |
JP4504950B2 (ja) * | 2006-05-29 | 2010-07-14 | 京セラミタ株式会社 | 印刷システム、情報処理装置、及び、印刷装置 |
US7844759B1 (en) | 2006-07-28 | 2010-11-30 | Cowin Gregory L | System, method, and computer readable medium for processing a message queue |
US8091137B2 (en) * | 2006-10-31 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | Transferring a data object between devices |
US7702603B1 (en) | 2006-12-22 | 2010-04-20 | Hauser Robert R | Constructing an agent that utilizes a compiled set of canonical rules |
US7660777B1 (en) | 2006-12-22 | 2010-02-09 | Hauser Robert R | Using data narrowing rule for data packaging requirement of an agent |
US7664721B1 (en) | 2006-12-22 | 2010-02-16 | Hauser Robert R | Moving an agent from a first execution environment to a second execution environment using supplied and resident rules |
US7970724B1 (en) | 2006-12-22 | 2011-06-28 | Curen Software Enterprises, L.L.C. | Execution of a canonical rules based agent |
US7860517B1 (en) | 2006-12-22 | 2010-12-28 | Patoskie John P | Mobile device tracking using mobile agent location breadcrumbs |
US7702602B1 (en) | 2006-12-22 | 2010-04-20 | Hauser Robert R | Moving and agent with a canonical rule from one device to a second device |
US8200603B1 (en) | 2006-12-22 | 2012-06-12 | Curen Software Enterprises, L.L.C. | Construction of an agent that utilizes as-needed canonical rules |
US7702604B1 (en) | 2006-12-22 | 2010-04-20 | Hauser Robert R | Constructing an agent that utilizes supplied rules and rules resident in an execution environment |
US7660780B1 (en) | 2006-12-22 | 2010-02-09 | Patoskie John P | Moving an agent from a first execution environment to a second execution environment |
US8423496B1 (en) | 2006-12-22 | 2013-04-16 | Curen Software Enterprises, L.L.C. | Dynamic determination of needed agent rules |
US7949626B1 (en) | 2006-12-22 | 2011-05-24 | Curen Software Enterprises, L.L.C. | Movement of an agent that utilizes a compiled set of canonical rules |
US9311141B2 (en) | 2006-12-22 | 2016-04-12 | Callahan Cellular L.L.C. | Survival rule usage by software agents |
US7698243B1 (en) | 2006-12-22 | 2010-04-13 | Hauser Robert R | Constructing an agent in a first execution environment using canonical rules |
US8132179B1 (en) | 2006-12-22 | 2012-03-06 | Curen Software Enterprises, L.L.C. | Web service interface for mobile agents |
JP2008165368A (ja) * | 2006-12-27 | 2008-07-17 | Konica Minolta Business Technologies Inc | サービス制限方法、画像処理制限方法、および画像処理システム |
JP4798172B2 (ja) * | 2008-05-20 | 2011-10-19 | コニカミノルタビジネステクノロジーズ株式会社 | 画像処理装置、画像出力方法および画像出力プログラム |
KR20100059450A (ko) * | 2008-11-26 | 2010-06-04 | 삼성전자주식회사 | 화상형성장치, 호스트 장치 및 작업대상 문서 암호화 방법 |
US20100293095A1 (en) * | 2009-05-18 | 2010-11-18 | Christopher Alan Adkins | Method for Secure Identification of a Device |
EP2348447B1 (en) | 2009-12-18 | 2014-07-16 | CompuGroup Medical AG | A computer implemented method for generating a set of identifiers from a private key, computer implemented method and computing device |
US8719587B2 (en) * | 2009-12-18 | 2014-05-06 | CompuGroup Medical AG | Computer implemented method for generating a pseudonym, computer readable storage medium and computer system |
EP2348452B1 (en) | 2009-12-18 | 2014-07-02 | CompuGroup Medical AG | A computer implemented method for sending a message to a recipient user, receiving a message by a recipient user, a computer readable storage medium and a computer system |
EP2348449A3 (en) | 2009-12-18 | 2013-07-10 | CompuGroup Medical AG | A computer implemented method for performing cloud computing on data being stored pseudonymously in a database |
EP2365456B1 (en) * | 2010-03-11 | 2016-07-20 | CompuGroup Medical SE | Data structure, method and system for predicting medical conditions |
US8914851B2 (en) * | 2010-12-06 | 2014-12-16 | Golba Llc | Method and system for improved security |
US8924713B2 (en) | 2012-03-30 | 2014-12-30 | Golba Llc | Method and system for state machine security device |
FR3032540B1 (fr) * | 2015-02-06 | 2018-09-07 | Dover Europe Sarl | Systeme de protection avancee d'elements consommables ou detachables |
CN106761853B (zh) * | 2017-01-09 | 2019-03-29 | 北京新能正源智能装备有限公司 | 用于拱架台车的夹具机构和拱架台车 |
JP7115027B2 (ja) * | 2018-05-22 | 2022-08-09 | ブラザー工業株式会社 | 通信装置と通信装置のためのコンピュータプログラム |
JP2021177581A (ja) * | 2018-07-23 | 2021-11-11 | 株式会社AndGo | 秘密情報を管理するための機器、方法及びそのためのプログラム |
JP7195802B2 (ja) | 2018-07-31 | 2022-12-26 | キヤノン株式会社 | 情報処理方法、情報処理システム、および通信装置 |
JP7195803B2 (ja) | 2018-07-31 | 2022-12-26 | キヤノン株式会社 | 情報処理方法、情報処理システム、およびプログラム |
US11874936B2 (en) | 2018-10-31 | 2024-01-16 | Hewlett-Packard Development Company, L.P. | Group printing |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10341212A (ja) * | 1997-06-10 | 1998-12-22 | Matsushita Electric Ind Co Ltd | 暗号文伝送システム |
JP3697871B2 (ja) * | 1997-12-12 | 2005-09-21 | セイコーエプソン株式会社 | ネットワークシステム、情報処理装置及び情報記憶媒体 |
US6362893B1 (en) * | 1998-03-06 | 2002-03-26 | Fargo Electronics, Inc. | Security printing and unlocking mechanism for high security printers |
JP3451929B2 (ja) | 1998-05-14 | 2003-09-29 | セイコーエプソン株式会社 | 暗号化サーバおよび該暗号化サーバを用いた通信方法 |
US6760119B1 (en) * | 1999-05-25 | 2004-07-06 | Silverbrook Research Pty Ltd | Relay device |
US6681214B1 (en) * | 1999-06-29 | 2004-01-20 | Assure Systems, Inc. | Secure system for printing authenticating digital signatures |
US7003667B1 (en) * | 1999-10-04 | 2006-02-21 | Canon Kabushiki Kaisha | Targeted secure printing |
US6952780B2 (en) * | 2000-01-28 | 2005-10-04 | Safecom A/S | System and method for ensuring secure transfer of a document from a client of a network to a printer |
US7136486B2 (en) * | 2000-09-11 | 2006-11-14 | Seiko Epson Corporation | Print system and printer capable of prevention of unjust copy print |
US7177426B1 (en) * | 2000-10-11 | 2007-02-13 | Digital Authentication Technologies, Inc. | Electronic file protection using location |
US7231044B2 (en) * | 2000-10-11 | 2007-06-12 | Digital Authentication Technologies, Inc. | Method and apparatus for real-time digital certification of electronic files and transactions using entropy factors |
DE60134565D1 (de) * | 2000-11-03 | 2008-08-07 | Digital Authentication Technol | Schutz einer elektronischen datei unter verwendung des standorts |
JP2002245267A (ja) * | 2001-02-20 | 2002-08-30 | Konica Corp | プリントシステム、プリンタクライアント、サービス側システム |
US6725051B2 (en) * | 2001-04-30 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method for obtaining location data |
JP2002334255A (ja) * | 2001-05-10 | 2002-11-22 | Nippon Telegr & Teleph Corp <Ntt> | 電子コンテンツ流通システム及びその実施装置並びにその処理プログラムと記録媒体 |
US20040107344A1 (en) * | 2001-05-14 | 2004-06-03 | Atsushi Minemura | Electronic device control apparatus |
JP2002359806A (ja) * | 2001-05-31 | 2002-12-13 | Toshiba Corp | 認証方法および情報再生機器 |
US20030044009A1 (en) * | 2001-08-31 | 2003-03-06 | Sridhar Dathathraya | System and method for secure communications with network printers |
US20030065923A1 (en) * | 2001-09-28 | 2003-04-03 | Parry Travis J. | Systems and methods for converting physical signatures to electronic signatures |
US6772945B2 (en) * | 2001-10-09 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Printed card to control printer |
US7305556B2 (en) * | 2001-12-05 | 2007-12-04 | Canon Kabushiki Kaisha | Secure printing with authenticated printer key |
JP3701249B2 (ja) * | 2002-03-05 | 2005-09-28 | 京セラミタ株式会社 | 画像形成装置 |
JP3979192B2 (ja) * | 2002-06-21 | 2007-09-19 | セイコーエプソン株式会社 | プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム |
US6901863B2 (en) * | 2002-11-27 | 2005-06-07 | Seiko Epson Corporation | Printer and print system for executing a proper print operation only in a place registered in advance |
-
2003
- 2003-07-22 WO PCT/JP2003/009280 patent/WO2004022350A1/ja active Application Filing
- 2003-07-22 EP EP03741540A patent/EP1493589A4/en not_active Withdrawn
- 2003-07-22 JP JP2004534094A patent/JP4045552B2/ja not_active Expired - Fee Related
- 2003-07-22 US US10/512,235 patent/US7552324B2/en not_active Expired - Fee Related
- 2003-07-22 CN CNB038163926A patent/CN100361823C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111959139A (zh) * | 2020-08-31 | 2020-11-20 | 湖南鼎一致远科技发展有限公司 | 一种热转印打印机的加密系统 |
CN111959139B (zh) * | 2020-08-31 | 2022-05-13 | 湖南鼎一致远科技发展有限公司 | 一种热转印打印机的加密系统 |
Also Published As
Publication number | Publication date |
---|---|
US7552324B2 (en) | 2009-06-23 |
WO2004022350A1 (ja) | 2004-03-18 |
US20050163549A1 (en) | 2005-07-28 |
JPWO2004022350A1 (ja) | 2005-12-22 |
CN1668471A (zh) | 2005-09-14 |
EP1493589A4 (en) | 2007-12-05 |
CN100361823C (zh) | 2008-01-16 |
EP1493589A1 (en) | 2005-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4045552B2 (ja) | プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム | |
JP4349281B2 (ja) | プリンタ、サーバ及び印刷システム、並びに、データ受信装置及びデータ送受信システム | |
CN101118586B (zh) | 数据处理设备和数据处理方法 | |
JP3700565B2 (ja) | 印刷システム、及び、コンテンツデータ再現システム | |
JP2007110703A (ja) | 電子ドキュメント伝達システム、方法およびプログラム | |
JP2007288747A (ja) | 画像処理システムおよび画像処理システムの制御方法および画像形成装置および画像再生装置 | |
JP2003296195A (ja) | デジタルコピー機の操作方法 | |
JP2006191626A (ja) | 電子文書をセキュアに通信するシステム、方法およびプログラム | |
JP2007336556A (ja) | セキュリティ面で安全なファクシミリ通信システムおよび方法 | |
JP2007082208A (ja) | 電子ドキュメントをセキュリティ面で安全にドメイン間で伝送するシステム、方法、およびプログラム | |
JP2006139784A (ja) | ドキュメント処理装置とその装置にデータ暗号化サービスを追加する方法およびプログラム | |
JP2005099885A (ja) | プリントジョブの処理プログラム、印刷装置、および印刷システム | |
JP4442583B2 (ja) | 画像処理装置、画像処理方法及び画像処理用プログラム | |
JP4923582B2 (ja) | 機器バインドコンテンツの受渡方法、コンテンツ保存装置及びプログラム | |
JP4076957B2 (ja) | コンテンツ配信システム及びコンテンツ配信方法 | |
JP3659148B2 (ja) | 印刷システム、及び、コンテンツデータ再現システム | |
JP4337474B2 (ja) | プリンタ及び印刷システム | |
JP3633464B2 (ja) | 印刷システム、及び、コンテンツデータ再現システム | |
JP4370564B2 (ja) | プリンタ、印刷システム、及び、位置情報による暗号化データ処理システム | |
JP4337473B2 (ja) | プリンタ及び印刷システム | |
JP2005125607A (ja) | プリンタ及び印刷システム | |
JP4786230B2 (ja) | コンテンツ配信システム、コンテンツ配信方法およびコンピュータプログラム | |
JPH10276335A (ja) | 画像形成装置、方法および記憶媒体 | |
JP4232510B2 (ja) | プリンタ、及び、印刷システム | |
JP2004306263A (ja) | プリンタ、及び、印刷システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061117 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061219 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071026 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071108 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101130 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4045552 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101130 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131130 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |