(57)【要約】【課題】複数の文書を含むグループに対してタイムスタンプを取得した場合に、そのタイムスタンプの有効性をそれら文書のすべてを用いなくても推定できるようにする。【解決手段】登録部１２０は、グループ内の文書ごとに、当該文書とグループのタイムスタンプとを結合し、その結合結果のデータについてのハッシュ値を計算し、当該文書の属性として保存する。文書のタイムスタンプの検証が指示された場合、タイムスタンプ検証部１７０は、その文書とタイムスタンプとの結合結果のハッシュ値を計算し、その計算結果が、当該文書の属性として保存されたハッシュ値と一致するかを判定する。一致する場合、同一グループ内の第２の文書についても同様の判定を行い、第２の文書についても「一致」の判定結果が得られた場合に、検証対象の文書に対してそのタイムスタンプが有効であると判定する。【選択図】図１
2009129102.tif 000002
【特許請求の範囲】
【請求項１】
複数の電子文書を含むグループに対するタイムスタンプをタイムスタンプ発行装置から取得する取得手段と、
取得されたタイムスタンプを、前記グループに含まれる前記複数の電子文書の各々に対応づけて記憶する第１の記憶手段と、
前記複数の電子文書の各々について、当該電子文書と前記サーバから取得されたタイムスタンプとの組み合わせについて所定の特徴量計算手段により計算された特徴量を、当該電子文書に対応づけて記憶する第２の記憶手段と、
第１の電子文書についてのタイムスタンプ検証要求を受けた場合に、当該第１の電子文書と、前記第１の記憶手段に当該第１の電子文書に対応づけて記憶された第１のタイムスタンプと、の組み合わせについての第１の特徴量を前記特徴量計算手段に計算させ、計算された前記第１の特徴量が、前記第２の記憶手段に当該第１の電子文書に対応づけて記憶された第２の特徴量と一致するか否かを判定する第１の判定手段と、
前記第１の電子文書と同一のグループに属する第２の電子文書と、前記第１のタイムスタンプと、の組み合わせについての第３の特徴量を前記特徴量計算手段に計算させ、計算された前記第３の特徴量が、前記第２の記憶手段に当該第２の電子文書に対応づけて記憶された第４の特徴量と一致するか否かを判定する第２の判定手段と、
前記第１の判定手段による判定結果と前記第２の判定手段による判定結果との組合せに基づき、前記第１の電子文書に対して前記第１のタイムスタンプが有効であるか否かを推定する有効性推定手段と、
を備えるタイムスタンプ検証装置。
【請求項２】
前記有効性推定手段は、前記第１の特徴量が前記第２の特徴量と一致すると前記第１の判定手段が判定し、かつ前記第３の特徴量が前記第４の特徴量と一致すると前記第２の判定手段が判定した場合に、前記第１の電子文書に対して前記第１のタイムスタンプが有効であると推定する、ことを特徴とする請求項１記載のタイムスタンプ検証装置。
【請求項３】
前記有効性推定手段は、
前記第１の特徴量が前記第２の特徴量と一致すると前記第１の判定手段が判定し、前記第３の特徴量が前記第４の特徴量と一致しないと前記第２の判定手段が判定した場合に、前記第１の電子文書と同一のグループに属する第３の電子文書と、前記第１のタイムスタンプと、の組み合わせについての第５の特徴量を前記特徴量計算手段に計算させ、計算された前記第５の特徴量が、前記第２の記憶手段に当該第３の電子文書に対応づけて記憶された第６の特徴量と一致するか否かを判定し、一致すると判定された場合には、前記第１の電子文書に対して前記第１のタイムスタンプが有効であると推定する、
ことを特徴とする請求項１記載のタイムスタンプ検証装置。
【請求項４】
前記有効性推定手段にて、前記第５の特徴量が前記第６の特徴量と一致すると判定された場合に、前記第２の電子文書が改ざんされた可能性がある旨の警告を発する警告手段、
を更に備える請求項３記載のタイムスタンプ検証装置。
【請求項５】
前記有効性推定手段は、
前記第１の特徴量が前記第２の特徴量と一致すると前記第１の判定手段が判定し、前記第３の特徴量が前記第４の特徴量と一致しないと前記第２の判定手段が判定した場合に、前記第１の電子文書と同一のグループに属する第３の電子文書と、前記第１のタイムスタンプと、の組み合わせについての第５の特徴量を前記特徴量計算手段に計算させ、計算された前記第５の特徴量が、前記第２の記憶手段に当該第３の電子文書に対応づけて記憶された第６の特徴量と一致するか否かを判定し、一致しないと判定された場合には、前記第１の電子文書に対して前記第１のタイムスタンプが無効である可能性があると推定する、
ことを特徴とする請求項１記載のタイムスタンプ検証装置。
【請求項６】
コンピュータを、
複数の電子文書を含むグループに対するタイムスタンプをタイムスタンプ発行装置から取得する取得手段、
取得されたタイムスタンプを、前記グループに含まれる前記複数の電子文書の各々に対応づけて記憶する第１の記憶手段、
前記複数の電子文書の各々について、当該電子文書と前記サーバから取得されたタイムスタンプとの組み合わせについて所定の特徴量計算手段により計算された特徴量を、当該電子文書に対応づけて記憶する第２の記憶手段、
第１の電子文書についてのタイムスタンプ検証要求を受けた場合に、当該第１の電子文書と、前記第１の記憶手段に当該第１の電子文書に対応づけて記憶された第１のタイムスタンプと、の組み合わせについての第１の特徴量を前記特徴量計算手段に計算させ、計算された前記第１の特徴量が、前記第２の記憶手段に当該第１の電子文書に対応づけて記憶された第２の特徴量と一致するか否かを判定する第１の判定手段、
前記第１の電子文書と同一のグループに属する第２の電子文書と、前記第１のタイムスタンプと、の組み合わせについての第３の特徴量を前記特徴量計算手段に計算させ、計算された前記第３の特徴量が、前記第２の記憶手段に当該第２の電子文書に対応づけて記憶された第４の特徴量と一致するか否かを判定する第２の判定手段、
前記第１の判定手段による判定結果と前記第２の判定手段による判定結果との組合せに基づき、前記第１の電子文書に対して前記第１のタイムスタンプが有効であるか否かを推定する有効性推定手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイムスタンプ検証装置及びプログラムに関する。
【背景技術】
【０００２】
電子文書が正しいことを証明するための技術としてタイムスタンプが普及しつつある。タイムスタンプとは、電子文書について、ある時刻以前にその電子文書が存在したこと（存在時刻証明）、及び、その時刻から検証時点までの間にその電子文書が改ざんされていないこと（非改ざん証明）の２つを証明できる技術である。タイムスタンプは時刻認証とも呼ばれる。公的に信頼されるタイムスタンプを有料で発行するサービスの利用も進んでいる。
【０００３】
代表的なタイムスタンプ方式では、タイムスタンプ機関（ＴＳＡ：Time-Stamping Authority）が、クライアントからの要求に応じ、対象の電子文書に対応するタイムスタンプトークンを発行する。タイムスタンプトークンは、対象の電子文書のハッシュ値と、信頼のおける時刻源から取得した時刻情報と、を結合したものにタイムスタンプ機関の電子署名を付加したものである（例えばＲＦＣ３１６１参照）。
【０００４】
いわゆるｅ−文書法等の法令により、企業が原本として保存する電子文書には公的な信用力を持つ適切なタイムスタンプを付加することが求められる。企業が作成し、保存する電子文書は膨大なものであり、それらのすべてに対して１つ１つタイムスタンプを取得していたのでは金銭的なコストが大きいものとなる。そこで、複数の電子文書からなるグループに対して１つのタイムスタンプを取得することで、コストの節約が行われている。この場合、タイムスタンプトークンは、そのグループに属する複数の電子文書をひとつの塊としたデータのハッシュ値と、時刻情報とを含んだものとなる。法令上は、最低限一日分の電子文書のグループに対して１つのタイムスタンプを取得すればよいことになっている。例えば、一日に１０００個の紙文書をスキャニングして保存する企業の場合、それら１０００の文書に対して１つのタイムスタンプを取得すれば、１文書毎にタイムスタンプを取得する場合に比べてコストは１０００分の１になる。
【０００５】
ただし、上述のように複数の電子文書からなるグループに対して１つのタイムスタンプを取得した場合、そのタイムスタンプの有効性を検証するには、それら複数の電子文書のすべてを用意する必要がある。すなわち、ある１つの電子文書に対するタイムスタンプを検証する場合でも、そのタイムスタンプの対象となるグループ中の全電子文書が必要になるのである。
【０００６】
ところが、電子文書に対するアクセス制御が行われる環境では、タイムスタンプを検証しようとするユーザが、そのタイムスタンプの対象であるグループ中のすべての電子文書にアクセス権を持つとは限らない。ユーザがそのグループ中の電子文書の１つでもアクセスできない場合は、それらグループ中の電子文書をひとかたまりとしたデータのハッシュ値を求められないので、タイムスタンプの検証もできなくなってしまう。
【０００７】
また、仮にタイムスタンプの対象であるグループ中のすべての電子文書にアクセスできるユーザでも、タイムスタンプ検証のためにそれらすべての文書を収集するにはコンピュータやネットワークに多大の負荷をかけてしまう。
【０００８】
特許文献１に開示されるシステムでは、文書内のオリジナル情報が一方向ハッシュ関数によりハッシングされる。ハッシュ化情報は次に複数の照合子断片に符号化され、これらが複数のロケーションに伝送される。文書のオリジナル性を検証するために、最小数の照合子断片が復号化され、仮の真正文書が一方向ハッシュ関数によりハッシングされる。後者のハッシング結果が最小数の照合子断片の復号化の結果と等しいと、仮の文書が真正文書として受諾される。
【０００９】
特許文献２には、複数のファイルから形成される複合文書の原本性を効率良く保証することができる原本性保証電子保存方法が開示される。この方法では、複数のコンテンツファイルにより形成される電子データを一つの原本として大容量記憶媒体に保存しておき、プロセッサがこの大容量記憶媒体の電子データをアクセスするに際しては、原本とそうでないものとでアクセス制御のレベルを変える。
【００１０】
【特許文献１】特開平０８−０１６１０４号公報
【特許文献２】特開２００１−００５７２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、複数の電子文書を含んだグループに対してタイムスタンプを取得した場合に、その中の電子文書についてのそのタイムスタンプの有効性を、それら電子文書のすべてを用いなくても推定できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
請求項１に係る発明は、複数の電子文書を含むグループに対するタイムスタンプをタイムスタンプ発行装置から取得する取得手段と、取得されたタイムスタンプを、前記グループに含まれる前記複数の電子文書の各々に対応づけて記憶する第１の記憶手段と、前記複数の電子文書の各々について、当該電子文書と前記サーバから取得されたタイムスタンプとの組み合わせについて所定の特徴量計算手段により計算された特徴量を、当該電子文書に対応づけて記憶する第２の記憶手段と、第１の電子文書についてのタイムスタンプ検証要求を受けた場合に、当該第１の電子文書と、前記第１の記憶手段に当該第１の電子文書に対応づけて記憶された第１のタイムスタンプと、の組み合わせについての第１の特徴量を前記特徴量計算手段に計算させ、計算された前記第１の特徴量が、前記第２の記憶手段に当該第１の電子文書に対応づけて記憶された第２の特徴量と一致するか否かを判定する第１の判定手段と、前記第１の電子文書と同一のグループに属する第２の電子文書と、前記第１のタイムスタンプと、の組み合わせについての第３の特徴量を前記特徴量計算手段に計算させ、計算された前記第３の特徴量が、前記第２の記憶手段に当該第２の電子文書に対応づけて記憶された第４の特徴量と一致するか否かを判定する第２の判定手段と、前記第１の判定手段による判定結果と前記第２の判定手段による判定結果との組合せに基づき、前記第１の電子文書に対して前記第１のタイムスタンプが有効であるか否かを推定する有効性推定手段と、を備えるタイムスタンプ検証装置である。
【００１３】
請求項２に係る発明は、請求項１に係る発明において、前記有効性推定手段が、前記第１の特徴量が前記第２の特徴量と一致すると前記第１の判定手段が判定し、かつ前記第３の特徴量が前記第４の特徴量と一致すると前記第２の判定手段が判定した場合に、前記第１の電子文書に対して前記第１のタイムスタンプが有効であると推定する、ことを特徴とする。
【００１４】
請求項３に係る発明は、請求項１に係る発明において、前記有効性推定手段が、前記第１の特徴量が前記第２の特徴量と一致すると前記第１の判定手段が判定し、前記第３の特徴量が前記第４の特徴量と一致しないと前記第２の判定手段が判定した場合に、前記第１の電子文書と同一のグループに属する第３の電子文書と、前記第１のタイムスタンプと、の組み合わせについての第５の特徴量を前記特徴量計算手段に計算させ、計算された前記第５の特徴量が、前記第２の記憶手段に当該第３の電子文書に対応づけて記憶された第６の特徴量と一致するか否かを判定し、一致すると判定された場合には、前記第１の電子文書に対して前記第１のタイムスタンプが有効であると推定する、ことを特徴とする。
【００１５】
請求項４に係る発明は、請求項３に係る発明において、前記有効性推定手段にて、前記第５の特徴量が前記第６の特徴量と一致すると判定された場合に、前記第２の電子文書が改ざんされた可能性がある旨の警告を発する警告手段、を更に備える。
【００１６】
請求項５に係る発明は、請求項１に係る発明において、前記有効性推定手段は、前記第１の特徴量が前記第２の特徴量と一致すると前記第１の判定手段が判定し、前記第３の特徴量が前記第４の特徴量と一致しないと前記第２の判定手段が判定した場合に、前記第１の電子文書と同一のグループに属する第３の電子文書と、前記第１のタイムスタンプと、の組み合わせについての第５の特徴量を前記特徴量計算手段に計算させ、計算された前記第５の特徴量が、前記第２の記憶手段に当該第３の電子文書に対応づけて記憶された第６の特徴量と一致するか否かを判定し、一致しないと判定された場合には、前記第１の電子文書に対して前記第１のタイムスタンプが無効である可能性があると推定する、ことを特徴とする。
【００１７】
請求項６に係る発明は、コンピュータを、複数の電子文書を含むグループに対するタイムスタンプをタイムスタンプ発行装置から取得する取得手段、取得されたタイムスタンプを、前記グループに含まれる前記複数の電子文書の各々に対応づけて記憶する第１の記憶手段、前記複数の電子文書の各々について、当該電子文書と前記サーバから取得されたタイムスタンプとの組み合わせについて所定の特徴量計算手段により計算された特徴量を、当該電子文書に対応づけて記憶する第２の記憶手段、第１の電子文書についてのタイムスタンプ検証要求を受けた場合に、当該第１の電子文書と、前記第１の記憶手段に当該第１の電子文書に対応づけて記憶された第１のタイムスタンプと、の組み合わせについての第１の特徴量を前記特徴量計算手段に計算させ、計算された前記第１の特徴量が、前記第２の記憶手段に当該第１の電子文書に対応づけて記憶された第２の特徴量と一致するか否かを判定する第１の判定手段、前記第１の電子文書と同一のグループに属する第２の電子文書と、前記第１のタイムスタンプと、の組み合わせについての第３の特徴量を前記特徴量計算手段に計算させ、計算された前記第３の特徴量が、前記第２の記憶手段に当該第２の電子文書に対応づけて記憶された第４の特徴量と一致するか否かを判定する第２の判定手段、前記第１の判定手段による判定結果と前記第２の判定手段による判定結果との組合せに基づき、前記第１の電子文書に対して前記第１のタイムスタンプが有効であるか否かを推定する有効性推定手段、として機能させるためのプログラムである。
【発明の効果】
【００１８】
本発明によれば、複数の電子文書を含んだグループに対してタイムスタンプを取得した場合に、その中の電子文書についてのそのタイムスタンプの有効性を、それら電子文書のすべてを用いなくても推定できる。
【発明を実施するための最良の形態】
【００１９】
まず、図１を参照して、本実施形態の文書管理システム１００の構成の例を説明する。この例の文書管理システム１００は、スキャナ１１０で紙文書を読み取り、読取結果の電子文書を保存し、保存された電子文書群の利用（例えば閲覧や編集など）のための環境をユーザに提供する。このシステム１００は、例えば、ｅ−文書法の規定に従い、紙の文書を電子化して保存する場合に用いられる。
【００２０】
このシステム１００において、登録部１２０は、スキャナ１１０が読み取った紙文書群の画像から、例えばＰＤＦ(Portable Document Format)形式などの所定ファイル形式の電子文書群を生成し、その電子文書群を文書管理部１３０に登録する。この登録の際に、タイムスタンプ取得部１４０にタイムスタンプトークン（時刻証明書とも呼ばれる。以下、タイムスタンプと略称）の取得を依頼し、この依頼に応じてタイムスタンプ取得部１４０が取得したタイムスタンプをそれら電子文書群と対応づけて属性管理部１３５に登録する。タイムスタンプ取得部１４０は、この依頼に応じ、インターネット等のネットワーク２００を介して、あらかじめ指定されているタイムスタンプサーバ３００からタイムスタンプを取得する。ここで、タイムスタンプは、ひとまとまりとして指定された複数の電子文書からなるグループ（文書グループと呼ぶ）に対して取得される。
【００２１】
タイムスタンプ取得部１４０は、例えば、その文書グループに属する電子文書群を所定のアルゴリズムに従って結合し、結合結果のデータについてのハッシュ値を生成し、このハッシュ値を含んだタイムスタンプ発行要求をタイムスタンプサーバ３００に送る。タイムスタンプサーバ３００は、そのハッシュ値と現在時刻とを含むデータに対して当該サーバ３００自身の秘密鍵で電子署名を施すことでタイムスタンプを生成し、要求元のタイムスタンプ取得部１４０に返す。
【００２２】
また、登録部１２０は、文書管理部１３０に登録される各電子文書について、タイムスタンプ以外の各種の属性項目を属性管理部１３５に登録する。属性項目には、例えば、登録日時や登録者ＩＤ（識別情報）などがある。また、電子文書に対するアクセス制御のための判定材料となるアクセス制御情報も、属性項目の一つとして管理することができる。
【００２３】
また、登録部１２０は、個々の電子文書に対するタイムスタンプの有効性の検証を、文書グループ内の電子文書全体を用いなくても高い信頼性で実現できるようにするために、電子文書とタイムスタンプとを結合したデータのハッシュ値を属性管理部１３５に登録する（詳細は後述）。そのハッシュ値は、ハッシュ計算部１５０が計算する。ハッシュ計算部１５０は、一方向性（出力から入力を容易に推定できないこと）と耐衝突性（異なる２つの入力から同一の出力が容易に生成できないこと）を持つ公知のハッシュ関数を用いればよい。
【００２４】
検索部１６０は、保存された電子文書群に対する検索サービスを、ユーザに提供する。ユーザは、例えばパーソナルコンピュータを操作し、ネットワーク２００を介して文書管理システム１００にログインし、検索部１６０に対して検索条件を指示する。検索は、例えば属性管理部１３５に登録された属性情報に対して行われる。例えば、「２００７年８月に登録された文書」という検索条件がユーザから与えられると、検索部１６０は、各電子文書の登録日時を調べ、その条件に該当する電子文書群を求める。なお、文書管理システム１００は、例えば属性管理部１３５に登録されたアクセス制御情報に基づき、各電子文書に対するアクセス制御を行っているので、検索部１６０が検索した電子文書のうちそのユーザがアクセス権を持つもののみが、そのユーザに対して提供される。
【００２５】
タイムスタンプ検証部１７０は、ユーザから指定された電子文書について、その電子文書に対応するタイムスタンプの有効性を検証する。例えば、ユーザが、検索部１６０が検索した電子文書についてのタイムスタンプの検証を指示すると、タイムスタンプ検証部１７０が検証処理を実行する。検証処理の具体例については、後で説明する。
【００２６】
次に、図２を参照して、文書登録時の文書管理システム１００の処理手順の一例を説明する。この手順は、例えば、ユーザが紙文書群をスキャナの原稿送り装置にセットし、文書管理システム１００のＵＩ（ユーザインタフェース）にて「電子化して保存」を指示すると、開始される。この手順では、まずスキャナ１１０が紙文書群をスキャンし（Ｓ１）、スキャン結果の画像を登録部１２０に渡す。
【００２７】
登録部１２０は、各画像をＰＤＦ等の所定のフォーマットのファイルに変換し、文書管理システム１００の秘密鍵で電子署名を施すことで、保存対象の電子文書を生成する（Ｓ２）。そして、登録部１２０は、タイムスタンプ取得部１４０に、それら電子文書からなる文書グループについてのタイムスタンプの取得を指示する（Ｓ３）。この指示に応じてタイムスタンプ取得部１４０がタイムスタンプを取得すると、登録部１２０は、その文書グループに属する電子文書ごとに、以下のステップＳ４及びＳ５の処理を実行する。
【００２８】
すなわち、登録部１２０は、そのグループ内の電子文書と、ステップＳ３で取得されたタイムスタンプとを結合し、その結合結果のデータのハッシュ値をハッシュ計算部１５０に計算させる（Ｓ４）。そして、その電子文書を文書管理部１３０に登録し、タイムスタンプ及びハッシュ値（検証用ハッシュ値と呼ぶ）をその電子文書の属性項目として属性管理部１３５に登録する（Ｓ５）。文書管理部１３０は、その電子文書を一意な文書ＩＤと対応づけて記憶する。属性管理部１３５は、その文書ＩＤと対応づけて、当該電子文書の属性情報を記憶する。
【００２９】
また、登録部１２０は、当該電子文書の登録日時や登録者、当該電子文書が属する文書グループ（すなわち同じタイムスタンプを持つ電子文書の集まり）の情報、などの他の属性項目の値をオペレーティングシステム等から取得し、属性管理部１３５に登録してもよい。また、登録部１２０は、文書管理部１３０に登録した個々の電子文書、又はそれら電子文書が構成する文書グループに対するアクセス制御情報の入力を受け付け、入力されたアクセス制御情報を属性管理部１３５に登録する。電子文書についてのアクセス制御情報は、例えば、その電子文書に対してアクセスが許可されたユーザＩＤのリストである。
【００３０】
図３に、属性管理部１３５のデータ内容の一例を示す。この例では、１つの行が１つの電子文書に対する属性情報である。この例では、属性情報は、文書ＩＤ、検証用ハッシュ値、タイムスタンプ、グループ情報、アクセス制御情報の各項目を含んでいる。図３の例では、文書「ＩＤ１」と文書「ＩＤ２」とは、同じグループに属する文書なのでタイムスタンプの値は一致しているが、文書の内容は異なるので検証用ハッシュ値は互いに異なっている。また、この例では、グループ情報は、当該文書と同じ文書グループに属する他のすべての文書ＩＤのリストである。しかし、これは一例に過ぎない。文書グループごとにその文書グループに属する文書ＩＤ群を記憶するデータベースを別に設け、電子文書の属性情報にはその電子文書が属する文書グループの識別情報を登録してもよい。
【００３１】
また、タイムスタンプの値を、文書グループの属性として登録するようにすれば、個々の電子文書の属性情報にはタイムスタンプを登録する必要はない。この場合、電子文書から文書グループを介してタイムスタンプを求めることができるので、タイムスタンプは電子文書に対応づけられていると言える。
【００３２】
なお、属性管理部１３５に登録された検証用ハッシュ値は、その後更新されないように（或いは更新された場合には、更新されたことが検知できるように）保護する。この保護は、例えば、検証用ハッシュ値に対して電子署名を付すなどの方法で行えばよい。
【００３３】
次に、図４及び図５を参照して、タイムスタンプ検証部１７０の処理手順の一例を説明する。この手順では、タイムスタンプ検証部１７０は、ユーザ（又はそのユーザが操作するアプリケーションプログラム）から、検証対象の電子文書の指定を含む検証指示を受けると（Ｓ１１）、その電子文書の文書ＩＤに対応するタイムスタンプの値を属性管理部１３５から取得する（Ｓ１２）。そして、取得したタイムスタンプとその電子文書との組について、図５に例示する判定処理を実行する（Ｓ１３）。
【００３４】
すなわち、図５の手順では、タイムスタンプ検証部１７０は、判定対象である電子文書とタイムスタンプとを結合し（Ｓ２１）、結合結果のデータのハッシュ値をハッシュ計算部１５０に計算させる（Ｓ２２）。そして、判定対象の電子文書の文書ＩＤに対応する検証用ハッシュ値を属性管理部１３５から取得し、この検証用ハッシュ値とステップＳ２２で計算されたハッシュ値とを比較する（Ｓ２３）。その比較の結果、両者が一致すれば（Ｓ２４の判定結果がＹｅｓ）、判定結果は「一致」となり（Ｓ２５）、そうでなければ（Ｓ２４の判定結果がＮｏ）判定結果は「不一致」となる（Ｓ２６）。
【００３５】
再び図４の説明に戻ると、図５の処理により判定結果が得られると、タイムスタンプ検証部１７０は、その判定結果が「一致」であるか否かを判定する（Ｓ１４）。
【００３６】
判定結果が「不一致」の場合、検証対象の電子文書とタイムスタンプと検証用ハッシュ値の間の関係に矛盾が生じたことになる。この場合、電子文書かタイムスタンプが改ざんされた可能性があり、その電子文書に対するタイムスタンプの有効性に疑義が生じる。従って、この場合、タイムスタンプ検証部１７０は、その電子文書に対するタイムスタンプは無効である旨を、検証を指示したユーザ（又はそのユーザが操作するアプリケーション）に回答する（Ｓ１５）。
【００３７】
ステップＳ１４の判定結果が「一致」の場合、検証対象の電子文書とタイムスタンプと検証用ハッシュ値との間に矛盾はないので、電子文書もタイムスタンプも変更されていない可能性は高い。
【００３８】
ただし、保存された検証用ハッシュ値と同じハッシュ値が得られるよう、電子文書の変更にあわせてタイムスタンプをうまく変更することも不可能とはいえない。そこで、この手順では、検証対象の電子文書と同じ文書グループに属する別の電子文書をランダムに選択し（Ｓ１６）、選択された電子文書についてステップＳ１３と同様の判定を行う（Ｓ１７）。すなわち、ステップＳ１７では、ステップＳ１６で選択された電子文書と、ステップＳ１２で取得したタイムスタンプ（すなわち検証対象の電子文書のタイムスタンプ）との組を対象として、図５に示した判定処理が実行される。
【００３９】
ここで、検証対象の電子文書と同じ文書グループに属する電子文書は、属性管理部１３５に登録されたグループ情報を用いて特定すればよい。なお、ステップＳ１６では、属性管理部１３５に登録された各電子文書のアクセス制御情報に基づき、検証を指示したユーザがアクセス権を持つ電子文書を選択する。
【００４０】
ステップＳ１６では、別の電子文書をランダムに選択することで、悪意の第三者が選択される電子文書を予測することを困難にしている。ただし、複数の電子文書について、検証用ハッシュ値と矛盾がないように電子文書とタイムスタンプを改ざんすることは非常に困難なので、ステップＳ１６の選択がランダムでなくても、かなりの検証精度を期待できる。
【００４１】
また、ステップＳ１７の判定処理で、ステップＳ１６で選択された電子文書に対応して属性管理部１３５に登録されたタイムスタンプではなく、検証対象の電子文書のタイムスタンプを用いるのは次のような理由からである。すなわち、図３の例のように個々の電子文書に対応づけてタイムスタンプの値が保存される場合は、個々の電子文書について、それぞれ電子文書とタイムスタンプとが検証用ハッシュ値に矛盾のないように同時に変更される可能性があるからである。タイムスタンプが文書グループに対応づけて保存され、個々の電子文書からは自分の属する文書グループに対応するタイムスタンプを参照するデータ管理構造を採る場合には、ステップＳ１３とＳ１７では同じ文書グループに対応づけられたタイムスタンプが用いられることになる。
【００４２】
そして、タイムスタンプ検証部１７０は、ステップＳ１７の判定処理の結果が「一致」であるか否かを判定し（Ｓ１８）、「一致」と判定された場合には、検証対象の電子文書に対するタイムスタンプは有効である（すなわち、電子文書自体もタイムスタンプも改ざんされていない可能性が高い）と判定し（Ｓ１９）、その判定結果をユーザ（又はそのユーザが操作するアプリケーション）に通知する。なお、ステップＳ１９の判定結果は、タイムスタンプに付されたタイムスタンプサーバ３００の電子署名が正しい（すなわちタイムスタンプが改ざんされていない）ことが検証済みであることを前提とする。タイムスタンプ自体の電子署名の検証は、ステップＳ１９で実施してもよいし、ステップＳ１９の前に事前に実施されていてもよい。
【００４３】
ステップＳ１７の判定処理の結果が「不一致」の場合は、図４の手順では、検証対象の電子文書に対するタイムスタンプは無効であると判定される（Ｓ１５）。これは、文書グループ内のいずれかの電子文書について改ざんの可能性がある以上、そのタイムスタンプはその文書グループ全体について信頼できない、と見なす立場に立った判定である。ただし、これは一例に過ぎない。
【００４４】
この代わりに、例えば、ステップＳ１６で選択された電子文書がたまたま変更されていただけで、タイムスタンプ自体は有効な可能性があると見なす立場もある。この立場での図４の手順の変形例の主要部を、図６に例示する。図６には、図４のステップＳ１８の判定結果が否定（Ｎｏ）、すなわち「不一致」である場合に実行される処理の流れを示す。それ以外の処理の流れは、図４と同様でよい。
【００４５】
図６の手順では、タイムスタンプ検証部１７０は、検証対象の電子文書と同じ文書グループに属する更に別の電子文書をランダムに選択する（Ｓ３１）。そして、ここで選択された電子文書と検証対象の電子文書のタイムスタンプとの組について、ステップＳ１３と同様の判定処理を行い（Ｓ３２）、その結果が「一致」であれば（Ｓ３３の判定結果がＹｅｓ）、検証対象の電子文書についてタイムスタンプが有効であると判定し（Ｓ３４）、その判定結果をユーザ（又はそのユーザが操作するアプリケーション）に通知する。すなわち、この場合は、多数決によりタイムスタンプは有効であると判断し、ステップＳ１６で選択された電子文書が改ざんされていたと判定するのである。この場合、ステップＳ１６で選択された電子文書が改ざんされている可能性がある旨をユーザに通知してもよい。
【００４６】
一方、ステップＳ３２の判定処理の結果が「不一致」であれば（Ｓ３３の判定結果がＮｏ）、タイムスタンプ検証部１７０は、検証対象の電子文書についてタイムスタンプが無効であると判定し（Ｓ３５）、その判定結果をユーザ（又はそのユーザが操作するアプリケーション）に通知する。
【００４７】
以上説明したように、実施形態では、複数の電子文書のすべてについて、矛盾が生じないようにそれら電子文書やタイムスタンプを改ざんすることは非常に困難であるという知見を利用することで、文書グループ内の電子文書全体を用いなくてもタイムスタンプの有効性を高い精度で推定できるようにした。
【００４８】
なお、以上の実施形態はあくまで一例に過ぎず、様々な変形が考えられる。例えば、ステップＳ１６で、検証対象の電子文書と同じ文書グループに属する電子文書を複数選択してもよい。この場合、例えば、選択された複数の電子文書のすべてについてステップＳ１７の判定を個別に行い、その判定結果がそれらすべての電子文書について「一致」であれば、検証対象の電子文書に対応するタイムスタンプが有効であると判定すればよい。また、いずれかの電子文書についてその判定結果が「不一致」となった場合は、例えばそのタイムスタンプが無効であると判定してもよいし、或いは判定結果が「一致」である電子文書の数がそうでない電子文書の数より多ければタイムスタンプが有効であると判定してもよい。
【００４９】
また、電子文書のフォーマットの中には、１つの電子文書の中に複数のファイルをコンテンツとして含み得るものがある。そのようなフォーマットの電子文書については、それらコンテンツ毎にステップＳ４（図２参照）にて当該コンテンツとタイムスタンプとを組み合わせたデータに対するハッシュ値を計算してもよい。この場合、属性管理部１３５には、電子文書が含むコンテンツ毎のハッシュ値が登録されることになる。このような電子文書についてのタイムスタンプの検証では、それら複数のコンテンツの各々について、図５の判定処理を実行すればよい。そして、その判定結果がそれら複数のコンテンツのすべてについて「一致」であればそのタイムスタンプが有効であると判定し、判定結果が「不一致」であるコンテンツが１つでも見つかればそのタイムスタンプが無効であると判定すればよい。すなわち、この例では、１つの電子文書に含まれる個々のコンテンツをそれぞれ個別の電子文書として取り扱い、上述と同様の判定手法を利用したわけである。
【００５０】
なお、当業者には明らかなように、以上に例示したタイムスタンプ検証方式は、スキャナ１１０で読み取った画像から生成される電子文書のみならず、アプリケーションが生成したオフィス文書ファイル、画像ファイル、音声ファイル、マルチメディアファイルなどのような電子文書一般に適用可能である。アプリケーションが生成した電子文書を対象とする場合には、文書管理システム１００はスキャナ１１０を持っていなくてもよい。
【００５１】
以上に例示した文書管理システム１００は、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、図７に例示するように、ＣＰＵ１０００等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）１００２及びリードオンリメモリ（ＲＯＭ）１００４等のメモリ（一次記憶）、ハードディスクドライブ（ＨＤＤ）１００６を制御するＨＤＤコントローラ１００８、各種Ｉ／Ｏ（入出力）インタフェース１０１０、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース１０１２等が、たとえばバス１０１４を介して接続された回路構成を有する。また、そのバス１０１４に対し、例えばＩ／Ｏインタフェース１０１０経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ１０１６、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダ・ライタ１０１８、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭ１００２に読み出されＣＰＵ１０００等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）等のハードウエア回路として構成してもよい。
【図面の簡単な説明】
【００５２】
【図１】実施形態の文書管理システム１００の構成の例を示す図である。
【図２】文書登録時の処理手順の一例を示すフローチャートである。
【図３】属性管理部が持つ属性情報の例を示す図である。
【図４】タイムスタンプ検証の処理手順の一例を示すフローチャートである。
【図５】タイムスタンプと電子文書との組についての判定処理の手順の一例を示すフローチャートである。
【図６】タイムスタンプ検証の処理手順の変形例の主要部のフローチャートである。
【図７】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【００５３】
１００  文書管理システム、１１０  スキャナ、１２０  登録部、１３０  文書管理部、１３５  属性管理部、１４０  タイムスタンプ取得部、１５０  ハッシュ計算部、１６０  検索部、１７０  タイムスタンプ検証部、２００  ネットワーク、３００  タイムスタンプサーバ。
【図１】
2009129102.tif 000003
【図２】
2009129102.tif 000004
【図３】
2009129102.tif 000005
【図４】
2009129102.tif 000006
【図５】
2009129102.tif 000007
【図６】
2009129102.tif 000008
【図７】
2009129102.tif 000009