(57)【特許請求の範囲】
【請求項１】
ブロック重複排除のためのシステムであって、
１つ以上のプロセッサと、
複数の命令を格納した１つ以上のメモリと、
を有し、
前記複数の命令は、前記１つ以上のプロセッサによって実行されると、
要求元エンティティの識別情報及びフラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップと、
前記ブロックが前記システムによって記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップと、
前記ブロックの暗号化バージョンにアクセスするための前記要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記要求元エンティティの識別情報を記憶するステップと、
第２の要求元エンティティの第２の識別情報及び前記フラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記第２の要求元エンティティの第２の識別情報の特定に応答して、前記ブロックの暗号化ハッシュに基づき前記ブロックが前記システムにより記憶されていると判断するステップと、
前記ブロックが前記システムによって記憶されているという判断に応答して、前記ブロックの暗号化バージョンにアクセスするための前記第２の要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記第２の要求元エンティティの第２の識別情報を記憶するステップと、
を前記１つ以上のプロセッサに実行させるシステム。
【請求項２】
前記ブロックが前記システムにより記憶されているか判断するステップは、前記ブロックの暗号化ハッシュと前記システムにより記憶されているブロックの暗号化ハッシュとを比較するステップを含む、請求項１記載のシステム。
【請求項３】
前記ブロックの暗号化バージョンを特定するステップは、前記フラグメント化されたファイルの各ブロックについて、前記要求元エンティティから前記ブロックの暗号化バージョンを特定するステップを含み、
前記ブロックが記憶されているか判断するステップは、前記フラグメント化されたファイルの各ブロックについて、前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップを含み、
前記ブロックの暗号化バージョンを記憶するステップは、前記フラグメント化された各ブロックについて、前記ブロックが前記システムにより記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップを含む、請求項１記載のシステム。
【請求項４】
前記複数の命令は更に、
前記暗号化されたブロックに対する前記第２の要求元エンティティからのリクエストに応答して、前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップと、
前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているという判断に応答して、前記ブロックの暗号化バージョンを前記第２の要求元エンティティに提供するステップと、
を前記１つ以上のプロセッサに更に実行させる、請求項１記載のシステム。
【請求項５】
前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第２の要求元エンティティの第２の識別情報が前記ブロックの暗号化バージョンに関連するか判断するステップを含む、請求項４記載のシステム。
【請求項６】
前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第２の要求元エンティティの第２の識別情報と前記ブロックの暗号化バージョンの許可デバイス識別情報のオーナシップリストとを比較するステップを含む、請求項５記載のシステム。
【請求項７】
前記要求元エンティティの識別情報を特定するステップは、計算装置の識別情報を特定するステップを含む、請求項１記載のシステム。
【請求項８】
要求元エンティティの識別情報及びフラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記ブロックが前記ブロックの暗号化ハッシュに基づきシステムにより記憶されているか判断するステップと、
前記ブロックが前記システムによって記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップと、
前記ブロックの暗号化バージョンにアクセスするための前記要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記要求元エンティティの識別情報を記憶するステップと、
第２の要求元エンティティの第２の識別情報及び前記フラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記第２の要求元エンティティの第２の識別情報の特定に応答して、前記ブロックの暗号化ハッシュに基づき前記ブロックが前記システムにより記憶されていると判断するステップと、
前記ブロックが前記システムによって記憶されているという判断に応答して、前記ブロックの暗号化バージョンにアクセスするための前記第２の要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記第２の要求元エンティティの第２の識別情報を記憶するステップと、
をコンピュータシステムにおけるプロセッサに実行させるプログラム。
【請求項９】
前記ブロックが前記システムにより記憶されているか判断するステップは、前記ブロックの暗号化ハッシュと前記システムにより記憶されたブロックの暗号化ハッシュとを比較するステップを含む、請求項８記載のプログラム。
【請求項１０】
前記ブロックの暗号化バージョンを特定するステップは、前記フラグメント化されたファイルの各ブロックについて、前記要求元エンティティから前記ブロックの暗号化バージョンを特定するステップを含み、
前記ブロックが記憶されているか判断するステップは、前記フラグメント化されたファイルの各ブロックについて、前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップを含み、
前記ブロックの暗号化バージョンを記憶するステップは、前記フラグメント化された各ブロックについて、前記ブロックが前記システムにより記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップを含む、請求項８記載のプログラム。
【請求項１１】
前記暗号化されたブロックに対する前記第２の要求元エンティティからのリクエストに応答して、前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップと、
前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているという判断に応答して、前記ブロックの暗号化バージョンを前記第２の要求元エンティティに提供するステップと、
を前記プロセッサに更に実行させる、請求項８記載のプログラム。
【請求項１２】
前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第２の要求元エンティティの第２の識別情報が前記ブロックの暗号化バージョンに関連するか判断するステップを含む、請求項１１記載のプログラム。
【請求項１３】
前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第２の要求元エンティティの第２の識別情報と前記ブロックの暗号化バージョンの許可デバイス識別情報のオーナシップリストとを比較するステップを含む、請求項１２記載のプログラム。
【請求項１４】
前記要求元エンティティの識別情報を特定するステップは、計算装置の識別情報を特定するステップを含む、請求項８記載のプログラム。
【請求項１５】
コンピュータシステムにおけるプロセッサによって実現されるブロック重複排除のための方法であって、
前記プロセッサが、要求元エンティティの識別情報及びフラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記プロセッサが、前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップと、
前記プロセッサが、前記ブロックが前記システムによって記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップと、
前記プロセッサが、前記ブロックの暗号化バージョンにアクセスするための前記要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記要求元エンティティの識別情報を記憶するステップと、
前記プロセッサが、第２の要求元エンティティの第２の識別情報及び前記フラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記プロセッサが、前記第２の要求元エンティティの第２の識別情報の特定に応答して、前記ブロックの暗号化ハッシュに基づき前記ブロックが前記システムにより記憶されていると判断するステップと、
前記プロセッサが、前記ブロックが前記システムによって記憶されているという判断に応答して、前記ブロックの暗号化バージョンにアクセスするための前記第２の要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記第２の要求元エンティティの第２の識別情報を記憶するステップと、
を有する方法。
【請求項１６】
前記ブロックが前記システムにより記憶されているか判断するステップは、前記ブロックの暗号化ハッシュと前記システムにより記憶されているブロックの暗号化ハッシュとを比較するステップを含む、請求項１５記載の方法。
【請求項１７】
前記ブロックの暗号化バージョンを特定するステップは、前記フラグメント化されたファイルの各ブロックについて、前記要求元エンティティから前記ブロックの暗号化バージョンを特定するステップを含み、
前記ブロックが記憶されているか判断するステップは、前記フラグメント化されたファイルの各ブロックについて、前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップを含み、
前記ブロックの暗号化バージョンを記憶するステップは、前記フラグメント化されたファイルの各ブロックについて、前記ブロックが前記システムにより記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップを含む、請求項１５記載の方法。
【請求項１８】
前記プロセッサが、前記暗号化されたブロックに対する前記第２の要求元エンティティからのリクエストに応答して、前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップと、
前記プロセッサが、前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているという判断に応答して、前記ブロックの暗号化バージョンを前記第２の要求元エンティティに提供するステップと、
を更に有する、請求項１５記載の方法。
【請求項１９】
前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第２の要求元エンティティの第２の識別情報が前記ブロックの暗号化バージョンに関連するか判断するステップを含む、請求項１８記載の方法。
【請求項２０】
前記第２の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第２の要求元エンティティの第２の識別情報と前記ブロックの暗号化バージョンの許可デバイス識別情報のオーナシップリストとを比較するステップを含む、請求項１９記載の方法。
【請求項２１】
前記要求元エンティティの識別情報を特定するステップは、計算装置の識別情報を特定するステップを含む、請求項１５記載の方法。
【請求項２２】
請求項８乃至１４何れか一項記載のプログラムを記憶するためのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
今日の社会では、大量のデータが計算装置間で伝送され、毎日格納される。また、計算の様々な面において不要なオーバヘッド量を減少させるための努力がある。例えば、データ重複排除は、大量のデータがある場所に格納されるとき（例えば、バックアップシステムとして）、ストレージの消費を有意に減少させる処理である。データ重複排除は、開発者が大きな冗長なデータブロックを、データブロックの単一のコピーへの比較的小さなリファレンスポイントに置換することを可能にする。
【０００２】
多くの実現形態では、格納されたデータは暗号化されるか、又はセキュアな方法により格納されうる。暗号化及びハッシュアルゴリズムは、デジタルデータのセキュアな送信及び格納を可能にする。暗号化アルゴリズムは、理想的には、擬似ランダムに見えるデータを生成し、異なる暗号鍵により暗号化された同一のデータは、大きく異なる暗号化データを生じさせるべきである。また、典型的なデータ重複排除は、異なる暗号鍵により暗号化されたデータによっては機能しない。
【図面の簡単な説明】
【０００３】
ここに説明されるコンセプトは、添付した図面において限定でなく具体例により示される。図示の簡単化のため、図面に示される要素は必ずしもスケーリングして図示されるとは限らない。適切であると考えられる場合、リファレンスラベルは対応する又は同様の要素を示すため図面間で繰り返されている。
【図１】図１は、暗号化データの重複排除のためのシステムの少なくとも１つの実施例の簡単化されたブロック図である。
【図２】図２は、図１のシステムの計算装置の環境の少なくとも１つの実施例の簡単化されたブロック図である。
【図３】図３は、図１のシステムの計算装置を利用してコンテンツデータサーバにコンテンツを格納する方法の少なくとも１つの実施例の簡単化されたフロー図である。
【図４】図４は、図１のシステムの計算装置を利用してコンテンツデータサーバからコンテンツを抽出する方法の少なくとも１つの実施例の簡単化されたフロー図である。
【図５】図５は、図１のシステムのコンテンツデータサーバの暗号化されたコンテンツを重複排除する方法の少なくとも１つの実施例の簡単化されたフロー図である。
【図６】図６は、図１のシステムの鍵サーバの暗号鍵を重複排除する方法の少なくとも１つの実施例の簡単化されたフロー図である。
【図７】図７は、図１のシステムのコンテンツデータサーバのリクエストされたコンテンツを提供する方法の少なくとも１つの実施例の簡単化されたフロー図である。
【図８】図８は、図１のシステムの鍵サーバのリクエストされたキーを提供する方法の少なくとも１つの実施例の簡単化されたフロー図である。
【発明を実施するための形態】
【０００４】
本開示のコンセプトは各種の改良及び代替的形態を許容するが、それの特定の実施例が図面において具体例により示され、ここで詳細に説明される。しかしながら、本開示のコンセプトを開示された特定の形態に限定することを意図するものでなく、他方、当該意図が本開示及び添付した請求項に整合する全ての改良、均等及び代替をカバーすることであることが理解されるべきである。
【０００５】
“一実施例”、“実施例”、“例示的な実施例”などの明細書における参照は、説明される実施例が特定の特徴、構成又は特性を含むものであってもよいが、全ての実施例は当該特定の特徴、構成又は特性を含むものであってもよいし、又は必ずしも含まなくてもよい。さらに、このようなフレーズは必ずしも同一の実施例を参照しているとは限らない。さらに、特定の特徴、構成又は特性が実施例に関して説明されるとき、明示的に説明されているか、又はいないかに関わらず、このような特徴、構成又は特性を他の実施例に関して実施することは当業者の知識の範囲内であることが主張される。
【０００６】
開示された実施例は、いくつかのケースでは、ハードウェア、ファームウェア、ソフトウェア又はこれらの何れかの組み合わせにより実現されてもよい。開示された実施例はまた、１以上のプロセッサにより読み込まれて実行されうる一時的又は非一時的なマシーン可読（例えば、コンピュータ可読）記憶媒体により担持又は格納される命令として実現されてもよい。マシーン可読記憶媒体は、マシーンにより可読な形態により情報を格納又は送信するための何れかの記憶装置、機構又は他の物理的構成として実現されてもよい（例えば、揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス）。
【０００７】
図面において、いくつかの構成又は方法の特徴は、特定の配置及び／又は順序づけにより示されうる。しかしながら、このような特定の配置及び／又は順序づけは必要とされなくてもよいことが理解されるべきである。むしろ、いくつかの実施例では、このような特徴は図示された図面に示されるものと異なる方法及び／又は順序により配置されてもよい。さらに、特定の図面に構成又は方法の特徴を含めることは、当該特徴が全ての実施例において必要とされることを含意すること意図しておらず、一部の実施例では、含まれなくてもよく、又は他の特徴と組み合わされてもよい。
【０００８】
ここで図１を参照して、暗号化されたデータの重複排除のためのシステム１００は、１以上の計算装置１０２、ネットワーク１０４、コンテンツデータサーバ１０６及び鍵サーバ１０８を含む。使用中、以下でより詳細に説明されるように、計算装置１０２はコンテンツデータサーバ１０６からの暗号化されたデータを格納及び／又は抽出してもよい。さらに、コンテンツデータサーバ１０６及び鍵サーバ１０８は、格納されている暗号化データを重複排除するため、順次機能する。１つのネットワーク１０４、１つのコンテンツデータサーバ１０６及び１つの鍵サーバ１０８しか図１において例示的に示されていないが、システム１００は、何れかの個数のネットワーク１０４、コンテンツデータサーバ１０６及び鍵サーバ１０８を有してもよい。さらに、図示されるように、システム１００は、１つ、２つ又はより多くの計算装置１０２を有してもよい。いくつかの実施例では、計算装置１０２は、コミュニティ（例えば、企業、ビジネスユニット、家族又は他の集合的なエンティティ）におけるメンバー装置（又は単に“メンバー”）として実現される。コミュニティのメンバーシップは、実現形態に依存して各種方法により確立されてもよい。例えば、いくつかの実施例では、コンテンツデータサーバ１０６及び／又は鍵サーバ１０８は、何れの計算装置１０２がコミュニティのメンバーであるか判断する。他の実施例では、ホワイトリスト及び／又はブラックリストが、メンバーシップを判断する際に決定されてもよい（例えば、コンテンツデータサーバ１０６及び／又は鍵サーバ１０８によって）。後述されるように、コミュニティにおけるメンバーの計算装置１０２は、重複排除システム１００において利用されるコミュニティ暗号鍵を共有する。
【０００９】
各計算装置１０２は、コンテンツデータサーバ１０６及び鍵サーバ１０８との通信リンクを確立し、ここに説明される機能を実行可能な何れかのタイプの計算装置として実現されてもよい。例えば、計算装置１０２は、携帯電話、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、モバイルインターネット装置、デスクトップコンピュータ、サーバ及び／又は他の何れかの計算／通信装置として実現されてもよい。いくつかの実施例では、計算装置１０２は、暗号化機器（例えば、特定の装置でなくクラウドプロバイダにバックアップするため組織により利用される機器）として実現されてもよい。図１に示されるように、例示的な計算装置１０２は、プロセッサ１１０、入出力（“Ｉ／Ｏ”）サブシステム１１２、メモリ１１４、通信回路１１８、１以上の周辺装置１２０、データストレージ１２２及びセキュリティエンジン１２４を含む。もちろん、計算装置１０２は、他の実施例では、典型的な計算装置（例えば、各種入出力装置）において通常見受けられるものなどの他の又は追加的なコンポーネントを有してもよい。さらに、いくつかの実施例では、例示的なコンポーネントの１以上は、他のコンポーネントに搭載されてもよいし、又は一部からのものであってもよい。例えば、メモリ１１４又はその一部は、いくつかの実施例では、プロセッサ１１０に搭載されてもよい。他の実施例では、セキュリティエンジン１２４は、通信回路１１８に搭載されてもよい。
【００１０】
プロセッサ１１０は、ここに説明される機能を実行可能な何れかのタイプのプロセッサとして実現されてもよい。例えば、プロセッサは、シングル若しくはマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ又は他のプロセッサ若しくは処理／制御回路として実現されてもよい。同様に、メモリ１１４は、ここに説明される機能を実行可能な何れかのタイプの揮発性若しくは不揮発性メモリ又はデータストレージとして実現されてもよい。処理において、メモリ１１４は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ及びドライバなどの計算装置１０２の実行中に利用される各種データ及びソフトウェアを格納してもよい。いくつかの実施例では、メモリ１１４はセキュアメモリ１１６を含む。セキュアメモリ１１６は、例えば、メモリ１１４のセキュアパーティションなどであってもよいし、又はメモリ１１４から独立してもよい。さらに、セキュアメモリ１１６は、プライベート又はセキュアな暗号鍵を格納してもよい。メモリ１１４は、プロセッサ１１０、メモリ１１４及び計算装置１０２の他のコンポーネントとの入出力処理を実行するための回路及び／又はコンポーネントして実現されてもよいＩ／Ｏサブシステム１１２を介しプロセッサ１１０に通信接続される。例えば、Ｉ／Ｏサブシステム１１２は、メモリコントローラハブ、入出力制御ハブ、ファームウェア装置、通信リンク（すなわち、ポイント・ツー・ポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、印刷回路ボードトレースなど）及び／又は入出力処理を実行するための他のコンポーネント及びサブシステムとして実現されてもよいし、又は有してもよい。いくつかの実施例では、Ｉ／Ｏサブシステム１１２は、システム・オン・チップ（ＳｏＣ）の一部を構成し、プロセッサ１１０、メモリ１１４及び計算装置１０２の他のコンポーネントと共に、単一の集積回路チップ上に搭載されてもよい。
【００１１】
計算装置１０２の通信回路１１８は、ネットワーク１０４を介し計算装置１０２と他のリモート装置（例えば、コンテンツデータサーバ１０６及び鍵サーバ１０８）との間の通信を有効にすることを可能にする何れかの通信回路、装置又はこれらの集まりとして実現されてもよい。通信回路１１８は、何れか１以上の通信技術（例えば、無線又は有線通信）及び当該通信を実行するための関連するプロトコルを利用するよう構成されてもよい。いくつかの実施例では、通信回路１１８は、ネットワークインタフェースカード（ＮＩＣ）として実現される。さらに、いくつかの実施例では、ここに説明される機能の１以上は、通信回路１１８又はＮＩＣにオフロードされてもよい。
【００１２】
計算装置１０２の周辺装置１２０は、何れかの個数の追加的な周辺又はインタフェース装置を有してもよい。周辺装置１２０に含まれる特定の装置は、例えば、計算装置１０２のタイプ及び／又は意図された利用などに依存してもよい。データストレージ１２２は、例えば、メモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライバ又は他のデータストレージ装置などの短期又は長期のデータの格納のため構成される何れかのタイプのデバイスとして実現されてもよい。
【００１３】
セキュリティエンジン１２４は、以下でより詳細に説明されるように、計算装置１０２の各種セキュリティ及び暗号機能を実行するよう構成される。セキュリティエンジン１２４は、プロセッサ１１０から分離したセキュリティコプロセッサ又は同様のデバイスとして実現されてもよい。当該実施例では、セキュリティエンジン１２４は、プロセッサ１１０に対してアウト・オブ・バンド方式により動作してもよい（例えば、セキュリティエンジン１２４は、プロセッサ１１０の電力状態から独立して、リモート装置との通信を含めて動作してもよい）。他の実施例では、セキュリティエンジン１２４は、プロセッサ１１０又はスタンドアローン暗号化ソフトウェア／ファームウェアに搭載される暗号化アクセラレータとして実現されてもよいし、又は含んでもよい。さらに、セキュリティエンジン１２４及び／又は通信回路１１８は、標準的な認証を実行し、リモート装置と制御プロトコルにアクセスするよう構成されてもよい。
【００１４】
ネットワーク１０４は、何れかの個数の各種の有線及び／又は無線通信ネットワークとして実現されてもよい。また、ネットワーク１０４は、１以上のネットワーク、ルータ、スイッチ、コンピュータ及び／又は他の介入する装置を有してもよい。例えば、ネットワーク１０４は、１以上のセルラネットワーク、電話ネットワーク、ローカル若しくはワイドエリアネットワーク、公衆に利用可能なグローバルネットワーク（例えば、インターネット）又はこれらの何れかの組み合わせとして実現されてもよいし、又は有してもよい。
【００１５】
コンテンツデータサーバ１０６及び鍵サーバ１０８はそれぞれ、ここに説明される機能を実行可能な何れかのタイプの計算装置又はサーバとして実現されてもよい。例えば、いくつかの実施例では、コンテンツデータサーバ１０６及び／又は鍵サーバ１０８は、上述された計算装置１０２と同様であってもよい。すなわち、コンテンツデータサーバ１０６及び鍵サーバ１０８は、企業レベルサーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、ＰＤＡ、モバイルインターネット装置、及び／又は他の何れかの計算／通信装置として実現されてもよい。さらに、コンテンツデータサーバ１０６及び／又は鍵サーバ１０８は、上述された計算装置１０２のものと同様のコンポーネントを有してもよい。計算装置１０２のこれらのコンポーネントの説明は、コンテンツデータサーバ１０６及び鍵サーバ１０８のコンポーネントの説明に等しく適用可能であり、説明の簡略化のためここでは繰り返されない。さらに、コンテンツデータサーバ１０６及び／又は鍵サーバ１０８は、計算装置１０２を参照して上述されず、説明の簡単化のためここでは説明されない計算装置又はサーバに通常見受けられる他のコンポーネント、サブコンポーネント及びデバイスを含むものであってもよいことが理解されるべきである。
【００１６】
図１に示されるように、例示的なコンテンツデータサーバ１０６は、暗号化されたブロック１５０、ハッシュ処理されたブロック１５２及びメンバー識別（ＩＤ）１５４を有する。さらに、鍵サーバ１０８は、解読鍵１５６、ハッシュ処理されたブロック１５２及びメンバー識別１５４を有する。以下で詳細に説明されるように、計算装置１０２は、システム１００に格納されるべきファイルのブロックのハッシュを暗号化及び生成し、暗号化されたブロック１５０及びハッシュ処理されたブロック１５２の双方をコンテンツデータサーバ１０６に送信してもよい。さらに、いくつかの実施例では、コミュニティにおける各メンバー計算装置１０２は、コンテンツデータサーバ１０６と鍵サーバ１０８との双方に送信される一意的なメンバー識別を有する。以下でより詳細に説明されるように、各計算装置１０２はまた、データブロックを暗号化するのに利用されうるファイル暗号鍵及び解読鍵を有する。いくつかの実施例では、ファイル解読鍵はまた鍵サーバ１０８に送信される。
【００１７】
以下でより詳細に説明されるように、システム１００は、暗号化により与えられるセキュリティとデータ重複排除により提供される利益との間のバランスを可能にする。システム１００は、コミュニティメンバー間の信頼関係を確立し、未認証又は所望されないデータエクスポージャの最小限のリスクによって、コミュニティによるコンテンツの重複排除を可能にする。
【００１８】
図２を参照して、使用中に、システム１００の各計算装置１０２は、コンテンツデータサーバ１０６にコンテンツを格納し、コンテンツデータサーバ１０６からコンテンツを抽出する環境２００を確立する。例示的な実施例における環境２００は、ファイル管理モジュール２０２、暗号化モジュール２０４、通信モジュール２０６及びセキュアメモリ１１６を有する。ファイル管理モジュール２０２、暗号化モジュール２０４及び通信モジュール２０６のそれぞれは、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせとして実現されてもよい。
【００１９】
ファイル管理モジュール２０２は、ファイルの分解、再構成、圧縮、解凍及び他のファイル管理機能を実行する。例えば、ファイル管理モジュール２０２は、コンテンツデータサーバ１０６に格納される所与のファイル（例えば、デジタルファイル）を１以上のブロック又はチャンクにフラグメント化又は分割する。ファイルは、例えば、デジタルファイル、プログラム若しくはアプリケーション、コード若しくはデータのアトミック部分又は他の適したデータ構造として実現されてもよい。いくつかの実施例では、ファイル管理モジュール２０２は、ファイルを固定長のブロックにフラグメント化するよう構成され、他の実施例では、ファイル管理モジュール２０２は、ファイルを可変長のブロックにフラグメント化してもよい。固定長のブロックの場合、ブロックサイズは計算装置１０２及び／又はコンテンツデータサーバ１０６によって決定される規格に従うものであってもよい。さらに、ファイル管理モジュール２０２は、フラグメント化されたブロックをファイルに以降に合成（すなわち、フラグメント化の逆）するよう構成される。ブロックの適切な合成又は再構成を実行するため、ファイルがフラグメント化されると、ファイル管理モジュール２０２は、元のファイルに関連するブロックのリストを生成してもよい。例えば、一実施例では、ファイル管理モジュール２０２は、ファイルをブロックＸ，Ｙ及びＺにフラグメント化してもよく、これらは計算装置１０２１０２のメモリの非隣接セクション及び／又はコンテンツデータサーバ１０６に経時的に格納されてもよい。また、ブロックのリストは、再構成のため、ファイルに関連するブロック及びそれらの正しい順序を特定するための機構を提供する。例示的な実施例では、ブロックのリストは、ファイルに属するブロックの鍵付きハッシュのリストを含み、他の情報（例えば、それらの順序）を含むものであってもよい。後述されるように、計算装置１０２は各ブロックを暗号化する。従って、他の実施例では、リストは暗号化されたブロック及び／又は暗号化されていないブロックに関するものであってもよい。
【００２０】
暗号化モジュール２０４は、セキュリティ及び暗号化手順を実行する。いくつかの実施例では、暗号化モジュール２０４は、セキュアメモリ１１６（例えば、メンバーキー２０８、コミュニティキー２１０及びファイルキー２１２）に格納される暗号鍵にアクセスしてもよい。さらに、暗号化モジュール２０４は、各種ファイルブロックを暗号化及び／又は解読するため、暗号鍵（すなわち、ファイルキー２１２）を生成してもよい。いくつかの実施例では、暗号化モジュール２０４は、暗号化される各ファイルのための別のファイルキー２１２（又は非対称鍵が利用される場合には別の暗号鍵ペア）を“オン・ザ・フライ（ｏｎ  ｔｈｅ  ｆｌｙ）”に生成する。例えば、暗号化モジュール２０４は、ファイル暗号鍵２１２を利用して、フラグメント化されたファイルの各ブロックを暗号化し、メンバー暗号鍵２０８を利用してファイル管理モジュール２０２により生成されたブロックのリストを暗号化する。もちろん、暗号化モジュール２０４はまた解読手順を実行してもよい。各メンバー鍵２０８は、コミュニティの特定のメンバー（すなわち、特定の計算装置１０２）に特に関連する暗号鍵として実現される。コミュニティ鍵２１０は、システム１００の各計算装置１０２により共有される（すなわち、コミュニティのメンバーによって共有される）暗号鍵である。例えば、企業環境における計算装置１０２は、同じコミュニティのメンバーであってもよく、従って、同じコミュニティ鍵２１０を共有してもよい。もちろん、単一の計算装置１０２は、複数のコミュニティのメンバーであってもよく、また、いくつかの実施例では、複数のコミュニティ鍵２１０を維持してもよい。さらに、各種実施例では、メンバー鍵２０８及びコミュニティ鍵２１０のそれぞれは対称的又は非対称的な暗号鍵であってもよいことが理解されるべきである。もちろん、対称暗号化アルゴリズムが利用される場合、暗号化及び解読暗号鍵は同じ鍵である。また、ファイル鍵、メンバー鍵２０８及び／又はコミュニティ鍵２１０は、対称暗号化が利用される場合、当該鍵は同一の鍵であってもよいという理解によって、“暗号化”又は“解読”鍵として後述されることもある。
【００２１】
さらに、暗号化モジュール２０４は、コミュニティ鍵２１０を利用して各ブロックの鍵付きハッシュを生成するよう構成される。何れか適切なハッシュ関数及び鍵処理方法が利用されてもよい。例えば、各種実施例では、セキュア・ハッシュ・アルゴリズム（例えば、ＳＨＡ−０，ＳＨＡ−１，ＳＨＡ−２，ＳＨＡ−３）又はメッセージ・ダイジェスト・アルゴリズム（例えば、ＭＤ５）がハッシュ関数として利用されてもよい。鍵付きハッシュは、例えば、データブロック及びコミュニティ鍵２１０に関する処理を実行し、当該処理の結果をハッシュ関数に入力することによって生成されてもよい。例えば、一実施例では、鍵付きハッシュは、コミュニティ鍵２１０をデータブロックに連結又は添付し、当該連結処理の結果をハッシュ関数入力として利用することによって生成されてもよい。他の実施例では、排他的論理和（すなわち、ＸＯＲ）演算が、データをハッシュ処理する前にデータブロック及びコミュニティ鍵に適用されてもよい。更なる実施例では、メッセージ認証コード（ＭＡＣ）アルゴリズムが、各ブロックの鍵付きハッシュを生成するのに利用されてもよい。もちろん、コミュニティ鍵２１０に基づき鍵付きハッシュを生成する何れか適切な方法が利用されてもよい。
【００２２】
メンバー鍵２０８及びコミュニティ鍵２１０が何れか適切な鍵配布機構を介し計算装置１０２に配布されてもよいことが理解されるべきである。一実施例では、鍵配布サーバ（例えば、コンテンツデータサーバ１０６、鍵サーバ１０８又は他の鍵サーバ）又はオラクルが、鍵を配布するのに利用されてもよい。他の実施例では、カンファレンス鍵配布システムが、例えば、コミュニティ鍵２１０を確立するのに利用されてもよい。いくつかの実施例では、ファイル鍵２１２がまた、鍵配布サーバから計算装置１０２に配布されてもよい。
【００２３】
通信モジュール２０６は、ネットワーク１０４を介し計算装置１０２とリモート装置（例えば、コンテンツデータサーバ１０６及び鍵サーバ１０８）との間の通信を処理する。例えば、いくつかの実施例では、通信モジュール２０６は、計算装置１０２とリモート装置との間のセキュア及び／非セキュアな通信を処理する。上述されるように、いくつかの実施例では、通信モジュール２０６は、プロセッサ１１０の電力状態に関わらず、セキュリティエンジン１２４のための当該通信を実行してもよい。
【００２４】
図３を参照して、使用中に、システム１００の各計算装置１０２は、コンテンツをコンテンツデータサーバ１０６に格納する方法３００を実行してもよい。例えば、計算装置１０２は、安全な維持及び以降の抽出のため、コンテンツをコンテンツデータサーバ１０６に格納してもよい（例えば、データが計算装置１０２において消失又は破壊された場合）。例示的な方法３００は、計算装置１０２がコンテンツデータサーバ１０６に格納されるファイルを特定し、当該ファイルをブロックにフラグメント化するブロック３０２から開始される。上述されるように、計算装置１０２は、ブロック長／サイズがコンテンツデータサーバ１０６により決定される固定長のブロックにファイルを分割してもよい。ブロック３０４において、計算装置１０２は、共有されるコミュニティ鍵２１０を利用して、各ブロックの鍵付きハッシュを生成する。上述されるように、コミュニティ鍵２１０がハッシュ関数に対する鍵として利用される限り、鍵付きハッシュを生成するのに適した何れかの機構が実現されてもよい。
【００２５】
ブロック３０６において、計算装置１０２は、ファイル暗号鍵２１２を生成し、ファイルと共に利用するため選択された計算装置１０２のファイル暗号鍵２１２を利用して各ブロックを暗号化する。上述されるように、いくつかの実施例では、計算装置１０２は、各ファイルブロックを暗号化するため、ファイル暗号鍵２１２（及び非対称暗号化のケースでは解読鍵）を“オン・ザ・フライ”に生成する。もちろん、他の実施例では、ファイル暗号鍵２１２は、以前に生成されたファイル暗号鍵２１２のセットから選択されてもよいし、又は鍵配布サーバから受信されてもよい。計算装置１０２は、ブロック３０６においてフラグメント化されたファイルに属するブロックのリストを生成する。例示的な実施例では、当該リストはハッシュ処理されたブロック（すなわち、ブロック３０４の出力）を特定する。上述されるように、いくつかの実施例では、ブロックのリストは、何れのブロックがフラグメント化されたファイルに関連するかと、解読されるとブロックが合成（すなわち、一緒になって置かれる）されるべき順序とを示す情報を含む。他の実施例では、生成されたリストは、ハッシュ処理されたブロックでなく、暗号化されていないブロック又は暗号化されたブロックを特定する。にも関わらず、ブロック３１０において、計算装置１０２は、それのメンバー暗号鍵２０８によりリストを暗号化する。いくつかの実施例では、計算装置１０２はまた、ブロック３１２において、追加的なセキュリティのため、ファイル解読鍵をそれのメンバー暗号鍵２０８により暗号化する。
【００２６】
ブロック３１４において、計算装置１０２は、暗号化されたブロック、各ブロックの鍵付きハッシュ及び計算装置１０２のメンバー識別をコンテンツデータサーバ１０６に送信する。さらに、ブロック３１６において、計算装置１０２は、各ブロックの鍵付きハッシュ、計算装置１０２のファイル解読鍵２１２及び計算装置１０２のメンバー識別を鍵サーバ１０８に送信する。上述されるように、いくつかの実施例では、鍵サーバ１０８に送信されるファイル解読鍵２１２は更に、計算装置１０２のメンバー暗号鍵２０８により暗号化される。もちろん、効率性を向上させるため、計算装置１０２は、複数のブロックについて上記の情報を同時に送信してもよい。さらに、上述された方法及びシステムのいくつかの実施例は、他のメンバーが暗号化されたファイル解読鍵を解読するのに利用可能であるという予想などのため、高性能のパーティ（例えば、ビジネス及び組織）によってのみ実現されてもよい。あまり高性能でないパーティは、いくつかの実施例では、ファイル解読鍵を更に暗号化することなく、開示された技術を実現してもよい。
【００２７】
後述されるように、コンテンツデータサーバ１０６及び鍵サーバ１０８は、特定の暗号化されたブロック及びファイル解読鍵２１２を格納すべき、又は計算装置１０２のメンバーＩＤをすでに格納されている鍵付きハッシュと関連付けるか判断するため、重複排除方法を実行する（例えば、特定のブロックの鍵付きハッシュがすでに格納されている鍵付きハッシュに一致する場合）。特定の実現形態に依存して（例えば、何れの装置が何れのタイプのデータを格納するか）、ブロック３１８において、計算装置１０２は、ファイルに関連するブロックの暗号化されたリストをコンテンツデータサーバ１０６及び／又は鍵サーバ１０８に送信する。もちろん、いくつかの実施例では、ここに説明されるものと同様の方法が、データの暗号化前にクライアントサイドの重複排除を実現するのに利用されてもよい。
【００２８】
図４を参照して、使用中に、システム１００の各計算装置１０２は、コンテンツデータサーバ１０６からコンテンツを抽出する方法４００を実行してもよい。当該方法４００は、計算装置１０２がファイルがリクエストされたか判断するブロック４０２から開始される。いくつかの実施例では、計算装置１０２は、コンテンツデータサーバ１０６に以前に格納されたファイルしか抽出できないことが理解されるべきである。計算装置１０２は、コンテンツデータサーバ１０６からのファイルをリクエストした場合、ブロック４０４において、計算装置１０２は、コンテンツデータサーバ１０６からのリクエストされたファイルに関連又は対応するブロックの暗号化されたリストを受信する。もちろん、計算装置１０２は、リストがローカルに格納され、データが消失していない実施例では、メモリ１１４又はデータストレージ１２２からリストを抽出してもよい（例えば、損傷又は自然災害のため）。計算装置１０２がブロック３０６においてフラグメント化されたファイルの暗号化されていないブロックしか特定しないリストを生成する実施例では（図３を参照）、コンテンツデータサーバ１０６は、暗号化されたブロックが最初のインスタンスにおいて計算装置１０２の１つから受信されるとき、各ファイルに関連する暗号化されたブロックのリストを生成してもよい。ブロック４０６において、計算装置１０２は、それのメンバー解読鍵２０８を利用してブロックのリストを解読する。上述されたように、ブロックのリストから、計算装置１０２は、何れのブロックが所望されるファイルと関連しているか判断することができる。
【００２９】
ブロック４０８において、計算装置１０２は、所望のファイルに関連するブロックがリクエストされたか判断する。計算装置１０２が所望のファイルに関連するデータブロックをリクエストした場合、ブロック４１０において、計算装置１０２は、対応する暗号化されたブロック、鍵付きハッシュ及びメンバーＩＤ（すなわち、コンテンツデータサーバ１０６に暗号化された各ブロックを格納した計算装置１０２のメンバーＩＤ）をコンテンツデータサーバ１０６から受信する。後述されるように、コンテンツデータサーバ１０６は、具体的な鍵付きハッシュ及びメンバーＩＤを暗号化されたブロックに関連付ける。同様に、鍵サーバ１０８は、具体的な鍵付きハッシュ及びメンバーＩＤを特定のファイル解読鍵２１２と関連付ける。ブロック４１２において、計算装置１０２は、鍵サーバ１０８からの暗号化された各ブロックに関連するファイル解読鍵２１２をリクエストする。これを行う際、計算装置１０２は、ブロック４１４において、コンテンツデータサーバ１０６５から受信されるようなリクエストされた各ブロックについて、鍵付きハッシュ及びメンバーＩＤを鍵サーバ１０８に提供する。上述されたように、コンテンツデータサーバ１０６に格納される各ブロックは、計算装置１０２の１つにより生成されるファイル暗号鍵２１２を利用して暗号化されている。また、対応するファイル解読鍵２１２は、暗号化されたブロックを解読するのに利用されてもよい。上述されるように、ファイル暗号鍵２１２及びファイル解読鍵２１２は、対称暗号化が利用される場合、同じ鍵となりうる。いくつかの実施例では、計算装置１０２は、対応するファイル解読鍵２１２をリクエストする際、鍵付きハッシュしか鍵サーバ１０８に送信しない。
【００３０】
上述されるように、いくつかの実施例では、ファイル解読鍵２１２は更に、暗号化されたブロックをコンテンツデータサーバ１０６に最初に格納した計算装置１０２のメンバー暗号鍵２０８により暗号化される（図３のブロック３１０を参照）。このような実施例では、ファイル解読鍵の何れかが異なる計算装置１０２のメンバー暗号鍵２０８により暗号化される場合（すなわち、重複排除のため）、暗号化されたブロックにアクセスした計算装置１０２は、当該他の計算装置１０２のメンバー解読鍵２０８なしにそれを解読することはできず、従って、ファイルブロックを解読することができない。また、計算装置１０２は、ブロック４１６において、暗号化されたファイル解読鍵を解読する際に、対応するメンバー装置からの支援をリクエストしてもよい。一実施例では、計算装置１０２は、暗号化されたファイル解読鍵２１２を対応するメンバー装置に送信し、メンバー装置は、メンバーのプライベートメンバー解読鍵２０８を利用して暗号化されたファイル解読鍵２１２を解読し、メンバー装置は、暗号化されたファイルブロックを解読する際に利用するため、解読されたファイル解読鍵２１２を計算装置１０２に送信する。もちろん、計算装置１０２は、暗号化されたファイル解読鍵２１２の解読されたバージョンを転送するよう対応するメンバー装置にリクエストしてもよい。
【００３１】
ブロック４１８において、計算装置１０２は、鍵サーバ１０８から受信した対応するファイル解読鍵２１２を利用して暗号化された各ブロックを解読する。上述されるように、ファイル解読鍵２１２が更にメンバー暗号鍵２０８によって暗号化される実施例では、計算装置１０２は、暗号化されたブロックを解読するためファイル解読鍵２１２を利用するために、対応するメンバー解読鍵２０８を利用してファイル解読鍵２１２を解読しなければならない。暗号化されたブロックが最初に計算装置１０２によりコンテンツデータサーバ１０６に格納された場合、ファイル解読鍵２１２は、計算装置１０２のメンバー暗号鍵２０８により暗号化されたものであるであろう。これらの状況では、計算装置１０２は、単にそれ自身のメンバー解読鍵２０８を利用して、ファイル解読鍵２１２を解読してもよい。しかしながら、いくつかの実施例では、ファイル解読鍵２１２は、計算装置１０２以外のメンバー装置のメンバー暗号鍵２０８により暗号化されたものであってもよい。また、計算装置１０２は、当該メンバー装置からファイル解読鍵２１２の解読されたバージョンをリクエストしてもよい（例えば、メンバー装置による解読のため暗号化されたファイル解読鍵２１２を送信することによって）。
【００３２】
さらに、いくつかの実施例では、計算装置１０２は、ブロック４２０において、解読されたブロックのインテグリティを検証してもよい。これを実行するため、計算装置１０２は、コミュニティ鍵２１０を利用して、解読された各ブロックの鍵付きハッシュ（すなわち、リファレンス鍵付きハッシュ）を生成する。それから、計算装置１０２は、ブロック４１０において、生成された鍵付きハッシュとコンテンツデータサーバ１０６から受信した鍵付きハッシュとを比較する。これらの鍵付きハッシュが一致した場合、解読されたデータブロックは真正であり、変更されていない。ブロック４２２において、計算装置１０２は、解読されたブロックを合成して再構成された所望のファイルを取得する。
【００３３】
図５を参照して、使用中に、コンテンツデータサーバ１０６は、暗号化されたコンテンツを重複排除する方法５００を実行してもよい。方法５００は、コンテンツデータサーバ１０６が、メンバー装置１０２がコンテンツデータサーバ１０６に格納するためファイル情報を送信したか判断する。いくつかの実施例では、コンテンツデータサーバ１０６は、計算装置１０２が暗号化されたブロックをコンテンツデータサーバ１０６に格納することが必要とされた適切な情報を供給したか判断する（すなわち、暗号化されたブロック、関連する鍵付きハッシュ、関連するメンバーＩＤ及びおそらく暗号化されたリスト）。上述されたように、メンバー装置１０２は、ファイルをブロックにフラグメント化し、ファイルの各ブロックを暗号化する。ファイル情報が受信された場合、ブロック５０４において、コンテンツデータサーバ１０６は、ファイルの次の暗号化されたブロック、関連する鍵付きハッシュ及びメンバーＩＤにアクセスする。
【００３４】
ブロック５０６において、コンテンツデータサーバ１０６は、受信した鍵付きハッシュと他の格納されている鍵付きハッシュ（すなわち、コンテンツデータサーバ１０６に格納されている）とを比較する。ブロック５０８において、一致が検出されない場合、コンテンツデータサーバ１０６は、ブロック５１０において、受信した暗号化されたブロック、鍵付きハッシュ及びメンバーＩＤをコンテンツデータサーバ１０６に格納する。いくつかの実施例では、コンテンツデータサーバ１０６はまた、鍵付きハッシュ、メンバーＩＤ及び暗号化されたブロックを互いに関連付ける。しかしながら、ブロック５０８において、一致が検出された場合、コンテンツデータサーバ１０６は、ブロック５１２において、計算装置１０２のメンバーＩＤと既存の暗号化されたブロック及び鍵付きハッシュ（すなわち、一致した鍵付きハッシュ）とを関連付ける。すなわち、いくつかの実施例では、コンテンツデータサーバ１０６は、何れのメンバーが特定の鍵付きハッシュに関連する暗号化されたブロックを格納したか、又は格納することを試みたか（例えば、これらのメンバーのメンバーＩＤを利用して）追跡する（例えば、リスト又は他のトラッキング機構を利用して）。
【００３５】
すなわち、コンテンツデータサーバ１０６にすでに格納された一致した鍵付きハッシュがない場合に限って、受信した暗号化されたブロック、鍵付きハッシュ及びメンバーＩＤが格納される。一致した鍵付きハッシュがコンテンツデータサーバ１０６にすでに格納されている場合、重複排除機構が利用される。鍵付きハッシュが一致しているため、暗号化されていないブロックが同一である可能性が優勢である。また、重複情報を格納するのでなく、コンテンツデータサーバ１０６は、計算装置１０２のメンバーＩＤをすでに格納されている暗号化されたブロック及び鍵付きハッシュに関連付けるか、又はマッピングする。このような例では、格納されている暗号化されたブロックは、異なる計算装置１０２のメンバー暗号鍵２０８を利用して暗号化される（すなわち、コンテンツデータサーバ１０６に最初に暗号化されたブロックを格納した計算装置により生成されるファイル暗号鍵２１２）。暗号化されたブロックを最初に格納したメンバーのメンバーＩＤが、何れのメンバーがここに説明されるようなファイル解読鍵２１２を解読するため適切なメンバー解読鍵２０８に対応するか特定するため必要とされる。コンテンツデータサーバ１０６は、鍵付きハッシュ、暗号化されたブロック及びメンバーＩＤを互いに編成又は関連付けるのに適した何れかのデータ構造（例えば、テーブル）を利用してもよい。
【００３６】
ブロック５１４において、コンテンツデータサーバ１０６は、更なる暗号化されたブロックが残っているか判断する。すなわち、コンテンツデータサーバ１０６は、ファイル情報において特定される暗号化された各ブロックに関連する鍵付きハッシュが、ファイルを送信したメンバー装置１０２から格納されたか、又は他のメンバー装置１０２のファイルストレージからコンテンツデータサーバ１０６に以前に格納されたか判断する。更なる暗号化されたデータが残っている場合、方法５００は、コンテンツデータサーバ１０６がファイルの次の暗号化されたブロック、鍵付きハッシュ及びメンバーＩＤを抽出するブロック５０４に戻る。しかしながら、コンテンツデータサーバ１０６が、ブロック５１４において、ファイル情報において特定された暗号化されたブロックの全てがコンテンツデータサーバ１０６に格納されたと判断した場合、コンテンツデータサーバ１０６は、ブロック５１６において、ブロックのリストを格納する。ここに説明される方法は、コンテンツデータサーバ１０６が格納用のファイルに関するブロックの一部しか受信していない実施例に等しく適用されることが理解されるべきである。
【００３７】
図６を参照して、使用中に、鍵サーバ１０８は暗号鍵を重複排除する方法６００を実行してもよい。方法６００は、鍵サーバ１０８が計算装置１０２から鍵付きハッシュ、メンバーＩＤ及びファイル解読鍵２１２が受信されたか判断するブロック６０２から開始される。受信されている場合、鍵サーバ１０８に鍵を格納するための必須情報が送信され、鍵サーバ１０８は、ブロック６０４において、受信した鍵付きハッシュと鍵サーバ１０８に格納されている他の鍵付きハッシュとを比較する。
【００３８】
方法５００と同様に、ブロック６０６において、受信した鍵付きハッシュと格納されている鍵付きハッシュの１つの間に一致（すなわち、それらが同一のハッシュである）が検出されなかった場合、鍵サーバ１０８は、ブロック６０８において、受信した鍵付きハッシュ、ファイル解読鍵２１２及びメンバーＩＤを鍵サーバ１０８に格納し、各受信情報を互いに関連付ける。しかしながら、ブロック６０６において、一致が検出された場合、鍵サーバ１０８は、いくつかの実施例では、ブロック６１０において、重複した情報を格納するのでなく、計算装置１０２のメンバーＩＤと既存のファイル解読鍵２１２及び鍵付きハッシュ（すなわち、一致した鍵付きハッシュ）とを関連付けてもよい。他の実施例では、一致の場合、鍵サーバ１０８には何も格納されない。鍵サーバ１０８は何れか適切なデータ構造を利用して、鍵付きハッシュ、メンバーＩＤ及びファイル解読鍵を互いに編成又は関連付けてもよいことが理解されるべきである。
【００３９】
図７を参照して、使用中に、コンテンツデータサーバ１０６は、リクエストされたコンテンツを計算装置１０２に提供する方法７００を実行してもよい。方法７００は、コンテンツデータサーバ１０６が計算装置１０２の１つがコンテンツデータサーバ１０６からのコンテンツをリクエストしたか判断するブロック７０２から開始される。そうである場合、コンテンツデータサーバ１０６は、ブロック７０４において、計算装置１０２がリクエストされたコンテンツ（すなわち、リクエストされた暗号化されたブロック）にアクセスすることが認められていることを検証する。これを実行する際、いくつかの実施例では、コンテンツデータサーバ１０６は、ブロック７０６において、計算装置１０２のメンバーＩＤと、リクエストされた暗号化された各ブロックの関連するメンバーＩＤのリストとを比較する。上述されたように、いくつかの実施例では、コンテンツデータサーバ１０６は、暗号化された各ブロックについて、コンテンツデータサーバ１０６に対応する鍵付きハッシュを格納したか、又は格納することを試みた各メンバー装置のメンバーＩＤのリストを維持する。また、リストは、何れの計算装置１０２が暗号化されたブロックに関連する解読されたデータの以前の“オーナシップ”を有したか示す。もちろん、他の実施例では、特定のメンバーが暗号化されたブロックにアクセスすることが認められているか判断するための手段が利用されてもよい。例えば、いくつかの実施例では、標準的な認証及びアクセス制御プロトコルが実行されてもよい（例えば、ブロック７０２の前に）。ブロック７０８において、コンテンツデータサーバ１０６は、アクセスが許可されるか判断する。許可される場合、コンテンツデータサーバ１０６は、ブロック７１０において、リクエストされた暗号化されたブロック、リクエストされた暗号化されたブロックに関連する鍵付きハッシュ及びリクエストされた暗号化されたブロックに関連するメンバーＩＤを要求元の計算装置１０２（すなわち、メンバー装置）に送信又は提供する。もちろん、ブロックをコンテンツデータサーバ１０６に最初に送信した計算装置１０２と異なる計算装置１０２が、特定のデータブロックをリクエストすることができる。
【００４０】
図８を参照して、使用中に、鍵サーバ１０８は、リクエストされた鍵を計算装置１０２に提供する方法８００を実行してもよい。方法８００は、鍵サーバ１０８が計算装置１０２の１つが鍵サーバ１０８からリクエストされたファイル解読鍵２１２を有しているか判断するブロック８０２から開始される。そうである場合、鍵サーバ１０８は、ブロック８０４において、所望のファイル解読鍵２１２に関連する鍵付きハッシュ及びメンバーＩＤを受信する。ブロック８０６において、鍵サーバ１０８は、提供された鍵付きハッシュ及びメンバーＩＤに関連するリクエストされたファイル解読鍵２１２を要求元の計算装置１０２（すなわち、メンバー装置）に送信又は提供する。さらに、いくつかの実施例では、鍵サーバ１０８は、要求元の計算装置１０２がリクエストされたファイル解読鍵２１２にアクセスすることが認められていることを検証するため、コンテンツデータサーバ１０６のものと同様の方法を実行する（図７のブロック７０４を参照）。上述されたように、要求元の計算装置１０２は、暗号化されたデータブロックを解読するため、コンテンツデータサーバ１０６から受信した暗号化されたブロックにファイル解読鍵２１２を適用してもよい。解読されたブロックは、それから、所望のファイルを生成するため再構成されてもよい。もちろん、ファイル解読鍵２１２が更にメンバー暗号鍵２０８により暗号化される実施例では、計算装置１０２は、これらのメンバー装置のメンバーＩＤを利用して、それらの対応するメンバー解読鍵２０８をリクエストしてもよい。
【００４１】
具体例
ここに開示された技術の例示的な具体例が以下に与えられる。技術の実施例は、後述される具体例の何れか１以上及び何れかの組み合わせを含むものであってもよい。
【００４２】
具体例１は、データ重複排除システムにおけるコンテンツデータサーバにコンテンツを格納する計算装置であって、（ｉ）計算装置により生成されたファイル暗号鍵を利用してフラグメント化されたファイルの各ブロックを暗号化し、（ｉｉ）コミュニティ鍵を利用して各ブロックの鍵付きハッシュを生成し、（ｉｉｉ）計算装置のメンバー暗号鍵を利用してファイル解読鍵を暗号化する暗号化モジュールと、暗号化された各ブロック、各ブロックの鍵付きハッシュ及び計算装置を特定するメンバー識別をコンテンツデータサーバに送信し、各ブロックの鍵付きハッシュ、暗号化されたファイル解読鍵及びメンバー識別を鍵サーバに送信する通信モジュールと、を有する計算装置を有する。
【００４３】
具体例２は、具体例１の主題を含み、フラグメント化されたファイルの各ブロックを生成するため、計算装置のファイルをフラグメント化するファイル管理モジュールを更に有する。
【００４４】
具体例３は、具体例１及び２の何れの主題を含み、フラグメント化されたファイルに属する各ブロックに関連する各鍵付きハッシュのリストを生成するファイル管理モジュールを更に有する。
【００４５】
具体例４は、具体例１〜３の何れかの主題を含み、暗号化モジュールは、メンバー暗号鍵を利用してリストを暗号化し、通信モジュールは、コンテンツデータサーバ及び鍵サーバの少なくとも１つに前記暗号化されたリストを送信する。
【００４６】
具体例５は、具体例１〜４の何れかの主題を含み、鍵付きハッシュは鍵付きセキュア・ハッシュ・アルゴリズム（ＳＨＡ）を有する。
【００４７】
具体例６は、ファイル暗号鍵及びファイル解読鍵は、同一の対称的暗号鍵である。
【００４８】
具体例７は、データ重複排除システムにおけるコンテンツデータサーバからコンテンツを抽出する計算装置であって、コンテンツデータサーバから、（ｉ）フラグメント化されたファイルの暗号化されたブロック、（ｉｉ）暗号化された各ブロックに関連する鍵付きハッシュ、及び（ｉｉｉ）コンテンツデータサーバに対応する暗号化されたブロックを以前に格納した計算装置を特定する暗号化された各ブロックのメンバー識別を受信し、対応する暗号化された各ブロックに関連する鍵付きハッシュ及びメンバー識別を鍵サーバに送信したことに応答して、鍵サーバから暗号化された各ブロックの暗号化されたファイル解読鍵を受信し、当該計算装置以外の他のメンバー装置に対応するメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵を、他のメンバー装置のメンバー解読鍵による解読のため他のメンバー装置に送信し、他のメンバー装置から、他のメンバー装置のメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵に対応する解読されたファイル解読鍵を受信する通信モジュールと、（ｉ）当該計算装置の対応するメンバー解読鍵により計算装置のメンバー暗号鍵により暗号化された各ファイル解読鍵を解読し、（ｉｉ）対応する暗号化された各ブロックに関連する解読されたファイル解読鍵を利用して暗号化された各ブロックを解読する暗号化モジュールとを有する計算装置を有する。
【００４９】
具体例８は、具体例７の主題を含み、通信モジュールは、フラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを受信し、暗号化モジュールは、当該計算装置のメンバー解読鍵を利用して暗号化されたリストを解読する。
【００５０】
具体例９は、具体例７及び８の主題を含み、解読されたリストに基づき解読されたブロックを合成することによってファイルを生成するファイル管理モジュールを更に有する。
【００５１】
具体例１０は、具体例７〜９の何れかの主題を含み、暗号化モジュールは、コミュニティ鍵を利用して解読された各ブロックのリファレンス鍵付きハッシュを生成し、解読された各ブロックのリファレンス鍵付きハッシュと、暗号化された各ブロックに関連する受信した鍵付きハッシュとを比較し、各ブロックのインテグリティを検証する。
【００５２】
具体例１１は、データ重複排除システムにおけるコンテンツデータサーバにコンテンツを格納する方法であって、計算装置によって、計算装置により生成されたファイル暗号鍵を利用してフラグメント化されたファイルの各ブロックを暗号化するステップと、計算装置上で、コミュニティ鍵を利用して各ブロックの鍵付きハッシュを生成するステップと、計算装置上で、計算装置のメンバー暗号鍵を利用してファイル解読鍵を暗号化するステップと、計算装置から、（ｉ）暗号化された各ブロック、（ｉｉ）各ブロックの鍵付きハッシュ及び（ｉｉｉ）計算装置を特定するメンバー識別をコンテンツデータサーバに送信するステップと、計算装置から、（ｉ）各ブロックの鍵付きハッシュ、（ｉｉ）暗号化されたファイル解読鍵及び（ｉｉｉ）メンバー識別を鍵サーバに送信するステップと、を有する方法を有する。
【００５３】
具体例１２は、具体例１１の主題を含み、計算装置上で、計算装置のファイルをフラグメント化し、フラグメント化されたファイルの各ブロックを生成するステップを更に有する。
【００５４】
具体例１３は、具体例１１及び１２の何れかの主題を含み、計算装置上で、フラグメント化されたファイルに属する各ブロックに関連する各鍵付きハッシュのリストを生成するステップを更に有する。
【００５５】
具体例１４は、具体例１１〜１３の何れかの主題を含み、計算装置上で、メンバー暗号鍵を利用してリストを暗号化するステップと、計算装置から、暗号化されたリストをコンテンツデータサーバ及び鍵サーバの少なくとも１つに送信するステップとを更に有する。
【００５６】
具体例１５は、具体例１１〜１４の何れかの主題を含み、鍵付きハッシュを生成するステップは、コミュニティ鍵を利用して各ブロックの鍵付きセキュア・ハッシュ・アルゴリズム（ＳＨＡ）を生成することを含む。
【００５７】
具体例１６は、具体例１１〜１５の何れかの主題を含み、ファイル暗号鍵及びファイル解読鍵は、同一の対称的な暗号鍵である。
【００５８】
具体例１７は、プロセッサと、プロセッサにより実行されると、計算装置に具体例１１〜１６の何れかの方法を実行させる複数の命令を格納したメモリとを有する計算装置を有する。
【００５９】
具体例１８は、実行されることに応答して、計算装置に具体例１１〜１６の何れかの方法を実行させる複数の命令を格納した１以上のマシーン可読記憶媒体を有する。
【００６０】
具体例１９は、データ重複排除システムにおけるコンテンツデータサーバからコンテンツを抽出する方法であって、計算装置によって、コンテンツデータサーバから、（ｉ）フラグメント化されたファイルの暗号化されたブロック、（ｉｉ）暗号化された各ブロックに関連する鍵付きハッシュ、及び（ｉｉｉ）コンテンツデータサーバに対応する暗号化されたブロックを以前に格納した計算装置を特定する暗号化された各ブロックのメンバー識別を受信するステップと、計算装置によって、対応する暗号化された各ブロックに関連する鍵付きハッシュ及びメンバー識別を鍵サーバに送信したことに応答して、鍵サーバから暗号化された各ブロックの暗号化されたファイル解読鍵を受信するステップと、計算装置によって、計算装置以外の他のメンバー装置に対応するメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵を、他のメンバー装置のメンバー解読鍵により解読するため他のメンバー装置に送信するステップと、計算装置によって、他のメンバー装置から、他のメンバー装置のメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵に対応する解読されたファイル解読鍵を受信するステップと、計算装置上で、計算装置のメンバー暗号鍵により暗号化された各ファイル解読鍵を計算装置の対応するメンバー解読鍵により解読するステップと、計算装置上で、対応する暗号化された各ブロックに関連する解読されたファイル解読鍵を利用して暗号化された各ブロックを解読するステップとを有する方法を有する。
【００６１】
具体例２０は、具体例１９の主題を含み、計算装置によって、フラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを受信するステップと、計算装置上で、計算装置のメンバー解読鍵を利用して暗号化されたリストを解読するステップとを更に有する。
【００６２】
具体例２１は、具体例１９及び２０の何れかの主題を含み、解読されたリストに基づき解読されたブロックを合成することによってファイルを生成するステップを更に有する。
【００６３】
具体例２２は、具体例１９〜２１の何れかの主題を含み、計算装置上で、コミュニティ鍵を利用して解読された各ブロックのリファレンス鍵付きハッシュを生成するステップと、計算装置によって、解読された各ブロックのリファレンス鍵付きハッシュと暗号化された各ブロックに関連する受信した鍵付きハッシュとを比較し、各ブロックのインテグリティを検証するステップとを更に有する。
【００６４】
具体例２３は、プロセッサと、プロセッサにより実行されると、計算装置に具体例１９〜２２の何れかの方法を実行させる複数の命令を格納したメモリとを有する計算装置を有する。
【００６５】
具体例２４は、実行されることに応答して、計算装置に具体例１９〜２２の何れかの方法を実行させる複数の命令を格納した１以上のマシーン可読記憶媒体を有する。
【００６６】
具体例２５は、データ重複排除システムのコンテンツデータサーバ上の暗号化されたコンテンツを重複排除する方法を有し、コンテンツデータサーバにより、（ｉ）フラグメント化されたファイルのブロックの鍵付きハッシュ、（ｉｉ）ブロックの暗号化されたバージョン、及び（ｉｉｉ）重複排除システムの第１メンバー装置からのメンバー識別であって、第１メンバー装置を識別するメンバー識別を受信するステップと、コンテンツデータサーバ上で、鍵付きハッシュとコンテンツデータサーバに格納されている他の鍵付きハッシュとを比較するステップと、鍵付きハッシュが他の格納されている鍵付きハッシュの何れにも一致しなかったことに応答して、コンテンツデータサーバ上で、暗号化されたブロック、鍵付きハッシュ及びメンバー識別を格納するステップと、鍵付きハッシュが格納されている鍵付きハッシュに一致したことに応答して、コンテンツデータサーバ上で、メンバー識別と格納されている暗号化されたブロック及び鍵付きハッシュとを関連付けるステップと、コンテンツデータサーバ上で、暗号化されたブロックに対する第２メンバー装置からのリクエストに応答して、重複排除システムの第２メンバー装置が暗号化されたブロックにアクセスすることが許可されているか判断するステップと、第２メンバー装置が暗号化されたブロックにアクセスすることが許可されていると判断したことに応答して、コンテンツデータサーバにより、暗号化されたブロック、鍵付きハッシュ及びメンバー識別を提供するステップと有する方法を有する。
【００６７】
具体例２６は、具体例２５の主題を含み、第１メンバー装置から受信したフラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを格納するステップを更に有する。
【００６８】
具体例２７は、具体例２５及び２６の何れかの主題を含み、第２メンバー装置が暗号化されたブロックにアクセスすることが許可されているか判断するステップは、第２メンバー装置のメンバー識別と暗号化されたブロックの許可されたメンバー識別のリストとを比較することを含む。
【００６９】
具体例２８は、プロセッサと、プロセッサにより実行されると、計算装置に具体例２５〜２７の何れかの方法を実行させる複数の命令を格納したメモリとを有する計算装置を有する。
【００７０】
具体例２９は、実行されることに応答して、計算装置に具体例２５〜２７の何れかの方法を実行させる複数の命令を格納した１以上のマシーン可読記憶媒体を有する。
【００７１】
具体例３０は、データ重複排除システムの鍵サーバ上の暗号鍵を重複排除する方法であって、鍵サーバにより、重複排除システムの第１メンバー装置から、（ｉ）第１メンバー装置のメンバー暗号鍵により暗号化されたファイル解読鍵、（ｉｉ）鍵付きハッシュ、及び（ｉｉｉ）重複排除システムの第１メンバー装置からのメンバー識別であって、第１メンバー装置を特定するメンバー識別を受信するステップと、鍵サーバ上で、鍵付きハッシュと鍵サーバに格納されている他の鍵付きハッシュとを比較するステップと、鍵付きハッシュが他の格納されている鍵付きハッシュの何れにも一致していないことに応答して、鍵サーバ上で、暗号化されたファイル解読鍵、鍵付きハッシュ及びメンバー識別を格納するステップと、暗号化されたファイル解読鍵に対する重複排除システムの第２メンバー装置からのリクエストに応答して、鍵サーバにより、鍵付きハッシュ及びメンバー識別に対応する暗号化されたファイル解読鍵を提供するステップとを有する方法を有する。
【００７２】
具体例３１は、具体例３０の主題を含み、第１メンバー装置から受信したフラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを格納するステップを更に有する。
【００７３】
具体例３２は、具体例３０及び３１の何れかの主題を含み、鍵付きハッシュが格納されている鍵付きハッシュに一致することに応答して、鍵サーバ上で、メンバー識別と格納されている暗号化されたファイル解読鍵及び鍵付きハッシュとを関連付けるステップを更に有し、暗号化されたファイル解読鍵を提供するステップは、第２メンバー装置のメンバー識別が暗号化されたファイル解読鍵の許可されたメンバー識別のリストにあると判断したことに応答したものである。
【００７４】
具体例３３は、プロセッサと、プロセッサにより実行されると、計算装置に具体例３０〜３２の何れかの方法を実行させる複数の命令を格納したメモリとを有する計算装置を有する。
【００７５】
具体例３４は、実行されることに応答して、計算装置に具体例３０〜３２の何れかの方法を実行させる複数の命令を格納した１以上のマシーン可読記憶媒体を有する。
【００７６】
具体例３５は、データ重複排除システムにおけるコンテンツデータサーバにコンテンツを格納する計算装置であって、当該計算装置により生成されたファイル暗号鍵を利用してフラグメント化されたファイルの各ブロックを暗号化する手段と、コミュニティ鍵を利用して各ブロックの鍵付きハッシュを生成する手段と、当該計算装置のメンバー暗号鍵を利用してファイル解読鍵を暗号化する手段と、（ｉ）暗号化された各ブロック、（ｉｉ）各ブロックの鍵付きハッシュ、及び（ｉｉｉ）当該計算装置を特定するメンバー識別をコンテンツデータサーバに送信する手段と、（ｉ）各ブロックの鍵付きハッシュ、（ｉｉ）暗号化されたファイル解読鍵、（ｉｉｉ）メンバー識別を鍵サーバに送信する手段とを有する計算装置を有する。
【００７７】
具体例３６は、具体例３５の主題を含み、当該計算装置のファイルをフラグメント化し、フラグメント化された各ブロックを生成する手段を更に有する。
【００７８】
具体例３７は、具体例３５及び３６の何れかの主題を含み、フラグメント化されたファイルに属する各ブロックに関連する各鍵付きハッシュのリストを生成する手段を更に有する。
【００７９】
具体例３８は、具体例３５〜３７の何れかの主題を含み、メンバー暗号鍵を利用してリストを暗号化する手段と、暗号化されたリストをコンテンツデータサーバ及び鍵サーバの少なくとも１つに送信する手段とを更に有する。
【００８０】
具体例３９は、具体例３５〜３８の何れかの主題を含み、鍵付きハッシュを生成する手段は、コミュニティ鍵を利用して各ブロックの鍵付きセキュア・ハッシュ・アルゴリズム（ＳＨＡ）を生成する手段を有する。
【００８１】
具体例４０は、具体例３５〜３８の何れかの主題を含み、ファイル暗号鍵及びファイル解読鍵は、同一の対称的な暗号鍵である。
【００８２】
具体例４１は、データ重複排除システムにおけるコンテンツデータサーバからコンテンツを抽出する計算装置であって、コンテンツデータサーバから、（ｉ）フラグメント化されたファイルの暗号化されたブロック、（ｉｉ）暗号化された各ブロックに関連する鍵付きハッシュ、及び（ｉｉｉ）コンテンツデータサーバに対応する暗号化されたブロックを以前に格納した計算装置を特定する暗号化された各ブロックのメンバー識別を受信する手段と、対応する各暗号化されたブロックに関連する鍵付きハッシュ及びメンバー識別を鍵サーバに送信したことに応答して、鍵サーバから暗号化された各ブロックの暗号化されたファイル解読鍵を受信する手段と、計算装置以外の他の計算装置に対応するメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵を、他のメンバー装置のメンバー解読鍵により解読するため他のメンバー装置に送信する手段と、他のメンバー装置から、他のメンバー装置のメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵に対応する解読されたファイル解読鍵を受信する手段と、計算装置のメンバー暗号鍵により暗号化された各ファイル解読鍵を、計算装置の対応するメンバー解読鍵により解読する手段と、対応する暗号化された各ブロックに関連する解読されたファイル解読鍵を利用して暗号化された各ブロックを解読する手段とを有する計算装置を有する。
【００８３】
具体例４２は、具体例４１の主題を含み、フラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを受信する手段と、当該計算装置のメンバー解読鍵を利用して暗号化されたリストを解読する手段とを更に有する。
【００８４】
具体例４３は、具体例４１及び４２の何れかの主題を含み、解読されたリストに基づき解読されたブロックを合成することによってファイルを生成する手段を更に有する。
【００８５】
具体例４４は、具体例４１〜４３の何れかの主題を含み、コミュニティ鍵を利用して解読された各ブロックのリファレンス鍵付きハッシュを生成する手段と、解読された各ブロックのリファレンス鍵付きハッシュと、暗号化された各ブロックに関連する受信した鍵付きハッシュとを比較し、各ブロックのインテグリティを検証する手段を更に有する。
【００８６】
具体例４５は、暗号化されたコンテンツを重複排除する重複排除システムの計算装置であって、（ｉ）フラグメント化されたファイルのブロックの鍵付きハッシュ、（ｉｉ）ブロックの暗号化されたバージョン、及び（ｉｉｉ）重複排除システムの第１メンバー装置からのメンバー識別であって、第１メンバー装置を識別するメンバー識別を受信する手段と、鍵付きハッシュとコンテンツデータサーバに格納されている他の鍵付きハッシュとを比較する手段と、鍵付きハッシュが他の格納されている鍵付きハッシュの何れにも一致しなかったことに応答して、暗号化されたブロック、鍵付きハッシュ及びメンバー識別を格納する手段と、鍵付きハッシュが格納されている鍵付きハッシュに一致したことに応答して、メンバー識別と格納されている暗号化されたブロック及び鍵付きハッシュとを関連付ける手段と、暗号化されたブロックに対する第２メンバー装置からのリクエストに応答して、重複排除システムの第２メンバー装置が暗号化されたブロックにアクセスすることが許可されているか判断する手段と、第２メンバー装置が暗号化されたブロックにアクセスすることが許可されていると判断したことに応答して、暗号化されたブロック、鍵付きハッシュ及びメンバー識別を提供する手段と有する計算装置を有する。
【００８７】
具体例４６は、具体例４５の主題を含み、第１メンバー装置から受信したフラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを格納する手段を更に有する。
【００８８】
具体例４７は、具体例４５及び４６の何れかの主題を含み、第２メンバー装置が暗号化されたブロックにアクセスすることが許可されているか判断する手段は、第２メンバー装置のメンバー識別と暗号化されたブロックの許可されたメンバー識別のリストとを比較することを含む。
【００８９】
具体例４８は、暗号鍵を重複排除するデータ重複排除システムの計算装置であって、重複排除システムの第１メンバー装置から、（ｉ）第１メンバー装置のメンバー暗号鍵により暗号化されたファイル解読鍵、（ｉｉ）鍵付きハッシュ、及び（ｉｉｉ）重複排除システムの第１メンバー装置からのメンバー識別であって、第１メンバー装置を特定するメンバー識別を受信する手段と、鍵付きハッシュと鍵サーバに格納されている他の鍵付きハッシュとを比較する手段と、鍵付きハッシュが他の格納されている鍵付きハッシュの何れにも一致していないことに応答して、暗号化されたファイル解読鍵、鍵付きハッシュ及びメンバー識別を格納する手段と、暗号化されたファイル解読鍵に対する重複排除システムの第２メンバー装置からのリクエストに応答して、鍵付きハッシュ及びメンバー識別に対応する暗号化されたファイル解読鍵を提供する手段とを有する計算装置を有する。
【００９０】
具体例４９は、具体例４８の主題を含み、第１メンバー装置から受信したフラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを格納する手段を更に有する。
【００９１】
具体例５０は、具体例４８及び４９の何れかの主題を含み、鍵付きハッシュが格納されている鍵付きハッシュに一致することに応答して、メンバー識別と格納されている暗号化されたファイル解読鍵及び鍵付きハッシュとを関連付ける手段を更に有し、暗号化されたファイル解読鍵を提供する手段は、第２メンバー装置のメンバー識別が暗号化されたファイル解読鍵の許可されたメンバー識別のリストにあると判断したことに応答したものである。
【図１】
0006306077.tif 000002
【図２】
0006306077.tif 000003
【図３】
0006306077.tif 000004
【図４】
0006306077.tif 000005
【図５】
0006306077.tif 000006
【図６】
0006306077.tif 000007
【図７】
0006306077.tif 000008
【図８】
0006306077.tif 000009