(57)【要約】  バックアップファイルをセキュアに分散させる段階は、格納されるファイルを識別する段階と、複数のファイルチャンクをファイルから生成する段階と、複数のファイルチャンクのそれぞれを複数の格納場所のうち１つに第１のデバイスから送信する段階と、第１のデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成する段階とを含む。分散バックアップファイルを取得する段階は、ファイルを取得する要求を受信する段階と、ファイルに対応するマップを取得する段階であって、マップはファイルの複数のファイルチャンクのそれぞれの格納場所を識別する、取得する段階と、識別された複数の場所から複数のファイルチャンクを取得する段階と、複数のファイルチャンクを結合することで要求されたファイルを生成する段階を含む。
2017522651.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令が格納された機械可読媒体であって、実行された場合に機械に、
格納されたファイルを識別させ、
前記ファイルから複数のファイルチャンクを生成するようハードウェアモジュールに命令させ、前記複数のファイルチャンクのうち１つ又は複数は暗号化され、
前記複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つに第１のデバイスから送信させ、
前記第１のデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成させる、
複数の命令を備える、
機械可読媒体。
【請求項２】
前記ハードウェアモジュールはセキュアなメモリを有する、
請求項１に記載の機械可読媒体。
【請求項３】
前記複数の独立したストレージシステムはローカルデバイスを有する、
請求項１に記載の機械可読媒体。
【請求項４】
実行された場合に前記機械に、
それぞれの暗号化されたファイルチャンクの暗号化データを前記マップに格納させる複数の命令を更に備える、
請求項１から３の何れか一項に記載の機械可読媒体。
【請求項５】
前記複数のファイルチャンクは、第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、前記第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、前記第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される、
請求項１から３の何れか一項に記載の機械可読媒体。
【請求項６】
前記複数のファイルチャンクは、第１のファイルチャンクと第２のファイルチャンクとを含み、前記第１のファイルチャンクと前記第２のファイルチャンクとは異なるサイズである、
請求項１から３の何れか一項に記載の機械可読媒体。
【請求項７】
データを格納するシステムであって、
コンピュータプロセッサと、
前記コンピュータプロセッサに結合されたストレージデバイスと、
を備え、
前記ストレージデバイスは、前記コンピュータプロセッサにより実行された場合に、前記システムに、
格納されたファイルを識別させ、
複数のファイルチャンクを前記ファイルから生成するようハードウェアモジュールに命令させ、前記複数のファイルチャンクのうち１つ又は複数は暗号化され、
前記複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つに第１のデバイスから送信させ、
前記第１のデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成させる、
複数の命令を含む、
システム。
【請求項８】
前記ハードウェアモジュールはセキュアなメモリを有する、
請求項７に記載のシステム。
【請求項９】
前記複数の独立したストレージシステムはローカルデバイスを有する、
請求項７に記載のシステム。
【請求項１０】
前記ストレージデバイスは、実行された場合に機械に、
それぞれの暗号化されたファイルチャンクの暗号化データを前記マップに格納させる複数の命令を更に含む、
請求項７から９の何れか一項に記載のシステム。
【請求項１１】
前記複数のファイルチャンクは、第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、前記第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、前記第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される、
請求項７から９の何れか一項に記載のシステム。
【請求項１２】
前記複数のファイルチャンクは、第１のファイルチャンクと第２のファイルチャンクとを含み、前記第１のファイルチャンクと前記第２のファイルチャンクとは異なるサイズである、
請求項７から９の何れか一項に記載のシステム。
【請求項１３】
データを格納する方法であって、
格納されるファイルをリモートデバイスから受信する段階と、
前記ファイルから複数のファイルチャンクを生成するようハードウェアモジュールに命令する段階であって、前記複数のファイルチャンクのうち１つ又は複数は暗号化される、命令する段階と、前記複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つにローカルデバイスから送信する段階と、
前記ローカルデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成する段階と、
を備える、
方法。
【請求項１４】
前記マップを前記リモートデバイスに送信する段階を更に備える、
請求項１３に記載の方法。
【請求項１５】
前記ファイルの要求を前記リモートデバイスから受信する段階と、
前記ファイルに対応する前記マップを取得する段階と、
識別された前記複数の独立したストレージシステムから前記複数のファイルチャンクを取得する段階と、
前記複数のファイルチャンクのうち少なくとも１つが暗号化されたファイルチャンクであると判断する段階と、
前記暗号化されたファイルチャンクを解読する段階と、
前記複数のファイルチャンクを結合させることで要求された前記ファイルを生成する段階と、
要求された前記ファイルを前記リモートデバイスに送信する段階と、
を更に備える、
請求項１３又は１４に記載の方法。
【請求項１６】
前記ハードウェアモジュールはセキュアなストレージである、
請求項１３から１５の何れか一項に記載の方法。
【請求項１７】
前記複数のファイルチャンクは、第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、前記第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、前記第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される、
請求項１３から１５の何れか一項に記載の方法。
【請求項１８】
前記複数のファイルチャンクは、第１のファイルチャンクと第２のファイルチャンクとを含み、前記第１のファイルチャンクと前記第２のファイルチャンクとは異なるサイズである、
請求項１３から１５の何れか一項に記載の方法。
【請求項１９】
複数の命令が格納された機械可読媒体であって、実行された場合に機械に、
ファイルを取得する要求を受信させ、
前記ファイルに対応マップを取得させ、前記マップは、前記ファイルの複数のファイルチャンクのそれぞれに対応する複数の独立したストレージシステムを識別し、
識別された前記複数の独立したストレージシステムから前記複数のファイルチャンクを取得させ、
前記複数のファイルチャンクのうち少なくとも１つは暗号化されたファイルチャンクであると判断させ、
前記暗号化されたファイルチャンクを解読させ、
前記複数のファイルチャンクを結合させることで要求された前記ファイルを生成するようハードウェアモジュールに命令させる、
複数の命令を備える、
機械可読媒体。
【請求項２０】
前記ハードウェアモジュールはセキュアなメモリである、
請求項１９に記載の機械可読媒体。
【請求項２１】
前記複数の独立したストレージシステムのうち少なくとも１つはローカルデバイスである、
請求項１９に記載の機械可読媒体。
【請求項２２】
前記暗号化されたファイルチャンクを解読する前記複数の命令は、実行された場合に前記機械に、
前記暗号化されたファイルチャンクの暗号情報を前記マップから取得させ、
前記暗号情報を用いて前記暗号化されたファイルチャンクを解読させる、
複数の命令を更に備える、
請求項１９から２１の何れか一項に記載の機械可読媒体。
【請求項２３】
前記複数のファイルチャンクは、異なるサイズの少なくとも第１のチャンクと第２のチャンクとを含む、
請求項１９から２１の何れか一項に記載の機械可読媒体。
【請求項２４】
前記複数のファイルチャンクは、第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、前記第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、前記第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される、
請求項１９から２１の何れか一項に記載の機械可読媒体。
【請求項２５】
実行された場合に前記機械に前記ファイルを生成させる前記複数の命令であって、前記複数の命令は、実行された場合に前記機械に、
前記マップにおいてチャンクメカニズムを識別させ、
前記チャンクメカニズムに基づき、前記複数のファイルチャンクから前記ファイルを生成させる、
複数の命令を有する、
請求項１９に記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に説明される複数の実施形態は概して、パーソナルデバイス及びクラウドデータのセキュアな分散バックアップに関し、より具体的には、ユーザデバイスを用いるとともに、データの暗号化に関する完全な操作をユーザに提供して、任意のデバイス又はサービスに存在するパーソナルクラウドデータをバックアップするためのメカニズムに関する。
【背景技術】
【０００２】
パーソナルクラウドとは、電話、タブレット、又はＰＣなどの多数のデバイス、及び、Ｄｒｏｐｂｏｘ、ソーシャルネットワーク、Ｇｏｏｇｌｅドライブ、ＳｋｙＤｒｉｖｅなどの複数のクラウドサービスに占めるユーザのデータ占有領域である。ユニバーサルシリアルバス（ＵＳＢ）ドライブからクラウドストレージサービスまで、多くの様々なバックアップソリューションが存在する。しかし、これらのソリューションにはいくつかの欠点がある。例えば、クラウドストレージに関しては、それぞれのストレージサービスが、複数のデバイスのそれぞれにインストール及びセットアップされる必要がある別個のアプリケーションを提供する。ユーザがクラウドサービスからファイルを削除する場合、ユーザが代わりのバックアップをどこか他の場所に持たない限り、ファイルを復元することはできない。
【図面の簡単な説明】
【０００３】
【図１】１つ又は複数の実施形態による、プログラム可能なデバイスのネットワークを例示する図である。
【０００４】
【図２】セキュアな分散バックアップデータのシステムを例示する図である。
【０００５】
【図３】セキュア分散バックアップデータの技術を例示するフロー図である。
【０００６】
【図４Ａ】ファイルからデータチャンクを作成する技術を例示するフロー図である。
【０００７】
【図４Ｂ】ファイルからのデータチャンクをストレージに分散する技術を例示するフロー図である。
【０００８】
【図５】分散バックアップからファイルのバックアップにアクセスすることを例示するフロー図である。
【０００９】
【図６】バックアップ作成のアーキテクチャを例示するフロー図である。
【００１０】
【図７】バックアップ取得アーキテクチャを例示するフロー図である。
【００１１】
【図８】１つの実施形態による、本明細書に説明される技術を用いるコンピューティングデバイスを例示する図である。
【００１２】
【図９】別の実施形態による、本明細書に説明される技術を用いるコンピューティングデバイスを例示するブロック図である。
【発明を実施するための形態】
【００１３】
１つ又は複数の実施形態において、本開示は、任意のユーザデバイスを用いるとともに、データの暗号化に関する完全な操作をユーザに提供して、任意のデバイス／サービスに存在する「パーソナルクラウド」データを任意のデバイス／サービスにバックアップするメカニズムを提供する。更に、本バックアップスキームは、攻撃対象領域を減少させ、且つ、ただ１つのクラウドストレージプロバイダへの依存を減少させる。１つ又は複数の実施形態において、ユーザの全ての「パーソナルクラウド」の統一された表示は、任意のデバイスからアクセス可能である。バックアップファイル元は任意のデバイス又はクラウドサービスであり得、バックアップ先は任意のセットのユーザデバイス又はクラウドストレージサービスとして構成され得る。
【００１４】
分散バックアップには多数の利点がある。パーソナルクラウドデータは、多くのデバイス及びサービスに散在していることが多い。これらのバックアップは煩雑且つ非効率であり、ユーザの介在及び複数の手動処置を必要とすることが多い。クラウドストレージは、バックアップ先の自然な選択である。残念ながら、それぞれのストレージサービスは、複数のデバイスのそれぞれにインストール及びセットアップされる必要がある別個のアプリケーションを提供する。クラウドサービスのパーソナルデータは信頼性と保存を提供するが、ユーザの観点からは、これはバックアップではない。つまり、ユーザはクラウドストレージサービスからファイルを削除する場合、ユーザが代わりのバックアップをどこか他の場所に持たない限り、ファイルを復元することはできない。複数のクラウドサービスからのデータのバックアップはシームレスではなく、手動のダウンロード／アップロードなどを必要とすることに留意されたい。複数のクラウドストレージサービスは暗号化規格を向上させてきたが、ユーザは、プライバシーとセキュリティの観点から、ただ１つのクラウドストレージサービスプロバイダに自分のデータを委ねなくてよい。ユーザは、これらのデータに関する操作ができることを望むであろう。デバイスデータの自動バックアップは通常、クラウドストレージサービスにバックアップされるデータを反映する同期フォルダを用いる。このフォルダは攻撃対象領域を増大させる。それは、マルウェアが、クラウドストレージ自体の認証情報を危険にさらすことがなくても、デバイスのクラウドストレージデータを危険にさらし得るからである。ユーザのパーソナルクラウドのバックアップとして、ただ１つのクラウドストレージは、「１つのパスケットに全ての卵を」入れることになるであろう。１つのクラウドストレージの侵害は、全てのユーザデータをリスクにさらすことになるであろう。
【００１５】
以下の説明では、本発明の完全な理解を提供すべく、説明目的のために様々な具体的な詳細が説明される。しかし、当業者には、これらの具体的な詳細なしに本発明が実施され得ることは明らかであろう。他の複数の例において、本発明を不明瞭にすることを回避すべく、構造及び複数のデバイスがブロック図の形態で示される。下付き文字も添字もない数字への参照は、その参照された数字に対応する下付き文字及び添字の全ての例を参照するものと理解される。更に、本開示で用いられる言語は、読みやすさ及び教示的な目的で主に選択されており、本発明の主題を詳述する又は制限する、つまり、そのような本発明の主題を決定するのに必要な特許請求の範囲を用いるよう選択されていなくてもよい。本明細書において、「１つの実施形態」又は「一実施形態」への言及は、これらの実施形態と関連して説明される特定の特徴、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味し、「１つの実施形態」又は「一実施形態」への複数の言及は、必ずしも全てが同一の実施形態を意味していると理解されるべきではない。
【００１６】
本明細書に用いられるとき、用語「パーソナルクラウド」は、多数のデバイス（電話、タブレット、ＰＣ）及びクラウドサービスに占めるユーザデータ占有領域を意味する。
【００１７】
本明細書に用いられるとき、用語「コンピュータシステム」は、コンピュータシステム上で、又はコンピュータシステムによって実行されると説明された機能を実行するただ１つのコンピュータ、又は一緒に動作する複数のコンピュータを意味し得る。
【００１８】
本明細書に用いられるとき、用語「ネットワークデバイス」は、任意のタイプのネットワーク全体にわたって、別のコンピュータシステムと通信することが可能な任意のコンピュータシステムを意味し得る。
【００１９】
図１を参照すると、複数の実施形態が実装され得る例示的なインフラストラクチャ１００が概略的に例示される。インフラストラクチャ１００は複数のコンピュータネットワーク１０２を含む。複数のコンピュータネットワーク１０２は、現在利用可能な多くの異なるタイプのコンピュータネットワーク、例えば、インターネット、企業ネットワーク、又はローカルエリアネットワーク（ＬＡＮ）などを含んでよい。これらのネットワークのそれぞれは、有線又は無線のプログラム可能なデバイスを含み、且つ任意の数のネットワークプロトコル（例えば、ＴＣＰ／ＩＰ）を用いて動作し得る。複数のネットワーク１０２は、複数のゲートウェイ及びルータ（１０８で表される）、複数のエンドユーザのコンピュータ１０６、及び複数のコンピュータサーバ１０４に接続されてよい。インフラストラクチャ１００は、複数のモバイル通信デバイスと共に用いるセルラーネットワーク１０３も含む。複数のモバイルセルラーネットワークは、複数の携帯電話、及び他の多くのタイプのモバイルデバイスをサポートする。インフラストラクチャ１００内の複数のモバイルデバイスは、携帯電話１１０、ラップトップ１１２、及びタブレット１１４として例示されている。携帯電話１１０などのモバイルデバイスは、モバイルデバイスが移動するとき、１つ又は複数のモバイルプロバイダネットワークと情報交換してよく、通常、セルラーネットワーク１０３に接続するために、複数のモバイルネットワークタワー１２０、１３０、及び１４０と情報交換する。図１においてセルラーネットワークと呼ばれているが、モバイルデバイスは、１つより多くのプロバイダネットワークのタワー、並びに、無線アクセスポイント及びルータ１０８などの複数の非セルラデバイスと情報交換してよい。更に、モバイルデバイス１１０、１１２、及び１１４は、コンピュータ１０４及び１０６などの非モバイルデバイスと、複数の所望のサービスのために情報交換してよく、これらのサービスは、アプリケーション、スクリプト、又は複数のウェブページ内のウェブコンテンツをセキュアなエンクレーブモジュールに提供することを含んでよい。ゲートウェイデバイスの機能性は、図１に例示された任意のデバイス又は複数のデバイスの組み合わせに実装されてよい。しかし、最も一般的には、ゲートウェイ又はルータ内のファイアウォール又は侵入保護システムに実装される。
【００２０】
図２は、１つ又は複数の実施形態による、トラステッドネットワークの複数のサービスをプールするシステムを例示する図である。図２に図示されるように、バックアップシステム２００は、メモリ２１０、ストレージ２２０、及びプロセッサ２１５を含む。プロセッサコア２１５は、任意のタイプのプロセッサ、例えば、マイクロプロセッサ、エンベデッドプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、又はコードを実行する他のデバイスなどのコアであってよい。プロセッサコアは、図２のそれぞれのトラステッドデバイスに１つだけしか例示されないが、処理要素は代替的に図２に例示されるプロセッサコア２１５を１つより多く含んでよい。プロセッサコア２１５はそれぞれ、シングルスレッドコアであってよく、又は、少なくとも１つの実施形態では、プロセッサコア２１５が１つより多くのハードウェアスレッドコンテキスト（又は「論理プロセッサ」）をコア毎に含んでよいという点で、プロセッサコア２１５はマルチスレッド化されてよい。
【００２１】
バックアップシステム２００は、プロセッサ２１５に結合されたメモリ２１０を含む。メモリ２１０は、当業者に知られている、又はそうでなければ当業者に利用可能な様々な種類のメモリ（メモリ階層の様々な層を含む）の何れでもよい。バックアップモジュール２３０などのプログラムコード又は複数の命令は、例えば、ストレージデバイス及び／又は関連する機械可読又は機械アクセス可能媒体などの揮発性及び／又は不揮発性メモリに格納されてよい。そのようなメモリは、ソリッドステートメモリ、ハードドライブ、フロッピー（登録商標）ディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、デジタル多用途ディスク（ＤＶＤ）などの他に、機械アクセス可能な生物学的状態保存ストレージなど、より新型の媒体を含む。機械可読媒体は、機械が可読な形態で情報を格納、送信、又は受信する任意のメカニズムを含んでよく、その媒体は有形の非一時的媒体を含んでよく、それを介して、プログラムコードはアンテナ、光ファイバ、通信インターフェースなどを通ってよい。プログラムコードは、パケット、シリアルデータ、パラレルデータなどの形態で送信されてよく、圧縮又は暗号化された形式で用いられてよい。プロセッサコア２１５は、コードで示された複数の命令のプログラムシーケンスに従う。このように、プロセッサコア２１５は、コードを実行する間に変化する。
【００２２】
図２に例示されていないが、処理要素は、プロセッサコア２１５を有するチップ上に他の要素を含んでよい。例えば、処理要素は、プロセッサコアと共にメモリ制御ロジックを含んでよい。処理要素は、Ｉ／Ｏ制御ロジックを含んでよく、及び／又は、メモリ制御ロジックと統合されたＩ／Ｏ制御ロジックを含んでよい。処理要素は、１つ又は複数のキャッシュを含んでもよい。
【００２３】
簡単に言うと、バックアップモジュール２３０は、バックアップされるファイルを複数のデータチャンクに自動で分割するよう構成される。ファイルは、様々なバックアップ元２５０の何れのものであってもよい。これらのデータチャンクは、チャンクメカニズムに応じて、任意のサイズ及び任意の数であってよい。チャンクメカニズムは、ただ１つのファイルから複数のデータチャンクを生成する任意の方法又はデバイスであってよい。次に、複数のデータチャンクは暗号化され、バックアップ先２６０の何れかに格納される。バックアップ先は、ローカルデバイス又はリモートデバイスを含んでよい。１つ又は複数の実施形態において、バックアップ先２６０は、クラウドストレージサービスが提供するストレージデバイスを含んでよい。
【００２４】
バックアップマップ２３５は暗号化され、バックアップシステム２００に格納される。１つ又は複数の実施形態において、バックアップマップは、複数の分散チャンクに基づき、ファイルを取得し再構築する複数の命令を提供する。１つ又は複数の実施形態において、バックアップマップは、複数のチャンクのそれぞれの場所を含んでよく、複数のチャンクをそれぞれの場所から取得するのに必要な情報、例えば、チャンクをホストするクラウドストレージサービスのログイン情報、又はチャンクの暗号情報などを含んでもよい。１つ又は複数の実施形態において、バックアップマップは、どのように複数のチャンクを再結合してファイルを再構築するかに関する情報を含んでもよい。複数の技術が、バックアップシステムの観点で本明細書に説明されるが、バックアップを提供することに限定されるものではなく、任意のファイルストレージ目的に用いられてよい。
【００２５】
図３は、パーソナルデバイス及びクラウドデータの分散バックアップのための技術を例示するフロー図である。バックアップモジュール２３０内で生じる様々な段階が図示される。しかし、それらはシステムの様々なコンポーネントにより実行されてよい。更に、複数の段階の１つ又は複数は、異なる順序で実行されても、並行に実行されてもよい。
【００２６】
３０２において、バックアップモジュールは、バックアップするファイルを決定する。１つ又は複数の実施形態において、ファイルは、ユーザのアクセスパターンに基づき自動で決定され、便宜的（Ｏｐｐｏｒｔｕｎｉｓｔｉｃ）バックアップとして実行されてよい。ファイルは、ローカルデバイス、リモートデバイス、クラウドサービス、又は、バックアップ元２３０にあるものなど、ユーザに利用可能な任意の他のストレージからのものであってよい。
【００２７】
３０４において、バックアップモジュールは、ファイルのチャンクメカニズムを決定する。１つ又は複数の実施形態において、チャンクメカニズムは、ファイルから複数のデータチャンクをどのように生成するかを示してよい。１つ又は複数の実施形態において、チャンクメカニズムは、例えば、ファイルが、任意のサイズ及び任意の数のチャンクに分割されるべきかを示してよい。１つ又は複数の実施形態において、チャンクメカニズムは、ファイルタイプ又はファイルサイズなどの任意の数の要因に基づき、チャンクのサイズ及び数について他の複数のバリエーションを指示してよい。
【００２８】
３０６において、チャンクメカニズムを用いて、ファイルは複数のチャンクに分割される。複数のチャンクは、連続したバイト、つまり連続したバイトのラウンドロビン型分散を介して、又は代わりの複数のメカニズムを用いて生成されてよい。１つ又は複数の実施形態において、チャンクメカニズムの複雑性を増大させると、セキュリティレベルを強めるが、取得するためのオーバヘッドを増大させ得る。選択したチャンクメカニズムは、データの機密性に基づき得る。図４Ａ及び図４Ｂは、チャンクに分ける複数の手法を説明する。
【００２９】
３０８において、バックアップモジュール２３０はそれぞれのチャンクを暗号化する。それぞれのチャンクは、公開鍵を用いて暗号化されてよく、公開鍵・秘密鍵の組は、セキュアなエンクレーブなどのセキュアな実行環境により、プラットフォームから得られる。１つ又は複数の実施形態において、公開鍵・秘密鍵の組、及び２５６ビットのＡＥＳ鍵が、例えば、セキュアなエンクレーブによるプラットフォームから得られてよい。それぞれのチャンクは、クライアントから得られた公開鍵で暗号化されてよく、暗号化された複数のチャンクは、ユーザ設定された宛先の複数のデバイス／クラウドストレージサービス（Ｓ１、…、Ｓｍ）に分散される。３１０において、バックアップモジュールは、複数のチャンクを宛先の複数のデバイスに分散する。複数のチャンクは、ローカルサービス、リモートサービス、及びクラウドサービスを含む複数のストレージサービスに任意に分散されてよい。
【００３０】
３１２において、バックアップマップが更新される。１つ又は複数の実施形態において、マップは、複数のチャンクと複数のストレージサービスとの間の関係から構成される。１つ又は複数の実施形態において、バックアップマップは、セキュアなエンクレーブにより生成されるＡＥＳ−２５６ビット鍵を用いて更に暗号化されてよい。バックアップマップは、ソリューションサーバ又はバックアップシステムに格納されてよい。システムは、それぞれのバックアップファイル用の暗号化されたマップを格納してよく、又は、マップは、複数の分散ファイルの情報を有するただ１つのデータ構造であってよい。バックアップマップは、特定のチャンクの場所を特定の場所に提供し、更に、特定のチャンクをチャンクに分けるのに用いられる方法を提供する。
【００３１】
図４Ａは、ファイルから複数のチャンクを生成する技術を図示する。この例では、ファイル４００は、Ａ〜Ｆのデータセットを含む。図示されるように、ファイルブロック４００は、連続したバイトを用いて、チャンク４１０及び４２０などの複数のチャンクに分割され得る。代替的に、ファイルブロック４００は、任意のバイトを用いて、チャンク４３０及び４４０などの複数のチャンクに分割され得る。図示されていないが、複数のチャンクはそれぞれ、任意の数のバイトも有し得る。従って、ファイルブロック４００の第１のチャンクのバイト数は、第２のチャンク又は第３のチャンクのバイト数と異なってよい。
【００３２】
図４Ｂは、複数の分散場所に格納された、ファイルブロック４００の別のチャンク４１０及び４２０を図示する。このように、チャンク４１０はクラウドサービスによりサーバに格納されてよく、チャンク４２０はローカルのパーソナルコンピュータに格納されてよい。チャンクメカニズムは、利用可能なプラットフォーム能力に基づき強化されてよく、その能力には、ファイルブロックを複数のチャンクに分割して、その複数のチャンクをセキュアなエンクレーブにおいて暗号化すること、エンクレーブの複数のプリミティブからのプラットフォーム固有鍵から複数の鍵を生成すること、複数の鍵をプラットフォームにセキュアに格納することが含まれる。更に、１つ又は複数の実施形態において、任意選択で、複数の鍵は、ユーザパスワード又は生体認証ハッシュ、ユーザエポック、あるいはユーザに依存したシークレットといったもので暗号化され得る。
【００３３】
図５は、セキュアな分散バックアップから、ファイルを復元する技術を例示するフロー図を図示する。５０２において、バックアップモジュール２３０は、特定のファイルを取得する要求を受信する。５０４において、バックアップモジュールはバックアップマップにアクセスして、要求されたファイルの複数のチャンクを特定する。そのファイルのマップは、バックアップシステム２００から取得される。マップは暗号化されてよく、従って解読される。１つ又は複数の実施形態において、例えば、セキュアなエンクレーブのプラットフォームを用いて得られた秘密鍵を用いて、マップは解読されてよい。５０６において、バックアップモジュールはバックアップマップを用いて複数のチャンクを取得する。複数のチャンクは、それぞれのクラウドのＡＰＩ、又は他の複数のストレージサービスを介してアクセスされてよい。５０８において、複数のチャンクは、クライアントの秘密鍵で解読される。５１０において、解読された複数のチャンクは、用いられるチャンクメカニズムに基づき、結合され再構成される。用いられるメカニズムは、バックアップマップにおいて識別されてよく、あるいは、そうでなければバックアップモジュール２３０により格納されてよく、又は識別されてよい。
【００３４】
図６は、バックアップファイルを作成する全体のアーキテクチャを図示する。バックアップモジュール、つまりバックアップアプリケーション９６０は、分散バックアップ用のファイル９３０を受信する。１つ又は複数の実施形態において、デバイス９００は、クライアントデバイスなどのリモートソースからファイル９３０を受信してよい。代替的に又は更に、ファイル９３０はローカルに識別されてよい。バックアップアプリケーション９６０は、ファイルのチャンクメカニズムを決定してよい。１つ又は複数の実施形態において、チャンクメカニズムは、セキュアなエンクレーブ９５０から決定されてよい。１つ又は複数の実施形態において、セキュアなエンクレーブ９５０は、別個のハードウェアモジュールであってよく、そこからバックアップアプリケーション９６０を実行する。１つ又は複数の実施形態において、セキュアなエンクレーブ９５０は、セキュアなストレージを含んでよい。複数のチャンク９８４は、チャンクメカニズムを用いてファイル９３０から生成され、暗号化され、例示的な複数の格納場所に分散されてよい。１つ又は複数の実施形態において、複数のチャンク９８４は、セキュアなエンクレーブ９５０により生成される。複数のチャンク９８４は、例えば、プラットフォーム９７０に基づき生成される鍵９８２を用いて暗号化されてよい。次に、バックアップアプリケーション９６０は、バックアップファイル用のバックアップマップ９８６を生成し、バックアップマップ９８６をサーバ９１０に格納してよい。１つ又は複数の実施形態において、バックアップアプリケーション９８６は、ハードウェア、ファームウェア、又はソフトウェアに少なくとも部分的に実装されてよい。１つ又は複数の実施形態において、サーバ９１０は、セキュアなネットワークストレージであってよい。１つ又は複数の実施形態において、バックアップアプリケーション９６０は、代替的に又は更に、ファイルマップ９８６をデバイス９００にローカルに格納してよい。例えば、マップは、セキュアなエンクレーブ９５０に格納されてよい。バックアップアプリケーション９６０は、チャンク９８８、９９０、及び９９２を、クラウドサービスＡ９２０、クラウドサービスＢ９３０、及びクラウドサービスＣ９４０など、複数の分散ストレージデバイスに分散してよい。１つ又は複数の実施形態において、デバイス９００が、ユーザデバイスに代わってバックアップオペレーションを実行している場合、バックアップアプリケーション９６０は、例えば、ファイル又はマップの要求に応答して、マップをクライアントデバイスに送信してよい。
【００３５】
図７は、分散されたバックアップファイルを取得する全体のメカニズムを図示する。１つ又は複数の実施形態において、バックアップアプリケーション１０６０、つまりバックアップモジュールは、ファイル１０３０を取得する要求を受信する。１つ又は複数の実施形態において、この要求はローカルユーザから受信されてよく、又は、この要求はリモートユーザデバイスから受信されてよい。バックアップアプリケーション１０６０は、バックアップマップ１０８０をサーバ１０１０から取得してよい。１つ又は複数の実施形態において、バックアップアプリケーション１０６０は、ハードウェア、ファームウェア、又はソフトウェアに少なくとも部分的に実装されてよい。１つ又は複数の実施形態において、バックアップアプリケーション１０６０は、代替的に、ユーザデバイス１０００のローカルストレージからバックアップマップ１０８０を取得してよい。このストレージは、セキュアなエンクレーブ１０５０などのセキュアなストレージであってよい。１つ又は複数の実施形態において、バックアップマップ１０８０は暗号化されてよく、バックアップアプリケーション１０６０は、鍵１０８８を用いてバックアップマップ１０８０を解読してよい。１つ又は複数の実施形態において、鍵１０８８はプラットフォーム１０７０から生成されてよい。次に、バックアップアプリケーション１０６０は、暗号化されたチャンク１０８２、１０８４、及び１０８６を、バックアップマップを用いて、クラウドサービスＡ１０２０、クラウドサービスＢ１０３０、及びクラウドサービスＣ１０４０から取得してよい。次に、暗号化された複数のチャンクは解読される。１つ又は複数の実施形態において、暗号化された複数のチャンクは、セキュアなエンクレーブ１０５０により解読される。次に、解読された複数のチャンクは、要求されたファイルを形成すべく結合される。要求されたファイルを形成すべく複数のチャンクを結合することは、ハードウェアに少なくとも部分的に実装されてよい。１つ又は複数の実施形態において、ファイルは、セキュアなエンクレーブ１０５０又はバックアップアプリケーション１０６０により再生成されてよい。１つ又は複数の実施形態において、要求がリモートユーザデバイスから受信された場合、バックアップアプリケーション１０６０は再生成されたファイル１０３０をユーザデバイスに送信してよい。
【００３６】
ここで図８を参照すると、１つ又は複数の実施形態に従って、ブロック図がプログラム可能なデバイス６００を例示し、これは、バックアップシステム２００などのコンピューティングデバイス内で用いられてよい。図８に例示されたプログラム可能なデバイス６００は、マルチプロセッサのプログラム可能なデバイスであり、第１の処理要素６７０及び第２の処理要素６８０を含む。２つの処理要素６７０及び６８０が示されているが、プログラム可能なデバイス６００の一実施形態が、そのような処理要素を１つだけ含んでもよい。
【００３７】
プログラム可能なデバイス６００が、ポイントツーポイントの相互接続システムとして例示され、ここで、第１の処理要素６７０及び第２の処理要素６８０は、ポイントツーポイント相互接続６５０によって結合される。図８に例示される任意の又は全ての相互接続は、ポイントツーポイント相互接続ではなく、マルチドロップバスとして実装されてよい。
【００３８】
図８に例示されるように、処理要素６７０及び６８０のそれぞれは、マルチコアプロセッサであってよく、これらは、第１及び第２のプロセッサコア（すなわち、プロセッサコア６７４ａ及び６７４ｂ、並びに、プロセッサコア６８４ａ及び６８４ｂ）を含む。そのようなコア６７４ａ、６７４ｂ、６８４ａ、６８４ｂは、図１〜図７と関連して上述されたものと同様な態様で命令コードを実行するよう構成されてよい。しかし、他の複数の実施形態は、要望通りにシングルコアプロセッサである複数の処理要素を用いてよい。複数の処理要素６７０、６８０を有する複数の実施形態において、それぞれの処理要素は、要望通りに異なる数のコアで実装されてよい。
【００３９】
それぞれの処理要素６７０、６８０は、少なくとも１つの共有キャッシュ６４６を含んでよい。共有キャッシュ６４６ａ、６４６ｂは、例えば、それぞれコア６７４ａ、６７４ｂ、及び、コア６８４ａ、６８４ｂなど、処理要素の１つ又は複数のコンポーネントにより使用されるデータ（例えば、複数の命令）を格納してよい。例えば、共有キャッシュは、処理要素６７０、６８０の複数のコンポーネントがより速くアクセスするために、メモリ６３２、６３４に格納されたデータをローカルにキャッシュしてよい。１つ又は複数の実施形態において、共有キャッシュ６４６ａ、６４６ｂは、レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）、又は他の複数のレベルのキャッシュ、最終レベルキャッシュ（ＬＬＣ）、又はこれらの組み合わせなど、１つ又は複数の中間レベルキャッシュを含んでよい。
【００４０】
図８は、図面を明確にするために、２つの処理要素６７０、６８０を有するプログラム可能なデバイスを例示するが、本発明の範囲はそのように限定されるものではなく、任意の数の処理要素が存在してよい。代替的に、処理要素６７０、６８０のうち１つ又は複数は、グラフィックス処理ユニット（ＧＰＵ）、デジタル信号処理（ＤＳＰ）ユニット、フィールドプログラマブルゲートアレイ、又は任意の他のプログラム可能な処理要素など、プロセッサ以外の要素であってよい。処理要素６８０は、処理要素６７０に対して異種であっても非対称であってもよい。処理要素６７０、６８０の間には、アーキテクチャ的な特性、マイクロアーキテクチャ的な特性、熱的特性、電力消費特性などを含むあらゆる価値基準の観点から様々な差異があってよい。実質的には、これらの差異は、処理要素６７０、６８０の間の非対称性及び異種性として現れてよい。いくつかの実施形態において、様々な処理要素６７０、６８０は、同一のダイパッケージに存在してよい。
【００４１】
第１の処理要素６７０は、メモリコントローラロジック（ＭＣ）６７２、並びにポイントツーポイント（Ｐ−Ｐ）相互接続６７６及び６７８を更に含んでよい。同様に、第２の処理要素６８０は、ＭＣ６８２、並びにＰ−Ｐ相互接続６８６及び６８８を含んでよい。図８に例示されるように、ＭＣ６７２及び６８２は、処理要素６７０、６８０をそれぞれのメモリ、すなわちメモリ６３２及びメモリ６３４に結合し、これらのメモリは、それぞれのプロセッサにローカルに取り付けられたメインメモリの一部であってよい。ＭＣロジック６７２及び６８２は、処理要素６７０、６８０に統合されているように例示されているが、いくつかの実施形態において、メモリコントローラロジックは、処理要素６７０、６８０に統合されるのではなく、処理要素６７０、６８０の外部に分離したロジックであってよい。
【００４２】
処理要素６７０及び処理要素６８０は、それぞれのＰ−Ｐ相互接続６７６及び６８６によって、リンク６５２および６５４を介してＩ／Ｏサブシステム６９０に結合されてよい。図８に例示されるように、Ｉ／Ｏサブシステム６９０はＰ−Ｐ相互接続６９４及び６９８を含む。更に、Ｉ／Ｏサブシステム６９０は、Ｉ／Ｏサブシステム６９０を高性能グラフィックスエンジン６３８と結合するインターフェース６９２を含む。１つの実施形態において、グラフィックスエンジン６３８をＩ／Ｏサブシステム６９０に結合するのにバス（図示せず）が用いられてよい。あるいは、ポイントツーポイント相互接続６３９が、これらのコンポーネントを結合してよい。
【００４３】
次に、Ｉ／Ｏサブシステム６９０は、インターフェース６９６によって第１のリンク６１６に結合されてよい。１つの実施形態において、第１のリンク６１６はペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス、あるいはＰＣＩエクスプレスバス又は別のＩ／Ｏ相互接続バスなどのバスであってよいが、本発明の範囲はそのように限定されるものではない。
【００４４】
図８に例示されるように、様々なＩ／Ｏデバイス６１４、６２４が、第１のリンク６１６を第２のリンク６２０に結合し得るブリッジ６１８と共に、第１のリンク６１６に結合されてよい。１つの実施形態において、第２のリンク６２０はローピンカウント（ＬＰＣ）バスであってよい。１つの実施形態において、様々なデバイスが第２のリンク６２０に結合されてよく、それらのデバイスには、例えば、キーボード／マウス６１２、通信デバイス６２６（これは次にコンピュータネットワーク６０３と通信し得る）、及びデータストレージユニット６２８などが含まれる。データストレージユニット６２８は、ディスクドライブ、又はコード６３０を含み得る他の大容量ストレージデバイスなどである。コード６３０は、上述された複数の技術のうち１つ又は複数の実施形態を実行するための複数の命令を含んでよい。更に、オーディオＩ／Ｏ６２４が第２のバス６２０に結合されてよい。
【００４５】
他の複数の実施形態が企図されることに留意されたい。例えば、図８のポイントツーポイントアーキテクチャの代わりに、マルチドロップバス、又は別のそのような通信トポロジーをシステムが実装してよい。リンク６１６及び６２０がバスとして図８に例示されているが、任意の所望のタイプのリンクが用いられてよい。また、図８の複数の要素は、代替的に、図８に例示されるよりも多い又は少ない統合された複数のチップを用いて分割されてよい。
【００４６】
ここで図９を参照すると、ブロック図が、別の実施形態によるプログラム可能なデバイス７００を例示する。図８の特定の複数の態様が図９から省略されているのは、図９の他の複数の態様を不明瞭にすることを回避するためである。
【００４７】
図９は、処理要素７７０、７８０が、統合されたメモリ並びにＩ／Ｏ制御ロジック（ＣＬ）７７２及び７８２をそれぞれ含んでよいことが例示されている。いくつかの実施形態において、７７２、７８２は、図８と関連して上述されたものなどのメモリ制御ロジック（ＭＣ）を含んでよい。更に、ＣＬ７７２、７８２は、Ｉ／Ｏ制御ロジックを含んでもよい。図９は、メモリ７３２、７３４が７７２、７８２に結合されてよいだけでなく、Ｉ／Ｏデバイス７４４が制御ロジック７７２、７８２に結合されてよいこともまた例示する。従来のＩ／Ｏデバイス７１５がインターフェース７９６により、Ｉ／Ｏサブシステム７９０に結合されてよい。それぞれの処理要素７７０、７８０は、プロセッサコア７７４Ａ、７７４Ｂ、７８４Ａ、及び７８４Ｂとして図９に例示される複数のプロセッサコアを含んでよい。図９に例示されるように、Ｉ／Ｏサブシステム７９０は、Ｐ−Ｐ相互接続７９４及び７９８を含み、これらは処理要素７７０及び７８０のＰ−Ｐ相互接続７７６、７８６に、リンク７５２および７５４を使って接続する。処理要素７７０および７８０も、リンク７５０並びにそれぞれ相互接続７７８及び７８８により相互接続されてよい。
【００４８】
図８および９に図示されるプログラム可能なデバイスは、本明細書に論じられる様々な実施形態を実装するのに使用され得るプログラム可能なデバイスの実施形態の概略的な例示である。図８および９に図示されるプログラム可能なデバイスの様々なコンポーネントは、システム・オン・チップ（ＳｏＣ）アーキテクチャにおいて組み合わされてよい。
【００４９】
複数のプログラム命令が、複数の命令でプログラムされた汎用又は専用処理システムに、本明細書に説明される複数のオペレーションを実行させるのに用いられてよい。代替的に、複数のオペレーションは、当該複数のオペレーションを実行するためのハードワイヤードロジックを含む特定の複数のハードウェアコンポーネントにより実行されてよく、又は、複数のプログラムされたコンピュータコンポーネント及び複数のカスタムハードウェアコンポーネントの任意の組み合わせにより実行されてよい。本明細書に説明される複数の方法は、コンピュータプログラム製品として提供されてよく、コンピュータプログラム製品は、処理システムをプログラムするのに用いられ得る複数の命令を格納した機械可読媒体、又は当該複数の方法を実行する他の電子デバイスを含んでよい。本明細書に用いられる用語「機械可読媒体」は、機械が実行するための一連の命令を格納又は符号化することが可能であり、本明細書に説明される複数の方法のいずれか１つを機械に実行させる任意の媒体を含むものとする。それに応じて、用語「機械可読媒体」は、限定されないが、ソリッドステートメモリ、光ディスク、及び磁気ディスクなどの有形の非一時的メモリを含むものとする。更に、どのような形態であるにせよ（例えば、プログラム、手順、プロセス、アプリケーション、モジュール、ロジックなど）、行動を起こす、又は結果をもたらすものとして、ソフトウェアのことを述べるのは、当技術分野において一般的である。そのような表現は、処理システムによるソフトウェアの実行が、プロセッサに動作を実行させ、又は結果を生じさせるということを述べる単に簡略な方法にすぎない。
【００５０】
以下の実施例は、更なる複数の実施形態に関する。
【００５１】
実施例１は、複数の命令が格納された機械可読媒体であって、実行された場合に機械に、格納されたファイルを識別させ、ファイルから複数のファイルチャンクを生成するようハードウェアモジュールに命令させ、複数のファイルチャンクのうち１つ又は複数は暗号化され、複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つに第１のデバイスから送信させ、第１のデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成させる、複数の命令を備える。
【００５２】
実施例２において、実施例１の主題は、複数の独立したストレージシステムが少なくとも１つのクラウドストレージサービスを有することを、任意選択で含む。
【００５３】
実施例３において、実施例１の主題は、複数の独立したストレージシステムがローカルデバイスを有することを、任意選択で含む。
【００５４】
実施例４において、実施例１から３の何れかの主題は、実行された場合に機械に、それぞれの暗号化されたファイルチャンクの暗号化データをマップに格納させる複数の命令を任意選択で含む。
【００５５】
実施例５において、実施例１から３の何れかの主題は、複数のファイルチャンクが第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化されることを、任意選択で含む。
【００５６】
実施例６において、実施例１から３の何れかの主題は、複数のファイルチャンクが第１のファイルチャンクと第２のファイルチャンクとを含み、第１のファイルチャンクと第２のファイルチャンクとは異なるサイズであることを、任意選択で含む。
【００５７】
実施例７は、データを格納するシステムであって、コンピュータプロセッサと、コンピュータプロセッサに結合されたストレージデバイスとを備え、ストレージデバイスは、コンピュータプロセッサにより実行された場合に、システムに、格納されたファイルを識別させ、複数のファイルチャンクをファイルから生成するようハードウェアモジュールに命令させ、複数のファイルチャンクのうち１つ又は複数は暗号化され、複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つに第１のデバイスから送信させ、第１のデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成させる複数の命令を含む。
【００５８】
実施例８において、実施例７の主題は、複数の独立したストレージシステムが少なくとも１つのクラウドストレージサービスを有することを、任意選択で含む。
【００５９】
実施例９において、実施例７の主題は、複数の独立したストレージシステムがローカルデバイスを有することを、任意選択で含む。
【００６０】
実施例１０において、実施例７から９の何れかの主題は、実行された場合に機械に、それぞれの暗号化されたファイルチャンクの暗号化データをマップに格納させる複数の命令を更に含むストレージデバイスを任意選択で含む。
【００６１】
実施例１１において、実施例７から９の何れかのシステムは、複数のファイルチャンクが第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化されることを、任意選択で含む。
【００６２】
実施例１２において、実施例７から９の何れかのシステムは、複数のファイルチャンクが第１のファイルチャンクと第２のファイルチャンクとを含み、第１のファイルチャンクと第２のファイルチャンクとは異なるサイズであることを、任意選択で含む。
【００６３】
実施例１３は、データを格納する方法であって、格納されるファイルを識別する段階と、ファイルから複数のファイルチャンクを生成する段階であって、複数のファイルチャンクのうち１つ又は複数は暗号化される、生成する段階と、前記複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つに第１のデバイスから送信する段階と、第１のデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成する段階とを備える。
【００６４】
実施例１４において、実施例１３の主題は、複数の独立したストレージシステムが少なくとも１つのクラウドストレージサービスを有することを、任意選択で含む。
【００６５】
実施例１５において、実施例１３の主題は、複数の独立したストレージシステムがローカルデバイスを有することを、任意選択で含む。
【００６６】
実施例１６において、実施例１３から１５の何れかの主題は、それぞれの暗号化されたファイルチャンクの暗号化データをマップに格納させる段階を任意選択で含む。
【００６７】
実施例１７において、実施例１３から１５の何れかの主題は、複数のファイルチャンクが第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化されることを、任意選択で含む。
【００６８】
実施例１８において、実施例１３から１５の何れかの主題は、複数のファイルチャンクが第１のファイルチャンクと第２のファイルチャンクとを含み、第１のファイルチャンクと第２のファイルチャンクとは異なるサイズであることを、任意選択で含む。
【００６９】
実施例１９は、複数の命令が格納された機械可読媒体であって、実行された場合に機械に、ファイルを取得する要求を受信させ、ファイルに対応するマップを取得させ、マップは」ファイルの複数のファイルチャンクのそれぞれに対応する複数の独立したストレージシステムを識別させ、識別された複数の独立したストレージシステムから複数のファイルチャンクを取得させ、複数のファイルチャンクのうち少なくとも１つが暗号化されたファイルチャンクであると判断させ、暗号化されたファイルチャンクを解読させ、複数のファイルチャンクを結合することで要求されたファイルを生成させる、複数の命令を備える。
【００７０】
実施例２０において、実施例１９の主題は、複数の独立したストレージシステムのうち少なくとも１つがクラウドストレージサービスであることを、任意選択で含む。
【００７１】
実施例２１において、実施例１９の主題は、複数の独立したストレージシステムのうち少なくとも１つがローカルデバイスであることを、任意選択で含む。
【００７２】
実施例２２において、実施例１９の主題は、実行された場合に機械にファイルを生成させる複数の命令は、実行された場合に機械に、マップ内のチャンクメカニズムを識別させ、チャンクメカニズムに基づき複数のファイルチャンクからファイルを生成させる複数の命令を有することを、任意選択で含む。
【００７３】
実施例２３において、実施例１９から２１の何れかの主題は、複数のファイルチャンクが少なくとも異なるサイズの第１のチャンク及び第２のチャンクを含むことを、任意選択で含む。
【００７４】
実施例２４において、実施例１９から２１の何れかの主題であって、複数のファイルチャンクが第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される。
【００７５】
実施例２５において、実施例１９の主題は、実行された場合に機械にファイルを生成させる複数の命令は、実行された場合に機械に、マップ内のチャンクメカニズムを識別させ、チャンクメカニズムに基づき複数のファイルチャンクからファイルを生成させる複数の命令を有することを、任意選択で含む。
【００７６】
実施例２６は、実行された場合に機械に、実施例１３から１８の複数の方法を実行させるコードを含む機械可読媒体である。
【００７７】
実施例２７は、プロセッサと複数の命令が格納されたメモリとを備えるシステムであって、プロセッサにより実行された場合にシステムに、ファイルを取得する要求を受信させ、ファイルに対応するマップを取得させ、マップは」ファイルの複数のファイルチャンクのそれぞれに対応する複数の独立したストレージシステムを識別させ、識別された複数の独立したストレージシステムから複数のファイルチャンクを取得させ、複数のファイルチャンクのうち少なくとも１つが暗号化されたファイルチャンクであると判断させ、暗号化されたファイルチャンクを解読させ、複数のファイルチャンクを結合することで要求されたファイルを生成させる、複数の命令を備える。
【００７８】
実施例２８において、実施例２７の主題は、複数の独立したストレージシステムのうち少なくとも１つがクラウドストレージサービスであることを、任意選択で含む。
【００７９】
実施例２９において、実施例２７の主題は、複数の独立したストレージシステムのうち少なくとも１つがローカルデバイスであることを、任意選択で含む。
【００８０】
実施例３０において、実施例２７の主題は、暗号化されたファイルチャンクを解読する複数の命令は、実行された場合に前記機械に、暗号化されたファイルチャンクの暗号情報をマップから取得させ、暗号情報を用いて暗号化されたファイルチャンクを解読させる、複数の命令を更に備えることを、任意選択で含む。
【００８１】
実施例３１において、実施例２７の主題は、複数のファイルチャンクが少なくとも異なるサイズの第１のチャンク及び第２のチャンクを含むことを、任意選択で含む。
【００８２】
実施例３２において、実施例２７の主題は、複数のファイルチャンクが第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化されることを、任意選択で含む。
【００８３】
実施例３３において、実施例２７の主題は、実行された場合に機械にファイルを生成させる複数の命令は、実行された場合に機械に、マップ内のチャンクメカニズムを識別させ、チャンクメカニズムに基づき複数のファイルチャンクからファイルを生成させる複数の命令を有することを、任意選択で含む。
【００８４】
上記の説明は、例示的であることを意図するものであり、限定的であることを意図するものではないことが理解されるべきである。例えば、上述の複数の実施形態は、互いに組み合わせて用いられてよい。他の多くの実施形態が、上記の説明を検討すると、当業者には明らかとなるであろう。従って、本発明の範囲は、添付の特許請求の範囲を参照し、そのような特許請求の範囲が権利を与えられる均等物の全範囲と共に、決定されるべきである。
【図１】
2017522651.tif 000003
【図２】
2017522651.tif 000004
【図３】
2017522651.tif 000005
【図４Ａ】
2017522651.tif 000006
【図４Ｂ】
2017522651.tif 000007
【図５】
2017522651.tif 000008
【図６】
2017522651.tif 000009
【図７】
2017522651.tif 000010
【図８】
2017522651.tif 000011
【図９】
2017522651.tif 000012
【手続補正書】
【提出日】平成29年1月6日(2017.1.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
格納されたファイルを識別する手順と、
前記ファイルから複数のファイルチャンクを生成するようハードウェアモジュールに命令する手順であって、前記複数のファイルチャンクのうち１つ又は複数は暗号化される、命令する手順と、
前記複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つに第１のデバイスから送信する手順と、
前記第１のデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成する手順と、
をコンピュータに実行させる、
プログラム。
【請求項２】
前記ハードウェアモジュールはセキュアなメモリを有する、
請求項１に記載のプログラム。
【請求項３】
前記複数の独立したストレージシステムはローカルデバイスを有する、
請求項１に記載のプログラム。
【請求項４】
それぞれの暗号化されたファイルチャンクの暗号化データを前記マップに格納する手順を前記コンピュータに更に実行させる、
請求項１から３の何れか一項に記載のプログラム。
【請求項５】
前記複数のファイルチャンクは、第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、前記第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、前記第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される、
請求項１から３の何れか一項に記載のプログラム。
【請求項６】
前記複数のファイルチャンクは、第１のファイルチャンクと第２のファイルチャンクとを含み、前記第１のファイルチャンクと前記第２のファイルチャンクとは異なるサイズである、
請求項１から３の何れか一項に記載のプログラム。
【請求項７】
データを格納するシステムであって、
コンピュータプロセッサと、
前記コンピュータプロセッサに結合されたストレージデバイスと、
を備え、
前記ストレージデバイスは、前記コンピュータプロセッサにより実行された場合に、前記システムに、
格納されたファイルを識別させ、
複数のファイルチャンクを前記ファイルから生成するようハードウェアモジュールに命令させ、前記複数のファイルチャンクのうち１つ又は複数は暗号化され、
前記複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つに第１のデバイスから送信させ、
前記第１のデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成させる、
複数の命令を含む、
システム。
【請求項８】
前記ハードウェアモジュールはセキュアなメモリを有する、
請求項７に記載のシステム。
【請求項９】
前記複数の独立したストレージシステムはローカルデバイスを有する、
請求項７に記載のシステム。
【請求項１０】
前記ストレージデバイスは、実行された場合に機械に、
それぞれの暗号化されたファイルチャンクの暗号化データを前記マップに格納させる複数の命令を更に含む、
請求項７から９の何れか一項に記載のシステム。
【請求項１１】
前記複数のファイルチャンクは、第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、前記第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、前記第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される、
請求項７から９の何れか一項に記載のシステム。
【請求項１２】
前記複数のファイルチャンクは、第１のファイルチャンクと第２のファイルチャンクとを含み、前記第１のファイルチャンクと前記第２のファイルチャンクとは異なるサイズである、
請求項７から９の何れか一項に記載のシステム。
【請求項１３】
データを格納する方法であって、
格納されるファイルをリモートデバイスから受信する段階と、
前記ファイルから複数のファイルチャンクを生成するようハードウェアモジュールに命令する段階であって、前記複数のファイルチャンクのうち１つ又は複数は暗号化される、命令する段階と、前記複数のファイルチャンクのそれぞれを複数の独立したストレージシステムのうち１つにローカルデバイスから送信する段階と、
前記ローカルデバイスにおいて、それぞれのチャンクの格納場所を識別するマップを生成する段階と、
を備える、
方法。
【請求項１４】
前記マップを前記リモートデバイスに送信する段階を更に備える、
請求項１３に記載の方法。
【請求項１５】
前記ファイルの要求を前記リモートデバイスから受信する段階と、
前記ファイルに対応する前記マップを取得する段階と、
識別された前記複数の独立したストレージシステムから前記複数のファイルチャンクを取得する段階と、
前記複数のファイルチャンクのうち少なくとも１つが暗号化されたファイルチャンクであると判断する段階と、
前記暗号化されたファイルチャンクを解読する段階と、
前記複数のファイルチャンクを結合させることで要求された前記ファイルを生成する段階と、
要求された前記ファイルを前記リモートデバイスに送信する段階と、
を更に備える、
請求項１３又は１４に記載の方法。
【請求項１６】
前記ハードウェアモジュールはセキュアなストレージである、
請求項１３から１５の何れか一項に記載の方法。
【請求項１７】
前記複数のファイルチャンクは、第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、前記第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、前記第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される、
請求項１３から１５の何れか一項に記載の方法。
【請求項１８】
前記複数のファイルチャンクは、第１のファイルチャンクと第２のファイルチャンクとを含み、前記第１のファイルチャンクと前記第２のファイルチャンクとは異なるサイズである、
請求項１３から１５の何れか一項に記載の方法。
【請求項１９】
ファイルを取得する要求を受信する手順と、
前記ファイルに対応マップを取得する手順であって、前記マップは、前記ファイルの複数のファイルチャンクのそれぞれに対応する複数の独立したストレージシステムを識別する、取得する手順と、
識別された前記複数の独立したストレージシステムから前記複数のファイルチャンクを取得する手順と、
前記複数のファイルチャンクのうち少なくとも１つは暗号化されたファイルチャンクであると判断する手順と、
前記暗号化されたファイルチャンクを解読する手順と、
前記複数のファイルチャンクを結合させることで要求された前記ファイルを生成するようハードウェアモジュールに命令する手順と、
をコンピュータに実行させる、
プログラム。
【請求項２０】
前記ハードウェアモジュールはセキュアなメモリである、
請求項１９に記載のプログラム。
【請求項２１】
前記複数の独立したストレージシステムのうち少なくとも１つはローカルデバイスである、
請求項１９に記載のプログラム。
【請求項２２】
前記暗号化されたファイルチャンクの暗号情報を前記マップから取得する手順と、
前記暗号情報を用いて前記暗号化されたファイルチャンクを解読する手順と、
を前記コンピュータに更に実行させる、
請求項１９から２１の何れか一項に記載のプログラム。
【請求項２３】
前記複数のファイルチャンクは、異なるサイズの少なくとも第１のチャンクと第２のチャンクとを含む、
請求項１９から２１の何れか一項に記載のプログラム。
【請求項２４】
前記複数のファイルチャンクは、第１の暗号化されたファイルチャンクと、第２の暗号化されたファイルチャンクとを含み、前記第１の暗号化されたファイルチャンクは第１の暗号化方法で暗号化され、前記第２の暗号化されたファイルチャンクは第２の暗号化方法で暗号化される、
請求項１９から２１の何れか一項に記載のプログラム。
【請求項２５】
前記マップにおいてチャンクメカニズムを識別する手順と、
前記チャンクメカニズムに基づき、前記複数のファイルチャンクから前記ファイルを生成する手順と、
を前記コンピュータに実行させる、
請求項１９に記載のプログラム。
【請求項２６】
請求項１から６、又は１９から２５の何れか一項に記載のプログラムを格納する、
コンピュータ可読記憶媒体。
【国際調査報告】
2017522651.tif 000013
2017522651.tif 000014