(57)【要約】【課題】  複数の電子文書の一括検証にかかる時間を短縮する。【解決手段】  第一の署名よりも後に付加された第二の署名の付加後に電子文書に対する編集が行われたか否かを判定する判定する(S718-S719)。そして、第二の署名の付加後に編集が行われたと判定した場合(S717)は、第一の署名の付加後の編集を判定することなく、電子文書の検証結果を出力する。また、第二の署名の付加後に編集が行われていないと判定した場合(S717)は、第一の署名の付加後の編集を判定して(S718-S719)、当該判定結果に基づき電子文書の検証結果を出力する。【選択図】  図10B
2008131400.tif 000002
【特許請求の範囲】
【請求項１】
電子文書に付加された第一の署名を検証する第一の検証手段と、
前記第一の署名より前に前記電子文書に付加された第二の署名を、前記第一の検証手段の検証後に検証する第二の検証手段と、
前記第一の検証手段および前記第二の検証手段の検証結果を用いて、前記電子文書に対する検証結果を決定する検証統合手段とを有し、
前記第二の検証手段は、前記第一の検証手段が前記第一の署名の付加後に前記電子文書に対する編集が行われたと判断した場合、前記第二の署名の付加後に前記電子文書に対する編集が行われたか否かの判断処理を行わないことを特徴とする文書検証装置。
【請求項２】
前記第二の検証手段は、前記第一の検証手段が前記第一の署名の付加後に前記電子文書に対する編集が行われたと判断した場合、前記編集に関する判断処理を行わないものの、前記第二の署名の付加後に前記電子文書に対する改竄が行われたか否かの判断処理を行うことを特徴とする請求項1に記載された文書検証装置。
【請求項３】
電子文書に付加された第一の署名を検証する第一の検証手段と、
前記第一の署名より前に前記電子文書に付加された第二の署名を、前記第一の検証手段の検証後に検証する第二の検証手段と、
前記第一の検証手段および前記第二の検証手段の検証結果を用いて、前記電子文書に対する検証結果を決定する検証統合手段とを有し、
前記第一の検証手段は、前記第一の署名の付加後に前記電子文書に対する編集が行われたか否かを前記第一の署名を用いて判断し、かつ、前記第一の署名の付加後に前記電子文書に対する改竄が行われたか否かを前記第一の署名を用いて判断することで、前記第一の署名を検証し、
前記第二の検証手段は、前記第二の署名の付加後に前記電子文書に対する編集が行われたか否かを前記第二の署名を用いて判断し、かつ、前記第二の署名の付加後に前記電子文書に対する改竄が行われたか否かを前記第二の署名を用いて判断することで、前記第二の署名を検証し、
前記第二の検証手段は、前記第一の検証手段が前記第一の署名の付加後に前記電子文書に対する編集が行われたと判断した場合、前記第二の署名の付加後に前記電子文書に対する編集が行われたか否かの判断処理を行わないことを特徴とする文書検証装置。
【請求項４】
電子文書に付加された第一の電子署名と、前記第一の電子署名よりも後に付加された第二の電子署名の有効性を確認し、当該確認結果に基づき、前記電子文書を検証する文書検証装置であって、
電子署名の付加後に前記電子文書に対する編集が行われたか否かを判定する判定手段と、
前記判定手段により、前記第二の電子署名の付加後に編集が行われたと判定された場合は、前記第一の電子署名の付加後の編集を前記判定手段に判定させることなく、前記電子文書の検証結果を出力し、前記判定手段により、前記第二の電子署名の付加後に編集が行われていないと判定された場合は、前記第一の電子署名の付加後の編集を前記判定手段に判定させて、当該判定結果に基づき前記電子文書の検証結果を出力する出力手段とを有することを特徴とする文書検証装置。
【請求項５】
第一の電子文書が含む電子署名を検証して、前記第一の電子文書の検証結果を生成する検証手段と、
第二の電子文書に、前記第一の検証手段が検証した電子署名と同一の電子署名が含まれるか否かを判定する判定手段と、
前記判定手段により、前記第二の電子文書が同一の電子署名を含むと判定された場合、前記同一の電子署名について検証を行わずに、前記第二の電子文書の検証結果を生成する第二の検証手段とを有することを特徴とする文書検証装置。
【請求項６】
前記第二の検証手段は、前記判定手段により、前記第二の電子文書が同一の電子署名を含むと判定された場合、前記第一の電子文書が含む電子署名の検証結果を用いて、前記第二の電子文書の検証結果を生成することを特徴とする請求項5に記載された文書検証装置。
【請求項７】
情報処理装置を制御して、電子文書に付加された第一の電子署名と、前記第一の電子署名よりも後に付加された第二の電子署名の有効性を確認し、当該確認結果に基づき、前記電子文書を検証する文書検証方法であって、
電子署名の付加後に前記電子文書に対する編集が行われたか否かを判定する判定ステップと、
前記判定ステップで、前記第二の電子署名の付加後に編集が行われたと判定した場合は、前記第一の電子署名の付加後の編集を前記判定ステップで判定することなく、前記電子文書の検証結果を出力する第一の出力ステップと、
前記判定ステップで、前記第二の電子署名の付加後に編集が行われていないと判定した場合は、前記第一の電子署名の付加後の編集を前記判定ステップで判定して、当該判定結果に基づき前記電子文書の検証結果を出力する第二の出力ステップとを有することを特徴とする文書検証方法。
【請求項８】
情報処理装置を制御して、電子文書を検証する文書検証方法であって、
第一の電子文書が含む電子署名を検証して、前記第一の電子文書の検証結果を生成する検証ステップと、
第二の電子文書に、前記第一の検証手段が検証した電子署名と同一の電子署名が含まれるか否かを判定する判定ステップと、
前記判定ステップで、前記第二の電子文書が同一の電子署名を含むと判定した場合、前記同一の電子署名について検証を行わずに、前記第二の電子文書の検証結果を生成する第二の検証ステップとを有することを特徴とする文書検証方法。
【請求項９】
情報処理装置を制御して、請求項7または請求項8に記載された電子文書の検証処理を実現することを特徴とするコンピュータプログラム。
【請求項１０】
請求項9に記載されたコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書の検証に関する。
【背景技術】
【０００２】
電子署名やタイムスタンプ署名といった署名技術が知られている。さらに、電子署名が付加された電子文書が編集（更新）された場合に、この編集に対して電子署名を付加する技術がある（例えば特許文献1参照）。編集に対して電子署名を付加する理由は、特許文献1にも記載されているように、編集した者が自らの編集内容に責任を負うことを明示的に示すためである。
【０００３】
なお、ここでは、タイムスタンプ署名および電子署名を総称して署名と呼ぶ。従って、署名を付加するという表現には、電子署名を付加する、タイムスタンプ署名を付加する、並びに、電子署名とタイムスタンプ署名の両方を付加するの何れかを意味する。
【０００４】
さらに、特許文献1は、編集や、編集に対する署名が付加された電子文書を検証する処理について、一世代前の編集記録から編集保証署名を抽出して検証を行う方法を開示する。具体的には、一世代前の編集差分情報から算出したハッシュ値と、その世代の編集作業者の公開鍵によって履歴保証署名を復号して得られるハッシュ値とを比較することで検証を行う方法である。履歴保証署名の検証が完了すると、一世代前の更新差分情報を取得し、電子文書の本文と、一世代前の更新差分情報に基づき、電子文書を復元する。
【０００５】
しかし、特許文献1の技術は、複数の署名が付加された電子文書の場合、それら署名を一括検証しようとすると、長い検証時間を必要とする。
【０００６】
【特許文献１】特開2003-216601公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、電子文書の一括検証にかかる時間を短縮することを目的とする。
【課題を解決するための手段】
【０００８】
本発明にかかる文書検証装置は、電子文書に付加された第一の署名を検証する第一の検証手段と、前記第一の署名より前に前記電子文書に付加された第二の署名を、前記第一の検証手段の検証後に検証する第二の検証手段と、前記第一の検証手段および前記第二の検証手段の検証結果を用いて、前記電子文書に対する検証結果を決定する検証統合手段とを有し、前記第二の検証手段は、前記第一の検証手段が前記第一の署名の付加後に前記電子文書に対する編集が行われたと判断した場合、前記第二の署名の付加後に前記電子文書に対する編集が行われたか否かの判断処理を行わないことを特徴とする。
【０００９】
また、電子文書に付加された第一の署名を検証する第一の検証手段と、前記第一の署名より前に前記電子文書に付加された第二の署名を、前記第一の検証手段の検証後に検証する第二の検証手段と、前記第一の検証手段および前記第二の検証手段の検証結果を用いて、前記電子文書に対する検証結果を決定する検証統合手段とを有し、前記第一の検証手段は、前記第一の署名の付加後に前記電子文書に対する編集が行われたか否かを前記第一の署名を用いて判断し、かつ、前記第一の署名の付加後に前記電子文書に対する改竄が行われたか否かを前記第一の署名を用いて判断することで、前記第一の署名を検証し、前記第二の検証手段は、前記第二の署名の付加後に前記電子文書に対する編集が行われたか否かを前記第二の署名を用いて判断し、かつ、前記第二の署名の付加後に前記電子文書に対する改竄が行われたか否かを前記第二の署名を用いて判断することで、前記第二の署名を検証し、前記第二の検証手段は、前記第一の検証手段が前記第一の署名の付加後に前記電子文書に対する編集が行われたと判断した場合、前記第二の署名の付加後に前記電子文書に対する編集が行われたか否かの判断処理を行わないことを特徴とする。
【００１０】
また、電子文書に付加された第一の電子署名と、前記第一の電子署名よりも後に付加された第二の電子署名の有効性を確認し、当該確認結果に基づき、前記電子文書を検証する文書検証装置であって、電子署名の付加後に前記電子文書に対する編集が行われたか否かを判定する判定手段と、前記判定手段により、前記第二の電子署名の付加後に編集が行われたと判定された場合は、前記第一の電子署名の付加後の編集を前記判定手段に判定させることなく、前記電子文書の検証結果を出力し、前記判定手段により、前記第二の電子署名の付加後に編集が行われていないと判定された場合は、前記第一の電子署名の付加後の編集を前記判定手段に判定させて、当該判定結果に基づき前記電子文書の検証結果を出力する出力手段とを有することを特徴とする。
【００１１】
また、第一の電子文書が含む電子署名を検証して、前記第一の電子文書の検証結果を生成する検証手段と、第二の電子文書に、前記第一の検証手段が検証した電子署名と同一の電子署名が含まれるか否かを判定する判定手段と、前記判定手段により、前記第二の電子文書が同一の電子署名を含むと判定された場合、前記同一の電子署名について検証を行わずに、前記第二の電子文書の検証結果を生成する第二の検証手段とを有することを特徴とする。
【００１２】
本発明にかかる文書検証方法は、情報処理装置を制御して、電子文書に付加された第一の電子署名と、前記第一の電子署名よりも後に付加された第二の電子署名の有効性を確認し、当該確認結果に基づき、前記電子文書を検証する文書検証方法であって、電子署名の付加後に前記電子文書に対する編集が行われたか否かを判定する判定ステップと、前記判定ステップで、前記第二の電子署名の付加後に編集が行われたと判定した場合は、前記第一の電子署名の付加後の編集を前記判定ステップで判定することなく、前記電子文書の検証結果を出力する第一の出力ステップと、前記判定ステップで、前記第二の電子署名の付加後に編集が行われていないと判定した場合は、前記第一の電子署名の付加後の編集を前記判定ステップで判定して、当該判定結果に基づき前記電子文書の検証結果を出力する第二の出力ステップとを有することを特徴とする。
【００１３】
また、情報処理装置を制御して、電子文書を検証する文書検証方法であって、第一の電子文書が含む電子署名を検証して、前記第一の電子文書の検証結果を生成する検証ステップと、第二の電子文書に、前記第一の検証手段が検証した電子署名と同一の電子署名が含まれるか否かを判定する判定ステップと、前記判定ステップで、前記第二の電子文書が同一の電子署名を含むと判定した場合、前記同一の電子署名について検証を行わずに、前記第二の電子文書の検証結果を生成する第二の検証ステップとを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、電子文書の一括検証にかかる時間を短縮することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明にかかる実施例の情報処理を図面を参照して詳細に説明する。
【実施例１】
【００１６】
［文書管理システムの構成］
図1は実施例1の文書管理システムの構成例を示す図である。
【００１７】
文書管理サーバ1003は、各種電子文書をデータファイルとして記憶し、ユーザが所望する電子文書を、記憶した電子文書から、適宜、検索する機能を備える。
【００１８】
文書登録装置1001は、電子文書に署名を付加した新たな電子文書を作成し、新たな電子文書を文書管理サーバ1003に送信して、文書管理サーバ1003に記憶させる。以下では、文書登録装置1001が文書管理サーバ1003に電子文書を記憶させることを「電子文書を登録する」という。
【００１９】
文書登録装置1001は、スキャナ1004を制御して例えばJPEG形式の電子データとして電子文書を取得する機能を有する。また、文書登録装置1001は、共有記憶装置1006に記憶された電子文書を取得することもできる。共有記憶装置1006は、例えば、インターネットなどのネットワーク1007から受信した電子メールに付加された電子文書や、複合機(MFP) 1005によって読み取られ、MFP 1005の送信機能により送られてきた電子文書を記憶する。
【００２０】
文書検証装置1002は、文書管理サーバ1003に記憶された電子文書を取り出して、取り出した電子文書を検証する。具体的には、電子文書に付加されている電子署名の有効性を判断したり、電子文書に付加されているタイムスタンプ署名の有効性をタイムスタンプサーバに判断させて判断結果を受け取ったりすることで、電子文書を検証する。
【００２１】
文書管理サーバ1003、文書登録装置1001、文書検証装置1002はそれぞれ、図示しないCPUとメモリを備え、メモリに格納されたプログラムをCPUが実行することで、文書管理システムに関する機能を実現する。また、電子文書は、文書管理サーバ1003の制御下にあるハードディスクなどの記憶装置に格納されている。また、図1には、文書登録装置1001と文書検証装置1002が別装置である例を示したが、両装置の機能をもつ一台の装置としてもよい。
【００２２】
［電子文書の登録］
図3は文書登録装置1001が電子文書を取得し、文書管理サーバ1003に登録する処理を説明するフローチャートである。
【００２３】
文書登録装置1001は、まず、図4Aに示す初期ダイアログを図示しないモニタに表示する(S101)。ユーザは、文書登録装置1001に接続された図示しないキーボードやマウスなどの入力デバイスを利用して、初期ダイアログのテキストボックス301のドロップダウンメニューから「SCAN」または「FILE」を選択する。ユーザが「SCAN」を選択した後、初期ダイアログの「開始」ボタン302を押すと(S102)、文書登録装置1001は、スキャン時の各種設定を行う図4Bに示すスキャンダイアログを表示する(S103)。
【００２４】
ユーザはスキャンダイアログを操作して、カラーモードや解像度などを設定した後、スキャンダイアログの「スキャン」ボタン303を押す(S104)。これに応じて、文書登録装置1001は、スキャナ1004にスキャンを開始させ、スキャナ1004から受信したスキャン画像を、一旦、装置内のメモリの所定領域に記憶する(S105)。そして、スキャンを継続するか否かをユーザに選択させるための図4Cに示す継続ダイアログを表示する(S106)。
【００２５】
ユーザが継続ダイアログの「はい」ボタン304を押すと(S107)、文書登録装置1001は、スキャンダイアログを表示するために処理をステップS105に戻す。また、ユーザが継続ダイアログの「いいえ」ボタン305を押すと(S107)、文書登録装置1001は、装置内のメモリの所定領域に記憶したスキャン画像から例えばPDF(portable document format)形式の電子文書を生成し、メモリの所定領域に格納する(S108)。
【００２６】
一方、ユーザが「FILE」を選択した後、初期ダイアログの「開始」ボタン302を押すと(S102)、文書登録装置1001は、入力する電子文書をユーザが指定するための図4Eに示すインポートダイアログを表示する(S121)。ユーザがインポートダイアログの「追加」ボタン321を押すと(S122)、文書登録装置1001は、ユーザが電子文書を選択するための図4Fに示すファイル選択ダイアログを表示する(S123)。ユーザは、ファイル選択ダイアログを操作して電子文書のファイル名を指定し、ファイル選択ダイアログの「開く」ボタン322を押す(S124)。これに応じて、文書登録装置1001は、ファイル選択ダイアログの表示を解除し(S125)、インポートダイアログのリストボックス323に、指定された電子文書のファイル名をリストアップし(S126)、処理をステップS122に戻す。
【００２７】
ユーザがインポートダイアログ「OK」ボタン324を押すと(S122)、文書登録装置1001は、処理をステップS108に進める。そして、リストボックス323にリストされた電子文書を、順次、共有記憶装置1006から読み込み、PDF形式の電子文書に変換して、メモリの所定領域に格納する(S108)。
【００２８】
電子文書の生成(S108)が終了すると、文書登録装置1001は、図4Dに示すプレビューダイアログを表示する(S109)。
【００２９】
プレビューダイアログは、PDF形式の電子文書をプレビュー表示するためのダイアログである。ユーザは、プレビューダイアログを利用して、電子文書に付加するインデックス情報の入力などを行う(S110)。インデックス情報の入力などが終了し、ユーザがプレビューダイアログの「実行」ボタン306を押すと(S111)、文書登録装置1001は、電子文書に電子署名およびタイムスタンプ署名を付加して新たな電子文書を生成する(S112)。そして、文書登録装置1001は、新たに生成した電子文書を文書管理サーバ1003に登録し(S113)、処理をステップS101に戻す。なお、文書登録装置1001は、文書管理サーバ1003に電子文書を登録する間、現在の処理状況を示す図4Gに示す処理状況表示ダイアログを表示し、すべての電子文書の登録が終了すると処理状況表示ダイアログの表示を解除する。
【００３０】
●登録処理
図5は文書登録装置1001が電子文書に電子署名およびタイムスタンプ署名を付加して文書管理サーバ1003に登録する処理(S112〜S113)を示すフローチャートである。
【００３１】
図5に示す処理の実行前に、文書登録装置1001のメモリには予めハッシュ関数、秘密鍵、秘密鍵に対応する証明書が記憶されているものとする。また、証明書には、公開鍵が含まれ、証明書のシリアル番号、証明書の発行元（サーバ）を示す情報、秘密鍵所持者に関する情報（秘密鍵所持者の名前等）、証明書の有効期間などの情報が記載されている。
【００３２】
文書登録装置1001は、電子署名に用いようとする証明書（以下「対象証明書」と呼ぶ）の有効性を確認し(S201)、対象証明書が有効か否かを判定して(S202)、有効の場合は処理をステップS203へ進め、無効の場合は処理を終了する。なお、対象証明書の有効性確認処理の詳細は後述する。
【００３３】
次に、文書登録装置1001は、有効性が確認された対象証明書を用いて、電子文書に電子署名を付加して新たな電子文書を作成する(S203)。なお、電子署名の付加処理の詳細は後述する。
【００３４】
次に、文書登録装置1001は、電子署名を付加した電子文書にタイムスタンプ署名を付加して、さらに新たな電子文書を生成する(S204)。なお、タイムスタンプ署名の付加処理の詳細は後述する。
【００３５】
次に、文書登録装置1001は、電子署名およびタイムスタンプ署名を付加した電子文書を文書管理サーバ1003に登録し(S205)、処理を終了する。
【００３６】
なお、電子文書に電子署名やタイムスタンプ署名を付加して、新たな電子文書を生成すると説明したが、必ずしも、新たな電子文書を生成しなくてもよい。例えば、電子署名の付加前の電子文書、電子署名、タイムスタンプ署名を別ファイルのまま、それぞれ関連付けて文書管理サーバ1003に登録してもよい。また、電子署名の付加、タイムスタンプ署名の付加、電子文書の登録などの処理に失敗した場合、適切なエラー処理が行われるものとする。
【００３７】
●証明書の有効性確認処理
図6Aは証明書の有効性の確認処理(S201)の詳細を示すフローチャートである。
【００３８】
文書登録装置1001は、対象証明書の発行元の情報を取得し、発行元が信頼できるサーバ（認証局）か否かを判定する(S211)。そして、信頼できると判定した場合は処理をステップS212へ進め、信頼できないと判定した場合は対象証明書の状態を無効にして(S216)、処理を終了する。なお、信頼できる発行元（サーバ）の情報は、文書管理サーバ1003に予め登録されているものとする。また、以下では、とくに断らない限り、発行元の証明書サーバ1009（図1参照）は信頼できるサーバとして説明する。また、とくに断らない限り、証明書の発行元は証明書サーバ1009であるとして説明する。
【００３９】
次に、文書登録装置1001は、対象証明書に記載された有効期間情報を取得して、対象証明書が期限切れか否かを判定する(S212)。そして、有効期限内の場合は処理をステップS213へ進め、有効期限切れの場合は対象証明書の状態を無効にして(S216)、処理を終了する。
【００４０】
次に、文書登録装置1001は、失効した証明書の一覧であるCRL (certificate revocation list)を、対象証明書の発行元である証明書サーバ1009から取得する(S213)。そして、対象証明書がCRLに含まれているか否かを判定し(S214)、含まれていない場合は対象証明書の状態を有効にし(S215)、含まれている場合は対象証明書は失効しているため、対象証明書の状態を無効にして(S216)、処理を終了する。
【００４１】
●電子署名の付加処理
図6Bは電子署名の付加処理(S203)を説明するフローチャートである。
【００４２】
文書登録装置1001は、電子文書のハッシュ値を計算する(S221)。なお、ハッシュ値の計算には、例えばMD5やSHA-1などのハッシュ関数を使用すればよい。もし、電子文書に既に署名が付加されていた場合は、その署名も含めてハッシュ値を計算する。
【００４３】
図7はオリジナルの電子文書と、ハッシュ値の計算対象の関係を示す図である。
【００４４】
図7(a)の電子文書はオリジナル文書だけを含む、言い替えれば署名が未付加である。こうした署名が未付加の電子文書に電子署名を付加する場合、オリジナル文書だけがハッシュ値の計算対象となる。この電子文書に電子署名を付加すると、図7(b)に示す電子文書が生成される。図7(b)の電子文書は、オリジナル文書と電子署名（署名1）を含んでいる。
【００４５】
図7(b)の電子文書に、さらに電子署名を付加する場合、オリジナル文書と署名1の両方がハッシュ値の計算対象になる。この図7(b)の電子文書に電子署名を付加すると、図7(c)に示す電子文書が生成される。図7(c)の電子文書は、オリジナル文書8001、電子署名（署名1）、電子署名（署名2）を含んでいる。
【００４６】
次に、文書登録装置1001は、対象証明書に含まれる秘密鍵により、ステップS221で計算したハッシュ値を暗号化し(S222)、暗号化ハッシュ値と対象証明書を含む電子署名を生成する(S223)。そして、生成した電子署名を電子文書に付加する(S224)。この電子署名の形式としては例えばPKCS#7やPDF電子署名などがある。
【００４７】
●タイムスタンプ署名の付加処理
図6Cはタイムスタンプ署名の付加処理(S204)を説明するフローチャートである。
【００４８】
文書登録装置1001は、ステップS203で電子署名が付加された電子文書のハッシュ値を計算する(S231)。なお、ハッシュ値の計算対象は、電子署名の付加のときと同様に、オリジナル文書に付加されているすべての署名である。
【００４９】
次に、文書登録装置1001は、計算したハッシュ値をタイムスタンプサーバ（タイムスタンプ局、time stamping authority (TSA)、図1参照）に送信する(S232)。
【００５０】
なお、電子署名付加処理(S203)で電子署名を付加する前の電子文書が、図7(a)に示すように、オリジナル文書だけを含むと仮定する。この場合、ステップS203で、図7(b)に示すように、オリジナル文書と電子署名（署名1）を含む文書ファイルが生成される。すると、このステップS232では、オリジナル文書と電子署名（署名1）の両方を対象として、ハッシュ値を計算することになる。
【００５１】
次に、文書登録装置1001は、計算したハッシュ値をタイムスタンプサーバ（タイムスタンプ局、time stamping authority (TSA)、図1参照）に送信する(S232)。
【００５２】
タイムスタンプサーバ1008は、ハッシュ値を受信すると、受信したハッシュ値をタイムスタンプサーバ1008に固有の秘密鍵で暗号化し、暗号化したハッシュ値と現在時刻を統合した統合情報を生成する。そして、この統合情報と、秘密鍵に対応する公開鍵を有する証明書を含むタイムスタンプトークンを生成して、タイムスタンプトークンを文書登録装置1001に返す。
【００５３】
文書登録装置1001は、タイムスタンプサーバ1008からタイムスタンプトークンを受信すると、受信したタイムスタンプトークンと、その他必要な情報を含むタイムスタンプ署名を生成する(S233)。そして、生成したタイムスタンプ署名を電子署名が付加された電子文書に付加する(S234)。
【００５４】
以上のように、実施例1では、タイムスタンプ署名を、電子署名が既に付加された電子文書に対して、付加する。このタイムスタンプ署名により、タイムスタンプ署名内に含まれる時刻より前に、電子文書に対して電子署名が既に付加されていたことを、後に立証することができるようになる。
【００５５】
［電子文書の検証］
図8は文書検証装置1002による、文書管理サーバ1003に登録された電子文書の検証処理を説明するフローチャートである。
【００５６】
文書検証装置1002は、まず、図9Aに示す初期ダイアログを図示しないモニタに表示する(S401)。初期ダイアログは、文書管理サーバ1003に登録された電子文書のファイル名を表示するダイアログである。ユーザが初期ダイアログの「検索」ボタン501を押すと(S402)、文書検証装置1002は、図9Bに示す検索条件設定ダイアログを表示する(S403)。検索条件設定ダイアログは、文書管理サーバ1003に登録された電子文書からユーザが所望の電子文書を検索するための検索条件を設定するためのダイアログである。
【００５７】
ユーザが、検索条件設定ダイアログの「閉じる」ボタン503を押すと(S404)、文書検証装置1002は、処理をステップS401に戻す。また、ユーザが、検索条件設定ダイアログで検索条件を設定した後、「検索」ボタン502を押すと(S404)、設定された検索条件（予めユーザが指定した検索件数を含む）を文書管理サーバ1003に通知する(S405)。
【００５８】
検索条件を受信した文書管理サーバ1003は、文書管理サーバ1003に登録された電子文書を、当該検索条件に従い検索し、検索結果を文書検証装置1002に返す。
【００５９】
文書検証装置1002は、検索結果を受信すると(S406)、図9Cに示す検索結果ダイアログを表示して、受信した検索結果を表示する(S407)。検索結果ダイアログは、予めユーザが指定した件数の電子文書のファイル名を表示する。ユーザが検索ダイアログの「次へ」または「前へ」ボタン506を押すと(S408)、文書検証装置1002は、文書管理サーバ1003に再検索を通知する(S412)。そして、同じ検索条件による再検索の結果を検索ダイアログに表示するために、処理をステップS406に戻す。この通知に応じて、文書管理サーバ1003は、次または前の指定件数の電子文書のファイル名を文書検証装置1002に返す。
【００６０】
一方、ユーザが検索ダイアログの「検証」ボタン504を押すと(S408)、文書検証装置1002は、検索結果ダイアログに表示された一または複数の電子文書について検証を実行する(S409)。そして、図9Dに示す検証結果ダイアログに最新の検証結果を表示する(S410)。
【００６１】
ユーザが検証結果ダイアログの「OK」ボタン507を押すと(S411)、文書検証装置1002は、処理をステップS407に戻す。その際、検索ダイアログの各コラムに、各電子文書の検証結果を新たに表示する。
【００６２】
また、ユーザが、検索ダイアログの「閉じる」ボタン505を押すと(S408)、文書検証装置1002は、処理をステップS401に戻す。
【００６３】
●検証処理
図10Aは電子文書の検証処理の詳細を示すフローチャートである。
【００６４】
文書検証装置1002は、検証対象の電子文書（以下「対象電子文書」と呼ぶ）を決定し、対象電子文書に対する検証を実行する。その際、対象電子文書に含まれる各署名の「有効性」に基づき、対象電子文書の有効性を判断する。
【００６５】
文書検証装置1002は、対象電子文書が含む署名の数をカウントし、その数をカウンタnに設定する(S701)。ここで、対象電子文書が含む署名には、古いものから順に連番が振られているものとする。例えば、図11(a)に示すように、電子文書が含む署名（署名1と署名2）には番号1と2が振られている。
【００６６】
次に、文書検証装置1002は、n＞0か否かを判定し(S702)、n=0の場合（検証すべき署名がない）場合は処理をステップS707へ進め、検証結果を文書管理サーバ1003に登録する。検証すべき署名がなかった場合（ステップS701の時点でn=0の場合）は、その旨を検証結果として登録する。
【００６７】
n＞0の場合（検証すべき署名がある）場合、文書検証装置1002は、対象電子文書が含むn番目の署名の検証処理を行う(S703)。すなわち、一番新しい署名の検証処理を行う。なお、検証処理の詳細は後述する。
【００６８】
次に、文書検証装置1002は、n番目の署名の検証結果に基づき、対象電子文書の検証結果を求める処理（以下「検証結果の統合処理」と呼ぶ）を行う(S704)。なお、検証結果の統合処理の詳細は後述するが、対象電子文書の検証結果には「有効」と「無効」がある。「有効」は、すべての署名が未改竄、証明書が有効、署名後は未編集の電子文書を示している。また、「無効」は、署名が改竄されたもの、証明書が無効のもの、署名後に編集されたものの三種類の電子文書が存在する。なお、実施例1では「署名が改竄された」は、署名自体が改竄された場合と、その署名が付加された時よりも後にオリジナル文書が改竄された場合とを含む表現であるものとする。
【００６９】
次に、文書検証装置1002は、後述する改竄フラグに基づき、n番目の署名の検証において、改竄を検知したか否かを判定する(S705)。改竄を検知した場合は、電子文書が無効であるため、以後の署名の検証処理は行わず、処理をステップS707へ進め、電子文書が無効を示す検証結果を文書管理サーバ1003に登録する。
【００７０】
また、改竄を検知しなかった場合、文書検証装置1002は、カウンタnをデクリメントして(S706)、処理をステップS702に戻し、ステップS702からS706の処理を対象電子文書が含むすべての署名を検証するまで繰り返す。従って、n=1のときにステップS704で求めた検証結果が対象電子文書の最終的な検証結果になる。
【００７１】
次に、n番目の署名の検証処理を説明するが、その前に、用語「改竄」「編集」を定義する。
【００７２】
改竄とは、署名を含む電子文書を不正に変更する行為である。例えば、署名を含む電子文書をバイナリフォーマットのデータとして開き、バイナリデータを変更する（ビットの値を‘1’から‘0’に、または、‘0’から‘1’に変更する）行為は改竄である。
【００７３】
編集とは、署名を含む電子文書を不正ではない方法で変更する行為である。例えば、署名を含む電子文書（例えばPDFフォーマット）を開き、PDFデータに含まれるオリジナル文書を変更して、変更内容を示す情報を電子文書に付加する行為は編集である。
【００７４】
言い換えれば、改竄は、改竄前の電子文書の情報が失われるように電子文書を変更する行為であり、編集は、編集前の電子文書の情報が失われないように電子文書を変更する行為である。なお、編集により電子文書が変更された内容（変更内容）を示す情報を、以下では「編集情報」と呼ぶことにする。例えば、図11(a)に示すオリジナル文書が編集されると、変更内容を示す編集情報が電子文書に追加され、さらに電子署名（署名3）が付加されて図11(b)に示す電子文書が生成される。
【００７５】
図10Bはn番目の署名の検証処理(S703)の詳細を示すフローチャートである。なお、電子文書の検証処理の開始前に、改竄確認フラグ、証明書確認フラグ、編集確認フラグ、改竄フラグ、証明書フラグ、編集フラグはそれぞれオンになっているものとする。
【００７６】
改竄確認フラグのオンは改竄検知を行う必要があることを意味する。証明書確認フラグのオンは証明書の有効性の判断を行う必要があることを意味する。編集確認フラグのオンは編集がされたかどうか判断する必要があることを意味する。改竄フラグのオンは、改竄されていないことを意味する。証明書フラグのオンは、証明書が有効であることを意味する。編集フラグのオンは、編集がされていないことを意味する。
【００７７】
文書検証装置1002は、n番目の署名が付加された後、n+1番目の署名が付加されるまでの、対象電子文書の改竄の有無を調べる(S711)。なお、n番目の署名が対象電子文書に付加された最新の署名の場合、文書管理サーバ1003は、n番目（最新）の署名が付加された後の、対象電子文書の改竄の有無を調べることになる。
【００７８】
n番目の署名がタイムスタンプ署名ではなく通常の電子署名の場合、ステップS711の具体的な処理は次のようになる。
【００７９】
まず、文書検証装置1002は、n番目の電子署名に含まれる証明書の公開鍵を用いて、n番目の電子署名に含まれるハッシュ値を復号する。さらに、n番目の電子署名が付加される前の電子文書からハッシュ値を計算する。そして、復号したハッシュ値と計算したハッシュ値を比較する。比較の結果、二つのハッシュ値が異なる場合は改竄ありである。また、比較の結果、二つのハッシュ値が同値の場合は改竄なしである。
【００８０】
また、n番目の署名がタイムスタンプ署名の場合、ステップS711の具体的な処理は次のようになる。
【００８１】
まず、文書検証装置1002は、n番目のタイムスタンプ署名に含まれる公開鍵を用いて、n番目のタイムスタンプ署名に含まれるタイムスタンプトークン内のハッシュ値を復号する。さらに、n番目のタイムスタンプ署名が付加される前の電子文書からハッシュ値を計算する。そして、復号したハッシュ値と計算したハッシュ値を比較する。比較の結果、二つのハッシュ値が異なる場合は改竄ありである。また、比較の結果、二つのハッシュ値が同値の場合は改竄なしである。
【００８２】
以上のステップS711の処理が終了すると、S712に移行する。続いて、文書検証装置1002は、改竄の有無を判定し(S712)、改竄ありと判定した場合は改竄確認フラグをオフにして(S721)、検証処理を終了する。つまり、改竄ありと判定した場合は、以下の処理（証明書の検証、署名後の編集の有無の調査）を行うことなく処理を終了して、検証時間の短縮を図る。ここで、改竄確認フラグをオフにするということは、その後の署名（n-1番目の署名）の改竄確認を行わないようにすることを意味する。一つでも、改竄が存在した以上、その文書の検証結果は「改竄があります」になってしまうので、以降の署名の改竄を確認しても意味が無いからである。
【００８３】
ステップS712で改竄なしと判定した場合、文書検証装置1002は、証明書フラグの状態を判定する(S713)。証明書フラグがオン（証明書が無効である署名が未だ見付かっていない）の場合は、ステップS714の証明書の有効性の確認処理に進む。また、証明書フラグがオフ（既に証明書が無効である署名が以前存在していた）の場合は、証明書の有効性確認処理をスキップして、処理をステップS717へ進める。このように、既に証明書が無効である署名が以前存在していた場合は、現在の署名の証明書が有効であるか無効であるかの確認（証明書の有効性確認処理）をスキップする。これは、既に証明書が無効である署名が存在していた以上、その文書の検証結果は「証明書が無効です」になってしまい、たとえ他の証明書が有効であっても最終的な文書の検証結果は変わらないからである。
【００８４】
証明書フラグがオン（証明書が無効である署名が未だ見付かっていない）の場合、文書検証装置1002は、n番目の署名に含まれる証明書の有効性を確認する(S714)。
【００８５】
n番目の署名がタイムスタンプ署名ではない場合、ステップS714の具体的な処理は、図6Aに示した証明書の有効性の確認処理と同様である。ただし、図6Aの処理は文書登録装置1001が行うが、ステップS714の処理は文書検証装置1002が行う点で異なる。また、図6Aの処理は、証明書の有効性を確認する時点で証明書が期限切れの場合は、常に、証明書の状態を無効にする。これに対して、ステップS714では、たとえ証明書の有効性を確認する時点で証明書が期限切れになっていても、期限切れ前にタイムスタンプ署名が行われている場合は証明書の状態を有効にする点で異なる。
【００８６】
また、n番目の署名がタイムスタンプ署名の場合、ステップS714の具体的な処理は、次のようになる。文書検証装置1002は、タイムスタンプ署名に含まれるタイムスタンプトークンに記載された有効期間に基づき、当該タイムスタンプ署名が有効か否かを判定する。ただし、タイムスタンプトークンに記載された有効期間内でなくても、期限切れ前に別のタイムスタンプ署名が行われいた場合は証明書の状態を有効にする。
【００８７】
次に、文書検証装置1002は、証明書の有効性の確認結果が有効か否かを判定し(S715)、有効の場合は処理をステップS717に進める。また、無効の場合は、証明書確認フラグをオフにして(S716)、処理をステップS717に進める。ここで、無効の場合に証明書確認フラグがオフにするということは、この後で検証すべき署名（n-1番目の署名）に付いている証明書の有効性を確認しなくてよいということを意味する。何故ならば、無効な証明書が存在した以上、文書の検証結果としては「無効な証明書があります」になってしまい、他の証明書が有効であったとしても最終的な文書の検証結果は変わらないからである。
【００８８】
次に、文書検証装置1002は、編集フラグの状態を判定し(S717)、編集確認フラグがオンの場合は、ステップS718の署名後の編集を確認する処理に進む。また、編集確認フラグがオフ（以前、編集情報が見付かった）の場合は、署名後の編集の有効性を確認する処理をスキップして、処理を終了する。このように、編集確認フラグがオフの場合に、署名後の編集の存在を確認する処理をスキップする理由は以下のとおりである。すなわち、編集情報が既に見付かっている以上、文書の検証結果は「署名後の編集があります」になってしまい、その後、編集情報が更に有ったとしても無かったとしても、文書の検証結果は変わらないからである。
【００８９】
編集フラグがオン（未だ編集情報が見付かっていない）の場合、文書検証装置1002は、n番目の署名以降にオリジナル文書に対する編集が行われたか否かを確認する処理を行う(S718)。例えば、図11(b)の文書のうちに示す編集情報が現在検証している署名が署名2であれば、オリジナル文書に対する編集が行われたと判断することになる。一方、現在検証している署名が署名3であれば、オリジナル文書に対する編集が行われていないと判断することになる。これは、ステップS718では、対象とする署名以降に編集が行われたか否かを確認する処理が行われるからである。
【００９０】
そして、文書検証装置1002は、署名後の編集の有無を判定し(S719)、編集なしと判定した場合は処理を終了する。また、編集ありと判定した場合は、編集確認フラグをオフにして処理を終了する。ここで、編集確認フラグをオフにするということは、これ以降の署名（n-1番目の署名）に対しては、編集情報があるか否かの判断を行わないようにする。すなわち、編集情報が既に見付かった以上、文書の検証結果は「署名後の編集があります」になってしまい、その後、編集情報が更に有ったとしても無かったとしても、文書の検証結果は変わらないからである。
【００９１】
図10Cは検証結果の統合処理(S704)の詳細を示すフローチャートで、改竄確認フラグ、証明書確認フラグ、編集確認フラグのオンオフに基づき、改竄フラグ、証明書フラグ、編集確認フラグの状態を更新する処理である。
【００９２】
まず、文書検証装置1002は、改竄確認フラグを判定し(S721)、改竄確認フラグがオフならば改竄フラグをオフにして(S726)、統合処理を終了する。すなわち、今後、改竄確認はしなくてよいことを示す情報があった場合（改竄確認フラグがオフの場合）は、改竄されていることが既に確認されたことを示す情報（改竄フラグをオフ）を与えることにする。
【００９３】
改竄確認フラグがオン（改竄確認を今後も行うことを示す情報がある）の場合、文書検証装置1002は、証明書フラグを判定する(S722)。この時点における証明書フラグのオフは、n+1番目以降の署名に含まれる証明書が無効であったことを示すので、文書検証装置1002は、n番目の署名に含まれる証明書の有効性の判断をしても意味がないと判断し、証明書確認フラグを判定せずに処理をステップS724へ進める。
【００９４】
また、証明書フラグがオンの場合、文書検証装置1002は、n番目の署名の証明書の検証結果を示す証明書確認フラグを判定し(S723)、証明書確認フラグがオフの場合は証明書フラグをオフにする(S727)。
【００９５】
次に、文書検証装置1002は、編集フラグを判定する(S724)。この時点における編集フラグのオフは、n+1番目以降の署名の後に編集があったことを示すので、文書検証装置1002は、n番目の署名後に編集があったかどうか判断しても意味が無いと判断し、編集確認フラグを判定せずに統合処理を終了する。
【００９６】
また、編集フラグがオンの場合、文書検証装置1002は、n番目の電子署名の後の編集の有無を示す編集確認フラグを判定し(S725)、編集確認フラグがオフの場合は編集フラグをオフにして(S728)、統合処理を終了する。
【００９７】
［検証結果の表示画面］
図12は、図9Cに示す検証結果ダイアログの詳細を示す図である。また、検証処理終後、文書検証装置1002によって表示されるダイアログでもある。
【００９８】
検証結果ダイアログの検証結果表示領域501は、少なくとも次の表示領域を有する。
【００９９】
表示領域502は、各電子文書の文書名を表示する。
【０１００】
アイコン表示領域503は、各電子文書に対する検証処理結果を下記のアイコンによって表示する。電子文書が有効であることを示すチェックマーク「レ」アイコン、改竄はされていないが改竄以外の問題があることを示す感嘆符「!」アイコン、改竄されていることを示す白抜きの感嘆符「!」アイコン、未検証を示す疑問符「?」アイコンなどがある。
【０１０１】
チェックマーク「レ」アイコンは、図10Aの検証処理において有効と判定された電子文書、つまり改竄フラグ、証明書フラグ、編集フラグがすべてオフの電子文書に対して表示される。
【０１０２】
感嘆符「!」アイコンは、図10Aの検証処理において編集あり、または、証明書が無効と判定された電子文書、つまり証明書フラグがオンまたは編集フラグがオンの電子文書に対して表示される。
【０１０３】
白抜きの感嘆符「!」アイコンは、図10Aの検証処理において改竄ありと判定された電子文書、つまり改竄フラグがオフの電子文書に対して表示される。
【０１０４】
また、疑問符「?」アイコンは、図10Aの検証処理が未実行の電子文書に対して表示される。
【０１０５】
表示領域504は、検証結果内容を表示する。なお、図12には、証明フラグと編集フラグのどちらか一方がオフならば例えば「証明書が無効か、署名後の編集があります」のような検証結果内容を表示する例を示した。しかし、証明フラグと編集フラグに応じて例えば「証明書が無効です」「署名後の編集があります」のように表示してもよい。
【０１０６】
表示領域505は、タイムスタンプ署名の付加日時を表示し、最後にタイムスタンプ署名が付加された日時を示す。
【０１０７】
表示領域506は、最終検証日時を表示し、電子文書の検証日時中で最新の日時を示す。
【０１０８】
以上のように、実施例1では、署名が改竄されていることがわかった場合は、その署名の中に含まれる証明書の確認処理や、その署名の後に編集が行われたかを確認する処理を行わない。また、改竄されている署名より以前に文書へ付加された署名の検証処理（改竄検知、証明書の確認処理、編集が行われたかを確認する処理）を一切、行わない。これは、改竄が見付かった以上、その文書の検証結果は「改竄があります」に確定し、変わりようがないからである。
【０１０９】
また、実施例1では、署名内の証明書が無効であることがわかった場合は、その署名より後に付加された署名（n-1番目の署名）内の証明書が無効であるかどうかを確認する処理を行わない。これは、証明書の無効が見付かった以上、たとえ他の証明書が有効であったとしても、その文書の検証結果は変わらないからである。ただし、署名内の証明書が無効であることがわかった場合でも、無効な証明書を含む署名より後に付加された署名に対する改竄の確認処理は行う。これは、改竄されていることが見付かった場合は、文書の検証結果が「証明書が無効です」から「改竄があります」に変更になるからである。
【０１１０】
このように、実施例1では、証明書が無効であることよりも改竄があることの方が重要な問題であるとして、その重要な問題をユーザに認識させるべく、たとえ署名内の証明書が無効であることがわかった場合でも、無効な証明書を含む署名より後に付加された署名に対する改竄の確認処理は中断することなく行う。
【０１１１】
また、実施例1では、署名後の編集があることが既にわかった場合は、その署名より後に付加された署名（n-1番目の署名）より後に編集があるかどうかを確認する処理を行わない。これは、署名後の編集があることがわかった以上、たとえ他の署名の後に編集がなかったとしても、その文書の検証結果は変わらないからである。ただし、署名後の編集があることがわかった場合でも、その署名より後に付加された署名に対する改竄の確認処理は行う。これは、改竄されていることが見付かった場合は、文書の検証結果が「署名後の編集があります」から「改竄があります」に変更になるからである。
【０１１２】
このように、実施例1では、署名後の編集があることよりも改竄があることの方が重要な問題であるとして、その重要な問題をユーザに認識させるべく、たとえ署名後の編集があることがわかった場合であっても、その署名より後に付加された署名に対する改竄の確認処理は中断することなく行う。
【０１１３】
このように、実施例1では、不要な処理を省略することにより、検証時間の短縮を図っている。
【実施例２】
【０１１４】
以下、本発明にかかる実施例2の情報処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１１５】
実施例2では、文書管理サーバ1003が複数の署名を含む電子文書を大量に蓄えている場合に、文書検証装置1002が高速に検証結果を求める方法を説明する。
【０１１６】
［証明書管理テーブル］
文書登録装置1001は、電子文書に署名を付加して文書管理サーバ1003に登録するだけでなく、署名を付加せずに電子文書を文書管理サーバ1003に登録することも可能である。また、電子文書には、予め一つ以上の署名が付加されていてもよい。
【０１１７】
文書管理サーバ1003は、文書登録時、電子文書に含まれる個々の署名の証明書を抽出し、文書ファイルと証明書の対応関係を記した証明書管理テーブルを作成する。なお、証明書管理テーブルは、文書管理サーバ1003ではなく、文書登録装置1001が作成して、文書管理サーバ1003に格納してもよい。
【０１１８】
図2は証明書管理テーブルの構成例を示す図である。証明書管理テーブルには、証明書フィールド2001、証明書の検証ステータスを示す証明書ステータスフィールド2002、証明書を利用する署名を含む電子文書が記録される利用文書フィールド2003がある。
【０１１９】
証明書ステータスフィールド2002には、有効と判定された証明書について「無効」が、無効と判定された証明書について「無効」が記録される。また、証明書の検証を未実行の場合は「未検証」が記録される。図2は証明書A、Dが未検証、証明書Bが有効、証明書Cが無効の例を示している。
【０１２０】
複数の電子文書が同一の証明書によって署名されている場合、利用文書フィールド2003には、複数の電子文書のファイル名が記録される。
【０１２１】
例えば、二つの署名を含む文書登録装置1001によって電子文書Xが文書管理サーバ1003に登録される場合を想定する。一つの署名は証明書Aを用い、もう一つの署名は証明書Dを用いるとする。
【０１２２】
文書管理サーバ1003は、証明書Aは証明書管理テーブルに既登録であるから、利用文書フィールド2003の証明書Aに対応するセルに電子文書Xのファイル名を追加する。一方、証明書Dが未登録だとすると、新たに証明書Dのレコードを作成し、利用文書フィールド2003の証明書Dに対応するセルに文書ファイルXのファイル名を記録する。
【０１２３】
［証明書の検証要否の判定］
文書検証装置1002は、証明書管理テーブルを用いて、検証対象文書が含む署名の証明書の有効性を検証する必要があるか否かを判定する。図13は証明書の検証要否の判定を示すフローチャートである。
【０１２４】
文書検証装置1002は、検証対象文書が含むすべての署名の証明書について、証明書管理テーブルから検証ステータスを取得する(S901)。そして、取得した証明書ステータスに一つでも無効があるか否かを判定する(S902)。無効の証明書ステータスがある場合は、証明書フラグをオフにして、証明書の検証を行わないように設定し(S905)、処理を終了する。
【０１２５】
一方、取得した証明書ステータスに無効がない場合、文書検証装置1002は、すべての証明書ステータスが有効か否かを判定する(S903)。すべての証明書ステータスが有効の場合は、証明書フラグをオンにして、かつ、証明書を検証しないように設定し(S906)、処理を終了する。
【０１２６】
また、証明書ステータスに未検証が含まれる場合、文書検証装置1002は、証明書フラグをオンにして、かつ、未検証の証明書の検証を設定し(S904)、処理を終了する。
【０１２７】
上記では、証明書ステータスの有効、無効を判定しているが、証明書の有効性については、証明書の検証時点から証明書管理テーブルから証明書ステータスを取得するまでのタイムラグによって、必ずしも、証明書の有効性を証明することができない場合がある。その点を考慮して、証明書ステータスの有効については判定せずに、無効だけを判定するようにしてもよい。つまり、図13において、ステップS902の判定で証明書ステータスに無効がない場合は、ステップS903を実行せず、ステップS904で証明書フラグをオンにして処理を終了すればよい。勿論、証明書管理テーブルに、証明書の検証時刻を記録して、所定時間内であれば証明書ステータスの有効を利用する方法もある。
【０１２８】
図14は証明書の検証要否を判定する具体例を示す図である。
【０１２９】
判定開始前の証明書管理テーブルの状態は図2であり、電子文書M、電子文書Xの順番に検証するとする。その他の電子文書の検証は、電子文書X以後に行われるものとし、ここでは言及しない。
【０１３０】
電子文書Mは、証明書管理テーブルから、証明書Aだけを用いることが分かり、その証明書ステータスは未検証である（図2）。従って、文書検証装置1002は、電子文書Mの検証処理において証明書Aの検証を行う。証明書Aの検証結果が無効だとすると、文書検証装置1002は、証明書管理テーブルを図14に示す状態に更新する。
【０１３１】
次に、文書管理装置1002は、電子文書Xを検証する。電子文書Xは、証明書管理テーブルから、証明書AとDを用いることが分かる。この時点で、証明書Aの証明書ステータスは無効である（図14）から、電子文書Xの検証について証明書フラグをオフにして、証明書の検証を行わないようにする。
【０１３２】
このように、電子文書の検証過程で証明書管理テーブルを更新すれば、電子文書の検証開始前に証明書の検証要否を判定することができる。その結果、不要な証明書の検証処理を省くことができ、大量文書の検証時間を削減することができる。
【図面の簡単な説明】
【０１３３】
【図１】文書管理システムの構成例を示す図、
【図２】証明書管理テーブルの構成例を示す図、
【図３】文書登録装置が電子文書を取得し、文書管理サーバに登録する処理を説明するフローチャート、
【図４Ａ】電子文書の登録処理における初期ダイアログの一例を示す図、
【図４Ｂ】電子文書の登録処理におけるスキャンダイアログの一例を示す図、
【図４Ｃ】電子文書の登録処理における継続ダイアログの一例を示す図、
【図４Ｄ】電子文書の登録処理におけるプレビューダイアログの一例を示す図、
【図４Ｅ】電子文書の登録処理におけるインポートダイアログの一例を示す図、
【図４Ｆ】電子文書の登録処理におけるファイル選択ダイアログの一例を示す図、
【図４Ｇ】電子文書の登録処理における処理状況表示ダイアログの一例を示す図、
【図５】文書登録装置が電子文書に署名を付加して文書管理サーバに登録する処理を示すフローチャート、
【図６Ａ】証明書の有効性の確認処理の詳細を示すフローチャート、
【図６Ｂ】署名の付加処理を説明するフローチャート、
【図６Ｃ】タイムスタンプ署名の付加処理を説明するフローチャート、
【図７】オリジナルの電子文書とハッシュ値の計算対象の関係を示す図、
【図８】文書検証装置による、文書管理サーバに登録された電子文書の検証処理を説明するフローチャート、
【図９Ａ】電子文書の検証処理における初期ダイアログの一例を示す図、
【図９Ｂ】電子文書の検証処理における検索条件設定ダイアログの一例を示す図、
【図９Ｃ】電子文書の検証処理における検索結果ダイアログの一例を示す図、
【図９Ｄ】電子文書の検証処理における検証結果ダイアログの一例を示す図、
【図１０Ａ】検証処理の詳細を示すフローチャート、
【図１０Ｂ】n番目の署名の検証処理の詳細を示すフローチャート、
【図１０Ｃ】検証結果の統合処理の詳細を示すフローチャート、
【図１１】オリジナル文書、署名、編集情報の関係を説明する図、
【図１２】図9Cに示す検証結果ダイアログの詳細を示す図、
【図１３】証明書の検証要否の判定を示すフローチャート、
【図１４】証明書の検証要否を判定する具体例を示す図である。
【図１】
2008131400.tif 000003
【図２】
2008131400.tif 000004
【図３】
2008131400.tif 000005
【図４Ａ】
2008131400.tif 000006
【図４Ｂ】
2008131400.tif 000007
【図４Ｃ】
2008131400.tif 000008
【図４Ｄ】
2008131400.tif 000009
【図４Ｅ】
2008131400.tif 000010
【図４Ｆ】
2008131400.tif 000011
【図４Ｇ】
2008131400.tif 000012
【図５】
2008131400.tif 000013
【図６Ａ】
2008131400.tif 000014
【図６Ｂ】
2008131400.tif 000015
【図６Ｃ】
2008131400.tif 000016
【図７】
2008131400.tif 000017
【図８】
2008131400.tif 000018
【図９Ａ】
2008131400.tif 000019
【図９Ｂ】
2008131400.tif 000020
【図９Ｃ】
2008131400.tif 000021
【図９Ｄ】
2008131400.tif 000022
【図１０Ａ】
2008131400.tif 000023
【図１０Ｂ】
2008131400.tif 000024
【図１０Ｃ】
2008131400.tif 000025
【図１１】
2008131400.tif 000026
【図１２】
2008131400.tif 000027
【図１３】
2008131400.tif 000028
【図１４】
2008131400.tif 000029
【手続補正書】
【提出日】平成19年11月9日(2007.11.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電子文書に付加された第一の署名を検証する第一の検証手段と、
前記第一の署名より前に前記電子文書に付加された第二の署名を、前記第一の検証手段の検証後に検証する第二の検証手段と、
前記第一の検証手段および前記第二の検証手段の検証結果を用いて、前記電子文書に対する検証結果を決定する検証統合手段とを有し、
前記第二の検証手段は、前記第一の検証手段が前記第一の署名が付加された後に前記電子文書に対する編集が行われたと判断した場合、前記第二の署名が付加された後に前記電子文書に対する編集が行われたか否かの判断を行わないことを特徴とする文書検証装置。
【請求項２】
前記第二の検証手段は、前記第一の検証手段が前記第一の署名が付加された後に前記電子文書に対する編集が行われたと判断した場合、前記編集に関する判断を行わないものの、前記第二の署名が付加された後に前記電子文書に対する改竄が行われたか否かの判断を行うことを特徴とする請求項1に記載された文書検証装置。
【請求項３】
電子文書に付加された第一の署名を検証する第一の検証手段と、
前記第一の署名より前に前記電子文書に付加された第二の署名を、前記第一の検証手段の検証後に検証する第二の検証手段と、
前記第一の検証手段および前記第二の検証手段の検証結果を用いて、前記電子文書に対する検証結果を決定する検証統合手段とを有し、
前記第一の検証手段は、前記第一の署名が付加された後に前記電子文書に対する編集が行われたか否かを前記第一の署名を用いて判断し、かつ、前記第一の署名が付加された後に前記電子文書に対する改竄が行われたか否かを前記第一の署名を用いて判断することで、前記第一の署名を検証し、
前記第二の検証手段は、前記第二の署名が付加された後に前記電子文書に対する編集が行われたか否かを前記第二の署名を用いて判断し、かつ、前記第二の署名が付加された後に前記電子文書に対する改竄が行われたか否かを前記第二の署名を用いて判断することで、前記第二の署名を検証し、
前記第二の検証手段は、前記第一の検証手段が前記第一の署名が付加された後に前記電子文書に対する編集が行われたと判断した場合、前記第二の署名が付加された後に前記電子文書に対する編集が行われたか否かの判断を行わないことを特徴とする文書検証装置。
【請求項４】
電子文書に付加された第一の署名と、前記第一の署名よりも後に付加された第二の署名の有効性を確認し、当該確認結果に基づき、前記電子文書を検証する文書検証装置であって、
署名が付加された後に前記電子文書に対する編集が行われたか否かを判定する判定手段と、
前記判定手段により、前記第二の署名が付加された後に編集が行われたと判定された場合は、前記第一の署名が付加された後の編集を前記判定手段に判定させることなく、前記電子文書の検証結果を生成し、前記判定手段により、前記第二の署名が付加された後に編集が行われていないと判定された場合は、前記第一の署名が付加された後の編集を前記判定手段に判定させて、当該判定結果に基づき前記電子文書の検証結果を生成する生成手段とを有することを特徴とする文書検証装置。
【請求項５】
第一の電子文書が含む署名を検証して、前記第一の電子文書の検証結果を生成する検証手段と、
第二の電子文書に、前記第一の検証手段が検証した署名と同一の署名が含まれるか否かを判定する判定手段と、
前記判定手段により、前記第二の電子文書が同一の署名を含むと判定された場合、前記同一の署名について検証を行わずに、前記第二の電子文書の検証結果を生成する第二の検証手段とを有することを特徴とする文書検証装置。
【請求項６】
前記第二の検証手段は、前記判定手段により、前記第二の電子文書が同一の署名を含むと判定された場合、前記第一の電子文書が含む署名の検証結果を用いて、前記第二の電子文書の検証結果を生成することを特徴とする請求項5に記載された文書検証装置。
【請求項７】
電子文書に付加された複数の署名それぞれを検証処理した結果に基づき、前記電子文書に対する検証結果を生成する文書検証装置であって、
前記電子文書に付加された署名に対する前記検証処理を行う際に、前記署名に含まれる電子証明書の有効性を判断する判断手段と、
前記判断手段が前記電子証明書を有効と判断した場合は、前記署名とは異なる署名に対して第一の検証処理を行う第一の検証手段と、
前記判断手段が前記電子証明書を無効と判断した場合は、前記異なる署名に対して第二の検証処理を行う第二の検証手段とを有し、
前記第一の検証処理は前記異なる署名に含まれる電子証明書の有効性を判断し、前記第二の検証処理は前記異なる署名に含まれる電子証明書の有効性を判断しないことを特徴とする文書検証装置。
【請求項８】
前記異なる署名は、前記判断手段が電子証明書の有効性を判断した署名が付加された電子文書に付加された署名であることを特徴とする請求項7に記載された文書検証装置。
【請求項９】
前記電子文書に付加された複数の署名のうちの一つでも、その署名に含まれる電子証明書が無効と判断された場合、前記電子文書に付加された署名に含まれる電子証明書が無効であることを示す検証結果を生成することを特徴とする請求項7又は請求項8に記載された文書検証装置。
【請求項１０】
前記第一および第二の検証処理は、前記電子文書に、前記異なる署名が付加された後、次の署名が付加されるまでの間に、前記電子文書に対する改竄が行われたか否かを判断することを特徴とす請求項7から請求項9の何れか一項に記載された文書検証装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明にかかる文書検証装置は、電子文書に付加された第一の署名を検証する第一の検証手段と、前記第一の署名より前に前記電子文書に付加された第二の署名を、前記第一の検証手段の検証後に検証する第二の検証手段と、前記第一の検証手段および前記第二の検証手段の検証結果を用いて、前記電子文書に対する検証結果を決定する検証統合手段とを有し、前記第二の検証手段は、前記第一の検証手段が前記第一の署名が付加された後に前記電子文書に対する編集が行われたと判断した場合、前記第二の署名が付加された後に前記電子文書に対する編集が行われたか否かの判断を行わないことを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
また、電子文書に付加された第一の署名を検証する第一の検証手段と、前記第一の署名より前に前記電子文書に付加された第二の署名を、前記第一の検証手段の検証後に検証する第二の検証手段と、前記第一の検証手段および前記第二の検証手段の検証結果を用いて、前記電子文書に対する検証結果を決定する検証統合手段とを有し、前記第一の検証手段は、前記第一の署名が付加された後に前記電子文書に対する編集が行われたか否かを前記第一の署名を用いて判断し、かつ、前記第一の署名が付加された後に前記電子文書に対する改竄が行われたか否かを前記第一の署名を用いて判断することで、前記第一の署名を検証し、前記第二の検証手段は、前記第二の署名が付加された後に前記電子文書に対する編集が行われたか否かを前記第二の署名を用いて判断し、かつ、前記第二の署名が付加された後に前記電子文書に対する改竄が行われたか否かを前記第二の署名を用いて判断することで、前記第二の署名を検証し、前記第二の検証手段は、前記第一の検証手段が前記第一の署名が付加された後に前記電子文書に対する編集が行われたと判断した場合、前記第二の署名が付加された後に前記電子文書に対する編集が行われたか否かの判断を行わないことを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、電子文書に付加された第一の署名と、前記第一の署名よりも後に付加された第二の署名の有効性を確認し、当該確認結果に基づき、前記電子文書を検証する文書検証装置であって、署名が付加された後に前記電子文書に対する編集が行われたか否かを判定する判定手段と、前記判定手段により、前記第二の署名が付加された後に編集が行われたと判定された場合は、前記第一の署名が付加された後の編集を前記判定手段に判定させることなく、前記電子文書の検証結果を生成し、前記判定手段により、前記第二の署名が付加された後に編集が行われていないと判定された場合は、前記第一の署名が付加された後の編集を前記判定手段に判定させて、当該判定結果に基づき前記電子文書の検証結果を生成する生成手段とを有することを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
また、電子文書に付加された複数の署名それぞれを検証処理した結果に基づき、前記電子文書に対する検証結果を生成する文書検証装置であって、前記電子文書に付加された署名に対する前記検証処理を行う際に、前記署名に含まれる電子証明書の有効性を判断する判断手段と、前記判断手段が前記電子証明書を有効と判断した場合は、前記署名とは異なる署名に対して第一の検証処理を行う第一の検証手段と、前記判断手段が前記電子証明書を無効と判断した場合は、前記異なる署名に対して第二の検証処理を行う第二の検証手段とを有し、前記第一の検証処理は前記異なる署名に含まれる電子証明書の有効性を判断し、前記第二の検証処理は前記異なる署名に含まれる電子証明書の有効性を判断しないことを特徴とする。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】