(57)【要約】  本発明は、ネットワークを介して互いに接続されている多数のサーバ（Ｓ１，．．．，Ｓｎ）に分散された状態で記憶された、Ｎ個のデータワード（ｄ１，．．．，ｄＮ）を有するデータオブジェクト（ｄ）の可用性と完全性を検査する方法であって、前記サーバ（Ｓ１，．．．，Ｓｎ）の前記データオブジェクト（ｄ）の分散ストレージに対して、前記データオブジェクト（ｄ）は、フラグメント化され、多数のフラグメント（ｆ１，．．．，ｆｎ）が、生成され、前記各フラグメント（ｆ１，．．．，ｆｎ）は、各サーバ（Ｓ１，．．．，Ｓｎ）に送信されて、そこで記憶され、また取得できるようにされ、前記サーバ（Ｓ１，．．．，Ｓｎ）に記憶された前記フラグメント（ｆ１，．．．，ｆｎ）の可用性と完全性を検証するため、同じ乱数（Ｒ）が、監査ユニット（Ａ）から前記サーバ（Ｓ１，．．．，Ｓｎ）に送信され、前記サーバ（Ｓ１，．．．，Ｓｎ）により、前記各フラグメント（ｆ１，．．．，ｆｎ）の前記データに対して前記乱数（Ｒ）を適用することによってそれぞれ変更され、チェックサム（ｐ１，．．．，ｐｎ）が生成され、前記チェックサム（ｐ１，．．．，ｐｎ）は、監査ユニット（Ａ）に送信され、前記監査ユニット（Ａ）は、前記サーバ（Ｓ１，．．．，Ｓｎ）によって送信された前記個々のチェックサム（ｐ１，．．．，ｐｎ）が整合しているか否か前記整合性検査を用いて検査し、整合している場合には、前記データの可用性と完全性を検査する方法に関する。【選択図】  図３
2019523458.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに接続されている多数のサーバ（Ｓ１，．．．，Ｓｎ）に分散されたＮ個のデータワード（ｄ１，．．．，ｄＮ）を有するデータオブジェクト（ｄ）の可用性と完全性を検査する方法であって、
フラグメンテーション規則が指定され、その下でデータオブジェクト（ｄ）に対して、ｎ個のフラグメントが生成され、具体的には同数のデータワードを有し、数ｍ＜ｎ個のフラグメント（ｆ１，．．．，ｆｎ）が前記データオブジェクト（ｄ）を再構成するために十分であるように前記フラグメント（ｆ１，．．．，ｆｎ）が重複して生成され、
ｍより大きい、具体的にはｎ個の多くのフラグメント（ｆ１，．．．，ｆｎ）の存在において、具体的には前記フラグメンテーション規則に従って、これらのフラグメント（ｆ１，．．．，ｆｎ）が互いに整合性があるかどうか及び／又は前記同データオブジェクト（ｄ）から生じているかどうかを検査する整合性検査が定められ、
チェックサム（ｐ１，．．．，ｐｎ）が前記フラグメント（ｆ１，．．．，ｆｎ）から生成される、チェックサム計算規則が前記チェックサム（ｐ１，．．．，ｐｎ）を計算するために定められ、
前記フラグメンテーション規則、前記整合性検査及び前記チェックサム計算規則は、
前記データオブジェクト（ｄ）から前記フラグメンテーション規則によって生成される個々のフラグメント（ｆ１，．．．，ｆｎ）が前記整合性検査（Ｋ）の意味で整合性があり、
前記チェックサム計算規則によって計算され、前記同データオブジェクト（ｄ）に基づき前記フラグメンテーション規則によって生成されたフラグメント（ｆ１，．．．，ｆｎ）により確認されたチェックサム（ｐ１，．．．，ｐｎ）が前記整合性検査の観点から整合性があるように調整され、
前記サーバ（Ｓ１，．．．，Ｓｎ）の前記データオブジェクト（ｄ）の分散ストレージに対して、
前記データオブジェクト（ｄ）はフラグメント化され、従って多数のフラグメント（ｆ１，．．．，ｆｎ）が生成され、
前記フラグメント（ｆ１，．．．，ｆｎ）は各サーバ（Ｓ１，．．．，Ｓｎ）に送信されてそこで記憶され、また取得できるようにされ、
前記サーバ（Ｓ１，．．．，Ｓｎ）に記憶された前記フラグメント（ｆ１，．．．，ｆｎ）の可用性と完全性を検証する目的のために、
同じ乱数（Ｒ）が監査ユニット（Ａ）から前記サーバ（Ｓ１，．．．，Ｓｎ）に送信され、
前記サーバ（Ｓ１，．．．，Ｓｎ）により、前記各フラグメント（ｆ１，．．．，ｆｎ）の前記データに対して前記乱数（Ｒ）を適用することによってそれぞれ変更され、チェックサム（ｐ１，．．．，ｐｎ）が生成され、そして前記チェックサム（ｐ１，．．．，ｐｎ）は監査ユニット（Ａ）に送信され、
前記監査ユニット（Ａ）は、前記サーバ（Ｓ１，．．．，Ｓｎ）によって送信された前記個々のチェックサム（ｐ１，．．．，ｐｎ）が整合しているかどうか前記整合性検査によって検査し、整合している場合には、前記データの可用性と完全性を検査する方法。
【請求項２】
請求項１に記載の方法であって、
前記整合性検査において前記送信されたチェックサム（ｐ１，．．．，ｐｎ）が不整合と判定された場合、どのチェックサム（ｐ１，．．．，ｐｎ）が不整合を引き起こしたか検査し、前記チェックサム（ｐ１，．．．，ｐｎ）が由来する前記フラグメント（ｆ１，．．．，ｆｎ）は欠陥があると判定する方法。
【請求項３】
請求項１又は２に記載の方法であって、
前記監査ユニット（Ａ）は、前記個々のフラグメント（ｆ１，．．．，ｆｎ）の前記チェックサム（ｐ１，．．．，ｐｎ）を導き出すために使用する所定のサブセットを前記個々のフラグメント（ｆ１，．．．，ｆｎ）内に定める方法。
【請求項４】
請求項１乃至３のいずれか１項に記載の方法であって、
個々のチェックサム（ｐ１，．．．，ｐｎ）を計算するために、各ケースにおいて、前記フラグメント（ｆ１，．．．，ｆｎ）及び前記乱数（Ｒ）に加えて、ランダムマスクｍを使用し、前記サーバ（Ｓ１，．．．，Ｓｎ）で使用される前記個々のランダムマスク・フラグメント（ｍ１，．．．，ｍｎ）は連帯して前記整合性検査を満たす方法。
【請求項５】
請求項４に記載の方法であって、
前記個々のランダムマスク・フラグメント（ｍ１，．．．，ｍｎ）は、予め前記個々のサーバ（Ｓ１，．．．，Ｓｎ）に配信され、所定の順序で使用される方法。
【請求項６】
請求項４に記載の方法であって、
前記サーバ（Ｓ１，．．．，Ｓｎ）は、協調して前記ランダムマスクｍを生成し、前記個々のサーバ（Ｓ１，．．．，Ｓｎ）はいずれもその他のサーバ（Ｓ１，．．．，Ｓｎ）の前記ランダムマスク・フラグメント（ｍ１，．．．，ｍｎ）についていかなる知識も得ず、各サーバはその他のサーバ、具体的には全ての他のサーバに値を送信し、これらの値は前記ランダムマスク・フラグメント（ｍ１，．．．，ｍｎ）を計算するために使用される方法。
【請求項７】
請求項１乃至３のいずれか１項に記載の方法であって、
前記チェックサム（ｐ１，．．．，ｐｎ）を計算するために、前記各フラグメント（ｆ１，．．．，ｆｎ）はＮ個のフラグメント・データワード（ｆ１,１，．．．，ｆｎ,Ｎ）に分割され、一以上のデータワードを備えるランダムマスクｍを任意に使用し、データワード毎に前記フラグメント（ｆ１，．．．，ｆｎ）を重み付け及び蓄積し、前記チェックサム計算規則は前記フラグメント（ｆ１，．．．，ｆｎ）の各個々のデータワード（ｆ１,１，．．．，ｆｎ,Ｎ）に対して、また任意に前記ランダムマスク・フラグメント（ｍ１，．．．，ｍｎ）に対しても線形である方法。
【請求項８】
請求項７に記載の方法であって、
ｉ番目のサーバ（Ｓｉ）に対する前記チェックサム（Ｐｉ）は、以下の数１に示すように前記チェックサム計算規則（Ｐ）に従って生成され、
【数１】
2019523458.tif 000041
ここでＲは全てのサーバ（Ｓ１，．．．，Ｓｎ）に送信される前記乱数を示し、
ｍｉは前記各サーバ（Ｓｉ）の前記ランダムマスク・フラグメントを示し、前記チェックサムを計算する際に任意に考慮され、
ｆｉ,ｊは、前記各サーバ（Ｓｉ）に記憶されている前記フラグメント（ｆｉ）のｊ番目のデータワードを示し、
具体的には、前記チェックサムの結果は所定の値を用いたモジュロ演算に従う方法。
【請求項９】
請求項１乃至８のいずれか１項に記載の方法であって、
前記データオブジェクト（ｄ）のフラグメンテーションは、前記データオブジェクトｄの各データワード（ｄ１，．．．，ｄＮ）に対して別々に前記所定のフラグメンテーション規則（Ｆ）を適用することによって遂行され、各データワードに対して、ｎ個のフラグメント・データワードが生成され、前記フラグメントに割り当てられ、
前記フラグメンテーション規則（Ｆ）は可逆的で、再構成規則（Ｆ−１）が特定され、任意の二つのデータワードに対して以下の数２の関係が当てはまる方法。
【数２】
2019523458.tif 000042
【請求項１０】
請求項９に記載の方法であって、
前記同データオブジェクトに対する前記フラグメンテーション規則は、ランダム値に依存して異なるフラグメント・データワードを与え、前記データオブジェクトの前記データワードは前記再構成規則（Ｆ−１）が前記フラグメント・データワードに適用された場合に得られる方法。
【請求項１１】
請求項１乃至１０のいずれか１項に記載の方法であって、
前記フラグメント（ｆ１，．．．，ｆｎ）から前記データオブジェクト（ｄ）を再構成するために、前記個々のフラグメント・データワード（ｆ１,１，．．．，ｆｎ,Ｎ）は、前記フラグメント・データワード（ｆ１,１，．．．，ｆｎ,Ｎ）がそれぞれ前記各フラグメントに対して同じ位置に配置され及び／又は互いに割り当てられているクライアントにそれぞれ送信され、それぞれ再構成規則（Ｆ−１）に従う方法。
【請求項１２】
請求項１乃至１１のいずれか１項に記載の方法であって、
前記サーバ（Ｓ１，．．．，Ｓｎ）から得られる前記個々のチェックサム（ｐ１，．．．，ｐｎ）はフラグメント・データワードと同様に再構成規則（Ｆ−１）に従い、前記チェックサム（ｐ１，．．．，ｐｎ）に基づくｍ個の各フラグメントの再構成が全て同じ結果を生成する場合に、
前記データは可用性と完全性を有すると判定される方法。
【請求項１３】
請求項１乃至１２のいずれか１項に記載の方法であって、
ｎ台のサーバ（Ｓ１，．．．，Ｓｎ）を所与として、最大限ｎ‐２の所定の多数項次数ｑが与えられ、
前記サーバ（Ｓ１，．．．，Ｓｎ）のそれぞれに対して、各ケースにおいて、インデックスｉが指定され、前記個々のサーバ（Ｓ１，．．．，Ｓｎ）の前記インデックスは互いに異なり、
前記フラグメンテーション規則において、前記フラグメント・データワードは、
所定のノードで、具体的には点０で、フラグメント化されている前記データオブジェクト（ｄ）の前記データワード（ｄ１，．．．，ｄｎ）の値を有し、所定の次数ｑを有する多項式が生成され、具体的には、前記多項式は、別の方法では、ランダムな基準に従って選択され、あるいは前記多項式の全ての係数はフラグメント化される前記データオブジェクト（ｄ）のデータワード（ｄ１，．．．，ｄｎ）によって表され、
前記フラグメント（ｆ１，．．．，ｆｎ）の前記データワード（ｆ１,１，．．．，ｆｎ,Ｎ）は、前記フラグメント（ｆ１，．．．，ｆｎ）が送信される前記個々のサーバ（Ｓ１，．．．，Ｓｎ）の前記インデックスｉに対応する前記ノードで前記多項式を評価することによって計算されるように生成され、
前記チェックサムの計算において、前記チェックサム（ｐ１，．．．，ｐｎ）が前記フラグメント（ｆ１，．．．，ｆｎ）の前記個々のデータワード（ｆ１,１，．．．，ｆｎ,Ｎ）の線型関数であるように前記個々のフラグメント化されたデータワード（ｆ１,１，．．．，ｆｎ,Ｎ）が重み付け方式で付加され、
前記整合性検査において、前記所定の次数ｑの多項式が、関連するサーバ（Ｓ１，．．．，Ｓｎ）よって送信された前記チェックサム（ｐ１，．．．，ｐｎ）に意図的に対応する前記サーバ（Ｓ１，．．．，Ｓｎ）の前記インデックスに対応する前記各ノードに対応する場合、前記所定の次数ｑの多項式が生成され得るかどうか、具体的には補間法によって検討される方法。
【請求項１４】
請求項１３に記載の方法であって、
ランダムマスクが生成された場合、
各サーバは、前記所定の次数ｑのランダムな多数項を生成し、前記多項式は、自身のインデックス及びその他のサーバ（Ｓ１，．．．，Ｓｎ）のインデックスの前記点で評価され、
各サーバ（Ｓ１，．．．，Ｓｎ）は、自身のインデックス値で前記多項式を評価した場合に得た前記値（ｇ１ｌ，．．．，ｇｎｎ）を記憶し、前記多項式が評価された前記インデックスに対応するインデックスを有する前記各サーバ（Ｓ１，．．．，Ｓｎ）に前記その他の値（ｇ１２，．．．，ｇ１ｎ、ｇ２１、ｇ２３，．．．，ｇ２ｎ，．．．，ｇ３（ｎ−１））を送信し、
前記サーバ（Ｓ１，．．．，Ｓｎ）は、サーバに記憶された前記値及び前記他のサーバ（Ｓ１，．．．，Ｓｎ）によってサーバに送信された前記値を蓄積し、具体的には付加し、前記ランダムマスク・フラグメント（ｍ１，．．．，ｍｎ）はこのような方法で判定される方法。
【請求項１５】
請求項１乃至１４のいずれか１項に記載の方法であって、
実行される全ての計算操作、具体的は前記フラグメンテーション規則、前記チェックサムの計算、前記整合性検査及び任意にランダムマスクの生成の関連で、
ａ）データワードは有限体、具体的には剰余体又はａが整数である２ａ要素の体から取られ、
ｂ）二つのデータワードの総和又は積あるいは乗法又は加法の逆元を計算するために使用される規則は、前記総和又は前記積を計算するために又は反転のために前記各体に適用可能な前記規則である方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して相互に接続された多数のサーバに分散方式で記憶されたデータオブジェクトの可用性と完全性を検査するための方法に関する。
【背景技術】
【０００２】
個々のデータの分散型ストレージは先行技術により公知である。様々なサーバにわたって分散され、記憶されたデータオブジェクトの個々のフラグメントがあって、それから元のデータオブジェクトを構成することができる一方、そのようなフラグメントを権限のない第三者に開示してもそのデータオブジェクトに関する重要な情報を入手させないという有利な可能性がある。先行技術において、様々なフラグメンテーションの方法が公知であり、その方法によって所定の数のフラグメントに基づいてデータオブジェクトを再構成することが可能である。例えば、データオブジェクトを合計１９個のフラグメントに分割して、そのうち合計１０個が元のデータオブジェクトに復元するために必要であるとすることが可能である。
【発明の概要】
【０００３】
これらの方法の全ては欠点がある。すなわち、個々のフラグメントが利用できるか又は無傷であるかどうかという簡単な検査でも、完全性と可用性を検査する主体はデータオブジェクトの内容に関する知識も取得しなければならない、及び／又はフラグメントは保存する前に前処理しなければならず、さらに、データ所有者又は監査人に関する恒久的なステータスの維持を要求するコンポーネント（例えば、ＭＡＣまたはいわゆるセンチネル）を付加しなければならず、その一方で記憶しなければならないデータの総量も増加することが必要になる。特に、データの外部監査、例えば、データの可用性と完全性を保証しなければならない独立の機関によって実行される場合、データオブジェクトの内容が検査主体（監査人）に到達するのは好ましくない。従って、本発明の目的は、監査人が可用性と完全性を調査するタスクを負うデータのいかなる知識も監査人が取得しない、分散されて記憶されたデータオブジェクトの可用性と完全性を検査するための方法を提供することである。本発明は、請求項１の機能を有する、前述の種類の方法で当該タスクを遂行する。
【０００４】
破損したデータの位置の簡単な判定においては、整合性検査により送信されたチェックサムが不整合であると判明した場合、どのチェックサムが不整合を引き起こしたかを調査し、当該チェックサムが由来するフラグメントに欠陥があると特定される。
【０００５】
より迅速に実行できる簡略化された検査においては、監査ユニットは、個々のフラグメントのチェックサムを導き出すのに使用される個々のフラグメントの所定のサブセットを定める。
【０００６】
監査ユニットに検査するデータの知識を得る機会をさらに与えるセキュリティの向上のために、フラグメントと乱数に加えて、ランダムマスクｍを使用して個々のチェックサムを生成することとし、またサーバで使用される個々のランダムマスク・フラグメントは整合性検査を一緒に満たすのに十分であるとする。
【０００７】
監査プロセス中にサーバ間の通信を避けるために、個々のランダムマスク・フラグメントが予め個々のサーバに配信され、所定の手順で使用されるよう定めてもよい。この手順では、個々のサーバは監査に関与する他のサーバに関するいかなる知識も有する必要はない。
【０００８】
さらに、同様にセキュリティを向上する目的のために、個々のサーバはいずれも他のサーバのランダムマスク・フラグメントについての知識を取得することなく、サーバは相互に作用してランダムマスクｍを生成することも定めてもよい。この中で、各サーバは他のサーバ、具体的には他の全てのサーバに値を送信し、これらの値はランダムマスク・フラグメントを計算するために使用される。この場合、監査のセキュリティを向上するために、ランダムマスクを生成する場合個々のサーバ間の相互作用が利用されてもよい。
【０００９】
チェックサムを判定するための数値的に特に簡略な方法においては、チェックサムの計算のために、個々のフラグメントをＮ個のフラグメント・データワードに分割し、１以上のデータワードを備えるランダムマスクｍを任意に使用し、フラグメントをデータワード単位で重み付けし、蓄積することとする。ここで、チェックサムの計算規則はフラグメントの各個々のデータワードに対して、また、任意に、ランダムマスク・フラグメントに対しても線型である。具体的に、この目的のために、ｉ番目のサーバに対するチェックサムを以下の数1に示すチェックサム計算規則に従って生成するように定めてもよい。
【００１０】
【数１】
2019523458.tif 000003
【００１１】
ここで、Ｒは、全てのサーバに送信される乱数を示す。ｍｉは、各サーバのランダムマスク・フラグメントを示すとともに任意にチェックサムを計算する際に考慮に入れられる。ｆｉ,ｊは、各サーバに記憶されるフラグメントのｊ番目のデータワードを示す。具体的には、チェックサムの結果は所定の値を用いたモジュロ演算に従う。
【００１２】
データオブジェクトをフラグメント化する好適で簡略な方法おいて、ｎ個のフラグメント・データワードを各データワードに対してそれぞれ生成してそれらをフラグメントに割り当て、データオブジェクトｄの各データワードに別々に所定のフラグメンテーション規則を適用することによってデータオブジェクトのフラグメンテーションが実行され、フラグメンテーション規則は可逆で、再構成規則が規定され、任意の二つのデータワードに対して以下の数２に示す関係が適用される。
【００１３】
【数２】
2019523458.tif 000004
【００１４】
フラグメントからデータのコンテンツを再構成することを避けるために、同じデータオブジェクトに対してフラグメンテーション規則を適用すると、乱数値に応じて、それぞれ異なるフラグメント・データワードが与えられ、データオブジェクトのデータワードは、再構成規則がフラグメント・データワードに適用された場合に取得されるように定めてもよい。
【００１５】
フラグメントからのデータオブジェクトの簡略な再構成のために、フラグメントからデータオブジェクトを再構成するために、それぞれクライアントに対して送信される個々のフラグメント・データワードは、それぞれ各フラグメントに対して同じ位置に配置され及び／又は互いに割り当てられ、それぞれ再構成規則に従うと定められる。
【００１６】
完全な再構成が必要なデータの可用性と完全性の検査においては、サーバから取得された個々のチェックサムはフラグメント・データワードと同様に再構成規則に従い、チェックサムに基づくｍ個のフラグメントの再構成によってそれぞれ全て同じ結果が生成される場合、当該データは可用性と完全性を有すると判定されることとする。本発明の特に簡略で数値的に有利な実施形態は、以下のように定められる。ｎ個のサーバを所与として、最大限ｎ−２の所定の多項式の次数ｑが与えられ、サーバのそれぞれに対して、インデックスｉがそれぞれ指定され、個々のサーバ（Ｓ１，．．．，Ｓｎ）のインデックスは互いに異なる。フラグメンテーション規則において、フラグメント・データワードは以下のように生成される。
【００１７】
所与の補間点、具体的に点０で、フラグメント化されているデータオブジェクトの値を有し、所定の次数ｑを有する多項式が生成され、その中で具体的に、多項式は、別の方法では、ランダムな基準に従って選択されるあるいは多項式の全ての係数は、フラグメント化されるデータオブジェクトのデータワードによって表される。フラグメントのデータワードは、フラグメントが送信される各サーバのインデックスｉに対応する補間点で多項式を評価することによって生成される。チェックサムの計算の場合、チェックサムがフラグメントの個々のデータワードに線型的に依存するように、個々のフラグメント化されたデータワードが重み付け方式で付加される。
【００１８】
サーバのインデックスに対応する各補間点で、関連するサーバによって送信されたチェックサムを有する所定の次数ｑの多項式が計算できるかどうか、整合性検査で、具体的には補間法によって検査される。ランダムマスクを生成するために、ランダムマスクを生成する場合、各サーバは、所与の次数ｑのランダムな多項式を生成し、多項式は、自身のインデックス及び他のサーバのインデックスに対応する点で評価され、各サーバは、サーバのインデックス値で多項式を評価することによって得られた値を記憶するとともに多項式が評価されたインデックスに対応するインデックスを有する各サーバに他の値を送信することを、この関連で、有利に定めてもよい。
【００１９】
サーバは、サーバで記憶された値と他のサーバによってサーバに送信された値を蓄積、具体的には付加し、ランダムマスク・フラグメントはこのような方法で確認される。
【００２０】
数値面では、実行される全ての計算操作、具体的にはフラグメンテーション規則、チェックサムの計算、整合性検査及び、任意に、ランダムマスクの生成の場合との関連で、
ａ）データワードが有限体、具体的には剰余体又は２ａ要素（ここで、ａは整数）を有する体から取られ、そして、
ｂ）二つのデータワードの総和又は積あるいは乗法又は加法の逆元を計算するために使用する規則が、総和又は積を計算するためにあるいは反転のために各体に適用可能な規則である場合、評価は特に有利である。
【図面の簡単な説明】
【００２１】
本発明の複数の好適な実施形態を以下の図面を参照して詳細に説明する。
【図１】本発明に係る方法を実行するための簡略なコンピュータネットワークを示す。
【図２】一実施形態におけるフラグメンテーションとサーバに対するフラグメントの分散を示す。
【図３】分散形態で記憶されたデータの監査に関する実施形態を示す。
【図４】ランダムマスクを生成するために実行可能な実施形態を示す。
【発明を実施するための形態】
【００２２】
図１は、クライアントＣ、複数のサーバＳ１、Ｓ２、Ｓ３及び監査ユニットＡを有する簡略なコンピュータネットワークを示す。クライアントＣ、監査ユニットＡ及び個々のサーバＳ１、Ｓ２、Ｓ３は、ネットワークＮを介して相互に接続されている。クライアントＣに配置されたデータオブジェクトｄのサーバＳ１、Ｓ２、Ｓ３による分散型ストレージについて、以下のステップが実行される。
【００２３】
データオブジェクトｄは、クライアントＣでフラグメント化され、個数ｎ＝３のフラグメントｆ１，．．．，ｆｎが生成される。生成されたフラグメントｆ１，．．．，ｆｎの個数は、使用されるサーバＳ１，．．．，Ｓｎの台数に対応する。何台のサーバＳ１，．．．，Ｓｎを使用するかに依存して、異なる個数のフラグメントｆ１，．．．，ｆｎが生成される。続いて、フラグメントｆ１，．．．，ｆｎは、サーバＳ１，．．．，Ｓｎに個別に転送される。
【００２４】
この場合、図２に示すように、フラグメントｆ１はサーバＳ１に送信され、フラグメントｆ２はサーバＳ２に送信され、フラグメントｆ３はサーバＳ３に送信される。
【００２５】
フラグメントｆ１，．．．，ｆｎを生成するために、同じデータワード数Ｎ＝２を有する個数ｎ＝３のフラグメントのデータオブジェクトに対して、データワードが生成されるフラグメンテーション規則Ｆが与えられる。
【００２６】
フラグメンテーション規則に関連して、単一のフラグメントに含まれるデータを使用できないようにする乱数値がフラグメントに内蔵されている場合、フラグメンテーション規則Ｆは同じデータオブジェクトに対して異なるフラグメントｆ１，．．．，ｆｎを生成することがあり、その一方、定義可能な数のフラグメントに含まれる情報の知識によりフラグメントからデータオブジェクトを再構成することが可能になることに留意されたい。
【００２７】
数３に示すフラグメンテーション規則Ｆの再構成規則Ｆ−１は、フラグメントに基づいて元のデータオブジェクトを生成する。再構成規則は、二つのフラグメント化されたデータワードの総和に適用すると二つのフラグメント化されていないデータワードの総和になるという特性を有する。
【００２８】
【数３】
2019523458.tif 000005
【００２９】
全ての実施形態について、手順の表現を簡略化するために、個々のデータワードに関するデータ種類として１３の数字の余剰体Ｚ１３が使用される。データワードは０から１２までの値と考える。この剰余体内の演算は整数の演算に対応し、毎回の加法又は乗法の実行の後にモジュロ演算が行われ、その数は０と１２の間の数の範囲に変換される。この体では、全ての体においてと同様に、全ての数ｘに対して乗法の逆元Ｘ−１が使用でき、ｘ＊ｘ−１＝１という特性を有する。
【００３０】
さらに、加法と乗法は、また、体の特性がＰａ要素（ここでＰは素数、ａは任意の自然数）の集合に対しても存在するように定義することができる。この事実を利用すると、Ｐ＝２で、例えば、ａ＝１６を有するような体を余剰体の代わりにデータワードを表すために使用することができる。すなわち、各データワードは、一義的にまた記憶スペースを浪費することなく、２進数で表現することができ、記憶スペース利用の点で有利である。
【００３１】
この目的に関して体において定義されなければならない加法と乗法の実行が複雑なため、明確化のために、明細書で示す計算例として体Ｚ１３を選択する。
【００３２】
加法と乗法は、自然数又は整数については同様に実行され、演算モジュロ１３はその後で実行される。
【００３３】
この場合、データオブジェクトｄ及び個々のフラグメントｆ１，．．．，ｆｎが生成される非常に簡略な例を示す。ｍ＝２＜ｎの数のフラグメントがデータオブジェクトを再構成するために十分であるようにフラグメントｆ１，．．．，ｆ３を重複して生成する。この場合、データオブジェクトｄは二つのデータワードｄ１＝４及びｄ２＝９を備える。各個々のデータワードについて、クライアントは次数ｑ＝ｍ‐１＝１のランダムな多項式を選択し、その定数項はデータオブジェクトｄの各データワードｄ１、ｄ２に該当し、その勾配ｒ１、ｒ２は全てのサーバが共有する乱数値である。フラグメンテーション規則によって、データオブジェクトの各データワードに対して、多項式Ｆ１(ｘ)，Ｆ２(ｘ)が得られ、例えば、ランダムに勾配ｒ１＝８、ｒ２＝６を選択することによって以下の数４及び数５に示すように定義することができる。
【００３４】
【数４】
2019523458.tif 000006
【００３５】
【数５】
2019523458.tif 000007
【００３６】
フラグメンテーションの過程で、サーバＳ１、Ｓ２、Ｓ３のそれぞれにはインデックスがそれぞれ割り当てられる。サーバＳ１、Ｓ２、Ｓ３のインデックスは、整数（１、２、３）として付与される。このようにして生成された多項式は各サーバのインデックスに対応するそれらの整数ノードでいずれの場合にも評価される。
【００３７】
以下において、フラグメントｆ１，．．．，ｆｎの決定方法をより詳細に示す。フラグメントｆ１は生成後第１のサーバＳ１に送信される。本例示の実施形態では、第１のサーバＳ１はインデックス１を受信する。第１のサーバＳ１に送信されるフラグメントｆ１のフラグメント・データワードｆ１,１、ｆ１,２は、以下の数６及び数７に従って算出される。
【００３８】
【数６】
2019523458.tif 000008
【００３９】
【数７】
2019523458.tif 000009
【００４０】
このように、フラグメント・データワード『１２、２』を含むフラグメントｆ１は第１のサーバＳ１に送信される。
【００４１】
本例示の実施形態では、第２のサーバＳ２はインデックス２を受信する。第２のサーバＳ２に送信されるフラグメントｆ２のフラグメント・データワードｆ２,１、ｆ２,２は、以下の数８及び数９に従って算出される。
【００４２】
【数８】
2019523458.tif 000010
【００４３】
【数９】
2019523458.tif 000011
【００４４】
このように、フラグメント・データワード『７、８』を含むフラグメントｆ２は第２のサーバＳ２に送信される。
【００４５】
本例示の実施形態では、第３のサーバＳ３はインデックス３を受信する。第３のサーバＳ３に送信されるフラグメントｆ３のフラグメント・データワードｆ３,１、ｆ３,２は、以下の数１０及び数１１に従って算出される。
【００４６】
【数１０】
2019523458.tif 000012
【００４７】
【数１１】
2019523458.tif 000013
【００４８】
このように、フラグメント・データワード『２，１』を含むフラグメントｆ３は第３のサーバＳ３に送信される。
【００４９】
個々のサーバＳ１、Ｓ２、Ｓ３に送信されたフラグメントｆ１、ｆ２、ｆ３は、サーバに記憶されさらなる処理に向け利用可能に保持される。図３に示すさらなるステップにおいて、監査ユニットＡは、監査ユニットＡが生成した乱数ＲをサーバＳ１、Ｓ２、Ｓ３のそれぞれに対して送信する。各サーバＳ１、Ｓ２、Ｓ３はその中に存在するフラグメントｆ１、ｆ２、ｆ３を使用して、データワード毎に、下記の数１２に示すチェックサム計算規則に基づいてチェックサムｐ１、ｐ２、ｐ３を算出する。結果はフラグメンテーション中の演算（ｍｏｄ１３）にも従う。
【００５０】
【数１２】
2019523458.tif 000014
【００５１】
実例として、以下の例において、監査ユニットＡは乱数Ｒ＝４を選択したとする。データフラグメント『１２，２』が利用できる第１のサーバＳ１において、結果は以下の数１３のようになる。
【００５２】
【数１３】
2019523458.tif 000015
【００５３】
データフラグメント『７，８』が利用できる第２のサーバＳ２において、結果は以下の数１４のようになる。
【００５４】
【数１４】
2019523458.tif 000016
【００５５】
データフラグメント『２，１』が利用できる第３のサーバＳ３において、結果は以下の数１５のようになる。
【００５６】
【数１５】
2019523458.tif 000017
【００５７】
個々のチェックサムｐ１＝２、ｐ２＝０、ｐ３＝１１は監査ユニットＡに送信される。整合性検査において、監査ユニットＡは、チェックサムに対応するｙ座標及び各サーバＳ１、Ｓ２、Ｓ３のインデックスに対応するｘ座標を有する点が次数ｑ＝１の多項式上にあるかどうか検査する。この場合、個々の点は多項式ｇ(ｘ)＝４‐２ｘ上にある。第１チェックサムｐ１は、ｇ(１)＝４−２＊１＝２＝ｐ１を与える。第２チェックサムｐ２は、ｇ(２)＝４−２＊２＝０＝ｐ２を与える。第３チェックサムｐ３は、ｇ(３)＝４−２ｘ＝‐２（Ｍｏｄ１３）＝ｐ３を与える。所与の値の全ては次数ｑ＝１の多項式上にあるので、整合性が確認できる。
【００５８】
このような多項式を見出すために異なる計算規則を使用してもよい。ノードで与えられる値に基づいて多項式を求める好適な方法では、関連するデータワードの体の特性である乗法の逆元の存在と計算が必要である。そのような乗法の逆元は体の中に必ず存在する。
【００５９】
以下の考察において、記憶されたデータのプライバシーを保証するために、最大限ｍ−１個のフラグメント又はサーバが破損していると想定する。そうでない場合、破損したサーバはｍ個のフラグメントを共有してデータを再構成するかもしれない。文献で推奨されているｎの値の場合（例えば、ｎ＝２ｍ−１、ｎ＝３ｍ−２），端的に少なくともｍ個の破損していないフラグメントが残存することになる。
【００６０】
上述の場合について、様々なサーバに記憶されたフラグメントの整合性から、記憶されたデータは完全性を有する、すなわち、フラグメントは、再構成の後、元々記憶されたデータを実際に生成することになる。具体的に言うと、ｍ個の変更されていないフラグメントが元のデータに再構成され、他の全てのフラグメントがそれらのフラグメントと整合性がある場合、任意のｍ個の任意の再構成によって必ず元のデータが生成されるであろう。
【００６１】
一つのフラグメントｆ２,１が変更され、例えば、第２のサーバＳ２のデータキャリアに対する損傷の理由で、そして、例えば、値７の代わりに値１０を受信した場合、第２のサーバＳ２に対して対応するチェックサムｐ２は、以下の数１６のようになる。
【００６２】
【数１６】
2019523458.tif 000018
【００６３】
評価の後、点『１、ｐ１』、『２、ｐ２』、『３、ｐ３』はもはや整合性条件を満たさず、またもはや次数ｑ＝１の多項式上にないので、送信されたチェックサムｐ１、ｐｎは整合性検査において不整合であると判定される。
【００６４】
ｍ＋２以上のサーバが使用される場合、検査されたどのフラグメントが破損又は変更されたかも判定してもよい。他のサーバに関する付加チェックサムｐ４が使用できる、例えば、インデックス４を有する４番目の例示されていないサーバがチェックサムｐ４＝９を正しく判定した場合、点『２、ｐ２』以外の他の全ての点『１、ｐ１』、『３、ｐ３』、『４、ｐ４』は、次数ｑ＝１の多項式上、すなわち、多項式ｇ(ｘ)＝４−２ｘ上にあることを実証することができる。第２のサーバのフラグメントｆ２は欠陥があると判定することができる。
【００６５】
本発明の第２の好適な実施形態において、その他の点では本発明の第１の実施形態と同一であるが、フラグメントｆ１、ｆ２、ｆ３と乱数Ｒに加えて、いずれの場合もランダムマスクｍを使用して個々のチェックサムｐ１、ｐ２、ｐ３を生成し得る。個々のサーバＳ１、Ｓ２、Ｓ３のそれぞれは、それぞれ別々のランダムマスク・フラグメントｍ１，．．．，ｍ３を有する。サーバに割り当てられた個々のランダムマスク・フラグメントは、同様に整合性条件下でお互いを満たす、すなわち、本例示の実施形態の点『１、ｍ１』、『２、ｍ２』、『３、ｍ３』は、次数ｑ＝１の多項式上にある。本実施形態においては、監査人がデータオブジェクトに関する情報を取得する可能性はない。
【００６６】
ランダムマスク・フラグメントｍ１、ｍ２、ｍ３は、以下のように、チェックサムｐ１、ｐ２、ｐ３を計算する際に使用される。各要求では、それぞれ連帯して整合性条件を満たす他のｍ１、ｍ２、ｍ３ランダムマスク・フラグメントを使用する。ランダムマスクは、一以上のデータワードを備えてもよい。
【００６７】
ランダムマスクｍを特定する一つの可能性のある方法は、外部の信頼できるソース又はクライアントＣから予めサーバＳ１、Ｓ２、Ｓ３のそれぞれに対して整合性条件を満たす複数の整合性満足ランダムマスク・フラグメントｍ１、ｍ２、ｍ３を生成して、それらを所定の手順で使用することである。
【００６８】
もちろん、これにはランダムマスク・フラグメントｍ１、ｍ２、ｍ３がそれぞれ同じサーバグループによって使用されることが想定されている。
【００６９】
以下において図４で示される別の方法では、個々のサーバＳ１、Ｓ２、Ｓ３はいずれもが他のサーバＳ１、Ｓ２、Ｓ３のランダムマスク・フラグメントｍ１、ｍ２、ｍ３に関するいかなる知識も得ることなく、サーバＳ１、Ｓ２、Ｓ３が協調してランダムマスクｍを生成することを可能とする。それぞれの監査に対して、関与するサーバＳ１、Ｓ２、Ｓ３はそれぞれ、残存するフラグメントｆ１、ｆ２、ｆ３がどのサーバＳ１、Ｓ２、Ｓ３に記憶されているかを承知しているのみである。この手順は、ランダムマスクが各監査に対して生成され、監査の数は予め知る必要がないという利点がある。
【００７０】
サーバＳ１、Ｓ２、Ｓ３のそれぞれは、ランダムマスクを生成するために、フラグメンテーション、チェックサムの計算及び整合性検査にも使用される多数項次数ｑ＝１を有するランダムな多項式ｇ１(ｘ)，ｇ２(ｘ)，ｇ３(ｘ)を決定し、インデックスｊを有するその他のサーバＳｊに多項式ｇｉ(ｊ)の値を送信する。以下の数１７、数１８及び数１９において、例によってこれを示す。
【００７１】
第１のサーバＳ１はランダムな多項式ｇ１(ｘ)＝２ｘ＋８を生成する。第１のサーバＳ１は、自身のインデックス（１）又は他のサーバＳ２、Ｓ３のインデックス（２，３）に対応する点で多項式を評価する。
【００７２】
【数１７】
2019523458.tif 000019
【００７３】
【数１８】
2019523458.tif 000020
【００７４】
【数１９】
2019523458.tif 000021
【００７５】
第１のサーバＳ１は、自身のインデックス（１）で多項式を評価する場合に得る値ｈ１,１を記憶し、値ｈ１,２を第２のサーバＳ２に、値ｈ１,３を第３のサーバＳ３に送信する。
【００７６】
第２のサーバＳ２はランダムな多項式ｇ２(ｘ)＝３ｘ＋１を生成する。以下の数２０、数２１及び数２２に示すように、第２のサーバＳ２は自身のインデックス（２）又は他のサーバＳ１、Ｓ３のインデックス（１，３）に対応する位置で多項式を評価する。
【００７７】
【数２０】
2019523458.tif 000022
【００７８】
【数２１】
2019523458.tif 000023
【００７９】
【数２２】
2019523458.tif 000024
【００８０】
第２のサーバＳ２は、自身のインデックス（２）で多項式を評価した場合に得る値ｈ２,２を記憶し、値ｈ２,１を第１のサーバＳ１に、値ｈ２,３を第３のサーバにＳ３に送信する。
【００８１】
第３のサーバＳ３はランダムな多項式ｇ３(ｘ)＝７ｘ＋７を生成する。以下の数２３、数２４及び数２５に示すように、第３のサーバＳ３は自身のインデックス（３）又は他のサーバＳ１、Ｓ２のインデックス（１，２）に位置する点で多項式を評価する。
【００８２】
【数２３】
2019523458.tif 000025
【００８３】
【数２４】
2019523458.tif 000026
【００８４】
【数２５】
2019523458.tif 000027
【００８５】
第３のサーバＳ３は、自身のインデックス（３）で多項式を評価した場合に得る値ｈ３,３を記憶し、値ｈ３,１を第１のサーバＳ１に、値ｈ３,２を第２のサーバにＳ２に送信する。
【００８６】
さらなるステップで、全てのサーバＳ１、Ｓ２、Ｓ３は、それらで記憶している値及び残りのサーバＳ１、Ｓ２、Ｓ３によってそれらに送信された値を付加し、任意に、サーバはモジュロ演算を実行する。ランダムマスクの値ｍ１、ｍ２、ｍ３は、それに対応して以下の数２６、数２７及び数２８に示すようになる。
【００８７】
【数２６】
2019523458.tif 000028
【００８８】
【数２７】
2019523458.tif 000029
【００８９】
【数２８】
2019523458.tif 000030
【００９０】
チェックサムｐ１、ｐ２、ｐ３を計算する場合、ランダムマスク・フラグメントは以下の数２９に示すように考慮される。
【００９１】
【数２９】
2019523458.tif 000031
【００９２】
第１のサーバＳ１においては、データフラグメント『１２，２』が利用可能であって、結果は以下の数３０に示すとおりである。
【００９３】
【数３０】
2019523458.tif 000032
【００９４】
第２のサーバＳ２においては、データフラグメント『７，８』が利用可能であって、結果は以下の数３１に示すとおりである。
【００９５】
【数３１】
2019523458.tif 000033
【００９６】
第３のサーバＳ３においては、データフラグメント『２，１』が利用可能であって、結果は以下の数３２に示すとおりである。
【００９７】
【数３２】
2019523458.tif 000034
【００９８】
個々のチェックサムｐ１＝４、ｐ２＝１、ｐ３＝１１は、監査ユニットＡに送信される。整合性検査において、監査ユニットＡは、チェックサムに対応するｙ座標とチェックサムｐ１、ｐ２、ｐ３を生成した各サーバＳ１、Ｓ２、Ｓ３のインデックスに対応するｘ座標を有する点が次数ｑ＝１の多項式上にあるかどうか検査する。この場合、個々の点は多項式ｇ(ｘ)＝７−３ｘ上にある。第１のチェックサムｐ１は、ｇ(１)＝７−３＊１＝２＝ｐ１を生成する。第２のチェックサムｐ２は、ｇ(２)＝７−３＊２＝１＝ｐ２を生成する。第３のチェックサムｐ３は、ｇ(３)＝７−３＊３＝−２（Ｍｏｄ１３）＝１１＝ｐ３を生成する。特定の値の全ては次数ｑ＝１の多項式に基づいているので、整合性を判定することが可能であり、従ってデータの可用性と完全性を判定することが可能である。
【００９９】
フラグメントｆ１，．．．，ｆｎからデータオブジェクト（ｄ）を再構成するために、フラグメント・データワード（ｆ１,１，．．．，ｆｎ,Ｎ）がそれぞれ、各フラグメントｆ１，．．．，ｆｎに対して同じ位置に配置されている及び／又は互いに割り当てられているフラグメントｆ１，．．．，ｆｎの個々のフラグメント・データワードｆ１,１，．．．，ｆｎ,Ｎは、クライアントＣ又は別の承認されたコンピュータに送信され、データワードによって再構成される。
【０１００】
第１のデータワードｄ１を再構成するために、サーバのインデックス（１，２，３）に対応するノードでフラグメントｆ１、ｆ２、ｆ３の第１のフラグメント・データワードｆ１,１、ｆ２,１、ｆ３,１の値を有する次数ｑ＝１の多項式ｋ１を求める（数３３参照）。同様に、データオブジェクトの第２のデータワードｄ２を再構成するために、サーバのインデックス（１，２，３）に対応するノードでフラグメントｆ１、ｆ２、ｆ３の第１のフラグメント・データワードｆ１,２、ｆ２,２、ｆ３,２の値を有する次数ｑ＝１の多項式ｋ２を求める（数３４参照）。
【０１０１】
【数３３】
2019523458.tif 000035
【０１０２】
【数３４】
2019523458.tif 000036
【０１０３】
そのような多項式は簡単な算術演算によって見出すことができる（数３５及び数３６参照）。その理由は、体の中で乗法の逆元が常に利用できるからである。
【０１０４】
【数３５】
2019523458.tif 000037
【０１０５】
【数３６】
2019523458.tif 000038
【０１０６】
これらの多項式ｋ１、ｋ２をそれぞれ位置０で評価すると、データオブジェクトの元のデータワードが得られる（数３７及び数３８参照）。
【０１０７】
【数３７】
2019523458.tif 000039
【０１０８】
【数３８】
2019523458.tif 000040
【０１０９】
本発明の全ての実施形態において、他の多項式の次数ｑの多項式を使用することももちろん可能であり、その中で、いずれの場合にも、同じ次数ｑの多項式がフラグメンテーション、チェックサム計算、整合性検査及び任意にランダムマスクの生成のために使用される。さらに、多項式の次数ｑはサーバＳ１、Ｓ２、Ｓ３の最小数ｍ＞ｑを確定し、再構成を可能とするために整数データが多項式上で利用できなければならないことに留意されたい。より大きな数のｎ台のサーバＳ１、Ｓ２、Ｓ３と再構成のために必要な、より大きな数のｍ個のフラグメントを使用すると、さらにセキュリティが向上する。具体的にはｎ＝２ｍ−１又はｎ＝３ｍ−２という値を選択してもよい。
【０１１０】
チェックサムの計算がより大きなリソースの負荷となる長いフラグメントがある場合、監査ユニットＡによってランダムにあらかじめ定められた個々のフラグメントｆ１，．．．，ｆｎのサブセット（部分集合）のみを各監査で定め、個々のフラグメントｆ１，．．．，ｆｎに対するチェックサムｐ１，．．．，ｐｎを計算するために使用することも可能である。
【図１】
2019523458.tif 000043
【図２】
2019523458.tif 000044
【図３】
2019523458.tif 000045
【図４】
2019523458.tif 000046
【国際調査報告】
2019523458.tif 000047
2019523458.tif 000048
2019523458.tif 000049
2019523458.tif 000050
2019523458.tif 000051
2019523458.tif 000052