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

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

▶ ケイレックス・テクノロジー株式会社の特許一覧

特許6012078情報分散システム及び情報分散ストレージシステム
<>
  • 特許6012078-情報分散システム及び情報分散ストレージシステム 図000058
  • 特許6012078-情報分散システム及び情報分散ストレージシステム 図000059
  • 特許6012078-情報分散システム及び情報分散ストレージシステム 図000060
  • 特許6012078-情報分散システム及び情報分散ストレージシステム 図000061
  • 特許6012078-情報分散システム及び情報分散ストレージシステム 図000062
  • 特許6012078-情報分散システム及び情報分散ストレージシステム 図000063
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6012078
(24)【登録日】2016年9月30日
(45)【発行日】2016年10月25日
(54)【発明の名称】情報分散システム及び情報分散ストレージシステム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20161011BHJP
   G06F 21/60 20130101ALI20161011BHJP
【FI】
   G09C1/00 650Z
   G06F21/60 340
【請求項の数】6
【全頁数】29
(21)【出願番号】特願2013-126082(P2013-126082)
(22)【出願日】2013年5月30日
(65)【公開番号】特開2014-235425(P2014-235425A)
(43)【公開日】2014年12月15日
【審査請求日】2016年3月22日
(73)【特許権者】
【識別番号】504369731
【氏名又は名称】ケイレックス・テクノロジー株式会社
(74)【代理人】
【識別番号】100139033
【弁理士】
【氏名又は名称】日高 賢治
(72)【発明者】
【氏名】小篠 隆宏
(72)【発明者】
【氏名】平本 経幸
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開2010−266632(JP,A)
【文献】 欧州特許出願公開第2701337(EP,A2)
【文献】 須賀 祐治,“排他的論理和を用いた(k,n)閾値秘密分散法の新しい構成とその優位性について”,CSS2012コンピュータセキュリティシンポジウム2012論文集 [CD−ROM],日本,一般社団法人情報処理学会 コンピュータセキュリティ,2012年10月23日,Vol.2012,No.3,p.185−192
【文献】 永井 良英,高荒 亮,岩村 惠市,“XORを用いた高速な秘密分散法のデータ容量削減に関する一手法”,CSS2012コンピュータセキュリティシンポジウム2012論文集 [CD−ROM],日本,一般社団法人情報処理学会 コンピュータセキュリティ,2012年10月23日,Vol.2012,No.3,p.177−184
【文献】 “災害に強い地方公共団体の情報システムのあり方に関する調査研究報告書”,日本,財団法人 地方自治情報センター[オンライン],2013年 3月,p.180-181, 189-192, 215-216,[平成25年 7月10日検索]、インターネット,URL,<https://www.j-lis.go.jp/data/open/cnt/3/809/1/all.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
元データから4個の分散情報を生成し、そのうち2個の分散情報を用いて前記元データを復元する(2、4)閾値情報分散システムであって、
前記元データを分割してd個の部分情報を作成する部分情報生成手段と、
前記部分情報と同じサイズの乱数をm個生成する乱数生成手段と、
前記d個の部分情報とm個の乱数を成分とする(d+m)/2のサイズからなる第1及び第2基準ベクトルを生成する基準ベクトル生成手段と、
生成された前記第1及び第2基準ベクトルと予め準備した8個の係数行列により、前記第1基準ベクトルと前記係数行列との組み合わせ、前記第2基準ベクトルと前記係数行列との組み合わせによる行列演算(排他的論理和演算XOR)と当該演算結果のベクトル間の和演算(排他的論理和演算XOR)を行い、4個の(d+m)/2サイズの分散情報ベクトルを生成する分散情報ベクトル生成手段と、
生成した前記4個の分散情報ベクトルのそれぞれに対し、その(d+m)/2個の要素を接続して4個の前記分散情報を生成する分散情報生成手段と、
任意の2個の前記分散情報をもとにして前記元データを復元するデータ復元手段、
からなることを特徴とする情報分散システム。
【請求項2】
mはd以下、(d+m)/2は2以上の整数である、
ことを特徴とする請求項1に記載の情報分散システム。
【請求項3】
前記係数行列は、0又は1のみを要素とする(d+m)/2次元正方行列である、
ことを特徴とする請求項1又は2のいずれか1項に記載の情報分散システム。
【請求項4】
前記係数行列は、前記基準ベクトル内の要素の並び順に合わせて予め定義した複数のパターン、又は外部から任意に与える、
ことを特徴とする請求項1ないし3のいずれか1項に記載の情報分散システム。
【請求項5】
mが、2−1≧(d+m)/2を満たす場合、m個の乱数を組み合わせて新たな乱数として利用し、前記行列演算(排他的論理和演算XOR)を行う、
ことを特徴とする請求項1ないし4のいずれか1項に記載の情報分散システム。
【請求項6】
請求項1ないし5のいずれか1項記載の情報分散システムを用いた情報分散ストレージシステムであって、
4個の情報分散ストレージ装置をネットワークで接続し、
前記情報分散ストレージ装置の稼働状態を監視する監視手段と、
分散情報がどこに保管されているかを管理する管理手段と、
分散情報を前記情報分散ストレージ装置内で相互保管する手段と、
前記監視手段によって前記情報分散ストレージ装置の一つが故障していることを検知した場合、直ちに別の前記情報分散ストレージ装置に切り替える手段と、
前記監視手段によって前記情報分散ストレージ装置の2つまでが故障していることを検知した場合、残りの情報分散ストレージ装置で運用継続する手段とを有し、
前記分散情報は、全ての前記情報分散ストレージ装置内に保管され、いずれの前記情報分散ストレージ装置でも元データに復元できる、
ことを特徴とする情報分散ストレージシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散情報のデータサイズとセキュリティ強度を乱数の量等によって調整可能な情報分散システム、及び当該情報分散システムを用いた情報分散ストレージシステムに関する。
【背景技術】
【0002】
近年、データ通信網およびデータセンタの発展、大震災等の災害発生を契機として、重要なデータを秘匿化して広域に分散保管する技術が注目されている。秘密分散技術は、その用途として、秘匿性の高い大量ファイルのバックアップや少量の重要なデータのバックアップ(公開鍵暗号方式の秘密鍵の管理)等があるが、近年のデータセンタの普及とともに保管サービスに対するニーズが高まっている。
【0003】
(k、n)閾値秘密分散法はその代表的な手法であり、秘密に保管すべき元データをn個の分散情報として秘匿化し、任意のk個の分散情報をもとにして、元データを復元するものであり、情報の秘匿と紛失によるリスクを回避する手段として有効である。ネットワークを介した第三者による保管サービスでは、高い可用性と高い秘匿性ならびに低コスト運用を図るための技術が極めて重要である。従来の秘密分散技術では、可用性と秘匿性を追求した技術は提案されているが、低コストと両立するような技術の提案は充分でなかった。
【0004】
特許文献1では、分散数4で任意の2つの分散情報から元データを復元できる(2、4)閾値秘密分散法により、2重故障での可用性の確保と、演算量を少なくして秘密分散処理を効率化することが提案されている。2つまでの分散情報が消失またはサーバの故障等で利用できなくなっても、残りの2つで元データを復元でき安全性を確保するというものである。特許文献1では、元データを2個の部分情報に分割して、それぞれの部分情報と同一サイズの乱数要素を2個発生させ、各部分情報と乱数の組み合わせでそれぞれの排他的論理和演算を行い、演算結果で得られたものを2個ずつ連結して4個の分散情報を生成している。排他的論理和演算のみを用いるため、計算速度は速いが、分散情報のサイズが元データと同じであることから、保管するデータ量が全体で元データの4倍の大きさになり、保管コストがかかると言う問題がある。
【0005】
一方特許文献2には、同様に(k、n)閾値分散法を利用したシステムにおいて、分散情報のサイズに自由度を持たせる発明が提案されている。当該発明前では、元データを分割して部分情報を生成する際、分割数と同じ数の乱数要素(それぞれ部分情報と同一サイズ)を発生させ、部分情報の集合(第1群)と、乱数のみの集合(第2群)との間で集合要素の排他的論理和の組み合わせ演算を行い、演算結果で得られたもの(集合要素)を連結して分散情報を作成している。分散情報のサイズは、第1群の要素のサイズを加算したものと同等であるため、元データのサイズと同じであった。特許文献2に記載の発明は、元データの分割数を元の分割数よりも所定数だけ増やし、増やした個数分(指定数)の部分情報を第2群に移し、乱数と置き換えている。第1群の要素の個数と第2群の要素の個数は同一であるため、乱数の個数は置き換えられた分だけ減っていることになる。また、第1群に所属する部分情報のサイズおよび乱数のサイズは、分割数が増えた分だけ小さくなる。その後の処理は、従来同様に第1群(部分情報のみの集合)と第2群(残りの部分情報と乱数の集合)の間で、要素間の排他的論理和演算を行い、演算結果で得られたものを連結して分散情報を生成している。この発明は、分割数を増やし第2群に移す部分情報が増えるほど、分散情報のサイズは減っていくことになる。しかしながらこの方法を、本明細書で示す最も現実的な運用である(2、4)閾値秘密分散に適用した場合、分散情報の内部に原データ(秘密情報)の断片や、部分情報同士の排他的論理和を行っただけの断片(乱数との排他的論理和演算がされていない断片)が存在し、セキュリティ強度として好ましくないケースが出現する。例えば、部分情報同士の排他的論理和演算の場合、一方のデータがオールゼロのときにもう一方の原データが出現することになり、部分的な秘密漏洩の問題が存在する。
【0006】
また非特許文献1では、(k、L、n)ランプ型閾値秘密分散法を用いて(3、2、4)閾値分散を提案している。(k、L、n)ランプ型閾値秘密分散法とは、非特許文献2等の多くの文献に示されているとおり、分散情報のサイズを減らすための手法である。(k、n)閾値秘密分散法と同様に元データ(データ)をn個の分散情報として秘匿化し、そのうちk個を集めて元データに復元できるが、新たなパラメータLを導入して、k−L個の分散情報からは元データが復元できないがk−L+1個からk−1個までを集めると何らかの元データに関する情報を得ることができるという手法である。非特許文献1では、元データを4つに分散し、そのうち3つの分散情報を集めれば、元データが完全に復元できる。L=2を指定しているため、分散情報のサイズが元データのサイズの半分になる効果があり、分散情報が1個では元データが絶対に復元できず、2個集めると一部の情報を得ることができる。当該手法では、分散情報のサイズ抑制効果と処理速度向上に貢献しているものの、2重故障に耐えることができない。
【先行技術文献】
【0007】
【特許文献1】特開2011−35618号公報
【特許文献2】特開2008−262040号公報
【特許文献3】特開2009−37093号公報
【特許文献4】特開2004−213650号公報
【非特許文献1】松本勉、清藤武暢、鴨志田昭輝、新谷敏文、佐藤敦“セキュアデータ保管サービス向け高速秘密分散方式”SCIS2012、2012.
【非特許文献2】土井洋“秘密分散法とその応用について”情報セキュリティ総合科学第4巻、2012
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、大量データの取り扱いを視野に入れ、低コスト性、高い可用性、高い秘匿性、高速性を満たすための手段を提案するものであり、以下の課題を同時に解決することができる。
【0009】
(1)分散情報のサイズを小さくする。大規模ファイル群をバックアップする場合、分散情報のサイズが元データと同じ大きさでは、分散情報の数が増えるにしたがって大規模ストレージが必要となり、保管コストも増大する。
(2)分散情報の秘匿性を高める。分散情報の全ての断片に乱数との排他的論理和演算(XOR)が入り、元データを推測できないようにする。特に、分散情報のネットワーク転送時に、コストの安い公衆回線を利用できるようにするためには、秘匿性を高めることが重要である。
(3)高速処理を実現する。大規模データを扱うためには、元データから分散情報の生成、および元データの復元の処理速度が遅いと高性能の計算処理装置が必要となり、コストがかかる。また、データ回線上を通るデータ量を落とさないと、回線ネックとなり、処理速度も落ちることになる。
(4)論理レベルで2重故障に対応する。万が一、複数の分散装置のいずれかが故障した場合でも(データの破壊、消失)、これを多重化して、連続運転ができるように可用性を高める必要がある。従来は、ストレージレベルでRAIDの機能やサーバのレプリケーション機能で対応しているが、既存の分散装置と併用するとコストが高くなるため、RAIDを使用しないで論理レベルで2重故障に耐えるようにする。
【課題を解決するための手段】
【0010】
本発明は、上記の課題を同時に解決するため、(2、4)閾値分散法を用いて、分散技術の優位点を保ちながら、実運用コストを下げる手段を提案するものである。
【0011】
本第一の発明は、元データから4個の分散情報を生成し、そのうち2個の分散情報を用いて前記元データを復元する(2、4)閾値情報分散システムであって、前記元データを分割してd個の部分情報を作成する部分情報生成手段と、前記部分情報と同じサイズの乱数をm個生成する乱数生成手段と、前記d個の部分情報とm個の乱数を成分とする(d+m)/2のサイズからなる第1及び第2基準ベクトルを生成する基準ベクトル生成手段と、生成された前記第1及び第2基準ベクトルと予め準備した8個の係数行列により、前記第1基準ベクトルと前記係数行列との組み合わせ、前記第2基準ベクトルと前記係数行列との組み合わせによる行列演算(排他的論理和演算XOR)と当該演算結果のベクトル間の和演算(排他的論理和演算XOR)を行い、4個の(d+m)/2サイズの分散情報ベクトルを生成する分散情報ベクトル生成手段と、生成した前記4個の分散情報ベクトルのそれぞれに対し、その(d+m)/2個の要素を接続して4個の前記分散情報を生成する分散情報生成手段と、任意の2個の前記分散情報をもとにして前記元データを復元するデータ復元手段、からなることを特徴とする。
また本第一の発明は、mはd以下、(d+m)/2は2以上の整数である、ことを特徴とする。
また本第一の発明は、前記係数行列は、0又は1のみを要素とする(d+m)/2次元正方行列である、ことを特徴とする。
また本第一の発明は、前記係数行列は、前記基準ベクトル内の要素の並び順に合わせて予め定義した複数のパターン、又は外部から任意に与える、ことを特徴とする。
更に本第一の発明は、mが、2−1≧(d+m)/2を満たす場合、m個の乱数を組み合わせて新たな乱数として利用し、前記行列演算(排他的論理和演算XOR)を行う、ことを特徴とする。
【0012】
本第二の発明は、前記情報分散システムを用いた情報分散ストレージシステムであって、4個の情報分散ストレージ装置をネットワークで接続し、前記情報分散ストレージ装置の稼働状態を監視する監視手段と、分散情報がどこに保管されているかを管理する管理手段と、分散情報を前記情報分散ストレージ装置内で相互保管する手段と、前記監視手段によって1つの前記情報分散ストレージ装置が故障していることを検知した場合、直ちに別の前記情報分散ストレージ装置に切り替える手段と、前記監視手段によって2つまでの前記情報分散ストレージ装置が故障していることを検知した場合、残りの情報分散ストレージ装置で運用継続する手段とを有し、前記分散情報は、全ての前記情報分散ストレージ装置内に保管され、いずれの前記情報分散ストレージ装置でも元データに復元できる、ことを特徴とする
【発明の効果】
【0013】
本第一の発明によれば、乱数の発生数mが可変であるため、分散情報のサイズを小さくしたい場合にはmを小さくし、分散情報のサイズは大きくなるがセキュリティ強度をあげたい場合には、mを大きくしてdに近づければ良い。乱数の量が可変であるため、分散情報の秘匿性の強度と分散情報のサイズ・処理速度のバランスを自由に変更することができる。すなわち、乱数を元データと同じだけ発生させると、分散情報のサイズは元データと同じになって処理時間はかかるものの、セキュリティ強度を最大とすることができる。一方、乱数の量を減らすと分散情報のサイズが減ることで処理速度を速くすることができる。
【0014】
また係数行列のパターンによって分散情報を作成するときの乱数と元データの排他的論理和演算の計算パターンを変更でき、これによってもセキュリティ強度を変更することができる。
【0015】
また乱数の発生数mを指定する際、2−1が(d+m)/2に等しいか、又は大きくなる数字とした場合、m個の乱数を組み合わせて新たな乱数として利用し、前記行列演算(排他的論理和演算XOR)を行うため、分散情報の全ての断片に異なる乱数要素との排他的論理和演算が入るようにすることでき、分散情報の全ての断片に元データや元データのみの排他的論理和演算が出現しないため、分散情報に元データの断片が生データとして絶対に存在せず、分散情報はその全体を完全な乱数とみなすことができる。
【0016】
また、dに対するmの数値を上記条件2−1が(d+m)/2に等しいか大きいことを守りながら、mの数値を相対的に小さくすることで、セキュリティ強度を保ったまま、乱数の発生数が少なくすることや分散情報のサイズを減らすことができる。乱数に真正乱数を用いた場合、乱数発生コスト(処理時間等を含む)がかかるため、乱数の発生量が少ないことは、分散情報のサイズ減少によるディスク容量削減のみならず、システム全体の処理速度向上にも寄与する。
【0017】
本第二の発明によれば、分散情報の1つを情報分散ストレージ内の各情報分散ストレージ装置が保管しているため、復元のために足りない1つの分散情報のみをネットワークを通して入手すればよく、ネットワーク転送時間が減り、元データSの復元時間が大幅に節約できる。
また、1つの情報分散ストレージシステムを、複数の顧客がシェアして使用でき、コストシェアができるため、実際の運用コストを下げることができる。例えば、4人の異なる顧客が、それぞれ専用の情報分散ストレージ装置を情報分散処理の入口として使用し、保管場所は残りの3つの情報分散ストレージ装置として使用すると、1つの情報分散ストレージシステムをシェアできることになり、各顧客が負担するコストを削減することができる。
【図面の簡単な説明】
【0018】
図1】実施例1における情報分散システムの構成図である。
図2】元データから分散情報を生成する処理フロー図である。
図3】元データの復元の処理フロー図である。
図4】実施例2における情報分散ストレージシステムの構成図である。
図5】端末から元データを入力する構成図である。
図6】ネットワーク上の端末から元データを入力する構成図である。
【発明を実施するための最良の形態】
【0019】
以下、本発明の実施形態について詳細に説明するが、まず本実施例で使用する記号について以下のとおり定義する。
+:加算演算子。部分情報や乱数要素間での+演算はビット単位の排他的論理和
(i=1,2,3,...,d):
元データSを示すビット列。S,S,S,...,Sは、元データSをd分割した各要素(ビット列)であり、それぞれが部分情報である。
(i=1,2,3,...,m):
乱数要素を示すビット列。R,R2,,...,Rは、部分情報と同一サイズの乱数要素(ビット列)である。
,V
基準ベクトル。部分情報と乱数要素を、それぞれ(d+m)/2個ずつ並べたもの。本明細書では、乱数要素をVのベクトルにまとめて解説する。

