説明

タイムスタンプ検証プログラム、タイムスタンプ検証システム、タイムスタンプ検証方法、タイムスタンプ生成依頼方法

【課題】複数のデジタルデータに共通したタイムスタンプを取得した場合でも、デジタルデータに付加されたタイムスタンプの個別検証を可能にする。
【解決手段】クライアント1は、コンテンツC1に付加されたコンテンツC1〜C3の共通のタイムスタンプの検証を依頼する際、他のコンテンツC2,C3のID及びダイジェストとタイムスタンプを含む付加情報をコンテンツC1に付加して送信する。コンテンツ管理サーバ4において、ダイジェスト生成部62は、受信したコンテンツC1から生成したダイジェストと付加情報に含まれている他のコンテンツC2,C3のダイジェストとの結合ダイジェスト及びタイムスタンプ生成時刻と、タイムスタンプを復号して得たダイジェストとを比較することでコンテンツC1に付加されたタイムスタンプの検証を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タイムスタンプ検証、特に複数のデジタルデータに対して共通したタイムスタンプを生成したときのそのタイムスタンプの取扱いに関する。
【背景技術】
【0002】
コンピュータ上において電子ファイル等のデジタルデータが作成されると、その作成時刻がデジタルデータの属性情報として設定される。ただ、作成時刻は、本来、変更されるべきでない属性情報であると考えられるが、実際には通常のデータと同様に書き換えることが可能である。つまり、デジタルデータは、過去や未来の時刻を持つデータとして自由自在に作り出すことができてしまうため、デジタルデータが実際にいつ作成されたものであるのか、属性情報のみで保証できないのが現実である。
【0003】
そこで、現在では、デジタルデータの時刻認証を行うために第三者機関によるタイムスタンプ局が設けられている。すなわち、ユーザがデジタルデータのダイジェストを含むタイムスタンプ要求をタイムスタンプ局へ送信すると、タイムスタンプ局では、送られてきたダイジェストに時刻情報を付加した後、タイムスタンプ局の秘密鍵を用いてデジタル署名を行った後、署名されたダイジェストを返信する。なお、この返信する情報は、一般に「タイムスタンプトークン」と呼ばれている。そして、ユーザがデジタルデータの、ある時刻での存在を証明したいとき、当該デジタルデータのタイムスタンプが付加されたダイジェストを、タイムスタンプ局においてデジタル署名に用いた秘密鍵に対応した公開鍵を保有するタイムスタンプ局等へ送信することでタイムスタンプの検証を依頼する。依頼を受けたタイムスタンプ局等では、デジタル署名を利用して、送られてきたタイムスタンプの検証を行う。これにより、ユーザは、当該デジタルデータがその時刻にはすでに存在していたことを証明することができる。
【0004】
以上のように、従来においては、デジタルデータから生成されたダイジェストをタイムスタンプ局に送信することで時刻認証されたタイムスタンプを取得することができる。ただ、タイムスタンプ局からタイムスタンプを取得するには、タイムスタンプ局へダイジェストを送信する必要がある。すなわち、多数のデジタルデータに対してタイムスタンプを取得したい場合、従来においては、全てのデジタルデータのダイジェストを送信しなければならず面倒であった。
【0005】
そこで、このような問題を解決するために、複数のデジタル文書を結合してダイジェストを生成し、その結合したダイジェストをタイムスタンプ局へ送信するような技術が提案されている(例えば特許文献1)。この従来技術を利用することで、ユーザは、複数のデジタル文書に対して共通した1つのタイムスタンプを取得することができる。従って、複数のデジタル文書と共通の1つのタイムスタンプとの対応関係を自ら管理しておけば、全てのデジタル文書のダイジェストをタイムスタンプ局へ送信する煩わしさから解消されると共に、タイムスタンプの発行に対して従量課金がされる場合には、コストの削減にも貢献することができる。
【0006】
【特許文献1】特開2001−142398号公報
【特許文献2】特開2003−338815号公報
【特許文献3】特開2001−209308号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、従来技術においては、共通したタイムスタンプをデジタル文書に付加した場合、そのデジタル文書のタイムスタンプの検証を個別に行うことができなかった。例えば、3つのデジタル文書A,B,Cに対して共通のタイムスタンプを取得するには、デジタル文書A,B,Cを結合してダイジェストを生成し、その結合したダイジェストをタイムスタンプ局へ送る必要があるが、例えばデジタル文書Aのタイムスタンプの検証時における復号処理の際には、デジタル文書Aのみならず、デジタル文書Aと共に結合ダイジェストを生成した他のデジタル文書B,Cも必要となってくる。つまり、デジタル文書Aと共に他のデジタル文書B,Cを取り扱わなければデジタル文書Aのタイムスタンプの検証を行うことができなかった。
【0008】
本発明は、以上のような課題を解決するためになされたものであり、複数のデジタルデータに共通したタイムスタンプを取得した場合でも、デジタルデータに付加されたタイムスタンプを個別に検証できるようにすることを目的とする。
【課題を解決するための手段】
【0009】
以上のような目的を達成するために、本発明に係るタイムスタンプ検証プログラムは、デジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータを、タイムスタンプ検証依頼対象とする検証対象デジタルデータに対して、当該検証対象デジタルデータと共通のタイムスタンプが生成された他のデジタルデータに関する情報と、前記タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成手段、検証対象デジタルデータに当該付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼手段として機能させるものである。
【0010】
また、前記タイムスタンプ利用側コンピュータを更に、複数のデジタルデータそれぞれから生成されたダイジェストを前記タイムスタンプ検証側コンピュータへ送信することによって前記複数のデジタルデータそれぞれに共通のタイムスタンプの生成を依頼するタイムスタンプ生成依頼手段、前記タイムスタンプ生成依頼手段による生成依頼に応じて前記タイムスタンプ検証側コンピュータから送られてきたタイムスタンプ情報を受け取るタイムスタンプ受取手段として機能させるものである。
【0011】
他の発明に係るタイムスタンプ検証プログラムは、タイムスタンプ利用側コンピュータから送られてくるデジタルデータに付加されたタイムスタンプの検証を行うタイムスタンプ検証側コンピュータを、前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータであって、当該デジタルデータに付加されたタイムスタンプ情報と、当該デジタルデータと共通のタイムスタンプが生成され当該デジタルデータのタイムスタンプ検証に用いる他のデジタルデータに関する情報と、を含む付加情報が付加されたデジタルデータを受信する受信手段、前記受信手段が受信したデジタルデータに付加された付加情報に含まれるタイムスタンプ情報を復号することによってダイジェストを生成するタイムスタンプ復号手段、前記受信手段が受信したデジタルデータに付加された付加情報に含まれる他のデジタルデータに関する情報に基づき取得した当該他のデジタルデータのダイジェストと、前記受信手段が受信したデジタルデータから生成したダイジェストとを結合するダイジェスト生成手段、前記ダイジェスト生成手段が結合により生成したダイジェストと、前記タイムスタンプ復号手段が生成したダイジェストとを比較することによってタイムスタンプの検証を行うタイムスタンプ検証手段として機能させるものである。
【0012】
また、前記タイムスタンプ検証側コンピュータを更に、タイムスタンプ生成依頼要求の際に前記タイムスタンプ利用側コンピュータから送られてきた複数のデジタルデータのダイジェストの結合ダイジェストを、デジタルデータの生成時刻の認証のためのタイムスタンプを発行するタイムスタンプ局へ送信するタイムスタンプ要求手段、前記タイムスタンプ要求手段による要求に応じてタイムスタンプ局から送られてきたタイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報を、タイムスタンプ生成依頼要求発信元の前記タイムスタンプ利用側コンピュータへ通知するタイムスタンプ通知手段として機能させるものである。
【0013】
他の発明に係るタイムスタンプ検証プログラムは、デジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータを、タイムスタンプ検証依頼対象とする検証対象デジタルデータに対して、当該検証対象デジタルデータと共通のタイムスタンプが生成された他のデジタルデータに関する情報と、前記タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成手段、検証対象デジタルデータに当該付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼手段として機能させる。一方、前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータに付加されたタイムスタンプの検証を行うタイムスタンプ検証側コンピュータを、前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータであって、当該デジタルデータに付加されたタイムスタンプ情報と、当該デジタルデータと共通のタイムスタンプが生成され当該デジタルデータのタイムスタンプ検証に用いる他のデジタルデータに関する情報と、を含む付加情報が付加されたデジタルデータを受信する受信手段、前記受信手段が受信したデジタルデータに付加された付加情報に含まれるタイムスタンプ情報を復号することによってダイジェストを生成するタイムスタンプ復号手段、前記受信手段が受信したデジタルデータに付加された付加情報に含まれる他のデジタルデータに関する情報に基づき取得した当該他のデジタルデータのダイジェストと、前記受信手段が受信したデジタルデータから生成したダイジェストとを結合するダイジェスト生成手段、前記ダイジェスト生成手段が結合により生成したダイジェストと、前記タイムスタンプ復号手段が生成したダイジェストとを比較することによってタイムスタンプの検証を行うタイムスタンプ検証手段として機能させる。
【0014】
また、前記付加情報生成手段は、前記他のデジタルデータのダイジェストを、前記他のデジタルデータに関する情報として付加情報に含め、前記ダイジェスト生成手段は、前記受信手段が受信したデジタルデータに付加された付加情報に含まれるダイジェストと、前記受信手段が受信したデジタルデータから生成されたダイジェストとを結合するものである。
【0015】
また、前記付加情報生成手段は、前記他のデジタルデータをそれぞれ識別するデータ識別情報を、前記他のデジタルデータに関する情報として付加情報に含め、また、前記タイムスタンプ検証側コンピュータを更に、前記受信手段が受信したデジタルデータに付加された付加情報に含まれるデータ識別情報それぞれに対応するデジタルデータを取得する取得手段として機能させる。そして、前記ダイジェスト生成手段は、前記取得手段が取得したデジタルデータからそれぞれ生成したダイジェストと、前記受信手段が受信したデジタルデータから生成されたダイジェストとを結合するものである。
【0016】
また、前記付加情報生成手段は、前記各データ識別情報を、前記タイムスタンプ検証側コンピュータの公開鍵で暗号化した後に前記他のデジタルデータに関する情報として付加情報に含め、また、前記タイムスタンプ検証側コンピュータを更に、前記受信手段が受信したデジタルデータに付加された付加情報に含まれる暗号化されたデータ識別情報を、前記タイムスタンプ検証側コンピュータの公開鍵に対応した秘密鍵で復号することで前記他のデジタルデータのデータ識別情報を抽出する抽出手段として機能させる。そして、前記取得手段は、前記抽出手段により抽出されたデータ識別情報それぞれに対応するデジタルデータを取得するものである。
【0017】
また、前記タイムスタンプ検証側コンピュータを更に、乱数を生成する乱数生成手段、前記タイムスタンプ利用側コンピュータへ送信するデジタルデータに、前記乱数生成手段が生成した乱数を付加するデジタルデータ送信手段、前記タイムスタンプ利用側コンピュータへ送信するデジタルデータのデータ識別情報に、当該付加された乱数を対応付けして保存する乱数情報記憶手段として機能させる。一方、前記タイムスタンプ利用側コンピュータを更に、前記タイムスタンプ検証側コンピュータから送られてきたデジタルデータを受信する利用側受信手段として機能させる。そして、前記付加情報生成手段は、前記他のデジタルデータの各データ識別情報に、前記タイムスタンプ検証側コンピュータから当該デジタルデータに付加されて送られてきた乱数を結合させ、その乱数が結合された各データ識別情報を、前記タイムスタンプ検証側コンピュータの公開鍵で暗号化した後に前記他のデジタルデータに関する情報として付加情報に含め、前記抽出手段は、前記受信手段が受信したデジタルデータに付加された付加情報に含まれる暗号化されたデータ識別情報及び乱数を、前記タイムスタンプ検証側コンピュータの公開鍵に対応した秘密鍵で復号し、前記受信手段が受信したデジタルデータのデータ識別情報に対応付けされた乱数を前記乱数記憶手段から取り出し、その取り出した乱数に基づいて、復号したデータ識別情報から乱数を分離することでデータ識別情報を抽出するものである。
【0018】
本発明に係るタイムスタンプ利用側コンピュータは、デジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータにおいて、タイムスタンプ検証依頼対象とする検証対象デジタルデータに対して、当該検証対象デジタルデータと共通のタイムスタンプが生成された他のデジタルデータに関する情報と、前記タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成手段と、検証対象デジタルデータに当該付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼手段とを有することを特徴とする。
【0019】
本発明に係るタイムスタンプ検証側コンピュータは、タイムスタンプ利用側コンピュータから送られてくるデジタルデータに付加されたタイムスタンプの検証を行うタイムスタンプ検証側コンピュータにおいて、前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータであって、当該デジタルデータに付加されたタイムスタンプ情報と、当該デジタルデータと共通のタイムスタンプが生成され当該デジタルデータのタイムスタンプ検証に用いる他のデジタルデータに関する情報と、を含む付加情報が付加されたデジタルデータを受信する受信手段と、前記受信手段が受信したデジタルデータに付加された付加情報に含まれるタイムスタンプ情報を復号することによってダイジェストを生成するタイムスタンプ復号手段と、前記受信手段が受信したデジタルデータに付加された付加情報に含まれる他のデジタルデータに関する情報に基づき取得した当該他のデジタルデータのダイジェストと、前記受信手段が受信したデジタルデータから生成したダイジェストとを結合するダイジェスト生成手段と、前記ダイジェスト生成手段が結合により生成したダイジェストと、前記タイムスタンプ復号手段が生成したダイジェストとを比較することによってタイムスタンプの検証を行うタイムスタンプ検証手段とを有することを特徴とする。
【0020】
また、本発明に係るタイムスタンプ検証システムは、上記タイムスタンプ利用側コンピュータと、上記タイムスタンプ検証側コンピュータとを有するものである。
【0021】
本発明に係るタイムスタンプ生成依頼方法は、デジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータにより実施され、タイムスタンプ検証依頼対象とする検証対象デジタルデータに対して、当該検証対象デジタルデータと共通のタイムスタンプが生成された他のデジタルデータに関する情報と、前記タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成ステップと、検証対象デジタルデータに当該付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼ステップとを含むことを特徴とする。
【0022】
本発明に係るタイムスタンプ検証方法は、タイムスタンプ利用側コンピュータから送られてくるデジタルデータに付加されたタイムスタンプの検証を行うタイムスタンプ検証側コンピュータにより実施され、前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータであって、当該デジタルデータに付加されたタイムスタンプ情報と、当該デジタルデータと共通のタイムスタンプが生成され当該デジタルデータのタイムスタンプ検証に用いる他のデジタルデータに関する情報と、を含む付加情報が付加されたデジタルデータを受信する受信ステップと、前記受信ステップにより受信されたデジタルデータに付加された付加情報に含まれるタイムスタンプ情報を復号することによってダイジェストを生成するタイムスタンプ復号ステップと、前記受信ステップにより受信されたデジタルデータに付加された付加情報に含まれる他のデジタルデータに関する情報に基づき取得した当該他のデジタルデータのダイジェストと、前記受信ステップにより受信されたデジタルデータから生成したダイジェストとを結合するダイジェスト生成ステップと、前記ダイジェスト生成ステップにより生成されたダイジェストと、前記タイムスタンプ復号ステップにより生成されたダイジェストとを比較することによってタイムスタンプの検証を行うタイムスタンプ検証ステップとを含むことを特徴とする。
【発明の効果】
【0023】
本発明によれば、タイムスタンプ利用側コンピュータにおいて複数のデジタルデータに対して共通のタイムスタンプを取得した場合には、タイムスタンプ検証に必要な他のデジタルデータに関する情報を含む付加情報をデジタルデータに付加するようにしたので、タイムスタンプ検証側コンピュータでは、他のデジタルデータを用いることなく当該デジタルデータに付加されたタイムスタンプを個別に検証することができる。
【発明を実施するための最良の形態】
【0024】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【0025】
実施の形態1.
図1は、本発明に係るタイムスタンプ検証システムの一実施の形態を示した全体構成図である。図1には、複数台のクライアント1とコンテンツ管理サーバ4とタイムスタンプサーバ7とが公衆網9に接続された構成が示されている。本実施の形態では、タイムスタンプ局発行のタイムスタンプを利用したデジタルデータの時刻認証技術を提供するが、タイムスタンプサーバ7は、タイムスタンプ局に設置されたタイムスタンプ発行用のサーバコンピュータに相当する。本実施の形態では、既存のタイムスタンプサーバをそのまま利用することができる。クライアント1は、デジタルデータに相当するコンテンツの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプを取得し利用するユーザによって使用されるタイムスタンプ利用側コンピュータに相当する。なお、本実施の形態では、簡易検証と通常検証という2種類のタイムスタンプ検証方法を提供するが、クライアント1は、簡易検証の場合には、タイムスタンプ利用側コンピュータであるクライアント1からの要求に応じてタイムスタンプの検証を行うタイムスタンプ検証側コンピュータにもなりうる。コンテンツ管理サーバ4は、各クライアント1が取り扱うコンテンツを保持管理するコンピュータであり、また、本実施の形態では、簡易検証及び通常検証において共にタイムスタンプの検証を行うタイムスタンプ検証側コンピュータに相当する。
【0026】
図2は、本実施の形態におけるタイムスタンプ検証システムのブロック構成図である。図2には、タイムスタンプ利用側コンピュータとして動作するクライアント1と、タイムスタンプ検証側コンピュータとして動作するコンテンツ管理サーバ4とが、それぞれ示されている。
【0027】
クライアント1は、コンテンツ取得部12、タイムスタンプ生成依頼処理部14、タイムスタンプ検証依頼処理部16及び表示部18を有している。コンテンツ取得部12は、タイムスタンプの付加対象とするコンテンツをコンテンツ管理サーバ4から取得し、コンテンツ保存部34に保存する。タイムスタンプ生成依頼処理部14は、ダイジェスト生成部20、ダイジェスト送信部22及びタイムスタンプ取得部24を有し、タイムスタンプの生成依頼要求をコンテンツ管理サーバ4に送信することによって複数のコンテンツに共通して付加するタイムスタンプを取得する。ダイジェスト生成部20は、ハッシュ関数を用いてコンテンツからダイジェストを生成する。ダイジェスト送信部22は、各コンテンツから生成されたダイジェストをコンテンツ管理サーバ4へ送信することでタイムスタンプの生成依頼要求を出す。タイムスタンプ取得部24は、送信した生成依頼要求に応じてコンテンツ管理サーバ4がタイムスタンプ局から取得したタイムスタンプ情報を取得し、タイムスタンプ保持テーブル36に登録する。タイムスタンプ情報には、タイムスタンプトークンに含まれるタイムスタンプ及びタイムスタンプの生成時刻が含まれており、タイムスタンプ保持テーブル36には、取得したタイムスタンプ情報に、当該タイムスタンプが付加される複数のコンテンツを識別する情報、本実施の形態ではコンテンツIDを対応付けして設定登録される。
【0028】
タイムスタンプ検証依頼処理部16は、付加情報生成部26、検証依頼部28及び検証結果取得部30を有し、コンテンツに付加されたタイムスタンプの検証をコンテンツ管理サーバ4に依頼する。タイムスタンプ検証依頼処理部16に含まれる付加情報生成部26は、コンテンツ管理サーバ4におけるタイムスタンプ検証に必要な付加情報を生成する。付加情報生成部26に含まれる他コンテンツ情報生成部32は、タイムスタンプを付加する各コンテンツに対して、当該コンテンツと共にタイムスタンプが生成された他のコンテンツに関する情報を生成する。検証依頼部28は、検証対象のタイムスタンプが付加されたコンテンツに、付加情報生成部26が生成した付加情報を付加して構成されるコンテンツ情報をコンテンツ管理サーバ4へ送信することでタイムスタンプ検証を依頼する。検証結果取得部30は、コンテンツ管理サーバ4におけるタイムスタンプ検証の結果をコンテンツ管理サーバ4から取得する。表示部18は、検証結果取得部30が取得した検証結果を表示する。クライアント1が有する各構成要素12〜18の処理機能は、当該処理機能を発揮するタイムスタンプ検証プログラムと、クライアント1を構成するハードウェアとの協調動作により実現される。
【0029】
一方、コンテンツ管理サーバ4は、コンテンツ配信部42、タイムスタンプ取得処理部44及びタイムスタンプ検証処理部46を有している。コンテンツ配信部42は、コンテンツデータベース68に格納されているコンテンツを配信要求元のクライアント1へダウンロードする。タイムスタンプ取得処理部44は、ダイジェスト取得部48、タイムスタンプ要求部50、タイムスタンプ取得部52及びタイムスタンプ通知部54を有し、クライアント1からのタイムスタンプの生成依頼要求に応じてタイムスタンプサーバ7からタイムスタンプを取得し、要求元のクライアント1へ返信する。ダイジェスト取得部48は、クライアント1からのタイムスタンプの生成依頼要求を受け付ける。クライアント1から送られてくる生成依頼要求には、タイムスタンプを付加する複数のコンテンツの各ダイジェストが含まれているので、タイムスタンプ要求部50は、各ダイジェストからハッシュ関数Hを用いて単一の結合ダイジェストを生成し、この結合ダイジェストを含むタイムスタンプ要求をタイムスタンプサーバ7へ送信する。タイムスタンプ取得部52は、タイムスタンプ要求に応じてタイムスタンプサーバ7が生成したタイムスタンプトークンを受け取ると共に、タイムスタンプトークンに含まれているタイムスタンプ情報、すなわちタイムスタンプ及びタイムスタンプ生成時間情報である生成時刻に、タイムスタンプを付加する複数のコンテンツの識別情報を対応付けしてタイムスタンプ管理テーブル70に登録する。タイムスタンプ通知部54は、タイムスタンプ及びその生成時刻を含むタイムスタンプ情報を生成依頼要求元のクライアント1へ送信する。
【0030】
タイムスタンプ検証処理部46は、検証依頼受付部58、コンテンツ読出部60、ダイジェスト生成部62、タイムスタンプ検証部64及び検証結果通知部66を有し、クライアント1からの要求に応じてコンテンツに付加されたタイムスタンプの検証を行う。検証依頼受付部58は、クライアント1から送られてくるタイムスタンプの検証依頼要求を受け付ける。この要求には、検証対象のタイムスタンプを含む付加情報が付加されたコンテンツが含まれている。コンテンツ読出部60は、通常検証の際に必要なコンテンツをコンテンツデータベース68から読み出す。ダイジェスト生成部62は、ハッシュ関数を用いてコンテンツからダイジェストを生成する。ダイジェスト生成部62が使用するハッシュ関数は、各クライアント1が使用するハッシュ関数と同一である。タイムスタンプ検証部64は、クライアント1から送られてきたコンテンツ及び付加情報から2種類の方法で生成した各ダイジェストを比較することでタイムスタンプの検証を行う。検証結果通知部66は、タイムスタンプ検証部64における検証結果をコンテンツ送信元のクライアント1へ通知する。コンテンツ管理サーバ4が有する各構成要素42〜46の処理機能は、当該処理機能を発揮するタイムスタンプ検証プログラムと、コンテンツ管理サーバ4を構成するハードウェアとの協調動作により実現される。
【0031】
次に、本実施の形態における動作について説明するが、その前に動作の説明に用いる各種記号、変数等について定義する。
【0032】
まず、タイムスタンプが付加されるメッセージデータとして用いるコンテンツをCx(x=1,2,・・・N)と定義する。また、各コンテンツCxのタイムスタンプ生成対象領域をSx、タイムスタンプ情報を含む付加情報などのSx以外の情報を格納するタイムスタンプ情報領域をExとする。タイムスタンプ生成対象領域Sxというのは、コンテンツを構成するデータのうちタイムスタンプ生成の際に必要なダイジェストの生成に用いるデータを含む領域である。タイムスタンプ情報領域Exというのは、ダイジェストに付加する情報の格納領域であり、本実施の形態では、タイムスタンプ情報を含む付加情報を格納する領域に相当する。クライアント1は、コンテンツCx毎に、ダイジェストの生成に用いるデータを含む署名対象領域Sxと、署名検証のために必要な情報を含む署名情報領域Exとを組にしてコンテンツ管理サーバ4へ送信することになる。また、コンテンツのダイジェストを生成するためにクライアント1及びコンテンツ管理サーバ4が持つハッシュ関数をf、タイムスタンプ取得の際にコンテンツ管理サーバ4が使用するハッシュ関数をH、各コンテンツを識別する情報として用いるコンテンツIDをIDx、署名関数をEnc(signkey,data)、検証関数をDec(verifykey,data)、コンテンツ管理サーバ4の公開鍵をEs、コンテンツ管理サーバ4の秘密鍵をDs、タイムスタンプサーバ7の公開鍵をEt、タイムスタンプサーバ7の秘密鍵をDt、タイムスタンプ生成時刻をTt、タイムスタンプトークンをTST(time,SigValue)と定義する。なお、署名関数及び検証関数に指定するsignkey、verifykeyには暗号化/復号に用いる鍵が、dataには暗号化/復号されるデータが、それぞれ設定される。また、タイムスタンプトークンに指定するtimeにはタイムスタンプ生成時刻が、SigValueにはタイムスタンプが、それぞれ設定される。
【0033】
以上のように定義したデータや関数を用いて、本実施の形態におけるタイムスタンプ検証について説明する。タイムスタンプ検証は、タイムスタンプの生成処理とタイムスタンプの検証処理とに大別できる。まず最初に、タイムスタンプ生成処理についてクライアント1における処理を示した図3及びコンテンツ管理サーバ4における処理を示した図4を用いて説明する。
【0034】
クライアント1のコンテンツ取得部12は、コンテンツのダウンロード要求をコンテンツ管理サーバ4へ発すると、コンテンツ管理サーバ4のコンテンツ配信部42は、クライアント1からの要求に応じてタイムスタンプ付加対象のN個のコンテンツCx(x=1〜N)を当該クライアント1へ送信する(ステップ211)。コンテンツ取得部12は、このようにしてN個のコンテンツCxを取得すると、これらをコンテンツ保存部34に保存する(ステップ111)。コンテンツCxをいったん保存するようにしたのは、タイムスタンプの検証の際にコンテンツCxが必要であり、またタイムスタンプの検証がタイムスタンプを取得してしばらく時間が経過してから行われると考えられるからである。後述するタイムスタンプ保持テーブル36でタイムスタンプ情報を保持するのも同じ理由による。なお、取得した各コンテンツCx(x=1〜N)のIDは、それぞれIDx(x=1〜N)とする。
【0035】
タイムスタンプ生成依頼処理部14におけるダイジェスト生成部20は、取得された各コンテンツIDxの署名対象領域Sxに含まれるデータからハッシュ関数fを用いてN個のダイジェストf(Sx)を生成する(ステップ112)。続いて、ダイジェスト送信部22は、コンテンツCxから生成されたダイジェストf(Sx)をコンテンツ管理サーバ4へ送信することでタイムスタンプの生成依頼要求を出す(ステップ113)。
【0036】
コンテンツ管理サーバ4において、ダイジェスト取得部48がクライアント1からのタイムスタンプの生成依頼要求を受信すると(ステップ212)、タイムスタンプ要求部50は、生成依頼要求に含まれている複数のダイジェストを結合する。この結合ダイジェストFは、次のように表すことができる。
【数1】

