(57)【要約】【課題】正確なタイムスタンプを発行する。また、発行したタイムスタンプの検証処理量を低減する。【解決手段】受付部１１は、クライアント装置２からドキュメントハッシュを含むＴＳＱを受け付ける。処理部１３は、このドキュメントハッシュに受付時刻情報を付加して、ＴＳＴ（タイムスタンプトークン）を作成する。処理部１３は、生成したＴＳＴを保管用ＤＢ１３ａに保管して、深夜、早朝のように署名部１４の署名処理の量が少なくなったときに、バッチ処理としてＴＳＴをまとめて署名部１４に送出する。【選択図】図１
2007274571.tif 000002
【特許請求の範囲】
【請求項１】
利用者が利用するクライアント装置から送信されたデータに対するタイムスタンプ発行要求を受け付ける受付部と、
時刻を計時する時計部から前記タイムスタンプ発行要求を受け付けたときの受付時刻情報を取得し、前記受付部が受け付けたタイムスタンプ発行要求の対象データに、取得した前記受付時刻情報を付与してタイムスタンプトークンを作成するＴＳＴ作成部と、
データを記憶するための記憶部と、
前記タイムスタンプトークンが供給されて、供給されたタイムスタンプトークンに対して署名を行う署名部と、
前記ＴＳＴ作成部が作成した前記タイムスタンプトークンを前記記憶部に保管し、前記記憶部に保管したタイムスタンプトークンを一括して前記署名部に送出するＴＳＴ送出部と、を備えた、
ことを特徴とする時刻証明装置。
【請求項２】
前記ＴＳＴ送出部は、前記署名部の署名処理が少ない時間を判別し、判別した時間に、前記記憶部に保管したタイムスタンプトークンを一括して前記署名部に送出する、
ことを特徴とする請求項１に記載の時刻証明装置。
【請求項３】
前記ＴＳＴ作成部が作成したタイムスタンプトークンのハッシュ演算を行って、ハッシュ値を取得するハッシュ値取得部と、
前記時計部から時刻情報を取得し、前記ハッシュ値取得部が取得した複数のハッシュ値を、取得した時刻情報を介して連結することにより、ハッシュチェーンを作成するハッシュチェーン作成部と、
前記ハッシュチェーン作成部が作成したハッシュチェーンに含まれる時刻情報及び当該時刻情報と複数のハッシュ値との連結情報と前記署名部から受け取った署名付きタイムスタンプトークンに含まれている受付時刻情報とを比較することにより、前記受付時刻情報の正しさを検証する検証部と、を備えた、
ことを特徴とする請求項１又は２に記載の時刻証明装置。
【請求項４】
前記受付部は、前記ハッシュ値取得部がハッシュ値を取得したとき、前記クライアント装置に受付時刻情報を含む受付通知を行う、
ことを特徴とする請求項１乃至３のいずれか１項に記載の時刻証明装置。
【請求項５】
コンピュータに、
利用者が利用するクライアント装置から送信されたデータに対するタイムスタンプ発行要求を受け付ける手順、
前記タイムスタンプ発行要求を受け付けたときの受付時刻情報を取得し、前記受付部が受け付けたタイムスタンプ発行要求の対象データに、取得した前記受付時刻情報を付与してタイムスタンプトークンを作成する手順、
タイムスタンプを発行する署名処理量の多い少ないを判定し、前記署名処理量が多いと判定した場合、前記タイムスタンプトークンを保管する手順、
前記署名処理量が少ないと判定したときに、保管した前記タイムスタンプトークンを一括して送出する手順、
一括して送出された前記タイムスタンプトークンそれぞれに対するハッシュ値を生成し、生成したハッシュ値に対して署名を施す手順、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻証明装置及びプログラムに関するものである。
【背景技術】
【０００２】
契約書等の電子文書が特定の時刻に存在していることを証明する方法として時刻証明技術を用いた方法がある。
【０００３】
また、時刻証明技術を用いた方法の中でも、信頼のおける認証機関が署名を施したタイムスタンプを用いることにより時刻を証明するシンプルプロトコルと呼ばれる方式を用いたものがある。
【０００４】
タイムスタンプは、ドキュメント（電子文書）を受け付けた時刻を示すデータであり、タイムスタンプ技術は、ドキュメントがある特定時刻に存在していたことを証明するとともに、その時刻以降、ドキュメントのデータが変更されていないことを証明する技術である。
【０００５】
この技術では、利用者が利用するクライアント装置がデジタルデータのハッシュ値を求め、信頼のおける認証機関として、時刻認証局にハッシュ値を送る。時刻認証局は、送られたハッシュ値を正確な時刻の情報とともに暗号化し、タイムスタンプとしてクライアント装置に返送する。
【０００６】
クライアント装置は、返送されたタイムスタンプをドキュメントと共に保管する。このタイムスタンプを復号して、受付時刻情報を確認し、一方、ドキュメントのハッシュ値を別途計算して比較することにより、改ざんの検知が可能となる。
【０００７】
また、シンプルプロトコルによる方式は、公開鍵暗号方式に基づくプロトコルであり、１つ１つのドキュメントに時刻情報を付加する方式である。シンプルプロトコルでは、送られてきたタイムスタンプ発行要求に対して、時刻認証局に備えられた時刻証明装置は、ハッシュ値に、受け付けた受付時刻情報を付与し、このデータにタイムスタンプを発行する。
【０００８】
しかし、シンプルプロトコルによる方式を用いた時刻証明装置では、タイムスタンプを生成する際に実行する署名処理が大変重いため、大量のタイムスタンプ発行要求がなされた際、タイムスタンプ発行要求を受け付けた受付時間での正確なタイムスタンプを発行することが困難となる。
【０００９】
この問題を解決するために、例えば、署名を生成する装置を複数台設置することは可能である。しかし、時刻認証局には高い安全性が求められ、署名を付与するＨＳＭ等の耐タンパ装置は、大変高価なものであるため、この方法は現実的な実現方法ではない。
【００１０】
このような問題を解決したものとして、一定期間内のタイムスタンプ発行要求を、ハッシュツリーを用いてまとめ、そのハッシュツリーに対して署名を施したものをタイムスタンプとして利用者に発行する仕組みを備えた時刻証明装置がある（例えば、特許文献１参照）。
【００１１】
かかる時刻証明装置は、このような仕組みを備えることにより、１つの発行要求に対して行う署名処理回数を削減し、大量の発行要求による処理負荷の増加（署名処理回数）を抑制している。
【特許文献１】特開２００５−１３０４８８号公報（第３５頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、かかる従来の時刻証明装置では、一定時間内の発行要求に対して同じタイムスタンプが発行される。このため、従来の時刻証明装置では、通常のシンプルプロトコルを用いて発行されたタイムスタンプとは異なり、複数のドキュメントに対して、同じタイムスタンプが発行されることになる。
【００１３】
このため、従来の時刻証明装置の処理は軽減される一方、タイムスタンプの発行要求を行った利用者は、タイムスタンプを検証する際に、他の利用者のドキュメントハッシュを収集し、ハッシュツリーを再構築しなければならず、利用者の検証処理量が増加する。
【００１４】
本発明は、このような従来の問題点に鑑みてなされたもので、発行したタイムスタンプの検証処理量を低減することが可能な時刻証明装置及びコンピュータを提供することを目的とする。
【００１５】
また、本発明は、タイムスタンプ発行要求を受け付けた時刻で正確なタイムスタンプを発行することが可能な時刻証明装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
この目的を達成するため、本発明の第１の観点に係る時刻証明装置は、
利用者が利用するクライアント装置から送信されたデータに対するタイムスタンプ発行要求を受け付ける受付部と、
時刻を計時する時計部から前記タイムスタンプ発行要求を受け付けたときの受付時刻情報を取得し、前記受付部が受け付けたタイムスタンプ発行要求の対象データに、取得した前記受付時刻情報を付与してタイムスタンプトークンを作成するＴＳＴ作成部と、
データを記憶するための記憶部と、
前記タイムスタンプトークンが供給されて、供給されたタイムスタンプトークンに対して署名を行う署名部と、
前記ＴＳＴ作成部が作成した前記タイムスタンプトークンを前記記憶部に保管し、前記記憶部に保管したタイムスタンプトークンを一括して前記署名部に送出するＴＳＴ送出部と、を備えたことを特徴とする。
【００１７】
前記ＴＳＴ送出部は、前記署名部の署名処理が少ない時間を判別し、判別した時間に、前記記憶部に保管したタイムスタンプトークンを一括して前記署名部に送出するようにしてもよい。
【００１８】
前記ＴＳＴ作成部が作成したタイムスタンプトークンのハッシュ演算を行って、ハッシュ値を取得するハッシュ値取得部と、
前記時計部から時刻情報を取得し、前記ハッシュ値取得部が取得した複数のハッシュ値を、取得した時刻情報を介して連結することにより、ハッシュチェーンを作成するハッシュチェーン作成部と、
前記ハッシュチェーン作成部が作成したハッシュチェーンに含まれる時刻情報及び当該時刻情報と複数のハッシュ値との連結情報と前記署名部から受け取った署名付きタイムスタンプトークンに含まれている受付時刻情報とを比較することにより、前記受付時刻情報の正しさを検証する検証部と、を備えるようにしてもよい。
【００１９】
前記受付部は、前記ハッシュ値取得部がハッシュ値を取得したとき、前記クライアント装置に受付時刻情報を含む受付通知を行うようにしてもよい。
【００２０】
本発明の第２の観点に係るプログラムは、
コンピュータに、
利用者が利用するクライアント装置から送信されたデータに対するタイムスタンプ発行要求を受け付ける手順、
前記タイムスタンプ発行要求を受け付けたときの受付時刻情報を取得し、前記受付部が受け付けたタイムスタンプ発行要求の対象データに、取得した前記受付時刻情報を付与してタイムスタンプトークンを作成する手順、
タイムスタンプを発行する署名処理量の多い少ないを判定し、前記署名処理量が多いと判定した場合、前記タイムスタンプトークンを保管する手順、
前記署名処理量が少ないと判定したときに、保管した前記タイムスタンプトークンを一括して送出する手順、
一括して送出された前記タイムスタンプトークンそれぞれに対するハッシュ値を生成し、生成したハッシュ値に対して署名を施す手順、
を実行させるためのものである。
【発明の効果】
【００２１】
本発明によれば、発行したタイムスタンプの検証処理量を低減することができる。また、タイムスタンプ発行要求を受け付けた時刻で正確なタイムスタンプを発行することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態に係る時刻証明装置を図面を参照して説明する。
本実施形態に係る時刻証明装置の構成を図１に示す。
時刻証明装置１は、ＴＳＴ（Time Stamp Token：タイムスタンプトークン）を発行するＴＳＡ（Time Stamping Authority：時刻認証局）に備えられた装置である。
【００２３】
時刻証明装置１は、ＴＳＡに備えられた装置であり、受付部１１と、時計部１２と、処理部１３と、署名部１４と、からなる。
【００２４】
受付部１１は、利用者が利用するクライアント装置２から送信されたドキュメントのハッシュ値とともにタイムスタンプ発行要求を受け付けるためのものであり、処理部１３から送られた署名付きＴＳＴをクライアント装置２に送信するものである。時刻証明装置１は、署名付きＴＳＴをクライアント装置２に送信することにより、クライアント装置２に対しタイムスタンプを発行する。
【００２５】
クライアント装置２は、図２に示すように、ドキュメント１０１からこのハッシュ値（ｈａｓｈ）１０２を生成する。
【００２６】
ハッシュ値とは、与えられたドキュメントから不可逆な一方向関数（ハッシュ関数）を用いて生成された固定長の値であり、メッセージダイジェストとも呼ばれるものである。
【００２７】
ハッシュ値から原文を求めることや、同じハッシュ値を持つ異なった文章を作成することは極めて困難であるため、ハッシュ値を比較することにより、原文が同一であるか否かの確認が可能となる。
【００２８】
クライアント装置２は、生成したハッシュ値１０２をＴＳＱ（Time-Stamp-reQuest）に含めて時刻証明装置１に送信する。また、クライアント装置２は、時刻証明装置１から署名付きＴＳＴを受信して、この署名付きＴＳＴを１つのドキュメント１０１と共に保管する。
【００２９】
時計部１２は、時刻を正確に計時するものである。
処理部１３は、受付部１１からＴＳＱを受け取って、ＴＳＴを生成し、署名部１４に送出するとともに、署名部１４から署名付きＴＳＴを受け取ると、この署名付きＴＳＴを受付部１１に送る。
【００３０】
処理部１３は、受付部１１からＴＳＱを受け取ると、図３に示すように、時計部１２から、ＴＳＱを受け付けた受付時刻情報（ｔｉｍｅ）１０３を取得する。処理部１３は、ＴＳＱを受け取った順に、ＴＳＱに含まれているハッシュ値１０２と受付時刻情報１０３とを合わせてＴＳＴ１０４を生成する。
【００３１】
処理部１３は、ＴＳＴ１０４が複数の場合、図４に示すように、生成したＴＳＴ１０４を時刻順に並べ、ハッシュ値１０２の対応リスト１０５を作成する。
【００３２】
また、処理部１３は、対応リスト１０５のＴＳＴ１０４をひとまとめにしてハッシュ演算を行い、ハッシュ値（ｈａｓｈ）１０６を取得する。処理部１３は、ハッシュ１０６を取得する際、図５（ａ）に示すように、複数のＴＳＴ１０４を同じ時刻でまとめるか、あるいは、図５（ｂ）に示すように時刻順にＴＳＴ１０４並べてハッシュ演算を行う。
【００３３】
対応リスト１０５が複数の場合、処理部１３は、一定間隔、例えば、１分間隔でハッシュ演算を行ってハッシュ値１０６を取得する。
【００３４】
処理部１３は、必要に応じて、クライアント装置２に、ＴＳＱを受け付けた旨の受付通知を送信する。受付通知は、例えば、ＴＳＴ１０４に付与された受付時刻情報１０３とタイムスタンプ発行予定時刻とからなるものとする。
【００３５】
処理部１３は、図５に示すハッシュ値１０６を取得すると、このハッシュ値１０６をＳ−ｈａｓｈ１０７として、図６に示すようなハッシュチェーン１０８を生成する。
【００３６】
ハッシュチェーン１０８は、受け付けた時刻の正当性を示し、時刻情報の改竄を防止するためのものである。処理部１３は、時計部１２から、時刻証明装置１の時刻情報（ｔｉｍｅ）１０９を取得し、この時刻情報１０９をＳ−ｈａｓｈ１０７とＳ−ｈａｓｈ１０７との間に挿入することにより、ハッシュチェーン１０８を生成する。
【００３７】
また、処理部１３は、このハッシュチェーン１０８を利用して受付証明１１０を生成する。処理部１３は、このハッシュチェーン１０８から、時刻情報１０９、さらに、Ｓ−ｈａｓｈ１０７の連結情報を取得して、受付証明１１０を生成する。
【００３８】
この受付証明は、クライアント装置２に送付された受付通知の記載時刻と後に送付されるタイムスタンプに付与されている時刻とが異なっている場合、運用が正しく実施されているかどうかを確認するための監査を実施する場合等、ＴＳＡに異常処理が行われていないか否かを確認するために用いられるものである。
【００３９】
処理部１３は、このハッシュチェーン１０８から、時刻情報１０９、Ｓ−ｈａｓｈ１０７の連結情報を取得して、受付証明を生成する。
【００４０】
次に、処理部１３は、受け付けた対応リスト１０５に従い、生成したＴＳＴ１０４を署名部１４に送出する。本実施形態の処理部１３は、生成したＴＳＴ１０４を、バッチ処理として一括して署名部１４に送出する。このため、処理部１３は、ＴＳＴ１０４を保管するための保管用ＤＢ１３ａを備える。
【００４１】
処理部１３は、署名部１４の署名処理量が少ない時間として、例えば、深夜、早朝の時間を判別する。処理部１３は、メモリ（図示せず）を備え、この時間を予め記憶し、時計部１２が計測する時刻を取得し、この時間になると、保管用ＤＢ１３ａに保管したＴＳＴを一括して署名部１３に送出する。
【００４２】
尚、タイムスタンプの即時発行が望まれているものについては、処理部１３は、生成したＴＳＴ１０４を、保管用ＤＢ１３ａに保管せずに署名部１４に送出する。
【００４３】
処理部１３は、署名部１４から、図７に示す署名付きＴＳＴ１１１を受け取ると、保管用ＤＢ１３ａから、保管した受付証明１１０を取り出してＴＳＴ１０４に含まれている受付時刻情報１０３の正しさを検証する。
【００４４】
処理部１３は、受付証明１１０に含まれている時刻情報１０９、Ｓ−ｈａｓｈ１０７の連結情報に基づいて、この検証処理を行う。そして、処理部１３は、正しいと判定した場合には、署名付きＴＳＴ１１１を、受付部１１に送り、正しくないと判定した場合には、時刻証明装置１の運用を停止する。
【００４５】
署名部１４は、ＨＳＭ（Hardwere Security Module）等からなり、供給されたＴＳＴ１０４のハッシュ値１０４ａを生成し、生成したハッシュ値１０４ａに署名を行うものである。また、ＴＳＴ１０４のハッシュ値１０４ａの生成を、ＴＳＡで行ってもよい。
【００４６】
尚、公開鍵暗号化方式を用いたディジタル署名方式では、署名鍵（データ）と検証鍵（データ）とをペアにし、この２つの鍵を用いてデータの署名検証を行う方式である。このため、署名部１４は、専用のＴＳＴ署名鍵１４ａを保有し、署名付きＴＳＴ１１１に対し、このＴＳＴ署名鍵１４ａを用いて署名を行う。署名部１４は、署名を行うと、署名付きＴＳＴ１１１を処理部１３に送る。
【００４７】
次に本実施形態に係る時刻証明装置１の動作を説明する。
時刻証明装置１、クライアント装置２は、図８、９に示すフローチャートに従って動作する。
【００４８】
クライアント装置２は、ドキュメント１０１からドキュメントハッシュを演算し、ドキュメント１０１のハッシュ値１０２を取得する（ステップＳ１１）。
【００４９】
クライアント装置２は、ＴＳＱを時刻証明装置１に送信する（ステップＳ１２）。
【００５０】
時刻証明装置１の受付部１１は、このハッシュ値１０２を受け付けて（ステップＳ１３）、処理部１３に送る。
【００５１】
処理部１３は、時計部１２から受付時刻情報１０３を取得し、受付部１１から送られたハッシュ値１０２に、この受付時刻情報１０３を付加してＴＳＴ１０４を作成する（ステップＳ１４）。
【００５２】
処理部１３は、ＴＳＱを受け付けた時刻順にＴＳＴ１０４並べて対応リスト１０５を作成する（ステップＳ１５）。
【００５３】
処理部１３は、対応リスト１０５のハッシュ値１０６を取得する（ステップＳ１６）。
【００５４】
処理部１３は、受付通知を作成し（ステップＳ１７）、受付部１１に送る。
受付部１１は、処理部１３から送られた受付通知を、ハッシュ値の送信元のクライアント装置２に送信する（ステップＳ１８）。
【００５５】
処理部１３は、ハッシュチェーン１０８を作成する（ステップＳ１９）。
処理部１３は、ハッシュチェーン１０８を利用して受付証明１１０を作成する（ステップＳ２０）。
【００５６】
処理部１３は、保管用ＤＢ１３ａに、作成した受付証明１１０とＴＳＴ１０４とを保管する（ステップＳ２１）。
【００５７】
処理部１３は、時計部１２から時刻情報を取得して、署名部１４の署名処理量が少ない時間か否かを判定する（ステップＳ２２）。
【００５８】
署名部１４の署名処理量が少ない時間ではないと判定した場合（ステップＳ２２においてＮｏ）、処理部１３は、署名部１４の署名処理量が少ない時間まで待機する。
【００５９】
署名部１４の署名処理量が少ない時間と判定した場合（ステップＳ２２においてＹｅｓ）、処理部１３は、生成したＴＳＴ１０４を署名部１４に送出する（ステップＳ２３）。
【００６０】
署名部１４は、処理部１３からＴＳＴ１０４を受け取り、受け取ったＴＳＴ１０４のハッシュ値１０４ａを計算し、ＴＳＴ１０４のハッシュ値１０４ａに対し、ＴＳＴ署名鍵１４ａを用いて署名を行い、署名付きＴＳＴ１１１を生成する（ステップＳ２４）。
【００６１】
署名部１４は、生成した署名付きＴＳＴ１１１を処理部１３に送り（ステップＳ２５）、処理部１３は、署名付きＴＳＴ１１１に対して検証処理を行う（ステップＳ２６）。処理部１３は、図１０に示すフローチャートに従って検証処理を必要に応じて実行する。
処理部１３は、検証に必要なＴＳＴ１０４を収集する（ステップＳ３１）。
【００６２】
処理部１３は、受付証明１１０に含まれているＴＳＴ１０４の受付時刻情報１０３、ハッシュチェーン１０８の時刻情報１０９、連結情報と、署名付きＴＳＴ１１１に含まれている受付時刻情報１０３との間に矛盾があるか否かを判定する（ステップＳ３２）。
【００６３】
矛盾があると判定した場合（ステップＳ３２においてＹｅｓ）、処理部１３は、時刻証明装置１の運用を停止する（ステップＳ３５）。
【００６４】
矛盾がないと判定した場合（ステップＳ３２においてＮｏ）、処理部１３は、ハッシュチェーン１０８に付与する時刻情報１０９を設定し、ハッシュチェーン１０８を再構築する（ステップＳ３３）。
【００６５】
処理部は、元のハッシュチェーン１０８と再構築したハッシュチェーン１０８とが一致するか否かを判定する（ステップＳ３４）。
【００６６】
一致しないと判定した場合（ステップＳ３４においてＮｏ）、処理部は、時刻証明装置１の運用を停止させる（ステップＳ３５）。
【００６７】
一方、一致していると判定した場合（ステップＳ３４においてＹｅｓ）、処理部１３は、署名付きＴＳＴ１１１の受付時刻情報１０３は正しいと判定し、署名付きＴＳＴ１１１を受付部１１に送る（図９のステップＳ２７）。
【００６８】
受付部１１は、署名付きＴＳＴ１１１をクライアント装置２に送信する（ステップＳ２８）。
【００６９】
次に、図１１〜１３に基づいて、時刻証明装置１の動作を具体的に説明する。
図１１に示すように、クライアント装置２は、ドキュメント１０１−１，１０１−２，１０１−３から、それぞれ、ドキュメントのハッシュ値１０２−１，１０２−２，１０２−３を取得すると、ＴＳＱを、順次、時刻証明装置１に送信する（図８のステップＳ１１，Ｓ１２の処理）。
【００７０】
受付部１１が、ドキュメントハッシュ１０２−１，１０２−２，１０２−３を、それぞれ、１３時０１分、１３時０２分、１３時０３分に受け付けたとすると、処理部１３は、時計部１２から、それぞれ、受付時刻情報13:01，13:02，13:03を取得する。
【００７１】
そして、処理部１３は、ハッシュ値１０２−１と受付時刻情報13:01とのＴＳＴ１０４−１、ハッシュ値１０２−２と受付時刻情報13:02とのＴＳＴ１０４−２，ハッシュ値１０２−３と受付時刻情報13:03とのＴＳＴ１０４−３を、順次、作成し、この順に並べた対応リスト１０５−１を作成する。
【００７２】
処理部１３は、ハッシュ値１０６−１を取得すると（ステップＳ１６の処理）、受付時刻情報13:01，13:02，13:03とそれぞれのタイムスタンプ発行予定時刻を含む受付通知を作成し（ステップＳ１７の処理）、受付部１１は、この受付通知をクライアント２に送信する。
【００７３】
処理部１３は、同じように、対応リスト１０５−１の後にも、対応リスト１０５−２，１０５−３を作成するものとする。処理部１３は、一定間隔で対応リスト１０５−１，１０５−２，１０５−３のハッシュの演算を行い、ハッシュ値１０６−１，１０６−２，１０６−３を取得する（ステップＳ１６の処理）。
【００７４】
処理部１３は、受付通知の送信が行われると（ステップＳ１８の処理）、時計部１２から図１１に示す時刻情報１０９−１，１０９−２を取得する。取得した時刻情報１０９−１，１０９−２が、それぞれ、「13:10」，「13:20」だったとすると、処理部１３は、Ｓ−ｈａｓｈ１０７−１、時刻情報１０９−１＝13:10、Ｓ−ｈａｓｈ１０７−２、時刻情報１０９−２＝13:20、Ｓ−ｈａｓｈ１０７−３を、この順に連結してハッシュチェーン１０８を作成する（ステップＳ１９の処理）。
【００７５】
処理部１３は、ハッシュチェーン１０８を作成すると、ハッシュチェーン１０８を利用して受付証明１１０を作成する（ステップＳ２０の処理）。
【００７６】
そして、処理部１３は、時計部１２が計測する時刻を取得し、図１２に示すように、時刻ｔ０において、作成した受付証明１１０とＴＳＴ１０４とを保管用ＤＢ１３ａに保管する（ステップＳ２１の処理）。
【００７７】
処理部１３は、署名部１４の署名処理量が少なくなる深夜〜早朝の間の時刻ｔ１を判別すると、時刻ｔ１以降の時間に、保管用ＤＢ１３ａに保管したＴＳＴ１０４をバッチ処理にて一括して署名部１４に送出する（ステップＳ２３の処理）。
【００７８】
署名部１４は署名を行い、署名付きＴＳＴ１１１を送ると（ステップＳ２４，２５の処理）、処理部１３は、署名部１４から、署名付きＴＳＴ１１１を受け取り、保管用ＤＢ１３ａから、保管していた受付証明を取り出して、受付時刻情報が正しいか否かを検証する（ステップＳ２６の処理）。
【００７９】
図１３に示すように、対応リスト１０５−２、１０５−３のそれぞれのＴＳＴを検証に用いるデータとした場合、処理部１３は、Ｓ−ｈａｓｈ１０７−１〜１０７−３と、時刻情報１０９−１，１０９−２を用いて、この検証を行う。
【００８０】
例えば、検証処理は以下の手順で実施される。処理部１３は、署名付きＴＳＴ１１１が対応リスト１０５−２に含まれていた場合、その受付時刻情報１０３が、時刻１０９−１＝13:10と時刻情報１０９−２＝13:20との間に含まれているならば、矛盾はないと判定する。
【００８１】
このように、矛盾がないと判定した場合、処理部１３は、収集した対応リスト１０５−２、１０５−３のそれぞれのＴＳＴ１０４とハッシュチェーン１０８に付与する時刻情報１０９−１、１０９−２及びＳ−ｈａｓｈ１０７−１を用いて、ハッシュチェーン１０８を再構築する。
【００８２】
元のハッシュチェーン１０８と再構築したハッシュチェーン１０８とが一致した場合、処理部１３は、署名付きＴＳＴ１１１の受付時刻情報１０３は正しいと判定して、署名付きＴＳＴ１１１を受付部１１に送る（ステップＳ２７の処理）。受付部１１は、この署名付きＴＳＴ１１１をクライアント装置２に送信する（ステップＳ２８の処理）。
【００８３】
クライアント装置２は、時刻証明装置１から署名付きＴＳＴ１１１を受信して、この署名付きＴＳＴ１１１を１つのドキュメント１０１と共に管理する。
【００８４】
一方、矛盾がある場合、又は不一致の場合、処理部１３は、受付時刻情報は正しくなく、また、時刻証明装置１の運用も正しくないと判定して、この運用を停止させる（ステップＳ３５の処理）。
【００８５】
以上説明したように、本実施形態によれば、処理部１３は、生成したＴＳＴ１０４を保管用ＤＢ１３ａに保管して、深夜、早朝のように署名部１４の署名処理の量が少なくなったときに、バッチ処理としてＴＳＴ１０４をまとめて署名部１４に送出するようにした。
【００８６】
従って、大量のタイムスタンプ発行要求がなされる時刻認証局において、クライアント装置２からのＴＳＱの数や要求時刻を制限することなく、タイムスタンプ発行要求を受け付けた時刻で正確なタイムスタンプを発行することができる。
【００８７】
また、発行要求を効率的に割り振ることにより、署名部１４の負荷を軽減することができ、コストのかかる装置の増設を必要としない。
【００８８】
また、ＴＳＡの処理量の分散が可能とはなるものの、通常のシンプルプロトコルと同様にクライアント装置２のドキュメント１０１の１リクエストに対して、１つのタイムスタンプを発行することができる。従って、クライアント装置２において、従来のようなタイムスタンプの検証処理を必要としないため、発行したタイムスタンプの検証処理量を低減することができる。
【００８９】
また、ドキュメント１０１の１リクエストに対して、１つのタイムスタンプを発行したとしても、タイムスタンプ発行後のクライアント装置に処理を要求することはない。
【００９０】
また、受付証明を用いて検証処理を実行することにより、時刻認証局に要求される時刻の正確性を保証できる。
【００９１】
尚、本発明を実施するにあたっては、種々の形態が考えられ、上記実施形態に限られるものではない。
例えば、処理部１３は、処理部１３が署名部１４に送ったＴＳＴ１０４の数と、署名部１４から受け取った署名付きＴＳＴ１１１の数と、を比較することにより、署名部１４のキュー（署名処理量）が多いか少ないかを判定するようにしてもよい。
【００９２】
また、処理部１３が署名付きＴＳＴ１１１を署名部１４から受け取る時間間隔に基づいて署名部１４のキューの多い少ないを判定するようにしてもよい。即ち、署名部１４の署名に要する時間が予め既知であれば、この所要時間以上の時間間隔で署名付きＴＳＴ１１１を署名部１４から受け取れば、処理部１３は、署名部１４のキューは多いと判定することができる。
【００９３】
また、時刻証明装置１は、必ずしも時計部１２を備える必要はなく、外部から時刻情報を取得するようにしてもよい。
【００９４】
ハッシュ値を取得したときに通知する受付通知に受付証明を含めるようにしてもよい。また、この受付通知の送信手段は必ずしもメールでなくてもよく、文書であってもよい。
【００９５】
また、上記実施形態では、プログラムが、それぞれメモリ等に予め記憶されているものとして説明した。しかし、時刻証明装置１を、装置の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【００９６】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施形態に係る時刻証明装置の構成を示すブロック図である。
【図２】図１に示すクライアント装置の処理内容を示す図である。
【図３】図１に示す処理部がＴＳＴを生成する処理内容を示す図である。
【図４】図１に示す処理部が対応リストを作成する処理内容を示す図である。
【図５】図１に示す処理部がハッシュ値を取得する処理内容を示す図である。
【図６】図１に示す処理部がハッシュチェーンと受付証明を作成する処理内容を示す図である。
【図７】図１に示す署名部の処理内容を示す図である。
【図８】図１に示すクライアント装置、時刻証明装置の受付部、処理部、署名部の処理（その１）を示すフローチャートである。
【図９】図１に示すクライアント装置、時刻証明装置の受付部、処理部、署名部の処理（その２）を示すフローチャートである。
【図１０】図１に示す処理部が実行する検証処理を示すフローチャートである。
【図１１】図１に示すクライアント装置、時刻証明装置の具体的な動作を示す図である。
【図１２】図１に示す処理部と署名部との具体的な動作を示す図である。
【図１３】図１に示す処理部が実行する検証処理の具体的な動作を示す図である。
【符号の説明】
【００９８】
１  時刻証明装置
２  クライアント装置
１１  受付部
１２  時計部
１３  処理部
１３ａ  保管用ＤＢ
１４  署名部
【図１】
2007274571.tif 000003
【図２】
2007274571.tif 000004
【図３】
2007274571.tif 000005
【図４】
2007274571.tif 000006
【図５】
2007274571.tif 000007
【図６】
2007274571.tif 000008
【図７】
2007274571.tif 000009
【図８】
2007274571.tif 000010
【図９】
2007274571.tif 000011
【図１０】
2007274571.tif 000012
【図１１】
2007274571.tif 000013
【図１２】
2007274571.tif 000014
【図１３】
2007274571.tif 000015