【課題を解決するための手段】
【0010】
本発明の1つの側面によれば、データの記憶方法であって、a)前記データを複数のデータサブセットに分割するステップと、b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、c)前記複数のデータサブセット及び前記パリティデータの各々に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成するステップと、d)前記更なるデータサブセットと前記更なるパリティデータとを別々の記憶場所に記憶するステップと、を含む方法が提供される。このように、データが再帰的に分割され、別々のデータサブセット及びパリティデータとしていくつかの別々の記憶場所に分散される。元のデータセットは複数のサブセットに分割される。パリティデータセットは、それらサブセットから生成される。パリティデータセットは、いずれかのデータセットが紛失又は破損した場合に、そのようなデータセットを再生成するためのメカニズムを提供する。元のデータが必要とされる場合には、サブセットとパリティデータとが、その元のデータを再生成するのに寄与してもよい。パリティデータサブセットのみが失われた場合には、何の処理も必要ではなく、元のデータは維持される。どのサブセットも失われなかった場合も、何の処理も必要ではない。処理は続行され、サブセット及びパリティデータセットのいずれかが同様の方法で再び分割され、更なるパリティデータが生成される。これにより、データサブセットのカスケード(段階的に分割されたデータサブセット群)が形成され、それらデータサブセットを一緒に戻すことで元のデータが形成される。もし、データのサブセットのいずれかが失われた場合、失われたサブセットは、前述のカスケードにおける特定のレベルにある残りのサブセットとパリティデータとから再生成してもよい。このように、カスケードは動的に成長することができ、事前に定めておく必要はない。データの各サブセット又はパリティデータは、別々に、例えば、ディスクドライブ上の隣り合う複数のセクションに、又は異なる組織又は地域にある別々のサーバに、記憶してもよい。また、実際の各々の記憶場所は、サイズ又は種類が異なっていてもよく、これにより記憶システムを更に柔軟にすることができる。
【0011】
元のデータセットが再生成できるよう、各データサブセット及びパリティデータの場所を記録してもよい。このように、第三者は、個々のデータサブセットに対してアクセスしても、残りのデータサブセット群にアクセスしなければ、元のデータにアクセスすることはできないので、場所の情報(位置情報)を用いて元のデータに対するアクセスを制限することができる。
【0012】
複数のデータサブセット及びパリティデータのうちの各々は、他のデータサブセット及びパリティデータとは別の記憶場所に記憶してもよい。しかし、2以上のデータサブセット又はパリティデータを1つの記憶場所に記憶してもよく、特に使用可能な記憶場所の数が限られている場合にはそうである。
【0013】
好適には、前記更なるデータサブセットと前記更なるパリティデータとは物理的に別々の装置に記憶される。
【0014】
好適には、前記ステップcは前記複数のデータサブセット及び前記パリティデータの各々について繰り返される。これにより、データはより効率的に分散及びカスケード化され、データの損失や傍受に対する復元力が向上する。
【0015】
また、必須ではないが、前記方法は、追加の記憶場所を設けるステップと、前記追加の記憶場所が設けられるのに伴って、前記ステップa及びbを、前記別々の記憶場所に記憶された前記更なるデータサブセット又は前記更なるパリティデータのいずれかについて繰り返すステップと、を更に含んでいてもよい。これにより、データのカスケードの動的な成長が可能になり、全体システムをリビルド(再構築)することなく、記憶容量を増大させることが可能になる。
【0016】
好適には、データはバイトごとに分割される。しかし、ビットごと、あるいは異なるビット長ごとなどのような、異なる分割方法を用いてもよい。また、個々のデータサブセットのサイズが異なっていてもよい。
【0017】
必須ではないが、前記データは2つのデータサブセットに分割してもよい。
【0018】
必須ではないが、前記データは、当該データの偶数又は奇数のステータスに従って分割してもよい。
【0019】
好適には、前記パリティデータは、前記複数のデータサブセットに対して論理関数を実行することにより生成してもよい。論理関数は、処理のための必要条件を少なくするように選べばよい。パリティデータの生成は論理関数に限られるわけではない。例えば、データの複製を用いてもよい。
【0020】
好適には、前記論理関数は排他的論理和(XOR)であってもよい。この関数(XOR)は、必要とする処理オーバーヘッドが特に低く、このため効率を向上させることができる。更に、このような関数は、簡単なハードウエアを用いて実行することができる。
【0021】
必須ではないが、前記方法は前記データを暗号化するステップを更に含んでいてもよい。これにより、セキュリティ及び/又はプライバシーが向上する。
【0022】
必須ではないが、前記別々の記憶場所は、ハードディスクドライブ、光学ディスク、フラッシュRAM、ウェブサーバ、FTPサーバ、及びネットワークファイルサーバからなるグループから選ばれる。他の記憶媒体を用いてもよく、読み書きの場所に限られるわけではない。この方法は、使用される記憶装置の種類に依存するものではない。他の多くの記憶方式の種類及び記憶場所を用いることができる。
【0023】
好適には、前記データはウェブページ又は個々のファイルである。ウェブページ又はウェブサイトは、よりセキュア(安全)に分散又はアクセスされ、盗聴又は他の形態の監視を少なくすることができる。例えば、個々のデータサブセットからは元のデータを生成し又は復元することはできない場合もある。最小限の量のデータサブセットが必要とされるようにしてもよい。すべてのデータサブセットにアクセスできる場合でさえ、例えば暗号化を用いたり、元のデータがどのように分割され生成されたかを示す詳細情報が必要になるようにしたりするなどにより、元のデータを復元する能力を制限してもよい。
【0024】
必須ではないが、前記方法は、c1)1つ又は複数の対応する認証コードを生成するために、前記複数のデータサブセット及び前記パリティデータのうちの1つ以上に関数を適用するステップ、を更に含んでいてもよい。
【0025】
好適には、前記関数はハッシュ関数である。
【0026】
必須ではないが、前記ハッシュ関数は、チェックサム、チェックディジット、フィンガープリント、ランダム化関数、誤り訂正符号、及び暗号学的ハッシュ関数からなるグループから選ばれる。
【0027】
必須ではないが、前記認証コードは前記更なるデータサブセット及び/又はパリティデータと共に記憶される。
【0028】
必須ではないが、前記認証コードはヘッダ情報として記憶される。
【0029】
本発明の第2の側面では、別々の記憶場所に記憶されたデータを検索する方法であって、a)前記別々の記憶場所からデータサブセット及びパリティデータを回収するステップと、b)前記回収されたデータサブセット及びパリティデータから、失われたデータサブセットを再生成することで、再生成されたデータサブセットを形成するステップと、
c)前記データサブセットと前記再生成されたデータサブセットとを組み合わせることにより、複数の統合されたデータセットを形成するステップであって、前記複数の統合されたデータセットは、更なるデータサブセット及び更なるパリティデータを含むことを特徴とするステップと、d)前記更なるデータサブセット及び前記更なるパリティデータから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成するステップと、e)前記更なるデータサブセットと再生成された更なるデータサブセットとを組み合わせることにより元のデータセットを形成するステップと、を含む方法を提供する。
【0030】
好適には、前記データサブセット及びパリティデータは、それぞれ物理的に別々の装置から回収される。このように、各データサブセットは、それぞれ自分自身の個別の記憶場所を、他のデータサブセットの記憶場所から遠隔(リモート)の位置に持っていてもよく、これによりセキュリティとデータの信頼性を向上させることができる。
【0031】
必須ではないが、前記元のデータセットは暗号化されており、前記方法は更に、f)前記元のデータセットを復号するステップ、を含んでいてもよい。
【0032】
好適には、前記方法は、前記別々の記憶場所の位置情報を受信するステップを更に含んでいてもよい。これにより、アクセスが容易になり、また位置情報はアクセスを制限するのに用いてもよい。
【0033】
好適には、前記別々の記憶場所は、ハードディスクドライブ、光学ディスク、フラッシュRAM、ウェブサーバ、FTPサーバ、及びネットワークファイルサーバからなるグループから選ばれた1つ又は複数のものである。
【0034】
好適には、前記別々の記憶場所は、ネットワークを介してアクセス可能であってもよい。このネットワークは、内部ネットワークでも外部ネットワークでもよく、例えばインターネットであってもよい。
【0035】
必須ではないが、前記方法は、前記データサブセット及びパリティデータのうちの1つ又は複数に対応づけられた認証コードを回収するステップと、前記対応づけられた認証コードを用いて、前記データサブセット及びパリティデータのうちの1つ又は複数を認証するステップと、認証に合格しなかったデータサブセットを、前記回収されたデータサブセット及びパリティデータから再生成することにより、再生成されてデータサブセットを形成するステップと、を更に含んでいてもよい。
【0036】
必須ではないが、前記認証コードはハッシュコードであり、前記認証ステップは、前記データサブセット及び/又はパリティデータに対してハッシュ関数を適用することにより比較用ハッシュコードを生成するステップと、この比較用ハッシュコードを、前記データサブセット及び/又はパリティデータに対応づけられた認証コードと比較するステップと、を含んでいてもよい。
【0037】
本発明の第3の側面では、データを記憶するための装置であって、a)前記データを複数のデータサブセットに分割し、b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、c)前記複数のデータサブセット及び前記パリティデータの各々に対して前記a及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成し、d)前記更なるデータサブセットと前記更なるパリティデータとを別々の記憶場所に記憶する、ように構成されたプロセッサを備える、装置が提供される。
【0038】
必須ではないが、前記プロセッサは、更に、1つ又は複数の対応する認証コードを生成するために、前記複数のデータサブセット及び前記パリティデータのいずれか1以上に関数を適用するように構成されており、前記更なるデータサブセットと前記更なるパリティデータは対応する認証コードと共に記憶されるよう構成されていてもよい。
【0039】
本発明の第4の側面では、別々の記憶場所に記憶されたデータを検索するための装置であって、a)前記別々の記憶場所からデータサブセット及びパリティデータを回収し、b)前記復元されたデータサブセット及びパリティデータから、失われたデータサブセットを再生成することで、再生成されたデータサブセットを形成し、c)前記データサブセットと前記再生成されたデータサブセットとを組み合わせることにより、複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは、更なるデータサブセット及び更なるパリティデータを含み、d)前記更なるデータサブセット及び前記更なるパリティデータから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成し、e)前記更なるデータサブセットと再生成された更なるデータサブセットとを組み合わせることにより元のデータセットを形成する、ように構成されたプロセッサを備える、装置が提供される。
【0040】
必須ではないが、前記プロセッサは、更に、前記データサブセット及びパリティデータのうちの1つ又は複数に対応づけられた認証コードを回収し、前記対応づけられた認証コードを用いて、前記データサブセット及びパリティデータのうちの1つ又は複数を認証し、認証に合格しなかったデータサブセットを、前記回収されたデータサブセット及びパリティデータから再生成することにより、再生成されてデータサブセットを形成する、よう構成されている。
【0041】
本発明の第5の側面では、データファイルを記憶するためのデータ記憶媒体であって、データサブセットと、パリティデータと、認証コードとを含み、前記データサブセットは更なるデータサブセットを生成するために組み合わせ可能であり、前記更なるデータサブセットは前記データファイルを生成するために組み合わせ可能であり、前記認証コードにより前記データサブセットを認証することができ、前記パリティデータは、失われたデータサブセット又は認証に合格しなかったデータサブセットを再生成するために、前記データサブセットと組み合わせることができる、記憶媒体が提供される。
【0042】
必須ではないが、前記データ記憶媒体はコンパクトディスク、DVD、ハードディスクドライブ、ソリッドステートドライブ、フラッシュメモリ、及びデジタルテープからなるグループから選択してもよい。
【0043】
必須ではないが、前記データファイルは、マルチメディアファイル、オーディオファイル、ビデオファイル、MPEGファイル、MP3ファイル、音楽ファイル、データベース、及びバイナリファイルからなるグループの中から選択してもよい。
【0044】
本発明の第6の側面では、データを送信する方法であって、a)前記データを分割して、複数のデータサブセットとして送信されるようにするステップと、b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、c)前記複数のデータサブセットとパリティデータとを送信するステップと、を含む方法が提供される。これにより、失われたデータが性生成できるので、データがよりセキュアに、且つより高い信頼性をもって送信されるようになる。更に、データが生成されるのに伴い、誤り率を低減するか、又は低い使用パワーにて似たような使用可能なデータレートを維持可能とするかにより、使用される通信チャンネルがよりよく利用される。
【0045】
必須ではないが、前記送信するステップは、i)前記複数のデータサブセット及び前記パリティデータの1以上に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成するステップと、ii)前記更なるデータサブセットと前記更なるパリティデータとを送信するステップと、を含んでいてもよい。これにより信頼性とセキュリティが向上する。
【0046】
必須ではないが、前記データサブセット及び前記パリティデータのいずれか又は全部が、異なる伝送手段を用いて送信されるようにしてもよい。
【0047】
好適には、前記異なる伝送手段は、有線、無線、インターネットプロトコル、及びモバイル通信からなるグループから選ばれた1又は複数の手段であってよい。
【0048】
好適には、前記データサブセットのいずれか又はすべてが、異なる複数のチャンネルを介して送信されてもよい。
【0049】
好適には、前記チャンネルはモバイル通信チャンネルであってよい。これを携帯電話に実装することで、通信のセキュリティ及び信頼性を向上させてもよい。
【0050】
必須ではないが、前記異なる複数のチャンネルは、異なる複数の無線周波数であってもよい。
【0051】
好適には、前記異なる複数のチャンネルの選択はあらかじめ定められていてもよい。これにより、受信機がそのデータを正常に又はより容易に受信することが可能となる。
【0052】
必須ではないが、前記方法は、前記異なる複数のチャンネルの選択結果を送信するステップを更に含んでいてもよい。
【0053】
好適には、前記選択結果はコードとして送信してもよい。これは、ユーザに選択可能としてもよいし、自動的に実施してもよい。コードは、送信器及び受信機の間で知られたものでもよいし、それら両者の間でセキュアに送信してもよい。
【0054】
必須ではないが、この方法は、前記データを暗号化するステップを更に含んでいてもよい。これによりセキュリティが向上する。この代わりに又はこれに加えて、前記コードを暗号化してもよい。
【0055】
本発明の第7の側面では、データを受信する方法であって、a)データサブセット及びパリティデータを受信するステップと、b)前記受信したデータサブセット及びパリティデータから、失われたデータサブセットを再生成することにより、再生成されたデータセットを形成するステップと、c)前記データサブセットと、再生成されたデータサブセットと、を組み合わせるステップと、を含む方法を提供する。
【0056】
必須ではないが、前記再生成されたデータサブセットは複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは更なるデータサブセットと更なるパリティデータとを含み、前記組み合わせるステップは、d)前記更なるデータサブセットと更なるパリティデータとから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成するステップと、e)前記更なるデータサブセットと、再生成された更なるデータサブセットと、を組み合わせることにおり、元のデータセットを形成するステップと、を含んでもよい。
【0057】
必須ではないが、前記受信したデータは暗号化されており、前記方法は更に、f)前記元のデータセットを復号するステップ、を含んでいてもよい。
【0058】
好適には、前記受信するステップは、前記データサブセット及びパリティデータのうちのいずれか又はすべてを、異なる複数のチャンネルから受信するステップを含んでいてもよい。
【0059】
好適には、前記異なる複数のチャンネルは、異なる複数の無線周波数であってもよい。 好適には、前記異なる複数のチャンネルは、複数の異なる携帯電話無線チャンネルであってもよい。
【0060】
必須ではないが、前記方法は、どのチャンネルがどのデータサブセット及びパリティデータを含んでいるかを示す情報を含むチャンネル情報を受信するステップを更に含んでいてもよい。
【0061】
好適には、前記組み合わせるステップでは、前記データサブセットと再生成されたデータサブセットとを、前記受信したチャンネル情報に基づき組み合わせてもよい。
【0062】
必須ではないが、前記データサブセットとパリティデータのうちのいずれか又はすべてを搬送する前記チャンネル群が受信の間に変化してもよい。このチャンネルホッピングにより、不正な受信者が元のデータをデコードしたり音声コールを盗聴したりすることをより困難にすることができる。
【0063】
好適には、前記データは、オーディオデータ、携帯電話データ、パケットデータ、ビデオデータ、リアルタイムデュプレックスデータ及びインターネットデータからなるグループから選択されたものであってもよい。更に、本発明の方法は他のデータ種類にも適用可能である。
【0064】
本発明の第8の側面では、データを送信するための装置であって、a)前記データを分割して、複数のデータサブセットとして送信されるようにし、b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにし、c)前記複数のデータサブセットとパリティデータとを送信する、ように構成されたプロセッサを備える、装置が提供される。プロセッサは、ハードウエア又はソフトウエアとして格納された処理ロジックを有していてもよい。
【0065】
好適には、前記プロセッサは、i)前記複数のデータサブセット及び前記パリティデータのいずれか1つ又は複数に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成し、ii)前記更なるデータサブセットと前記更なるパリティデータとを送信する、ことにより送信を行うよう構成されていてもよい。
【0066】
本発明の第9の側面では、データを受信するための装置であって、a)データサブセット及びパリティデータを受信し、b)前記受信したデータサブセット及びパリティデータから、失われたデータサブセットを再生成することにより、再生成されたデータセットを形成し、c)前記データサブセットと、再生成されたデータサブセットと、を組み合わせる、ように構成されたプロセッサを備える、装置が提供される。
【0067】
好適には、前記再生成されたデータサブセットは複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは更なるデータサブセットと更なるパリティデータとを含み、前記プロセッサは、d)前記更なるデータサブセットと更なるパリティデータとから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成し、e)前記更なるデータサブセットと、再生成された更なるデータサブセットと、を組み合わせることにより、元のデータセットを形成する、ことにより前記データサブセットを組み合わせるよう構成されていてもよい。言い換えれば、前記データは、更なるサブセットと更なるパリティデータを形成するようにカスケード化されていてもよい。元のデータは、失われたデータサブセットをパリティデータと正常に受信されたデータとから生成しつつ、そのカスケード化処理の逆の処理を実行することにより、再生成してもよい。
【0068】
本発明の第10の側面では、これまでに説明した装置、すなわち送信装置及び/又は受信装置を有するモバイルハンドセットが提供される。
【0069】
必須ではないが、上述のデータ、すなわち元のデータ、送信されるデータ、音声データ、又は安全に記憶されるべきデータは、基準データファイルに対する差分データであり、前記方法は、元のデータを前記基準データファイルと比較することにより前記差分データを求めるステップを更に含んでいてもよい。これにより、根底(元)のデータが制限されたすなわち保護された環境から離れる必要なく、データをセキュアに記憶又は送信することができる。このオプションの特徴は、以上に記載した各方法、各装置に対して実装可能である。
【0070】
差分すなわちデルタ(Δ)データが、複数のデータサブセットが組み合わされた形で(又は特定のサブセットが喪失、破損又はその他の態様で使用不可能になっていたり、認証に合格しなかったりした場合には、再生成されたサブセット群が)、記憶場所から検索されるか又は送信機から受信されると、前記プロセッサ又は前記方法は、差分データを基準データファイルに適用して根底のデータを求めるステップを行ってもよい。
【0071】
この方法は、例えば、コンピュータ装置上で実行されるコンピュータソフトウエアとして実装してもよい。このソフトウエアは、媒体上に格納されているか、あるいは信号として伝送される。例えば、1つ又は複数のコンピュータ装置は、Windows(登録商標)、Apple OS X、UNIX(登録商標)ベースのシステムなどといった適切なオペレーティングシステムを実行するデスクトップパーソナルコンピュータ又はサーバコンピュータでよい。コンピュータ装置の一例は、ハードディスクドライブその他の記憶媒体、キーボードやマウスなどの入力装置、及び表示画面を備えていてもよい。
【0072】
必須ではないが、この方法の各ステップは、単一のマシン、コンピュータ、若しくは、イントラネット又はインターネットなどのネットワークに接続された一群のコンピュータにて実行してもよい。
【0073】
本発明は、様々な方法で実現し得るものであり、以下では、単なる例示のために、添付の図面を参照しつつ、実施の形態を説明する。