【0037】
そして、タイムスタンプ要求部50は、この結合ダイジェストFからハッシュ関数Hを用いて単一のダイジェストH(F)を生成し(ステップ213)、このダイジェストH(F)を含むタイムスタンプ要求をタイムスタンプサーバ7へ送信する(ステップ214)。
【0038】
タイムスタンプサーバ7は、コンテンツ管理サーバ4から送られてきたダイジェストに、信頼できる時間源から取得した現在時刻をタイムスタンプ生成時刻として付加し、これに自己の秘密鍵Dtを用いて署名を行い、タイムスタンプトークンを生成する。そして、要求元のコンテンツ管理サーバ4へタイムスタンプトークンを返信する。なお、署名TSValue及びタイムスタンプトークンTSTokenを式にて表すと、次のように表すことができる。
TSValue=Enc(Dt,Tt+H(F))
TSToken=TST(Tt,TSValue)
【0039】
コンテンツ管理サーバ4において、タイムスタンプ取得部52は、タイムスタンプ要求に応じてタイムスタンプサーバ7が生成したタイムスタンプトークンを受け取ると共に(ステップ215)、タイムスタンプトークンに含まれているタイムスタンプ情報、すなわちタイムスタンプTSValue及びタイムスタンプ生成時刻Ttに、タイムスタンプを付加する複数のコンテンツの識別情報IDxを対応付けしてタイムスタンプ管理テーブル70に登録する(ステップ216)。なお、タイムスタンプ情報には、どのコンテンツに対するタイムスタンプかを特定できる情報が付加すればよいので、必ずしも識別情報IDxでなくてもよい。本実施の形態では、タイムスタンプ管理テーブル70を用いる必要はないが、管理サーバの一機能としてタイムスタンプを保持管理する。タイムスタンプ通知部54は、タイムスタンプ及びその生成時刻を含むタイムスタンプ情報を生成依頼要求元のクライアント1に通知する(ステップ217)。
【0040】
クライアント1において、タイムスタンプ取得部24は、生成依頼要求に応じてコンテンツ管理サーバ4から送られてくるタイムスタンプ情報を受信すると、タイムスタンプ情報、すなわちタイムスタンプTSValue及びタイムスタンプ生成時刻Ttに、タイムスタンプを付加する複数のコンテンツの識別情報IDxを対応付けしてタイムスタンプ保持テーブル36に登録する(ステップ114)。なお、タイムスタンプ情報には、どのコンテンツに対するタイムスタンプかを特定できる情報が付加すればよいので、必ずしも識別情報IDxでなくてもよい。
【0041】
本実施の形態においては、以上のようにして複数のコンテンツに対して共通した1つのタイムスタンプを生成することができる。これにより、コンテンツ個々にタイムスタンプの生成依頼をする必要がないので、便利であり、また、コスト削減を図ることができる。
【0042】
続いて、タイムスタンプ検証処理について説明するが、本実施の形態では、前述したように簡易検証と通常検証という2種類のタイムスタンプ検証方法を提供する。最初に簡易検証について、タイムスタンプ検証依頼を行うクライアント1における処理を示した図5及びクライアント1からの依頼に応じてタイムスタンプ検証を行うコンテンツ管理サーバ4における処理を示した図6を用いて説明する。
【0043】
共通してタイムスタンプが付加されたコンテンツIDがそれぞれIDx(x=1〜N)であるN個のコンテンツCx(x=1〜N)のうち、いずれかのコンテンツのタイムスタンプの検証を依頼したいとする。なお、以下で説明する処理は、全てのコンテンツCxに対して同じなので、ここでは、IDのコンテンツCを代表させて説明する。
【0044】
このとき、タイムスタンプ検証依頼処理部16は、全てのコンテンツCxをコンテンツ保存部34から読み出し、検証依頼のためにコンテンツ管理サーバ4へ送信するコンテンツCに対して付加する付加情報を付加情報生成部26に生成させる(ステップ115)。
【0045】
すなわち、付加情報生成部26における他コンテンツ情報生成部32は、C以外の他のコンテンツに関する情報として、Cと共にタイムスタンプが生成された他のコンテンツCx(x=2〜N)の識別情報{ID,ID,ID,・・・,ID}と、当該他のコンテンツのダイジェスト{f(S),f(S),f(S),・・・,f(S)}とを生成する。なお、他のコンテンツのダイジェストf(Sx)(x=2〜N)は、各コンテンツIDxの署名対象領域Sxに含まれるデータからハッシュ関数fを用いて生成される。なお、IDのコンテンツCであれば、Cと共に一括署名が生成された他のコンテンツの識別情報{ID,ID,ID,・・・,ID}と、当該他のコンテンツのダイジェスト{f(S),f(S),f(S),・・・,f(S)}とが生成されることになる。更に、付加情報生成部26は、タイムスタンプ保持テーブル36からコンテンツCx(x=1〜N)に共通したタイムスタンプ情報を取り出し、付加情報に含める。以上のようにして生成された付加情報は、次のように表すことができる。
【0046】
=({ID,ID,ID,・・・,ID},{f(S),f(S),f(S),・・・,f(S)},Tt,TSValue)
【0047】
検証依頼部28は、検証対象となるコンテンツCに上記付加情報を付加してコンテンツ管理サーバ4へ送信することで、タイムスタンプ検証を依頼する(ステップ116)。
【0048】
なお、本実施の形態では、他のコンテンツのダイジェストf(Sx)(x=2〜N)を付加情報に含める必要があるため、タイムスタンプの検証依頼を行う際に、タイムスタンプ検証依頼処理部16において該当するダイジェストを生成するように説明したが、各コンテンツのダイジェストは、タイムスタンプ生成依頼時にも生成しているので、このときに生成したダイジェストをタイムスタンプ保持テーブル36で保管しておき、タイムスタンプ検証依頼時に再利用するようにしてもよい。
【0049】
コンテンツ管理サーバ4において、タイムスタンプ検証処理部46における検証依頼受付部58がクライアント1から発せられたタイムスタンプ生成依頼要求を受信すると(ステップ221)、タイムスタンプ検証部64は、受信したコンテンツCの付加情報に含まれているタイムスタンプTSValueを、タイムスタンプサーバ7の公開鍵Etを用いて復号することでダイジェストを生成する(ステップ222)。このダイジェストの生成は、検証関数を用いるので、Dec(Et,TSValue)と表すことができるが、復号されたTSValueは、Tt+H(F)と表すことができる。
【0050】
一方、ダイジェスト生成部62は、クライアント1から送られてきたコンテンツCからダイジェストを生成する(ステップ224)。このダイジェストの生成についてより厳密に言うと、ダイジェスト生成部62は、ハッシュ関数fを用いてコンテンツCの署名対象領域Sに含まれているデータからダイジェストf(S)を生成する。ここで、コンテンツC以外のコンテンツCx(x=2〜N)のダイジェストf(Sx)(x=2〜N)は、コンテンツCの付加情報に含まれているので、ダイジェスト生成部62は、f(S)とf(Sx)(x=2〜N)、すなわち共通のタイムスタンプが生成された全てのコンテンツCx(x=1〜N)のダイジェストを結合して結合ダイジェストFを生成する(ステップ224)。
【0051】
タイムスタンプ検証部64は、タイムスタンプ検証を行うダイジェストを完成させるため、結合ダイジェストFからハッシュ関数Hを用いてダイジェストH(F)を生成し、これに受信した付加情報に含まれているタイムスタンプ生成時刻Ttを付加してTt+H(F)を得る。
【0052】
以上のようにして比較対象のダイジェストが生成されると、2つのダイジェスト、すなわち、タイムスタンプの復号により得られたダイジェストDec(Et,TSValue)、すなわちTt+H(F)と、コンテンツ管理サーバ4にて生成したダイジェストTt+H(F)とを比較することで、コンテンツCに付加されたタイムスタンプを検証する(ステップ225)。以上のように、比較対象のダイジェストは、共にTt+H(F)と表され、改竄されていなければ、検証に成功するはずである。
【0053】
なお、フローチャートでは、受信したタイムスタンプを復号してダイジェストを生成する処理を、ダイジェスト生成部62が結合ダイジェストを生成する処理より先に行うように説明したが、この処理の順番は逆でもいし、同時並行して行うようにしてもよい。
【0054】
検証結果通知部66は、以上のようにしてコンテンツCに付加されたタイムスタンプの検証結果を検証依頼元のクライアント1へ通知する(ステップ226)。
【0055】
クライアント1において、検証結果取得部30がコンテンツ管理サーバ4から通知されてきた検証結果を取得すると(ステップ117)、表示部18は、クライアント1のディスプレイに表示することで(ステップ118)、ユーザにタイムスタンプの検証結果を知らせる。
【0056】
本実施の形態におけるタイムスタンプの簡易検証は、以上のようにして行うが、本実施の形態においては、コンテンツ個々のタイムスタンプ検証の際に必要な他のコンテンツのダイジェストを、当該コンテンツの付加情報に含めるようにした。つまり、タイムスタンプの生成の際に用いた他のコンテンツのダイジェスト、例えば、コンテンツCに付加されたタイムスタンプの検証の場合であれば、コンテンツCx(x=2〜N)のダイジェストf(Sx)(x=2〜N)をコンテンツCの付加情報に含めるようにしたので、タイムスタンプ検証を行うコンテンツ管理サーバ4は、他のコンテンツCx(x=2〜N)からダイジェストを生成する必要がない。すなわち、コンテンツ管理サーバ4は、コンテンツCに付加されたタイムスタンプの検証を、他のコンテンツCx(x=2〜N)がなくても個別に行うことができる。
【0057】
続いて、通常検証について説明するが、タイムスタンプ件書依頼側のクライアント1における処理は、簡易検証と同じなので説明を省略する。ここでは、コンテンツ管理サーバ4におけるタイムスタンプ検証時処理について図7に示したフローチャートを用いて説明する。なお、簡易検証と同じ処理には同じステップ番号を付け、説明を適宜省略又は簡略する。
【0058】
タイムスタンプ検証側であるコンテンツ管理サーバ4において、検証依頼受付部58がタイムスタンプ生成依頼要求を受信すると(ステップ221)、タイムスタンプ検証部64は、受信したコンテンツCの付加情報に含まれているタイムスタンプを復号してダイジェストTt+H(F)を生成する(ステップ222)。
【0059】
一方、ダイジェスト生成部62は、コンテンツCの付加情報に含まれている他のコンテンツの識別情報{ID,ID,ID,・・・,ID}を取り出す。そして、ダイジェスト生成部62は、コンテンツ読出部60に取り出したコンテンツIDを渡す。コンテンツ読出部60は、そのコンテンツIDをキーにして当該コンテンツをコンテンツデータベース68から読み出す。なお、コンテンツ管理サーバ4がコンテンツデータベース68を保有していなければ、コンテンツ読出部60は、ネットワーク経由で外部から取得してくることになる。これにより、ダイジェスト生成部62は、ハッシュ関数fを用いて簡易検証と同様にクライアント1から送られてきたコンテンツCからダイジェストf(S)を生成すると共に、コンテンツデータベース68から読み出したその他のコンテンツCx(x=2〜N)からダイジェストf(Sx)(x=2〜N)を生成する(ステップ227)。このようにして、共通のタイムスタンプを生成した全てのコンテンツのダイジェストを取得することができるので、これらのダイジェストを結合して結合ダイジェストFを生成する(ステップ228)。この結合ダイジェストは、簡易検証と同じ内容になる。
【0060】
この後の処理は、簡易検証と同じであり、タイムスタンプ検証部64は、タイムスタンプ検証を行うダイジェストを完成させるため、結合ダイジェストFからダイジェストH(F)を生成し、これに受信した付加情報に含まれているタイムスタンプ生成時刻Ttを付加してTt+H(F)を得る。
【0061】
以上のようにして比較対象のダイジェストが生成されると、タイムスタンプ検証部64は、タイムスタンプの復号により得られたダイジェストTt+H(F)と、コンテンツ管理サーバ4にて生成したダイジェストTt+H(F)とを比較することで、コンテンツCに付加されたタイムスタンプを検証する(ステップ225)。そして、検証結果通知部66は、コンテンツCに付加されたタイムスタンプの検証結果を検証依頼元のクライアント1へ通知する(ステップ226)。なお、検証結果の通知、表示の処理に関しては、簡易検証と同じなので省略する。
【0062】
本実施の形態におけるタイムスタンプの通常検証は、以上のようにして行うが、通常検証も簡易検証と同様に複数のコンテンツに対して共通したタイムスタンプを生成した場合でもコンテンツに付加されたタイムスタンプの検証を、コンテンツ毎に行うことができる。
【0063】
なお、上記説明では、コンテンツ管理サーバ4は、クライアント1へコンテンツを送信し、クライアント1にて生成されたダイジェストを受け取るように処理するが、通常検証の場合、コンテンツ管理サーバ4は、コンテンツデータベース68により各コンテンツを持っているので、共通したタイムスタンプを生成するコンテンツを特定しうる情報、例えばコンテンツIDを受け取り、コンテンツ管理サーバ4側で各コンテンツのダイジェストを生成するようにしてもよい。
【0064】
また、コンテンツ管理サーバ4は、結合対象のダイジェストをクライアント1から受け取り、コンテンツ管理サーバ4にて結合ダイジェストFを生成しているっているが、クライアント1側にて結合ダイジェストFを生成させ、それを受け取るようにしてもよい。
【0065】
本実施の形態においては、コンテンツ管理サーバ4において、付加情報に含まれるタイムスタンプを復号して生成したダイジェストと比較するダイジェストを生成する過程において、複数のコンテンツのダイジェストを生成するようにしたが、簡易検証と通常検証とでは、タイムスタンプを含む付加情報が付加されたコンテンツ(以下、「被付加コンテンツ」ともいう、前述した例で言うとコンテンツC)以外のコンテンツCx(x=2〜N)のダイジェストの取得方法が異なっている。すなわち、簡易検証では、被付加コンテンツ以外の他のコンテンツのダイジェストを、被付加コンテンツの付加情報から取得するのに対し、通常検証では、当該被付加コンテンツの付加情報から取得した他のコンテンツのIDをキーにしてコンテンツを取得し、そして他のコンテンツのダイジェストを自ら生成する。この他のコンテンツのダイジェストの取得方法の違いにより、コンテンツ管理サーバ4で実施される各検証方法は、以下のような特徴を有していることになる。
【0066】
まず、通常検証の場合、ダイジェストの生成のためにコンテンツそのものが必要になってくるので、コンテンツそのものを保持管理するコンテンツ管理サーバ4にとっては、外部からコンテンツを取得することなく通常検証を実施することができる。つまり、通常検証の場合は、付加情報にコンテンツIDを含めておけばよいので、ダイジェストそのものが改竄される可能性がない。これにより、タイムスタンプ検証の確度を向上させることができる。
【0067】
これに対し、簡易検証は、コンテンツのダイジェストを直接受け取るため、コンテンツそのものを必要としない。従って、コンテンツ管理サーバ4のみならずコンテンツそのものを保持管理しないクライアント1においても、簡易検証であればタイムスタンプの検証を行うことができる。つまり、クライアント1が簡易検証を行う場合、そのクライアント1に、図2に示したコンテンツ管理サーバ4からタイムスタンプ検証処理部46を持たせることで、クライアント1にもタイムスタンプ検証側のコンピュータとして動作させることができる。
【0068】
なお、コンテンツの付加情報には、他のコンテンツに関する情報として、他のコンテンツのIDと他のコンテンツのダイジェストとが含まれている。簡易検証と通常検証の各処理の説明から明らかなように、他のコンテンツに関する情報として、簡易検証では他のコンテンツのダイジェストを、通常検証では他のコンテンツのIDをそれぞれ使用し、他方の情報は使用していない。従って、クライアント1は、簡易検証を実施することが明らかであるならば、付加情報に他のコンテンツのIDを含める必要はない。一方、通常検証を実施することが明らかであるならば、付加情報に他のコンテンツのダイジェストを含める必要はない。ただ、本実施の形態では、タイムスタンプ検証側コンピュータが、自己の構成等によっていずれの検証方法を適宜使用できるように、他のコンテンツに関する情報として他のコンテンツのIDとダイジェストとの双方の情報を含めるようにした。
【0069】
次に、前述したタイムスタンプの生成処理及び検証処理について具体例を用いて説明する。なお、処理の内容は、上記と同じなので適宜簡略化して説明する。ここでは、タイムスタンプを生成するコンテンツIDがそれぞれID1,ID2,ID3である3つのコンテンツC1,C2,C3を取り扱う場合を例にして説明する。また、各コンテンツC1〜C3の署名対象領域をS1,S2,S3、署名情報領域をE1,E2,E3とする。まず、タイムスタンプ生成時における処理から説明するが、クライアント1における処理内容は、簡易検証と通常検証とで同じである。
【0070】
クライアント1において、上記3つのコンテンツをコンテンツ管理サーバ4からダウンロードすることで取得すると(ステップ111)、ハッシュ関数fを用いてダイジェストf(S1),f(S2),f(S3)をそれぞれ生成し(ステップ112)、コンテンツ管理サーバ4へ送信することでタイムスタンプの生成依頼要求を出す(ステップ113)。
【0071】
コンテンツ管理サーバ4は、クライアント1からのタイムスタンプの生成依頼要求を受信すると(ステップ212)、タイムスタンプ要求部50は、生成依頼要求に含まれている複数のダイジェストF(=f(S1+S2+S3)を結合し、ハッシュ関数Hを用いてダイジェストH(F)生成し(ステップ213)、タイムスタンプサーバ7へ送信する(ステップ214)。そして、タイムスタンプサーバ7から送られてきたタイムスタンプトークンを受信すると、タイムスタンプ情報、すなわちTtとH(F)をクライアント1へ通知する(ステップ217)。
【0072】
このようにして、クライアント1は、コンテンツC1〜C3に共通したタイムスタンプを得ることができる。続いて、タイムスタンプ検証時における処理のうち簡易検証について説明するが、ここでは、コンテンツC1に付加されたタイムスタンプの検証を行う場合を例にして説明する。
【0073】
タイムスタンプ検証依頼処理部16の付加情報生成部26は、ハッシュ関数fを用いて他のコンテンツC2,C3のダイジェストf(S2),f(S3)をそれぞれ生成し、他のコンテンツC2,C3の識別情報{ID2,ID3}と、ダイジェスト{f(S2),f(S3)}とを生成する。更に、タイムスタンプ情報をタイムスタンプ保持テーブル36から取り出して、付加情報を生成するが、この付加情報は、次のようになる。
E1=({ID2,ID3}),{f(S2),f(S3)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
【0074】
なお、参考までにコンテンツC2,C3の付加情報は、次のようになる。
E2=({ID3,ID1}),{f(S3),f(S1)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
E3=({ID1,ID2}),{f(S1),f(S2)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
【0075】
このようにして生成された付加情報E1は、コンテンツC1を格納する領域S1に付加されてタイムスタンプ生成依頼要求としてコンテンツ管理サーバ4へ送信される(ステップ116)。なお、簡易検証の場合のタイムスタンプ検証側コンピュータとして、ここではコンテンツ管理サーバ4を例にしているが、クライアント1でもよいことは前述したとおりである。
【0076】
コンテンツ管理サーバ4において、クライアント1から発せられたタイムスタンプ生成依頼要求を受信すると(ステップ221)、タイムスタンプ検証部64は、受信したコンテンツC1の付加情報に含まれているタイムスタンプEnc(Dt,Tt+H(f(S1)+f(S2)+f(S3))を、タイムスタンプサーバ7の公開鍵Etを用いて復号することでダイジェストTt+H(f(S1)+f(S2)+f(S3))を生成する(ステップ222)。
【0077】
一方、ダイジェスト生成部62は、ハッシュ関数fを用いてクライアント1から送られてきたコンテンツC1からダイジェストf(S1)を生成し(ステップ224)、付加情報から取り出したf(S2)及びf(S3)と結合して結合ダイジェストF(=f(S1)+f(S2)+f(S3))を生成する(ステップ224)。タイムスタンプ検証部64は、結合ダイジェストFからハッシュ関数Hを用いてダイジェストH(f(S1)+f(S2)+f(S3))を生成し、これに受信した付加情報から取り出したタイムスタンプ生成時刻Ttを付加してTt+H(f(S1)+f(S2)+f(S3))を得る。
【0078】
以上のようにして比較対象のダイジェストが生成されると、2つのダイジェスト、すなわち、タイムスタンプの復号により得られたダイジェストTt+H(f(S1)+f(S2)+f(S3))と、コンテンツ管理サーバ4にて生成したダイジェストTt+H(f(S1)+f(S2)+f(S3))とを比較することで、コンテンツC1に付加されたタイムスタンプを検証する(ステップ225)。以上のようにして、簡易検証を行うことができる。
【0079】
次に、通常検証の場合について説明するが、タイムスタンプ検証依頼側における処理は、簡易検証と同じなので説明を省略し、タイムスタンプ検証側の処理について説明する。
【0080】
コンテンツ管理サーバ4において、クライアント1から発せられたタイムスタンプ生成依頼要求を受信すると(ステップ221)、タイムスタンプ検証部64は、受信したコンテンツC1の付加情報に含まれているタイムスタンプEnc(Dt,Tt+H(f(S1)+f(S2)+f(S3))を、タイムスタンプサーバ7の公開鍵Etを用いて復号することでダイジェストTt+H(f(S1)+f(S2)+f(S3))を生成する(ステップ222)。ここまでの処理は、簡易検証と同じである。
【0081】
一方、ダイジェスト生成部62は、付加情報から取り出した他のコンテンツのID(=ID2,ID3)をキーにして当該コンテンツC2,C3をコンテンツデータベース68から読み出す。これにより、各コンテンツC1〜C3を得ることができたので、ダイジェスト生成部62は、ハッシュ関数fを用いて各コンテンツC1〜C3からダイジェストf(S1),f(S2),f(S3)を生成し、そして結合ダイジェストF(=f(S1)+f(S2)+f(S3))を生成する(ステップ228)。
【0082】
この後の処理は、簡易検証と同じであり、タイムスタンプ検証部64は、結合ダイジェストFからハッシュ関数Hを用いてダイジェストH(f(S1)+f(S2)+f(S3))を生成し、これに受信した付加情報から取り出したタイムスタンプ生成時刻Ttを付加してTt+H(f(S1)+f(S2)+f(S3))を得る。
【0083】
以上のようにして比較対象のダイジェストが生成されると、2つのダイジェスト、すなわち、タイムスタンプの復号により得られたダイジェストTt+H(f(S1)+f(S2)+f(S3))と、コンテンツ管理サーバ4にて生成したダイジェストTt+H(f(S1)+f(S2)+f(S3))とを比較することで、コンテンツC1に付加されたタイムスタンプを検証する(ステップ225)。以上のようにして、通常検証を行うことができる。
【0084】
このように、通常検証の場合、コンテンツ管理サーバ4は、内部保有するコンテンツデータベース68から他のコンテンツのIDをキーにコンテンツを取得し、そして他のコンテンツのダイジェストを自ら生成してダイジェストの比較を行えるようにした。このように、付加情報に含まれているダイジェストを用いないので、タイムスタンプ検証の確度を向上させることができる。
【0085】
本実施の形態によれば、以上説明したように、複数のコンテンツに共通してタイムスタンプを取得した場合でもタイムスタンプ検証側において各コンテンツに付加されたタイムスタンプの検証を個々に行うことができる。これにより、タイムスタンプを利用する側は、コンテンツ個々にタイムスタンプを取得する必要がないので、コンテンツ毎にタイムスタンプを取得することによる煩わしさから解消される。一方、タイムスタンプ検証側では、タイムスタンプ検証の対象とするコンテンツ以外のコンテンツが送られてこなくても、タイムスタンプの検証を行うことができる。つまり、簡易検証の場合は、付加情報に含まれる他のコンテンツのダイジェストから、通常検証の場合は、付加情報に含まれる他のコンテンツのIDから、それぞれ共通してタイムスタンプが付加されたコンテンツの各ダイジェストを取得することができるので、タイムスタンプの検証に必要なダイジェストは、タイムスタンプ検証側で生成することができる。
【0086】
実施の形態2.
本実施の形態におけるタイムスタンプ検証時のクライアント1における処理のフローチャートを図8に、タイムスタンプ検証時の通常検証の場合のコンテンツ管理サーバ4における処理のフローチャートを図9に、それぞれ示す。図8及び図9は、実施の形態1における図5及び図7に対応する図であるが、この図5,図7に示したフローチャートと比較すれば明らかなように、本実施の形態におけるクライアント1は、付加情報に含める他のコンテンツIDを暗号化してからコンテンツ管理サーバ4へ送ることを特徴としている。
【0087】
以下、本実施の形態におけるタイムスタンプ検証時処理について説明する。ここでは、実施の形態1と同様に、コンテンツIDがそれぞれID1,ID2,ID3である3つのコンテンツC1,C2,C3に共通してタイムスタンプが生成され、このうちコンテンツC1に付加されたタイムスタンプの検証を行う場合を例にして説明する。また、各コンテンツC1〜C3の署名対象領域をS1,S2,S3、署名情報領域をE1,E2,E3とする。なお、図8,9において、図5,7と同じ処理ステップには同じ符号を付け説明を適宜省略する。また、他のコンテンツに関する情報としてコンテンツIDを使用しない簡易検証については、実施の形態1と同じ処理になるので説明を省略する。また、本実施の形態におけるシステム構成も実施の形態1と同じなので説明を省略する。
【0088】
クライアント1において、付加情報生成部26に含まれる他コンテンツ情報生成部32は、ハッシュ関数fを用いて他のコンテンツC2,C3のダイジェストf(S2),f(S3)をそれぞれ生成する。また、他のコンテンツに関する情報として、更に他のコンテンツC2,C3の識別情報{ID2,ID3}も集約するが、このとき、他のコンテンツのIDを、タイムスタンプ検証を行うコンテンツ管理サーバ4の公開鍵Esで暗号化した後に付加情報に含める(ステップ121,122)。このようにして生成された各付加情報は、次のようになる。
E1=(Enc(Es,ID2+ID3),{f(S2),f(S3)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
【0089】
なお、参考までにコンテンツC2,C3の付加情報は、次のようになる。
E2=(Enc(Es,ID3+ID1),{f(S3),f(S1)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
E3=(Enc(Es,ID1+ID2),{f(S1),f(S2)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
【0090】
このようにして生成された付加情報E1は、コンテンツC1を格納する領域S1に付加されてタイムスタンプ生成依頼要求としてコンテンツ管理サーバ4へ送信される(ステップ116)。
【0091】
コンテンツ管理サーバ4において、クライアント1から発せられたタイムスタンプ生成依頼要求を受信すると(ステップ221)、タイムスタンプ検証部64は、受信したコンテンツC1の付加情報に含まれているタイムスタンプEnc(Dt,Tt+H(f(S1)+f(S2)+f(S3))を復号してダイジェストTt+H(f(S1)+f(S2)+f(S3))を生成する(ステップ222)。
【0092】
一方、ダイジェスト生成部62は、コンテンツC1の付加情報から他のコンテンツのID、すなわちID2,ID3を取り出すが、本実施の形態においては、他のコンテンツIDは、自己の公開鍵で暗号化されているので、ダイジェスト生成部62は、この公開鍵に対応した自己の秘密鍵で復号することでコンテンツIDを抽出する(ステップ229)。この抽出したコンテンツIDを次のように表すことができる。
IDx=Dec(Ds,Enc(Es,ID2+ID3)) (x=2,3)
【0093】
このように、復号により他のコンテンツのIDを取得した後の処理は、実施の形態1と同じである。すなわち、ダイジェスト生成部62は、復号により得た他のコンテンツのID(=ID2,ID3)をキーにして当該コンテンツC2,C3をコンテンツデータベース68から読み出すと、受信したコンテンツC1と共にそれぞれのダイジェストf(S1),f(S2),f(S3)を生成し(ステップ227)、そして結合ダイジェストF(=f(S1)+f(S2)+f(S3))を生成する(ステップ228)。続いて、タイムスタンプ検証部64は、結合ダイジェストFからハッシュ関数Hを用いてダイジェストH(f(S1)+f(S2)+f(S3))を生成し、これに受信した付加情報から取り出したタイムスタンプ生成時刻Ttを付加してTt+H(f(S1)+f(S2)+f(S3))を得る。
【0094】
以上のようにして比較対象のダイジェストが生成されると、タイムスタンプ検証部64は、タイムスタンプの復号により得られたダイジェストTt+H(f(S1)+f(S2)+f(S3))と、コンテンツ管理サーバ4にて生成したダイジェストTt+H(f(S1)+f(S2)+f(S3))とを比較することで、コンテンツC1に付加されたタイムスタンプを検証する(ステップ225)。以上のようにして、通常検証を行うことができる。
【0095】
本実施の形態によれば、コンテンツIDを暗号化してからクライアント1からコンテンツ管理サーバ4へ送るようにしたので、コンテンツIDの改竄防止を図ることによりタイムスタンプ検証の確度を向上させることができる。
【0096】
実施の形態3.
図10は、本実施の形態におけるタイムスタンプ検証システムのブロック構成図である。図10において、図2と同じ構成には、同じ符号を付け、説明を省略する。本実施の形態においては、コンテンツ管理サーバ4に乱数生成部72及び乱数保持部74を追加した構成を有している。乱数生成部72は、乱数を生成する手段である。乱数生成部72が生成した乱数は、乱数の生成時間情報と共にコンテンツに付加されてクライアント1へダウンロードされるが、コンテンツがダウンロードされたとき、そのダウンロードされたコンテンツのID及び乱数生成時間情報と組にして乱数保持部74に登録される。この乱数保持部74に登録されるデータ構成例を図11に示す。なお、乱数生成部72が有する処理機能は、当該処理機能を発揮するタイムスタンプ検証プログラムと、コンテンツ管理サーバ4を構成するハードウェアとの協調動作により実現される。
【0097】
次に、本実施の形態におけるタイムスタンプの生成処理及び検証処理について具体例を用いて説明する。ここでは、実施の形態1,2と同様に、コンテンツIDがそれぞれID1,ID2,ID3である3つのコンテンツC1,C2,C3に共通してタイムスタンプが生成され、このうちコンテンツC1に付加されたタイムスタンプの検証を行う場合を例にして説明する。また、各コンテンツC1〜C3の署名対象領域をS1,S2,S3、署名情報領域をE1,E2,E3とする。なお、本実施の形態の説明に用いる各フローチャートにおいて、上記各実施の形態のフローチャートに含まれる同じ処理ステップには同じ符号を付け説明を適宜省略する。以降の説明で明らかになるように、本実施の形態は、実施の形態2が付加情報に含める他のコンテンツIDのみを暗号化するのに対し、本実施の形態では、他のコンテンツIDに乱数及び乱数生成時間情報を付加してから暗号化することを特徴としている。まず、本実施の形態におけるタイムスタンプ生成時における処理を、図12及び図13に示した各フローチャートを用いて説明する。
【0098】
コンテンツ管理サーバ4において、クライアント1からコンテンツのダウンロード要求が送られてくると、乱数生成部72は、要求されたコンテンツ毎に乱数を生成する(ステップ231)。そして、コンテンツ配信部42は、要求された署名対象のコンテンツC1〜C3をコンテンツデータベース68から取り出し、そのコンテンツC1〜C3に乱数r1〜r3及び各乱数生成時間情報T1を付加して当該クライアント1へ送信する(ステップ232)。なお、各乱数の生成時刻は各コンテンツとも同じT1とする。そして、コンテンツ配信部42は、図11に例示したように、送信したコンテンツC1〜C3の各IDと乱数と乱数生成時間情報とを組にして乱数保持部74に登録する(ステップ233)。
【0099】
クライアント1において、コンテンツC1〜C3及び乱数をコンテンツ管理サーバ4から取得すると(ステップ131)、ダイジェスト生成部20は、ハッシュ関数fを用いてダイジェストf(S1),f(S2),f(S3)をそれぞれ生成し(ステップ112)、コンテンツ管理サーバ4へ送信することでタイムスタンプの生成依頼要求を出す(ステップ113)。
【0100】
コンテンツ管理サーバ4は、クライアント1からのタイムスタンプの生成依頼要求を受信すると(ステップ212)、タイムスタンプ要求部50は、生成依頼要求に含まれている複数のダイジェストF(=f(S1+S2+S3)を結合し、ハッシュ関数Hを用いてダイジェストH(F)生成し(ステップ213)、タイムスタンプサーバ7へ送信する(ステップ214)。そして、タイムスタンプサーバ7から送られてきたタイムスタンプトークンを受信すると、タイムスタンプ情報、すなわちTtとH(F)をクライアント1へ通知する(ステップ217)。
【0101】
このようにして、クライアント1は、コンテンツC1〜C3に共通したタイムスタンプを得ることができるが、タイムスタンプ生成依頼処理部14は、コンテンツ毎に、コンテンツID,乱数生成時間情報、乱数及びタイムスタンプ情報を対応付けしてタイムスタンプ保持テーブル36に保存する(ステップ133)。このタイムスタンプ保持テーブル36に設定登録されたデータ構成例を図14に示す。
【0102】
続いて、タイムスタンプ検証時における処理のうち通常検証について図15及び図16に示した各フローチャートを用いて説明する。なお、付加情報に含まれるコンテンツIDを使用しない簡易検証については、実施の形態2と同じなので説明を省略する。ここでもコンテンツC1に付加されたタイムスタンプの検証を行う場合を例にして説明する。
【0103】
クライアント1において、付加情報生成部26に含まれる他コンテンツ情報生成部32は、ハッシュ関数fを用いて他のコンテンツC2,C3のダイジェストf(S2),f(S3)をそれぞれ生成する。また、他のコンテンツに関する情報として、更に他のコンテンツC2,C3の識別情報{ID2,ID3}も集約するが、このとき、他コンテンツ情報生成部32は、コンテンツ取得時にコンテンツC2,C3と共にした乱数r2,r3及び乱数時間情報T1をタイムスタンプ保持テーブル36から読み出し、他のコンテンツのIDに、その乱数を結合してからコンテンツ管理サーバ4の公開鍵Esで暗号化し(ステップ134)、また、乱数時間情報T1をコンテンツ管理サーバ4の公開鍵Esで暗号化し、そしてコンテンツC1の付加情報にそれぞれ含める(ステップ122)。以上の処理にて生成された各付加情報は、次のようになる。
E1=(Enc(Es,r1+ID2+ID3),Enc(Es,T1),{f(S2),f(S3)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
【0104】
なお、参考までにコンテンツC2,C3の付加情報は、次のようになる。
E2=(Enc(Es,r2+ID3+ID1),Enc(Es,T1),{f(S3),f(S1)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
E3=(Enc(Es,r3+ID1+ID2),Enc(Es,T1),{f(S1),f(S2)},Tt,Enc(Dt,Tt+H(f(S1)+f(S2)+f(S3))}
【0105】
このようにして生成された付加情報E1は、コンテンツC1を格納する領域S1に付加されてタイムスタンプ生成依頼要求としてコンテンツ管理サーバ4へ送信される(ステップ116)。
【0106】
コンテンツ管理サーバ4において、クライアント1から発せられたタイムスタンプ生成依頼要求を受信すると(ステップ221)、タイムスタンプ検証処理部46は、受信したコンテンツC1の付加情報に含まれているタイムスタンプEnc(Dt,Tt+H(f(S1)+f(S2)+f(S3))を復号してダイジェストTt+H(f(S1)+f(S2)+f(S3))を生成する(ステップ222)。
【0107】
一方、ダイジェスト生成部62は、コンテンツC1の付加情報から他のコンテンツのID、すなわちID2,ID3を取り出すが、本実施の形態においては、他のコンテンツIDは、自己の公開鍵で暗号化されているので、ダイジェスト生成部62は、この公開鍵に対応した自己の秘密鍵で復号することでコンテンツIDを抽出する(ステップ234)。但し、本実施の形態では、コンテンツIDと共に乱数r1及び乱数生成時間情報T1が復号対象となっている。この復号の内容は、次のように表すことができる。
IDx,r1=Dec(Ds,Enc(Es,r1+ID2+ID3))
但し、x=2,3
T1=Dec(Ds,Enc(T1))
【0108】
上記式で示されているように、復号された他のコンテンツC2,C3のID(ID2,ID3)には、乱数r1が結合されているので、タイムスタンプ検証処理部46は、検証対象のコンテンツC1のコンテンツID(=ID1)及び復号された乱数発生時間情報T1の組をキーにして乱数保持部74を検索し、乱数r1を取り出す(ステップ235)。コンテンツC1は、1乃至複数のクライアント1によって複数回ダウンロードされている可能性もあるので、本実施の形態では、コンテンツIDと乱数発生時間情報との組で乱数を一意に特定できるようにした。そして、その取り出した乱数r1を、復号した結果(IDx,r1)から差し引くことでIDx(x=2,3)を抽出する。その後の処理は、実施の形態2と同じである。すなわち、ダイジェスト生成部62は、コンテンツ読出部60に指示をすることでコンテンツC2,C3を取り出し、ハッシュ関数fを用いて各コンテンツのダイジェストf(S1),f(S2),f(S3)を生成し(ステップ227)、これらを結合して結合ダイジェストF(=f(S1)+f(S2)+f(S3))を生成する(ステップ228)。続いて、タイムスタンプ検証部64は、結合ダイジェストFからハッシュ関数Hを用いてダイジェストH(f(S1)+f(S2)+f(S3))を生成し、これに受信した付加情報から取り出したタイムスタンプ生成時刻Ttを付加してTt+H(f(S1)+f(S2)+f(S3))を得る。
【0109】
以上のようにして比較対象のダイジェストが生成されると、タイムスタンプ検証部64は、タイムスタンプの復号により得られたダイジェストTt+H(f(S1)+f(S2)+f(S3))と、コンテンツ管理サーバ4にて生成したダイジェストTt+H(f(S1)+f(S2)+f(S3))とを比較することで、コンテンツC1に付加されたタイムスタンプを検証する(ステップ225)。以上のようにして、通常検証を行うことができる。
【0110】
本実施の形態によれば、コンテンツIDを暗号化してからクライアント1からコンテンツ管理サーバ4へ送るようにしたので、実施の形態2と同様にコンテンツIDの改竄防止を図ることでタイムスタンプ検証の確度を向上させることができる。更に、暗号化する際にコンテンツIDに乱数を結合することで、次のような効果を奏することができる。ここでもコンテンツC1に付加されたタイムスタンプの検証を行う場合を例にして説明する。
【0111】
例えば、不正アクセス者による不正行為によってタイムスタンプ情報領域E1に格納された付加情報のうちコンテンツID(=ID2,ID3)を異なるコンテンツID、例えば、ID1,ID2に書き換えるという改竄がされたとする。このような改竄は、例えばコンテンツC3の付加情報でコンテンツC1の付加情報を上書きすれば可能になる。乱数をコンテンツIDに結合していない場合、コンテンツ管理サーバ4は、コンテンツC1の付加情報から改竄されたコンテンツID、すなわちID1,ID2を取得でき、そしてコンテンツデータベース68からコンテンツC1,C2を正常に取得することができる。このように、コンテンツが正常に取得できた後にダイジェストの比較処理を行うが、タイムスタンプの復号により生成されたダイジェストと比較するダイジェストは、本来コンテンツC1,C2,C3から生成される結合ダイジェストであるべきところを、改竄によりコンテンツC1,C2,C1から生成されているので、各ダイジェストは完全に一致しない。つまり、タイムスタンプの検証は失敗する。この場合、コンテンツ管理サーバ4は、付加情報からコンテンツID(=ID1,ID2)が正常に抽出でき、かつコンテンツC1,C2をコンテンツデータベース68から正常に取り出すことができたので、検証の失敗の原因は、署名対象領域S1に格納されたコンテンツC1が改竄されたと誤って認識してしまう。
【0112】
これに対し、乱数をコンテンツIDに結合させた場合、コンテンツ管理サーバ4は、前述したようにコンテンツC1を上書きしたコンテンツC3の乱数、すなわち乱数r1ではなく乱数r3を取り出すことになる。この結果、前述した式、
IDx,r1=Dec(Ds,Enc(Es,r1+ID2+ID3))
但し、x=2,3
で取り出したIDx,r1(x=2,3)から乱数r3を差し引いても、ID2とID3を正しく抽出することができない。このため、コンテンツ管理サーバ4は、コンテンツデータベース68からコンテンツを正常に取り出すことができないので、署名対象領域S1に格納されたコンテンツデータではなく署名情報領域E1に格納された付加情報が改竄されたと正しく認識することができる。
【0113】
なお、本実施の形態において、コンテンツIDと共に乱数生成時間情報を対応付けして乱数保持部74に登録したのは、コンテンツに付加した乱数を一意に特定できるようにするためである。従って、一意に特定できる情報であれば、乱数生成時間情報に限定する必要はない。例えば、コンテンツの送信時間情報でもよいし、ダウンロードというイベントの識別情報であってもよい。
【図面の簡単な説明】
【0114】
【図1】本発明に係るタイムスタンプ検証システムの一実施の形態を示した全体構成図である。
【図2】実施の形態1におけるタイムスタンプ検証システムのブロック構成図である。
【図3】実施の形態1においてタイムスタンプを生成する際のクライアント側における処理を示したフローチャートである。
【図4】実施の形態1においてタイムスタンプを生成する際のコンテンツ管理サーバ側における処理を示したフローチャートである。
【図5】実施の形態1においてタイムスタンプの検証を依頼するクライアント側における処理を示したフローチャートである。
【図6】実施の形態1において簡易検証におけるタイムスタンプの検証を行うクライアント側における処理を示したフローチャートである。
【図7】実施の形態1において通常検証におけるタイムスタンプの検証を行うクライアント側における処理を示したフローチャートである。
【図8】実施の形態2においてタイムスタンプの検証を依頼するクライアント側における処理を示したフローチャートである。
【図9】実施の形態2において通常検証におけるタイムスタンプの検証を行うクライアント側における処理を示したフローチャートである。
【図10】実施の形態3におけるタイムスタンプ検証システムのブロック構成図である。
【図11】実施の形態3における乱数保持部に登録されるデータ構成例を示した図である。
【図12】実施の形態3においてタイムスタンプを生成する際のコンテンツ管理サーバ側における処理を示したフローチャートである。
【図13】実施の形態3においてタイムスタンプを生成する際のコンテンツ管理サーバ側における処理を示したフローチャートである。
【図14】実施の形態3におけるタイムスタンプ保持テーブルに設定登録されるデータ構成例を示した図である。
【図15】実施の形態3においてタイムスタンプの検証を依頼するクライアント側における処理を示したフローチャートである。
【図16】実施の形態3において通常検証におけるタイムスタンプの検証を行うクライアント側における処理を示したフローチャートである。
【符号の説明】
【0115】
1 クライアント、4 コンテンツ管理サーバ、7 タイムスタンプサーバ、9 公衆網、12 コンテンツ取得部、14 タイムスタンプ生成依頼処理部、16 タイムスタンプ検証依頼処理部、18 表示部、20 ダイジェスト生成部、22 ダイジェスト送信部、24 タイムスタンプ取得部、26 付加情報生成部、28 検証依頼部、30 検証結果取得部、32 他コンテンツ情報生成部、34 コンテンツ保存部、36 タイムスタンプ保持テーブル、42 コンテンツ配信部、44 タイムスタンプ取得処理部、46 タイムスタンプ検証処理部、48 ダイジェスト取得部、50 タイムスタンプ要求部、52 タイムスタンプ取得部、54 タイムスタンプ通知部、58 検証依頼受付部、60 コンテンツ読出部、62 ダイジェスト生成部、64 タイムスタンプ検証部、66 検証結果通知部、68 コンテンツデータベース、70 タイムスタンプ管理テーブル、72 乱数生成部、74 乱数保持部。

【特許請求の範囲】
【請求項1】
デジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータを、
タイムスタンプ検証依頼対象とする検証対象デジタルデータに対して、当該検証対象デジタルデータと共通のタイムスタンプが生成された他のデジタルデータに関する情報と、前記タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成手段、
検証対象デジタルデータに当該付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼手段、
として機能させるタイムスタンプ検証プログラム。
【請求項2】
請求項1記載のタイムスタンプ検証プログラムにおいて、前記タイムスタンプ利用側コンピュータを更に、
複数のデジタルデータそれぞれから生成されたダイジェストを前記タイムスタンプ検証側コンピュータへ送信することによって前記複数のデジタルデータそれぞれに共通のタイムスタンプの生成を依頼するタイムスタンプ生成依頼手段、
前記タイムスタンプ生成依頼手段による生成依頼に応じて前記タイムスタンプ検証側コンピュータから送られてきたタイムスタンプ情報を受け取るタイムスタンプ受取手段、
として機能させるタイムスタンプ検証プログラム。
【請求項3】
タイムスタンプ利用側コンピュータから送られてくるデジタルデータに付加されたタイムスタンプの検証を行うタイムスタンプ検証側コンピュータを、
前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータであって、当該デジタルデータに付加されたタイムスタンプ情報と、当該デジタルデータと共通のタイムスタンプが生成され当該デジタルデータのタイムスタンプ検証に用いる他のデジタルデータに関する情報と、を含む付加情報が付加されたデジタルデータを受信する受信手段、
前記受信手段が受信したデジタルデータに付加された付加情報に含まれるタイムスタンプ情報を復号することによってダイジェストを生成するタイムスタンプ復号手段、
前記受信手段が受信したデジタルデータに付加された付加情報に含まれる他のデジタルデータに関する情報に基づき取得した当該他のデジタルデータのダイジェストと、前記受信手段が受信したデジタルデータから生成したダイジェストとを結合するダイジェスト生成手段、
前記ダイジェスト生成手段が結合により生成したダイジェストと、前記タイムスタンプ復号手段が生成したダイジェストとを比較することによってタイムスタンプの検証を行うタイムスタンプ検証手段、
として機能させるタイムスタンプ検証プログラム。
【請求項4】
請求項3記載のタイムスタンプ検証プログラムにおいて、前記タイムスタンプ検証側コンピュータを更に、
タイムスタンプ生成依頼要求の際に前記タイムスタンプ利用側コンピュータから送られてきた複数のデジタルデータのダイジェストの結合ダイジェストを、デジタルデータの生成時刻の認証のためのタイムスタンプを発行するタイムスタンプ局へ送信するタイムスタンプ要求手段、
前記タイムスタンプ要求手段による要求に応じてタイムスタンプ局から送られてきたタイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報を、タイムスタンプ生成依頼要求発信元の前記タイムスタンプ利用側コンピュータへ通知するタイムスタンプ通知手段、
として機能させるタイムスタンプ検証プログラム。
【請求項5】
デジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータを、
タイムスタンプ検証依頼対象とする検証対象デジタルデータに対して、当該検証対象デジタルデータと共通のタイムスタンプが生成された他のデジタルデータに関する情報と、前記タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成手段、
検証対象デジタルデータに当該付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼手段、
として機能させ、
前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータに付加されたタイムスタンプの検証を行うタイムスタンプ検証側コンピュータを、
前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータであって、当該デジタルデータに付加されたタイムスタンプ情報と、当該デジタルデータと共通のタイムスタンプが生成され当該デジタルデータのタイムスタンプ検証に用いる他のデジタルデータに関する情報と、を含む付加情報が付加されたデジタルデータを受信する受信手段、
前記受信手段が受信したデジタルデータに付加された付加情報に含まれるタイムスタンプ情報を復号することによってダイジェストを生成するタイムスタンプ復号手段、
前記受信手段が受信したデジタルデータに付加された付加情報に含まれる他のデジタルデータに関する情報に基づき取得した当該他のデジタルデータのダイジェストと、前記受信手段が受信したデジタルデータから生成したダイジェストとを結合するダイジェスト生成手段、
前記ダイジェスト生成手段が結合により生成したダイジェストと、前記タイムスタンプ復号手段が生成したダイジェストとを比較することによってタイムスタンプの検証を行うタイムスタンプ検証手段、
として機能させるタイムスタンプ検証プログラム。
【請求項6】
請求項5記載のタイムスタンプ検証プログラムにおいて、
前記付加情報生成手段は、前記他のデジタルデータのダイジェストを、前記他のデジタルデータに関する情報として付加情報に含め、
前記ダイジェスト生成手段は、前記受信手段が受信したデジタルデータに付加された付加情報に含まれるダイジェストと、前記受信手段が受信したデジタルデータから生成されたダイジェストとを結合するデジタル署名プログラム。
【請求項7】
請求項5記載のタイムスタンプ検証プログラムにおいて、
前記付加情報生成手段は、前記他のデジタルデータをそれぞれ識別するデータ識別情報を、前記他のデジタルデータに関する情報として付加情報に含め、
前記タイムスタンプ検証側コンピュータを更に、前記受信手段が受信したデジタルデータに付加された付加情報に含まれるデータ識別情報それぞれに対応するデジタルデータを取得する取得手段として機能させ、
前記ダイジェスト生成手段は、前記取得手段が取得したデジタルデータからそれぞれ生成したダイジェストと、前記受信手段が受信したデジタルデータから生成されたダイジェストとを結合するタイムスタンプ検証プログラム。
【請求項8】
請求項5記載のタイムスタンプ検証プログラムにおいて、
前記付加情報生成手段は、前記各データ識別情報を、前記タイムスタンプ検証側コンピュータの公開鍵で暗号化した後に前記他のデジタルデータに関する情報として付加情報に含め、
前記タイムスタンプ検証側コンピュータを更に、前記受信手段が受信したデジタルデータに付加された付加情報に含まれる暗号化されたデータ識別情報を、前記タイムスタンプ検証側コンピュータの公開鍵に対応した秘密鍵で復号することで前記他のデジタルデータのデータ識別情報を抽出する抽出手段として機能させ、
前記取得手段は、前記抽出手段により抽出されたデータ識別情報それぞれに対応するデジタルデータを取得するタイムスタンプ検証プログラム。
【請求項9】
請求項8記載のタイムスタンプ検証プログラムにおいて、
前記タイムスタンプ検証側コンピュータを更に、
乱数を生成する乱数生成手段、
前記タイムスタンプ利用側コンピュータへ送信するデジタルデータに、前記乱数生成手段が生成した乱数を付加するデジタルデータ送信手段、
前記タイムスタンプ利用側コンピュータへ送信するデジタルデータのデータ識別情報に、当該付加された乱数を対応付けして保存する乱数情報記憶手段、
として機能させ、
前記タイムスタンプ利用側コンピュータを更に、前記タイムスタンプ検証側コンピュータから送られてきたデジタルデータを受信する利用側受信手段として機能させ、
前記付加情報生成手段は、前記他のデジタルデータの各データ識別情報に、前記タイムスタンプ検証側コンピュータから当該デジタルデータに付加されて送られてきた乱数を結合させ、その乱数が結合された各データ識別情報を、前記タイムスタンプ検証側コンピュータの公開鍵で暗号化した後に前記他のデジタルデータに関する情報として付加情報に含め、
前記抽出手段は、前記受信手段が受信したデジタルデータに付加された付加情報に含まれる暗号化されたデータ識別情報及び乱数を、前記タイムスタンプ検証側コンピュータの公開鍵に対応した秘密鍵で復号し、前記受信手段が受信したデジタルデータのデータ識別情報に対応付けされた乱数を前記乱数記憶手段から取り出し、その取り出した乱数に基づいて、復号したデータ識別情報から乱数を分離することでデータ識別情報を抽出するタイムスタンプ検証プログラム。
【請求項10】
デジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータにおいて、
タイムスタンプ検証依頼対象とする検証対象デジタルデータに対して、当該検証対象デジタルデータと共通のタイムスタンプが生成された他のデジタルデータに関する情報と、前記タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成手段と、
検証対象デジタルデータに当該付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼手段と、
を有することを特徴とするタイムスタンプ利用側コンピュータ。
【請求項11】
タイムスタンプ利用側コンピュータから送られてくるデジタルデータに付加されたタイムスタンプの検証を行うタイムスタンプ検証側コンピュータにおいて、
前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータであって、当該デジタルデータに付加されたタイムスタンプ情報と、当該デジタルデータと共通のタイムスタンプが生成され当該デジタルデータのタイムスタンプ検証に用いる他のデジタルデータに関する情報と、を含む付加情報が付加されたデジタルデータを受信する受信手段と、
前記受信手段が受信したデジタルデータに付加された付加情報に含まれるタイムスタンプ情報を復号することによってダイジェストを生成するタイムスタンプ復号手段と、
前記受信手段が受信したデジタルデータに付加された付加情報に含まれる他のデジタルデータに関する情報に基づき取得した当該他のデジタルデータのダイジェストと、前記受信手段が受信したデジタルデータから生成したダイジェストとを結合するダイジェスト生成手段と、
前記ダイジェスト生成手段が結合により生成したダイジェストと、前記タイムスタンプ復号手段が生成したダイジェストとを比較することによってタイムスタンプの検証を行うタイムスタンプ検証手段と、
を有することを特徴とするタイムスタンプ検証側コンピュータ。
【請求項12】
請求項10記載のタイムスタンプ利用側コンピュータと、請求項11記載のタイムスタンプ検証側コンピュータとを有するタイムスタンプ検証システム。
【請求項13】
デジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータにより実施され、
タイムスタンプ検証依頼対象とする検証対象デジタルデータに対して、当該検証対象デジタルデータと共通のタイムスタンプが生成された他のデジタルデータに関する情報と、前記タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成ステップと、
検証対象デジタルデータに当該付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼ステップと、
を含むことを特徴とするタイムスタンプ生成依頼方法。
【請求項14】
タイムスタンプ利用側コンピュータから送られてくるデジタルデータに付加されたタイムスタンプの検証を行うタイムスタンプ検証側コンピュータにより実施され、
前記タイムスタンプ利用側コンピュータから送られてくるデジタルデータであって、当該デジタルデータに付加されたタイムスタンプ情報と、当該デジタルデータと共通のタイムスタンプが生成され当該デジタルデータのタイムスタンプ検証に用いる他のデジタルデータに関する情報と、を含む付加情報が付加されたデジタルデータを受信する受信ステップと、
前記受信ステップにより受信されたデジタルデータに付加された付加情報に含まれるタイムスタンプ情報を復号することによってダイジェストを生成するタイムスタンプ復号ステップと、
前記受信ステップにより受信されたデジタルデータに付加された付加情報に含まれる他のデジタルデータに関する情報に基づき取得した当該他のデジタルデータのダイジェストと、前記受信ステップにより受信されたデジタルデータから生成したダイジェストとを結合するダイジェスト生成ステップと、
前記ダイジェスト生成ステップにより生成されたダイジェストと、前記タイムスタンプ復号ステップにより生成されたダイジェストとを比較することによってタイムスタンプの検証を行うタイムスタンプ検証ステップと、
を含むことを特徴とするタイムスタンプ検証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2007−28015(P2007−28015A)
【公開日】平成19年2月1日(2007.2.1)
【国際特許分類】
【出願番号】特願2005−204973(P2005−204973)
【出願日】平成17年7月13日(2005.7.13)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】