(57)【特許請求の範囲】
【請求項１】
要求側ピアノード内で動作可能な方法であって、
データ構造の共有データスペース内に前記要求側ピアノードまたは前記要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽する前記データ構造を生成するステップであって、前記1つまたは複数の識別情報の各々の表現が、前記共有データスペースに沿って一様かつランダムに分散される、前記生成するステップと、
検証側ピアノードにより格納されているデジタルオブジェクトへアクセスする要求の一部として、前記検証側ピアノードに前記データ構造を送るステップであって、前記要求側ピアノードの前記１つまたは複数の識別情報が、対応する前記検証側ピアノードの１つまたは複数のアクセス識別情報にマッチするならば、前記要求側ピアノードは前記デジタルオブジェクトへアクセス可能である、ステップと、
を含む方法。
【請求項２】
前記要求側ピアノードまたは前記要求側ピアノードのユーザの、前記1つまたは複数の識別情報のうちのいずれかが、対応する前記検証側ピアノードのアクセス識別情報とマッチするものであるかどうかを示す情報を、前記検証側ピアノードから受信し、これによりデジタルオブジェクトへのアクセスを許可するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記受信された情報から、第1の識別情報をマッチするものであると識別するステップと、
前記第1の識別情報に対応する認証データを選択するステップと、
前記デジタルオブジェクトへのアクセスを認証するために、前記選択された認証データを前記検証側ピアノードに送るステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記選択された認証データが前記検証側ピアノードによって正常に認証された場合に、前記デジタルオブジェクトへのアクセスを取得するステップ
をさらに含む、請求項3に記載の方法。
【請求項５】
前記要求側ピアノードまたは前記要求側ピアノードの前記ユーザの前記1つまたは複数の識別情報は、グループ識別情報であり、前記デジタルオブジェクトは、グループ識別情報の特定の１つに対応するグループのメンバーにアクセスが制限されたデータを含む、請求項1に記載の方法。
【請求項６】
前記要求側ピアノードおよび前記検証側ピアノードは、オーバーレイピアツーピアネットワークでワイヤレスで通信する、請求項1に記載の方法。
【請求項７】
前記データ構造は2進ベクトルであり、この場合に前記1つまたは複数の識別情報の各々が、前記2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される、請求項1に記載の方法。
【請求項８】
前記2進ベクトルは、
暗号学的ハッシュ関数を第1の識別情報に適用して、2進列を生成すること、
前記2進列を2進セグメントに区分すること、
各2進セグメントを、前記2進ベクトル内の位置インデックスに変換すること、および
前記2進ベクトルの示された位置インデックスにおけるベクトル値を非デフォルト値に設定すること
によって生成される、請求項7に記載の方法。
【請求項９】
複数の追加の識別情報が、前記2進ベクトル内で前記非デフォルト値に設定された位置インデックスに変換される、請求項8に記載の方法。
【請求項１０】
前記データ構造はブルームフィルタベクトルであり、この場合に各識別情報が、前記ブルームフィルタベクトルに沿って一様かつランダムに分散された複数のビットによって表される、請求項1に記載の方法。
【請求項１１】
前記データ構造は、偽陽性識別情報マッチが生じ得る確率的データ構造である、請求項1に記載の方法。
【請求項１２】
要求側ピアノードであって、
オーバーレイネットワークで他のピアノードと通信するための通信インターフェースと、
前記通信インターフェースに結合された処理回路と
を含み、前記処理回路は、
データ構造の共有データスペース内に前記要求側ピアノードまたは前記要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽する前記データ構造を生成するステップであって、前記1つまたは複数の識別情報の各々の表現が、前記共有データスペースに沿って一様かつランダムに分散される、前記生成するステップと、
検証側ビアノードにより格納されているデジタルオブジェクトへアクセスする要求の一部として、検証側ピアノードに前記データ構造を送るステップと
を行うように適合され、
前記要求側ピアノードの前記１つまたは複数の識別情報が、対応する前記検証側ピアノードの１つまたは複数のアクセス識別情報にマッチするならば、前記要求側ピアノードは前記デジタルオブジェクトへアクセス可能である、要求側ピアノード。
【請求項１３】
前記処理回路は、
前記要求側ピアノードのまたは前記要求側ピアノードのユーザの、前記1つまたは複数の識別情報のうちのいずれかが、対応する前記検証側ピアノードのアクセス識別情報とマッチするものであるかどうかを示す情報を、前記検証側ピアノードから受信し、これによりデジタルオブジェクトへのアクセスを許可する
ようにさらに適合される、請求項12に記載の要求側ピアノード。
【請求項１４】
前記処理回路は、
前記受信された情報から、第1の識別情報をマッチするものであると識別するステップと、
前記第1の識別情報に対応する認証データを選択するステップと、
前記デジタルオブジェクトへのアクセスを認証するために、前記選択された認証データを前記検証側ピアノードに送るステップと
を行うようにさらに適合される、請求項13に記載の要求側ピアノード。
【請求項１５】
前記処理回路は、
前記選択された認証データが前記検証側ピアノードによって正常に認証された場合に、前記デジタルオブジェクトへのアクセスを取得する
ようにさらに適合される、請求項14に記載の要求側ピアノード。
【請求項１６】
前記データ構造は2進ベクトルであり、この場合に前記1つまたは複数の識別情報の各々が、前記2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される、請求項12に記載の要求側ピアノード。
【請求項１７】
前記2進ベクトルは、
暗号学的ハッシュ関数を第1の識別情報に適用して、2進列を生成すること、
前記2進列を2進セグメントに再分割すること、
各2進セグメントを、前記2進ベクトル内の位置インデックスに変換すること、および
前記2進ベクトルの示された位置インデックスにおけるベクトル値を非デフォルト値に設定すること
によって生成される、請求項16に記載の要求側ピアノード。
【請求項１８】
要求側ピアノードであって、
データ構造の共有データスペース内に前記要求側ピアノードまたは前記要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽する前記データ構造を生成するための手段であって、前記1つまたは複数の識別情報の各々の表現が、前記共有データスペースに沿って一様かつランダムに分散される、前記生成するための手段と、
検証側ビアノードにより格納されているデジタルオブジェクトへアクセスする要求の一部として、検証側ピアノードに前記データ構造を送るための手段であって、前記要求側ピアノードの前記１つまたは複数の識別情報が、対応する前記検証側ピアノードの１つまたは複数のアクセス識別情報にマッチするならば、前記要求側ピアノードは前記デジタルオブジェクトへアクセス可能である、手段と、
を含む要求側ピアノード。
【請求項１９】
前記要求側ピアノードまたは前記要求側ピアノードのユーザの、前記1つまたは複数の識別情報のうちのいずれかが、対応する前記検証側ピアノードのアクセス識別情報とマッチするものであるかどうかを示す情報を、前記検証側ピアノードから受信し、これによりデジタルオブジェクトへのアクセスを許可するための手段
をさらに含む、請求項18に記載の要求側ピアノード。
【請求項２０】
前記受信された情報から、第1の識別情報をマッチするものであると識別するための手段と、
前記第1の識別情報に対応する認証データを選択するための手段と、
前記デジタルオブジェクトへのアクセスを認証するために、前記選択された認証データを前記検証側ピアノードに送るための手段と
をさらに含む、請求項19に記載の要求側ピアノード。
【請求項２１】
前記選択された認証データが前記検証側ピアノードによって正常に認証された場合に、前記デジタルオブジェクトへのアクセスを取得するための手段
をさらに含む、請求項20に記載の要求側ピアノード。
【請求項２２】
ピアノード上で動作可能な命令を記憶するプロセッサ可読記憶媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
データ構造の共有データスペース内に要求側ピアノードまたは前記要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽する前記データ構造を生成するステップであって、前記1つまたは複数の識別情報の各々の表現が、前記共有データスペースに沿って一様かつランダムに分散される、前記生成するステップと、
検証側ビアノードにより格納されているデジタルオブジェクトへアクセスする要求の一部として、検証側ピアノードに前記データ構造を送るステップであって、前記要求側ピアノードの前記１つまたは複数の識別情報が、対応する前記検証側ピアノードの１つまたは複数のアクセス識別情報にマッチするならば、前記要求側ピアノードは前記デジタルオブジェクトへアクセス可能である、ステップと、
を行わせる、プロセッサ可読記憶媒体。
【請求項２３】
検証側ピアノード内で動作可能な方法であって、
要求側ピアノードから、デジタルオブジェクトへアクセスする要求の一部として、データ構造の共有データスペース内に前記要求側ピアノードまたは前記要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽する前記データ構造を受信するステップであって、前記1つまたは複数の識別情報の各々の表現が、前記共有データスペースに沿って一様かつランダムに分散される、前記受信するステップと、
前記デジタルオブジェクトへアクセスすることを許容される1つまたは複数のアクセス識別情報を取得するステップと、
前記アクセス識別情報の各々のために、前記デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽する第2のデータ構造を生成するステップと、
前記受信されたデータ構造と前記第2のデータ構造との間で比較を行って、マッチの可能性を示す識別情報の共通部があるかどうかを確認するステップと
を含む方法。
【請求項２４】
前記要求側ピアノードの前記1つまたは複数の識別情報のうちのいずれかが、前記要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、前記要求側ピアノードに送るステップをさらに含む、請求項23に記載の方法。
【請求項２５】
前記検証側ピアノードによって識別されたマッチする識別情報に関連する認証データを受信するステップと、
前記受信された認証データが正常に認証された場合に、前記要求側ピアノードに対して、前記要求されたデジタルオブジェクトへのアクセスを許可するステップと
をさらに含む、請求項24に記載の方法。
【請求項２６】
前記要求側ピアノードが、前記マッチする識別情報によって識別されたグループのメンバーであることを検証するために、前記認証データを認証するステップ
をさらに含む、請求項25に記載の方法。
【請求項２７】
前記検証側ピアノードによって送られたマッチを示す前記情報は、マッチする識別情報である、請求項24に記載の方法。
【請求項２８】
前記検証側ピアノードによって送られたマッチを示す前記情報は、前記マッチする識別情報の隠蔽版である、請求項24に記載の方法。
【請求項２９】
前記受信されたデータ構造は2進ベクトルであり、この場合に前記要求側ピアノードの前記1つまたは複数の識別情報の各々が、前記2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される、請求項23に記載の方法。
【請求項３０】
前記データ構造はブルームフィルタベクトルであり、この場合に各識別情報が、前記2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される、請求項29に記載の方法。
【請求項３１】
前記第2のデータ構造は、2進ベクトルであって、該2進ベクトルは、
暗号学的ハッシュ関数を第1の識別情報に適用して、2進列を生成すること、
前記2進列を2進セグメントに区分すること、
各2進セグメントを、前記2進ベクトル内の位置インデックスに変換すること、および
前記2進ベクトルの示された位置インデックスにおけるベクトル値を非デフォルト値に設定すること
によって生成された2進ベクトルである、請求項23に記載の方法。
【請求項３２】
前記要求されたデジタルオブジェクトは、前記検証側ピアノードによって記憶される、請求項23に記載の方法。
【請求項３３】
前記要求されたデジタルオブジェクトは、記憶側ピアノードによって記憶される、請求項23に記載の方法。
【請求項３４】
検証側ピアノードであって、
オーバーレイネットワークで他のピアノードと通信するための通信インターフェースと、
前記通信インターフェースに結合された処理回路と
を含み、前記処理回路は、
要求側ピアノードから、デジタルオブジェクトへアクセスする要求の一部として、データ構造の共有データスペース内に前記要求側ピアノードまたは前記要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽する前記データ構造を受信するステップであって、前記1つまたは複数の識別情報の各々の表現が、前記共有データスペースに沿って一様かつランダムに分散される、前記受信するステップと、
前記デジタルオブジェクトへアクセスすることを許容される1つまたは複数のアクセス識別情報を取得するステップと、
前記アクセス識別情報の各々のために、前記デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽する第2のデータ構造を生成するステップと、
前記受信されたデータ構造と前記第2のデータ構造との間で比較を行って、マッチの可能性を示す識別情報の共通部があるかどうかを確認するステップと
を行うように適合される、検証側ピアノード。
【請求項３５】
前記処理回路は、
前記要求側ピアノードの前記1つまたは複数の識別情報のうちのいずれかが、前記要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、前記要求側ピアノードに送る
ようにさらに適合される、請求項34に記載の検証側ピアノード。
【請求項３６】
前記処理回路は、
前記検証側ピアノードによって識別されたマッチする識別情報に関連する認証データを受信するステップと、
前記受信された認証データが正常に認証された場合に、前記要求側ピアノードに対して、前記要求されたデジタルオブジェクトへのアクセスを許可するステップと
を行うようにさらに適合される、請求項35に検証側ピアノード。
【請求項３７】
前記処理回路は、
前記要求側ピアノードが、前記マッチする識別情報によって識別されたグループのメンバーであることを検証するために、前記認証データを認証する
ようにさらに適合される、請求項36に記載の検証側ピアノード。
【請求項３８】
検証側ピアノードであって、
要求側ピアノードから、デジタルオブジェクトへアクセスする要求の一部として、データ構造の共有データスペース内に前記要求側ピアノードまたは前記要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽する前記データ構造を受信するための手段であって、前記1つまたは複数の識別情報の各々の表現が、前記共有データスペースに沿って一様かつランダムに分散される、前記受信するための手段と、
前記デジタルオブジェクトへアクセスすることを許容される1つまたは複数のアクセス識別情報を取得するための手段と、
前記アクセス識別情報の各々のために、前記デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽する第2のデータ構造を生成するための手段と、
前記受信されたデータ構造と前記第2のデータ構造との間で比較を行って、マッチの可能性を示す識別情報の共通部があるかどうかを確認するための手段と
を含む検証側ピアノード。
【請求項３９】
前記要求側ピアノードの前記1つまたは複数の識別情報のうちのいずれかが、前記要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、前記要求側ピアノードに送るための手段
をさらに含む、請求項38に記載の検証側ピアノード。
【請求項４０】
前記検証側ピアノードによって識別されたマッチする識別情報に関連する認証データを受信するための手段と、
前記受信された認証データが正常に認証された場合に、前記要求側ピアノードに対して、前記要求されたデジタルオブジェクトへのアクセスを許可するための手段と
をさらに含む、請求項39に記載の検証側ピアノード。
【請求項４１】
検証側ピアノード上で動作可能な命令を記憶するプロセッサ可読記憶媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
要求側ピアノードから、デジタルオブジェクトへアクセスする要求の一部として、データ構造の共有データスペース内に前記要求側ピアノードまたは前記要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽する前記データ構造を受信するステップであって、前記1つまたは複数の識別情報の各々の表現が、前記共有データスペースに沿って一様かつランダムに分散される、前記受信するステップと、
前記デジタルオブジェクトへアクセスすることを許容される1つまたは複数のアクセス識別情報を取得するステップと、
前記アクセス識別情報の各々のために、前記デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽する第2のデータ構造を生成するステップと、
前記受信されたデータ構造と前記第2のデータ構造との間で比較を行って、マッチの可能性を示す識別情報の共通部があるかどうかを確認するステップと
を行わせる、プロセッサ可読記憶媒体。
【請求項４２】
プロセッサによって実行されると、前記プロセッサに、
前記要求側ピアノードの前記1つまたは複数の識別情報のうちのいずれかが、前記要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、前記要求側ピアノードに送るステップ
を行わせる命令をさらに含む、請求項41に記載のプロセッサ可読記憶媒体。
【請求項４３】
プロセッサによって実行されると、前記プロセッサに、
前記検証側ピアノードによって識別されたマッチする識別情報に関連する認証データを受信するステップと、
前記受信された認証データが正常に認証された場合に、前記要求側ピアノードに対して、前記要求されたデジタルオブジェクトへのアクセスを許可するステップと
を行わせる命令をさらに含む、請求項42に記載のプロセッサ可読記憶媒体。
【請求項４４】
前記検証側ピアノードから受信した前記情報は、第２のデータ構造を具備しており、
前記第２のデータ構造は、前記デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽し、
前記第１のデータ構造と前記第２のデータ構造を比較するステップであって、潜在的マッチを示す識別情報の共通部分があるかどうかを確認する、ステップと、
前記識別情報の共通部分に基づき、前記デジタルオブジェクトにアクセスするステップと、
をさらに具備する、請求項２に記載の方法。
【請求項４５】
前記検証側ピアノードから受信した前記情報は、第２のデータ構造を具備しており、
前記第２のデータ構造は、前記デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽し、
前記処理回路は、
前記第１のデータ構造と前記第２のデータ構造を比較し、潜在的マッチを示す識別情報の共通部分があるかどうかを確認し、
前記識別情報の共通部分に基づき、前記デジタルオブジェクトにアクセスするようにさらに適合される、請求項１３に記載の要求側ピアノード。
【請求項４６】
前記検証側ピアノードから受信した前記情報は、第２のデータ構造を具備しており、
前記第２のデータ構造は、前記デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽し、
前記第１のデータ構造と前記第２のデータ構造を比較する手段であって、前記要求側ピアノードは、要求側ピアノードと検証側ピアノードの少なくとも１つの識別情報にマッチがあるならば、前記デジタルオブジェクトにアクセスするように構成されている、請求項１９に記載の要求側ピアノード。
【請求項４７】
プロセッサによって実行されると、前記プロセッサに、
前記要求側ピアノードの前記1つまたは複数の識別情報のうちのいずれかが、対応する前記検証側ピアノードのアクセス識別情報とマッチするものであるかどうかを示す情報を、前記検証側ピアノードから受信するステップであって、前記検証側ピアノードから受信した前記情報は、第２のデータ構造を具備しており、前記第２のデータ構造は、前記デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽する、ステップと、
前記第１のデータ構造と前記第２のデータ構造を比較するステップであって、潜在的マッチを示す識別情報の共通部分があるかどうかを確認する、ステップと、
前記識別情報の共通部分に基づき、前記デジタルオブジェクトにアクセスするステップと、
を行わせる、さらなる命令を具備する、請求項２２に記載のプロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する様々な特徴は、一般的に、ピアツーピアオーバーレイネットワークに関し、少なくともいくつかの特徴は、ユーザのプライバシーを維持しながらピアツーピアオーバーレイネットワークにおけるアクセス制御を容易にすることに関する。
【背景技術】
【０００２】
低コストのスケーラビリティおよびアプリケーションの容易な展開のために、ピアツーピア(P2P)オーバーレイネットワークが設計されている。P2Pネットワークにおいて、各ユーザはピアの集合を介してネットワークの残り部分につながる。さらに、各ユーザは、離散集合を形成する識別情報(たとえば、メンバーシップ情報、電子メールアドレス、グループメンバーシップ、アカウント識別子、および/または他の形式のメンバーシップ/アカウント識別子)の集合を有し得る。この識別情報集合は、数学的には、同じ性質の要素の集まりを指す離散集合と考えられ得る。AおよびBという2つのピアが、それらの識別情報集合の共通部を発見したいと思ったときに、問題が生じる。たとえば、ピアAは識別情報(「Yahoo-A」、「gmail-A」、「fb-A」、「ebay-A」など)を含むことがあり、ピアBは識別情報(「gmail-B」、「LinkedIn-B」、「銀行-B」など)を含むことがある。AおよびBが、同じグループに属している(それにより、同じグループ証明書を有する)かどうかを発見しようとしているとき、または一方の当事者が許容された識別情報の集合からの識別情報を必要とするオブジェクトに対してアクセス制御を実行していて、他方の当事者がそのオブジェクトにアクセスしようとしているとき、識別情報のマッチングが生じ得る。たとえば、eBay(商標)アカウント(「ebay-n」)を有するピアのみが、特定のオブジェクトへのアクセスを許可され得る。
【０００３】
ピアツーピアネットワークでは、演算を実行するために2つの識別情報集合は同じピアに移送されなければならない(たとえば、ピアAはその識別情報集合をピアBに送る)。不確実な解決策として、一方のピアが、その機械に記憶されている集合全体をP2Pネットワークの他方のピアに送る(たとえば、ピアAが、「Yahoo-A」、「gmail-A」、「fb-A」、「ebay-A」など、その識別情報すべてをピアBに送る)ことがある。次いで受信側ピアは、集合演算を実行することができ、演算の結果を送り返す。すなわち、集合演算は、特定のデジタルオブジェクト(たとえば、データ、鍵、パスワード、実行ファイル、アプリケーションなど)へのアクセスを可能にする識別情報をピアが含むかどうかを判断することができる。演算に関与する集合が大きいとき、そのような解決策は、メッセージングおよび計算の点で著しいオーバーヘッドをもたらす。さらに、そのような演算は、ピアAの識別情報またはメンバーシップのすべてをピアBおよび場合によってはルーティングパス内のすべてのノードに明かすことがあり、それによりピアAのプライバシーが侵害される可能性がある。たとえば、あるピアがその識別情報からなる識別情報集合を送るならば、受信側ピアおよび/または中間ピアは、その識別情報または関連情報の一部または全部を確認することが可能になることがあり、それにより個人情報が明かされる可能性がある(たとえば、ピアAは、ピアAが病気を持っていることを示す、奇病の医療グループのメンバーシップを明かし得る識別情報集合を送ることがある)。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、ピアツーピアネットワークにおいてアクセス制御を実行することが引き続き可能でありながら、ピアのプライバシー(たとえば、識別情報、メンバーシップなど)を保持する方法が必要である。
【課題を解決するための手段】
【０００５】
要求側のプライバシーを保護しながらデジタルオブジェクトへのアクセスを取得するための、要求側ピアノードにおいて動作可能な方法が提供される。データ構造の共有データスペース内に要求側ピアノードまたは要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽するデータ構造が生成される。1つまたは複数の識別情報の各々の表現は、共有データスペースに沿って一様かつランダムに分散され得る。次いで、デジタルオブジェクトへアクセスする要求の一部として、検証側ピアノードにデータ構造が送られ得る。応答して、要求側ピアノードは、1つまたは複数の識別情報のうちのいずれかが、要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、検証側ピアノードから受信し得る。
【０００６】
受信された情報から、要求側ピアノードは、第1の識別情報をマッチするものであると識別することができ、第1の識別情報に対応する認証データを選択する。次いで、デジタルオブジェクトへのアクセスを認証するために、選択された認証データが検証側ピアノードに送られる。選択された認証データが検証側ピアノードによって正常に認証された場合、要求側ピアノードは、デジタルオブジェクトへのアクセスを取得することができる。
【０００７】
1つまたは複数の識別情報は、グループ識別情報であることがあり、デジタルオブジェクトは、特定のグループのメンバーのみが利用可能なデータである。要求側ピアノードおよび検証側ピアノードは、オーバーレイピアツーピアネットワークでワイヤレスで通信することができる。データ構造は2進ベクトルであってよく、この場合に1つまたは複数の識別情報の各々が、2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される。
【０００８】
一例では、2進ベクトルは、(a)暗号学的ハッシュ関数を第1の識別情報に適用して、2進列を生成すること、(b)2進列を2進セグメントに区分すること、(c)各2進セグメントを、2進ベクトル内の位置インデックスに変換すること、および/または(d)2進ベクトルの示された位置インデックスにおけるベクトル値を非デフォルト値に設定すること、によって生成され得る。複数の追加の識別情報が、2進ベクトル内で非デフォルト値に設定された位置インデックスに変換され得る。データ構造はブルームフィルタベクトルであってよく、この場合に各識別情報が、ブルームフィルタベクトルに沿って一様かつランダムに分散された複数のビットによって表される。この意味で、データ構造は、偽陽性識別情報マッチが生じ得る確率的データ構造である。
【０００９】
要求側のプライバシーを保護しながらデジタルオブジェクトへのアクセスを容易にするための、検証側ピアノードにおいて動作可能な方法が提供される。要求側ピアノードから、デジタルオブジェクトへアクセスする要求の一部として、データ構造の共有データスペース内に要求側ピアノードまたは要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽するデータ構造が受信され得る。1つまたは複数の識別情報の各々の表現は、共有データスペースに沿って一様かつランダムに分散され得る。デジタルオブジェクトへのアクセスを許容される1つまたは複数のアクセス識別情報が取得される。アクセス識別情報の各々のために、デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽する第2のデータ構造が生成される。次いで、受信されたデータ構造と第2のデータ構造との間で比較が行われて、マッチの可能性を示す識別情報の共通部があるかどうかが確認される。次いで、要求側ピアノードの1つまたは複数の識別情報のうちのいずれかが、要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報が、要求側ピアノードに送られる。
【００１０】
応答して、検証側ピアノードは、検証側ピアデバイスによって識別されたマッチする識別情報に関連する認証データを受信することができる。次いで検証側ピアノードは、受信された認証データが正常に認証された場合に、要求側ピアノードに対して、要求されたデジタルオブジェクトへのアクセスを許可することができる。要求側ピアノードが、マッチする識別情報によって識別されたグループのメンバーであることを検証するために、認証データが認証される。検証側ピアノードによって送られたマッチを示す情報は、マッチする識別情報であり得る。検証側ピアノードによって送られたマッチを示す情報は、マッチする識別情報の隠蔽版であり得る。様々な実装形態では、要求されたデジタルオブジェクトは、検証側ピアノードによって、または記憶側ピアノードによって記憶され得る。
【００１１】
一例では、受信されたデータ構造は2進ベクトルであってよく、この場合に要求側ピアノードの1つまたは複数の識別情報の各々が、2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される。たとえば、データ構造はブルームフィルタベクトルであってよく、この場合に各識別情報が、2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される。
【００１２】
第2のデータ構造は、(a)暗号学的ハッシュ関数を第1の識別情報に適用して、2進列を生成すること、(b)2進列を2進セグメントに区分すること、(c)各2進セグメントを、2進ベクトル内の位置インデックスに変換すること、および/または(d)2進ベクトルの示された位置インデックスにおけるベクトル値を非デフォルト値に設定すること、によって生成される2進ベクトルである。
【図面の簡単な説明】
【００１３】
【図１】ピアツーピアオーバーレイネットワークを含むネットワークおよび複数のピアノードを示すブロック図である。
【図２】要求側ピアノードの識別情報のプライバシーを保護しながら、アクセス要求を処理するための要求側ピアノードと記憶側および/または検証側ピアノードとの間の交換を示すフロー図である。
【図３】要求側ピアノードのために複数の識別情報を隠蔽するブルームフィルタベクトルを生成する一例を示す図である。
【図４】偽陽性の確率を下げながら、要求側ピアノードのために複数の識別情報を隠蔽するブルームフィルタベクトルを生成する一例を示す図である。
【図５】偽陽性の確率を下げながら、要求側ピアノードのために複数の識別情報を隠蔽するブルームフィルタベクトルを生成する別の例を示す図である。
【図６】デジタルオブジェクトへのアクセスを許容されるアクセス識別情報のために生成され得る1つまたは複数のブルームフィルタベクトルの一例を示す図である。
【図７】デジタルオブジェクトへのアクセスを許容される1つまたは複数の識別情報のために生成され得る1つまたは複数のブルームフィルタベクトルの一例を示す図である。
【図８】一例による要求側ピアノードを示すブロック図である。
【図９】アクセス制御中に要求側ピアノードの識別情報のプライバシーを保護するための、要求側ピアノードにおいて動作可能な方法を示す図である。
【図１０】ブルームフィルタベクトルにおいて識別情報を隠蔽するための、要求側ピアノードにおいて動作可能な方法を示す図である。
【図１１】一例による検証側/記憶側ピアノードを示すブロック図である。
【図１２】アクセス制御を実行している間に要求側ピアノードの識別情報のプライバシーを保護するための、検証側ピアノードにおいて動作可能な方法を示す図である。
【発明を実施するための形態】
【００１４】
以下の説明では、説明する実装形態を完全に理解することができるように具体的な詳細が与えられる。しかしながら、様々な実装形態が、これらの具体的な詳細なしに実践され得ることを当業者には理解されよう。たとえば、実装形態を不要な詳細で不明瞭にしないように回路をブロック図で示すことがある。他の場合には、説明される実装形態を不明瞭にしないように、よく知られている回路、構造および技法を詳細に示すことがある。
【００１５】
「例示的」という言葉は、「例、実例、または例示として機能すること」を意味するために本明細書で使用される。本明細書に「例示的」と記載されたいかなる実装形態または実施形態も、必ずしも他の実施形態または実装形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「実施形態」という用語は、すべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。本明細書で使用する場合、「ピアツーピアオーバーレイネットワーク」および「ピアノード」という用語は広く解釈されるべきであることを意味する。たとえば、「ピアツーピアオーバーレイネットワーク」は、サーバまたは固定型ホストによって中央調整されず、ピア間でタスクまたはワークロードを分割する分散型アプリケーションアーキテクチャを含む、オーバーレイネットワークを指す場合がある。さらに、「ピアノード」は、ピアツーピアオーバーレイネットワーク上の通信を容易にするデバイスを指す場合がある。「ピアノード」の例には、プリンタ、タブレットコンピュータ、テレビジョン、モバイル電話、携帯情報端末、パーソナルメディアプレーヤ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどが含まれ得る。
【００１６】
概要
1つの特徴は、ピアツーピアオーバーレイネットワーク内に記憶されているデジタルオブジェクトに関するアクセス制御を容易にする。ピアツーピアネットワークにおける第1のピアと第2のピアとの間で識別情報をマッチングするためのプライバシー保持方法が提供され、本方法は複数の追加のピアに拡大され得る。そのような識別情報のマッチングは、たとえば、第1のピアがあるデジタルオブジェクト(たとえば、データ、アプリケーション、実行ファイル、鍵など)へのアクセス(たとえば、読取りアクセス、書込みアクセス、削除アクセス、実行アクセスなど)を第2のピアに提供すべきかどうかを確認するために使用され得る。たとえば、識別情報のマッチングを実行できるように、第2のピアは、その識別情報のリストを第1のピアに提供することができる。ただし、第2のピアは、その識別情報を保護されていない形式で提供するのではなく、マッチしない識別情報について第1のピアが知るのを防止するために、その識別情報を隠蔽表現で提供することができる。すなわち、識別情報を隠蔽することによって、第2のピアのマッチする識別情報のみが第1のピアに明かされる一方、第2のピアの他の識別情報は秘密に保たれる。
【００１７】
一例では、第1のピアによって第2のピアに提供される識別情報は、グループ識別情報であり得る。たとえば、そのようなグループ識別情報は、クラブ、学校、団体、会社など、第1のピアのユーザがメンバーであるか、またはアカウントを有する/加入している様々なタイプのグループを識別することができる。すなわち、第1のピアは、第1のピアに対して(たとえば、データオブジェクト、実行可能コード、鍵などへの)アクセスを許可できるかどうかを確認するために第2のピアが使用し得る1つまたは複数のグループ識別情報を(隠蔽形式で)提供することができる。すなわち、第1のピアの特定のグループ識別情報が、デジタルオブジェクトへのアクセスを許容されるグループ識別情報とマッチする場合、第2のピアは、そのようなアクセスを許可することができる。いくつかの実装形態では、特定のグループのメンバーであるという第1のピアの主張を検証するために、後続の認証プロセスを実行して、特定のグループの第1のピアのメンバーシップを認証することができる。たとえば、これは、特定のグループのグループ管理者によって署名された(たとえば、特定のグループに属する秘密鍵によって署名され、対応する公開鍵によって検証可能な)何らかの証明書(たとえば、ユーザ識別情報)を第1のピアが提示することによって行われ得る。
【００１８】
一態様によれば、識別情報の隠蔽は、1つまたは複数の識別情報をハッシュし、2進ベクトル内にハッシュ値を表すことによって達成され得る。たとえば、そのような2進ベクトルは、ブルームフィルタとして実装でき、データ構造は長さmの長さの2進ベクトルおよびハッシュ関数の数kからなる。演算の前に、送信側ピアおよび受信側ピアは、ハッシュ関数の数が恣意的に大きくなり得るfhash1、fhash2、...によって示される一連のハッシュ関数に合意する。次いで、これらのハッシュ関数うちの1つまたは複数を使用して、1つまたは複数のオフセットまたは位置インデックス値を、第1のピアに関する複数の識別情報を表し得る合成2進ベクトルに生成する。この合成2進ベクトルは、第1のピアによって第2のピアに送られ得る。次いで第2のピアは、同様の方法で、比較を希望する識別情報(たとえば、要求されたデジタルオブジェクトへのアクセスを許容される識別情報)ごとに、ローカル2進ベクトルを生成することができる。次いで、ローカル2進ベクトルを合成2進ベクトルと比較して、マッチが発見されたかどうかを判断することができる。
【００１９】
例示的な動作ネットワーク
図1は、ピアツーピアオーバーレイネットワーク102を含むネットワークおよび複数のピアノード104A〜104Fを示すブロック図である。ピアツーピアオーバーレイネットワーク102は、サーバまたは固定型ホストによって中央調整されないように非集中化されかつ/または分散されてもよい。ネットワークのピアノード104A〜104Fにデジタルオブジェクトを記憶することができる。「デジタルオブジェクト」という用語は本明細書において、データオブジェクト、実行可能コード、プログラム、鍵、証明書などを含む、様々なタイプの情報を指すために使用される。ピアツーピアオーバーレイネットワーク102は、既存のネットワーク構造(たとえば、ワイヤレスネットワーク)で実装され得る。たとえば、ピアツーピアオーバーレイネットワーク102は、通信プロトコルスタックの最上位層(たとえば、アプリケーション層)で動作するように実装されてもよい。そのようなピアツーピアオーバーレイネットワーク102は、インターネットプロトコルネットワークなどの任意のタイプの下位ネットワークを利用して、オーバーレイネットワーク102上の複数のピアノード104A〜104Fが互いに通信するのを可能にしてもよい。下位ネットワークは、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク(たとえば、WWAN、WLAN)、および/または任意の他のタイプのネットワークのような任意の数のタイプのネットワークを備えてもよい。
【００２０】
ピアノード104A〜104Fは、ピアツーピアオーバーレイネットワーク102を介して通信するように適合されるデバイスを含むことができる。そのようなデバイスは、ピアツーピアオーバーレイネットワーク102を介して通信を容易にするように適合されるミドルウェアレイヤを含み得る。限定ではなく例として、ピアノードには、プリンタ104A、タブレットコンピュータ104B、テレビジョン104C、モバイル電話、携帯情報端末、およびパーソナルメディアプレーヤ104D、ラップトップコンピュータおよびノートブックコンピュータ104E、ならびに/またはデスクトップコンピュータ104Fなどのデバイスが含まれ得る。
【００２１】
ピアツーピアオーバーレイネットワーク102を採用するとき、ピアノード104A〜104Fの各々は、サーバまたは固定型ホストによる中央調整の必要なしに、他のピアノード104A〜104Fと通信することができる。たとえば、ピアノード104A〜104Fの各々は、その資源(たとえば、処理能力、ディスク記憶、ネットワーク帯域幅)の一部分を別のピアノードに利用可能にすることができ、中央調整用のサーバまたは固定型ホストなしに別のピアノードの資源の一部分を利用することができる。ピアノード104A〜104Fのうちの1つまたは複数は、ピアツーピアオーバーレイネットワーク102内の他のピアノードによってアクセスされ得るデジタルオブジェクトを記憶することができる。「アクセス」という用語は、読取りアクセス、書込みアクセス、削除アクセス、変更アクセス、実行アクセス、および記憶アクセスを含む、様々なタイプのアクセスを指し得る。そのような各デジタルオブジェクトは、ピアツーピアネットワーク102内のデジタルオブジェクトの位置を特定するために使用され得る関連識別子を有し得る。一例では、ピアツーピアネットワーク内のデジタルオブジェクトへのアクセスは、そのようなデジタルオブジェクトにアクセスする権利を示すことができるユーザまたはピアノードに制限され得る。たとえば、そのようなアクセス権は、1つまたは複数のグループのメンバーに制限され得る。アクセス権は、たとえば、グループ内のメンバーシップを証明する(たとえば、特定のグループに関連するアカウントであって、そのグループに関する秘密鍵によって署名され得る、対応する公開鍵を使用して検証可能なアカウントを有する)ことによって、検証され得る。
【００２２】
デジタルオブジェクトへのアクセスを獲得することを希望する要求側ピアノードは、別のピアノード(たとえば、記憶側ピアノードまたは検証側ピアノード)に対し、そのようなアクセス(またはデジタルオブジェクト自体)を要求することができる。そのようなアクセスを求める効率的な方法として、要求側ピアノードがその識別情報のすべて(たとえば、アカウントまたはメンバーシップ情報)を、各々を個別にチェックするのではなく、一度に提供することがある。そのような識別情報を要求側ピアノードから記憶側/検証側ピアノードに提供することにより、要求されたデジタルオブジェクトにアクセスできるグループに要求側ピアノードが属しているかどうかを記憶側/検証側ピアノードが確認することが可能になり得る。しかしながら、ピアノード識別情報の望ましくない開示または不要な開示を防止するために、ピアツーピアオーバーレイネットワークは、アクセス要求を定義するミドルウェア形式を用意することができる。たとえば、アクセス要求は、要求側ピアノードのすべてまたは複数の識別情報を隠蔽形式に含めるように構築され得る。
【００２３】
図2は、要求側ピアノードの識別情報のプライバシーを保護しながら、アクセス要求を処理するための要求側ピアノードと記憶側および/または検証側ピアノードとの間の交換を示すフロー図である。要求側ピアノード202は、複数の識別情報206(たとえば、グループ_識別情報-A、グループ_識別情報-B、...グループ_識別情報-N)を含むことができる。そのような識別情報は、以前に取得され、かつ/または確立されていることがある。各識別情報は、たとえば、要求側ピアノードのユーザがメンバーであるグループ(たとえば、学校、会社、支援グループ、クラブ、団体など)に関連付けられ得る。さらに、グループ識別情報ごとに、要求側ピアノード(またはユーザ)は、要求側ピアノードのユーザをグループのメンバー(たとえば、投資クラブのメンバー、会社のメンバー、大学のメンバーなど)として識別および/または認証する役割を担い得る認証データ(たとえば、ユーザ識別情報、証明書および/またはデジタル署名)を有し得る。
【００２４】
記憶側および/または検証側ピアノード204は、デジタルオブジェクト-x208および/またはデジタルオブジェクト-xへのアクセスを許容される識別情報210を記憶することができる。いくつかの実装形態では、記憶側ピアノードは、デジタルオブジェクト-xを記憶すること、ならびにデジタルオブジェクト-xへのアクセスを検証することができる。他の実装形態では、検証側ピアノードは、要求側ピアノードが、別のピアノード(すなわち、記憶側ピアノード)に記憶されているデジタルオブジェクト-xへのアクセスを許可されるべきかどうかを確認するだけであってよい。
【００２５】
デジタルオブジェクト-xへのアクセスを取得または獲得するために、要求側ピアノード202は、その識別情報(たとえば、グループ識別情報)の隠蔽表現を生成することができる(212)。次いで、要求側ピアノード202は、隠蔽された識別情報を含み得るデジタルオブジェクト-xへのアクセス要求214を送る。記憶側/検証側ピアノード204は、アクセス要求214を受信すると、隠蔽された識別情報のうちの1つが、デジタルオブジェクト-xへのアクセスを許容される識別情報とマッチするかどうかを判断することができる。一実装形態では、識別情報は、要求側ピアノードまたは、要求側ピアノードのユーザが属するグループ名(たとえば、会社、団体、学校など)であり得る。
【００２６】
隠蔽された識別情報を(たとえば、集合演算を使用して)記憶されている識別情報210(たとえば、デジタルオブジェクト-xへのアクセスを許容される識別情報)と比較して、マッチが存在するかどうかを判断することができる。次いで記憶側/検証側ピアノード204は、マッチする識別情報またはマッチする識別情報がないことを示す指示218を送ることができる。マッチする識別情報が発見された場合、指示218は、マッチする識別情報を要求側ピアノード202が識別できるように十分なデータを提供することができる。要求側ピアノード202は、そのような情報を受信すると、識別された/マッチする識別情報を使用して、記憶側/検証側ピアノード204との間で認証交換222を実行することができる。たとえば、要求側ピアノード202は、マッチする識別情報を使用して、マッチする識別情報に関連する対応する認証データ(たとえば、証明書、署名および/またはユーザ識別情報)を選択することができる。要求側ピアノードは、対応する認証データを使用して、(たとえば、対応する証明書もしくはユーザ識別情報を送ることによって、または何らかの課題/応答交換によって)要求側ピアノード自体を記憶側/検証側ピアノード204に対して自身を認証することができる。そのような認証が成功した場合(224)、要求側ピアノード202に対して、デジタルオブジェクト-xへのアクセスが許可され得る。たとえば、記憶側/検証側ピアノード204は、デジタルオブジェクト-xまたは要求側ピアノード202に対して許可されたアクセスの指示を送ることができる。検証側ピアノード204が要求側ピアノード202にランダムな課題を送り、検証側ピアノードによって検証され得るランダムな課題の署名版を受信する(たとえば、ランダムな課題は、要求側ピアノードによって、その秘密鍵を使用して署名され、検証側ピアノードによって、対応する公開鍵を使用して検証され得る)課題-応答プロトコルを含む、様々な認証プロトコルが使用され得ることに留意されたい。
【００２７】
一例によれば、グループ識別情報206は、要求側ピアノード202(または要求側ピアノードのユーザ)がメンバーであると主張するグループの名前(たとえば、「engineering_society_of_america」、「science_fiction_afficionados」、「qualcomm_employees」、「ucla_student_association」など)であり得る。これらのグループ識別情報は、それらを記憶側/検証側ピアノード204に送信される2進ベクトルにハッシュおよび/または結合することによって、隠蔽され得る。次いで記憶側/検証側ピアノード204は、グループ識別情報のうちのいずれかが、要求されたデジタルオブジェクト-xへのアクセスを許容されるかどうかを確認することができる。(たとえば、2進ベクトルにハッシュ/マップすることによる)グループ識別情報の隠蔽により、実際のグループ識別情報は、マッチするグループ識別情報を除いて、記憶側/検証側ピアノードに明かされない。マッチするグループ識別情報が発見された場合(たとえば、「qualcomm_employees」)、このマッチは要求側ピアノード202に伝えられる。後続のステップにおいて、要求側ピアノード202は、マッチするグループ識別情報によって識別されたグループの実際のメンバーシップを証明するよう求められ得る。そのような証明は、たとえば、要求側ピアノード202が、マッチするグループ識別情報のグループ管理者によって署名された証明書またはユーザ識別情報を提供することによって行われ得る。一例では、そのような証明書またはユーザ識別情報は、グループに関連する秘密鍵によって署名され得る(たとえば、CertPrv-Key(ユーザ識別情報))。対応する公開鍵を使用して、署名された証明書またはユーザ識別情報を認証することができる。提供された証明書またはユーザ識別情報が正常に認証された場合、デジタルオブジェクト-xへのアクセスが要求側ピア202に対して許可され得る。
【００２８】
2進ベクトルを使用した識別情報の隠蔽の例示的な実装形態
一実装形態では、要求側ピアノードの識別情報(たとえば、グループ識別情報)が、ブルームフィルタベクトルなどの2進ベクトルデータ構造を使用して隠蔽され得る。ブルームフィルタは、要素が集合のメンバーであるかどうかをテストするために使用される、スペース効率が高い確率的データ構造(すなわち、ビット配列)である。偽陽性が生じることはあるが、偽陰性が生じることはない。要素は配列に追加されることはあるが、除去されることはない。ビット配列に追加される要素が多くなるほど、偽陽性の確率は大きくなる。
【００２９】
一例では、識別情報(たとえば、グループ識別情報)が何らかの変換関数(たとえば、ハッシュ関数)によってビットのシーケンスに変換され得る。たとえば、様々な識別情報を変換するために、k個の異なるハッシュ関数が定義される。各ハッシュ関数は、識別情報(すなわち、集合内の要素)を、一様ランダム分散によりビット配列のm個の配列位置のうちの1つにマップまたはハッシュすることができる。識別情報は、ブルームフィルタデータ構造によって、ブルームフィルタデータ構造(たとえば、ベクトル)へのマッピング(インデクシング)の前に、識別情報のハッシングにより隠蔽されるか、または覆い隠される。すなわち、受信側ピアノードは、特定の識別情報を有していなければ、受信されたブルームフィルタデータ構造内のその識別情報を(または任意の他の識別情報)を識別することはできない。
【００３０】
図3は、要求側ピアノードのために複数の識別情報を隠蔽するブルームフィルタベクトルを生成する一例を示している。空のブルームフィルタベクトル(BFV)はmビットのビット配列であり、ビットはすべてデフォルト値(たとえば、ゼロ(0))に設定される。BFVは本明細書において、位置0〜m-1を有すると定義される。複数のハッシュ関数H1、H2、H3、...、Hkについて、要求側ピアノードおよび検証側/記憶側ピアノードは知っているか、または合意していることがある。この例は、識別情報ごとに異なるハッシュ関数が使用されることを示しているが、他の実装形態はすべての識別情報に同じ(たとえば、単一の)ハッシュ関数を使用してよいことに留意されたい。
【００３１】
この例では、要求側ピアノード(たとえば、ピアA)は、ピアノードAの識別情報集合(SA)を構成する複数の識別情報またはグループ識別情報(たとえば、yahoo-A、gmail-A、facebook-A、amazon-A、ebay-A、会社-A、学校-Aなど)を有し得る。集合SA内の各識別情報をハッシュして、ハッシュ値を取得することができる。この例では、たった3ビットのハッシュ値を使用して、位置またはオフセットインデックスを生成する。次いで、その位置またはオフセットインデックスはBFV上に設定される。図からわかるように、第1の識別情報(yahoo-A)を(第1のハッシュ関数H1を使用して)ハッシュして、オフセットまたは位置インデックス「2」を取得し、その結果、BFVの第2の位置は1に設定される。識別情報ごとに、そのような各オフセットまたは位置インデックスに関して得られるブルームフィルタ表現は、fA1、fA2、fA3、fA4、fA5、およびfA6によって示される。他の識別情報の各々についてもこのプロセスを繰り返して、結果としてBFVを取得し、このBFVでは、識別情報のハッシングから取得された位置またはオフセットビットの各々は非デフォルト値(たとえば、1)に設定される。この方式では、偽陽性が生じ得ることに留意されたい。たとえば、識別情報yahoo-Aと識別情報amazon-Aの両方で同じBFV位置またはオフセットインデックス(たとえば、2)が生じている。
【００３２】
偽陽性の確率を下げるために、より多くのハッシュビットを識別情報ごとに使用することができる。加えて、この偽陽性確率をさらに下げるために、BFVにおけるより多くのビットを識別情報ごとに設定することができる。
【００３３】
図4は、偽陽性の確率を下げながら、要求側ピアノードのために複数の識別情報を隠蔽するブルームフィルタベクトルを生成する一例を示している。この例では、ブルームフィルタベクトル(BFV)はm=4096ビットのビット配列であり、ビットはデフォルト値(たとえば、ゼロ(0))に初期化される。BFVは本明細書において、位置0〜m-1を有すると定義され、複数のハッシュ関数H1、H2、H3、...、Hkについて、要求側ピアノードおよび検証側/記憶側ピアノードは知っているか、または合意していることがある。
【００３４】
この例では、要求側ピアノード(たとえば、ピアA)は、ピアノードAの識別情報集合(SA)を構成する複数の識別情報またはグループ識別情報(たとえば、yahoo-A、gmail-A、facebook-A、amazon-A、ebay-A、会社-A、学校-Aなど)を有し得る。集合SA内の各識別情報を複数のハッシュ関数によってハッシュして、BFVへの位置またはオフセットインデックスとしての役割を担う複数のハッシュ値を取得することができる。この例では、12ビットのハッシュ値を使用して、各位置またはオフセットインデックスを生成する。したがって、この例では、ハッシュ関数の数kはインデックスの同数kにも対応する。次いで、これらの位置またはオフセットインデックスはBFV上に設定される。図からわかるように、第1の識別情報(yahoo-A)を(複数のハッシュ関数H1、H2、H3、H4、H5、...、Hkを使用して)ハッシュして、第1の複数のオフセットまたは位置インデックスを取得する。次いで、この第1の複数のオフセットまたは位置インデックスを使用して、BFVの対応するビットを非デフォルト値(たとえば、1)に設定する。特定の識別情報iについて、そのようなオフセットまたは位置インデックスごとに得られるブルームフィルタ表現は、fAi-1、fAi-2、fAi-3、....、fAi-kによって示される。次いで、残りの識別情報の各々についても、識別情報ごとに複数のオフセットまたは位置インデックスが生成されるように、このプロセスを繰り返す。
【００３５】
図4に示す手法は、識別情報ごとに複数のオフセットまたは位置インデックスが生成されるので、偽陽性の確率を下げるが、識別情報ごとに複数の様々なハッシュ値を計算することは、資源集約的であり得る。
【００３６】
図5は、偽陽性の確率を下げながら、要求側ピアノードのために複数の識別情報を隠蔽するブルームフィルタベクトルを生成する別の例を示している。図4の実装形態とは対照的に、この方法は単一のハッシュ関数(たとえば、SHA-1関数)を使用して、識別情報ごとに複数のオフセットまたは位置インデックスを生成する。各識別情報(たとえば、識別情報i)について、単一のハッシュ関数を識別情報に適用して、複数のセグメントに区分され得る十分に長いビット列を生成し、この場合に各セグメントH1、H2...H13、H14、H15、...Hkは、様々なハッシュ関数の結果と考えることができ、ブルームフィルタベクトル(BFV)へのオフセットまたは位置インデックスとしての役割を担う。すなわち、k個のセグメントの各々は、1つのオフセットまたは位置インデックスに対応する。特定の識別情報iについて、得られるブルームフィルタ表現は、オフセットまたは位置インデックス集合fAiによって定義でき、そのようなオフセットまたは位置インデックス集合fAiは、fAi-1、fAi-2、fAi-3、...、fAi-kによって示される複数のオフセットまたは位置インデックスを含み得る。
【００３７】
この例では、選択されたハッシュ関数は、160ビット出力を生成するSHA-1関数であることに留意されたい。この例では、識別情報ごとにk=20個の別個のインデックスが望まれ、各インデックスは12ビットの長さであるので、合計240ビットが必要とされる。したがって、最初のハッシュ演算から得られた160ビットを第2のハッシュ演算に入力として使用することによって、追加のビットが生成され得る。この例では、第2のハッシュ演算からの80ビットを使用して、240ビットを完成させる。(すなわち、第1のハッシュ演算からの160ビットが、第2のハッシュ演算からの80ビットに連結される)。ハッシュセグメントH14は第1のハッシュから第2のハッシュまで(すなわち、第1のハッシュ演算による4ビットから、第2のハッシュ演算による8ビットまで)広がり得ることにも留意されたい。生成されたインデックスごとにBFV内に非デフォルト値(たとえば、1)が設定される。次いで、ピアノードのユーザの識別情報ごとに、このプロセスが繰り返され得る。
【００３８】
1つまたは複数の識別情報を隠蔽するようにBFVが生成されると、BFVは要求側ピアノードによって記憶側または検証側ピアノードに送信される。以前に合意されていない場合、要求側ピアノードはBFVの長さm、使用されるオフセットもしくは位置インデックスの数k、および/または各インデクシングセグメントのビット長を提供するか、または送ることもできる。記憶側または検証側ピアノードは、BFV(ならびに場合によっては、使用されるはハッシュ関数、BFV長m、使用されるオフセットもしくは位置インデックスの数k、および/またはインデックスビット長の指示)を受信し、集合演算を実行して、要求されたデジタルオブジェクトへのアクセスを許可するマッチが発見されたかどうかを確認することができる。
【００３９】
図6および図7は、ブルームフィルタベクトルを使用して、要求側ピアノードと記憶側または検証側ピアノードとの間で識別情報をマッチングする一方で、そのような識別情報を隠蔽する例を示している。記憶側または検証側ピアノードは、要求側ピアノードがBFVを生成するために使用した演算と同様の演算を実行することができる。いくつかの実装形態では、オブジェクト-xのブルームフィルタベクトル(BFV-オブジェクト-x)が、要求側ピアノードが使用するのと同じハッシュ関数、BFV長m、オフセットもしくは位置インデックスの数k、および/または各インデクシングセグメントのビット長により事前に生成されていることがある。他の実装形態では、BFV-オブジェクト-xは、要求側ピアノードからデジタルオブジェクト要求を受信したときに生成され得る。一実装形態では、各BFV-オブジェクト-xは、デジタルオブジェクト-xへのアクセスを許容される単一の識別情報を表し得る。デジタルオブジェクト-xが複数のアクセス識別情報を有する場合、アクセス識別情報ごとに個別のBFV-オブジェクト-xベクトルが計算され得る。
【００４０】
要求側ピアノードAから、デジタルオブジェクト-xへアクセスする要求の一部として、BFV-Aが受信されていることがある。この例では、受信されたBFV-Aは、複数のオフセットまたは位置インデックス集合fA1、fA2、fA3、...、fAnによって定義された複数の識別情報を表し得る。オフセットまたは位置インデックス集合fA1、fA2、fA3、...、fAnの各々は、ブルームフィルタベクトルBFV-Aにおける1つまたは複数のオフセットまたは位置インデックスを表し得る。
【００４１】
図6に示す第1の例では、デジタルオブジェクト-xへアクセスすることが許容されるアクセス識別情報のために、1つまたは複数のBFV-オブジェクト-xベクトルが生成され得る。デジタルオブジェクト-xへアクセスすることが許容される1つまたは複数の識別情報は、集合Sxと呼ばれることがあり、この場合にそのような集合は、オフセットまたは位置インデックス集合fx1、fx2、fx3、...、fxgによって定義される。この例では、受信されたオフセットまたは位置インデックス集合(集合fA1、fA2、fA3、...、fAn)のうちのいずれも、デジタルオブジェクト-xのオフセットまたは位置インデックス集合(集合fx1、fx2、...、fxg)と共通またはマッチせず、これは要求側ピアノード識別情報とデジタルオブジェクト-xのアクセス識別情報との間にマッチがないことを意味する。
【００４２】
図7に示す第2の例では、デジタルオブジェクト-xへのアクセスを許容される1つまたは複数の識別情報のために、BFV-オブジェクト-xが生成され得る。デジタルオブジェクト-xへのアクセスを許容される1つまたは複数の識別情報は、集合Sxと呼ばれることがあり、この場合にそのような集合は、オフセットまたは位置インデックス集合fx1、fx2、fx3、...、fxfによって定義される。この例では、受信されたオフセットまたは位置インデックス集合(集合fA1、fA2、fA3、...、fAn)のうちの1つが、デジタルオブジェクト-xのオフセットまたは位置インデックス集合(集合fx1、fx2、...、fxf)のうちの1つと共通またはマッチする(たとえば、fx2におけるすべての1が、BFV-Aにおいて発見される)。したがって、要求側ピアノード識別情報とデジタルオブジェクト-xの識別情報との間にマッチがあり、デジタルオブジェクト-xへのアクセスが要求側ピアノードに対して許可され得る。
【００４３】
要求側ピアノード用のブルームフィルタベクトルBFV-Aと要求されたデジタルオブジェクト用のブルームフィルタベクトルBFV-オブジェクト-xとの間で、集合演算を使用して識別情報のマッチングが実行され得る。ブルームフィルタによって提供される最も単純な集合演算は、識別情報(要素)が(要求側ピアノードの)識別情報集合SA内にあるか、またはブルームフィルタベクトルを使用していないかをテストすることである。記憶側または検証側ピアノードBが、ピアノードAの識別情報集合SAを表すブルームフィルタベクトルBFV-Aを受信すると仮定する。デジタルオブジェクト-xは、デジタルオブジェクト-xへのアクセスを許容される1つまたは複数のアクセス識別情報(識別情報集合Sx)を有し得る。このようにして、記憶側または検証側ピアノードBは、デジタルオブジェクト-xに関連するアクセス識別情報(要素)ごとに、1つまたは複数のブルームフィルタベクトルBFV-オブジェクト-xを計算することもできる。すなわち、各アクセス識別情報は、別個のBFV-オブジェクト-x(すなわち、BFV-オブジェクト-x1、BFV-オブジェクト-x2、...、BFV-オブジェクト-xg)によって表され得る。(集合Sx内の)アクセス識別情報が集合SA内で発見された場合、BFV-オブジェクト-xにおけるすべてのビット「1」について、BFV-Aにおける対応するビット位置も1になるはずである。たとえば、図6では、(ベクトルBFV-オブジェクト-x1、BFV-オブジェクト-x2、...、BFV-オブジェクト-xgによって表される)すべてのアクセス識別情報は、BFV-Aの対応するオフセットまたは位置において発見されない「1」を有することがわかる。対照的に、図7では、BFV-オブジェクト-x2(またはfx2)におけるすべての「1」が、BFV-Aにおいて発見されることが諒解され得る。したがって、ピアノードBは、集合Sxにおける1つまたは複数のアクセス識別情報(要素)が集合SAに属するかどうかを容易にテストすることができる。
【００４４】
一例によれば、識別情報マッチは、共通演算SA∩SBを実行すること、すなわち、記憶側または検証側ピアノードBが、ベクトルBFV-AおよびBFV-オブジェクト-xiに対してビット単位のAND演算を実行して、共通集合を表す新しいベクトルBFV-INT=BFV-A AND BFV-オブジェクト-xi.を取得することによって確認され得る。
【００４５】
マッチした識別情報を記憶側または検証側ピアノードBから要求側ピアノードAに戻すことができる方法がいくつかある。
【００４６】
第1の方法では、記憶側または検証側ピアノードBは要求側ピアノードAに対し、マッチした識別情報の全部または一部を、その識別情報の形式(たとえば、実際の電子メールアドレス、グループ名、ドメイン名など)で送ることができる。要求側ピアノードAは、応答を受信すると、マッチする識別情報が応答で明確に識別されるので、マッチする識別情報はどれであるかを正確に知る。要求側ピアノードAは、応答で識別された識別情報のうちのいずれかを保有しているかどうかを確認できるので、ブルームフィルタマッチングにおいて偽陽性が発見されることもある。本方法の欠点は、マッチした識別情報を中間ルーティングノードに明かす可能性があることである。また、マッチした識別情報の数が多い場合、マッチした識別情報すべてを送ることは、大きいメッセージオーバーヘッドをもたらし得る。
【００４７】
第2の方法によれば、記憶側または検証側ピアノードBは、集合表現の代わりに、要求側ピアノードAに(たとえば、BFV-AとBFV-オブジェクト-xとの間のビット単位のAND演算から取得された)生じたブルームフィルタベクトルを送ることができる。すなわち、共通集合結果(すなわち、特定のマッチする識別情報)により要求側ピアノードAに応答する代わりに、ピアノードBは単に、共通集合を表すベクトルBFV-INTにより要求側ピアノードAに返信する。次いで要求側ピアノードAは、受信されたBFV-INTを使用して集合要素テストを実行して、その識別情報のうちのいずれがマッチした結果にあるかを突き止める。この方法は、ルーティングパス上の中間ノードがピアノードAとピアノードBとの間でマッチする識別情報集合を識別するのを防止することができる。これはまた、メッセージオーバーヘッドを、通常は小さい(たとえば、4096ビットの長さ)使用されるブルームフィルタベクトルのサイズに限定する。しかしながら、マッチした結果に偽陽性がある場合、ピアノードAは、マッチした識別情報が(たとえば、アクセス制御に)使用されるまで、または追加の認証ステップを実施することによって、偽陽性を発見することができない。
【００４８】
いくつかの実装形態では、小さい偽陽性確率はプロトコル設計によって補正され得る。たとえば、識別情報のマッチが発見された後でも、マッチする識別情報の追加認証が行われ得る。たとえば、識別情報のマッチは、マッチする2つのドメイン名を伴い得る。たとえば、要求側ピアノードは、「university.com」の第1の識別情報(たとえば、グループ識別情報)を含み得る一方、デジタルオブジェクト-xは、「university.com」に基づくアカウントを有するあらゆる者によってアクセス可能である。したがって、ブルームフィルタベクトルを使用した最初の識別情報のマッチが、ドメイン「university.com」の間にある。そのような最初のマッチが発見された場合、そのようなグループにおける要求側ピアノードの(またはユーザの)メンバーシップを認証するために後続の交換が生じ得る。
【００４９】
一例では、最初の識別情報のマッチが発見された後、要求側ピアノードは、デジタルオブジェクト-xにアクセスする要求側ピアノードの権利を証明するために、追加情報を提供することができる。たとえば、要求側ピアノードは、署名された証明書またはユーザ識別情報を、グループの管理者(たとえば、「university.com」の管理者から)から以前取得していることがある。たとえば、グループのメンバーになったことに伴い、グループ管理者は要求側ピアノードに対し、グループの秘密鍵によって署名された証明書を付与していることがある。一例では、そのような証明書は、グループの秘密鍵によって署名されたユーザ識別情報であり得る。
【００５０】
例示的な要求側ピアノードおよびその動作
図8は、一例による要求側ピアノードを示すブロック図である。要求側ピアノード800は、通信インターフェース804および記憶デバイスまたは媒体806に結合された処理回路802を含み得る。通信インターフェース804は、ネットワーク(たとえば、ワイヤレスネットワーク)との間の、かつ/またはオーバーレイネットワークの1つもしくは複数のピアノードとの伝送を容易にするように構成され得る送信機808(たとえば、ワイヤレス送信回路もしくはモジュール)および/または受信機810(たとえば、ワイヤレス受信回路もしくはモジュール)を含有または実装することができる。
【００５１】
記憶デバイスまたは媒体806は、たとえば、実行されると、他のピアノードと通信する機能、オーバーレイネットワークの他のノードに記憶されているデジタルオブジェクトへのアクセスを要求する機能、および/またはアクセス制御動作中にその識別情報のうちの1つもしくは複数を隠蔽する機能を含む、要求側ピアノードの1つまたは複数の機能を実行する1つまたは複数の命令を(一時的または永久的に)記憶するように適合され得るメモリデバイス、データ記憶デバイス、プロセッサ可読またはコンピュータ可読媒体であり得る。記憶デバイスまたは媒体806は、要求側ピアノード800のユーザに関連するか、または要求側ピアノード800自体に関連する1つまたは複数の識別情報(たとえば、グループ名、会社名、学校名、団体名など)を記憶することもできる。記憶デバイスまたは媒体806は、オーバーレイネットワークでのアクセス制御動作中に1つまたは複数の識別情報812を隠蔽するか、または覆い隠す役割を担い得る1つまたは複数のハッシュ関数814を記憶する役割を担うこともできる。
【００５２】
識別情報隠蔽モジュール816は、処理回路によって、(たとえば、データ構造の共有データスペース内に)1つまたは複数の識別情報812を暗号学的に隠蔽するデータ構造を生成するように実装され得る。そのようなデータ構造は、デジタルオブジェクトへアクセスする要求の一部として、通信インターフェース804を介して検証側ピアノードに送られ得る。応答して、要求側ピアノード800は、1つまたは複数の識別情報のうちのいずれかが、要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、検証側ピアノードから受信することができる。そのような情報は、検証側ピアノードがマッチするものであると判断した識別情報であり得る。識別情報マッチングモジュール818は、受信された情報から、第1の識別情報をマッチするものであると識別することができ、第1の識別情報に対応する証明書を選択し、かつ/または選択された証明書を、デジタルオブジェクトへのアクセスを認証するために検証側ピアノードに送る。
【００５３】
図9は、アクセス制御中に要求側ピアノードの識別情報のプライバシーを保護するための、要求側ピアノードにおいて動作可能な方法を示している。要求側ピアノードは、1つまたは複数の識別情報(たとえば、グループ識別情報またはグループ名)を取得することができる。そのような識別情報は、要求側ピアノードまたはそのユーザがメンバーであるグループを示すことができる。たとえば、1つまたは複数の識別情報は、グループ識別情報であってよく、当該グループのデジタルオブジェクトは、当該グループのメンバーのみが利用可能(またはアクセス可能)であり得る。
【００５４】
要求側ピアノードは、1つまたは複数の識別情報とともに、各識別情報に関連する各グループのメンバーであることを要求側ピアノード(またはそのユーザ)が証明することを可能にする対応する証明書を含めることができる。
【００５５】
要求側ピアノードは、データ構造の共有データスペース内に要求側ピアノードまたは要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽するデータ構造を生成することができる(902)。すなわち、共有データスペースは、1つまたは複数の識別情報の各々の表現を、共有データスペースに沿って一様かつ/またはランダムに分散することができる。
【００５６】
次いで、デジタルオブジェクトへアクセスする要求の一部として、検証側ピアノードにデータ構造が送られ得る(904)。1つまたは複数の識別情報は、共有データスペースに沿って一様かつ/またはランダムに分散され得る。たとえば、識別情報は、共有データスペースに広がる2進表現に変換され得る。たとえば、図5では、識別情報ごとに設定された非デフォルト値(1ビット(1))は、共有データスペースに沿ってランダムかつ/または一様に位置決めし得る。一例では、要求側ピアノードおよび検証側ピアノードは、オーバーレイピアツーピアネットワークでワイヤレスで通信することができる。「一様」分散は、同等の確率で共有データスペースの各ビット位置に識別情報ごとに非デフォルト値(ビット1)の位置を設定することを指す。「ランダム」分散は、確率的プロセス(たとえば、ランダムまたは擬似ランダム位置選択プロセス)によって決定された共有データスペースの所与のビット位置に非デフォルト値(ビット1)が現れることを指す。
【００５７】
データ構造を送ったことに応答して、要求側ピアノードは、1つまたは複数の識別情報のうちのいずれかが、要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、検証側ピアノードから受信することができる(906)。
【００５８】
次いで要求側ピアノードは、マッチした識別情報との関連性を証明しようとすることができる。受信された情報から、第1の識別情報がマッチするものであると識別され得る(908)。次いで、第1の識別情報に対応する証明書が要求側ピアノードによって選択され得る(910)。次いで、デジタルオブジェクトへのアクセスを認証するために、選択された証明書が要求側ピアノードによって検証側ピアノードに送られる(912)。選択された証明書が検証側ピアノードによって正常に認証された場合、要求側ピアノードは、デジタルオブジェクトへのアクセスを取得することができる(914)。
【００５９】
一例によれば、データ構造は2進ベクトルであってよく、この場合に1つまたは複数の識別情報の各々が、2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される。2進ベクトルは、(a)暗号学的ハッシュ関数を第1の識別情報に適用して、2進列を生成すること、(b)2進列を2進セグメントに区分すること、(c)各2進セグメントを、2進ベクトル内の位置インデックスに変換すること、および/または(d)2進ベクトルの示された位置インデックスにおけるベクトル値を1に設定すること、によって生成され得る。同様の方法で、複数の追加の識別情報が、2進ベクトル内で1に設定された位置インデックスに変換され得る。
【００６０】
一例では、そのようなデータ構造はブルームフィルタベクトルであり、この場合に各識別情報が、2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される。この点で、データ構造は、偽陽性識別情報マッチが生じ得る確率的データ構造であり得る。すなわち、ブルームフィルタベクトルは、偽陰性をもたらさないが、偽陽性をもたらし得る。
【００６１】
図10は、ブルームフィルタベクトルにおいて識別情報を隠蔽するための、要求側ピアノードにおいて動作可能な方法を示している。要求側ピアノードおよび/または要求側ピアノードのユーザに関連する複数の識別情報が取得される(1002)。たとえば、そのような識別情報は、グループメンバーシップを検証する役割を担い得る電子メールアドレス、メンバーシップ、アカウント情報であり得る。次いで各識別情報がハッシュされて、mビットの長さの2進シーケンスが取得される(1004)。2進シーケンスは、複数の(k個の)w(w<m)ビットのハッシュセグメントに区分され得る。たとえば、m=240ビットの長さの2進シーケンスおよびw=12ビットの長さのセグメントの場合、セグメントの数はk=20である。各セグメントの値は、オフセットまたは位置インデックスの働きをすることができる(1008)。オフセットまたは位置インデックスごとに、ブルームフィルタベクトルの対応するビットが設定される(たとえば、ビットを「1」に設定する)(1010)。識別情報のすべてのオフセットまたは位置インデックスについて、このプロセスを繰り返し(1012)、すべての識別情報が使用または選択される(1014)。このようにして、ブルームフィルタベクトルは複数の識別情報を表すことができ、各識別情報はブルームフィルタベクトルにおける複数の設定されたビットによって表される。
【００６２】
例示的な記憶側/検証側ピアノードおよびその動作
図11は、一例による検証側/記憶側ピアノードを示すブロック図である。検証側/記憶側ピアノード1100は、通信インターフェース1104および記憶デバイスまたは媒体1106に結合された処理回路1102を含み得る。通信インターフェース1104は、ネットワーク(たとえば、ワイヤレスネットワーク)との間の、かつ/またはオーバーレイネットワークの1つもしくは複数のピアノードとの伝送を容易にするように構成され得る送信機1108(たとえば、ワイヤレス送信回路もしくはモジュール)および/または受信機1110(たとえば、ワイヤレス受信回路もしくはモジュール)を含有または実装することができる。
【００６３】
記憶デバイスまたは媒体1106は、たとえば、実行されると、他のピアノードと通信する機能、オーバーレイネットワークの他のノードに記憶されているデジタルオブジェクトへのアクセスを検証する機能、および/またはアクセス制御動作中に識別情報のマッチングを実行する機能を含む、検証側/記憶側ピアノードの1つまたは複数の機能を実行する1つまたは複数の命令を(一時的または永久的に)記憶するように適合され得るメモリデバイス、データ記憶デバイス、プロセッサ可読またはコンピュータ可読媒体であり得る。記憶デバイスまたは媒体1106は、特定のデジタルオブジェクトに関連する1つまたは複数の識別情報(たとえば、グループ名、会社名、学校名、団体名など)を記憶することもできる。記憶デバイスまたは媒体1106は、オーバーレイネットワークでのアクセス制御動作中に1つまたは複数の識別情報1112を隠蔽するか、または覆い隠す役割を担い得る1つまたは複数のハッシュ関数1114を記憶する役割を担うこともできる。
【００６４】
識別情報マッチングモジュール1118は、要求側ピアノードから(通信インターフェース1104を介して)、デジタルオブジェクトへアクセスする要求の一部として、データ構造の共有データスペース内に要求側ピアノードまたは要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽するデータ構造を受信することができる。識別情報マッチングモジュール1118は、デジタルオブジェクトへアクセスすることを許容される1つまたは複数のアクセス識別情報を取得することができる。識別情報隠蔽モジュール1116は、アクセス識別情報の各々のために、デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽する第2のデータ構造を生成することができる。次いで識別情報マッチングモジュール1118は、受信されたデータ構造と第2のデータ構造との間で比較を行って、マッチの可能性を示す識別情報の共通部があるかどうかを確認する。次いで識別情報マッチングモジュール1118は、要求側ピアノードの1つまたは複数の識別情報のうちのいずれかが、要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、要求側ピアノードに送ることができる。応答して、アクセス認証モジュール1120は、検証側ピアデバイスによって識別されたマッチする識別情報に関連する証明書を受信することができる。次いでアクセス認証モジュール1120は、要求側ピアノードが、マッチする識別情報によって識別されたグループのメンバーであることを検証するために、証明書を認証することができる。
受信された証明書が正常に認証された場合、要求されたデジタルオブジェクトへのアクセスが要求側ピアノードに対して許可される。
【００６５】
図12は、アクセス制御を実行している間に要求側ピアノードの識別情報のプライバシーを保護するための、検証側ピアノードにおいて動作可能な方法を示している。要求側ピアノードから、デジタルオブジェクトへアクセスする要求の一部として、データ構造の共有データスペース内に要求側ピアノードまたは要求側ピアノードのユーザの1つまたは複数の識別情報を暗号学的に隠蔽するデータ構造が受信され得る(1202)。たとえば、1つまたは複数の識別情報の各々の表現は、共有データスペースに沿って一様かつ/またはランダムに分散され得る。様々な実装形態では、要求されたデジタルオブジェクトは、異なる記憶側ピアノードによって、または検証側ピアノード自体によって記憶され得る。一例では、受信されたデータ構造は2進ベクトルであってよく、この場合に要求側ピアノードの1つまたは複数の識別情報の各々が、2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される。たとえば、データ構造はブルームフィルタであってよく、この場合に各識別情報が、2進ベクトルに沿って一様かつランダムに分散された複数のビットによって表される。
【００６６】
次いで検証側ピアノードは、デジタルオブジェクトへのアクセスを許容される1つまたは複数のアクセス識別情報を取得することができ(1204)、アクセス識別情報の各々のために、デジタルオブジェクトのアクセス識別情報を暗号学的に隠蔽する第2のデータ構造を生成する(1206)。次いで、受信されたデータ構造と第2のデータ構造との間で比較が行われて、マッチの可能性を示す識別情報の共通部があるかどうかが確認され得る(1208)。次いで検証側ピアノードは、要求側ピアノードの1つまたは複数の識別情報のうちのいずれかが、要求されたデジタルオブジェクトへアクセスするのにマッチするものであるかどうかを示す情報を、要求側ピアノードに送ることができる(1210)。様々な例では、検証側ピアノードによって送られたマッチを示す情報は、(a)マッチする識別情報または(b)マッチする識別情報の隠蔽版であり得る。
【００６７】
応答して、検証側ピアノードは、検証側ピアデバイスによって識別されたマッチする識別情報に関連する証明書を受信することができる(1212)。要求側ピアノードが、マッチする識別情報によって識別されたグループのメンバーであることを検証するために、受信された証明書が認証され得る(1214)。受信された証明書が正常に認証された場合、要求されたデジタルオブジェクトへのアクセスが要求側ピアノードに対して許可される(1216)。
【００６８】
一実装形態では、第2のデータ構造は、(a)暗号学的ハッシュ関数を第1の識別情報に適用して、2進列を生成すること、(b)2進列を2進セグメントに区分すること、(c)各2進セグメントを、2進ベクトル内の位置インデックスに変換すること、および/または(d)2進ベクトルの示された位置インデックスにおけるベクトル値を1に設定すること、によって生成される2進ベクトルであり得る。デジタルオブジェクトへのアクセスを許容される識別情報ごとに異なる第2のデータ構造が生成され得ることに留意されたい。このようにして、各第2のデータ構造が、受信されたデータ構造と個別に比較されて、何らかのマッチする可能性のある識別情報が識別され得る。
【００６９】
図1、図2、図3、図4、図5、図6、図7、図8、図9、図10、図11および/または図12に示した構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴または機能に再構成され、かつ/または組み合わされ、あるいは、いくつかの構成要素、ステップ、または機能で具現化され得る。また、本開示の範囲から逸脱することなく追加の要素、構成要素、ステップ、および/または機能が追加され得る。図1、図8および/または図11に示す装置、デバイス、構成要素、および/または送信フレームは、図2〜図7、図9〜図10、および/または図12に記載した方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。また、本明細書に記載した新規のアルゴリズムは、ソフトウェアに効率的に実装されてもよく、かつ/またはハードウェアに組み込まれてもよい。
【００７０】
また、少なくともいくつかの実装形態を、フローチャート、フロー図、構造図またはブロック図として示されるプロセスとして説明したことに留意されたい。フローチャートは動作を逐次プロセスとして説明し得るが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並び替えられ得る。プロセスは、その動作が完了したときに終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、プロセスの終了は、呼出し関数またはメイン関数に対する関数のリターンに対応する。
【００７１】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶され得る。プロセッサは必要なタスクを実行し得る。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容をパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介してパス、転送、または送信され得る。
【００７２】
「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語は、限定はしないが、ポータブルまたは固定記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶、含有または搬送することができる様々な他の非一時的媒体を含み得る。したがって、本明細書で説明する様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」に記憶され、1つまたは複数のプロセッサ、機械、および/またはデバイスによって実行され得る命令および/またはデータによって、部分的にまたは完全に実装され得る。
【００７３】
本明細書で開示する例に関して説明する方法またはアルゴリズムは、ハードウェアで、プロセッサによって実行可能なソフトウェアモジュールで、または両方の組合せで、処理ユニット、プログラム命令、または他の指示の形態で直接具現化され得、単一のデバイスに含まれるかまたは複数のデバイスにわたって分散され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、その記憶媒体に情報を書き込むことができるようにプロセッサに結合され得る。代替として、記憶媒体はプロセッサと一体であり得る。
【００７４】
さらに、本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。
【００７５】
本明細書で説明した実施形態の様々な特徴は、本開示の範囲から逸脱することなく様々なシステムで実装され得る。上記の実施形態は例にすぎず、本開示を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置、ならびに多くの代替形態、変更形態、および変形形態に容易に適用され得ることが当業者には明らかであろう。
【符号の説明】
【００７６】
102  ピアツーピアオーバーレイネットワーク、オーバーレイネットワーク
104A  ピアノード、プリンタ
104B  ピアノード、タブレットコンピュータ
104C  ピアノード、テレビジョン
104D  ピアノード、モバイル電話、携帯情報端末、パーソナルメディアプレーヤ
104E  ピアノード、ラップトップコンピュータ、ノートブックコンピュータ
104F  ピアノード、デスクトップコンピュータ
202  要求側ピアノード、要求側ピア
204  記憶側および/または検証側ピアノード、記憶側/検証側ピアノード、検証側ピアノード
206  複数の識別情報、グループ識別情報
208  デジタルオブジェクト-x
210  デジタルオブジェクト-xへのアクセスを許容される識別情報、記憶されている識別情報
214  デジタルオブジェクト-xへのアクセス要求、アクセス要求
218  マッチする識別情報またはマッチする識別情報がないことを示す指示、指示
222  認証交換
800  要求側ピアノード
802  処理回路
804  通信インターフェース
806  記憶デバイスまたは媒体
808  送信機
810  受信機
812  1つまたは複数の識別情報
814  ハッシュ関数
816  識別情報隠蔽モジュール
818  識別情報マッチングモジュール
1100  検証側/記憶側ピアノード
1102  処理回路
1104  通信インターフェース
1106  記憶デバイスまたは媒体
1108  送信機
1110  受信機
1112  1つまたは複数の識別情報
1114  ハッシュ関数
1116  識別情報隠蔽モジュール
1118  識別情報マッチングモジュール
1120  アクセス認証モジュール
【図２】
0005922773.tif 000002
【図３】
0005922773.tif 000003
【図４】
0005922773.tif 000004
【図５】
0005922773.tif 000005
【図６】
0005922773.tif 000006
【図７】
0005922773.tif 000007
【図８】
0005922773.tif 000008
【図９】
0005922773.tif 000009
【図１０】
0005922773.tif 000010
【図１１】
0005922773.tif 000011
【図１２】
0005922773.tif 000012
【図１】
0005922773.tif 000013