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