特許第6306077号(P6306077)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル コーポレイションの特許一覧

特許6306077暗号化データのコミュニティベース重複排除
<>
  • 特許6306077-暗号化データのコミュニティベース重複排除 図000002
  • 特許6306077-暗号化データのコミュニティベース重複排除 図000003
  • 特許6306077-暗号化データのコミュニティベース重複排除 図000004
  • 特許6306077-暗号化データのコミュニティベース重複排除 図000005
  • 特許6306077-暗号化データのコミュニティベース重複排除 図000006
  • 特許6306077-暗号化データのコミュニティベース重複排除 図000007
  • 特許6306077-暗号化データのコミュニティベース重複排除 図000008
  • 特許6306077-暗号化データのコミュニティベース重複排除 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6306077
(24)【登録日】2018年3月16日
(45)【発行日】2018年4月4日
(54)【発明の名称】暗号化データのコミュニティベース重複排除
(51)【国際特許分類】
   G06F 12/00 20060101AFI20180326BHJP
   G06F 21/60 20130101ALI20180326BHJP
   G06F 21/62 20130101ALI20180326BHJP
   H04L 9/14 20060101ALI20180326BHJP
【FI】
   G06F12/00 510B
   G06F12/00 514Z
   G06F12/00 537H
   G06F21/60 320
   G06F21/62 318
   H04L9/00 641
