(57)【要約】【課題】既に時刻証明を受けたデータの一部に対し、過去に存在していたとの時刻証明を改めて受けることのできるサービスを実現する。【解決手段】タイムスタンプサーバ５０は、要素データたるダイジェストｈ（Ａ）１０６，ｈ（Ｂ）１０８，ｈ（Ｃ）１１０から結合データ１４０を生成し、さらにハッシュ処理を行ってダイジェスト１４２を得る。そして、これを時刻証明書１２０の証明対象であるダイジェスト１１４と比較して、各要素データが時刻ｔ１１８に存在していたことを確認する。続いて、タイムスタンプサーバ５０では、削除要求１３４に従って、結合データ１４０からダイジェストｈ（Ｃ）を削除したデータ１４４を作成し、これが時刻ｔ１１８において存在したことを証明する新たな時刻証明書１５０を発行する。【選択図】図３
2007235736.tif 000002
【特許請求の範囲】
【請求項１】
証明対象データが過去の時刻ｔ１に存在した旨を示す時刻証明書を取得する時刻証明書取得手段と、
複数の要素データが結合された結合データを取得する結合データ取得手段と、
前記結合データに一方向関数を作用させて関数値データを求める関数値データ算出手段と、
前記関数値データを前記証明対象データと比較して、前記関数値データが時刻ｔ１に存在した旨を検証する検証手段と、
一又は複数の前記要素データを含む新証明対象データが、時刻ｔ１以降におけるある過去の時刻に存在した旨を示す新時刻証明書を発行する発行手段と、
を備える、ことを特徴とする時刻証明書発行装置。
【請求項２】
請求項１に記載の時刻証明書発行装置において、
前記新証明対象データは、前記結合データから一若しくは複数の前記要素データが削除されたデータ、前記結合データが複数に分割された各データ、又は、前記結合データに別の要素データがさらに結合されたデータである、ことを特徴とする時刻証明書発行装置。
【請求項３】
請求項１に記載の時刻証明書発行装置において、
前記発行手段においては、前記新証明対象データが時刻ｔ１に存在した旨を示す前記新時刻証明書が発行される、ことを特徴とする時刻証明書発行装置。
【請求項４】
請求項１に記載の時刻証明書発行装置において、
前記新証明対象データは、一又は複数の前記要素データと過去の時刻ｔ２に存在していたデータとが結合されたデータであり、
前記発行手段においては、前記新証明対象データが時刻ｔ１と時刻ｔ２のいずれか遅い時刻以降におけるある過去の時刻に存在した旨を示す前記新時刻証明書が発行される、ことを特徴とする時刻証明書発行装置。
【請求項５】
請求項１に記載の時刻証明書発行装置において、
各要素データは、各元データに一方向関数を作用させて求めた関数値データである、ことを特徴とする時刻証明書発行装置。
【請求項６】
請求項１に記載の時刻証明書発行装置において、
前記結合データ取得手段において取得される結合データは、前記新時刻証明書の発行要求に付随して外部から入力される、ことを特徴とする時刻証明書発行装置。
【請求項７】
請求項１に記載の時刻証明書発行装置において、
前記証明対象データが過去の時刻ｔ１に存在した旨を示す時刻証明書を生成する時刻証明書生成手段を備え、
前記時刻証明書取得手段において取得される時刻証明書は、前記時刻証明書生成手段において生成された時刻証明書であり、
前記結合データ取得手段において取得される結合データは、前記時刻証明書生成手段における前記時刻証明書の生成時に使用され、本時刻証明書発行装置に保存されていた結合データである、ことを特徴とする時刻証明書発行装置。
【請求項８】
コンピュータに対し、
証明対象データが過去の時刻ｔ１に存在した旨を示す時刻証明書を取得する時刻証明書取得手順と、
複数の要素データが結合された結合データを取得する結合データ取得手順と、
前記結合データに一方向関数を作用させて関数値データを求める関数値データ算出手順と、
前記関数値データを前記証明対象データと比較して、前記関数値データが時刻ｔ１に存在した旨を検証する検証手順と、
一又は複数の前記要素データを含む新証明対象データが、時刻ｔ１以降におけるある過去の時刻に存在した旨を示す新時刻証明書を発行する発行手順と、
を実行させる、ことを特徴とする時刻証明書発行プログラム。
【請求項９】
コンピュータが実行する方法であって、
証明対象データが過去の時刻ｔ１に存在した旨を示す時刻証明書を取得する時刻証明書取得手順と、
複数の要素データが結合された結合データを取得する結合データ取得手順と、
前記結合データに一方向関数を作用させて関数値データを求める関数値データ算出手順と、
前記関数値データを前記証明対象データと比較して、前記関数値データが時刻ｔ１に存在した旨を検証する検証手順と、
一又は複数の前記要素データを含む新証明対象データが、時刻ｔ１以降におけるある過去の時刻に存在した旨を示す新時刻証明書を発行する発行手順と、
を含む、ことを特徴とする時刻証明書発行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの存在を証明する時刻証明の技術、特に、データが複数の要素データからなる場合の技術に関する。
【背景技術】
【０００２】
第三者機関によって行われる時刻証明（タイムスタンプサービス）の技術が知られている。典型的には、第三者機関は、証明対象となるデータのハッシュ関数値（ダイジェスト）と、時刻情報とに対し、デジタル署名を行って時刻証明書を生成する。
【０００３】
特許文献１には、クライアント装置が複数のダイジェストを統合した統合ダイジェストを生成してサーバ装置に送付し、サーバ装置がこの統合ダイジェストと時刻情報にデジタル署名を行って時刻証明書を生成する技術が開示されている。特許文献２には、大量のデータに対する時刻証明を受けるため一方向関数を二段階に作用させて、データ量を減少させる技術が開示されている。
【０００４】
【特許文献１】特開２００１−１４２３９８号公報
【特許文献２】特開２００４−３０４３３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１，２の技術では、複数の電子文書をまとめたデータに対して時刻証明を受けるため、ネットワークの負荷やサーバ装置の負荷を低減することができる。しかし、一旦時刻証明を受けたならば、証明対象となった全てのデータを公開しないと、そのデータが真性なものであることを立証できない。このため、例えば、ＰＣ（パーソナルコンピュータ）上の複数のファイルに対してルーチン的に時刻証明を受けたものの、立証段階においてプライベートにかかわるファイルの公開を回避したいとの要請を満たすことはできない。また、公開したくないファイルを取り除いて改めて通常の時刻証明を受ける場合には、証明される時刻が変わってしまい、当初の効力を得られないという問題が生じる。これに対し、予め細かなデータ単位につきそれぞれ時刻証明を受ける態様も考えられるが、手続きの煩雑さや証明書発行料金などの観点からすれば、必ずしも好ましいものとは言えない。
【０００６】
本発明の目的は、既に時刻証明を受けたデータの一部に対し、過去に存在していたとの時刻証明を改めて受けることのできるサービスを実現することにある。
【０００７】
本発明の別の目的は、時刻証明を受けたデータの再編集を可能とすることにある。
【課題を解決するための手段】
【０００８】
本発明の時刻証明書発行装置は、証明対象データが過去の時刻ｔ１に存在した旨を示す時刻証明書を取得する時刻証明書取得手段と、複数の要素データが結合された結合データを取得する結合データ取得手段と、前記結合データに一方向関数を作用させて関数値データを求める関数値データ算出手段と、前記関数値データを前記証明対象データと比較して、前記関数値データが時刻ｔ１に存在した旨を検証する検証手段と、一又は複数の前記要素データを含む新証明対象データが、時刻ｔ１以降におけるある過去の時刻に存在した旨を示す新時刻証明書を発行する発行手段と、を備える。
【０００９】
本発明の時刻証明書発行装置は、いわゆるタイムスタンプを付与する装置であり、典型的にはクライアント・サーバシステムにおけるサーバを構成する。時刻証明書発行装置は、ワークステーションやＰＣなど、演算・記憶機能を備えたコンピュータハードウエアとその動作を制御するコンピュータソフトウエアを用いて構築することができる。また、時刻証明書発行装置は、単体のコンピュータハードウエアを利用した集中処理型として構築されても、通信可能な複数のコンピュータハードウエアを利用した分散処理型として構築されてもよい。
【００１０】
時刻証明書取得手段は、時刻証明書を取得する手段である。時刻証明書は、証明対象データが過去の時刻ｔ１に存在した旨を示すものであり、ゆえに、証明対象データが時刻ｔ1以降改ざんされていない旨を立証できるものである。時刻証明書は、例えば、証明対象データと時刻ｔ１の記載とにデジタル署名が付与されてなる。もちろん、必要に応じて、様々な付随データを含めることができる。時刻証明書は、本時刻証明書発行装置によって発行されたものであっても、他の装置によって発行されたものであってもよい。また、時刻証明書の取得は、クライアントからの入力により行われても、内部の保存先からの読み込みにより行われてもよい。なお、典型的には、取得した時刻証明書に対しては、その真贋を見極めるための検証が行われる。
【００１１】
結合データ取得手段は、結合データを取得する手段である。ここで、結合データは、複数の要素データを含むデータであり、要素データは、時刻証明の対象単位となりうるデータである。結合データの取得は、クライアントからの入力により行われても、内部の保存先からの読み込みにより行われてもよい。また、結合データの取得は、結合データそのものを取得することで行われてもよいし、各要素データとその並び順情報など結合データを生成可能なデータ群を取得することで行われてもよい。
【００１２】
関数値データ算出手段は、結合データに対し一方向関数を作用させて関数値データを求める手段である。ここで、一方向関数とは、実質的に逆関数が得られない関数である。一方向関数の代表例としてはハッシュ関数が挙げられる。どの一方向関数を用いるかの情報は、例えば、クライアントからの入力や、時刻証明書の記載などから得られる。また、検証手段は、関数値データ算出手段により求められた関数値データが、時刻ｔ１に存在したものであるか否かを関数値データと証明対象データの比較によって検証する手段である。通常は、前記時刻証明書に含まれる前記証明対象データと、前記関数値データとの一致を確認することで検証が行われる。そして、発行手段は、一又は複数の前記要素データを含む新証明対象データが、時刻ｔ１以降におけるある過去の時刻に存在した、また、時刻ｔ1以降改ざんされていない旨を示す新時刻証明書を発行する。新証明対象データは、一又は複数の前記要素データを含むデータであって、先の証明対象データとは異なるデータである。
【００１３】
この構成によれば、新証明対象データが過去に存在しえた旨を示す時刻証明書を新たに発行することができる。したがって、例えば、プライベートにかかるデータや機密にかかるデータを取り除くなど、証明対象データに対する再編集処理が可能となる。
【００１４】
本発明の時刻証明書発行装置の一態様においては、前記新証明対象データは、前記結合データから一若しくは複数の前記要素データが削除されたデータ、前記結合データが複数に分割された各データ、又は、前記結合データに別の要素データがさらに結合されたデータである。これらは、新証明対象データの生成態様の例であり、この他にも要素データを単位として様々に新証明対象データを生成しうる。どのようなデータを新証明対象データとするかは、例えば、クライアントからの入力に基づいて選択される。
【００１５】
本発明の時刻証明書発行装置の一態様においては、前記発行手段においては、前記新証明対象データが時刻ｔ１に存在した旨を示す前記新時刻証明書が発行される。時刻ｔ１は、各要素データの存在が証明されている最も古い時刻である。
【００１６】
本発明の時刻証明書発行装置の一態様においては、前記新証明対象データは、一又は複数の前記要素データと過去の時刻ｔ２に存在していたデータとが結合されたデータであり、前記発行手段においては、前記新証明対象データが時刻ｔ１と時刻ｔ２のいずれか遅い時刻以降におけるある過去の時刻に存在した旨を示す前記新時刻証明書が発行される。なお、信頼度を高めるため、時刻ｔ２に存在していたデータに対しても時刻証明書に基づく検証を行うことが望ましい。
【００１７】
本発明の時刻証明書発行装置の一態様においては、各要素データは、各元データに一方向関数を作用させて求めた関数値データである。ここでの一方向関数は、関数値データ算出手段において用いられる一方向関数とは異なっていてもよい。また、各要素データ毎に異なる一方向関数が用いられていてもよい。なお、証明効率を高める点からは、一方向関数は元データよりもデータ量の小さい関数値データを生成するものであることが望ましく、また、秘密保持の観点からは、一方向関数は元データの内容を推定できない関数値データを生成するものであることが望ましい。
【００１８】
本発明の時刻証明書発行装置の一態様においては、前記結合データ取得手段において取得される結合データは、前記新時刻証明書の発行要求に付随して外部から入力される。これにより、時刻証明書発行装置が記憶すべきデータ量を減らすことができる。なお、この利点をさらに強調するため、新時刻証明書の発行に必要な全てのデータを外部からの入力により取得することとし、時刻証明書発行装置ではこうしたデータを内部保持しないようにしてもよい。
【００１９】
本発明の時刻証明書発行装置の一態様においては、前記証明対象データが過去の時刻ｔ１に存在した旨を示す時刻証明書を生成する時刻証明書生成手段を備え、前記時刻証明書取得手段において取得される時刻証明書は、前記時刻証明書生成手段において生成された時刻証明書であり、前記結合データ取得手段において取得される結合データは、前記時刻証明書生成手段における前記時刻証明書の生成時に使用され、本時刻証明書発行装置に保存されていた結合データである。これにより、時刻証明書発行装置を利用するクライアント装置が記憶すべきデータ量を減らすことができる。
【発明を実施するための最良の形態】
【００２０】
［実施態様１］  図１は、タイムスタンプシステム１０の構成例を示す概略的なブロック図である。タイムスタンプシステム１０は、クライアント２０とタイムスタンプサーバ５０とがネットワーク７０により接続されてなる。
【００２１】
クライアント２０は、ＰＣ等のコンピュータによって構築された装置である。クライアント２０は、ユーザ指示や、設定されたプログラムに従って、タイムスタンプサーバ５０に対し、データの時刻証明の要求や、過去に時刻証明されたデータを編集したデータに対する時刻証明の要求を行う。このための構成要素として、クライアント２０には、記憶部２２、データ生成部２４、指令部２８、送受信部３０、及び時刻証明書検証部３２が含まれている。
【００２２】
記憶部２２は、ハードディスクや半導体メモリを用いて構築されている。記憶部２２には、時刻証明の本来的な対象である元データ、その時刻証明書、再度の時刻証明に必要となるデータ等が保存される。データ生成部２４は、内蔵するハッシュ処理部２６を利用して、時刻証明の直接的な対象となるデータを元データから生成する。具体的には、記憶部２２に保存されている各元データにハッシュ処理を行い、時刻証明対象の単位となる要素データを生成し、この要素データを結合した後に、結合されたデータに再度ハッシュ処理を行って時刻証明の直接的な対象となるデータを生成する。また、指令部２８は、タイムスタンプサーバ５０に対し、過去に時刻証明されたデータを要素データの単位で編集する指示を与え、さらに、編集後のデータに対する時刻証明を要求するものである。送受信部３０は、ネットワークインターフェースであり、タイムスタンプサーバ５０との間で各種データの入出力を行う。そして、時刻証明書検証部３２は、タイムスタンプサーバ５０によって発行された時刻証明書を検証する。検証の際には、必要に応じて、ネットワーク７０上の認証局から取得したタイムスタンプサーバ５０の公開鍵証明書が用いられる。
【００２３】
タイムスタンプサーバ５０は、時刻証明発行装置として機能する装置である。タイムスタンプサーバ５０では、クライアント２０からの要求を受け付けて、データの時刻証明をしたり、過去に時刻証明されたデータを編集して再度時刻証明したりする処理が行われる。この処理を行うため、タイムスタンプサーバ５０には、時刻証明書検証部５２、データ検証部５４、新データ生成部６０、時刻証明書生成部６２、及び送受信部６４が設けられている。
【００２４】
時刻証明書検証部５２は、クライアント２０から送信される時刻証明書の検証を行う。また、データ検証部５４は、時刻証明書とともにクライアント２０から送信されたデータが、時刻証明書の証明対象となるデータの要素データによって構成されていることを検証するものである。この目的のため、データ検証部５４には、ハッシュ処理部５６と比較部５８が設けられている。ハッシュ処理部５６は、受信したデータに対し、ハッシュ処理を施し、ダイジェスト（ハッシュ値）を求めるものである。そして、比較部５８は、得られたダイジェストを、時刻証明書に記載されたデータと比較し、一致しているか否かを確認する。一致している場合には、時刻証明書が証明する時刻において、受信したデータが存在していたこと、そして、受信したデータを構成する要素データ及び対応する元データが存在していたことが検証される。
【００２５】
新データ生成部６０は、クライアント２０からの指示に基づいて、時刻証明対象となるデータを新たに作成する。このデータは、データ検証部５４によって過去における存在が証明された要素データを組み合わせて作られる。時刻証明書生成部６２においては、作成された様々なデータに対する時刻証明書が生成される。対象となるデータが、新データ生成部６０で生成された場合には、新データを構成する要素データに対して証明されている時刻を証明時刻とする時刻証明書が新たに生成される。また、送受信部６４は、ネットワークインターフェースであり、クライアント２０との間で各種データの入出力を行う。
【００２６】
続いて、このタイムスタンプシステム１０で行われる典型的な処理について、図２と図３を用いて説明する。
【００２７】
図２は、クライアント２０が保持するデータに対し、最初の時刻証明書が発行される過程を示す図である。図示したファイルＡ１００、ファイルＢ１０２、及びファイルＣ１０４は、クライアント２０の記憶部２２に記憶された電子文書やプログラムなどのデータであり、現在時刻での存在証明を受けたい元データである。
【００２８】
データ生成部２４においては、まず、ハッシュ処理部２６を利用して、このファイルＡ１００、ファイルＢ１０２、及びファイルＣ１０４に対し、それぞれハッシュ処理を行い、ダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、及びダイジェストｈ（Ｃ）１１０を生成する。ここでｈはハッシュ関数を表現している。これらのダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、及びダイジェストｈ（Ｃ）１１０は、後に、証明対象データの編集単位となりうる要素データである。続いて、データ生成部２４は、ダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、及びダイジェストｈ（Ｃ）１１０を結合させて、結合データ１１２を生成する。そして、ハッシュ処理部２６によって、この結合データ１１２のダイジェスト１１４が求められる。結合を「＋」で表現したならば、結合データ１１２は、ｈ（Ａ）＋ｈ（Ｂ）＋ｈ（Ｃ）と表現され、ダイジェスト１１４は、ｈ（ｈ（Ａ）＋ｈ（Ｂ）＋ｈ（Ｃ））≡ｈ2と表現される。このダイジェスト１１４は、元データが少しでも異なれば値が大きく変わるという性質をもつ。ゆえに、ダイジェスト１１４の存在が証明された場合には、対応する全ての元データの存在が証明されることとなる。
【００２９】
生成されたダイジェスト１１４は、送受信部３０によって、タイムスタンプサーバ５０に送信される。タイムスタンプサーバ５０では、送受信部６４によってダイジェスト１１４が受信される。時刻証明書生成部６２は、このダイジェスト１１４に現在時刻ｔ１１８を付与したデータ１１６を生成し、さらに、データ１１６にデジタル署名１２２を施して時刻証明書１２０を生成する。作成された時刻証明書１２０は、送受信部６４を通じてクライアント２０に送信される。
【００３０】
クライアント２０では、必要に応じて時刻証明書検証部３２による検証を行った後に、時刻証明書１２０を記憶部２２に記憶する。記憶にあたっては、時刻証明書１２０は、ファイルＡ１００、ファイルＢ１０２、及びファイルＣ１０４と対応づけられる。記憶部２２には、さらに、ダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、及びダイジェストｈ（Ｃ）１１０が記憶される。また、記憶部２２には、結合データ１１２を生成した際におけるダイジェスト並び順データや、ハッシュ処理部２６で用いたハッシュ関数を示すハッシュ情報なども記憶される。
【００３１】
図３は、時刻証明書の再発行過程処理の流れを説明する図である。図においては、説明の簡略化のため、図２と対応する構成要素には図２と同一の番号を付している。
【００３２】
クライアント２０においては、記憶部２２に、時刻証明書１２０、ダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、ダイジェストｈ（Ｃ）１１０、並び順データ１３０、及びハッシュ情報１３２が格納されており、これらは元データたるファイルＡ１００、ファイルＢ１０２、及びファイルＣ１０４と対応づけられている。また、指令部２８では、証明対象となるデータを変更する編集指令として、ダイジェストｈ（Ｃ）１１０（つまりファイルＣ１０４）を削除する削除要求１３４が生成されている。これらのデータは、送受信部３０を通じて、タイムスタンプサーバ５０に送信される。
【００３３】
タイムスタンプサーバ５０では、まず、時刻証明書生成部６２において時刻証明書１２０の検証を行う（Ｓ１０）。その結果、検証に失敗した場合には、処理は打ち切られ、理由とともにその旨の通知がクライアント２０に送られる。データ検証部５４では、入力されたダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、ダイジェストｈ（Ｃ）１１０、並び順データ１３０から結合データ１４０を生成し、さらに、ハッシュ処理部５６を用いてハッシュ情報１３２に従ったダイジェスト１４２を算出する。また、比較部５８は、算出されたダイジェスト１４２と時刻証明書１２０に記載されたダイジェスト１１４とが一致するか否かを確かめる。その結果、両ダイジェスト１１４，１４２が一致していない場合には、処理は打ち切られ、理由とともにその旨の通知がクライアント２０に送られる。他方、両ダイジェスト１１４，１４２が一致する場合には、ダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、及びダイジェストｈ（Ｃ）１１０が時刻ｔ１１８に存在していたことを確認できたことになる。
【００３４】
続いて、新データ生成部６０による新たなデータ生成が行われる。新データは、新しく時刻証明を受けるためのデータである。データ生成は、具体的には、クライアント２０の指令部２８で作成された編集指示に基づいて行われる。図３に示した例では、編集指示としてダイジェストｈ（Ｃ）１１０の削除要求がなされている。そこで、新データ生成部６０では、結合データ１４０からダイジェストｈ（Ｃ）１１０を削除して、ダイジェストｈ（Ａ）１０６とダイジェスト（Ｂ）１０８が結合されたデータ１４４を作成する。そして、新データ生成部６０では、さらに、ハッシュ情報１３２に基づいてデータ１４４のハッシュ処理を行い、ｈ（ｈ（Ａ）＋ｈ（Ｂ））≡ｈ’2で表現されるダイジェスト１４６を作成する。
【００３５】
時刻証明書生成部６２は、ダイジェスト１４６に対する時刻証明書を生成する。具体的には、まず、時刻証明書１２０に記された時刻ｔ１１８の値がダイジェスト１４６に付されたデータ１４８を生成する。これは、上述の通り、データ検証部５４によって、ダイジェスト１４６の要素データたるダイジェストｈ（Ａ）１０６とダイジェスト（Ｂ）１０８が時刻ｔ１１８において存在したことを検証されたことを根拠として行われる。次に、このデータ１４８に対し、タイムスタンプサーバ５０のデジタル署名１５２を施す。こうしてダイジェスト１４６に対する時刻証明書１５０が完成し、送受信部６４を通じてクライアント２０に送信される。
【００３６】
クライアント２０では、時刻証明書検証部３２において時刻証明書１５０の検証を行った後、元データたるファイルＡ１００及びファイルＢ１０２と関連づけてこの時刻証明書１５０を記憶部２２に保存する。クライアント２０は、時刻証明書１５０を用いることで、元データたるファイルＡ１００とファイルＢ１０２のセットが時刻ｔ１１８に存在したことを立証することができる。
【００３７】
［実施態様２］  実施態様１の例は、クライアント２０が時刻証明要求を行う場合に、必要なデータを全てタイムスタンプサーバ５０に送信するものであった。しかし、クライアント２０とタイムスタンプサーバ５０において保持すべきデータの分配は任意に行うことができる。以下では、図４乃至図６を用いて、クライアント２０が保持すべきデータをなるべく減らすようにした態様例の説明を行う。
【００３８】
図４は、実施態様２を実現するタイムスタンプシステム２００の概略構成を示している。この図は、図１に対応する図であり、図１に対応する構成要素には同一の番号を付して説明を簡略化する。
【００３９】
タイムスタンプシステム２００において特徴的な点は、タイムスタンプサーバ２０２に記憶部２０４が設けられていることである。記憶部２０４には、最初の時刻証明の際にクライアント２０から受信したデータやタイムスタンプサーバ２０２で生成したデータのうち、再度の時刻証明の際に必要となるデータが保存される。これにより、再度の時刻証明の際に、クライアント２０からタイムスタンプサーバ２０２に送信するデータを減らすことが可能となる。
【００４０】
図５は、クライアント２０が保持するデータを対象とした最初の時刻証明書の発行過程を示している。図５は、図２に対応する図であり、重複する処理については適宜説明を簡略化する。
【００４１】
クライアント２０では、実施態様１と同様に、データ生成部２４において、ダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、及びダイジェストｈ（Ｃ）１１０が生成される。しかし、これらのデータは、結合されることなく、タイムスタンプサーバ２０２に送信される。また、タイムスタンプサーバ２０２へは、並び順データ１３０とハッシュ情報も送信される。
【００４２】
タイムスタンプサーバ２０２では、受信したダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、ダイジェストｈ（Ｃ）１１０、並び順データ１３０から結合データ１１２を生成する。そして、受信したハッシュ情報１３２に従って結合データ１１２にハッシュ処理を行い、ダイジェスト１１４を生成する。
【００４３】
生成したダイジェスト１１４に対して、現在時刻ｔ１１８が付与されデータ１１６が形成される過程は、実施態様１と同様である。しかし、ここでは、データ１１６に対して、即座にはデジタル署名が施されない。すなわち、まず、一意に識別可能なＩＤ２１２を付与したデータ２１０が生成され、このデータ２１０に対してデジタル署名２１４が施される。
【００４４】
こうして生成された時刻証明書２１６は、クライアント２０に送信されるとともに、タイムスタンプサーバ５０内の記憶部２０４に記憶される。また、記憶部２０４には、クライアント２０から受信したダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、ダイジェストｈ（Ｃ）１１０、並び順データ１３０、及びハッシュ情報１３２も格納され、これらはＩＤ１１８と対応づけられる。
【００４５】
続いて、図６を用いて、時刻証明書の再発行過程処理の流れを説明する。図６は、図３に対応する図であり、重複する処理については適宜説明を簡略化する。
【００４６】
この例では、クライアント２０からタイムスタンプサーバ２０２へは、ＩＤ２１２と分割要求２２０が送信される。ＩＤ２１２は、図５に示した過程で発行された時刻証明書２１６から取得したものであり、タイムスタンプサーバ２０２に対し、どのデータにかかる時刻証明を要求するかを明らかにするものである。また、分割要求２２０は、結合データをｈ（Ａ）＋ｈ（Ｂ）とｈ（Ｃ）とに分割するように要求する編集指令としてのデータである。
【００４７】
タイムスタンプサーバ２０２においては、記憶部２０４に記憶されたデータのうち、受信したＩＤ２１２に関連するデータ群２２２が処理対象として認識される。そして、この中のダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、ダイジェストｈ（Ｃ）１１０、並び順データ１３０から結合データ１１２が生成され、さらにハッシュ情報１３２に従ってダイジェスト１１４が求められる。求められたダイジェスト１１４は、記憶部２０４に記憶された時刻証明書２１６内のダイジェスト１１４と比較される（Ｓ５０）。そして、両者が一致しない場合には、処理は打ち切られ、理由とともにその旨の通知がクライアント２０に送られる。他方、両者が一致する場合には、記憶部２０４に保存されたデータが、時刻証明書２１６の証明対象となったデータであることが確認される。ただし、保存されたデータが改変されていないとの確証が得られるならば、ここで示した検証処理を省略することも可能である。
【００４８】
続いて、分割要求２２０に従って、結合データ１１２の分割が行われる。ただし、図示した流れでは、結合データ１１２そのものではなく、記憶部２０４に記憶されたダイジェストｈ（Ａ）１０６、ダイジェストｈ（Ｂ）１０８、ダイジェストｈ（Ｃ）１１０、並び順データ１３０に基づいて分割処理を行っている。具体的には、分割により、ダイジェストｈ（Ａ）１０６と、ダイジェストｈ（Ｂ）１０８及びダイジェストｈ（Ｃ）１１０からなるデータ２２４とが得られる。そして、ダイジェストｈ（Ａ）１０６に対しては時刻証明書２１６に記載された時刻ｔ１１８が付与されて、データ２２６が作られる。また、データ２２４に対してはハッシュ情報１３２に従ったハッシュ処理が行われて、ｈ（ｈ（Ａ）＋ｈ（Ｂ））≡ｈ’’2なるダイジェスト２２８が生成され、さらに時刻１１８が付与されてデータ２３０が生成される。最後に、データ２２６，２３０に対し、それぞれデジタル署名２３２，２３６が付され、時刻証明書２３４，２３８が作成される。クライアント２０では、この時刻証明書２３４，２３８を受信して、対応するデータと関連づけて保存する。
【００４９】
なお、この例では、再発行された時刻証明書２３４，２３８には、ＩＤを付さなかった。しかし、図５に示した過程と同様に、ＩＤを付して、次の時刻証明に備えるようにしてもよい。
【００５０】
以上においては、実施態様１で、当初の結合データから一部の要素データを削除する例を示し、実施態様２で、当初の結合データを複数に分割する例を示した。しかし、当初の結合データの編集は、これ以外にも様々に行うことが可能である。例えば、既に時刻証明書が発行された別の証明対象データの一部または全部との結合を行うことも有効である。この場合には、全時刻証明書の中で最も遅い時刻を証明時刻とする新時刻証明書を発行すればよい。
【図面の簡単な説明】
【００５１】
【図１】実施態様１のシステム構成例を示すブロック図である。
【図２】実施態様１における最初の時刻証明書発行過程を示す図である。
【図３】実施態様１における次の時刻証明書発行過程を示す図である。
【図４】実施態様２のシステム構成例を示すブロック図である。
【図５】実施態様２における最初の時刻証明書発行過程を示す図である。
【図６】実施態様２における次の時刻証明書発行過程を示す図である。
【符号の説明】
【００５２】
１０，２００  タイムスタンプシステム、２０  クライアント、２２，２０４  記憶部、２４  データ生成部、２６  ハッシュ処理部、２８  指令部、３０  送受信部、３２  時刻証明書検証部、５０，２０２  タイムスタンプサーバ、５２  時刻証明書検証部、５４  データ検証部、５６  ハッシュ処理部、５８  比較部、６０  新データ生成部、６２  時刻証明書生成部、６４  送受信部、７０  ネットワーク。
【図１】
2007235736.tif 000003
【図２】
2007235736.tif 000004
【図３】
2007235736.tif 000005
【図４】
2007235736.tif 000006
【図５】
2007235736.tif 000007
【図６】
2007235736.tif 000008