本発明によるタイムスタンプ付与装置の実施の形態を、図面を参照しながら説明する。
本発明によるタイムスタンプ付与装置は、同一の最新のタイムスタンプが付与された複数のデータファイルを含む複数のデータファイルを指定し、指定した複数のデータファイルに対する一つのタイムスタンプの発行要求を、同一の最新のタイムスタンプが付与されたデータファイルの数より少ない数の同一の最新のタイムスタンプを用いることによって行い、タイムスタンプ局が発行した当該タイムスタンプを新たなタイムスタンプとして取得し、指定したデータファイルに対応する検証用ファイルを、新たなタイムスタンプを用いて更新する装置である。
図1は、本発明によるタイムスタンプ付与装置が用いられる電子署名システムの構成図である。図1に示す電子署名システムは、例えば、社内システムに適用され、ユーザ端末1と、業務システム2と、データファイル保管システム3と、電子署名サーバ4と、タイムスタンプ局5と、通信ネットワーク6と、を有する。
図1に示すシステムでは、ユーザ端末1は、通信ネットワーク6を介して業務システム2にアクセスしてデータファイルを作成し、作成したデータファイルをデータファイル保管システム3に保管する。また、電子署名サーバ4は、後に説明するように、予め設定されたスケジュールに従って、データファイル保管システム3に保管されたデータファイルにタイムスタンプを付与し、付与されたタイムスタンプの検証を行い、タイムスタンプが付与されたデータファイルへの新たなタイムスタンプの付与すなわちデータファイルに付与されたタイムスタンプの更新を行う。
ユーザ端末1は、業務システム2にアクセスしてデータファイルの作成のような各種業務処理を行うための操作等を実行する環境をユーザに提供する。このために、ユーザ端末1は、例えば、パーソナルコンピュータ(PC)によって構成される。また、ユーザ端末1は、通信ネットワーク6を通じて業務システム2、データファイル保管システム3及び電子署名サーバ4との通信を行う通信I/F部11と、ユーザ端末1の各種制御を行う制御部12と、各種業務を実施するための入力を行う入力部13と、各種業務処理等を実施するための画面を表示する表示部14と、制御部12で使用する各種制御情報等を記憶する記憶部15と、を有する。
通信I/F部11は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部12は、CPU,ROM,RAM等から構成され、ユーザ端末1の制御全般についてプログラムに従って処理を行う。入力部13は、マウス、キーボード等によって構成される。表示部14は、LCD等によって構成される。記憶部15は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
業務システム2は、ユーザ端末1での操作に応じて各種業務処理を実行し、処理結果に基づいてデータファイルを作成する。このために、業務システム2は、ユーザ端末1のサーバシステムとして構成され、通信ネットワーク6を通じてユーザ端末1、データファイル保管システム3及び電子署名サーバ4との通信を行う通信I/F部21と、業務システム2の各種制御を行う制御部22と、制御部22で使用する各種制御情報等を記憶する記憶部23と、を有する。
通信I/F部21は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部22は、CPU,ROM,RAM等から構成され、業務システム2の制御全般についてプログラムに従って処理を行う。このために、制御部22は、ユーザ端末1での操作に応じた業務処理を実行する業務処理部22aと、業務処理部22aの処理結果に基づいてデータファイルを作成するデータファイル作成部22bと、を有する。記憶部23は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
データファイル保管システム3は、ユーザ端末1での操作に応じて業務システム2で作成されたデータファイルと、電子署名サーバ4で作成された後に説明するERSファイル及びERS管理ファイルを保管する。このために、データファイル保管システム3は、通信ネットワーク6を通じてユーザ端末1、業務システム2及び電子署名サーバ4との通信を行う通信I/F部31と、データファイル保管システム3の各種制御を行う制御部32と、上述したデータファイル、ERSファイル及びERS管理ファイルの他に、制御部32で使用する各種制御情報等を記憶する記憶部33と、を有する。
通信I/F部31は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部32は、CPU,ROM,RAM等から構成され、データファイル保管システム3の制御全般についてプログラムに従って処理を行う。記憶部33は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
電子署名サーバ4は、複数のファイルに対して一つのタイムスタンプの発行要求をタイムスタンプ局5に行い、タイムスタンプ局5が発行したタイムスタンプを複数のファイルに付与し又は複数のファイルに付与したタイムスタンプを更新する本発明におけるタイムスタンプ付与装置として機能する。また、電子署名サーバ4は、複数のファイルに対して付与された一つのタイムスタンプの有効性をファイル毎に検証するタイムスタンプ検証装置としても機能する。このために、電子署名サーバ4は、通信ネットワーク6を通じてユーザ端末1、業務システム2、データファイル保管システム3及びタイムスタンプ局5との通信を行う通信I/F部41と、電子署名サーバ4の各種制御を行う制御部42と、上述したデータファイル、ERSファイル及びERS管理ファイルの他に、制御部42で使用する各種制御情報等を記憶する記憶部43と、を有する。なお、本実施の形態では、電子署名サーバ4はERS規格に対応する。
通信I/F部41は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部42は、CPU,ROM,RAM等から構成され、電子署名サーバ4の制御全般についてプログラムに従って処理を行う。このために、制御部42は、本発明のファイル指定部として動作するスケジューラ部42aと、タイムスタンプ及びファイル受取部42bと、ERS管理ファイル作成部42cと、ERSファイル作成部42dと、電子署名付与部42eと、電子署名検証部42fと、ファイル送出部42gと、タイムスタンプ検証部42hと、ERS管理ファイル検証部42iと、を有する。
スケジューラ部42aは、予め設定されたスケジュールの設定時刻に従い、データファイル保管システム3の記憶部33に記憶されている複数のデータファイルを取得し、一つのタイムスタンプを付与するトリガを与える。具体的には、スケジューラ部42aは、タイムスタンプの取得をタイムスタンプ及びファイル受取部42bに要求する。なお、本実施の形態では、タイムスタンプを初めてデータファイルに付与するときだけでなく、データファイルに付与されたタイムスタンプを更新するときにもタイムスタンプを取得する。
タイムスタンプ及びファイル受取部42bは、スケジューラ部42aからの要求に応じてERS管理ファイル作成部42c及びERSファイル作成部42dと連携することによって、通信I/F部41を通じてタイムスタンプを取得する。すなわち、タイムスタンプ及びファイル受取部42bは、通信I/F部41を介してタイムスタンプの発行要求をタイムスタンプ局5に行い、タイムスタンプ局5が発行したタイムスタンプを取得する。この一連の処理は、本発明のタイムスタンプ取得部の処理に相当する。
また、タイムスタンプ及びファイル受取部42bは、スケジューラ部42aによって指定されるタイムスタンプ付与対象となる複数のデータファイルとしての複数のデータファイルを、通信I/F部41を通じて記憶部33から取得する。したがって、通信I/F部41並びにタイムスタンプ及びファイル受取部42bは、記憶部33に記憶された複数のデータファイルのうちのタイムスタンプ付与対象となる複数のデータファイルや対応するERSファイルを受け取り、一つのタイムスタンプを付与するために当該複数のデータファイルを記憶部43に一時的に格納する。
さらに、タイムスタンプ及びファイル受取部42bは、記憶部43に記憶された複数のデータファイルに含まれる、タイムスタンプ付与の際にタイムスタンプ付与対象としてスケジューラ部42aによって指定された複数のデータファイルを、自身のハッシュ値又は自身に付与された最新のタイムスタンプのハッシュ値がハッシュツリーの末端ノードとなるハッシュツリー対象と、自身に付与された最新のタイムスタンプがハッシュツリー対象である他のデータファイルの最新のタイムスタンプと同一のデータファイルであるコピー対象と、に分類する。なお、コピー対象のデータファイルの最新のタイムスタンプのハッシュ値はハッシュツリーの末端ノードとはせず、最新のタイムスタンプが同一でハッシュツリー対象である他のデータファイルに対して作成されたタイムスタンプ及びハッシュツリー情報の両方又は当該タイムスタンプのみを用いてコピー対象のデータファイルの最新のタイムスタンプの更新を行う。
ここで、タイムスタンプ更新対象としてスケジューラ部42aによって指定された複数のデータファイルが同一の最新のタイムスタンプが付与された複数のデータファイルを含むとき、ハッシュツリー対象のデータファイルの最新のタイムスタンプのハッシュ値のみを用いてタイムスタンプを取得しハッシュツリー情報を作成し、これらのタイムスタンプ及びハッシュツリー情報を、コピー対象のデータファイルに対応するERSファイルに追加したとしても、同一の最新のタイムスタンプから得られるハッシュ値は同じため、タイムスタンプ検証が可能である。これにより、タイムスタンプ更新対象のデータファイルに対応するERSファイル中に同一の最新のタイムスタンプが含まれる場合、同一の最新のタイムスタンプが付与されたデータファイルの数より少ない数(好適には一つ)の同一の最新のタイムスタンプを用いて一つのタイムスタンプを取得することができる。また、タイムスタンプ更新対象のデータファイルに対応するERSファイル中に含まれる最新のタイムスタンプが全て同一である場合、ハッシュツリーの末端ノードを一つにすることができ、ハッシュツリー情報を当該ERSファイルに追加する必要がなく、したがって、ハッシュツリー情報を作成する必要がなくなる。
ERS管理ファイル作成部42cは、タイムスタンプ及びファイル受取部42bからの要求に応じて、タイムスタンプ付与対象となる複数のデータファイル間の関係の一種であるファイル名一覧(同一のタイムスタンプが付与される複数のデータファイル名を全て列挙したもの)を少なくとも含むERS管理ファイルを作成する。なお、ERS管理ファイルは単なる一覧ではなく、その他の関係を含んでもよい。
複数のデータファイル間の関係は、単なる一覧以外にも、複数のデータファイルが記憶部33へ登録された時系列順を示す情報、複数のデータファイル間に上位下位の階層関係がある場合の当該階層関係を示す情報、複数のデータファイルが種々のグループに区分けされている場合の当該グループ構成等、同一のタイムスタンプが付与されるデータファイルが特定できるものであればよい。
ERSファイル作成部42dは、タイムスタンプ付与対象となる複数のデータファイル及びERS管理ファイルに対して、タイムスタンプの有効性を検証可能な検証用ファイルとしてのERSファイルをそれぞれ作成する。また、ERSファイル作成部42dは、後に説明するように、ERSファイルを、新たなタイムスタンプを用いて更新する。
電子署名付与部42eは、電子署名の付与の要求に応じて、処理対象の各種ファイルに電子署名を付与する。電子署名検証部42fは、電子署名の検証の要求に応じて、処理対象の各種ファイルに付与された電子署名を検証する。
ファイル送出部42gは、タイムスタンプが付与された複数のデータファイル及びERS管理ファイルを記憶部33に格納するために、複数のデータファイル、ERS管理ファイル、それぞれのERSファイルを通信I/F部41を通じてデータファイル保管システム3に送出する。
タイムスタンプ検証部42hは、タイムスタンプ及びファイル受取部42bやERS管理ファイル検証部42iからのタイムスタンプの検証の要求に応じて、処理対象のファイルとそのファイルのERSファイルを用いてタイムスタンプの検証を行う。ERS管理ファイル検証部42iは、タイムスタンプ及びファイル受取部42bからのタイムスタンプの検証の要求に応じて、ERS管理ファイル内に記録されたデータファイルの検証をさせる。そのとき、ERS管理ファイル検証部42iは、タイムスタンプ検証部42hに対して、まず、ERS管理ファイル及びERS管理ファイルのERSファイルを用いたタイムスタンプの検証を要求する。ERS管理ファイル自体のタイムスタンプの検証に成功した上で、当該ERS管理ファイル内に記録されたデータファイルについて、タイムスタンプ検証部42hに対して、データファイル及びデータファイルのERSファイルを用いたタイムスタンプの検証を要求する。
記憶部43は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
タイムスタンプ局5は、電子署名サーバ4からのタイムスタンプ生成要求に応じて、タイムスタンプ局5の秘密鍵を使用して電子署名を付与したタイムスタンプを生成し、電子署名サーバ4に返信する。このために、タイムスタンプ局5は、通信ネットワーク6を通じて電子署名サーバ4との通信を行う通信I/F部51と、タイムスタンプ局5の各種制御を行う制御部52と、制御部52で使用する各種制御情報等を記憶する記憶部53と、を有する。
通信I/F部51は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部52は、CPU,ROM,RAM等から構成され、タイムスタンプ局5の制御全般についてプログラムに従って処理を行う。記憶部53は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
通信ネットワーク6は、ユーザ端末1、業務システム2、データファイル保管システム3、電子署名サーバ4及びタイムスタンプ局5に接続される。このために、通信ネットワーク6は、専用回線、インターネット、携帯電話回線、一般公衆回線等の遠隔地間又は屋内の離れた場所間でデータの送受信が可能となる通信回線によって構成される。
図2は、図1の電子署名サーバで用いられるデータファイルとERS管理ファイルとERSファイルとの関係を説明する概念図である。電子署名サーバ4を用いて複数のデータファイル1,2,3に一つのタイムスタンプT1を付与する場合の例について述べる。まず、データファイル1、データファイル2及びデータファイル3のファイル名一覧を記録したERS管理ファイルが作成される。次に、ハッシュ関数Hを用いて、各データファイル1,2,3及びERS管理ファイルのハッシュ値であるh1,h2,h3,hRを求める。次に、データファイル1のハッシュ値h1及びデータファイル2のハッシュ値h2をまとめた上でハッシュ関数Hを用いて、ハッシュ値h12を求める。次に、データファイル3のハッシュ値h3及びハッシュ値h12をまとめた上でハッシュ関数Hを用いて、ハッシュ値h123を求める。更に、ERS管理ファイルのハッシュ値hR及びハッシュ値h123をまとめた上でハッシュ関数Hを用いて、ハッシュ値h123Rを求める。このハッシュ値h123Rが、ハッシュ値h1,h2,h3,hRをまとめたハッシュツリーの頂点でルートハッシュとなる。
その後、ハッシュ値h123Rは、タイムスタンプ局5に対応するタイムスタンプ局(TSA)tへ送信され、タイムスタンプ局tにてタイムスタンプ局tの秘密鍵を使用して電子署名を施されハッシュ値h123Rを含むタイムスタンプT1を生成する。
電子署名サーバ4は、タイムスタンプT1をデータファイル1,2,3及びERS管理ファイルにそれぞれ付与するために、タイムスタンプT1をコピーし、タイムスタンプT1及び各ファイルのハッシュ値h1,h2,h3,hRからルートハッシュh123Rを導出するのに必要なハッシュツリー情報を有する各ファイル用のERSファイルを作成する。
図2において、電子署名サーバ4は、タイムスタンプT1及びデータファイル1のハッシュツリー情報[[h1,h2],[h3],[hR]]を有するデータファイル1用のERSファイルと、タイムスタンプT1及びデータファイル2のハッシュツリー情報[[h1,h2],[h3],[hR]]を有するデータファイル2用のERSファイルと、タイムスタンプT1及びデータファイル3のハッシュツリー情報[[h12,h3],[hR]]を有するデータファイル3用のERSファイルと、タイムスタンプT1及びERS管理ファイルのハッシュツリー情報[[h123,hR]]を有するERS管理ファイル用のERSファイルと、を作成する。
なお、図2におけるハッシュ値は、h1<h2,h12<h3,h123<hRの大小関係にあり、ハッシュツリー情報は、リストの入れ子構造で保持し、自身のハッシュ値は先頭のリストに含め、各リストの要素のハッシュ値は、昇順にソートされている。また、図中ではリストを[]を用いて表している。
このような各データファイル及びERS管理ファイル用のERSファイルを作成することによって、ERS規格に対応したタイムスタンプ検証装置は、複数のデータファイル1,2,3及びERS管理ファイルに付与されたタイムスタンプT1の有効性を、対応するERSファイルを用いてデータファイルかERS管理ファイルかを区別することなくそれぞれ検証することができる。
図3は、図1の電子署名システムのデータファイル保管システム3の記憶部33及び電子署名サーバ4の記憶部43に記憶されるデータの例を示す図である。図3では、データファイルにタイムスタンプが付与されている場合、データファイルがタイムスタンプを含む検証用ファイルと対応づけられて記憶されている。図3(a)では、同一のタイムスタンプ(タイムスタンプA)が複数のデータファイルであるデータファイル1,2,3及びERS管理ファイルに付与された状態の例を示している。データファイル1,2,3及びERS管理ファイルの各データファイルが、同一のタイムスタンプ(タイムスタンプA)を持つ複数の検証用ファイルである各データファイル用のERSファイルと、それぞれ対応付けた形式で記憶されている。
図3(b)では、図3(a)対して更に、タイムスタンプAとは互いに異なったタイムスタンプであるタイムスタンプBが付与された複数のデータファイルが加わった状態の例を示している。データファイル4及びデータファイル5が、同一のタイムスタンプ(タイムスタンプB)を持つ検証用ファイル(データファイル4用のERSファイル、データファイル5用のERSファイル)と、それぞれ対応付けた形式で記憶されている。図3(c)では、図3(b)に対して更に、タイムスタンプがまだ付与されていないデータファイル6,7,8が残っている状態の例を示している。このとき、各データファイルに対応付けられる検証用ファイルはまだ存在しない。
次に、図4を参照して、図1の電子署名サーバ4のタイムスタンプ付与処理フローについて説明する。なお、以下に説明する処理フローは、制御部42で実行されるプログラムによって制御され、処理対象(更新対象)となるデータファイル及びERS管理ファイル並びにこれらに対応するERSファイルは、記憶部43に格納されているものとする。
先ず、スケジューラ部42aは、タイムスタンプの取得をタイムスタンプ及びファイル受取部42bに要求する(ステップS1)。この際、スケジューラ部42aは、タイムスタンプ更新対象(処理対象)として、同一の最新のタイムスタンプが付与された複数のデータファイルを含む複数のデータファイルとしてデータファイル及びERS管理ファイルを指定するとともに、これらのデータファイル及びERS管理ファイルに対応するERSファイルを指定し、これらデータファイル、ERS管理ファイル及びERSファイルのリスト(処理対象リスト)を作成する。
また、スケジューラ部42aは、指定したデータファイルに対するERS管理ファイルがある場合にERS管理ファイルに記録されている他のデータファイルも処理対象とするか否かの指定及びタイムスタンプ処理時に新規のERS管理ファイルを作成するか否かの指定を行う。
次に、タイムスタンプ及びファイル受取部42bは、指定したERS管理ファイル内に記録されているが処理対象として指定しなかったデータファイル(ERS管理ファイル内の他のデータファイル)も処理対象とするか否か、すなわち、指定したデータファイルに対するERS管理ファイルがある場合にERS管理ファイルに記録されている他のデータファイルも処理対象とするとスケジューラ部42aによって指定されたか否か判断する(ステップS2)。ERS管理ファイル内の他のデータファイルも処理対象とする場合、タイムスタンプ及びファイル受取部42bは、スケジューラ部42aによって指定された各データファイルについて、当該データファイルのファイル名が記録され、かつ、ERSファイル内の最新のタイムスタンプが当該データファイルの最新のタイムスタンプと同一のERS管理ファイルを検索する。そのようなERS管理ファイルが存在し、かつ、処理対象リストに載っていない場合、スケジューラ部42aは、当該ERS管理ファイルを処理対象リストに追加する。
次に、タイムスタンプ及びファイル受取部42bは、処理対象の全てのERS管理ファイルを処理済みであるか否か判断する(ステップS4)。処理対象の全てのERS管理ファイルを処理済でない場合、ERS管理ファイル検証部42iは、ERS管理ファイル及びERS管理ファイルに記録されているデータファイルのタイムスタンプの有効性をタイムスタンプ検証部42hを用いて検証し、タイムスタンプ及びファイル受取部42bは、ERS管理ファイル及びデータファイルをハッシュツリー対象又はコピー対象に分類する(ステップS5)。
具体的には、ERS管理ファイルのタイムスタンプの検証の際に、タイムスタンプ検証部42hは、処理対象となったERS管理ファイルに対して検証処理(既存のERS規格のタイムスタンプ検証処理)を行う。検証処理に失敗した場合、タイムスタンプ検証部42hは、記憶部43に検証失敗を記録する。そして、処理対象となった他のERS管理ファイルがある場合には当該ERS管理ファイルに対する検証処理を行う。検証処理に成功した場合、タイムスタンプ検証部42hは、タイムスタンプの更新の後も改竄検知を行えるようにするために、検証処理に使用したCRL(certification revocation list)等の検証情報のハッシュ値又は検証情報それ自身を、ERS管理ファイルのERSファイル中の最新のタイムスタンプに追加する。
また、データファイルのタイムスタンプの検証の際に、ERS管理ファイル検証部42iは、処理対象となり検証処理に成功したERS管理ファイルに記録され、かつ、ERSファイル中の最新のタイムスタンプが当該ERS管理ファイルのERSファイル中の最新のタイムスタンプと同一のデータファイルについて、検証処理(既存のERS規格のタイムスタンプ検証処理)をタイムスタンプ検証部42hに依頼する。検証処理に失敗した場合、タイムスタンプ検証部42hは、記憶部43に検証失敗を記録し、タイムスタンプ及びファイル受取部42bは、当該データファイルが処理対象リストに存在する場合には当該データファイルを処理リストから削除する。検証処理に成功した場合、タイムスタンプ検証部42hは、タイムスタンプの更新の後も改竄検知を行えるようにするために、検証処理に使用したCRL等の検証情報のハッシュ値又は検証情報それ自身を、データファイルのERSファイル中の最新のタイムスタンプに追加する。
さらに、ERS管理ファイルに記録され検証処理に成功したデータファイルが一つ以上存在する場合、タイムスタンプ及びファイル受取部42bは、ERS管理ファイルをハッシュツリー対象とし、そのファイル名を参照先として記憶部43に記憶し、検証処理に成功したデータファイルをコピー対象とし、そのファイル名を記憶部43に記録する。
次に、タイムスタンプ及びファイル受取部42bは、処理対象の全てのデータファイルを処理済みであるか否か判断する(ステップS6)。処理対象の全てのデータファイルを処理済でない場合、タイムスタンプ検証部42hは、データファイルのタイムスタンプの有効性を検証し、タイムスタンプ及びファイル受取部42bは、データファイルをハッシュツリー対象又はコピー対象に分類する(ステップS7)。
具体的には、データファイルのタイムスタンプの検証の際に、タイムスタンプ検証部42hは、処理済でない処理対象のデータファイルについて、対応するERSファイルが存在する(データファイルに1回以上タイムスタンプが付与されている)場合には当該データファイルの検証処理(既存のERS規格のタイムスタンプ検証処理)を行う。検証処理に失敗した場合、タイムスタンプ検証部42hは、記憶部43に検証失敗を記録し、タイムスタンプ及びファイル受取部42bは、当該データファイルを処理リストから削除する。そして、処理済でない他のデータファイルがある場合には当該データファイルに対する検証処理を行う。検証処理に成功した場合、タイムスタンプ検証部42hは、タイムスタンプの更新の後も改竄検知を行えるようにするために、検証処理に使用したCRL等の検証情報のハッシュ値又は検証情報それ自身を、データファイルのERSファイル中の最新のタイムスタンプに追加する。
また、タイムスタンプ及びファイル受取部42bは、処理済でないデータファイルの中で対応するERSファイルが存在するものについて、既にハッシュツリー対象となったERS管理ファイル又はデータファイルの中に、ERSファイル中の最新のタイムスタンプが当該データファイルのERSファイル中の最新のタイムスタンプと同一であるものが存在するか否か判断する。同一であるものが存在する場合、タイムスタンプ及びファイル受取部42bは、検証処理に成功したデータファイルをコピー対象とし、そのファイル名を記憶部43に記録し、ハッシュツリー対象であるERSファイルのファイル名を参照先として記憶部43に記憶する。同一であるものが存在しない場合、タイムスタンプ及びファイル受取部42bは、検証処理に成功したデータファイルをハッシュツリー対象とし、そのファイル名を参照先として記憶部43に記憶する。なお、処理済でない処理対象のデータファイルについて、対応するERSファイルが存在しなる(データファイルに1回もタイムスタンプが付与されていない)場合には、タイムスタンプ及びファイル受取部42bは、当該データファイルをハッシュツリー対象とし、そのファイル名を記憶部43に記憶する。
次に、タイムスタンプ及びファイル受取部42bは、新規のERS管理ファイルを作成するか否か、すなわち、タイムスタンプ処理時に新規のERS管理ファイルを作成するとスケジューラ部42aによって指定されたか否か判断する(ステップS8)。新規のERS管理ファイルを作成する場合、ERS管理ファイル作成部42cは、ハッシュツリー対象又はコピー対象となったデータファイルに関するERS管理ファイルを作成し、作成したERS管理ファイルをハッシュツリー対象とする(ステップS9)。ただし、ハッシュツリー対象のファイルが一つであり、それがERS管理ファイルである場合、ERS管理ファイル作成部42cは、新規のERS管理ファイルを作成しない。また、既存のERS管理ファイルは、新規のERS管理ファイルに記録しない。
次に、タイムスタンプ及びファイル受取部42bは、ハッシュツリー対象のERS管理ファイル又はデータファイルからハッシュツリーを作成する(ステップS10)。ハッシュツリー対象のERS管理ファイル又はデータファイルに対応するERSファイルが存在する場合、当該ERSファイル中の最新のタイムスタンプのハッシュ値がハッシュツリーの末端ノードとなる。それに対し、ハッシュツリー対象のERS管理ファイル又はデータファイルに対応するERSファイルが存在しない場合、ハッシュツリー対象のERS管理ファイル又はデータファイルそれ自身のハッシュ値が末端ノードとなる。
次に、タイムスタンプ及びファイル受取部42bは、ハッシュツリーのルートハッシュに対するタイムスタンプをタイムスタンプ局5に要求し、タイムスタンプ局5が発行した当該タイムスタンプを新たなタイムスタンプとして取得する(ステップS11)。
次に、ERSファイル作成部42dは、ハッシュツリー対象のERS管理ファイル又はデータファイルが存在し、当該ERS管理ファイル又はデータファイルに対応するERSファイルが存在する場合には、当該ERSファイルを取得した新たなタイムスタンプとハッシュツリー情報を追加して更新し、ハッシュツリー対象のERS管理ファイル又はデータファイルが存在し、当該ERS管理ファイル又はデータファイルに対応するERSファイルが存在しない場合には、新規のERSファイルを作成する(ステップS12)。
例えば、ステップS9でERS管理ファイルを作成した場合、ERSファイル作成部42dは、当該ERS管理ファイルに対応するERSファイルを作成する。また、タイムスタンプ処理時に新規のERS管理ファイルを作成するとスケジューラ部42aによって指定され、ハッシュツリー対象のファイルが一つであり、それが当該ERS管理ファイルである場合、ERSファイル作成部42dは、当該ERS管理ファイルに対応するERSファイルを更新する。
なお、タイムスタンプ処理時に新規のERS管理ファイルを作成しないとスケジューラ部42aによって指定された場合又は新規のERS管理ファイルが作成された場合、ERSファイル作成部42dは、既存のERS管理ファイルのERSファイルを更新しない。また、ハッシュツリー対象のERS管理ファイル又はデータファイルが一つの場合、ERSファイル作成部42dは、既存のERS規格に対応したタイムスタンプ付与装置で行われる処理と同様に、当該ERS管理ファイル又はデータファイルに対応するERSファイル中にハッシュツリー情報を追加しない。
次に、ERSファイル作成部42dは、コピー対象のデータファイルに対応するERSファイルを、参照先として記憶部43に記憶したハッシュツリー対象のERS管理ファイル又はデータファイルに対応するERSファイルに対してステップS12で行った更新と同様の手順で更新する(ステップS13)。なお、ステップS12でハッシュツリー対象のERS管理ファイルに対応するERSファイルを更新しない場合でも、ステップS13においては、コピー対象のデータファイルに対応するERSファイルを、ステップS12でハッシュツリー対象のERS管理ファイルに対応するERSファイルの更新(実際には更新は行われていないが、行われたであろう更新)と同様の手順で更新する。
ここで、図3、図5及び図6を参照しつつ、本発明によるタイムスタンプ付与装置で行われるタイムスタンプの更新の例を説明する。まず、図3(a)のように記憶部に同一のタイムスタンプが付与されたデータファイルが記憶されている場合のタイムスタンプの更新の例を説明する。
図5は、本発明によるタイムスタンプ付与装置で行われるタイムスタンプの更新の第1例を説明する概念図である。ここでは、図2で説明したタイムスタンプT1を更新する例を述べる。図5において、タイムスタンプ更新直前のデータファイル1用のERSファイル、データファイル2用のERSファイル、データファイル3用のERSファイル及びERS管理ファイル用のERSファイルは、図2に示すデータファイル1用のERSファイル、データファイル2用のERSファイル、データファイル3用のERSファイル及びERS管理ファイル用のERSファイルと同一構成を有する。
図5で説明するタイムスタンプの更新において、データファイル1、データファイル2及びデータファイル3のERS管理ファイルが処理対象リストに記録され、指定したデータファイルに対するERS管理ファイルがある場合にERS管理ファイルに記録されている他のデータファイルも処理対象とする指定及びタイムスタンプ処理時に新規のERS管理ファイルを作成する指定がスケジューラ部42aによって行われている。
電子署名サーバ4を用いてタイムスタンプを更新するために新たな同一のタイムスタンプとしてのタイムスタンプT2を付与する場合、先ず、タイムスタンプ検証部42hは、ERS管理ファイルのタイムスタンプ(タイムスタンプT1)の有効性を検証し、検証に成功すると、ERS管理ファイル用のERSファイルに含まれるタイムスタンプT1中に検証情報を追加し、タイムスタンプ及びファイル受取部42bは、ERS管理ファイルをハッシュツリー対象とし、そのファイル名を参照先として記憶部43に記憶する(ステップS5の処理に相当)。
その後、タイムスタンプ検証部42hは、データファイル1,2,3のタイムスタンプ(タイムスタンプT1)がERS管理ファイルの最新のタイムスタンプと同一であることとタイムスタンプの有効性を検証し、検証に成功すると、データファイル1用のERSファイル、データファイル2用のERSファイル及びデータファイル3用のERSファイルに含まれるタイムスタンプT1中に検証情報をそれぞれ追加し、タイムスタンプ及びファイル受取部42bは、データファイル1、データファイル2及びデータファイル3をコピー対象とし、そのファイル名を記憶部43に記憶する(ステップS5の処理に相当)。
その後、タイムスタンプ及びファイル受取部42bは、タイムスタンプT2の生成要素である一つのハッシュ値(ハッシュツリーの頂点となるルートハッシュ)hXを、ハッシュ関数Hを用いて計算されたタイムスタンプT1のハッシュ値によって生成する(ステップS10の処理に相当)。
その後、電子署名サーバ4は、通信I/F部41及び通信ネットワーク6を通じてタイムスタンプ局(TSA)tにハッシュ値hXを送信し、タイムスタンプ局tにタイムスタンプT2の生成を要求する。タイムスタンプ局tがハッシュ値hXを受信すると、タイムスタンプ局tは、タイムスタンプ局tの秘密鍵を使用して電子署名を付与したタイムスタンプT2を生成し、電子署名サーバ4に返信する。
電子署名サーバ4がタイムスタンプT2を受け取る(ステップS11の処理に相当)と、電子署名サーバ4は、タイムスタンプT2をデータファイル1、データファイル2、データファイル3及びERS管理ファイルにそれぞれ付与するために、タイムスタンプT2をコピーする。その後、ERSファイル作成部42dは、タイムスタンプT2をERS管理ファイル用のERSファイルに追加して、当該ERSファイルを更新し(ステップS12の処理に相当)、タイムスタンプT2をデータファイル1用のERSファイル、データファイル2用のERSファイル及びデータファイル3用のERSファイルに追加して、これらのERSファイルを更新する(ステップS13の処理に相当)。なお、図5において、ハッシュツリー対象は1つであるから、ハッシュツリー情報は生成されない。
したがって、図5に示す概念図では、四つのファイルのタイムスタンプを更新するために、同一の最新のタイムスタンプに対応する四つのタイムスタンプT1のうちの一つのタイムスタンプT1(ERS管理ファイル用のERSファイルに含まれるタイムスタンプT1)がハッシュツリー対象として用いられ、ハッシュツリーの末端ノードが一つとなる。
次に、図3(b)のように記憶部に互いに異なったタイムスタンプが付与されたデータファイルが記憶されている場合のタイムスタンプの更新の例を説明する。図5において、図示されていないが、タイムスタンプT1とは互いに異なるタイムスタンプ(例えばタイムスタンプTa)が付与された複数のデータファイル(例えばデータファイルa、データファイルbとする)の各検証用ファイル(データファイルa用のERSファイル、データファイルb用のERSファイル)が更に存在するとして、タイムスタンプT1とタイムスタンプTaを更新する場合を説明する。このとき、タイムスタンプT1及びタイムスタンプTaのハッシュ値をそれぞれ算出し、タイムスタンプT1のハッシュ値とタイムスタンプTaのハッシュ値を末端ノードにして構成したハッシュツリーのルートのハッシュ値に対して、新たなタイムスタンプ(例えばタイムスタンプTb)を取得する。データファイル1用のERSファイル、データファイル2用のERSファイル、データファイル3用のERSファイル、データファイルa用のERSファイル、データファイルb用のERSファイルそれぞれにタイムスタンプTbを追加し、各検証用ファイルを新たなタイムスタンプTbで更新する。
次に、図3(c)のように記憶部にタイムスタンプが付与されたデータファイルとタイムスタンプが付与されていないデータファイルが記憶されている場合のタイムスタンプの更新及びタイムスタンプの付与の例を説明する。図6は、本発明によるタイムスタンプ付与装置で行われるタイムスタンプの更新の第2例を説明する概念図である。ここでは、図5で説明したタイムスタンプT2の更新と、データファイル5,6,7へのタイムスタンプ付与を行う例を述べる。図6において、タイムスタンプ更新直前のデータファイル1用のERSファイル、データファイル2用のERSファイル、データファイル3用のERSファイル及びERS管理ファイル1用のERSファイルは、図5に示すタイムスタンプ更新直後のデータファイル1用のERSファイル、データファイル2用のERSファイル、データファイル3用のERSファイル及びERS管理ファイル用のERSファイルと同一構成を有する。また、データファイル5、データファイル6及びデータファイル7は、自身に対応するERSファイルを有さず、ERS管理ファイル2は、データファイル1、データファイル2、データファイル3、データファイル5、データファイル6及びデータファイル7の関係を後述するタイムスタンプT3が付与されることになるデータファイルの一覧として記録している。ここで、図3(c)と対比すると、図3(c)のタイムスタンプAがタイムスタンプT2に相当する。また、図3(c)のタイムスタンプAとは異なるタイムスタンプBが付与されたデータファイル4,5のタイムスタンプBの更新も同時に行うとき、ERS管理ファイルがなくステップS7においてデータファイルのタイムスタンプの有効性の検証が行われるが、タイムスタンプAの更新と同様の処理になるため説明を省いている。
図6で説明するタイムスタンプの更新及び付与において、データファイル5、データファイル6、データファイル7及びERS管理ファイル1が処理対象リストに記録され、指定したデータファイルに対するERS管理ファイルがある場合にERS管理ファイルに記録されている他のデータファイルも処理対象とする指定及びタイムスタンプ処理時に新規のERS管理ファイルを作成する指定がスケジューラ部42aによって行われている。
電子署名サーバ4を用いてタイムスタンプを更新するために新たな同一のタイムスタンプとしてのタイムスタンプT3を付与する場合、先ず、タイムスタンプ検証部42hは、ERS管理ファイルのタイムスタンプ(タイムスタンプT2)の有効性を検証し、検証に成功すると、ERS管理ファイル1用のERSファイルに含まれるタイムスタンプT2中に検証情報を追加し、タイムスタンプ及びファイル受取部42bは、データファイル5、データファイル6、データファイル7、ERS管理ファイル1及びERS管理ファイル2をハッシュツリー対象とし、そのファイル名を参照先として記憶部43に記憶する(ステップS5及びステップS7の処理に相当)。
また、タイムスタンプ検証部42hは、データファイル1,2,3のタイムスタンプ(タイムスタンプT2)がERS管理ファイルの最新のタイムスタンプと同一であることとタイムスタンプの有効性を検証し、検証に成功すると、データファイル1用のERSファイル、データファイル2用のERSファイル及びデータファイル3用のERSファイルに含まれるタイムスタンプT2中に検証情報をそれぞれ追加し、タイムスタンプ及びファイル受取部42bは、データファイル1、データファイル2及びデータファイル3をコピー対象とし、そのファイル名を記憶部43に記憶する(ステップS5の処理に相当)。
その後、タイムスタンプ及びファイル受取部42bは、タイムスタンプT3の生成要素である一つのハッシュ値(ハッシュツリーの頂点となるルートハッシュ)h567R’Yを生成する(ステップS10の処理に相当)。
先ず、ハッシュ関数Hを用いて、各データファイル5,6,7及びERS管理ファイル2のハッシュ値であるh1,h2,h3,hR’と、タイムスタンプT2のハッシュ値hYを求める。次に、データファイル5のハッシュ値h5及びデータファイル6のハッシュ値h6をまとめた上で、ハッシュ関数Hを用いて、ハッシュ値h56を求める。次に、データファイル7のハッシュ値h7及びハッシュ値h56をまとめた上で、ハッシュ関数Hを用いて、ハッシュ値h567を求める。次に、ERS管理ファイル2のハッシュ値hR’とハッシュ値h567をまとめた上で、ハッシュ関数Hを用いて、ハッシュ値h567R’を求める。更に、ERS管理ファイル1用のERSファイルに含まれる最新のタイムスタンプT2のハッシュ値hY及びハッシュ値h567R’をまとめた上で、ハッシュ関数Hを用いて、ハッシュ値h567R’Yを求める。
その後、電子署名サーバ4は、通信I/F部41及び通信ネットワーク6を通じてタイムスタンプ局(TSA)tにハッシュ値h567R’Yを送信し、タイムスタンプ局tにタイムスタンプT3の生成を要求する。タイムスタンプ局tがハッシュ値h567R’Yを受信すると、タイムスタンプ局tは、タイムスタンプ局tの秘密鍵を使用して電子署名を付与したタイムスタンプT3を生成し、電子署名サーバ4に返信する。
電子署名サーバ4がタイムスタンプT3を受け取る(ステップS11の処理に相当)と、電子署名サーバ4は、タイムスタンプT3をデータファイル1、データファイル2、データファイル3、データファイル5、データファイル6、データファイル7及びERS管理ファイル2にそれぞれ付与するために、タイムスタンプT3をコピーし、タイムスタンプT3及び各ファイルのハッシュツリー情報を作成する。ここで、各データファイルのハッシュツリー情報は、自身のハッシュ値(h5,h6,h7又はhR’)又はタイムスタンプT2のハッシュ値(hY)から最後のハッシュ値(ルートハッシュh567R’Y)を導出するのに必要最小限のハッシュ値を、リストの入れ子構造で保持する。ここで、図6におけるハッシュ値は、h5<h6,h56<h7,h567<hR’,h567R’<hYの大小関係にある。
したがって、図6において、ERSファイル作成部42dは、データファイル5用のERSファイル、データファイル6用のERSファイル、データファイル7用のERSファイル及びERS管理ファイル2のERSファイルを新たに作成し、データファイル1用のERSファイル、データファイル2用のERSファイル及びデータファイル3用のERSファイルを更新する(ステップS12及びステップS13の処理に相当)。この場合、データファイル5用のERSファイルは、タイムスタンプT3及びデータファイル5のハッシュツリー情報[[h5,h6],[H7],[hR'],[hY]]を有し、データファイル6用のERSファイルは、タイムスタンプT3及びデータファイル6のハッシュツリー情報[[h5,h6],[h7],[hR'],[hY]]を有し、データファイル7用のERSファイルは、タイムスタンプT3及びデータファイル7のハッシュツリー情報[[h56,h7],[hR'],[hY]]を有し、ERS管理ファイル2のERSファイルは、タイムスタンプT3及びERS管理ファイル2のハッシュツリー情報[[h567,hR'],[hY]]を有する。また、データファイル1用のERSファイル、データファイル2用のERSファイル及びデータファイル3用のERSファイルには、タイムスタンプT3及びタイムスタンプT2のハッシュツリー情報[[h567R',hY]]がそれぞれ挿入される。
したがって、図6に示す概念図では、四つのファイルに付与されたタイムスタンプを更新し三つのファイルに新たにタイムスタンプを付与するために、同一の最新のタイムスタンプに対応する四つのタイムスタンプT2のうちの一つのタイムスタンプT2(ERS管理ファイル1用のERSファイルに含まれるタイムスタンプT2)と、データファイル5と、データファイル6と、データファイル7と、ERS管理ファイル2と、が用いられ、ハッシュツリーの末端ノードが五つとなる。
上記実施の形態によれば、タイムスタンプ更新の際のデータファイル、ERS管理ファイル等の複数のデータファイルに対する一つのタイムスタンプの発行要求を、同一の最新のタイムスタンプが付与された複数のデータファイルが存在する場合には一つの同一の最新のタイムスタンプを用いることによって行っている。すなわち、タイムスタンプの更新の際にハッシュツリーを作成するために、タイムスタンプ更新対象の複数のデータファイル中に同一の最新のタイムスタンプが付与された複数のデータファイルが存在する場合には、全ての同一の最新のタイムスタンプではなく、一つの同一の最新のタイムスタンプを用いている。したがって、同一の最新のタイムスタンプが付与された複数のデータファイルを含む複数のデータファイルのタイムスタンプを更新するためにハッシュツリーの末端ノードの数をタイムスタンプ更新対象のデータファイルの数より少なくすることができるので、タイムスタンプを更新する際のハッシュツリー及びハッシュツリー情報を作成するための計算量が少なくなる。また、ハッシュツリー情報を小さくすることができるので、ERSファイルのサイズの増大量を小さくすることができる。
特に、タイムスタンプ更新対象の複数のデータファイルの全てが同一の最新のタイムスタンプを有する場合、ハッシュツリー情報を作成する必要がないので、タイムスタンプ更新の際にERSファイルにハッシュツリー情報が追加されなくなり、ERSファイルのサイズの増大を回避することができる。
また、同一のタイムスタンプが付与された複数のデータファイルの一覧を含むERS管理ファイルを用いることによって、データファイルに付された最新のタイムスタンプが他のデータファイルに付された最新のタイムスタンプと同一であるか否かを迅速に判断することができる。
また、スケジューラ部42aによって指定したデータファイルの一覧を含むERS管理ファイルが存在する場合、ERSファイル作成部42dは、当該ERS管理ファイルに対応するERSファイルを新たなタイムスタンプを用いて更新することができる。一方、スケジューラ部42aによって指定したデータファイルの一覧を含むERS管理ファイルが存在しない場合、スケジューラ部42aは、ERS管理ファイル作成部42cで作成された新たなERS管理ファイルをタイムスタンプ付与対象として指定し、ERSファイル作成部42dは、新たなERS管理ファイルに付与された新たなタイムスタンプの有効性を検証可能なERSファイルを作成することができる。
また、タイムスタンプ及びファイル受取部42bがタイムスタンプの付与とタイムスタンプの更新を同時に行うことができるので、タイムスタンプが付与されていないデータファイルへのタイムスタンプの付与及びデータファイルに既に付与されているタイムスタンプの更新を同時に行うことができる。
また、ERSファイル作成部42dがERSファイルの作成とERSファイルの更新を同時に行うことができるので、初めてタイムスタンプを付与するデータファイルに対応するERSファイルの作成と既にタイムスタンプが付与されたデータファイルに対応するERSファイルの更新を同時に行うことができる。
さらに、タイムスタンプ検証部42hにより最新のタイムスタンプが有効であることが確認できたときだけタイムスタンプを更新しているので、データファイルの真正性を継続させてセキュリティを向上させることができる。
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、本発明によるタイムスタンプ付与装置としての電子署名サーバを有する電子署名システムを社内システムに適用する場合について説明したが、社内システム以外のシステムに対しても、本発明によるタイムスタンプ付与装置としての電子署名サーバを有する電子署名システムを適用することができる。また、データファイルとして各種ファイルを用いることもできる。
また、上記実施の形態において、ERS規格に対応したタイムスタンプ付与装置を用いる場合について説明したが、ERS規格以外の規格又は標準技術に対応したタイムスタンプ付与装置を用いることができる。
ERS規格以外の規格又は標準技術に対応したタイムスタンプ付与装置を用いる場合、電子署名システムのデータファイル保管システム3に記憶されるデータは、図3で説明した検証用ファイル内にタイムスタンプを含む代わりに、タイムスタンプを独立した形にして記憶されてもよい。例えば、図3(a)を参照しつつ対比して説明すると、タイムスタンプAが付与されたデータファイル1について、図3(a)ではデータファイル1とデータファイル1用のERSファイル(タイムスタンプA)が対応付けられて記憶されているが、これをデータファイル1とデータファイル1用の検証用ファイル1とタイムスタンプAとがそれぞれ独立した形で記憶させてもよい。すなわち、データファイル1,2,3及びERS管理ファイルと、データファイル1,2,3用の検証用ファイル1,2,3及びERS管理ファイル用の検証用ファイルと、タイムスタンプAとをそれぞれ対応付けてデータファイル保管システム3及び記憶部43に記憶させることができる。
また、タイムスタンプ処理を行ったシステムを明確にして情報の信頼性を向上させるために、データファイル及びERS管理ファイルのハッシュツリーを作成する前に各ファイルに電子署名付与部42eにより電子署名システムの秘密鍵で電子署名を付与することもでき、各ファイルの電子署名の検証を、電子署名検証部42fを用いることによってタイムスタンプ検証処理と併せて行うこともできる。また、データファイルについては、データファイル作成者による電子署名が付与されていてもよい。
また、上記実施の形態において、タイムスタンプ付与又は更新対象となるデータファイルを指定するためにスケジューラ部42aを用いる場合について説明したが、ユーザ端末1からのユーザ入力に応じてタイムスタンプ付与又は更新対象となるデータファイルを指定するユーザ入力受信部を制御部42に設けることもできる。この場合、ファイル送出部42gは、タイムスタンプ付与装置によって生成されるERS管理ファイル、各ファイルのERSファイル(検証用ファイル)、タイムスタンプ付与装置によって出力される処理対象のデータファイルに改竄が発生しているか否かのタイムスタンプの検証結果等を、通信I/F部41を通じてユーザ端末1に送信することもできる。
また、タイムスタンプ付与又は更新対象となるデータファイルをファイルの生成規則に基づいて指定するファイル指定部を、制御部42に設けることもできる。
また、タイムスタンプを更新する際に同一の最新のタイムスタンプを一つだけ用いる場合について説明したが、同一の最新のタイムスタンプが付与されたデータファイルの数より少ない数のタイムスタンプを用いてタイムスタンプの更新を行うこともできる。さらに、図5及び図6に示す概念図において、ERS管理ファイル(1)用のERSファイルをハッシュツリー対象にする代わりに、データファイル1用のERSファイル、データファイル2用のERSファイル及びデータファイル3用のERSファイルのうちのいずれか一つをハッシュツリー対象にするとともにそれ以外をコピー対象とすることができる。