【請求項の数】22
【外国語出願】
【全頁数】25
(21)【出願番号】特願2016-75734(P2016-75734)
(22)【出願日】2016年4月5日
(62)【分割の表示】特願2016-500410(P2016-500410)の分割
【原出願日】2014年2月26日
(65)【公開番号】特開2016-154033(P2016-154033A)
(43)【公開日】2016年8月25日
【審査請求日】2016年4月5日
(31)【優先権主張番号】13/799,318
(32)【優先日】2013年3月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ナイシュタット,アレックス
(72)【発明者】
【氏名】ベン−シャロム,オメル
(72)【発明者】
【氏名】ヨシイ,テリー エイチ.
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特表2009−535704(JP,A)
【文献】 米国特許第05990810(US,A)
【文献】 特開2004−180141(JP,A)
【文献】 特開2011−170707(JP,A)
【文献】 特開2010−072900(JP,A)
【文献】 米国特許出願公開第2009/0313483(US,A1)
【文献】 米国特許第08117464(US,B1)
【文献】 国際公開第2012/158654(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 21/60
G06F 21/62
H04L 9/14
(57)【特許請求の範囲】
【請求項1】
ブロック重複排除のためのシステムであって、
1つ以上のプロセッサと、
複数の命令を格納した1つ以上のメモリと、
を有し、
前記複数の命令は、前記1つ以上のプロセッサによって実行されると、
要求元エンティティの識別情報及びフラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップと、
前記ブロックが前記システムによって記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップと、
前記ブロックの暗号化バージョンにアクセスするための前記要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記要求元エンティティの識別情報を記憶するステップと、
第2の要求元エンティティの第2の識別情報及び前記フラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記第2の要求元エンティティの第2の識別情報の特定に応答して、前記ブロックの暗号化ハッシュに基づき前記ブロックが前記システムにより記憶されていると判断するステップと、
前記ブロックが前記システムによって記憶されているという判断に応答して、前記ブロックの暗号化バージョンにアクセスするための前記第2の要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記第2の要求元エンティティの第2の識別情報を記憶するステップと、
を前記1つ以上のプロセッサに実行させるシステム。
【請求項2】
前記ブロックが前記システムにより記憶されているか判断するステップは、前記ブロックの暗号化ハッシュと前記システムにより記憶されているブロックの暗号化ハッシュとを比較するステップを含む、請求項1記載のシステム。
【請求項3】
前記ブロックの暗号化バージョンを特定するステップは、前記フラグメント化されたファイルの各ブロックについて、前記要求元エンティティから前記ブロックの暗号化バージョンを特定するステップを含み、
前記ブロックが記憶されているか判断するステップは、前記フラグメント化されたファイルの各ブロックについて、前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップを含み、
前記ブロックの暗号化バージョンを記憶するステップは、前記フラグメント化された各ブロックについて、前記ブロックが前記システムにより記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップを含む、請求項1記載のシステム。
【請求項4】
前記複数の命令は更に、
前記暗号化されたブロックに対する前記第2の要求元エンティティからのリクエストに応答して、前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップと、
前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているという判断に応答して、前記ブロックの暗号化バージョンを前記第2の要求元エンティティに提供するステップと、
を前記1つ以上のプロセッサに更に実行させる、請求項1記載のシステム。
【請求項5】
前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第2の要求元エンティティの第2の識別情報が前記ブロックの暗号化バージョンに関連するか判断するステップを含む、請求項4記載のシステム。
【請求項6】
前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第2の要求元エンティティの第2の識別情報と前記ブロックの暗号化バージョンの許可デバイス識別情報のオーナシップリストとを比較するステップを含む、請求項5記載のシステム。
【請求項7】
前記要求元エンティティの識別情報を特定するステップは、計算装置の識別情報を特定するステップを含む、請求項1記載のシステム。
【請求項8】
要求元エンティティの識別情報及びフラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記ブロックが前記ブロックの暗号化ハッシュに基づきシステムにより記憶されているか判断するステップと、
前記ブロックが前記システムによって記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップと、
前記ブロックの暗号化バージョンにアクセスするための前記要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記要求元エンティティの識別情報を記憶するステップと、
第2の要求元エンティティの第2の識別情報及び前記フラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記第2の要求元エンティティの第2の識別情報の特定に応答して、前記ブロックの暗号化ハッシュに基づき前記ブロックが前記システムにより記憶されていると判断するステップと、
前記ブロックが前記システムによって記憶されているという判断に応答して、前記ブロックの暗号化バージョンにアクセスするための前記第2の要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記第2の要求元エンティティの第2の識別情報を記憶するステップと、
コンピュータシステムにおけるプロセッサに実行させるプログラム。
【請求項9】
前記ブロックが前記システムにより記憶されているか判断するステップは、前記ブロックの暗号化ハッシュと前記システムにより記憶されたブロックの暗号化ハッシュとを比較するステップを含む、請求項8記載のプログラム。
【請求項10】
前記ブロックの暗号化バージョンを特定するステップは、前記フラグメント化されたファイルの各ブロックについて、前記要求元エンティティから前記ブロックの暗号化バージョンを特定するステップを含み、
前記ブロックが記憶されているか判断するステップは、前記フラグメント化されたファイルの各ブロックについて、前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップを含み、
前記ブロックの暗号化バージョンを記憶するステップは、前記フラグメント化された各ブロックについて、前記ブロックが前記システムにより記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップを含む、請求項8記載のプログラム。
【請求項11】
前記暗号化されたブロックに対する前記第2の要求元エンティティからのリクエストに応答して、前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップと、
前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているという判断に応答して、前記ブロックの暗号化バージョンを前記第2の要求元エンティティに提供するステップと、
を前記プロセッサに更に実行させる、請求項8記載のプログラム。
【請求項12】
前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第2の要求元エンティティの第2の識別情報が前記ブロックの暗号化バージョンに関連するか判断するステップを含む、請求項11記載のプログラム。
【請求項13】
前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第2の要求元エンティティの第2の識別情報と前記ブロックの暗号化バージョンの許可デバイス識別情報のオーナシップリストとを比較するステップを含む、請求項12記載のプログラム。
【請求項14】
前記要求元エンティティの識別情報を特定するステップは、計算装置の識別情報を特定するステップを含む、請求項8記載のプログラム。
【請求項15】
コンピュータシステムにおけるプロセッサによって実現されるブロック重複排除のための方法であって、
前記プロセッサが、要求元エンティティの識別情報及びフラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記プロセッサが、前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップと、
前記プロセッサが、前記ブロックが前記システムによって記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップと、
前記プロセッサが、前記ブロックの暗号化バージョンにアクセスするための前記要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記要求元エンティティの識別情報を記憶するステップと、
前記プロセッサが、第2の要求元エンティティの第2の識別情報及び前記フラグメント化されたファイルのブロックの暗号化バージョンを特定するステップと、
前記プロセッサが、前記第2の要求元エンティティの第2の識別情報の特定に応答して、前記ブロックの暗号化ハッシュに基づき前記ブロックが前記システムにより記憶されていると判断するステップと、
前記プロセッサが、前記ブロックが前記システムによって記憶されているという判断に応答して、前記ブロックの暗号化バージョンにアクセスするための前記第2の要求元エンティティの許可として、前記ブロックの暗号化バージョンに関連して前記第2の要求元エンティティの第2の識別情報を記憶するステップと、
を有する方法。
【請求項16】
前記ブロックが前記システムにより記憶されているか判断するステップは、前記ブロックの暗号化ハッシュと前記システムにより記憶されているブロックの暗号化ハッシュとを比較するステップを含む、請求項15記載の方法。
【請求項17】
前記ブロックの暗号化バージョンを特定するステップは、前記フラグメント化されたファイルの各ブロックについて、前記要求元エンティティから前記ブロックの暗号化バージョンを特定するステップを含み、
前記ブロックが記憶されているか判断するステップは、前記フラグメント化されたファイルの各ブロックについて、前記ブロックが前記ブロックの暗号化ハッシュに基づき前記システムにより記憶されているか判断するステップを含み、
前記ブロックの暗号化バージョンを記憶するステップは、前記フラグメント化されたファイルの各ブロックについて、前記ブロックが前記システムにより記憶されていないという判断に応答して、前記ブロックの暗号化バージョンを記憶するステップを含む、請求項15記載の方法。
【請求項18】
前記プロセッサが、前記暗号化されたブロックに対する前記第2の要求元エンティティからのリクエストに応答して、前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップと、
前記プロセッサが、前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているという判断に応答して、前記ブロックの暗号化バージョンを前記第2の要求元エンティティに提供するステップと、
を更に有する、請求項15記載の方法。
【請求項19】
前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第2の要求元エンティティの第2の識別情報が前記ブロックの暗号化バージョンに関連するか判断するステップを含む、請求項18記載の方法。
【請求項20】
前記第2の要求元エンティティが前記ブロックの暗号化バージョンにアクセスすることが許可されているか判断するステップは、前記第2の要求元エンティティの第2の識別情報と前記ブロックの暗号化バージョンの許可デバイス識別情報のオーナシップリストとを比較するステップを含む、請求項19記載の方法。
【請求項21】
前記要求元エンティティの識別情報を特定するステップは、計算装置の識別情報を特定するステップを含む、請求項15記載の方法。
【請求項22】
請求項8乃至14何れか一項記載のプログラムを記憶するためのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
今日の社会では、大量のデータが計算装置間で伝送され、毎日格納される。また、計算の様々な面において不要なオーバヘッド量を減少させるための努力がある。例えば、データ重複排除は、大量のデータがある場所に格納されるとき(例えば、バックアップシステムとして)、ストレージの消費を有意に減少させる処理である。データ重複排除は、開発者が大きな冗長なデータブロックを、データブロックの単一のコピーへの比較的小さなリファレンスポイントに置換することを可能にする。
【0002】
多くの実現形態では、格納されたデータは暗号化されるか、又はセキュアな方法により格納されうる。暗号化及びハッシュアルゴリズムは、デジタルデータのセキュアな送信及び格納を可能にする。暗号化アルゴリズムは、理想的には、擬似ランダムに見えるデータを生成し、異なる暗号鍵により暗号化された同一のデータは、大きく異なる暗号化データを生じさせるべきである。また、典型的なデータ重複排除は、異なる暗号鍵により暗号化されたデータによっては機能しない。
【図面の簡単な説明】
【0003】
ここに説明されるコンセプトは、添付した図面において限定でなく具体例により示される。図示の簡単化のため、図面に示される要素は必ずしもスケーリングして図示されるとは限らない。適切であると考えられる場合、リファレンスラベルは対応する又は同様の要素を示すため図面間で繰り返されている。
図1図1は、暗号化データの重複排除のためのシステムの少なくとも1つの実施例の簡単化されたブロック図である。
図2図2は、図1のシステムの計算装置の環境の少なくとも1つの実施例の簡単化されたブロック図である。
図3図3は、図1のシステムの計算装置を利用してコンテンツデータサーバにコンテンツを格納する方法の少なくとも1つの実施例の簡単化されたフロー図である。
図4図4は、図1のシステムの計算装置を利用してコンテンツデータサーバからコンテンツを抽出する方法の少なくとも1つの実施例の簡単化されたフロー図である。
図5図5は、図1のシステムのコンテンツデータサーバの暗号化されたコンテンツを重複排除する方法の少なくとも1つの実施例の簡単化されたフロー図である。
図6図6は、図1のシステムの鍵サーバの暗号鍵を重複排除する方法の少なくとも1つの実施例の簡単化されたフロー図である。
図7図7は、図1のシステムのコンテンツデータサーバのリクエストされたコンテンツを提供する方法の少なくとも1つの実施例の簡単化されたフロー図である。
図8図8は、図1のシステムの鍵サーバのリクエストされたキーを提供する方法の少なくとも1つの実施例の簡単化されたフロー図である。
【発明を実施するための形態】
【0004】
本開示のコンセプトは各種の改良及び代替的形態を許容するが、それの特定の実施例が図面において具体例により示され、ここで詳細に説明される。しかしながら、本開示のコンセプトを開示された特定の形態に限定することを意図するものでなく、他方、当該意図が本開示及び添付した請求項に整合する全ての改良、均等及び代替をカバーすることであることが理解されるべきである。
【0005】
“一実施例”、“実施例”、“例示的な実施例”などの明細書における参照は、説明される実施例が特定の特徴、構成又は特性を含むものであってもよいが、全ての実施例は当該特定の特徴、構成又は特性を含むものであってもよいし、又は必ずしも含まなくてもよい。さらに、このようなフレーズは必ずしも同一の実施例を参照しているとは限らない。さらに、特定の特徴、構成又は特性が実施例に関して説明されるとき、明示的に説明されているか、又はいないかに関わらず、このような特徴、構成又は特性を他の実施例に関して実施することは当業者の知識の範囲内であることが主張される。
【0006】
開示された実施例は、いくつかのケースでは、ハードウェア、ファームウェア、ソフトウェア又はこれらの何れかの組み合わせにより実現されてもよい。開示された実施例はまた、1以上のプロセッサにより読み込まれて実行されうる一時的又は非一時的なマシーン可読(例えば、コンピュータ可読)記憶媒体により担持又は格納される命令として実現されてもよい。マシーン可読記憶媒体は、マシーンにより可読な形態により情報を格納又は送信するための何れかの記憶装置、機構又は他の物理的構成として実現されてもよい(例えば、揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス)。
【0007】
図面において、いくつかの構成又は方法の特徴は、特定の配置及び/又は順序づけにより示されうる。しかしながら、このような特定の配置及び/又は順序づけは必要とされなくてもよいことが理解されるべきである。むしろ、いくつかの実施例では、このような特徴は図示された図面に示されるものと異なる方法及び/又は順序により配置されてもよい。さらに、特定の図面に構成又は方法の特徴を含めることは、当該特徴が全ての実施例において必要とされることを含意すること意図しておらず、一部の実施例では、含まれなくてもよく、又は他の特徴と組み合わされてもよい。
【0008】
ここで図1を参照して、暗号化されたデータの重複排除のためのシステム100は、1以上の計算装置102、ネットワーク104、コンテンツデータサーバ106及び鍵サーバ108を含む。使用中、以下でより詳細に説明されるように、計算装置102はコンテンツデータサーバ106からの暗号化されたデータを格納及び/又は抽出してもよい。さらに、コンテンツデータサーバ106及び鍵サーバ108は、格納されている暗号化データを重複排除するため、順次機能する。1つのネットワーク104、1つのコンテンツデータサーバ106及び1つの鍵サーバ108しか図1において例示的に示されていないが、システム100は、何れかの個数のネットワーク104、コンテンツデータサーバ106及び鍵サーバ108を有してもよい。さらに、図示されるように、システム100は、1つ、2つ又はより多くの計算装置102を有してもよい。いくつかの実施例では、計算装置102は、コミュニティ(例えば、企業、ビジネスユニット、家族又は他の集合的なエンティティ)におけるメンバー装置(又は単に“メンバー”)として実現される。コミュニティのメンバーシップは、実現形態に依存して各種方法により確立されてもよい。例えば、いくつかの実施例では、コンテンツデータサーバ106及び/又は鍵サーバ108は、何れの計算装置102がコミュニティのメンバーであるか判断する。他の実施例では、ホワイトリスト及び/又はブラックリストが、メンバーシップを判断する際に決定されてもよい(例えば、コンテンツデータサーバ106及び/又は鍵サーバ108によって)。後述されるように、コミュニティにおけるメンバーの計算装置102は、重複排除システム100において利用されるコミュニティ暗号鍵を共有する。
【0009】
各計算装置102は、コンテンツデータサーバ106及び鍵サーバ108との通信リンクを確立し、ここに説明される機能を実行可能な何れかのタイプの計算装置として実現されてもよい。例えば、計算装置102は、携帯電話、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、PDA(Personal Digital Assistant)、モバイルインターネット装置、デスクトップコンピュータ、サーバ及び/又は他の何れかの計算/通信装置として実現されてもよい。いくつかの実施例では、計算装置102は、暗号化機器(例えば、特定の装置でなくクラウドプロバイダにバックアップするため組織により利用される機器)として実現されてもよい。図1に示されるように、例示的な計算装置102は、プロセッサ110、入出力(“I/O”)サブシステム112、メモリ114、通信回路118、1以上の周辺装置120、データストレージ122及びセキュリティエンジン124を含む。もちろん、計算装置102は、他の実施例では、典型的な計算装置(例えば、各種入出力装置)において通常見受けられるものなどの他の又は追加的なコンポーネントを有してもよい。さらに、いくつかの実施例では、例示的なコンポーネントの1以上は、他のコンポーネントに搭載されてもよいし、又は一部からのものであってもよい。例えば、メモリ114又はその一部は、いくつかの実施例では、プロセッサ110に搭載されてもよい。他の実施例では、セキュリティエンジン124は、通信回路118に搭載されてもよい。
【0010】
プロセッサ110は、ここに説明される機能を実行可能な何れかのタイプのプロセッサとして実現されてもよい。例えば、プロセッサは、シングル若しくはマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ又は他のプロセッサ若しくは処理/制御回路として実現されてもよい。同様に、メモリ114は、ここに説明される機能を実行可能な何れかのタイプの揮発性若しくは不揮発性メモリ又はデータストレージとして実現されてもよい。処理において、メモリ114は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ及びドライバなどの計算装置102の実行中に利用される各種データ及びソフトウェアを格納してもよい。いくつかの実施例では、メモリ114はセキュアメモリ116を含む。セキュアメモリ116は、例えば、メモリ114のセキュアパーティションなどであってもよいし、又はメモリ114から独立してもよい。さらに、セキュアメモリ116は、プライベート又はセキュアな暗号鍵を格納してもよい。メモリ114は、プロセッサ110、メモリ114及び計算装置102の他のコンポーネントとの入出力処理を実行するための回路及び/又はコンポーネントして実現されてもよいI/Oサブシステム112を介しプロセッサ110に通信接続される。例えば、I/Oサブシステム112は、メモリコントローラハブ、入出力制御ハブ、ファームウェア装置、通信リンク(すなわち、ポイント・ツー・ポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、印刷回路ボードトレースなど)及び/又は入出力処理を実行するための他のコンポーネント及びサブシステムとして実現されてもよいし、又は有してもよい。いくつかの実施例では、I/Oサブシステム112は、システム・オン・チップ(SoC)の一部を構成し、プロセッサ110、メモリ114及び計算装置102の他のコンポーネントと共に、単一の集積回路チップ上に搭載されてもよい。
【0011】
計算装置102の通信回路118は、ネットワーク104を介し計算装置102と他のリモート装置(例えば、コンテンツデータサーバ106及び鍵サーバ108)との間の通信を有効にすることを可能にする何れかの通信回路、装置又はこれらの集まりとして実現されてもよい。通信回路118は、何れか1以上の通信技術(例えば、無線又は有線通信)及び当該通信を実行するための関連するプロトコルを利用するよう構成されてもよい。いくつかの実施例では、通信回路118は、ネットワークインタフェースカード(NIC)として実現される。さらに、いくつかの実施例では、ここに説明される機能の1以上は、通信回路118又はNICにオフロードされてもよい。
【0012】
計算装置102の周辺装置120は、何れかの個数の追加的な周辺又はインタフェース装置を有してもよい。周辺装置120に含まれる特定の装置は、例えば、計算装置102のタイプ及び/又は意図された利用などに依存してもよい。データストレージ122は、例えば、メモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライバ又は他のデータストレージ装置などの短期又は長期のデータの格納のため構成される何れかのタイプのデバイスとして実現されてもよい。
【0013】
セキュリティエンジン124は、以下でより詳細に説明されるように、計算装置102の各種セキュリティ及び暗号機能を実行するよう構成される。セキュリティエンジン124は、プロセッサ110から分離したセキュリティコプロセッサ又は同様のデバイスとして実現されてもよい。当該実施例では、セキュリティエンジン124は、プロセッサ110に対してアウト・オブ・バンド方式により動作してもよい(例えば、セキュリティエンジン124は、プロセッサ110の電力状態から独立して、リモート装置との通信を含めて動作してもよい)。他の実施例では、セキュリティエンジン124は、プロセッサ110又はスタンドアローン暗号化ソフトウェア/ファームウェアに搭載される暗号化アクセラレータとして実現されてもよいし、又は含んでもよい。さらに、セキュリティエンジン124及び/又は通信回路118は、標準的な認証を実行し、リモート装置と制御プロトコルにアクセスするよう構成されてもよい。
【0014】
ネットワーク104は、何れかの個数の各種の有線及び/又は無線通信ネットワークとして実現されてもよい。また、ネットワーク104は、1以上のネットワーク、ルータ、スイッチ、コンピュータ及び/又は他の介入する装置を有してもよい。例えば、ネットワーク104は、1以上のセルラネットワーク、電話ネットワーク、ローカル若しくはワイドエリアネットワーク、公衆に利用可能なグローバルネットワーク(例えば、インターネット)又はこれらの何れかの組み合わせとして実現されてもよいし、又は有してもよい。
【0015】
コンテンツデータサーバ106及び鍵サーバ108はそれぞれ、ここに説明される機能を実行可能な何れかのタイプの計算装置又はサーバとして実現されてもよい。例えば、いくつかの実施例では、コンテンツデータサーバ106及び/又は鍵サーバ108は、上述された計算装置102と同様であってもよい。すなわち、コンテンツデータサーバ106及び鍵サーバ108は、企業レベルサーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、PDA、モバイルインターネット装置、及び/又は他の何れかの計算/通信装置として実現されてもよい。さらに、コンテンツデータサーバ106及び/又は鍵サーバ108は、上述された計算装置102のものと同様のコンポーネントを有してもよい。計算装置102のこれらのコンポーネントの説明は、コンテンツデータサーバ106及び鍵サーバ108のコンポーネントの説明に等しく適用可能であり、説明の簡略化のためここでは繰り返されない。さらに、コンテンツデータサーバ106及び/又は鍵サーバ108は、計算装置102を参照して上述されず、説明の簡単化のためここでは説明されない計算装置又はサーバに通常見受けられる他のコンポーネント、サブコンポーネント及びデバイスを含むものであってもよいことが理解されるべきである。
【0016】
図1に示されるように、例示的なコンテンツデータサーバ106は、暗号化されたブロック150、ハッシュ処理されたブロック152及びメンバー識別(ID)154を有する。さらに、鍵サーバ108は、解読鍵156、ハッシュ処理されたブロック152及びメンバー識別154を有する。以下で詳細に説明されるように、計算装置102は、システム100に格納されるべきファイルのブロックのハッシュを暗号化及び生成し、暗号化されたブロック150及びハッシュ処理されたブロック152の双方をコンテンツデータサーバ106に送信してもよい。さらに、いくつかの実施例では、コミュニティにおける各メンバー計算装置102は、コンテンツデータサーバ106と鍵サーバ108との双方に送信される一意的なメンバー識別を有する。以下でより詳細に説明されるように、各計算装置102はまた、データブロックを暗号化するのに利用されうるファイル暗号鍵及び解読鍵を有する。いくつかの実施例では、ファイル解読鍵はまた鍵サーバ108に送信される。
【0017】
以下でより詳細に説明されるように、システム100は、暗号化により与えられるセキュリティとデータ重複排除により提供される利益との間のバランスを可能にする。システム100は、コミュニティメンバー間の信頼関係を確立し、未認証又は所望されないデータエクスポージャの最小限のリスクによって、コミュニティによるコンテンツの重複排除を可能にする。
【0018】
図2を参照して、使用中に、システム100の各計算装置102は、コンテンツデータサーバ106にコンテンツを格納し、コンテンツデータサーバ106からコンテンツを抽出する環境200を確立する。例示的な実施例における環境200は、ファイル管理モジュール202、暗号化モジュール204、通信モジュール206及びセキュアメモリ116を有する。ファイル管理モジュール202、暗号化モジュール204及び通信モジュール206のそれぞれは、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせとして実現されてもよい。
【0019】
ファイル管理モジュール202は、ファイルの分解、再構成、圧縮、解凍及び他のファイル管理機能を実行する。例えば、ファイル管理モジュール202は、コンテンツデータサーバ106に格納される所与のファイル(例えば、デジタルファイル)を1以上のブロック又はチャンクにフラグメント化又は分割する。ファイルは、例えば、デジタルファイル、プログラム若しくはアプリケーション、コード若しくはデータのアトミック部分又は他の適したデータ構造として実現されてもよい。いくつかの実施例では、ファイル管理モジュール202は、ファイルを固定長のブロックにフラグメント化するよう構成され、他の実施例では、ファイル管理モジュール202は、ファイルを可変長のブロックにフラグメント化してもよい。固定長のブロックの場合、ブロックサイズは計算装置102及び/又はコンテンツデータサーバ106によって決定される規格に従うものであってもよい。さらに、ファイル管理モジュール202は、フラグメント化されたブロックをファイルに以降に合成(すなわち、フラグメント化の逆)するよう構成される。ブロックの適切な合成又は再構成を実行するため、ファイルがフラグメント化されると、ファイル管理モジュール202は、元のファイルに関連するブロックのリストを生成してもよい。例えば、一実施例では、ファイル管理モジュール202は、ファイルをブロックX,Y及びZにフラグメント化してもよく、これらは計算装置102102のメモリの非隣接セクション及び/又はコンテンツデータサーバ106に経時的に格納されてもよい。また、ブロックのリストは、再構成のため、ファイルに関連するブロック及びそれらの正しい順序を特定するための機構を提供する。例示的な実施例では、ブロックのリストは、ファイルに属するブロックの鍵付きハッシュのリストを含み、他の情報(例えば、それらの順序)を含むものであってもよい。後述されるように、計算装置102は各ブロックを暗号化する。従って、他の実施例では、リストは暗号化されたブロック及び/又は暗号化されていないブロックに関するものであってもよい。
【0020】
暗号化モジュール204は、セキュリティ及び暗号化手順を実行する。いくつかの実施例では、暗号化モジュール204は、セキュアメモリ116(例えば、メンバーキー208、コミュニティキー210及びファイルキー212)に格納される暗号鍵にアクセスしてもよい。さらに、暗号化モジュール204は、各種ファイルブロックを暗号化及び/又は解読するため、暗号鍵(すなわち、ファイルキー212)を生成してもよい。いくつかの実施例では、暗号化モジュール204は、暗号化される各ファイルのための別のファイルキー212(又は非対称鍵が利用される場合には別の暗号鍵ペア)を“オン・ザ・フライ(on the fly)”に生成する。例えば、暗号化モジュール204は、ファイル暗号鍵212を利用して、フラグメント化されたファイルの各ブロックを暗号化し、メンバー暗号鍵208を利用してファイル管理モジュール202により生成されたブロックのリストを暗号化する。もちろん、暗号化モジュール204はまた解読手順を実行してもよい。各メンバー鍵208は、コミュニティの特定のメンバー(すなわち、特定の計算装置102)に特に関連する暗号鍵として実現される。コミュニティ鍵210は、システム100の各計算装置102により共有される(すなわち、コミュニティのメンバーによって共有される)暗号鍵である。例えば、企業環境における計算装置102は、同じコミュニティのメンバーであってもよく、従って、同じコミュニティ鍵210を共有してもよい。もちろん、単一の計算装置102は、複数のコミュニティのメンバーであってもよく、また、いくつかの実施例では、複数のコミュニティ鍵210を維持してもよい。さらに、各種実施例では、メンバー鍵208及びコミュニティ鍵210のそれぞれは対称的又は非対称的な暗号鍵であってもよいことが理解されるべきである。もちろん、対称暗号化アルゴリズムが利用される場合、暗号化及び解読暗号鍵は同じ鍵である。また、ファイル鍵、メンバー鍵208及び/又はコミュニティ鍵210は、対称暗号化が利用される場合、当該鍵は同一の鍵であってもよいという理解によって、“暗号化”又は“解読”鍵として後述されることもある。
【0021】
さらに、暗号化モジュール204は、コミュニティ鍵210を利用して各ブロックの鍵付きハッシュを生成するよう構成される。何れか適切なハッシュ関数及び鍵処理方法が利用されてもよい。例えば、各種実施例では、セキュア・ハッシュ・アルゴリズム(例えば、SHA−0,SHA−1,SHA−2,SHA−3)又はメッセージ・ダイジェスト・アルゴリズム(例えば、MD5)がハッシュ関数として利用されてもよい。鍵付きハッシュは、例えば、データブロック及びコミュニティ鍵210に関する処理を実行し、当該処理の結果をハッシュ関数に入力することによって生成されてもよい。例えば、一実施例では、鍵付きハッシュは、コミュニティ鍵210をデータブロックに連結又は添付し、当該連結処理の結果をハッシュ関数入力として利用することによって生成されてもよい。他の実施例では、排他的論理和(すなわち、XOR)演算が、データをハッシュ処理する前にデータブロック及びコミュニティ鍵に適用されてもよい。更なる実施例では、メッセージ認証コード(MAC)アルゴリズムが、各ブロックの鍵付きハッシュを生成するのに利用されてもよい。もちろん、コミュニティ鍵210に基づき鍵付きハッシュを生成する何れか適切な方法が利用されてもよい。
【0022】
メンバー鍵208及びコミュニティ鍵210が何れか適切な鍵配布機構を介し計算装置102に配布されてもよいことが理解されるべきである。一実施例では、鍵配布サーバ(例えば、コンテンツデータサーバ106、鍵サーバ108又は他の鍵サーバ)又はオラクルが、鍵を配布するのに利用されてもよい。他の実施例では、カンファレンス鍵配布システムが、例えば、コミュニティ鍵210を確立するのに利用されてもよい。いくつかの実施例では、ファイル鍵212がまた、鍵配布サーバから計算装置102に配布されてもよい。
【0023】
通信モジュール206は、ネットワーク104を介し計算装置102とリモート装置(例えば、コンテンツデータサーバ106及び鍵サーバ108)との間の通信を処理する。例えば、いくつかの実施例では、通信モジュール206は、計算装置102とリモート装置との間のセキュア及び/非セキュアな通信を処理する。上述されるように、いくつかの実施例では、通信モジュール206は、プロセッサ110の電力状態に関わらず、セキュリティエンジン124のための当該通信を実行してもよい。
【0024】
図3を参照して、使用中に、システム100の各計算装置102は、コンテンツをコンテンツデータサーバ106に格納する方法300を実行してもよい。例えば、計算装置102は、安全な維持及び以降の抽出のため、コンテンツをコンテンツデータサーバ106に格納してもよい(例えば、データが計算装置102において消失又は破壊された場合)。例示的な方法300は、計算装置102がコンテンツデータサーバ106に格納されるファイルを特定し、当該ファイルをブロックにフラグメント化するブロック302から開始される。上述されるように、計算装置102は、ブロック長/サイズがコンテンツデータサーバ106により決定される固定長のブロックにファイルを分割してもよい。ブロック304において、計算装置102は、共有されるコミュニティ鍵210を利用して、各ブロックの鍵付きハッシュを生成する。上述されるように、コミュニティ鍵210がハッシュ関数に対する鍵として利用される限り、鍵付きハッシュを生成するのに適した何れかの機構が実現されてもよい。
【0025】
ブロック306において、計算装置102は、ファイル暗号鍵212を生成し、ファイルと共に利用するため選択された計算装置102のファイル暗号鍵212を利用して各ブロックを暗号化する。上述されるように、いくつかの実施例では、計算装置102は、各ファイルブロックを暗号化するため、ファイル暗号鍵212(及び非対称暗号化のケースでは解読鍵)を“オン・ザ・フライ”に生成する。もちろん、他の実施例では、ファイル暗号鍵212は、以前に生成されたファイル暗号鍵212のセットから選択されてもよいし、又は鍵配布サーバから受信されてもよい。計算装置102は、ブロック306においてフラグメント化されたファイルに属するブロックのリストを生成する。例示的な実施例では、当該リストはハッシュ処理されたブロック(すなわち、ブロック304の出力)を特定する。上述されるように、いくつかの実施例では、ブロックのリストは、何れのブロックがフラグメント化されたファイルに関連するかと、解読されるとブロックが合成(すなわち、一緒になって置かれる)されるべき順序とを示す情報を含む。他の実施例では、生成されたリストは、ハッシュ処理されたブロックでなく、暗号化されていないブロック又は暗号化されたブロックを特定する。にも関わらず、ブロック310において、計算装置102は、それのメンバー暗号鍵208によりリストを暗号化する。いくつかの実施例では、計算装置102はまた、ブロック312において、追加的なセキュリティのため、ファイル解読鍵をそれのメンバー暗号鍵208により暗号化する。
【0026】
ブロック314において、計算装置102は、暗号化されたブロック、各ブロックの鍵付きハッシュ及び計算装置102のメンバー識別をコンテンツデータサーバ106に送信する。さらに、ブロック316において、計算装置102は、各ブロックの鍵付きハッシュ、計算装置102のファイル解読鍵212及び計算装置102のメンバー識別を鍵サーバ108に送信する。上述されるように、いくつかの実施例では、鍵サーバ108に送信されるファイル解読鍵212は更に、計算装置102のメンバー暗号鍵208により暗号化される。もちろん、効率性を向上させるため、計算装置102は、複数のブロックについて上記の情報を同時に送信してもよい。さらに、上述された方法及びシステムのいくつかの実施例は、他のメンバーが暗号化されたファイル解読鍵を解読するのに利用可能であるという予想などのため、高性能のパーティ(例えば、ビジネス及び組織)によってのみ実現されてもよい。あまり高性能でないパーティは、いくつかの実施例では、ファイル解読鍵を更に暗号化することなく、開示された技術を実現してもよい。
【0027】
後述されるように、コンテンツデータサーバ106及び鍵サーバ108は、特定の暗号化されたブロック及びファイル解読鍵212を格納すべき、又は計算装置102のメンバーIDをすでに格納されている鍵付きハッシュと関連付けるか判断するため、重複排除方法を実行する(例えば、特定のブロックの鍵付きハッシュがすでに格納されている鍵付きハッシュに一致する場合)。特定の実現形態に依存して(例えば、何れの装置が何れのタイプのデータを格納するか)、ブロック318において、計算装置102は、ファイルに関連するブロックの暗号化されたリストをコンテンツデータサーバ106及び/又は鍵サーバ108に送信する。もちろん、いくつかの実施例では、ここに説明されるものと同様の方法が、データの暗号化前にクライアントサイドの重複排除を実現するのに利用されてもよい。
【0028】
図4を参照して、使用中に、システム100の各計算装置102は、コンテンツデータサーバ106からコンテンツを抽出する方法400を実行してもよい。当該方法400は、計算装置102がファイルがリクエストされたか判断するブロック402から開始される。いくつかの実施例では、計算装置102は、コンテンツデータサーバ106に以前に格納されたファイルしか抽出できないことが理解されるべきである。計算装置102は、コンテンツデータサーバ106からのファイルをリクエストした場合、ブロック404において、計算装置102は、コンテンツデータサーバ106からのリクエストされたファイルに関連又は対応するブロックの暗号化されたリストを受信する。もちろん、計算装置102は、リストがローカルに格納され、データが消失していない実施例では、メモリ114又はデータストレージ122からリストを抽出してもよい(例えば、損傷又は自然災害のため)。計算装置102がブロック306においてフラグメント化されたファイルの暗号化されていないブロックしか特定しないリストを生成する実施例では(図3を参照)、コンテンツデータサーバ106は、暗号化されたブロックが最初のインスタンスにおいて計算装置102の1つから受信されるとき、各ファイルに関連する暗号化されたブロックのリストを生成してもよい。ブロック406において、計算装置102は、それのメンバー解読鍵208を利用してブロックのリストを解読する。上述されたように、ブロックのリストから、計算装置102は、何れのブロックが所望されるファイルと関連しているか判断することができる。
【0029】
ブロック408において、計算装置102は、所望のファイルに関連するブロックがリクエストされたか判断する。計算装置102が所望のファイルに関連するデータブロックをリクエストした場合、ブロック410において、計算装置102は、対応する暗号化されたブロック、鍵付きハッシュ及びメンバーID(すなわち、コンテンツデータサーバ106に暗号化された各ブロックを格納した計算装置102のメンバーID)をコンテンツデータサーバ106から受信する。後述されるように、コンテンツデータサーバ106は、具体的な鍵付きハッシュ及びメンバーIDを暗号化されたブロックに関連付ける。同様に、鍵サーバ108は、具体的な鍵付きハッシュ及びメンバーIDを特定のファイル解読鍵212と関連付ける。ブロック412において、計算装置102は、鍵サーバ108からの暗号化された各ブロックに関連するファイル解読鍵212をリクエストする。これを行う際、計算装置102は、ブロック414において、コンテンツデータサーバ1065から受信されるようなリクエストされた各ブロックについて、鍵付きハッシュ及びメンバーIDを鍵サーバ108に提供する。上述されたように、コンテンツデータサーバ106に格納される各ブロックは、計算装置102の1つにより生成されるファイル暗号鍵212を利用して暗号化されている。また、対応するファイル解読鍵212は、暗号化されたブロックを解読するのに利用されてもよい。上述されるように、ファイル暗号鍵212及びファイル解読鍵212は、対称暗号化が利用される場合、同じ鍵となりうる。いくつかの実施例では、計算装置102は、対応するファイル解読鍵212をリクエストする際、鍵付きハッシュしか鍵サーバ108に送信しない。
【0030】
上述されるように、いくつかの実施例では、ファイル解読鍵212は更に、暗号化されたブロックをコンテンツデータサーバ106に最初に格納した計算装置102のメンバー暗号鍵208により暗号化される(図3のブロック310を参照)。このような実施例では、ファイル解読鍵の何れかが異なる計算装置102のメンバー暗号鍵208により暗号化される場合(すなわち、重複排除のため)、暗号化されたブロックにアクセスした計算装置102は、当該他の計算装置102のメンバー解読鍵208なしにそれを解読することはできず、従って、ファイルブロックを解読することができない。また、計算装置102は、ブロック416において、暗号化されたファイル解読鍵を解読する際に、対応するメンバー装置からの支援をリクエストしてもよい。一実施例では、計算装置102は、暗号化されたファイル解読鍵212を対応するメンバー装置に送信し、メンバー装置は、メンバーのプライベートメンバー解読鍵208を利用して暗号化されたファイル解読鍵212を解読し、メンバー装置は、暗号化されたファイルブロックを解読する際に利用するため、解読されたファイル解読鍵212を計算装置102に送信する。もちろん、計算装置102は、暗号化されたファイル解読鍵212の解読されたバージョンを転送するよう対応するメンバー装置にリクエストしてもよい。
【0031】
ブロック418において、計算装置102は、鍵サーバ108から受信した対応するファイル解読鍵212を利用して暗号化された各ブロックを解読する。上述されるように、ファイル解読鍵212が更にメンバー暗号鍵208によって暗号化される実施例では、計算装置102は、暗号化されたブロックを解読するためファイル解読鍵212を利用するために、対応するメンバー解読鍵208を利用してファイル解読鍵212を解読しなければならない。暗号化されたブロックが最初に計算装置102によりコンテンツデータサーバ106に格納された場合、ファイル解読鍵212は、計算装置102のメンバー暗号鍵208により暗号化されたものであるであろう。これらの状況では、計算装置102は、単にそれ自身のメンバー解読鍵208を利用して、ファイル解読鍵212を解読してもよい。しかしながら、いくつかの実施例では、ファイル解読鍵212は、計算装置102以外のメンバー装置のメンバー暗号鍵208により暗号化されたものであってもよい。また、計算装置102は、当該メンバー装置からファイル解読鍵212の解読されたバージョンをリクエストしてもよい(例えば、メンバー装置による解読のため暗号化されたファイル解読鍵212を送信することによって)。
【0032】
さらに、いくつかの実施例では、計算装置102は、ブロック420において、解読されたブロックのインテグリティを検証してもよい。これを実行するため、計算装置102は、コミュニティ鍵210を利用して、解読された各ブロックの鍵付きハッシュ(すなわち、リファレンス鍵付きハッシュ)を生成する。それから、計算装置102は、ブロック410において、生成された鍵付きハッシュとコンテンツデータサーバ106から受信した鍵付きハッシュとを比較する。これらの鍵付きハッシュが一致した場合、解読されたデータブロックは真正であり、変更されていない。ブロック422において、計算装置102は、解読されたブロックを合成して再構成された所望のファイルを取得する。
【0033】
図5を参照して、使用中に、コンテンツデータサーバ106は、暗号化されたコンテンツを重複排除する方法500を実行してもよい。方法500は、コンテンツデータサーバ106が、メンバー装置102がコンテンツデータサーバ106に格納するためファイル情報を送信したか判断する。いくつかの実施例では、コンテンツデータサーバ106は、計算装置102が暗号化されたブロックをコンテンツデータサーバ106に格納することが必要とされた適切な情報を供給したか判断する(すなわち、暗号化されたブロック、関連する鍵付きハッシュ、関連するメンバーID及びおそらく暗号化されたリスト)。上述されたように、メンバー装置102は、ファイルをブロックにフラグメント化し、ファイルの各ブロックを暗号化する。ファイル情報が受信された場合、ブロック504において、コンテンツデータサーバ106は、ファイルの次の暗号化されたブロック、関連する鍵付きハッシュ及びメンバーIDにアクセスする。
【0034】
ブロック506において、コンテンツデータサーバ106は、受信した鍵付きハッシュと他の格納されている鍵付きハッシュ(すなわち、コンテンツデータサーバ106に格納されている)とを比較する。ブロック508において、一致が検出されない場合、コンテンツデータサーバ106は、ブロック510において、受信した暗号化されたブロック、鍵付きハッシュ及びメンバーIDをコンテンツデータサーバ106に格納する。いくつかの実施例では、コンテンツデータサーバ106はまた、鍵付きハッシュ、メンバーID及び暗号化されたブロックを互いに関連付ける。しかしながら、ブロック508において、一致が検出された場合、コンテンツデータサーバ106は、ブロック512において、計算装置102のメンバーIDと既存の暗号化されたブロック及び鍵付きハッシュ(すなわち、一致した鍵付きハッシュ)とを関連付ける。すなわち、いくつかの実施例では、コンテンツデータサーバ106は、何れのメンバーが特定の鍵付きハッシュに関連する暗号化されたブロックを格納したか、又は格納することを試みたか(例えば、これらのメンバーのメンバーIDを利用して)追跡する(例えば、リスト又は他のトラッキング機構を利用して)。
【0035】
すなわち、コンテンツデータサーバ106にすでに格納された一致した鍵付きハッシュがない場合に限って、受信した暗号化されたブロック、鍵付きハッシュ及びメンバーIDが格納される。一致した鍵付きハッシュがコンテンツデータサーバ106にすでに格納されている場合、重複排除機構が利用される。鍵付きハッシュが一致しているため、暗号化されていないブロックが同一である可能性が優勢である。また、重複情報を格納するのでなく、コンテンツデータサーバ106は、計算装置102のメンバーIDをすでに格納されている暗号化されたブロック及び鍵付きハッシュに関連付けるか、又はマッピングする。このような例では、格納されている暗号化されたブロックは、異なる計算装置102のメンバー暗号鍵208を利用して暗号化される(すなわち、コンテンツデータサーバ106に最初に暗号化されたブロックを格納した計算装置により生成されるファイル暗号鍵212)。暗号化されたブロックを最初に格納したメンバーのメンバーIDが、何れのメンバーがここに説明されるようなファイル解読鍵212を解読するため適切なメンバー解読鍵208に対応するか特定するため必要とされる。コンテンツデータサーバ106は、鍵付きハッシュ、暗号化されたブロック及びメンバーIDを互いに編成又は関連付けるのに適した何れかのデータ構造(例えば、テーブル)を利用してもよい。
【0036】
ブロック514において、コンテンツデータサーバ106は、更なる暗号化されたブロックが残っているか判断する。すなわち、コンテンツデータサーバ106は、ファイル情報において特定される暗号化された各ブロックに関連する鍵付きハッシュが、ファイルを送信したメンバー装置102から格納されたか、又は他のメンバー装置102のファイルストレージからコンテンツデータサーバ106に以前に格納されたか判断する。更なる暗号化されたデータが残っている場合、方法500は、コンテンツデータサーバ106がファイルの次の暗号化されたブロック、鍵付きハッシュ及びメンバーIDを抽出するブロック504に戻る。しかしながら、コンテンツデータサーバ106が、ブロック514において、ファイル情報において特定された暗号化されたブロックの全てがコンテンツデータサーバ106に格納されたと判断した場合、コンテンツデータサーバ106は、ブロック516において、ブロックのリストを格納する。ここに説明される方法は、コンテンツデータサーバ106が格納用のファイルに関するブロックの一部しか受信していない実施例に等しく適用されることが理解されるべきである。
【0037】
図6を参照して、使用中に、鍵サーバ108は暗号鍵を重複排除する方法600を実行してもよい。方法600は、鍵サーバ108が計算装置102から鍵付きハッシュ、メンバーID及びファイル解読鍵212が受信されたか判断するブロック602から開始される。受信されている場合、鍵サーバ108に鍵を格納するための必須情報が送信され、鍵サーバ108は、ブロック604において、受信した鍵付きハッシュと鍵サーバ108に格納されている他の鍵付きハッシュとを比較する。
【0038】
方法500と同様に、ブロック606において、受信した鍵付きハッシュと格納されている鍵付きハッシュの1つの間に一致(すなわち、それらが同一のハッシュである)が検出されなかった場合、鍵サーバ108は、ブロック608において、受信した鍵付きハッシュ、ファイル解読鍵212及びメンバーIDを鍵サーバ108に格納し、各受信情報を互いに関連付ける。しかしながら、ブロック606において、一致が検出された場合、鍵サーバ108は、いくつかの実施例では、ブロック610において、重複した情報を格納するのでなく、計算装置102のメンバーIDと既存のファイル解読鍵212及び鍵付きハッシュ(すなわち、一致した鍵付きハッシュ)とを関連付けてもよい。他の実施例では、一致の場合、鍵サーバ108には何も格納されない。鍵サーバ108は何れか適切なデータ構造を利用して、鍵付きハッシュ、メンバーID及びファイル解読鍵を互いに編成又は関連付けてもよいことが理解されるべきである。
【0039】
図7を参照して、使用中に、コンテンツデータサーバ106は、リクエストされたコンテンツを計算装置102に提供する方法700を実行してもよい。方法700は、コンテンツデータサーバ106が計算装置102の1つがコンテンツデータサーバ106からのコンテンツをリクエストしたか判断するブロック702から開始される。そうである場合、コンテンツデータサーバ106は、ブロック704において、計算装置102がリクエストされたコンテンツ(すなわち、リクエストされた暗号化されたブロック)にアクセスすることが認められていることを検証する。これを実行する際、いくつかの実施例では、コンテンツデータサーバ106は、ブロック706において、計算装置102のメンバーIDと、リクエストされた暗号化された各ブロックの関連するメンバーIDのリストとを比較する。上述されたように、いくつかの実施例では、コンテンツデータサーバ106は、暗号化された各ブロックについて、コンテンツデータサーバ106に対応する鍵付きハッシュを格納したか、又は格納することを試みた各メンバー装置のメンバーIDのリストを維持する。また、リストは、何れの計算装置102が暗号化されたブロックに関連する解読されたデータの以前の“オーナシップ”を有したか示す。もちろん、他の実施例では、特定のメンバーが暗号化されたブロックにアクセスすることが認められているか判断するための手段が利用されてもよい。例えば、いくつかの実施例では、標準的な認証及びアクセス制御プロトコルが実行されてもよい(例えば、ブロック702の前に)。ブロック708において、コンテンツデータサーバ106は、アクセスが許可されるか判断する。許可される場合、コンテンツデータサーバ106は、ブロック710において、リクエストされた暗号化されたブロック、リクエストされた暗号化されたブロックに関連する鍵付きハッシュ及びリクエストされた暗号化されたブロックに関連するメンバーIDを要求元の計算装置102(すなわち、メンバー装置)に送信又は提供する。もちろん、ブロックをコンテンツデータサーバ106に最初に送信した計算装置102と異なる計算装置102が、特定のデータブロックをリクエストすることができる。
【0040】
図8を参照して、使用中に、鍵サーバ108は、リクエストされた鍵を計算装置102に提供する方法800を実行してもよい。方法800は、鍵サーバ108が計算装置102の1つが鍵サーバ108からリクエストされたファイル解読鍵212を有しているか判断するブロック802から開始される。そうである場合、鍵サーバ108は、ブロック804において、所望のファイル解読鍵212に関連する鍵付きハッシュ及びメンバーIDを受信する。ブロック806において、鍵サーバ108は、提供された鍵付きハッシュ及びメンバーIDに関連するリクエストされたファイル解読鍵212を要求元の計算装置102(すなわち、メンバー装置)に送信又は提供する。さらに、いくつかの実施例では、鍵サーバ108は、要求元の計算装置102がリクエストされたファイル解読鍵212にアクセスすることが認められていることを検証するため、コンテンツデータサーバ106のものと同様の方法を実行する(図7のブロック704を参照)。上述されたように、要求元の計算装置102は、暗号化されたデータブロックを解読するため、コンテンツデータサーバ106から受信した暗号化されたブロックにファイル解読鍵212を適用してもよい。解読されたブロックは、それから、所望のファイルを生成するため再構成されてもよい。もちろん、ファイル解読鍵212が更にメンバー暗号鍵208により暗号化される実施例では、計算装置102は、これらのメンバー装置のメンバーIDを利用して、それらの対応するメンバー解読鍵208をリクエストしてもよい。
【0041】
具体例
ここに開示された技術の例示的な具体例が以下に与えられる。技術の実施例は、後述される具体例の何れか1以上及び何れかの組み合わせを含むものであってもよい。
【0042】
具体例1は、データ重複排除システムにおけるコンテンツデータサーバにコンテンツを格納する計算装置であって、(i)計算装置により生成されたファイル暗号鍵を利用してフラグメント化されたファイルの各ブロックを暗号化し、(ii)コミュニティ鍵を利用して各ブロックの鍵付きハッシュを生成し、(iii)計算装置のメンバー暗号鍵を利用してファイル解読鍵を暗号化する暗号化モジュールと、暗号化された各ブロック、各ブロックの鍵付きハッシュ及び計算装置を特定するメンバー識別をコンテンツデータサーバに送信し、各ブロックの鍵付きハッシュ、暗号化されたファイル解読鍵及びメンバー識別を鍵サーバに送信する通信モジュールと、を有する計算装置を有する。
【0043】
具体例2は、具体例1の主題を含み、フラグメント化されたファイルの各ブロックを生成するため、計算装置のファイルをフラグメント化するファイル管理モジュールを更に有する。
【0044】
具体例3は、具体例1及び2の何れの主題を含み、フラグメント化されたファイルに属する各ブロックに関連する各鍵付きハッシュのリストを生成するファイル管理モジュールを更に有する。
【0045】
具体例4は、具体例1〜3の何れかの主題を含み、暗号化モジュールは、メンバー暗号鍵を利用してリストを暗号化し、通信モジュールは、コンテンツデータサーバ及び鍵サーバの少なくとも1つに前記暗号化されたリストを送信する。
【0046】
具体例5は、具体例1〜4の何れかの主題を含み、鍵付きハッシュは鍵付きセキュア・ハッシュ・アルゴリズム(SHA)を有する。
【0047】
具体例6は、ファイル暗号鍵及びファイル解読鍵は、同一の対称的暗号鍵である。
【0048】
具体例7は、データ重複排除システムにおけるコンテンツデータサーバからコンテンツを抽出する計算装置であって、コンテンツデータサーバから、(i)フラグメント化されたファイルの暗号化されたブロック、(ii)暗号化された各ブロックに関連する鍵付きハッシュ、及び(iii)コンテンツデータサーバに対応する暗号化されたブロックを以前に格納した計算装置を特定する暗号化された各ブロックのメンバー識別を受信し、対応する暗号化された各ブロックに関連する鍵付きハッシュ及びメンバー識別を鍵サーバに送信したことに応答して、鍵サーバから暗号化された各ブロックの暗号化されたファイル解読鍵を受信し、当該計算装置以外の他のメンバー装置に対応するメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵を、他のメンバー装置のメンバー解読鍵による解読のため他のメンバー装置に送信し、他のメンバー装置から、他のメンバー装置のメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵に対応する解読されたファイル解読鍵を受信する通信モジュールと、(i)当該計算装置の対応するメンバー解読鍵により計算装置のメンバー暗号鍵により暗号化された各ファイル解読鍵を解読し、(ii)対応する暗号化された各ブロックに関連する解読されたファイル解読鍵を利用して暗号化された各ブロックを解読する暗号化モジュールとを有する計算装置を有する。
【0049】
具体例8は、具体例7の主題を含み、通信モジュールは、フラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを受信し、暗号化モジュールは、当該計算装置のメンバー解読鍵を利用して暗号化されたリストを解読する。
【0050】
具体例9は、具体例7及び8の主題を含み、解読されたリストに基づき解読されたブロックを合成することによってファイルを生成するファイル管理モジュールを更に有する。
【0051】
具体例10は、具体例7〜9の何れかの主題を含み、暗号化モジュールは、コミュニティ鍵を利用して解読された各ブロックのリファレンス鍵付きハッシュを生成し、解読された各ブロックのリファレンス鍵付きハッシュと、暗号化された各ブロックに関連する受信した鍵付きハッシュとを比較し、各ブロックのインテグリティを検証する。
【0052】
具体例11は、データ重複排除システムにおけるコンテンツデータサーバにコンテンツを格納する方法であって、計算装置によって、計算装置により生成されたファイル暗号鍵を利用してフラグメント化されたファイルの各ブロックを暗号化するステップと、計算装置上で、コミュニティ鍵を利用して各ブロックの鍵付きハッシュを生成するステップと、計算装置上で、計算装置のメンバー暗号鍵を利用してファイル解読鍵を暗号化するステップと、計算装置から、(i)暗号化された各ブロック、(ii)各ブロックの鍵付きハッシュ及び(iii)計算装置を特定するメンバー識別をコンテンツデータサーバに送信するステップと、計算装置から、(i)各ブロックの鍵付きハッシュ、(ii)暗号化されたファイル解読鍵及び(iii)メンバー識別を鍵サーバに送信するステップと、を有する方法を有する。
【0053】
具体例12は、具体例11の主題を含み、計算装置上で、計算装置のファイルをフラグメント化し、フラグメント化されたファイルの各ブロックを生成するステップを更に有する。
【0054】
具体例13は、具体例11及び12の何れかの主題を含み、計算装置上で、フラグメント化されたファイルに属する各ブロックに関連する各鍵付きハッシュのリストを生成するステップを更に有する。
【0055】
具体例14は、具体例11〜13の何れかの主題を含み、計算装置上で、メンバー暗号鍵を利用してリストを暗号化するステップと、計算装置から、暗号化されたリストをコンテンツデータサーバ及び鍵サーバの少なくとも1つに送信するステップとを更に有する。
【0056】
具体例15は、具体例11〜14の何れかの主題を含み、鍵付きハッシュを生成するステップは、コミュニティ鍵を利用して各ブロックの鍵付きセキュア・ハッシュ・アルゴリズム(SHA)を生成することを含む。
【0057】
具体例16は、具体例11〜15の何れかの主題を含み、ファイル暗号鍵及びファイル解読鍵は、同一の対称的な暗号鍵である。
【0058】
具体例17は、プロセッサと、プロセッサにより実行されると、計算装置に具体例11〜16の何れかの方法を実行させる複数の命令を格納したメモリとを有する計算装置を有する。
【0059】
具体例18は、実行されることに応答して、計算装置に具体例11〜16の何れかの方法を実行させる複数の命令を格納した1以上のマシーン可読記憶媒体を有する。
【0060】
具体例19は、データ重複排除システムにおけるコンテンツデータサーバからコンテンツを抽出する方法であって、計算装置によって、コンテンツデータサーバから、(i)フラグメント化されたファイルの暗号化されたブロック、(ii)暗号化された各ブロックに関連する鍵付きハッシュ、及び(iii)コンテンツデータサーバに対応する暗号化されたブロックを以前に格納した計算装置を特定する暗号化された各ブロックのメンバー識別を受信するステップと、計算装置によって、対応する暗号化された各ブロックに関連する鍵付きハッシュ及びメンバー識別を鍵サーバに送信したことに応答して、鍵サーバから暗号化された各ブロックの暗号化されたファイル解読鍵を受信するステップと、計算装置によって、計算装置以外の他のメンバー装置に対応するメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵を、他のメンバー装置のメンバー解読鍵により解読するため他のメンバー装置に送信するステップと、計算装置によって、他のメンバー装置から、他のメンバー装置のメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵に対応する解読されたファイル解読鍵を受信するステップと、計算装置上で、計算装置のメンバー暗号鍵により暗号化された各ファイル解読鍵を計算装置の対応するメンバー解読鍵により解読するステップと、計算装置上で、対応する暗号化された各ブロックに関連する解読されたファイル解読鍵を利用して暗号化された各ブロックを解読するステップとを有する方法を有する。
【0061】
具体例20は、具体例19の主題を含み、計算装置によって、フラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを受信するステップと、計算装置上で、計算装置のメンバー解読鍵を利用して暗号化されたリストを解読するステップとを更に有する。
【0062】
具体例21は、具体例19及び20の何れかの主題を含み、解読されたリストに基づき解読されたブロックを合成することによってファイルを生成するステップを更に有する。
【0063】
具体例22は、具体例19〜21の何れかの主題を含み、計算装置上で、コミュニティ鍵を利用して解読された各ブロックのリファレンス鍵付きハッシュを生成するステップと、計算装置によって、解読された各ブロックのリファレンス鍵付きハッシュと暗号化された各ブロックに関連する受信した鍵付きハッシュとを比較し、各ブロックのインテグリティを検証するステップとを更に有する。
【0064】
具体例23は、プロセッサと、プロセッサにより実行されると、計算装置に具体例19〜22の何れかの方法を実行させる複数の命令を格納したメモリとを有する計算装置を有する。
【0065】
具体例24は、実行されることに応答して、計算装置に具体例19〜22の何れかの方法を実行させる複数の命令を格納した1以上のマシーン可読記憶媒体を有する。
【0066】
具体例25は、データ重複排除システムのコンテンツデータサーバ上の暗号化されたコンテンツを重複排除する方法を有し、コンテンツデータサーバにより、(i)フラグメント化されたファイルのブロックの鍵付きハッシュ、(ii)ブロックの暗号化されたバージョン、及び(iii)重複排除システムの第1メンバー装置からのメンバー識別であって、第1メンバー装置を識別するメンバー識別を受信するステップと、コンテンツデータサーバ上で、鍵付きハッシュとコンテンツデータサーバに格納されている他の鍵付きハッシュとを比較するステップと、鍵付きハッシュが他の格納されている鍵付きハッシュの何れにも一致しなかったことに応答して、コンテンツデータサーバ上で、暗号化されたブロック、鍵付きハッシュ及びメンバー識別を格納するステップと、鍵付きハッシュが格納されている鍵付きハッシュに一致したことに応答して、コンテンツデータサーバ上で、メンバー識別と格納されている暗号化されたブロック及び鍵付きハッシュとを関連付けるステップと、コンテンツデータサーバ上で、暗号化されたブロックに対する第2メンバー装置からのリクエストに応答して、重複排除システムの第2メンバー装置が暗号化されたブロックにアクセスすることが許可されているか判断するステップと、第2メンバー装置が暗号化されたブロックにアクセスすることが許可されていると判断したことに応答して、コンテンツデータサーバにより、暗号化されたブロック、鍵付きハッシュ及びメンバー識別を提供するステップと有する方法を有する。
【0067】
具体例26は、具体例25の主題を含み、第1メンバー装置から受信したフラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを格納するステップを更に有する。
【0068】
具体例27は、具体例25及び26の何れかの主題を含み、第2メンバー装置が暗号化されたブロックにアクセスすることが許可されているか判断するステップは、第2メンバー装置のメンバー識別と暗号化されたブロックの許可されたメンバー識別のリストとを比較することを含む。
【0069】
具体例28は、プロセッサと、プロセッサにより実行されると、計算装置に具体例25〜27の何れかの方法を実行させる複数の命令を格納したメモリとを有する計算装置を有する。
【0070】
具体例29は、実行されることに応答して、計算装置に具体例25〜27の何れかの方法を実行させる複数の命令を格納した1以上のマシーン可読記憶媒体を有する。
【0071】
具体例30は、データ重複排除システムの鍵サーバ上の暗号鍵を重複排除する方法であって、鍵サーバにより、重複排除システムの第1メンバー装置から、(i)第1メンバー装置のメンバー暗号鍵により暗号化されたファイル解読鍵、(ii)鍵付きハッシュ、及び(iii)重複排除システムの第1メンバー装置からのメンバー識別であって、第1メンバー装置を特定するメンバー識別を受信するステップと、鍵サーバ上で、鍵付きハッシュと鍵サーバに格納されている他の鍵付きハッシュとを比較するステップと、鍵付きハッシュが他の格納されている鍵付きハッシュの何れにも一致していないことに応答して、鍵サーバ上で、暗号化されたファイル解読鍵、鍵付きハッシュ及びメンバー識別を格納するステップと、暗号化されたファイル解読鍵に対する重複排除システムの第2メンバー装置からのリクエストに応答して、鍵サーバにより、鍵付きハッシュ及びメンバー識別に対応する暗号化されたファイル解読鍵を提供するステップとを有する方法を有する。
【0072】
具体例31は、具体例30の主題を含み、第1メンバー装置から受信したフラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを格納するステップを更に有する。
【0073】
具体例32は、具体例30及び31の何れかの主題を含み、鍵付きハッシュが格納されている鍵付きハッシュに一致することに応答して、鍵サーバ上で、メンバー識別と格納されている暗号化されたファイル解読鍵及び鍵付きハッシュとを関連付けるステップを更に有し、暗号化されたファイル解読鍵を提供するステップは、第2メンバー装置のメンバー識別が暗号化されたファイル解読鍵の許可されたメンバー識別のリストにあると判断したことに応答したものである。
【0074】
具体例33は、プロセッサと、プロセッサにより実行されると、計算装置に具体例30〜32の何れかの方法を実行させる複数の命令を格納したメモリとを有する計算装置を有する。
【0075】
具体例34は、実行されることに応答して、計算装置に具体例30〜32の何れかの方法を実行させる複数の命令を格納した1以上のマシーン可読記憶媒体を有する。
【0076】
具体例35は、データ重複排除システムにおけるコンテンツデータサーバにコンテンツを格納する計算装置であって、当該計算装置により生成されたファイル暗号鍵を利用してフラグメント化されたファイルの各ブロックを暗号化する手段と、コミュニティ鍵を利用して各ブロックの鍵付きハッシュを生成する手段と、当該計算装置のメンバー暗号鍵を利用してファイル解読鍵を暗号化する手段と、(i)暗号化された各ブロック、(ii)各ブロックの鍵付きハッシュ、及び(iii)当該計算装置を特定するメンバー識別をコンテンツデータサーバに送信する手段と、(i)各ブロックの鍵付きハッシュ、(ii)暗号化されたファイル解読鍵、(iii)メンバー識別を鍵サーバに送信する手段とを有する計算装置を有する。
【0077】
具体例36は、具体例35の主題を含み、当該計算装置のファイルをフラグメント化し、フラグメント化された各ブロックを生成する手段を更に有する。
【0078】
具体例37は、具体例35及び36の何れかの主題を含み、フラグメント化されたファイルに属する各ブロックに関連する各鍵付きハッシュのリストを生成する手段を更に有する。
【0079】
具体例38は、具体例35〜37の何れかの主題を含み、メンバー暗号鍵を利用してリストを暗号化する手段と、暗号化されたリストをコンテンツデータサーバ及び鍵サーバの少なくとも1つに送信する手段とを更に有する。
【0080】
具体例39は、具体例35〜38の何れかの主題を含み、鍵付きハッシュを生成する手段は、コミュニティ鍵を利用して各ブロックの鍵付きセキュア・ハッシュ・アルゴリズム(SHA)を生成する手段を有する。
【0081】
具体例40は、具体例35〜38の何れかの主題を含み、ファイル暗号鍵及びファイル解読鍵は、同一の対称的な暗号鍵である。
【0082】
具体例41は、データ重複排除システムにおけるコンテンツデータサーバからコンテンツを抽出する計算装置であって、コンテンツデータサーバから、(i)フラグメント化されたファイルの暗号化されたブロック、(ii)暗号化された各ブロックに関連する鍵付きハッシュ、及び(iii)コンテンツデータサーバに対応する暗号化されたブロックを以前に格納した計算装置を特定する暗号化された各ブロックのメンバー識別を受信する手段と、対応する各暗号化されたブロックに関連する鍵付きハッシュ及びメンバー識別を鍵サーバに送信したことに応答して、鍵サーバから暗号化された各ブロックの暗号化されたファイル解読鍵を受信する手段と、計算装置以外の他の計算装置に対応するメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵を、他のメンバー装置のメンバー解読鍵により解読するため他のメンバー装置に送信する手段と、他のメンバー装置から、他のメンバー装置のメンバー暗号鍵により暗号化された受信した暗号化された各ファイル解読鍵に対応する解読されたファイル解読鍵を受信する手段と、計算装置のメンバー暗号鍵により暗号化された各ファイル解読鍵を、計算装置の対応するメンバー解読鍵により解読する手段と、対応する暗号化された各ブロックに関連する解読されたファイル解読鍵を利用して暗号化された各ブロックを解読する手段とを有する計算装置を有する。
【0083】
具体例42は、具体例41の主題を含み、フラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを受信する手段と、当該計算装置のメンバー解読鍵を利用して暗号化されたリストを解読する手段とを更に有する。
【0084】
具体例43は、具体例41及び42の何れかの主題を含み、解読されたリストに基づき解読されたブロックを合成することによってファイルを生成する手段を更に有する。
【0085】
具体例44は、具体例41〜43の何れかの主題を含み、コミュニティ鍵を利用して解読された各ブロックのリファレンス鍵付きハッシュを生成する手段と、解読された各ブロックのリファレンス鍵付きハッシュと、暗号化された各ブロックに関連する受信した鍵付きハッシュとを比較し、各ブロックのインテグリティを検証する手段を更に有する。
【0086】
具体例45は、暗号化されたコンテンツを重複排除する重複排除システムの計算装置であって、(i)フラグメント化されたファイルのブロックの鍵付きハッシュ、(ii)ブロックの暗号化されたバージョン、及び(iii)重複排除システムの第1メンバー装置からのメンバー識別であって、第1メンバー装置を識別するメンバー識別を受信する手段と、鍵付きハッシュとコンテンツデータサーバに格納されている他の鍵付きハッシュとを比較する手段と、鍵付きハッシュが他の格納されている鍵付きハッシュの何れにも一致しなかったことに応答して、暗号化されたブロック、鍵付きハッシュ及びメンバー識別を格納する手段と、鍵付きハッシュが格納されている鍵付きハッシュに一致したことに応答して、メンバー識別と格納されている暗号化されたブロック及び鍵付きハッシュとを関連付ける手段と、暗号化されたブロックに対する第2メンバー装置からのリクエストに応答して、重複排除システムの第2メンバー装置が暗号化されたブロックにアクセスすることが許可されているか判断する手段と、第2メンバー装置が暗号化されたブロックにアクセスすることが許可されていると判断したことに応答して、暗号化されたブロック、鍵付きハッシュ及びメンバー識別を提供する手段と有する計算装置を有する。
【0087】
具体例46は、具体例45の主題を含み、第1メンバー装置から受信したフラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを格納する手段を更に有する。
【0088】
具体例47は、具体例45及び46の何れかの主題を含み、第2メンバー装置が暗号化されたブロックにアクセスすることが許可されているか判断する手段は、第2メンバー装置のメンバー識別と暗号化されたブロックの許可されたメンバー識別のリストとを比較することを含む。
【0089】
具体例48は、暗号鍵を重複排除するデータ重複排除システムの計算装置であって、重複排除システムの第1メンバー装置から、(i)第1メンバー装置のメンバー暗号鍵により暗号化されたファイル解読鍵、(ii)鍵付きハッシュ、及び(iii)重複排除システムの第1メンバー装置からのメンバー識別であって、第1メンバー装置を特定するメンバー識別を受信する手段と、鍵付きハッシュと鍵サーバに格納されている他の鍵付きハッシュとを比較する手段と、鍵付きハッシュが他の格納されている鍵付きハッシュの何れにも一致していないことに応答して、暗号化されたファイル解読鍵、鍵付きハッシュ及びメンバー識別を格納する手段と、暗号化されたファイル解読鍵に対する重複排除システムの第2メンバー装置からのリクエストに応答して、鍵付きハッシュ及びメンバー識別に対応する暗号化されたファイル解読鍵を提供する手段とを有する計算装置を有する。
【0090】
具体例49は、具体例48の主題を含み、第1メンバー装置から受信したフラグメント化されたファイルの暗号化された各ブロックに関連する各鍵付きハッシュの暗号化されたリストを格納する手段を更に有する。
【0091】
具体例50は、具体例48及び49の何れかの主題を含み、鍵付きハッシュが格納されている鍵付きハッシュに一致することに応答して、メンバー識別と格納されている暗号化されたファイル解読鍵及び鍵付きハッシュとを関連付ける手段を更に有し、暗号化されたファイル解読鍵を提供する手段は、第2メンバー装置のメンバー識別が暗号化されたファイル解読鍵の許可されたメンバー識別のリストにあると判断したことに応答したものである。
図1
図2
図3
図4
図5
図6
図7
図8