(57)【要約】【課題】所定のセキュリティ機能を有し効率的なタイムスタンプサービスを提供可能な、データ登録システム、データ登録方法及びプログラムを提供する。【解決手段】データ登録システムの端末１−ｋは、複数の電子データと、当該電子データのそれぞれにハッシュ関数を作用させて得られた第１のハッシュ関数とを対応させて記憶する。端末１−ｋは、タイムスタンプサーバ２に登録する所望の電子データを選択し、当該電子データと対応する第１のハッシュ値にハッシュ関数を作用させて、選択した電子データ全体と一意に対応するメッセージダイジェストを示す第２のハッシュ値を生成する。端末１−ｋは、第２のハッシュ値をタイムスタンプサーバ２に送信して選択した電子データを登録し、該登録を識別する識別番号を受信する。端末１−ｋは、当該識別番号を、登録された各電子データと上記第１のハッシュ値とを含むレコードに追加して記憶する。【選択図】  図１
2004304338.tif 000002
【特許請求の範囲】
【請求項１】
複数の電子データを記憶する端末からネットワークを介して少なくとも１つ以上の所望の電子データを、タイムスタンプサービスを提供する信頼できる第三者機関のサーバに登録するためのシステムであって、
前記複数の電子データのそれぞれに所定の一方向性関数を作用させて第１の関数値を生成する第１関数値生成手段と、
前記複数の電子データと前記第１の関数値とを対応させて記憶するデータ記憶手段と、
記憶されている前記複数の電子データの中から、前記所望の電子データを選択する選択手段と、
前記所望の電子データ及び当該所望の電子データに対応する前記第１の関数値に基づいて、前記第１の関数値に、若しくは、前記所望の電子データ及び前記第１の関数値に、前記一方向性関数を作用させて、選択された前記所望の電子データの全体と一意に対応するメッセージダイジェストを示す第２の関数値を生成する第２関数値生成手段と、
前記第２の関数値を前記サーバに送信して前記所望の電子データを登録し、当該登録を識別するための識別番号を前記サーバから受信する識別番号受信手段と、
前記識別番号受信手段にて受信した識別番号を、前記選択された所望の電子データそれぞれと対応付けて記憶する識別番号記憶手段と、
を備えることを特徴とするデータ登録システム。
【請求項２】
前記一方向性関数は、ハッシュ関数である、ことを特徴とする請求項１に記載のデータ登録システム。
【請求項３】
前記第１関数値生成手段は、所定の暗号方式を使用したデジタル署名により前記第１の関数値を生成する、ことを特徴とする請求項１又は２に記載のデータ登録システム。
【請求項４】
複数の電子データを記憶する端末と、前記端末とネットワークを介して接続され前記端末から前記複数の電子データを登録するタイムスタンプサービスを提供するサーバと、を備えるデータ登録システムであって、
前記端末は、
前記複数の電子データそれぞれに対応する第１のハッシュ値を生成する第１ハッシュ値生成手段と、
当該第１のハッシュ値のそれぞれを前記複数の電子データと対応付けて記憶する記憶手段と、
前記記憶手段が記憶する前記複数の電子データの中から、登録すべき複数の電子データを選択する選択手段と、
前記第１のハッシュ値に基づいて、若しくは、前記登録すべき複数の電子データと前記第１のハッシュ値とに基づいて、前記選択された登録すべき複数の電子データの全体と対応する第２のハッシュ値を生成する第２ハッシュ値生成手段と、
前記登録すべき複数の電子データを前記サーバに登録するための識別番号を生成する識別番号生成手段と、
前記識別番号と、前記第２のハッシュ値とを、前記サーバに送信するデータ送信手段と、
を備え、
前記記憶手段は、前記識別番号生成手段にて生成した識別番号を、前記登録すべき複数の電子データそれぞれと対応付けて記憶する、
ことを特徴とするデータ登録システム。
【請求項５】
複数の電子データを記憶する端末と、前記端末とネットワークを介して接続され前記端末から所定のデータを登録して当該登録を識別するための識別番号を前記端末に送信するタイムスタンプサーバと、を備えるデータ登録システムであって、
前記端末は、
前記複数の電子データそれぞれに対応する第１のハッシュ値を生成する第１ハッシュ値生成手段と、
当該第１のハッシュ値のそれぞれを前記複数の電子データと対応付けて記憶する記憶手段と、
前記記憶手段が記憶する前記複数の電子データの中から、登録すべき複数の電子データを選択する選択手段と、
前記第１のハッシュ値に基づいて、若しくは、前記登録すべき複数の電子データと前記第１のハッシュ値とに基づいて、前記選択された登録すべき複数の電子データの全体と対応する第２のハッシュ値を生成する第２ハッシュ値生成手段と、
前記第２のハッシュ値を前記タイムスタンプサーバに送信して前記選択された複数の電子データを登録し、当該登録を識別するための前記識別番号を前記タイムスタンプサーバから受信する識別番号受信手段と、
を備え、
前記記憶手段は、前記識別番号受信手段にて受信した前記識別番号を、登録された前記複数の電子データそれぞれと対応付けて記憶する、
ことを特徴とするデータ登録システム。
【請求項６】
複数の電子データを記憶する端末からネットワークを介して少なくとも１つ以上の所望の電子データを、タイムスタンプサービスを提供する信頼できる第三者機関に登録する方法であって、
前記複数の電子データのそれぞれに所定の一方向性関数を作用させて第１の関数値を生成する第１関数値生成ステップと、
前記複数の電子データのぞれぞれと対応させて前記第１の関数値を記憶する関数値記憶ステップと、
記憶されている前記複数の電子データの中から、前記所望の電子データを選択する選択ステップと、
前記所望の電子データ及び当該所望の電子データに対応する前記第１の関数値に基づいて、前記第１の関数値に、若しくは、前記所望の電子データ及び前記第１の関数値に、前記一方向性関数を作用させて、選択された前記所望の電子データの全体と一意に対応するメッセージダイジェストを示す第２の関数値を生成する第２関数値生成ステップと、
前記第２の関数値を前記第三者機関に送信して前記所望の電子データを登録し、当該登録を識別するための識別番号を前記第三者機関から受信する識別番号受信ステップと、
前記識別番号受信ステップにて受信された識別番号を、前記複数の電子データそれぞれと対応付けて記憶する識別番号記憶ステップと、
を備えることを特徴とするデータ登録方法。
【請求項７】
コンピュータを、
前記請求項１乃至５のいずれか１項に記載されたデータ登録システムの各手段の全部又は一部として機能させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを利用したタイムスタンプシステム等に関する。
【０００２】
【従来の技術】
【０００３】
従来の紙文書に代わって、例えば、電子商取引等においては、契約書面等を電子文書として保存し、ある時刻における所定の電子文書の存在と、この電子文書の非改竄性とを保証する、所謂信頼できる第三者機関（ＴＴＰ，Ｔｒｕｓｔｅｄ  Ｔｈｉｒｄ  Ｐａｒｔｙ）によるタイムスタンプサービスが提案されている。
【０００４】
通常、このタイムスタンプサービスは、（１）データの送信側（ユーザ）が上記の電子文書を構成する電子データからハッシュ値を生成し、（２）このハッシュ値をＴＴＰに送信して電子データを登録し、（３）ＴＴＰがハッシュ値を受信し電子データを登録したことを示すレシートをユーザに送信する、という手順で実行される。ここで、ハッシュ値とは、任意のビット列からなるデータの入力に対して、固定長さのビット列を出力するハッシュ関数により変換された値（出力）である。このハッシュ関数は、得られた出力値から入力値を逆算して求めることは実質的に不可能な一方向性関数である。また、ハッシュ関数は、他の暗号化アルゴリズムに比較すると、比較的容易に計算可能である。従って、これらの特性を有するハッシュ関数を利用して、所定のセキュリティ機能を有する実用的なタイムスタンプサービスが可能となる。
【０００５】
【発明が解決しようとする課題】
しかし、例えば、下記の特許文献１に開示されるように、従来の処理において、ユーザが個別の電子データ（１件の電子文書）ごとにハッシュ値（メッセージダイジェスト）を生成するので、例えば、大量の電子データ（大量な件数の電子文書）をＴＴＰに登録する場合には、大量の電子データそれぞれに対応するハッシュ値をＴＴＰに送信しなければならない。例えば、インターネットのように通常の通信容量のネットワークを使用する場合には、長い通信時間を必要とし、実用的ではないことがある。また、ＴＴＰも、個々のハッシュ値に対して上記処理（データの登録、ハッシュ値の記憶並びにレシートの発行）が必要となる。そのため、従来は、短時間で大量のデータをＴＴＰに登録することは困難であった。
【０００６】
【特許文献１】
特開平１０−１０５０５７号公報
【０００７】
上記実状に鑑みて、本発明は、所定のセキュリティ機能を有し効率的なタイムスタンプサービスを提供可能な、データ登録システム、データ登録方法及びプログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点に係るデータ登録システムは、
複数の電子データを記憶する端末からネットワークを介して少なくとも１つ以上の所望の電子データを、タイムスタンプサービスを提供する信頼できる第三者機関のサーバに登録するためのシステムであって、
前記複数の電子データのそれぞれに所定の一方向性関数を作用させて第１の関数値を生成する第１関数値生成手段と、
前記複数の電子データと前記第１の関数値とを対応させて記憶するデータ記憶手段と、
記憶されている前記複数の電子データの中から、前記所望の電子データを選択する選択手段と、
前記所望の電子データ及び当該所望の電子データに対応する前記第１の関数値に基づいて、前記第１の関数値に、若しくは、前記所望の電子データ及び前記第１の関数値に、前記一方向性関数を作用させて、選択された前記所望の電子データの全体に一意に対応するメッセージダイジェストを示す第２の関数値を生成する第２関数値生成手段と、
前記第２の関数値を前記サーバに送信して前記所望の電子データを登録し、当該登録を識別するための識別番号を前記サーバから受信する識別番号受信手段と、
前記識別番号受信手段にて受信した識別番号を、前記所望の電子データそれぞれと対応付けて記憶する識別番号記憶手段と、を備える、
ことを特徴とする。
【０００９】
一方向性関数は、ハッシュ関数であることが好ましい。
【００１０】
第１関数値生成手段は、一方向性関数を複数の電子データそれぞれに作用させて第１の関数値を得る代わりに、所定の暗号方式を使用したデジタル署名により第１の関数値を生成するようにしても良い。
【００１１】
上記目的を達成するため、本発明の第２の観点に係るデータ登録システムは、
複数の電子データを記憶する端末と、前記端末とネットワークを介して接続され前記端末から前記複数の電子データを登録するタイムスタンプサービスを提供するサーバと、を備えるデータ登録システムであって、
前記端末は、
前記複数の電子データそれぞれに対応する第１のハッシュ値を生成する第１ハッシュ値生成手段と、
当該第１のハッシュ値のそれぞれを前記複数の電子データと対応付けて記憶する記憶手段と、
前記記憶手段が記憶する前記複数の電子データの中から、登録すべき複数の電子データを選択する選択手段と、
前記第１のハッシュ値に基づいて、若しくは、前記登録すべき複数の電子データと前記第１のハッシュ値とに基づいて、前記選択された登録すべき複数の電子データの全体と対応する第２のハッシュ値を生成する第２ハッシュ値生成手段と、
前記登録すべき複数の電子データを前記サーバに登録するための識別番号を生成する識別番号生成手段と、
前記識別番号と、前記第２のハッシュ値とを、前記サーバに送信するデータ送信手段と、を備え、
前記記憶手段は、前記識別番号生成手段にて生成した識別番号を、前記登録すべき複数の電子データそれぞれと対応付けて記憶する、
ことを特徴とする。
【００１２】
上記目的を達成するため、本発明の第３の観点に係るデータ登録システムは、
複数の電子データを記憶する端末と、前記端末とネットワークを介して接続され前記端末から所定のデータを登録して当該登録を識別するための識別番号を前記端末に送信するタイムスタンプサーバと、を備えるデータ登録システムであって、
前記端末は、
前記複数の電子データそれぞれに対応する第１のハッシュ値を生成する第１ハッシュ値生成手段と、
当該第１のハッシュ値のそれぞれを前記複数の電子データと対応付けて記憶する記憶手段と、
前記記憶手段が記憶する前記複数の電子データの中から、登録すべき複数の電子データを選択する選択手段と、
前記第１のハッシュ値に基づいて、若しくは、前記登録すべき複数の電子データと前記第１のハッシュ値とに基づいて、前記選択された登録すべき複数の電子データの全体と対応する第２のハッシュ値を生成する第２ハッシュ値生成手段と、
前記第２のハッシュ値を前記タイムスタンプサーバに送信して前記選択された複数の電子データを登録し、当該登録を識別するための前記識別番号を前記タイムスタンプサーバから受信する識別番号受信手段と、を備え、
前記記憶手段は、前記識別番号受信手段にて受信した前記識別番号を、登録された前記複数の電子データそれぞれと対応付けて記憶する、
ことを特徴とする。
【００１３】
上記目的を達成するため、本発明の第４の観点に係るデータ登録方法は、
複数の電子データを記憶する端末からネットワークを介して少なくとも１つ以上の所望の電子データを、タイムスタンプサービスを提供する信頼できる第三者機関に登録する方法であって、
前記複数の電子データのそれぞれに所定の一方向性関数を作用させて第１の関数値を生成する第１関数値生成ステップと、
前記複数の電子データのぞれぞれと対応させて前記第１の関数値を記憶する関数値記憶ステップと、
記憶されている前記複数の電子データの中から、前記所望の電子データを選択する選択ステップと、
前記所望の電子データ及び当該所望の電子データに対応する前記第１の関数値に基づいて、前記第１の関数値に、若しくは、前記所望の電子データ及び前記第１の関数値に、前記一方向性関数を作用させて、選択された前記所望の電子データの全体と一意に対応するメッセージダイジェストを示す第２の関数値を生成する第２関数値生成ステップと、
前記第２の関数値を前記第三者機関に送信して前記所望の電子データを登録し、当該登録を識別するための識別番号を前記第三者機関から受信する識別番号受信ステップと、
前記識別番号受信ステップにて受信された識別番号を、前記複数の電子データそれぞれと対応付けて記憶する識別番号記憶ステップと、
を備えることを特徴とする。
【００１４】
【発明の実施の形態】
本発明の実施の形態にかかるデータ登録システム等について、以下図面を参照して説明する。
【００１５】
図１は、本発明の実施の形態に係るデータ登録システムの機能構成を模式的に示す。このデータ登録システムは、信頼できる第三者機関（ＴＴＰ，Ｔｒｕｓｔｅｄ  Ｔｈｉｒｄ  Ｐａｒｔｙ）において、ユーザから受理した（登録を依頼された）電子データの存在時刻と非改竄性とを証明するタイムスタンプサービスを提供するためのシステムとして構成されている。データ登録システムは、複数の端末１−１〜１−ｍと、この複数の端末１−１〜１−ｍとインターネット３を介して接続されるタイムスタンプサーバ２と、から構成される。
【００１６】
複数の端末１−１〜１−ｍ（以下代表例として端末１−ｋについて説明する）は、テキストデータ、画像情報、その他電子データを記憶し、記憶している電子データをタイムスタンプサーバ２に登録するためのコンピュータ端末装置である。
この端末１−ｋは、データ保存部１１と、データ選択部１２、ハッシュ値生成部１３と、データ検証部１４とを備える。
【００１７】
タイムスタンプサーバ２は、端末１−ｋからのデータ登録申請を受理し、登録申請の受理日時を認証し、申請されたデータを登録するためのサーバ装置である。タイムスタンプサーバ２は、タイムスタンプ生成部２１と、レシート生成部２２と、レシート情報データベース２３と、時刻認証部２４とを備える。
【００１８】
データ保存部１１は、契約書類等の文書であれば電子文書、写真等の静止画であれば画像情報のように、電子化された電子データを、後述する第１のハッシュ値及びレシートＩＤと対応させて記憶する。
【００１９】
データ選択部１２は、データ保存部１１に記憶されている個々の電子データから、登録申請を行う所定の数ｎ個（ｎレコード）の電子データから成るデータ群を選択し、後述するハッシュ値生成部１３に入力する。データ選択部１２は、ハッシュ値生成部１３から出力される、選択したｎレコード分の電子データの全体と一意に対応する第２のハッシュ値を、インターネット３を経由して、タイムスタンプサーバ２に送信する。
【００２０】
ハッシュ値生成部１３は、データ選択部１２で選択された個々の電子データに、ハッシュ関数を作用させて、第１のハッシュ値を得る。ここで、ハッシュ関数は、一方向性で、かつ、衝突防止性の関数であり、任意の長さのビット列データを入力すると、固定長さ、例えば、１６０ビットの長さのビット列データを出力する。この実施形態においては、ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）を使用するが、ＭＤ２（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ＃２）、ＭＤ５、ＲＩＰＥ−ＭＤ（Ｒａｃｅ  Ｉｎｔｅｇｒｉｔｙ  Ｐｒｉｍｉｔｉｖｅ  Ｅｖａｌｕａｔｉｏｎ  Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ）等の任意のハッシュ関数を使用することができる。また、ハッシュ関数の出力値は、入力値である任意の長さのビット列データと一意に対応する符号データであるので、メッセージダイジェストとも称されるが、ここでは、ハッシュ値と呼称する。
【００２１】
さらに、ハッシュ値生成部１３は、ｎレコード分の電子データのそれぞれから生成した第１のハッシュ値に、再度ハッシュ関数を作用させて、第２のハッシュ値を得る。この第２のハッシュ値は、後述するように、ユーザが端末１−ｋからｎレコード分の電子データの登録申請を行うときの、申請番号（データ）として利用される。
【００２２】
データ検証部１４は、後述する所定のレシートＩＤを有する電子データを検索して、当該電子データと対応付けて記憶されている各第１のハッシュ値を抽出し、これらの第１のハッシュ値をハッシュ値生成部１３に入力する。ハッシュ値生成部１３から出力される第２のハッシュ値と、レシートＩＤとにより、登録された電子データをタイムスタンプサーバ２に問い合わせる。データ検証部１４は、タイプスタンプサーバ２が当該第２のハッシュ値とレシートＩＤとに基づいて抽出したレシート情報を受信し、受信したレシート情報に含まれる第２のハッシュ値と、送信した第２のハッシュ値とを比較して、電子データの正当性を検証する。
【００２３】
タイムスタンプ生成部２１は、端末１−ｋのデータ選択部１２から、ｎレコード分の電子データに対応する第２ハッシュ値を受信すると、受信時刻を示すタイムスタンプデータを生成する。タイムスタンプ生成部２１は、生成したタイムスタンプデータを時刻認証部２４に送信して、受理時刻の確認と認証とを受ける。タイムスタンプ生成部２１は、時刻認証部２４にて時刻認証データを含む認証されたタイムスタンプデータを受信する。
【００２４】
レシート生成部２２は、認証されたタイムスタンプデータを含むレシートを生成する。レシート生成部２２は、当該レシートを識別するための識別番号（以下、レシートＩＤと呼ぶ）を付加して、端末１−ｋに送信する。
【００２５】
レシート情報データベース２３は、レシートＩＤに対応させて、タイムスタンプデータと第２のハッシュ値とをレシート情報として記憶する。また、レシート情報データベース２３は、端末１−ｋからの要求に応答して、レシートＩＤと第２のハッシュ値とをキーに検索し、該当するレシート情報を抽出して、端末１−ｋに送信する。
【００２６】
時刻認証部２４は、現在日時を表す日時情報を連続的に生成する。時刻認証部２４は、タイムスタンプ生成部２１から受信したタイムスタンプデータを、自己の日時情報と照合することにより、時刻認証データを生成する。時刻認証部２４は、該時刻認証データを追加することにより、タイムスタンプデータの認証を行う。
【００２７】
図２は、図１に示すデータ登録システムのハードウェア構成を模式的に表すシステム構成図である。図２に示すデータ登録システムは、図１と同様の端末１−１〜１−ｍ（代表例として端末１−ｋを使用する）と、インターネット３を介して端末１−１〜１−ｍと接続されるタイムスタンプサーバ２とから構成されるが、理解を容易にするため、端末１−ｋとタイムスタンプサーバ２とについて、それぞれのハードウェア構成のみを示す。
【００２８】
端末１−ｋは、通信部１０１と、入力部１０２と、表示部１０３と、記憶部１０４と、演算処理部１０５とを具備し、これらによって、図１に示した端末１−ｋのデータ保存部１１、データ選択部１２、ハッシュ値生成部１３、データ検証部１４の各機能を実現する。
【００２９】
通信部１０１は、インターネットプロトコル（ＩＰ）に対応した所定のインターフェースを有し、インターネット３を介して、タイムスタンプサーバ２と所定のデータの送受信を行う。
【００３０】
入力部１０２は、キーボード、トラックパッド又はマウス等のポインティングデバイス等から構成される。入力部１０２は、ユーザの操作に応答して、所定の要求、データの送信、データの選択、後述するデータの検証処理の実行等を指示する。
【００３１】
表示部１０３は、ＣＲＴ（Ｃａｔｈｏｄｅ−Ｒａｙ  Ｔｕｂｅ）若しくは液晶表示装置（ＬＣＤ，Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌｌｉｎｅ  Ｄｉｓｐｌａｙ）等の表示装置を備える。表示部１０３は、ユーザにより入力部１０２から入力され、選択されたデータ、あるいは、タイムスタンプサーバ２から受信したデータ、若しくは、後述するデータの検証結果等を表示する。
【００３２】
記憶部１０４は、例えば、ハードディスク装置、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等から構成される。記憶部１０４は、登録申請用の電子データ、第１及び第２のハッシュ値、及びタイムスタンプサーバ２から受信するレシート情報（タイムスタンプデータ、第２のハッシュ値及びレシートＩＤを含む）等を記憶する。
【００３３】
演算処理部１０５は、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）若しくは端末１−ｋのＣＰＵ（中央演算処理装置）等から構成される。演算処理部１０５は、ハッシュ関数の演算処理、記憶している電子データの正当性の検証処理を実行する。
【００３４】
タイムスタンプサーバ２は、通信部２０１と、認証処理部２０２と、登録処理部２０３と、検索処理部２０４と、記憶部２０５、タイマ部２０６とを具備する。これらによって、図１に示したタイムスタンプサーバのタイムスタンプ生成部２１、レシート生成部２２、レシート情報データベース２３、時刻認証部２４の各機能を実現する。
【００３５】
通信部２０１は、インターネットプロトコル（ＩＰ）に対応した所定のインターフェースを有し、インターネット３を介して、端末１−ｋと所定のデータの送受信を行う。
【００３６】
認証処理部２０２、登録処理部２０３、検索処理部２０４は、それぞれ、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）若しくはタイムスタンプサーバ２のＣＰＵ（中央演算処理装置）等から構成される。
【００３７】
認証処理部２０２は、端末１−ｋからの登録申請データの受信時の受信時刻を示すタイムスタンプデータの生成、時刻認証データの確認等の処理を制御する。
【００３８】
登録処理部２０３は、さらに、認証されたタイムスタンプデータに基づいて生成されるレシートのレシートＩＤに対応させて、端末１−ｋから登録申請されたデータ（ｎレコード分の電子データに対応する第２のハッシュ値）を記憶部２０５に記憶する処理を制御する。
【００３９】
検索処理部２０４は、記憶部２０５に記憶されている登録データ（レシート情報）から、端末１−ｋから受信する第２のハッシュ値とレシートＩＤとに基づいて、該当する登録データ（レシート情報）を検索し、抽出する処理を制御する。
【００４０】
記憶部２０５は、磁気ディスク装置、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等から構成される。記憶部２０５は、登録申請データ（第２のハッシュ値を含む）、タイムスタンプデータ、時刻認証データ等の上記各部の処理に関するデータ及び処理に必要な情報等を格納する。
【００４１】
タイマ部２０６は、例えば、水晶発振器等から構成され、計時機能を有する。タイマ部２０６は、時刻認証部２４における認証時刻データの基準となる現在時刻を連続的に生成する。ここで、例えば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）衛星からの標準時刻を表す時刻情報に基づいて、計時される現在時刻を標準時刻に対して適宜補正するようにしてもよい。
【００４２】
次に、図１及び図２に示すように構成されたＴＴＰにおけるタイムスタンプサービスの提供を受けるためのデータ登録システムの動作について説明する。端末１−ｋ側におけるユーザによる登録申請処理を、図３に示すフローチャートを参照して説明する。
【００４３】
所定の文書等を予め電子化して、１件につき１レコードとして端末１−ｋの記憶部１０４に格納されている電子データのうち、データ選択部１２が、ユーザの入力部１０２からの入力に応答して、図４に示す登録申請を行うためのｎレコード分のデータを選択する（ステップＳ１１）。
【００４４】
次いで、ハッシュ値生成部１３は、ステップＳ１１にて選択されたｎレコード分の電子データそれぞれに対して、ハッシュ関数ＳＨＡ−１を作用させて、各電子データに対応するｎ個の第１のハッシュ値を生成する（ステップＳ１２）。さらに、データ保存部１１は、ステップＳ１２にて生成した第１のハッシュ値を各電子データに対応付けて、図４に示すように、各電子データのレコードに追加して記憶する（ステップＳ１３）。
【００４５】
各電子データに対応する第１のハッシュ値が生成されたら、ハッシュ値生成部１３は、ｎ個の第１のハッシュ値に上記ハッシュ関数ＳＨＡ−１を再度適用して、ｎレコード分の電子データに対応する第２のハッシュ値を得る（ステップＳ１４）。ここで、ハッシュ値生成部１３は、ｎ個の電子データとｎ個の第１のハッシュ値の全てを使用して、第２のハッシュ値を得るようにしても良い。
【００４６】
データ選択部１２は、ステップＳ１４にて得られた第２のハッシュ値を、タイムスタンプサーバ２に送信する（ステップＳ１５）。
【００４７】
後述するように、タイムスタンプサーバ２で所定の処理が実行され、端末１−ｋの通信部２０１は、レシートＩＤが付されたレシート（ｎレコード分の電子データの存在時刻と非改竄性とを保証する証明データ）を受信する（ステップＳ１６）。
【００４８】
データ保存部１１は、ステップＳ１６にて受信したレシートのレシートＩＤを、ステップＳ１３で記憶しているｎレコードの各行の先頭に追加して格納する（ステップＳ１７）。これで、端末１−ｋ側での登録申請処理を終了する。
【００４９】
次に、上記の登録申請処理にてタイムスタンプサーバ２に登録されている登録データと、記憶部１０４に格納されている電子データとが一致するか否かを検証する、即ち、端末１−ｋで保有している電子データの正当性を検証する検証処理について、図５に示すフローチャートを参照して説明する。
【００５０】
ここでは、図６に示す同一のレシートＩＤを有するｎレコード分の電子データの中で、電子データＣの検証を行う場合について説明する。
データ検証部１４は、記憶部１０４に格納されている着目する電子データＣを含むレコードから、その行の先頭に有するＩＤを取得し、同一のＩＤを有するレコードを検索し、該当する電子データＡ，Ｂ，Ｃ・・・Ｘ（ｎレコード分のデータ）に対応するｎ個の第１のハッシュ値を抽出する（ステップＳ２１）。なお、このとき、データ検証部１４は、ｎ個の第１のハッシュ値だけでなく、該当する電子データＡ，Ｂ，Ｃ・・・Ｘ（ｎレコード分のデータ）を抽出するようにしても良い。
【００５１】
データ検証部１４は、ステップＳ２１で抽出されたｎ個の第１のハッシュ値を、ハッシュ値生成部１３に入力し、ｎ個の第１のハッシュ値に対応する第２のハッシュ値を取得する（ステップＳ２２）。なお、このとき、データ検証部１４は、抽出した電子データＡ，Ｂ，Ｃ・・・Ｘ（ｎレコード分のデータ）と、これらの電子データＡ，Ｂ，Ｃ・・・Ｘに対応するｎ個の第１のハッシュ値とを全て使用して、第２のハッシュ値を求めることもできる。次に、データ検証部１４は、通信部１０１を介して、タイムスタンプサーバ２に対して、ステップＳ２１にて取得したＩＤと、ステップＳ２２にて抽出した第２ハッシュ値とに基づいて、該当する登録データについて問い合わせを行う（ステップＳ２３）。
【００５２】
端末１−ｋからの問い合わせに対して、タイムスタンプサーバ２は、指定されたＩＤ若しくは第２のハッシュ値に基づいて、記憶部２０５に格納されている登録データ（レシート情報）の中から、該当する登録データを検索し、抽出して、当該登録データを端末１−ｋに送信する。
【００５３】
データ検証部１４は、タイムスタンプサーバ２からの回答（該当登録データ）を受信し、登録データに含まれる第２のハッシュ値と、ステップＳ２２で取得された第２のハッシュ値とを比較し、照合することにより、記憶部１０４に格納されているｎレコード分の電子データの正当性を判別する（ステップＳ２４）。
【００５４】
データ検証部１４は、ｎレコード分の電子データが正当であると判別したときには、電子データＣに基づいて、ハッシュ値生成部１３により、第１のハッシュ値を再計算する（ステップＳ２５）。データ検証部１４は、ステップＳ２５で得られた第１のハッシュ値が、電子データＣを有するレコード中の第１のハッシュ値と等しいか否かを判別する（ステップＳ２６）。
【００５５】
データ検証部１４は、ステップＳ２５で得られた第１のハッシュ値が、電子データＣを有するレコード中の第１のハッシュ値と等しいと判別した場合には、電子データＣは正当であると判断して（ステップＳ２７）、処理を終了する。一方、ステップＳ２５で得られた第１のハッシュ値が、電子データＣを有するレコード中の第１のハッシュ値と等しくないと判別した場合には、電子データＣは正当ではないと判断して（ステップＳ２８）、処理を終了する。なお、データ検証部１４は、ステップＳ２４にて、ｎレコード分の電子データが正当ではないと判別したときにも、同様にステップＳ２８に移行し、電子データＣは正当ではないと判断して処理を終了する。
なお、ステップＳ２４にて、ｎレコード分の電子データが正当であると判別したときには、ステップＳ２５及びステップＳ２６を省略して直接ステップＳ２７に移行し、正当であるｎレコードの中に含まれている電子データＣも当然に正当であると判断するようにしても良い。これにより、検証処理の簡略化を図ることができる。
【００５６】
最後に、端末１−ｋから登録申請を受信したタイムスタンプサーバ２側での登録処理について、図７のフローチャートを参照して簡単に説明する。
【００５７】
タイムスタンプ生成部２１は、端末１−ｋから、登録申請データ（ｎレコード分の電子データ及び第１のハッシュ値と、これらのデータに対応する第２ハッシュ値と）を受信すると、受信時刻を示すタイムスタンプデータを生成する（ステップＳ３１）。タイムスタンプ生成部２１は、生成したタイムスタンプデータを時刻認証部２４に送信して、受理時刻の確認と認証とを受ける。タイムスタンプ生成部２１は、時刻認証部２４にて時刻認証データを含む認証されたタイムスタンプデータを受信する（ステップＳ３２）。
【００５８】
レシート生成部２２は、認証されたタイムスタンプデータを含むレシートを生成する（ステップＳ３３）。次いで、レシート生成部２２は、当該レシートを識別するためのレシートＩＤを付加して、端末１−ｋに送信する（ステップＳ３４）。
一方、レシート情報データベース２３は、端末１−ｋから受理した上記のｎレコード分の電子データに対応する第２のハッシュ値を、タイムスタンプデータと共に、レシートＩＤと対応させて登録（記憶）する（ステップＳ３５）。
【００５９】
以上説明したように、本実施の形態によれば、ユーザにより端末側から、信頼できる第三者機関のタイムスタンプサーバに電子データを１件ごとに（１件の電子文書ごとに）送信して登録申請するのではなく、所定の数の電子データ（所定の件数の電子文書に相当する）を一括して登録申請を行う。そのため、インターネット経由での通信に関して、通信量と通信時間とを大幅に低減することが可能となる。また、第三者機関においても、所定の件数の電子文書の登録申請をまとめて受理し、一括して登録処理を行うことができるので、その処理効率が向上する。従って、タイムスタンプサービス全体として、処理時間が短縮され、大量の電子データであっても、短時間で処理することが可能となる。
【００６０】
本発明は、上記の実施の形態に限定されず、その応用及び変形等は任意である。
例えば、上記の実施の形態において、端末では、各電子データからそれぞれ第１のハッシュ値を生成し、所定の数（ｎレコード分）の電子データを一括して、第１のハッシュ値、若しくは、電子データ及び第１のハッシュ値、のいずれかを使用して、第２のハッシュ値を生成すると説明した。
【００６１】
しかし、図８に示すように、図１に示す端末１−ｋに所定の暗号方式を使用して電子データのエンコードを行うデジタル署名部１５を追加し、上記第１のハッシュ値の代わりに各電子データに対してそれぞれデジタル署名を生成するようにしても良い。この場合には、所定の数（ｎレコード分）の電子データを一括して、各デジタル署名、若しくは、各電子データ及び各デジタル署名、のいずれかを使用して、ハッシュ値生成部１３により上記第２のハッシュ値に相当する一意のハッシュ値を生成することができる。
【００６２】
上記実施の形態では、タイムスタンプサーバにおける登録処理は、端末から送信される第２のハッシュ値に基づいて、逐次タイムスタンプデータを生成し、当該タイムスタンプデータを記憶すると共に、ユーザの端末に返信するという単純なタイムスタンププロトコルに基づく処理として説明した。しかし、使用可能なタイムスタンププロトコルはこれに限定されない。例えば、タイムスタンプサーバが複数のユーザの端末から送信されるユーザのハッシュ値を相互に関連付けるリンク情報を生成し、各タイムスタンプデータがそれまでに生成された全てのタイムスタンプデータに依存するように生成される、所謂リンキングプロトコルを使用してもよい。この場合、タイムスタンプサーバに不正（タイムスタンプデータやリンク情報の改竄）があっても、利用されるデジタル署名やハッシュ関数が安全である限り、改竄を発見できるので、セキュリティレベルの向上が期待できる。
【００６３】
上記のリンキングプロトコルの例としては、リニアリンキングプロトコル（Ｌｉｎｅａｒ  Ｌｉｎｋｉｎｇ  Ｐｒｏｔｏｃｏｌ）やツリー構造のリンキングプロトコル（Ｌｉｎｋｉｎｇ  Ｐｒｏｔｏｃｏｌ  ｕｓｉｎｇ  Ｔｒｅｅ  Ｓｔｒｕｃｔｕｒｅ）がある。
【００６４】
後者は、例えば、図９に示すように、一定時間（ラウンド）内にタイムスタンプサーバに送信されたハッシュ値（図９には４つのハッシュ値の場合を示すが、この数は４つに限定されない）を葉とみなし、ラウンド内のハッシュ値（ａ，ｂ，ｃ，ｄ）を結合し、ハッシュ化するプロセスを繰り返して（ａｂ，ｃｄ）、ルートハッシュと呼ばれるリンク情報（ａｄ）を生成する。このルートハッシュは、直前のラウンドで生成されたスーパーハッシュ値（Ｓｕｐｅｒ  Ｈａｓｈ  Ｖａｌｕｅ）ＳＨＶ（ｔ−１）と結合されてハッシュ化され、そのラウンドのＳＨＶ（ｔ）となる。タイムスタンプサーバは、証明データとして、時刻ｔにおけるタイムスタンプデータと、レシートＩＤと、時刻（ｔ−１）におけるスーパーハッシュ値ＳＨＶ（ｔ−１）と、ルートハッシュの構成要素であるハッシュ値ｃｄ及びｂと、をユーザの端末に返信する。ユーザは、端末から送信したデータ登録のためのハッシュ値ａと、タイムスタンプサーバから送信された上記の証明データとを記憶し、タイムスタンプサーバへ問い合わせるときの使用データとする。一方、タイムスタンプサーバは、各時刻のＳＨＶを記憶しており、ユーザから送信される証明データ（ハッシュ値ａ’，ｂ，ｃｄ及びＳＨＶ（ｔ−１））に基づいて、時刻ｔのＳＨＶ（ｔ）を再計算し、記憶しているＳＨＶ（ｔ）と比較することにより、データの非改竄性と、時刻ｔに登録されたものであることを証明することができる。
【００６５】
上記の実施の形態では、ハッシュ関数としてＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）を使用すると説明したが、例えば、ＭＤ２、ＭＤ５、ＲＩＰＥ−ＭＤ等の任意のハッシュ関数を使用することができる。さらに、ハッシュ関数以外でも、一方向性関数であれば良い。さらに、例えば、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）暗号方式、ＤＡＳ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）暗号方式、ＤＥＳ（Ｄｉｇｉｔａｌ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号方式等の暗号化関数を使用することができる。しかし、暗号化関数は、ハッシュ関数と比較して、その計算が複雑になると共に計算量も膨大になるので、処理の効率化を目的とする場合には、ハッシュ関数を使用することが望ましい。
【００６６】
上記の実施の形態では、タイムスタンプサーバが端末からの電子データの登録申請を受理したことを示すレシートに、当該レシートを識別するレシートＩＤを付して端末に返送すると説明した。しかし、タイムスタンプサーバは、タイムスタンプデータを含むが、レシートＩＤの付されていないレシートを生成して、当該レシートを端末に送信することもできる。この場合、一括して登録申請した個々の電子データを識別するために、登録申請を行うときに、端末が、自ら一意の識別番号を生成し、生成した識別番号を登録申請する電子データを含む各レコードの先頭に付加して記憶すると共に、タイムスタンプサーバから送信されるレシートにも当該識別番号を付して管理すれば良い。
【００６７】
上記の実施の形態では、端末とタイムスタンプサーバとは、インターネットを経由して接続されると説明した。しかし、端末とタイムスタンプサーバとを接続するネットワークは、インターネットに限定されず、公衆ネットワーク、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗａｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及び無線通信等を適宜組み合わせた任意のネットワークであっても良い。
【００６８】
なお、上記の実施の形態において説明したデータ登録システムは、専用のシステムとして構成することなく、通常のコンピュータ装置を用いて実現することができる。例えば、コンピュータ装置に上述の動作の一部若しくは全部を実行させるためのプログラムを格納した記憶媒体（フレキシブルディスク、ＣＤ−ＲＯＭ等）から、該プログラムをインストールすることにより、上述した処理を実行するデータ登録システムを構築することができる。インストールによって、当該プログラムは、コンピュータ装置内のハードディスク装置等の記憶装置に格納されて、データ登録システムを構成し、実行に供される。
【００６９】
また、コンピュータにプログラムを供給するための媒体は、狭義の記憶媒体に限定されず、通信回線、通信ネットワーク及び通信システムのように、一時的且つ流動的にプログラム等の情報を保持する通信媒体等を含む広義の記憶媒体であってもよい。
【００７０】
例えば、インターネット等の通信ネットワーク上に設けたＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバに当該プログラムを登録し、ＦＴＰクライアントにネットワークを介して配信してもよく、通信ネットワークの電子掲示板（ＢＢＳ，Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）等に該プログラムを登録し、これをネットワークを介して配信してもよい。そして、このプログラムを起動し、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の制御下において実行することにより、上述の処理を実行することができる。さらに、通信ネットワークを介してプログラムを転送しながら起動実行することによっても、上述した処理を達成することができる。
【００７１】
【発明の効果】
本発明によれば、所定のセキュリティ機能を有し効率的なタイムスタンプサービスを提供可能な、データ登録システム、データ登録方法及びプログラムを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るデータ登録システムの機能構成を模式的に示すブロック図である。
【図２】図１のデータ登録システムのハードウェア構成を模式的に示すブロック図である。
【図３】図１のデータ登録システムにおける端末側での申請処理の動作を説明するためのフローチャートである。
【図４】図１のデータ登録システムにおける端末側での申請処理の動作を説明するための模式図である。
【図５】図１のデータ登録システムにおける端末側でのデータの正当性を検証する処理の動作を説明するためのフローチャートである。
【図６】図１のデータ登録システムにおける端末側での検証処理の動作を説明するための模式図である。
【図７】図１のデータ登録システムにおけるタイムスタンプサーバ側での登録処理の動作を説明するためのフローチャートである。
【図８】本発明の実施の形態に係るデータ登録システムの変形例の機能構成を模式的に示すブロック図である。
【図９】本発明の実施の形態に係るデータ登録システムにおけるタイムスタンプサーバで使用される他のタイムスタンププロトコルを示す模式図である。
【符号の説明】
１    端末
２    タイムスタンプサーバ
３    インターネット
１１  データ保存部
１２  データ選択部
１３  ハッシュ値生成部
１４  データ検証部
２１  タイムスタンプ生成部
２２  レシート生成部
２３  レシート情報データベース
２４  時刻認証部
１０１  通信部
１０２  入力部
１０３  表示部
１０４  記憶部
１０５  演算処理部
２０１  通信部
２０２  認証処理部
２０３  登録処理部
２０４  検索処理部
２０５  記憶部
２０６  タイマ部
【図１】
2004304338.tif 000003
【図２】
2004304338.tif 000004
【図３】
2004304338.tif 000005
【図４】
2004304338.tif 000006
【図５】
2004304338.tif 000007
【図６】
2004304338.tif 000008
【図７】
2004304338.tif 000009
【図８】
2004304338.tif 000010
【図９】
2004304338.tif 000011