(57)【特許請求の範囲】
【請求項１】
画像形成装置で出力するためのデータを記録する記録装置と接続され、前記記録装置に記録されるデータを出力することが可能な画像形成装置に設けられるネットワークインタフェース装置であって、
前記記録装置の接続を検知する接続検知手段と、
前記接続検知手段により前記記録装置の接続が検知された場合に、前記記録装置に記録された前記データを削除すべきかを判定する判定手段と、
前記判定手段で、前記データを削除すべきと判定した場合に、前記データを削除する第１の削除手段とを有し、
前記判定手段は、前記記録装置に記録された暗号化されている前記データを、前記画像形成装置で暗号化したデータを復号化するための鍵情報を用いて復号化できない場合に、前記データを削除すべきと判定することを特徴とするネットワークインタフェース装置。
【請求項２】
前記画像形成装置で出力するためのデータである前記データを暗号化し、暗号化した前記データを復号化するための新たな鍵情報を生成する鍵情報生成手段を有し、
前記判定手段は、前記鍵情報生成手段で生成した前記新たな鍵情報を用いて前記データを復号できない場合に、前記データを削除すべきと判定することを特徴とする請求項１に記載のネットワークインタフェース装置。
【請求項３】
前記鍵情報生成手段で生成した鍵情報を記憶する鍵情報記憶手段を有し、
前記判定手段は、前記接続検知手段で前記記録装置の接続が検知された場合であって、前記鍵情報が前記鍵情報記憶手段に記憶されていない場合に、前記データを復号できないものとして、前記データを削除すべきと判定することを特徴とする請求項２に記載のネットワークインタフェース装置。
【請求項４】
前記記録装置との接続の切断が検知された場合に、前記鍵情報生成手段で生成した鍵情報を削除する削除手段を有し、
前記鍵情報生成手段は、前記接続検知手段で前記記録装置の接続を検知した場合に、前記新たな鍵情報を生成することを特徴とする請求項２又は３に記載のネットワークインタフェース装置。
【請求項５】
前記接続検知手段により前記記録装置の接続が検知された場合に前記記録装置に記録された前記データを削除する削除モードか、前記データを復号化して前記記録装置に再度保存する保存モードか、を設定する設定手段を有し、
前記判定手段は、前記設定手段により前記削除モードが設定されている場合に、前記記録装置に記録された前記データを削除する第２の削除手段を有することを特徴とする請求項１乃至４のいずれか１項に記載のネットワークインタフェース装置。
【請求項６】
前記鍵情報生成手段にて生成された前記新たな鍵情報を用いて、前記データを暗号化する暗号化手段と、
前記暗号化手段にて暗号化された前記データを前記記録装置に書き込む書込手段と、
前記判定手段で、前記データを削除すべきでないと判定した場合に、前記鍵情報生成手段にて生成された前記新たな鍵情報を用いて、前記書込手段により前記記録装置に書き込まれた前記データを復号化する第１の復号化手段とを有することを特徴とする請求項２乃至５のいずれか１項に記載のネットワークインタフェース装置。
【請求項７】
前記記録装置に記録される前記データを、前記鍵情報生成手段で前記新たな鍵情報より前に生成された鍵情報を用いて復号化する第２の復号化手段を有し、
前記暗号化手段は、前記第２の復号化手段により復号化された前記データを前記新たな鍵情報を用いて暗号化することを特徴とする請求項６に記載のネットワークインタフェース装置。
【請求項８】
前記記録装置に記録されるデータの一覧を記憶する一覧記憶手段と、
前記一覧に含まれるデータを前記記録装置から取得するデータ取得手段とを有し、
前記第２の復号化手段は、前記データ取得手段により取得されたデータを、前記鍵情報生成手段で生成された新たな鍵情報より前に生成された鍵情報を用いて復号化することを特徴とする請求項７に記載のネットワークインタフェース装置。
【請求項９】
画像形成装置で出力するためのデータを記録する記録装置と接続され、前記記録装置に記録されるデータを出力することが可能な画像形成装置に設けられるネットワークインタフェース装置の制御方法であって、
接続検知手段が、前記記録装置の接続を検知する接続検知工程と、
判定手段が、前記接続検知工程により前記記録装置の接続が検知された場合に、前記記録装置に記録された前記データを削除すべきかを判定する判定工程と、
第１の削除手段が、前記判定工程で、前記データを削除すべきと判定した場合に、前記データを削除する第１の削除工程とを含み、
前記判定工程では、前記記録装置に記録された暗号化されている前記データを、前記画像形成装置で暗号化したデータを復号化するための鍵情報を用いて復号化できない場合に、前記データを削除すべきと判定することを特徴とするネットワークインタフェース装置の制御方法。
【請求項１０】
画像形成装置で出力するためのデータを記録する記録装置と接続され、前記記録装置に記録されるデータを出力することが可能な画像形成装置に設けられるネットワークインタフェース装置で実行が可能なプログラムであって、
前記ネットワークインタフェース装置を、
前記記録装置の接続を検知する接続検知手段と、
前記接続検知手段により前記記録装置の接続が検知された場合に、前記記録装置に記録された前記データを削除すべきかを判定する判定手段と、
前記判定手段で、前記データを削除すべきと判定した場合に、前記データを削除する第１の削除手段として機能させ、
前記判定手段は、前記記録装置に記録された暗号化されている前記データを、前記画像形成装置で暗号化したデータを復号化するための鍵情報を用いて復号化できない場合に、前記データを削除すべきと判定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば携帯可能な記録装置に記録されるデータをセキュリティを維持して出力させるための技術に関するものである。
【背景技術】
【０００２】
近年、プリンタから文書を印刷させる場合、印刷物が放置されることによる情報漏洩等を避ける（セキュリティを高める）ために、印刷データをサーバ内又は印刷装置内に蓄積させておくことがなされる。このような仕組みの場合、ユーザは印刷装置の前に行って例えばＩＣカード等をかざすことにより、そのユーザの印刷物が出力される。
【０００３】
また、情報漏洩をさらに防ぐために、蓄積されている印刷データについても暗号化を行い、印刷する際に復号化を行うといったセキュリティを高める仕組みが開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３０６２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された技術では、ユーザが指定した認証コード（暗号化キー、復号化キー）を用いて暗号化及び復号化を行っている。この技術では、ユーザが同じ認証コードを常に使った場合、一度認証コードが外部に漏洩してしまうと印刷データがいつでも第三者に盗み見られてしまうといったことが発生し、情報漏洩対策としては不十分であった。
【０００６】
特に特許文献１に記載された技術では、認証コードがネットワーク上を流れるため、ネットワーク上での認証コードが不正に取得されて情報漏洩を招いてしまうという危険性があった。
【０００７】
また、特許文献１に記載された技術におけるプリントシステム１０の記憶装置（例えば、ハードディスク）が抜かれ、記憶装置内の印刷データが解析されて認証コードが不正に取得されて情報漏洩を招くといった危険性も想定される。
【０００８】
そこで、情報漏洩を防ぐために暗号化キー、復号化キーを定期的に変更させる必要がある。特許文献１に記載された技術における蓄積印刷型のシステムで、定期的に暗号化キー、復号化キーを変更させる場合には、変更前の復号化キーで印刷データの復号化を行い、新たに生成された暗号化キーで印刷データの暗号化を行わなければならない。このように印刷データが多く蓄積されている場合、暗号化、復号化に時間がかかってしまうといった問題が生じてしまう。
【０００９】
さらに、印刷データをプリンタ内に蓄積させているような場合のシステムでは、プリンタが複数の印刷データを暗号化したり、復号化したりする処理を繰り返さなければならない。サーバ等のスペックの高い機器で印刷データを暗号化したり、復号化したりする場合と比較し、多大な時間がかかってしまうといった問題が生じる。
【００１０】
特に、シングルファンクションプリンタ等のようなスペックが低い（例えばＣＰＵの処理能力が低い）プリンタでは、暗号化処理、復号化処理にプリンタが備える処理能力をほぼ全て使ってしまう。従って、定期的に暗号化／復号化キーを変更することによって暗号化処理、復号化処理を行う場合には印刷処理が大幅に遅くなり、定期的に暗号化キー、復号化キーを変更するのは困難になる。その結果、暗号化キーの定期的な変更が行われず、セキュリティ上問題が生じてしまっていた。
【００１１】
本発明は、接続を検知した場合に、記録装置内の暗号化された情報を復号化できない場合に削除することによりセキュリティを向上させる仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のネットワークインタフェース装置は、画像形成装置で出力するためのデータを記録する記録装置と接続され、前記記録装置に記録されるデータを出力することが可能な画像形成装置に設けられるネットワークインタフェース装置であって、前記記録装置の接続を検知する接続検知手段と、前記接続検知手段により前記記録装置の接続が検知された場合に、前記記録装置に記録された前記データを削除すべきかを判定する判定手段と、前記判定手段で、前記データを削除すべきと判定した場合に、前記データを削除する第１の削除手段とを有し、前記判定手段は、前記記録装置に記録された暗号化されている前記データを、前記画像形成装置で暗号化したデータを復号化するための鍵情報を用いて復号化できない場合に、前記データを削除すべきと判定することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、接続を検知した場合に、記録装置内の暗号化された情報を復号化できない場合に削除することによりセキュリティを向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るセキュアプリントシステムの構成を示す図である。
【図２】クライアント端末、認証サーバに適用可能な情報処理装置のハードウエア構成を示す図である。
【図３】プリンタに適用可能な画像形成装置のハードウエア構成を示す図である。
【図４】ＮＩＣに適用可能なネットワークインタフェース装置のハードウエア構成を示す図である。
【図５】本発明の実施形態に係るセキュアプリントシステムの機能構成を示すブロック図である。
【図６】プリンタのアプリケーション起動時の処理を示すフローチャートである。
【図７Ａ】ＵＳＢイベント検知時の処理を示すフローチャートである。
【図７Ｂ】ＵＳＢイベント検知時の処理を示すフローチャートである。
【図７Ｃ】ＵＳＢイベント検知時の処理を示すフローチャートである。
【図７Ｄ】ＵＳＢイベント検知時の処理を示すフローチャートである。
【図８】ジョブデータの印刷時の処理を示すフローチャートである。
【図９Ａ】ジョブデータのジョブ出力時における処理の流れを示すフローチャートである。
【図９Ｂ】ジョブデータのジョブ出力時における処理の流れを示すフローチャートである。
【図１０】認証テーブルの構成を模式的に示す図である。
【図１１】ジョブ情報リストの構成を模式的に示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１６】
図１は、本発明の実施形態に係るセキュアプリントシステムの構成を示す図である。図１に示すように、本実施形態に係るセキュアプリントシステムは、マスストレージ５００、ＵＳＢハブ６００、カードリーダ４００、プリンタ１０００、クライアント端末１００及び認証サーバ２００から構成される。本実施形態では、図１に示すように、マスストレージ５００及びＵＳＢハブ６００がプリンタ１０００に外付けされているが、マスストレージ５００及びＵＳＢハブ６００がプリンタ１０００に内蔵される形態をとってもよい。また、プリンタ１０００が複数のＵＳＢポートを備えている場合は、ＵＳＢハブ６００を介する必要なく、プリンタ１０００にカードリーダ４００及びマスストレージ５００が直接接続される形態となる。なお、プリンタ１０００は、本発明の画像形成装置（データ出力装置）の適用例となる構成であり、マスストレージ５００は、本発明の記録装置の適用例となる構成である。
【００１７】
認証サーバ２００は、ユーザの使用するＩＣカード番号とユーザ名とを対応付けて保持し、ＩＣカード番号からユーザ名を検索することができる。本セキュアプリントシステムでは、ＩＣカード番号からユーザ名を取得するシステムを想定しているが、プリンタ１０００に接続されたキーボード等の入力手段からユーザ名を入力しても良く、本発明はユーザ名を取得する方法には依存しない。
【００１８】
マスストレージ５００は、ファイルシステムを持ったハードウエアである。例えば、ＨＤＤやフラッシュメモリであり、大容量のファイルシステムを持つストレージである。マスストレージ５００は、ＵＳＢハブ６００にＵＳＢケーブル１６０を通じてＮＩＣ７００と接続されており、プリンタ１０００からファイルシステムの制御（ファイル書き込み、読み込み、削除等）を行うことが可能である。尚、ＮＩＣ７００とマスストレージ５００の接続形態は、マスストレージとなるハードウエアの構成に応じた接続であり、ＵＳＢ接続に限るものではない。
【００１９】
以下、図２を用いて、図１に示したクライアント端末１００、認証サーバ２００に適用可能な情報処理装置のハードウエア構成について説明する。
【００２０】
図２において、２００１はＣＰＵであり、システムバス２００４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２００３又は外部メモリ２０１１には、ＣＰＵ２００１の制御プログラムであるＢＩＯＳ（Basic Input / Output System）やオペレーティングシステムプログラム（以下、ＯＳと称す）や、各サーバ又は各ＰＣの実行する機能を実現するために必要な各種プログラム等が記憶されている。
【００２１】
２００２はＲＡＭであり、ＣＰＵ２００１の主メモリ、ワークエリア等として機能する。ＣＰＵ２００１は、処理の実行に際して必要なプログラム等をＲＯＭ２００３あるいは外部メモリ２０１１からＲＡＭ２００２にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００２２】
また、２００５は入力コントローラであり、キーボード（ＫＢ）２００９や不図示のマウス等のポインティングデバイス等からの入力を制御する。２００６はビデオコントローラであり、ＣＲＴディスプレイ（ＣＲＴ）２０１０等の表示器への表示を制御する。なお、図２では、ＣＲＴ２０１０と記載しているが、表示器はＣＲＴだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
【００２３】
２００７はメモリコントローラであり、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）や、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２０１１へのアクセスを制御する。
【００２４】
２００８は通信Ｉ／Ｆコントローラであり、ネットワーク（例えば、図１に示したＬＡＮ３００）を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００２５】
なお、ＣＰＵ２００１は、例えばＲＡＭ２００２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２０１０上での表示を可能としている。また、ＣＰＵ２００１は、ＣＲＴ２０１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２６】
ハードウエア上で動作する各種プログラムは、外部メモリ２０１１に記録されており、必要に応じてＲＡＭ２００２にロードされることによりＣＰＵ２００１によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ２０１１に格納されている。
【００２７】
以下、図３を用いて、図１に示したプリンタ１０００に適用可能な画像形成装置のハードウエア構成について説明する。
【００２８】
３０００は入力部であり、本プリンタ１０００とＮＩＣ７００（ネットワークインタフェース装置）を接続するものであり、ＮＩＣ７００とのデータ通信を司るものである。
【００２９】
３００１は、ＣＰＵであり、本プリンタ１０００の全体的な制御を司るものである。３００２は、操作部であり、本プリンタ１０００に直接ユーザが触れて操作するためのＩ／Ｆを提供するものである。
【００３０】
３００３は、印刷処理部であり、入力部３０００で受信したコマンドの解析及びジョブデータ（印刷データ（例えば、ＰＤＬ））の解析等を行うものである。
【００３１】
３００４は、記憶部であり、本プリンタ１０００を動作させるための不図示のＲＯＭ（Read Only Memory）、不図示のＲＡＭ（Random Access Memory）、不図示の二次記憶装置等からなる。ＲＡＭは、使用制限のないデータ記憶領域であり、入力部３０００の受信バッファ、又は、印刷処理部３００３でのデータ展開等に使用される領域である。
【００３２】
３００５は、出力部であり、入力部３０００を介して受信したジョブデータを、印刷処理部３００３で印刷可能なイメージ情報に展開されたものを紙に転写するものである。３００６は、用紙カセットであり、出力部３００５の処理に合わせて適切な用紙を供給する。
【００３３】
７００は、ＮＩＣであり、ネットワークインタフェースカード（ネットワークインタフェース装置）である。ＮＩＣ７００は、ＬＡＮ３００を介して他の機器から受信したデータを、ＮＩＣ７００が窓口となって受け取り、その後、不図示のＮＩＣ７００内部のプログラムに渡したり、プリンタ１０００の入力部３０００に渡したりすることができる。このような受信データの受け渡し制御は、ＮＩＣ７００内部に搭載される不図示のＮＩＣ ＯＳによって行うことが可能である。なお、ＮＩＣ７００は、本発明の情報処理装置の適用例となる構成である。
【００３４】
以下、図４を用いて、図３に示したＮＩＣ７００に適用可能なネットワークインタフェース装置のハードウエア構成について説明する。
【００３５】
図４において、４００１は、ＣＰＵであり、ＮＩＣ７００の制御を司るものであり、内部で接続されている装置の制御を行う。
【００３６】
４００２は、ＲＡＭであり、ＣＰＵ４００１の主メモリ、ワークエリア等として機能する。ＣＰＵ４００１は、処理の実行に際して必要なプログラム等をＲＯＭ４００７又は内部メモリ４００５からＲＡＭ４００２にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００３７】
４００３は、通信Ｉ／Ｆコントローラであり、ネットワーク（例えば、図１に示したＬＡＮ３００）を介して外部機器と接続・通信するものである。通信Ｉ／Ｆコントローラ４００３は、ネットワークでの通信制御処理を実行する。例えば、通信Ｉ／Ｆコントローラ４００３は、ＴＣＰ／ＩＰやＵＤＰ等の通信プロトコルを用いた通信が可能である。
【００３８】
４００４は、ＵＳＢＩ／Ｆコントローラであり、カードリーダ４００、マスストレージ５００及びＵＳＢハブ６００等のＵＳＢデバイスとＮＩＣ７００とを接続・通信するものであり、ＵＳＢの通信制御処理を実行する。
【００３９】
４００５は、内部メモリであり、ＮＩＣ７００を制御するプログラム（ＯＳ）が搭載されている。内部メモリ４００５は、該ＯＳ上で動作する、アプリケーションプログラム及びその設定情報を記憶する領域である。
【００４０】
４００６は、メモリコントローラであり、各種のアプリケーション、各種データ等を記憶する内部メモリ４００５へのアクセスを制御する。
【００４１】
４００７は、ＲＯＭであり、読み出し専用の半導体メモリである。ＲＯＭ４００７は、電源を切っても内容が消えないことから、ブートプログラムが格納される。
【００４２】
４００８は、機器Ｉ／Ｆコントローラであり、ＮＩＣ７００とプリンタ１０００とを接続・通信するものである。
尚、ＮＩＣ７００に適用可能なネットワークインタフェース装置はＣＰＵ４００１やＲＡＭ４００２等を用いて演算処理するため、情報処理装置（コンピュータ）としても動作する。
【００４３】
次に、本実施形態に係るセキュアプリントシステムの機能構成について説明する。図５は、本実施形態に係るセキュアプリントシステムの機能構成を示すブロック図である。
【００４４】
本実施形態に係るセキュアプリントシステムは、認証サーバ２００、クライアント端末１００及びプリンタ１０００に接続されたＮＩＣ７００が双方向通信可能なＬＡＮ３００を介して接続された構成となっている。また、ＮＩＣ７００には、ＵＳＢ通信可能なＵＳＢケーブル１６０を介して、マスストレージ５００、ＵＳＢハブ６００及びカードリーダ４００が接続された構成となっている。
【００４５】
それぞれの機能間の動作の流れに関しては後述するため、ここでは各装置内に備えられている機能構成について説明する。
【００４６】
先ず、クライアント端末１００の機能構成について説明する。クライアント端末１００は、印刷データ生成部１１０（プリンタドライバ）を備える。印刷データ生成部１１０は、アプリケーションプログラム（例えば、文書作成アプリケーションプログラム）から受け取ったデータに基づいてジョブデータを生成し、該ジョブデータをプリンタ１０００へと送信する。
【００４７】
次に、認証サーバ２００の機能構成について説明する。認証サーバ２００は、認証部２１０を備える。認証部２１０は、プリンタ１０００上の認証通信部１０２０から認証要求を受け、認証サーバ２００上で管理される認証テーブルにアクセスする。そして、認証部２１０は、認証要求されたＩＣカード番号に紐付いたユーザ名を検索し、認証要求を発信したプリンタ１０００上の認証通信部１０２０へ返信する。図１０は、認証テーブルの構成を模式的に示す図である。図１０に示すように、認証テーブルでは、ＩＣカード番号とユーザ名とが対応付けて登録される。
【００４８】
次に、プリンタ１０００の機能構成について説明する。プリンタ１０００は、本実施形態の特徴であるアプリケーションプログラムにより構成される機能構成、ＮＩＣ ＯＳにより構成される機能構成、及び、印刷部１１２０を備える。なお、アプリケーションプログラム及びＮＩＣ ＯＳは、ＮＩＣ７００内に搭載されるプログラムである。
【００４９】
上記アプリケーションプログラムにより提供される機能構成としては、印刷データ監視部１０１０、認証通信部１０２０、本体通信部１０３０、ジョブ管理部１０４０、暗号化部１０５０、復号化部１０６０、接続検知部１０７０、書込部１０８０及び鍵情報生成部１０９０がある。また、ＮＩＣ ＯＳにより提供される機能構成としては、ＵＳＢ制御部１１１０がある。
【００５０】
印刷データ監視部１０１０は、ＮＩＣ７００上において通信Ｉ／Ｆコントローラ４００３を監視し、クライアント端末１００からジョブデータを受信した場合、必要に応じてジョブデータを取得する。印刷データ監視部１０１０がマスストレージ５００を検出できない場合には、印刷データ監視部１０１０がジョブデータを取得することなく、そのままジョブデータの出力処理を行なうことも可能である。
【００５１】
認証通信部１０２０は、カードリーダ４００にかざされたＩＣカードのＩＣカード番号を受信し、認証サーバ２００へと認証要求を送信し、認証結果を受信する機能を有する。
【００５２】
本体通信部１０３０は、アプリケーションプログラムからＮＩＣ ＯＳを介して印刷部１１２０にジョブデータを送信して出力を行ったり、プリンタ１０００の操作部３００２のＵＩの制御を行う機能を有する。また、本体通信部１０３０は、ＮＩＣ ＯＳのＵＳＢ制御部１１１０を介してＮＩＣ７００のＵＳＢ Ｉ／Ｆコントローラ４００８に対し、マスストレージ５００、ＵＳＢハブ６００及びカードリーダ４００等のＵＳＢデバイスへの命令の送受信を行う機能を有する。
【００５３】
ジョブ管理部１０４０は、マスストレージ５００から取得した、又はクライアント端末１００から送信されたジョブデータを解析し、ユーザ名、ジョブ名等の書誌情報を抜き出す機能を有する。
【００５４】
接続検知部１０７０は、ＮＩＣ ＯＳのＵＳＢ制御部１１１０から接続検知情報（ＵＳＢイベント）を受け取って、マスストレージ５００がＵＳＢハブ６００を介して接続されたことや、マスストレージ５００との接続が切断されたことを検知する。
【００５５】
暗号化部１０５０は、鍵情報生成部１０９０で生成された鍵情報を用いて、マスストレージ５００から取得した、又はクライアント端末１０００から送信されたジョブデータを暗号化する。
【００５６】
復号化部１０６０は、暗号化部１０５０で暗号化された鍵情報を用いて、マスストレージ５００に記憶されているジョブデータを復号化する。
【００５７】
書込部１０８０は、暗号化部１０５０で暗号化されたジョブデータをマスストレージ５００に書き込む。
【００５８】
鍵情報生成部１０９０は、暗号化部１０５０や復号化部１０６０で用いられる鍵情報（共通鍵）を生成する。
【００５９】
ＵＳＢ制御部１１１０は、ＮＩＣ７００上のＵＳＢ Ｉ／Ｆコントローラ４００４を経由して接続されたマスストレージ５００やカードリーダ４００等のＵＳＢデバイスとの通信を行い、ＵＳＢデバイスの制御を行う機能を有する。本実施形態では、ＵＳＢ制御部１１１０は、ＵＳＢハブ６００を経由してカードリーダ４００及びマスストレージ５００の制御を行う。また、ＵＳＢ制御部１１１０は、マスストレージ５００が接続されたこと、マスストレージ５００との接続が切断されたことを示すメッセージを送信する。
【００６０】
印刷部１１２０は、クライアント端末１００上の印刷データ生成部１１０にて作成されたジョブデータを解析し、出力を行う機能を有する。
【００６１】
次に、カードリーダ４００の機能構成について説明する。カードリーダ４００は、カード読み取り部４１０を備える。カード読み取り部４１０は、読み取り可能なＩＣカードがかざされた場合、認証に必要なＩＣカード番号（例えば、カード製造番号等）を取得する機能を有する。
【００６２】
次に、マスストレージ５００の機能構成について説明する。マスストレージ５００は、ファイルシステム５１０を備える。ファイルシステム５１０は、クライアント端末１００にて生成され、暗号化されたジョブデータを格納する領域である。
【００６３】
以下、図６〜図９Ｂを参照しながら、本実施形態に係るセキュアプリントシステムの動作の流れについて説明する。
【００６４】
図６は、プリンタ１０００のアプリケーション起動時の処理を示すフローチャートである。先ず、ＮＩＣ７００上の内部メモリ４００５に格納されたアプリケーションプログラムがＲＡＭ４００２上にロードされ、アプリケーションプログラムが実行される（ステップＳ１００）。
【００６５】
続いて、本体通信部１０３０はＵＳＢ制御部１１１０の監視を始める。これにより、ＵＳＢイベントの検知（接続及び切断の検知）が可能となる（ステップＳ１０１）。
【００６６】
図７Ａ〜図７Ｄは、ＵＳＢイベント検知時の処理を示すフローチャートである。先ず、ＵＳＢ制御部１１１０は、ＮＩＣ７００上のＵＳＢ Ｉ／Ｆコントローラ４００４のＵＳＢ接続又は切断を検知する（ステップＳ２００）。ステップＳ２００は、本発明の接続検知手段の一処理例である。
【００６７】
ＵＳＢ制御部１１１０は、ステップＳ２００で検知したＵＳＢイベントを接続検知部１０７０に通知する（ステップＳ２０１）。
【００６８】
続いて、接続検知部１０７０は、ステップＳ２０１にてＵＳＢ制御部１１１０より通知されたＵＳＢイベントを、本体通信部１０３０を介して受信する（ステップＳ２０２）。接続検知部１０７０は、受信したＵＳＢイベントからマスストレージ５００及びカードリーダ４００の接続を検知する。
【００６９】
なお、プリンタ１０００の電源がオフからオンとなった場合、接続検知部１０７０はＮＩＣ ＯＳに問合せを行い、マスストレージ５００が接続されているか否かの結果をＮＩＣ ＯＳから取得し、マスストレージ５００の接続を判断する。この場合、ステップＳ２００及びＳ２０１の処理は行われない。電源がオンとなり、且つマスストレージ５００が接続されていると判定された場合には、ステップＳ２０４でＹＥＳに処理が移る。これにより、電源がオフからオンで共通鍵が変更になる。
【００７０】
続いて、接続検知部１０７０は、ステップＳ２０２にて受信したＵＳＢイベントの種類を判断する（ステップＳ２０３）。ＵＳＢイベントにてカードリーダ４００又はマスストレージ５００が接続されたことが示されている場合には、処理はステップＳ２０４へと進む。一方、カードリーダ４００又はマスストレージ５００との接続が切断されたことが示されている場合には、処理はＵＳＢ切断処理であるステップＳ２５０に進む。
【００７１】
ＵＳＢイベントによりカードリーダ４００又はマスストレージ５００が接続されたことが示されている場合、接続検知部１０７０は、ＵＳＢイベントにてマスストレージ５００の接続が示されているか否かを判定する（ステップＳ２０４）。ＵＳＢイベントにてマスストレージ５００の接続が示されている場合、処理はステップＳ２０９に進み、ＵＳＢイベントにてマスストレージ５００以外の機器の接続が示されている場合には、処理はステップＳ２０５に進む。
【００７２】
ＵＳＢイベントにてマスストレージ５００以外の機器の接続が示されている場合、接続検知部１０７０は、ＵＳＢイベントによりカードリーダ４００の接続が示されているか否かを判定する（ステップＳ２０５）。ＵＳＢイベントによりカードリーダ４００の接続が示されている場合、処理はステップＳ２０５−１に進み、ＵＳＢイベントによりカードリーダ４００の接続が示されていない場合、処理は終了する。
【００７３】
ＵＳＢイベントによりカードリーダ４００の接続が示されている場合、本体通信部１０３０は、カードリーダ４００のポーリング開始命令を発効する（ステップＳ２０５−１）。
【００７４】
続いて、ＵＳＢ制御部１１１０は、本体通信部１０３０からのカードリーダ４００のポーリング開始命令を受信する（ステップＳ２０６）。
【００７５】
続いて、ＵＳＢ制御部１１１０は、接続されたカードリーダ４００にポーリング開始コマンドを送信する（ステップＳ２０７）。これにより、カードリーダ４００にＩＣカードがかざされるとＩＣカードからＩＣカード番号を取得できる。
【００７６】
一方、ステップＳ２０４にてＵＳＢイベントにてマスストレージ５００の接続が示されている場合、ジョブ管理部１０４０は、現在設定されている動作モードを判定する（ステップＳ２０９）。動作モードの設定内容は設定ファイルとして記憶部３００４であるＨＤＤに保存されるため、電源のオフ／オンを行なっても設定は保存される。本処理は、本発明の設定手段の一処理例である。
【００７７】
上記設定はアプリケーションプログラムが持つＷｅｂページより変更が可能であり、管理者はクライアント端末１００のＷｅｂブラウザ等を介して動作モードの設定を変更するものとする。動作モードが「保存」であれば処理はステップＳ２１０に進み、動作モードが「削除」であれば処理はステップＳ２１１へ進む。
【００７８】
動作モードが「保存」である場合、鍵情報生成部１０９０は、ＲＡＭ４００２上に共通鍵が存在するかを確認する（ステップＳ２１０）。共通鍵が存在する場合、処理はステップＳ２１６に進む。一方、共通鍵が存在しない場合（例えば、電源オフで共通鍵がＲＡＭ４００２からクリアされる場合）、即ちプリンタ１０００の起動時には、処理はステップＳ２１１に進む。
【００７９】
共通鍵が存在しない場合、本体通信部１０３０は、マスストレージ５００内の全データ削除要求を発効する（ステップＳ２１１）。
【００８０】
続いて、鍵情報生成部１０９０は、共通鍵を生成し、ＲＡＭ４００２上で保持する（ステップＳ２１２）。本実施形態においては、共通鍵はマスストレージ５００が接続された時間（タイムスタンプ）を用いて生成するが、共通鍵の生成方法はこれに限定されず、乱数を用いて共通鍵を生成するようにしても良い。
【００８１】
続いて、本体通信部１０３０は、ＲＡＭ４００２上にて保持されるマスストレージ接続フラグをＴＲＵＥにする（ステップＳ２１３）。このマスストレージ接続フラグはＲＡＭ４００２上で管理されるため、電源オフでクリアされる。これにより、例えば、業務を終了する場合に電源オフすることで共通鍵が変更されることになり、業務終了後にマスストレージを不正利用されたとしても電源オン時に新たな共通鍵が生成されるためセキュリティを確保することが可能となる。次回電源をオンにした場合に新しい共通鍵が生成され、古い共通鍵から新しい共通鍵に変更される。このように本実施形態では適切なタイミングで共通鍵の変更がなされる。
【００８２】
ＵＳＢ制御部１１１０は、マスストレージ５００内の全データ削除要求を本体通信部１０３０から受信する（ステップＳ２１４）。続いて、ＵＳＢ制御部１１１０は、マスストレージ５００に対して全データ削除処理を行う（ステップＳ２１５）。ステップＳ２１５は、本発明の第３の削除手段の一処理例である。
【００８３】
ステップＳ２１０にてＲＡＭ４００２上に共通鍵が存在すると判定された場合、鍵情報生成部１０９０は、ＲＡＭ４００２上で保持されている共通鍵を旧鍵として取得する（ステップＳ２１６）。
【００８４】
続いて、鍵情報生成部１０９０は、新たに共通鍵を生成し、ＲＡＭ４００２上で保持する（ステップＳ２１７）。このとき、既にＲＡＭ４００２上で保持していた共通鍵は削除（上書き）される。本実施形態では、共通鍵はマスストレージ５００が接続された時間（タイムスタンプ）を用いて生成される。但し、共通鍵の生成方法はこれに限るものではなく、乱数を用いて生成するようにしても良い。なお、ステップＳ２１７は、本発明の鍵情報生成手段の一処理例である。また、共通鍵は、本発明の鍵情報の適用例となる構成である。
【００８５】
続いて、ジョブ管理部１０４０は、ＲＡＭ４００２上にて保持されているジョブ情報リストを取得する（ステップＳ２１８）。なお、ジョブ情報リストとは、出力対象のジョブデータが列挙されたリストであり、本発明の一覧記憶手段の一例である。そのリストの生成処理の詳細についてはステップＳ３０９にて後述する。
【００８６】
続いて、ジョブ管理部１０４０は、ステップＳ２１８にて取得したジョブ情報リスト内に、未確認のジョブ情報が存在するかを検索する（ステップＳ２１９）。未確認のジョブ情報が存在する場合には、処理はステップＳ２２０に進み、未確認のジョブ情報が存在しない場合（全てのジョブ情報を確認した場合）には、処理はステップＳ２３６に進む。
【００８７】
続いて、本体通信部１０３０は、ジョブ情報リストに存在する未確認のジョブ情報のファイル名を取得し、該当するジョブデータの取得要求を送信する（ステップＳ２２０）。このジョブデータの取得要求には、ジョブデータを特定するための識別情報（ファイル名）が送信される。これにより、ジョブデータの取得が可能となる。
【００８８】
続いて、ＵＳＢ制御部１１１０は、ジョブデータの取得要求を受信する（ステップＳ２２１）。
【００８９】
続いて、ＵＳＢ制御部１１１０は、ジョブデータの取得要求に含まれるファイル名からマスストレージ５００のジョブデータを特定し、マスストレージ５００より当該ジョブデータを取得する（ステップＳ２２２）。
【００９０】
続いて、ＵＳＢ制御部１１１０は、ステップＳ２２２で取得したジョブデータをマスストレージ５００から削除する。ここでも、ジョブデータを特定するための識別情報（ファイル名）を用いて削除処理が行われる。
【００９１】
続いて、ＵＳＢ制御部１１１０は、ステップＳ２２２で取得したジョブデータを送信する（ステップＳ２２４）。
【００９２】
続いて、本体通信部１０３０は、ジョブデータを取得する（ステップＳ２２５）。ステップＳ２２５は、本発明の第１のデータ取得手段の一処理例である。
【００９３】
続いて、ジョブ管理部１０４０は、ステップＳ２２５にてジョブデータが取得されたかを確認する（ステップＳ２２６）。ジョブデータを取得できなかった場合、処理はステップＳ２３５に進み、ジョブデータを取得できた場合、処理はステップＳ２２７に進む。なお、ジョブデータを取得できなかった場合とは、ジョブ情報リストには当該ジョブデータのファイル名が存在したが、当該ジョブデータがマスストレージ５００内に存在しない場合である。例えば、別のプリンタに接続されていたマスストレージが当該プリンタ１０００に接続された場合等が挙げられる。
【００９４】
続いて、復号化部１０６０は、ステップＳ２１６で取得された旧鍵を使用して、ステップＳ２２５で取得されたジョブデータを復号化する（ステップＳ２２７）。ステップＳ２２７は、本発明の第２の復号化の一処理例である。
【００９５】
続いて、復号化部１０６０は、ステップＳ２２７での復号化処理の結果を判断する（ステップＳ２２８）。復号化に失敗した場合、処理はステップＳ２３５に進み、復号化に成功した場合、処理はステップＳ２２９に進む。なお、復号化に失敗する場合としては、例えば、別のプリンタに接続されていたマスストレージが当該プリンタ１０００に接続され、且つ偶然にも同じファイル名が存在した場合が挙げられる。このような場合、共通鍵が異なるため、復号化に失敗することになる。
【００９６】
続いて、ジョブ管理部１０４０は、ステップＳ２３７で復号化されたジョブデータの解析を行う（ステップＳ２２９）。ここでは、ジョブデータ内部のヘッダ情報が解析され、印刷を行ったユーザ名及びジョブ名（ドキュメント名）が取得される。
【００９７】
続いて、ジョブ管理部１０４０は、ステップＳ２２９で解析したユーザ名及びジョブ名が、ジョブ情報リストに登録されているものと相違ないか照合する（ステップＳ２３０）。ステップＳ２２９で解析されたユーザ名及びジョブ名とジョブ情報リストに登録されているユーザ名及びジョブ名とが同じであれば、処理はステップＳ２３１に進み、異なれば処理はステップＳ２３５に進む。
【００９８】
ステップＳ２２９で解析されたユーザ名及びジョブ名とジョブ情報リストに登録されているユーザ名及びジョブ名とが同じである場合、暗号化部１０５０は、ステップＳ２１７で生成された共通鍵を使用してステップＳ２２７で復号化されたジョブデータを暗号化する（ステップＳ２３１）。なお、ステップＳ２３１は、本発明の暗号化手段の一処理例である。
【００９９】
続いて、書込部１０８０は、本体通信部１０３０を介して、ステップＳ２３１で作成されたジョブデータについてマスストレージへの格納要求を送信する（ステップＳ２３２）。このとき、マスストレージ５００におけるジョブデータの格納先は、暫定的な一時フォルダである。詳細は後述するが、ジョブ情報リスト内の全ジョブ情報に該当するジョブデータに対して共通鍵の変更処理（ステップＳ２１９〜ステップＳ２３５）が完了した後、一時フォルダ以外の領域に格納されるファイルを削除し、一時フォルダ内のデータを監視対象フォルダに移動する（ステップＳ２３６〜Ｓ２４３）。
【０１００】
続いて、ＵＳＢ制御部１１１０は、ジョブデータの格納要求を受信する（ステップＳ２３３）。
【０１０１】
続いて、ＵＳＢ制御部１１１０は、受信した格納要求により指定されたマスストレージ５００の一時フォルダにジョブデータを格納する（ステップＳ２３４）。ステップＳ２４３は、本発明の書込手段の一処理例である。
【０１０２】
ステップＳ２３５では、ジョブ管理部１０４０は、ジョブ情報リストから当該ファイル名に対応するジョブ情報を削除する。
【０１０３】
ステップＳ２１９にてジョブ情報リストに未確認のジョブデータが存在しない場合、鍵情報生成部１０９０は、ＲＡＭ４００２上で保持されている旧鍵を削除する（ステップＳ２３６）。ステップＳ２３６は、本発明の第１の削除手段の一処理例である。
【０１０４】
続いて、本体通信部１０３０は、マスストレージ５００内の一時フォルダ以外の領域に格納されるファイルの削除要求を送信する（ステップＳ２３７）。
【０１０５】
続いて、ＵＳＢ制御部１１１０は、マスストレージ５００内の一時フォルダ以外の領域に格納されるファイルの削除要求を受信する（ステップＳ２３８）。
【０１０６】
続いて、ＵＳＢ制御部１１１０は、マスストレージ５００内の一時フォルダ以外の領域に格納されるファイルを削除する（ステップＳ２３９）。
【０１０７】
続いて、本体通信部１０３０は、マスストレージ５００内の一時フォルダ内のファイル（ジョブデータ）の移動要求を送信する（ステップＳ２４０）。
【０１０８】
続いて、ジョブ管理部１０４０は、マスストレージ５００内の一時フォルダ内のファイル（ジョブデータ）の移動要求を受信する（ステップＳ２４１）。
【０１０９】
続いて、ジョブ管理部１０４０は、マスストレージ５００内の一時フォルダ内のファイル（ジョブデータ）を監視対象フォルダに移動する（ステップＳ２４２）。
【０１１０】
続いて、本体通信部１０３０は、ＲＡＭ４００２上にて保持されるマスストレージ接続フラグをＴＲＵＥにする（ステップＳ２４３）。なお、マスストレージ接続フラグがＴＲＵＥである場合にはマスストレージが接続されていることを意味し、後述するステップＳ３０３の判断に利用する。
【０１１１】
図７Ｄは、図７ＡのステップＳ２５０の詳細を示すフローチャートである。ステップＳ２０２にて受信したＵＳＢイベントによりカードリーダ４００又はマスストレージ５００との接続が切断されたことが示されている場合、接続検知部１０７０は、接続が切断された機器がマスストレージ５００であるか否かを判定する（ステップＳ２５０）。切断された機器がマスストレージ５００である場合、処理はステップＳ２５１に進み、切断された機器がマスストレージ５００以外の機器である場合、処理は終了する。
【０１１２】
接続が切断された機器がマスストレージ５００である場合、本体通信部１０３０は、ＲＡＭ４００２上にて保持されるマスストレージ接続フラグをＦＡＬＳＥにする（ステップＳ２５１）。なお、マスストレージ接続フラグがＦＡＬＳＥであるのは、マスストレージ５００が接続されていないことを意味し、後述するステップＳ３０３の判断に利用される。
【０１１３】
また、ステップＳ２０３にて判定されたＵＳＢイベントの種類が"マスストレージの切断"だった場合、ＲＡＭ４００２からジョブ情報リストをクリアすると共に共通鍵を削除する。これにより、マスストレージ５００が抜かれた場合、その時点で共通鍵の削除とジョブ情報リストのクリアを行うため、マスストレージ５００の抜き差しにおける情報漏洩に対する強度を高めることが可能となる。この場合、次にマスストレージ５００が差された場合、ステップＳ２１１に処理が移り、自動的にマスストレージ５００内のデータが削除される。本処理は、本発明の第２の削除手段の一処理例である。
尚、ステップＳ２０３にて判定されたＵＳＢイベントの種類が"マスストレージの切断"だった場合、ＲＡＭ４００２からジョブ情報リストをクリアすると共に共通鍵を削除するようにするかは、管理者はクライアント端末１００のＷｅｂブラウザ等を介して設定することが可能である。
【０１１４】
なお、他の実施形態として、ジョブ情報リスト及び共通鍵を内部メモリ４００５に格納してもよい。これによって、例えば、プリンタ１０００の不具合で電源のオフとオンを行った場合にもマスストレージ５００内のジョブデータを継続して出力することが可能となる。この場合にも、ステップＳ２０３にて判定されたＵＳＢイベントの種類が"マスストレージの切断"だった場合、内部メモリ４００５からジョブ情報リストをクリアしたり、共通鍵を削除する。
【０１１５】
図８は、ジョブデータの印刷時の処理を示すフローチャートである。先ず、クライアント端末１００上の印刷データ生成部（プリンタドライバ）１１０は、クライアント端末１００のアプリケーションプログラムにて作成されたデータから、プリンタ１０００が解析可能なデータ（ジョブデータ）を作成する（ステップＳ３００）。
【０１１６】
印刷データ生成部１１０は、ステップＳ３００にて作成されたジョブデータをプリンタ１０００に送信する（ステップＳ３０１）。
【０１１７】
プリンタ１０００の通信Ｉ／Ｆコントローラ４００３は、クライアント端末１００からジョブデータを受信する（ステップＳ３０２）。なお、図８のステップＳ３０２は、アプリケーションが受信するように表わされているが、これは通信Ｉ／Ｆコントローラ４００３の受信を意味するステップである。
【０１１８】
印刷データ監視部１０１０は、ストレージ接続フラグを判断する（ステップＳ３０３）。ストレージ接続フラグがＴＲＵＥである場合、処理はステップＳ３０７へ、ＦＡＬＳＥである場合、処理はステップＳ３０５へ進む。
【０１１９】
なお、アプリケーションプログラムは、ストレージ接続フラグがＴＲＵＥである場合には、通信Ｉ／Ｆコントローラ４００３で受信したジョブデータを取得（フック）する。これは、ＮＩＣ ＯＳがこのジョブデータを取得する前に、印刷データ監視部１０１０が当該ジョブデータを取得（フック）する。
【０１２０】
ストレージ接続フラグがＦＡＬＳＥである場合、印刷部１１２０はジョブデータを取得する（ステップＳ３０５）。
【０１２１】
続いて、印刷部１１２０はジョブデータを出力する（ステップＳ３０６）。
【０１２２】
ステップＳ３０３にてストレージ接続フラグがＴＲＵＥと判定された場合、印刷データ監視部１０１０は、ジョブデータを取得（フック）する（ステップＳ３０７）。ジョブデータはプリンタ１０００上の印刷部１１２０には送られない。
【０１２３】
続いて、ジョブ管理部１０４０は、ステップＳ３０７で取得されたジョブデータを解析する（ステップＳ３０８）。ここでは、ジョブデータからユーザ名（印刷指示者）及びジョブ名が取得される。また、ジョブ管理部１０４０は、ジョブデータの受信を開始した時点でのタイムスタンプも取得する。
【０１２４】
続いて、ジョブ管理部１０４０は、ステップＳ３０８で取得されたユーザ名、ジョブ名及びタイムスタンプ、そしてファイル名を、ジョブ情報リストに追記する（ステップＳ３０９）。ジョブ情報リストはＲＡＭ４００２上で管理されるため、電源オフで内容はクリアされる。図１１は、ジョブ情報リストの構成を模式的に示す図である。図１１に示すように、ジョブ情報リストには、ジョブ情報毎に、ユーザ名、ファイル名、ジョブ名及びタイムスタンプが登録される。
【０１２５】
続いて、暗号化部１０５０は、ステップＳ２１１又はＳ２１７で生成された共通鍵にて、ステップＳ３０７で取得されたジョブデータを暗号化する（ステップＳ３１０）。
【０１２６】
続いて、書込部１０８０は、本体通信部１０３０を介して、ステップＳ３１０にて暗号化されたジョブデータの保存命令を送信する（ステップＳ３１１）。
【０１２７】
続いて、ＵＳＢ制御部１１１０は、本体通信部１０３０を介してジョブデータ保存命令を受信する（ステップＳ３１２）。
【０１２８】
続いて、ＵＳＢ制御部１１１０は、マスストレージ５００内にジョブデータを保存する（ステップＳ３１３）。
【０１２９】
図９Ａ〜図９Ｂは、ジョブデータのジョブ出力時における処理の流れを示すフローチャートである。先ず、カードリーダ４００上のカード読み取り部４１０は、カードリーダ４００にＩＣカードがかざされたことを検知し、ＩＣカード番号を取得する（ステップＳ４００）。
【０１３０】
続いて、プリンタ１０００上の接続検知部１０７０は、カードリーダ４００にＩＣカードがかざされたことを検知する（ステップＳ４０１）。
【０１３１】
続いて、接続検知部１０７０は、カードリーダ４００にかざされたＩＣカードのＩＣカード番号を取得する（ステップＳ４０２）。なお、ＩＣカードは、本発明における記録媒体の適用例となる構成であり、ＩＣカード番号は本発明における識別情報の適用例となる構成である。また、ステップＳ４０２は、本発明の識別情報取得手段の一処理例である。
【０１３２】
続いて、認証通信部１０２０は、ステップＳ４０２で取得されたＩＣカード番号を用いて、認証サーバ２００に対して認証要求コマンドを送信する（ステップＳ４０３）。
【０１３３】
認証サーバ２００上の認証部２１０は、認証要求コマンドを受信する（ステップＳ４０４）。
【０１３４】
認証部２１０は、ステップＳ４０４で受信された認証要求コマンド内のＩＣカード番号を取得し、認証サーバ２００上で管理されている認証テーブル（図１０）に当該ＩＣカード番号が存在するか確認する（ステップＳ４０５）。ＩＣカード番号が存在する場合、認証部２１０はそのＩＣカード番号に該当するユーザ名を取得する。
【０１３５】
続いて、認証部２１０は、ステップＳ４０５で行った認証処理の結果をプリンタ１０００に返す（ステップＳ４０６）。認証ＯＫの場合は認証ＯＫフラグ及びユーザ名を、認証ＮＧの場合は認証ＮＧフラグ及びＮＧの理由が認証結果としてプリンタ１０００に返信される。
【０１３６】
続いて、プリンタ１０００の認証通信部１０２０は、認証サーバ２００より返信された認証結果を受信する（ステップＳ４０７）。
【０１３７】
続いて、認証通信部１０２０は、ステップＳ４０８にて受信された認証結果を解析する（ステップＳ４０８）。
【０１３８】
続いて、認証通信部１０２０は、認証結果がＯＫであるか、ＮＧであるかを判断する（ステップＳ４０９）。認証結果がＯＫである場合、処理はステップＳ４１０に進む。認証結果がＮＧである場合、処理は終了する。
【０１３９】
認証結果がＯＫである場合、認証通信部１０２０は、ステップＳ４０７で取得された認証結果からユーザ名を取得する（ステップＳ４１０）。
【０１４０】
続いて、ジョブ管理部１０４０は、ステップＳ４１０で取得されたユーザ名をキーにして、ジョブ情報リスト内に当該ユーザのジョブ情報が存在するかを検索する（ステップＳ４１１）。ステップＳ４１１は、本発明の検索手段の一処理例である。
【０１４１】
続いて、ジョブ管理部１０４０は、ジョブ情報リストに当該ユーザのジョブ情報が存在するかを判断する（ステップＳ４１２）。当該ユーザのジョブ情報が存在する場合、処理はステップＳ４１３へ進み、当該ユーザのジョブ情報が存在しない場合、処理が終了する。ここで、該当するジョブ情報の一覧を別リストとして格納し、タイムスタンプ順でソートをかけて出力処理を行なっても良い。
【０１４２】
当該ユーザのジョブ情報が存在する場合、本体通信部１０３０は、当該ジョブ情報に該当するジョブデータの取得要求を送信する（ステップＳ４１３）。ここで取得要求を行うジョブデータは一つとする。なお、ジョブデータの取得要求を行う場合には、取得するジョブデータのファイル名も送信される。
【０１４３】
続いて、プリンタ１０００上のＵＳＢ制御部１１１０は、ファイル名とともにジョブデータの取得要求を受信する（ステップＳ４１４）。
【０１４４】
続いて、ＵＳＢ制御部１１１０は、ファイル名を用いてマスストレージ５００より該当するジョブデータを取得する（ステップＳ４１５）。
【０１４５】
続いて、ＵＳＢ制御部１１１０は、ステップＳ４１５で取得されたジョブデータを本体通信部１０３０に送信する（ステップＳ４１６）。
【０１４６】
続いて、本体通信部１０３０は、ＵＳＢ制御部１１１０を介して、マスストレージ５００から取得されたジョブデータを受信する（ステップＳ４１７）。ステップＳ４１７は、本発明の第２のデータ取得手段の一処理例である。
【０１４７】
続いて、復号化部１０６０は、ステップＳ４１７で取得されたジョブデータを、ステップＳ２１２又はステップＳ２１７で生成された共通鍵で復号化する（ステップＳ４１８）。ステップＳ４１８は、本発明の第１の復号化手段の一処理例である。
【０１４８】
続いて、本体通信部１０３０は、ステップＳ４１８で復号化されたジョブデータを印刷部１１２０に送信する（ステップＳ４１９）。
【０１４９】
続いて、印刷部１１２０はジョブデータを受信する（ステップＳ４２０）。続いて、印刷部１１２０は、受信したジョブデータを出力する（ステップＳ４２１）。ステップＳ４２１は、本発明の出力制御手段の一処理例である。
【０１５０】
本体通信部１０３０は、マスストレージ５００の当該ジョブデータの削除要求を送信する（ステップＳ４２２）。ジョブデータ削除要求を行う際には、ジョブデータのファイル名も送るものとする。
【０１５１】
続いて、ＵＳＢ制御部１１１０は、マスストレージ５００の当該ジョブデータ削除要求とともにファイル名を受信する（ステップＳ４２３）。
【０１５２】
続いて、ＵＳＢ制御部１１１０は、ファイル名を用いてマスストレージ５００内のジョブデータを特定し、当該ジョブデータを削除する（ステップＳ４２４）。
【０１５３】
ジョブ管理部１０４０は、マスストレージ５００から削除したジョブデータのジョブ情報を、ジョブ情報リストから削除する（ステップＳ４２５）。
【０１５４】
本実施形態においては、マスストレージ５００の接続が検知された場合、マスストレージ５００に記録されるジョブデータを暗号化及び復号化するための共通鍵を生成するようにしている。従って、全てのプリンタにおいてマスストレージ５００内のデータを暗号化及び復号化させるための鍵情報が異なることになり、マスストレージ５００が盗まれたとしても他のプリンタにてジョブデータを復号化させることができない。このように、本実施形態によれば、適切なタイミングで共通鍵を生成することによりセキュリティを向上させることが可能となる。
【０１５５】
また、万が一共通鍵が流出してしまってとしても、プリンタ１０００の電源オフで共通鍵は削除されてしまうため、セキュリティを確保することが可能となる。
【０１５６】
さらに、セキュリティは向上するにも関わらず、暗号化方式は従来通りの共通鍵暗号化方式を用いているため、暗号化処理及び復号化処理に要するスピードが低下することはない。
【０１５７】
本実施形態では、このようにジョブデータが盗まれる可能性の高いタイミングで適切に共通鍵を変更することによってセキュリティを維持することが可能となる。
【０１５８】
また、本実施形態では、ＲＡＭ４００２に共通鍵を保持するようにしているため、プリンタ１０００の電源オフによりＲＡＭ４００２から共通鍵が削除されるが、他の実施形態として、共通鍵をプリンタ１０００のＨＤＤ等に格納してもよい。この場合には、電源オフにより当該ＨＤＤから共通鍵を削除する命令は発行して、共通鍵を削除する。
【０１５９】
さらに、本実施形態では、ＩＣカードのＩＣカード番号に対応するユーザ名を認証サーバ２００から取得するようにしているが、ＩＣカードからユーザ名を直接取得するようにし、認証サーバ２００を不要とする構成にしてもよい。
【０１６０】
上述した本発明の実施形態を構成する各手段及び各ステップは、コンピュータのＲＡＭやＲＯＭ等に記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【０１６１】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、一つの機器からなる装置に適用してもよい。
【０１６２】
なお、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムを、システム又は装置に直接、又は遠隔から供給する。そして、そのシステム又は装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１６３】
従って、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１６４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。更に、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ等が、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１６５】
更に、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【符号の説明】
【０１６６】
１００  クライアント端末
１１０  印刷データ生成部
１６０  ＵＳＢケーブル
２００  認証サーバ
２１０  認証部
３００  ＬＡＮ
４００  カードリーダ
４１０  カード読み取り部
５００  マスストレージ
５１０  ファイルシステム
６００  ＵＳＢハブ
７００  ＮＩＣ
１０００  プリンタ
１０１０  印刷データ監視部
１０２０  認証通信部
１０３０  本体通信部
１０４０  ジョブ管理部
１０５０  暗号化部
１０６０  復号化部
１０７０  接続検知部
１０８０  書込部
１０９０  鍵情報生成部
１１１０  ＵＳＢ制御部
１１２０  印刷部
【図１】
0005486056.tif 000002
【図２】
0005486056.tif 000003
【図３】
0005486056.tif 000004
【図４】
0005486056.tif 000005
【図５】
0005486056.tif 000006
【図６】
0005486056.tif 000007
【図７Ａ】
0005486056.tif 000008
【図７Ｂ】
0005486056.tif 000009
【図７Ｃ】
0005486056.tif 000010
【図７Ｄ】
0005486056.tif 000011
【図８】
0005486056.tif 000012
【図９Ａ】
0005486056.tif 000013
【図９Ｂ】
0005486056.tif 000014
【図１０】
0005486056.tif 000015
【図１１】
0005486056.tif 000016