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