(57)【特許請求の範囲】
【請求項１】
アーカイブ対象データを複数のｎ個（ｎは２以上の整数）の記憶媒体に分散して記憶する分散アーカイブシステムにおいて、
前記ｎ個の記憶媒体と、
初期状態では前記アーカイブ対象データのデータ先頭を指し、処理の進行につれてデータ末尾に向かって一方向に動くポインタ手段と、
前記ポインタ手段が指定するポインタ位置の各々において乱数を生成する第一の乱数発生手段と、
前記ポインタ手段が指定するポインタ位置からデータ断片を取り出し、当該データ断片を記憶すべき（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）の記憶媒体を前記ｎ個の記憶媒体のうちから、前記第一の乱数発生手段が生成する乱数から一意に決定し、当該（ｎ−ｋ＋１）個の記憶媒体の各々において１つの宛先ファイルに当該データ断片を、追記記録して、記録順序に従って読み出し可能な態様で、重複して記録する重複分散化手段とを有し、
前記重複分散化手段が当該データ断片を当該（ｎ−ｋ＋１）個の記憶媒体の各々において当該１つの宛先ファイルに重複して記録させるたびに、前記ポインタ位置を前記データ断片の長さだけ進め、前記重複分散化手段が前記データに含まれるすべてのデータ断片について処理を終了するまで前記重複分散化手段の記録処理を繰り返し、
前記第一の乱数発生手段はシードを入力として疑似乱数発生アルゴリズムに基づいて任意の個数の乱数を発生するものであり、
アーカイブ対象データの復元時には、前記ポインタ手段が指定するポインタ位置の各々において前記第一の乱数発生手段が生成した乱数と同一の乱数に従って重複記録先の（ｎ−ｋ＋１）個の記憶媒体を決定し当該記憶媒体のいずれかの前記１つの宛先ファイルから記録順序に従ってデータ断片を読み出して順次に連結してアーカイブ対象データを復元できるようにしたことを特徴とする分散アーカイブシステム。
【請求項２】
アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ装置において、
前記アーカイブ対象データから予め定められた手順で複数のデータ断片を順次に切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段と、
前記切り出し手段で順次に切り出された前記複数のデータ断片の各々に対して乱数発生手段がそれぞれ生成する乱数に基づいて、当該複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちの（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に１対（ｎ−ｋ＋１）の対応関係で一意に関係付ける関係付け手段とを有し、
前記切り出し手段で順次に切り出されたデータ断片の各々を、前記関係付け手段で１対（ｎ−ｋ＋１）の対応関係で関係付けられた（ｎ−ｋ＋１）個のアーカイブ先記憶手段の各々において、１つの宛先ファイルに追記記録して、記録順序に従って読み出し可能な態様で、重複してアーカイブさせ、
前記乱数発生手段はシードを入力として疑似乱数発生アルゴリズムに基づいて任意の個数の乱数を発生するものであり、
アーカイブ対象データの復元時には、前記データ断片ごとに前記乱数発生手段が生成した乱数と同一の乱数に従って重複記録先の（ｎ−ｋ＋１）個の記憶媒体を決定し当該記憶媒体のいずれかの前記１つの宛先ファイルから記録順序に従ってデータ断片を読み出して順次に連結してアーカイブ対象データを復元できるようにしたことを特徴とするデータアーカイブ装置。
【請求項３】
アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるためのデータアーカイブ用コンピュータプログラムにおいて、
コンピュータを、
前記アーカイブ対象データから予め定められた手順で複数のデータ断片を順次に切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段、および、
前記切り出し手段で順次に切り出された前記複数のデータ断片の各々に対して乱数発生手段がそれぞれ生成する乱数に基づいて、当該複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちの（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に１対（ｎ−ｋ＋１）の対応関係で一意に関係付ける関係付け手段
として機能させ、
前記切り出し手段で順次に切り出されたデータ断片の各々を、前記関係付け手段で１対（ｎ−ｋ＋１）の対応関係で関係付けられた（ｎ−ｋ＋１）個のアーカイブ先記憶手段の各々において、１つの宛先ファイルに追記記録して、記録順序に従って読み出し可能な態様で、重複してアーカイブさせ、
前記乱数発生手段はシードを入力として疑似乱数発生アルゴリズムに基づいて任意の個数の乱数を発生するものであり、
アーカイブ対象データの復元時には、前記データ断片ごとに前記乱数発生手段が生成した乱数と同一の乱数に従って重複記録先の（ｎ−ｋ＋１）個の記憶媒体を決定し当該記憶媒体のいずれかの前記１つの宛先ファイルから記録順序に従ってデータ断片を読み出して順次に連結してアーカイブ対象データを復元できるようにしたことを特徴とするデータアーカイブ用コンピュータプログラム。
【請求項４】
請求項２記載のデータアーカイブ装置によりｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせているデータを復元する復元装置において、
前記関係付け手段が前記データのデータ断片の各々を（ｎ−ｋ＋１）個のアーカイブ先記憶手段に関係付けるのに用いた関係付け情報をそれぞれ取得する関係付け情報取得手段と、
前記データ断片の各々について、当該データ断片に前記関係付け情報により関係付けられた（ｎ−ｋ＋１）個のアーカイブ先記憶手段のいずれかの前記１つの宛先ファイルから当該データ断片を取り出すデータ断片取得手段と、
取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段とを有し、
前記関係付け情報取得手段が取得する前記関係付け情報は、請求項２記載のデータアーカイブ装置の前記乱数発生手段に入力される前記シードであり、前記関係付け情報として取得した前記シードを入力として前記乱数発生手段の前記疑似乱数発生アルゴリズムに基づいて乱数を発生させ、当該乱数に基づいて前記データ断片の各々を前記（ｎ−ｋ＋１）個のアーカイブ先記憶手段に関係付けることを特徴とするデータ復元装置。
【請求項５】
アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段を具備し、アーカイブ対象データを前記ｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ方法において、
切り出し手段が、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を順次に切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになすステップと、
関係付け手段が、前記切り出し手段で順次に切り出された前記複数のデータ断片の各々に対して乱数発生手段がそれぞれ生成する乱数に基づいて、当該複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちの（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に１対（ｎ−ｋ＋１）の対応関係で一意に関係付けるステップとを有し、
前記切り出し手段で順次に切り出されたデータ断片の各々を、前記関係付け手段で１対（ｎ−ｋ＋１）の対応関係で関係付けられた（ｎ−ｋ＋１）個のアーカイブ先記憶手段の各々において、１つの宛先ファイルに追記記録して、記録順序に従って読み出し可能な態様で、重複してアーカイブさせ、
前記乱数発生手段はシードを入力として疑似乱数発生アルゴリズムに基づいて任意の個数の乱数を発生するものであり、
アーカイブ対象データの復元時には、前記データ断片ごとに前記乱数発生手段が生成した乱数と同一の乱数に従って重複記録先の（ｎ−ｋ＋１）個の記憶媒体を決定し当該記憶媒体のいずれかの前記１つの宛先ファイルから記録順序に従ってデータ断片を読み出して順次に連結してアーカイブ対象データを復元できるようにしたことを特徴とするデータアーカイブ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散アーカイブ技術に関するものである。
【背景技術】
【０００２】
分散アーカイブについては、データの可用性・保全の立場から、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  Ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）という技術が、特にディスクの故障からデータを保護する目的で使われてきた。例えば、ＲＡＩＤ１では、データを記録する際に独立な二つのディスクに全く同一の内容を記録し（ミラーリング）、一方のディスクが故障してももう一つのディスクからデータを取り出せるというものである。一方、ＲＡＩＤ３では、データをｎ個のディスクに分散して記録するが、ディスクのうちひとつをパリティを記録する用途に専有し、ｎ個のディスクのうち１個のディスクが故障したとしても、残りのｎ−１個のディスクから元のデータを復元することを可能とする。
【０００３】
しかしながら、クラウドコンピューティングなど、インターネット上のアーカイブサーバにデータを分散記録する場合には、インターネットの故障、サーバの故障、サービス不能攻撃（Ｄｅｎｉａｌ  Ｏｆ  Ｓｅｒｖｉｃｅ  Ａｔｔａｃｋ）等の理由により、２つ以上のサーバに対して同時にアクセスできなくなる事態も十分想定可能であり、１つのサーバに対するアクセス不能にしか対処できないＲＡＩＤの方式では、データの可用性・保全に問題がある。
【０００４】
また、ＲＡＩＤの方式はアーカイブされるデータの機密性を保証する仕組みを含まないため、他の暗号技術と併用する必要があり、装置構成、実行効率上のオーバーヘッドとなる。
【０００５】
一方、特許第３６０７７００号公報（特許文献１）では、シャミアによる秘密分散法（Ａｄｉ  Ｓｈａｍｉｒ、Ｈｏｗ  Ｔｏ  Ｓｈａｒｅ  Ａ  Ｓｅｃｒｅｔ、Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｏｆ  ＡＣＭ、２２（１１）、６１２−６１３頁、１９７９。非特許文献１）をもちいて、ｎ個のうちｋ個のサーバにアクセスできればデータの復元が可能となるようにすることで、インターネットへの適用に柔軟性を持たせ、かつ、仮にｋ−１個のサーバからデータが漏洩したとしても元のデータが復元されないことを理論的に保証する安全性を備えた発明が述べられている。
【０００６】
しかしながら、シャミアの秘密分散法では、計算量の多い冪乗剰余の計算がデータを分割したデータ断片毎に必要となり、また、計算機の能力の制限からデータ断片の長さが高々数千ビットとならざるを得ないことから、数メガバイト、数ギガバイトに及ぶ大きなデータのアーカイブの目的には計算効率の観点から実用的ではない。
【０００７】
一方、秘密のパターンを決めて、そのパターンに従って、繰り返し、データ断片を冗長性を許して分散的にアーカイブする方法も可能ではあるが、安全性を証明することは至難であろう。実際、同一のパターンが繰り返し現出するため、パターン解析によりデータの少なくとも一部を復元することができることが容易に想定できる。安全性が証明できない以上、他の暗号技術と併用する必要があり、前述のように、装置構成、実行効率上のオーバーヘッドとなる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第３６０７７００号公報
【非特許文献】
【０００９】
【非特許文献１】Ａｄｉ  Ｓｈａｍｉｒ、Ｈｏｗ  Ｔｏ  Ｓｈａｒｅ  Ａ  Ｓｅｃｒｅｔ、Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｏｆ  ＡＣＭ、２２（１１）、６１２−６１３頁、１９７９
【発明の概要】
【発明が解決しようとする課題】
【００１０】
背景技術で述べた従来技術の問題点に鑑み、本発明では、任意に選択されたｋとｎ（０＜ｋ≦ｎ）に対して、データはｎ箇所のサーバ或いは記憶媒体に分散して記録され、以下の可用性と機密性に関わる以下の二項目の要件を満たすとともに、高速なデータアーカイブ・復元処理が可能であり、かつ、機密性に対して理論的な裏付けが与えられる方法を示す。
【００１１】
ｎ箇所のサーバ或いは記憶媒体のうち、ｋ箇所からアーカイブされたデータを取得することができれば、元のデータを完全に復元することができる。この要件をｎ：ｋ閾可用性と呼ぶ。
【００１２】
たとえ、攻撃者が、ｎ箇所のサーバ或いは記憶媒体のうちｋ−１箇所からデータを不正に取得し得たとしても、取得したデータから元のデータを復元することはできない。この要件をｎ：ｋ閾機密性と呼ぶ。
【００１３】
情報セキュリティ、就中、暗号技術においては、方式に対する有効な攻撃方法が発見されていないという事実をもって方式が安全であると主張することは許されず、一定の数理モデルに基づいて攻撃が不可能である（実際には攻撃の成功確率が極めて小さい）ことを証明し得て始めて、安全性を主張することが許される。その観点で、本発明が解決するべき最重要の課題は、上記二つの要件を満足する方式において、効率的な処理と安全性の証明を両立させる点にある。
【００１４】
なお、本発明は、上述の課題により限定的に理解されるべきでなく、その内容は特許請求の範囲に規定され、以下に実施例を用いて詳細に説明される。
【課題を解決するための手段】
【００１５】
本発明の第１の側面によれば、初期状態ではデータ先頭を指し、処理の進行につれてデータ末尾に向かって一方向に動くポインタ手段を保持し、各ポインタ位置から所定の長さのデータ断片を取り出し、当該データ断片を記憶すべき（ｎ−ｋ＋１）個の記憶媒体をｎ個の記憶媒体のうちから独立かつランダムに選び、当該（ｎ−ｋ＋１）個の記憶媒体に当該データ断片を重複して記録し、ポインタ位置をデータ断片の長さだけ進め、ポインタ位置がデータ末尾に達するまで前記処理を繰り返す。
【００１６】
この構成では、各データ断片は（ｎ−ｋ＋１）個の記憶媒体に重複して記録されるので、任意にｋ個の記憶媒体を選んだ時、少なくとも一つの記憶媒体は当該データ断片を記録している。これにより、ｎ：ｋ閾可用性が保証される。
【００１７】
一方、（ｋ−１）個の記憶媒体を任意に選んだ時、当該データ断片が当該記憶媒体に包含されている確率は、
１−１／ｎＣ（ｋ−１）
と与えられ、従って、データ全体に対して平均で１／ｎＣ（ｋ−１）のデータは欠損することとなり、ｎ：ｋ閾機密性が保証される。
【００１８】
更に、本発明の第１の側面によるデータの安全性は、以下のように詳細に解析され、より強い意味での機密性が保証されることが分かる。実際、記憶媒体から不正に取得したアーカイブデータがカバーするデータ断片の割合が重要なのではなく、アーカイブデータ中のデータ断片が元のデータのどの位置に現れるかを推定できなければ、元のデータを復元することはできない。攻撃者によるこの推定の成功確率を評価するために、以下の考察を行う。
【００１９】
Ｎをデータを分割した最終的なデータ断片の総数とし、ｍを特定の記憶媒体に含まれるデータ断片の個数とする。各データ断片のアーカイブ先は独立かつランダムに決定されるので、ｍの値の期待値は下式で与えられる。
ｍ≒Ｎ・（ｎ−ｋ＋１）／ｎ
ａを元のデータ中でのデータ断片の先頭からの順番、ｊを前記記憶媒体に保持されるアーカイブデータ中でのデータ断片の先頭からの順番とし、
Ｓｕｃｃ（ａ，ｊ；Ｎ，ｍ）
でアーカイブデータ中でｊ番目のデータ断片が、元のデータ中でａ番目のデータ断片のコピーである確率を表す。この確率は、以下の式で評価される。
Ｓｕｃｃ（ａ，ｊ；Ｎ，ｍ）
＝（ａ−１）Ｃ（ｊ−１）・（Ｎ−ａ）Ｃ（ｍ−ｊ）／ＮＣｍ
与えられたａに対して、ｊ＝［ａｍ／（Ｎ＋１）］の時、Ｓｕｃｃ（ａ，ｊ；Ｎ，ｍ）は最大値をとる。但し、［ｘ］はｘの小数点以下を切り捨てた整数とする。従って、
Ｓｕｃｃ（ａ，［ａｍ／（Ｎ＋１）］；Ｎ，ｍ）
が、アーカイブデータ中で先頭からｊ番目のデータ断片の元のデータでの位置がａであると推測した時の成功確率の最大値となる。
【００２０】
一方、Ｓｕｃｃ（ａ，［ａｍ／（Ｎ＋１）］；Ｎ，ｍ）をスターリングの公式を用いて近似すると、
Ｓｕｃｃ（ａ，［ａｍ／（Ｎ＋１）］；Ｎ，ｍ）≒
（１／π１／２）・（ｍ／Ｎ）・［（Ｎ−１）／（ａ−１）（Ｎ−ａ）］１／４
を得る。図１は、この近似式をグラフに図示したものである。ａが１或いはＮに近い時、つまり、データ断片が元のデータ中において先頭或いは末尾に近い時、攻撃者がｊ＝［ａｍ／（Ｎ＋１）］と推測した時の成功確率は１に近いが、データ断片が先頭或いは末尾から離れると、成功確率は急速に低下することが分かる。則ち、データの先頭及び末尾に近いごく少数のデータ断片に関しては、攻撃者が高い確率でアーカイブデータ中での位置を推定することが可能であるが、その他の大多数のデータ断片では低い確率でしか推定を行えないことを意味している。図２はＮ＝１００、ｍ＝７５の場合にシミュレーションを行った結果のグラフであり、図３はＮ＝１０００、ｍ＝７５０の場合にシミュレーションを行った結果のグラフである。どちらのグラフも、理論的に導いた近似式が適切であることを示している。加えて重要な点は、Ｎ＝１０００と極めて小さな数に分割した場合でも、推定の成功確率は５％程度に抑えられている事実である。例えば、１メガバイトのファイルを長さ1バイトのデータ断片に分割してアーカイブする場合、Ｎ＝１００００００となり、推定の成功確率は極めて小さいものとなる。
【００２１】
更に、現実では相当数のデータ断片の位置を推定できなければ、部分的にでもデータを復元したとはいえない。従って、複数のデータ断片に対してその位置を推定しなければならず、全てのデータ断片に対してその位置を正しく推定する成功確率は、データ断片の個数が増えるに従って急速に低下する。
【００２２】
本発明の第２の側面によれば、本発明の第１の側面に関連して、各ポインタ位置において、取り出すデータ断片の長さを独立かつランダムに決定することにより、攻撃者の推定をより困難にする。
【００２３】
本発明の第３の側面によれば、本発明の第１の側面に関連して、各ポインタ位置において、データ断片を（ｎ−ｋ＋１）個の記憶媒体に記録しポインタ位置を進めるか、または、データ断片の代わりにランダムに生成した無意味なダミーデータを任意個数の記憶媒体に記録しポインタ位置を変更せずに維持するかを、独立かつランダムに決定することにより、攻撃者の推定をより困難にする。
【００２４】
本発明の第４の側面によれば、本発明の第２の側面に関連して、各ポインタ位置において、データ断片を（ｎ−ｋ＋１）個の記憶媒体に記録しポインタ位置を進めるか、または、データ断片の代わりにランダムに生成した無意味なダミーデータを任意個数の記憶媒体に記録しポインタ位置を変更せずに維持するかを、独立かつランダムに決定することにより、攻撃者の推定をより困難にする。
【００２５】
本発明の第５の側面によれば、本発明の第１の側面において、本発明の第１の側面に関連して、各ファクターをランダムに決定するために、乱数を生成する第一の乱数生成手段を保持し、各ポインタ位置において、第一の乱数生成手段により独立な乱数を生成し、当該乱数から所定の方法で、アーカイブ先記憶媒体を決定する方法を述べている。
【００２６】
本発明の第６の側面によれば、本発明の第４の側面に関連して、各ファクターをランダムに決定するために、乱数を生成する第一の乱数生成手段を保持し、各ポインタ位置において、第一の乱数生成手段により独立な乱数を生成し、当該乱数に基づいて、アーカイブ先記憶媒体を決定し、かつ、当該乱数に基づいて、データ断片の長さ、または、ダミーデータ挿入の有無、または、データ断片の長さおよびダミーデータ挿入の有無の双方を決定する方法を述べている。
【００２７】
本発明の第７の側面によれば、本発明の第６の側面に関連して、第一の乱数生成手段により生成した一連の乱数を記録する鍵記録手段を保持し、当該鍵記録手段に記録された一連の乱数に基づいて、データ断片を取得するべき記憶媒体を決定し、かつ、当該一連の乱数に基づいて、データ断片の長さ、または、ダミーデータの有無、または、データ断片の長さおよびダミーデータ挿入の有無の双方を決定し、元のデータを復元する方法を述べている。
【００２８】
本発明の第８の側面によれば、本発明の第５の側面または第６の側面に関連して、乱数を生成する第二の乱数生成手段を保持し、第一の乱数生成手段がシードを入力として任意の個数の乱数を生成する疑似乱数生成アルゴリズムを実現したものであり、アーカイブ開始時において第二の乱数生成手段により生成した乱数をシードとして第一の乱数生成手段に入力し、以降、第一の乱数生成手段が生成した乱数に基づいて分散アーカイブを行う方法を述べている。
【００２９】
本発明の第９の側面によれば、本発明の第８の側面に関連して、第二の乱数生成手段により生成したシードを記録する鍵記録手段を保持し、当該鍵記録手段に記録されたシードを第一の乱数生成手段に入力し、第一の乱数生成手段が生成する一連の乱数から、データ断片を取得するべき記憶媒体を判断し、元のデータを復元する構成を述べている。
【００３０】
本発明の第１０の側面によれば、本発明の第１〜第９の側面に関連して、データ断片を記録する記憶媒体の一部或いはすべてが、ネットワークを介してアクセスできるサーバであることを特徴とする、インターネットでのアーカイブサービスを想定した構成を述べている。
【００３１】
本発明の第１１の側面によれば、本発明の第７または第９の側面に関連して、鍵記録手段をデータの所有者たるユーザが携行可能なデバイス中に設けることで、ユーザは任意のホスト計算機を用いてデータのアーカイブ及び復号処理を行うことが可能となり、ユーザの利便性を高める構成を述べている。
【００３２】
本発明の第１２の側面によれば、本発明の第１１の側面に関連して、前記ユーザが携行可能なデバイスがＩＣカード、携帯電話、またはＰＤＡ（パーソナルデジタルアシスタント）であることを特徴とする、構成を述べている。
【００３３】
本発明の第１３の側面によれば、本発明の第１１の側面に関連して、前記ユーザが携行可能なデバイスがマイクロコンピュータを保持し、当該マイクロコンピュータによってデバイス中のデータへのアクセス制御を行うと共に、データのアーカイブ及び復元処理の一部或いは全部を実行することを特徴とする、構成を述べている。
【００３４】
本発明の第１４の側面によれば、本発明の第１３の側面に関連して、請求項１３に記載の発明では、前記ユーザが携行可能なデバイスが、第一の乱数生成手段及び第二の乱数生成手段のいずれか、或いは、両方を保持することを特徴とする、構成を述べている。
【００３５】
本発明の第１５の側面によれば、本発明の第１４の側面に関連して、前記ユーザが携行可能なデバイスが保持するマイクロコンピュータ、及び、乱数生成手段が、耐タンパー特性を有するＩＣチップ中に実装されることを特徴とする、所謂、スマートチップによる構成を述べている。
【００３６】
本発明の第１６の側面によれば、本発明の第１〜第１５の側面に関連して、上記の性質を利用して、元のデータの先頭と末尾に小さなサイズのダミーデータを追加することで、元のデータを攻撃者による推定が困難な領域に含まれるようにし、もってデータの気密性を高める方法を述べている。
【００３７】
本発明の第１７の側面によれば、アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ装置において、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段と、前記切り出し手段で切り出された前記複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちのｎ−ｋ＋１個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に独立してランダムに関係付ける関係付け手段とを有し、前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたｎ−ｋ＋１個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ装置が実現される。
【００３８】
本発明の第１８の側面によれば、アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるためのデータアーカイブ用コンピュータプログラムにおいて、コンピュータを、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段、および、前記切り出し手段で切り出された前記複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちの（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に独立してランダムに関係付ける関係付け手段として機能させ、前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられた（ｎ−ｋ＋１）個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ用コンピュータプログラムが実現される。
【００３９】
本発明の第１９の側面によれば、本発明の第１７の側面に従うアーカイブ装置によりｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせているデータを復元する復元装置において、前記関連付け手段が前記データのデータ断片の各々を（ｎ−ｋ＋１）個のアーカイブ先記憶手段に独立してランダムに関連付けるのに用いた関連付け情報をそれぞれ取得する関連付け情報取得手段と、前記データ断片の各々について、当該データ断片に前記関連付け情報により関連付けられた（ｎ−ｋ＋１）個のアーカイブ先記憶手段のいずれかから当該データ断片を取り出すデータ断片取得手段と、取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段とを有することを特徴とするデータ復元装置が実現される。
【００４０】
本発明に第２０の側面によれば、本発明の第１７の側面に従うアーカイブ装置によりｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせているデータを復元するために用いられるデータ復元用コンピュータプログラムにおいて、コンピュータを、前記関連付け手段が前記データのデータ断片の各々を（ｎ−ｋ＋１）個のアーカイブ先記憶手段に独立してランダムに関連付けるのに用いた関連付け情報をそれぞれ取得する関連付け情報取得手段、前記データ断片の各々について、当該データ断片に前記関連付け情報により関連付けられた（ｎ−ｋ＋１）個のアーカイブ先記憶手段のいずれかから当該データ断片を取り出すデータ断片取得手段、および、取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段として機能させるためのデータ復元用コンピュータプログラムが実現される。
【００４１】
本発明の第２１の側面によれば、アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段を具備し、アーカイブ対象データを前記ｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ方法において、切り出し手段が、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになすステップと、関係付け手段が、前記切り出し手段で切り出された前記複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちの（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に独立してランダムに関係付けるステップとを有し、前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたｎ−ｋ＋１個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ方法が実現される。
【発明の効果】
【００４２】
本発明によれば、高速な処理と安全性を両立させる分散アーカイブおよび／またはデータ復元の方式が実現される。
【図面の簡単な説明】
【００４３】
【図１】本発明の原理的な説明図である。
【図２】本発明の原理のシミュレーション結果の説明図である。
【図３】本発明の原理の他のシミュレーション結果の説明図である。
【図４】本発明の第１の実施例の分割鍵を説明する図である。
【図５】上述第１の実施例の分割鍵の個数を説明する図である。
【図６】上述第１の実施例の全体構成を説明する図である。
【図７】上述第１の実施例の機能ブロックを説明する図である。
【図８】上述第１の実施例の関連付け部の構成例を説明する図である。
【図９】上述第１の実施例の関連付け部のより好ましい構成例を説明する図である。
【図１０】上述実施例のデータアーカイブ時の動作例を説明する図である。
【図１１】上述実施例のデータアーカイブ時の動作例を説明する図である。
【図１２】上述実施例のデータ復元時の動作例を説明する図である。
【図１３】上述実施例のデータ復元時の動作例を説明する図である。
【図１４】本発明の第２の実施例を説明する図である。
【図１５】本発明の第２の実施例を説明する図である。
【図１６】本発明の第３の実施例を説明する図である。
【図１７】本発明の第３の実施例を説明する図である。
【発明を実施するための形態】
【００４４】
以下、図面等を参照しながら、本発明の実施例について更に詳しく説明する。
【００４５】
［第１の実施例］
本発明の第１の実施例は、本発明の原理的な構成を実装したものである。ここでは、第１の実施例の構成および動作を説明するのに先立って、原理的な説明を行う。
【００４６】
第１の実施例のアーカイブシステム１００（図６）においては、ｎ：ｋ閾可用性とｎ：ｋ閾機密性を実現するために、アーカイブ対象のデータから順次にデータ断片を切り出し、切り出した一つのデータ断片を、ｎ個の記憶媒体のうちの（ｎ−ｋ＋１）個の記憶媒体に重複して記録する。ｎ個の記憶媒体からどの（ｎ−ｋ＋１）個の記憶媒体を選択するかを特定する情報として、ｎ：ｋ分割鍵を導入する。ｎ：ｋ分割鍵には数字で表される識別子が与えられており、（ｎ−ｋ＋１）個の記憶媒体を特定する。ｎ：ｋ分割鍵を独立してランダムに出力することにより、ｎ個の記憶媒体から独立してランダムに特定した（ｎ−ｋ＋１）個の記憶媒体を選択してデータ断片を重複して記録する。
【００４７】
図４は、ｎ＝４、ｋ＝２の場合の例である。ｎ個の記憶媒体から（ｎ−ｋ＋１）個の記憶媒体を選ぶ場合の数はｎＣ（ｎ−ｋ＋１）であり、この場合は４Ｃ（４−２＋１）＝４個の分割鍵が存在することになるので、１から４までの識別子を与えられた分割鍵ｄ＿ｋｅｙ１、ｄ＿ｋｅｙ２、ｄ＿ｋｅｙ３、ｄ＿ｋｅｙ４を考える。識別子１を有するｄ＿ｋｅｙ１は、４個ある記憶媒体中の１番目（ｄｓｔ＿ｆｉｌｅ１）、２番目（ｄｓｔ＿ｆｉｌｅ２）及び３番目（ｄｓｔ＿ｆｉｌｅ３）の記憶媒体を特定し、この分割鍵が選択されると、対象となるデータ断片はｄｓｔ＿ｆｉｌｅ１、ｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３の記憶媒体に記録されることとなる。ｎ：ｋ分割鍵の識別子は乱数発生器を用いて独立してランダムに出力される。
【００４８】
図５は、ｎ及びｋの値が変化した時のｎ：ｋ分割鍵の個数の変化を示したものである。分割鍵の個数分の識別子を用意し、乱数発生器を用いてこの識別子を独立してランダムに出力する。
【００４９】
図６は、第１の実施例のアーカイブシステム１００を全体として示しており、この図において、アーカイブシステム１００は、ホスト装置１０、複数の記憶媒体２０１〜２０ｎ等を通信ネットワーク３０を開始して接続して構成される。ホスト装置１０は、パーソナルコンピュータ、携帯電話機、パーソナルデジタルアシスタント、情報家電製品等、情報処理機能を有する機器である。ホスト装置１０はソース／復元ファイル記憶部１０ａを具備している。また、ホスト装置１０は、インターフェースを介して後述するスマートカード、携帯電話機、パーソナルデジタルアシスタント等の情報デバイスと通信することができる。記憶媒体２０１〜２０ｎは、通信ネットワーク３０を介して種々の通信プロトコルで伝送されてきたデータを受信して記憶管理するものであり、例えば、サーバコンピュータの内部または外部記憶装置である。
【００５０】
ホスト装置１０は、例えばコンピュータプログラム１０ｂをインストールすることにより、データのアーカイブおよび復元を制御するアーカイブコントローラ４０を実現する。アーカイブコントローラ４０の一部はスマートカード等で実現されても良い。コンピュータプログラム１０ｂはデータのアーカイブを行う機能、およびデータの復元を行う機能のいずれか一方のみを実現させても良い。
【００５１】
ホスト装置１０のアーカイブコントローラ４０は、アーカイブ時には、ソース／復元ファイル記憶部１０ａに記憶されているアーカイブ対象のソースファイル（単にデータともいう）からデータ断片を順次に取り出して、取り出したデータ断片を、独立してランダムに出力されたｎ：ｋ分割鍵に応じて、ｎ個の記憶媒体２０１〜２０ｎから独立してランダムに特定した（ｎ−ｋ＋１）個の記憶媒体に重複して記録する。また、このアーカイブコントローラ４０は、復元時には、アーカイブ時に出力されたｎ：ｋ分割鍵に応じて、ｎ個の記憶媒体２０１〜２０ｎから独立してランダムに特定した（ｎ−ｋ＋１）個の記憶媒体のいずれかアクセス可能なものからデータ断片を取り出し、取り出したデータ断片を追加書き込みして最終的にソースファイルを復元する。
【００５２】
アーカイブコントローラ４０のアーカイブ時および復元時の詳細な動作については以下に説明される具体的な構成に基づいて明らかになる。
【００５３】
図７は、ホスト装置１０が実現するアーカイブコントローラ４０の構成を示し、この図において、アーカイブコントローラ４０は、ポインタ４１、重複分散化部４２、データ復元部４６を含んで構成される。重複分散化部４２は、データ断片抽出部４３、関連付け部４４、データ断片記憶制御部４５を含んで構成される。
【００５４】
ポインタ４１はアーカイブ対象データ（ファイル）の先頭から末尾までポインタ位置をずらしてデータ断片を特定するものである。データ断片抽出部４３は、ポインタ４１のポインタ位置に基づいて順次にデータ断片を抽出するものである。隣接するデータ断片は直接に隣接し、典型的には、重複しないけれども、一部を重複させてデータ断片を抽出しても良い。関連付け部４４は、抽出した１つのデータ断片を、ｎ個の記憶媒体２０１〜２０ｎから独立してランダムに特定した（ｎ−ｋ＋１）個の記憶媒体に関連付けるものであり、典型的には、さきのｎ：ｋ分割鍵を出力する。データ断片記憶制御部４５は、抽出した１つのデータ断片を、ｎ個の記憶媒体２０１〜２０ｎから独立してランダムに特定した（ｎ−ｋ＋１）個の記憶媒体に重複して記憶させるものである。
【００５５】
重複分散化部４２は、ポインタ４１からのポインタ位置に基づいて、アーカイブ対象データからデータ断片を順次に抽出して、この順次に抽出したデータ断片を、ｎ個の記憶媒体２０１〜２０ｎ中の独立してランダムに特定した（ｎ−ｋ＋１）個の記憶媒体に重複して記憶していく。データ中のすべてのデータ断片を記憶媒体２０１〜２０ｎに重複した態様で分散記憶させ終わると、典型的にはポインタ位置がデータの末尾に到達したときにアーカイブ動作が終了する。
【００５６】
なお、データ断片の記憶媒体２０１〜２０ｎへの書き込みは通信ネットワーク等を介して直接行われるけれども、記憶媒体２０１〜２０ｎに対応させてホスト装置１０またはその記憶手段にそれぞれの対応する記憶位置（ファイル）を設けてデータ断片を追加書き込みしていき、最後のデータ断片の追加書き込みが終了した後に、それぞれの記憶位置にあるファイルを記憶媒体２０１〜２０ｎに伝送するようにしても良い。
【００５７】
データ復元部４６は、ポインタ４１からのポインタ位置に基づいて関連付け部４４からｎ：ｋ分割鍵を取得して、ｎ個の記憶媒体２０１〜２０ｎ中で、当該ポインタ位置のデータ断片を記憶する（ｎ−ｋ＋１）個の記憶媒体を特定し、これらのいずれの１つまたは複数の記憶媒体からデータセグメントを抽出してソース／復元ファイル記憶部１０ａの復元途中のファイルに連結書き込みする。データ復元部４６は、ｎ個の記憶媒体２０１〜２０ｎの復元データ断片位置も管理している。
【００５８】
図８は、関連付け部４４の構成例を示しており、この図において、関連付け部４４は、乱数発生器４４１、および鍵記憶部４４２を含んで構成される。乱数発生器４４１が、さきに説明したｎ：ｋ分割鍵を出力し、これに基づいて重複分散化部４２のデータ断片記憶制御部４５がデータ断片をｎ個の記憶媒体２０１〜２０ｎ中の独立してランダムに特定した（ｎ−ｋ＋１）個の記憶媒体に重複して記憶していく。また、鍵記憶部４４２は、乱数発生器４４１から出力されたｎ：ｋ分割鍵を時系列を維持して記憶管理し、データ復元時にデータ復元部４６に順次に供給する。データ復元部４６は鍵記憶部４４２からのｎ：ｋ分割鍵に基づいてデータ断片の取得先を決定してデータ復元を行う。
【００５９】
図８の関連付け部４４は、典型的には、ユーザが携行可能なスマートカード（ＩＣカード）、携帯電話機、パーソナルデジタルアシスタント（ＰＤＡ）等の携行可能なデバイスにより実装されるがこれに限定されない。携行可能なデバイスはマイクロコンピュータおよび乱数発生手段を実現し、これらが、好ましくは、耐タンパー性を有するＩＣチップ中に実装される。
【００６０】
図９は、関連付け部４４の好ましい構成例を示しており、この図において、関連付け部４４は、シード用乱数発生器４４３、シードレジスタ４４４、鍵用乱数発生器４４５、管理テーブル記憶部４４６等を含んで構成される。シード用乱数発生器４４３は、疑似乱数発生アルゴリズムにより乱数を発生する鍵用乱数発生器４４５にシードとして乱数を供給する。シードはシードレジスタ４４４に保持され、また管理テーブル記憶部４４６にファイルＩＤとともに記憶管理される。鍵用乱数発生器４４５はシードに基づいた一連の乱数列を出力し、これに基づいてデータのアーカイブが行われる。また、アーカイブに用いられたシードはアーカイブ対象データのファイルＩＤと関連付けて管理テーブル記憶部４４６に記憶管理され、データ復元時に復元対象データのファイルＩＤに基づいてシードが管理テーブル記憶部４４６から取り出され、それを用いて鍵用乱数発生器４４５がアーカイブ時と同一の乱数列を出力してデータ復元に用いられる。
【００６１】
図９の関連付け部４４も、典型的には、ユーザが携行可能なスマートカード（ＩＣカード）等の携行可能なデバイスにより実装されるがこれに限定されない。
【００６２】
つぎに図９の関連付け部４４に関連して第１の実施例のアーカイブシステム１００の動作例を説明する。なお、ここでは関連付け部４４はスマートカードにより実装されているものとする。
【００６３】
図１０はスマートカードの処理例の手順を示す。
【００６４】
［ステップＳ０１］：分割するデータファイルを特定する識別子ｃｒｒ＿ｆｉｄをホスト装置１０側から受け取る。
［ステップＳ０２］：シード用乱数発生器４４３（乱数発生プログラム）を呼び出し、鍵用乱数発生器４４５（乱数発生プログラム）のためのシードｃｒｒ＿ｓｅｅｄを生成する。
［ステップＳ０３］：シードｃｒｒ＿ｓｅｅｄを、データファイルの識別子ｃｒｒ＿ｆｉｄと紐づけて、スマートカード内の管理テーブル記憶部４４６に書き込む。
［ステップＳ０４］：シードｃｒｒ＿ｓｅｅｄを入力として鍵用乱数発生器４４５を起動する。
［ステップＳ０５］：鍵用乱数発生器４４５をスタンバイ状態にしてホスト装置１０からのシグナルを待ち受ける。
［ステップＳ０６］：ホスト装置１０側からシグナルを受け取る。シグナルが処理終了を指示している場合は、鍵用乱数発生器４４５を終了して、処理を終了する。シグナルが鍵識別子要求である場合には、鍵用乱数発生器４４５を呼び出し、乱数を生成させる。乱数は、ｎ：ｋ分割鍵の識別子として用いられるため、１からｎＣ（ｎ−ｋ＋１）までの自然数をランダムにとるように生成される。
［ステップＳ０７］：鍵用乱数発生器４４５が生成した乱数を、ｎ：ｋ分割鍵の識別子としてホスト装置１０に出力する。
［ステップＳ０８］：ステップＳ０５に戻り、ホスト装置１０からのシグナルを待ち受ける。
【００６５】
図１１は、ホスト装置１０側のアーカイブシステムの動作例の手順を説明する。なお、図１１に示すように、図９の関連付け部４４に対応して、ホスト装置１０のデータ断片記憶制御部４５は例えば宛先ファイル決定部４５１および追加書き込み部４５２を含んで構成される。宛先ファイル決定部４５１はランダムに生成された分割鍵に基づいて例えば図４に示すテーブルを宛先テーブル記憶部４５１ａを参照して取得しランダムに選択された（ｎ−ｋ＋１）個（この例では４個）の記憶媒体を特定する。追加書き込み部４５２はこれら（ｎ−ｋ＋１）個の記憶媒体にデータ断片を追記する。以下詳細に説明する。
【００６６】
［ステップＳ１１］：アーカイブを行うデータファイルの識別子ｃｒｒ＿ｆｉｄをスマートカードに送付する。
［ステップＳ１２］：鍵識別子要求のシグナルをスマートカードに送付する。
［ステップＳ１３］：ｎ：ｋ分割鍵の識別子をスマートカードから受け取り、テーブル参照等の手段を用いて、識別子からデータ断片を記録する先の記憶媒体を特定する。図中では、識別子ｉｐを受け取って、ｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３を記録先の記憶媒体として特定している。
［ステップＳ１４］：アーカイブ元のデータファイル（ｓｒｃ＿ｆｉｌｅ）のポインタが指している位置から、所定の長さのデータ断片（ｆｇｍｎｔｐ）を取り出し、ポインタを次に取り出すデータ断片の先頭に進める。
［ステップＳ１５］：取り出したデータ断片のコピーを、特定した記憶媒体（図１１ではｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３）の末尾に追記する。
［ステップＳ１６］：ポインターがデータファイルの末尾を指示している場合にはスマートカードに処理終了のシグナルを送り、まだアーカイブするべきデータが残っている場合にはステップＳ１２に戻り、鍵識別子要求のシグナルをスマートカードに送付する。
【００６７】
図１２及び図１３は、データの復元処理例を説明するためのものである。
図１２は、スマートカードにおける復元処理例の手順を示す。
【００６８】
［ステップＳ２１］：ホスト装置１０からデータファイルの識別子ｃｒｒ＿ｆｉｄを受け取る。
［ステップＳ２２］：管理テーブル記憶部４４６中のテーブルを参照し、識別子ｃｒｒ＿ｆｉｄと紐づけられたシードｃｒｒ＿ｓｅｅｄを取得する。
［ステップＳ２３］：シードｃｒｒ＿ｓｅｅｄを入力として鍵用乱数発生器４４５を起動する。
［ステップＳ２４］：鍵用乱数発生器４４５をスタンバイ状態にしてホスト装置１０からのシグナルを待ち受ける。
［ステップＳ２５］：ホスト装置１０側からシグナルを受け取る。シグナルが処理終了を指示している場合は、鍵用乱数発生器４４５を終了して、処理を終了する。シグナルが鍵識別子要求である場合には、鍵用乱数発生器４４５を呼び出し、乱数を生成させる。乱数は、ｎ：ｋ分割鍵の識別子として用いられるため、１からｎＣ（ｎ−ｋ＋１）までの自然数をランダムにとるように生成される。
［ステップＳ２６］：鍵用乱数発生器４４５が生成した乱数を、ｎ：ｋ分割鍵の識別子としてホスト装置１０に出力する。
［ステップＳ２７］：ステップＳ２２に戻り、ホスト装置１０からのシグナルを待ち受ける。
【００６９】
図１３は、ホスト装置１０側のアーカイブシステムの動作例の手順を示す。
【００７０】
［ステップＳ３１］：復元対象のデータファイルの識別子ｃｒｒ＿ｆｉｄをスマートカードに送付する。
［ステップＳ３２］：鍵識別子要求のシグナルをスマートカードに送付する。
［ステップＳ３３］：ｎ：ｋ分割鍵の識別子をスマートカードから受け取り、テーブル参照等の手段を用いて、識別子からデータ断片を取得する先の記憶媒体を特定する。図中では、識別子ｉｐを受け取って、ｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３を記録先の記憶媒体として特定している。
［ステップＳ３４］：特定された全ての記憶媒体（図９ではｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３）から先頭のデータ断片を取り去る。データ断片を取り去った後の各記憶手段の先頭位置はそれぞれチェックポイントとして管理できる。
［ステップＳ３５］：復元するデータファイル（ｓｒｃ＿ｆｉｌｅ）の末尾に、ステップＳ３４で取り出したデータ断片を追記する。
［ステップＳ３６］：（すべての記憶媒体にデータが残っていない場合にはスマートカードに処理終了のシグナルを送り、まだ復元するべきデータが残っている場合にはステップＳ３２に戻り、鍵識別子要求のシグナルをスマートカードに送付する。
以上で第１の実施例の説明を終了する。
【００７１】
［第２の実施例］
つぎに本発明の第２の実施例のアーカイブシステムについて説明する。第２の実施例では、データ断片の長さを都度ランダムに定めることにより、安全性を向上させる方法を示す。
【００７２】
第１の実施例との相違は、鍵用乱数発生器４４５からの出力が、分割鍵の識別子に加えて、データ断片の長さを決定する点にある。具体的には、鍵用乱数発生器４４５の出力は、分割鍵を指定する自然数ｉｐとデータ断片の長さを指定する自然数ｂｐとのペアとなる。
【００７３】
図１４と図１５は、第２の実施例におけるスマートカードとホスト装置１０のアーカイブシステムにおける処理例を説明する。
【００７４】
図１４は、スマートカードの処理例の手順を示す。
【００７５】
［ステップＳ４１］：分割するデータファイルを特定する識別子ｃｒｒ＿ｆｉｄをホスト装置１０側からスマートカードに受け取る。
［ステップＳ４２］：シード用乱数発生器４４３を呼び出し、鍵用乱数発生器４４５のためのシードｃｒｒ＿ｓｅｅｄを生成する。
［ステップＳ４３］：シードｃｒｒ＿ｓｅｅｄを、データファイルの識別子ｃｒｒ＿ｆｉｄと紐づけて、スマートカード内の管理テーブル記憶部４４６のテーブルに書き込む。
［ステップＳ４４］：シードｃｒｒ＿ｓｅｅｄを入力として鍵用乱数発生器４４５を起動する。
［ステップＳ４５］：鍵用乱数発生器４４５をスタンバイ状態にしてホスト装置１０からのシグナルを待ち受ける。
［ステップＳ４６］：ホスト装置１０側からシグナルを受け取る。シグナルが処理終了を指示している場合は、鍵用乱数発生器４４５を終了して、処理を終了する。シグナルが鍵識別子要求である場合には、鍵用乱数発生器４４５を呼び出し、乱数を生成させる。乱数は、ｎ：ｋ分割鍵の識別子ｉｐとデータ断片の長さ（ビット長）ｂｐを表すため、ランダムに生成された１からｎＣ（ｎ−ｋ＋１）までの自然数と長さを表す自然数のペアである。２つの疑似乱数発生手段を用いてｉｐ、ｂｐを個別に生成しても良い。
［ステップＳ４７］：鍵用乱数発生器４４５が生成した乱数を、ｎ：ｋ分割鍵の識別子とデータ断片の長さとしてホスト装置１０に出力する。
［ステップＳ４８］：ステップＳ４５に戻り、ホスト装置１０からのシグナルを待ち受ける。
【００７６】
図１５は、ホスト装置１０側のアーカイブシステム動作例の手順を説明する。
【００７７】
［ステップＳ５１］：アーカイブを行うデータファイルの識別子ｃｒｒ＿ｆｉｄをスマートカードに送付する。
［ステップＳ５２］：鍵識別子要求のシグナルをスマートカードに送付する。
［ステップＳ５３］：ｎ：ｋ分割鍵の識別子とデータ断片の長さをスマートカードから受け取り、テーブル参照等の手段を用いて、識別子からデータ断片を記録する先の記憶媒体を特定する。図中では、識別子ｉｐとデータ断片の長さｂｐとを受け取って、ｉｐからｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３を記録先の記憶媒体として特定している。
［ステップＳ５４］：アーカイブ元のデータファイル（ｓｒｃ＿ｆｉｌｅ）のポインターが指している位置から、指定されたｂｐと等しい長さのデータ断片（ｆｇｍｎｔｐ）を取り出し、ポインター位置を次に取り出すデータ断片の先頭に進める。
［ステップＳ５５］：取り出したデータ断片のコピーを、特定した記憶媒体ｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３の末尾に追記する。
［ステップＳ５６］：ポインターがデータファイルの末尾を指示している場合にはスマートカードに処理終了のシグナルを送り、まだアーカイブするべきデータが残っている場合にはステップＳ５２に戻り、鍵識別子要求のシグナルをスマートカードに送付する。
【００７８】
元のデータファイルの復元の手順は、上記アーカイブ手順の逆手順であり、第１の実施例の説明からも容易に想定できるため、記述を省略する。
以上で第２の実施例の説明を終了する。
【００７９】
［第３の実施例］
つぎに本発明の第３の実施例について説明する。第３の実施例では、ランダムなタイミングでダミーデータをアーカイブすることにより、安全性をより高める方法を示す。
【００８０】
第３の実施例との第１の実施例との相違は、鍵用乱数発生器４４５からの出力が、分割鍵の識別子に加えて、ダミーデータを挿入するか否かを決定する点にある。具体的には、鍵用乱数発生器４４５の出力は、分割鍵の識別子を指定する自然数ｉｐとダミーデータの挿入を指定する論理値ｒｐとのペアとなる。論理値の値は真または偽であり、その確率分布は一様とは限らない（真・偽が出力される確率は必ずしも１／２ではない）。
【００８１】
図１６は、スマートカードの処理例の手順を示す。
【００８２】
［ステップＳ６１］：分割するデータファイルを特定する識別子ｃｒｒ＿ｆｉｄをホスト装置１０側からスマートカードに受け取る。
［ステップＳ６２］：シード用乱数発生器４４３を呼び出し、鍵用乱数発生器４４５のためのシードｃｒｒ＿ｓｅｅｄを生成する。
［ステップＳ６３］：シードｃｒｒ＿ｓｅｅｄを、データファイルの識別子ｃｒｒ＿ｆｉｄと紐づけて、スマートカード内の管理テーブル記憶部４４６のテーブルに書き込む。
［ステップＳ６４］：シードｃｒｒ＿ｓｅｅｄを入力として鍵用乱数発生器４４５を起動する。
［ステップＳ６５］：鍵用乱数発生器４４５をスタンバイ状態にしてホスト装置１０からのシグナルを待ち受ける。
［ステップＳ６６］：ホスト装置１０側からシグナルを受け取る。シグナルが処理終了を指示している場合は、鍵用乱数発生器４４５を終了して、処理を終了する。シグナルが鍵識別子要求である場合には、鍵用乱数発生器４４５を呼び出し、乱数を生成させる。乱数は、ｎ：ｋ分割鍵の識別子ｉｐとダミーデータの挿入を指定する論理値ｒｐとのペアである。
［ステップＳ６７］：鍵用乱数発生器４４５が生成した乱数を、ｎ：ｋ分割鍵の識別子とデータ断片の長さとしてホスト装置１０に出力する。
［ステップＳ６８］：ステップＳ６５に戻り、ホスト装置１０からのシグナルを待ち受ける。
【００８３】
図１７では、ホスト装置１０側のアーカイブプログラムの処理例の手順を示す。以下、手順に番号をつけて説明する。
【００８４】
［ステップＳ７１］：アーカイブを行うデータファイルの識別子ｃｒｒ＿ｆｉｄをスマートカードに送付する。
［ステップＳ７２］：鍵識別子要求のシグナルをスマートカードに送付する。
［ステップＳ７３］：ｎ：ｋ分割鍵の識別子とダミーデータの挿入を指定する論理値をスマートカードから受け取り、テーブル参照等の手段を用いて、識別子からデータ断片を記録する先の記憶媒体を特定する。図中では、識別子ｉｐと論理値ｒｐとを受け取って、ｉｐからｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３を記録先の記憶媒体として特定している。
［ステップＳ７４］：ｒｐの値が真の場合には、ダミーデータをランダムに生成する。
［ステップＳ７５］：ｒｐの値が偽の場合には、アーカイブ元のデータファイル（ｓｒｃ＿ｆｉｌｅ）のポインタが指している位置から、所定の長さのデータ断片（ｆｇｍｎｔｐ）を取り出し、ポインタを次に取り出すデータ断片の先頭に進める。
［ステップＳ７６］：ｒｐの値に応じて、生成したダミーデータ、或いは、取り出したデータ断片のコピーを、特定した記憶媒体（図１７ではｄｓｔ＿ｆｉｌｅ２及びｄｓｔ＿ｆｉｌｅ３）の末尾に追記する。
［ステップＳ７７］：ポインタがデータファイルの末尾を指示している場合にはスマートカードに処理終了のシグナルを送り、まだアーカイブするべきデータが残っている場合にはステップＳ７２に戻り、鍵識別子要求のシグナルをスマートカードに送付する。
【００８５】
データの復元時のスマートカード及びホスト側のアーカイブシステムの処理は、第１の実施例の説明から容易に推定できるので、ここでは説明を省略する。
以上で本発明の実施例の説明を終了する。
【００８６】
なお、本発明は上述の実施例に限定されず種々変更が可能である。また、各実施例の特徴を組みあわせてもよい。例えば、実施例２のデータ断片の長さを可変長にしつつダミーデータとデータ断片の切り替えとを行うようにしても良い。また、データ断片の切り出しは所定のルールで定められておればよく、データの先頭から末尾まで順番に取り出す態様に限定されない。最終的なデータ断片の集合がデータをすべてカバーするものであればどのようなものでもよい。データ断片同士が一部で重複しても良い。アーカイブ対象のデータの先頭および末端にダミーデータを付加しても良い。アーカイブ対象データを複数の可搬性の記憶媒体にローカルで重複記憶させ、そののち、異なるリモートのサイトに物流手段で搬出しても良い。
【００８７】
また、本発明は、データアーカイブのみを行う装置またはシステム、あるいは、データ復元のみを行う装置またはシステムに適用しても良い。
以下、ここで説明した技術的特徴を列挙しておく。
［技術的特徴１］
データを複数のｎ個（ｎは２以上の整数）の記憶媒体に分散して記憶する分散アーカイブシステムにおいて、
前記ｎ個の記憶媒体と、
初期状態ではデータ先頭を指し、処理の進行につれてデータ末尾に向かって一方向に動くポインタ手段と、
前記ポインタ手段が指定するポインタ位置から所定の長さのデータ断片を取り出し、当該データ断片を記憶すべき（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）の記憶媒体を前記ｎ個の記憶媒体のうちから独立かつランダムに選び、当該（ｎ−ｋ＋１）個の記憶媒体に当該データ断片を重複して記録する重複分散化手段とを有し、
前記重複分散化手段が当該データ断片を当該（ｎ−ｋ＋１）個の記憶媒体に重複して記憶させるたびに、前記ポインタ位置を前記データ断片の長さだけ進め、前記重複分散化手段が前記データに含まれるすべてのデータ断片について処理を終了するまで前記重複分散化手段の記憶処理を繰り返すことを特徴とする分散アーカイブシステム。
［技術的特徴２］
前記ポインタ位置の各々において、取り出すデータ断片の長さを独立かつランダムに決定することを特徴とする、技術的特徴１に記載の分散アーカイブシステム。
［技術的特徴３］
前記ポインタ位置の各々において、前記データ断片を（ｎ−ｋ＋１）個の記憶媒体に記録して当該ポインタ位置を進めるか、または、前記データ断片の代わりにランダムに生成した無意味なダミーデータを任意個数の記憶媒体に記録し当該ポインタ位置を変更せずに維持するかの選択を、独立かつランダムに決定することを特徴とする、技術的特徴１に記載の分散アーカイブシステム。
［技術的特徴４］
前記ポインタ位置の各々において、前記データ断片を（ｎ−ｋ＋１）個の記憶媒体に記録して当該ポインタ位置を進めるか、または、前記データ断片の代わりにランダムに生成した無意味なダミーデータを任意個数の記憶媒体に記録し当該ポインタ位置を変更せずに維持するかの選択を、独立かつランダムに決定することを特徴とする、技術的特徴２に記載の分散アーカイブシステム。
［技術的特徴５］
乱数を生成する第一の乱数発生手段を有し、前記ポインタ位置の各々において、前記第一の乱数発生手段により独立な乱数を生成し、当該乱数に基づいて、アーカイブ先記憶媒体を決定することを特徴とする技術的特徴１に記載の分散アーカイブシステム。
［技術的特徴６］
乱数を生成する第一の乱数発生手段を有し、前記ポインタ位置の各々において、前記第一の乱数発生手段により独立な乱数を生成し、当該乱数に基づいて、アーカイブ先記憶媒体を決定し、かつ、当該乱数に基づいて、データ断片の長さ、または、ダミーデータ挿入の有無、または、データ断片の長さおよびダミーデータ挿入の有無の双方を決定することを特徴とする技術的特徴４に記載の分散アーカイブシステム。
［技術的特徴７］
前記第一の乱数発生手段により生成した一連の乱数を記録する鍵記録手段を有し、当該鍵記録手段に記録された一連の乱数に基づいて、データ断片を取得するべき記憶媒体を決定し、かつ、当該一連の乱数に基づいて、データ断片の長さ、または、ダミーデータの有無、または、データ断片の長さおよびダミーデータ挿入の有無の双方を決定し、元のデータを復元することを特徴とする、技術的特徴６に記載の分散アーカイブシステム。
［技術的特徴８］
乱数を生成する第二の乱数発生手段を保持し、前記第一の乱数発生手段がシードを入力として任意の個数の乱数を生成する疑似乱数発生アルゴリズムを実現したものであり、アーカイブ開始時において前記第二の乱数発生手段により生成した乱数をシードとして前記第一の乱数発生手段に入力し、以降、前記第一の乱数発生手段が生成した乱数に基づいてアーカイブ先記憶媒体を決定することを特徴とする、技術的特徴５または技術的特徴６に記載の分散アーカイブシステム。
［技術的特徴９］
前記第二の乱数発生手段により生成したシードを記録する鍵記録手段を保持し、当該鍵記録手段に記録されたシードを前記第一の乱数発生手段に入力し、前記第一の乱数発生手段が生成する一連の乱数から、データ断片を取得するべき記憶媒体を判断し、元のデータを復元することを特徴とする、技術的特徴８に記載の分散アーカイブシステム。
［技術的特徴１０］
前記ｎ個の記憶媒体の一部或いはすべてが、通信ネットワークを介してアクセスできるサーバであることを特徴とする、技術的特徴１乃至技術的特徴９に記載の分散アーカイブシステム。
［技術的特徴１１］
鍵記録手段をデータの所有者たるユーザが携行可能なデバイス中に設けることで、ユーザは任意のホスト計算機を用いてデータのアーカイブ及び復号処理を行うことが可能であることを特徴とする、技術的特徴７または技術的特徴９に記載の分散アーカイブシステム。
［技術的特徴１２］
前記ユーザが携行可能なデバイスがＩＣカード、携帯電話、またはパーソナルデジタルアシスタントであることを特徴とする、技術的特徴１１に記載の分散アーカイブシステム。
［技術的特徴１３］
前記ユーザが携行可能なデバイスがマイクロコンピュータを保持し、当該マイクロコンピュータによってデバイス中のデータへのアクセス制御を行うと共に、データのアーカイブ及び復元処理の一部或いは全部を実行することを特徴とする、技術的特徴１１に記載の分散アーカイブシステム。
［技術的特徴１４］
前記ユーザが携行可能なデバイスが、第一の乱数発生手段及び第二の乱数発生手段のいずれか、或いは、両方を保持することを特徴とする、技術的特徴１３に記載の分散アーカイブシステム。
［技術的特徴１５］
前記ユーザが携行可能なデバイスが保持するマイクロコンピュータ、及び、乱数発生手段が、耐タンパー特性を有するＩＣチップ中に実装されることを特徴とする、技術的特徴１４に記載の分散アーカイブシステム。
［技術的特徴１６］
アーカイブ対象のデータの先頭及び末尾に適切な長さのダミーデータを付与することを特徴とする、技術的特徴１乃至技術的特徴１５に記載の分散アーカイブシステム。
［技術的特徴１７］
アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ装置において、
前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段と、
前記切り出し手段で切り出された前記複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちの（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に独立してランダムに関係付ける関係付け手段とを有し、
前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたｎ−ｋ＋１個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ装置。
［技術的特徴１８］
アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるためのデータアーカイブ用コンピュータプログラムにおいて、
コンピュータを、
前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段、および、
前記切り出し手段で切り出された前記複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちの（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に独立してランダムに関係付ける関係付け手段
として機能させ、
前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたｎ−ｋ＋１個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ用コンピュータプログラム。
［技術的特徴１９］
技術的特徴１７記載のアーカイブ装置によりｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせているデータを復元する復元装置において、
前記関連付け手段が前記データのデータ断片の各々を（ｎ−ｋ＋１）個のアーカイブ先記憶手段に独立してランダムに関連付けるのに用いた関連付け情報をそれぞれ取得する関連付け情報取得手段と、
前記データ断片の各々について、当該データ断片に前記関連付け情報により関連付けられたｎ−ｋ＋１個のアーカイブ先記憶手段のいずれかから当該データ断片を取り出すデータ断片取得手段と、
取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段とを有することを特徴とするデータ復元装置。
［技術的特徴２０］
技術的特徴１７記載のアーカイブ装置によりｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせているデータを復元するために用いられるデータ復元用コンピュータプログラムにおいて、
コンピュータを、
前記関連付け手段が前記データのデータ断片の各々を（ｎ−ｋ＋１）個のアーカイブ先記憶手段に独立してランダムに関連付けるのに用いた関連付け情報をそれぞれ取得する関連付け情報取得手段、
前記データ断片の各々について、当該データ断片に前記関連付け情報により関連付けられた（ｎ−ｋ＋１）個のアーカイブ先記憶手段のいずれかから当該データ断片を取り出すデータ断片取得手段、および、
取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段
として機能させるためのデータ復元用コンピュータプログラム。
［技術的特徴２１］
アーカイブ対象データをｎ個（ｎは２以上の整数）のアーカイブ先記憶手段を具備し、アーカイブ対象データを前記ｎ個（ｎは２以上の整数）のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ方法において、
切り出し手段が、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになすステップと、
関係付け手段が、前記切り出し手段で切り出された前記複数のデータ断片の各々を前記ｎ個のアーカイブ先記憶手段のうちの（ｎ−ｋ＋１）個（ｋはｎ以下の正の整数）のアーカイブ先記憶手段に独立してランダムに関係付けるステップとを有し、
前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたｎ−ｋ＋１個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ方法。
【符号の説明】
【００８８】
１０    ホスト装置
１０ａ    ソース／復元ファイル記憶部
１０ｂ    コンピュータプログラム
２０１〜２０ｎ    記憶媒体
３０    通信ネットワーク
４０    アーカイブコントローラ
４１    ポインタ
４２    重複分散化部
４３    データ断片抽出部
４４    関連付け部
４５    データ断片記憶制御部
４６    データ復元部
１００    アーカイブシステム
４４１    乱数発生器
４４２    鍵記憶部
４４３    シード用乱数発生器
４４４    シードレジスタ
４４５    鍵用乱数発生器
４４６    管理テーブル記憶部
【図１】
0005620792.tif 000002
【図２】
0005620792.tif 000003
【図３】
0005620792.tif 000004
【図４】
0005620792.tif 000005
【図５】
0005620792.tif 000006
【図６】
0005620792.tif 000007
【図７】
0005620792.tif 000008
【図８】
0005620792.tif 000009
【図９】
0005620792.tif 000010
【図１０】
0005620792.tif 000011
【図１２】
0005620792.tif 000012
【図１１】
0005620792.tif 000013
【図１３】
0005620792.tif 000014
【図１４】
0005620792.tif 000015
【図１５】
0005620792.tif 000016
【図１６】
0005620792.tif 000017
【図１７】
0005620792.tif 000018