(57)【要約】【課題】  自システム以外のシステムでなされた署名に対する検証処理ができない。【解決手段】  自システム以外のシステムでなされた署名に対する検証処理を省略する。【選択図】  図６
2007334658.tif 000002
【特許請求の範囲】
【請求項１】
文書ファイルに付与されている署名の種類を判定する判定手段と、
前記判定手段で署名の種類が第１の種類であると判定された場合には、前記文書ファイル内の署名に含まれる証明書が有効であるか確認し、さらに前記署名に基づいて前記文書ファイルに対する改竄の検知を行い、当該確認と当該検知の結果に基づいて、前記署名が有効であるか否かを示す検証結果を生成する第１の生成手段と、
前記判定手段で署名の種類が第２の種類であると判定された場合には、前記文書ファイル内の署名に含まれる証明書が有効であるか確認を行うことなく、前記署名に基づいて前記文書ファイルに対する改竄の検知を行い、当該検知の結果に基づいて、前記署名が有効であるか否かを示す検証結果を生成する第２の生成手段とを有することを特徴とする署名検証装置。
【請求項２】
前記判定手段は、
前記署名を前記文書ファイルに付与した装置を判断し、当該判断結果に基づいて前記署名の種類を判定することを特徴とする請求項１に記載の署名検証装置。
【請求項３】
前記判定手段は、
前記署名が前記文書ファイルに付与された時期を判断し、当該判断結果に基づいて前記署名の種類を判定することを特徴とする請求項１に記載の署名検証装置。
【請求項４】
前記判定手段は、
前記署名を前記文書ファイルに付与した装置を判断し、かつ、前記署名が前記文書ファイルに付与された時期を判断し、当該両方の判断結果に基づいて前記署名の種類を判定することを特徴とする請求項１乃至３の何れか１項に記載の署名検証装置。
【請求項５】
前記判定手段は、
前記文書ファイルに付与されている署名より後に、前記文書ファイルに別の署名が付与されているか判断する第１の判断手段と、
前記第１の判断手段が前記文書ファイルに別の署名が付与されていると判断した場合に、前記別の署名が特定の装置により前記文書ファイルに付与されたか判断する第２の判断手段と、
前記第１の判断手段で前記文書ファイルに、前記署名より後に別の署名が付与されていると判断され、かつ、前記第２の判断手段で前記文書ファイルに、前記別の署名が前記特定の装置以外の装置により付与されたと判断した場合に、
前記署名の種類が前記第２の種類であると判定することを特徴とする請求項１乃至４の何れか１項に記載の署名検証装置。
【請求項６】
前記判定手段は、
前記場合以外の場合に、
前記署名の種類が前記第１の種類であると判定することを特徴とする請求項５に記載の署名検証装置。
【請求項７】
文書ファイルを受信する受信手段と、
前記受信手段で受信した文書ファイルに署名を付与する署名手段とを有し、
前記署名手段は、
前記入力手段で前記文書ファイルを受信する前に付与された署名と、受信した後に付与された署名とを区別するための識別情報を前記文書ファイルに付与することを特徴とする署名付与装置。
【請求項８】
前記署名手段は、
前記受信手段で受信した文書ファイルに、前記識別情報を含むようにして署名を付与することを特徴とする請求項７に記載の署名付与装置。
【請求項９】
前記署名手段は、
前記受信手段を介して文書ファイルを受信した場合には、必ず識別情報を含むようにして署名を付与するが、
それ以外の場合に署名を文書ファイルに対して付与する場合には、識別情報を含まないようにして署名を付与することを特徴とする請求項７に記載の署名付与装置。
【請求項１０】
文書ファイルに付与されている署名の種類を判定する判定工程と、
前記判定工程で署名の種類が第１の種類であると判定された場合には、前記文書ファイル内の署名に含まれる証明書が有効であるか確認し、さらに前記署名に基づいて前記文書ファイルに対する改竄の検知を行い、当該確認と当該検知の結果に基づいて、前記署名が有効であるか否かを示す検証結果を生成する第１の生成工程と、
前記判定工程で署名の種類が第２の種類であると判定された場合には、前記文書ファイル内の署名に含まれる証明書が有効であるか確認を行うことなく、前記署名に基づいて前記文書ファイルに対する改竄の検知を行い、当該検知の結果に基づいて、前記署名が有効であるか否かを示す検証結果を生成する第２の生成工程とを有することを特徴とする署名検証装置の制御方法。
【請求項１１】
前記判定工程は、
前記署名を前記文書ファイルに付与した装置の制御方法を判断し、当該判断結果に基づいて前記署名の種類を判定することを特徴とする請求項１０に記載の署名検証装置の制御方法。
【請求項１２】
前記判定工程は、
前記署名が前記文書ファイルに付与された時期を判断し、当該判断結果に基づいて前記署名の種類を判定することを特徴とする請求項１０に記載の署名検証装置の制御方法。
【請求項１３】
前記判定工程は、
前記署名を前記文書ファイルに付与した装置の制御方法を判断し、かつ、前記署名が前記文書ファイルに付与された時期を判断し、当該両方の判断結果に基づいて前記署名の種類を判定することを特徴とする請求項１０乃至１２の何れか１項に記載の署名検証装置の制御方法。
【請求項１４】
前記判定工程は、
前記文書ファイルに付与されている署名より後に、前記文書ファイルに別の署名が付与されているか判断する第１の判断工程と、
前記第１の判断工程が前記文書ファイルに別の署名が付与されていると判断した場合に、前記別の署名が特定の装置の制御方法により前記文書ファイルに付与されたか判断する第２の判断工程と、
前記第１の判断工程で前記文書ファイルに、前記署名より後に別の署名が付与されていると判断され、かつ、前記第２の判断工程で前記文書ファイルに、前記別の署名が前記特定の装置の制御方法以外の装置の制御方法により付与されたと判断した場合に、
前記署名の種類が前記第２の種類であると判定することを特徴とする請求項１０乃至１３の何れか１項に記載の署名検証装置の制御方法。
【請求項１５】
前記判定工程は、
前記場合以外の場合に、
前記署名の種類が前記第１の種類であると判定することを特徴とする請求項５に記載の署名検証装置の制御方法。
【請求項１６】
文書ファイルを受信する受信工程と、
前記受信工程で受信した文書ファイルに署名を付与する署名工程とを有し、
前記署名工程は、
前記入力工程で前記文書ファイルを受信する前に付与された署名と、受信した後に付与された署名とを区別するための識別情報を前記文書ファイルに付与することを特徴とする署名付与装置の制御方法。
【請求項１７】
前記署名工程は、
前記受信工程で受信した文書ファイルに、前記識別情報を含むようにして署名を付与することを特徴とする請求項７に記載の署名付与装置の制御方法。
【請求項１８】
前記署名工程は、
前記受信工程を介して文書ファイルを受信した場合には、必ず識別情報を含むようにして署名を付与するが、
それ以外の場合に署名を文書ファイルに対して付与する場合には、識別情報を含まないようにして署名を付与することを特徴とする請求項７に記載の署名付与装置の制御方法。
【請求項１９】
請求項１０乃至１８の何れか１項に記載の制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項２０】
請求項１９に記載のプログラムを格納したコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、署名検証装置、署名付与装置、及び、それらの制御方法、プログラム、記憶媒体に関する。
【背景技術】
【０００２】
情報化社会の進展とともに、ワードプロセッサ等で作成された電子データや紙文書を、複写機等でスキャンすることで電子化して文書管理システムなどに保存することが行われてきた。
【０００３】
近年では、セキュリティの意識が高まり、このような電子文書に対して、電子署名やタイムスタンプ署名によって、電子文書の存在証明を行うようになってきた。
【０００４】
また、１つの文書に付与される署名は１つとは限らずに、複数の電子署名や複数のタイムスタンプ署名が付与されるような文書も存在し、それらの文書内の署名を一括して検証するような技術が利用され始めている。もちろん、署名を検証する場合、署名を付与するのに使用した証明書の有効性を確認する必要がある。
【特許文献１】特開２００３−０４６４９９
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、外部の全く異なるシステムで文書ファイルに付与された署名については、その証明書の有効性を確認する際に以下のような問題がある。
【０００６】
こうした外部システムの付与した署名に含まれる証明書を信頼できない場合が多い。なぜなら、例えば、その証明書を発行した証明書サーバが失効した証明書の一覧であるＣＲＬ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）を、その証明書サーバが逐次更新しているかどうかはわからないからである。
【０００７】
特許文献１は、外部であるか内部であるかを意識することなく、署名の検証を行っている。このような方式で署名の検証を行うと、外部で付与した署名については、そこで発行された証明書の確認処理ができる場合を除いて、一律無効という検証結果が得られることになる。
【０００８】
従って、外部で付与された署名を含む文書ファイルの大部分は、無効と判定されてしまう課題が存在する。
【０００９】
本発明は、上述した課題を解決するためになされたものであり、より柔軟に各署名の検証を行うところにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本署名検証装置は以下の構成を有する。
【００１１】
即ち、
文書ファイルに付与されている署名の種類を判定する判定手段と、
前記判定手段で署名の種類が第１の種類であると判定された場合には、前記文書ファイル内の署名に含まれる証明書が有効であるか確認し、さらに前記署名に基づいて前記文書ファイルに対する改竄の検知を行い、当該確認と当該検知の結果に基づいて、前記署名が有効であるか否かを示す検証結果を生成する第１の生成手段と、
前記判定手段で署名の種類が第２の種類であると判定された場合には、前記文書ファイル内の署名に含まれる証明書が有効であるか確認を行うことなく、前記署名に基づいて前記文書ファイルに対する改竄の検知を行い、当該検知の結果に基づいて、前記署名が有効であるか否かを示す検証結果を生成する第２の生成手段とを有する。
【発明の効果】
【００１２】
本発明により、より柔軟な各署名の検証を行うことができる。
【発明を実施するための最良の形態】
【００１３】
（実施例１）
以下、本発明の実施例１について図面を参照して詳細に説明する。
【００１４】
＜図１・・・本明細書で開示するシステムの構成＞
図１を用いて、本明細書で開示するシステムの構成について説明を行う。
【００１５】
文書管理サーバ１００３は、各種文書ファイルを記憶している。この文書管理サーバ１００３は、記憶している文書ファイルの中から所望の文書ファイルを適宜、検索することができるようになっている。
【００１６】
文書登録装置１００１は、文書ファイルに署名を付与した上で新たな文書ファイルを作成する。そして、この新たな文書ファイルを上記文書管理サーバ１００３に対して送信し、文書管理サーバ１００３に記憶させる。このように、「文書登録装置１００１が文書管理サーバ１００３に文書ファイルを記憶させる」ことを、以下では、「文書登録装置１００１が文書管理サーバ１００３に文書ファイルを登録する」と称する。
【００１７】
文書検証装置１００２は、文書管理サーバ１００３に記憶されている文書ファイルを取出して、当該取出された文書ファイル内に存在する署名を検証する。
【００１８】
これら文書管理サーバ１００３、文書登録装置１００１、文書検証装置１００２は、夫々、各装置が具備する不図示のＣＰＵにより統括的に制御される。
【００１９】
なお、本明細書において「電子署名」も「タイムスタンプ署名」も、「署名」の一種であるものとする。そのため、本明細書における「署名を付与する」という表現は、「電子署名を付与する」こと、又は、「タイムスタンプ署名を付与する」こと、又は「電子署名とタイムスタンプ署名との両方を付与する」ことの何れかを指す表現であるものとする。
【００２０】
文書登録装置１００１は、スキャナ１００４と接続されＴＷＡＩＮ経由でＪＰＥＧ形式の文書ファイルを取り込む機能を有する。さらに、この文書登録装置１００１は、共有記憶装置１００６内の文書ファイルを取り込むことも可能となっている。この共有記憶装置１００６は、例えば、インターネット１００７経由でメール送信されてきた文書ファイルや、マルチファンクション機１００５（以下では、ＭＦＰ１００５と称する）からＳＭＢやＦＴＰ送信機能で送信されてきた文書ファイルを記憶している。共有記憶装置１００６内に記憶されているこれらの文書ファイルには、署名が未だ付与されていない文書ファイルや、予め他の装置で署名が付与されてしまっている文書ファイルが存在する。本発明の一番の特徴は、文書管理サーバ内で付与される署名と、他の装置で既に付与されてしまっている署名とで、検証処理を異ならせるところにある。
【００２１】
また、本図１では、文書登録装置１００１、文書検証装置１００２がそれぞれ別の装置であるものとして説明を行ったが、双方の装置の機能を持った一つの装置が存在したとしても問題はない。
【００２２】
＜図２・・・文書登録装置１００１が文書ファイルを取り込んで、署名を付与して、文書管理サーバ１００３に登録する処理を実行する際のダイアログの遷移＞
図２は、文書登録装置１００１が文書ファイルを取り込んで、文書管理サーバ１００３に登録する処理を実行する際に、この文書登録装置１００１に接続されている表示部に表示されるダイアログの遷移を表している。ダイアログ２０００は、文書登録装置１００１に接続されている表示部に表示される初期ダイアログである。ユーザは、文書登録装置１００１に接続されているキーボードやマウスを利用して、ダイアログ２０００上で「ＳＣＡＮ」か「ＦＩＬＥ」のうちどちらか一方を選択することができる。もし、ユーザが「ＳＣＡＮ」を選択すると、スキャンにより文書ファイルを文書登録装置１００１内に取り込むことを選択したことになる。もし、ユーザが「ＦＩＬＥ」を選択すると、共有記憶装置１００６内に記憶されている文書ファイルを文書登録装置１００１内に取り込むことを選択したことになる。なお、ダイアログ２００１は、ユーザがダイアログ２０００上で「ＦＩＬＥ」を選択した際に表示部に表示されるダイアログである。
【００２３】
ここで、ユーザが「ＳＣＡＮ」を選択し、ダイアログ２０００上で「開始」を選択したと仮定する。すると、スキャン時の各種設定をユーザに選択させるためのスキャンダイアログ２００２が表示部に表示される。
【００２４】
このスキャンダイアログ２００２上で、ユーザがカラーモードや解像度等の選択を行った後、スキャンダイアログ２００２内のスキャンボタン２０１１を選択すると、スキャナ１００４はスキャンを開始する。さらに、このスキャナ１００４は、スキャン画像形式の文書ファイル（ＢＭＰ，ＴＩＦＦ形式）を一旦、文書登録装置１００１に対して送信する。すると、文書登録装置１００１は、受信したスキャン画像形式の文書ファイルを、文書登録装置１００１内の所定の記憶手段に記憶させる。その後、文書管理装置１００１は、継続スキャンを行うかどうかをユーザに選択させるための継続スキャンダイアログ２００４を表示部に表示する。
【００２５】
継続スキャンダイアログ２００４上でユーザが「はい」を選択すると、文書登録装置１００１は、表示部にスキャンダイアログ２００２を表示する。また、継続スキャンダイアログ２００４上でユーザが「いいえ」を選択すると、文書登録装置１００１は、上記受信したスキャン画像形式の文書ファイルをＰＤＦに変換して、ＰＤＦ形式の文書ファイルを生成する。生成が終了すると、文書登録装置１００１は、表示部にプレビューダイアログ２００６を表示する。
【００２６】
プレビューダイアログ２００６は、ＰＤＦ形式の文書ファイルを表示部にプレビュー表示するためのダイアログである。ユーザは、ＰＤＦ形式の文書ファイルに付与するためのインデックス情報の入力などを、このプレビューダイアログ２００６上で行う。インデックス情報の入力などが終了した時点で、ユーザがプレビューダイアログ２００６上で「実行」を選択すると、文書登録装置１００１は、上記ＰＤＦ形式の文書ファイルに対して署名を付与して、新たな文書ファイルを生成する。そして、文書登録装置１００１は、この新たに生成された文書ファイルを文書管理サーバ１００３に登録する。このように、本実施例では、文書ファイルを文書管理サーバ１００３に登録する前に、必ず、文書登録装置１００１が、その文書ファイルに電子署名及びタイムスタンプ署名を付与するものとする。さらに、この時、本文書登録装置１００１は、入力オプション情報（一種の識別情報）を含む電子署名を付与している。なお、文書管理サーバ１００３へ文書ファイルを登録する直前に本文書登録装置１００１が付与する電子署名のみが、この入力オプション情報を含んでいる。その後、システム内部で、さらに文書ファイルに電子署名やタイムスタンプ署名が付与されたり更新されたりすることがあっても、入力オプション情報が新たに付与されることはない。これは、内部で付与された署名であるか外部で付与された署名であるかを最新の入力オプション情報に基づいて判断する文書検証装置１００２を、混乱させないためである。
【００２７】
本実施例では、後述するように、最新の入力オプション情報を含む署名より後の署名については、本文書登録装置１００１や文書管理サーバ１００３や文書検証装置１００２を含むシステム内で付けられた署名であると認識している。このように、最新の入力オプション情報に基づいて、内部で付与された署名であるか外部で付与された署名であるかを識別可能になっている。
【００２８】
もちろん、内部で付与された署名であるか外部で付与された署名であるかについては、署名に含まれている証明書内の後述する「署名付与装置固有の情報」を見ればわかる。そういう意味では、入力オプション情報を付与する意義は無い。しかし、「署名付与装置固有の情報」を見る方法だと、外部で付与された署名であるか内部で付与された署名であるかを判断するにあたって、全ての署名の中身を見る必要がある。
【００２９】
一方、入力オプション情報を付与しておくと、最新の入力オプション情報を見つけた時点より後の署名については、入力オプション情報が存在するか否かを判断するにあたって、署名の中身を見る必要がない。
【００３０】
なお、ここで入力オプション情報という言葉に「最新の」が含まれている理由について以下に簡単に説明する。
【００３１】
文書ファイルが本システム内部に入力され、いったん外部に出された上で、再度、本システム内部に戻ってきた場合を想定する。
【００３２】
このような場合、文書ファイルには、複数の入力オプション情報が付与されることになる。しかしながら、本文書検証装置は、一度、外部に出された文書ファイルについては、それが再度、内部に入力されるより前の状態は、信頼できるに足らない文書ファイルであると判断する。たとえ、署名が内部で付与されていたとしても、このように判断するように設計されている。
【００３３】
そのため、複数の入力オプション情報のうち、文書検証装置は、「最新の」入入力オプション情報のみを用いた処理を行う。
【００３４】
なお、文書管理サーバ１００３に全ての文書ファイルが登録されるまでの間、文書登録装置１００１は、現在の処理状況を示す処理状況表示ダイアログ２００７を表示部に表示する。全ての文書ファイルが文書管理サーバ１００３に登録される、文書登録装置１００１は、処理状況表示ダイアログ２００７を表示部から消すことになる。
【００３５】
一方、ユーザが「ＦＩＬＥ」を選択し、ダイアログ２０００上で「開始」を選択すると、取り込みたいファイルを選択するためのダイアログ２００９が表示される。
【００３６】
ユーザが、このダイアログ２００９で「追加」を選択した場合には、ユーザにイメージファイルを指定させるためのダイアログ２０１０を文書登録装置１００１は表示部に表示する。この状態で、ユーザが任意のファイルを指定すると、文書登録装置１００１は、再び、表示部にダイアログ２００９を表示する。このダイアログ２００９内の領域２０１２には、ユーザにより指定された文書ファイルの名称が列挙されている。
【００３７】
このダイアログ２００９上でユーザが「ＯＫ」を選択すると、文書登録装置１００１は、ダイアログ２００９内の領域２０１２に列挙された各文書ファイルをＰＤＦ形式の文書ファイルに変換する。
【００３８】
＜図３（ａ）・・・文書登録装置１００１が文書ファイルに署名を付与して、文書管理サーバ１００３に登録する処理＞
図３（ａ）は、文書登録装置１００１が文書ファイルに署名を付与した上で文書管理サーバ１００３に登録する際に実行される処理のフローを示す。本処理フローにおける各処理を実行する文書登録装置１００１は、この文書登録装置１００１が有する不図示のＣＰＵにより統括的に制御される。
【００３９】
なお、本フローチャートでの各処理が実行される前には必ず、予め文書登録装置１００１内の記憶手段に、ハッシュ関数と、秘密鍵と、当該秘密鍵に対応する証明書とが記憶されているものとする。これらのハッシュ関数、秘密鍵、証明書は、電子署名に用いられるものであって、タイムスタンプ署名に用いられるものではない。タイムスタンプ署名に用いられる各情報（ハッシュ関数、秘密鍵、証明書）は、文書登録装置１００１内ではなく、タイムスタンプサーバ１００８内に記憶されている。
【００４０】
なお、上記電子署名に用いられる証明書には、公開鍵が含まれている。また、上記電子署名に用いられる証明書には、上記電子署名に用いられる証明書のシリアル番号や、上記電子署名に用いられる証明書の有効期間や電子署名を行う署名付与装置固有の情報などの情報が記載されているものとする。なお、署名付与装置固有の情報とは、例えば、文書登録装置１００１自体のＩＰアドレスや名称などである。
【００４１】
ステップ３００１では、文書登録装置１００１は、電子署名に用いようとしている証明書（以下では、電子署名に用いようとしているこの証明書を、対象証明書と称する）の有効性を確認する。なお、この対象証明書に対する有効性の確認処理の詳細は、図３（ｂ）を用いて後述する。
【００４２】
ステップ３００２では、ステップ３００１で対象証明書が有効であることが確認された場合には、ステップ３００３へ進み、無効であることが確認された場合には、本フローチャートにおける処理を終了する。
【００４３】
ステップ３００３では、文書登録装置１００１は、有効であることが確認された対象証明書を用いて、文書ファイルに対して電子署名を付与することで、新たな文書ファイルを作成する。この電子署名を付与する処理の詳細は、図３（ｃ）を用いて後述する。
【００４４】
ステップ３００４では、文書登録装置１００１は、ステップ３００３で生成された文書ファイルに対してタイムスタンプ署名を付与することで、さらに新たな文書ファイルを生成する。このタイムスタンプ署名を付与する処理の詳細は、図３（ｄ）を用いて後述する。
【００４５】
ステップ３００５では、文書登録装置１００１は、ステップ３００４で生成された文書ファイルを文書管理サーバ１００３に登録する。なお、本実施例では、文書ファイルに電子署名やタイムスタンプ署名を付与して、新たな文書ファイルを生成するものとして説明を行っているが、必ずしも新たな文書ファイルを生成しなくてもよい。例えば、署名付与前の文書ファイルと電子署名とタイムスタンプ署名とを別ファイルのまま夫々関連付けた状態で登録するようにしてもよい。
【００４６】
もちろん、３００３の処理（電子署名の付与処理）、３００４の処理（タイムスタンプ署名の付与処理）、又は３００５の処理（文書ファイル等の登録処理）の最中に失敗した場合には、適切なエラー処理が行われているものとする。
【００４７】
＜図３（ｂ）・・・電子署名に用いる証明書の有効性の確認処理＞
続いて、ステップ３００１の処理（電子署名に用いる証明書の有効性の確認処理）について、詳細に説明する。
【００４８】
ステップ３１０１では、文書登録装置１００１は、対象証明書の発行元を判断する。さらに、この文書登録装置１００１は、その発行元が信頼できる証明書サーバ（認証局）であるか否かについて確認を行う。なお、どのサーバが信頼できるのかについては、文書管理サーバ１００３内のオペレーティングシステムに予め登録されているものとする。信頼できることが確認された場合には、ステップ３１０２へ進む。信頼できないことが確認された場合には、ステップ３１０６へ進み、対象証明書の状態を無効とする。なお、本明細書では、特に断ることの無い限り、証明書サーバ１００９は信頼できる証明書サーバであるものとして説明を行う。同じく、特に断ることの無い限り、各証明書を発行する発行元は、この証明書サーバ１００９であるものとして説明を行う。
【００４９】
ステップ３１０２では、文書登録装置１００１は、対象証明書に記載されている有効期間が、切れているか否かについて確認を行う。有効期間が切れている場合には、ステップ３１０６へ進み、対象証明書の状態を無効とする。有効期間内であれば、ステップ３１０３へ進む。
【００５０】
ステップ３１０３では、文書登録装置１００１は、失効した証明書の一覧であるＣＲＬ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）を、対象証明書の発行元である証明書サーバ１００９から取得する。
【００５１】
ステップ３１０４では、文書登録装置１００１は、対象証明書が上記ＣＲＬに含まれているかを確認する。含まれている場合には、対象証明書は失効してしまっているためステップ３１０６へ進み、対象証明書の状態を無効とする。含まれていない場合には、３１０５へ進み、対象証明書の状態を有効とする。
【００５２】
＜図３（ｃ）・・・電子署名の付与処理＞
続いて、ステップ３００３の処理（電子署名の付与処理）について、図６（ｃ）を用いて詳細に説明する。
【００５３】
ステップ３２０１では、文書登録装置１００１は、文書ファイルのハッシュ値を計算する。ハッシュ値を計算する際に使用するハッシュ関数は、例えば、ＭＤ５やＳＨＡ−１などの公知の技術となっている。
【００５４】
なお、ステップ３２０１の時点で既に、文書ファイルに対して署名（タイムスタンプ署名や電子署名）が含まれていた場合には、その署名も含めてハッシュ値を求める。このことについて、図４（ａ）〜図４（ｅ）を用いて説明する。
【００５５】
図４（ａ）に示す文書ファイルは、オリジナル文書４００１だけ（署名が付与されていない）を含んでいる。この文書ファイルに対して電子署名を付与する際には、オリジナル文書４００１だけがハッシュ値計算の対象となる。なお、この図４（ａ）に示す文書ファイルに対して、図３（ａ）に示される各処理を文書登録装置１００１が行って電子署名（署名１）を付与すると、図４（ｂ）に示す文書ファイルが生成されることになる。
【００５６】
図４（ｂ）に示す文書ファイルは、オリジナル文書４００１と電子署名１とを含んでいる。この文書ファイルに対して、さらに電子署名を付与する際には、オリジナル文書４００１と最初の署名１の両方がハッシュ値計算の対象となる。なお、この図４（ｂ）に示す文書ファイルに対して、図３（ａ）に示される各処理を文書登録装置１００１が行って電子署名（署名２）を付与すると、図４（ｃ）に示す文書ファイルが生成されることになる。
【００５７】
図４（ｃ）に示す文書ファイルは、オリジナル文書４００１と、署名１（４００２）と、署名２（４００３）とを含んでいる。
【００５８】
ステップ３２０２では、文書登録装置１００１は、対象証明書に含まれる秘密鍵で、ステップ３２０１で計算したハッシュ値を暗号化する。
【００５９】
ステップ３２０３では、文書登録装置１００１は、暗号化後のハッシュ値と対象証明書とを含む電子署名を生成する。ここでの電子署名の形式としては、例えばＰＫＣＳ＃７やアドビシステムズ社のＰＤＦ署名などがある。なお、文書登録装置１００１は、文書ファイルが文書管理サーバ１００３に対して登録されるであろうことを示す情報や、電子署名の生成時刻をさらに含むようにして電子署名の生成を行ってもよい。
【００６０】
ステップ３２０４ではステップ３２０３で生成した電子署名を文書ファイルに付与して、新たな文書ファイルを生成する。付与する方法として、本実施例では、電子署名と元の文書ファイルという二つのファイルを結合して、新たな文書ファイルという一つのファイルを生成するものとして説明を行う。しかしながら、本実施例では、この方法に限られることは無い。例えば、電子署名と元の文書ファイルという二つのファイルを夫々関連付けておくだけで、実際に二つのファイルを結合していなくてもよい。
【００６１】
＜図３（ｄ）・・・タイムスタンプ署名の付与処理＞
続いて、ステップ３００４の処理（タイムスタンプ署名の付与処理）について、詳細に説明する。
【００６２】
ステップ３３０１では、文書登録装置１００１は、（ステップ３００３で電子署名が付与されて生成された）文書ファイルのハッシュ値を計算する。
【００６３】
なお、ステップ３００３（電子署名を付与するステップ）で電子署名が付与される前の文書ファイルが、図４（ａ）に示すような、オリジナル文書４００１だけを含む文書ファイルであったと仮定する。このような場合、ステップ３００３では、図４（ｂ）に示すような、オリジナル文書４００１と署名１（４００２）とを含む文書ファイルが生成されることになる。すると、このステップ３３０１では、オリジナル文書４００１と署名１（４００２）の両方を対象としてハッシュ値を計算することになる。
【００６４】
ステップ３３０２では、ステップ３３０１で計算されたハッシュ値をＴＳＡ１００８（Ｔｉｍｅ−Ｓｔａｍｐｉｎｇ  Ａｕｔｈｏｒｉｔｙ：タイムスタンプ局）に送信する。
【００６５】
ＴＳＡ１００８は、ハッシュ値を受信すると、受信したハッシュ値をＴＳＡ１００８固有の秘密鍵で暗号化する。そして、暗号化されたハッシュ値と現在時刻とを統合して統合情報を生成する。そして、この統合情報と、上記秘密鍵に対応する公開鍵を有する証明書とを含むようにしてタイムスタンプトークンを生成する。タイムスタンプトークンの生成が終わると、ＴＳＡ１００８は、そのタイムスタンプトークンを文書登録装置１００１に対して返送する。
【００６６】
ステップ３３０３では、文書登録装置１００１は、返送されたタイムスタンプトークンを受信する。
【００６７】
ステップ３３０４では、受信したタイムスタンプトークンと、その他必要な情報を含むようにタイムスタンプ署名を生成する。そして、生成されたタイムスタンプ署名を、（ステップ３００３で電子署名が付与されて生成された）文書ファイルに付与して、新たな文書ファイルを生成する。なお、ステップ３２０４で説明したように、付与という言葉には、結合と関連付けが含まれる。
【００６８】
＜図５・・・文書管理サーバ１００３に登録されている文書ファイルを文書検証装置１００２が検証する処理を実行する際に、この文書検証装置１００２の表示部に表示されるダイアログの遷移＞
図５は、文書検証装置１００２が検証処理を実行する際に、文書検証装置１００１に接続されている表示部に表示されるダイアログの遷移を表している。
【００６９】
ダイアログ５００１は、文書管理サーバ１００３内に署名が付与された状態で記憶されている文書ファイルの名前を表示するためのダイアログである。このダイアログは、文書検証装置１００１がその表示部に表示する。
【００７０】
ダイアログ５００２は、文書管理サーバ１００３に登録されている文書ファイルから所望の文書ファイルを検索するための検索条件をユーザに選択させる際に、文書検証装置１００１が表示する検索条件設定ダイアログである。
【００７１】
ユーザが、検索条件設定ダイアログ５００２上で「閉じる」を選択すると、本フローチャートにおける処理を終了する。
【００７２】
ユーザが、検索条件設定ダイアログ５００２上で検索条件を選択した上で「検索」を選択すると、文書検証装置１００２は、その検索条件を文書管理サーバ１００３に通知する。すると、文書管理サーバ１００３は、文書管理サーバ１００３内の文書を検索条件に従って検索する。この文書管理サーバ１００３は、検索結果である複数の文書ファイルを文書検証装置１００２に対して送信する。この文書検証装置１００２は、検索結果を受信すると、その検索結果を検索結果ダイアログ５００４の形式で表示部に表示する。
【００７３】
検索結果ダイアログ５００４は、ユーザにより予め指定された件数の文書ファイル名を表示している。この検索結果ダイアログ５００４上で「次へ／前へ」をユーザが選択すると、再度、文書管理サーバ１００３で検索が行われ、その検索結果は検索結果ダイアログ５００４の形式で文書検証装置１００２の表示部に表示される。
【００７４】
検索結果ダイアログ５００４上で、ユーザが「検証」を選択すると、文書検証装置１００２は、検索結果である複数の文書ファイルを検証し、その検証結果を検証結果ダイアログ５００６に表示する。ここで、この検証する処理については、図６（ａ）を用いて後述する。
【００７５】
なお、ユーザが検証結果ダイアログ５００６上で「ＯＫ」を選択すると、検索結果ダイアログ５００４に戻る。このダイアログ５００４上には、各文書ファイルの名称と同じ行に、その各文書ファイルに対する検証の結果が新たに表示されている。
【００７６】
＜図６（ａ）・・・文書管理サーバが検証対象文書ファイルを検証する処理＞
図６（ａ）は、ｎ個の署名を含む文書ファイルに対して、その文書ファイルの有効性を検証する際に実行される処理のフローを示す。本処理フローにおける各処理を実行する文書検証装置１００２は、この文書検証装置１００２が有するＣＰＵにより統括的に制御される。
【００７７】
文書検証装置１００２は、検証対象とする文書ファイルを決め、その文書ファイルに対する検証を開始する。なお、この検証対象とする文書ファイルのことを以下では、検証対象文書ファイルと称する。また、検証対象文書ファイルに対する検証の結果は、検証対象文書ファイルに含まれる各署名の「有効性」に基づいて判断される。
【００７８】
ステップ６００１では、文書検証装置１００２は、検証対象文書ファイルに含まれる署名の数をカウントし、その数をｎに設定する。ここで、検証対象文書ファイルが含む署名は、古いものから順に連番が振られているものとする。例えば、図４（ｃ）に示す文書ファイル内の署名１（４００１）には番号１が、署名２（４００２）には番号２が振られている。このように、古い署名から順に連番を振っておき、ステップ６００３以降では、新しい書名から順に検証を行っていく。
【００７９】
ステップ６００２では、文書検証装置１００２は、検証方式の初期設定として方式１を設定する。
【００８０】
ステップ６００３では、文書検証装置１００２は、ｎが正数であるか確認する。ｎが０である（検証すべき署名が無い）場合には、文書検証装置１００２は検証対象文書ファイルに対する検証処理を終了する。ｎが１以上である（検証すべき署名がある）場合には、ステップ６００４に進む。
【００８１】
ステップ６００４では、文書検証装置１００２は検証方式に設定されている方式を確認する。その後、文書検証装置１００２は検証方式に方式１が設定されていればステップ６００５でｎ番目の署名検証処理１を行い、方式２が設定されていればステップ６００６でｎ番目の署名検証処理２を行う。署名検証処理１の詳細については図６（ｂ）を用いて後述する。署名検証処理２の詳細については図６（ｃ）を用いて後述する。このステップ６００４により、検証対象文書ファイル中の最新の署名に対しては、ステップ６００２で設定されている方式１で検証が行われることは言うまでもない。このように、最新の署名に対して必ず方式１で検証を行うのは、文書ファイル内の最新の署名は必ず文書登録装置１００１内で付与されたという前提があるからである。このことは、＜図２・・・文書登録装置１００１が文書ファイルを取り込んで、署名を付与して、文書管理サーバ１００３に登録する処理を実行する際のダイアログの遷移＞に記載されている。具体的には、「このように、本実施例では、文書ファイルを、この文書登録装置１００１経由で文書管理サーバ１００３に登録する前に、必ず、その文書ファイルに電子署名及びタイムスタンプ署名が付与されるものとする。」と記載されている。
【００８２】
ステップ６００７では、ｎ番目の署名に対する検証結果に基づいて、文書検証装置１００２は、検証対象文書ファイルに対する検証結果を求める処理（この処理のことを以下では、検証結果統合処理と称する）を行う。この検証結果統合処理については、図６（ｄ）を用いて後述する。その検証結果統合処理後の「検証結果」には、「有効である」と、「有効でない」場合があり、「有効でない」場合について、「証明書が有効でない」「編集が行われた」「改竄あり」の三種類が存在する。なお、「有効である」とは、文書ファイル内の全ての署名に対して、改竄が行われておらず、証明書が有効かつ署名後に編集が行われていないことを意味する。
【００８３】
ステップ６００８では、文書検証装置１００２はｎ番目の署名の種別判定を当該署名に入力オプション情報に基づいて行う。もし、このｎ番目の署名が入力オプション情報を含んでいる場合には、署名種別を「自装置以外でなされた署名」と決定する。次の段落では、このように決定する理由を説明する。
【００８４】
上述したように、入力オプション情報は、外部装置から文書登録装置１００１に入力された時に文書登録装置１００１が行う電子署名にのみ付与される。従って、入力オプション情報がｎ番目の署名に含まれていたとすると、ｎ−１番目の署名（ｎ番目の署名より一つ古い署名）は、この文書登録装置１００１に入力される前の文書ファイルに付与された署名であるということができる。そのため、署名種別を「自装置以外でなされた署名」と判定する。
【００８５】
そのため、ステップ６００８での署名種別判定処理は、一度、入力オプション情報が見つかると簡潔になる。一度、入力オプション情報を見つけてしまうと、入力オプション情報を参照するまでもなく「自装置以外でなされた署名」と判定すればよい。
【００８６】
ステップ６００９では、文書検証装置１００２はステップ６００８の署名種別判定処理結果を判断する。署名が文書登録装置１００１で付与されたものであると判断すると、文書検証装置１００２は処理をステップ６０１０に進むことになる。
【００８７】
ステップ６０１０では、文書検証装置１００２は検証方式を方式２に設定すし、処理を６０１１に進める。なお、本実施例では、図６（ｃ）からもわかるように、一度方式２が設定された場合には、方式１に設定し直されることがない。そのため、検証対象文書ファイル内に、「自装置以外でなされた署名」と判定される署名が存在すると、当該存在する署名より以前に付与された署名については方式２での検証が行われ続けることになる。ステップ６０１１では、ｎから１を減じたものを新たなｎとして、ステップ６００３へ戻る。ここで、ステップ６００３へ戻る時には、ｎを減じるものの、方式の設定（方式１又は方式２の設定）は継続するものとする。
【００８８】
このようにして、文書ファイルに含まれる全ての署名についての検証処理を行って、文書ファイルに対する最終的な検証結果を求める。なお、最終的な検証結果は、ｎ＝１の時にステップ６００７（検証結果統合処理）で求められる検証結果と一致する。
【００８９】
＜図６（ｂ）・・・文書検証装置１００２が検証対象文書ファイルに含まれるｎ番目の署名を方式１で検証する処理１＞
検証対象文書ファイルに含まれるｎ番目の署名に対する検証処理について、図６（ｂ）のフローチャートを用いて説明する。本処理フローにおける各処理を実行する文書検証装置１００２は、この文書検証装置１００２が有するＣＰＵにより統括的に制御される。
【００９０】
本フローチャートを説明する前準備として、「改竄」「編集」という言葉についての定義を行う。
【００９１】
「改竄」とは、署名を含む文書ファイルを不正に変更する行為のことをいう。例えば、署名を含む文書ファイルをバイナリーフォーマットで開き、バイナリーデータを変更する（０のビットを１のビットに変更する）行為は、この「改竄」にあたる。
【００９２】
「編集」とは、署名を含む文書ファイルを不正でない方法で変更する行為のことをいう。例えば、署名を含む文書ファイルをＰＤＦフォーマットで開き、このＰＤＦデータに含まれるオリジナル文書に対して変更を加え、そして、どのような変更を加えたかを示す情報を文書ファイルに付与する行為は、「編集」にあたる。
【００９３】
言い換えるならば、「改竄」とは、「改竄」前の情報が失われるようにデータを変更する行為であり、「編集」とは、「編集」前の情報が失われないようにデータを変更する行為であるということができる。なお、上述した「どのような変更を加えたかという情報」のことを、本明細書では「編集情報」と称することにする。以上の内容について図４（ｃ）と図４（ｄ）を用いて説明する。図４（ｃ）で示す文書ファイルに対して編集が加えられると、編集情報４００４が追加されて図４（ｄ）で示す文書ファイルが生成されることになる。
【００９４】
ステップ６１０１では、文書検証装置１００２は、ｎ番目の署名が行われた後からｎ＋１番目の署名が行われる前までに検証対象文書ファイルに対する改竄が行われていないかどうか確認する。ただし、ｎ番目の署名が検証対象文書ファイル内の最新の署名である場合には、このステップ６１０１で、文書検証装置１００２は、ｎ番目の署名が行われた後に検証対象文書ファイルに対する改竄が行われていないかどうかを確認することになる。このように、ｎが最新の署名の時には、当然ｎ＋１番目の署名が存在しないため、ｎ＋１番目を意識することなく改竄の確認が行われることになる。
【００９５】
ｎ番目の署名が電子署名である場合に、このステップ６１０１における具体的な処理内容は以下のようになっている。まず、文書検証装置１００２は、ｎ番目の署名（電子署名）に含まれる証明書内の公開鍵を用いて、ｎ番目の署名（電子署名）に含まれるハッシュ値を復号化する。さらに、この文書検証装置１００２は、ｎ番目の署名（電子署名）が付与される前の文書ファイルからハッシュ値を計算する。そして、この文書検証装置１００２は、復号化されたハッシュ値と、計算されたハッシュ値との比較を行う。比較の結果、二つのハッシュ値が異なる値である場合には、文書検証装置１００２は「改竄」が行われたと判定する。また、二つのハッシュ値が同じ値である場合には、文書検証装置１００２は「改竄」が行われていないと判定する。
【００９６】
一方、ｎ番目の署名がタイムスタンプ署名である場合に、このステップ７１０１における具体的な処理内容は以下のようになっている。
【００９７】
まず、文書検証装置１００２は、ｎ番目の署名（タイムスタンプ署名）に含まれる公開鍵を用いて、ｎ番目の署名（タイムスタンプ署名）に含まれるタイムスタンプトークン内のハッシュ値を復号化する。さらに、この文書検証装置１００２は、ｎ番目の署名（タイムスタンプ署名）が付与される前の文書ファイルからハッシュ値を計算する。そして、この文書検証装置１００２は、復号化されたハッシュ値と、計算されたハッシュ値との比較を行う。比較の結果、二つのハッシュ値が異なる値である場合には、文書検証装置１００２は「改竄」が行われたと判定する。また、二つのハッシュ値が同じ値である場合には、文書検証装置１００２は「改竄」が行われていないと判定する。
【００９８】
ステップ６１０２では、文書検証装置１００２は、ｎ番目の署名に含まれる証明書の有効性を確認する。
【００９９】
ｎ番目の署名が電子署名である場合には、このステップ６１０１における具体的な処理内容は、図３（ｂ）の証明書の確認処理と同様である。ただし、図３（ｂ）では文書登録装置１００１が処理を行うのに対して、本ステップでは各処理を文書検証装置１００２が処理を行う。なお、図３（ｂ）では、証明書の確認処理を行う時点で証明書の有効期間が切れている場合にはいつも証明書の状態を無効とする。これに対して、本ステップでは、たとえ証明書の確認処理を行う時点で証明書の有効期間が切れていても、有効期間が切れる前にタイムスタンプ署名が行われている場合には証明書の状態を有効とする。
【０１００】
ｎ番目の署名がタイムスタンプ署名である場合には、このステップ６１０１における具体的な処理内容は、タイムスタンプ署名に含まれるタイムスタンプトークンに記載された有効期間に基づいて、このタイムスタンプ署名が有効であるかどうかの確認を行う。もちろん、電子署名の場合と同じで、有効期限が切れる前に、さらに新しいタイムスタンプ署名が行われている場合にはタイムスタンプ署名が有効とすることになる。
【０１０１】
ステップ６１０３では、文書検証装置１００２は、ｎ番目の署名以降にオリジナル文書に対する編集が行われた否かの確認を行う。これは、検証対象文書ファイル内に編集情報が図４（ｄ）のように含まれているかどうかに基づいて行う。
【０１０２】
＜図６（ｃ）・・・文書検証装置１００２が検証対象文書ファイルに含まれるｎ番目の署名を方式２で検証する処理２＞
検証対象文書ファイルに含まれるｎ番目の署名に対する検証処理について、図６（ｃ）のフローチャートを用いて説明する。本処理フローにおける各処理を実行する文書検証装置１００２は、この文書検証装置１００２が有するＣＰＵにより統括的に制御される。
【０１０３】
ステップ６２０１では、文書検証装置１００２は、ｎ番目の署名が行われた後からｎ＋１番目の署名が行われる前までに検証対象文書ファイルに対する改竄が行われていないかどうか確認する。本処理は、図６（ｂ）で説明したステップ６１０１の処理と同じである。このステップ６２０１の処理が終了すると、６（Ｃ）における処理を終了することになる。
【０１０４】
このように、ステップ６００６では、（図６（ｃ）で行われる方式２の署名検証処理）は改竄の検知のみ行い、証明書の検証ならびに署名後の編集を確認しないで終了する。なお、方式２の簡略化された検証処理は、上述したように検証対象文書ファイル内に、上記文書登録装置１００１以外の装置で付与された署名に対して行われる。また、当該存在する署名より以前に付与された署名についても方式２の簡略化された検証が行われることになる。
【０１０５】
以上のように、図６（ｃ）における署名検証処理２では、図６（ｂ）における署名検証処理１と異なり、証明書確認処理を行っていない。これは、文書登録装置１００１に入力される前に付与された署名に含まれる証明書は、その証明書が信頼できるサーバにより発行されたものであることが保証できないからである。
【０１０６】
このことを言い換えると、どこか知らない所で勝手に付与された署名に対して、その署名に含まれる証明書の確認は本文書検証装置１００２では行っていない。なぜなら、その証明書は、本当に信頼できる機関で発行されたかどうかわからない。また、そうした証明書の発行元にアクセスできるかどうかがわからない。
【０１０７】
図６（ａ）（ｂ）（ｃ）で説明したように、本実施例では、文書登録装置１００１で付与された署名であるか、文書登録装置１００１以外の装置で付与された署名であるかに応じて、署名の検証処理方法を切り換えている。例えば、４００１署名１が文書登録装置１００１以外で付与された署名で、かつ、４００２署名２が文書登録装置１００１で付与された署名であるような図４（ｃ）に示す文書ファイルを想定してみる。想定された文書ファイルに対して文書検証装置１００２が検証処理を行うと、署名１に対しては図６（ｃ）で説明した方法で検証処理が行われ、署名２に対しては図６（ｂ）で説明した方法で検証処理が行われることになる。
【０１０８】
＜図６（ｄ）・・・文書検証装置１００２が行う検証結果統合処理＞
検証対象文書ファイルに含まれる各署名に対する検証結果を統合する処理について、図６（ｄ）のフローチャートを用いて説明する。本処理フローにおける各処理を実行する文書検証装置１００２は、この文書検証装置１００２が有する不図示のＣＰＵにより統括的に制御される。
【０１０９】
ステップ６３０１では、文書検証装置１００２が、ｎ番目の署名に検証対象文書ファイルに対して改竄が行われたか否かを判定する。改竄が行われたと判定した場合には、ステップ６３０４に進み、「改竄検証結果」を「改竄あり」と決定する。その後、ステップ６３０２に進む。改竄が行われていないと判定した場合には、ステップ６３０２に進む。
【０１１０】
ステップ６３０２では、文書検証装置１００２が、ｎ番目の署名に含まれる証明書が有効であるか判定する。有効でないと判定した場合には、ステップ６３０５に進み、「証明書検証結果」を「証明書が有効でない」と決定する。その後、ステップ６３０３に進む。有効であると判定した場合には、ステップ６３０３に進む。
【０１１１】
ステップ６３０３では、文書検証装置１００２が、ｎ番目の署名に検証対象ファイルに対して編集が行われたか否かを判定する。編集が行われたと判定した場合には、ステップ６３０６に進み、「編集検証結果」を「編集あり」と決定する。
【０１１２】
なお、予め検証処理の開始前に、文書検証装置１００２は、「改竄検証結果」を「改竄無し」、「証明書検証結果」を「有効」、「編集検証結果」を「編集無し」としてあるものとする。
【０１１３】
＜図７・・・検証結果表示画面＞
図７における検証結果表示画面７０００は、検証処理後の検索結果ダイアログ７００４上に検証結果を表示した時の拡大図である。また、この検証結果画面７０００は、図６（ａ）における文書検証装置１００２が検証処理を終了した後に、表示部に表示するダイアログでもある。
【０１１４】
７００１は、検証結果表示領域である。この検証結果表示領域７００１は、以下の領域から構成される。即ち、文書名領域７００２、検証結果アイコン表示領域７００３、検証結果内容表示領域７００４、タイムスタンプ署名付与日時表示領域７００５、最終検証日時表示領域７００６から構成される。
【０１１５】
文書名領域７００２は、各文書ファイルの文書名を表示する領域である。
【０１１６】
検証結果アイコン表示領域７００３は、各文書ファイルに対する検証処理の結果をアイコンにより表示する領域である。表示されるアイコンには、文書ファイルが「有効である」ことを示すチェックマークのアイコンと、「問題がある」ことを示す「！」のアイコンと、「未検証である」ことを示す「？」のアイコンがある。「問題がある」ことを示す「！」のアイコンには「改竄されている」ことを示すものと、「改竄以外に問題がある」ことを示すものとの２種類があり、これらの区別は「！」アイコンの色を変える等の方法で区別するものとする。
【０１１７】
なお、「有効である」は、図６（ａ）における検証処理の結果が「有効である」の文書ファイルに対して付加される。
【０１１８】
また、「改竄以外に問題がある」は、図６（ａ）における検証処理の結果、「証明書が有効でない」又は「編集あり」の文書ファイルに対して付加される。
【０１１９】
また、「改竄されている」は、図６（ａ）における検証処理の結果、「改竄あり」の文書ファイルに対して付加される。
【０１２０】
また、「未検証である」は、図６（ａ）における検証処理が未だなされていない文書ファイルに対して付加される。
【０１２１】
７００４は、検証結果内容表示領域である。検証結果は、図６（ｄ）で求めた改竄検証結果」、「証明書検証結果」、「編集検証結果」を元にして表示される。
【０１２２】
７００５は、タイムスタンプ署名付与日時表示領域であり、最後にタイムスタンプ署名が付与された日時を示す。
【０１２３】
７００６は、最終検証日表示領域７００６であり、文書ファイルが検証された日時の中で最新の日時を示す。
【０１２４】
以上のように、本実施例では、入力オプション情報を含む署名が見つかった場合に、その署名より前の署名に対しては検証処理を省略している。具体的には、改竄検知のみを行い、証明書の確認処理や署名後編集確認処理を省略している。
【０１２５】
このように、証明書の確認処理や署名後編集確認処理を省略することで、文書ファイルに対する検証を迅速に行うことができる。
【０１２６】
また、他装置で付与された署名がある文書ファイルに対して、証明書の確認処理ができないからといって一律に検証結果を「無効」とすることがなくなる。できる範囲で検証を行って検証結果を得られる柔軟なシステムを得ることができるようになる。
【０１２７】
なお、本実施例におけるシステムは、図１に示すように、文書登録装置が一つ、文書管理サーバが一つ、文書検証装置が一つであるものとして説明を行ったが、各装置は必ずしも一つに限られるわけではない。
【０１２８】
各装置で連携が取れていれば、文書登録装置も、文書管理サーバも、文書検証装置も複数台含まれるようにシステムが設計されていてもよい。もちろん、複数の文書登録装置は、各記憶手段に、同じハッシュ関数と、同じ秘密鍵と、当該秘密鍵に対応する同じ証明書とが記憶されているものとする。
【０１２９】
また、このような場合、複数の文書登録装置を介して、いずれかの文書管理サーバに文書ファイルが登録される時に、入力オプション情報がつけられることになる。
【０１３０】
以上、本実施例では、文書検証装置、文書登録装置の動作フローをフローチャートとして記述した。なお、各フローチャートの各工程を各装置に実行させるためのプログラムは、各装置内の不図示のＲＯＭ（ＲＥＡＤ  ＯＮＬＹ  ＭＥＭＯＲＹ）に記憶されているものとする。
【０１３１】
また、このＣＰＵは、各プログラムをいったんメインメモリ上にロードした上で、ロード後のプログラムに従って、各フローチャートにおける処理を実行することになる。
【図面の簡単な説明】
【０１３２】
【図１】システム構成
【図２】文書登録装置１００１が文書ファイルを取り込んで、署名を付与して、文書管理サーバ１００３に登録する処理を実行する際のダイアログの遷移
【図３】（ａ）は文書登録装置１００１が文書ファイルに署名を付与して、文書管理サーバ１００３に登録する処理のフロー、（ｂ）は電子署名に用いる証明書の有効性の確認処理のフロー、（ｃ）は電子署名の付与処理のフロー、（ｄ）はタイムスタンプ署名の付与処理のフロー
【図４】（ａ）はオリジナル文書のみを有する文書ファイル、（ｂ）はオリジナル文書と署名１とを有する文書ファイル、（ｃ）はオリジナル文書と署名１と署名２とを有する文書ファイル、（ｄ）はオリジナル文書と署名１と署名２と編集情報とを有する文書ファイル、（ｅ）はオリジナル文書と署名１と署名２と編集情報と署名３とを有する文書ファイル
【図５】文書管理サーバ１００３に登録されている文書ファイルを文書検証装置１００２が検証する処理を実行する際に、この文書検証装置１００２の表示部に表示されるダイアログの遷移
【図６】（ａ）は文書管理サーバが検証対象文書ファイルを検証する処理、（ｂ）は文書検証装置１００２が検証対象文書ファイルに含まれるｎ番目の署名を検証する処理１、（ｃ）は文書検証装置１００２が検証対象文書ファイルに含まれるｎ番目の署名を検証する処理２、（ｄ）は文書検証装置１００２が行う検証結果統合処理
【図７】検証結果表示画面
【図１】
2007334658.tif 000003
【図２】
2007334658.tif 000004
【図３】
2007334658.tif 000005
【図４】
2007334658.tif 000006
【図５】
2007334658.tif 000007
【図６】
2007334658.tif 000008
【図７】
2007334658.tif 000009