(57)【要約】【課題】  文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、その変換後文書ファイルのデータ完全性を検証することができる情報処理装置及びその制御方法、コンピュータプログラムを提供する。【解決手段】  文書ファイルから第１非可逆圧縮データを計算する。文書ファイルにデータ変換処理を施して、変換後文書ファイルを生成する。生成した変換後文書ファイルから第２非可逆圧縮データを計算する。計算した第１非可逆圧縮データと計算した第２非可逆圧縮データとを含む署名情報を生成する。【選択図】  図５
2008312064.tif 000002
【特許請求の範囲】
【請求項１】
文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、前記データ変換処理前の前記文書ファイルのデータ完全性を検証するための署名情報を生成する情報処理装置であって、
前記文書ファイルから第１非可逆圧縮データを計算する第１計算手段と、
前記文書ファイルにデータ変換処理を施して、変換後文書ファイルを生成する変換手段と、
前記変換手段で生成した前記変換後文書ファイルから第２非可逆圧縮データを計算する第２計算手段と、
前記第１計算手段で計算した第１非可逆圧縮データと前記第２計算手段で計算した第２非可逆圧縮データとを含む署名情報を生成する生成手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成手段で生成した署名情報を前記文書ファイルに付与して、署名付き文書ファイルを生成する第１付与手段を更に備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段で生成した署名情報を前記変換後文書ファイルに付与して、署名付き変換後文書ファイルを生成する第２付与手段を更に備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１付与手段で生成した署名付き文書ファイルを、文書ファイルと署名情報に分離する分離手段と、
前記分離手段で分離した文書ファイルに前記変換手段によるデータ変換処理を施して、変換後文書ファイルを生成し、前記分離手段で分離した署名情報を前記変換後文書ファイルに付与する第３付与手段と
を更に備えることを特徴とする請求項１または２に記載に記載の情報処理装置。
【請求項５】
前記変換手段は、前記文書ファイルに暗号化処理を施して、暗号化文書ファイルを生成する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項６】
前記変換手段は、前記文書ファイルに圧縮処理を施して、圧縮文書ファイルを生成する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項７】
前記データ変換処理における変換方式を選択する選択手段を更に備え、
前記変換手段は、前記選択手段で選択した変換方式に従うデータ変換処理を前記文書ファイルに施して、変換後文書ファイルを生成する
ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記変換手段は、複数の変換方式それぞれに従うデータ変換処理を前記文書ファイルに施して、対応する複数の変換後文書ファイルを生成し、
前記第２計算手段は、前記複数の変換後文書ファイルそれぞれから、対応する複数の第２非可逆圧縮データを計算し、
前記生成手段は、前記第１非可逆圧縮データと、前記複数の第２非可逆圧縮データとを含む署名情報を生成する
ことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記変換手段の変換で用いる変換方式は、変換アルゴリズムと、それに関係する秘密鍵データに基づいている
ことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項１０】
前記秘密鍵データは、パスワードに基づいている
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記変換手段の変換で用いる複数の変換方式は、同一の変換アルゴリズムで、かつ異なる秘密鍵データに基づいている
ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１２】
前記第２非可逆圧縮データは、前記変換手段の変換で用いる変換アルゴリズム及び前記秘密鍵データの識別子を含んでいる
ことを特徴とする請求項９乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記第２非可逆圧縮データは、更に、前記変換後文書ファイルを逆変換するための管理情報を更に含んでいる
ことを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記管理情報は、スクリプトプログラムである
ことを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
文書ファイルにデータ変換処理を施して生成した変換後文書ファイルに、署名情報を付与した署名付き変換後文書ファイルのデータ完全性を検証する情報処理装置であって、
前記署名付き変換後文書ファイルに含まれる、前記署名情報が付与される前の文書ファイルから計算された第１非可逆圧縮データと、前記文書ファイルに前記データ変換処理を施して生成した変換後文書ファイルから計算された第２非可逆圧縮データとを抽出する抽出手段と、
前記署名付き変換後文書ファイルの変換後文書ファイルから、第３非可逆圧縮データを計算する第１計算手段と、
前記第２非可逆圧縮データと、前記第３非可逆圧縮データとを比較することによって、前記署名付き変換後文書ファイルのデータ完全性を検証する第１検証手段と
を備えることを特徴とする情報処理装置。
【請求項１６】
前記変換後文書ファイルに前記データ変換処理に対応するデータ逆変換処理を施して、変換前の文書ファイルを生成する逆変換手段と、
前記逆変換手段で生成した文書ファイルから、第４非可逆圧縮データを計算する第２計算手段と、
前記第１非可逆圧縮データと、前記第４非可逆圧縮データとを比較することによって、前記文書ファイルのデータ完全性を検証する第２検証手段と
を更に備えることを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
前記逆変換手段は、前記変換後文書ファイルが暗号化文書ファイルである場合、該変換後文書ファイルに復号処理を施して、前記文書ファイルを生成する
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記逆変換手段は、前記変換後文書ファイルが圧縮文書ファイルである場合、該変換後文書ファイルに解凍処理を施して、前記文書ファイルを生成する
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項１９】
文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、前記データ変換処理前の前記文書ファイルのデータ完全性を検証するための署名情報を生成する情報処理装置の制御方法であって、
前記文書ファイルから第１非可逆圧縮データを計算する第１計算工程と、
前記文書ファイルにデータ変換処理を施して、変換後文書ファイルを生成する変換工程と、
前記変換工程で生成した前記変換後文書ファイルから第２非可逆圧縮データを計算する第２計算工程と、
前記第１計算工程で計算した第１非可逆圧縮データと前記第２計算工程で計算した第２非可逆圧縮データとを含む署名情報を生成する生成工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項２０】
文書ファイルにデータ変換処理を施して生成した変換後文書ファイルに、署名情報を付与した署名付き変換後文書ファイルのデータ完全性を検証する情報処理装置の制御方法であって、
前記署名付き変換後文書ファイルに含まれる、前記署名情報が付与される前の文書ファイルから計算された第１非可逆圧縮データと、前記文書ファイルに前記データ変換処理を施して生成した変換後文書ファイルから計算された第２非可逆圧縮データとを抽出する抽出工程と、
前記署名付き変換後文書ファイルの変換後文書ファイルから、第３非可逆圧縮データを計算する第１計算工程と、
前記第２非可逆圧縮データと、前記第３非可逆圧縮データとを比較することによって、前記署名付き変換後文書ファイルのデータ完全性を検証する第１検証工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項２１】
文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、前記データ変換処理前の前記文書ファイルのデータ完全性を検証するための署名情報を生成する情報処理装置の制御をコンピュータに実行させるためのコンピュータプログラムであって、
前記文書ファイルから第１非可逆圧縮データを計算する第１計算工程と、
前記文書ファイルにデータ変換処理を施して、変換後文書ファイルを生成する変換工程と、
前記変換工程で生成した前記変換後文書ファイルから第２非可逆圧縮データを計算する第２計算工程と、
前記第１計算工程で計算した第１非可逆圧縮データと前記第２計算工程で計算した第２非可逆圧縮データとを含む署名情報を生成する生成工程と
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項２２】
文書ファイルにデータ変換処理を施して生成した変換後文書ファイルに、署名情報を付与した署名付き変換後文書ファイルのデータ完全性を検証する情報処理装置の制御をコンピュータに実行させるためのコンピュータプログラムであって、
前記署名付き変換後文書ファイルに含まれる、前記署名情報が付与される前の文書ファイルから計算された第１非可逆圧縮データと、前記文書ファイルに前記データ変換処理を施して生成した変換後文書ファイルから計算された第２非可逆圧縮データとを抽出する抽出工程と、
前記署名付き変換後文書ファイルの変換後文書ファイルから、第３非可逆圧縮データを計算する第１計算工程と、
前記第２非可逆圧縮データと、前記第３非可逆圧縮データとを比較することによって、前記署名付き変換後文書ファイルのデータ完全性を検証する第１検証工程と
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、データ変換処理前の文書ファイルのデータ完全性を検証するための署名情報を生成する情報処理装置及びその制御方法、コンピュータプログラムに関するものである。また、本発明は、文書ファイルにデータ変換処理を施して生成した変換後文書ファイルに、署名情報を付与した署名付き変換後文書ファイルのデータ完全性を検証する情報処理装置及びその制御方法、コンピュータプログラムに関するものである。
【背景技術】
【０００２】
近年、コンピュータとそのネットワークの急速な発達及び普及により、文字データ、画像データ、音声データ等の多種の情報がデジタル化されている。デジタル化によって得られるデジタルデータは、経年変化等による劣化がなく、いつまでも完全な状態で保存できる一方、容易に複製や編集・加工を施すことが可能である。こうしたデジタルデータの複製、編集、加工はユーザにとって大変有益である反面、デジタルデータの保護が大きな問題となっている。
【０００３】
特に、画像データがインターネット等の広域ネットワーク網を通して流通する場合、デジタルデータが伝送路において、第３者によって盗聴される危険性がある。また、伝送路上でなくとも、アクセスが許可されていない第３者によってコピーされ、不正利用、不正流出の危険性を持つ。そこで、安全な伝送路を確立するために、また、可搬性をもつメディアやストレージに安全に確保するために、デジタルデータに暗号化処理がなされることが一般的である。
【０００４】
また、デジタルデータは、改変が容易であるため、第三者によってデータが改ざんされる危険性がある。そこで、送信されてきたデータが改ざんされたかどうかを受信者が検出するために、改ざん防止用の付加データを検証する方式としてデジタル署名技術やメッセージ認証コード（ＭＡＣ）という技術が提案されている。更に、デジタル署名技術は、データ改ざんだけではなく、インターネット上でのなりすまし、否認等を防止する効果も持ち合わせている。
【０００５】
従来の暗号技術によってデジタルデータに対する保護機構が備わってきた。本提案では、スキャナを通して光学像を電気信号へ変換し、得られたデータをデジタル形式で保存するデバイスにおけるデジタルデータの利用方法に関して取り扱う。つまり、暗号化により、画像データの盗聴の脅威から保護を可能にしている。また、送受信中の改ざんやサーバへの成りすまし等の脅威に対しては、デジタル署名により保護を可能にしている。
【０００６】
尚、上記の脅威に対する対策例として特許文献１がある。特許文献１では、紙文書電子化サービスをネットワーク経由で行うシステムが提案されており、ネットワーク上を流れるデータの秘匿を目的として、タイムスタンプ後に、送出する内容が当事者以外に見られないよう暗号化処理を施す方法が提案されている。
【特許文献１】特開２００２−２３０２０２号公報（電子データ化方法及び装置）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
紙文書からデジタルデータである電子化文書を作成する際には、長期的な見読性を確保する必要がある。そのため、ある時刻にある文書が存在していたことを保証する場合には、時刻証明の１方式であるタイムスタンプが利用できる。タイムスタンプが付与された電子化文書は通常の状態で閲覧等の利用された後、利用頻度が下がったこと等を理由にバックアップとして保存されるが、保存コストを下げるために圧縮処理がなされることがある。また、保管時にメディアに対するセキュリティを強固にするために暗号化処理が施されることも想定される。
【０００８】
このとき、圧縮処理後もしくは暗号化処理後の電子化文書は、付随するタイムスタンプトークンで検証できない、つまり、改ざんされていると判定されてしまう問題がある。例としては、特許文献１で取り上げたシステムが挙げられる。特許文献１の方式は、タイムスタンプ後に、送出する内容が当事者以外に見られないよう暗号化処理を施すことで、ネットワーク通信路上のみの秘匿性を確保する方式であり、メディアへの長期保存、バックアップ等の用途に不向きである。
【０００９】
この問題に対するナイーブな解決方法としては、検証前に復号処理を施してから、署名・タイムスタンプ検証を行う方法があるが、メディアに保存されている多数の電子化文書を一括検証する場合等、非効率であるという新たな課題が発生する。そのため、復号処理なしで、暗号化されたまま、もしくは、圧縮されたままの状態でタイムスタンプ検証ができることが望まれている。
【００１０】
本願発明は上記の課題を解決するためになされたものである。その目的は、文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、その変換後文書ファイルのデータ完全性を検証することができる情報処理装置及びその制御方法、コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、前記データ変換処理前の前記文書ファイルのデータ完全性を検証するための署名情報を生成する情報処理装置であって、
前記文書ファイルから第１非可逆圧縮データを計算する第１計算手段と、
前記文書ファイルにデータ変換処理を施して、変換後文書ファイルを生成する変換手段と、
前記変換手段で生成した前記変換後文書ファイルから第２非可逆圧縮データを計算する第２計算手段と、
前記第１計算手段で計算した第１非可逆圧縮データと前記第２計算手段で計算した第２非可逆圧縮データとを含む署名情報を生成する生成手段と
を備える。
【００１２】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
文書ファイルにデータ変換処理を施して生成した変換後文書ファイルに、署名情報を付与した署名付き変換後文書ファイルのデータ完全性を検証する情報処理装置であって、
前記署名付き変換後文書ファイルに含まれる、前記署名情報が付与される前の文書ファイルから計算された第１非可逆圧縮データと、前記文書ファイルに前記データ変換処理を施して生成した変換後文書ファイルから計算された第２非可逆圧縮データとを抽出する抽出手段と、
前記署名付き変換後文書ファイルの変換後文書ファイルから、第３非可逆圧縮データを計算する第１計算手段と、
前記第２非可逆圧縮データと、前記第３非可逆圧縮データとを比較することによって、前記署名付き変換後文書ファイルのデータ完全性を検証する第１検証手段と
を備える。
【００１３】
上記の目的を達成するための本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、前記データ変換処理前の前記文書ファイルのデータ完全性を検証するための署名情報を生成する情報処理装置の制御方法であって、
前記文書ファイルから第１非可逆圧縮データを計算する第１計算工程と、
前記文書ファイルにデータ変換処理を施して、変換後文書ファイルを生成する変換工程と、
前記変換工程で生成した前記変換後文書ファイルから第２非可逆圧縮データを計算する第２計算工程と、
前記第１計算工程で計算した第１非可逆圧縮データと前記第２計算工程で計算した第２非可逆圧縮データとを含む署名情報を生成する生成工程と
を備える。
【００１４】
上記の目的を達成するための本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
文書ファイルにデータ変換処理を施して生成した変換後文書ファイルに、署名情報を付与した署名付き変換後文書ファイルのデータ完全性を検証する情報処理装置の制御方法であって、
前記署名付き変換後文書ファイルに含まれる、前記署名情報が付与される前の文書ファイルから計算された第１非可逆圧縮データと、前記文書ファイルに前記データ変換処理を施して生成した変換後文書ファイルから計算された第２非可逆圧縮データとを抽出する抽出工程と、
前記署名付き変換後文書ファイルの変換後文書ファイルから、第３非可逆圧縮データを計算する第１計算工程と、
前記第２非可逆圧縮データと、前記第３非可逆圧縮データとを比較することによって、前記署名付き変換後文書ファイルのデータ完全性を検証する第１検証工程と
を備える。
【発明の効果】
【００１５】
以上説明したように、本発明によれば、文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、その変換後文書ファイルのデータ完全性を検証することができる情報処理装置及びその制御方法、コンピュータプログラムを提供できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１７】
＜＜実施形態１＞＞
＜図１：情報処理システムの構成＞
図１は本発明の実施形態１の情報処理システムの構成を示す図である。
【００１８】
文書管理サーバ１０３は、各種文書ファイルを記憶している。この文書管理サーバ１０３は、記憶している文書ファイルの中から所望の文書ファイルを適宜、検索することができるようになっている。
【００１９】
文書登録装置１０１は、文書ファイルに署名情報を付与した上で新たな文書ファイルを作成する。そして、この新たな文書ファイルを文書管理サーバ１０３に対して送信し、文書管理サーバ１０３に記憶させる。このように、「文書登録装置１０１が文書管理サーバ１０３に文書ファイルを記憶させる」ことを、以下では、「文書登録装置１０１が文書管理サーバ１０３に文書ファイルを登録する」と称する。
【００２０】
文書検証装置１０２は、文書管理サーバ１０３に記憶されている文書ファイルを取出して、当該取出された文書ファイル内に存在する署名情報を検証する。これにより、文書ファイルのデータ完全性を検証することが可能となる。
【００２１】
これら文書管理サーバ１０３、文書登録装置１０１、文書検証装置１０２は、夫々、各装置が具備するＣＰＵ（不図示）により統括的に制御される。
【００２２】
また、これらの装置は、汎用コンピュータに搭載される標準的な構成要素（例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、外部記憶装置、ネットワークインタフェース、ディスプレイ、キーボード、マウス等）を有している。
【００２３】
証明書サーバ１０９は、電子署名に用いようとしている証明書を発行するサーバであり、認証局／認証機関によって管理される。
【００２４】
タイムスタンプ機関（Ｔｉｍｅ−Ｓｔａｍｐｉｎｇ  Ａｕｔｈｏｒｉｔｙ：ＴＳＡ）サーバ１０８は、タイムスタンプトークンを発行する。
【００２５】
文書管理サーバ１０３、文書登録装置１０１、文書検証装置１０２、証明書サーバ１０９及びＴＳＡサーバ１０８は、ネットワークを介して相互に接続され、互いにデータの送受信を行うことが可能である。
【００２６】
このネットワークは、典型的にはインターネットやＬＡＮやＷＡＮや電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかがある。または、これらの組み合わせにより実現されるいわゆる通信ネットワークであり、データの送受信が可能であれば良い。
【００２７】
尚、本明細書において「電子署名」も「タイムスタンプ署名」も、「署名情報」の一種であるものとする。そのため、本明細書における「署名を付与する」という表現は、「電子署名を付与する」こと、又は、「タイムスタンプ署名を付与する」こと、又は「電子署名とタイムスタンプ署名との両方を付与する」ことの何れかを指す表現であるものとする。
【００２８】
文書登録装置１０１は、スキャナ１０４と接続され、ＴＷＡＩＮ経由で、例えば、ＪＰＥＧ形式の文書ファイルを取り込む機能を備える。また、この文書登録装置１０１は、共有記憶装置１０６内の文書ファイルを取り込むことも可能となっている。この共有記憶装置１０６は、例えば、インターネット１０７経由でメール送信されてきた文書ファイルや、マルチファンクション機１０５（以下では、ＭＦＰ１０５と称する）からＳＭＢ／ＦＴＰ送信機能で送信されてきた文書ファイルを記憶している。共有記憶装置１０６内に記憶されているこれらの文書ファイルには、署名が未だ付与されていない文書ファイルや、予め他の装置で署名が付与されてしまっている文書ファイルが存在する。もちろん、多くの文書ファイルには、署名が未だ付与されていない。
【００２９】
また、図１では、文書登録装置１０１、文書検証装置１０２がそれぞれ別の装置であるものとして説明を行っているが、双方の装置の機能を備える一つの装置が存在していても問題はない。
【００３０】
＜図２Ａ：署名登録処理＞
図２Ａは本発明の実施形態１の文書登録装置が文書ファイルに署名を付与した上で文書管理サーバに登録する際に実行する署名登録処理のフローを示すフローチャートである。
【００３１】
尚、本処理フローにおける各処理を実行する文書登録装置１０１は、この文書登録装置１０１が有するＣＰＵ（不図示）により統括的に制御される。
【００３２】
また、本フローチャートでの各処理が実行される前に、予め文書登録装置１０１内の記憶部に、秘密鍵と、当該秘密鍵に対応する証明書とが記憶されているものとする。この証明書には、公開鍵が含まれている。また、この証明書には、証明書のシリアル番号や、証明書の発行元がどこのサーバであるかを示す情報や、秘密鍵所持者に関する情報（秘密鍵所持者の名前等）や、証明書の有効期間等の情報が記載されているものとする。
【００３３】
ステップＳ６００１で、文書登録装置１０１は、電子署名に用いようとしている証明書（以下では、電子署名に用いようとしているこの証明書を、対象証明書と称する）の有効性を確認する証明書確認処理を実行する。尚、この証明書確認処理の詳細は、図２Ｂを用いて後述する。
【００３４】
ステップＳ６００２で、文書登録装置１０１は、対象証明書が有効であるか否かを判定する。対象証明書が有効である場合（ステップＳ６００２でＹＥＳ）、ステップＳ６００３へ進む。一方、対象証明書が無効である場合（ステップＳ６００２でＮＯ）、処理を終了する。
【００３５】
ステップＳ６００３で、文書登録装置１０１は、有効であることが確認された対象証明書を用いて、文書ファイルに対して電子署名を付与することで、新たな文書ファイルを生成する電子署名付与処理を実行する。尚、この電子署名付与処理の詳細は、図２Ｃを用いて後述する。
【００３６】
ステップＳ６００４で、文書登録装置１０１は、ステップＳ６００３で生成した文書ファイルに対してタイムスタンプ署名を付与することで、さらに新たな文書ファイルを生成するタイムスタンプ署名付与処理を実行する。尚、このタイムスタンプ署名付与処理の詳細は、図２Ｄを用いて後述する。
【００３７】
ステップＳ６００５で、文書登録装置１０１は、ステップＳ６００４で生成した文書ファイルを文書管理サーバ１０３に登録する文書ファイル登録処理を実行する。
【００３８】
尚、実施形態１では、文書ファイルに電子署名やタイムスタンプ署名を付与して、新たな文書ファイルを生成するものとして説明を行っているが、必ずしも新たな文書ファイルを生成しなくてもよい。例えば、署名付与前の文書ファイルと電子署名とタイムスタンプ署名とを別ファイルのまま夫々関連付けた状態で登録するようにしてもよい。
【００３９】
また、ステップＳ６００３の電子署名付与処理、ステップＳ６００４のタイムスタンプ署名付与処理、又はステップＳ６００５の文書ファイル登録処理の最中に、処理が失敗した場合には、適切なエラー処理が行われているものとする。
【００４０】
＜図２Ｂ：証明書確認処理＞
図２Ｂは本発明の実施形態１のステップＳ６００１の証明書確認処理に詳細を示すフローチャートである。
【００４１】
ステップＳ６１０１で、文書登録装置１０１は、対象証明書の発行元を判定する。また、この文書登録装置１０１は、その発行元が信頼できる証明書サーバ（認証局／認証期間）であるか否かについて確認を行う。
【００４２】
尚、どの証明書サーバが信頼できるかについては、文書管理サーバ１０３内のオペレーティングシステムに予め登録されているものとする。信頼できる証明書サーバである場合（ステップＳ６１０１でＹＥＳ）、ステップＳ６１０２へ進む。一方、信頼できない証明書サーバである場合（ステップＳ６１０１でＮＯ）、ステップＳ６１０６へ進み、対象証明書の状態を無効とする。
【００４３】
尚、本明細書では、特に断ることの無い限り、証明書サーバ１０９は信頼できる証明書サーバであるものとし、また、各証明書を発行する発行元は、この証明書サーバ１０９であるものとする。
【００４４】
ステップＳ６１０２で、文書登録装置１０１は、対象証明書に記載されている有効期間が切れているか否かを判定する。有効期間が切れている場合（ステップＳ６１０２でＹＥＳ）、ステップＳ６１０６へ進み、対象証明書の状態を無効とする。一方、有効期間が切れていない場合（ステップＳ６１０２でＮＯ）、ステップＳ６１０３へ進む。
【００４５】
ステップＳ６１０３で、文書登録装置１０１は、失効した証明書の一覧であるＣＲＬ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）を、対象証明書の発行元である証明書サーバ１０９から取得する。
【００４６】
ステップＳ６１０４で、文書登録装置１０１は、対象証明書がＣＲＬに含まれているか否かを判定する。含まれている場合（ステップＳ６１０４でＹＥＳ）、対象証明書は失効しているため、ステップＳ６１０６へ進み、対象証明書の状態を無効とする。一方、含まれていない場合（ステップＳ６１０４でＮＯ）、ステップＳ６１０５へ進み、対象証明書の状態を有効とする。
【００４７】
＜図２Ｃ：電子署名付与処理＞
図２Ｃは本発明の実施形態１のステップＳ６００３の電子署名付与処理の詳細を示すフローチャートである。
【００４８】
ステップＳ６２０１で、文書登録装置１０１は、文書ファイルのハッシュ値を計算する。ハッシュ値を計算する際に使用するハッシュ関数は、例えば、ＭＤ５やＳＨＡ−１等の公知の技術を用いる。
【００４９】
尚、ステップＳ６２０１の時点で、既に、文書ファイルに対して署名（タイムスタンプ署名や電子署名）が含まれている場合には、その署名も含めてハッシュ値を計算する。このハッシュ値の計算の具体例について、図３を用いて説明する。
【００５０】
図３は本発明の実施形態１のハッシュ値の計算の具体例を示す図である。
【００５１】
図３（ａ）に示す文書ファイルは、オリジナル文書ファイル８０１だけ（署名が付与されていない）を含んでいる。この文書ファイルに対して電子署名を付与する際には、オリジナル文書ファイル８０１だけがハッシュ値計算の対象となる。尚、この図３（ａ）に示す文書ファイルに対して、図２Ａの各処理を文書登録装置１０１が行って電子署名８０２（署名１）を付与すると、図３（ｂ）に示す文書ファイルが生成される。
【００５２】
図３（ｂ）に示す文書ファイルは、オリジナル文書ファイル８０１と電子署名８０２（署名１）とを含んでいる。この文書ファイルに対して、さらに電子署名を付与する際には、オリジナル文書ファイル８０１と最初の電子署名８０２（署名１）の両方がハッシュ値計算の対象となる。尚、この図３（ｂ）に示す文書ファイルに対して、図２Ａの各処理を文書登録装置１０１が行って電子署名８０３（署名２）を付与すると、図３（ｃ）に示す文書ファイルが生成される。
【００５３】
図３（ｃ）に示す文書ファイルは、オリジナル文書ファイル８０１と、電子署名８０２（署名１）と、電子署名８０３（署名２）とを含んでいる。
【００５４】
図２Ｃの説明に戻る。
【００５５】
ステップＳ６２０２で、文書登録装置１０１は、対象証明書に含まれる公開鍵に対応する秘密鍵で、ステップＳ６２０１で計算したハッシュ値を暗号化する。この暗号化処理には、従来技術であるＲＳＡ署名やＤＳＡ署名等が用いられる。
【００５６】
ステップＳ６２０３で、文書登録装置１０１は、暗号化後のハッシュ値と対象証明書とを含む電子署名を生成する。ここでの電子署名の形式としては、例えば、ＰＫＣＳ＃７やＡｄｏｂｅ社のＰＤＦ署名等がある。尚、文書登録装置１０１は、文書ファイルが文書管理サーバ１０３に対して登録されるであろうことを示す情報や、電子署名の生成時刻をさらに含むようにして電子署名の生成を行ってもよい。
【００５７】
ステップＳ６２０４で、文書登録装置１０１は、生成した電子署名を文書ファイルに付与して、新たな文書ファイルを生成する。
【００５８】
＜図２Ｄ：タイムスタンプ署名付与処理＞
図２Ｄは本発明の実施形態１のステップＳ６００４のタイムスタンプ署名付与処理の詳細を示すフローチャートである。
【００５９】
ステップＳ６３０１で、文書登録装置１０１は、（ステップＳ６００３で電子署名が付与されて生成された）文書ファイルのハッシュ値を計算する。
【００６０】
尚、ステップＳ６００３（電子署名付与処理）で電子署名が付与される前の文書ファイルは、図３（ａ）に示すような、オリジナル文書ファイル８０１だけを含む文書ファイルであると仮定する。このような場合、ステップＳ６００３では、図３（ｂ）に示すような、オリジナル文書ファイル８０１と電子署名８０２（署名１）とを含む文書ファイルが生成される。そのため、ステップＳ６３０１では、オリジナル文書ファイル８０１と電子署名８０２（署名１）の両方を対象として、ハッシュ値を計算する。
【００６１】
ステップＳ６３０２で、文書登録装置１０１は、ステップＳ６３０１で計算したハッシュ値をＴＳＡサーバ１０８サーバに送信する。
【００６２】
ＴＳＡサーバ１０８は、ハッシュ値を受信すると、受信したハッシュ値をＴＳＡサーバ１０８固有の秘密鍵で暗号化する。そして、暗号化されたハッシュ値と現在時刻とを統合して統合情報を生成する。そして、この統合情報と、秘密鍵に対応する公開鍵を備える証明書とを含むようにしてタイムスタンプトークンを生成する。タイムスタンプトークンの生成が終わると、ＴＳＡサーバ１０８は、そのタイムスタンプトークンを文書登録装置１０１に対して返送する。
【００６３】
ステップＳ６３０３で、文書登録装置１０１は、ＴＳＡサーバ１０８から返送されたタイムスタンプトークンを受信する。
【００６４】
ステップＳ６３０４で、文書登録装置１０１は、受信したタイムスタンプトークンと、その他必要な情報を含むようにタイムスタンプ署名を生成する。そして、生成したタイムスタンプ署名を、（ステップＳ６００３で電子署名が付与されて生成された）文書ファイルに付与して、新たな文書ファイルを生成する。
【００６５】
＜図４Ａ：文書検証処理＞
図４Ａは本発明の実施形態１の文書検証装置がｎ個の署名を含む文書ファイルに対して、その文書ファイルの有効性を検証する際に実行する文書検証処理のフローを示すフローチャートである。
【００６６】
尚、本処理フローにおける各処理を実行する文書検証装置１０２は、この文書検証装置１０２が有するＣＰＵ（不図示）により統括的に制御される。
【００６７】
文書検証装置１０２は、検証対象とする文書ファイルを決定し、その文書ファイルに対する検証を開始する。尚、この検証対象とする文書ファイルのことを、以下では、検証対象文書ファイルと称する。また、検証対象文書ファイルに対する検証の結果は、検証対象文書ファイルに含まれる各署名の「有効性」に基づいて判断される。
【００６８】
ステップＳ７００１で、文書検証装置１０２は、検証対象文書ファイルに含まれる署名の数をカウントし、その数をｎに設定する。ここで、検証対象文書ファイルが含む署名は、古いものから順に連番が振られているものとする。例えば、図３（ｃ）に示す文書ファイル内の電子署名８０２（署名１）には番号１が、電子署名８０３（署名２）には番号２が振られている。
【００６９】
ステップＳ７００２で、文書検証装置１０２は、ｎが正数であるか否かを判定する。ｎが０である（検証すべき署名が無い）場合（ステップＳ７００２でＮＯ）、処理を終了する。ｎが１以上である（検証すべき署名がある）場合（ステップＳ７００２でＹＥＳ）、ステップＳ７００３に進む。
【００７０】
ステップＳ７００３で、文書検証装置１０２は、検証対象文書ファイルに含まれるｎ番目の署名を検証する署名検証処理を行う。尚、この署名検証処理の詳細については、図４Ｂを用いて後述する。
【００７１】
ステップＳ７００４で、文書検証装置１０２は、ｎ番目の署名に対する検証結果に基づいて、検証対象文書ファイルに対する検証結果を出力する処理（この処理を、以下では、検証結果統合処理と称する）を行う。尚、この検証結果統合処理については、図４Ｃを用いて後述するが、「検証結果」には、「証明書が有効である」、「証明書が有効でない」、「編集あり」、「改ざんあり」の４種類が存在する。
【００７２】
ステップＳ７００５で、ｎを１インクリメントしたものを新たなｎとして、ステップＳ７００２へ戻る。このようにして、文書ファイルに含まれる全ての署名についての検証処理を行って、文書ファイルに対する最終的な検証結果を出力する。尚、最終的な検証結果は、ｎ＝１の時に、ステップＳ７００４（検証結果統合処理）で出力する検証結果と一致する。
【００７３】
＜図４Ｂ：署名検証処理＞
図４Ｂは本発明の実施形態１のステップＳ７００３の署名検証処理の詳細を示すフローチャートである。
【００７４】
尚、本処理フローにおける各処理を実行する文書検証装置１０２は、この文書検証装置１０２が有するＣＰＵ（不図示）により統括的に制御される。
【００７５】
ここで、本フローチャートで説明する「改ざん」、「編集」という用語についての定義を行う。
【００７６】
「改ざん」とは、署名を含む文書ファイルを不正に変更する行為のことをいう。例えば、署名を含む文書ファイルをバイナリーフォーマットで開き、バイナリーデータを変更する（０のビットを１のビットに変更する）行為は、この「改ざん」にあたる。
【００７７】
「編集」とは、署名を含む文書ファイルを不正でない方法で変更する行為のことをいう。例えば、署名を含む文書ファイルをＰＤＦフォーマットで開き、このＰＤＦデータに含まれるオリジナル文書ファイルに対して変更を加え、そして、どのような変更を加えたかを示す情報を文書ファイルに付与する行為は、「編集」にあたる。
【００７８】
言い換えるならば、「改ざん」とは、「改ざん」前の情報が失われるようにデータを変更する行為であり、「編集」とは、「編集」前の情報が失われないようにデータを変更する行為であるということができる。また、上述した「どのような変更を加えたかという情報」のことを、本明細書では「編集情報」と称することにする。例えば、図３（ｃ）で示す文書ファイルに対して編集が加えられると、編集情報８０４が追加されて、図３（ｄ）で示す文書ファイルが生成されることになる。更に、図３（ｅ）のように編集情報８０４を署名対象に含めて電子署名８０５（署名３）の付与することで編集情報の確からしさを保証することができる。
【００７９】
ステップＳ７１０１で、文書検証装置１０２は、ｎ番目の署名が行われた後からｎ＋１番目の署名が行われる前までに検証対象文書ファイルに対する改ざんが行われていないか否かを確認する。但し、ｎ番目の署名が検証対象文書ファイル内の最新の署名である場合には、このステップＳ７１０１で、文書管理サーバ１０３は、ｎ番目の署名が行われた後に検証対象文書ファイルに対する改ざんが行われていないか否かを確認する。
【００８０】
ｎ番目の署名が電子署名である場合は、このステップＳ７１０１における具体的な処理内容は以下のようなる。
【００８１】
まず、文書検証装置１０２は、ｎ番目の署名（電子署名）に含まれる証明書内の公開鍵を用いて、ｎ番目の署名（電子署名）に含まれるハッシュ値を復号（計算）する。さらに、この文書検証装置１０２は、ｎ番目の署名（電子署名）が付与される前の文書ファイルからハッシュ値を計算する。そして、この文書検証装置１０２は、復号されたハッシュ値と、計算されたハッシュ値との比較を行う。比較の結果、２つのハッシュ値が異なる値である場合には、文書検証装置１０２は「改ざん」が行われたと判定する。また、２つのハッシュ値が同じ値である場合には、文書検証装置１０２は「改ざん」が行われていないと判定する。
【００８２】
一方、ｎ番目の署名がタイムスタンプ署名である場合は、このステップＳ７１０１における具体的な処理内容は以下のようになっている。
【００８３】
まず、文書検証装置１０２は、ｎ番目の署名（タイムスタンプ署名）に含まれる公開鍵を用いて、ｎ番目の署名（タイムスタンプ署名）に含まれるタイムスタンプトークン内のハッシュ値を復号する。さらに、この文書検証装置１０２は、ｎ番目の署名（タイムスタンプ署名）が付与される前の文書ファイルからハッシュ値を計算する。そして、この文書検証装置１０２は、復号されたハッシュ値と、計算されたハッシュ値との比較を行う。比較の結果、２つのハッシュ値が異なる値である場合には、文書検証装置１０２は「改ざん」が行われたと判定する。また、２つのハッシュ値が同じ値である場合には、文書検証装置１０２は「改ざん」が行われていないと判定する。
【００８４】
ステップＳ７１０２で、文書検証装置１０２は、ｎ番目の署名に含まれる証明書の有効性を確認する証明書確認処理を実行する。
【００８５】
ｎ番目の署名が電子署名である場合には、このステップＳ７１０１における具体的な処理内容は、図２Ｂの証明書確認処理と同様である。但し、図２Ｂでは、文書登録装置１０１が処理を行うのに対して、ここでは各処理を文書検証装置１０２が処理を行う。ここで、図２Ｂでは、証明書確認処理を行う時点で証明書の有効期間が切れている場合にはいつも証明書の状態を無効としている。これに対し、本ステップでは、たとえ証明書確認処理を行う時点で証明書の有効期間が切れていても、有効期間が切れる前にタイムスタンプ署名が行われている場合には証明書の状態を有効とする。
【００８６】
ｎ番目の署名がタイムスタンプ署名である場合には、このステップＳ７１０１における具体的な処理内容は、タイムスタンプ署名に含まれるタイムスタンプトークンに記載された有効期間に基づいて、このタイムスタンプ署名が有効であるか否かを確認する。
【００８７】
ステップＳ７１０３で、文書検証装置１０２は、ｎ番目の署名以降にオリジナル文書ファイルに対する編集が行われた否か確認する署名後編集確認処理を実行する。これは、検証対象文書ファイル内に、図３（ｄ）に示す編集情報が含まれているか否かに基づいて行う。
【００８８】
＜図４Ｃ：検証結果統合処理＞
図４Ｃは本発明の実施形態１のステップＳ７００４の検証結果統合処理の詳細を示すフローチャートである。
【００８９】
尚、本処理フローにおける各処理を実行する文書検証装置１０２は、この文書検証装置１０２が有するＣＰＵ（不図示）により統括的に制御される。
【００９０】
ステップＳ７２０１で、文書検証装置１０２は、ｎ番目の署名以降に検証対象文書ファイルに対して、改ざんが行われたか否か判定する。改ざんが行われた場合（ステップＳ７２０１でＹＥＳ）、ステップＳ７２０５に進み、「検証結果」を「改ざんあり」と決定する。もちろん、ｎ＋１番目の署名やｎ＋２番目の署名以降に改ざんが行われた場合にも、ステップＳ７２０５に進むことになる。一方、改ざんが行われていない場合（ステップＳ７２０１でＮＯ）、ステップＳ７２０２に進む。
【００９１】
ステップＳ７２０２で、文書検証装置１０２は、ｎ番目の署名以降の署名（ｎ番目の署名を含む）に含まれる証明書が有効であるか否か判定する。有効でない場合（ステップＳ７２０２でＹＥＳ）、ステップＳ７２０６に進み、「検証結果」を「証明書が有効でない」と決定する。一方、有効である場合（ステップＳ７２０２でＹＥＳ）、ステップＳ７２０３に進む。
【００９２】
ステップＳ７２０３で、文書検証装置１０２は、ｎ番目の署名以降に検証対象ファイルに対して編集が行われたか否か判定する。編集が行われた場合（ステップＳ７２０３でＹＥＳ）、ステップＳ７２０７に進み、「検証結果」を「編集あり」と決定する。もちろん、ｎ＋１番目の署名やｎ＋２番目の署名以降に編集が行われた場合にも、ステップＳ７２０７に進むことになる。一方、編集が行われていない場合（ステップＳ７２０３でＮＯ）、ステップＳ７２０４に進み、「検証結果」を「証明書が有効である」と決定する。
【００９３】
以上、文書ファイルに対して暗号処理や圧縮処理等のデータ変換処理を行わないで、オリジナル文書ファイルに対する署名付与処理及びタイムスタンプ署名付与処理について詳細に説明した。
【００９４】
次に、オリジナル文書ファイルから暗号処理や圧縮処理等のデータ変換処理を施しても署名検証を実現する、本発明の特徴的な処理について説明する。特に、本発明では、データ変換処理後の変換後文書ファイルの状態で、その電子ファイルに対して付与されている署名検証を行うための情報を、そのデータ変換処理前の文書ファイルに付与することで、これを実現する。
【００９５】
特に、文書登録装置１０１は、文書ファイルから第１非可逆圧縮データ（ハッシュ値）を計算する第１計算部と、変換後文書ファイルから第２非可逆圧縮データ（ハッシュ値）を計算する第２計算部とを実現する。
【００９６】
また、文書登録装置１０１は、第１非可逆圧縮データと第２非可逆圧縮データとを含む署名情報を生成する生成部を実現する。また、文書登録装置１０１は、生成した署名情報を文書ファイルに付与して、署名付き文書ファイルを生成する第１付与部、署名情報を変換後文書ファイルに付与して、署名付き変換後文書ファイルを生成する第２付与部を実現する。
【００９７】
また、文書登録装置１０１は、生成した署名付き文書ファイルを、文書ファイルと署名情報に分離する分離部を実現する。また、文書登録装置１０１は、分離した文書ファイルにデータ変換処理を施して、変換後文書ファイルを生成し、分離した署名情報を変換後文書ファイルに付与する第３付与部を実現する。
【００９８】
一方、文書検証装置１０２は、署名付き変換後文書ファイルの変換後文書ファイルから、第３非可逆圧縮データを計算する第３計算部を実現する。また、文書検証装置１０２は、第２非可逆圧縮データと、第３非可逆圧縮データとを比較することによって、署名付き変換後文書ファイルのデータ完全性を検証する第１検証部を実現する。
また、文書検証装置１０２は、変換後文書ファイルにデータ変換処理に対応するデータ逆変換処理を施して、変換前の文書ファイルを生成する逆変換部を実現する。また、生成した文書ファイルから、第４非可逆圧縮データを計算する第４計算部を実現する。また、第１非可逆圧縮データと、第４非可逆圧縮データとを比較することによって、文書ファイルのデータ完全性を検証する第２検証部を実現する。
【００９９】
＜図５：文書変換処理＞
図５は本発明の実施形態１の文書登録装置が文書ファイルに署名を付与する前に行う文書変換処理のフローを示すフローチャートである。
【０１００】
実施形態１では、図２ＡのステップＳ６００３にて電子署名付与処理が行われるが、この処理に先立ち、図５に示すように、文書変換処理に関するステップＳ３００１〜ステップＳ３００４を挿入する。
【０１０１】
ステップＳ６００１の処理後、証明書が有効である場合（ステップＳ６００２でＹＥＳ）、ステップＳ３００１に進む。ステップＳ３００１で、文書登録装置１０１は、オリジナル文書ファイルをどのような変換処理をするかを選択する文書変換方式選択処理を実行する。選択対象の文書変換方式は、文書変換アルゴリズムと、アルゴリズムにより必要であれば、それに関係する秘密鍵データである。秘密鍵データはパスワードの入力が促される場合もある。正しく文書変換方式が選択された場合、ステップＳ３００２に進む。
【０１０２】
ステップＳ３００２で、文書登録装置１０１は、ステップＳ３００１で選択された文書変換方式をオリジナル文書ファイルに適用させ、変換後文書ファイルを生成する文書変換処理を実行する。ステップＳ３００３で、当該変換後文書ファイルのハッシュ値を生成する（ハッシュ値生成方法は前述の方法に倣う）。
【０１０３】
ステップＳ３００４で、文書登録装置１０１は、変換時メタデータを文書ファイルに付与する変換時メタデータ付与処理を行う。変換時メタデータには、ステップＳ３００３で生成した変換後文書ファイルのハッシュ値（非可逆圧縮データ）が格納される。また、文書変換に用いた文書変換アルゴリズムや秘密鍵データに関する識別子を格納することもできる。
【０１０４】
文書変換アルゴリズムは、検証者と合意を得ている場合、システムにおいて同じアルゴリズムを用いる場合等は省略可能である。また、文書変換が暗号化処理やパスワード付圧縮処理等、文書変換時に秘密鍵が必要である場合、検証者と合意を得ている場合、システムにおいて同じ鍵を用いる場合等は省略可能である。
【０１０５】
ここで、ステップＳ３００４の変換時メタデータ付与処理の具体例について、図６を用いて説明する。
【０１０６】
図６は本発明の実施形態１のステップＳ３００４の変換時メタデータ付与処理の具体例を説明するための図である。
【０１０７】
図６（ａ）に示す文書ファイルは、オリジナル文書ファイル４０１だけ（署名等のデータが付与されていない）を含んでいる。この文書ファイルに対して変換時メタデータ付与処理を施した後の様子が図６（ｂ）である。変換時メタデータを付与したら、ステップＳ６００３に進む。
【０１０８】
図２Ｃ及び図２Ｄに対応するステップＳ６００３及びステップＳ６００４は通常処理として処理される。但し、図６の説明のとおり、オリジナル文書ファイルそのものに対する署名付与処理もしくはタイムスタンプ署名付与処理がなされるのではない。ここでは、オリジナル文書ファイルに対する変換時メタデータを生成し、変換時メタデータの連結データ（図６（ｂ）における４００と４０２）がハッシュ計算対象となる点が異なる。
【０１０９】
つまり、ステップＳ６２０１またはステップＳ６３０１における「文書ファイル」が変換時メタデータの連結データとして処理がなされる。また、オリジナル文書ファイルに対する変換時メタデータ０（図６（ｂ）の４００）は、ステップＳ３００４で付与する変換時メタデータ１（図６（ｂ）の４０２）と同等の形式をしている。そして、この変換時メタデータ０は、オリジナル文書ファイルのハッシュ値と、無変換であることを示す文書変換アルゴリズムの識別子を格納する。
【０１１０】
また、ステップＳ３００１において、複数の文書変換方式が選択される場合がある。複数の文書変換方式には、異なる文書変換アルゴリズムとは限らず、同一文書変換アルゴリズムであっても異なる秘密鍵データを用いた処理も別々にカウントされる。このように複数の文書変換方式が選択された場合、ステップＳ３００２〜ステップＳ３００４をそれぞれの文書変換方式に対してループ処理がなされる。
【０１１１】
図６（ｃ）は、２つの文書変換方式が選択され、ステップＳ３００２〜ステップＳ３００４のループが２回処理された後のデータ状態である。図６（ｃ）に示すように、変換時メタデータ１（４０２）と変換時メタデータ２（４０３）が付与されている。その後、ステップＳ６００３及びステップＳ６００４をじっこうする際のハッシュ対象は、オリジナル文書ファイル４０１に加え、変換時メタデータ１（４０２）と変換時メタデータ２（４０３）が付与された文書ファイルとなる。
【０１１２】
上述の処理によって、図６（ｄ）のように、ステップＳ６２０４及びステップＳ６３０４では、オリジナル文書ファイルに電子署名またはタイムスタンプ署名が付与される場合もある。一方で、図６（ｅ）のように、オリジナル文書ファイルではなく、変換後文書ファイルに対して電子署名またはタイムスタンプ署名が付与される場合もある。変換後文書ファイルに対して電子署名またはタイムスタンプ署名が付与される場合の詳細は、以下、図７を用いて説明する。具体的には、この図７は、オリジナル文書ファイルに対して署名、タイムスタンプ署名が付与された状態から、オリジナル文書ファイルを変換後文書ファイルに差し替える処理に準じる。
【０１１３】
＜図７：オリジナル文書ファイルから変換後文書ファイルへの差し替え＞
図５の処理によって、オリジナル文書ファイルに署名が付与された文書ファイルが生成されるが、バックアップ等の保存を行うために、その文書ファイルには暗号化処理や圧縮処理により文書変換処理（データ変換処理）が行われる。これにより、暗号化文書ファイルや圧縮文書ファイルが生成される。尚、暗号化文書ファイルについては、復号処理を施すことでオリジナルの文書ファイルを生成することができる。一方、圧縮文書ファイルについては、解凍処理を程こすることでオリジナルの文書ファイルを生成することができる。
【０１１４】
以下では、オリジナル文書ファイルに署名が付与された文書ファイルの内、オリジナル文書ファイルを変換する処理について説明する。
【０１１５】
例えば、図３（ｃ）または図６（ｄ）のようなデータ状態から、図６（ｅ）のようにオリジナル文書ファイルが変換後文書ファイルへ変換される（差し替えられる）。ここで新たに変換時メタデータ０（４００）が付与されている点に注意する。
【０１１６】
以下、図７を用いて、オリジナル文書ファイルから変換後文書ファイルへの変換（差替）の詳細について説明する。
【０１１７】
図７は本発明の実施形態１のオリジナル文書ファイルから変換後文書ファイルへの変換（差替）の詳細を示すフローチャートである。
【０１１８】
まず、ステップＳ５００１で、文書登録装置１０１は、署名付きオリジナル文書ファイル（署名付き文書ファイル）から変換時メタデータの分離処理を行う。署名付きオリジナル文書ファイルは、例えば、図６（ｄ）のようなデータ構造をしている。ここから変換時メタデータのみを抽出する。図６（ｄ）の例では、変換時メタデータ１（４０２）と変換時メタデータ２（４０３）を抽出する。
【０１１９】
ステップＳ５００２で、文書登録装置１０１は、抽出した変換時メタデータの中から、文書変換方式を選択する。ステップＳ５００３で、文書登録装置１０１は、ステップＳ５００２で選択した文書変換方式を実行し、変換後文書ファイル（図６（ｅ）では、変換後文書ファイル４０４）を生成する。尚、変換時メタデータには、文書変換アルゴリズム、秘密鍵データの識別子等が含まれており、これらの情報からステップＳ３００２と同等の処理を行うことができる。さらに、オリジナル文書ファイル４０１を変換後文書ファイル４０４に差し替える。
【０１２０】
ステップＳ５００４で、検証時に必要となるため、オリジナル文書ファイルに対する変換時メタデータを変換後文書ファイルに付与する。図６（ｅ）の例では、変換時メタデータ０（４００）が相当する。オリジナル文書ファイルに対する変換時メタデータは、ステップＳ３００４で生成した変換時メタデータと同等の形式をしており、オリジナル文書ファイルのハッシュ値と、無変換であることを示す文書変換アルゴリズムの識別子を格納する。変換時メタデータの付与の順番については、検証者との合意があればどのような順番でもよいが、図６（ｅ）の例のように、オリジナル文書ファイルに対する変換時メタデータを最初に持つようにしてもよい。
【０１２１】
このとき、図６（ｅ）における変換時メタデータの集合をハッシュ対象とする文書ファイルが生成されたことがわかる。また、復号処理を想定し、複数の変換時メタデータの内、どれを用いて文書変換がされたか示す情報を持つことも考えられる。このとき、変換時メタデータを番号付けしておき、当該変換処理に対する番号を備える方法により、複数の変換時メタデータの内、どれを用いて文書変換がされたか示す情報を持つことができる。また、この方法以外にも、当該変換処理に対する変換時メタデータを最後にさらに付与する方法、当該変換処理に対する変換時メタデータを最初に持つ方法等の方法が考えられる。
【０１２２】
また、ステップＳ５００２で選択した文書変換方式に対応する変換時メタデータを削除してもよい。図６（ｆ）の例では、変換時メタデータ１（４０２）に対応する文書変換方式が選択され、変換時メタデータ１が削除されていることがわかる。このようにして文書ファイルのデータ量を削減する効果を得ることができる。但し、これは、変換後文書ファイルが変換時メタデータ１（４０２）を復元できるだけの情報を内包している場合や、文書登録装置１０１において変換時メタデータ１が管理されている場合のみ適用できる。
【０１２３】
＜署名付き変換後文書ファイルの署名検証＞
最後に、図７のフローチャートを通じて作成した署名付き変換後文書ファイルの署名検証について説明する。尚、図６（ｄ）のような、署名付きオリジナル文書ファイルの署名検証については図４で説明済みのため割愛する。
【０１２４】
文書検証処理のステップＳ７００３（図４Ａ）の中に含まれる署名検証処理の内、ステップＳ７１０１（図４Ｂ）に着目する。ここでは、ステップＳ６２０２の逆演算である公開鍵による暗号化がなされるが、演算対象となるハッシュ値はオリジナル文書ファイルではなく、ステップＳ３００４を通して作成された変換時メタデータの集合である。
【０１２５】
検証前処理として、文書ファイル中にハッシュ対象がすべて含まれているか確認する。図６（ｅ）の例では、ハッシュ対象がすべて含まれているため、検証前処理は不要である。一方、図６（ｆ）の例では、ハッシュ対象として不足分があるため、変換後文書ファイルから抽出する、または、文書登録装置１０１から情報収集を行う等して変換時メタデータ１を復元する必要がある。その後、ステップＳ７１０１と同等の処理を行うことで、文書ファイルの検証が可能となる。
【０１２６】
以上説明したように、実施形態１によれば、文書ファイルに署名が付与された後に文書変換を施したとしても、変換後文書ファイルをオリジナルの文書ファイルに復号することなく、その文書ファイルの署名検証を実現することができる。
【０１２７】
＜＜実施形態２＞＞
実施形態１では、複数の変換時メタデータの内、どれを用いて文書変換がされたか示す情報を持つことができるが、変換処理が複数回行われた場合、どこまで復号すれば署名検証可能かが考慮されていない。
【０１２８】
そこで、実施形態２では、複数の変換時メタデータを署名検証の用途にのみ用い、復号処理（データ逆変換処理）に関する情報（管理情報）を、別途スクリプトプログラムとして持つことで検証者の利便性を上げる構成について説明する。
【０１２９】
図８（ａ）は、図６（ｅ）に加えて、復号スクリプトプログラム９０１が付与されていることを表している。図８（ｂ）は、復号スクリプトプログラム９０１の内容を示し、復号サービス情報９１１、アルゴリズム識別子９１２、秘密鍵ポインタ情報９１３を内包している。
【０１３０】
復号サービス情報９１１はオプションであり、復号のための外部サービスの所在を表している。図８（ｃ）では、この情報は、＜ｌｏｃａｔｉｏｎ＞タグで表現されている。アルゴリズム識別子９１２は、文書変換アルゴリズムの識別子またはプログラムの所在を示している。図８（ｃ）では、この情報は、＜ａｌｇ＿ｉｄ＞タグで表現されている。
【０１３１】
秘密鍵ポインタ情報９１３は復号サービス情報９１１に応じてオプションかどうか決まる情報であり、秘密鍵に関するポインタ情報が格納される。図８（ｃ）では、この情報は、＜ｋｅｙ＿ｉｄ＞タグで表現されている。復号スクリプトプログラム９０１の例として、図８（ｃ）のようにＸＭＬによる記述方法を例に挙げているが、復号を実行できるプログラムそのものを格納する等の用途でも利用できる。
【０１３２】
以上説明したように、実施形態２によれば、実施形態１で説明した効果に加えて、
文書ファイルにどこまで復号すれば検証可能になるかの情報を付帯させることで、検証者の利便性を向上させることができる。
【０１３３】
＜＜実施形態３＞＞
実施形態１では、変換時メタデータの集合に対してのみ署名検証を行っているが、オリジナル文書ファイルに復号した場合の２次署名検証については説明していない。
【０１３４】
そこで、実施形態３では、オリジナル文書ファイルに復号した場合の署名検証方法について説明する。
【０１３５】
署名検証には以下の２パターンが考えられる。
【０１３６】
１）保存された状態のまま検証処理、
２）保存された状態から元に戻して検証処理、の２パターンである。
【０１３７】
パターン１：保存された状態のまま、即ち、暗号化または圧縮処理が施されたままの状態で署名検証を行うパターンについては、実施形態１で説明済みである。
【０１３８】
パターン２：保存された状態から元に戻す、即ち、暗号化または圧縮処理がなされた文書ファイルの復号処理をしてから署名検証を行うパターンについて考慮すべき点を挙げる。
【０１３９】
暗号化処理を施したデータ（暗号化文書ファイル）は元のデータ（オリジナル文書ファイル）に復号できるという可逆性をもっているが、圧縮処理においては圧縮アルゴリズムが非可逆のため、パターン２による検証ができない場合がある。
【０１４０】
この場合、オリジナルデータと圧縮データの相関、つまり、圧縮後データが正しい圧縮前データ（オリジナルデータ）から生成されているか否か、について保証する術がない。そのため、オリジナルデータから圧縮データへ変換を行う際に、一旦、復号処理を行い、復号後データとオリジナルデータとを比較し、オリジナルデータと圧縮データの相関を保つことが必要である。
【０１４１】
可逆の場合には、例えば、図６（ｅ）の状態のとき、まず、変換後文書ファイル４０４をオリジナル文書ファイル４０１に戻すことができる。次に、オリジナル文書ファイル４０１のハッシュ値を計算し、変換時メタデータ０（４００）に内包されているハッシュ値と比較を行う。比較後一致すれば、２次署名検証も成功となり、改ざん等がされていないことが二重に保証されたことを意味する。
【０１４２】
以上説明したように、実施形態３によれば、オリジナルの文書ファイルに復号して文書ファイルが改ざんされていないことが二重に保証できる仕組みを提供することができる。
【０１４３】
＜＜実施形態４＞＞
上記実施形態において、コンピュータと、デジタルカメラを接続した情報処理システムの例を挙げたが、本発明の実施形態は、これに限定されるものではない。例えば、コンピュータ、プリンタ、デジタルカメラ、スキャナ、ビデオゲーム機、携帯情報端末、携帯電話等、任意の情報処理機器を複数接続した情報処理システムに容易に適用可能である。また、コンピュータ同士等、同種の情報処理機器を複数接続した情報処理システムにも同様に適用可能である。
【０１４４】
尚、署名方式は、ＲＳＡ署名を含む公開鍵暗号方式による暗号処理（秘匿化）方式の他、共通鍵暗号方式による暗号処理方式及びＭＡＣ（メッセージ認証子）生成方式を適用することができる。即ち、他の暗号アルゴリズムを用いても上記実施形態に係る構成を適用することができる。
【０１４５】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４６】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１４７】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１４８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１４９】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１５０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１５１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１５２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１５３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１５４】
【図１】本発明の実施形態１の情報処理システムの構成を示す図である。
【図２Ａ】本発明の実施形態１の文書登録装置が文書ファイルに署名を付与した上で文書管理サーバに登録する際に実行する署名登録処理のフローを示すフローチャートである。
【図２Ｂ】本発明の実施形態１のステップＳ６００１の証明書確認処理に詳細を示すフローチャートである。
【図２Ｃ】本発明の実施形態１のステップＳ６００３の電子署名付与処理の詳細を示すフローチャートである。
【図２Ｄ】本発明の実施形態１のステップＳ６００４のタイムスタンプ署名付与処理の詳細を示すフローチャートである。
【図３】本発明の実施形態１のハッシュ値の計算の具体例を示す図である。
【図４Ａ】本発明の実施形態１の文書検証装置がｎ個の署名を含む文書ファイルに対して、その文書ファイルの有効性を検証する際に実行する文書検証処理のフローを示すフローチャートである。
【図４Ｂ】本発明の実施形態１のステップＳ７００３の署名検証処理の詳細を示すフローチャートである。
【図４Ｃ】本発明の実施形態１のステップＳ７００４の検証結果統合処理の詳細を示すフローチャートである。
【図５】本発明の実施形態１の文書登録装置が文書ファイルに署名を付与する前に行う文書変換処理のフローを示すフローチャートである。
【図６】本発明の実施形態１のステップＳ３００４の変換時メタデータ付与処理の具体例を説明するための図である。
【図７】本発明の実施形態１のオリジナル文書ファイルから変換後文書ファイルへの変換（差替）の詳細を示すフローチャートである。
【図８】本発明の実施形態２のスクリプトプログラムを備える文書ファイルの構造を示す図である。
【符号の説明】
【０１５５】
１０１  文書登録装置１０１
１０２  文書検証装置１０２
１０３  文書管理サーバ
１０４  スキャナ
１０５  マルチファンクション機
１０６  共有記憶装置
１０７  インターネット
１０８  タイムスタンプ機関（ＴＳＡ）サーバ
１０９  証明書サーバ
【図１】
2008312064.tif 000003
【図２Ａ】
2008312064.tif 000004
【図２Ｂ】
2008312064.tif 000005
【図２Ｃ】
2008312064.tif 000006
【図２Ｄ】
2008312064.tif 000007
【図３】
2008312064.tif 000008
【図４Ａ】
2008312064.tif 000009
【図４Ｂ】
2008312064.tif 000010
【図４Ｃ】
2008312064.tif 000011
【図５】
2008312064.tif 000012
【図６】
2008312064.tif 000013
【図７】
2008312064.tif 000014
【図８】
2008312064.tif 000015