(57)【特許請求の範囲】
【請求項１】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイル（Ｆ）の機密性を保護するための方法であって、ユーザ・デバイスによって実行される以下のステップ、すなわち、
前記ファイルをｎ個のチャンクＳ１，・・・，Ｓｎに分割する（２）ステップと、
ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、ｎ２個の係数ａｉｊを選択する（３）ステップと、
ｉ＝１，・・・，ｎに対して、ベクトルａｉ１，・・・，ａｉｎが１次独立であることを確認する（３）ステップであって、そうでない場合には、前記係数を再度生成するステップと、
ｉ＝１，・・・，ｎに対して、ｎ個の１次結合Ｃｉ＝ａｉ１・Ｓ１＋・・・＋ａｉｊ・Ｓｊ＋・・・＋ａｉｎ・Ｓｎを計算する（４）ステップと、
前記複数のストレージ・サービス・プロバイダの間で、ｎ個のストレージ・サービス・プロバイダＯ１，・・・，Ｏｎを選択する（５）ステップと、
前記ファイル（Ｆ）を指定するｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを生成する（６ａ；６ｂ；６ｃ）ステップと、
ｉ＝１，・・・，ｎに対して、前記ファイル識別子ＩＤ’ｉと関連して、前記ストレージ・サービス・プロバイダＯｉに、前記結合Ｃｉを格納する（６ａ；６ｂ；６ｃ）ステップと、
ｉ＝１，・・・，ｎに対して、前記ファイル識別子ＩＤ’ｉと前記プロバイダ識別子Ｏｉとを、前記ファイル（Ｆ）に対応しておりローカル・メモリ（ＬＭ）に格納されているファイル記述子に格納するステップと、
ｉ＝１，・・・，ｎに対して、前記結合Ｃｉと再度関連付けられることが可能であるように、係数の組ａｉ１，・・・，ａｉｎを格納するステップと、
を含む方法において、
ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、ｎ２個の係数ａｉｊを選択する（３）ステップは、
ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、前記ｎ２個の係数ａｉｊをランダムに選択する（３）ステップと、
ｉ＝１，・・・，ｎに対して、ベクトルａｉ１，・・・，ａｉｎが１次独立であることを確認する（３）ステップであって、そうでない場合には、前記係数を再度生成するステップと、
ｊ＝１，・・・，ｎに対して、ｎ個のスーパ係数ａ’１，・・・，ａ’ｊ，・・・，ａ’ｎをランダムに選択するステップと、
１次オーバ結合ＯＣ’＝ａ’ｉ・Ｃ１＋・・・＋ａ’ｊ・Ｃｊ＋・・・＋ａ’ｎ・Ｃｎを計算するステップと、
ｊ＝１，・・・，ｎに対して、前記オーバ結合ＯＣ’と前記係数ａ’１，・・・，ａ’ｊ，・・・，ａ’ｎとを、前記ｎ個のストレージ・サービス・プロバイダとは異なるストレージ・サービス・プロバイダに格納するステップと、
を含み、
ｉ＝１，・・・，ｎに対して、前記結合Ｃｉと再度関連付けられることが可能であるように、係数の前記組ａｉ１，・・・，ａｉｎを格納するステップは、
ｉ＝１，・・・，ｎおよび１≦ｋ≦ｎでありｉと異なるｋに対して、結合Ｃｋおよびファイル識別子ＩＤ’ｋと関連して、係数の前記組ａｉ１，・・・，ａｉｎを、前記ストレージ・サービス・プロバイダＯｋに格納する（６ｂ）ステップと、
ｉ＝１，・・・，ｎに対して、係数の前記組ａｉ１，・・・，ａｉｎと前記結合Ｃｉとを再度関連付けることを可能にする置換（σ）を、前記ファイル（Ｆ）に対応しており前記ローカル・メモリ（ＬＭ）に格納されている前記ファイル記述子に格納する（６ｂ）ステップと、
を含む、方法。
【請求項２】
ｉ＝１，・・・，ｎに対して、前記結合Ｃｉと再度関連付けられることが可能であるように、係数の前記組ａｉ１，・・・，ａｉｎを格納するステップは、ｉ＝１，・・・，ｎに対して、前記結合Ｃｉおよび前記ファイル識別子ＩＤ’ｉと関連して、前記ストレージ・サービス・プロバイダＯｉに、それらを格納する（６ａ）ステップを含む、請求項１に記載の方法。
【請求項３】
ｉ＝１，・・・，ｎに対して、前記結合Ｃｉと再度関連付けられることが可能であるように、係数の前記組ａｉ１，・・・，ａｉｎを格納するステップは、ｉ＝１，・・・，ｎに対して、係数の前記組ａｉ１，・・・，ａｉｎを、ファイル識別子ＩＤ’ｉおよびプロバイダ識別子Ｏｉに関連して、前記ファイル（Ｆ）に対応しており前記ローカル・メモリ（ＬＭ）に格納されている前記ファイル記述子に格納するステップを含む、請求項１に記載の方法。
【請求項４】
前記ｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎが、所与のファイル（Ｆ）に対して同一（ＩＤ’）である、請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイル（Ｆ）を検索するための方法であって、ユーザ・デバイスによって実行される以下のステップ、すなわち、
前記ファイル（Ｆ）に対応しておりローカル・メモリ（ＬＭ）に格納されているファイル記述子において、前記ファイルを指定するｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを読み出し（５１）、プロバイダ識別子Ｏ１，・・・，Ｏｎを読み出すステップと、
前記ｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを、それぞれ、前記プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定される前記ストレージ・サービス・プロバイダに送る（５１）ステップと、
ｎ個の結合Ｃ１，・・・，Ｃｎを、前記プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定される前記プロバイダから受け取る（５１）ステップと、
ｉ＝１，・・・，ｎに対して、前記ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップと、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ａｉ１，・・・，ａｉｎと関連付ける（５２；６２；７２）ステップと、
ｉ＝１，・・・，ｎに対して係数のｎ個の組ｂｉ１，・・・，ｂｉｎから構成される別の行列を得るために、ｉ＝１，・・・，ｎに対して係数の前記ｎ個の組ａｉ１，・・・，ａｉｎから構成される行列の逆行列を計算する（５３；６３；７３）ステップと、
そして、ｉ＝１，・・・，ｎに対して、前記ファイル（Ｆ）のｎ個のチャンクＳ１，・・・，Ｓｎを、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ・Ｃｎとして計算するステップと、
そして、前記ファイルＦを復元するために、前記チャンクＳ１，・・・，Ｓｎを再度組み立てる（５４；６４；７４）ステップと、
ｊ＝１，・・・，ｎに対して、オーバ結合ＯＣ’と係数ａ’１，・・・，ａ’ｊ，・・・，ａ’ｎとを読み出すステップと、
ｉ＝１，・・・，ｎに対して係数のｎ個の組ｂｉ１，・・・，ｂｉｎから構成される別の行列を得るために、ｉ＝１，・・・，ｎ−１に対して係数のｎ−１個の組ａｉ１，・・・，ａｉｎと、ｊ＝１，・・・，ｎに対する係数の組（ａ’１・ａ１ｊ＋・・・＋ａ’ｉ・ａｉｊ＋・・・＋ａ’ｎ・ａｎｊ）とから構成される行列の逆行列を計算するステップと、
そして、前記ファイル（Ｆ）のｎ個のチャンクＳ１，・・・，Ｓｎを、ｉ＝１，・・・，ｎに対して、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ−１・Ｃｎ−１＋ｂｉｎ・ＯＣ’として計算するステップと、
そして、前記ファイル（Ｆ）を復元するために、前記チャンクＳ１，・・・，Ｓｎを再度組み立てるステップと、
を含む方法において、
ｉ＝１，・・・，ｎに対して、前記ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップは、前記プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定される前記プロバイダからそれらを受け取る（５１）ステップを含み、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ａｉ１，・・・，ａｉｎと関連付ける（６２）ステップは、
前記ファイル（Ｆ）に対応する前記ファイル記述子において置換（σ）を読み出すステップと、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉが係数の前記対応する組ａｉ１，・・・，ａｉｎと関連付けられるように、ｉ＝１，・・・，ｎに対して、前記置換を係数の前記ｎ個の組ａｉ１，・・・，ａｉｎに適用するステップと、
を含む、方法。
【請求項６】
ｉ＝１，・・・，ｎに対して、前記ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップは、前記プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定される前記プロバイダからそれらを受け取る（５１）ステップを含み、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ａｉ１，・・・，ａｉｎと関連付ける（５２）ステップは、前記結合Ｃｉを係数の前記組ａｉ１，・・・，ａｉｎと直接関連付けるステップを含む、請求項５に記載の方法。
【請求項７】
ｉ＝１，・・・，ｎに対して、前記ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップは、前記ファイル（Ｆ）に対応する前記ファイル記述子においてそれらを読み出すステップを含み、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ａｉ１，・・・，ａｉｎと関連付ける（７２）ステップは、ｉ＝１，・・・，ｎに対して、係数の前記組ａｉ１，・・・，ａｉｎを、前記結合Ｃｉに直接関連付けるステップを含む、請求項５に記載の方法。
【請求項８】
前記ｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎが、所与のファイル（Ｆ）に対して同一（ＩＤ’）である、請求項５乃至７のいずれか１項に記載の方法。
【請求項９】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイル（Ｆ）の機密性を保護するための方法であって、ユーザ・デバイスによって実行される以下のステップ、すなわち、
前記ファイルをｎ個のチャンクＳ１，・・・，Ｓｎに分割する（２）ステップと、
ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、ｎ２個の係数ａｉｊをランダムに選択する（３）ステップと、
ｉ＝１，・・・，ｎに対して、ベクトルａｉ１，・・・，ａｉｎが１次独立であることを確認する（３）ステップであって、そうでない場合には、前記係数を再度生成するステップと、
ｉ＝１，・・・，ｎに対して、ｎ個の１次結合Ｃｉ＝ａｉ１・Ｓ１＋・・・＋ａｉｊ・Ｓｊ＋・・・＋ａｉｎ・Ｓｎを計算する（４）ステップと、
前記複数のストレージ・サービス・プロバイダの間で、ｎ個のストレージ・サービス・プロバイダＯ１，・・・，Ｏｎを選択する（５）ステップと、
前記ファイル（Ｆ）を指定するｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを生成する（６ａ；６ｂ；６ｃ）ステップと、
ｉ＝１，・・・，ｎに対して、前記ファイル識別子ＩＤ’ｉと関連して、前記ストレージ・サービス・プロバイダＯｉに、前記結合Ｃｉを格納する（６ａ；６ｂ；６ｃ）ステップと、
ｉ＝１，・・・，ｎに対して、前記ファイル識別子ＩＤ’ｉと前記プロバイダ識別子Ｏｉとを、前記ファイル（Ｆ）に対応しておりローカル・メモリ（ＬＭ）に格納されているファイル記述子に格納するステップと、
ｉ＝１，・・・，ｎに対して係数のｎ個の組ｂｉ１，・・・，ｂｉｎから構成される別の行列を得るために、ｉ＝１，・・・，ｎに対して係数の前記ｎ個の組ａｉ１，・・・，ａｉｎから構成される行列の逆行列を計算する（４’）ステップと、
ｉ＝１，・・・，ｎに対して、前記結合Ｃｉと再度関連付けられることが可能であるように、係数の前記組ｂｉ１，・・・，ｂｉｎを格納するステップと、
ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、前記ｎ２個の係数ａｉｊをランダムに選択する（３）ステップと、
ｉ＝１，・・・，ｎに対して、前記ベクトルａｉ１，・・・，ａｉｎが１次独立であることを確認する（３）ステップであって、そうでない場合には、前記係数を再度生成するステップと、
を含む方法において、
ｉ＝１，・・・，ｎに対して、前記結合Ｃｉと再度関連付けられることが可能であるように、係数の前記組ｂｉ１，・・・，ｂｉｎを格納するステップは、
ｉ＝１，・・・，ｎおよび１≦ｋ≦ｎでありｉと異なるｋに対して、結合Ｃｋおよびファイル識別子ＩＤ’ｋと関連して、係数の前記組ｂｉ１，・・・，ｂｉｎを、前記ストレージ・サービス・プロバイダＯｋに格納する（６ｂ）ステップと、
ｉ＝１，・・・，ｎに対して、係数の前記組ｂｉ１，・・・，ｂｉｎと前記結合Ｃｉとを再度関連付けることを可能にする置換（σ）を、前記ファイル（Ｆ）に対応しており前記ローカル・メモリ（ＬＭ）に格納されている前記ファイル記述子に格納する（６ｂ）ステップと、
を含む、方法。
【請求項１０】
ｉ＝１，・・・，ｎに対して、前記結合Ｃｉと再度関連付けられることが可能であるように、係数の前記組ｂｉ１，・・・，ｂｉｎを格納するステップは、ｉ＝１，・・・，ｎに対して、前記結合Ｃｉおよび前記ファイル識別子ＩＤ’ｉと関連して、前記ストレージ・サービス・プロバイダＯｉに、それらを格納する（６ａ）ステップを含む、請求項９に記載の方法。
【請求項１１】
ｉ＝１，・・・，ｎに対して、前記結合Ｃｉと再度関連付けられることが可能であるように、係数の前記組ｂｉ１，・・・，ｂｉｎを格納するステップは、ｉ＝１，・・・，ｎに対して、係数の前記組ｂｉ１，・・・，ｂｉｎを、前記ファイル識別子ＩＤ’ｉおよび前記プロバイダ識別子ＩＤ’ｉに関連して、前記ファイル（Ｆ）に対応しており前記ローカル・メモリ（ＬＭ）に格納されている前記ファイル記述子に格納するステップを含む、請求項９に記載の方法。
【請求項１２】
前記ｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎが所与のファイル（Ｆ）に対して同一である、請求項９乃至１１のいずれか１項に記載の方法。
【請求項１３】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイル（Ｆ）を検索するための方法であって、ユーザ・デバイスによって実行される以下のステップ、すなわち、
前記ファイル（Ｆ）に対応しておりローカル・メモリ（ＬＭ）に格納されているファイル記述子において、前記ファイルを指定するｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを読み出し（５１）、プロバイダ識別子Ｏ１，・・・，Ｏｎを読み出すステップと、
前記ｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを、それぞれ、前記プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定される前記ストレージ・サービス・プロバイダに送る（５１）ステップと、
ｎ個の結合Ｃ１，・・・，Ｃｎを、前記プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定されるこれらのプロバイダから受け取る（５１）ステップと、
ｉ＝１，・・・，ｎに対して、前記ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ｂｉ１，・・・，ｂｉｎを検索するステップと、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の前記対応する組ｂｉ１，・・・，ｂｉｎと関連付ける（５２；６２；７２）ステップと、
前記ファイル（Ｆ）のチャンクＳ１，・・・，Ｓｎを、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ・Ｃｎとして計算する（５３；６３；７３）ステップと、
そして、前記ファイルＦを復元するために、前記チャンクＳ１，・・・，Ｓｎを再度組み立てる（５４；６４；７４）ステップと、
を含む方法において、
ｉ＝１，・・・，ｎに対して、前記ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ｂｉ１，・・・，ｂｉｎを検索するステップは、前記プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定される前記プロバイダからそれらを受け取る（５１）ステップを含み、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ｂｉ１，・・・，ｂｉｎと関連付ける（６２）ステップは、
前記ファイル（Ｆ）に対応する前記ファイル記述子において置換（σ）を読み出すステップと、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉが係数の前記対応する組ｂｉ１，・・・，ｂｉｎと関連付けられるように、ｉ＝１，・・・，ｎに対して、前記置換を係数の前記組ｂｉ１，・・・，ｂｉｎに適用するステップと、
を含む、方法。
【請求項１４】
ｉ＝１，・・・，ｎに対して、前記ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップは、前記プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定される前記プロバイダからそれらを受け取る（５１）ステップを含み、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ｂｉ１，・・・，ｂｉｎと関連付ける（５２）ステップは、前記結合Ｃｉを係数の前記組ｂｉ１，・・・，ｂｉｎと直接関連付けるステップを含む、請求項１３に記載の方法。
【請求項１５】
ｉ＝１，・・・，ｎに対して、前記ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ｂｉ１，・・・，ｂｉｎを検索するステップは、前記ファイル（Ｆ）に対応する前記ファイル記述子においてそれらを読み出すステップを含み、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組と関連付ける（７２）ステップは、ｉ＝１，・・・，ｎに対して、係数の前記組ｂｉ１，・・・，ｂｉｎを、前記結合Ｃｉに直接関連付けるステップを含む、請求項１３に記載の方法。
【請求項１６】
前記ｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎが所与のファイル（Ｆ）に対して同一（ＩＤ’）である、請求項１３乃至１５のいずれか１項に記載の方法。
【請求項１７】
コンピュータ上で実行されると、請求項１乃至１６のいずれか１項に記載の方法のすべての方法ステップを前記コンピュータに実行させる、マシン実行可能なプログラム命令の組を格納しているデジタル・データ・ストレージ媒体。
【請求項１８】
プログラムがコンピュータ上で動作されると請求項１乃至１６のいずれか１項に記載のステップを含む方法を実行するためのコンピュータ実行可能命令を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護することに関する。特に、本発明は、クラウド・ストレージに関係する。クラウド・ストレージは、一般に第三者によってホストされるストレージの仮想的なプールにデータが格納される、ネットワーク接続されたオンライン・ストレージのモデルである。ホスト側の企業が、大規模なデータ・センタを運営し、自らのデータがホストされることを必要とする人々は、ホスト側の企業から、ストレージ容量を購入またはリースする。データ・センタのオペレータは、バックグラウンドで、顧客の要求に従ってリソースを仮想化し、リソースをストレージ・プールとして公開するのであるが、顧客たちは、それを、ファイルやデータ・オブジェクトを格納するために、自分自身で用いることができる。物理的には、リソースが複数のサーバにまたがることがあり得る。
【０００２】
予防策が講じられない場合には、格納されているすべてのデータが、潜在的には（例えば、情報をクライアントの競合企業に転売するなどの）害意をもってそのデータを用いることができるクラウド・オペレータによって、アクセスされることが可能である。更に、クラウド・オペレータが正直者であるとしても、格納されているデータの機密性が、単独の企業ネットワークを攻撃するよりも複数の企業およびユーザのデータが集積されているデータ・センタを攻撃することにより大きな利益を有する攻撃者によって、損なわれる可能性がある。従って、ストレージ・サービス・プロバイダにおけるデータの機密性を保護する必要性が存在する。
【背景技術】
【０００３】
１つの既知の解決策は、そのストレージをアウトソースする前に、データを暗号化することから構成されている。この解決策の短所は、そのため（格納のための暗号化および検索のための復号化）にリソースが消費されることである。更に、そのためには、各データ・パケットを暗号化するのに用いられる複数の鍵を追跡するという鍵管理プロセスが必要となる。それは、更に、複数の鍵を安全に格納することを意味する。というのは、鍵が漏れた場合、それはデータへの完全なアクセスを与えることになるからである。
【０００４】
既知である別の解決策は、データを複数のチャンクに分割し、異なる複数のストレージ・サービス・プロバイダに、それらのいずれもが完全なデータへのアクセスを有することのないように、チャンクをそれぞれ格納することから構成される。この解決策は、各ストレージ・サービス・プロバイダは、そのストレージ・サービス・プロバイダが格納しているチャンクへのアクセスを有する、という短所を有する。よって、そのストレージ・サービス・プロバイダは、依然として、そのチャンクから何らかの機密情報を引き出すことができる。対抗策としては、各チャンクを更に暗号化することであるが、それには、先の解決策の短所が伴う。
【０００５】
既知である別の解決策が、ＰＡＵＬＯ  Ｆ  ＯＬＩＶＥＲＡおよび他による「ＧＬＯＢＥＣＯＭ  ２０１０，  ２０１０  ＩＥＥＥ  ＧＬＯＢＡＬ  ＴＥＬＥＣＯＭＭＵＮＩＣＡＴＩＯＮＳ  ＣＯＮＦＥＲＥＮＣＥ，  ＩＥＥＥ，  ＰＩＳＣＡＴＡＷＡＹ，  ＮＪ，  ＵＳＡ，  ６  Ｄｅｃｅｍｂｅｒ  ２０１０」における「Ｔｒｕｓｔｅｄ  Ｓｔｏｒａｇｅ  ｏｖｅｒ  Ｕｎｔｒｕｓｔｅｄ  Ｎｅｔｗｏｒｋｓ」という記事に記載されている。この解決策は、
セキュリティ・パラメータｎを選択し、ファイルをｎ個のチャンクＳ１，・・・，Ｓｎに分割するステップと、
ｊ＝１，・・・，ｎに対して、ｎ個の係数ａｊを、ランダムに、すべてのａｊが相互に異なるように、選択するステップと、
次に、ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、ファンデルモンド（Ｖａｎｄｅｒｍｏｎｄｅ）行列（ａｊｉ−１）を生成することによって、ｎ２個の係数ａｉｊを生成するステップと、
ｉ＝１，・・・，ｎに対して、ｎ個の１次結合Ｃｉ＝ａｉ１・Ｓ１＋・・・＋ａｉｊ・Ｓｊ＋・・・＋ａｉｎ・Ｓｎを計算するステップと、
２つの異なるストレージ・サービス・プロバイダを選択して、第１のストレージ・サービス・プロバイダに１次結合の一部を、第２のストレージ・サービス・プロバイダに残りの１次結合を格納するステップと、
を含む。
【０００６】
ｊ＝１，・・・，ｎとして、ランダムに選択されたｎ個の係数ａｊは、相互に異なっており相互に独立であるが、ｎ２個の係数ａｉｊのほとんどは、ファンデルモンド行列（ａｊｉ−１）を生成することによって得られているため、相互に独立でない。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ＰＡＵＬＯ  Ｆ  ＯＬＩＶＥＲＡ  ＥＴ  ＡＬ：  “Ｔｒｕｓｔｅｄ  Ｓｔｏｒａｇｅ  ｏｖｅｒ  Ｕｎｔｒｕｓｔｅｄ  Ｎｅｔｗｏｒｋｓ”，  ＧＬＯＢＥＣＯＭ  ２０１０，  ２０１０  ＩＥＥＥ  ＧＬＯＢＡＬ  ＴＥＬＥＣＯＭＭＵＮＩＣＡＴＩＯＮＳ  ＣＯＮＦＥＲＥＮＣＥ，  ＩＥＥＥ，  ＰＩＳＣＡＴＡＷＡＹ，  ＮＪ，  ＵＳＡ，  ６  Ｄｅｃｅｍｂｅｒ  ２０１０
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目標は、複数のストレージ・サービス・プロバイダに分散され格納されているデータの機密性を保護するためのより安全な技術的解決策を提供することである。
【０００９】
これは、本発明による方法を適用することによって、解決可能である。
【課題を解決するための手段】
【００１０】
本発明の第１の目的は、複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法であって、
セキュリティ・パラメータｎを選択するステップと、
ファイルをｎ個のチャンクＳ１，・・・，Ｓｎに分割するステップと、
ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、ｎ２個の係数ａｉｊを選択するステップと、
ｉ＝１，・・・，ｎに対して、ベクトルａｉ１，・・・，ａｉｎが１次独立であることを確認するステップであって、そうでない場合には、係数を再度生成するステップと、
ｉ＝１，・・・，ｎに対して、ｎ個の１次結合Ｃｉ＝ａｉ１・Ｓ１＋・・・＋ａｉｊ・Ｓｊ＋・・・＋ａｉｎ・Ｓｎを計算するステップと、
前記複数のストレージ・サービス・プロバイダの間で、ｎ個のストレージ・サービス・プロバイダＯ１，・・・，Ｏｎを選択するステップと、
前記ファイルを指定するｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを生成するステップと、
ｉ＝１，・・・，ｎに対して、ファイル識別子ＩＤ’ｉと関連するストレージ・サービス・プロバイダＯｉに、結合Ｃｉを格納するステップと、
ｉ＝１，・・・，ｎに対して、ファイル識別子ＩＤ’ｉとプロバイダ識別子Ｏｉとを、ファイルに対応しておりローカル・メモリに格納されているファイル記述子に格納するステップと、
ｉ＝１，・・・，ｎに対して、結合Ｃｉと再度関連付けられることが可能であるように、係数ａｉ１，・・・，ａｉｎの組を格納するステップと、
を含む方法において、
ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、前記ｎ２個の係数ａｉｊをランダムに選択するステップと、
ｉ＝１，・・・，ｎに対して、ベクトルａｉ１，・・・，ａｉｎが１次独立であることを確認するステップであって、そうでない場合には、係数を再度生成するステップと、
ｊ＝１，・・・，ｎに対して、ｎ個のスーパ係数ａ’１，・・・，ａ’ｊ，・・・，ａ’ｎをランダムに選択するステップと、
１次オーバ結合（ｌｉｎｅａｒ  ｏｖｅｒ−ｃｏｍｂｉｎａｔｉｏｎ）ＯＣ’＝ａ’１・Ｃ１＋・・・＋ａ’ｊ・Ｃｊ＋・・・＋ａ’ｎ・Ｃｎを計算するステップと、
ｊ＝１，・・・，ｎに対して、オーバ結合ＯＣ’と係数ａ’１，・・・，ａ’ｊ，・・・，ａ’ｎとを格納するステップと、
を更に含むことを特徴とする方法である。
【００１１】
分散され格納されるファイルのすべてのチャンクの１次結合Ｃｊを計算し、次いで、それらの結合を、複数のストレージ・サービス・プロバイダにそれぞれ格納するという事実により、暗号化または鍵の管理を必要とすることなく、ファイルの機密性が保護されるのであるが、その理由は、元のファイルの任意のチャンクを検索するためには、すべての結合を得ることが必要であるからである。よって、プロバイダは、ｎ個のプロバイダすべてが共謀しない限り、これらの結合からどの情報も抽出することができない。ｎ２個のランダムに選択された係数とオーバ結合とを用いるという事実により、セキュリティが向上する。
【００１２】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法の第１の特徴的な実施形態によれば、ｉ＝１，・・・，ｎに対して、結合Ｃｉと再度関連付けられることが可能であるように、係数の組ａｉ１，・・・，ａｉｎを格納するステップは、ｉ＝１，・・・，ｎに対して、結合Ｃｉおよびファイル識別子ＩＤ’ｉと関連して、ストレージ・サービス・プロバイダＯｉに、それらを格納するステップを含む。
【００１３】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法の第２の特徴的な実施形態によれば、ｉ＝１，・・・，ｎに対して、結合Ｃｉと再度関連付けられることが可能であるように、係数の組ａｉ１，・・・，ａｉｎを格納するステップは、
ｉ＝１，・・・，ｎおよび１≦ｋ≦ｎでありｉと異なるｋに対して、結合Ｃｋおよびファイル識別子ＩＤ’ｋと関連して、係数の組ａｉ１，・・・，ａｉｎを、ストレージ・サービス・プロバイダＯｋに格納するステップと、
ｉ＝１，・・・，ｎに対して、係数の組ａｉ１，・・・，ａｉｎと結合Ｃｉとを再度関連付けることを可能にする置換（ｐｅｒｍｕｔａｔｉｏｎ）を、ファイル（Ｆ）と対応しており前記ローカル・メモリに格納されている前記ファイル記述子に格納するステップと、
を含む。
【００１４】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法の第３の特徴的な実施形態によれば、ｉ＝１，・・・，ｎに対して、結合Ｃｉと再度関連付けられることが可能であるように、係数の組ａｉ１，・・・，ａｉｎを格納するステップは、ｉ＝１，・・・，ｎに対して、係数の組ａｉ１，・・・，ａｉｎを、ファイル識別子ＩＤ’ｉおよびプロバイダ識別子Ｏｉに関連して、ファイルに対応しており前記ローカル・メモリに格納されている前記ファイル記述子に格納するステップを含む。
【００１５】
本発明の別の目的は、本発明による方法によって保護されているファイルを検索するための方法であって、
ファイルに対応しておりローカル・メモリに格納されているファイル記述子において、前記ファイルを指定するｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを読み出し、プロバイダ識別子Ｏ１，・・・，Ｏｎを読み出すステップと、
ｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを、それぞれ、プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定されるストレージ・サービス・プロバイダに送るステップと、
ｎ個の結合Ｃ１，・・・，Ｃｎを、プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定されるプロバイダから受け取るステップと、
ｉ＝１，・・・，ｎに対して、ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップと、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ａｉ１，・・・，ａｉｎと関連付けるステップと、
ｉ＝１，・・・，ｎに対して係数のｎ個の組ｂｉ１，・・・，ｂｉｎから構成される別の行列を得るために、ｉ＝１，・・・，ｎに対して係数のｎ個の組ａｉ１，・・・，ａｉｎから構成される行列の逆行列を計算するステップと、
そして、前記ファイルＦのｎ個のチャンクＳ１，・・・，Ｓｎを、ｉ＝１，・・・，ｎに対してＳｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ・Ｃｎとして計算するステップと、
そして、ファイルＦを復元するために、チャンクＳ１，・・・，Ｓｎを再度組み立てるステップと、
を含む方法において、
ｊ＝１，・・・，ｎに対して、オーバ結合ＯＣ’と係数ａ’１，・・・，ａ’ｊ，・・・，ａ’ｎとを読み出すステップと、
ｉ＝１，・・・，ｎに対して係数のｎ個の組ｂｉ１，・・・，ｂｉｎから構成される別の行列を得るために、ｉ＝１，・・・，ｎ−１に対する係数のｎ−１個の組ａｉ１，・・・，ａｉｎと、ｊ＝１，・・・，ｎに対する１組の係数（ａ’１・ａ１ｊ＋・・・＋ａ’ｉ・ａｉｊ＋・・・＋ａ’ｎ・ａｎｊ）とから構成される行列の逆行列を計算するステップと、
そして、前記ファイル（Ｆ）のｎ個のチャンクＳ１，・・・，Ｓｎを、ｉ＝１，・・・，ｎに対して、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ−１・Ｃｎ−１＋ｂｉｎ・ＯＣ’として計算するステップと、
そして、ファイル（Ｆ）を復元するために、チャンクＳ１，・・・，Ｓｎを再度組み立てるステップと、
を更に含むことを特徴とする方法である。
【００１６】
ファイルを検索するための方法の第１の特徴的な実施形態によれば、ｉ＝１，・・・，ｎに対して、ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップは、プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定されるプロバイダからそれらを受け取るステップを含む。そして、ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ａｉ１，・・・，ａｉｎと関連付けるステップは、結合Ｃｉを係数の組ａｉ１，・・・，ａｉｎと直接関連付けるステップを含む。
【００１７】
ファイルを検索するための方法の第２の特徴的な実施形態によれば、ｉ＝１，・・・，ｎに対して、ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップは、プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定されるプロバイダからそれらを受け取るステップを含み、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ａｉ１，・・・，ａｉｎと関連付けるステップは、
前記ファイルに対応するファイル記述子において置換を読み出すステップと、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉが係数の対応する組ａｉ１，・・・，ａｉｎと関連付けられるように、ｉ＝１，・・・，ｎに対して、置換を係数のｎ個の組ａｉ１，・・・，ａｉｎに適用するステップと、
を含む。
【００１８】
ファイルを検索するための方法の第３の特徴的な実施形態によれば、ｉ＝１，・・・，ｎに対して、ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ａｉ１，・・・，ａｉｎを検索するステップは、前記ファイルに対応するファイル記述子においてそれらを読み出すステップを含み、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ａｉ１，・・・，ａｉｎと関連付けるステップは、ｉ＝１，・・・，ｎに対して、係数の組ａｉ１，・・・，ａｉｎを、結合Ｃｉに直接関連付けるステップを含む。
【００１９】
本発明の別の目的は、複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法であって、格納は一度だけ行われるが、検索は多くの回数または多くのエンティティによって行われるような状況に特によく適しており、
セキュリティ・パラメータｎを選択するステップと、
ファイルをｎ個のチャンクＳ１，・・・，Ｓｎに分割するステップと、
ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、ｎ２個の係数ａｉｊをランダムに選択するステップと、
ｉ＝１，・・・，ｎに対して、ベクトルａｉ１，・・・，ａｉｎが１次独立であることを確認するステップであって、そうでない場合には、係数を再度生成するステップと、
ｉ＝１，・・・，ｎに対して、ｎ個の１次結合Ｃｉ＝ａｉ１・Ｓ１＋・・・＋ａｉｊ・Ｓｊ＋・・・＋ａｉｎ・Ｓｎを計算するステップと、
前記複数のストレージ・サービス・プロバイダの間で、ｎ個のストレージ・サービス・プロバイダＯ１，・・・，Ｏｎを選択するステップと、
前記ファイルを指定するｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを生成するステップと、
ｉ＝１，・・・，ｎに対して、ファイル識別子ＩＤ’ｉと関連して、ストレージ・サービス・プロバイダＯｉに、結合Ｃｉを格納するステップと、
ｉ＝１，・・・，ｎに対して、ファイル識別子ＩＤ’ｉとプロバイダ識別子Ｏｉとを、ファイルに対応しておりローカル・メモリに格納されているファイル記述子に格納するステップと、
ｉ＝１，・・・，ｎに対して係数のｎ個の組ｂｉ１，・・・，ｂｉｎから構成される別の行列を得るために、ｉ＝１，・・・，ｎに対して係数のｎ個の組ａｉ１，・・・，ａｉｎから構成される行列の逆行列を計算するステップと、
ｉ＝１，・・・，ｎに対して、結合Ｃｉと再度関連付けられることが可能であるように、係数ｂｉ１，・・・，ｂｉｎの組を格納するステップと、
を含む方法である。
【００２０】
本発明の別の目的は、この直前の方法によって保護されているファイルを検索するための方法である。この方法は、
ファイル（Ｆ）に対応しておりローカル・メモリに格納されているファイル記述子において、前記ファイルを指定するｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを読み出し、プロバイダ識別子Ｏ１，・・・，Ｏｎを読み出すステップと、
ｎ個のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを、それぞれ、プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定されるストレージ・サービス・プロバイダに送るステップと、
ｎ個の結合Ｃ１，・・・，Ｃｎを、プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定されるこれらのプロバイダから受け取るステップと、
ｉ＝１，・・・，ｎに対して、ｎ個の結合Ｃ１，・・・，Ｃｎにそれぞれ対応する係数のｎ個の組ｂｉ１，・・・，ｂｉｎを検索するステップと、
ｉ＝１，・・・，ｎに対して、各結合Ｃｉを、係数の対応する組ｂｉ１，・・・，ｂｉｎと関連付けるステップと、
ｉ＝１，・・・，ｎに対して、前記ファイルのチャンクＳ１，・・・，Ｓｎを、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ・Ｃｎとして計算するステップと、
そして、ファイルＦを復元するために、チャンクＳ１，・・・，Ｓｎを再度組み立てるステップと、
を含む。
【００２１】
本発明の他の特徴および効果は、添付の図面と共に考察されることによって、本発明の実施形態に関する以下の詳細な説明から、より明らかになるであろう。
【００２２】
本発明の実施形態の特徴および効果を詳細に例証するために、以下の説明は、添付の図面を参照してなされる。可能な場合には、同様または類似の参照番号は、次の複数の図面および説明を通じて、同じまたは類似の構成要素を示す。
【図面の簡単な説明】
【００２３】
【図１】本発明によるファイルを保護するための方法の３つの実施形態に共通する第１のステップの図である。
【図２】本発明によるファイルを保護するための方法の３つの実施形態の１つに特有のステップの図である。
【図３】本発明によるファイルを保護するための方法の３つの実施形態の１つに特有のステップの図である。
【図４】本発明によるファイルを保護するための方法の３つの実施形態の１つに特有のステップの図である。
【図５】本発明によって保護されているファイルを検索するための方法の３つの実施形態の中の１つの図である。
【図６】本発明によって保護されているファイルを検索するための方法の３つの実施形態の中の１つの図である。
【図７】本発明によって保護されているファイルを検索するための方法の３つの実施形態の中の１つの図である。
【図８】本発明によるファイルを保護するための方法の３つの他の実施形態に共通である第１のステップの図である。これらの実施形態は、格納は一度だけ行われるが、検索は多くの回数または多くのエンティティによって行われるような状況に特によく適している。
【発明を実施するための形態】
【００２４】
図１は、本発明によるファイルを保護するための方法の３つの実施形態に共通するステップの図を示している。例えば、本発明者らは、ストレージに制約があるデバイス（例えば、携帯電話やタブレット）を有していて、大きなファイルの格納をアウトソースすることを希望しているユーザを考察する。このユーザは、彼／彼女が既にそこにアカウントを有していて、関連の契約を有していることにより用いることができるｍ個の利用可能なストレージ・サービス・プロバイダを知っていると、本発明者らは仮定する。
【００２５】
提案される方法は、デバイスに以下の手段が備わっていることを要求する。
１）一意的な識別子ＩＤを、ストレージ・サービス・プロバイダに分散され格納される各ファイルＦに関連付ける手段。このプロセスは、潜在的に複雑なものとなり得るが、ファイルの経路、またはタグ、またはファイル・システム・アーキテクチャと互換性を有する任意の他の既知の方法を用いることができる。
２）ユーザがセキュリティ・パラメータｎを選択することを可能にする入力手段。このパラメータは、各ファイルに対して異なり得る。ｎの値が大きければ、より多くの計算が伴うことになるが、より多くのセキュリティも伴う。そのため、ｎの値は、制限、機密、秘密、・・・など、望まれる機密性のレベルに従って、選択することができる。
３）提案されている方法を遂行するコンピュータ実行可能な命令を含むプログラムを実行する計算手段。
【００２６】
ステップ１：ユーザが、利用可能なストレージ・サービス・プロバイダの個数ｍよりも小さいか、またはｍと等しくなるように、セキュリティ・パラメータｎを選択する。
【００２７】
ステップ２：計算手段が、ファイルＦを、ｎ個のチャンクＳ１，・・・，Ｓｎに分割する。チャンクは、同じビット数を有していなければならない。チャンク当たりのビット数は、サイズ（Ｆ）／ｎよりも大きな最小の整数であり、演算がなされる体（ｆｉｅｌｄ）（係数が選択されるのと同じ体である）のサイズｐの倍数である。このプロセスは、同じサイズのｎ個のチャンクを有するために、ファイルのパディングを生じさせる。このタスクを実行するために、任意の標準的なパディング・アルゴリズムを、用いることができる。
【００２８】
ステップ３：計算手段が、ｉ＝１，・・・，ｎおよびｊ＝１，・・・，ｎに対して、ｎ２個の係数ａｉｊをランダムに選択する。次に、ｉ＝１，・・・，ｎに対して、選択されたベクトル（ａｉ１，・・・，ａｉｎ）が１次独立であることを確認し、１次独立でない場合には、計算手段は、係数を再度生成する（ベクトルの組は、その要素の１次結合としてのゼロ・ベクトルの表現だけが自明な解である場合に、およびその場合に限り、１次独立である）。
【００２９】
ステップ４：計算手段が、ｎ個の１次結合を、ｉ＝１，・・・，ｎに対して、Ｃｉ＝ａｉ１・Ｓ１＋・・・＋ａｉｊ・Ｓｊ＋・・・＋ａｉｎ・Ｓｎとして計算する。
【００３０】
ステップ５：計算手段が、それらの結合が格納されるｎ個のストレージ・サービス・プロバイダを選択する（ｎは、ｍよりも小さいか、またはｍに等しい）。計算手段は、ｍ個の利用可能なストレージ・サービス・プロバイダの間で、格納され保護されるファイルの識別子ＩＤの関数として、それらを選択する。計算手段は、選択されたストレージ・サービス・プロバイダを指定するそれぞれの識別子Ｏ１，・・・，Ｏｎを供給する。この選択を実行するためには、多くの可能性が存在する。ランダムな選択が最も簡単であるが、よりよい選択方針を有するためには、選択規準として、パフォーマンス（負荷の均衡）、コスト（各プロバイダでの料金設定）、またはセキュリティ（プロバイダの評判）を考慮に入れることも可能であろう。選択方針に応じて、１つの特定のプロバイダをローカルなホスト自体とすることが可能であろうし、ある与えられたプロバイダを、複数回選択することも可能であろう（ただし、それによって、セキュリティが低下することがあり得る）。
【００３１】
次の複数のステップは、図２、３、４によってそれぞれ示されているステップ６ａ、ステップ６ｂ、ステップ６ｃと称される３つのバリアントに従って、行うことが可能である。
【００３２】
図２は、ステップ６ａを示す。すなわち、
計算手段は、やはりファイルＦを指定しているがローカルなファイル識別子ＩＤとは異なる新たな一意的なファイル識別子ＩＤ’を、ローカルな識別子ＩＤの関数として、生成する。この関数は、ＩＤ’が与えられた場合に、ＩＤを回復することを許容してはならないが、その理由は、この関数が、本質的に、例えばハッシュ関数のような一方向関数であるからである。この新たなファイル識別子ＩＤ’は、すべてのストレージ・サービス・プロバイダに公開される。
計算手段は、ｉ＝１，・・・，ｎとして、プロバイダＯｉに、
結合Ｃｉと、
係数の組ａｉ１，・・・，ａｉｎと、
ファイル識別子ＩＤ’と、
を送る。
プロバイダＯｉは、結合Ｃｉと係数の組ａｉ１，・・・，ａｉｎとを、ファイル識別子ＩＤ’と関連させて格納する。
計算手段は、ローカル・メモリＬＭに、ファイルＦに対する非常に簡略なファイル記述子をローカルに格納する。このファイル記述子は、ファイルＦを指定する識別子ＩＤ’と、選択されたストレージ・サービス・プロバイダを指定するプロバイダ識別子Ｏ１，・・・，Ｏｎとを含む。
【００３３】
このバリアントａの改善策によれば、同じファイルＦに対して、一意的なファイル識別子ＩＤ’を、異なる複数のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎによって置き換えることも可能である。これらのファイル識別子ＩＤ’１，・・・，ＩＤ’ｎは、それぞれが、ｎ個の選択されたプロバイダそれぞれにおいて、ローカル・メモリＬＭのファイルＦに対応するファイル記述子に格納される。この改善策により、プロバイダが共謀する場合に、結合をリンクすることがより困難になる。
【００３４】
図３は、ステップ６ｂを示す。すなわち、
計算手段は、例えばハッシュ関数のような一方向関数によるローカルな識別子ＩＤの関数として、しかしローカルなファイル識別子ＩＤとは異なっており、やはりファイルＦを指定する新たなファイル識別子ＩＤ’を生成する。この新たなファイル識別子ＩＤ’は、すべてのストレージ・サービス・プロバイダに公開される。
計算手段は、ｉ＝１，・・・，ｎとして、プロバイダＯｉに、
ファイルＦを指定する新たなファイル識別子ＩＤ’と、
結合Ｃｉと、
１≦ｋ≦ｎであり、ｉとは異なるｋに対して、別の結合Ｃｋに対応する係数の組ａｋ１，・・・，ａｋｎと、
を送る。
係数の組ａｋ１，・・・，ａｋｎは、ｉ＝１，・・・，ｎとして、ベクトル（ａｉ１，・・・，ａｉｎ）に適用された置換σによって決定される。すなわち、次の通りである。
（ａｋ１，・・・，ａｋｎ）＝（ａσ（ｎ）１，・・・，ａσ（ｎ）ｉ，・・・，ａσ（ｎ）ｎ）＝結合Ｃσ（ｉ）に対応する係数
【００３５】
他方で、ｉ＝１，・・・，ｎとすると、結合Ｃσ（ｉ）は、プロバイダＯσ（ｉ）において、係数の組ａｉ１，・・・，ａｉｎと関連して、格納される。計算手段は、１からｎまでの整数に対する置換σを定義する。基本的には、この置換は、１からｎまでのすべての整数を順序通りではない態様で含むアレイ（σ（１），・・・，σ（ｉ），・・・，σ（ｎ））として、表現され得る。
計算手段は、ｉ＝１，・・・，ｎとして、プロバイダＯｉに、
ファイルＦを指定する新たなファイル識別子ＩＤ’と、
結合Ｃｉと、
係数の組ａｋ１，・・・，ａｋｎと、
を、関連させて、格納する。
計算手段は、ローカル・メモリＬＭに、ファイルＦに対する非常に簡略なファイル記述子をローカルに格納する。このファイル記述子は、
ファイルＦを指定する識別子ＩＤ’と、
選択されたストレージ・サービス・プロバイダの識別子Ｏ１，・・・，Ｏｎと、
（例えば、先に説明したアレイの形式での）置換σと、
を含む。
【００３６】
このバリアントａの改善策によれば、同じファイルＦに対して、一意的なファイル識別子ＩＤ’を、異なる複数のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎによって置き換えることも可能である。これらのファイル識別子ＩＤ’１，・・・，ＩＤ’ｎは、ｎ個の選択されたプロバイダそれぞれにおいて、ローカル・メモリＬＭのファイルＦに対応するファイル記述子に、それぞれ格納される。この改善策により、プロバイダが共謀する場合に、結合をリンクすることがより困難になる。
【００３７】
図４は、ステップ６ｃを示す。すなわち、
計算手段は、同じファイルＦに対し、例えばハッシュ関数のような一方向関数によるローカルな識別子ＩＤの関数として、異なる複数のファイル識別子ＩＤ’１，・・・，ＩＤ’ｎを生成する。計算手段は、ｉ＝１，・・・，ｎとして、プロバイダＯｉに、ファイル識別子ＩＤ’ｉと結合Ｃｉとを送るが、係数の組については、まったく送らない。
このバリアントｃによれば、計算手段は、ローカル・メモリＬＭに、より大きなファイル記述子をローカルに格納する。ｉ＝１，・・・，ｎに対し、このファイル記述子は、トリプレットを含むのであるが、各トリプレットは、ｉ＝１，・・・，ｎに対して、
ファイルＦを指定する識別子ＩＤ’ｉと、
サービス・プロバイダ識別子Ｏｉと、
結合Ｃｉを構築するのに用いられた係数の組ａｉ１，・・・，ａｉｎと、
を含む。
【００３８】
図５、６、７は、本発明によって保護されているファイルを検索するための方法の３つの実施形態を、それぞれ示す。検索は、ファイルを保護するための上述したステップ６のバリアント６ａ、６ｂ、６ｃに対応する３つのバリアントａ、ｂ、ｃに従って、行われ得る。
【００３９】
図５は、バリアントａを示す。すなわち：
ファイルＦを復元するために、デバイスの計算手段は、ある結合とこの結合に対応する係数の組とを、ｎ個の選択されたストレージ・サービス・プロバイダのそれぞれに（任意の順序で）リクエストする。
【００４０】
ステップ５１：計算手段が、ローカル・メモリＬＭにおいて、ファイルＦに対応するファイル記述子に登録されているファイル識別子ＩＤ’とプロバイダ識別子Ｏ１，・・・，Ｏｎとを読み出す。計算手段は、識別子ＩＤ’を、ｉ＝１，・・・，ｎに対するストレージ・サービス・プロバイダＯｉに送る。
【００４１】
ステップ５２：次に、計算手段は、ｉ＝１，・・・，ｎに対するプロバイダＯｉから、
結合Ｃｉと、
係数の対応する組ａｉ１，・・・，ａｉｎと、
を受け取る。
結合Ｃｉは、ファイルＦを検索するプロセスのために、係数の組ａｉ１，・・・，ａｉｎと直接関連付けられている。
【００４２】
ステップ５３：次に、計算手段は、行列Ａ＝（ａｉｊ）の逆行列を計算し、行列Ｂ＝（ｂｉｊ）を得る。次に、計算手段は、元のチャンクを、ｉ＝１，・・・，ｎに対して、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ・Ｃｎとして、計算する。
【００４３】
ステップ５４：次に、計算手段は、チャンクＳ１，・・・，Ｓｎを再組み立てし、ファイルＦを復元するために、可能な限りパディングを除去する。
【００４４】
同じファイルＦに対して異なる識別子ＩＤ’１，・・・，ＩＤ’ｎが各プロバイダにそれぞれ格納されている場合には、検索方法が修正されることに注意すべきである。その理由は、検索方法が、ローカル・メモリＬＭに格納されているファイル記述子において異なる識別子ＩＤ’１，・・・，ＩＤ’ｎを読み出し、一意的な識別子ＩＤ’を送る代わりに、識別子ＩＤ’１，・・・，ＩＤ’ｎをｎ個の選択されたプロバイダにそれぞれ送ることから構成される修正されたステップ５１を含むからである。
【００４５】
図６は、バリアントｂを示す。すなわち：
ファイルＦを復元するために、デバイスの計算手段は、ある結合と係数の組とを、ｎ個の選択されたストレージ・サービス・プロバイダのそれぞれに（任意の順序で）リクエストする。しかし、計算手段は、各結合を、この結合を計算するために用いられた係数の対応する組と再度関連付けなければならないのであり、その理由は、この結合と係数のこの組とは、同じストレージ・サービス・プロバイダに格納されたのではなかったからである。（Ｏｉによって格納されている係数の組に対応する）結合Ｃσ（ｉ）がプロバイダＯσ（ｉ）に格納されているため、置換σが再度用いられなければならない。
【００４６】
ステップ６１：
計算手段が、ローカル・メモリＬＭにおいて、ファイルＦに対応するファイル記述子に登録されているファイル識別子ＩＤ’と、プロバイダ識別子Ｏ１，・・・，Ｏｎと、置換σと、を読み出す。
計算手段は、識別子ＩＤ’を、プロバイダ識別子Ｏ１，・・・，Ｏｎによって指定されているｎ個のストレージ・サービス・プロバイダに送る。
計算手段は、ｉ＝１，・・・，ｎに対するプロバイダＯｉから、
結合Ｃｉと、
係数の組ａσ（ｉ）１，・・・，ａσ（ｉ）ｎと、を受け取る。
【００４７】
ステップ６２：次に、計算手段は、ｉ＝１，・・・，ｎに対し、結合Ｃｉと係数の対応する組ａｉ１，・・・，ａｉｎとを、置換手段σによって、再度関連付ける。
【００４８】
ステップ６３：次に、計算手段は、行列Ａ＝（ａｉｊ）の逆行列を計算し、行列Ｂ＝（ｂｉｊ）を得る。そして、計算手段は、元のチャンクを、ｉ＝１，・・・，ｎに対して、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ・Ｃｎとして、計算する。
【００４９】
ステップ６４：次に、計算手段は、ｎ個のチャンクＳ１，・・・，Ｓｎを組み立て、可能な限りパディングを除去することによって、ファイルＦを復元する。
【００５０】
図７は、バリアントｃを示す。すなわち：
ファイルＦを復元するために、デバイスの計算手段は、ある結合とこの結合に対応する係数の組とを、ｎ個の選択されたストレージ・サービス・プロバイダのそれぞれに（任意の順序で）リクエストする。
【００５１】
ステップ７１：計算手段が、ローカル・メモリＬＭにおいて、ファイルＦに対応するファイル記述子に登録されているファイル識別子ＩＤ’１，・・・，ＩＤ’ｎと、プロバイダ識別子Ｏ１，・・・，Ｏｎとを読み出す。
計算手段は、ファイル識別子ＩＤ’ｉを、ｉ＝１，・・・，ｎに対するプロバイダＯｉに送る（ｎ個の識別子ＩＤ’１，・・・，ＩＤ’ｎは、相互に異なる）。
それに応答して、計算手段は、ｉ＝１，・・・，ｎに対するプロバイダＯｉから、結合Ｃｉを受け取る。
【００５２】
ステップ７２：計算手段は、ローカル・メモリＬＭにおいて、係数の組ａｉ１，・・・，ａｉｎを読み出す。結合Ｃｉは、ｉ＝１，・・・，ｎに対して、係数の組ａｉ１，・・・，ａｉｎと直接に関連している。
【００５３】
ステップ７３：次に、計算手段は、行列Ａ＝（ａｉｊ）の逆行列を計算し、行列Ｂ＝（ｂｉｊ）を得る。次に、計算手段は、ｎ個の元のチャンクを、ｉ＝１，・・・，ｎに対して、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ・Ｃｎとして、計算する。
【００５４】
ステップ７４：次に、計算手段は、ｎ個のチャンクＳ１，・・・，Ｓｎを組み立て、可能な限りパディングを除去することによって、ファイルＦを復元する。
【００５５】
セキュリティ：
すべてのバリアントにおいて、方式の基本的なセキュリティは、結合Ｃ１，・・・，Ｃｎがすべてなければ、どのチャンクＳ１を復元することも不可能である、という事実に存する。従って、オペレータたちがファイルＦの機密性を破る唯一の可能性は、全員で共謀することである。
【００５６】
バリアントａ、ｂおよびｃは、ｎ人のオペレータ全員が共謀している場合、異なるレベルのセキュリティを提供する。すなわち、
バリアントａ：彼ら全員が共謀する場合には、彼らはすべての結合と係数のすべての組とを得ることになり、従って、彼らはファイルＦ全体を検索することができる。
【００５７】
バリアントｂ：彼ら全員が共謀する場合には、彼らは結合と係数とをすべて得るが、ただし、結合と係数との間の対応を知ることはない。Ｆを検索するためには、彼らは、ｎ！通りの対応可能性をすべて試みなければならない。ｎが十分に大きな場合、処理コストが、現実問題としては法外な額になる。
【００５８】
バリアントｃ：彼ら全員が共謀する場合には、彼らは結合を得るが、係数の組を知らないため、係数のすべての可能性がある組を試みない限り、ファイルＦを検索することはできない。そして、係数のすべての可能性がある組を試みることは、計算論的に実行不可能であることが判明している（各係数がサイズｐである体に属する場合には、ｐｎ個の可能性が存在するため、ｐおよびｎを注意深く選択することにより、容易に、このｐｎの値が処理能力を超えるようにすることができる）。このバリアントｃは、最高レベルのセキュリティを与えるのであるが、デバイスが係数をローカルに格納することを要求する。他方で、バリアントａおよびｂでは、デバイスは、追加的な情報をいっさい格納する必要がない。
【００５９】
弾力性（オプションである改善策）：
この方法の唯一の弱点は、１人のオペレータＯｉが結合Ｃｉを失う（または破損する）と、ファイルＦを検索することが不可能になることである。
【００６０】
この短所を回避するための第１の改善策は、ｎ個ではなくｎ＋ｋ個の結合を生成し、それらをｎ＋ｋ人のオペレータのところに格納することから構成される。すると、ｎ＋ｋ個の結合の中から任意のｎ個の結合を検索することが可能であり、ファイルＦを復元するのに十分である。これは、ｋ個までのストレージ・サービス・プロバイダであれば、それらの故障からの回復が可能であることを意味する。
ｎ＋ｋ人のオペレータの場所で格納するときには、セキュリティは、同じままである。すなわち、この方式を破るには、少なくともｎ人のオペレータが共謀しなければならない。この解決策は、バリアントａおよびｃにうまく適用される。
【００６１】
バリアントｃに対する異なる改善策は、この短所を回避するために、少なくとも１つの（本発明者らが、オーバ結合と称する）追加的な結合を実行中に生成することで構成されるのであるが、これは、元のファイルＦの復元を要求しなくとも、実行可能である。オーバ結合ＯＣ’とは、ｉ＝１，・・・，ｎに対して、結合Ｃｉの１次結合である。この改善策は、
ｉ＝１，・・・，ｎに対して、（本発明者らがスーパ係数と称する）ｎ個の係数の組ａ’ｊをランダムに選択するステップと、
１次オーバ結合ＯＣ’＝ａ’ｉ・Ｃ１＋・・・＋ａ’ｊ・Ｃｊ＋・・・＋ａ’ｎ・Ｃｎを計算するステップと、
このオーバ結合ＯＣ’とｎ個のスーパ係数ａ’ｊとを格納するステップと、
を含む。
【００６２】
ｎ個のスーパ係数ａ’ｊとオーバ結合ＯＣ’とは、計算手段とメモリとを備えた任意のエンティティによって、生成され格納され得る。本発明者らは、それを、「オーケストレータ」と称するが、その理由は、それが、弾力性を保証するために、結合およびオーバ結合の検索を管理するからである。オーケストレータは、ネットワークにおいて任意の場所に配置され得る。すなわち、
それは、異なるクラウド・サービス・プロバイダに存在し得る、または、ｉ＝１，・・・，ｎに対して、結合Ｃｉを格納するのに用いられるｎ個のストレージ・サービス・プロバイダの中の１つとできるだけ同じ場所に配置され得る。
それは、ユーザ・デバイスに存在し得る。
それは、また、ユーザ・デバイスとストレージ・オペレータとの間、例えば、セットトップ・ボックスに存在し得る。
【００６３】
機能的には、オーケストレータとは、ソースによって必ずしも信頼されることなく、データの利用可能性を管理する責任を有する仲介役（ｉｎｔｅｒｍｅｄｉａｒｙ）である。この解決策は、よって、バリアントｃに非常によく適合し、オーケストレータには、ｉ＝１，・・・，ｎに対して、係数ａｉ１，・・・，ａｉｎを伴わないｎ個の結合Ｃ１，・・・，Ｃｊ，・・・，Ｃｎが与えられる。
【００６４】
元のファイルＦを検索することは、上述した方法と類似の方法によって実行されるのであるが、その理由は、１次オーバ結合ＯＣ’＝ａ’１・Ｃ１＋・・・＋ａ’ｊ・Ｃｊ＋・・・＋ａ’ｎ・Ｃｎは、また、ｉ＝１，・・・，ｎに対するセグメントＳｉの１次結合でもあるからである。実際、ｉ＝１，・・・，ｎに対して、Ｃｉ＝ａｉ１・Ｓ１＋・・・＋ａｉｊ・Ｓｊ＋・・・＋ａｉｎ・Ｓｎである。セグメントＳｉに関する対応する係数は、このように、Ｃｉに関するオーバ結合ＯＣ’の係数ａ’ｉとセグメントＳｉに関する結合Ｃｉの係数ａｉｊとを乗算することによって、得られる。
【００６５】
本発明者らは、セグメントＳｉに関するオーバ結合ＯＣ’を次のように、表現することができる。すなわち、ｉ＝１，・・・，ｎとして、Ｃ’＝（ａ’１・ａ１１＋・・・＋ａ’ｉ・ａｉ１＋・・・＋ａ’ｎ・ａｎ１）・Ｓ１＋・・・＋（ａ’１・ａ１ｊ＋・・・＋ａ’ｉ・ａｉｊ＋・・・＋ａ’ｎ・ａｎｊ）・Ｓｊ＋・・・＋（ａ’１・ａ１ｎ＋・・・＋ａ’ｉ・ａｉｎ＋・・・＋ａ’ｎ・ａｎｎ）・Ｓｎである。
よって、検索は、ある行列の逆行列を計算することによって、行い得る。
【００６６】
例えば、クラウドにおけるデータの弾力性を管理するオーケストレータは、結合Ｃ１，・・・，Ｃｊ，・・・，Ｃｎを格納するためのメモリと、
ｎ個のスーパ係数ａ’１，・・・，ａ’ｎを生成し、
スーパ結合ＯＣ’＝ａ’１・Ｃ１＋・・・＋ａ’ｊ・Ｃｊ＋・・・＋ａ’ｎ・Ｃｎを計算するための計算手段とを備えている。
（オプションであるが、それは、複数のスーパ結合を計算するためのスーパ係数の複数の組を生成することができる。すなわち、ある１つのオーバ結合が、ただ１つのストレージ・サービス・プロバイダの損失を回避することを可能にし、他方で、ｋ個のオーバ結合が、ｋ個のストレージ・サービス・プロバイダの損失を回避することを可能にする。）オーバ結合ＯＣ’は、次に、異なるストレージ・プロバイダに格納される。オーケストレータは、ストレージ・プロバイダに格納されている結合の利用可能性をモニタする。オーケストレータは、欠陥のあるストレージ・オペレータを検出すると常に、追加的なオーバ結合を生成して、それを別のストレージ・プロバイダに格納する。
【００６７】
元のファイルＦを検索するために、ユーザ・デバイスは、オーケストレータからの（識別子ＩＤ’によって指定される）ファイルＦの検索をリクエストする。
オーケストレータは、ｎ個の結合を、ｎ人のストレージ・オペレータにそれぞれリクエストする。
ｎ人のストレージ・オペレータが正常に働いている場合には、オーケストレータは、ｎ個の結合Ｃ１，・・・，Ｃｊ，・・・，Ｃｎを受け取る。オーケストレータは、それらを、ユーザ・デバイスに転送する。この後者は、上で説明されているように、ファイルＦを復元することができる。
ｎ人のストレージ・オペレータの中の１人がもはや働いていない場合には、オーケストレータは、ｎ−１個の結合Ｃ１，・・・，Ｃｊ，・・・，Ｃｎ−１を受け取るのであるが、その理由は、結合Ｃｎを格納したストレージ・プロバイダが機能していないからである。次に、オーケストレータは、それらを、（対応するストレージ・プロバイダからフェッチされた）オーバ結合ＯＣ’およびスーパ係数ａ’１，・・・，ａ’ｎと共に、ユーザ・デバイスに転送する。
【００６８】
ユーザ・デバイスの計算手段は、すべてのセグメントＳ１，・・・，Ｓｎを検索するのであるが、この検索は、次のことによって、行われる。
チャンクＣｉに対し、ｊ＝１，・・・，ｎとして、直接に（ａｉｊ）であるか、または、オーバ結合ＯＣ’に対して、ｊ＝１，・・・，ｎとして、（ａ’１・ａ１ｊ＋・・・＋ａ’ｉ・ａｉｊ＋・・・＋ａ’ｎ・ａｎｊ）である検索されたフラグメントの係数によって構成される行列の逆行列を計算すること。なお、この逆行列の計算により、計算手段は、ｉ＝１，・・・，ｎとして、係数のｎ個の組ｂｉ１，・・・，ｂｉｎから構成される別の行列を得る。
次に、前記ファイルＦのｎ個のチャンクＳ１，・・・，Ｓｎを、Ｓｉ＝ｂｉ１・Ｃ１＋・・・＋ｂｉｊ・Ｃｊ＋・・・＋ｂｉｎ・ＯＣ’として計算すること。
次に、チャンクＳ１，・・・，Ｓｎを再度組み立て、パディングを除去して、ファイルＦを復元すること。
【００６９】
１つのオーバ結合を用いて先に示された計算は、直截な方法で、複数のオーバ結合の場合に一般化することが可能である。Ｍ個のスーパ結合は、Ｍ人までのストレージ・オペレータが失敗をした場合を修復することを可能にする。ｋ人のストレージ・オペレータが失敗した場合には（ただし、ｋ＜Ｍ）、ｎ−ｋ個のチャンク（および係数のｎ−ｋ個の組）と（その関連する係数を用いた）ｋ個のオーバ結合とが、逆行列の計算に用いられる。ｉ＝１，・・・，ｎとして、オーバ結合は、公式Ｃ’＝（ａ’１・ａ１１＋・・・＋ａ’ｉ・ａｉ１＋・・・＋ａ’ｎ・ａｎ１）・Ｓ１＋・・・＋（ａ’１・ａ１ｊ＋・・・＋ａ’ｉ・ａｉｊ＋・・・＋ａ’ｎ・ａｎｊ）・Ｓｊ＋・・・＋（ａ’１・ａ１ｎ＋・・・＋ａ’ｉ・ａｉｎ＋・・・＋ａ’ｎ・ａｎｎ）・Ｓｎによって、元の結合として表すことができるので、失われた結合の代わりにオーバ結合を用いることに何も困難はなく、両者は、同じ方法で処理される。
【００７０】
バリアントｂは、逆に、ｎ個のチャンクに対して、ｎ個の結合とｎ２個の係数とを用いて、厳密に設計されている。結合の損失に対する弾力性は、別の方法によって、冗長性や誤り符号化を通じて提供されるのであるが、提案されている方法の内在的な特徴として提供されるのではない。
【００７１】
パフォーマンス・トレードオフ（オプションである改善）：
提案されている方法の重要な態様は、その効率と、その方法がセキュリティとパフォーマンスとを調停するという事実とである。この態様を更に強調するために、本発明者らは、データを格納するユーザ（本発明者らは、簡潔にする目的で、そのようなユーザを、ソースと称する）とデータを検索するユーザ（彼らは必ずしもデータを格納する者とは同じではないので、本発明者らは、そのようなユーザを、フェッチャと称する）との間での計算に関する追加的なトレードオフを提供することができる。上述した実施形態では、ソースは結合を実行し、フェッチャは逆行列の計算を意味する復元を実行するので、労力は、ソースとフェッチャとの間で二分化されている。しかし、ソースが結合を計算し、更に逆行列を事前に計算して、直接の係数ａｉｊの代わりに、逆行列の係数ｂｉｊを、ストレージ・サービス・プロバイダまたはローカル・メモリＬＭのいずれかに直接格納することを、本発明者らは、提案することも可能である。こうすると、フェッチャが、逆行列を直接に検索して、ファイルＦを復元するために、単純な行列の乗算を実行することが可能になる。このような動作モードは、ソースに対する計算上の負担を増加させるが、フェッチャに対しては計算上の負担を劇的に軽減するため、格納は一度だけ行われるのであるが検索は多くの回数または多くのエンティティによって行われるような状況に、特に適している。この動作モードは、３つのアプローチ（ａ）、（ｂ）および（ｃ）のすべてと互換性を有する。
【００７２】
図８は、本発明に従ってファイルを保護するための方法の３つの実施形態に共通である第１のステップを示しており、これらの実施形態は、格納は一度行われるのであるが、検索は多くの回数または多くのエンティティによって行われるような状況に、特によく適している。第１のステップは、逆行列を事前に計算し、直接の係数ａｉｊの代わりに逆行列の係数ｂｉｊを直接に格納するために、修正されている。ｎ２個の係数ａ１１，・・・，ａｉｊ，・・・，ａｎｎを提供するステップ３と、これらの係数をプロバイダまたはローカル・メモリＬＭのいずれかに格納するステップ６ａ、６ｂまたは６ｃとの間に、ステップ４’が導入されている。
ファイルＦの検索に関しては、復元ステップ５３、６３、７３が、行列Ａ＝（ａｉｊ）の逆行列の計算を抑制するように修正されているが、その理由は、計算手段が、プロバイダまたはローカル・メモリＬＭのいずれかから、行列Ｂ＝（ｂｉｊ）を直接に受け取るからである。
【００７３】
最後の注意は、（ファイル記述子は異なるサイズを有しており異なる情報を含んでいるにもかかわらず）３つのバリアントすべてにおいて、デバイスが格納しなければならないファイル記述子を格納するローカル・メモリに関係するものである。これらの記述子を格納する複数の可能性が存在し、それらの可能性は、異なるセキュリティ・レベルに遭遇する。記述子は、実際には、
スマート・カードなど改竄防止機能を有するハードウェアに、
それへの更なるアクセスを物理的に防止するために、記述子が格納された後で取り除かれ得るローカルな取り外し可能なストレージ・デバイス（例えば、ＵＳＢ鍵、ポータブル・ハードドライブなど）に、
インターネット・サービス・プロバイダによって管理される安全なストレージ・スペース（例えば、セットトップ・ボックス）に、
単純なローカル・ストレージ・デバイス（例えば、ラップトップのハードドライブ）に、
例えばクラウドなど、更に別のストレージ・サービス・プロバイダに、
格納され得る。
【００７４】
最初の２つのオプションは、バリアントｃと組み合わせると、秘密性が非常に高い文書に対して特に適切である。他方で、最後のオプションは、バリアントａと組み合わせて、それほど高度には機密扱いではないデータであり、この最後のプロバイダが以前のプロバイダと共謀していないことがある程度保証されている場合を除いては、用いられるべきではない。
【図１】
0005944047.tif 000002
【図２】
0005944047.tif 000003
【図３】
0005944047.tif 000004
【図４】
0005944047.tif 000005
【図５】
0005944047.tif 000006
【図６】
0005944047.tif 000007
【図７】
0005944047.tif 000008
【図８】
0005944047.tif 000009