分散情報ベクトル。部分分散情報を(d+m)/2個並べたベクトルであり、各要素をビット結合すると分散情報データができる。i=1,2,3,4とすれば、4個の分散情報ができる。
(iu)
分散情報ベクトルWを構成する要素であり、それぞれが部分分散情報
(u=1,2,3,....,(d+m)/2)である。
IおよびI
単位行列。対角成分のみが1で他は全て0の正方行列である。
(i,j)(i=1,2,3,4,,j=1,2):
を生成するときの基準ベクトルV,Vに対する係数行列。それぞれK(i,1)(i,2)で示される。
,Wから基準ベクトルV,Vを復元するときの係数行列。K(i,1),K(i,2)、K(j,1),K(j,2)を要素とする行列の逆行列要素である。
【実施例1】
【0020】
図1は本願発明に係る情報分散システムの概要を示すブロック図であり、図2は処理のフロー概要を示す。本発明は、コスト面等から実運用に最も適している(2、4)閾値情報分散システムにより、元データSを分散数4の分散情報に分散し、そのうちの任意の2つの分散情報から元データSを復元するシステムに適用しているが、本アルゴリズムは、一般式で示す(k、n)閾値情報分散システムにも適用可能である。 この場合は、以降の「(d+m)/2」が「(d+m)/k」に置き換わり、mは(d+m)/k以下で、(d+m)/kが2以上の整数、かつ以下の基準ベクトル数がk個となり、かつ係数行列は(d+m)/kサイズのものが各基準ベクトル毎にn個(合計k×n個)必要となる。
【0021】
図1図2に示す通り、まず入力パラメータとして、秘密管理情報となる元データSを部分情報に分割するための分割数dと、発生させる乱数要素の個数mを指定する。mはd以下、(d+m)/2が2以上の整数であることが条件である(S101)。
【0022】
次に元データ分割手段11により元データSをd個の部分情報S,S,S,....,Sに等分割する(S102)。また乱数発生手段12によりm個の乱数要素R,R,R,....,Rを生成する(S103)。発生させる各乱数要素のサイズ(ビット長)は、それぞれ1つの部分情報のサイズ(ビット長)と同じである。
【0023】
次に、基準ベクトル生成手段13において、前記d個の部分情報S(i=1,2,3,...,d)とm個の乱数要素R(i=1,2,3,...,m)を(d+m)/2個ずつに分類し、分類したものを順に並べて、2つの基準ベクトルV、Vを生成する(S104)。基準ベクトルV、V内の各要素の並べ方は、これ以外にも構成することができるが、後述の係数行列のパターンに影響を与える。
【数1】
基準ベクトルの各要素は、同一サイズを持った部分情報または乱数要素である。
乱数要素は第1の基準ベクトルVにまとめた方が、係数行列が単純になり処理が簡単になるが、必ずしも数1のパターンに限定されない。
【0024】
次に、分散情報生成手段14において、基準ベクトルV、Vのそれぞれに予め準備した(又は外部から入力する)異なる係数行列を乗じ、その演算結果のベクトルを再度加算して、(d+m)/2サイズの分散情報ベクトルWを得る(S105)。
各分散情報ベクトルW(i=1,2,3,4)は、(d+m)/2個の成分からなる列ベクトルを生成する。なお、各分散情報ベクトルW(i=1,2,3,4)の各要素のサイズは、部分情報のサイズ(元データの1/d)と同じであり、それらの和が分散情報データとなるが、その全体サイズは元データSの(d+m)/2dである。
【数2】
ここで、p=(d+m)/2であり、ベクトル部の右肩のTは転置ベクトルであることを示す。要素(ベクトル成分)間の加算(+演算子)は、排他的論理和(XOR)演算に置き換えるものとする。
【0025】
以下は異なる4つの分散情報ベクトルW(i=1,2,3,4)を生成するときの式を示す。
【数3】
【0026】
係数行列記憶部14aにおける係数行列K(i,1),K(i,2)は、0と1からなる2値正方行列で縦横サイズが(d+m)/2のものであり、同じ基準ベクトル内のどの要素間の加算(XOR演算)結果を新たな要素とするかを定義するものである。係数行列は1つの分散情報ベクトルに対して2つ必要であるため、4つの分散情報ベクトルを作成する場合、合計8個(基準ベクトル数×分散情報数)必要である。係数行列のパターンは基準ベクトルごとに分類される。
【0027】
本発明では係数行列の定義が重要であるが、以下の(1)および(2)の条件を満たす係数行列を予め用意するか、或いは外部から与えるようにしている。
(1)1つの基準ベクトル内に部分情報と乱数要素が混在する場合は、係数行列と基準ベクトルの積を行った際、演算結果ベクトルの全ての成分に乱数要素が加算されるように係数行列を定義する。係数行列と基準ベクトルとの積は、係数行列の各行で値が1になっている要素に対応する基準ベクトルの要素のみが加算(XOR演算)されることになる。したがって、基準ベクトル内で部分情報が出現している行は、該部分情報の要素と乱数要素が加算(XOR演算)されるように係数行列の各行の対応部分を1とする。
ここで、注意すべきこととして、基準ベクトル内の乱数要素の数が少なく、同じ乱数要素を再利用する場合、演算結果に同じ乱数要素とのXOR演算を行うことで同じ乱数要素出現の周期性が増すことになる。これを防止するためには、分散情報ベクトルの各要素が1つの乱数要素との演算結果になるのではなく、異なる複数の乱数要素との演算結果になるように係数パターンを指定すればよい。m個の乱数要素を指定した場合、m個の乱数要素の組み合わせ数は2−1個であるため、乱数要素の出現の周期性は2−1に増やすことができる。例えば、R,R,Rの3個の乱数要素を指定した場合、乱数要素の組み合わせとして得られる異なる乱数要素は、数4のように2−1(=7)個であり、それぞれを異なる乱数(乱数同士の演算結果は乱数)とみなすことができる。
【数4】
換言すると、乱数要素の数を増やしたものと同じにみなせるため、2−1(計算で得られた異なる乱数の個数)が係数行列の行の数より大きい場合、つまり次式を満たす場合に、係数行列のパターンを後述の方式で指定すると、基準ベクトルとの演算結果に同じ乱数要素が出現するような周期性をなくすことができる。
【数5】
(2)基準ベクトル内に乱数要素が無い場合は、係数行列と基準ベクトルの積を行った際、結果のベクトルの要素が、係数行列ごとに元の基準ベクトルの要素の並びと完全に異なるような係数行列を定める。
【0028】
以下、更に詳細に説明する。0と1の要素からなる係数行列K(i,j)(i=1,..4)(j=1,2)及び単位行列Iはメモリに記録されている。当然、外部から定義パターンとして与えることもできるが、ここではメモリに記録されているものとして説明をする。メモリに記録されている係数行列K(i,j)(i=1,..4)(j=1,2)は、このとき2を法とする演算のもとに数6の左辺に示す行列式が0でないように定義されている。メモリに記録されている係数行列K(i,j)(i=1,..4)(j=1,2)の詳細パターンは、数12〜数15である。
【数6】
【0029】
下記の式を用いて4つの分散情報ベクトルW,W,W,Wを生成する。
【数7】
【0030】
表現を換えると次式になり、これは数3と同一式であるが再掲する。
【数8】
【0031】
上記の係数行列について、詳細な内容(パターン)をのべる。
第1の基準ベクトルVにかかる係数行列パターン(2値正方行列)を数12、数13に掲げるが、その前にベースとなる基本パターン行列を数9に示す。この行列Zは一辺が2−1の正方行列である。
【数9】
上記数9で、最初の左端列は乱数の組み合わせを示す行列要素(IおよびA〜A)が並んでおり、全て列数が同一(乱数の個数=m)であるがIを除いて正方行列とは限らない。それ以外のI〜Iは対角正方行列である。Iは行列サイズがmの対角行列であり、I〜IはそれぞれA〜Aの行数を一辺とする対角正方行列である。
の列数はmであるが、行数は、(m個から異なるi個を選ぶ組み合わせ数)であり、各行は選択されたi個の列要素が1で他は0であるような行列である。
ここで添字iは、i=2,..,mである。
数10は、乱数の個数mが5の場合のA〜Aの事例を示している。各行は、乱数要素R〜Rの選択(排他的論理和演算に使用する)を1で非選択(排他的論理和演算に使用しない)を0で示している。
【数10】
【数11】
【0032】
第1の基準ベクトルVにかかる係数行列パターン(正方行列)は、一辺が(d+m)/2の正方行列であり、「(d+m)/2」が「2−1」以下の場合は、数12に示す行列となる。一方、「(d+m)/2」が「2−1」より大きい場合は、数13に示すが数9の行列Zを再利用したものになる。すなわち、最初のm列は数9の行列のI1、〜Aを縦方向に繰り返して並べるとともに、全体の対角要素が1になるように拡張した行列から「(d+m)/2」要素分を切り取った(左上から切り取る)行列となる。 数10のパターンは、特に乱数の量を少なくするときに有効であるが、乱数の再現性が発生するためセキュリティ上は好ましくない。
【数12】
【数13】
【0033】
第2の基準ベクトルVにかかる係数行列パターン(正方行列)も、一辺が(d+m)/2の正方行列であるが、この行列サイズ(d+m)/2が偶数か奇数かによって異なる。 数14は、偶数の場合であり、数15は奇数の場合の係数行列のパターンである。
【数14】
【数15】
【0034】
上記によって得られた分散情報ベクトルWの要素を、ベクトルごとにその成分を接続(ビット列の接続)して、分散情報を得る(S106)。分散情報は異なるものを4個生成し、分散情報送信手段15によりネットワーク経由で保管サーバ(ストレージ)2a〜2dにそれぞれ送信され、各保管サーバ(ストレージ)内に保存される。
【0035】
上記で生成された各分散情報のデータにヘッダ部を付加して、最終的な分散情報を生成する(ステップS107、ステップS108)。
ヘッダ部には、第1ヘッダ部と第2ヘッダ部があり、第1ヘッダ部には、分散情報ベクトルの計算式を識別するコード(分散情報ベクトルWiの添字iの番号等)やヘッダ部、分散情報データ部のサイズを格納し、第2ヘッダ部には分散情報ベクトルの計算式で使用した係数行列を格納する。
【0036】
第2ヘッダ部の係数行列自体の秘匿性を高めたいときは、ステップS101〜S106の手順で第2ヘッダ部を対象に分散情報データを作成し、元データSと置き換える。処理を単純化するため、d=m=2を使用し、この場合の係数行列は固定的なものとして記憶されるようにし、分散情報の中には入れないようにすることができる。
【0037】
ついで、各保管サーバ(ストレージ)2a〜2dに保存されている分散情報から、元データSを復元する処理について、図1図3にもとづいて説明する。
【0038】
図1の分散情報受信手段16により任意の2つの分散情報を集め、当該分散情報を(d+m)/2個に分割して順に並べ、分散情報ベクトルを得る。分散情報ベクトルは2つ生成できるため、これをW、Wとすると数16のように、数3で示す式が2つ生成できる。すなわち、基準ベクトルV、Vを含む式が2つできることになるため、その係数行列の逆行列が求めれば、V、Vを未知数とする連立方程式を解くことで元の基準ベクトルを求めることができる。
【数16】
得られた基準ベクトル内の成分より、元の部分情報を取り出し、それらを接続(ビット列の結合)して元データSを復元する。
【0039】
図1に示す係数行列の逆行列記憶部17aは、上記のV、Vを求めるための、係数行列K(i、j)の逆行列のパターンを予め計算して記憶しておく部分である。
【0040】
元データSを復元する処理を図3にもとづいてより詳細に説明する。それぞれの分散情報からヘッダ部と分散情報データ部を分離し、ヘッダ部自身が分散情報データになっている場合は、ヘッダ部から係数行列を復元するために、ヘッダ部に対して以下の処理を行い、係数行列Ki、jを復元する。
【0041】
まず、2つの分散情報データ部を「(d+m)/2」個の部分分散情報に等分割し、それぞれを並べて2つの分散情報ベクトルW,Wを生成する(S202、S203)。
【0042】
次に、2つの分散情報ベクトルW,Wをもとにして元データSを復元処理するため次式を生成する(ステップS204)。
【数17】
【0043】
上記数17により次式が生成される。V、Vを未知数とする連立一次方程式を解くのと同じである(ステップS205、S206)。
【数18】
【0044】
演算のもとで、且つ、K(i,1)=K(j,1)の条件を使用して、次のように算出される。
がある。次式のIは、「(d+m)/2」次元の単位行列(対角要素のみが1で他は0)である。
【数19】
【0045】
上記数19は表現を換えると次式となる。この式を用いるとd個の部分情報S,S,S,......Sを求めることができる。
【数20】
【0046】
ベクトルV、Vは、部分情報と乱数を要素としたベクトルであり、これらベクトル内の各要素の並び順は最初に定義しているため、これからd個の部分情報S,S,S,......Sを取り出すことができる。取り出した部分情報を連結し、最終的に元データSを得ることができる(S207)。
【0047】
上記実施例では、係数行列のパターンを数12〜数15に示したが、このパターンは基準ベクトルの係数行列として演算され、この係数行列を基準ベクトルに掛けると基準ベクトル内の成分の間での排他的論理和演算の組合せパターンを定義するものであり、さまざまなパターンを定義することができる。また、後述の具体例では、異なる係数行列パターンのサンプルを掲げる。また、基準ベクトルの成分となっている部分情報と乱数要素の並べ方も様々なものが考えられる。係数行列はこの並びを意識して定義する必要がある。
【0048】
(d=7、m=3を適用した具体例)
以下では、元データSの分割数が7で乱数要素が3の場合の事例である。
=7となる。このケースでは、分散情報のサイズは、元データSのサイズの約0.71倍になる。
【0049】
【数21】
【0050】
この場合、分散情報ベクトルW1,2,,Wは、次のようになる。
【数22】
【0051】
ここでの復元例は分散情報ベクトルW,Wによる復元を考える。他の分散情報ベクトルW,Wから残りの復元も同様にできる。数17を適用して数23を得る。
【数23】
【0052】
上記数23は、数18の形式で記述すると下記の行列が適用される生成されることになる。
【数24】
【0053】
分散情報ベクトルW1,2,からの元データ復元は数23の計算式で行うことができる。各分散情報ベクトルW1,2,,Wの中から任意の2つを用いた復元式は、以下のとおりである。
【0054】
分散情報ベクトルW,Wによる復元。
右辺行列の各成分の式は、結合法則と交換法則が成り立つため、プログラムで計算するときは、共通の演算項を取り出して先に計算すると、計算量を減らすことができる。以降の復元式についても同じである。
【数25】
【0055】
分散情報ベクトルW,Wによる復元。
【数26】
【0056】
分散情報ベクトルW,Wによる復元。
【数27】
【0057】
分散情報ベクトルW,Wによる復元。
【数28】
【0058】
分散情報ベクトルW,Wによる復元。
【数29】
【0059】
分散情報ベクトルW,Wによる復元。
【数30】
【0060】
(d=26、m=4を適用した具体例)
乱数要素が少ないケースの具体例として、d=26、m=4の例を示す。ここでは乱数の周期性をみるために第1の基準ベクトルとそれに乗ずる係数行列のパターンの演算のみを示す。基準ベクトルは(d+m)/2であるため15列の列ベクトルで、行(d+m)/2列の正方行列である。
【数31】
1列目から4列目までは、m=4であるため、各行ごとに4個の乱数R〜Rの組み合わせパターンを示している。1行目〜4行目までは乱数R〜Rを、単独で演算することを示す。5行目の“1100”は、R+Rの演算結果を使用することを示す。一般に、最初のm列が乱数の組み合わせパターンを示す。
なお、第2の基準ベクトルにかかる係数行列K(1,2),K(2,2),K(3,2),K(4,2)は、係数行列の大きさ(d+m)/2が、偶数か奇数かにより、異なるものを指定する。
【0061】
周期性を見るために、第1項の演算のみを示すと、次のとおりの演算結果になる。
【数32】
【0062】
分散情報のサイズは、元データSのサイズに対して(d+m)/2d倍で表されるため、dとmが上式を満たし、かつmがdに対して相対的に小さいほど、分散情報のサイズが小さくなる。本例でば、分割数dを26、乱数要素の個数mを4としているため、分散情報のサイズは元のサイズの約0.59倍になる。
【0063】
(m=dを適用した具体例)
次に、m=d、すなわち元データSの分割数と乱数要素の数が同じ場合について説明する。このとき、分散情報のサイズは元データSのサイズとおなじである。既存のアルゴリズム(例えば特許文献2)では、分割数dは5以上の素数から1を引いたものに制約されるが、本発明では、この制約が無く以下の係数行列のパターンを使用して、分散情報ベクトルを生成することができ、かつ元データSを復元できる。
【0064】
以下の例では、m=dのうち、分割数が3(奇数)、乱数要素も3の事例を示す。
特許文献2では奇数の分割は不可能であるが、本発明では以下のとおり可能である。
【数33】
【0065】
4つの分散情報ベクトルW1,2,,Wの要素を表形式に表現すると、表2のようになる。この表では第1行から順にW1,2,,Wの要素を示している。
【表2】
【0066】
各W1,2,,Wから任意の2つを用いた復元の計算式は、以下のとおりである。
,Wによる元データの復元。
【数34】
【0067】
,Wによる元データの復元。
【数35】
【0068】
,Wによる元データの復元。
【数36】
【0069】
,Wによる元データの復元。
【数37】
【0070】
,Wによる元データの復元。
【数38】
【0071】
,Wによる元データの復元。
【数39】
【0072】
以上のとおり、基本的な元データSの分散と復元方法につき説明したが、以下、任意の2つの分散情報をもとにして、消失・破壊された分散情報を再生成する処理について説明する。本方式によれば、元データSを復元する過程を経ないで、残りの分散情報から消失したデータ(分散情報)を再生成することができ、部分的な消失・破壊からの復旧処理の高速化に極めて有効である。
【0073】
分散情報ベクトルW,Wj(i≠j)より、Wk(k≠i,k≠j)の分散情報ベクトルを求める式は下記の式に従って求められる。
【数40】
【0074】
以下では、元データの復元処理を必要とせず、保存されている2つの分散情報をもとに、消失した2つの分散情報を復元する方式について述べる。
分散情報ベクトルW,Wから、直接分散情報ベクトルW,Wを復元。
【数41】
【0075】
分散情報ベクトルW,Wから、直接分散情報ベクトルW,Wを復元。
【数42】
【0076】
分散情報ベクトルW,Wから、直接分散情報ベクトルW,Wを復元。
【数43】
【0077】
分散情報ベクトルW,Wから、直接分散情報ベクトルW,Wを復元。
【数44】
【0078】
分散情報ベクトルW,Wから、直接分散情報ベクトルW,Wを復元。
【数45】
【0079】
分散情報ベクトルW,Wから、直接分散情報ベクトルW,Wを復元。
【数46】
【実施例2】
【0080】
本発明によれば(2、4)閾値分散法を利用した情報分散システムを用いて、低コストの情報分散ストレージシステムを実現することができる。以下、実施例1の情報分散システムを利用した情報分散ストレージシステムを説明するが、情報分散システムは実施例1で示したもの以外、従来公知の分散情報の生成方法(生成アルゴリズム)や元データSの復元方法(復元アルゴリズム)など、様々な方式を利用していても実現可能である。また、(2、4)閾値分散法に限らず一般式で示す任意の(k、n)閾値分散法にも適用可能である。
【0081】
図4に示すように4つの情報分散ストレージ装置をネットワークで接続し、全体を1つの情報分散ストレージシステムとして構成する。各情報分散ストレージ装置は情報分散システム部とストレージ部を内蔵しているため、元データSから分散情報を生成する機能と分散情報を保管する機能を合わせて持っている。本システムでは、システム内の一つの情報分散ストレージ装置から生成された分散情報が、自分自身のストレージ部および同じシステム内の別の情報分散ストレージ装置のストレージ部に保管され、任意の2つの情報分散ストレージ装置までが故障しても残りの情報分散ストレージ装置で継続運用が可能となる。
【0082】
以下、図4に示した情報分散ストレージシステムの構成について、詳細に説明する。
情報分散ストレージシステムは図4の20a〜20dの4つの情報分散ストレージ装置をネットワークで接続したものである。元データSはネットワークに接続した端末から指定された情報分散ストレージ装置に入力する構成になっている。端末(図4の22)は複数あっても良い。また、端末が接続されるネットワークは、図6に示すように別のネットワークにすることも可能である。
【0083】
情報分散ストレージ装置は、図4の201〜204に示すように、情報分散システム部、分散カタログ情報生成部、装置監視部、ストレージ部によって構成される。情報分散システム部は実施形態1に示すような分散情報の生成や元データSの復元を行うものであるが、その手段・方法は異なっても良い。分散カタログ情報生成部は、各元データSの管理情報と分散情報の保管場所を示すデータ(分散カタログ情報)をまとめたデータベースの生成・更新を行うものである。
【0084】
装置監視部は、周期的に自分自身の情報分散機能やストレージ部が動作しているかを監視するとともに、情報分散ストレージシステム内の他の情報分散ストレージが正常か否かを周期的に問い合わせ監視する。
【0085】
ストレージ部は大容量ストレージを接続したものであり、分散情報と分散カタログ情報(データベース)が保管される。
【0086】
情報分散ストレージシステムの処理についてその方式を説明する。
端末から入力された元データSは、指定の情報分散ストレージ装置に渡される。
当該情報分散数トレージ装置内の情報分散システム部で4個の分散情報が生成され、自身のストレージ部に1個保管し、残りの3個を同一システム(情報分散ストレージシステム)内の別の情報分散ストレージ装置に転送され、それぞれのストレージ部に保管される。
【0087】
転送先の情報分散ストレージ装置が故障していた場合は、故障しているものを除いて転送されるが、最大2つまでの故障があっても処理を続けることができる。端末から入力された元データSを受け取る情報分散ストレージ装置(予め指定されている)が故障した場合は、次のプライオリティの情報分散ストレージ装置が元データSを受け取るように処理を自動的に切り替えるようにする。
【0088】
端末は複数存在することができるが、端末ごとに元データSを受け取る情報分散ストレージ装置を別にして、全体システムの負荷を分散させることができる。
【0089】
分散情報を保管する際に、当該元データSの管理情報とその保管先を示す情報(元データSと分散情報の住所録のようなもの)を「カタログ情報」として生成し、カタログ情報自体の秘匿性を確保するため、元データSから分散情報を生成するのと同様の手段で、カタログ情報の分散情報(分散カタログ情報)を生成する。分散カタログ情報は、各情報分散ストレージ装置のストレージ部にデータベースとして保管される。
【0090】
情報分散ストレージ装置は、装置監視部を持ち、周期的に自身の情報分散システム部やストレージ部が故障しないで動作しているかを監視する。動作しているかの監視は、一致周期で決められたデータが更新されていることをチェックすることで行う。また、ネットワーク経由で同一システム(情報分散ストレージシステム)内の他の情報分散ストレージ装置が故障しないで動作しているかを監視する。これも、他の情報分散ストレージ装置内の決められたデータが更新されているかをチェックすることで行う。オペレーティングシステム(OS)レベルで対象にアクセスできない場合は、当然決められたデータが更新されたことを確認できないため、故障と判断される。
【0091】
情報分散ストレージシステム内の4つの情報分散ストレージ装置は、それぞれのストレージ部に「全ての元データS」の分散情報と分散カタログ情報を保管しているため、どの装置からでも元データSの復元ができる。
【0092】
本実施例2の情報分散ストレージシステムは、以下のような効果がある。
分散情報の1つを情報分散ストレージ内の各情報分散ストレージ装置が保管しているため、復元のために足りない1つの分散情報のみをネットワークを通して入手すればよい。このため、ネットワーク転送時間が減り、元データSの復元時間が節約できる。
また、1つの情報分散ストレージシステムを、複数の顧客がシェアして使用でき、コストシェアができるため、実際の運用コストを下げることができる。例えば、4人の顧客が、それぞれ専用の情報分散ストレージ装置を情報分散処理の入口として使用し、保管場所は残りの3つの情報分散ストレージ装置として使用すると、1つの情報分散ストレージシステムをシェアできることになる。
【0093】
図5で示すシステムは、情報分散ストレージ装置を4台ネットワークで接続した変形例であり、以下のような処理を行う。
【0094】
端末から元データSを、ネットワーク上の指定の情報分散ストレージ装置に転送すると、該情報分散ストレージ装置内の情報分散システムが元データSを、同一システム内の情報分散ストレージ装置(30a〜30d)のストレージ部に分散する。情報分散ストレージ装置の1つに、元データSの置かれている端末(コンピュータ)のアドレスとファイル格納場所を予め指定しておくと、情報分散ストレージ装置は周期的に指定場所をチェックし、元データSが未処理の元データS(ファイル)があれば、上記と同様に元データSの分散処理を行うようにする。端末から元データSの復元を要求すると、自身のストレージに保管されている1つの分散情報と、他の情報分散ストレージ装置に保管されている分散情報の1つから元データSの復元を行う。
【0095】
図6は、情報分散ストレージ装置を4台ネットワークで接続したものであるが、その中の3台は同じネットワークに接続されており、他の1台は別のネットワークに接続されている。図5と同じような処理を行うが、ネットワークの利用コストを削減するため図6のネットワーク1は公衆回線等を利用できる。これは、分散情報がネットワーク上で1つ盗難にあっても、元データSが絶対に復元できないようにするためである。
【0096】
以上の各実施例で説明したように、本発明によれば、分散情報のサイズの削減、2重故障での可用性、分散情報の全ての断片の乱数化による秘匿性の向上、排他的論理和演算を主体とした高速性を、同時に実現することができる。
【0097】
実施例1に示した分散情報生成処理、元データS復元処理、追加分散情報生成処理、および実施例2で示した情報分散ストレージシステムの処理は、コンピュータのプログラムによって実現し、このプログラムをコンピュータ読み取り可能な記録媒体に記録し、この記録媒体をコンピュータに組み込んだり、または記録媒体に記録されたプログラムを、通信回線を介してコンピュータシステムにダウンロードしたり、または記録媒体からインストールし、該プログラムをコンピュータシステム上で作動させることによって機能させることができる。もちろん、プログラムは、本明細書で述べた一部の機能を実現するものであっても良い。
【0098】
本発明の具体的実施形態については、本明細書で説明した構成に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。特に、実施例1及び2で示した各システムは、最も現実的運用である(2、4)閾値分散法に限定して説明したが、これに限らず一般式で示す(k、n)閾値分散法にも適用可能である。
【符号の説明】
【0099】
1:情報分散システム
2a〜2d:保管サーバ
3:ネットワーク、
11:元データ分割手段、
12:乱数発生手段、
13:基準ベクトル生成手段、
14:分散情報生成手段、
14a:係数行列記憶部、
15:分散情報送信手段、
16:分散情報受信手段、
17:元データ復元手段、
17a:係数行列の逆行列記憶部、
20a〜20d:情報分散ストレージ装置、
21:ネットワーク、
22:端末
30a〜30d:情報分散ストレージ装置、
31:ネットワーク、
32:端末、
40a〜40d:情報分散ストレージ装置、
41〜42:ネットワーク、
43:端末
図1
図2
図3
図4
図5
図6