(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-02
(45)【発行日】2022-08-10
(54)【発明の名称】分散型データオブジェクトの可用性と完全性を検査するための方法
(51)【国際特許分類】
G09C 1/00 20060101AFI20220803BHJP
G06F 21/60 20130101ALI20220803BHJP
G06F 21/62 20130101ALI20220803BHJP
G06F 21/64 20130101ALI20220803BHJP
【FI】
G09C1/00 650Z
G06F21/60 320
G06F21/60 360
G06F21/62 318
G06F21/64
(21)【出願番号】P 2019505464
(86)(22)【出願日】2017-08-01
(86)【国際出願番号】 AT2017060195
(87)【国際公開番号】W WO2018023144
(87)【国際公開日】2018-02-08
【審査請求日】2020-06-30
(32)【優先日】2016-08-04
(33)【優先権主張国・地域又は機関】AT
(73)【特許権者】
【識別番号】507313412
【氏名又は名称】エーアイティー オーストリアン インスティテュート オブ テクノロジー ゲゼルシャフト ミット ベシュレンクテル ハフツング
【氏名又は名称原語表記】AIT Austrian Institute of Technology GmbH
(74)【代理人】
【識別番号】100082887
【氏名又は名称】小川 利春
(74)【代理人】
【識別番号】100090918
【氏名又は名称】泉名 謙治
(74)【代理人】
【識別番号】100181331
【氏名又は名称】金 鎭文
(74)【代理人】
【識別番号】100183597
【氏名又は名称】比企野 健
(74)【代理人】
【識別番号】100161997
【氏名又は名称】横井 大一郎
(74)【代理人】
【識別番号】110000095
【氏名又は名称】弁理士法人T.S.パートナーズ
(72)【発明者】
【氏名】ロルンザー トーマス
(72)【発明者】
【氏名】クレン ステファン
【審査官】松平 英
(56)【参考文献】
【文献】特開2005-293592(JP,A)
【文献】特表2000-513115(JP,A)
【文献】米国特許出願公開第2008/0060085(US,A1)
【文献】米国特許出願公開第2012/0102319(US,A1)
【文献】国際公開第2011/157708(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/14
21/00-21/88
G09C 1/00-5/00
H04K 1/00-3/00
H04L 9/00-9/40
(57)【特許請求の範囲】
【請求項1】
ネットワークを介して互いに接続されている多数のサーバ(S
1,...,S
n)に分散されたN個のデータワード(d
1,...,d
N)を有するデータオブジェクト(d)の可用性と完全性を検査する方法であって、
フラグメンテーション規則が指定され、その下でデータオブジェクト(d)に対して、n個のフラグメント
(f
1
,...,f
n
)が生成され、
各フラグメントf
i
(i=1
1
,...,n)は同数のデータワードを有し、
数m(<n)個のフラグメン
トが前記データオブジェクト(d)を再構成するために十分であるように前記フラグメント(f
1,...,f
n)が重複して生成され、
n個の前記フラグメント(f
1,...,f
n)の存在において
、前記フラグメンテーション規則に従って、これらのフラグメント(f
1,...,f
n)が互いに整合性があるかどうか及び/又は前
記データオブジェクト(d)から生じているかどうかを検査する整合性検査が定められ、
チェックサム(p
1,...,p
n)が前記フラグメント(f
1,...,f
n)から生成される、チェックサム計算規則が前記チェックサム(p
1,...,p
n)を計算するために定められ、
前記フラグメンテーション規則、前記整合性検査及び前記チェックサム計算規則は、
前記データオブジェクト(d)から前記フラグメンテーション規則によって生成される個々のフラグメント(f
1,...,f
n)が前記整合性検査(K)の意味で整合性があり、
前記チェックサム計算規則によって計算され、前
記データオブジェクト(d)に基づき前記フラグメンテーション規則によって生成されたフラグメント(f
1,...,f
n)により確認されたチェックサム(p
1,...,p
n)が前記整合性検査の観点から整合性があるように調整され、
前記サーバ(S
1,...,S
n)の前記データオブジェクト(d)の分散ストレージに対して、
前記データオブジェクト(d)はフラグメント化され、従って多数のフラグメント(f
1,...,f
n)が生成され、
前記フラグメント(f
1,...,f
n)は各サーバ(S
1,...,S
n)に送信されてそこで記憶され、また取得できるようにされ、
前記サーバ(S
1,...,S
n)に記憶された前記フラグメント(f
1,...,f
n)の可用性と完全性を検証する目的のために、
同じ乱数(R)が監査ユニット(A)から前記サーバ(S
1,...,S
n)に送信され、
前記サーバ(S
1,...,S
n)により、前記各フラグメント(f
1,...,f
n)の前記データ
ワードに対して前記乱数(R)を適用することによってそれぞれ変更され、チェックサム(p
1,...,p
n)が生成され、そして前記チェックサム(p
1,...,p
n)は監査ユニット(A)に送信され、
前記監査ユニット(A)は、前記サーバ(S
1,...,S
n)によって送信された前記個々のチェックサム(p
1,...,p
n)が整合しているかどうか前記整合性検査によって検査し、整合している場合には、前記データ
オブジェクトの可用性と完全性を検査する方法。
【請求項2】
請求項1に記載の方法であって、
前記整合性検査において前記送信されたチェックサム(p
1,...,p
n)が不整合と判定された場合、どのチェックサム(p
1,...,p
n)が不整合を引き起こしたか検査し、前記チェックサム(p
1,...,p
n)が由来する前記フラグメント(f
1,...,f
n)は欠陥があると判定する方法。
【請求項3】
請求項1又は2に記載の方法であって、
前記監査ユニット(A)は、前記個々のフラグメント(f
1,...,f
n)の前記チェックサム(p
1,...,p
n)を導き出すために使用する所定のサブセットを前記個々のフラグメント(f
1,...,f
n)内に定める方法。
【請求項4】
請求項1乃至3のいずれか1項に記載の方法であって、
個々のチェックサム(p
1,...,p
n)を計算するために、各ケースにおいて、前記フラグメント(f
1,...,f
n)及び前記乱数(R)に加えて、ランダムマスクmを使用し
て、前記サーバ(S
1
,...,S
n
)のそれぞれに対して整合性条件を満たす複数のランダムマスク・フラグメント(m
1
,...,m
n
)を生成し、前記サーバ(S
1,...,S
n)で使用される前記個々のランダムマスク・フラグメント(m
1,...,m
n)は連帯して前記整合性検査を満たす方法。
【請求項5】
請求項4に記載の方法であって、
前記個々のランダムマスク・フラグメント(m
1,...,m
n)は、予め前記個々のサーバ(S
1,...,S
n)に配信され、所定の順序で使用される方法。
【請求項6】
請求項4に記載の方法であって、
前記サーバ(S
1,...,S
n)は、協調して前記ランダムマスクmを生成し、前記個々のサーバ(S
1,...,S
n)はいずれもその他のサーバ(S
1,...,S
n)の前記ランダムマスク・フラグメント(m
1,...,m
n)についていかなる知識も得ず、各サーバはその他のサーバ
、全ての他のサーバに値を送信し、これらの値は前記ランダムマスク・フラグメント(m
1,...,m
n)を計算するために使用される方法。
【請求項7】
請求項
4乃至6のいずれか1項に記載の方法であって、
前記チェックサム(p
1,...,p
n)を計算するために、前記各フラグメント(f
1,...,f
n)はN個のフラグメント・データワード(f
1,1,...,f
n,N)に分割され、一以上のデータワードを備えるランダムマスクm
を使用し、データワード毎に前記フラグメント(f
1,...,f
n)を重み付け及び蓄積し、前記チェックサム計算規則は前記フラグメント(f
1,...,f
n)の各個々のデータワード(f
1,1,...,f
n,N)に対して
、前記ランダムマスク・フラグメント(m
1,...,m
n)に対しても線形である方法。
【請求項8】
請求項7に記載の方法であって、
i番目のサーバ(S
i)に対する前記チェックサム(
p
i)は、以下の数1に示すように前記チェックサム計算規則(P)に従って生成され、
【数1】
ここでRは全てのサーバ(S
1,...,S
n)に送信される前記乱数を示し、
m
iは前記各サーバ(S
i)の前記ランダムマスク・フラグメントを示し、前記チェックサムを計算する際に考慮され、
f
i,jは、前記各サーバ(S
i)に記憶されている前記フラグメント(f
i)のj番目のデータワードを示し、N
(i)は、前記フラグメント・データワードの分割数を示し、
前記チェックサムの結果は所定の値を用いたモジュロ演算に従う方法。
【請求項9】
請求項1乃至8のいずれか1項に記載の方法であって、
前記データオブジェクト(d)のフラグメンテーションは、前記データオブジェクトdの各データワード(d
1,...,d
N)に対して別々
に所定のフラグメンテーション規則(F)を適用することによって遂行され、各データワードに対して、n個のフラグメント・データワードが生成され、前記フラグメントに割り当てられ、
前記フラグメンテーション規則(F)は可逆的で、再構成規則(F
-1)が特定され、任意の二つのデータワードに対して以下の数2の関係が当てはまる方法。
【数2】
【請求項10】
請求項9に記載の方法であって、
前
記データオブジェクトに対する前記フラグメンテーション規則は、ランダム値に依存して異なるフラグメント・データワードを与え、前記データオブジェクトの前記データワードは前記再構成規則(F
-1)が前記フラグメント・データワードに適用された場合に得られる方法。
【請求項11】
請求項7又は8に記載の方法であって、
前記フラグメント(f
1,...,f
n)から前記データオブジェクト(d)を再構成するために、
前記フラグメント(f
1
,...,f
n
)の個々のフラグメント・データワード(f
1,1,...,
f
n,N
)のそれぞれは、クライアン
ト又は別の承認されたコンピュータに送信され、それぞれ再構成規則(F
-1)に従う方法。
【請求項12】
請求項1乃至11のいずれか1項に記載の方法であって、
前記サーバ(S
1,...,S
n)から得られる前記個々のチェックサム(p
1,...,p
n)
は再構成規則(F
-1)に従い、前記チェックサム(p
1,...,p
n)に基づくm個の各フラグメントの再構成が全て同じ結果を生成する場合に、
前記データ
オブジェクトは可用性と完全性を有すると判定される方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して相互に接続された多数のサーバに分散方式で記憶されたデータオブジェクトの可用性と完全性を検査するための方法に関する。
【背景技術】
【0002】
個々のデータの分散型ストレージは先行技術により公知である。様々なサーバにわたって分散され、記憶されたデータオブジェクトの個々のフラグメントがあって、それから元のデータオブジェクトを構成することができる一方、そのようなフラグメントを権限のない第三者に開示してもそのデータオブジェクトに関する重要な情報を入手させないという有利な可能性がある。先行技術において、様々なフラグメンテーションの方法が公知であり、その方法によって所定の数のフラグメントに基づいてデータオブジェクトを再構成することが可能である。例えば、データオブジェクトを合計19個のフラグメントに分割して、そのうち合計10個が元のデータオブジェクトに復元するために必要であるとすることが可能である。
【発明の概要】
【0003】
これらの方法の全ては欠点がある。すなわち、個々のフラグメントが利用できるか又は無傷であるかどうかという簡単な検査でも、完全性と可用性を検査する主体はデータオブジェクトの内容に関する知識も取得しなければならない、及び/又はフラグメントは保存する前に前処理しなければならず、さらに、データ所有者又は監査人に関する恒久的なステータスの維持を要求するコンポーネント(例えば、MACまたはいわゆるセンチネル)を付加しなければならず、その一方で記憶しなければならないデータの総量も増加することが必要になる。特に、データの外部監査、例えば、データの可用性と完全性を保証しなければならない独立の機関によって実行される場合、データオブジェクトの内容が検査主体(監査人)に到達するのは好ましくない。従って、本発明の目的は、監査人が可用性と完全性を調査するタスクを負うデータのいかなる知識も監査人が取得しない、分散されて記憶されたデータオブジェクトの可用性と完全性を検査するための方法を提供することである。本発明は、請求項1の機能を有する、前述の種類の方法で当該タスクを遂行する。
【0004】
破損したデータの位置の簡単な判定においては、整合性検査により送信されたチェックサムが不整合であると判明した場合、どのチェックサムが不整合を引き起こしたかを調査し、当該チェックサムが由来するフラグメントに欠陥があると特定される。
【0005】
より迅速に実行できる簡略化された検査においては、監査ユニットは、個々のフラグメントのチェックサムを導き出すのに使用される個々のフラグメントの所定のサブセットを定める。
【0006】
監査ユニットに検査するデータの知識を得る機会をさらに与えるセキュリティの向上のために、フラグメントと乱数に加えて、ランダムマスクmを使用して個々のチェックサムを生成することとし、またサーバで使用される個々のランダムマスク・フラグメントは整合性検査を一緒に満たすのに十分であるとする。
【0007】
監査プロセス中にサーバ間の通信を避けるために、個々のランダムマスク・フラグメントが予め個々のサーバに配信され、所定の手順で使用されるよう定めてもよい。この手順では、個々のサーバは監査に関与する他のサーバに関するいかなる知識も有する必要はない。
【0008】
さらに、同様にセキュリティを向上する目的のために、個々のサーバはいずれも他のサーバのランダムマスク・フラグメントについての知識を取得することなく、サーバは相互に作用してランダムマスクmを生成することも定めてもよい。この中で、各サーバは他のサーバ、具体的には他の全てのサーバに値を送信し、これらの値はランダムマスク・フラグメントを計算するために使用される。この場合、監査のセキュリティを向上するために、ランダムマスクを生成する場合個々のサーバ間の相互作用が利用されてもよい。
【0009】
チェックサムを判定するための数値的に特に簡略な方法においては、チェックサムの計算のために、個々のフラグメントをN個のフラグメント・データワードに分割し、1以上のデータワードを備えるランダムマスクmを任意に使用し、フラグメントをデータワード単位で重み付けし、蓄積することとする。ここで、チェックサムの計算規則はフラグメントの各個々のデータワードに対して、また、任意に、ランダムマスク・フラグメントに対しても線型である。具体的に、この目的のために、i番目のサーバに対するチェックサムを以下の数1に示すチェックサム計算規則に従って生成するように定めてもよい。
【0010】
【0011】
ここで、Rは、全てのサーバに送信される乱数を示す。miは、各サーバのランダムマスク・フラグメントを示すとともに任意にチェックサムを計算する際に考慮に入れられる。fi,jは、各サーバに記憶されるフラグメントのj番目のデータワードを示す。具体的には、チェックサムの結果は所定の値を用いたモジュロ演算に従う。
【0012】
データオブジェクトをフラグメント化する好適で簡略な方法おいて、n個のフラグメント・データワードを各データワードに対してそれぞれ生成してそれらをフラグメントに割り当て、データオブジェクトdの各データワードに別々に所定のフラグメンテーション規則を適用することによってデータオブジェクトのフラグメンテーションが実行され、フラグメンテーション規則は可逆で、再構成規則が規定され、任意の二つのデータワードに対して以下の数2に示す関係が適用される。
【0013】
【0014】
フラグメントからデータのコンテンツを再構成することを避けるために、同じデータオブジェクトに対してフラグメンテーション規則を適用すると、乱数値に応じて、それぞれ異なるフラグメント・データワードが与えられ、データオブジェクトのデータワードは、再構成規則がフラグメント・データワードに適用された場合に取得されるように定めてもよい。
【0015】
フラグメントからのデータオブジェクトの簡略な再構成のために、フラグメントからデータオブジェクトを再構成するために、それぞれクライアントに対して送信される個々のフラグメント・データワードは、それぞれ各フラグメントに対して同じ位置に配置され及び/又は互いに割り当てられ、それぞれ再構成規則に従うと定められる。
【0016】
完全な再構成が必要なデータの可用性と完全性の検査においては、サーバから取得された個々のチェックサムはフラグメント・データワードと同様に再構成規則に従い、チェックサムに基づくm個のフラグメントの再構成によってそれぞれ全て同じ結果が生成される場合、当該データは可用性と完全性を有すると判定されることとする。本発明の特に簡略で数値的に有利な実施形態は、以下のように定められる。n個のサーバを所与として、最大限n-2の所定の多項式の次数qが与えられ、サーバのそれぞれに対して、インデックスiがそれぞれ指定され、個々のサーバ(S1,...,Sn)のインデックスは互いに異なる。フラグメンテーション規則において、フラグメント・データワードは以下のように生成される。
【0017】
所与の補間点、具体的に点0で、フラグメント化されているデータオブジェクトの値を有し、所定の次数qを有する多項式が生成され、その中で具体的に、多項式は、別の方法では、ランダムな基準に従って選択されるあるいは多項式の全ての係数は、フラグメント化されるデータオブジェクトのデータワードによって表される。フラグメントのデータワードは、フラグメントが送信される各サーバのインデックスiに対応する補間点で多項式を評価することによって生成される。チェックサムの計算の場合、チェックサムがフラグメントの個々のデータワードに線型的に依存するように、個々のフラグメント化されたデータワードが重み付け方式で付加される。
【0018】
サーバのインデックスに対応する各補間点で、関連するサーバによって送信されたチェックサムを有する所定の次数qの多項式が計算できるかどうか、整合性検査で、具体的には補間法によって検査される。ランダムマスクを生成するために、ランダムマスクを生成する場合、各サーバは、所与の次数qのランダムな多項式を生成し、多項式は、自身のインデックス及び他のサーバのインデックスに対応する点で評価され、各サーバは、サーバのインデックス値で多項式を評価することによって得られた値を記憶するとともに多項式が評価されたインデックスに対応するインデックスを有する各サーバに他の値を送信することを、この関連で、有利に定めてもよい。
【0019】
サーバは、サーバで記憶された値と他のサーバによってサーバに送信された値を蓄積、具体的には付加し、ランダムマスク・フラグメントはこのような方法で確認される。
【0020】
数値面では、実行される全ての計算操作、具体的にはフラグメンテーション規則、チェックサムの計算、整合性検査及び、任意に、ランダムマスクの生成の場合との関連で、
a)データワードが有限体、具体的には剰余体又は2a要素(ここで、aは整数)を有する体から取られ、そして、
b)二つのデータワードの総和又は積あるいは乗法又は加法の逆元を計算するために使用する規則が、総和又は積を計算するためにあるいは反転のために各体に適用可能な規則である場合、評価は特に有利である。
【図面の簡単な説明】
【0021】
本発明の複数の好適な実施形態を以下の図面を参照して詳細に説明する。
【
図1】本発明に係る方法を実行するための簡略なコンピュータネットワークを示す。
【
図2】一実施形態におけるフラグメンテーションとサーバに対するフラグメントの分散を示す。
【
図3】分散形態で記憶されたデータの監査に関する実施形態を示す。
【
図4】ランダムマスクを生成するために実行可能な実施形態を示す。
【発明を実施するための形態】
【0022】
図1は、クライアントC、複数のサーバS
1、S
2、S
3及び監査ユニットAを有する簡略なコンピュータネットワークを示す。クライアントC、監査ユニットA及び個々のサーバS
1、S
2、S
3は、ネットワークNを介して相互に接続されている。クライアントCに配置されたデータオブジェクトdのサーバS
1、S
2、S
3による分散型ストレージについて、以下のステップが実行される。
【0023】
データオブジェクトdは、クライアントCでフラグメント化され、個数n=3のフラグメントf1,...,fnが生成される。生成されたフラグメントf1,...,fnの個数は、使用されるサーバS1,...,Snの台数に対応する。何台のサーバS1,...,Snを使用するかに依存して、異なる個数のフラグメントf1,...,fnが生成される。続いて、フラグメントf1,...,fnは、サーバS1,...,Snに個別に転送される。
【0024】
この場合、
図2に示すように、フラグメントf
1はサーバS
1に送信され、フラグメントf
2はサーバS
2に送信され、フラグメントf
3はサーバS
3に送信される。
【0025】
フラグメントf1,...,fnを生成するために、同じデータワード数N=2を有する個数n=3のフラグメントのデータオブジェクトに対して、データワードが生成されるフラグメンテーション規則Fが与えられる。
【0026】
フラグメンテーション規則に関連して、単一のフラグメントに含まれるデータを使用できないようにする乱数値がフラグメントに内蔵されている場合、フラグメンテーション規則Fは同じデータオブジェクトに対して異なるフラグメントf1,...,fnを生成することがあり、その一方、定義可能な数のフラグメントに含まれる情報の知識によりフラグメントからデータオブジェクトを再構成することが可能になることに留意されたい。
【0027】
数3に示すフラグメンテーション規則Fの再構成規則F-1は、フラグメントに基づいて元のデータオブジェクトを生成する。再構成規則は、二つのフラグメント化されたデータワードの総和に適用すると二つのフラグメント化されていないデータワードの総和になるという特性を有する。
【0028】
【0029】
全ての実施形態について、手順の表現を簡略化するために、個々のデータワードに関するデータ種類として13の数字の余剰体Z13が使用される。データワードは0から12までの値と考える。この剰余体内の演算は整数の演算に対応し、毎回の加法又は乗法の実行の後にモジュロ演算が行われ、その数は0と12の間の数の範囲に変換される。この体では、全ての体においてと同様に、全ての数xに対して乗法の逆元X-1が使用でき、x*x-1=1という特性を有する。
【0030】
さらに、加法と乗法は、また、体の特性がPa要素(ここでPは素数、aは任意の自然数)の集合に対しても存在するように定義することができる。この事実を利用すると、P=2で、例えば、a=16を有するような体を余剰体の代わりにデータワードを表すために使用することができる。すなわち、各データワードは、一義的にまた記憶スペースを浪費することなく、2進数で表現することができ、記憶スペース利用の点で有利である。
【0031】
この目的に関して体において定義されなければならない加法と乗法の実行が複雑なため、明確化のために、明細書で示す計算例として体Z13を選択する。
【0032】
加法と乗法は、自然数又は整数については同様に実行され、演算モジュロ13はその後で実行される。
【0033】
この場合、データオブジェクトd及び個々のフラグメントf1,...,fnが生成される非常に簡略な例を示す。m=2<nの数のフラグメントがデータオブジェクトを再構成するために十分であるようにフラグメントf1,...,f3を重複して生成する。この場合、データオブジェクトdは二つのデータワードd1=4及びd2=9を備える。各個々のデータワードについて、クライアントは次数q=m‐1=1のランダムな多項式を選択し、その定数項はデータオブジェクトdの各データワードd1、d2に該当し、その勾配r1、r2は全てのサーバが共有する乱数値である。フラグメンテーション規則によって、データオブジェクトの各データワードに対して、多項式F1(x),F2(x)が得られ、例えば、ランダムに勾配r1=8、r2=6を選択することによって以下の数4及び数5に示すように定義することができる。
【0034】
【0035】
【0036】
フラグメンテーションの過程で、サーバS1、S2、S3のそれぞれにはインデックスがそれぞれ割り当てられる。サーバS1、S2、S3のインデックスは、整数(1、2、3)として付与される。このようにして生成された多項式は各サーバのインデックスに対応するそれらの整数ノードでいずれの場合にも評価される。
【0037】
以下において、フラグメントf1,...,fnの決定方法をより詳細に示す。フラグメントf1は生成後第1のサーバS1に送信される。本例示の実施形態では、第1のサーバS1はインデックス1を受信する。第1のサーバS1に送信されるフラグメントf1のフラグメント・データワードf1,1、f1,2は、以下の数6及び数7に従って算出される。
【0038】
【0039】
【0040】
このように、フラグメント・データワード『12、2』を含むフラグメントf1は第1のサーバS1に送信される。
【0041】
本例示の実施形態では、第2のサーバS2はインデックス2を受信する。第2のサーバS2に送信されるフラグメントf2のフラグメント・データワードf2,1、f2,2は、以下の数8及び数9に従って算出される。
【0042】
【0043】
【0044】
このように、フラグメント・データワード『7、8』を含むフラグメントf2は第2のサーバS2に送信される。
【0045】
本例示の実施形態では、第3のサーバS3はインデックス3を受信する。第3のサーバS3に送信されるフラグメントf3のフラグメント・データワードf3,1、f3,2は、以下の数10及び数11に従って算出される。
【0046】
【0047】
【0048】
このように、フラグメント・データワード『2,1』を含むフラグメントf3は第3のサーバS3に送信される。
【0049】
個々のサーバS
1、S
2、S
3に送信されたフラグメントf
1、f
2、f
3は、サーバに記憶されさらなる処理に向け利用可能に保持される。
図3に示すさらなるステップにおいて、監査ユニットAは、監査ユニットAが生成した乱数RをサーバS
1、S
2、S
3のそれぞれに対して送信する。各サーバS
1、S
2、S
3はその中に存在するフラグメントf
1、f
2、f
3を使用して、データワード毎に、下記の数12に示すチェックサム計算規則に基づいてチェックサムp
1、p
2、p
3を算出する。結果はフラグメンテーション中の演算(mod13)にも従う。
【0050】
【0051】
実例として、以下の例において、監査ユニットAは乱数R=4を選択したとする。データフラグメント『12,2』が利用できる第1のサーバS1において、結果は以下の数13のようになる。
【0052】
【0053】
データフラグメント『7,8』が利用できる第2のサーバS2において、結果は以下の数14のようになる。
【0054】
【0055】
データフラグメント『2,1』が利用できる第3のサーバS3において、結果は以下の数15のようになる。
【0056】
【0057】
個々のチェックサムp1=2、p2=0、p3=11は監査ユニットAに送信される。整合性検査において、監査ユニットAは、チェックサムに対応するy座標及び各サーバS1、S2、S3のインデックスに対応するx座標を有する点が次数q=1の多項式上にあるかどうか検査する。この場合、個々の点は多項式g(x)=4‐2x上にある。第1チェックサムp1は、g(1)=4-2*1=2=p1を与える。第2チェックサムp2は、g(2)=4-2*2=0=p2を与える。第3チェックサムp3は、g(3)=4-2x=‐2(Mod13)=p3を与える。所与の値の全ては次数q=1の多項式上にあるので、整合性が確認できる。
【0058】
このような多項式を見出すために異なる計算規則を使用してもよい。ノードで与えられる値に基づいて多項式を求める好適な方法では、関連するデータワードの体の特性である乗法の逆元の存在と計算が必要である。そのような乗法の逆元は体の中に必ず存在する。
【0059】
以下の考察において、記憶されたデータのプライバシーを保証するために、最大限m-1個のフラグメント又はサーバが破損していると想定する。そうでない場合、破損したサーバはm個のフラグメントを共有してデータを再構成するかもしれない。文献で推奨されているnの値の場合(例えば、n=2m-1、n=3m-2),端的に少なくともm個の破損していないフラグメントが残存することになる。
【0060】
上述の場合について、様々なサーバに記憶されたフラグメントの整合性から、記憶されたデータは完全性を有する、すなわち、フラグメントは、再構成の後、元々記憶されたデータを実際に生成することになる。具体的に言うと、m個の変更されていないフラグメントが元のデータに再構成され、他の全てのフラグメントがそれらのフラグメントと整合性がある場合、任意のm個の任意の再構成によって必ず元のデータが生成されるであろう。
【0061】
一つのフラグメントf2,1が変更され、例えば、第2のサーバS2のデータキャリアに対する損傷の理由で、そして、例えば、値7の代わりに値10を受信した場合、第2のサーバS2に対して対応するチェックサムp2は、以下の数16のようになる。
【0062】
【0063】
評価の後、点『1、p1』、『2、p2』、『3、p3』はもはや整合性条件を満たさず、またもはや次数q=1の多項式上にないので、送信されたチェックサムp1、pnは整合性検査において不整合であると判定される。
【0064】
m+2以上のサーバが使用される場合、検査されたどのフラグメントが破損又は変更されたかも判定してもよい。他のサーバに関する付加チェックサムp4が使用できる、例えば、インデックス4を有する4番目の例示されていないサーバがチェックサムp4=9を正しく判定した場合、点『2、p2』以外の他の全ての点『1、p1』、『3、p3』、『4、p4』は、次数q=1の多項式上、すなわち、多項式g(x)=4-2x上にあることを実証することができる。第2のサーバのフラグメントf2は欠陥があると判定することができる。
【0065】
本発明の第2の好適な実施形態において、その他の点では本発明の第1の実施形態と同一であるが、フラグメントf1、f2、f3と乱数Rに加えて、いずれの場合もランダムマスクmを使用して個々のチェックサムp1、p2、p3を生成し得る。個々のサーバS1、S2、S3のそれぞれは、それぞれ別々のランダムマスク・フラグメントm1,...,m3を有する。サーバに割り当てられた個々のランダムマスク・フラグメントは、同様に整合性条件下でお互いを満たす、すなわち、本例示の実施形態の点『1、m1』、『2、m2』、『3、m3』は、次数q=1の多項式上にある。本実施形態においては、監査人がデータオブジェクトに関する情報を取得する可能性はない。
【0066】
ランダムマスク・フラグメントm1、m2、m3は、以下のように、チェックサムp1、p2、p3を計算する際に使用される。各要求では、それぞれ連帯して整合性条件を満たす他のm1、m2、m3ランダムマスク・フラグメントを使用する。ランダムマスクは、一以上のデータワードを備えてもよい。
【0067】
ランダムマスクmを特定する一つの可能性のある方法は、外部の信頼できるソース又はクライアントCから予めサーバS1、S2、S3のそれぞれに対して整合性条件を満たす複数の整合性満足ランダムマスク・フラグメントm1、m2、m3を生成して、それらを所定の手順で使用することである。
【0068】
もちろん、これにはランダムマスク・フラグメントm1、m2、m3がそれぞれ同じサーバグループによって使用されることが想定されている。
【0069】
以下において
図4で示される別の方法では、個々のサーバS
1、S
2、S
3はいずれもが他のサーバS
1、S
2、S
3のランダムマスク・フラグメントm
1、m
2、m
3に関するいかなる知識も得ることなく、サーバS
1、S
2、S
3が協調してランダムマスクmを生成することを可能とする。それぞれの監査に対して、関与するサーバS
1、S
2、S
3はそれぞれ、残存するフラグメントf
1、f
2、f
3がどのサーバS
1、S
2、S
3に記憶されているかを承知しているのみである。この手順は、ランダムマスクが各監査に対して生成され、監査の数は予め知る必要がないという利点がある。
【0070】
サーバS1、S2、S3のそれぞれは、ランダムマスクを生成するために、フラグメンテーション、チェックサムの計算及び整合性検査にも使用される多数項次数q=1を有するランダムな多項式g1(x),g2(x),g3(x)を決定し、インデックスjを有するその他のサーバSjに多項式gi(j)の値を送信する。以下の数17、数18及び数19において、例によってこれを示す。
【0071】
第1のサーバS1はランダムな多項式g1(x)=2x+8を生成する。第1のサーバS1は、自身のインデックス(1)又は他のサーバS2、S3のインデックス(2,3)に対応する点で多項式を評価する。
【0072】
【0073】
【0074】
【0075】
第1のサーバS1は、自身のインデックス(1)で多項式を評価する場合に得る値h1,1を記憶し、値h1,2を第2のサーバS2に、値h1,3を第3のサーバS3に送信する。
【0076】
第2のサーバS2はランダムな多項式g2(x)=3x+1を生成する。以下の数20、数21及び数22に示すように、第2のサーバS2は自身のインデックス(2)又は他のサーバS1、S3のインデックス(1,3)に対応する位置で多項式を評価する。
【0077】
【0078】
【0079】
【0080】
第2のサーバS2は、自身のインデックス(2)で多項式を評価した場合に得る値h2,2を記憶し、値h2,1を第1のサーバS1に、値h2,3を第3のサーバにS3に送信する。
【0081】
第3のサーバS3はランダムな多項式g3(x)=7x+7を生成する。以下の数23、数24及び数25に示すように、第3のサーバS3は自身のインデックス(3)又は他のサーバS1、S2のインデックス(1,2)に位置する点で多項式を評価する。
【0082】
【0083】
【0084】
【0085】
第3のサーバS3は、自身のインデックス(3)で多項式を評価した場合に得る値h3,3を記憶し、値h3,1を第1のサーバS1に、値h3,2を第2のサーバにS2に送信する。
【0086】
さらなるステップで、全てのサーバS1、S2、S3は、それらで記憶している値及び残りのサーバS1、S2、S3によってそれらに送信された値を付加し、任意に、サーバはモジュロ演算を実行する。ランダムマスクの値m1、m2、m3は、それに対応して以下の数26、数27及び数28に示すようになる。
【0087】
【0088】
【0089】
【0090】
チェックサムp1、p2、p3を計算する場合、ランダムマスク・フラグメントは以下の数29に示すように考慮される。
【0091】
【0092】
第1のサーバS1においては、データフラグメント『12,2』が利用可能であって、結果は以下の数30に示すとおりである。
【0093】
【0094】
第2のサーバS2においては、データフラグメント『7,8』が利用可能であって、結果は以下の数31に示すとおりである。
【0095】
【0096】
第3のサーバS3においては、データフラグメント『2,1』が利用可能であって、結果は以下の数32に示すとおりである。
【0097】
【0098】
個々のチェックサムp1=4、p2=1、p3=11は、監査ユニットAに送信される。整合性検査において、監査ユニットAは、チェックサムに対応するy座標とチェックサムp1、p2、p3を生成した各サーバS1、S2、S3のインデックスに対応するx座標を有する点が次数q=1の多項式上にあるかどうか検査する。この場合、個々の点は多項式g(x)=7-3x上にある。第1のチェックサムp1は、g(1)=7-3*1=2=p1を生成する。第2のチェックサムp2は、g(2)=7-3*2=1=p2を生成する。第3のチェックサムp3は、g(3)=7-3*3=-2(Mod13)=11=p3を生成する。特定の値の全ては次数q=1の多項式に基づいているので、整合性を判定することが可能であり、従ってデータの可用性と完全性を判定することが可能である。
【0099】
フラグメントf1,...,fnからデータオブジェクト(d)を再構成するために、フラグメント・データワード(f1,1,...,fn,N)がそれぞれ、各フラグメントf1,...,fnに対して同じ位置に配置されている及び/又は互いに割り当てられているフラグメントf1,...,fnの個々のフラグメント・データワードf1,1,...,fn,Nは、クライアントC又は別の承認されたコンピュータに送信され、データワードによって再構成される。
【0100】
第1のデータワードd1を再構成するために、サーバのインデックス(1,2,3)に対応するノードでフラグメントf1、f2、f3の第1のフラグメント・データワードf1,1、f2,1、f3,1の値を有する次数q=1の多項式k1を求める(数33参照)。同様に、データオブジェクトの第2のデータワードd2を再構成するために、サーバのインデックス(1,2,3)に対応するノードでフラグメントf1、f2、f3の第1のフラグメント・データワードf1,2、f2,2、f3,2の値を有する次数q=1の多項式k2を求める(数34参照)。
【0101】
【0102】
【0103】
そのような多項式は簡単な算術演算によって見出すことができる(数35及び数36参照)。その理由は、体の中で乗法の逆元が常に利用できるからである。
【0104】
【0105】
【0106】
これらの多項式k1、k2をそれぞれ位置0で評価すると、データオブジェクトの元のデータワードが得られる(数37及び数38参照)。
【0107】
【0108】
【0109】
本発明の全ての実施形態において、他の多項式の次数qの多項式を使用することももちろん可能であり、その中で、いずれの場合にも、同じ次数qの多項式がフラグメンテーション、チェックサム計算、整合性検査及び任意にランダムマスクの生成のために使用される。さらに、多項式の次数qはサーバS1、S2、S3の最小数m>qを確定し、再構成を可能とするために整数データが多項式上で利用できなければならないことに留意されたい。より大きな数のn台のサーバS1、S2、S3と再構成のために必要な、より大きな数のm個のフラグメントを使用すると、さらにセキュリティが向上する。具体的にはn=2m-1又はn=3m-2という値を選択してもよい。
【0110】
チェックサムの計算がより大きなリソースの負荷となる長いフラグメントがある場合、監査ユニットAによってランダムにあらかじめ定められた個々のフラグメントf1,...,fnのサブセット(部分集合)のみを各監査で定め、個々のフラグメントf1,...,fnに対するチェックサムp1,...,pnを計算するために使用することも可能である。