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

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

▶ アルカテル−ルーセントの特許一覧

特許5944047複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法
<>
  • 特許5944047-複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法 図000002
  • 特許5944047-複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法 図000003
  • 特許5944047-複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法 図000004
  • 特許5944047-複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法 図000005
  • 特許5944047-複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法 図000006
  • 特許5944047-複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法 図000007
  • 特許5944047-複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法 図000008
  • 特許5944047-複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5944047
(24)【登録日】2016年6月3日
(45)【発行日】2016年7月5日
(54)【発明の名称】複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護するための方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20160621BHJP
   G06F 12/00 20060101ALI20160621BHJP
【FI】
   G06F21/62 318
   G06F12/00 545A
【請求項の数】18
【全頁数】23
(21)【出願番号】特願2015-511969(P2015-511969)
(86)(22)【出願日】2013年4月18日
(65)【公表番号】特表2015-516638(P2015-516638A)
(43)【公表日】2015年6月11日
(86)【国際出願番号】EP2013058075
(87)【国際公開番号】WO2013171017
(87)【国際公開日】20131121
【審査請求日】2015年1月7日
(31)【優先権主張番号】12305544.4
(32)【優先日】2012年5月16日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】391030332
【氏名又は名称】アルカテル−ルーセント
(74)【代理人】
【識別番号】100094112
【弁理士】
【氏名又は名称】岡部 讓
(74)【代理人】
【識別番号】100106183
【弁理士】
【氏名又は名称】吉澤 弘司
(74)【代理人】
【識別番号】100170601
【弁理士】
【氏名又は名称】川崎 孝
(74)【代理人】
【識別番号】100187964
【弁理士】
【氏名又は名称】新井 剛
(72)【発明者】
【氏名】シクファ,アブドゥルラティフ
(72)【発明者】
【氏名】パピヨン,セルジュ
【審査官】 金沢 史明
(56)【参考文献】
【文献】 特開2004−118239(JP,A)
【文献】 特開2003−296179(JP,A)
【文献】 特開2007−242019(JP,A)
【文献】 特開2001−358709(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 12/00
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイル(F)の機密性を保護するための方法であって、ユーザ・デバイスによって実行される以下のステップ、すなわち、
前記ファイルをn個のチャンクS,・・・,Sに分割する(2)ステップと、
i=1,・・・,nおよびj=1,・・・,nに対して、n個の係数aijを選択する(3)ステップと、
i=1,・・・,nに対して、ベクトルai1,・・・,ainが1次独立であることを確認する(3)ステップであって、そうでない場合には、前記係数を再度生成するステップと、
i=1,・・・,nに対して、n個の1次結合C=ai1・S+・・・+aij・S+・・・+ain・Sを計算する(4)ステップと、
前記複数のストレージ・サービス・プロバイダの間で、n個のストレージ・サービス・プロバイダO,・・・,Oを選択する(5)ステップと、
前記ファイル(F)を指定するn個のファイル識別子ID’,・・・,ID’を生成する(6a;6b;6c)ステップと、
i=1,・・・,nに対して、前記ファイル識別子ID’と関連して、前記ストレージ・サービス・プロバイダOに、前記結合Cを格納する(6a;6b;6c)ステップと、
i=1,・・・,nに対して、前記ファイル識別子ID’と前記プロバイダ識別子Oとを、前記ファイル(F)に対応しておりローカル・メモリ(LM)に格納されているファイル記述子に格納するステップと、
i=1,・・・,nに対して、前記結合Cと再度関連付けられることが可能であるように、係数の組ai1,・・・,ainを格納するステップと、
を含む方法において、
i=1,・・・,nおよびj=1,・・・,nに対して、n個の係数aijを選択する(3)ステップは、
i=1,・・・,nおよびj=1,・・・,nに対して、前記n個の係数aijをランダムに選択する(3)ステップと、
i=1,・・・,nに対して、ベクトルai1,・・・,ainが1次独立であることを確認する(3)ステップであって、そうでない場合には、前記係数を再度生成するステップと、
j=1,・・・,nに対して、n個のスーパ係数a’,・・・,a’,・・・,a’をランダムに選択するステップと、
1次オーバ結合OC’=a’・C+・・・+a’・C+・・・+a’・Cを計算するステップと、
j=1,・・・,nに対して、前記オーバ結合OC’と前記係数a’,・・・,a’,・・・,a’とを、前記n個のストレージ・サービス・プロバイダとは異なるストレージ・サービス・プロバイダに格納するステップと、
を含み、
i=1,・・・,nに対して、前記結合Cと再度関連付けられることが可能であるように、係数の前記組ai1,・・・,ainを格納するステップは、
i=1,・・・,nおよび1≦k≦nでありiと異なるkに対して、結合Cおよびファイル識別子ID’と関連して、係数の前記組ai1,・・・,ainを、前記ストレージ・サービス・プロバイダOに格納する(6b)ステップと、
i=1,・・・,nに対して、係数の前記組ai1,・・・,ainと前記結合Cとを再度関連付けることを可能にする置換(σ)を、前記ファイル(F)に対応しており前記ローカル・メモリ(LM)に格納されている前記ファイル記述子に格納する(6b)ステップと、
を含む、方法。
【請求項2】
i=1,・・・,nに対して、前記結合Cと再度関連付けられることが可能であるように、係数の前記組ai1,・・・,ainを格納するステップは、i=1,・・・,nに対して、前記結合Cおよび前記ファイル識別子ID’と関連して、前記ストレージ・サービス・プロバイダOに、それらを格納する(6a)ステップを含む、請求項1に記載の方法。
【請求項3】
i=1,・・・,nに対して、前記結合Cと再度関連付けられることが可能であるように、係数の前記組ai1,・・・,ainを格納するステップは、i=1,・・・,nに対して、係数の前記組ai1,・・・,ainを、ファイル識別子ID’およびプロバイダ識別子Oに関連して、前記ファイル(F)に対応しており前記ローカル・メモリ(LM)に格納されている前記ファイル記述子に格納するステップを含む、請求項1に記載の方法。
【請求項4】
前記n個のファイル識別子ID’,・・・,ID’が、所与のファイル(F)に対して同一(ID’)である、請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイル(F)を検索するための方法であって、ユーザ・デバイスによって実行される以下のステップ、すなわち、
前記ファイル(F)に対応しておりローカル・メモリ(LM)に格納されているファイル記述子において、前記ファイルを指定するn個のファイル識別子ID’,・・・,ID’を読み出し(51)、プロバイダ識別子O,・・・,Oを読み出すステップと、
前記n個のファイル識別子ID’,・・・,ID’を、それぞれ、前記プロバイダ識別子O,・・・,Oによって指定される前記ストレージ・サービス・プロバイダに送る(51)ステップと、
n個の結合C,・・・,Cを、前記プロバイダ識別子O,・・・,Oによって指定される前記プロバイダから受け取る(51)ステップと、
i=1,・・・,nに対して、前記n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップと、
i=1,・・・,nに対して、各結合Cを、係数の対応する組ai1,・・・,ainと関連付ける(52;62;72)ステップと、
i=1,・・・,nに対して係数のn個の組bi1,・・・,binから構成される別の行列を得るために、i=1,・・・,nに対して係数の前記n個の組ai1,・・・,ainから構成される行列の逆行列を計算する(53;63;73)ステップと、
そして、i=1,・・・,nに対して、前記ファイル(F)のn個のチャンクS,・・・,Sを、S=bi1・C+・・・+bij・C+・・・+bin・Cとして計算するステップと、
そして、前記ファイルFを復元するために、前記チャンクS,・・・,Sを再度組み立てる(54;64;74)ステップと、
j=1,・・・,nに対して、オーバ結合OC’と係数a’,・・・,a’,・・・,a’とを読み出すステップと、
i=1,・・・,nに対して係数のn個の組bi1,・・・,binから構成される別の行列を得るために、i=1,・・・,n−1に対して係数のn−1個の組ai1,・・・,ainと、j=1,・・・,nに対する係数の組(a’・a1j+・・・+a’・aij+・・・+a’・anj)とから構成される行列の逆行列を計算するステップと、
そして、前記ファイル(F)のn個のチャンクS,・・・,Sを、i=1,・・・,nに対して、S=bi1・C+・・・+bij・C+・・・+bin−1・Cn−1+bin・OC’として計算するステップと、
そして、前記ファイル(F)を復元するために、前記チャンクS,・・・,Sを再度組み立てるステップと、
を含む方法において、
i=1,・・・,nに対して、前記n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップは、前記プロバイダ識別子O,・・・,Oによって指定される前記プロバイダからそれらを受け取る(51)ステップを含み、
i=1,・・・,nに対して、各結合Cを、係数の対応する組ai1,・・・,ainと関連付ける(62)ステップは、
前記ファイル(F)に対応する前記ファイル記述子において置換(σ)を読み出すステップと、
i=1,・・・,nに対して、各結合Cが係数の前記対応する組ai1,・・・,ainと関連付けられるように、i=1,・・・,nに対して、前記置換を係数の前記n個の組ai1,・・・,ainに適用するステップと、
を含む、方法。
【請求項6】
i=1,・・・,nに対して、前記n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップは、前記プロバイダ識別子O,・・・,Oによって指定される前記プロバイダからそれらを受け取る(51)ステップを含み、
i=1,・・・,nに対して、各結合Cを、係数の対応する組ai1,・・・,ainと関連付ける(52)ステップは、前記結合Cを係数の前記組ai1,・・・,ainと直接関連付けるステップを含む、請求項5に記載の方法。
【請求項7】
i=1,・・・,nに対して、前記n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップは、前記ファイル(F)に対応する前記ファイル記述子においてそれらを読み出すステップを含み、
i=1,・・・,nに対して、各結合Cを、係数の対応する組ai1,・・・,ainと関連付ける(72)ステップは、i=1,・・・,nに対して、係数の前記組ai1,・・・,ainを、前記結合Cに直接関連付けるステップを含む、請求項5に記載の方法。
【請求項8】
前記n個のファイル識別子ID’,・・・,ID’が、所与のファイル(F)に対して同一(ID’)である、請求項5乃至7のいずれか1項に記載の方法。
【請求項9】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイル(F)の機密性を保護するための方法であって、ユーザ・デバイスによって実行される以下のステップ、すなわち、
前記ファイルをn個のチャンクS,・・・,Sに分割する(2)ステップと、
i=1,・・・,nおよびj=1,・・・,nに対して、n個の係数aijをランダムに選択する(3)ステップと、
i=1,・・・,nに対して、ベクトルai1,・・・,ainが1次独立であることを確認する(3)ステップであって、そうでない場合には、前記係数を再度生成するステップと、
i=1,・・・,nに対して、n個の1次結合C=ai1・S+・・・+aij・S+・・・+ain・Sを計算する(4)ステップと、
前記複数のストレージ・サービス・プロバイダの間で、n個のストレージ・サービス・プロバイダO,・・・,Oを選択する(5)ステップと、
前記ファイル(F)を指定するn個のファイル識別子ID’,・・・,ID’を生成する(6a;6b;6c)ステップと、
i=1,・・・,nに対して、前記ファイル識別子ID’と関連して、前記ストレージ・サービス・プロバイダOに、前記結合Cを格納する(6a;6b;6c)ステップと、
i=1,・・・,nに対して、前記ファイル識別子ID’と前記プロバイダ識別子Oとを、前記ファイル(F)に対応しておりローカル・メモリ(LM)に格納されているファイル記述子に格納するステップと、
i=1,・・・,nに対して係数のn個の組bi1,・・・,binから構成される別の行列を得るために、i=1,・・・,nに対して係数の前記n個の組ai1,・・・,ainから構成される行列の逆行列を計算する(4’)ステップと、
i=1,・・・,nに対して、前記結合Cと再度関連付けられることが可能であるように、係数の前記組bi1,・・・,binを格納するステップと、
i=1,・・・,nおよびj=1,・・・,nに対して、前記n個の係数aijをランダムに選択する(3)ステップと、
i=1,・・・,nに対して、前記ベクトルai1,・・・,ainが1次独立であることを確認する(3)ステップであって、そうでない場合には、前記係数を再度生成するステップと、
を含む方法において、
i=1,・・・,nに対して、前記結合Cと再度関連付けられることが可能であるように、係数の前記組bi1,・・・,binを格納するステップは、
i=1,・・・,nおよび1≦k≦nでありiと異なるkに対して、結合Cおよびファイル識別子ID’と関連して、係数の前記組bi1,・・・,binを、前記ストレージ・サービス・プロバイダOに格納する(6b)ステップと、
i=1,・・・,nに対して、係数の前記組bi1,・・・,binと前記結合Cとを再度関連付けることを可能にする置換(σ)を、前記ファイル(F)に対応しており前記ローカル・メモリ(LM)に格納されている前記ファイル記述子に格納する(6b)ステップと、
を含む、方法。
【請求項10】
i=1,・・・,nに対して、前記結合Cと再度関連付けられることが可能であるように、係数の前記組bi1,・・・,binを格納するステップは、i=1,・・・,nに対して、前記結合Cおよび前記ファイル識別子ID’と関連して、前記ストレージ・サービス・プロバイダOに、それらを格納する(6a)ステップを含む、請求項9に記載の方法。
【請求項11】
i=1,・・・,nに対して、前記結合Cと再度関連付けられることが可能であるように、係数の前記組bi1,・・・,binを格納するステップは、i=1,・・・,nに対して、係数の前記組bi1,・・・,binを、前記ファイル識別子ID’および前記プロバイダ識別子ID’に関連して、前記ファイル(F)に対応しており前記ローカル・メモリ(LM)に格納されている前記ファイル記述子に格納するステップを含む、請求項9に記載の方法。
【請求項12】
前記n個のファイル識別子ID’,・・・,ID’が所与のファイル(F)に対して同一である、請求項9乃至11のいずれか1項に記載の方法。
【請求項13】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイル(F)を検索するための方法であって、ユーザ・デバイスによって実行される以下のステップ、すなわち、
前記ファイル(F)に対応しておりローカル・メモリ(LM)に格納されているファイル記述子において、前記ファイルを指定するn個のファイル識別子ID’,・・・,ID’を読み出し(51)、プロバイダ識別子O,・・・,Oを読み出すステップと、
前記n個のファイル識別子ID’,・・・,ID’を、それぞれ、前記プロバイダ識別子O,・・・,Oによって指定される前記ストレージ・サービス・プロバイダに送る(51)ステップと、
n個の結合C,・・・,Cを、前記プロバイダ識別子O,・・・,Oによって指定されるこれらのプロバイダから受け取る(51)ステップと、
i=1,・・・,nに対して、前記n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組bi1,・・・,binを検索するステップと、
i=1,・・・,nに対して、各結合Cを、係数の前記対応する組bi1,・・・,binと関連付ける(52;62;72)ステップと、
前記ファイル(F)のチャンクS,・・・,Sを、S=bi1・C+・・・+bij・C+・・・+bin・Cとして計算する(53;63;73)ステップと、
そして、前記ファイルFを復元するために、前記チャンクS,・・・,Sを再度組み立てる(54;64;74)ステップと、
を含む方法において、
i=1,・・・,nに対して、前記n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組bi1,・・・,binを検索するステップは、前記プロバイダ識別子O,・・・,Oによって指定される前記プロバイダからそれらを受け取る(51)ステップを含み、
i=1,・・・,nに対して、各結合Cを、係数の対応する組bi1,・・・,binと関連付ける(62)ステップは、
前記ファイル(F)に対応する前記ファイル記述子において置換(σ)を読み出すステップと、
i=1,・・・,nに対して、各結合Cが係数の前記対応する組bi1,・・・,binと関連付けられるように、i=1,・・・,nに対して、前記置換を係数の前記組bi1,・・・,binに適用するステップと、
を含む、方法。
【請求項14】
i=1,・・・,nに対して、前記n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップは、前記プロバイダ識別子O,・・・,Oによって指定される前記プロバイダからそれらを受け取る(51)ステップを含み、
i=1,・・・,nに対して、各結合Cを、係数の対応する組bi1,・・・,binと関連付ける(52)ステップは、前記結合Cを係数の前記組bi1,・・・,binと直接関連付けるステップを含む、請求項13に記載の方法。
【請求項15】
i=1,・・・,nに対して、前記n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組bi1,・・・,binを検索するステップは、前記ファイル(F)に対応する前記ファイル記述子においてそれらを読み出すステップを含み、
i=1,・・・,nに対して、各結合Cを、係数の対応する組と関連付ける(72)ステップは、i=1,・・・,nに対して、係数の前記組bi1,・・・,binを、前記結合Cに直接関連付けるステップを含む、請求項13に記載の方法。
【請求項16】
前記n個のファイル識別子ID’,・・・,ID’が所与のファイル(F)に対して同一(ID’)である、請求項13乃至15のいずれか1項に記載の方法。
【請求項17】
コンピュータ上で実行されると、請求項1乃至16のいずれか1項に記載の方法のすべての方法ステップを前記コンピュータに実行させる、マシン実行可能なプログラム命令の組を格納しているデジタル・データ・ストレージ媒体。
【請求項18】
プログラムがコンピュータ上で動作されると請求項1乃至16のいずれか1項に記載のステップを含む方法を実行するためのコンピュータ実行可能命令を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、複数のストレージ・サービス・プロバイダに分散され格納されているファイルの機密性を保護することに関する。特に、本発明は、クラウド・ストレージに関係する。クラウド・ストレージは、一般に第三者によってホストされるストレージの仮想的なプールにデータが格納される、ネットワーク接続されたオンライン・ストレージのモデルである。ホスト側の企業が、大規模なデータ・センタを運営し、自らのデータがホストされることを必要とする人々は、ホスト側の企業から、ストレージ容量を購入またはリースする。データ・センタのオペレータは、バックグラウンドで、顧客の要求に従ってリソースを仮想化し、リソースをストレージ・プールとして公開するのであるが、顧客たちは、それを、ファイルやデータ・オブジェクトを格納するために、自分自身で用いることができる。物理的には、リソースが複数のサーバにまたがることがあり得る。
【0002】
予防策が講じられない場合には、格納されているすべてのデータが、潜在的には(例えば、情報をクライアントの競合企業に転売するなどの)害意をもってそのデータを用いることができるクラウド・オペレータによって、アクセスされることが可能である。更に、クラウド・オペレータが正直者であるとしても、格納されているデータの機密性が、単独の企業ネットワークを攻撃するよりも複数の企業およびユーザのデータが集積されているデータ・センタを攻撃することにより大きな利益を有する攻撃者によって、損なわれる可能性がある。従って、ストレージ・サービス・プロバイダにおけるデータの機密性を保護する必要性が存在する。
【背景技術】
【0003】
1つの既知の解決策は、そのストレージをアウトソースする前に、データを暗号化することから構成されている。この解決策の短所は、そのため(格納のための暗号化および検索のための復号化)にリソースが消費されることである。更に、そのためには、各データ・パケットを暗号化するのに用いられる複数の鍵を追跡するという鍵管理プロセスが必要となる。それは、更に、複数の鍵を安全に格納することを意味する。というのは、鍵が漏れた場合、それはデータへの完全なアクセスを与えることになるからである。
【0004】
既知である別の解決策は、データを複数のチャンクに分割し、異なる複数のストレージ・サービス・プロバイダに、それらのいずれもが完全なデータへのアクセスを有することのないように、チャンクをそれぞれ格納することから構成される。この解決策は、各ストレージ・サービス・プロバイダは、そのストレージ・サービス・プロバイダが格納しているチャンクへのアクセスを有する、という短所を有する。よって、そのストレージ・サービス・プロバイダは、依然として、そのチャンクから何らかの機密情報を引き出すことができる。対抗策としては、各チャンクを更に暗号化することであるが、それには、先の解決策の短所が伴う。
【0005】
既知である別の解決策が、PAULO F OLIVERAおよび他による「GLOBECOM 2010, 2010 IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE, IEEE, PISCATAWAY, NJ, USA, 6 December 2010」における「Trusted Storage over Untrusted Networks」という記事に記載されている。この解決策は、
セキュリティ・パラメータnを選択し、ファイルをn個のチャンクS,・・・,Sに分割するステップと、
j=1,・・・,nに対して、n個の係数aを、ランダムに、すべてのaが相互に異なるように、選択するステップと、
次に、i=1,・・・,nおよびj=1,・・・,nに対して、ファンデルモンド(Vandermonde)行列(ai−1)を生成することによって、n個の係数aijを生成するステップと、
i=1,・・・,nに対して、n個の1次結合C=ai1・S+・・・+aij・S+・・・+ain・Sを計算するステップと、
2つの異なるストレージ・サービス・プロバイダを選択して、第1のストレージ・サービス・プロバイダに1次結合の一部を、第2のストレージ・サービス・プロバイダに残りの1次結合を格納するステップと、
を含む。
【0006】
j=1,・・・,nとして、ランダムに選択されたn個の係数aは、相互に異なっており相互に独立であるが、n個の係数aijのほとんどは、ファンデルモンド行列(ai−1)を生成することによって得られているため、相互に独立でない。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】PAULO F OLIVERA ET AL: “Trusted Storage over Untrusted Networks”, GLOBECOM 2010, 2010 IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE, IEEE, PISCATAWAY, NJ, USA, 6 December 2010
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の目標は、複数のストレージ・サービス・プロバイダに分散され格納されているデータの機密性を保護するためのより安全な技術的解決策を提供することである。
【0009】
これは、本発明による方法を適用することによって、解決可能である。
【課題を解決するための手段】
【0010】
本発明の第1の目的は、複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法であって、
セキュリティ・パラメータnを選択するステップと、
ファイルをn個のチャンクS,・・・,Sに分割するステップと、
i=1,・・・,nおよびj=1,・・・,nに対して、n個の係数aijを選択するステップと、
i=1,・・・,nに対して、ベクトルai1,・・・,ainが1次独立であることを確認するステップであって、そうでない場合には、係数を再度生成するステップと、
i=1,・・・,nに対して、n個の1次結合C=ai1・S+・・・+aij・S+・・・+ain・Sを計算するステップと、
前記複数のストレージ・サービス・プロバイダの間で、n個のストレージ・サービス・プロバイダO,・・・,Oを選択するステップと、
前記ファイルを指定するn個のファイル識別子ID’,・・・,ID’を生成するステップと、
i=1,・・・,nに対して、ファイル識別子ID’と関連するストレージ・サービス・プロバイダOに、結合Cを格納するステップと、
i=1,・・・,nに対して、ファイル識別子ID’とプロバイダ識別子Oとを、ファイルに対応しておりローカル・メモリに格納されているファイル記述子に格納するステップと、
i=1,・・・,nに対して、結合Cと再度関連付けられることが可能であるように、係数ai1,・・・,ainの組を格納するステップと、
を含む方法において、
i=1,・・・,nおよびj=1,・・・,nに対して、前記n個の係数aijをランダムに選択するステップと、
i=1,・・・,nに対して、ベクトルai1,・・・,ainが1次独立であることを確認するステップであって、そうでない場合には、係数を再度生成するステップと、
j=1,・・・,nに対して、n個のスーパ係数a’,・・・,a’,・・・,a’をランダムに選択するステップと、
1次オーバ結合(linear over−combination)OC’=a’・C+・・・+a’・C+・・・+a’・Cを計算するステップと、
j=1,・・・,nに対して、オーバ結合OC’と係数a’,・・・,a’,・・・,a’とを格納するステップと、
を更に含むことを特徴とする方法である。
【0011】
分散され格納されるファイルのすべてのチャンクの1次結合Cを計算し、次いで、それらの結合を、複数のストレージ・サービス・プロバイダにそれぞれ格納するという事実により、暗号化または鍵の管理を必要とすることなく、ファイルの機密性が保護されるのであるが、その理由は、元のファイルの任意のチャンクを検索するためには、すべての結合を得ることが必要であるからである。よって、プロバイダは、n個のプロバイダすべてが共謀しない限り、これらの結合からどの情報も抽出することができない。n個のランダムに選択された係数とオーバ結合とを用いるという事実により、セキュリティが向上する。
【0012】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法の第1の特徴的な実施形態によれば、i=1,・・・,nに対して、結合Cと再度関連付けられることが可能であるように、係数の組ai1,・・・,ainを格納するステップは、i=1,・・・,nに対して、結合Cおよびファイル識別子ID’と関連して、ストレージ・サービス・プロバイダOに、それらを格納するステップを含む。
【0013】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法の第2の特徴的な実施形態によれば、i=1,・・・,nに対して、結合Cと再度関連付けられることが可能であるように、係数の組ai1,・・・,ainを格納するステップは、
i=1,・・・,nおよび1≦k≦nでありiと異なるkに対して、結合Cおよびファイル識別子ID’と関連して、係数の組ai1,・・・,ainを、ストレージ・サービス・プロバイダOに格納するステップと、
i=1,・・・,nに対して、係数の組ai1,・・・,ainと結合Cとを再度関連付けることを可能にする置換(permutation)を、ファイル(F)と対応しており前記ローカル・メモリに格納されている前記ファイル記述子に格納するステップと、
を含む。
【0014】
複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法の第3の特徴的な実施形態によれば、i=1,・・・,nに対して、結合Cと再度関連付けられることが可能であるように、係数の組ai1,・・・,ainを格納するステップは、i=1,・・・,nに対して、係数の組ai1,・・・,ainを、ファイル識別子ID’およびプロバイダ識別子Oに関連して、ファイルに対応しており前記ローカル・メモリに格納されている前記ファイル記述子に格納するステップを含む。
【0015】
本発明の別の目的は、本発明による方法によって保護されているファイルを検索するための方法であって、
ファイルに対応しておりローカル・メモリに格納されているファイル記述子において、前記ファイルを指定するn個のファイル識別子ID’,・・・,ID’を読み出し、プロバイダ識別子O,・・・,Oを読み出すステップと、
n個のファイル識別子ID’,・・・,ID’を、それぞれ、プロバイダ識別子O,・・・,Oによって指定されるストレージ・サービス・プロバイダに送るステップと、
n個の結合C,・・・,Cを、プロバイダ識別子O,・・・,Oによって指定されるプロバイダから受け取るステップと、
i=1,・・・,nに対して、n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップと、
i=1,・・・,nに対して、各結合Cを、係数の対応する組ai1,・・・,ainと関連付けるステップと、
i=1,・・・,nに対して係数のn個の組bi1,・・・,binから構成される別の行列を得るために、i=1,・・・,nに対して係数のn個の組ai1,・・・,ainから構成される行列の逆行列を計算するステップと、
そして、前記ファイルFのn個のチャンクS,・・・,Sを、i=1,・・・,nに対してS=bi1・C+・・・+bij・C+・・・+bin・Cとして計算するステップと、
そして、ファイルFを復元するために、チャンクS,・・・,Sを再度組み立てるステップと、
を含む方法において、
j=1,・・・,nに対して、オーバ結合OC’と係数a’,・・・,a’,・・・,a’とを読み出すステップと、
i=1,・・・,nに対して係数のn個の組bi1,・・・,binから構成される別の行列を得るために、i=1,・・・,n−1に対する係数のn−1個の組ai1,・・・,ainと、j=1,・・・,nに対する1組の係数(a’・a1j+・・・+a’・aij+・・・+a’・anj)とから構成される行列の逆行列を計算するステップと、
そして、前記ファイル(F)のn個のチャンクS,・・・,Sを、i=1,・・・,nに対して、S=bi1・C+・・・+bij・C+・・・+bin−1・Cn−1+bin・OC’として計算するステップと、
そして、ファイル(F)を復元するために、チャンクS,・・・,Sを再度組み立てるステップと、
を更に含むことを特徴とする方法である。
【0016】
ファイルを検索するための方法の第1の特徴的な実施形態によれば、i=1,・・・,nに対して、n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップは、プロバイダ識別子O,・・・,Oによって指定されるプロバイダからそれらを受け取るステップを含む。そして、i=1,・・・,nに対して、各結合Cを、係数の対応する組ai1,・・・,ainと関連付けるステップは、結合Cを係数の組ai1,・・・,ainと直接関連付けるステップを含む。
【0017】
ファイルを検索するための方法の第2の特徴的な実施形態によれば、i=1,・・・,nに対して、n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップは、プロバイダ識別子O,・・・,Oによって指定されるプロバイダからそれらを受け取るステップを含み、
i=1,・・・,nに対して、各結合Cを、係数の対応する組ai1,・・・,ainと関連付けるステップは、
前記ファイルに対応するファイル記述子において置換を読み出すステップと、
i=1,・・・,nに対して、各結合Cが係数の対応する組ai1,・・・,ainと関連付けられるように、i=1,・・・,nに対して、置換を係数のn個の組ai1,・・・,ainに適用するステップと、
を含む。
【0018】
ファイルを検索するための方法の第3の特徴的な実施形態によれば、i=1,・・・,nに対して、n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組ai1,・・・,ainを検索するステップは、前記ファイルに対応するファイル記述子においてそれらを読み出すステップを含み、
i=1,・・・,nに対して、各結合Cを、係数の対応する組ai1,・・・,ainと関連付けるステップは、i=1,・・・,nに対して、係数の組ai1,・・・,ainを、結合Cに直接関連付けるステップを含む。
【0019】
本発明の別の目的は、複数のストレージ・サービス・プロバイダに分散され、格納されているファイルの機密性を保護するための方法であって、格納は一度だけ行われるが、検索は多くの回数または多くのエンティティによって行われるような状況に特によく適しており、
セキュリティ・パラメータnを選択するステップと、
ファイルをn個のチャンクS,・・・,Sに分割するステップと、
i=1,・・・,nおよびj=1,・・・,nに対して、n個の係数aijをランダムに選択するステップと、
i=1,・・・,nに対して、ベクトルai1,・・・,ainが1次独立であることを確認するステップであって、そうでない場合には、係数を再度生成するステップと、
i=1,・・・,nに対して、n個の1次結合C=ai1・S+・・・+aij・S+・・・+ain・Sを計算するステップと、
前記複数のストレージ・サービス・プロバイダの間で、n個のストレージ・サービス・プロバイダO,・・・,Oを選択するステップと、
前記ファイルを指定するn個のファイル識別子ID’,・・・,ID’を生成するステップと、
i=1,・・・,nに対して、ファイル識別子ID’と関連して、ストレージ・サービス・プロバイダOに、結合Cを格納するステップと、
i=1,・・・,nに対して、ファイル識別子ID’とプロバイダ識別子Oとを、ファイルに対応しておりローカル・メモリに格納されているファイル記述子に格納するステップと、
i=1,・・・,nに対して係数のn個の組bi1,・・・,binから構成される別の行列を得るために、i=1,・・・,nに対して係数のn個の組ai1,・・・,ainから構成される行列の逆行列を計算するステップと、
i=1,・・・,nに対して、結合Cと再度関連付けられることが可能であるように、係数bi1,・・・,binの組を格納するステップと、
を含む方法である。
【0020】
本発明の別の目的は、この直前の方法によって保護されているファイルを検索するための方法である。この方法は、
ファイル(F)に対応しておりローカル・メモリに格納されているファイル記述子において、前記ファイルを指定するn個のファイル識別子ID’,・・・,ID’を読み出し、プロバイダ識別子O,・・・,Oを読み出すステップと、
n個のファイル識別子ID’,・・・,ID’を、それぞれ、プロバイダ識別子O,・・・,Oによって指定されるストレージ・サービス・プロバイダに送るステップと、
n個の結合C,・・・,Cを、プロバイダ識別子O,・・・,Oによって指定されるこれらのプロバイダから受け取るステップと、
i=1,・・・,nに対して、n個の結合C,・・・,Cにそれぞれ対応する係数のn個の組bi1,・・・,binを検索するステップと、
i=1,・・・,nに対して、各結合Cを、係数の対応する組bi1,・・・,binと関連付けるステップと、
i=1,・・・,nに対して、前記ファイルのチャンクS,・・・,Sを、S=bi1・C+・・・+bij・C+・・・+bin・Cとして計算するステップと、
そして、ファイルFを復元するために、チャンクS,・・・,Sを再度組み立てるステップと、
を含む。
【0021】
本発明の他の特徴および効果は、添付の図面と共に考察されることによって、本発明の実施形態に関する以下の詳細な説明から、より明らかになるであろう。
【0022】
本発明の実施形態の特徴および効果を詳細に例証するために、以下の説明は、添付の図面を参照してなされる。可能な場合には、同様または類似の参照番号は、次の複数の図面および説明を通じて、同じまたは類似の構成要素を示す。
【図面の簡単な説明】
【0023】
図1】本発明によるファイルを保護するための方法の3つの実施形態に共通する第1のステップの図である。
図2】本発明によるファイルを保護するための方法の3つの実施形態の1つに特有のステップの図である。
図3】本発明によるファイルを保護するための方法の3つの実施形態の1つに特有のステップの図である。
図4】本発明によるファイルを保護するための方法の3つの実施形態の1つに特有のステップの図である。
図5】本発明によって保護されているファイルを検索するための方法の3つの実施形態の中の1つの図である。
図6】本発明によって保護されているファイルを検索するための方法の3つの実施形態の中の1つの図である。
図7】本発明によって保護されているファイルを検索するための方法の3つの実施形態の中の1つの図である。
図8】本発明によるファイルを保護するための方法の3つの他の実施形態に共通である第1のステップの図である。これらの実施形態は、格納は一度だけ行われるが、検索は多くの回数または多くのエンティティによって行われるような状況に特によく適している。
【発明を実施するための形態】
【0024】
図1は、本発明によるファイルを保護するための方法の3つの実施形態に共通するステップの図を示している。例えば、本発明者らは、ストレージに制約があるデバイス(例えば、携帯電話やタブレット)を有していて、大きなファイルの格納をアウトソースすることを希望しているユーザを考察する。このユーザは、彼/彼女が既にそこにアカウントを有していて、関連の契約を有していることにより用いることができるm個の利用可能なストレージ・サービス・プロバイダを知っていると、本発明者らは仮定する。
【0025】
提案される方法は、デバイスに以下の手段が備わっていることを要求する。
1)一意的な識別子IDを、ストレージ・サービス・プロバイダに分散され格納される各ファイルFに関連付ける手段。このプロセスは、潜在的に複雑なものとなり得るが、ファイルの経路、またはタグ、またはファイル・システム・アーキテクチャと互換性を有する任意の他の既知の方法を用いることができる。
2)ユーザがセキュリティ・パラメータnを選択することを可能にする入力手段。このパラメータは、各ファイルに対して異なり得る。nの値が大きければ、より多くの計算が伴うことになるが、より多くのセキュリティも伴う。そのため、nの値は、制限、機密、秘密、・・・など、望まれる機密性のレベルに従って、選択することができる。
3)提案されている方法を遂行するコンピュータ実行可能な命令を含むプログラムを実行する計算手段。
【0026】
ステップ1:ユーザが、利用可能なストレージ・サービス・プロバイダの個数mよりも小さいか、またはmと等しくなるように、セキュリティ・パラメータnを選択する。
【0027】
ステップ2:計算手段が、ファイルFを、n個のチャンクS,・・・,Sに分割する。チャンクは、同じビット数を有していなければならない。チャンク当たりのビット数は、サイズ(F)/nよりも大きな最小の整数であり、演算がなされる体(field)(係数が選択されるのと同じ体である)のサイズpの倍数である。このプロセスは、同じサイズのn個のチャンクを有するために、ファイルのパディングを生じさせる。このタスクを実行するために、任意の標準的なパディング・アルゴリズムを、用いることができる。
【0028】
ステップ3:計算手段が、i=1,・・・,nおよびj=1,・・・,nに対して、n個の係数aijをランダムに選択する。次に、i=1,・・・,nに対して、選択されたベクトル(ai1,・・・,ain)が1次独立であることを確認し、1次独立でない場合には、計算手段は、係数を再度生成する(ベクトルの組は、その要素の1次結合としてのゼロ・ベクトルの表現だけが自明な解である場合に、およびその場合に限り、1次独立である)。
【0029】
ステップ4:計算手段が、n個の1次結合を、i=1,・・・,nに対して、C=ai1・S+・・・+aij・S+・・・+ain・Sとして計算する。
【0030】
ステップ5:計算手段が、それらの結合が格納されるn個のストレージ・サービス・プロバイダを選択する(nは、mよりも小さいか、またはmに等しい)。計算手段は、m個の利用可能なストレージ・サービス・プロバイダの間で、格納され保護されるファイルの識別子IDの関数として、それらを選択する。計算手段は、選択されたストレージ・サービス・プロバイダを指定するそれぞれの識別子O,・・・,Oを供給する。この選択を実行するためには、多くの可能性が存在する。ランダムな選択が最も簡単であるが、よりよい選択方針を有するためには、選択規準として、パフォーマンス(負荷の均衡)、コスト(各プロバイダでの料金設定)、またはセキュリティ(プロバイダの評判)を考慮に入れることも可能であろう。選択方針に応じて、1つの特定のプロバイダをローカルなホスト自体とすることが可能であろうし、ある与えられたプロバイダを、複数回選択することも可能であろう(ただし、それによって、セキュリティが低下することがあり得る)。
【0031】
次の複数のステップは、図2、3、4によってそれぞれ示されているステップ6a、ステップ6b、ステップ6cと称される3つのバリアントに従って、行うことが可能である。
【0032】
図2は、ステップ6aを示す。すなわち、
計算手段は、やはりファイルFを指定しているがローカルなファイル識別子IDとは異なる新たな一意的なファイル識別子ID’を、ローカルな識別子IDの関数として、生成する。この関数は、ID’が与えられた場合に、IDを回復することを許容してはならないが、その理由は、この関数が、本質的に、例えばハッシュ関数のような一方向関数であるからである。この新たなファイル識別子ID’は、すべてのストレージ・サービス・プロバイダに公開される。
計算手段は、i=1,・・・,nとして、プロバイダOに、
結合Cと、
係数の組ai1,・・・,ainと、
ファイル識別子ID’と、
を送る。
プロバイダOは、結合Cと係数の組ai1,・・・,ainとを、ファイル識別子ID’と関連させて格納する。
計算手段は、ローカル・メモリLMに、ファイルFに対する非常に簡略なファイル記述子をローカルに格納する。このファイル記述子は、ファイルFを指定する識別子ID’と、選択されたストレージ・サービス・プロバイダを指定するプロバイダ識別子O,・・・,Oとを含む。
【0033】
このバリアントaの改善策によれば、同じファイルFに対して、一意的なファイル識別子ID’を、異なる複数のファイル識別子ID’,・・・,ID’によって置き換えることも可能である。これらのファイル識別子ID’,・・・,ID’は、それぞれが、n個の選択されたプロバイダそれぞれにおいて、ローカル・メモリLMのファイルFに対応するファイル記述子に格納される。この改善策により、プロバイダが共謀する場合に、結合をリンクすることがより困難になる。
【0034】
図3は、ステップ6bを示す。すなわち、
計算手段は、例えばハッシュ関数のような一方向関数によるローカルな識別子IDの関数として、しかしローカルなファイル識別子IDとは異なっており、やはりファイルFを指定する新たなファイル識別子ID’を生成する。この新たなファイル識別子ID’は、すべてのストレージ・サービス・プロバイダに公開される。
計算手段は、i=1,・・・,nとして、プロバイダOに、
ファイルFを指定する新たなファイル識別子ID’と、
結合Cと、
1≦k≦nであり、iとは異なるkに対して、別の結合Cに対応する係数の組ak1,・・・,aknと、
を送る。
係数の組ak1,・・・,aknは、i=1,・・・,nとして、ベクトル(ai1,・・・,ain)に適用された置換σによって決定される。すなわち、次の通りである。
(ak1,・・・,akn)=(aσ(n)1,・・・,aσ(n)i,・・・,aσ(n)n)=結合Cσ(i)に対応する係数
【0035】
他方で、i=1,・・・,nとすると、結合Cσ(i)は、プロバイダOσ(i)において、係数の組ai1,・・・,ainと関連して、格納される。計算手段は、1からnまでの整数に対する置換σを定義する。基本的には、この置換は、1からnまでのすべての整数を順序通りではない態様で含むアレイ(σ(1),・・・,σ(i),・・・,σ(n))として、表現され得る。
計算手段は、i=1,・・・,nとして、プロバイダOに、
ファイルFを指定する新たなファイル識別子ID’と、
結合Cと、
係数の組ak1,・・・,aknと、
を、関連させて、格納する。
計算手段は、ローカル・メモリLMに、ファイルFに対する非常に簡略なファイル記述子をローカルに格納する。このファイル記述子は、
ファイルFを指定する識別子ID’と、
選択されたストレージ・サービス・プロバイダの識別子O,・・・,Oと、
(例えば、先に説明したアレイの形式での)置換σと、
を含む。
【0036】
このバリアントaの改善策によれば、同じファイルFに対して、一意的なファイル識別子ID’を、異なる複数のファイル識別子ID’,・・・,ID’によって置き換えることも可能である。これらのファイル識別子ID’,・・・,ID’は、n個の選択されたプロバイダそれぞれにおいて、ローカル・メモリLMのファイルFに対応するファイル記述子に、それぞれ格納される。この改善策により、プロバイダが共謀する場合に、結合をリンクすることがより困難になる。
【0037】
図4は、ステップ6cを示す。すなわち、
計算手段は、同じファイルFに対し、例えばハッシュ関数のような一方向関数によるローカルな識別子IDの関数として、異なる複数のファイル識別子ID’,・・・,ID’を生成する。計算手段は、i=1,・・・,nとして、プロバイダOに、ファイル識別子ID’と結合Cとを送るが、係数の組については、まったく送らない。
このバリアントcによれば、計算手段は、ローカル・メモリLMに、より大きなファイル記述子をローカルに格納する。i=1,・・・,nに対し、このファイル記述子は、トリプレットを含むのであるが、各トリプレットは、i=1,・・・,nに対して、
ファイルFを指定する識別子ID’と、
サービス・プロバイダ識別子Oと、
結合Cを構築するのに用いられた係数の組ai1,・・・,ainと、
を含む。
【0038】
図5、6、7は、本発明によって保護されているファイルを検索するための方法の3つの実施形態を、それぞれ示す。検索は、ファイルを保護するための上述したステップ6のバリアント6a、6b、6cに対応する3つのバリアントa、b、cに従って、行われ得る。
【0039】
図5は、バリアントaを示す。すなわち:
ファイルFを復元するために、デバイスの計算手段は、ある結合とこの結合に対応する係数の組とを、n個の選択されたストレージ・サービス・プロバイダのそれぞれに(任意の順序で)リクエストする。
【0040】
ステップ51:計算手段が、ローカル・メモリLMにおいて、ファイルFに対応するファイル記述子に登録されているファイル識別子ID’とプロバイダ識別子O,・・・,Oとを読み出す。計算手段は、識別子ID’を、i=1,・・・,nに対するストレージ・サービス・プロバイダOに送る。
【0041】
ステップ52:次に、計算手段は、i=1,・・・,nに対するプロバイダOから、
結合Cと、
係数の対応する組ai1,・・・,ainと、
を受け取る。
結合Cは、ファイルFを検索するプロセスのために、係数の組ai1,・・・,ainと直接関連付けられている。
【0042】
ステップ53:次に、計算手段は、行列A=(aij)の逆行列を計算し、行列B=(bij)を得る。次に、計算手段は、元のチャンクを、i=1,・・・,nに対して、S=bi1・C+・・・+bij・C+・・・+bin・Cとして、計算する。
【0043】
ステップ54:次に、計算手段は、チャンクS,・・・,Sを再組み立てし、ファイルFを復元するために、可能な限りパディングを除去する。
【0044】
同じファイルFに対して異なる識別子ID’,・・・,ID’が各プロバイダにそれぞれ格納されている場合には、検索方法が修正されることに注意すべきである。その理由は、検索方法が、ローカル・メモリLMに格納されているファイル記述子において異なる識別子ID’,・・・,ID’を読み出し、一意的な識別子ID’を送る代わりに、識別子ID’,・・・,ID’をn個の選択されたプロバイダにそれぞれ送ることから構成される修正されたステップ51を含むからである。
【0045】
図6は、バリアントbを示す。すなわち:
ファイルFを復元するために、デバイスの計算手段は、ある結合と係数の組とを、n個の選択されたストレージ・サービス・プロバイダのそれぞれに(任意の順序で)リクエストする。しかし、計算手段は、各結合を、この結合を計算するために用いられた係数の対応する組と再度関連付けなければならないのであり、その理由は、この結合と係数のこの組とは、同じストレージ・サービス・プロバイダに格納されたのではなかったからである。(Oによって格納されている係数の組に対応する)結合Cσ(i)がプロバイダOσ(i)に格納されているため、置換σが再度用いられなければならない。
【0046】
ステップ61:
計算手段が、ローカル・メモリLMにおいて、ファイルFに対応するファイル記述子に登録されているファイル識別子ID’と、プロバイダ識別子O,・・・,Oと、置換σと、を読み出す。
計算手段は、識別子ID’を、プロバイダ識別子O,・・・,Oによって指定されているn個のストレージ・サービス・プロバイダに送る。
計算手段は、i=1,・・・,nに対するプロバイダOから、
結合Cと、
係数の組aσ(i)1,・・・,aσ(i)nと、を受け取る。
【0047】
ステップ62:次に、計算手段は、i=1,・・・,nに対し、結合Cと係数の対応する組ai1,・・・,ainとを、置換手段σによって、再度関連付ける。
【0048】
ステップ63:次に、計算手段は、行列A=(aij)の逆行列を計算し、行列B=(bij)を得る。そして、計算手段は、元のチャンクを、i=1,・・・,nに対して、S=bi1・C+・・・+bij・C+・・・+bin・Cとして、計算する。
【0049】
ステップ64:次に、計算手段は、n個のチャンクS,・・・,Sを組み立て、可能な限りパディングを除去することによって、ファイルFを復元する。
【0050】
図7は、バリアントcを示す。すなわち:
ファイルFを復元するために、デバイスの計算手段は、ある結合とこの結合に対応する係数の組とを、n個の選択されたストレージ・サービス・プロバイダのそれぞれに(任意の順序で)リクエストする。
【0051】
ステップ71:計算手段が、ローカル・メモリLMにおいて、ファイルFに対応するファイル記述子に登録されているファイル識別子ID’,・・・,ID’と、プロバイダ識別子O,・・・,Oとを読み出す。
計算手段は、ファイル識別子ID’を、i=1,・・・,nに対するプロバイダOに送る(n個の識別子ID’,・・・,ID’は、相互に異なる)。
それに応答して、計算手段は、i=1,・・・,nに対するプロバイダOから、結合Cを受け取る。
【0052】
ステップ72:計算手段は、ローカル・メモリLMにおいて、係数の組ai1,・・・,ainを読み出す。結合Cは、i=1,・・・,nに対して、係数の組ai1,・・・,ainと直接に関連している。
【0053】
ステップ73:次に、計算手段は、行列A=(aij)の逆行列を計算し、行列B=(bij)を得る。次に、計算手段は、n個の元のチャンクを、i=1,・・・,nに対して、S=bi1・C+・・・+bij・C+・・・+bin・Cとして、計算する。
【0054】
ステップ74:次に、計算手段は、n個のチャンクS,・・・,Sを組み立て、可能な限りパディングを除去することによって、ファイルFを復元する。
【0055】
セキュリティ:
すべてのバリアントにおいて、方式の基本的なセキュリティは、結合C,・・・,Cがすべてなければ、どのチャンクSを復元することも不可能である、という事実に存する。従って、オペレータたちがファイルFの機密性を破る唯一の可能性は、全員で共謀することである。
【0056】
バリアントa、bおよびcは、n人のオペレータ全員が共謀している場合、異なるレベルのセキュリティを提供する。すなわち、
バリアントa:彼ら全員が共謀する場合には、彼らはすべての結合と係数のすべての組とを得ることになり、従って、彼らはファイルF全体を検索することができる。
【0057】
バリアントb:彼ら全員が共謀する場合には、彼らは結合と係数とをすべて得るが、ただし、結合と係数との間の対応を知ることはない。Fを検索するためには、彼らは、n!通りの対応可能性をすべて試みなければならない。nが十分に大きな場合、処理コストが、現実問題としては法外な額になる。
【0058】
バリアントc:彼ら全員が共謀する場合には、彼らは結合を得るが、係数の組を知らないため、係数のすべての可能性がある組を試みない限り、ファイルFを検索することはできない。そして、係数のすべての可能性がある組を試みることは、計算論的に実行不可能であることが判明している(各係数がサイズpである体に属する場合には、p個の可能性が存在するため、pおよびnを注意深く選択することにより、容易に、このpの値が処理能力を超えるようにすることができる)。このバリアントcは、最高レベルのセキュリティを与えるのであるが、デバイスが係数をローカルに格納することを要求する。他方で、バリアントaおよびbでは、デバイスは、追加的な情報をいっさい格納する必要がない。
【0059】
弾力性(オプションである改善策):
この方法の唯一の弱点は、1人のオペレータOが結合Cを失う(または破損する)と、ファイルFを検索することが不可能になることである。
【0060】
この短所を回避するための第1の改善策は、n個ではなくn+k個の結合を生成し、それらをn+k人のオペレータのところに格納することから構成される。すると、n+k個の結合の中から任意のn個の結合を検索することが可能であり、ファイルFを復元するのに十分である。これは、k個までのストレージ・サービス・プロバイダであれば、それらの故障からの回復が可能であることを意味する。
n+k人のオペレータの場所で格納するときには、セキュリティは、同じままである。すなわち、この方式を破るには、少なくともn人のオペレータが共謀しなければならない。この解決策は、バリアントaおよびcにうまく適用される。
【0061】
バリアントcに対する異なる改善策は、この短所を回避するために、少なくとも1つの(本発明者らが、オーバ結合と称する)追加的な結合を実行中に生成することで構成されるのであるが、これは、元のファイルFの復元を要求しなくとも、実行可能である。オーバ結合OC’とは、i=1,・・・,nに対して、結合Cの1次結合である。この改善策は、
i=1,・・・,nに対して、(本発明者らがスーパ係数と称する)n個の係数の組a’をランダムに選択するステップと、
1次オーバ結合OC’=a’・C+・・・+a’・C+・・・+a’・Cを計算するステップと、
このオーバ結合OC’とn個のスーパ係数a’とを格納するステップと、
を含む。
【0062】
n個のスーパ係数a’とオーバ結合OC’とは、計算手段とメモリとを備えた任意のエンティティによって、生成され格納され得る。本発明者らは、それを、「オーケストレータ」と称するが、その理由は、それが、弾力性を保証するために、結合およびオーバ結合の検索を管理するからである。オーケストレータは、ネットワークにおいて任意の場所に配置され得る。すなわち、
それは、異なるクラウド・サービス・プロバイダに存在し得る、または、i=1,・・・,nに対して、結合Cを格納するのに用いられるn個のストレージ・サービス・プロバイダの中の1つとできるだけ同じ場所に配置され得る。
それは、ユーザ・デバイスに存在し得る。
それは、また、ユーザ・デバイスとストレージ・オペレータとの間、例えば、セットトップ・ボックスに存在し得る。
【0063】
機能的には、オーケストレータとは、ソースによって必ずしも信頼されることなく、データの利用可能性を管理する責任を有する仲介役(intermediary)である。この解決策は、よって、バリアントcに非常によく適合し、オーケストレータには、i=1,・・・,nに対して、係数ai1,・・・,ainを伴わないn個の結合C,・・・,C,・・・,Cが与えられる。
【0064】
元のファイルFを検索することは、上述した方法と類似の方法によって実行されるのであるが、その理由は、1次オーバ結合OC’=a’・C+・・・+a’・C+・・・+a’・Cは、また、i=1,・・・,nに対するセグメントSiの1次結合でもあるからである。実際、i=1,・・・,nに対して、C=ai1・S+・・・+aij・S+・・・+ain・Sである。セグメントSに関する対応する係数は、このように、Cに関するオーバ結合OC’の係数a’とセグメントSに関する結合Cの係数aijとを乗算することによって、得られる。
【0065】
本発明者らは、セグメントSに関するオーバ結合OC’を次のように、表現することができる。すなわち、i=1,・・・,nとして、C’=(a’・a11+・・・+a’・ai1+・・・+a’・an1)・S+・・・+(a’・a1j+・・・+a’・aij+・・・+a’・anj)・S+・・・+(a’・a1n+・・・+a’・ain+・・・+a’・ann)・Sである。
よって、検索は、ある行列の逆行列を計算することによって、行い得る。
【0066】
例えば、クラウドにおけるデータの弾力性を管理するオーケストレータは、結合C,・・・,C,・・・,Cを格納するためのメモリと、
n個のスーパ係数a’,・・・,a’を生成し、
スーパ結合OC’=a’・C+・・・+a’・C+・・・+a’・Cを計算するための計算手段とを備えている。
(オプションであるが、それは、複数のスーパ結合を計算するためのスーパ係数の複数の組を生成することができる。すなわち、ある1つのオーバ結合が、ただ1つのストレージ・サービス・プロバイダの損失を回避することを可能にし、他方で、k個のオーバ結合が、k個のストレージ・サービス・プロバイダの損失を回避することを可能にする。)オーバ結合OC’は、次に、異なるストレージ・プロバイダに格納される。オーケストレータは、ストレージ・プロバイダに格納されている結合の利用可能性をモニタする。オーケストレータは、欠陥のあるストレージ・オペレータを検出すると常に、追加的なオーバ結合を生成して、それを別のストレージ・プロバイダに格納する。
【0067】
元のファイルFを検索するために、ユーザ・デバイスは、オーケストレータからの(識別子ID’によって指定される)ファイルFの検索をリクエストする。
オーケストレータは、n個の結合を、n人のストレージ・オペレータにそれぞれリクエストする。
n人のストレージ・オペレータが正常に働いている場合には、オーケストレータは、n個の結合C,・・・,C,・・・,Cを受け取る。オーケストレータは、それらを、ユーザ・デバイスに転送する。この後者は、上で説明されているように、ファイルFを復元することができる。
n人のストレージ・オペレータの中の1人がもはや働いていない場合には、オーケストレータは、n−1個の結合C,・・・,C,・・・,Cn−1を受け取るのであるが、その理由は、結合Cを格納したストレージ・プロバイダが機能していないからである。次に、オーケストレータは、それらを、(対応するストレージ・プロバイダからフェッチされた)オーバ結合OC’およびスーパ係数a’,・・・,a’と共に、ユーザ・デバイスに転送する。
【0068】
ユーザ・デバイスの計算手段は、すべてのセグメントS,・・・,Sを検索するのであるが、この検索は、次のことによって、行われる。
チャンクCに対し、j=1,・・・,nとして、直接に(aij)であるか、または、オーバ結合OC’に対して、j=1,・・・,nとして、(a’・a1j+・・・+a’・aij+・・・+a’・anj)である検索されたフラグメントの係数によって構成される行列の逆行列を計算すること。なお、この逆行列の計算により、計算手段は、i=1,・・・,nとして、係数のn個の組bi1,・・・,binから構成される別の行列を得る。
次に、前記ファイルFのn個のチャンクS,・・・,Sを、S=bi1・C+・・・+bij・C+・・・+bin・OC’として計算すること。
次に、チャンクS,・・・,Sを再度組み立て、パディングを除去して、ファイルFを復元すること。
【0069】
1つのオーバ結合を用いて先に示された計算は、直截な方法で、複数のオーバ結合の場合に一般化することが可能である。M個のスーパ結合は、M人までのストレージ・オペレータが失敗をした場合を修復することを可能にする。k人のストレージ・オペレータが失敗した場合には(ただし、k<M)、n−k個のチャンク(および係数のn−k個の組)と(その関連する係数を用いた)k個のオーバ結合とが、逆行列の計算に用いられる。i=1,・・・,nとして、オーバ結合は、公式C’=(a’・a11+・・・+a’・ai1+・・・+a’・an1)・S+・・・+(a’・a1j+・・・+a’・aij+・・・+a’・anj)・S+・・・+(a’・a1n+・・・+a’・ain+・・・+a’・ann)・Sによって、元の結合として表すことができるので、失われた結合の代わりにオーバ結合を用いることに何も困難はなく、両者は、同じ方法で処理される。
【0070】
バリアントbは、逆に、n個のチャンクに対して、n個の結合とn個の係数とを用いて、厳密に設計されている。結合の損失に対する弾力性は、別の方法によって、冗長性や誤り符号化を通じて提供されるのであるが、提案されている方法の内在的な特徴として提供されるのではない。
【0071】
パフォーマンス・トレードオフ(オプションである改善):
提案されている方法の重要な態様は、その効率と、その方法がセキュリティとパフォーマンスとを調停するという事実とである。この態様を更に強調するために、本発明者らは、データを格納するユーザ(本発明者らは、簡潔にする目的で、そのようなユーザを、ソースと称する)とデータを検索するユーザ(彼らは必ずしもデータを格納する者とは同じではないので、本発明者らは、そのようなユーザを、フェッチャと称する)との間での計算に関する追加的なトレードオフを提供することができる。上述した実施形態では、ソースは結合を実行し、フェッチャは逆行列の計算を意味する復元を実行するので、労力は、ソースとフェッチャとの間で二分化されている。しかし、ソースが結合を計算し、更に逆行列を事前に計算して、直接の係数aijの代わりに、逆行列の係数bijを、ストレージ・サービス・プロバイダまたはローカル・メモリLMのいずれかに直接格納することを、本発明者らは、提案することも可能である。こうすると、フェッチャが、逆行列を直接に検索して、ファイルFを復元するために、単純な行列の乗算を実行することが可能になる。このような動作モードは、ソースに対する計算上の負担を増加させるが、フェッチャに対しては計算上の負担を劇的に軽減するため、格納は一度だけ行われるのであるが検索は多くの回数または多くのエンティティによって行われるような状況に、特に適している。この動作モードは、3つのアプローチ(a)、(b)および(c)のすべてと互換性を有する。
【0072】
図8は、本発明に従ってファイルを保護するための方法の3つの実施形態に共通である第1のステップを示しており、これらの実施形態は、格納は一度行われるのであるが、検索は多くの回数または多くのエンティティによって行われるような状況に、特によく適している。第1のステップは、逆行列を事前に計算し、直接の係数aijの代わりに逆行列の係数bijを直接に格納するために、修正されている。n個の係数a11,・・・,aij,・・・,annを提供するステップ3と、これらの係数をプロバイダまたはローカル・メモリLMのいずれかに格納するステップ6a、6bまたは6cとの間に、ステップ4’が導入されている。
ファイルFの検索に関しては、復元ステップ53、63、73が、行列A=(aij)の逆行列の計算を抑制するように修正されているが、その理由は、計算手段が、プロバイダまたはローカル・メモリLMのいずれかから、行列B=(bij)を直接に受け取るからである。
【0073】
最後の注意は、(ファイル記述子は異なるサイズを有しており異なる情報を含んでいるにもかかわらず)3つのバリアントすべてにおいて、デバイスが格納しなければならないファイル記述子を格納するローカル・メモリに関係するものである。これらの記述子を格納する複数の可能性が存在し、それらの可能性は、異なるセキュリティ・レベルに遭遇する。記述子は、実際には、
スマート・カードなど改竄防止機能を有するハードウェアに、
それへの更なるアクセスを物理的に防止するために、記述子が格納された後で取り除かれ得るローカルな取り外し可能なストレージ・デバイス(例えば、USB鍵、ポータブル・ハードドライブなど)に、
インターネット・サービス・プロバイダによって管理される安全なストレージ・スペース(例えば、セットトップ・ボックス)に、
単純なローカル・ストレージ・デバイス(例えば、ラップトップのハードドライブ)に、
例えばクラウドなど、更に別のストレージ・サービス・プロバイダに、
格納され得る。
【0074】
最初の2つのオプションは、バリアントcと組み合わせると、秘密性が非常に高い文書に対して特に適切である。他方で、最後のオプションは、バリアントaと組み合わせて、それほど高度には機密扱いではないデータであり、この最後のプロバイダが以前のプロバイダと共謀していないことがある程度保証されている場合を除いては、用いられるべきではない。
図1
図2
図3
図4
図5
図6
図7
図8