(57)【要約】【課題】  印刷データを生成する印刷データ生成装置０１−０１と、該印刷データ生成装置０１−０１で生成された印刷データを出力媒体上に形成する印刷装置０１−０２と、上記印刷データ生成装置０１−０１から上記印刷装置０１−０２へのデータ転送を仲介する着脱自在なリムーバブルメディア０１−０３とを含む印刷システムに於いて、秘匿性を高めること。【解決手段】  リムーバブルメディア０１−０３は、記憶領域（１）０４−０５が、印刷データ生成装置０１−０１から受入れた印刷データを格納し、読出しのみ可能な記憶領域（２）０４−０６が、印刷データの電子署名に必要な機器固有の秘密鍵、及び該秘密鍵と対を成す公開鍵とを格納し、記憶領域（３）０４−０７が、秘密鍵により暗号化された電子署名を記憶する。【選択図】        図４
2008083949.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを生成する上位装置と、該上位装置で生成された印刷データを出力媒体上に形成する画像形成装置と、前記上位装置から前記画像形成装置へのデータ転送を仲介する着脱自在なインタフェース手段とを含む印刷システムであって、
前記インタフェース手段は、
前記上位装置により生成された印刷データを格納する第１の格納手段と、
前記印刷データの電子署名に必要な機器固有の秘密鍵、及び該秘密鍵と対を成す公開鍵とを格納する読出し可能な第２の格納手段と、
前記秘密鍵により暗号化された電子署名を記憶する第３の格納手段とを備えることを特徴とする印刷システム。
【請求項２】
前記画像形成装置は、
前記インタフェース手段を介して受入れた前記電子署名に対し、前記インタフェース手段を介して受入れた公開鍵を用いて第１のハッシュ関数を算出する第１のハッシュ値算出手段と、
前記インタフェース手段を介して受入れた前記印刷データに対し、一方向性関数を用いて第２のハッシュ値を算出する第２のハッシュ値算出手段と、
前記第１のハッシュ値と前記第２のハッシュ値とを比較し、前記印刷データの改ざんの有無を判定するハッシュ値比較手段とを備えることを特徴とする請求項１に記載の印刷システム。
【請求項３】
印刷データを生成する上位装置と、該上位装置で生成された印刷データを出力媒体上に形成する画像形成装置と、前記上位装置から前記画像形成装置へのデータ転送を仲介する着脱自在なインタフェース手段とを含む印刷システムであって、
前記上位装置は、
前記印刷データの電子署名に必要な機器固有の秘密鍵を有し、該秘密鍵から公開鍵を生成する公開鍵生成部と、前記公開鍵を用いて第１のハッシュ値を算出する第１のハッシュ値算出手段と、前記第１のハッシュ値から電子署名を生成する暗号化部とを備え、
前記画像形成装置は、
前記インタフェース手段を介して受入れた前記電子署名に対し、前記インタフェース手段を介して受入れた公開鍵を用いて第１のハッシュ値を算出する第１のハッシュ値算出手段と、前記インタフェース手段を介して受入れた前記印刷データに対し、一方向性関数を用いて第２のハッシュ値を算出する第２のハッシュ値算出手段と、前記第１のハッシュ値と前記第２のハッシュ値とを比較し、前記印刷データの改ざんの有無を判定するハッシュ値比較手段とを備えることを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データ生成装置と印刷装置の間で、リムーバブルメディアを介して印刷データの受け渡しを行う印刷システムに関するものである。
【背景技術】
【０００２】
従来、上記印刷システムでは、印刷データ改ざん防止方法、及び改ざん検出方法として、秘密鍵及び公開鍵による印刷データの暗号、復号化を用いる技術が公知である。この技術を用いて、印刷データ改ざん防止、及び改ざん検出は以下のように行われていた。
【０００３】
印刷データ生成装置では、印刷データを形成する際に、まずハッシュ関数を用いて、印刷データのハッシュ値を算出する。続いて、算出されたハッシュ値を、印刷データ生成装置が所有する秘密鍵により暗号化する。そして、リムーバブルメディアを介して印刷装置に印刷データ、及び、暗号化されたハッシュ値、即ち電子署名が送信される。
【０００４】
印刷装置は、印刷データと電子署名を受信すると、まずハッシュ関数を用いて、印刷データのハッシュ値を算出する。続いて、電子署名を、印刷データ生成装置の公開鍵を用いて復号化し、印刷データ生成装置が算出したハッシュ値を取得する。そして、自己が算出したハッシュ値と、印刷データ生成装置が算出したハッシュ値とを比較し、一致するならば、印刷データに改ざんは無いと判断し、一致しないならば、印刷データは改ざんされていると判断する。
【０００５】
尚、上記システムでは、印刷データ生成装置と印刷装置がネットワークで結ばれていないので、印刷装置が電子署名の復号化に使用する、印刷データ生成装置の公開鍵は、ネットワークなどを経由し、印刷データ生成装置から入手することは不可能である。そこで、印刷データの受け渡は、リムーバブルメディアを介して実行される。
【０００６】
かかる従来の技術では、事前に定められた特定の印刷データ生成装置を用いてリムーバブルメディアに対して上記公開鍵の書き込みが実行される。そのため、印刷装置は印刷データ生成装置とネットワークで結ばれていなくても、リムーバブルメディアから印刷データ生成装置の公開鍵を入手できることになる。
【特許文献１】特開平１１−０７３１０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術を用いた場合、その秘密保持効果を受けることができるのは、上記事前に定められた特定の印刷データ生成装置１台のみになるという解決すべき課題が残されていた。その理由は、リムーバブルメディアへの公開鍵の書き込みは、上記特定の印刷データ生成装置以外では実行不可能だからである。即ち、上記のように、従来技術では、電子署名及び印刷データ生成装置の公開鍵は、リムーバブルメディア上に設けられている、上記印刷データ生成装置のみが書き込むことのできる記憶領域に格納される構成を採用している。
【０００８】
従来技術でも、印刷データのみならば、どの印刷データ生成装置からでも、リムーバブルメディアに書き込むことは可能である。しかし、印刷データの改ざんを防止するために必要な、電子署名及び印刷データ生成装置の公開鍵は、どの印刷データ生成装置からでも書き込みできるのではなく、特定の印刷データ生成装置からしか書き込めない。従って、従来技術によれば、特定の印刷データ生成装置だけでしか、印刷データの改ざん防止手段を使用できないことになる。
【課題を解決するための手段】
【０００９】
本発明は、印刷データを生成する上位装置と、該上位装置で生成された印刷データを出力媒体上に形成する画像形成装置と、上記上位装置から上記画像形成装置へのデータ転送を仲介する着脱自在なインタフェース手段とを含む印刷システムであって、上記インタフェース手段は、上記上位装置により生成された印刷データを格納する第１の格納手段と、上記印刷データの電子署名に必要な機器固有の秘密鍵、及び該秘密鍵と対を成す前記機器固有の公開鍵とを格納する読出しのみ可能な第２の格納手段と、上記秘密鍵により暗号化された電子署名を記憶する第３の格納手段とを備えることを主要な特徴とする。
【発明の効果】
【００１０】
本発明による印刷システムでは、読出しのみ可能な上記第２の格納手段を備え、印刷データの電子署名に必要な機器固有の秘密鍵、及び該秘密鍵と対を成す公開鍵とを格納するので、秘密鍵に対する秘匿性は、極めて高くなるという効果を得る。
【発明を実施するための最良の形態】
【００１１】
本発明による印刷システムは以下のように構成される。
【実施例１】
【００１２】
図１は、本発明の印刷システムの構成図である。
本実施例の印刷システム（実施例１及び実施例２）は、印刷データの生成を行う印刷データ生成装置（実施例１は０１−０１、実施例２は０１−０４）と、印刷データの印刷を行う印刷装置（実施例１は０１−０２、実施例２は０１−０５）と、上記印刷データ生成装置と上記印刷装置との間で印刷データの授受を行うためのリムーバブルメディア（実施例１は０１−０３、実施例２は０１−０６）とからなる。図中に矢印で示すように、印刷データ（あるいは印刷ジョブ）は、上記印刷データ生成装置から上記リムーバブルメディアを経由し、上記印刷装置に受け渡される。
【００１３】
図２は、実施例１の印刷データ生成装置の構成図である。
本実施例における印刷データ生成装置とは、文書や画像データを、印刷装置が処理可能なデータ形式に変換する機能を備える機械を指す。例えばプリンタドライバがインストールされたＰＣ（パーソナルコンピュータ）等である。
【００１４】
図に示すように、実施例１の印刷データ生成装置０１−０１は、内蔵記憶媒体０２−０１と、アプリケーションソフトウェア０２−０７と、プリンタドライバ０２−０８と、インタフェース部０２−０６とを備える。
【００１５】
内蔵記憶媒体０２−０１は、さまざまなデータを格納するためのメモリであり、その中に、印刷データの元となる文書・画像０２−０２を保持している。アプリケーションソフトウェア０２−０７は、文書作成ソフトウェアや画像作成ソフトウェアの集合であり、その内部に印刷データ生成部０２−０３を有している。印刷データ生成部０２−０３は図示しないＣＰＵが、文書作成ソフトウェアや画像作成ソフトウェアを実行して印刷データを生成する機能を表す部分である。
【００１６】
プリンタドライバ０２−０８は、印刷装置０１−０２（図１）に対応するドライバソフトウェアの集合であり、その内部に印刷ジョブ生成部０２−０４と印刷ジョブ送信部０２−０５とを有している。印刷ジョブ生成部０２−０４は、図示しないＣＰＵが、ドライバソフトウェアを実行して印刷データに印刷装置の制御コマンドを付加し、印刷ジョブを生成する機能を表す部分である。印刷ジョブ送信部０２−０５は、図示しないＣＰＵが、ドライバソフトウェアを実行し、インタフェース部０２−０５を介して印刷ジョブをリムーバブルメディア０１−０３へ送出する機能を表す部分である。インタフェース部０２−０５は、本実施例における印刷データ生成装置０１−０１と、リムーバブルメディア０１−０３とを通信接続する部分である。
【００１７】
図３は、実施例１の印刷装置の構成図である。
図に示すように、本実施例の印刷装置０１−０２は、電子署名複合化部０３−０５と、ハッシュ値算出部０３−０６と、ハッシュ値比較部０３−０７と、印刷ジョブ受信部０３−０２と、印刷ジョブ処理部０３−０３と、印刷処理部０３−０４と、インタフェース部０３−０１とを備える。
【００１８】
ハッシュ値算出部０３−０６は、印刷ジョブからハッシュ値を算出する部分である。電子署名復号化部０３−０５は、公開鍵を用いて電子署名を復号化する部分である。ハッシュ値比較部０３−０７は、復号化された電子署名のハッシュ値とハッシュ値算出部０３−０６で算出されたハッシュ値を比較する部分である。ここでハッシュ値とは、所定のデータに対して複雑な計算を施し、短くまとめた値である。ダイジェストとも呼ばれ、データを少しでも改ざんすると計算された値は大きく異なったものになるという特徴を有する。
【００１９】
印刷ジョブ受信部０３−０２は、インタフェース部０３−０１から印刷ジョブなどを受信する部分である。印刷ジョブ処理部０３−０３は、印刷ジョブを印刷装置の制御コマンドと印刷データとに分離する部分である。印刷処理部０３−０４は、印刷データを用紙に印刷する部分である。これらの処理部は、印刷装置０１−０２に内蔵された記憶媒体に、予め格納されている制御プログラムを図示しないＣＰＵが実行することによって、必要に応じ随時起動生成されるものである。インタフェース部０３−０１は、本実施例における印刷装置０１−０２と、リムーバブルメディア０１−０３とを通信接続する部分である。
【００２０】
図４は、実施例１のリムーバブルメディアの構成図である。
本実施例におけるリムーバブルメディアとは、ＵＳＢフラッシュメモリ、メモリーカード、ＵＳＢ接続可能なハードディスク等を言う。
【００２１】
図に示すように、実施例１のリムーバブルメディア０１−０３は、コントローラ部０４−０２と、ハッシュ値算出部０４−０３と、ハッシュ値暗号化部０４−０４と、記憶領域（１）０４−０５と、記憶領域（２）０４−０６と、記憶領域（３）０４−０７と、インタフェース部０４−０１とを備える。
【００２２】
コントローラ部０４−０２は、インタフェース部０４−０１から印刷ジョブなどの送受信を実行するために、記憶領域（１）０４−０５、記憶領域（２）０４−０６、及び記憶領域（３）０４−０７へアクセスを行う部分である。ハッシュ値算出部０４−０３は、印刷ジョブからハッシュ値を算出する部分である。ハッシュ値暗号化部０４−０４は、ハッシュ値を暗号化する部分である。
【００２３】
記憶領域（１）０４−０５は、一般的なプロトコルによりアクセスすることができる読み書き可能なメモリである。記憶領域（２）０４−０６は、本発明によるリムーバブルメディア０１−０３のコントローラ部０４−０２で定められた所定のプロトコルによってのみアクセスすることができる読み出しのみ可能なメモリである。記憶領域（３）０４−０７は、本発明によるリムーバブルメディア０１−０３のコントローラ部０４−０２で定められたプロトコルによってのみアクセスすることができる読み出しのみ可能なメモリである。この記憶領域（３）０４−０７には、秘密鍵０４−０８と公開鍵０４−０９とが格納される。
【００２４】
ここで、上記アクセスする一般的なプロトコルとは、印刷データ生成装置０１−０１から記憶領域（１）０４−０５に対して書込みアドレスを送信し、更に、書込みデータを送信する通常のプロトコルである。同様に上記所定のプロトコルとは、印刷データ生成装置０１−０１から記憶領域（２）０４−０６に対して書込み行う場合に、予めキーＢを生成し、書込みに時にこのキーＢを用いることとするプロトコルである。このキーＢは、例えば以下のようにして生成される。ステップＳ１、印刷データ生成装置０１−０１から記憶領域（２）０４−０６に対して書込みアドレスと、予め定められているキーＡ（例えば「１２３４」）が送信される。ステップＳ２、リムーバブルメディア０１−０３側では印刷データ生成装置０１−０１から受信したアドレスに対応するメモリ領域Ｍのパスワード（例えば「５６７８」）を取り出す。ステップＳ３、キーＡ（「１２３４」）にパスワード（「５６７８」）を乗算し、その下４桁（「６６５２」）をキーＢと設定する。ステップＳ４、キーＢ（「６６５２」）は、印刷データ生成装置０１−０１へ返信される。以後、印刷データ生成装置０１−０１から記憶領域（２）０４−０６のメモリ領域Ｍに対してアクセスする場合には、このキーＢ（「６６５２」）とアクセスしたいアドレスが送信される。同様に上記定められたプロトコルも、上記キーＡに対応するキーＣを予め定めておいて上記所定のプロトコルと同様にしてキーＥを生成して使用される。そして、記憶領域（２）０４−０６、記憶領域（３）０４−０７は、以後、読み出し用として使用される。
【００２５】
インタフェース部０４−０１は、本実施例におけるリムーバブルメディア０１−０３と、印刷データ生成装置０１−０１、または印刷装置０１−０２とを通信接続する部分である。
【００２６】
以上説明した実施例１の印刷システムは以下のように動作する。
図５は、実施例１の動作の説明図（その１）である。
この図は、印刷データ生成装置０１−０１（図２）で、印刷ジョブが生成され、リムーバブルメディア０１−０３へ格納されるまでの動作を表している。
【００２７】
動作説明の前提条件を以下のように定める。
文書・画像０２−０２（図２）は、既にアプリケーションソフトウェア０２−０７（図２）により作成済みで、内蔵記憶媒体０２−０１（図２）に格納されており、この文書・画像０２−０２（図２）を、アプリケーションソフトウェア０２−０７（図２）を使って印刷ジョブにし、リムーバブルメディア０１−０３（図２）に格納するものとする。
【００２８】
ステップＳ１−１
印刷ジョブをリムーバブルメディア０１−０３（図２）に格納するため、アプリケーションソフトウェア０２−０７（図２）が実行され、印刷データ生成部０２−０３（図２）が起動する。
【００２９】
ステップＳ１−２
内蔵記憶媒体０２−０１に保存されている文書・画像０２−０２が呼び出され、印刷データ生成部０２−０３（図２）へ送られる。
【００３０】
ステップＳ１−３
印刷データ生成部０２−０３（図２）は、文書・画像０２−０２（図２）を、印刷装置０１−０２（図１）が処理可能な印刷データ０５−０１に変換し、プリンタドライバ０２−０８（図２）の印刷ジョブ生成部０２−０４（図２）に受け渡す。
【００３１】
ステップＳ１−４
印刷ジョブ生成部０２−０４（図２）は、印刷データ０５−０１と印刷装置０１−０２（図１）の制御コマンド０５−０２を組み合わせ、印刷ジョブ０５−０３を生成し、印刷ジョブ送信部０２−０５（図２）に受け渡す。
【００３２】
ステップＳ１−５
印刷ジョブ送信部０２−０５（図２）は、印刷ジョブ０５−０３を指定されたインタフェース部（ここでは、リムーバブルメディア０１−０３（図２）が接続されているインタフェース部０２−０６（図２））を通じ、リムーバブルメディア０１−０３（図２）へ送信してフローを終了する。
【００３３】
図６は、実施例１の動作の説明図（その２）である。
この図は、印刷データ生成装置０１−０１（図２）から送信された印刷ジョブ０５−０３が、リムーバブルメディア０１−０３（図２、図４）の記憶領域（１）０４−０５に格納されるまでの動作を表している。
【００３４】
動作説明の前提条件を以下のように定める。
本発明では、リムーバブルメディア０１−０３（図４）に備わっている記憶領域は上記のように３種類ある。また本発明では、読み出しのみ可能な記憶領域（３）（０４−０７）に格納されている秘密鍵（０４−０８）及び公開鍵（０４−０９）は、リムーバブルメディア（０１−０３）が製造された時点で生成され、コントローラ部（０４−０２）などのリムーバブルメディア（０１−０３）を制御するプログラムと共に、図示しないＲＯＭ上に格納されたものであり、リムーバブルメディア（０１−０３）１つ１つに固有であるものとする。
【００３５】
ステップＳ１−１１
印刷データ生成装置０１−０１（図２）で生成された印刷ジョブ０５−０３は、インタフェース部０４−０１（図４）を通じ、リムーバブルメディア０１−０３のコントローラ部０４−０２（図４）に受け渡される。
【００３６】
ステップＳ１−１２
コントローラ部０４−０２（図４）は、印刷ジョブ０５−０３を受信する。
【００３７】
ステップＳ１−１３
コントローラ部０４−０２（図４）は、印刷ジョブ０５−０３を、記憶領域（１）０４−０５（図４）へ格納する。
【００３８】
ステップＳ１−１４
印刷ジョブ０５−０３は、記憶領域（１）０４−０５（図４）へ格納されると同時にハッシュ値算出部０４−０３（図４）に受け渡される。
【００３９】
ステップＳ１−１５
ハッシュ値算出部０４−０３（図４）は、印刷ジョブ０５−０３を、ハッシュ関数に投入する。投入された印刷ジョブ０５−０３を元に演算を行ったハッシュ値算出部０４−０３（図４）は、ハッシュ値０６−０１を算出し、ハッシュ値暗号化部０４−０４（図４）に受け渡す。
【００４０】
ステップＳ１−１６
ハッシュ値暗号化部０４−０４（図４）は、記憶領域（３）０４−０７（図４）にアクセスするためのプロトコルを用い、コントローラ部０４−０２（図４）を経由して、記憶領域（３）０４−０７に格納されている秘密鍵０４−０８を取得する。
【００４１】
ステップＳ１−１７
ハッシュ値暗号化部０４−０４（図４）は、秘密鍵０４−０８を使用して、ハッシュ値０６−０１を暗号化して電子署名０６−０２を生成する。
【００４２】
ステップＳ１−１８
電子署名０６−０２は、コントローラ部０４−０２（図４）へ送られる。
【００４３】
ステップＳ１−１９
コントローラ部０４−０２（図４）は、記憶領域（２）０４−０６にアクセスするためのプロトコルを用い、記憶領域（２）０４−０６に、電子署名０６−０２を格納する。
【００４４】
図７は、実施例１の動作の説明図（その３）である。
この図は、印刷装置０１−０２（図３）がリムーバブルメディア０１−０３（図４）から印刷ジョブ０５−０３を受信し、印刷を行うまでの動作を表している。即ち、印刷装置０１−０２（図３）の印刷ジョブ受信部０３−０２（図３）は、インタフェース部０３−０１（図３）を通じ、リムーバブルメディア０１−０３（図３）にアクセスし、印刷ジョブ０５−０３を取得する。リムーバブルメディア０１−０３（図４）のコントローラ部０４−０２は（図４）、印刷ジョブ受信部０３−０２（図４）の要求に従い、印刷ジョブ０５−０３を受け渡す。
【００４５】
同時に、印刷ジョブ受信部０３−０２（図３）は、リムーバブルメディア０１−０３（図４）のコントローラ部０４−０２に対し、本発明により定められたプロトコルを使用し、印刷ジョブ０５−０３の電子署名０６−０２と、公開鍵０４−０９を要求する。リムーバブルメディア０１−０３（図４）のコントローラ部０４−０２は、印刷ジョブ受信部０３−０２の要求に従い、電子署名０６−０２と、公開鍵０４−０９を受け渡す。このプロトコルは、本発明による機能を持つ印刷装置０１−０２のみがサポートしているので、本発明による機能を持たない印刷装置は、電子署名０６−０２と公開鍵０４−０９を取得することができない。
【００４６】
ステップＳ１−２１
印刷ジョブ受信部０３−０２（図３）は、取得した印刷ジョブ０５−０３、電子署名０６−０２、及び公開鍵０４−０９を、印刷ジョブ処理部０３−０３（図３）に受け渡す。印刷ジョブ処理部０３−０３（図３）は、電子署名復号化部０３−０５（図３）に電子署名０６−０２および公開鍵０４−０９を、ハッシュ値算出部０３−０６（図３）に印刷ジョブ０５−０３を受け渡す。
【００４７】
ステップＳ１−２２
電子署名復号化部０３−０５（図３）は、公開鍵０４−０９を用い、電子署名０６−０２を復号化し、ハッシュ値０６−０１を抽出する。
【００４８】
ステップＳ１−２３
一方ハッシュ値算出部０３−０６（図３）は、印刷ジョブ０５−０３を、ハッシュ関数に投入し、ハッシュ値０７−０１を算出する。
【００４９】
ステップＳ１−２４
ハッシュ値比較部０３−０７（図３）は、電子署名復号化部０３−０５（図３）およびハッシュ値算出部０３−０６（図３）から、それぞれが得たハッシュ値（０６−０１および０７−０１）を受入れて比較する。
【００５０】
ステップＳ１−２５
ハッシュ値比較部０３−０７（図３）は、比較結果が一致したときは、「比較結果一致」を、印刷ジョブ処理部０３−０３（図３）に通知してステップＳ１−２６へ進み、比較結果が一致しないときは、「比較結果不一致」を、印刷ジョブ処理部０３−０３（図３）に通知してステップＳ１−２７へ進む。
【００５１】
ステップＳ１−２６
印刷ジョブは印刷処理部０３−０４（図３）で印刷されフローを終了する。
【００５２】
ステップＳ１−２７
印刷ジョブは印刷処理部０３−０４（図３）で破棄されフローを終了する。
【００５３】
以上説明したように、本実施例によれば、秘密鍵及び公開鍵は、リムーバブルメディアの内部に設けられた、アクセスに特別なプロコトルが必要とされる記憶領域（３）に保持されている。従って、記憶領域（３）へアクセスするプロコトルを知らない者は、秘密鍵及び公開鍵を取得することが出来ないので秘匿性がより一層高められるという効果を得る。（補足：上記動作の説明では述べなかったが、リムーバブルメディア上の秘密鍵に対しては、リムーバブルメディア以外、即ち印刷データ生成装置や印刷装置からアクセスすることはできず、唯一、ハッシュ値暗号化部からのみアクセスできる。その結果、本実施例によれば、秘密鍵に対する秘匿性は、極めて高くなるという効果を得る。）
【００５４】
又、従来技術によれば、印刷データ生成装置から画像形成装置へのデータ転送を仲介する着脱自在なインタフェース手段を用いて行う印刷システムでは、ユーザは、自己が印刷出力を求める所望の印刷データを生成できる印刷データ生成装置は、上記特定の機能を有する印刷データ生成装置に限られていたが、本実施例によれば、リムーバブルメディアが本実施例による機能を備えることによって上記特定の機能を有しない通常の印刷データ生成装置からでも書き込みできるという効果を得る。
【実施例２】
【００５５】
本実施例による印刷システムのシステム構成は実施例１と同様なので説明を省略する。
図８は、実施例２の印刷データ生成装置の構成図である。
図に示すように実施例２の印刷データ生成装置０１−０４は、内臓記憶媒体０８−０１と、アプリケーションソフトウェア０２−０７と、プリンタドライバ０８−１２と、インタフェース部０２−０６とを備える。以下に実施例１と相違する部分のみについて詳細に説明する。実施例１と同様の部分については、同一の符号を付して説明を省略する。
【００５６】
内蔵記憶媒体０８−０１は、さまざまなデータを格納するためのメモリであり、その中に、印刷データの元となる文書・画像０８−０２と、秘密鍵０８−０３とを保持している。
【００５７】
プリンタドライバ０８−１２は、印刷装置０１−０５（図１）に対応するドライバソフトウェアの集合であり、その内部に印刷ジョブ生成部０２−０４と、印刷ジョブ送信部０２−０５と、ハッシュ値算出部０８−０５と、ハッシュ値暗号化部０８−０６とを有している。ハッシュ値算出部０８−０５は、印刷データからハッシュ値を算出する部分である。ハッシュ値暗号化部０８−０６はハッシュ値を暗号化する部分である。実施例１では、ハッシュ値算出部０８−０５と、ハッシュ値暗号化部０８−０６とは、リムーバブルメディア０１−０３（図４）に含まれていた。
【００５８】
図９は、実施例２の印刷装置の構成図である。
図に示すように、本実施例の印刷装置０１−０５は、電子署名複合化部０３−０５と、ハッシュ値算出部０３−０６と、ハッシュ値比較部０３−０７と、印刷ジョブ受信部０３−０２と、印刷ジョブ処理部０３−０３と、印刷処理部０３−０４と、インタフェース部０３−０１と、内蔵記憶媒体０９−０１と、証明書生成部０９−１０とを備える。本実施例では、実施例１の印刷装置０１−０２（図３）に対して、内蔵記憶媒体０９−０１と証明書生成部０９−１０とが追加されている。
【００５９】
内臓記憶媒体０９−０１は、その中に、印刷データ生成装置０１−０４の秘密鍵０８−０３（図８）によって生成された証明書０９−０２を受入れて保持するメモリである。
図１０は、証明書の説明図である。
図に示すように、証明書には、証明書のバージョン、証明書のシリアルナンバー、証明書のシグネチャアルゴリズム、証明書の発行期間、証明書の発行日時、証明書の有効期間、証明書保持者の情報、公開鍵のアルゴリズム、公開鍵の内容など記載されている。
【００６０】
図１１は、実施例２のリムーバブルメディアの構成図である。
図に示すように、本実施例におけるリムーバブルメディア０１−０６は、コントローラ部１０−０２と、記憶領域１０−０３と、インタフェース部０４−０１とを備える。コントローラ部１０−０２は、インタフェース部０４−０１から印刷ジョブなどの送受信や記憶領域１０−０３へのアクセスを行う部分である。記憶領域１０−０３は、さまざまなデータを格納するためのメモリである。本実施例のリムーバブルメディア０１−０６は、実施例１のリムーバブルメディア０１−０３（図４）と異なり、ハッシュ値算出部０４−０３（図４）とハッシュ値暗号化部０４−０４（図４）を含まず、さらに記憶領域（１）０４−０５、記憶領域（２）０４−０６及び記憶領域（３）０４−０７に換えて記憶領域１０−０３が含まれている。
【００６１】
以上説明した実施例２の印刷システムは以下のように動作する。
図１２は、実施例２の動作の説明図（その１）である。
この図は、印刷データ生成装置０１−０４（図８）で、印刷ジョブが生成され、リムーバブルメディア０１−０６（図１１）へ格納されるまでの動作を表している。まず、印刷データ生成装置０１−０４で、秘密鍵０８−０３から証明書０９−０２（図９）が生成され、その証明書０９−０２（図９）が印刷装置０１−０４に登録されることになる。
【００６２】
ステップＳ２−１
印刷データ生成装置０１−０４（図８）において、プリンタドライバ０８−１２（図８）の公開鍵生成部０８−０９が動作を開始する。
【００６３】
ステップＳ２−２
公開鍵生成部０８−０９（図８）は、内臓記憶媒体０８−０１（図８）に保存されている秘密鍵０８−０３（図８）を呼び出す。呼び出された秘密鍵０８−０３（図８）は、公開鍵生成部０８−０９（図８）に送られる。
【００６４】
ステップＳ２−３
公開鍵生成部０８−０９（図８）は、秘密鍵０８−０３（図８）から、公開鍵１１−０１を生成する。秘密鍵０８−０３から公開鍵１１−０１を生成する方法は、モジュラー変換やべき乗変換が一般的に知られている。またＲＳＡ暗号化や楕円曲線暗号により、秘密鍵と公開鍵を同時に生成する方法もある。
【００６５】
ステップＳ２−４
公開鍵生成部０８−０９（図８）は、生成した公開鍵１１−０１を、インタフェース部０２−０６（図８）を通じ、リムーバブルメディア０１−０６（図８）へ送出し、格納する。
【００６６】
ステップＳ２−５
公開鍵１１−０１がリムーバブルメディア０１−０６（図１１）に格納されると、リムーバブルメディア０１−０６（図１１）は、インタフェース部０４−０１（図１１）を介して印刷装置０１−０５（図１１）に接続されているので、証明書生成部０９−１０（図９）が動作を開始する。
【００６７】
ステップＳ２−６
証明書生成部０９−１０（図９）は、インタフェース部０３−０１（図９）を介して、リムーバブルメディア０１−０６（図９）に格納されている公開鍵１１−０１を取得する。この公開鍵１１−０１は、記憶領域１０−０３（図１１）に格納されている。
【００６８】
ステップＳ２−７
証明書生成部０９−１０（図９）は、公開鍵１１−０１を用いて、証明書０９−０２（図９）を生成する。
【００６９】
ステップＳ２−８
証明書生成部０９−１０（図９）は、生成した証明書０９−０２を、内臓記憶媒体０９−０１（図９）に格納してフローを終了する。
【００７０】
続いて、印刷データ生成装置０１−０４（図８）で、印刷ジョブが生成され、リムーバブルメディア０１−０６（図１１）に格納されるまでの動作について説明する。
図１３は、実施例２の動作の説明図（その２）である。
ここでは、文書・画像０８−０２（図８）は、すでにアプリケーションソフトウェア０２−０７により作成済みで、内臓記憶媒体０８−０１（図８）に格納されており、この文書・画像０８−０２はアプリケーションソフトウェア０２−０７によって印刷ジョブに変換され、リムーバブルメディア０１−０６に格納されるまでの動作について説明する。
【００７１】
ステップＳ２−１１
アプリケーションソフトウェア０２−０７（図８）の印刷データ生成部０２−０３（図８）が動作を開始する。
【００７２】
ステップＳ２−１２
印刷データ生成部０２−０３（図８）は、内臓記憶媒体０８−０１（図８）に保存されている文書・画像０８−０２を呼び出す。
【００７３】
ステップＳ２−１３
呼び出された文書・画像０８−０２は、印刷データ生成部０２−０３（図８）によって、印刷装置０１−０５（図９）が処理可能な印刷データ１２−０１に変換され、プリンタドライバ０８−１２（図８）のハッシュ値算出部０８−０５（図８）と印刷ジョブ生成部０２−０４（図８）へ受け渡される。
【００７４】
ステップＳ２−１４
ハッシュ値算出部０８−０５（図８）は、印刷データ１２−０１をハッシュ関数に投入する。
【００７５】
ステップＳ２−１５
投入された印刷データ１２−０１を元に演算を行ったハッシュ関数は、ハッシュ値１２−０２を算出し、ハッシュ値暗号化部０８−０６（図８）に受け渡す。
【００７６】
ステップＳ２−１６
ハッシュ値暗号化部０８−０６（図８）は、内臓記憶媒体０８−０１に格納されている秘密鍵０８−０３を取得する。
【００７７】
ステップＳ２−１７
ハッシュ値暗号化部０８−０６（図８）は、秘密鍵０８−０３を使用し、ハッシュ値１２−０２を暗号化して電子署名１２−０３を生成し、印刷ジョブ生成部０２−０４（図８）に受け渡す。
【００７８】
ステップＳ２−１８
印刷ジョブ生成部０２−０４（図８）は、電子署名１２−０３をその１つに含めた、印刷装置０１−０５（図９）の制御コマンド１２−０４を生成し、印刷データ１２−０１と組み合わせ、印刷ジョブ１２−０５を生成し、印刷ジョブ送信部０２−０５（図８）に受け渡す。
【００７９】
ステップＳ２−１９
印刷ジョブ送信部０２−０５（図８）は、指定されたインタフェース部（ここでは、リムーバブルメディア０１−０６が接続されているインタフェース部０２−０６を通じ、インタフェース部０２−０６に接続されているリムーバブルメディア０１−０６へ送信する。
【００８０】
ステップＳ２−２０
印刷ジョブ１２−０５は、リムーバブルメディア０１−０６に格納されフローを終了する。
【００８１】
続いて、印刷データ生成装置０１−０４から送信された印刷ジョブ１２−０５が、リムーバブルメディア０１−０６（図１１）の記憶領域１０−０３に格納されるまでの動作について説明する。
【００８２】
図１４は、実施例２の動作の説明図（その３）である。
ステップＳ２−２１
印刷データ生成装置０１−０４（図８）で生成された印刷ジョブ１２−０５は、インタフェース部０２−０６（図８）を通じ、リムーバブルメディア０１−０６（図１１）のコントローラ部１０−０２に受け渡される。
【００８３】
ステップＳ２−２２
コントローラ部１０−０２（図１１）は、印刷ジョブ１２−０５を受入れる。
【００８４】
ステップＳ２−２３
コントローラ部１０−０２（図１１）は、印刷ジョブ１２−０５を記憶領域１０−０３（図１１）に格納してフローを終了する。
【００８５】
最後に、印刷装置０１−０５（図９）がリムーバブルメディア０１−０６（図１１）から印刷ジョブ１２−０８を受信し、印刷を行うまでの動作について説明する。
図１５は、実施例２の動作の説明図（その４）である。
【００８６】
ステップＳ２−３１
印刷装置０１−０５の印刷ジョブ受信部０３−０２（図９）は、インタフェース部０３−０１を通じ、リムーバブルメディア０１−０６にアクセスし、印刷ジョブ１２−０５を取得し、印刷ジョブ処理部０３−０３（図９）に受け渡す。
【００８７】
ステップＳ２−３２
印刷ジョブ処理部０３−０３（図９）は、印刷ジョブ１２−０５を、印刷データ１２−０１と制御コマンド１２−０４に分離し、電子署名復号化部０３−０５に制御コマンド１２−０４を、ハッシュ値算出部０３−０６に印刷データ１２−０１を受け渡す。
【００８８】
ステップＳ２−３３
電子署名復号化部０３−０５（図９）は、制御コマンド１２−０４に含まれている電子署名１２−０３を抽出する。
【００８９】
ステップＳ２−３４
電子署名復号化部０３−０５（図９）は、内臓記憶媒体０９−０１（図９）に格納されている証明書０９−０２を取得する。もし複数存在する場合には、管理上の順番に従って取得する。
【００９０】
ステップＳ２−３５
電子署名復号化部０３−０５（図９）は、証明書０９−０２から公開鍵１１−０１を抽出する。具体的には、証明書（図１０）のフォーマットの、「ＲＳＡ  Ｐｕｂｌｉｃ  Ｋｅｙ」公開鍵の内容を読み出すことになる。
【００９１】
ステップＳ２−３６
電子署名復号化部０３−０５（図９）は、公開鍵１１−０１を用い、電子署名１２−０３を復号化し、ハッシュ値１２−０２を抽出し、ハッシュ値比較部０３−０７へ受け渡す。
【００９２】
ステップＳ２−３７
ハッシュ値算出部０３−０６（図９）は、印刷データ１２−０１をハッシュ関数に投入する。
【００９３】
ステップＳ２−３８
ハッシュ値算出部０３−０６（図９）は、ハッシュ値１２−０２を算出してハッシュ値比較部０３−０７（図９）へ受け渡す。
【００９４】
ステップＳ２−３９
ハッシュ値比較部０３−０７（図９）は、ハッシュ値１２−０２とハッシュ値１３−０１とを比較する。し、一致したときはステップＳ２−４１へ進み、不一致のときはステップＳ２−４２へ進む。
【００９５】
ステップＳ２−４０
一致したときは、比較結果が一致であることを印刷ジョブ処理部０３−０３に通知してステップＳ２−４１へ進み、不一致のときは、比較結果が一致であることを印刷ジョブ処理部０３−０３に通知してステップＳ２−４２へ進む。
【００９６】
ステップＳ２−４１
印刷ジョブ処理部０３−０３は、ハッシュ値比較部０３−０７からの一致であることの通知に基づいて、以下に挙げる２つの判断を行う。
［１］印刷装置０１−０５が持っている証明書０９−０２により、「一致」するハッシュ値を得ることができたので、この印刷データ１２−０１は、印刷装置０１−０５（図９）が認識している印刷データ生成装置０１−０４（図８）で生成されたものであると判断する（印刷データの送信者の確認）。
［２］「一致」するハッシュ値を得ることができたので、この印刷データ１２−０１は、改ざんされていないものであると判断する（改ざんの検出）。
以上の判断が行われたうえで、印刷ジョブ処理部０３−０３は、印刷データ１２−０１を印刷処理部０３−０４に受け渡す。印刷処理部０３−０４は、印刷ジョブ処理部０３−０３から印刷データ１２−０１を受入れて印刷を行いフローを終了する。
【００９７】
ステップＳ２−４２
印刷ジョブ処理部０３−０３（図９）は、ハッシュ値比較部０３−０７からの通知の結果が「不一致」だった場合、以下に挙げる２つの判断を行う。
印刷装置０１−０５が持っている証明書０９−０２により、「一致」するハッシュ値を得ることができなかったので、この印刷データ１２−０１は、印刷装置０１−０５が認識している印刷データ生成装置０１−０４で生成されたものでないと判断する（印刷データの送信者の確認）。
「一致」するハッシュ値を得ることができなかったので、この印刷データ１２−０１は、改ざんされていると判断する（改ざんの検出）。
以上の判断が行われたうえで、印刷ジョブ処理部０３−０３は、電子署名復号化部０３−０５に対し、別の証明書を使用して、再度電子署名の復号化を行うよう指示をする。以下、ハッシュ値比較部０３−０７での比較を行い、再度結果を得る。以上の流れを、印刷装置０１−０５が持っているすべての証明書に対し繰り返し、「一致」するものが無かった場合は、印刷データ１２−０１を印刷処理部０３−０４に受け渡さず、破棄してフローを終了する。
【００９８】
本実施例によれば、従来技術と比較し、以下のような効果を得ることができる。
従来技術によれば、印刷データとともに電子署名をリムーバブルメディアに格納し、印刷装置に受け渡している。しかし本実施例によれば、電子署名は、印刷データに付加される、印刷装置の制御コマンドの１つとして、印刷ジョブに含まれている。すなわち、従来技術ではリムーバブルメディアから印刷データを取得すると同時に、電子署名も取得するため、リムーバブルメディア上の電子署名の格納先の情報などを、印刷装置が知らなければならなかった。しかし本実施例では、印刷ジョブに印刷データと電子署名が含まれているため、印刷装置は印刷ジョブの格納先のみ知っていればよいことになる。このことから、本実施例は従来技術に比べ、印刷ジョブ取得の方法が簡素化するという効果をえる。又、電子署名は、印刷データに付加される印刷装置の制御コマンドの１つとして、印刷ジョブに含まれているため、印刷データ送信者の確認が容易になるという効果を得る。
【産業上の利用可能性】
【００９９】
上記実施例では、本発明を印刷システムに適用した場合に限定して説明したが、本発明はこの例に限定されるものでは無い。即ち、複合機やファクシミリ装置用いた画像形成システムにも適用可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明の印刷システムの構成図である。
【図２】実施例１の印刷データ生成装置の構成図である。
【図３】実施例１の印刷装置の構成図である。
【図４】実施例１のリムーバブルメディアの構成図である。
【図５】実施例１の動作の説明図（その１）である。
【図６】実施例１の動作の説明図（その２）である。
【図７】実施例１の動作の説明図（その３）である。
【図８】実施例２の印刷データ生成装置の構成図である。
【図９】実施例２の印刷装置の構成図である。
【図１０】証明書の説明図である。
【図１１】実施例２のリムーバブルメディアの構成図である。
【図１２】実施例２の動作の説明図（その１）である。
【図１３】実施例２の動作の説明図（その２）である。
【図１４】実施例２の動作の説明図（その３）である。
【図１５】実施例２の動作の説明図（その４）である。
【符号の説明】
【０１０１】
０１−０１    印刷データ生成装置
０１−０２    印刷装置
０１−０３    リムーバブルメディア
０４−０１    インタフェース部
０４−０２    コントローラ部
０４−０３    ハッシュ値算出部
０４−０４    ハッシュ値暗号化部
０４−０５    記憶領域（１）
０４−０６    記憶領域（２）
０４−０７    記憶領域（３）
０４−０８    秘密鍵
０４−０９    公開鍵
【図１】
2008083949.tif 000003
【図２】
2008083949.tif 000004
【図３】
2008083949.tif 000005
【図４】
2008083949.tif 000006
【図５】
2008083949.tif 000007
【図６】
2008083949.tif 000008
【図７】
2008083949.tif 000009
【図８】
2008083949.tif 000010
【図９】
2008083949.tif 000011
【図１０】
2008083949.tif 000012
【図１１】
2008083949.tif 000013
【図１２】
2008083949.tif 000014
【図１３】
2008083949.tif 000015
【図１４】
2008083949.tif 000016
【図１５】
2008083949.tif 000017