(57)【特許請求の範囲】
【請求項１】
タイムスタンプを付与されたファイルの前記タイムスタンプの有効性を検証するタイムスタンプ検証装置であって、
前記タイムスタンプが付与された複数の任意ファイルと、当該複数の任意ファイル間の関係を少なくとも含む前記タイムスタンプが付与された管理ファイルと、前記任意ファイル及び前記管理ファイルに付与されたタイムスタンプの有効性を検証可能な検証用ファイルとを対応付けて記憶する記憶部と、
検証要求を受けると、検証対象のファイルと当該ファイルに対応付いている検証用ファイルとからタイムスタンプの有効性を検証して検証結果を出力するタイムスタンプ検証部と、
前記管理ファイルが検証対象とされた場合に、当該管理ファイルに付与されているタイムスタンプの検証を前記タイムスタンプ検証部に要求し、当該要求に対する検証結果が有効であると、当該管理ファイルに含まれる前記複数の任意ファイル間の関係に基づいて任意ファイルを特定して前記記憶部に記憶されているか否かを判断する管理ファイル検証部と、
を備えることを特徴とするタイムスタンプ検証装置。
【請求項２】
前記管理ファイル検証部は、前記管理ファイルのハッシュ値に前記複数の任意ファイルのハッシュ値を前記複数の任意ファイル間の関係に基づいて連結した連結データを作成し、当該連結データを含めて前記要求を前記タイムスタンプ検証部に行う請求項１に記載のタイムスタンプ検証装置。
【請求項３】
前記管理ファイルは、前記複数の任意ファイルのハッシュ値を更に有し、
前記管理ファイル検証部は、前記要求に対する検証結果が有効であるときに、前記管理ファイルに含まれる任意ファイルの前記ハッシュ値と、前記記憶部に記憶された当該任意ファイルから計算したハッシュ値とを比較し、当該比較の結果を、当該任意ファイルに付与された前記タイムスタンプの有効性の検証結果とする請求項１又は２に記載のタイムスタンプ検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のファイルに対して一つのタイムスタンプの発行要求をタイムスタンプ局に行い、タイムスタンプ局が発行した一つのタイムスタンプを複数のファイルに付与するタイムスタンプ付与装置に関する。また、本発明は、複数のファイルに対して一つ付与されたタイムスタンプの有効性をそれぞれのファイル毎に検証するタイムスタンプ検証装置に関する。
【背景技術】
【０００２】
従来、複数のファイル（例えば、データファイル）をまとめたファイルを作成し、このまとめたファイルに対して一つのタイムスタンプの発行要求をタイムスタンプ局に行い、タイムスタンプ局が発行したタイムスタンプを、まとめたファイルに付与していた。
【０００３】
しかしながら、従来、タイムスタンプ付与対象である複数のファイルのうちの一つでもファイルが削除されると、タイムスタンプの有効性の検証の際にまとめたファイルを作成することができず、検証の失敗を検出し、タイムスタンプ付与対象のまとめたファイルを構成する全てのファイルの真正性を担保することができなくなる。
【０００４】
そこで、タイムスタンプ付与対象となる複数のファイルから一つ以上のファイルが削除された場合でもタイムスタンプの有効性を検証できるようにするために、一つのタイムスタンプを複数のファイルに付与する際にファイルごとに個別にタイムスタンプの有効性を検証可能にするＥＲＳ規格（ＲＦＣ４９９８）が提案されている（例えば、非特許文献１）。
【０００５】
図１は、従来のＥＲＳ規格に対応したタイムスタンプ付与装置及びタイムスタンプ検証装置で用いられるデータファイルとＥＲＳファイルとの関係を説明する概念図である。ＥＲＳ規格に対応したタイムスタンプ付与装置（図示せず）を用いて複数のデータファイル１，２，３，４に一つのタイムスタンプｔを付与する場合、タイムスタンプｔの生成要素である一つのハッシュ値（ハッシュツリーの頂点となるルートハッシュ）ｈ１２３４を生成するために、以下の（１）〜（３）の工程を行う。
（１）ハッシュ関数Ｈを用いて計算されたデータファイル１のハッシュ値ｈ１及びハッシュ関数Ｈを用いて計算されたデータファイル２のハッシュ値ｈ２をまとめることによって生成されるハッシュ値ｈ１２を、ハッシュ関数Ｈを用いて計算する工程。
（２）ハッシュ関数Ｈを用いて計算されたデータファイル３のハッシュ値ｈ３及びハッシュ値ｈ１２をまとめることによって生成されるハッシュ値ｈ１２３を、ハッシュ関数Ｈを用いて計算する工程。
（３）ハッシュ関数Ｈを用いて計算されたデータファイル４のハッシュ値ｈ４とハッシュ値ｈ１２３をまとめることによって生成されるハッシュ値（ルートハッシュ）ｈ１２３４を、ハッシュ関数Ｈを用いて計算する工程。
【０００６】
その後、タイムスタンプ付与装置は、タイムスタンプ局（ＴＳＡ）ａにハッシュ値ｈ１２３４を送信し、タイムスタンプ局ａにタイムスタンプｔの生成を要求する。タイムスタンプ局ａがハッシュ値ｈ１２３４を受信すると、タイムスタンプ局ａは、タイムスタンプ局ａの秘密鍵を使用して電子署名を付与したタイムスタンプ・トークンを生成し、タイムスタンプ付与装置に返信する。
【０００７】
タイムスタンプ付与装置がタイムスタンプ・トークンを受け取ると、タイムスタンプ付与装置は、一つのタイムスタンプｔをデータファイル１，２，３，４にそれぞれ付与するために、タイムスタンプｔをコピーし、タイムスタンプｔ及び各ファイルのハッシュツリー情報を有する各ファイル用のＥＲＳファイルを作成する。ここで、各データファイルのハッシュツリー情報は、自身のハッシュ値（ｈ１又はｈ２，ｈ３，ｈ４）から最後のハッシュ値（ルートハッシュｈ１２３４）を導出するのに必要最小限のハッシュ値を、リストの入れ子構造で保持する。図１に示す概念図においては、[]がリストを表す。また、ＥＲＳ規格では、自身のハッシュ値を先頭のリストに含め、各リストの要素のハッシュ値は、昇順にソートされる。すなわち、図１におけるハッシュ値は、ｈ１＜ｈ２，ｈ１２＜ｈ３，ｈ１２３＜ｈ４の大小関係にある。
【０００８】
したがって、図１に示す概念図では、タイムスタンプ付与装置は、タイムスタンプｔ及びデータファイル１のハッシュツリー情報[[h1,h2],[h3],[h4]]を有するデータファイル１用のＥＲＳファイルと、タイムスタンプｔ及びデータファイル２のハッシュツリー情報[[h1,h2],[h3],[h4]]を有するデータファイル２用のＥＲＳファイルと、タイムスタンプｔ及びデータハッシュファイル３のハッシュツリー情報[[h12,h3],[h4]]を有するデータファイル３用のＥＲＳファイルと、タイムスタンプｔ及びデータファイル４のハッシュツリー情報[[h123,h4]]を有するデータファイル４用のＥＲＳファイルと、を作成する。
【０００９】
なお、ＥＲＳ規格では、ハッシュツリーの構造は任意である。ハッシュツリーの構造により、ルートハッシュを生成する工程が定まり、ハッシュツリー情報で保持されるハッシュ値のリストの構造も定まる。
【００１０】
このような各データファイル用のＥＲＳファイルを作成することによって、ＥＲＳ規格に対応したタイムスタンプ検証装置は、タイムスタンプｔの有効性を検証したいデータファイル（例えば、データファイル１）及びそれに対応するＥＲＳファイル（例えば、データファイル１用のＥＲＳファイル）があれば、同じタイムスタンプｔが付与された他のデータファイル（例えば、データファイル２）の存在に関係なくタイムスタンプｔの有効性を検証することができる。したがって、ＥＲＳ規格に従ったシステムによれば、各ファイルの保存期間によって影響が及ぼされることなくファイルを処理することができる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】ＲＦＣ４９９８：Evidence Record Syntax(ERS)(2007.8)
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、ＥＲＳ規格では、他のデータファイルの存在の影響を受けないでタイムスタンプの有効性を検証できる一方で、一つのタイムスタンプが付与されたデータファイル間の関係（例えば、どのデータファイルと一緒にタイムスタンプを付与されたか、データファイル間の順序関係等）を保持する仕組みを有さない。例えば、図１に示す概念図におけるデータファイル１，２，３，４の並びは、ハッシュツリーの構造での末端ノードの配置であり、データファイルの順序とは無関係である。仮に末端ノードとデータファイル１，２，３，４の順序を対応させてハッシュツリーを構築したとしても、その結果として作成されるＥＲＳファイル中のハッシュツリー情報ではハッシュ値が昇順でソートされるので、データファイル１，２，３，４間の関係が保持されない。
【００１３】
また、ハッシュツリーの構造は任意であるので、ハッシュツリー情報のハッシュ値からハッシュツリーの末端ノードとしてデータファイル１，２，３，４を特定するのが困難である。さらに、ＥＲＳファイル中のタイムスタンプが同じデータファイルを特定することはできるが、このように特定されたデータファイルの集合がタイムスタンプ付与時に構築したハッシュツリーの末端ノードと過不足なく一致し、データファイルの追加又は削除が発生したか否かを確認する手段を有しない。
【００１４】
本発明の目的は、一つのタイムスタンプが付与されたファイル間の関係を、改竄検知可能に保持することができるタイムスタンプ付与装置を提供することである。
【００１５】
本発明の他の目的は、一つのタイムスタンプを付与した複数のファイル間の関係及びファイルの追加又は削除の有無を検証することができ、また、これらの検証の際に、個々のファイルについて従来のＥＲＳ規格によるタイムスタンプの検証を行う必要がないタイムスタンプ検証装置を提供することである。
【課題を解決するための手段】
【００１６】
かかる課題を解決するために、本発明は、複数のファイルに対して一つのタイムスタンプの発行要求をタイムスタンプ局に行い、タイムスタンプ局が発行したタイムスタンプを複数のファイルに付与するタイムスタンプ付与装置であって、タイムスタンプ付与対象となる複数の任意ファイルを指定するファイル指定部と、複数の任意ファイル間の関係を含む管理ファイルを作成する管理ファイル作成部と、複数の任意ファイル及び管理ファイルに対して一つのタイムスタンプの発行要求をタイムスタンプ局に行い、タイムスタンプ局が発行したタイムスタンプを取得するタイムスタンプ取得部と、複数の任意ファイル及び管理ファイルに対して、タイムスタンプの有効性を検証可能な検証用ファイルをそれぞれ作成する検証用ファイル作成部と、を備えることを特徴とするタイムスタンプ付与装置を提供する。これにより、タイムスタンプ付与対象として指定された複数の任意ファイル間の関係を改竄検知可能に保持することができる。
【００１７】
かかるタイムスタンプ付与装置において、タイムスタンプ取得部は、複数の任意ファイル及び管理ファイルのハッシュ値を用いてハッシュツリーを生成し、ハッシュツリーの頂点となるルートハッシュである一つのハッシュ値を用いて一つのタイムスタンプの発行要求を行い、検証用ファイル作成部は、タイムスタンプと前記複数の任意ファイルのうちの一つ又は前記管理ファイルに関連するハッシュツリーの情報とを含む前記検証用ファイルを作成するのが好ましい。
【００１８】
かかるタイムスタンプ付与装置において、検証用ファイル作成部は、タイムスタンプを取得する度に管理ファイルの識別情報を記憶部に記憶させ、管理ファイル作成部は、複数のファイルにタイムスタンプを順次付与する場合、前回のタイムスタンプ取得時に記憶部に記憶された識別情報を含んだ前記管理ファイルを作成するのが好ましい。これにより、順次付与されるタイムスタンプの間に亘って複数の任意ファイル間の順序関係及び追加・削除の有無の検証が可能になる。
【００１９】
また、本発明は、タイムスタンプを付与されたファイルのタイムスタンプの有効性を検証するタイムスタンプ検証装置であって、タイムスタンプが付与された複数の任意ファイルと、複数の任意ファイル間の関係を少なくとも含むタイムスタンプが付与された管理ファイルと、任意ファイル及び管理ファイルに付与されたタイムスタンプの有効性を検証可能な検証用ファイルとを対応付けて記憶する記憶部と、検証要求を受けると、検証対象のファイルとファイルに対応付いている検証用ファイルとからタイムスタンプの有効性を検証して検証結果を出力するタイムスタンプ検証部と、管理ファイルが検証対象とされた場合に、管理ファイルに付与されているタイムスタンプの検証をタイムスタンプ検証部に要求し、要求に対する検証結果が有効であると、複数の任意ファイル間の関係に基づいて任意ファイルを特定して前記記憶部に記憶されているか否かを判断する管理ファイル検証部と、を備えることを特徴とするタイムスタンプ検証装置を提供する。これにより、管理ファイルの内容に基づいて複数の任意ファイルのファイル間の関係の検証を行うことができる。
【００２０】
かかるタイムスタンプ検証装置において、管理ファイル検証部は、管理ファイルのハッシュ値に複数の任意ファイルのハッシュ値を複数の任意ファイル間の関係に基づいて連結した連結データを作成し、連結データを含めて要求をタイムスタンプ検証部に行うのが好ましい。これにより、管理ファイルのタイムスタンプの有効性の検証と任意ファイル間の関係の検証と共に任意ファイルの改竄検知を行うことができ、個々の任意ファイルについてのタイムスタンプの検証を代替することができる。
【００２１】
かかるタイムスタンプ検証装置において、管理ファイルは、複数の任意ファイルのハッシュ値を更に有し、管理ファイル検証部は、要求に対する検証結果が有効であるときに、管理ファイルに含まれる任意ファイルのハッシュ値と、記憶部に記憶された任意ファイルから計算したハッシュ値とを比較し、比較の結果を、任意ファイルに付与されたタイムスタンプの有効性の検証結果とするのが好ましい。これにより、任意ファイルの改竄検知を行うことができ、個々の任意ファイルについてのタイムスタンプの有効性の検証を代替することができる。
【発明の効果】
【００２２】
本発明のタイムスタンプ付与装置によれば、一つのタイムスタンプが付与されたファイル間の関係を、改竄検知可能に保持することができる。
【００２３】
本発明のタイムスタンプ検証装置によれば、一つのタイムスタンプを付与した複数のファイル間の関係及びファイルの追加又は削除の有無の検証を行うことができ、また、これらの検証の際に、個々のファイルについて従来のＥＲＳ規格によるタイムスタンプの検証を行う必要がない。
【図面の簡単な説明】
【００２４】
【図１】従来のＥＲＳ規格に対応したタイムスタンプ付与装置及びタイムスタンプ検証装置で用いられるデータファイルとＥＲＳファイルとの関係を説明する概念図である。
【図２】本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置が用いられる電子署名システムの構成図である。
【図３】図２の電子署名サーバで用いられるデータファイルとＥＲＳ管理ファイルとＥＲＳファイルとの関係を説明する概念図である。
【図４】図２の電子署名システムのデータファイル管理システムに記憶されるデータの形式の一例を示す図である。
【図５】図２の電子署名サーバのタイムスタンプ付与処理フローチャートである。
【図６】図２の電子署名サーバのタイムスタンプ検証処理フローチャートである。
【図７】図２の電子署名システムのデータファイル管理システムに記憶されるデータの形式の他の例を示す図である。
【発明を実施するための形態】
【００２５】
本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置の実施の形態を、図面を参照しながら説明する。
本発明によるタイムスタンプ付与装置は、タイムスタンプ付与対象として指定される複数の任意ファイル間の関係を含む管理ファイルを作成し、複数の任意ファイル及び管理ファイルに対して一つのタイムスタンプを取得し、複数の任意ファイル及び管理ファイルに対して、タイムスタンプの有効性を検証可能な検証用ファイルをそれぞれ作成する装置である。
【００２６】
本発明によるタイムスタンプ検証装置は、タイムスタンプ検証対象となるタイムスタンプが付与された任意ファイル及び管理ファイルと、任意ファイル及び管理ファイルに付与されたタイムスタンプの有効性を検証可能な検証用ファイルとを対応付けて記憶し、複数の任意ファイル間の関係を含む管理ファイルに付与されたタイムスタンプの有効性の検証を、管理ファイルの検証用ファイルより行い、この検証結果に応じて複数の任意ファイル間の関係の検証を実行する装置である。
【００２７】
図２は、本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置が用いられる電子署名システムの構成図である。図２に示す電子署名システムは、例えば、社内システムに適用され、ユーザ端末１と、業務システム２と、データファイル保管システム３と、電子署名サーバ４と、タイムスタンプ局５と、通信ネットワーク６と、を有する。
【００２８】
図２に示すシステムでは、ユーザ端末１は、通信ネットワーク６を介して業務システム２にアクセスしてデータファイルを作成し、作成したデータファイルをデータファイル保管システム３に保管する。また、電子署名サーバ４は、後に説明するように、予め設定されたスケジュールに従って、データファイル保管システム３に保管されたデータファイルにタイムスタンプを付与し、付与されたタイムスタンプの検証を行う。
【００２９】
ユーザ端末１は、業務システム２にアクセスしてデータファイルの作成のような各種業務処理を行うための操作等を実行する環境をユーザに提供する。このために、ユーザ端末１は、例えば、パーソナルコンピュータ（ＰＣ）によって構成される。また、ユーザ端末１は、通信ネットワーク６を通じて業務システム２、データファイル保管システム３及び電子署名サーバ４との通信を行う通信Ｉ／Ｆ部１１と、ユーザ端末１の各種制御を行う制御部１２と、各種業務を実施するための入力を行う入力部１３と、各種業務処理等を実施するための画面を表示する表示部１４と、制御部１２で使用する各種制御情報等を記憶する記憶部１５と、を有する。
【００３０】
通信Ｉ／Ｆ部１１は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部１２は、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、ユーザ端末１の制御全般についてプログラムに従って処理を行う。入力部１３は、マウス、キーボード等によって構成される。表示部１４は、ＬＣＤ等によって構成される。記憶部１５は、フラッシュメモリ、ＥＥＰＲＯＭ等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
【００３１】
業務システム２は、ユーザ端末１での操作に応じて各種業務処理を実行し、処理結果に基づいてデータファイルを作成する。このために、業務システム２は、ユーザ端末１のサーバシステムとして構成され、通信ネットワーク６を通じてユーザ端末１、データファイル保管システム３及び電子署名サーバ４との通信を行う通信Ｉ／Ｆ部２１と、業務システム２の各種制御を行う制御部２２と、制御部２２で使用する各種制御情報等を記憶する記憶部２３と、を有する。
【００３２】
通信Ｉ／Ｆ部２１は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部２２は、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、業務システム２の制御全般についてプログラムに従って処理を行う。このために、制御部２２は、ユーザ端末１での操作に応じた業務処理を実行する業務処理部２２ａと、業務処理部２２ａの処理結果に基づいてデータファイルを作成するデータファイル作成部２２ｂと、を有する。記憶部２３は、フラッシュメモリ、ＥＥＰＲＯＭ等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
【００３３】
データファイル保管システム３は、ユーザ端末１での操作に応じて業務システム２で作成されたデータファイルと、電子署名サーバ４で作成された後に説明するＥＲＳファイル、ＥＲＳ管理ファイル及びＥＲＳ終端ファイルを保管する。このために、データファイル保管システム３は、通信ネットワーク６を通じてユーザ端末１、業務システム２及び電子署名サーバ４との通信を行う通信Ｉ／Ｆ部３１と、データファイル保管システム３の各種制御を行う制御部３２と、上述したデータファイル、ＥＲＳファイル、ＥＲＳ管理ファイル及びＥＲＳ終端ファイルの他に、制御部３２で使用する各種制御情報等を記憶する記憶部３３と、を有する。
【００３４】
通信Ｉ／Ｆ部３１は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部３２は、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、データファイル保管システム３の制御全般についてプログラムに従って処理を行う。記憶部３３は、フラッシュメモリ、ＥＥＰＲＯＭ等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
【００３５】
電子署名サーバ４は、複数のファイルに対して一つのタイムスタンプの発行要求をタイムスタンプ局５に行い、タイムスタンプ局５が発行したタイムスタンプを複数のファイルに付与する本発明におけるタイムスタンプ付与装置として機能する。また、電子署名サーバ４は、複数のファイルに対して付与された一つのタイムスタンプの有効性をファイル毎に検証する本発明におけるタイムスタンプ検証装置としても機能する。このために、電子署名サーバ４は、通信ネットワーク６を通じてユーザ端末１、業務システム２、データファイル保管システム３及びタイムスタンプ局５との通信を行う通信Ｉ／Ｆ部４１と、電子署名サーバ４の各種制御を行う制御部４２と、上述したデータファイル、ＥＲＳファイル、ＥＲＳ管理ファイル及びＥＲＳ終端ファイルの他に、制御部４２で使用する各種制御情報等を記憶する記憶部４３と、を有する。なお、本実施の形態では、電子署名サーバ４はＥＲＳ規格に対応する。
【００３６】
通信Ｉ／Ｆ部４１は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部４２は、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、電子署名サーバ４の制御全般についてプログラムに従って処理を行う。このために、制御部４２は、本発明のファイル指定部として動作するスケジューラ部４２ａと、タイムスタンプ及びファイル受取部４２ｂと、ＥＲＳ管理ファイル作成部４２ｃと、ＥＲＳファイル作成部４２ｄと、電子署名付与部４２ｅと、電子署名検証部４２ｆと、ファイル送出部４２ｇと、タイムスタンプ検証部４２ｈと、ＥＲＳ管理ファイル検証部４２ｉと、を有する。
【００３７】
スケジューラ部４２ａは、予め設定されたスケジュールの設定時刻に従い、データファイル保管システム３の記憶部３３に記憶されている複数のデータファイルを取得し、一つのタイムスタンプを付与するトリガ、及び、タイムスタンプが付与されたデータファイルのタイムスタンプを検証するトリガを与える。具体的には、スケジューラ部４２ａは、タイムスタンプの取得をタイムスタンプ及びファイル受取部４２ｂに要求するとともに、タイムスタンプの検証をタイムスタンプ検証部４２ｈに要求する。
【００３８】
タイムスタンプ及びファイル受取部４２ｂは、スケジューラ部４２ａからの要求に応じてＥＲＳ管理ファイル作成部４２ｃ及びＥＲＳファイル作成部４２ｄと連携することによって、通信Ｉ／Ｆ部４１を通じてタイムスタンプを取得する。すなわち、タイムスタンプ及びファイル受取部４２ｂは、通信Ｉ／Ｆ部４１を介してタイムスタンプの発行要求をタイムスタンプ局５に行い、タイムスタンプ局５が発行したタイムスタンプを取得する。この一連の処理は、本発明のタイムスタンプ取得部の処理に相当する。
【００３９】
また、タイムスタンプ及びファイル受取部４２ｂは、スケジューラ部４２ａによって指定されるタイムスタンプ付与対象となる複数の任意ファイルとしての複数のデータファイルを、通信Ｉ／Ｆ部４１を通じて記憶部３３から取得する。したがって、通信Ｉ／Ｆ部４１及びタイムスタンプ及びファイル受取部４２ｂは、記憶部３３に記憶された複数のデータファイルのうちのタイムスタンプ付与対象となる複数のデータファイルを受け取り、一つのタイムスタンプを付与するために当該複数のデータファイルを記憶部４３に一時的に格納する。
【００４０】
ＥＲＳ管理ファイル作成部４２ｃは、タイムスタンプ及びファイル受取部４２ｂからの要求に応じて、タイムスタンプ付与対象となる複数のデータファイル間の関係の一種である順序関係を少なくとも含むＥＲＳ管理ファイルを作成する。ここでいう順序関係とは、データファイル保管システム３の記憶部３３にデータファイルが登録された時系列順を示す情報のことである。具体的には、順序関係を示す情報は、タイムスタンプ付与の対象となるデータファイルのファイル名を記憶部３３への登録順に列挙したテキスト形式で示した情報である。
【００４１】
複数のデータファイル間の関係は、本実施の形態のような順序関係以外に、複数のデータファイル間に上位下位の階層関係がある場合の当該階層関係を示す情報、複数のデータファイルが種々のグループに区分けされている場合の当該グループ構成、単に一つのタイムスタンプが付与される複数のデータファイル名を全て列挙したもの等であってもよい。
【００４２】
また、ＥＲＳ管理ファイル作成部４２ｃは、順序関係を示す情報に後述するＥＲＳ終端ファイルに記憶された情報を加えたＥＲＳ管理ファイルを作成する。なお、ＥＲＳ管理ファイルの削除等を検出するためにＥＲＳ管理ファイルにＥＲＳ終端ファイルの情報を加えているので、ＥＲＳ管理ファイルの削除等を考慮する必要がなければＥＲＳ管理ファイルにＥＲＳ終端ファイルの情報を加える必要はない。
【００４３】
ここで、ＥＲＳ終端ファイルについて説明する。ＥＲＳ終端ファイルは、ＥＲＳ管理ファイル作成部４２ｃによりタイムスタンプを付与する度に更新されるファイルである。すなわち、ＥＲＳ管理ファイル作成部４２ｃは、タイムスタンプを付与した際に、作成したＥＲＳ管理ファイルのファイル名及び当該ＥＲＳ管理ファイルの内容のハッシュ値をＥＲＳ終端ファイルに記録する。この際、ＥＲＳ管理ファイル作成部４２ｃは、ＥＲＳ終端ファイルに既にファイル名等が記録されていればＥＲＳ終端ファイルを上書き更新する。これにより、ＥＲＳ終端ファイルには、タイムスタンプを付与した直近のＥＲＳ管理ファイルのファイル名等が常に記録されている。さらに、ＥＲＳ管理ファイル作成部４２ｃは、作成したＥＲＳ終端ファイルに、後述する電子署名付与部４２ｅにより電子署名サーバ４の秘密鍵で電子署名を付与し、電子署名が付与されたＥＲＳ終端ファイルを記憶部４３に記憶させる。また、ＥＲＳ管理ファイル作成部４２ｃは、ＥＲＳ管理ファイルを作成する際に記憶部４３に記憶されているＥＲＳ終端ファイルを取得すると、後述する電子署名検証部４２ｆにて電子署名の検証ができたことを条件にＥＲＳ管理ファイルの作成を行う。
【００４４】
ＥＲＳファイル作成部４２ｄは、タイムスタンプ付与対象となる複数のデータファイル及びＥＲＳ管理ファイルに対して、タイムスタンプの有効性を検証可能な検証用ファイルとしてのＥＲＳファイルをそれぞれ作成する。
【００４５】
電子署名付与部４２ｅは、ＥＲＳ管理ファイル作成部４２ｃからの要求に応じて、ＥＲＳ終端ファイルに電子署名を付与する。電子署名検証部４２ｆは、ＥＲＳ管理ファイル作成部４２ｃからの要求に応じて、ＥＲＳ終端ファイルに付与された電子署名を検証する。
【００４６】
ファイル送出部４２ｇは、一つのタイムスタンプが付与された複数のデータファイル及びＥＲＳ管理ファイルを記憶部３３に格納するために、一つのタイムスタンプが付与された複数のデータファイル、ＥＲＳ管理ファイル、それぞれのＥＲＳファイル及びＥＲＳ終端ファイルを通信Ｉ／Ｆ部４１を通じてデータファイル保管システム３に送出する。
【００４７】
タイムスタンプ検証部４２ｈは、スケジューラ部４２ａからの要求に応じて、処理対象のファイルとそのファイルのＥＲＳファイルを用いてタイムタイムスタンプの検証を行う。ＥＲＳ管理ファイル検証部４２ｉは、タイムスタンプ検証部４２ｈからのデータファイル間の関係も検証する旨の要求に応じて、ＥＲＳ管理ファイルの検証を行う。そのとき、ＥＲＳ管理ファイル検証部４２ｉは、タイムスタンプ検証部４２ｈに対して、ＥＲＳ管理ファイル及びＥＲＳ管理ファイルのＥＲＳファイルを用いたタイムスタンプの検証を要求する。
【００４８】
記憶部４３は、フラッシュメモリ、ＥＥＰＲＯＭ等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
【００４９】
タイムスタンプ局５は、電子署名サーバ４からのタイムスタンプ生成要求に応じて、タイムスタンプ局５の秘密鍵を使用して電子署名を付与したタイムスタンプ・トークンを生成し、電子署名サーバ４に返信する。このために、タイムスタンプ局５は、通信ネットワーク６を通じて電子署名サーバ４との通信を行う通信Ｉ／Ｆ部５１と、タイムスタンプ局５の各種制御を行う制御部５２と、制御部５２で使用する各種制御情報等を記憶する記憶部５３と、を有する。
【００５０】
通信Ｉ／Ｆ部５１は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部５２は、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、タイムスタンプ局５の制御全般についてプログラムに従って処理を行う。記憶部５３は、フラッシュメモリ、ＥＥＰＲＯＭ等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
【００５１】
通信ネットワーク６は、ユーザ端末１、業務システム２、データファイル保管システム３、電子署名サーバ４及びタイムスタンプ局５に接続される。このために、通信ネットワーク６は、専用回線、インターネット、携帯電話回線、一般公衆回線等の遠隔地間又は屋内の離れた場所間でデータの送受信が可能となる通信回線によって構成される。
【００５２】
図３は、図２の電子署名サーバで用いられるデータファイルとＥＲＳ管理ファイルとＥＲＳファイルとの関係を説明する概念図である。電子署名サーバ４を用いて複数のデータファイル１，２，３に一つのタイムスタンプｔ’を付与する場合、データファイル１，２，３の関係（例えば、順序関係）を記録したＥＲＳ管理ファイルが作成され、タイムスタンプｔ’の生成要素である一つのハッシュ値（ハッシュツリーの頂点となるルートハッシュ）ｈ１２３Ｒを生成するために、図１に示す概念図を用いて説明したルートハッシュを計算するための上記（１）及び（２）の工程の次に、以下の（３）’の工程を行う。
（３）ハッシュ関数Ｈを用いて計算されたＥＲＳ管理ファイルのハッシュ値ｈＲ及びハッシュ値ｈ１２３をまとめることによって生成されるハッシュ値（ルートハッシュ）ｈ１２３Ｒを、ハッシュ関数Ｈを用いて計算する工程。
【００５３】
その後、電子署名サーバ４は、タイムスタンプ局５に対応するタイムスタンプ局（ＴＳＡ）ａにハッシュ値ｈ１２３Ｒを送信し、タイムスタンプ局ａにタイムスタンプｔ’の生成を要求する。タイムスタンプ局ａがハッシュ値ｈ１２３Ｒを受信すると、タイムスタンプ局ａは、タイムスタンプ局ａの秘密鍵を使用して電子署名を施したタイムスタンプ・トークンを生成し、電子署名サーバ４に返信する。
【００５４】
電子署名サーバ４がタイムスタンプ・トークンを受け取ると、電子署名サーバ４は、一つのタイムスタンプｔ’をデータファイル１，２，３及びＥＲＳ管理ファイルにそれぞれ付与するために、タイムスタンプｔ’をコピーし、タイムスタンプｔ’及び各ファイルのハッシュ値ｈ１，ｈ２，ｈ３，ｈＲからルートハッシュｈ１２３Ｒを導出するのに必要なハッシュツリー情報を有する各ファイル用のＥＲＳファイルを作成する。
【００５５】
したがって、図３に示す概念図では、電子署名サーバ４は、タイムスタンプｔ’及びデータファイル１のハッシュツリー情報[[h1,h2],[h3],[hR]]を有するデータファイル１用のＥＲＳファイルと、タイムスタンプｔ’及びデータファイル２のハッシュツリー情報[[h1,h2],[h3],[hR]]を有するデータファイル２用のＥＲＳファイルと、タイムスタンプｔ’及びデータハッシュファイル３のツリー情報[[h12,h3],[hR]]を有するデータファイル３用のＥＲＳファイルと、タイムスタンプｔ’及びＥＲＳ管理ファイルのハッシュツリー情報[[h123,hR]]を有するＥＲＳ管理ファイル用のＥＲＳファイルと、を作成する。
なお、図３におけるハッシュ値は、ｈ１＜ｈ２，ｈ１２＜ｈ３，ｈ１２３＜ｈＲの大小関係にある。
【００５６】
このような各データファイル及びＥＲＳ管理ファイル用のＥＲＳファイルを作成することによって、ＥＲＳ規格に対応したタイムスタンプ検証装置は、複数のデータファイル１，２，３及びＥＲＳ管理ファイルに付与されたタイムスタンプｔ’の有効性を、データファイルかＥＲＳ管理ファイルかを区別することなくそれぞれ検証することができる。
【００５７】
図４は、図２の電子署名システムのデータファイル保管システム３に記憶されるデータの形式の一例を示す図である。図４において、複数のデータファイルに対応する任意ファイル１，２，３のＥＲＳ管理ファイルが管理ファイルＡに対応し、任意ファイル１，２，３及び管理ファイルＡに一つのタイムスタンプとしてタイムスタンプＡが付与され、これら任意ファイル１，２，３及び管理ファイルＡに対して、タイムスタンプＡを含む検証用ファイル１，２，３，ＡがＥＲＳファイルとしてそれぞれ作成される。
【００５８】
同様に、図４において、複数のデータファイルに対応する任意ファイル４，５のＥＲＳ管理ファイルが管理ファイルＢに対応し、任意ファイル４，５及び管理ファイルＢに一つのタイムスタンプとしてタイムスタンプＢが付与され、これら任意ファイル４，５及び管理ファイルＢに対して、タイムスタンプＢを含む検証用ファイル４，５、ＢがＥＲＳファイルとしてそれぞれ作成される。
【００５９】
次に、図５を参照して、図２の電子署名サーバ４のタイムスタンプ付与処理フローについて説明する。なお、以下に説明する処理フローは、制御部４２で実行されるプログラムによって制御される。
【００６０】
図２の電子署名サーバ４は、スケジューラ部４２ａがタイムスタンプの取得をタイムスタンプ及びファイル受取部４２ｂに要求することによって、タイムスタンプの付与の処理フローを開始する。この際、スケジューラ部４２ａは、処理対象（タイムスタンプ付与対象）となる複数のデータファイル（複数の任意ファイル）と複数のデータファイル間の関係を指定する。
【００６１】
先ず、タイムスタンプ及びファイル受取部４２ｂは、処理対象となる複数のデータファイルをデータファイル保管システム３から取得し、取得した複数のデータファイルを記憶部４３に格納する（ステップＳ１）。
【００６２】
ここで、処理対象となる複数のデータファイルを取得できなかった場合は、タイムスタンプ及びファイル受取部４２ｂは、システムエラーとしてデータファイル取得処理の失敗を記憶部４３に記録し、処理フローを終了する。
【００６３】
次に、タイムスタンプ及びファイル受取部４２ｂがＥＲＳ管理ファイルの作成をＥＲＳ管理ファイル作成部４２ｃに要求すると、ＥＲＳ管理ファイル作成部４２ｃは、ＥＲＳ終端ファイルをデータファイル保管システム３から取得し、取得したＥＲＳ終端ファイルを記憶部４３に格納する（ステップＳ２）。
【００６４】
ここで、ＥＲＳ終端ファイルを取得できなかった場合は、ＥＲＳ管理ファイル作成部４２ｃは、システムエラーとしてＥＲＳ終端ファイル取得処理の失敗を記憶部４３に記録し、処理フローを終了する。
【００６５】
次に、ＥＲＳ管理ファイル作成部４２ｃは、ＥＲＳ終端ファイルの署名検証を電子署名検証部４２ｆに要求する（ステップＳ３）。要求を受けた電子署名検証部４２ｆは、ＥＲＳ終端ファイルの署名検証を実行し、ＥＲＳ終端ファイルの署名検証に成功したか否かを判断する（ステップＳ４）。署名検証に失敗した場合、電子署名検証部４２ｆは、署名検証処理の失敗を記憶部４３に記録し（ステップＳ５）、処理フローを終了する。
【００６６】
それに対し、署名検証に成功した場合、ＥＲＳ管理ファイル作成部４２ｃは、ＥＲＳ終端ファイルにＥＲＳ管理ファイルが記録済みであるか否か、すなわち、初めてタイムスタンプの付与を行うか否かを判断する（ステップＳ６）。ＥＲＳ終端ファイルにＥＲＳ管理ファイルが記録済みである場合、ＥＲＳ管理ファイル作成部４２ｃは、記録されたＥＲＳ管理ファイルをファイル保管システム３から取得し、取得したＥＲＳ管理ファイルを記憶部４３に格納する（ステップＳ７）。
【００６７】
ここで、ＥＲＳ管理ファイルを取得できなかった場合は、ＥＲＳ管理ファイル作成部４２ｃは、ＥＲＳ管理ファイルの削除の可能性を示すと共にシステムエラーとしてＥＲＳ管理ファイル取得処理の失敗を記憶部４３に記録し、処理フローを終了する。次に、ＥＲＳ管理ファイル作成部４２ｃは、取得したＥＲＳ管理ファイルを記憶部４３に格納し、取得したＥＲＳ管理ファイルのハッシュ値とＥＲＳ終端ファイル内に記録されているハッシュ値とが一致するか否か判断する（ステップＳ８）。
【００６８】
取得したＥＲＳ管理ファイルのハッシュ値とＥＲＳ終端ファイル内に記録されているハッシュ値とが一致しない場合、ＥＲＳ管理ファイル作成部４２ｃは、取得したＥＲＳ管理ファイルが置き換えられていることを検出したことになり、ハッシュ値の不一致を記憶部４３に記録し（ステップＳ９）、処理フローを終了する。
【００６９】
それに対し、取得したＥＲＳ管理ファイルのハッシュ値とＥＲＳ終端ファイル内に記録されているハッシュ値とが一致する場合、ＥＲＳ管理ファイル作成部４２ｃは、処理対象のデータファイル及び取得したＥＲＳ終端ファイルから新たなＥＲＳ管理ファイルを作成する（ステップＳ１０）。一方、ステップＳ６でＥＲＳ終端ファイルにＥＲＳ管理ファイルが記録されていないと判断された場合、ステップＳ１０に進むが、このときには、ＥＲＳ管理ファイル作成部４２ｃは、処理対象のデータファイルから新たなＥＲＳ管理ファイルを作成する。
【００７０】
次に、ＥＲＳ管理ファイル作成部４２ｃは、ＥＲＳ終端ファイルを更新するために、新たなＥＲＳ管理ファイルの情報を記録したＥＲＳ終端ファイルを作成する（ステップＳ１１）。具体的には、ＥＲＳ管理ファイル作成部４２ｃは、ＥＲＳ終端ファイルを作成し、作成したＥＲＳ終端ファイルへの電子署名の付与を電子署名付与部４２ｅに要求する。
【００７１】
次に、要求を受けた電子署名付与部４２ｅは、電子署名サーバ４の秘密鍵でＥＲＳ終端ファイルに電子署名を付与し、電子署名付与済みの終端ファイルを記憶部４３に格納する。
【００７２】
次に、ＥＲＳ管理ファイル作成部４２ｃは、新たなＥＲＳ管理ファイルのハッシュ値に処理対象の複数のデータファイルのハッシュ値をデータファイル間の関係によるデータ順に連結した連結ハッシュデータを作成する（ステップＳ１２）。次に、タイムスタンプ及びファイル受取部４２ｂは、処理対象の複数のデータファイルのハッシュ値と連結ハッシュデータを用いてハッシュツリーを作成する（ステップＳ１３）。
【００７３】
次に、タイムスタンプ及びファイル受取部４２ｂは、作成したハッシュツリーのルートハッシュに対するタイムスタンプ作成をタイムスタンプ局５に要求し、ルートハッシュに対するタイムスタンプをタイムスタンプ局５から取得する（ステップＳ１４）。
【００７４】
ここで、ルートハッシュに対するタイムスタンプをタイムスタンプ局５から取得しなかった場合は、タイムスタンプ及びファイル受取部４２ｂは、システムエラーとしてタイムスタンプ取得処理の失敗を記憶部４３に記録し、処理フローを終了する。
【００７５】
次に、ＥＲＳファイル作成部４２ｄは、各データファイルのハッシュ値及び連結ハッシュデータに対応した各データファイル及びＥＲＳ管理ファイルに対するＥＲＳファイルを、ハッシュツリー及びタイムスタンプから作成し、作成した全てのＥＲＳファイルを記憶部４３に格納する（ステップＳ１５）。
【００７６】
次に、ファイル送出部４２ｇは、新たなＥＲＳ管理ファイル及び全てのＥＲＳファイル及び電子署名付与済みのＥＲＳ終端ファイルを通信Ｉ／Ｆ部４１を通じてデータファイル保管システム３に送信し（ステップＳ１６）、処理フローを終了する。なお、データファイル保管システム３は、電子署名サーバ４から受け取った新たなＥＲＳ管理ファイル及び全てのＥＲＳファイルを、記憶部３３に格納する。また、データファイル保管システム３は、電子署名サーバ４から受け取ったＥＲＳ終端ファイルを、記憶部３３に格納したＥＲＳ終端ファイルに上書きして保存する。図５に示す処理フローにおいて、例えば、処理対象として、図４に示す任意ファイル１，２，３を指定した場合、新たなＥＲＳ管理ファイルとして管理ファイルＡが作成され、任意ファイル１，２，３及び管理ファイルＡのＥＲＳファイルとして検証用ファイル１，２，３、Ａがそれぞれ作成される。
【００７７】
図５に示す処理フローによれば、複数のデータファイル間の関係を含む管理ファイルとしてＥＲＳ管理ファイルを作成するとともに、複数のデータファイル及びＥＲＳ管理ファイルに対して一つのタイムスタンプを付与し、タイムスタンプの有効性を検証可能な検証用ファイルとしてＥＲＳファイルをそれぞれ作成している。このように管理ファイルに対するＥＲＳファイルを作成することによって、一つのタイムスタンプが付与されたデータファイル間の関係を、改竄検知可能に保持することができる。
【００７８】
次に、図６を参照して、図２の電子署名サーバ４のタイムスタンプ検証処理フローについて説明する。なお、以下に説明する処理フローは、制御部４２で実行されるプログラムによって制御される。
【００７９】
図２の電子署名サーバ４は、スケジューラ部４２ａがタイムスタンプの検証をタイムスタンプ検証部４２ｈに要求することによって、タイムスタンプの検証の処理フローを開始する。この際、スケジューラ部４２ａは、処理対象（タイムスタンプ検証対象）となるデータファイル（任意ファイル）を指定する。
【００８０】
先ず、タイムスタンプ及びファイル受取部４２ｂは、処理対象となるデータファイルをデータファイル保管システム３から取得し、取得したデータファイルを記憶部４３に格納する（ステップＳ１０１）。
【００８１】
ここで、処理対象となるデータファイルを取得できなかった場合は、タイムスタンプ及びファイル受取部４２ｂは、システムエラーとしてデータファイル取得処理の失敗を記憶部４３に記録し、処理フローを終了する。次に、タイムスタンプ検証部４２ｈは、データファイル間の順序関係を検証するか指定されたか否か判断する（ステップＳ１０２）。
【００８２】
データファイル間の順序関係を検証しない場合、タイムスタンプ及びファイル受取部４２ｂは、処理対象となるデータファイルの検証用ファイルとしてのＥＲＳファイルをデータファイル保管システム３から取得し、タイムスタンプ検証部４２ｈは、取得したデータファイル及びそれに対応するＥＲＳファイルに基づいて、それぞれのデータファイルのタイムスタンプの有効性の検証処理（既存のＥＲＳ規格のタイムスタンプ検証処理）を実行し、処理対象として指定された全てのデータファイルについてタイムスタンプの有効性の検証処理を行い（ステップＳ１０３）、処理フローを終了する。
【００８３】
一方、ステップＳ１０２でデータファイル間の順序関係を検証すると判断した場合、タイムスタンプ検証部４２ｈは、処理対象として指定されたデータファイルに対応するＥＲＳ管理ファイルの検証をＥＲＳ管理ファイル検証部４２ｉに要求し、これ以降、ＥＲＳ管理ファイル検証部４２ｉが主体的に処理を行う。
【００８４】
ＥＲＳ管理ファイル検証部４２ｉは、処理対象のデータファイル中で順序が最後のもののファイル名が記録されたＥＲＳ管理ファイル及び当該ＥＲＳ管理ファイルのＥＲＳファイルを、データファイル保管システム３から取得し、ＥＲＳ管理ファイル及びＥＲＳファイルを記憶部４３に格納する（ステップＳ１０４）。すなわち、複数のタイムスタンプに亘ってデータファイル間に順序がある場合、その中で最新のタイムスタンプが付与されたＥＲＳ管理ファイル及び当該ＥＲＳ管理ファイルのＥＲＳファイルを取得する。
【００８５】
ここで、ＥＲＳ管理ファイル及びＥＲＳファイルを取得できなかった場合は、ＥＲＳ管理ファイル検証部４２ｉは、ＥＲＳ管理ファイル及びＥＲＳファイル取得処理の失敗を記憶部４３に記録し、処理フローを終了する。
【００８６】
次に、ＥＲＳ管理ファイル検証部４２ｉは、取得したＥＲＳ管理ファイルに処理対象のデータファイル中で順序が最初のもののファイル名が記録されているか否か判断する（ステップＳ１０５）。
【００８７】
ＥＲＳ管理ファイルに処理対象のデータファイル中で順序が最初のもののファイル名が記録されていない場合、ＥＲＳ管理ファイル検証部４２ｉは、取得したＥＲＳ管理ファイルに記録されている１回前に作成されたＥＲＳ管理ファイル及び当該ＥＲＳ管理ファイルのＥＲＳファイルを、データファイル保管システム３から取得する（ステップＳ１０６）。
【００８８】
ここで、１回前に作成されたＥＲＳ管理ファイル及びＥＲＳファイルを取得できなかった場合は、ＥＲＳ管理ファイル検証部４２ｉは、１回前に作成されたＥＲＳ管理ファイル及びＥＲＳファイル取得処理の失敗を記憶部４３に記録し、処理フローを終了する。
【００８９】
次に、ＥＲＳ管理ファイル検証部４２ｉは、ＥＲＳ管理ファイルに記録されている１回前に作成されたＥＲＳ管理ファイルのハッシュ値と、実際に取得した１回前に作成されたＥＲＳ管理ファイルのハッシュ値とが一致するか否か判断する（ステップＳ１０７）。
【００９０】
ＥＲＳ管理ファイルに記録されている１回前に作成されたＥＲＳ管理ファイルのハッシュ値と、実際に取得した１回前に作成されたＥＲＳ管理ファイルのハッシュ値とが一致しない場合、ＥＲＳ管理ファイル検証部４２ｉは、ハッシュ値の不一致を記憶部４３に記録し（ステップＳ１０８）、処理フローを終了する。
【００９１】
それに対し、ＥＲＳ管理ファイルに記録されている１回前に作成されたＥＲＳ管理ファイルのハッシュ値と、実際に取得した１回前に作成されたＥＲＳ管理ファイルのハッシュ値とが一致する場合、ステップＳ１０５に戻る。
【００９２】
一方、ステップＳ１０５でＥＲＳ管理ファイルに処理対象のデータファイル中で順序が最初のもののファイル名が記録されていると判断した場合、ＥＲＳ管理ファイル検証部４２ｉは、取得した全てのＥＲＳ管理ファイルについて、それぞれの連結ハッシュデータを作成し（ステップＳ１０９）、ＥＲＳ管理ファイルのタイムスタンプの有効性の検証処理（既存のＥＲＳ規格のタイムスタンプ検証処理）をタイムスタンプ検証部４２ｈに要求して実行し（ステップＳ１１０）、ＥＲＳ管理ファイルのタイムスタンプの有効性の検証に成功したか否か判断する（ステップＳ１１１）。ここで行われるＥＲＳ管理ファイルのタイムスタンプの有効性の検証処理において、タイムスタンプ検証部４２ｈは、ＥＲＳ管理ファイル及び当該ＥＲＳ管理ファイルのＥＲＳファイルと連結ハッシュデータを入力とし、ＥＲＳ管理ファイルのＥＲＳファイルに含まれるハッシュツリー情報を使ってルートハッシュを再現し、再現したルートハッシュがタイムスタンプにあるハッシュ値と一致するか否か確認する。再現したルートハッシュがタイムスタンプにあるハッシュ値と一致する場合、タイムスタンプ検証部４２ｈは、検証が成功したと判断し、その結果を出力する。それに対し、再現したルートハッシュがタイムスタンプにあるハッシュ値と一致しない場合、タイムスタンプ検証部４２ｈは、検証が失敗したと判断し、その結果を出力する。
【００９３】
なお、ＥＲＳ管理ファイルのＥＲＳファイルのハッシュツリー情報には連結ハッシュデータが含まれている。そのため、ＥＲＳ管理ファイルのＥＲＳファイルに含まれるハッシュツリー情報を使ってルートハッシュを再現する場合、タイムスタンプ検証部４２ｈは、ＥＲＳ管理ファイルのハッシュ値ではなく入力された連結ハッシュデータを用いる。また、連結ハッシュデータには、ＥＲＳ管理ファイルのハッシュ値とデータファイルのハッシュ値とが含まれている。連結ハッシュデータの作成に必要なデータファイルが不足している場合、ＥＲＳ管理ファイル検証部４２ｉは、追加のデータファイルをデータファイル保管システム３から取得する。
【００９４】
ＥＲＳ管理ファイルのタイムスタンプの有効性の検証に失敗した場合、ＥＲＳ管理ファイル検証部４２ｉは、管理ファイルのタイムスタンプの有効性の検証の失敗を記憶部４３に記録し（ステップＳ１１２）、処理フローを終了する。それに対し、ＥＲＳ管理ファイルのタイムスタンプの有効性の検証に成功した場合、ＥＲＳ管理ファイル検証部４２ｉは、全てのＥＲＳ管理ファイルについてデータファイルのタイムスタンプの有効性の検証処理を行ったか否か判断する（ステップＳ１１３）。
【００９５】
全てのＥＲＳ管理ファイルについてタイムスタンプの有効性の検証処理を行っていない場合、ステップＳ１０９に戻る。それに対し、全てのＥＲＳ管理ファイルについてタイムスタンプの有効性の検証処理を行った場合、ＥＲＳ管理ファイル検証部４２ｉは、処理対象のデータファイルの追加、削除又は順序の入替えを確認し（ステップＳ１１４）、処理対象のデータファイルの追加、削除又は順序の入替えが発生していないか否かを、取得した全てのＥＲＳ管理ファイルの内容に基づいて判断する（ステップＳ１１５）。具体的には、ＥＲＳ管理ファイルに記録されていないデータファイルがデータファイル保管システム３に記憶されていたり、ＥＲＳ管理ファイルに記録されているデータファイルがデータファイル保管システム３から削除されていたり、ファイル名にも作成日時などの時系列情報を含む場合にファイル名を変更することによって順序の入替えが行われていたり、等を確認し、処理対象のデータファイルの追加、削除又は順序の入替えの発生を判断する。なお、各データファイルの改竄検知は、連結ハッシュデータでの処理に加え、再度タイムスタンプ検証部４２ｈに検証要求をしてもよい。
【００９６】
処理対象のデータファイルの追加、削除又は順序の入替えが発生していない場合、ＥＲＳ管理ファイル検証部４２ｉは、処理対象のデータファイルの追加、削除又は順序の入替えが発生していないことを記憶部４３に記録し（ステップＳ１１６）、処理フローを終了する。
【００９７】
それに対し、処理対象のデータファイルの追加、削除又は順序の入替えが発生している場合、ＥＲＳ管理ファイル検証部４２ｉは、処理対象のデータファイルの追加、削除又は順序の入替えが発生していることを記憶部４３に記録し（ステップＳ１１７）、処理フローを終了する。
【００９８】
図６に示す処理フローによれば、複数の任意ファイルに対するＥＲＳ管理ファイルに付与されたタイムスタンプの有効性の検証を、ＥＲＳ管理ファイルの検証用ファイルとしてのＥＲＳファイルより行い、検証に成功するとＥＲＳ管理ファイルの真正性が担保される。すなわち、ＥＲＳ管理ファイルが有する複数の任意ファイル間の関係が担保される。これによって、一つのタイムスタンプを付与した複数の任意ファイル間の関係及びファイルの追加又は削除の有無を検証することができる。また、管理ファイルに付与されたタイムスタンプの有効性の検証処理中に任意ファイルのハッシュ値による改竄検知が含まれるため、個々の任意ファイルについて従来のＥＲＳ規格によるタイムスタンプの検証を行う必要がなくなる。このように、複数の任意ファイル間の関係を保持しながらファイルの追加、削除又は順序の入替を検知することができるので、電子署名システムのセキュリティ性を向上させることができる。
【００９９】
ここで、ＥＲＳ管理ファイルの別様式での実施の形態を説明する。別様式のＥＲＳ管理ファイルには、上述したＥＲＳ管理ファイルと同様に、タイムスタンプ付与対象となる複数の任意ファイル間の関係に従って所定の規則でファイル名が列挙されるとともに、前回のタイムスタンプ付与時に作成したＥＲＳ管理ファイルのファイル名及びＥＲＳ管理ファイルの内容のハッシュ値が記録されている。
【０１００】
別様式のＥＲＳ管理ファイルには、これらに加え、任意ファイルの一部分に対しての順序関係のチェックを含めた検証処理を効率よく行うために、さらに複数の任意ファイルのハッシュ値がそれぞれのファイル名と対応付けられて記録される。
【０１０１】
この別様式のＥＲＳ管理ファイルを用いる場合、ＥＲＳ管理ファイルのハッシュ値に任意ファイルのハッシュ値を連結させた連結ハッシュデータを用いなくてもよい。ＥＲＳ管理ファイルのハッシュ値に任意ファイルのハッシュ値を連結させた連結ハッシュデータを用いない場合、図５に示す処理フローでは、連結ハッシュデータを作成するステップＳ１２が省略され、ステップＳ１３において、タイムスタンプ及びファイル受取部４２ｂは、処理対象のデータファイルとＥＲＳ管理ファイルの各ハッシュ値を末端ノードに持つハッシュツリーを作成し、ステップＳ１５において、ＥＲＳファイル作成部４２ｄは、各ファイルのハッシュ値に対応した各データファイル及びＥＲＳ管理ファイルに対するＥＲＳファイルを、ハッシュツリー及びタイムスタンプから作成し、作成した全てのＥＲＳファイルを記憶部４３に格納する。
【０１０２】
また、この別様式のＥＲＳ管理ファイルのハッシュ値に任意ファイルのハッシュ値を連結させた連結ハッシュデータを用いない場合、図６に示す処理フローでは、連結ハッシュデータを作成するステップＳ１０９が省略され、ＥＲＳ管理ファイル検証部４２ｉは、取得した全てのＥＲＳ管理ファイルの各々についてＥＲＳ管理ファイルのタイムスタンプの有効性の検証処理（既存のＥＲＳ規格のタイムスタンプ検証処理）を、ＥＲＳ管理ファイル及び当該ＥＲＳ管理ファイルのＥＲＳファイルを指定してからタイムスタンプ検証部４２ｈに要求して実行する。検証に成功した場合は、ＥＲＳ管理ファイル中の任意ファイルのハッシュ値と、実際に取得した任意ファイルから計算して得られるハッシュ値とを比較し、一致することを確認し、任意ファイルの改竄検知を行う。
【０１０３】
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置としての電子署名サーバを有する電子署名システムを社内システムに適用する場合について説明したが、社内システム以外のシステムに対しても、本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置としての電子署名サーバを有する電子署名システムを適用することができる。また、任意ファイルとしてデータファイル以外のファイルを用いることもできる。
【０１０４】
また、上記実施の形態において、ＥＲＳ規格に対応したタイムスタンプ付与装置及びタイムスタンプ検証装置を用いる場合について説明したが、ＥＲＳ規格以外の規格又は標準技術に対応したタイムスタンプ付与装置及びタイムスタンプ検証装置を用いることができる。
【０１０５】
ＥＲＳ規格以外の規格又は標準技術に対応したタイムスタンプ付与装置及びタイムスタンプ検証装置を用いる場合、例えば、電子署名システムのデータファイル保管システム３に記憶されるデータの形式の他の例を表す図７に示すように、タイムスタンプＡが付与された任意ファイル１，２，３及び管理ファイルＡに対して、検証用ファイル１，２，３，Ａが、タイムスタンプＡから独立した形でそれぞれ作成されてもよい。
【０１０６】
同様に、図７において、タイムスタンプＢが付与された任意ファイル４，５及び管理ファイルＢに対して、検証用ファイル４，５、Ｂが、タイムスタンプＢから独立した形でそれぞれ作成されてもよい。
【０１０７】
すなわち、任意ファイル１，２，３及び管理ファイルＡと、検証用ファイル１，２，３Ａと、タイムスタンプＡとを対応付けてデータファイル保管システム３及び記憶部４３に記憶させ、任意ファイル４，５及び管理ファイルＢと、検証用ファイル４，５，Ｂと、タイムスタンプＢとを対応付けてデータファイル保管システム３及び記憶部４３に記憶させることができる。
【０１０８】
また、タイムスタンプ処理を行ったシステムを明確にして情報の信頼性を向上させるために、データファイル及び管理ファイルのハッシュツリーを作成する前に各ファイルに電子署名システムの秘密鍵で電子署名を付与することもでき、各ファイルの電子署名の検証を、タイムスタンプ検証処理と併せて行うこともできる。また、データファイルについては、データファイル作成者による電子署名が付与されていてもよい。
【０１０９】
また、上記実施の形態において、タイムスタンプ付与対象又はタイムスタンプ検証対象となる任意ファイルを指定するためにスケジューラ部４２ａを用いる場合について説明したが、ユーザ端末１からのユーザ入力に応じてタイムスタンプ付与対象又はタイムスタンプ検証対象となる任意ファイルを指定するユーザ入力受信部を制御部４２に設けることもできる。この場合、ファイル送出部４２ｇは、タイムスタンプ付与装置によって生成されるＥＲＳ管理ファイル及び各ファイルのＥＲＳファイル（検証用ファイル）や、タイムスタンプ検証装置によって出力される処理対象のデータファイルの追加、削除又は順序の入替えが発生しているか否かの情報を、通信Ｉ／Ｆ部４１を通じてユーザ端末１に送信することもできる。
【０１１０】
また、タイムスタンプ付与対象又はタイムスタンプ検証対象となる任意ファイルをファイルの生成規則に基づいて指定するファイル指定部を、制御部４２に設けることもできる。また、タイムスタンプ付与対象として指定された複数の任意ファイル間の関係を指定するためにスケジューラ部４２ａを用いる場合について説明したが、上述した任意ファイルの指定と合わせてファイル間の関係をユーザ端末１からのユーザ入力に応じて指定し又はファイルの生成規則から指定することができる。さらに、検証対象の管理ファイルを直接指定することも、ある任意ファイルを指定し、その任意ファイルから関係する管理ファイルを特定して指定することもできる。
【符号の説明】
【０１１１】
１    ユーザ端末
２    業務システム
３    データファイル保管システム
４    電子署名サーバ
５，ａ    タイムスタンプ局
６    通信ネットワーク
１１，２１，３１，４１，５１    通信インタフェース（Ｉ／Ｆ）部
１２，２２，３２，４２，５２    制御部
１３    入力部
１４    表示部
１５，２３，３３，４３，５３    記憶部
２２ａ    業務処理部
２２ｂ    データファイル作成部
４２ａ    スケジューラ部
４２ｂ    タイムスタンプ及びファイル受取部
４２ｃ    ＥＲＳ管理ファイル作成部
４２ｄ    ＥＲＳファイル作成部
４２ｅ    電子署名付与部
４２ｆ    電子署名検証部
４２ｇ    ファイル送出部
４２ｈ    タイムスタンプ検証部
４２ｉ    ＥＲＳ管理ファイル検証部
ｔ，ｔ’    タイムスタンプ
【図１】
0005881334.tif 000002
【図２】
0005881334.tif 000003
【図３】
0005881334.tif 000004
【図４】
0005881334.tif 000005
【図５】
0005881334.tif 000006
【図６】
0005881334.tif 000007
【図７】
0005881334.tif 000008