(57)【要約】クライアント装置およびサーバを制御する方法、システム、およびその命令を有するコンピュータ読取可能な媒体が、ディジタルデータを管理するために提供される。一態様によれば、本方法は、ディジタルデータを所定のディジタルデータセットに関連付ける工程と、ディジタルデータの一部またはすべてに対して、および／または所定のセットに関連付けられたディジタルデータの一部またはすべての識別情報に対してリーフハッシュ値を計算する工程と、ルートハッシュ値を計算する工程と、を含み、ここで、基礎をなすハッシュアルゴリズムは入力として少なくともリーフハッシュ値を有する。本方法は、所与のディジタルデータに関連付けられたディジタルデータセットを識別することにより、ルートハッシュ値を有する所与のディジタルデータの整合性を判定する工程と、ルートハッシュ値を再取得する工程と、ルートハッシュ値が計算されたハッシュ値を再取得する工程と、再取得されたハッシュ値に対してハッシュ値を計算する工程と、再取得されたルートハッシュ値と前の工程で計算されたハッシュ値とを比較する工程と、をさらに含む。
2007515837.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも二つの所定のディジタルデータセットが存在し、前記少なくとも二つの所定のセットの中の他の所定のセットから区別することができる第一の所定のディジタルデータセットに、ディジタルデータを関連付ける工程と、
前記ディジタルデータの一部またはすべてに対して、および／または前記第一の所定のセットと関連付けられた前記ディジタルデータの一部またはすべての識別情報に対して、第一のリーフハッシュ値を計算する工程と、
前記ディジタルデータの一部またはすべてに対して、および／または前記少なくとも二つの所定のセットの第二の所定のセットと関連付けられた前記ディジタルデータの一部またはすべてに対して、第二のリーフハッシュ値を計算する工程と、
三つ以上の所定のセットが存在する場合、前記少なくとも二つの所定のセットの各残りのセットについて、前記ディジタルデータの一部またはすべてに対して、および／または残りの所定のセットと関連付けられた前記ディジタルデータの一部またはすべての識別情報に対して、リーフハッシュ値をそれぞれ計算する工程と、
少なくとも前記第一および前記第二のリーフハッシュ値に対して第一の非リーフハッシュ値を計算する工程を含み、基礎をなすハッシュアルゴリズムが前記少なくとも二つの所定のディジタルデータセットのそれぞれに対してそれぞれ計算された少なくとも前記リーフハッシュ値を入力として有するルートハッシュ値を計算する工程と、を含み、
前記ルートハッシュ値を有する所与のディジタルデータの整合性を判定する工程をさらに含み、当該整合性を判定する工程は、
所与のディジタルデータに関連付けられた前記ディジタルデータセットを識別する工程と、
前記ルートハッシュ値を再取得する工程と、
前記ルートハッシュ値が計算された前記ハッシュ値を再取得し、前記ハッシュ値の再取得は、第一および第二のリーフハッシュ値を計算する前記工程と同じ計算方式を適用することにより、前記ディジタルデータの一部またはすべてに対して、および／または前記識別されたディジタルデータセットに関連付けられた前記ディジタルデータの一部またはすべての識別情報に対して、リーフハッシュ値を再計算する工程を含む工程と、
前記ルートハッシュ値を計算する工程と同じ計算方式を適用することにより、前記再取得されたハッシュ値に対してハッシュ値を計算する工程と、
前記再取得されたルートハッシュ値を、前の工程で計算されたハッシュ値と比較する工程と、
前記比較工程に基づき、前記ルートハッシュ値を有する前記所与のディジタルデータの整合性を、前記比較工程の結果が等しいハッシュ値になるか否かにより判定する工程と、
を含む工程と、を含む、ディジタルデータを管理する方法。
【請求項２】
前記ディジタルデータに関連付けられた番号と、
前記ディジタルデータの一意的な識別情報と、
前記ディジタルデータの一意的な識別情報の所定の部分と、
前記ディジタルデータに関連付けられたディジタル識別情報の所定のビット位置から抽出された所定数のビットと、
前記ディジタルデータに関連付けられまたは含まれた所定のサーチストリングと、
前記ディジタルデータのタイムスタンプと、
前記ディジタルデータ全体のハッシュ値と、
本目的のために生成されかつ前記ディジタルデータに付加された識別子と、
上記識別情報の少なくともいずれかのハッシュ値と、
のうち少なくともいずれかが、前記ディジタルデータのそれぞれに割り当てられまたは前記ディジタルデータのそれぞれから取得される、請求項１記載の方法。
【請求項３】
ディジタルデータを第一の所定のディジタルデータセットに関連付ける前記工程は、前記少なくともいずれかの識別情報を使用することにより達成される、請求項２記載の方法。
【請求項４】
前記少なくとも二つの所定のセットは前記識別情報により識別および／または区別され、
所与のディジタルデータに関連付けられた前記ディジタルデータセットを識別する前記工程は、
前記所与のディジタルデータの前記少なくともいずれかの識別情報を判定することを含み、識別は、前記少なくともいずれかの判定された識別情報を使用することにより達成される、請求項２または請求項３記載の方法。
【請求項５】
第一のリーフハッシュ値を計算する前記工程、第二のリーフハッシュ値を計算する前記工程、および／または三つ以上の所定のセットが存在する場合に各残りの所定のセットのリーフハッシュ値をそれぞれ計算する前記工程は、
前記所定のセットに関連付けられた前記ディジタルデータの一部またはすべてに対して前記少なくともいずれかの識別情報を取得する工程と、
前の工程で取得した前記識別情報に対してハッシュ値を計算する工程と、を含み、
前記識別されたディジタルデータセットに対してリーフハッシュ値を再計算する前記工程は、
前記識別されたセットに関連付けられた前記ディジタルデータの一部またはすべてに対して前記少なくともいずれかの識別情報を再取得する工程と、
前記再取得された識別情報に対してハッシュ値を計算する工程と、
を含む、請求項２から請求項４のいずれかに記載の方法。
【請求項６】
第一のリーフハッシュ値を計算する前記工程、第二のリーフハッシュ値を計算する前記工程、および／または三つ以上の所定のセットが存在する場合に各残りの所定のセットのリーフハッシュ値をそれぞれ計算する前記工程は、
前記所定のセットに関連付けられたディジタルデータの一部またはそれぞれに対して前記少なくともいずれかの識別情報のハッシュ値をそれぞれ計算する工程と、
前の工程で計算した前記ハッシュ値に対してハッシュ値を計算する工程と、を含み、
前記識別されたディジタルデータセットに対してリーフハッシュ値を再計算する前記工程は、
前記識別されたセットに関連付けられた前記ディジタルデータの一部またはそれぞれに対して前記少なくともいずれかの識別情報を取得する工程と、
前の工程で取得した各識別情報に対してハッシュ値をそれぞれ計算する工程と、
少なくとも前の工程において計算した前記ハッシュ値に対してハッシュ値を計算する工程と、を含む、請求項２から請求項４のいずれかに記載の方法。
【請求項７】
前記少なくとも二つのディジタルデータセットのそれぞれに対して、前記セットに関連付けられたディジタルデータのそれぞれのハッシュ値を計算する工程を含む、ハッシュ値をそれぞれ計算する工程をさらに含み、
第一のリーフハッシュ値を計算する前記工程、第二のリーフハッシュ値を計算する前記工程、および／または三つ以上の所定のセットが存在する場合に各残りの所定のセットのリーフハッシュ値をそれぞれ計算する前記工程は、
少なくとも前の工程において計算された前記それぞれのディジタルデータセットのハッシュ値に対してハッシュ値を計算する工程をさらに含み、
前記識別されたディジタルデータセットに対してリーフハッシュ値を再計算する前記工程は、
前記識別されたセットに関連付けられたディジタルデータのそれぞれのハッシュ値をそれぞれ再計算する工程と、
前記それぞれ再計算されたハッシュ値のハッシュ値を計算する工程と、を含む、請求項１から請求項４のいずれかに記載の方法。
【請求項８】
前記少なくとも二つのディジタルデータセットのそれぞれに対してハッシュ値をそれぞれ計算する前記工程は、第一のリーフハッシュ値を計算する前記工程、および／または第二のリーフハッシュハッシュ値を計算する前記工程、および／または三つ以上の所定のセットが存在する場合に各残りの所定のセットに対してリーフハッシュ値をそれぞれ計算する前記工程に含まれる、請求項７記載の方法。
【請求項９】
互いに区別することができる少なくとも四つの所定のディジタルデータセットが存在し、
前記ディジタルデータの一部またはすべてに対して、および／または前記少なくとも四つの所定のセットの第三の所定のセットと関連付けられた前記ディジタルデータの一部またはすべての識別情報に対して、第三のリーフハッシュ値を計算する工程と、
前記ディジタルデータの一部またはすべてに対して、および／または前記少なくとも四つの所定のセットの第四の所定のセットと関連付けられた前記ディジタルデータの一部またはすべての識別情報に対して、第四のリーフハッシュ値を計算する工程と、をさらに含み、
ルートハッシュ値を計算する前記工程は、
少なくとも前記第三および前記第四のリーフハッシュ値に対して第二の非リーフハッシュ値を計算する工程と、
少なくとも前記第一および前記第二のリーフハッシュ値に対して第三の非リーフハッシュ値を計算する工程と、をさらに含む、請求項１から請求項８のいずれかに記載の方法。
【請求項１０】
前記計算されたリーフハッシュ値、非リーフハッシュ値およびルートハッシュ値は、ツリー構造を表し、
前記第一、前記第二、前記第三、前記第四のリーフハッシュ値は、前記ツリー構造の最下層に関連付けられ、
前記第一、前記第二の非リーフハッシュ値は、前記ツリー構造の第二の層に関連付けられ、
前記第三の非リーフハッシュ値は、前記ツリー構造の第三の層に関連付けられ、
前記ルートハッシュ値は、前記ツリー構造の最上層に関連付けられ、
前記最上層は、前記ルートハッシュ値である単一の非リーフハッシュ値のみを含む前記ツリー構造の最も高い層である、請求項９記載の方法。
【請求項１１】
さらに所定のディジタルデータセットが存在し、それぞれが、前記第一から第四のリーフハッシュ値と同じ方法で計算された別のリーフハッシュ値と関連付けられ、および／または、
前記ツリー構造の別の層が存在し、各層が、前記ツリー構造におけるそれぞれの下位層の前記非リーフハッシュ値の一部またはすべてに対して計算された別の非リーフハッシュ値に関連付けられた、請求項１０記載の方法。
【請求項１２】
前記ルートハッシュ値が計算された前記ハッシュ値を再取得する前記工程は、
前記識別されたディジタルデータセットの再計算されたリーフハッシュ値を含むハッシュ値に対して計算された、前記ツリー構造の前記第二の層における各非リーフハッシュ値を再計算する工程と、
前記ツリー構造の前記第三の層から最上層までのそれぞれについて、本工程または前記前の工程で再計算された非リーフハッシュ値を含むハッシュ値に対して計算された各非リーフハッシュ値を再計算する工程と、をさらに含む、請求項１０または請求項１１記載の方法。
【請求項１３】
前記ルートハッシュ値が計算された前記ハッシュ値を再取得する前記工程は、
前記識別されたディジタルデータセットの再計算されたリーフハッシュ値を含むハッシュ値に対して計算された、前記ツリー構造の前記第二の層における各非リーフハッシュ値を再計算する前記工程で必要とされる残りのすべてのリーフハッシュ値を提供する工程と、
前記ツリー構造の前記第三の層から最上層のそれぞれについて各非リーフハッシュ値を再計算する前記工程で必要とされる残りのすべての非リーフハッシュ値を提供する工程と、をさらに含む、請求項１２記載の方法。
【請求項１４】
前記ルートハッシュ値を計算する前記工程は、
前記所定のセットを複数の所定のセットのグループに分割する工程と、
前記所定のセットのグループのそれぞれについて、前記グループにおける所定のセットの計算されたリーフハッシュ値に対して非リーフハッシュ値を計算する工程と、
前記ツリー構造の前記第三の層から最上層のそれぞれについて、すぐ下の層の前記非リーフハッシュ値を少なくとも二つのグループに分割し、各グループの前記非リーフハッシュ値に対して非リーフハッシュ値を計算する工程と、をさらに含む、請求項１０から請求項１３のいずれかに記載の方法。
【請求項１５】
前記ツリー構造の各層Ｌについて、前記所定のセット、および／またはすぐ下の層Ｌ−１の前記非リーフハッシュ値は、所定数ＢＬ個の所定のセットまたは非リーフハッシュ値のグループに分割される、請求項１４記載の方法。
【請求項１６】
所定のセットの総数が前記所定の数Ｂ１の整数倍か否かを判定する工程と、
前記総数がＢ１の整数倍でない場合、Ｂ１個より少ない所定のセットをそれぞれ含む少なくとも一つのグループを生成し、または、少なくとも一つの同一の所定のセットをいずれも含む少なくとも二つのグループを生成する工程と、
前記ツリー構造Ｌの第二の層から最上層のそれぞれについて、そのすぐ下の層Ｌ−１の非リーフハッシュ値の総数が、前記所定の数ＢＬの整数倍か否かを判定する工程と、
前記総数がＢＬの整数倍でない場合、すぐ下の層Ｌ−１のＢＬ個より少ない非リーフハッシュ値をそれぞれ含む少なくとも一つのグループを生成する工程、すぐ下の層Ｌ−１の少なくとも一つの同一の非リーフハッシュ値をいずれも含む少なくとも二つのグループを生成する工程、または下位層Ｌ−Ｎ（Ｎ＞１かつＬ＞２）の少なくとも一つのハッシュ値を含む少なくとも一つのグループを生成する工程のうちのいずれかを実行する工程と、をさらに含む、請求項１５記載の方法。
【請求項１７】
各ディジタルデータが前記複数の所定のセットのいずれかに関連付けられた、請求項１から請求項１６のいずれかに記載の方法。
【請求項１８】
異なる種類のディジタルデータが異なる所定のセットと関連付けられた、請求項１７記載の方法。
【請求項１９】
ディジタルデータは、前記所定のディジタルデータセットの二つ以上に関連付けることができる、請求項１から請求項１６のいずれかに記載の方法。
【請求項２０】
前記所与のディジタルデータが二つ以上の所定のディジタルデータセットに関連付けられた場合、前記ルートハッシュ値を有する前記所与のディジタルデータの整合性を判定する前記工程は、
二つ以上の所定のセットをそれぞれ識別する工程と、
前記二つ以上の識別されたセットのそれぞれに対してリーフハッシュを再計算する工程と、を含む、請求項１９記載の方法。
【請求項２１】
前記非リーフハッシュ値は、リーフハッシュ値および／または非リーフハッシュ値の排他的なグループに対して計算された、請求項１から請求項２０のいずれかに記載の方法。
【請求項２２】
所定のセットの総数はＳであり、Ｓは整数Ｂの整数Ｅ乗である、請求項１から請求項１３のいずれかに記載の方法。
【請求項２３】
前記Ｓ個の所定のセットのそれぞれに対して、リーフハッシュ値は計算され、
前記ルートハッシュ値を計算する前記工程は、
（ａ）前記Ｓ個の所定のセットをＥ＋１個の相互に排他的な、Ｂ個の所定のセットのグループに分割する工程と、
（ｂ）前記Ｅ＋１個のグループのそれぞれについて、前記グループのＢ個の所定のセットの前記計算されたリーフハッシュ値に対して非リーフハッシュ値を計算する工程と、
（ｃ）前の工程における前記計算された非リーフハッシュ値を排他的な前記Ｂ個の非リーフハッシュ値のグループに分割する工程と、
（ｄ）前の工程における前記排他的なグループのそれぞれについて、前記グループの前記Ｂ個の非リーフハッシュ値に対して非リーフハッシュ値を計算する工程と、
（ｅ）前記ルートハッシュ値である単一の非リーフハッシュ値が計算されるまで工程（ｃ）および（ｄ）を繰り返す工程とと、を含む、請求項２２記載の方法。
【請求項２４】
前記整数Ｂは２の整数累乗である、請求項２２または請求項２３に記載の方法。
【請求項２５】
前記所与のディジタルデータは、少なくとも一つのサーバと複数のクライアントとを含むサーバクライアントシステムのクライアントに配送され、
各所定のディジタルデータセットに対してリーフハッシュ値を計算する前記工程、非リーフハッシュ値を計算する前記工程、およびルートハッシュ値を計算する前記工程は、前記サーバにより実行され、
前記ルートハッシュ値を有する前記所与のディジタルデータの整合性を判定する前記工程は、前記クライアントにより実行され、
前記ルートハッシュを前記サーバクライアントシステムの複数のクライアントに配送する工程をさらに含む、請求項１から請求項２４のいずれかに記載の方法。
【請求項２６】
複数のクライアントに前記ルートハッシュを配送する前記工程は、前記サーバにより実行される、請求項２５に記載の方法。
【請求項２７】
前記ルートハッシュ値は、第一のクライアントにより前記ルートハッシュ値を第二のクライアントに送信することにより、前記複数のクライアント間で配送され、前記第一のクライアントは、前記サーバから、および／または前記複数のクライアントの一つ以上から前記ルートハッシュ値を既に受信している、請求項２５または請求項２６記載の方法。
【請求項２８】
前記配送されたルートハッシュ値がタイムスタンプまたは妥当性情報と関連付けられた、請求項２５から請求項２７のいずれかに記載の方法。
【請求項２９】
前記ルートハッシュ値は、前記タイムスタンプまたは妥当性情報に基づきクライアントにより、置換、更新および／または前記サーバから要求される、請求項２８記載の方法。
【請求項３０】
サーバクライアントシステムにおけるクライアント装置を制御するための命令を含むコンピュータ読取可能な媒体であって、
前記命令は、前記クライアント装置に、
請求項１から請求項２９のいずれかの方法に従って計算された値を有するルートハッシュ値を受信する工程と、
前記ルートハッシュ値を有する所与のディジタルデータの整合性を判定する工程と、を実行させ、整合性を判定する工程は、
所与のディジタルデータに関連付けられたディジタルデータセットを識別する工程と、
前記ルートハッシュ値が計算された前記ハッシュ値を取得し、前記ハッシュ値の取得は、前記ディジタルデータの一部またはすべて、および／または前記識別されたディジタルデータセットに関連付けられた前記ディジタルデータの一部またはすべての識別情報を前記クライアントサーバシステムのサーバから要求する工程と、前記要求されたディジタルデータの一部またはすべて、および／または前記識別されたディジタルデータセットと関連付けられた前記ディジタルデータの一部またはすべての識別情報に対してリーフハッシュ値を計算する工程と、を含む工程と、前記ルートハッシュ値を計算するために必要とされる、前記残りのリーフハッシュ値および非リーフハッシュ値を判定する工程と、前記サーバから前記残りのリーフハッシュ値および非リーフハッシュ値を要求する工程と、を含む工程と、
前記ルートハッシュ値を計算する工程と同じ計算方式を適用することにより、前記取得されたハッシュ値に対してハッシュ値を計算する工程と、
前記受信したルートハッシュ値を前の工程で計算されたハッシュ値と比較する工程と、
前記比較工程に基づき、前記ルートハッシュ値を有する前記所与のディジタルデータの整合性を、前記比較工程の結果が等しいハッシュ値になるか否かにより判定する工程と、
を含む、コンピュータ読取可能な媒体。
【請求項３１】
サーバクライアントシステムにおけるサーバを制御するための命令を含むコンピュータ読取可能な媒体であって、
前記命令は、請求項１から請求項２９のいずれかに記載の方法に従って前記サーバに、
少なくとも二つの所定のディジタルデータセットが存在し、前記少なくとも二つの所定のセットの中の他の所定のセットから区別することができる第一の所定のディジタルデータセットに、ディジタルデータを関連付ける工程と、
前記ディジタルデータの一部またはすべて、および／または前記第一の所定のセットと関連付けられた前記ディジタルデータの一部またはすべての識別情報に対して第一のリーフハッシュ値を計算する工程と、
前記ディジタルデータの一部またはすべてに対して、および／または前記少なくとも二つの所定のセットの第二の所定のセットと関連付けられた前記ディジタルデータの一部またはすべての識別情報に対して、第二のリーフハッシュ値を計算する工程と、
三つ以上の所定のセットが存在する場合、前記少なくとも二つの所定のセットの各残りのセットについて、前記ディジタルデータの一部またはすべてに対して、および／または残りの所定のセットと関連付けられた前記ディジタルデータの一部またはすべての識別情報に対して、リーフハッシュ値をそれぞれ計算する工程と、
少なくとも前記第一および前記第二のリーフハッシュ値に対しする第一の非リーフハッシュ値を計算する工程を含み、前記基礎をなすハッシュアルゴリズムが前記少なくとも二つの所定のディジタルデータセットのそれぞれに対してそれぞれ計算された少なくとも前記リーフハッシュ値を入力として有するルートハッシュ値を計算する工程と、
前記ルートハッシュ値を前記サーバクライアントシステムの複数のクライアントに配送する工程と、を実行させる、コンピュータ読取可能な媒体。
【請求項３２】
公衆ネットワークを介して接続された複数の者を含み前記複数の者に公開鍵署名方式を提供するシステムにおいて署名の信頼水準を提供する方法であって、
秘密鍵ＳＫ２を使用する第二者により第一者の公開鍵ＰＫ１に署名する工程と、
前記被署名公開鍵ＰＫ１に対応する秘密鍵ＳＫ１を使用する前記第一者によりディジタルデータＤに署名する工程と、
前記被署名ディジタルデータＤおよび前記被署名公開鍵ＰＫ１を、前記第一者を知らずおよび／または信頼していない第三者により取得する工程と、
前記第二者を前記被署名公開鍵ＰＫ１の署名者として判定する工程と、
前記第二者が署名者として前記第三者により知られおよび／または信頼されているか否かを判定する工程と、
前記第二者が前記署名者として前記第三者により知られまたは信頼されている場合、（ａ）前記秘密鍵ＳＫ２に対応する前記第二者の前記公開鍵ＰＫ２を取得する工程と、（ｂ）前記知られおよび／または信頼されている署名者の前記公開鍵ＰＫ２を使用することにより、前記被署名公開鍵ＰＫ１を検証する工程と、（ｃ）前記被署名公開鍵ＰＫ１の検証に成功した場合、前記被署名公開鍵ＰＫ１を使用することにより前記被署名ディジタルデータＤを検証する工程と、を実行する工程と、を含む方法。
【請求項３３】
前記公開鍵に対応する秘密鍵を所有する前記対応する署名者が前記検証者により知られおよび／または信頼されている場合のみ、公開鍵は、検証者によりディジタルデータについておよび／または別の公開鍵についての署名を検証するために受理される、請求項３２記載の方法。
【請求項３４】
前記第二者が前記署名者として前記第三者により知られまたは信頼されている場合、かつ前記被署名公開鍵ＰＫ１の前記検証が成功した場合、前記第三者が、前記第一者および／または前記公開鍵ＰＫ１を、前記秘密鍵ＳＫ１を使用する前記第一者により発行される後続の署名について信頼されるものとして登録する、請求項３２または請求項３３記載の方法。
【請求項３５】
前記ディジタルデータＤは、前記システムの別の者の公開鍵を含む、請求項３２または請求項３３記載の方法。
【請求項３６】
前記第二の署名者が前記第三者により知られず、および／または信頼されない場合、
（ｉ）別の署名者が前記被署名公開鍵ＰＫ１の署名を発行したか否かを判定する工程と、
（ｉｉ）前記被署名公開鍵ＰＫ１の別の署名者の署名が判定され、前記別の署名者が、前記第三者により知られおよび／または信頼されている場合、前記別の署名者の公開鍵で工程（ａ）、（ｂ）および（ｃ）を実行する工程と、
（ｉｉｉ）前記被署名公開鍵ＰＫ１の別の署名者が判定されなかった場合、および／または信頼できる別の署名者が判定されなかった場合、
１．前記秘密鍵ＳＫ２に対応する前記第二者の公開鍵ＰＫ２を取得する工程と、
２．第四の署名者が前記第二の公開鍵ＰＫ２の署名を発行したか否かを判定する工程と、
３．第四の署名者が前記第二の公開鍵ＰＫ２の署名を発行した場合、前記第四の署名者が前記第三者により知られおよび／または信頼されているか否かを判定し、前記第四の署名者が前記第三者により知られおよび／または信頼されている場合、前記第四の署名者の公開鍵ＰＫ４で工程（ａ）、（ｂ）および（ｃ）を実行する工程と、
を実行する工程をさらに含む、請求項３２から請求項３５のいずれかに記載の方法。
【請求項３７】
前記第四の署名者の前記公開鍵ＰＫ４は、第五の署名者により署名され、
４．前記第四の署名者が前記第三者により知られておらず、および／または信頼されていない場合、前記公開鍵ＰＫ２に適用された工程（ｉ）および（ｉｉ）を実行し、前記公開鍵ＰＫ４、前記第五の者、および前記公開鍵ＰＫ５それぞれに適用された工程（ｉｉｉ）を実行する工程と、をさらに含む、請求項３６記載の方法。
【請求項３８】
前記公開鍵に対応する秘密鍵を所有する前記対応する署名者が前記検証者により知られ、および／または信頼されている場合のみ、公開鍵は、検証者によりディジタルデータについてのおよび／または別の公開鍵についての署名を検証するために受理され、前記公開鍵が署名され、前記署名が別の信頼されおよび／または既知の公開鍵により検証することができる場合、未知の公開鍵は信頼される、請求項３２から請求項３７のいずれかに記載の方法。
【請求項３９】
署名の検証のための前記公開鍵を受理するのに必要とされる既知の公開鍵までの公開鍵チェーンにおける未知の公開鍵の数に基づく公開鍵の信頼水準を確立する工程をさらに含む、請求項３８記載の方法。
【請求項４０】
未知の公開鍵が信頼されるか否かを確立するために前記公開鍵チェーンにおいて使用されない、前記システムにおける一つ以上の公開鍵、および／または前記公開鍵に対応する署名は、信頼されないものとして検証者に識別される、請求項３８または請求項３９記載の方法。
【請求項４１】
信頼情報は、公開鍵の署名に、または前記署名を検証するために使用される公開鍵に割り当てられ、前記公開鍵チェーンにおける一つ以上の公開鍵に割り当てられた前記信頼情報は、前記信頼水準を確立するために使用される、請求項３９から請求項４０のいずれかに記載の方法。
【請求項４２】
二つ以上の公開鍵チェーンが公開鍵の信頼水準を確立するために使用され、すべてのチェーンの信頼水準は、組み合わせて単一の信頼水準とされまたは最も高い信頼水準が使用される、請求項３８から請求項４０のいずれかに記載の方法。
【請求項４３】
前記公開鍵および／または前記公開鍵の署名は、前記システムのサーバに格納され、前記サーバは、前記公衆ネットワークを介して前記の者に接続され、前記公開鍵および／または前記公開鍵の前記署名は、前記サーバおよび／または前記システムの別の者により前記システムの者に配送される、請求項３２から請求項４２のいずれかに記載の方法。
【請求項４４】
前記サーバは、前記二つ以上のチェーンと関連付けられたすべての署名を集め、信頼水準を確立し、前記サーバは、集められまたは組み合わせられた信頼水準を前記サーバにより発行された別の署名に割り当てる、請求項４２および請求項４３記載の方法。
【請求項４５】
公衆ネットワークを介して接続された複数の者を含むシステムの少なくとも二者に対してディジタルデータの完全性および整合性の情報を提供する方法であって、
前記システムの第一者によりディジタルデータの識別情報のリストを生成する工程と、
前記リストの識別情報の一部またはすべてに対してハッシュ値を計算する工程と、
前記ハッシュ値を前記リストに関連付ける工程と、
前記システムの第二者に、前記リストおよび前記ハッシュ値を提供する工程と、
前記第二者が所有する対応リストにおける一つ以上の識別情報を、前記取得されたリストの対応する一つ以上の識別情報と比較する工程と、
両方のリストの整合性を検証する工程と、を含み、当該整合性を検証する工程は、
前記リストの識別情報の一部またはすべてに対してハッシュ値を計算する工程と、
前記対応するリストの識別情報の一部またはすべてに対してハッシュ値を計算または取得する工程と、
両方のハッシュ値を比較する工程と、
前記比較工程の結果が等しいハッシュ値となった場合、両方のリストが整合しているということを確立する工程と、を含む方法。
【請求項４６】
前記ハッシュ値を前記リストに関連付ける前記工程は、前記ハッシュ値を前記リストに付与する工程を含む、請求項４５記載の方法。
【請求項４７】
両方のリストの整合性を検証する前記工程は、前記比較工程の結果が異なるハッシュ値となった場合、前記第一および／または前記第二者に通知する工程をさらに含む、請求項４５または請求項４６に記載の方法。
【請求項４８】
両方のリストの整合性を検証する前記工程は、前記比較工程の結果が異なるハッシュ値となった場合、前記システムの他の者によりアクセス可能な警報を生成する工程をさらに含む、請求項４５から請求項４７のいずれかに記載の方法。
【請求項４９】
前記ディジタルデータは前記システムにおける者の公開鍵である、請求項４５から請求項４８のいずれかに記載の方法。
【請求項５０】
前記リストおよび／または前記リスト内の識別情報は前記第一者によりディジタル署名される、請求項４５から請求項４９のいずれかに記載の方法。
【請求項５１】
ディジタルデータの前記識別情報は前記ディジタルデータである、請求項４５から請求項５０のいずれかに記載の方法。
【請求項５２】
クライアントグループは、前記リストおよび前記リストのすべての更新を前記グループのすべてのクライアント間で交換することにより相互に整合したリストを維持し、前記リストは一つのディジタルデータセットおよび／またはディジタルデータの識別情報を含む、請求項４５から請求項５０のいずれかに記載の方法。
【請求項５３】
前記ディジタルデータに関連付けられた番号と、
前記ディジタルデータの一意的な識別情報と、
前記ディジタルデータの一意的な識別情報の所定の部分と、
前記ディジタルデータに関連付けられたディジタル識別情報の所定のビット位置から抽出された所定数のビットと、
前記ディジタルデータに関連付けられまたは含まれる所定のサーチストリングと、
ディジタルデータのタイムスタンプと、
前記ディジタルデータ全体のハッシュ値と、
特に本目的のために作成されかつ前記ディジタルデータに付加された識別情報と、
上記識別情報の少なくともいずれかのハッシュ値と、
のうち少なくともいずれかは、前記ディジタルデータのそれぞれに割り当てられまたは前記ディジタルデータのそれぞれから取得される、請求項５２に記載の方法。
【請求項５４】
前記ディジタルデータセットは、各ディジタルデータに対して前記少なくともいずれかの識別情報を使用してディジタルデータを前記セットに関連付けることにより前記識別情報により判定され、または前記ディジタルデータセットは、クライアント識別情報により判定される、請求項５３に記載の方法。
【請求項５５】
前記少なくとも二つの所定のセットは、前記識別情報により識別および／または区別され、
所与のディジタルデータに関連付けられた前記ディジタルデータセットを識別する工程をさらに含み、前記識別する工程は、
前記所与のディジタルデータの前記少なくとも一つの識別情報を判定する工程を含み、前記少なくとも一つの判定された識別情報を使用することにより前記識別する工程が達成される、請求項５３または請求項５４記載の方法。
【請求項５６】
所定のクライアントグループは、相互に整合した所定のディジタルデータのリストを維持する、請求項５３から請求項５５のいずれかに記載の方法。
【請求項５７】
前記ディジタルデータの所定のリストは、請求項２５から請求項２９のいずれかに記載の方法に従って維持され交換される、請求項５６記載の方法。
【請求項５８】
前記グループの前記クライアントおよび／または前記システムにおける別の者は、一つ以上の他のクライアントグループとリーフハッシュ値を交換し、これにより非リーフハッシュ値および前記ルートハッシュ値を計算する、請求項５７記載の方法。
【請求項５９】
各クライアントグループの一つ以上のクライアントが、請求項２５から請求項２９のいずれかに記載の前記サーバの機能を達成する、請求項５８記載の方法。
【請求項６０】
前記サーバは各クライアントグループのクライアントである、請求項５８または請求項５９記載の方法。
【請求項６１】
クライアントサーバシステムにおけるクライアント装置を制御するための命令を含むコンピュータ読取可能な媒体であって、前記命令は、前記クライアント装置を請求項３２から請求項６０のいずれかに記載の方法に関与させる、媒体。
【請求項６２】
クライアントサーバシステムにおけるサーバを制御するための命令を含むコンピュータ読取可能な媒体であって、前記命令は、前記サーバを請求項３２から請求項６０のいずれかに記載の方法に関与させる、媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理配送システムに関し、そして特定の実施の形態は、公衆ネットワークを介し、一人以上の者から他の複数の者へディジタルデータを配送するために用いられるシステムの公開鍵基盤に関する。特に、インターネットのような公衆ネットワークで配送されるディジタルデータの完全性および信頼の水準を確立する処理が本発明により提供される。
【背景技術】
【０００２】
多くの用途においては、サーバが、様々なクライアントに対し、あるデータまたはデータセットの有無と、さらにその完全性を証明することができることが望ましい。
【０００３】
さらに、ＰＧＰ（Pretty Good Privacy）システムのようなシステムにおいては、ある「署名者（signing party）」が当該システムの他のある者の公開鍵にディジタル署名し、それによってその「被署名者（signed party）」の身元（identity）を承認できることが望ましい。「署名者」を信頼するかまたは知っている第三者に、「被署名者の」の身元を知らずに「被署名者」の身元または公開鍵に対する信頼を確立させるシステムを提供することは特に望ましいであろう。既知のシステムは、ほとんどの者（クライアント）が他の者の小さなグループだけを知っているという欠点と、別の公開鍵上の署名は当該鍵の信頼を確立するための効果的なやり方でないという欠点を有している。なぜなら、当該鍵の受信者は署名者の身元を知りかつ信頼しなければならず、前もって知らない鍵を受信するほとんどの場合はそうでないからである。
【０００４】
また、インターネットのような分散型システムにおいてローカルに使用されるデータの完全性情報を確立するシステムおよび方法を提供することが望ましい。多くのユーザは、グローバルに使用されるデータセットの一部を頻繁に使用する。ここで、「グローバルに」とは、あるシステムにおける多くのユーザがそのデータセットを使用するということを意味する。このデータは、該データを使用するすべてのユーザにとって同一である（そして不変である）ということを保証できる方法を提供することが望ましい。データは、ある信頼できる鍵により署名されるか、あるいはすべてのユーザにより集権化されかつ信頼される信頼できる第三者により署名されるということが知られている。しかしながら、これは、集権化された第三者に基づいて信頼を確立する。これは明らかに不都合である。なぜなら、すべてのユーザはこの第三者を信頼しなければならず、この第三者の完全性に依存し、そしてこのシステムはこの第三者により支援される集権型基盤を必要とするからである。
【発明の開示】
【０００５】
本発明の目的は、前述の有利で望ましい態様および特徴を達成し可能にするシステムおよび方法、ならびに、このようなシステムおよび方法の複数のユーザ端末およびサーバを適宜制御する命令を含むコンピュータ読取り可能な媒体を提供することである。本発明のさらなる利点および態様は以下の説明および特許請求の範囲から明らかである。
【０００６】
この目的は独立請求項の主題により解決され、好ましい実施の形態は従属請求項の主題により定義されるが、これらは本発明に関する開示の一部である。
【０００７】
本発明の一態様によれば、ディジタルデータを管理する方法およびシステムが提供される。ディジタルデータは第一の所定のディジタルデータセットと関連付けられ、ここで少なくとも二つの所定のディジタルデータセットが存在し、当該第一の所定のディジタルデータセットは、少なくとも二つの所定のセットのその他の所定のセットから区別することができる。
【０００８】
第一のリーフハッシュ値は、第一の所定のセットと関連付けられたディジタルデータの一部またはすべてに対し（および／またはディジタルデータの一部またはすべての識別情報に対し）計算される。また、少なくとも二つの所定のセットの第二の所定のセットと関連付けられたディジタルデータの一部またはすべてに対し（および／またはディジタルデータの一部またはすべての識別情報に対し）、少なくとも第二のリーフハッシュ値が計算される。三つ以上の所定のセットが存在する場合、少なくとも二つの所定のセットの残りの各セットに関し、残りの所定のセットと関連付けられたディジタルデータの一部またはすべてに対する、および／または上記ディジタルデータの一部またはすべての識別情報に対するリーフハッシュ値がそれぞれ計算される。
【０００９】
さらに、ルートハッシュ値が計算され、ここで、基礎をなすハッシュアルゴリズムは、少なくとも二つの所定のディジタルデータセットのそれぞれに対しそれぞれ計算されたリーフハッシュ値を入力として少なくとも有する。ルートハッシュ値の計算は、少なくとも第一および第二のリーフハッシュ値に対する少なくとも第一の非リーフハッシュ値の計算を含む。
【００１０】
さらに、後で与えられかつルートハッシュ値を有するディジタルデータの整合性は、所与のディジタルデータに関連付けられたディジタルデータセットを識別して、ルートハッシュ値を再取得して、そのルートハッシュ値が計算されたハッシュ値を再取得することにより、判定される。ここで、識別されたディジタルデータセットに関連付けられたディジタルデータの一部またはすべてに対する（および／またはディジタルデータの一部またはすべての識別情報に対する）リーフハッシュ値が、第一および第二のリーフハッシュ値の計算に使用されたものと同じ計算方式を適用することにより、再計算される。
【００１１】
次に、再取得されたハッシュ値に対する少なくともハッシュ値は、ルートハッシュ値の計算に使用されたのと同じ計算方式を適用することにより、計算される。次に、再取得されたルートハッシュ値は、前もって計算されたそれぞれのハッシュ値と比較され、そしてルートハッシュ値を有する所与のディジタルデータの整合性は、この比較結果に基づいて判定され、ここで、比較結果が等しいハッシュ値になれば整合性が判定される。
【００１２】
本発明の別の態様によれば、公衆ネットワークを介して接続された複数の者を含むシステムにおいて署名の信頼水準を提供する方法およびシステムが提供され、該システムは複数の者のための公開鍵署名方式を提供する。本方法は、第二者が秘密鍵ＳＫ２を使用することにより第一者の公開鍵ＰＫ１に署名する工程と、第一者が被署名公開鍵ＰＫ１に対応する秘密鍵ＳＫ１を使用することによりディジタルデータＤに署名する工程と、第三者が、被署名ディジタルデータＤおよび被署名公開鍵ＰＫ１を取得し、ここで、第一者が第三者に知られず、および／または信頼されない工程と、第二者を被署名公開鍵ＰＫ１の署名者として判定する工程と、第二者が署名者として第三者に知られているか否か、および／または信頼されているか否かを判定する工程とを含む。第二者が（署名者として）第三者に知られまたは信頼される場合、本方法は、さらに、秘密鍵ＳＫ２に対応する第二者の公開鍵ＰＫ２を取得し、既知のおよび／または信頼できる署名者の公開鍵ＰＫ２を使用することにより、被署名公開鍵ＰＫ１を検証し、そして被署名公開鍵ＰＫ１の検証が成功した場合、被署名公開鍵ＰＫ１を使用することにより被署名ディジタルデータＤを検証する。
【００１３】
本発明のさらに別の態様によれば、公衆ネットワークを介して接続された複数の者を含むシステムの少なくとも二者に対してディジタルデータの完全性および整合性の情報を提供するための方法およびシステムが提供される。本方法は、システムの第一者によりディジタルデータの識別情報のリストを生成する工程と、リストの識別情報の一部またはすべてに対するハッシュ値を計算する工程と、ハッシュ値をリストと関連付ける工程とを含む。
【００１４】
さらに、リストおよびハッシュ値はシステムの第二者に提供され、第二者が所有する対応リストにおける一つ以上の識別情報が、取得されたリストにおける対応する一つ以上の識別情報と比較される。次に、両方のリストの整合性は、取得されたリストの識別情報の一部またはすべてに対するハッシュ値を計算して、対応するリストの識別情報の一部またはすべてに対するハッシュ値を計算または取得し、そして両方のハッシュ値を比較することにより、検証される。比較工程の結果が等しいハッシュ値になった場合、両方のリストが整合しているということを確立する。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照し本発明につき説明する。
【００１６】
以下、ハッシュ値を使用するディジタルデータの管理および配送に関する本発明の第一の態様について説明する。次に説明される実施の形態は、ディジタルデータを管理、格納、配送し、これによりディジタルデータの完全性を検証することができる方法およびシステムを提供する。
【００１７】
特に、ディジタルデータが何人かの関与者に配送または提供されるシステムにおいて、以下の実施の形態は、各者が、別々に取得されたいくつかの情報（原理的には単一のハッシュ値であり、これは後の特定の実施の形態において定義される）により、ディジタルデータの完全性または整合性を検証することができるようにする。さらに、本方法およびシステムは、当該システム内の複数の者がシステム内のディジタルデータの有無を証明することもできるようにする。説明する方法は、特に、サーバクライアントシステム内で実行することができ、サーバは、複数のクライアントに対してディジタルデータの存在および完全性を証明することができ、これによりクライアントは、サーバの正常動作または完全性を検証しかつ同一情報がすべてのクライアントに対し付与されたことを確認することができる。
【００１８】
本出願を通し、用語「ディジタルデータ」は、プログラムファイル、データファイル、設定ファイル、ソフトウェアコード、上記データファイルのいずれかの新版または更新、電子メールメッセージ、ディジタル証明、公開鍵、またはその組合せをディジタルに格納または配送することができる種類のデータを表わすのに使用される。
【００１９】
本発明は、本発明を理解するために十分な知識を当業者に提供すると考えられるいくつかの例示的なシナリオを例示する以下の特定の実施の形態により説明される。従って、これらの実施の形態は網羅的というよりむしろ例示的であることを意味する。当業者にとって周知の事実の特徴については、本明細書では詳細に説明されない。
【００２０】
図１は、本発明の第一の態様を示す例示的な図を示す。この態様によれば、ディジタルデータの存在および完全性は、ハッシュ関数に基づく分類および検証の手順を使用することにより判定することができる。本発明の好ましい実施の形態によれば、各ディジタルデータ（例えばデータファイル、公開鍵）は、複数の異なるディジタルデータセット（１１０、１２０、１３０、１４０）のいずれかに関連付けられる。換言すれば、この手順を使用することにより管理または配送される各ディジタルデータは一つのディジタルデータセットに割り当てられる。この割り当てまたは関連付けは、ディジタルデータエントリを、これらの異なるデータセットを表すそれぞれの格納場所または格納媒体に物理的に格納することを伴ってよい。あるいは、ディジタルデータに対しそれぞれの識別子を割り当てまたは定義することにより、上記割り当てまたは関連付けを達成することができる。同様に、異なるデータセットの識別を可能にする内在的な既存の情報または識別子を使用して、複数のセット（１１０、１２０、１３０、１４０）を完成してもよい。当業者に知られた他のいくつかの識別も考えられるが、ここでは詳細には述べない。しかしながら、特に有利な一実施の形態では、一つの所定のセットとの関連付けを得るために、ディジタルデータ自体の２進表現、該ディジタルデータの識別情報の２進表現、もしくはこれらのいずれかまたは両方のハッシュ値の２進表現を使用することができる。一例として、各データに対する識別子内のｎ個の最下位ビットのような所定のビットストリングは、特定のセットとの関連付けを提供することができる。各データに対する識別子は、ファイル名、電子メールアドレス、ファイル属性、または上記データの一意的な識別番号でよく、ビットストリングにより表現される数は、あるディジタルデータセットに対応することができる。
【００２１】
特定の実施の形態によれば、ある所定のセットを各ディジタルデータに明白に割り当てる、各ディジタルデータに対する識別情報が存在する。別の特定の実施の形態によれば、ディジタルデータは二つ以上の所定のセットの一部でもよい。さらに別の特定の実施の形態によれば、この識別情報は、このシステムに入力される際、各ディジタルデータに割り当てることができる。
【００２２】
所定のセットの総数および／または各セットにおけるデータエントリの総数は、各セットに対するディジタルデータが結果として統計的に一様分布となるように予め規定され固定されてよい。
【００２３】
以下、図２に例示されるクライアントサーバシステム２００を一例として使用する本発明の主要な態様について説明される。
【００２４】
図２は、ネットワーク２０９（例えば、インターネット）を介して少なくとも一つのサーバに接続された複数のクライアント２０３〜２０５を含むシステム２００を示す。一例として、図２は、ハッシュ値サーバ２０２およびデータ格納サーバ２０１を示す。データ格納サーバ２０１は、複数のクライアントに配送されるディジタルデータを格納するサーバ手段を例示し、ハッシュ値サーバ２０２は、後に説明されるハッシュ値を計算し、維持し、配送するために使用されるサーバ手段を例示する。しかしながら、両サーバ手段は、単一のサーバエンティティ内に含まれてもよいし、あるいはさらに、三つ以上のサーバエンティティ間に割り当てることもできる。この例示的なクライアントサーバシステム２００は、クライアントおよび／またはサーバが入手可能な公開鍵署名方式を提供する公開鍵ネットワークを表す。従って、このシステム内で公開鍵を発行し、配送し、維持することができる秘密公開鍵ペアサーバ２０６が例示される。一例として、公開鍵ネットワーク内で共通に使用される、各クライアントに対する公開鍵の証明書を生成し発行する二つの認証局２０８、２０９も例示される。
【００２５】
残りの実施の形態は、この例示的なネットワーク２００に照らして説明されるが、それら実施の形態は、別に明確に述べない限り、このようなクライアントサーバシステムに限定されるものではないということに留意されたい。本発明は、全般に、ディジタルデータの存在および完全性の管理および検証に関する。
【００２６】
一実施の形態によれば、各所定のセット（１１０、１２０、１３０、１４０）に関連付けられたディジタルデータは、単一のハッシュ値（１１５、１２５、１３５、１４５）を計算するために使用される。別の実施の形態によれば、各セットにおける各ディジタルデータエントリの識別情報（１１１〜１１３、１２１〜１２３、１３１〜１３３、１４１〜１４３）は、各セット１１０、１２０、１３０、１４０に対する単一のハッシュ値を計算するために使用される。上記のように、この識別情報は、各データエントリに対して計算されたハッシュ値自体でもよい。いずれの場合も、一つのハッシュ値は、各所定のセットに関連付けられたディジタルデータエントリまたはその識別情報に対して計算することができる。これらのハッシュ値は、以下ではリーフハッシュ値１１５、１２５、１３５、１４５として表わされる。
【００２７】
次に、これらのリーフハッシュ値は、一つ以上の工程において単一のハッシュ値を計算するために使用することができ、この単一のハッシュ値は以下ではルートハッシュ値１６０として表わされる。このルートハッシュ値は、全体のハッシュデータの完全性を検証し、そしてそれによりシステムにおける当該ディジタルデータセットの完全性および／またはディジタルデータの有無を検証するために使用することができる（後でさらに詳細に説明される）。
【００２８】
ディジタルデータの有無を検証するために、ディジタルデータに関連付けられたであろう所定のセット１１０を、まず判定することができる。これについては、識別情報１１１は上述のように取得または割り当てられ、それぞれのディジタルデータセットはクライアントにより要求される。
【００２９】
以下の説明では、システム２００は、システム２００内でクライアントの公開鍵を配送するために使用され、クライアント２０３は、別のクライアント２０４の公開鍵を受信し、受信された公開鍵の完全性を判定することを所望する。換言すれば、配送および検証されるディジタルデータは、データの完全性という点では公開鍵である。この例は、この実施の形態を例証的に説明するためにのみ採用され、そして上に指摘したように、本発明は、全般に、任意の種類のディジタルデータに関するということを認識されたい。
【００３０】
クライアント２０３は、この公開鍵が関連付けられたであろう所定のセット１１０をまず判定することができる。次に、クライアント２０３は、サーバ（２０１、２０２）から、データエントリ１１１〜１１３、またはこの識別された所定のセット１１０内に含まれるこれらデータエントリ１１１〜１１３の識別情報を要求し、その後、このセット１１０のリーフハッシュ値１１５を上述の既知の所定の方法で計算することができる。
【００３１】
簡単な実施の形態によれば、クライアント２０３は、公開鍵が、識別されたディジタルデータセット１１０と関連付けられたディジタルデータエントリ１１１〜１１３または識別情報か否かを調べることができる。しかしながら、この実施の形態は、当該公開鍵の完全性について、限られた確実性だけを提供する。なぜなら、クライアント２０３は、要求された所定のデータセットを有するこの公開鍵の整合性を確立することができるのみであるからである。要求された（最終的に受信された）ディジタルデータまたはその識別情報の完全性を検証するための明白かつ容易な方法はない。このため、以下の実施の形態は、要求された所定のセットの完全性の検証と、従ってこのセットの一部として検証されなければならない公開鍵の完全性とを提供する。
【００３２】
このため、ルートハッシュ値１６０は、システム２００内のクライアント２０３〜２０５間に配送される。前の例に戻ると、クライアント２０３は、検証されるべき公開鍵（１１１）の関連付けられた所定のセット１１０を識別し、この識別されたセットに関連付けられた残りのディジタルデータ（１１２、１１３）を要求および取得し、そしてこのセット１１０に対するリーフハッシュ値１１５を計算した。ここで、クライアント２０３はこの計算されたリーフハッシュ値１１５を使用することによりルートハッシュ値１６０を再計算する。
【００３３】
ルートハッシュ値１６０は、後に説明されるように安全に配送され、および／またはすべてのクライアント２０３〜２０５はこのルートハッシュ値１６０をサーバ介入またはさらなる第三者の関与なしに相互間で比較することができるので、また、基礎をなすハッシュアルゴリズムは暗号的に安全なので、クライアント２０３は、当該公開鍵（１１１）を含む所定のセット１１０のリーフハッシュ値１１５を有するこの安全に配送されたルートハッシュ値１６０の整合性を確立することができる。
【００３４】
ハッシュアルゴリズムが、ハッシュアルゴリズムへの入力の完全性を検証するために使用できる暗号的に安全な単方向関数を提供するということは知られている。一つのディジタルデータ（例えば公開鍵）セットを検証するためには、検証されるべきすべての可能性のあるディジタルデータエントリに対するハッシュ値が計算されなければならない。しかしながら、これは、特定のディジタルデータエントリを検証しなければならない場合、すべてのディジタルデータエントリを取得しなければならないということを要請するであろう。これは大きなディジタルデータセットに対しては適用できないであろう。従って、本発明は、別の実施の形態において、特定のデータエントリ（１１１）の完全性を検証する場合、一方では、入力としてすべてのディジタルデータエントリを有するハッシュアルゴリズムに基づいた手順により計算されたハッシュ値、すなわちルートハッシュ値１６０を提供し、他方では、このルートハッシュ値１６０の再計算のためにすべてのディジタルデータエントリを必要とはしない方法を提供する。
【００３５】
従って、各所定のディジタルデータセット１１５、１２５、１３５、１４５に対して計算されたリーフハッシュ値が、いくつかのグループ（１１６、１３６）に分割される。次に、別のハッシュ値１５０が、各グループ１１６のリーフハッシュ値１１５、１２５に対して計算される。これらの計算されたハッシュ値は、以下では非リーフハッシュ値１５０、１５１として表わされる。
【００３６】
次に、これらの非リーフハッシュ値１５０、１５１は、ハッシュ値のグループ（１５２）にさらに分割され、そして別の非リーフハッシュ値が各グループのハッシュ値（１５０、１５１）それぞれから計算される。これは、単一のハッシュ値、すなわちルートハッシュ値１６０が計算されるまで繰り返すことができる。ハッシュ値サーバ２０２がこの手順を実行できる。
【００３７】
次に、ルートハッシュ値１６０は、各クライアント２０３〜２０５に安全に配送される。これは、このルートハッシュ値１６０を、好ましくは暗号化してサーバにより各クライアント２０３〜２０５に送信することにより、達成することができる。別の実施の形態によれば、ルートハッシュ値１６０は、あるクライアントにより別のクライアントに配送することもでき、よって、ルートハッシュ値１６０は、好ましくは、送信クライアントにより暗号化および／または署名される。さらに、本発明の別の態様において後で説明されるように、ある種の信頼水準を、配送されるルートハッシュ値１６０に添付することができる。従って、一つ以上のクライアントからルートハッシュ値１６０を受信するクライアントは、その完全性を確立することができる場合、あるいは特に要求される信頼水準を有する場合のみ、このルートハッシュ値１６０を受理することができる。
【００３８】
あるクライアントが特定のディジタルデータ、例えば上記例のような公開鍵を検証したい場合、このクライアントは、検証されるべき公開鍵１１１に関連付けられたディジタルデータセットのリーフハッシュ値１１５を計算する。ルートハッシュ値１６０を再計算するために、このクライアントは、非リーフハッシュ値（１５０、１５１）と、残りのディジタルデータセット（１２０、１３０、１４０）のリーフハッシュ値（１２５、１３５、１４５）とを必要とする。従って、このクライアントは、残りのリーフハッシュ値１２５、１３５、１４５をサーバ２０２から要求することができる。次に、このクライアントは、取得されたリーフハッシュ値１２５、１３５、１４５と、当該公開鍵１１１を含む識別されたセットに対して計算されたリーフハッシュ値１１５とに基づきルートハッシュ値１６０を再計算することができる。計算されたルートハッシュ値１６０が、安全に配送されたルートハッシュ値１６０に等しい場合、安全に配送されたルートハッシュ値１６０を有する公開鍵１１１の整合性が確立され、従ってその完全性が確立される。さらに、あるディジタルデータ、例えばある公開鍵の所定のセットとの関連性は既知であるので、すべてのクライアント２０３〜２０５はそれぞれのセットを要求して、この公開鍵が存在するか否かを検証できる。ルートハッシュ値は、すべてのクライアント２０３〜２０５に知らされており、しかも安全に配送されるので、敵対者またはそのハッシュ値サーバ２０２自体ですら、所定のセットのディジタルデータまたは要求されたハッシュ値を操作または偽造することは不可能である。
【００３９】
別の実施の形態においては、入力として、公開鍵１１１を含む識別されたディジタルデータセット１１０のリーフハッシュ値１１５を必要とする非リーフハッシュ値（１５０）のみが計算される。この実施の形態は図５Ａから明らかとなる。図５Ａには、計算されるハッシュ値についての例示的なツリー構造を例示する。このため、リーフハッシュ値１１５、１２５、１３５、１４５、５０１〜５０６は、このツリー構造の第一層と関連付けられている。図５Ａにおいて例示されたこの特定の実施の形態では、これらのリーフハッシュ値１１５、１２５、１３５、１４５、５０１〜５０６は、二つのハッシュ値のグループ（１１６、１３６、５３０〜５３２）にそれぞれ分割される。各グループについては、このツリー構造の第二層と関連付けられた非リーフハッシュ値１５０、１５１、５１０〜５１２がそれぞれ計算される。同様にして、非リーフハッシュ値５２０、５２１が計算され、このツリー構造の別の層と関連付けられ、そしてルートハッシュ値１６０はこのツリー構造の最上層を形成する。説明した例における公開鍵は、リーフハッシュ値１１５に属するグループの一部として識別されたと仮定すると、第二の実施の形態によれば、非リーフハッシュ値１５０、５２０およびルートハッシュ値１６０のみがクライアントにより計算される。従って、ルートハッシュ値１６０を計算するためには、リーフハッシュ値１２５と非リーフハッシュ値１５１、５１０、５２１のみがクライアントにより取得されなければならず、残りのリーフハッシュ値および非リーフハッシュ値は必ずしも必要とされない。
【００４０】
本発明の一実施の形態によれば、所定のセットの総数は２の累乗である。次に、各セットには番号を付与することができ、そしてディジタルデータから、またはディジタルデータの識別情報から取得された所定のビットストリームは、番号が付与されたこれらの所定のディジタルデータセットのいずれかに対する当該ディジタルデータの関連付けまたは割り当てとしての機能を果たすことができるであろう。次に、リーフハッシュ値は、互いに排他的な二つのハッシュ値のグループに分割することができるであろう。次に、各グループに対し、非リーフハッシュ値を計算することができ、ツリー構造の別の層において、非リーフハッシュ値は再び、ルートハッシュ値が計算されるまで二つのハッシュ値のグループに分割することができる。あるいは、セットの総数は２の累乗でなく、別の整数の累乗でもよい。
【００４１】
別の実施の形態によれば、所定のセットの総数、および／またはツリー構造の次の層の非リーフハッシュ値を計算するために使用されるハッシュ値の総数は、互いに独立して選択してよく、そして各層で同じでなくてもよい。このケースは、図５Ａにより例示される。ここでは、二つのリーフハッシュ値のグループが、第一層の非リーフハッシュ値を計算するために使用され、そして第一層の三つの非リーフハッシュ値が、このツリー構造の第二の層の非リーフハッシュ値を計算するためにそれぞれ使用される。図５Ｂは、本発明の別の実施の形態の例を例示する。このツリー構造の第一層では、三つのハッシュ値１５０、１５１、５１０それぞれが非リーフハッシュ値５２０の対象となり、一方、非リーフハッシュ値５２１に対しては、二つの非リーフハッシュ値５１１、５１２のみが使用される。ハッシュ値の総数が、すぐ上の層の非リーフハッシュ値を計算するために使用されなければならないハッシュ値の数の整数倍でない場合、このようなシナリオを使用できる。同じことは、所定のセットの数に関して適用することができる。この点に関する別の実施の形態は図５Ｃに示され、ここでは、第二の層において、第三の層のハッシュ値を計算するために三つのハッシュ値を使用しなければならないと仮定する。図５Ｃは、一例として、図５Ｂと類似した第二の層の五つの非リーフハッシュ値１５０、１５１、５１０〜５１２を示す。従って、非リーフハッシュ値を計算する本方法では、最後の非リーフハッシュ値５２１に対し、すぐ下の層の残りの二つの非リーフハッシュ値５１１、５１２が使用されなければならないことと、さらにその下の層の規定および／または指定されたハッシュ値、例えばリーフハッシュ値５０６が使用されるということとを規定することができる。しかしながら、当業者は、図５Ａ〜図５Ｃにおいて説明された実施の形態は、上述のように同様にして、組み合わせたり拡張したりできるということを認識するであろう。例えば、図５Ａ（ハッシュ１３）に示すように、各層において少なくとも一つのハッシュ値によりグループを重複させることは、より高水準の信頼および検証を提供するために、標準手続きとしてツリー構造の一部またはすべての層に対して適用することができる。
【００４２】
図３および４には、本発明の上述の実施の形態に従った方法の工程の概観をそれぞれ示す。しかしながら、これら例証的フローチャートは、本発明のそれぞれの実施の形態の例示的な概要および一般的な理解のみを提供するものであり、従って本発明は、これら方法の工程に限定されるものではなく、またこれら手順から逸脱することもできる。
【００４３】
図３は、本発明の一実施の形態と関連しており、ここでは、ディジタルデータの識別情報は工程３０２において取得され、ディジタルデータ３０１は、工程３０３において所定のセットのいずれかに割り当てられる。しかしながら、別の実施の形態では、ディジタルデータは二つ以上の所定のセットに割り当てることができる。リーフハッシュ値は各所定のセットに対して計算される。工程３０５、３０６では、非リーフハッシュ値が上述したように計算される。工程３０７、３０８は、ツリー構造の様々な層、非リーフハッシュ値の計算、そして工程３０９において示されるようなルートハッシュ値の計算とそれぞれ関連する。
【００４４】
図４は、システム２００のクライアントにより実行できるディジタルデータの完全性および／または存在を検証することの一例を示す。クライアントが、別のクライアントの公開鍵でもよいディジタルデータ４０２の存在および／または完全性を検証しようとしていると仮定する。従って、クライアントは、工程４０４において、このディジタルデータと関連付けられた所定のセットを識別するために、工程４０３においてこのディジタルデータの識別情報を取得することができる。両工程４０３、４０４は、検証されるべきディジタルデータ、例えば公開鍵または公開鍵の証明が上述のように既に暗黙的にディジタルデータセットを指定する場合には、単一の工程に含んでもよい。工程４０５、４０６では、前の図面に関連して既に説明したようにツリー構造が再計算される。次に、最後に計算されたルートハッシュ値は、比較工程４０７において、受信されたルートハッシュ値４０１と比較される。両方のハッシュ値が一致してクライアントが受信されたルートハッシュ値の完全性を信頼する場合、クライアントは、ディジタルデータが存在するということを検証し、完全性を確立できる。クライアントにより受信されるルートハッシュ値が安全な方式で配送される場合、ディジタルデータの完全性および／または存在は、信頼できる第三者を必要とせずに検証することができる。
【００４５】
従って、サーバが、あるデータの有無およびさらにその完全性を複数のクライアントに対して証明することを許容する用途を提供することは可能である。従って、データセットの総数が余りに大きすぎて各クライアントに転送できなくても、すべてのクライアントが、あるデータの存在および内容に関して同一の情報を有するということを保証できる。サーバは各クライアントにルートハッシュ値を配送することができ、そしてクライアントはさらに、例えばルートハッシュ値をメッセージに添付すること（これは定期的に実行できる）により相互間でそれを交換することができる。後者の場合、サーバは、ルートハッシュ値の配送に影響を与えないであろうから、クライアントは、当該ディジタルデータに適用されるべきルートハッシュ値の最新バージョンを有しているか否かを判定しなければならない。これは、あるハッシュ値、ディジタルデータおよび／またはこの検証手順中にクライアントによりサーバから要求されたハッシュ値に添付されたタイムスタンプを使用することにより達成することができる。しかしながら、関連するタイムスタンプ情報は単なる一例であり、当該技術では既知の他の多くの識別情報を代用することができるであろう。ツリー構造（例えば、所定のセットの数、各セットにおけるディジタルデータまたは識別情報エントリの数、および／または様々なツリー構造層における各グループのハッシュ値の総数）は、計算用のペイロード（computational）および／またはネットワークを介して配送されるデータを効果的に制御するために、可変でもよいし、調整可能であってもよいし、あるいは例えばサーバにより指定してもよい。また、あるクライアント、またはクライアント端末上で作動しディジタルデータ検証手順を実行するアプリケーションは、必要な信頼水準に従って、実行されなければならない検証の数を指定できる。これは、ディジタルデータをユーザにより検証しなければならない場合、あるツリー構造の二つ以上のディジタルデータセットを検証すること、あるいはそのツリー構造のルートハッシュ値を再計算するのに必要な非リーフハッシュ値より多くのものを再計算することを含んでよい。
【００４６】
本発明の別の態様および実施の形態は、公開鍵、および／または公開鍵システム（例えば、システム２００）において公開鍵により署名されたディジタルデータの信頼水準を生成することに関連する。公開鍵システムにおいて、例えばＰＧＰ（Pretty Good Privacy）システムにおいて、公開鍵は頻繁にこのシステムの別の者（例えば、別のクライアント）により署名される。これにより、被署名公開鍵の受取者は、公開鍵保持者の身元を承認することができる。しかしながら、このことは、被署名公開鍵の受取者は受信された公開鍵の署名者を知りおよび／または信頼するこということを要する。クライアントは、通常、システム内の限られた数の他の者のみを知りかつ信頼するので、このようなシステムは限定された利用可能性のみを提供する。なぜなら、受け取った公開鍵が、被署名鍵の受取者に知られていないまたは信頼されていない第三者により署名された場合、受取者は、鍵保持者または鍵自体の身元を信頼するべきか否かを確立することができないからである。
【００４７】
従って、信頼は、署名者の、署名が発行された者に関する供述（statement）の上に築かれる（後でより詳細に説明される）。
【００４８】
従って、このような公開鍵システムは、当該鍵の署名者を実際に知ることなく、被署名公開鍵に信頼を生成することができるやり方で拡張できる。しかしながら、同じことは鍵保持者の秘密鍵により署名されたディジタルデータに当てはまる。なぜなら、被署名ディジタルデータの署名を検証するために、検証者は、この署名検証のために必要とされる当該鍵保持者のそれぞれの公開鍵を信頼しなければならないからである。従って、以下の説明は、主として公開鍵についての署名に言及するが、本発明は、全般に、任意の種類のディジタルデータに適用される。
【００４９】
本発明の一実施の形態によると、システム内のある署名者が鍵に署名し、ここで、第三の受取者のために、第三の受取者が署名者またはその公開鍵を知ることを必要とせずに、被署名公開鍵に一定の信頼度を割り当てる。
【００５０】
図６は、例えば認証局が行うように公開鍵を認証する信頼できる第三者基盤を明示的には必要とせずに公開鍵の信頼水準を確立する態様に関する本発明の実施の形態を説明する一例を例示する。図６に示す例は、第一のクライアント２０３が、公開鍵署名方式における秘密鍵を使用することにより、あるディジタルデータＤについての署名６１０を発行すると仮定する。この署名６１０を検証するためには、署名６１０を発行するために使用された秘密鍵に対応する第一のクライアントの対応する公開鍵６０１を必要とする。このディジタルデータＤ、例えば別の公開鍵は、例えば公衆ネットワーク２０９を介して別のクライアント２０５に提供されることをさらに仮定する。次に、クライアント２０５は、データＤについての署名が第一のクライアントにより発行されたと判定し、そして例えば公開鍵サーバまたはシステム２００内の別のクライアントからそれぞれの公開鍵６０１を取得することができる。クライアント２０５は、この公開鍵６０１または対応するクライアント２０３を知らないと仮定する。従って、クライアント２０５は、署名６１０は信頼することができるか否かを確立するために、公開鍵についての何らかの信頼を必要とする。図６に示した例は、別のクライアント２０４が第一のクライアント２０３の公開鍵６０１に署名したことを示す。公開鍵６０１についてのこの署名６１２は、クライアント２０４の公開鍵６０２を使用することにより検証することができる。クライアント２０５は署名６１２を取得し、署名者２０４を識別し、その公開鍵６０２を取得する。図６に示すクライアント２０５は、公開鍵６０２またはそのクライアント２０４を信頼しおよび／または知っているものと仮定する。従って、クライアント２０５は信頼できる公開鍵６０２を使用することにより、署名６１２を検証することができる。本発明の別の実施の形態によれば、この署名６１２は、クライアント２０５のために、被署名公開鍵６０１に信頼情報を割り当てる。その結果、クライアント２０５は、例えばこの検証処理６１３によりこの信頼水準を確立し、またその後は公開鍵６０１を信頼する。次に、クライアント２０５は署名６１０を検証することができ、そしてこの検証が成功した場合は、クライアント２０５はディジタルデータＤの完全性を確立した。
【００５１】
別の実施の形態によれば、別の公開鍵についての署名に関連した信頼情報は、明示信頼情報値（trust information value）および／または署名者信頼識別値（signing party trust identification value）を署名またはその公開鍵自体に添付しまたは関連付けることにより完成することができる。
【００５２】
図６に示されたこの単純な例は、特定の署名に割り当てられた信頼値のチェーンまで、またはツリーにまで拡張することもできる。この信頼水準チェーンまたは信頼水準ツリーの主要原理を図７に例示する。図６と同様に、図７は、クライアント２０３、２０４、２０５、および公開鍵６０１、６０２を示し、そしてディジタルデータ６１０を割り当てる工程と、工程６１５において公開鍵６０１を使用することによりディジタルデータを検証する工程とを示す。これらの工程は、図６の対応する工程と同じである。しかしながら、図７の例によると、第四のクライアント７０１が、公開鍵６０１についてに署名を発行した。ディジタルデータＤの検証者（クライアント２０５）は、第四のクライアント７０１を知らないか、あるいは信頼しないか、あるいは公開鍵６０１の署名７１０に対するアクセス権を有しない。その代わりに、第二者２０４が、その被署名公開鍵７１０に署名を発行した。次に、この署名７１１は、クライアント２０５により取得され、既知の信頼できる公開鍵６０２を使用することにより検証される。この検証７１２が成功した場合、クライアント２０５は、公開鍵６０１、７０２の双方に対する信頼値を確立する。次に、クライアント２０５は、信頼できる公開鍵６０１を使用することにより、被署名ディジタルデータＤを検証することができる。別の実施の形態は、図８の例により示される。図８の例は、図７の例に対応し、以下の差異を有する。第二のクライアント２０４は、第四のクライアント７０１の公開鍵７０２に署名８１０を発行する。従って、クライアント２０５は工程８１１においてこの署名８１０を検証し、それによって公開鍵７０２に信頼を確立することができる。この新たな信頼できる公開鍵７０２により、クライアント２０５は、署名７１０を取得し検証することができ、この検証が成功すると、クライアント２０５は、さらに、ディジタルデータＤに署名するために使用される公開鍵６０１に信頼を確立する。
【００５３】
図６〜８に示した例から、説明した本発明の実施の形態は相互に組み合わせることができ、また、残りの図面に関する実施の形態とも組み合わせることができる。公開鍵または署名は二者以上により署名することができ、従って公開鍵に割り当てられた信頼情報のチェーンは信頼値のツリーまで拡張され、これによりいくつかの既知の公開鍵または既知の署名者は、当初信頼できない公開鍵についての署名まで戻って追跡することができることに留意されたい。さらに、クライアント装置上で作動するアプリケーションまたはこの方法を使用する者は、ここで説明した信頼できる身元のチェーンまたはツリーにおいて、既知の公開鍵に至る工程の数に基づくことができるある所与の信頼水準を必要とする。図７に示した例では、検証者２０５は、未知の者７０１が既知の者２０４に至るということを確立した。従って、このチェーンは二つの工程を有し、未知の一者だけが関与した。最終的に既知となり信頼される身元２０４に至る未知の身元が最大数ある場合、信頼される公開鍵のみを受理するための何らかの規則があってよい。既知の信頼できる署名者に至る二つ以上のチェーンが存在する場合、別々に確立した信頼水準値は、単一の最終信頼値と組み合わせることができ、そして公開鍵を信頼できるものとして受理すべきか否かはこの最終の信頼値に基づくことができる。しかしながら、別の実施の形態では、クライアント２０５、またはクライアント装置上でクライアント２０５の管理下で作動するアプリケーションは、公開鍵を信頼できるものとして受理するために、一信頼水準値のみを必要としてよい。
【００５４】
署名を含む公開鍵は、いくつかの公衆のサーバに格納してもよいし、本発明の残りの実施の形態および態様に関し上述したようにクライアント間に配送してもよい。
【００５５】
本発明の別の実施の形態によると、ローカルに使用されるデータの完全性情報は、システム全体にわたってデータのグローバルな整合性を保証し提供するために、例えばクライアント２０３により公開される。システム内のユーザは、少なくともグローバルなデータセットの一部を頻繁に共有し、そしてこのデータを使用する各ユーザがそのデータの完全性および／またはそのデータの存在を確認することができるようにする必要がある。一般のシステムでは、このようなディジタルデータは、ある集権化された第三者の信頼できる鍵により署名されなければならず、そしてすべてのクライアントは、この集権化された者（例えば認証局）を知り、かつ信頼しなければならない。しかしながら、すべての関与者が信頼することができる第三者を必要とすることは望ましくない場合があり、これは大部分のユーザには望まれない。
【００５６】
従って、本発明の一態様は、ユーザが、当該データの識別情報のリストまたはセット、あるいは他の者と共有したいデータの一部を生成することができることである。識別情報は、一意的にディジタルデータまたはその一部を識別し、それをディジタルデータのリストまたはセットに関連付ける。これは、図１〜６に関連して上述した。本発明の第一の態様に関連して説明したのと同じやり方でデータまたはその一部に対して計算されたハッシュ値は、識別情報の各リストまたはセットに添付される。データの識別情報のリストは、図１〜６に関連して説明したようなディジタルデータセットでよい。このリストは、クライアントによりシステム内の別のクライアントに配送することができる。一実施の形態によると、エントリの一部またはすべてに対する添付されたハッシュ値を含む識別情報リストは、クライアント間の定期的な通信メッセージ期間中にクライアントにより送信されるメッセージと一緒に送信することができる。このリストを受信した別のクライアントは、そのリストに含まれる識別情報と自分自身のリストに含まれた識別情報とを比較し、これにより、同一のデータが第一のクライアントにより使用されたか否かを判定することができる。両方のリストが同一の識別情報を含む場合、このクライアントは、ハッシュ値が一致するか否かを判定し、これにより、両方のクライアントが同じデータに合意するということを証明できる。一致しなかった場合、ユーザはそれぞれ警告される。
【００５７】
別の実施の形態によれば、このリストをある第三者に送信する場合、クライアントは自身が受信した別のリストを含み、これを第三者に転送することができる。これにより、めったに使用しないデータでさえ、この配送リストのチェーンにおいて多少段階が離れた他のあるクライアントとの一致を遅かれ早かれ知ることが可能となる。本実施の形態は、各リストまたはそのハッシュ値に信頼水準を確立する図６〜８に関連して説明した実施の形態と組み合わせることができ、これにより、さらに署名がこのリストまたはハッシュ値のいずれかに対して発行される。あるいは、リストエントリに対するハッシュ値は、リスト入力に対するハッシュ値を再計算し比較することにより検証される署名としての機能を果たすことができる。
【００５８】
特に、この手順は、クライアントの名前または識別情報を上述の識別情報として、そして公開鍵をハッシュデータとして使用することにより、公開鍵と共に使用することができる。従って、すべての公開鍵のグローバルな整合性をクライアントに対し保証することができる。自分自身の公開鍵に関する情報を例えば別のクライアントから受信するクライアントですら、自分自身の名前または識別情報が自分自身の公開鍵に正しく署名されたことを証明することができる。各クライアントに対する公開鍵が入手可能な場合、配送され交換された識別情報のリストまたはセットに、これらの公開鍵により署名することができる。上述のように、いくつかの用途またはクライアントは、受信リストの送信者に依存して、または受信される前にどれだけ頻繁にこのリストが他のクライアントにより転送されたかに依存して信頼水準を割り当てることができる。上述のように、図６〜８に関するのと同じ考察を適用でき、そしてこの手順は図６〜８に関連して説明した方法の一部であってもよい。
【００５９】
クライアント間に多くの対話があり、そして巨大なデータセットが使用される場合、クライアントは、あるランダムなデータ、ある選択されたデータ、または使用中のデータの一部についてのリストを生成することのみを選択してもよいであろう。さらに別の実施の形態によれば、リスト内の識別情報により指定される所与のデータまたはその一部が、可能性としてある時限後に変更されることがある場合、何らかの妥当性または時間仕様を、リストまたはそれぞれのハッシュ値に添付しまたは関連付けることができる。これは、ディジタルデータの生成時間またはタイムスタンプ情報であってもよい。本発明のさらに別の実施の形態によると、これらのデータ識別情報のリストまたはセットは、信頼できる第三者、例えば、図２に示すサーバまたは認証局に配送し転送してもよく、次にこの第三者は、リスト内のエントリが別のクライアントから受信された対応するリストのエントリと一致しないか否かをクライアントに通知することができる。同様に、別のクライアントは、信頼できる第三者なしに、同じように動作することができ、これにより上に議論されたような何らかの信頼水準を確立することができる。二つ以上のこのような第三者またはクライアントが存在する場合、各々が、当該情報を残りのすべての者に送信できるか、またはすべての者が、互いに対話することによりすべてのリストをグローバルに受理されたリストに同期させることができる。
【００６０】
本発明の別の実施の形態によれば、クライアントはシステム内の自分自身の識別情報を使用することにより、あるクライアントグループに自分自身を割り当てることができる。自分自身のリストを生成する前に、クライアントはリストを当該クライアントグループの少なくとも他のクライアントから要求することができる。次に、クライアントはそのリストに自分自身のデータまたは識別情報をそれぞれ追加し、システム内またはグループ内の他のクライアントにそれを公開することができる。こうすることにより、グループ内のすべてのクライアントは、グループにより同意され保持されるすべてのデータエントリに関する最新情報を確立することができる。これにより、この実施の形態は、各クライアントが、図１〜５に関連して上述した所与のディジタルデータの有無を判定することを可能にする。ディジタルデータまたはその識別情報が、選択されたクライアントグループに直接関係する場合（例えば、公開鍵の場合のように）、グローバルシステム２００における例えば公開鍵のデータの存在ですら確立し証明することができる。従って、そのグループには属さない他のクライアントは、当該グループのリストを要求し、そして所与のデータがグローバルシステムに存在するか否かを判定することができる。このようなシステムにおいて、ディジタルデータを集める第三者または特別のクライアントが存在する場合、それらは、メンバであるそのクライアントグループのリストを排他的に保持し同期することにその行動を限定してよい。
【００６１】
前述の本発明の態様および実施の形態の任意の組合せが、本発明の範囲内の別の実施の形態と考えられる。前述の態様および実施の形態のさらなる詳細は、以下の特許請求の範囲により説明され、本発明の開示の明示的な一部を形成する。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態による、ハッシュ値のツリー構造を提供する処理の上位レベルの概要
【図２】公開鍵基盤を提供する例示的なシステム
【図３】本発明の実施の形態による、ハッシュ値の計算を例示する上位レベルのフローチャート
【図４】本発明の実施の形態による、ディジタルデータの検証処理を例示する上位レベルのフローチャート
【図５Ａ】本発明の第一の実施の形態による、ハッシュ値のツリー構造を提供する処理の上位レベルの概要
【図５Ｂ】本発明の第二の実施の形態による、ハッシュ値のツリー構造を提供する処理の上位レベルの概要
【図５Ｃ】本発明の第三の実施の形態による、ハッシュ値のツリー構造を提供する処理の上位レベルの概要
【図６】本発明の第一の実施の形態による、公開鍵基盤における署名および／またはディジタルデータに対して信頼を確立する処理を提供する処理の上位レベルの概要
【図７】本発明の第二の実施の形態による、公開鍵基盤における署名および／またはディジタルデータに対して信頼を確立する処理を提供する処理の上位レベルの概要
【図８】本発明の第三の実施の形態による、公開鍵基盤における署名および／またはディジタルデータに対して信頼を確立する処理を提供する処理の上位レベルの概要
【図１】
2007515837.tif 000003
【図２】
2007515837.tif 000004
【図３】
2007515837.tif 000005
【図４】
2007515837.tif 000006
2007515837.tif 000007
2007515837.tif 000008
2007515837.tif 000009
【図６】
2007515837.tif 000010
【図７】
2007515837.tif 000011
【図８】
2007515837.tif 000012
【国際調査報告】
2007515837.tif 000013
2007515837.tif 000014
2007515837.tif 000015
2007515837.tif 000016
2007515837.tif 000017
2007515837.tif 000018
2007515837.tif 000019