(57)【特許請求の範囲】
【請求項１】
ハッシュ値を埋め込んだ電子文書データを出力する文書出力装置であって、
電子文書データと、該電子文書データの印刷設定を定義する印刷設定データとのうち一方のデータを対象としてハッシュ計算を行って第１のハッシュ値を計算する第１の計算手段と、
前記第１の計算手段により得られた前記第１のハッシュ値を、前記計算手段によるハッシュ計算の対象となっていないもう一方のデータに埋め込む埋め込み手段と
を備えることを特徴とする文書出力装置。
【請求項２】
前記第１の計算手段は、前記印刷設定データのうち、利用者に指定された設定パラメータを除く部分を対象としてハッシュ計算を行うことを特徴とする請求項１に記載の文書出力装置。
【請求項３】
前記利用者に指定された設定パラメータとして利用者が指定できる設定パラメータには、印刷部数の設定パラメータとソートの設定パラメータとが含まれることを特徴とする請求項２に記載の文書出力装置。
【請求項４】
前記印刷設定データを、前記第１の計算手段によるハッシュ計算の対象としていない場合には、前記印刷設定データを対象としてハッシュ計算を行って第２のハッシュ値を計算する第２の計算手段と、
前記第１の計算手段により前記電子文書データを対象として計算された前記第１のハッシュ値または前記第２の計算手段により計算された前記第２のハッシュ値を鍵として前記電子文書データを暗号化する暗号化手段と
を更に備えることを特徴とする請求項１乃至３のいずれか１項に記載の文書出力装置。
【請求項５】
電子文書データを、該電子文書データに対応する印刷設定データとのうち一方のデータを対象としてハッシュ計算を行ってハッシュ値を計算する計算手段と、
前記ハッシュ計算の対象ではないもう一方のデータに埋め込まれたハッシュ値と、前記計算手段により計算したハッシュ値とを比較する比較手段と、
前記比較手段により両ハッシュ値が一致した場合には、前記電子文書データ及び前記印刷設定データを基に印刷データを生成する手段と
を備えることを特徴とする文書出力装置。
【請求項６】
前記計算手段によるハッシュ計算の対象となる部分を示す対象位置情報が、前記ハッシュ計算の対象ではないもう一方のデータに埋め込まれており、前記計算手段は、前記対象位置情報で示される部分を対象としてハッシュ値を計算することを特徴とする請求項５に記載の文書出力装置。
【請求項７】
前記電子文書データが暗号化されている場合には、前記計算手段により前記印刷設定データを対象として計算されたハッシュ値、または、前記計算手段により前記印刷設定データが対象とされていな場合には、前記印刷設定データを対象として計算されたハッシュ値を鍵として前記電子文書データを暗号解読する手段を更に備えることを特徴とする請求項５または６に記載の文書出力装置。
【請求項８】
計算手段と埋め込み手段とを有し、ハッシュ値を埋め込んだ電子文書データを出力する文書出力装置の制御方法であって、
前記計算手段が、電子文書データと、該電子文書データの印刷設定を定義する印刷設定データとのうち一方のデータを対象としてハッシュ計算を行ってハッシュ値を計算する計算工程と、
前記埋め込み手段が、前記計算工程により得られた前記ハッシュ値を、前記計算工程によるハッシュ計算の対象となっていないもう一方のデータに埋め込む埋め込み工程と
を有することを特徴とする文書出力装置の制御方法。
【請求項９】
計算手段と比較手段と生成手段とを備えた文書出力装置の制御方法であって、
前記計算手段が、電子文書データと、該電子文書データに対応する印刷設定データとのうち一方のデータを対象としてハッシュ計算を行ってハッシュ値を計算する計算工程と、
前記比較手段が、前記ハッシュ計算の対象ではないもう一方のデータに埋め込まれたハッシュ値と、前記計算工程により計算したハッシュ値とを比較する比較工程と、
前記生成手段が、前記比較工程により両ハッシュ値が一致した場合には、前記電子文書データ及び前記印刷設定データを基に印刷データを生成する生成工程と
を備えることを特徴とする文書出力装置の制御方法。
【請求項１０】
ハッシュ値を埋め込んだ電子文書データを出力するためのプログラムであって、
電子文書データと、該電子文書データの印刷設定を定義する印刷設定データとのうち一方のデータを対象としてハッシュ計算を行ってハッシュ値を計算する計算工程と、
前記計算工程により得られたハッシュ値を、前記計算工程によるハッシュ計算の対象となっていないもう一方のデータに埋め込む埋め込み工程と
をコンピュータに実行させるためのプログラム。
【請求項１１】
電子文書データと、該電子文書データの印刷設定を定義する印刷設定データとのうち一方のデータを対象としてハッシュ計算を行ってハッシュ値を計算する計算工程と、
前記ハッシュ計算の対象ではないもう一方のデータに埋め込まれたハッシュ値と、前記計算工程により計算したハッシュ値とを比較する比較工程と、
前記比較工程により両ハッシュ値が一致した場合には、前記電子文書データ及び前記印刷設定データを基に印刷データを生成する生成工程と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷設定データと電子文書データとの組み合わせ、及び、印刷結果を保証する文書出力装置及びその制御方法と文書出力システムに関する。合わせて、印刷設定データと電子文書データの組み合わせを保証すると同時に、印刷設定データの一部を変更許可する技術に関する。
【背景技術】
【０００２】
従来、ＰＤＦ形式等の電子文書ファイルを、別途指定した印刷設定（印刷体裁）で印刷する技術がある。このために印刷対象の電子文書ファイルと、印刷設定ファイルとが組み合わされて陰経つ処理の対象とされる。印刷設定ファイルと電子文書データの組み合わせ及び、印刷結果を保証する技術に関連するものとして、電子文書に関連付けられている印刷条件を、ネットワークを介してアクセスコントロールサーバから取得することで実現するものがある（特許文献１）。別の技術としては、クライアントから印刷データ生成サーバに印刷データを送信し、印刷データ要求情報から、所望の印刷装置への印刷が許可されているかを判断し、クライアントに印刷データを返却して印刷するものがある（特許文献２）。また、２つ以上のファイルの組み合わせを保証する技術としては、改ざん検知情報等の電子文書に関連する属性情報を、別のファイルとして記憶部に保存し、電子文書の一部分でも改ざんされた場合、原本性を保証しないものがある（特許文献３）。
【特許文献１】特開２００４−１５２２６１号公報
【特許文献２】特開２００６−２３８２１号公報
【特許文献２】特開２００１−００５７２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した従来技術の場合、特許文献１に関しては、アクセスコントロールサーバを利用する必要があり、利用環境が制限されるため、利便性を損なう問題点がある。また、特許文献２に関しても同様に、印刷データ生成サーバ等のサーバを利用する必要があり、利用環境が制限されるため、利便性を損なう問題点がある。さらに、特許文献３に関しては、改ざんを検知するための情報を別のファイルとして記憶部に保存している。そのため、ポータビリティが損なわれることと、電子文書の一部でも改竄された場合に電子文書群の組み合わせを保証しないことから、電子文書の一部を改変することを許可するシステムにおいては利用することが困難であるという問題点がある。
【０００４】
本発明は上記従来例に鑑みて成されたものであり、上記課題解決を目的とする。すなわち、電子文書データとその印刷体裁を定義した印刷設定データとの関連づけを、それらデータの受信者がサーバなしで検証可能であり、印刷設定データの一部について設定変更可能な文書出力装置及びその制御方法と文書出力システムを提供する。
【課題を解決するための手段】
【０００５】
上述した課題を解決するために、本発明は以下の構成を備える。すなわち、ハッシュ値を埋め込んだ電子文書データを出力する文書出力装置であって、
電子文書データと、該電子文書データの印刷設定を定義する印刷設定データとのうち一方のデータを対象としてハッシュ計算を行って第１のハッシュ値を計算する第１の計算手段と、
前記第１の計算手段により得られた前記第１のハッシュ値を、前記計算手段によるハッシュ計算の対象となっていないもう一方のデータに埋め込む埋め込み手段とを備える。
【０００６】
他の側面によれば、本発明は、電子文書データを、該電子文書データに対応する印刷設定データとのうち一方のデータを対象としてハッシュ計算を行ってハッシュ値を計算する計算手段と、
前記ハッシュ計算の対象ではないもう一方のデータに埋め込まれたハッシュ値と、前記計算手段により計算したハッシュ値とを比較する比較手段と、
前記比較手段により両ハッシュ値が一致した場合には、前記電子文書データ及び前記印刷設定データを基に印刷データを生成する手段とを備える。
【発明の効果】
【０００７】
本発明によって、印刷設定データと電子文書データとの組み合わせをその送信側が受信側に対して保証することが可能となり、作成者の意図しない印刷物の出力を防ぐことができる。また、電子文書データを、印刷設定データに基づいて生成した鍵を用いて暗号化することで、印刷設定データと電子文書データの組み合わせ検証機能を持っていないシステムに対して、不正な組み合わせの印刷設定データと電子文書データの出力を防ぐことが出来る。さらに、印刷設定データの一部を変更することを許可しつつ、印刷設定データと電子文書データの組み合わせを保証する仕組みを提供することが出来る。
【発明を実施するための最良の形態】
【０００８】
＜処理の概要＞
まず本実施形態に係る処理の概略を説明する。本実施形態の文書処理装置（あるいは文書出力装置）は、電子文書データと、電子文書データの印刷設定を定義する印刷設定データとを関連づけて出力できる。その際に、電子文書データ及び前記印刷設定データのうち一方のデータを対象としてハッシュ計算を行ってハッシュ値を計算する。ハッシュ計算の対象は、電子文書データである場合と印刷設定データである場合とがあり、印刷設定データが対象となる場合には、その一部が対象となる。そして、得られたハッシュ値を、ハッシュ計算の対象となっていないもう一方のデータに埋め込む。こうして埋め込まれたハッシュ値と、データから再度計算されたハッシュ値とを比較することで、電子文書データと印刷設定データとの対が本来のものか検証できる。
【０００９】
このときハッシュ計算を、たとえばソートの有無を指定する指定パラメータおよび部数を指定する指定パラメータを除く部分を対象として行うことで、除外された部分を改変できる。除外された部分を変更しても、変更前後のデータを対象として計算したハッシュ値は同じだからである。
【００１０】
また、電子文書データを、印刷設定データを対象として得られたハッシュ値を鍵として暗号化する。上述のように印刷設定データを対象としてハッシュ計算を行った場合には得られたハッシュ値を暗号鍵としても利用できる。しかし電子文書データを対象としてハッシュ計算を行った場合には、印刷設定データを対象として第２のハッシュ計算を行って第２のハッシュ値を計算する。その第２のハッシュ値が電子文書データを暗号化する鍵となる。
【００１１】
一方ハッシュ値を埋め込まれた電子文書データと印刷設定データの対を受信した文書出力装置あるいは印刷装置は、その対が本来あるべきものであれば出力可能である。そこでまず１対の電子文書データと印刷設定データのうち一方のデータを対象としてハッシュ計算を行ってハッシュ値を計算する。このときの計算の対象の位置は、予め決められているか、あるいは対象位置情報としてデータに埋め込まれている。そして、ハッシュ計算の対象ではないもう一方のデータに埋め込まれたハッシュ値と、計算で得られたハッシュ値とを比較する。両ハッシュ値が一致した場合には、電子文書データと印刷設定データの対は、送信側で設定した対であるから、そのデータを基に印刷データを生成する。また、電子文書データが暗号化されている場合には、印刷設定データを対象として計算されたハッシュ値があればその値を鍵とし、なければ印刷設定データを対象として計算されたハッシュ値を鍵として文書データを暗号解読（すなわち復号）する。
【００１２】
本実施形態の概略は以上のようなものである。次に詳しい説明する。まず、印刷設定データからハッシュ値を計算して電子文書データに埋め込む例を説明し、次に、電子文書データからハッシュ値を計算して印刷設定データに埋め込む例を説明する。
［第１実施形態］
本発明に係る実施形態１を図面に基づいて説明する。なお、印刷設定データをＪＤＦ（Ｊｏｂ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｏｒｍａｔ）ファイル、電子文書データをＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）ファイルとした実施形態として説明する。ただし、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）や、ＳＶＧ（Ｓｃａｌｅａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃ）等の構造化電子文書を電子文書データとして本発明を適用することが可能である。
【００１３】
＜本実施形態の文書処理システムのハードウェア構成例＞
まず図１２を参照して本実施形態に係る装置の構成を説明する。図１２は本実施形態の文書処理システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ，ＷＡＮ等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
【００１４】
図１２において、ホストコンピュータ１００は、ＣＰＵ２０１やＲＡＭ２０２、ＲＯＭ２０３等を備える。ＣＰＵ２０１は、プログラム用ＲＯＭあるいは外部メモリ２１１に記憶された文書処理プログラム等に基づいて、文書処理を実行する。この文書処理には、後述する電子文書データと印刷設定データとの組み合わせの正しさを検証するためのデータを作成する手順および正しさを検証するための手順が含まれる。またＣＰＵ２０１は、システムバス２０４に接続される各デバイスを総括的に制御する。また、外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶する。データ用ＲＯＭ領域あるいは外部メモリ２１１には上記文書処理等を行う際に使用する各種データを記憶する。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００１５】
キーボードコントローラ（ＫＢＣ）２０５は、キーボード２０９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０の表示を制御する。ディスクコントローラ（ＤＫＣ）２０７は、ハードディスク（ＨＤ）やフロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ２１１とのアクセスを制御する。外部メモリ１１１には、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等が記憶される。また本実施形態に係る電子文書データおよび印刷体裁データ（それぞれＰＤＦファイルおよびＪＤＦファイルに相当）も格納される。ＮＩＣ（ネットワークインターフェースカード）２０８は、ＬＡＮ等の通信ネットワーク２１を介してプリンタ１０７に接続されて、プリンタ１０７との通信制御処理を実行する。
【００１６】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ２１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、プリンタドライバにより提供される印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００１７】
プリンタ１０７は、ＣＰＵ３１２により制御される。プリンタＣＰＵ３１２は、プログラム用ＲＯＭ領域に記憶された制御プログラム等あるいは外部メモリ３１４に記憶された制御プログラム等に基づいてシステムバス３１５に接続される印刷部（プリンタエンジン）３１７に出力情報としての画像信号を出力する。また、このＲＯＭ３１３のプログラムＲＯＭ領域には、ＣＰＵ３１２の制御プログラム等を記憶する。ＲＯＭ３１３のフォント用ＲＯＭ領域には上記出力情報を生成する際に使用するフォントデータ等が記憶される。ＲＯＭ３１３のデータ用ＲＯＭ領域には、ハードディスク等の外部メモリ３１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
【００１８】
ＣＰＵ３１２はＮＩＣ３１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ１００に通知できる。ＲＡＭ３１９は、ＣＰＵ３１２の主メモリや、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ３１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ３１４は、メモリコントローラ（ＭＣ）３２０によりアクセスを制御される。外部メモリ３１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、３１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００１９】
また、外部メモリ３１４は１個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないＮＶＲＡＭを有し、操作部３２１からのプリンタモード設定情報を記憶するようにしてもよい。
【００２０】
またホストコンピュータ１０１はホストコンピュータ１００と同じ構成を有するコンピュータである。本実施形態では、ホストコンピュータにより電子文書データとその電子文書データに対応する印刷体裁データとが印刷ジョブファイルとして、ネットワークで接続されたコンピュータや複合機能周辺装置に提供されている。そして、ホストコンピュータまたは複合機能周辺装置が、印刷ジョブファイルを特定してダウンロードを指示すると、その印刷ジョブファイルを受信する。そして、それに含まれる電子文書データと印刷体裁データとが本来あるべき組み合わせであるか検証し、本来あるべきもの（すなわち正しい）のであれば印刷できる。
【００２１】
＜処理の流れ＞
次に図１を主に用いて、本発明に係る処理の流れについて概要を説明し、次に、各処理の詳細について各図を用いて説明する。
【００２２】
図１のＳ０００の処理において、製本アプリケーション等で、生成した電子文書データであるＰＤＦファイルに対してあらかじめ印刷設定を行った情報を元にＪＤＦファイルを生成する。ＪＤＦ（Ｊｏｂ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｏｒｍａｔ）ファイルとは、印刷設定を保存するための印刷設定データであり、ＸＭＬで記述されている。ＪＤＦは、予め定められた名前空間で定義されたタグを用いて記述されている。本実施形態では通常用いられるタグに加えて、ハッシュ対象の範囲を示すタグと、ハッシュ値を示すタグとが追加されている。それらタグを用いて、ハッシュ対象の範囲と、ハッシュ計算で得られたハッシュ値とがＪＤＦファイルに記述される。ＪＤＦで通常定義される印刷設定には、たとえば出力されたシートのソートの設定パラメータや、印刷部数の設定パラメータが含まれる。また生成されたＪＤＦファイルには、それに対応するＰＤＦファイルを特定するためのパス情報が記述される。この情報をコンテンツのパスと呼ぶ。
【００２３】
なお、生成したＪＤＦファイルとＰＤＦファイルを出力する際に、図７のダイアログが表示される。ユーザはこのダイアログ７０１を介して出力前の設定を行える。図７は、ＪＤＦファイルとＰＤＦファイルの組み合わせを保証するかどうかの設定を行うダイアログ７０１である。ここで、ＪＤＦファイルとＰＤＦファイルの組み合わせを保証したい場合、チェックボックス７０２［ＪＤＦとＰＤＦの組み合わせを保証する］をチェックする。次に、印刷内容に影響を与えない部分を変更可能にしたい場合、チェックボックス７０３［印刷内容に影響を与えない部分を変更可能にする］をチェックする。この場合、印刷内容に影響を与えないＪＤＦ内の各種属性の選択を、自動で設定するか、手動で設定するかを選択することが可能となる。なお「属性」とは、印刷設定の各設定項目のことである。また各設定項目の値のことを属性と呼ぶ場合もある。したがって、本明細書で「属性」といった場合、それは「設定項目」と言い換えることもできる。
【００２４】
印刷内容に影響を与えないＪＤＦファイル内の各種属性は、利用環境によって異なる。例えば、利用環境において用紙種類を必ず上質紙にして印刷する必要がある場合、用紙種類を示す属性（設定項目）は印刷内容に影響を与えるとみなせるため変更許可できない。しかし、別の利用環境において、任意の用紙種類での印刷を許可している場合は、用紙種類は、印刷内容に影響を与えない属性とみなすことが出来る。よって、下記印刷内容に影響を与えない部分を変更可能にするＪＤＦファイル内の属性リストは、利用環境に応じたものを利用者が用意することが望ましい。
【００２５】
「自動で設定」を選択した場合、あらかじめ用意されている、変更によって印刷内容に影響を与えない項目のリストを読み込み、すべてのリスト項目を変更可能な項目とする。この例を図８に示す。「手動で設定」を選択した場合、変更によって印刷内容に影響を与えない設定項目のリストがリストボックスに表示され、その中からユーザが選択した項目のチェックボックスに明示的にチェックを行うことで選択する。図８で指定された出力前設定、すなわち各チェックボックスに対応するフラグや、変更可能な項目のリストは、メモリ等に保存されて、後で参照される。
【００２６】
Ｓ００１の処理は、前述のダイアログ７０１で表示されたチェックボックス７０２［ＪＤＦとＰＤＦの組み合わせを保証する］がチェックされているかどうかの判定に相当する。組み合わせを保証しない場合、処理対象のシステムに送信し、通常の印刷処理を行う。ただし、この場合は、ＪＤＦファイルとＰＤＦファイルの組み合わせの保証がされていないため、印刷結果の保証はされない。
【００２７】
Ｓ００２の処理は、前述のダイアログ７０１でチェックボックス７０３［印刷内容に影響を与えない部分を変更可能にする］がチェックされているかどうかの判定に相当する。チェックされていない場合は、ＪＤＦファイルの全ての領域を保護するとみなし、処理はＳ００３に移行する。一方チェックされている場合には、Ｓ００８において、自動設定であれば非保護項目の候補すべてについて、手動設定であれば非保護項目の候補のうちから選択された項目について特定する情報を、一時的に非保護領域として保存する。
【００２８】
次にＳ００３の処理において、前記設定を元にＪＤＦファイルとＰＤＦファイルの組み合わせ保証の処理を行う。処理の詳細については後述する。このときＳ００８において特定した非保護候補の項目はハッシュ計算の対象から除外される（詳しくは後述する。）
Ｓ００４の処理において、Ｓ００３の処理が終了した後、組み合わせが保証されたＪＤＦファイルとＰＤＦファイルが生成される。生成されたＪＤＦファイルとＰＤＦファイルとは１組の印刷ジョブファイルとして、ネットワークで共有されるフォルダに保存される。また処理対象のシステムにＪＤＦファイルとＰＤＦファイルとを送信してもよい。ここで送信側文書出力装置による処理が終了する。Ｓ００５以降は受信側文書出力装置による処理である。受信側文書出力装置はいわゆるコンピュータではなくともよく、たとえば印刷装置であってもよい。
【００２９】
Ｓ００５の処理において、ＪＤＦファイルとＰＤＦファイルを受け取った受信側文書出力装置では、ＪＤＦファイルとＰＤＦファイルの組み合わせ保証の検証を行う。処理の詳細については後述する。
【００３０】
Ｓ００６の処理において、Ｓ００５の処理の結果、正しい組み合わせかどうかを判定する。正しい組み合わせである場合、Ｓ００７の処理において、システムで印刷処理を実行する。本来生成された組み合わせではない場合は、全ての処理を終了する。なお本来生成された組み合わせとは、Ｓ０００４で出力されるＪＤＦファイルとＰＤＦファイルの対または組をいう。組とは、ＰＤＦファイルが複数ある場合である。正しくない組み合わせは、たとえばいずれかのファイルが当初と異なるファイルに置換されている場合や、その内容が変更されている場合である。ただしＪＤＦファイル中において非保護項目として選択された項目の変更は除外される。
【００３１】
次に、前記ＪＤＦファイルとＰＤＦファイルの組み合わせ保証の処理について、ＰＤＦファイルに署名を行うことで保証する方法と、ＪＤＦファイルに署名を行うことで保証する方法の２通りの方法について説明する。
【００３２】
＜ＰＤＦファイルに署名を行う場合（第１の場合）＞
以下、主に図２を用いて、ＰＤＦファイルに署名を行うことでＪＤＦファイルとＰＤＦファイルの組み合わせを保証する方法について説明する。図２は図１のＳ００３の詳細である。
【００３３】
図２のＳ１００の処理において、ＪＤＦファイルとＰＤＦファイルの組み合わせを保証するかどうかの設定を行うダイアログの設定に応じて、ＪＤＦファイルの全体もしくは一部に対してハッシュ値Ａを算出する。すなわち、Ｓ１００が計算手段に相当する。なお、具体的なハッシュ範囲の決定については後述する。Ｓ１０１の処理において、Ｓ１００で算出したハッシュ値Ａ及びハッシュ範囲の情報をＰＤＦファイルに埋め込む。以下、具体的な埋め込み方法について、図９を用いて説明する。図９はＰＤＦファイルの構造の一部の例を示す。図９においてＰＤＦファイルは、ページ辞書９０１，ページピース辞書９０２、アプリケーションデータ辞書９０３、コンテンツストリーム辞書９０４という階層構造を有する。
【００３４】
ＰＤＦファイル内にＪＤＦファイルのハッシュ値とハッシュ範囲とを埋め込む場合、ＰＤＦファイル内にある先頭のページ辞書９０１に対して、／ＰｉｅｃｅＩｎｆｏエントリ９０１ａ及び、／ＬａｓｔＭｏｄｉｆｉｅｄエントリ９０１ｂを追加する。これは図９に示すとおりである。／ＰｉｅｃｅＩｎｆｏについては、間接オブジェクトとして、別途ページピース辞書を生成し、参照する形にするのが望ましい。生成した／ＰｉｅｃｅＩｎｆｏエントリのページピース辞書は、ページ辞書とエントリのたとえばＩＤで関連づけられる。また、／ＬａｓｔＭｏｄｉｆｉｅｄについては、このエントリを追加した時点の日時情報をＰＤＦの日時フォーマットに従い追加する。生成した／ＰｉｅｃｅＩｎｆｏエントリのページピース辞書９０２には、ＪＤＦファイルのハッシュ値及びハッシュ範囲を追加するために、更に／ＣｎＪＤＦＨａｓｈＤａｔａエントリ９０２ａを追加する。そして／ＣｎＪＤＦＨａｓｈＤａｔａエントリのアプリケーションデータ辞書９０３をページピース辞書と同様に生成する。アプリケーションデータ辞書９０３には、前述の／ＬａｓｔＭｏｄｉｆｉｅｄのエントリと同様の内容を追加し、さらに、実際にハッシュ値及びハッシュ範囲が記述されるコンテンツストリーム辞書９０４を追加する。コンテンツストリーム辞書内９０４には、ハッシュ値の長さを示す／Ｌｅｎｇｔｈエントリ９０４ａ及び、ハッシュ範囲を示す／ＢｙｔｅＲａｎｇｅエントリ９０４ｂを追加する。
【００３５】
／ＢｙｔｅＲａｎｇｅエントリ９０４ｂの値は、ＰＤＦの配列構造のフォーマットとし、オフセット値と長さのペアで記述される。オフセット値は、ＪＤＦファイルの先頭からハッシュ範囲外とする属性値（設定項目）直前までのオフセット値である。長さは、オフセット値で示される位置からハッシュの適用範囲とするデータの長さである。このペアが、ＪＤＦファイルのハッシュ範囲の適用部分の数だけ記述される。また、／ＢｙｔｅＲａｎｇｅエントリ９０４ｂの値に対する別の記述方法として、ハッシュ範囲を、／ＢｙｔｅＲａｎｇｅ［Ｃｏｌｌａｔｅ  Ａｍｏｕｎｔ  ・・・］のように、ＪＤＦファイル内のハッシュ範囲外とする属性値の属性名を記述する方法がある。この場合は、後述のＪＤＦファイルとＰＤＦファイルの組み合わせ保証の検証処理の際に、記述された属性名に対する属性値以外をハッシュ範囲とすることになる。ハッシュ値は、ストリームデータを記述する部分９０４ｃに埋め込む。
【００３６】
次にＳ１０２の処理において、Ｓ１０１で計算したハッシュ値を用いてＰＤＦファイルを暗号化する。暗号化の方式は、ＰＤＦの仕様に準拠することが望ましく、暗号化される箇所は、ＰＤＦファイル内の文字列情報部分および、コンテンツストリーム辞書内のストリームデータである。したがって、ハッシュの範囲を示す／ＢｙｔｅＲａｎｇｅエントリ９０４ｂは暗号化されない。なお暗号鍵のことを本実施形態ではＰＤＦの仕様に従ってパスワードとも呼ぶ。
【００３７】
Ｓ１０３の処理において、ＰＤＦファイルに対して署名を行う。署名の方式は、ＰＤＦの仕様に準拠することが望ましく、電子署名データ以外の部分の改ざんを検知するように、電子署名データが生成され、ＰＤＦファイル内部に埋め込まれる。
【００３８】
Ｓ１０４の処理において、ＪＤＦファイルが参照するＰＤＦファイルが複数存在する場合は、Ｓ１０１の処理に戻り、前述と同様の処理を行う。すなわち、すべてのＰＤＦファイルに、ハッシュ値とハッシュ計算の対象の範囲とを埋め込み、ハッシュ値をパスワードとしてＰＤＦファイルを暗号化する。全てのＰＤＦファイルに対して処理が終了した時点で、ＪＤＦファイルとＰＤＦファイルの組み合わせ保証の処理は終了する。
【００３９】
＜ＪＤＦファイルのハッシュ範囲の決定＞
次に、図２のＳ１０１におけるハッシュ計算の対象となるＪＤＦファイルのハッシュ値の計算方法について、図６を用いて説明する。図６は図２のＳ１００の処理に相当する。
【００４０】
Ｓ５００の処理において、図７のＪＤＦファイルとＰＤＦファイルの組み合わせを保証するかどうかの設定を行うダイアログの設定を元に、ＪＤＦファイルの全体をハッシュ対象とするかどうかを判断する。すなわち、「ＪＤＦとＰＤの組み合わせを保証する」設定がされており、かつ、「印刷内容に影響を与えない部分を変更可能にする」設定がされていないのであれば、ＪＤＦファイルの全体がハッシュ計算の対象となる。ＪＤＦファイル全体をハッシュ対象とする場合、Ｓ５０６の処理に移り、ＪＤＦファイル全体のハッシュ値を算出して処理は終了する。ＪＤＦファイル全体をハッシュ対象としない場合、Ｓ５０１の処理に移る。
【００４１】
Ｓ５０１の処理において、図７のダイアログの設定欄７０４で指定された属性（設定項目）が存在するか判定する。指定された属性があった場合、Ｓ５０２の処理に移行する。図７の例では、ｃｏｌｌａｔｅすなわちソート属性が、変更可能な属性として設定されている。図７のユーザインターフェースで指定された値は設定後に保存されているので、図６等の処理ではその保存された値を参照している。
【００４２】
Ｓ５０２の処理において、変更可能な属性として指定された属性を、ＪＤＦファイルから検索する。複数の属性が指定されているなら、そのうちのひとつに着目してそれを検索する。ＪＤＦファイルはテキストで記述されており、属性すなわち設定項目は予め定められたタグによって示されているので、属性を示すタグをＪＤＦファイルから検索することは容易である。もし指定された属性が処理対象のＪＤＦファイルに含まれていなければ、すなわちヒットしなければ、その属性を変更する余地は元々ない。そこで、変更可能と指定された属性のうち、次の属性に着目してＳ５０１から繰り返す。
【００４３】
一方、ヒットした場合、Ｓ５０４で、検索対象の属性について、ＪＤＦファイルの先頭から当該属性の先頭までのオフセット及び、属性の記述の長さを数え、一時的にメモリ内に保持しておく。オフセット及び長さはたとえばテキストの文字数でよい。ハッシュ計算の対象とならない設定項目は、たとえばその設定項目に対応するタグで囲まれた範囲に相当するので、オフセットと長さで示された範囲が、ハッシュ計算の対象とならない範囲である。なお、もしひとつの属性に対応する記述がファイル内の複数箇所にあるのであれば、それら複数か書すべてがハッシュ計算の対象から除外される。
【００４４】
Ｓ５０１において、該当する属性値が存在しない場合、あるいは指定されたすべての属性について検索が終了した場合、Ｓ５０５の処理に移行する。Ｓ５０５において、変更可能であると指定された属性が、１つ以上ＪＤＦファイルから見つかったか判定される。見つかった場合、すなわちハッシュの対象から除外される範囲が見つかった場合、Ｓ５０７の処理を実行する。なければＳ５０６へ分岐する。つまり該当する属性が１つも存在しなかった場合は、ＪＤＦファイル全体をハッシュ対象としてハッシュ値を算出し、処理を終了する。
【００４５】
Ｓ５０７の処理において、一時的にメモリ内に保持しておいたファイルの先頭から属性値の先頭までのオフセット及び、属性値の長さを元に、ＪＤＦファイルの部分領域をハッシュ対象としてハッシュ値を算出する。すなわち、ファイル先頭からのオフセットと長さで定まるハッシュ対象除外領域をＪＤＦファイルから除き、残りの部分を対象としてハッシュ計算を実行する。ハッシュ範囲および得られたハッシュ値は一時的に保存しておく。この値が、第１実施形態ではＰＤＦファイルに埋め込まれる。また、第１及び第２の実施形態では、ＰＤＦファイルの暗号化の鍵として用いられる。
【００４６】
以上のようにして、ＪＤＦファイルのうち、変更を許さない部分を対象としてハッシュ値が計算され、そのハッシュ値およびハッシュ計算の対象となる範囲（あるいはハッシュ計算の対象とならない範囲）がＰＤＦファイルに埋め込まれる。また、そのハッシュ値を鍵としてＰＤＦファイルが暗号化される。なお、図６のＳ５０４で得た情報はハッシュ計算の対象（ハッシュ範囲と呼ぶ）とならない部分を示す情報である。ＪＤＦファイルに埋め込まれるのは、ハッシュ計算の対象とする範囲であってもハッシュ計算の対象とならない範囲であってもよい。いずれか一方が特定されれば、他方も特定されるからである。本実施形態では、ハッシュ計算の対象とならない範囲をハッシュ範囲に変換し、それをＰＤＦに埋め込む。
【００４７】
次に、前記ＪＤＦファイルとＰＤＦファイルの組み合わせ保証の検証について、ＰＤＦファイルに署名した場合の検証と、ＪＤＦファイルに署名した場合の検証の２通りの方法について説明する。
【００４８】
＜ＰＤＦファイルに署名した場合の検証＞
以下、主に図３を用いて、ＰＤＦファイルに署名した場合におけるＪＤＦファイルとＰＤＦファイルの組み合わせ保証の検証方法について説明する。
【００４９】
図３のＳ２００の処理において、ＪＤＦファイルに記載されているコンテンツのパスから、全てのＰＤＦファイルを取得する。
【００５０】
Ｓ２０１の処理においてＰＤＦファイルに対して署名の検証処理を行う。ここでは、改ざんの検知が出来ればよい。検証方法については、ＰＤＦの仕様に準拠する。すなわち、ＰＤＦファイル内の署名辞書に記述されたハッシュ範囲である／ＢｙｔｅＲａｎｇｅエントリの値を元にＰＤＦファイルのハッシュ値を算出する。そして、署名辞書内に埋め込まれた電子署名を公開鍵で復号化したハッシュ値と、前述ハッシュ値を比較し、一致すれば改ざんされていないとみなすことが出来る。一致しない場合は、処理を終了する。
【００５１】
Ｓ２０２の処理において、ＰＤＦファイル内にあらかじめ埋め込んだＪＤＦファイルのハッシュ範囲を取得する。ハッシュ範囲は、前述の埋め込み処理（図２のＳ１０１）で埋め込んだ位置に記載されている。具体的には、図９にあるように、ＰＤＦ内のページ辞書からページピース辞書を参照し、さらにアプリケーションデータ辞書から、コンテンツストリーム辞書を参照し、／ＢｙｔｅＲａｎｇｅエントリの値として埋め込まれたハッシュ範囲を取得する。
【００５２】
Ｓ２０３の処理において、前述のハッシュ範囲を元に、ＪＤＦファイルのハッシュ値Ａを算出する。なおハッシュ範囲が、ＪＤＦファイル内のハッシュ対象外とする属性名として記述されている場合は、その属性名に対する属性値を除いた部分に対してＪＤＦファイルのハッシュ値Ａを算出する。
【００５３】
Ｓ２０４の処理において、ＰＤＦファイルが暗号化されているかを判定する。方法としては、ＰＤＦファイル内に、Ｅｎｃｒｙｐｔ辞書が存在するかどうかで判定する。暗号化されている場合は、Ｓ２０５の処理に移行する。暗号化されていない場合は、処理を終了する。
【００５４】
Ｓ２０５の処理において、前述で算出したハッシュ値Ａを用いてＰＤＦファイルを復号化する。ＰＤＦファイルの復号化の方法は、ＰＤＦの標準共通鍵暗号方式の仕様に準拠するものとする。
【００５５】
Ｓ２０６の処理において、Ｓ２０５の復号化が成功したかどうかを判定し、成功した場合は、Ｓ２０７の処理に移行する。失敗した場合は処理を終了する。失敗は、たとえば復号鍵に誤りがある場合に生じる。
【００５６】
Ｓ２０７において、ＰＤＦファイル内に埋め込まれたＪＤＦファイルのハッシュ値Ｂを取得する。ハッシュ値Ｂは、前述の埋め込み処理（図２のＳ１０１）で埋め込んだ位置に存在する。具体的には、図９にあるように、ＰＤＦ内のページ辞書からページピース辞書を参照し、さらにアプリケーションデータ辞書から、コンテンツストリーム辞書を参照し、ストリーム内のデータとしてハッシュ値Ｂを取得する。
【００５７】
Ｓ２０８の処理において、前述のＪＤＦファイルから算出したハッシュ値Ａと、ＰＤＦファイル内に埋め込まれたＪＤＦファイルのハッシュ値Ｂとを比較する。一致すれば、Ｓ２０９の処理に移行する。一致しない場合は処理を終了する。この比較が、ＰＤＦファイルとＪＤＦファイルとの組が本来の組であることの検証に相当し、比較手段に相当する。
【００５８】
Ｓ２０９において、Ｓ２００にて複数のＰＤＦファイルを取得した場合は、全ＰＤＦファイルに対してＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０４、Ｓ２０５、Ｓ２０６、Ｓ２０７、Ｓ２０８の各処理を行う。全てのＰＤＦファイルに対して処理が終了した場合は、印刷実行処理を行い、処理は終了する。
【００５９】
以上の手順により、ＰＤＦファイルに、ＪＤＦファイルを対象として得られたハッシュ値を埋め込んでおき、その値とＪＤＦファイルを対象として再計算したハッシュ値とを比較することで、ファイルの組の検証が可能である。また、ハッシュ値をパスワードとしてＰＤＦファイルを暗号化しておくことで、図３に示す検証手順を実行できない複合機能周辺機により印刷ジョブファイルがダウンロードされた場合でも、ＰＤＦファイルとＪＤＦファイルとの組の保証を可能としている。
【００６０】
［第２実施形態］
本実施形態では、ＰＤＦファイルを対象としてハッシュ値を計算し、それをＪＤＦファイルに埋め込む。ただし、ＰＤＦファイルを暗号化するためのパスワードとなるハッシュ値は、第１実施形態と同様にＪＤＦファイルに基づいて計算される。
【００６１】
＜ＪＤＦに署名を行う場合＞
以下、主に図４を用いて、ＪＤＦに署名を行うことでＪＤＦとＰＤＦの組み合わせを保証する方法について説明する。
【００６２】
図４のＳ３００の処理において、ＪＤＦファイルと関連づけられたＰＤＦファイルそれぞれに対するハッシュ値Ａを算出する。Ｓ３０１の処理において、Ｓ３００の処理で算出したハッシュ値ＡをＪＤＦファイル内に埋め込む。以下、具体的な埋め込み方法について、図１０を用いて説明する。ＪＤＦファイル内にＰＤＦファイルのハッシュ値を埋め込む場合、図１０に示すように、ＰＤＦファイル１００１の参照を示すＵＲＬ属性のあるノードＦｉｌｅＳｐｅｃ内に、ＨＡＳＨ属性として記述する。図１０の例ではＰＤＦファイルはｉｎｐｕｔ−１．ｐｄｆとｉｎｐｕｔ−２．ｐｄｆの２つであり、それぞれのハッシュ値１００１ａと１００１ｂとが、それぞれのＰＤＦファイルに関連づけて保存される。
【００６３】
そこでＳ３０２の処理において、ＪＤＦファイル内から複数のＰＤＦファイルが参照されている場合、全てのＰＤＦファイルに対してＳ３００及びＳ３０１の処理を行う。
【００６４】
Ｓ３０３の処理において、ＪＤＦファイルのハッシュ範囲を決定し、ＪＤＦファイル内に埋め込む。なお、ハッシュ範囲の決定については後述する。以下、ＪＤＦファイル内へのハッシュ範囲の埋め込み方法について具体的に説明する。
【００６５】
ＪＤＦファイル内にＪＤＦファイルのハッシュ範囲を埋め込む場合、図１１に示すように、ＪＤＦノード内にＨａｓｈＢｙｔｅＲａｎｇｅ属性１１０１として記述する。ＨａｓｈＢｙｔｅＲａｎｇｅ属性１１０１は、ＪＤＦファイルの先頭からハッシュ範囲外とする属性値直前までのオフセット値と、オフセット値からハッシュの適用範囲とするデータの長さのペアで記述する。このペアは、ＪＤＦファイルのハッシュ範囲の適用部分の数だけ記述する必要がある。図１１の例では、ソートの設定項目であるＣｏｌｌａｔｅ属性１１０２の値と、部数の設定項目であるＡｍｏｕｎｔ属性１１０３の値が、ハッシュ範囲から除外されている。
【００６６】
また、ＨａｓｈＢｙｔｅＲａｎｇｅ属性１１０１に対する別の記述方法として、”Ｃｏｌｌａｔｅ  Ａｍｏｕｎｔ  ・・・”のように、ＪＤＦファイル内のハッシュ範囲外とする属性値の属性名を記述する方法がある。この場合は、後述のＪＤＦファイルとＰＤＦファイルの組み合わせ保証の検証処理の際に、記述された属性名に対する属性値以外をハッシュ範囲とすることになる。
【００６７】
Ｓ３０４の処理において、前述のハッシュ範囲を元に、ＪＤＦファイルのハッシュ値Ｂを算出する。このステップが、ＪＤＦファイルを対象としてハッシュ値を計算する第２の計算手段に相当する。
【００６８】
Ｓ３０５の処理において、算出したハッシュ値Ｂを用いてＰＤＦファイルを暗号化する。暗号化の方式は、ＰＤＦの仕様に準拠することが望ましく、暗号化される箇所は、ＰＤＦファイル内の文字列情報部分および、コンテンツストリーム辞書内のストリームデータである。
【００６９】
Ｓ３０６の処理において、ＪＤＦファイル内から複数のＰＤＦファイルが参照されている場合、全てのＰＤＦファイルに対してＳ３０５の処理を行う。
【００７０】
Ｓ３０７の処理において、ＪＤＦファイルに対して署名を行う。署名の方法は、一般的な電子署名の方法であればよい。たとえばＪＤＦファイルのハッシュ値を計算し、そのハッシュ値を秘密鍵で暗号化して電子署名データを生成する。秘密鍵は、電子署名の認証機関等から提供を受ける。もちろん電子署名の検証に用いる公開鍵も当該機関から提供を受ける。電子署名に用いるハッシュ値は、図７のユーザインターフェースで指定された変更可能な属性を除外して計算される。すなわち、ハッシュ値Ｂを流用することもできる。電子署名データは、ＪＤＦファイル内に埋め込む方式を採用することが望ましい。ＪＤＦファイルに対して正常に署名が行えた時点で、ＪＤＦファイルとＰＤＦファイルの組み合わせ保証の処理は終了する。
【００７１】
＜ＪＤＦファイルに署名した場合の検証＞
以下、主に図５を用いて、ＪＤＦファイルに署名した場合におけるＪＤＦファイルとＰＤＦファイルの組み合わせ保証の検証方法について説明する。
【００７２】
図５のＳ４００の処理において、ＪＤＦファイルに記載されているコンテンツのパスから、全てのＰＤＦファイルを取得する。
【００７３】
Ｓ４０１の処理において、ＪＤＦファイルに対して署名の検証処理を行う。ここでは、改ざんの検知が出来ればよい。検証方法については、ＪＤＦファイルへの署名処理に対応した検証方法であればよい。たとえばＪＤＦファイルのハッシュ値を算出し、埋め込まれた電子署名を公開鍵で復号化したハッシュ値と、算出したハッシュ値とを比較し、一致すれば改ざんされていないとみなすことが出来る。一致しない場合は、処理を終了する。
【００７４】
Ｓ４０２の処理において、ＪＤＦ内に記述されたハッシュ範囲を元に、ＪＤＦファイルのハッシュ値Ａを計算する。ハッシュ範囲が、ＪＤＦファイル内のハッシュ対象外とする属性名として記述されている場合は、その属性名に対する属性値を除いた部分に対してＪＤＦファイルのハッシュ値Ａを算出する。なお、電子署名に用いたＪＤＦの範囲と、ＪＤＦに埋め込んだハッシュ値の計算に用いたＪＤＦの範囲とが同じ場合には、ハッシュ値Ａは、電子署名の検証で求めたハッシュ値と同じ値となるため、その値をハッシュ値Ａとして流用することもできる。
【００７５】
Ｓ４０３の処理において、ＰＤＦファイルが暗号化されているかを判定する。方法としては、ＰＤＦファイル内に、Ｅｎｃｒｙｐｔ辞書が存在するかどうかで判定する。暗号化されている場合は、Ｓ４０４の処理に移行する。暗号化されていない場合は、処理を終了する。
【００７６】
Ｓ４０４の処理において、前述で算出したハッシュ値Ａを用いてＰＤＦファイルを復号化（すなわち暗号解読）する。ＰＤＦファイルの復号化の方法は、ＰＤＦの標準共通鍵暗号方式の仕様に準拠するものとする。
【００７７】
Ｓ４０５の処理において、Ｓ４０４の復号化が成功したかどうかを判定し、成功した場合は、Ｓ４０６の処理に移行する。失敗した場合は処理を終了する。
【００７８】
Ｓ４０６の処理において、ＪＤＦファイルに関連づけられたＰＤＦのうち着目したＰＤＦファイルに対してのハッシュ値Ｃを算出する。Ｓ４０７の処理において、ＪＤＦファイル内に埋め込んだＰＤＦファイルのハッシュ値のうち着目ＰＤＦファイルに関連づけたハッシュ値Ｂを取得する。Ｓ４０８の処理において、前述のハッシュ値Ｂ及びハッシュ値Ｃとを比較し、両者が一致するかを検証する。一致する場合は、Ｓ４０９の処理に移行する。一致しない場合は処理を終了する。
【００７９】
Ｓ４０９の処理において、Ｓ４００にて複数のＰＤＦファイルを取得した場合は、それぞれのＰＤＦファイルに順次着目し、Ｓ４０３、Ｓ４０４、Ｓ４０５、Ｓ４０６、Ｓ４０７、Ｓ４０８の各処理を行う。全てのＰＤＦファイルに対して処理が終了した場合は、印刷実行処理を行い、処理は終了する。
【００８０】
以上の手順により、ＪＤＦファイルに、ＰＤＦファイルを対象として得られたハッシュ値を埋め込んでおき、その値とＰＤＦファイルを対象として再計算したハッシュ値とを比較する。こうすることで、ＰＤＦファイルとＪＤＦファイルの組が本来の組であることを検証が可能である。また、ＪＤＦファイルを対象として生成したハッシュ値をパスワードとしてＰＤＦファイルを暗号化しておく。こうすることで、図３に示す検証手順を実行できない複合機能周辺機により印刷ジョブファイルがダウンロードされた場合でも、ＰＤＦファイルとＪＤＦファイルとの組の保証を可能としている。
【００８１】
［他の実施形態］
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８２】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８３】
【図１】本発明に係る電子文書処理システムを説明する代表的なフローチャート図である。
【図２】ＰＤＦに署名を行うことでＪＤＦとＰＤＦの組み合わせを保証する方法を説明するフローチャート図である。
【図３】ＰＤＦファイルに署名した場合におけるＪＤＦファイルとＰＤＦファイルの組み合わせ保証の検証方法について説明するフローチャート図である。
【図４】ＪＤＦファイルに署名を行うことでＪＤＦとＰＤＦの組み合わせを保証する方法を説明するフローチャート図である。
【図５】ＪＤＦファイルに署名した場合におけるＪＤＦファイルとＰＤＦファイルの組み合わせ保証の検証方法について説明するフローチャート図である。
【図６】ＪＤＦファイルのハッシュ範囲の決定方法を説明するフローチャート図である。
【図７】ＪＤＦファイルとＰＤＦファイルの組み合わせを保証するかどうかの設定を行うダイアログ図である。
【図８】印刷内容に影響を与えない部分を変更可能にする属性のリストである。
【図９】ＰＤＦファイル内におけるＪＤＦファイルのハッシュ値とハッシュ範囲の埋め込み位置を表す図である。
【図１０】ＪＤＦファイル内におけるＪＤＦファイルのハッシュ範囲の埋め込み位置を表す図である。
【図１１】ＪＤＦファイル内におけるＪＤＦファイルのハッシュ範囲の埋め込み位置を表す図である。
【図１２】実施形態の処理を実行するコンピュータおよび複合機能周辺機のブロック図である。
【符号の説明】
【００８４】
１００、１０１  ホストコンピュータ
１０７  プリンタ
２１  通信ネットワーク
【図１】
0004902451.tif 000002
【図２】
0004902451.tif 000003
【図３】
0004902451.tif 000004
【図４】
0004902451.tif 000005
【図５】
0004902451.tif 000006
【図６】
0004902451.tif 000007
【図７】
0004902451.tif 000008
【図８】
0004902451.tif 000009
【図９】
0004902451.tif 000010
【図１０】
0004902451.tif 000011
【図１１】
0004902451.tif 000012
【図１２】
0004902451.tif 000013