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