(57)【要約】【課題】可搬型のメモリに蓄積する印刷データを、他の記憶媒体に複製して印刷を行うことを防止する技術を提供する。【解決手段】本出願の複合機（プリンタ）１００は、接続された可搬性メモリ１５０に印刷データを保存する機能を有する。複合機（プリンタ）１００は、印刷データの入力を受け付ける印刷データ受付手段と、可搬性メモリ１５０から、可搬性メモリ１５０が保持しているデバイスＩＤを取得するデバイスＩＤ取得手段と、印刷データに付与する電子署名の作成に使用する鍵を生成する鍵生成手段と、印刷データを可搬性メモリ１５０に保存する場合に、一方向性関数を用いて、デバイスＩＤと、印刷データと、を合成した合成データのＭＡＣ値を算出するＭＡＣ値算出手段と、算出したＭＡＣ値を、鍵を用いて署名して、印刷データとともに、可搬性メモリ１５０に保存する保存手段と、を備える。【選択図】図５
2009160832.tif 000002
【特許請求の範囲】
【請求項１】
接続された可搬性メモリに印刷データを保存する機能を有するプリンタであって、
印刷データの入力を受け付ける印刷データ受付手段と、
前記可搬性メモリから、前記可搬性メモリが保持しているデバイスコードを取得するデバイスコード取得手段と、
前記印刷データに付与する電子署名の作成に使用する鍵を生成する鍵生成手段と、
前記印刷データを前記可搬性メモリに保存する場合に、一方向性関数を用いて、前記デバイスコードと、前記印刷データと、を合成した合成データのメッセージダイジェスト値を算出するダイジェスト算出手段と、
算出した前記メッセージダイジェスト値を、前記鍵を用いて署名して、前記印刷データとともに、前記可搬性メモリに保存する保存手段と、
を備えることを特徴とするプリンタ。
【請求項２】
請求項１に記載のプリンタであって、
前記印刷データの入力を受け付けた場合に、受け付けた時刻に基づいたタイムスタンプを作成するタイムスタンプ作成手段、を備え、
前記ダイジェスト算出手段は、
前記印刷データを前記可搬性メモリに保存する場合に、一方向性関数を用いて、前記デバイスコードと、前記タイムスタンプを付加した前記印刷データと、を合成した合成データのメッセージダイジェスト値を算出する、
ことを特徴とするプリンタ。
【請求項３】
請求項１又は２に記載のプリンタであって、
前記鍵生成手段が生成する鍵は、当該プリンタに固有の鍵である、
ことを特徴とするプリンタ。
【請求項４】
請求項１又は２に記載のプリンタであって、
前記鍵生成手段が生成する鍵は、当該プリンタに固有の鍵、当該プリンタの機種に固有の鍵、または、当該プリンタの製造会社に固有の鍵、のいずれかであり、
前記鍵の種類に応じて前記印刷データの認証範囲を変更する認証範囲変更手段、を備える、
ことを特徴とするプリンタ。
【請求項５】
請求項４に記載のプリンタであって、
前記認証範囲変更手段は、
前記鍵が当該プリンタに固有の鍵である場合には、前記認証範囲を、当該プリンタに限定し、
前記鍵が当該プリンタの機種に固有の鍵である場合には、前記認証範囲を、当該プリンタの機種と同一の機種のプリンタに限定し、
前記鍵が当該プリンタの製造会社に固有の鍵である場合には、前記認証範囲を、当該プリンタの製造会社が製造したプリンタに限定する、
ことを特徴とするプリンタ。
【請求項６】
請求項１又は２に記載のプリンタであって、
前記可搬性メモリが保持しているデバイスコードは、当該可搬性メモリに固有のデバイスコードである、
ことを特徴とするプリンタ。
【請求項７】
請求項１又は２に記載のプリンタであって、
前記可搬性メモリが保持しているデバイスコードは、当該可搬性メモリに固有のデバイスコード、当該可搬性メモリの機種に固有のデバイスコード、または、当該可搬性メモリの製造会社に固有のデバイスコード、のいずれかであり、
前記デバイスコードの種類に応じて前記印刷データの認証範囲を変更する認証範囲変更手段、を備える、
ことを特徴とするプリンタ。
【請求項８】
請求項１乃至７のいずれか１項に記載のプリンタであって、
前記可搬性メモリに保存されている印刷データを印刷する場合に、前記可搬性メモリから、前記可搬性メモリが保持しているデバイスコードと、前記印刷データと、前記鍵を用いて署名された前記メッセージダイジェスト値である受信データと、を取得するデータ取得手段と、
認証用鍵を生成する認証用鍵生成手段と、
前記一方向性関数を用いて、前記デバイスコードと、前記印刷データと、を合成した合成データの認証用メッセージダイジェスト値を算出する認証用ダイジェスト算出手段と、
前記認証用メッセージダイジェスト値を、前記認証用鍵を用いて署名した生成データと、前記データ取得手段が取得した前記受信データと、を比較する比較手段と、
前記比較手段による比較により、前記生成データと前記受信データとが一致する場合には、前記データ取得手段が取得した前記印刷データを印刷し、一致しない場合には、前記印刷データを削除する印刷実行手段と、
を備えることを特徴とするプリンタ。
【請求項９】
接続された可搬性メモリに印刷データを保存する機能を有する複合機であって、
印刷データを生成する印刷データ生成手段と、
前記可搬性メモリから、前記可搬性メモリが保持しているデバイスコードを取得するデバイスコード取得手段と、
前記印刷データに付与する電子署名の作成に使用する鍵を生成する鍵生成手段と、
前記印刷データを前記可搬性メモリに保存する場合に、一方向性関数を用いて、前記デバイスコードと前記印刷データを合成した合成データのメッセージダイジェスト値を算出するダイジェスト算出手段と、
算出した前記メッセージダイジェスト値を、前記鍵を用いて署名して、前記印刷データとともに、前記可搬性メモリに保存する保存手段と、
を備えることを特徴とする複合機。
【請求項１０】
接続された可搬性メモリに印刷データを保存する機能を有するプリンタにおける印刷制御方法であって、
前記プリンタは、制御部を備え、
前記制御部が、
印刷データを生成する印刷データ生成ステップと、
前記可搬性メモリから、前記可搬性メモリが保持しているデバイスコードを取得するデバイスコード取得ステップと、
前記印刷データに付与する電子署名の作成に使用する鍵を生成する鍵生成ステップと、
前記印刷データを前記可搬性メモリに保存する場合に、一方向性関数を用いて、前記デバイスコードと前記印刷データを合成した合成データのメッセージダイジェスト値を算出するダイジェスト算出ステップと、
算出した前記メッセージダイジェスト値を、前記鍵を用いて署名して、前記印刷データとともに、前記可搬性メモリに保存する保存ステップと、
を行うことを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、複合機、および、印刷制御方法に関する。
【背景技術】
【０００２】
近年のプリンタや複合機には、印刷データをメモリに一時的に記憶し、複数部印刷したり、ユーザごとのフォルダに保存したりする機能を有するものもある。このような機能を有するプリンタや複合機において、印刷データを記憶する記憶媒体には、ハードディスクなどが主に使用されている。しかし、近年のフラッシュメモリの大容量化にともない、印刷データを記憶する記憶媒体に、コンパクトフラッシュなどの可搬型のメモリ（メモリカード）も使用されるようになってきている。
【０００３】
しかし、その性質上、可搬型のメモリの持ち出しは容易であり、電子データである印刷データの複製も容易であるため、可搬形のメモリに蓄積した印刷データは不正に利用されやすいといった問題がある。
【０００４】
そこで、上記の問題を改善する画像形成装置が開発されるようになってきている。例えば、特許文献１には、画像形成装置で生成した画像データと、画像形成装置に固有の電子署名（或いは、ユーザに入力された暗証番号に固有の電子署名）と、をともにメモリカードに保存することにより、画像データの改ざんを防止することについて記載されている。
【特許文献１】特開２００２−１００４４号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、最初にメモリカードに保存した画像データ及び電子署名を、他の記憶媒体に複製して印刷を行うことは可能であるため、セキュリティ強度は十分ではない。
【０００６】
本発明は、可搬型のメモリに蓄積する印刷データを、他の記憶媒体に複製して印刷を行うことを防止する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本願発明のプリンタは、接続された可搬性メモリに印刷データを保存する機能を有するプリンタであって、印刷データの入力を受け付ける印刷データ受付手段と、前記可搬性メモリから、前記可搬性メモリが保持しているデバイスコードを取得するデバイスコード取得手段と、前記印刷データに付与する電子署名の作成に使用する鍵を生成する鍵生成手段と、前記印刷データを前記可搬性メモリに保存する場合に、一方向性関数を用いて、前記デバイスコードと、前記印刷データと、を合成した合成データのメッセージダイジェスト値を算出するダイジェスト算出手段と、算出した前記メッセージダイジェスト値を、前記鍵を用いて署名して、前記印刷データとともに、前記可搬性メモリに保存する保存手段と、を備える。
【発明の効果】
【０００８】
本発明のプリンタによれば、可搬型のメモリに蓄積する印刷データを、他の記憶媒体に複製して印刷を行うことを防止することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態の一例を図面を参照して説明する。
【００１０】
図１は、本発明の一実施形態が適用された印刷システム１０のハードウェア構成の概要を説明するためのブロック図である。
【００１１】
図示するように、印刷システム１０は、印刷機能を有する複合機１００と、複合機１００のホストコンピュータである情報処理装置２００と、を備えている。
【００１２】
複合機１００は、図示するように、ＣＰＵ（Central Processing Unit）１０１と、メモリ制御ＡＳＩＣ（Application Specific Integrated Circuit）１０２と、揮発性メモリ１０３と、不揮発性メモリ１０４と、画像処理ＡＳＩＣ１０５と、印刷制御部１０６と、ビデオインタフェース１０７と、印刷エンジン１０８と、スキャナＡＳＩＣ１０９と、スキャナ装置１１０と、Ｉ／Ｏ（Input/Output）制御ＡＳＩＣ１１１と、各種外部インタフェース１１２と、を備えている。また、可搬性メモリ１５０は、複合機１００に接続可能である。
【００１３】
ＣＰＵ１０１は、各種プログラムを実行して、複合機１００全体を制御する。例えば、ＣＰＵ１０１は、印刷処理を行うための命令を各ユニットに送信する。また、ＣＰＵ１０１は、印刷データを可搬性メモリ１５０に蓄積する際に、可搬性メモリ１５０に固有の識別コード（デバイスＩＤ）に基づいたＭＡＣ（Message Authentication Code）値を生成する処理（以下では、「ＭＡＣ処理」という）を行う。そして、生成したＭＡＣ値と、印刷データとを、可搬性メモリ１５０に対応付けて蓄積する。また、ＣＰＵ１０１は、可搬性メモリ１５０に蓄積されている印刷データを印刷する際には、可搬性メモリ１５０に蓄積されているＭＡＣ値を検証し、適正なＭＡＣ値であることが確認できた場合にのみ印刷処理を各ユニットに実行させる。
【００１４】
メモリ制御ＡＳＩＣ１０２は、複合機１００に接続されているメモリを制御する。例えば、メモリ制御ＡＳＩＣ１０２は、データおよびプログラム等を一時的に記憶する揮発性メモリ１０３と、各種プログラムを格納している不揮発性メモリ１０４を制御する。また、メモリ制御ＡＳＩＣ１０２は、所定の装着位置（図示せず）に装着されている可搬性メモリ１５０を、Ｉ／Ｏ制御ＡＳＩＣ１１１を介して制御する。
【００１５】
ここで、揮発性メモリ１０３は、電源を切断すると記憶内容を失う半導体メモリであり、例えば、ＲＡＭ（Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等を含む。
【００１６】
また、不揮発性メモリ１０４は、電源を切断しても記憶内容を保持する半導体メモリであり、例えば、ＲＯＭ（Read Only Memory）等を含む。
【００１７】
また、可搬性メモリ１５０は、複合機１００の装着コネクタ（図示せず）から取り外して持ち運ぶことが可能な小型のメモリであり、フラッシュメモリを採用している各種メモリカードを含む。例えば、可搬性メモリ１５０は、コンパクトフラッシュカード、ＳＤ（Secure Digital）メモリカード、ＵＳＢ（Universal Serial Bus）メモリ、等を含む。可搬性メモリ１５０を使用することにより、印刷時における印刷データの記憶容量を増加させることができる。例えば、可搬性メモリ１５０は、複数部印刷、認証印刷、電子ソート印刷、等を行うときに使用される。また、可搬性メモリ１５０には、可搬性メモリ１５０に固有の識別コード（デバイスＩＤ）が付与されている。例えば、デバイスＩＤには、可搬性メモリ１５０の機種（モデル）を特定する識別コード（機種ＩＤ）や、可搬性メモリ１５０を製造したメーカーを特定する識別コード（メーカーＩＤ）、などが含まれる。
【００１８】
画像処理ＡＳＩＣ１０５は、印刷時において、印刷対象のデータ（例えば、画像データ）を印刷データに変換する処理を行う回路（群）である。例えば、画像処理ＡＳＩＣ１０５は、印刷対象のデータに対して、色変換、圧縮、伸張、２値化、といった処理を施し、印刷データを生成する。画像処理ＡＳＩＣ１０５は、生成した印刷データを、印刷制御部１０６或いはビデオデータインタフェース１０７に供給する。
【００１９】
印刷制御部１０６は、印刷エンジン１０８を制御する。具体的には、印刷制御部１０６は、画像処理ＡＳＩＣ１０５から供給された印刷データに基づくプリントイメージデータを生成し、生成したプリントイメージデータを印刷エンジン１０８に送信して印刷させる。
【００２０】
ビデオデータインタフェース１０７は、印刷エンジン１０８に、ビデオデータを送信して印刷させる。具体的には、ビデオデータインタフェース１０７は、画像処理ＡＳＩＣ１０５から供給された印刷データを１ページ単位でビデオデータに展開し、展開したビデオデータを制御コマンドとともに印刷エンジン１０８に送信して印刷させる。
【００２１】
印刷エンジン１０８は、トナーカートリッジ、感光体ドラム、レーザ光照射機構、紙送り機構、印刷媒体の給排紙処理を行う給排紙機構等からなり、印刷制御部１０６或いはビデオインタフェース１０７からの指示にしたがって印刷を実行する。
【００２２】
スキャナＡＳＩＣ１０９は、スキャナ装置１１０を制御する回路（群）である。スキャナＡＳＩＣ１０９は、スキャナ装置１１０が生成した画像データを、メモリ制御ＡＳＩＣ１０２に供給する。
【００２３】
スキャナ装置１１０は、スキャナＡＳＩＣ１０９からの指示に基づいて、写真やイラスト等の原稿を、光学的にデジタルデータに変換して画像データを生成する。スキャナ装置１１０は、生成した画像データを、スキャナＡＳＩＣ１０９に供給する。なお、コピー機能を有する複合機１００は、スキャナ装置１１０が生成した画像データを、印刷エンジン１０８に印刷させて、原稿をコピーすることができる。
【００２４】
ＩＯ制御ＡＳＩＣ１１１は、各種ＩＯ装置を制御する回路（群）である。例えば、可搬性メモリ１５０、各種外部インタフェース１１２、等とのデータの送受信を制御する。具体的には、ＩＯ制御ＡＳＩＣ１１１は、可搬性メモリ１５０が接続されたときに、接続されたことを示す信号をＣＰＵ１０１に供給する。また、可搬性メモリ１５０が抜かれたときには、抜かれたことを示す信号をＣＰＵ１０１に供給する。また、ＩＯ制御ＡＳＩＣ１１１は、接続されている可搬性メモリ１５０に対して、印刷データ、ＭＡＣ値といった各種データの読み出し処理や書き込み処理を行う。また、ＩＯ制御ＡＳＩＣ１１１は、各種外部インタフェース１１２を介して情報処理装置２００から受信した印刷対象のデータ（画像データ、印刷データを含む）を、揮発性メモリ１０３にＤＭＡ（Direct Memory Access）転送することができる。
【００２５】
各種外部インタフェース１１２は、情報処理装置２００や各種デバイスとデータの送受信を行うためのインタフェースである。各種デバイスには、例えば、入力装置（スイッチ類、ボタン類、パネル、等）、出力装置（ディスプレイ、パネル、等）、ＵＳＢデバイス、パラレル通信を行うデバイス、ネットワーク経由で通信を行うデバイス、が含まれる。
【００２６】
本実施形態が適用された複合機１００は、以上のような構成からなる。ただし、複合機１００の構成はこれに限定されない。例えば、複合機１００は、スキャナＡＳＩＣ１０９、スキャナ装置１１０、などを有さないプリンタであってもよい。また、複合機１００は、コピー機能、ＦＡＸ機能、ネットワークプリント機能、等の各種機能を有してもよい。
【００２７】
情報処理装置２００は、任意のアプリケーションを用いて生成した印刷対象のデータを、所定のケーブル（例えば、ＵＳＢケーブル、ＬＡＮケーブル、ＦＡＸ回線、等）を介して、複合機１００に送信することができる。このような情報処理装置２００は、例えば、一般的なコンピュータや、デジタルカメラ、スキャナ装置等の画像形成装置でよい。また、情報処理装置２００は、複数台の情報処理装置２００から構成されてもよい。
【００２８】
次に、上記印刷システム１０により複合機１００および情報処理装置２００に実現される機能構成について説明する。
【００２９】
図２は、印刷システム１０の機能構成の一例を示すブロック図である。図示するように、情報処理装置２００上には、オペレーティングシステム部２１０と、アプリケーション部２２０と、プリンタドライバ部２３０と、が構築される。
【００３０】
オペレーティングシステム部２１０は、情報処理装置２００のシステム管理と、基本的なユーザ操作環境を提供する、いわゆる、情報処理装置２００の基本ソフトウェアである。
【００３１】
アプリケーション部２２０は、ロゴマーク、罫線パターン等のフォームや、印刷対象のドキュメント（画像データ、等）を、作成、編集する処理を行う。アプリケーション部２２０は、情報処理装置２００が備えるＲＡＭ（図示せず）にロードされたアプリケーションプログラムを、ＣＰＵ（図示せず）が実行することにより情報処理装置２００上に構築される。
【００３２】
プリンタドライバ部２３０は、複合機１００を制御して印刷を実行させるための処理を行う。具体的には、ユーザからの印刷指示を受け付けると、アプリケーション部２２０が生成したドキュメントの描画データを読み込んで、印刷設定にしたがって複合機１００が解釈できる形式の印刷データに変換し、複合機１００に送信する。ここで、描画データは、オペレーティングシステム部２１０で定義されている仕様で記述されたデータであり、印刷データは、例えば、ページ記述言語で記述され、複合機１００を制御するコマンド群から構成されている。
【００３３】
また、プリンタドライバ部２３０は、アプリケーション部２２０が生成したドキュメントの複数部印刷、認証印刷、電子ソート印刷、等を、複合機１００に実行させることができる。
【００３４】
このため、プリンタドライバ部２３０は、各種印刷指示、印刷設定等をユーザから受け付けるユーザインタフェース部２３１と、印刷データの生成、管理、送信等を処理する印刷処理部２３２と、を備えている。
【００３５】
プリンタドライバ部２３０は、情報処理装置２００のＲＡＭ（図示せず）にロードされたプリンタドライバプログラムを、ＣＰＵが実行することにより情報処理装置２００上に構築される。このようなプリンタドライバプログラムは、複合機１００のメーカー等により開発され、例えば、ＣＤ−ＲＯＭ等の可搬性の記録媒体に記録することで流通させることができる。そして、この記録媒体を、メディア読取装置（図示せず）で読み取ることにより、情報処理装置２００にインストールすることができる。また、インターネット等のコンピュータネットワークを介してインストールすることもできる。
【００３６】
一方、複合機１００上には、印刷機能部１１０と、印刷実行部１２０と、が構築される。印刷機能部１１０及び印刷実行部１２０は、ＣＰＵ１０１が所定のプログラムを実行することにより、又は、図１に示した構成要素が動作することにより、ソフトウェア的、ハードウェア的に構築される。
【００３７】
印刷機能部１１０は、情報処理装置２００から送信された印刷データを解釈して、印刷データに基づく印刷を複合機１００で実行するための制御を行う。具体的には、印刷データに基づくプリントイメージデータを生成し、このプリントイメージデータを印刷するように印刷実行部１２０に指示を送る。
【００３８】
また、印刷機能部１１０は、複数部印刷、認証印刷、電子ソート印刷、等の印刷指示がされた場合に、情報処理装置２００から送信された印刷データ、又は、複合機１００において生成した印刷データを、可搬性メモリ１５０に蓄積する処理を行う。さらに、印刷機能部１１０は、印刷データを可搬性メモリ１５０に蓄積する場合には、印刷データの不正利用（例えば、改ざん、複製、など）を防止するための処理を行う。
【００３９】
このため、印刷機能部１１０は、印刷データに基づく印刷を複合機２００で実行するための基本的な制御を行う主制御部１１１と、印刷データを可搬性メモリ１５０に蓄積する場合に、印刷データの不正利用を防止するための認証コード（例えば、ＭＡＣ値）を生成する認証コード生成処理部１１２と、認証コード生成処理部１１２が生成した認証コードに基づいて印刷データの正当性などについて検証するための認証処理を行う認証処理部１１３と、を備えている。
【００４０】
印刷実行部１２０は、印刷機能部１１０の指示にしたがって、印刷用紙等の印刷媒体に対して、印刷エンジン１０８による印刷を実行する。
【００４１】
次に、上記構成からなる印刷システム１０における複合機１００の特徴的な動作について説明する。図３は、印刷データを可搬性メモリ１５０に書き込む場合において、複合機１００が行う書き込み処理を示すフローチャートである。
【００４２】
まず、印刷機能部１１０の主制御部１１１は、可搬性メモリ１５０に蓄積する対象の印刷データが、複合機１００に入力されたか否か判別する（ステップＳ１０１）。
【００４３】
具体的には、主制御部１１１は、情報処理装置２００のプリンタドライバ部２３０から、特定の印刷指示（複数部印刷、認証印刷、電子ソート印刷、等）とともに送信された印刷データを受け付けた場合に、可搬性メモリ１５０に蓄積する対象の印刷データが入力されたと判定する。ここで、情報処理装置２００から送信された印刷指示は、各種外部Ｉ／Ｆ１１２、Ｉ／Ｏ制御ＡＳＩＣ１１１、メモリ制御ＡＳＩＣ１０２を経由して、ＣＰＵ１０１に通知される。また、情報処理装置２００から送信された印刷データは、各種外部Ｉ／Ｆ１１２、Ｉ／Ｏ制御ＡＳＩＣ１１１、メモリ制御ＡＳＩＣ１０２を経由して、揮発性メモリ１０３に格納される。
【００４４】
一方、プリンタドライバ部２３０から、他の印刷指示とともに送信された印刷データを受け付けた場合には、可搬性メモリ１５０に蓄積する対象の印刷データは入力されていないと判定する。
【００４５】
ステップＳ１０１において、主制御部１１１は、可搬性メモリ１５０に蓄積する対象の印刷データが入力されるまで待機し（ステップＳ１０１；Ｎｏ）、可搬性メモリ１５０に蓄積する対象の印刷データが入力されときに（ステップＳ１０１；Ｙｅｓ）、書き込み処理を開始する。
【００４６】
書き込み処理を開始後、主制御部１１１は、ステップＳ１０１で揮発性メモリ１０３に格納された印刷データにタイムスタンプを付加する（ステップＳ１０２）。具体的には、主制御部１１１は、印刷データが揮発性メモリ１０３に格納された時刻を、例えば、リアルタイムクロック（図示せず）から取得して、取得した時刻をタイムスタンプとして印刷データに付加する。
【００４７】
続いて、主制御部１１１は、ステップＳ１０１で受け付けた印刷指示に、認証範囲を指定するコマンドが含まれているか否か判別する（ステップＳ１０３）。
【００４８】
ここで、認証範囲とは、印刷データの印刷を許可する装置の範囲をいう。例えば、認証範囲を指定することによって、可搬性メモリ１５０に印刷データを蓄積した複合機（自装置）１００のみに、その印刷データの印刷を許可するようにすることや、可搬性メモリ１５０に印刷データを蓄積した複合機１００と同機種の装置のみに、その印刷データの印刷を許可するようにすることや、可搬性メモリ１５０に印刷データを蓄積した複合機１００と同メーカーにより製造された装置のみに、その印刷データの印刷を許可するようにすることができる。
【００４９】
ステップＳ１０３において、主制御部１１１は、認証範囲を指定するコマンドが含まれていないと判定した場合には（ステップＳ１０３；Ｎｏ）、予め定められている設定にしたがって、認証範囲を指定する（ステップＳ１０４）。具体的には、主制御部１１１は、
図４に示すような、不揮発性メモリ１０４に予め記憶されている認証範囲指定テーブル３００を参照して、認証範囲を指定する。
【００５０】
図４は、認証範囲指定テーブル３００の概略データ構造を示す図である。認証範囲指定テーブル３００は、認証範囲ごとのレコード３４０からなる。各レコード３４０には、認証範囲特定データ３１０と、鍵の種類３２０と、選択データ３３０と、が対応付けて格納されている。
【００５１】
認証範囲特定データ３１０は、認証範囲を特定するデータであり、例えば、「可搬性メモリ１５０に印刷データを蓄積した複合機（自装置）１００のみに、その印刷データの印刷を許可する」ことを示すデータや、「可搬性メモリ１５０に印刷データを蓄積した複合機１００と同機種の装置のみに、その印刷データの印刷を許可する」ことを示すデータや、「可搬性メモリ１５０に印刷データを蓄積した複合機１００と同メーカーにより製造された装置のみに、その印刷データの印刷を許可する」ことを示すデータである。
【００５２】
鍵の種類３２０は、認証範囲特定データ３１０に対応して、上述したＭＡＣ処理を行う際に生成する鍵の種類を示すデータであり、例えば、「自装置固有の鍵」、「機種共通の鍵」、「メーカー共通の鍵」といった鍵の種類を示すデータである。
【００５３】
選択データ３３０は、認証範囲指定テーブル３００に格納されている認証範囲特定データ３１０のうち、いずれの認証範囲特定データ３１０を選択するかを示すデータであり、例えば、選択することを示すデータ「１」、選択しないことを示すデータ「０」である。
【００５４】
ステップＳ１０４において、主制御部１１１は、選択データ３３０が選択することを示すデータ「１」を格納しているレコード３４０を特定し、特定したレコード３４０に格納されている鍵の種類３２０の鍵を生成する指示を、認証コード生成処理部１１２に通知する。
【００５５】
一方、ステップＳ１０３において、主制御部１１１は、認証範囲を指定するコマンドが含まれていると判定した場合には（ステップＳ１０３；Ｙｅｓ）、コマンドにしたがって、認証範囲を指定する（ステップＳ１０５）。具体的には、主制御部１１１は、コマンドにより指定された認証範囲（認証範囲特定データ３１０）を格納するレコード３４０を、認証範囲指定テーブル３００から検索し、検索したレコード３４０の選択データ３３０を「１」にする。そして、同レコード３４０に格納されている鍵の種類３２０の鍵を生成する指示を、認証コード生成処理部１１２に通知する。
【００５６】
ステップＳ１０４又はステップＳ１０５において、鍵を生成する指示を通知された認証コード生成処理部１１２は、可搬性メモリ１５０のデバイスＩＤを取得する（ステップＳ１０６）とともに、指定された認証範囲に応じた鍵を生成する（ステップＳ１０７）。具体的には、認証コード生成処理部１１２は、所定の装着位置に接続されている可搬性メモリ１５０から、デバイスＩＤを、Ｉ／Ｏ制御ＡＳＩＣ１１１、メモリ制御ＡＳＩＣ１０２を経由して、揮発性メモリ１０３に格納する。そして、認証コード生成処理部１１２は、ステップＳ１０４又はステップＳ１０５において通知された鍵の種類３２０に応じた鍵を生成し、揮発性メモリ１０３に格納する。
【００５７】
図５（Ａ）は、ステップＳ１０６、ステップＳ１０７において、デバイスＩＤを可搬性メモリ１５０から取得し、鍵を生成する処理の概念図である。図示するように、複合機１００の揮発性メモリ１０３には、ステップＳ１０１で入力された印刷データ、ステップＳ１０２で印刷データに付加したタイムスタンプが格納されている。さらに、揮発性メモリ１０３には、ステップＳ１０７で生成した鍵も格納されている。そして、ステップＳ１０６で、複合機１００に接続された可搬性メモリ１５０から取得したデバイスＩＤは、揮発性メモリ１０３に格納される。
【００５８】
続いて、認証コード生成処理部１１２は、ＭＡＣ処理を行う（ステップＳ１０８）。具体的には、認証コード生成処理部１１２は、揮発性メモリ１０３に格納されている印刷データ、タイムスタンプ、デバイスＩＤを合成したデータ、及び、鍵を、一方向性の関数（例えば、ハッシュ関数）に入力して、ＭＡＣ値（ハッシュ値）を求める。ここで、一方向性の関数とは、合成したデータからＭＡＣ値を求めた場合に、そのＭＡＣ値から印刷データ（合成したデータ）を求めることが非常に困難な関数をいう。
【００５９】
図５（Ｂ）は、ステップＳ１０８におけるＭＡＣ処理の概念図である。ステップＳ１０８におけるＭＡＣ処理により生成したＭＡＣ値は、一時的に揮発性メモリ１０３に格納される。
【００６０】
そして、認証コード生成処理部１１２は、タイムスタンプが付加された印刷データと、ステップＳ１０８で生成したＭＡＣ値と、を対応付けて、可搬性メモリ１５０に蓄積する（ステップＳ１０９）。なお、複数の印刷データを可搬性メモリ１５０に蓄積する場合には、それぞれの印刷データに対応するＭＡＣ値を、可搬性メモリ１５０に記憶するようにする。
【００６１】
図５（Ｃ）は、ステップＳ１０９における、印刷データを可搬性メモリ１５０に蓄積する処理の概念図である。ステップＳ１０９における処理の後には、可搬性メモリ１５０には、デバイスＩＤ、印刷データ、タイムスタンプ、ＭＡＣ値が格納されている。
【００６２】
その後、主制御部１１１は、書き込み処理を終了する。
【００６３】
以上の書き込み処理を、印刷機能部１１０が行うことにより、可搬性メモリ１５０に蓄積する印刷データの不正使用を防ぐことができる。
【００６４】
次に、図６は、上記の書き込み処理により、可搬性メモリ１５０に蓄積された印刷データを印刷する場合において、複合機１００が行う読み込み処理を示すフローチャートである。
【００６５】
可搬性メモリ１５０に蓄積されている印刷データを印刷するタイミングで、読み込み処理を開始する。ここで、印刷データを印刷するタイミングとは、例えば、複数部印刷においては、１部目の印刷が終了して、２部目の印刷を開始するタイミングなどである。
【００６６】
読み込み処理を開始後、印刷機能部１１０の主制御部１１１は、可搬性メモリ１５０が所定の装着位置に接続されているか否か判別する（ステップＳ２０１）。主制御部１１１は、可搬性メモリ１５０が接続されていなければ（ステップＳ２０１；Ｎｏ）、接続されるまで待機する。一方、可搬性メモリ１５０が接続されている（又は、接続された）ことを検出した場合（ステップＳ２０１；Ｙｅｓ）、処理をステップＳ２０２に移行する。
【００６７】
ステップＳ２０２では、認証処理部１１３は、可搬性メモリ１５０から、デバイスＩＤと、タイムスタンプが付加された印刷データと、印刷データに対応付けられているＭＡＣ値（受信ＭＡＣ値）と、を取得する（ステップＳ２０２）。
【００６８】
図７（Ａ）は、ステップＳ２０２における処理の概念図である。ステップＳ２０２における処理により取得した全てのデータは、一時的に揮発性メモリ１０３に格納される。
【００６９】
続いて、認証処理部１１３は、認証範囲指定テーブル３００を参照して、設定されている認証範囲に応じた鍵を生成する（ステップＳ２０３）。具体的には、認証処理部１１３は、認証範囲指定テーブル３００にアクセスして、選択データ３３０が選択することを示すデータ「１」を格納しているレコード３４０を特定し、特定したレコード３４０に格納されている鍵の種類３２０の鍵を生成する。
【００７０】
次に、認証処理部１１３は、ＭＡＣ処理を行う（ステップＳ２０４）。具体的には、認証処理部１１３は、ステップＳ２０２で可搬性メモリ１５０から取得したデバイスＩＤ、印刷データ、タイムスタンプ、及び、ステップＳ２０３で生成した鍵を、一方向性の関数（例えば、ハッシュ関数）に入力して、ＭＡＣ値（生成ＭＡＣ値）を求める。
【００７１】
図７（Ｂ）は、ステップＳ２０４におけるＭＡＣ処理の概念図である。ステップＳ２０４におけるＭＡＣ処理により生成したＭＡＣ値（生成ＭＡＣ値）は、一時的に揮発性メモリ１０３に格納される。
【００７２】
続いて、認証処理部１１３は、ステップＳ２０４で生成したＭＡＣ値（生成ＭＡＣ値）と、ステップＳ２０２で可搬性メモリ１５０から取得したＭＡＣ値（受信ＭＡＣ値）と、を比較する（ステップＳ２０５）。
【００７３】
認証処理部１１３は、ステップＳ２０５において両ＭＡＣ値（生成ＭＡＣ値と受信ＭＡＣ値）を比較した結果、両ＭＡＣ値が一致すると判定した場合（ステップＳ２０６；Ｙｅｓ）、印刷対象の印刷データを印刷実行部１２０に通知する。このとき、印刷実行部１２０は、印刷データの印刷を実行する（ステップＳ２０７）。
【００７４】
一方、認証処理部１１３は、両ＭＡＣ値が一致しないと判定した場合（ステップＳ２０６；Ｎｏ）、ステップＳ２０２で可搬性メモリ１５０から取得した印刷データを、揮発性メモリ１０３から破棄（削除）する（ステップＳ２０８）。
【００７５】
ステップＳ２０７又はステップＳ２０８の処理後、主制御部１１１は、読み込み処理を終了する。
【００７６】
以上の読み込み処理を、印刷機能部１１０が行うことにより、可搬性メモリ１５０に蓄積されている印刷データを不正に読み出して、印刷することを防ぐことができる。
【００７７】
以上、本発明の実施形態の一例について説明した。上記実施形態によれば、本発明の複合機１００は、可搬性メモリ１５０に蓄積する印刷データの不正利用を防ぐことができる。
【００７８】
例えば、認証コード生成処理部１１２は、ステップＳ１０７で生成した鍵に基づいてＭＡＣ値を生成するため、鍵の認証範囲が「自装置のみ読み出し可能」であれば、印刷を許可する装置を、印刷データを可搬性メモリ１５０に書き込んだ複合機１００のみに限定することができる（認証可能になる）。また、鍵の認証範囲に応じて、可搬性メモリ１５０に蓄積された印刷データの印刷を許可する装置（認証の範囲）を変更することができる。
【００７９】
さらに、認証コード生成処理部１１２は、可搬性メモリ１５０に固有のデバイスＩＤに基づいてＭＡＣ値を生成するため、最初に印刷データを蓄積した可搬性メモリ１５０以外の（可搬性）メモリに印刷データを複製したとしても、印刷できない。すなわち、可搬性メモリ１５０のすり替えを防止することができる。
【００８０】
さらに、認証コード生成処理部１１２は、可搬性メモリ１５０に印刷データを蓄積する場合には、ＭＡＣ値（メッセージ認証コード）を印刷データに対応付けて蓄積するため、印刷データの改ざんを防ぐことができる。
【００８１】
さらに、認証コード生成処理部１１２は、タイムスタンプが付加された印刷データに基づいてＭＡＣ値を生成するため、ＭＡＣ値のリプレイ（使いまわし）を防止することができる。
【００８２】
また、ディジタル署名を利用する場合と比較して、ＭＡＣ処理は高速に行えるため、印刷データの書き込み、読み出しの処理を高速に行える。
【００８３】
なお、本発明は、上記実施形態に限定されず、種々の変形、応用が可能である。
【００８４】
例えば、上記実施形態では、書き込み処理のステップＳ１０７において、指定された認証範囲に応じた鍵を生成し、生成した鍵の種類に応じて、可搬性メモリ１５０に蓄積された印刷データの印刷を許可する装置（認証の範囲）を変更することができる。しかし、これに限定されず、例えば、デバイスＩＤの種類に応じて、印刷を許可する可搬性メモリ１５０（認証の範囲）を変更するようにしてもよい。
【００８５】
この場合、書き込み処理では、ステップＳ１０６において、認証コード生成処理部１１２は、可搬性メモリ１５０からデバイスＩＤを取得し、取得したデバイスＩＤの種類に応じて、可搬性メモリ１５０の認証範囲を指定する。具体的には、主制御部１１１は、図８に示すような、不揮発性メモリ１０４に予め記憶されているデバイスＩＤによる認証範囲指定テーブル４００を参照して、可搬性メモリ１５０の認証範囲を指定する。
【００８６】
図８は、デバイスＩＤによる認証範囲指定テーブル４００の概略データ構造を示す図である。デバイスＩＤによる認証範囲指定テーブル４００は、認証範囲ごとのレコード４４０からなる。各レコード４４０には、認証範囲特定データ４１０と、デバイスＩＤの種類４２０と、選択データ４３０と、が対応付けて格納されている。
【００８７】
認証範囲特定データ４１０は、可搬性メモリ１５０の認証範囲を特定するデータであり、例えば、「書き込みをした可搬性メモリ１５０に蓄積されている印刷データのみ印刷を許可する」ことを示すデータや、「書き込みをした可搬性メモリ１５０と同機種の可搬性メモリ１５０に蓄積されている印刷データのみ印刷を許可する」ことを示すデータや、「書き込みをした可搬性メモリ１５０と同じメーカーにより製造された可搬性メモリ１５０に蓄積されている印刷データのみ印刷を許可する」ことを示すデータである。
【００８８】
デバイスＩＤの種類４２０は、デバイスＩＤの種類を示すデータであり、例えば、「可搬性メモリ固有のデバイスＩＤ」、「可搬性メモリの機種共通のデバイスＩＤ」、「可搬性メモリのメーカー共通のデバイスＩＤ」を示すデータである。
【００８９】
選択データ４３０は、デバイスＩＤによる認証範囲指定テーブル４００に格納されている認証範囲特定データ４１０のうち、いずれの認証範囲特定データ４１０を選択するかを示すデータであり、例えば、鍵による認証範囲指定テーブル３００の選択データ３３０と同様のデータである。
【００９０】
ステップＳ１０６において、主制御部１１１は、可搬性メモリ１５０から取得したデバイスＩＤに対応するデバイスＩＤの種類４２０を格納しているレコード４４０を特定し、特定したレコード４４０に格納されている選択データ４３０を「１」にする。
【００９１】
そして、読み込み処理時においては、ステップＳ２０４では、認証処理部１１３は、ＭＡＣ処理の実行に先だって、デバイスＩＤによる認証範囲指定テーブル４００にアクセスして、選択データ４３０が選択することを示すデータ「１」を格納しているレコード４４０を特定し、特定したレコード４４０に格納されている認証範囲特定データ４１０を抽出する。続いて、認証処理部１１３は、接続されている可搬性メモリ１５０が、抽出した認証範囲特定データ４１０で印刷を許可されている可搬性メモリに該当するか否かを判別する。ここで、印刷を許可されている可搬性メモリに該当すると判定した場合には、ＭＡＣ処理を実行し、該当しないと判定した場合には、ＭＡＣ処理を実行せずに、処理をステップＳ２０７に移行する。
【００９２】
以上のような書き込み処理、読み込み処理を印刷機能部１１０が行うことにより、デバイスＩＤに応じて、印刷を許可する可搬性メモリ１５０の認証範囲を変更することができる。
【００９３】
また、上記実施形態では、可搬性メモリ１５０に蓄積する印刷データは、情報処理装置２００から複合機１００に送信された印刷データである。しかし、これに限定されず、例えば、複合機１００に備わるスキャナ装置１１０で生成された画像データを、画像処理ＡＳＩＣ１０５が変換した後の印刷データであってもよい。この場合、図３に示す書き込み処理のステップＳ１０１において、書き込み処理を開始するタイミングは、画像処理ＡＳＩＣ１０５が印刷データを生成したときである。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施形態に係る印刷システムのハードウェア構成図である。
【図２】印刷システムの機能構成を説明するためのブロック図である。
【図３】書き込み処理を説明するためのフローチャートである。
【図４】鍵による認証範囲指定テーブルのデータ構造を概念的に示した図である。
【図５】（Ａ）デバイスＩＤを可搬性メモリから取得する処理の概念図である。（Ｂ）ＭＡＣ処理の概念図である。（Ｃ）印刷データを可搬性メモリに蓄積する処理の概念図である。
【図６】読み込み処理を説明するためのフローチャートである。
【図７】（Ａ）可搬性メモリからデータを取得する処理の概念図である（Ｂ）読み込み処理時におけるＭＡＣ処理の概念図である。
【図８】デバイスＩＤによる認証範囲指定テーブルのデータ構造を概念的に示した図である。
【符号の説明】
【００９５】
１０・・・印刷システム、１００・・・複合機、１０１・・・ＣＰＵ、１０２・・・メモリ制御ＡＳＩＣ、１０３・・・揮発性メモリ、１０４・・・不揮発性メモリ、１１０・・・印刷機能部、１１１・・・主制御部、１１２・・・認証コード生成処理部、１１３・・・認証処理部、１２０・・・印刷実行部、１５０・・・可搬性メモリ、２００・・・情報処理装置、２３０・・・プリンタドライバ部、３００・・・鍵による認証範囲指定テーブル、３１０（４１０）・・・認証範囲特定データ、３２０・・・鍵の種類、３３０（４３０）・・・選択データ、４００・・・デバイスＩＤによる認証範囲指定テーブル、４２０・・・デバイスＩＤの種類。
【図１】
2009160832.tif 000003
【図２】
2009160832.tif 000004
【図３】
2009160832.tif 000005
【図４】
2009160832.tif 000006
【図５】
2009160832.tif 000007
【図６】
2009160832.tif 000008
【図７】
2009160832.tif 000009
【図８】
2009160832.tif 000010