JP2012501508A - 分散的な記憶及び通信 - Google Patents

分散的な記憶及び通信 Download PDF

Info

Publication number
JP2012501508A
JP2012501508A JP2011525607A JP2011525607A JP2012501508A JP 2012501508 A JP2012501508 A JP 2012501508A JP 2011525607 A JP2011525607 A JP 2011525607A JP 2011525607 A JP2011525607 A JP 2011525607A JP 2012501508 A JP2012501508 A JP 2012501508A
Authority
JP
Japan
Prior art keywords
data
subset
parity
subsets
data subset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011525607A
Other languages
English (en)
Other versions
JP2012501508A5 (ja
Inventor
イスケンデル シルガベコフ
イェルキン ザダウリ
チョカン ラウミュリン
Original Assignee
エクスタス グローバル リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エクスタス グローバル リミテッド filed Critical エクスタス グローバル リミテッド
Publication of JP2012501508A publication Critical patent/JP2012501508A/ja
Publication of JP2012501508A5 publication Critical patent/JP2012501508A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • H04L1/0063Single parity check
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • H04L1/04Arrangements for detecting or preventing errors in the information received by diversity reception using frequency diversity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Detection And Correction Of Errors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Error Detection And Correction (AREA)

Abstract

a)データを複数のデータサブセット(A,B)に分割し、b)複数のデータサブセット(A,B)からパリティデータ(P)を生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットとパリティデータ(P)とから再生成されるようにすることにより、データを記憶、検索、送信、又は受信する。ステップaとbとが、前記複数のデータサブセット及び前記パリティデータの各々に対して繰り返されることにより、更なるデータサブセットと更なるパリティデータとが生成され、d)前記更なるデータサブセットと前記更なるパリティデータとが別々の記憶場所(380)に記憶されるか、又は送信される。
【選択図】図1

Description

本発明は、データの記憶及び通信のための、特に、別々の格納場所にわたってデータを格納し、データを送信及び受信するための、方法及びシステムに関する。
データは、例えば、多くの、異なる技術を用いて、コンピュータシステム内に格納される。デスクトップ又はラップトップコンピュータなどの個別のコンピュータシステムが盗難又は喪失すれば、そのコンピュータシステム上に記憶されたデータもまた失われ、悲惨な結果をもたらすことになる。データを別のドライブにバックアップすればデータを維持することができるが、それでも依然として機密的な情報が失われ、第三者に利用可能となってしまうかもしれない。全体的なシステムが紛失又は盗難していない場合でさえ、個別のディスクドライブ又は他の記憶装置が故障することにより、データが紛失し、同様の破滅的な結果をもたらすことがあるかも知れない。
RAID(redundant array of inexpensive drives)アレイは、例えば、データを様々な条件下で記憶するように構成されている。RAIDアレイは、ディスクミラーリングを用いると共に、追加のオプションのパリティディスクを用いることで、個々のディスクの故障に対する保護を行っている。しかし、RAIDアレイは、それぞれあらかじめ定められた容量を持つ固定的な数のディスクを用いてあらかじめ構成しなければならない。RAIDアレイの構成は、アレイを動的にリビルド(再構築)しないかぎり変更できず、このことは結果としてかなりのシステム停止時間に繋がるかも知れない。例えば、RAIDアレイのスペースが足りなくなった場合には、更に長い停止時間なしでは、全体の容量を増大させるために追加のディスクを追加することはできないかもしれない。また、RAIDアレイは、2つのディスク故障を容易に取り扱うことができず、別々のRAIDアレイは容易には結合できない。
RAIDアレイを形成する複数のディスクはネットワークの異なる部分に位置していてもよいが、複数のディスクをこのように構成することは困難であり、複数のディスクを異なる場所に配置することは便利ではない。したがって、たとえRAIDアレイが1つ又は2つのディスク故障に対して障害許容力があったとしても、通常はディスク群が互いに近くに配置されているので、火事や洪水などの破滅的な事態が起こればRAIDアレイ内の全データの破壊を招く結果となる。
入れ子レベルRAID(nested level RAID)は、更なる故障ディスクへの障害許容力を改善するかも知れないが、これらのシステムは複雑、効果であり、アレイを再構築することなく拡張することはできない。
同様に、送信されたデータの部分は、特にノイズの多い、又はセキュア(安全)でない伝送路を経由することで、失われたり、破損したり、遮断されたりするかも知れない。
更に、現行のデータ記憶及び/又は送信方法及び装置は、破損やデータ消失を引き起こしがちである。低レベルの破損でさえ、データの質に影響するかも知れない。このことは、データが高品質のオーディオ又はヴィジュアル資料を記録するのに用いられる場合に特にそのようである。破損は受け取った媒体からの再生中の品質に歪みや損失をもたらし得るからである。
欧州特許出願公開第0521630号明細書 米国特許出願公開第2002/124139号明細書
このように、これらの問題を克服するデータのための記憶方法及びシステムが求められる。
本発明の1つの側面によれば、データの記憶方法であって、a)前記データを複数のデータサブセットに分割するステップと、b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、c)前記複数のデータサブセット及び前記パリティデータの各々に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成するステップと、d)前記更なるデータサブセットと前記更なるパリティデータとを別々の記憶場所に記憶するステップと、を含む方法が提供される。このように、データが再帰的に分割され、別々のデータサブセット及びパリティデータとしていくつかの別々の記憶場所に分散される。元のデータセットは複数載せ部セットに分割される。パリティデータセットは、それらサブセットから生成される。パリティデータセットは、いずれかのデータセットが紛失又は破損した場合に、そのようなデータセットを再生成するためのメカニズムを提供する。元のデータが必要とされる場合には、サブセットとパリティデータとが、その元のデータを再生成するのに寄与してもよい。パリティデータサブセットのみが失われた場合には、何の処理も必要ではなく、元のデータは維持される。どのサブセットも失われなかった場合も、何の処理も必要ではない。処理は続行され、サブセット及びパリティデータセットのいずれかが同様の方法で再び分割され、更なるパリティデータが生成される。これにより、データサブセットのカスケード(段階的に分割されたデータサブセット群)が形成され、それらデータサブセットを一緒に戻すことで元のデータが形成される。もし、データのサブセットのいずれかが失われた場合、失われたサブセットは、前述のカスケードにおける特定のレベルにある残りのサブセットとパリティデータとから再生成してもよい。このように、カスケードは動的に成長することができ、事前に定めておく必要はない。データの各サブセット又はパリティデータは、別々に、例えば、ディスクドライブ上の隣り合う複数のセクションに、又は異なる組織又は地域にある別々のサーバに、記憶してもよい。また、実際の各々の記憶場所は、サイズ又は種類が異なっていてもよく、これにより記憶システムを更に柔軟にすることができる。
元のデータセットが再生成できるよう、各データサブセット及びパリティデータの場所を記録してもよい。このように、第三者は、個々のデータサブセットに対してアクセスしても、残りのデータサブセット群にアクセスしなければ、元のデータにアクセスすることはできないので、場所の情報(位置情報)を用いて元のデータに対するアクセスを制限することができる。
複数のデータサブセット及びパリティデータのうちの各々は、他のデータサブセット及びパリティデータとは別の記憶場所に記憶してもよい。しかし、2以上のデータサブセット又はパリティデータを1つの記憶場所に記憶してもよく、特に使用可能な記憶場所の数が限られている場合にはそうである。
好適には、前記更なるデータサブセットと前記更なるパリティデータとは物理的に別々の装置に記憶される。
好適には、前記ステップcは前記複数のデータサブセット及び前記パリティデータの各々について繰り返される。これにより、データはより効率的に分散及びカスケード化され、データの損失や傍受に対する復元力が向上する。
また、必須ではないが、前記方法は、追加の記憶場所を設けるステップと、前記追加の記憶場所が設けられるのに伴って、前記ステップa及びbを、前記別々の記憶場所に記憶された前記更なるデータサブセット又は前記更なるパリティデータのいずれかについて繰り返すステップと、を更に含んでいてもよい。これにより、データのカスケードの動的な成長が可能になり、全体システムをリビルド(再構築)することなく、記憶容量を増大させることが可能になる。
好適には、データはバイトごとに分割される。しかし、ビットごと、あるいは異なるビット長ごとなどのような、異なる分割方法を用いてもよい。また、個々のデータサブセットのサイズが異なっていてもよい。
必須ではないが、前記データは2つのデータサブセットに分割してもよい。
必須ではないが、前記データは、当該データの偶数又は奇数のステータスに従って分割してもよい。
好適には、前記パリティデータは、前記複数のデータサブセットに対して論理関数を実行することにより生成してもよい。論理関数は、処理のための必要条件を少なくするように選べばよい。パリティデータの生成は論理関数に限られるわけではない。例えば、データの複製を用いてもよい。
好適には、前記論理関数は排他的論理和(XOR)であってもよい。この関数(XOR)は、必要とする処理オーバーヘッドが特に低く、このため効率を向上させることができる。更に、このような関数は、簡単なハードウエアを用いて実行することができる。
必須ではないが、前記方法は前記データを暗号化するステップを更に含んでいてもよい。これにより、セキュリティ及び/又はプライバシーが向上する。
必須ではないが、前記別々の記憶場所は、ハードディスクドライブ、光学ディスク、フラッシュRAM、ウェブサーバ、FTPサーバ、及びネットワークファイルサーバからなるグループから選ばれる。他の記憶媒体を用いてもよく、読み書きの場所に限られるわけではない。この方法は、使用される記憶装置の種類に依存するものではない。他の多くの記憶方式の種類及び記憶場所を用いることができる。
好適には、前記データはウェブページ又は個々のファイルである。ウェブページ又はウェブサイトは、よりセキュア(安全)に分散又はアクセスされ、盗聴又は他の形態の監視を少なくすることができる。例えば、個々のデータサブセットからは元のデータを生成し又は復元することはできない場合もある。最小限の量のデータサブセットが必要とされるようにしてもよい。すべてのデータサブセットにアクセスできる場合でさえ、例えば暗号化を用いたり、元のデータがどのように分割され生成されたかを示す詳細情報が必要になるようにしたりするなどにより、元のデータを復元する能力を制限してもよい。
必須ではないが、前記方法は、c1)1つ又は複数の対応する認証コードを生成するために、前記複数のデータサブセット及び前記パリティデータのうちの1つ以上に関数を適用するステップ、を更に含んでいてもよい。
好適には、前記関数はハッシュ関数である。
必須ではないが、前記ハッシュ関数は、チェックサム、チェックディジット、フィンガープリント、ランダム化関数、誤り訂正符号、及び暗号学的ハッシュ関数からなるグループから選ばれる。
必須ではないが、前記認証コードは前記更なるデータサブセット及び/又はパリティデータと共に記憶される。
必須ではないが、前記認証コードはヘッダ情報として記憶される。
本発明の第2の側面では、別々の記憶場所に記憶されたデータを検索する方法であって、a)前記別々の記憶場所からデータサブセット及びパリティデータを回収するステップと、b)前記復元されたデータサブセット及びパリティデータから、失われたデータサブセットを再生成することで、再生成されたデータサブセットを形成するステップと、
c)前記データサブセットと前記再生成されたデータサブセットとを組み合わせることにより、複数の統合されたデータセットを形成するステップであって、前記複数の統合されたデータセットは、更なるデータサブセット及び更なるパリティデータを含むことを特徴とするステップと、d)前記更なるデータサブセット及び前記更なるパリティデータから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成するステップと、e)前記更なるデータサブセットと再生成された更なるデータサブセットとを組み合わせることにより元のデータセットを形成するステップと、を含む方法を提供する。
好適には、前記データサブセット及びパリティデータは、それぞれ物理的に別々の装置から回収される。このように、各データサブセットは、それぞれ自分自身の個別の記憶場所を、他のデータサブセットの記憶場所から遠隔(リモート)の位置に持っていてもよく、これによりセキュリティとデータの信頼性を向上させることができる。
必須ではないが、前記元のデータセットは暗号化されており、前記方法は更に、f)前記元のデータセットを復号するステップ、を含んでいてもよい。
好適には、前記方法は、前記別々の記憶場所の位置情報を受信するステップを更に含んでいてもよい。これにより、アクセスが容易になり、また位置情報はアクセスを制限するのに用いてもよい。
好適には、前記別々の記憶場所は、ハードディスクドライブ、光学ディスク、フラッシュRAM、ウェブサーバ、FTPサーバ、及びネットワークファイルサーバからなるグループから選ばれた1つ又は複数のものである。
好適には、前記別々の記憶場所は、ネットワークを介してアクセス可能であってもよい。このネットワークは、内部ネットワークでも外部ネットワークでもよく、例えばインターネットであってもよい。
必須ではないが、前記方法は、前記データサブセット及びパリティデータのうちの1つ又は複数に対応づけられた認証コードを回収するステップと、前記対応づけられた認証コードを用いて、前記データサブセット及びパリティデータのうちの1つ又は複数を認証するステップと、認証に合格しなかったデータサブセットを、前記回収されたデータサブセット及びパリティデータから再生成することにより、再生成されてデータサブセットを形成するステップと、を更に含んでいてもよい。
必須ではないが、前記認証コードはハッシュコードであり、前記認証ステップは、前記データサブセット及び/又はパリティデータに対してハッシュ関数を適用することにより比較用ハッシュコードを生成するステップと、この比較用ハッシュコードを、前記データサブセット及び/又はパリティデータに対応づけられた認証コードと比較するステップと、を含んでいてもよい。
本発明の第3の側面では、データを記憶するための装置であって、a)前記データを複数のデータサブセットに分割し、b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、c)前記複数のデータサブセット及び前記パリティデータの各々に対して前記a及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成し、d)前記更なるデータサブセットと前記更なるパリティデータとを別々の記憶場所に記憶する、ように構成されたプロセッサを備える、装置が提供される。
必須ではないが、前記プロセッサは、更に、1つ又は複数の対応する認証コードを生成するために、前記複数のデータサブセット及び前記パリティデータのいずれか1以上に関数を適用するように構成されており、前記更なるデータサブセットと前記更なるパリティデータは対応する認証コードと共に記憶されるよう構成されていてもよい。
本発明の第4の側面では、別々の記憶場所に記憶されたデータを検索するための装置であって、a)前記別々の記憶場所からデータサブセット及びパリティデータを回収し、b)前記復元されたデータサブセット及びパリティデータから、失われたデータサブセットを再生成することで、再生成されたデータサブセットを形成し、c)前記データサブセットと前記再生成されたデータサブセットとを組み合わせることにより、複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは、更なるデータサブセット及び更なるパリティデータを含み、d)前記更なるデータサブセット及び前記更なるパリティデータから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成し、e)前記更なるデータサブセットと再生成された更なるデータサブセットとを組み合わせることにより元のデータセットを形成する、ように構成されたプロセッサを備える、装置が提供される。
必須ではないが、前記プロセッサは、更に、前記データサブセット及びパリティデータのうちの1つ又は複数に対応づけられた認証コードを回収し、前記対応づけられた認証コードを用いて、前記データサブセット及びパリティデータのうちの1つ又は複数を認証し、認証に合格しなかったデータサブセットを、前記回収されたデータサブセット及びパリティデータから再生成することにより、再生成されてデータサブセットを形成する、よう構成されている。
本発明の第5の側面では、データファイルを記憶するためのデータ記憶媒体であって、データサブセットと、パリティデータと、認証コードとを含み、前記データサブセットは更なるデータサブセットを生成するために組み合わせ可能であり、前記更なるデータサブセットは前記データファイルを生成するために組み合わせ可能であり、前記認証コードにより前記データサブセットを認証することができ、前記パリティデータは、失われたデータサブセット又は認証に合格しなかったデータサブセットを再生成するために、前記データサブセットと組み合わせることができる、記憶媒体が提供される。
必須ではないが、前記データ記憶媒体はコンパクトディスク、DVD、ハードディスクドライブ、ソリッドステートドライブ、フラッシュメモリ、及びデジタルテープからなるグループから選択してもよい。
必須ではないが、前記データファイルは、マルチメディアファイル、オーディオファイル、ビデオファイル、MPEGファイル、MP3ファイル、音楽ファイル、データベース、及びバイナリファイルからなるグループの中から選択してもよい。
本発明の第6の側面では、データを送信する方法であって、a)前記データを分割して、複数のデータサブセットとして送信されるようにするステップと、b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、c)前記複数のデータサブセットとパリティデータとを送信するステップと、を含む方法が提供される。これにより、失われたデータが性生成できるので、データがよりセキュアに、且つより高い信頼性をもって送信されるようになる。更に、データが生成されるのに伴い、誤り率を低減するか、又は低い使用パワーにて似たような使用可能なデータレートを維持可能とするかにより、使用される通信チャンネルがよりよく利用される。
必須ではないが、前記送信するステップは、i)前記複数のデータサブセット及び前記パリティデータの1以上に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成するステップと、ii)前記更なるデータサブセットと前記更なるパリティデータとを送信するステップと、を含んでいてもよい。これにより信頼性とセキュリティが向上する。
必須ではないが、前記データサブセット及び前記パリティデータのいずれか又は全部が、異なる伝送手段を用いて送信されるようにしてもよい。
好適には、前記異なる伝送手段は、有線、無線、インターネットプロトコル、及びモバイル通信からなるグループから選ばれた1又は複数の手段であってよい。
好適には、前記データサブセットのいずれか又はすべてが、異なる複数のチャンネルを介して送信されてもよい。
好適には、前記チャンネルはモバイル通信チャンネルであってよい。これを携帯電話に実装することで、通信のセキュリティ及び信頼性を向上させてもよい。
必須ではないが、前記異なる複数のチャンネルは、異なる複数の無線周波数であってもよい。
好適には、前記異なる複数のチャンネルの選択はあらかじめ定められていてもよい。これにより、受信機がそのデータを正常に又はより容易に受信することが可能となる。
必須ではないが、前記方法は、前記異なる複数のチャンネルの選択結果を送信するステップを更に含んでいてもよい。
好適には、前記選択結果はコードとして送信してもよい。これは、ユーザに選択可能としてもよいし、自動的に実施してもよい。コードは、送信器及び受信機の間で知られたものでもよいし、それら両者の間でセキュアに送信してもよい。
必須ではないが、この方法は、前記データを暗号化するステップを更に含んでいてもよい。これによりセキュリティが向上する。この代わりに又はこれに加えて、前記コードを暗号化してもよい。
本発明の第7の側面では、データを受信する方法であって、a)データサブセット及びパリティデータを受信するステップと、b)前記受信したデータサブセット及びパリティデータから、失われたデータサブセットを再生成することにより、再生成されたデータセットを形成するステップと、c)前記データサブセットと、再生成されたデータサブセットと、を組み合わせるステップと、を含む方法を提供する。
必須ではないが、前記再生成されたデータサブセットは複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは更なるデータサブセットと更なるパリティデータとを含み、前記組み合わせるステップは、d)前記更なるデータサブセットと更なるパリティデータとから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成するステップと、e)前記更なるデータサブセットと、再生成された更なるデータサブセットと、を組み合わせることにおり、元のデータセットを形成するステップと、を含んでもよい。
必須ではないが、前記受信したデータは暗号化されており、前記方法は更に、f)前記元のデータセットを復号するステップ、を含んでいてもよい。
好適には、前記受信するステップは、前記データサブセット及びパリティデータのうちのいずれか又はすべてを、異なる複数のチャンネルから受信するステップを含んでいてもよい。
好適には、前記異なる複数のチャンネルは、異なる複数の無線周波数であってもよい。 好適には、前記異なる複数のチャンネルは、複数の異なる携帯電話無線チャンネルであってもよい。
必須ではないが、前記方法は、どのチャンネルがどのデータサブセット及びパリティデータを含んでいるかを示す情報を含むチャンネル情報を受信するステップを更に含んでいてもよい。
好適には、前記組み合わせるステップでは、前記データサブセットと再生成されたデータサブセットとを、前記受信したチャンネル情報に基づき組み合わせてもよい。
必須ではないが、前記データサブセットとパリティデータのうちのいずれか又はすべてを搬送する前記チャンネル群が受信の間に変化してもよい。このチャンネルホッピングにより、不正な受信者が元のデータをデコードしたり音声コールを盗聴したりすることをより困難にすることができる。
好適には、前記データは、オーディオデータ、携帯電話データ、パケットデータ、ビデオデータ、リアルタイムデュプレックスデータ及びインターネットデータからなるグループから選択されたものであってもよい。更に、本発明の方法は他のデータ種類にも適用可能である。
本発明の第8の側面では、データを送信するための装置であって、a)前記データを分割して、複数のデータサブセットとして送信されるようにし、b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにし、c)前記複数のデータサブセットとパリティデータとを送信する、ように構成されたプロセッサを備える、装置が提供される。プロセッサは、ハードウエア又はソフトウエアとして格納された処理ロジックを有していてもよい。
好適には、前記プロセッサは、i)前記複数のデータサブセット及び前記パリティデータのいずれか1つ又は複数に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成し、ii)前記更なるデータサブセットと前記更なるパリティデータとを送信する、ことにより送信を行うよう構成されていてもよい。
本発明の代休の側面では、データを受信するための装置であって、a)データサブセット及びパリティデータを受信し、b)前記受信したデータサブセット及びパリティデータから、失われたデータサブセットを再生成することにより、再生成されたデータセットを形成し、c)前記データサブセットと、再生成されたデータサブセットと、を組み合わせる、ように構成されたプロセッサを備える、装置が提供される。
好適には、前記再生成されたデータサブセットは複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは更なるデータサブセットと更なるパリティデータとを含み、前記プロセッサは、d)前記更なるデータサブセットと更なるパリティデータとから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成し、e)前記更なるデータサブセットと、再生成された更なるデータサブセットと、を組み合わせることにより、元のデータセットを形成する、ことにより前記データサブセットを組み合わせるよう構成されていてもよい。言い換えれば、前記データは、更なるサブセットと更なるパリティデータを形成するようにカスケード化されていてもよい。元のデータは、失われたデータサブセットをパリティデータと正常に受信されたデータとから生成しつつ、そのカスケード化処理の逆の処理を実行することにより、再生成してもよい。
本発明の第10の側面では、これまでに説明した装置、すなわち送信装置及び/又は受信装置を有するモバイルハンドセットが提供される。
必須ではないが、上述のデータ、すなわち元のデータ、送信されるデータ、音声データ、又は安全に記憶されるべきデータは、基準データファイルに対する差分データであり、前記方法は、元のデータを前記基準データファイルと比較することにより前記差分データを求めるステップを更に含んでいてもよい。これにより、根底(元)のデータが制限されたすなわち保護された環境から離れる必要なく、データをセキュアに記憶又は送信することができる。このオプションの特徴は、以上に記載した各方法、各装置に対して実装可能である。
差分すなわちデルタ(Δ)データが、複数のデータサブセットが組み合わされた形で(又は特定のサブセットが喪失、破損又はその他の態様で使用不可能になっていたり、認証に合格しなかったりした場合には、再生成されたサブセット群が)、記憶場所から検索されるか又は送信機から受信されると、前記プロセッサ又は前記方法は、差分データを基準データファイルに適用して根底のデータを求めるステップを行ってもよい。
この方法は、例えば、コンピュータ装置上で実行されるコンピュータソフトウエアとして実装してもよい。このソフトウエアは、媒体上に格納されているか、あるいは信号として伝送される。例えば、1つ又は複数のコンピュータ装置は、Windows(登録商標)、Apple OS X、UNIX(登録商標)ベースのシステムなどといった適切なオペレーティングシステムを実行するデスクトップパーソナルコンピュータ又はサーバコンピュータでよい。コンピュータ装置の一例は、ハードディスクドライブその他の記憶媒体、キーボードやマウスなどの入力装置、及び表示画面を備えていてもよい。
必須ではないが、この方法の各ステップは、単一のマシン、コンピュータ、若しくは、イントラネット又はインターネットなどのネットワークに接続された一群のコンピュータにて実行してもよい。
本発明は、様々な方法で実現し得るものであり、以下では、単なる例示のために、添付の図面を参照しつつ、実施の形態を説明する。
本発明の1つの側面に従う、単なる例示のためのデータの記憶のための方法のフローチャートである。 図1に示された方法に類似の別の方法のフローチャートである。 図1の方法を用いて記憶されたデータを模式的に示す図である。 図1aの方法を用いて記憶されたデータを模式的に示す図である。 図1の方法に従って記憶されたデータを模式的に示す図である。 図1aの方法に従って記憶されたデータを模式的に示す図である。 図1の方法に従って記憶された、複数のクラスタに分散されたデータを持木的に示す図である。 図1aの方法に従って記憶された、複数のクラスタに分散されたデータを持木的に示す図である。 本発明の更なる側面に従う、単なる例示のためのデータの記憶のための方法のフローチャートである。 本発明の更なる側面に従ってデータを記憶するのに用いられるネットー枠を模式的に示す図である。 本発明の更なる側面に従う、単なる例示のための通信システムを模式的に示す図である。 本発明の更なる側面に従う、単なる例示のための通信システムを模式的に示す図である。 本発明の更なる側面に従う、単なる例示のための通信システムを模式的に示す図である。 本発明の更なる側面に従う、単なる例示のための通信システムを模式的に示す図である。 これら図面は簡潔さを旨として記載されており、必ずしも縮尺通りに描かれているとは限らない。
格納対象のデータは、例えば、バイナリファイルの形である。このデータは、複数のサブセット(部分)に分割されていてもよい。それら複数のデータのサブセットからパリティデータを生成し、それら複数のデータのサブセットのうちの1つ又は複数のサブセットが破壊されても、その失われたサブセットが残りのサブセット群とパリティデータとから再生できるようにしてもよい。パリティデータすなわちコントロールデータは、誤り検出の目的又は失われたデータの再生を可能にするために、元のデータから生成される。しかし、パリティデータは、元のデータに含まれる情報を超えるいかなる付加的な情報をも含んではいない。そのようなパリティデータの生成を実現し得るいくつかの論理演算がある。例えば、2つのバイナリ数に対して排他的論理和(XOR)を適用すると、結果として第3のバイナリ数が生成され、これがパリティ数である。元の2つのバイナリ数のいずれかが仮に失われたとしても、失われたバイナリ数は、単に残ったバイナリ数とパリティ数との間でXORを実行することにより復元され得る。パリティデータの計算についての更に詳細な説明については、http: //www. pcguide.-com/ref/hdd/perf/raid/concepts/genParity- c. htmlを参照されたい。パリティデータが計算された、すべてのデータサブセットとパリティデータとは別々の又は離れた複数の場所に格納してもよい。
しかし、更なる追加の記憶場所を利用するために、パリティデータ及び複数のデータサブセットの各々を更に複数のサブセットに分割して更なるパリティデータを生成してもよい。このようにして、利用可能なすべての記憶場所が活用されるまで、又は場所数があらかじめ定められた限度に達するまで、カスケード状に次々とデータサブセット群が生成されるようにしてもよい。データは逆のプロセスを用いて復元してもよい。これには、失われたデータサブセットを、残りのデータサブセットとパリティデータから適切な再生成計算又はアルゴリズムを用いて再生成すればよい。読み出しプロセスは、1つのオリジナルデータが復元されるまで続けられる。
1つの別の実施例では、データサブセットの真正性の確認に用いるために、データサブセット及び/又はパリティデータのうちの任意のものに対して認証コード又はハッシュコードを対応づけてもよい。真正なデータサブセットは、当該データサブセットの生成の後で故意に又は偶然に変化又は変更されてしまうことはないであろう。この別の実施例又はそのバリエーションは、この文書中を通して認証の実施例として説明される。
図1は、データを記憶するための一例の方法10を示すフロー図である。ステップ30では、元のデータ20がデータサブセットA及びBへと分割される。元データが2つの等しい部分に分割されて、データサブセットAとBとが同サイズになるようにしてもよい。ゼロパディングを用いてサブセットAとBとが確実に同サイズになるようにしてもよい。例えば、パリティデータPを生成する前に、サブセットA及びBの末尾に付加的な0のバイト(又はビット群)を追加してもよい。データ20がサブセットA及びBへと分割された後、ステップ40にて、それらサブセットAとBに対して排他的論理和(OR)演算を行って、パリティデータセットPを生成してもよい。この代わりに、分割又は分離のステップ30の間にパリティデータPを生成してもよい。
図1aにフロー図10’として示される認証の実施例の方法では、サブセットA及びBの生成の後、ステップ45でハッシュ関数h(n)が適用される。このハッシュ関数は、ハッシュコードh(A)及びh(B)を生成する。パリティデータPについてもハッシュを求め、ハッシュコードh(P)を生成してもよい。ハッシュ関数は、ハッシュ関数の実行又は結果として得られるハッシュコード同士の比較のための計算機パワーが受け入れ可能であるか又はシステムの性ゲインに収まるように選べばよい。ハッシュ関数は、サブセットA,B及び/又はパリティデータP(すなわちA,B及びPのうちの少なくとも1つ)に対して適用してもよい。任意の組み合わせにおいてデータサブセット又はパリティデータのうちの1つ又は複数のハッシュを求めないことにより、コンピュータのオーバーヘッドを削減してもよい。
その結果得られる2つのデータサブセットA及びBとパリティデータセットP(及びオプションのハッシュコード)は、ステップ50にて格納してもよい。サブセットA及びBとパリティデータセットPは例えばメモリ又はハードディスクドライブに記憶してもよい。方法10は、この点でループしてもよい。ステップ60で、使用可能又は必要とされる記憶場所が更にあるかどうかが判定される。あれば、この方法はループしてステップ30に戻り、データサブセットA,B及び/又はパリティデータPのうちのいずれか又は各々が、新たな複数のサブセット及び更なるパリティデータセットへと更に分割される。ループは分割され生成される各データサブセット及び各パリティデータについて、使用可能な記憶場所が無くなるまで続行され、この方法はステップ70で停止する。
認証の実施例では、データサブセットA及びB及び/又はパリティデータPと一緒に、ハッシュコードすなわち認証コードを、ヘッダ情報として又はそれらとは別に、例えば専用のハッシュライブラリ又はハッシュ記憶部に、記憶してもよい。
更なる記憶場所があってこの方法のループが生じる場合に、分割データの最下層レベル、すなわち途中のデータサブセットではなく実際に記憶されるデータに達するまで、延期するようにしてもよい。これにより、効率が向上する。
認証をしない実施例では、方法10のループの最初の回では、3つの別々のデータファイル(A,B及びP)が結果として得られ、2回の完全なループの繰り返しにより9つの別々のデータファイルが、3回の完全な繰り返しにより27個の別々のデータファイルが、それぞれ結果として得られる。別の例では、各データサブセットを同程度まで分割する必要は必ずしもない。使用可能な記憶場所がたくさんある場合、あらかじめ定められた最小サイズのサブセットが生成されるまで、サブセットを分割して更なるサブセットを生成するようにしてもよい。記憶場所群の更なる利用には、別の例として、データ紛失に対する復元力を向上させるために単純に複製することが含まれていてもよい。
図1aに示される任所運も実施例については、3つの別々のデータファイル(A,B及びP)が生成されると共に、3つのハッシュコード(Ah,Bh及びPh)が生成される。
データ20が9つの別々の場所へと分割されたとして、それらデータセットのうちの4つが紛失又は破損(これはオプションのハッシュコード比較により検出可能)しても、常に元のデータセット20が再生成可能とすることができる。4つよりも多くが失われた場合でさえ、結果として元のデータセット20を正確に再生することもできるが、これはどのセットが失われたかに依存するので保証の限りではない。
図1aに示されるハッシュコードをすべての記憶したデータファイル及び/又はパリティデータについて生成して、データの破損又は調整が生じていないことを補償できるようにしてもよい。
図2は、図1に示される方法を1回実行したときに結果として得られるデータを模式的に示す図である。方法のステップと同様のものには同じ参照符号が付されている。元のデータセット20がバイト単位に分割され、データサブセットA及びデータサブセットB(すなわち1バイトのブロックサイズ)が生成される。排他的OR演算によりパリティデータPが生成される。3つの別々の記憶場所が使用可能な場合、方法10はこの段階で停止し、3つの分散された別々のデータサブセットA,B及びPを含んだデータクラスタ150が結果として得られる。
図2aは、ハッシュコードを含んだデータを模式的に示す別の例の図である。
図3は、方法10のステップ30,40及び50を更に繰り返した場合の結果を示す。この場合、9つの別々の記憶場所が使用可能であり、3つのデータセットA,B及びPの各々は例えば更にそれぞれ3つのデータサブセットへと分割される。
図3aに示すように、認証の実施例では、ハッシュコードはデータサブセット及び/又はパリティデータの最下層レベルAA,AB,AP,BA,BB,BP,PA,PB及びPPにのみ必要とされる。なぜならこれらのファイルのみが後の再生成のために格納されることになる、すなわちそれらは読み出されるときに真正性を保証するために認証を必要とするからである。
カスケード状に次々と生成されるデータセットの中の最下層レベルのデータセットについて、様々なハッシュコードが生成され得る。
この追加の繰り返し分割230により、データサブセットAが分割されて更なるデータセットAA及びABと更なるパリティデータAPが形成される。同様に、データサブセットBがBA及びBBへと分割され。これらを一緒に用いてパリティデータBPを形成するようにしてもよい。パリティデータPは、PA,PB及びPPへと分割してもよい。この方法のこの実施例では、3つのデータサブセットのうちの各々は同じサイズを持つものであってもよい。これら9つのデータサブセットの各々を記憶するのに用いられる9つの別々のデータ記憶位置は第2レベルのクラスタ250を形成してもよく、このクラスタ250は図4として更に詳しく示される(認証の実施例については図4aを参照)。
すなわち、第1レベルのクラスタ150は第2レベルのクラスタ250を形成するために拡張されている。このように、元の3つのデータセットA,B及びPを記憶する必要はない(ただし、データ損失に対する復元力を向上させるための別の方法として、それらを記憶するようにしてもよい)。なぜなら、それらは第2レベルのクラスタ250内の9つのデータサブセットからそれぞれ再生することができるからである。方法10のループは、使用可能なすべての記憶場所が使用し尽くされるまで、又は各サブセットのサイズがあらかじめ定められた限界値に達するまで、又は各サブセットのサイズが特定のレベルまで小さくなるまで、必要な回数だけ繰り返してもよい。
図5は、図1に示された方法10に従ってデータを記憶するのに用いられるシステム300を模式的示す図である。図5に示されたシステムは、認証の実施例に従ってシステム400の安全性(セキュリティ)及び信頼性を拡張するために用いられる追加オプションのステップ群を示している。中央サーバ360は、この方法を管理し、ユーザからシステムへの入力のためのリクエストを受け取る。ユーザはログオンし、暗号化鍵320を付与される。更に、(一意な)ハッシュコードの組がステップ45で生成されるようにしてもよく、それらハッシュコードはファイルの一意な識別情報として機能し、真正性を保証するのに用いてもよい。暗号化鍵はハッシュコードを生成するのに用いられる。この実施例では、ファイルがデータ20として記憶されている。データベース370は、ログイン情報及び暗号化鍵を記憶するのに用いられ、また記憶すべきファイルの名前を記憶するのにも用いられる。ユーザはステップ340でデータベースに登録を行ってファイル名を生成し、データファイルはサブセットA及びBへと分割され、それらデータサブセットからパリティデータPが生成される。データサブセットのそれぞれに対して、ステップ350にて識別情報が付与され、それら識別情報はデータベース370で管理される。複数の別々の記憶場所に対してネットワークを介してアクセス可能であり、それら複数の記憶場所は、使用可能な記憶場所群のプールを形成する。サーバ360は、実行されるべき分割の繰り返しの最大レベルを決定してもよく、この最大レベルはあらかじめ定められた設定値またはシステムパラメータにより決定してもよい。またサーバ360は、プール380内の個々の別々の記憶場所が使用可能かどうかを監視する。
このように、個々のユーザは、特定のファイル群又はデータ記憶システム全体を、使用可能なプール380から任意の数の別々の記憶場所にわたってバックアップしてもよい。サーバ360は、それら記憶を、ユーザには見えない処理レイヤ(層)として管理してもよい。言い換えれば、いったんユーザらがシステムにアクセスすると、データの記憶部は、ユーザにとっては、通常の記憶及び検索のように見える。元のデータ20は、記憶場所のプール380から検索することができ、失われたデータがあればそれはパリティデータPを用いて、いかなる要求されたデータレイヤから再生成してもよい。サーバ360は、データのカスケード化(段階的に次々とサブセットに分割すること)のレベル、及び各データサブセットを常に監視している。また、サーバは、ハッシュコードを記憶し、管理しており、それらハッシュコードは、データサブセット群及びパリティデータと一緒に、又は別々に、記憶されてもよい。
更に、データサブセットは暗号化鍵を用いて暗号化してもよく、ハッシュコードを用いてタンパー防止又は歪み防止機能を組み込んでもよい。このように、図5に示されるシステム300は、機密情報を格納するユーザに対して付加的な安全性を提供し、個々の別々の記憶場所のうちのいずれか又はすべてにアクセスできる第三者は、サーバ360によって管理されている元の暗号化鍵が無ければ、元のデータ20を再生することはできない。別の例では、暗号鍵は必要とされないが、元と同じハッシュコードを持つ改変したデータサブセットを生成するのには、不可能なほどに高い計算機パワーが必要とされる。また、更にセキュリティを高めるために、暗号鍵を用いてデータサブセットを暗号化してもよい。記憶プール380とユーザとの間のデータサブセットのやりとりが第三者から傍受されても、いかなるデータもその暗号鍵がなければ第三者には利用可能な状態にはならず、最小数のデータサブセットのコピーを得ることさえできない。
方法10を実行するのに用いられるシステムの更なる例が図6に示される。図6に示されるシステム400は、インターネットやイントラネットなどのネットワークにまたがって情報を安全に分散するために用いられる。インターネット又はウェブページ420のサブセット(部分集合)群は、中央サーバ410を介してユーザマシン440に安全に分散されてもよい。中央サーバ410は、ウェブページ420を取得し、それらウェブページを図1に示される方法10に従って、別々の記憶場所に格納する。データサブセットを暗号化及び/又はハッシュ演算することで、図5を参照して説明したように、認証機能を提供してもよい。中央サーバ410は、ユーザマシン440に対し、1つ又は複数の復号コードと、特定の記憶場所430からデータを識別してその場所を求めるための情報と、元のウェブページ群420を形成するデータをどのように再生成するかの情報と、を供給する。このように、元のデータ20が別々の記憶場所430に分散されているので、ウェブページ群420は、もはや障害や攻撃を受ける単一の点(single point of failure or attack)(例えば単一のウェブサーバがダウンする)にはなりにくい。更に、ユーザコンピュータ440のネットワークトラフィックを傍受するいかなる第三者も、中央サーバ410から供給される復号鍵及び再生成情報がなければ、ウェブページ群420を形成する元データを復号又は再生することはできないであろう。
データサブセット群及び/又はパリティデータを再ハッシュ(rehash)し、その結果得られるハッシュコードを元のものに対応するハッシュコードと比較することにより、改変を検出してもよい。相違が検出された場合。このデータサブセット又はパリティデータは、拒否され、認証されたデータセット群及び/又はパリティデータのみを用いて再生成される。ハッシュコードによる認証に失敗したデータサブセット(又は失われるか又は使用不能になったデータサブセット)のみが、再生又は再生成の必要がある。
このようなセキュアなシステムは、例えば銀行業務のトランザクション、又はセキュアデータの他の携帯、又はシステムユーザが更なるプライバシーやセキュリティを要求するような場にふさわしい。
中央サーバ410は、入手可能なインターネットウェブサイト又は特定の個別のウェブサイト群の全体を記憶又はキャッシュすることができ、特定の加入ユーザのみにこれらを利用可能にするようにしてもよい。中央サーバ410は、サーチエンジンの機能又はその他の中央の情報統合装置の機能を実行してもよい。このようにサーチエンジンに問合せを行うことで、復号鍵とウェブサイト又は他の検索可能な文書の場所を求めて再生成するのに用いられる情報とを含んだ検索結果が提供されるようにしてもよい。
認証に実施例に従ったこのような記憶システムの更なる用途は、質の高い媒体を、データの歪みや紛失を避けつつ記憶、再生することである。例えば、質の高いオーディオ・ビデオ記録は、高レベルの誤り検出を用いることにより得られる。各データサブセットは、認証コード又はハッシュコードを用いることで、真正かどうかのチェックを受ける(例えば損傷)。この認証テストに合格しないデータサブセットは、受け付けられず、パリティデータと認証に合格したデータサブセット群とを用いて再生成される(パリティデータもチェックされる)。
例えば、この記憶方法は、ハードディスクドライブ、CD、DVD、ブルーレイ(登録商標)などの光学ディスク、MP3及びMPEGタイプのエンコードのようなファイルエンコードなどに実装してもよい。この方法は質の高いマルチメディアファイルを生成するのに用いてもよい。
図7は、通信システムを模式的に示している。2つの通信装置500及び510が,互いにデータを送受信している。これは、携帯電話ネットワークなどの通信ネットワークを介して、又は、双方向無線のように直接に行われる。以下の例では、一例として音声データが用いられる。しかし、ビデオ、ウェブ又はインターネット、及びデータファイルなどのような他の多くの種類のデータを送受信してもよい。
図7に示されるように、データ記憶について図1を参照して説明した方法と同様の方法を用いて、音声データは複数のデータサブセットとパリティデータに分割される。これらのデータサブセットA,B及びパリティデータPは、個別のチャンネルC1,C2及びC3を介して別々に送信される。これのデータは、他の方式に従って一緒に又は別々に送信されるとともに、異なる2つの媒体、例えば無線、ケーブル及び光ファイバー送信の組み合わせ、を用いて送信されるようにしてもよい。分割の機能は、通信装置500内、又はモバイル通信基地局等の送信ネットワーク施設内で実行されてもよい。説明される機能を実装するために、携帯電話に対して追加のハードウエアを付加してもよい。この代わりに、その機能がソフトウエアとして実装されてもよい。
データ記憶の実施例の場合と同様、別の認証の実施例として、ハッシュ関数又は他の認証のための関数からハッシュコードを生成し、送信の前にデータサブセットと対応づけてもよい。この認証実施例が図7aに示される。
データサブセットA及びBは、分割処理の逆の処理により、組み合わされて元の音声データを形成するようにしてもよい。サブセットA又はBのどちらかが受信したデータから失われた場合、又はハッシュマッチングテストに合格しない場合、上述の記憶データの検索の場合と同様の方法で、失われたデータを、パリティデータPを用いて復元してもよい。このように、チャンネルC1,C2又はC3のうちのただ1つしか受信しない盗聴者は、音声データを再構築することができない。このように、この方式によれば、より安全でより信頼性の高い通信システム及び方法を提供することができる。各チャンネルのモード、タイプ又は周波数を異ならせることによりセキュリティを更に向上させてもよい。図7aに示される認証の実施例においてハッシュ関数の認証チェックにより、データ完全性を提供してもよい。
図8は、図7に示される実施例に似た、更なる実施例を模式的に示す。ただし、この更なる実施例では、送信の前に更なるカスケードすなわち多層のデータ分割を実行する。音声その他の送信データを再構築するのには、更なるレベルの再組み合わせを用いなければならない。図8に示した例では、このデータ分割及びパリティデータ生成の更なるカスケード化には、各データサブセット及びパリティデータを通信するのに9つのチャンネルが必要となる。このような追加のカスケードは、データ損失に対する更なる復元力をもたらす。それらチャンネルのうちの5つから送信されたデータが失われても、データは完全に再構築することができる(ロスレス:無損失)。更にカスケード化して更なる復元力を提供してもよい。上述のデータ記憶の例と同様、データチャンネルの数は上の例と異なっていてもよい。例えば、各カスケード(分割の各段階)において、データを3つ、4つ又は5つに分割してもよい。必要なセキュリティ又は信頼性のレベルに従って、更なるカスケードレベルを用いてもよい。これにより使用可能なチャンネル(通信路)容量が更に満たされるが、そのようにすることによりデータ損失の確率を同じに維持したまま各チャンネルのパワー要件(必要条件)が低減される(シャノンの定理又は通信路符号化定理:noisy-channel coding theorem)。
図8aに示すように、送信されるデータサブセット及び/又はパリティデータ(カスケードにおける最下層レベル)のいずれか又はその各々が、適用されるハッシュ関数を持っていてもよい。ハッシュコードは受信機へと送信される。
また通信システムは、セキュリティ又は機能についての更なるレイヤ(層)を有していてもよい。データを受信する通信システム510は、どのデータサブセット及びパリティデータがどのチャンネルを通って送信されるのかに関する情報を必要とするかも知れない。図8及び図8aに示される例では、チャンネルC1はデータサブセットAAを送信するのに用いられ、C2はABのために用いられる,といった具合である。しかし他の組合せを用いてもよい。このような情報は、送信の前又は送信中に、例えばチャンネルとデータサブセットの特定の組合せを示すコードを送信するなどにより、通信装置500,510の間で交換してもよい。その特定の組合せは、送受信の間に変化してもよい。このことは、あらかじめ設定された又は定められた方式に従っていてもよく、又は現在の特定の組合せが、送信機と受信機との同期を維持するために送信されてもよい。通信装置500,510の両方が同時に送受信を行ってもよいし、別々に送受信を行ってもよい。
セキュリティの更なる予防措置として、データを、基準ファイルに対する差分データすなわちデルタ(Δ)データとして記憶又は送信してもよい。この場合、データを検索又は受信するには、例えば基準ファイルへのアクセス又は基準ファイルの知識が必要とされる。
この更なるセキュリティ予防措置は、ある種類のデータを送信したり記憶したりするのに実用上の制約又は法的な性客のあるようなところで用いてもよい。例えば、銀行業務情報又は機密情報の記憶は、特定の組織又は特定のサイトに制限されているかもしれない。しかし、これらのデータの損失のリスクが少なくなるようにデータを記憶することは、依然として必要とされるかも知れない。この場合、これらの種類の情報を前述のように異なる複数の記憶場所にまたがって分散又は送信することは,例えば暗号化を用いていたとしても、不可能かも知れない。この問題に対しては、根底のデータの代わりに差分データすなわちデルタデータを送信又は分散することにより対処してもよい。この状況では、データ保護要件は満足され、データは紛失又は破損に対して安全に保護され得る。
例えば、この更なる変形例の処理の一例として、例えばファイルA(又は信号A)が記憶又は送信するべき根底のデータであるとする。ファイルBは基準ファイルであるとする。UNIX(登録商標)のdiff,rdiff又はrsyncなどの比較関数を用いて、ファイルAとBとの比較を行い、ファイルCを生成してもよい。
更に別の例では、差分ファイルは、ファイルAとファイルBとにXOR関数を適用(例えばバイトごとに)することにより生成してもよい。
このように、ファイルCは、ファイルAとファイルBとの差分を表現又は符号化したものであり、ファイルAは、ファイルBの知識又はファイルBへのアクセスがなければ、ファイルCから再生成することはできない。ファイルBは様々な異なった形態をとってもよく、例えばランダムに生成された文字列、文書、オーディオファイル、ビデオファイル、書籍のテキストデータ、あるいは、知られている又は生成された他のデータセットであってもよい。知られたデータファイル(例えばよく知られた歌のMP3ファイル)を用いることの利益は、もしユーザのコンピュータが紛失、盗難又は破損に遭ったとしても、その知られている、公的に入手可能な基準ファイルの更なるコピーを取得することにより、根底のデータを再生成し得ることである。ユーザは、自分がどの特定のファイルを利用しているのか(例えばそのユーザが好きな歌のMP3ファイル)を単に覚えていればよい。ユーザには無数の選択肢があるので、よく知られたデータファイルを用いたとしても依然として比較的高いセキュリティを維持できる。
ファイルCからファイルAを再生成するために、差分又はデルタデータのファイルCを基準ファイルBに適用するための関数を用いてもよい。ファイルAの再生成のために、差分すなわちデルタデータのファイルCがどのように生成され符号化されたかに応じて、様々な方法が用いられる。XORの例では、ファイルAを再生するために、ファイルCとファイルCに対して更にXOR関数を適用してもよい。この適用は、例えば1バイトごとに行われてもよい。ファイルAとファイルBのサイズが異なることもよくあるであろう。ファイルAがファイルBよりも小さい場合は、単に、バイト又はファイル部分の各々の比較が完了したら、処理を停止すればよい。ファイルAがファイルBよりも大きい場合には、ファイルAの各バイトの比較が完了するまで、ファイルBの何回かコピーして用いればよい。その他の変形、差分処理及び比較関数を用いてもよい。
差分すなわちデルタファイル(又はデータストリーム)が生成されると、これは上述の元データとして用いられ、(例えば音声データとして)送信又は記憶される。送受信の実施例では、差分データはデータストリームとして生成されてもよい。すなわち、リアルタイムで送信、受信、符号化、又は復号されてもよい。言い換えれば、差分データは複数のデータサブセットに分割され、パリティデータが生成され、これらデータサブセットが上述の方法に従って分散記憶されたり送信されたりするようにしてもよい。
差分データの形態のデータストリームが送信される場合、基準ファイル(B)を、リアルタイムでデータストリームを順に符号化するのに用いてもよい。データストリームが基準ファイルの長さを超えている場合、送信が完了するまでその基準ファイルを再利用してもよい。例えば、音声通信では、送信が開始されるごとに、基準ファイルの最初の部分を、デジタル化された音声又はオーディオデータストリームと比較するために用い、差分データストリームを生成するようにしてもよい。この代わりに、新たな送信の各々について、基準ファイルの中で前回に最後に使用された点から続けることにより、基準ファイルの再利用を減らしてもよい。これは、セキュリティを更に向上させ得る。
別々の実施例を説明してきたが、それら実施例の特徴は、相互に入れ替えてもよい。特にデータの操作に関してはそうである。更に、送受信の実施例に関して説明した特徴はデータ記憶の実施例と共に使用してもよいし、その逆のことをしてもよい。
当業者には理解されるように、上述の実施例の細部は、添付する特許請求の範囲にて規定される本発明の範囲から逸脱することなく、変更してもよい。
例えば、データは、ハードディスク、フラッシュRAM、ウェブサーバ、FTPサーバ、ネットワークファイルサーバ、又はそれらの組合せなどのような、異なる様々な種類の記憶媒体に格納してもよい。上述の例では、個々の繰り返しごとに、ファイルが2つのデータサブセット(A及びB)と1つのパリティデータブロック(P)とに分割されたが、3つ(A,B及びC)、4つ(A〜D)又はそれ以上の数のデータサブセットが生成されるようにしてもよい。
上述の例に示したパリティデータはXOR関数から生成されていたが、他の関数を用いてもよい。例えば、ハミング、リード・ソロモン、ゴーレイ(Golay)、リード・マラー(Reed−Muller)、又は他の誤り訂正符号を用いてもよい。
データサブセット群は、物理的に別々の場所に記憶されるか、又は同一のハードディスクドライブやクラスタ内であっても論理的に別々の場所に記憶されるようにしてもよい。
当業者に明らかなように、上述の様々な実施例の特徴に対して、多くの組合せ、修正又は変更が可能であり、これらも本発明の一部を構成する。

Claims (65)

  1. データの記憶方法であって、
    a)前記データを複数のデータサブセットに分割するステップと、
    b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、
    c)前記複数のデータサブセット及び前記パリティデータの各々に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成するステップと、
    d)前記更なるデータサブセットと前記更なるパリティデータとを別々の記憶場所に記憶するステップと、
    を含む方法。
  2. 請求項1に記載の方法であって、前記更なるデータサブセットと前記更なるパリティデータとは物理的に別々の装置に記憶される、方法。
  3. 請求項1又は2に記載の方法であって、前記ステップcは前記複数のデータサブセット及び前記パリティデータの各々について繰り返される、方法。
  4. 請求項1〜3のいずれか1項に記載の方法であって、追加の記憶場所を設けるステップと、前記追加の記憶場所が設けられるのに伴って、前記ステップa及びbを、前記別々の記憶場所に記憶された前記更なるデータサブセット又は前記更なるパリティデータのいずれかについて繰り返すステップと、を更に含む方法。
  5. 請求項1〜4のいずれか1項に記載の方法であって、前記データを暗号化するステップを更に含む方法。
  6. 請求項1〜5のいずれか1項に記載の方法であって、前記別々の記憶場所は、ハードディスクドライブ、光学ディスク、フラッシュRAM、ウェブサーバ、FTPサーバ、及びネットワークファイルサーバからなるグループから選ばれる、方法。
  7. 請求項1〜6のいずれか1項に記載の方法であって、前記データはウェブページである、方法。
  8. 請求項1〜7のいずれか1項に記載の方法であって、
    c1)1つ又は複数の対応する認証コードを生成するために、前記複数のデータサブセット及び前記パリティデータの1つ以上に関数を適用するステップ、
    を更に含む方法。
  9. 請求項8に記載の方法であって、前記関数はハッシュ関数である、方法。
  10. 請求項9に記載の方法であって、前記ハッシュ関数は、チェックサム、チェックディジット、フィンガープリント、ランダム化関数、誤り訂正符号、及び暗号学的ハッシュ関数からなるグループから選ばれる、方法。
  11. 請求項8〜10のいずれか1項に記載の方法であって、前記認証コードは前記更なるデータサブセット及び/又はパリティデータと共に記憶される,方法。
  12. 請求項11に記載の方法であって、前記認証コードはヘッダ情報として記憶される、方法。
  13. 別々の記憶場所に記憶されたデータを検索する方法であって、
    a)前記別々の記憶場所からデータサブセット及びパリティデータを回収するステップと、
    b)前記復元されたデータサブセット及びパリティデータから、失われたデータサブセットを再生成することで、再生成されたデータサブセットを形成するステップと、
    c)前記データサブセットと前記再生成されたデータサブセットとを組み合わせることにより、複数の統合されたデータセットを形成するステップであって、前記複数の統合されたデータセットは、更なるデータサブセット及び更なるパリティデータを含むことを特徴とするステップと、
    d)前記更なるデータサブセット及び前記更なるパリティデータから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成するステップと、
    e)前記更なるデータサブセットと再生成された更なるデータサブセットとを組み合わせることにより元のデータセットを形成するステップと、
    を含む方法。
  14. 請求項13に記載の方法であって、前記データサブセット及びパリティデータは、それぞれ物理的に別々の装置から回収される、方法。
  15. 請求項13又は14に記載の方法であって、前記元のデータセットは暗号化されており、前記方法は更に、
    f)前記元のデータセットを復号するステップ、
    を含む、方法。
  16. 請求項13〜15のいずれか1項に記載の方法であって、前記別々の記憶場所の位置情報を受信するステップを更に含む、方法。
  17. 請求項13〜16のいずれか1項に記載の方法であって、前記別々の記憶場所は、ハードディスクドライブ、光学ディスク、フラッシュRAM、ウェブサーバ、FTPサーバ、及びネットワークファイルサーバからなるグループから選ばれた1つ又は複数のものである、方法。
  18. 請求項13〜16のいずれか1項に記載の方法であって、
    前記データサブセット及びパリティデータのうちの1つ又は複数に対応づけられた認証コードを回収するステップと、
    前記対応づけられた認証コードを用いて、前記データサブセット及びパリティデータのうちの1つ又は複数を認証するステップと、
    認証に合格しなかったデータサブセットを、前記回収されたデータサブセット及びパリティデータから再生成することにより、再生成されてデータサブセットを形成するステップと、
    を更に含む、方法。
  19. 請求項18に記載の方法であって、前記認証コードはハッシュコードであり、前記認証ステップは、前記データサブセット及び/又はパリティデータに対してハッシュ関数を適用することにより比較用ハッシュコードを生成するステップと、この比較用ハッシュコードを、前記データサブセット及び/又はパリティデータに対応づけられた認証コードと比較するステップと、を含む方法。
  20. 請求項1〜19のいずれか1項に記載の方法であって、前記別々の記憶場所はネットワークを介してアクセス可能である、方法。
  21. データを記憶するための装置であって、
    a)前記データを複数のデータサブセットに分割し、
    b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、
    c)前記複数のデータサブセット及び前記パリティデータの各々に対して前記a及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成し、
    d)前記更なるデータサブセットと前記更なるパリティデータとを別々の記憶場所に記憶する、
    ように構成されたプロセッサを備える、装置。
  22. 請求項21に記載の装置であって、前記プロセッサは、更に、1つ又は複数の対応する認証コードを生成するために、前記複数のデータサブセット及び前記パリティデータのいずれか1つ以上に関数を適用するように構成されており、前記更なるデータサブセットと前記更なるパリティデータは対応する認証コードと共に記憶されるよう構成されている、装置。
  23. 別々の記憶場所に記憶されたデータを検索するための装置であって、
    a)前記別々の記憶場所からデータサブセット及びパリティデータを回収し、
    b)前記復元されたデータサブセット及びパリティデータから、失われたデータサブセットを再生成することで、再生成されたデータサブセットを形成し、
    c)前記データサブセットと前記再生成されたデータサブセットとを組み合わせることにより、複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは、更なるデータサブセット及び更なるパリティデータを含み、
    d)前記更なるデータサブセット及び前記更なるパリティデータから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成し、
    e)前記更なるデータサブセットと再生成された更なるデータサブセットとを組み合わせることにより元のデータセットを形成する、
    ように構成されたプロセッサを備える、装置。
  24. 請求項23に記載の装置であって、前記プロセッサは、更に、前記データサブセット及びパリティデータのうちの1つ又は複数に対応づけられた認証コードを回収し、
    前記対応づけられた認証コードを用いて、前記データサブセット及びパリティデータのうちの1つ又は複数を認証し、
    認証に合格しなかったデータサブセットを、前記回収されたデータサブセット及びパリティデータから再生成することにより、再生成されてデータサブセットを形成する、
    よう構成されている、装置。
  25. 請求項23又は24に記載の装置であって、更に複数の記憶場所を含む、装置。
  26. データファイルを記憶するためのデータ記憶媒体であって、データサブセットと、パリティデータと、認証コードとを含み、前記データサブセットは更なるデータサブセットを生成するために組み合わせ可能であり、前記更なるデータサブセットは前記データファイルを生成するために組み合わせ可能であり、前記認証コードにより前記データサブセットを認証することができ、前記パリティデータは、失われたデータサブセット又は認証に合格しなかったデータサブセットを再生成するために、前記データサブセットと組み合わせることができる、記憶媒体。
  27. 請求項26に記載のデータ記憶媒体であって、前記記憶媒体はコンパクトディスク、DVD、ハードディスクドライブ、ソリッドステートドライブ、フラッシュメモリ、及びデジタルテープからなるグループから選択される、記憶媒体。
  28. 請求項26又は27に記載のデータ記憶媒体であって、前記データファイルは、マルチメディアファイル、オーディオファイル、ビデオファイル、MPEGファイル、MP3ファイル、音楽ファイル、データベース、及びバイナリファイルからなるグループの中から選択される、記憶媒体。
  29. データを送信する方法であって、
    a)前記データを分割して、複数のデータサブセットとして送信されるようにするステップと、
    b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにするステップと、
    c)前記複数のデータサブセットとパリティデータとを送信するステップと、
    を含む方法。
  30. 請求項29に記載の方法であって、前記送信するステップは、
    i)前記複数のデータサブセット及び前記パリティデータの1以上に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成するステップと、
    ii)前記更なるデータサブセットと前記更なるパリティデータとを送信するステップと、
    を含む、方法。
  31. 請求項29又は30に記載の方法であって、前記データサブセット及び前記パリティデータのいずれか又は全部が、異なる伝送手段を用いて送信される、方法。
  32. 請求項31に記載の方法であって、前記異なる伝送手段は、有線、無線、インターネットプロトコル、及びモバイル通信からなるグループから選ばれた1又は複数の手段である、方法。
  33. 請求項29〜32のいずれか1項に記載の方法であって、前記データサブセットのいずれか又はすべてが、異なる複数のチャンネルを介して送信される、方法。
  34. 請求項33に記載の方法であって、前記チャンネルはモバイル通信チャンネルである、方法。
  35. 請求項33又は34に記載の方法であって、前記異なる複数のチャンネルは、異なる複数の無線周波数である、方法。
  36. 請求項33〜35のいずれか1項に記載の方法であって、前記異なる複数のチャンネルの選択はあらかじめ定められている、方法。
  37. 請求項36に記載の方法であって、前記異なる複数のチャンネルの選択結果を送信するステップを更に含む、方法。
  38. 請求項37に記載の方法であって、前記選択結果はコードとして送信される、方法。
  39. 請求項1〜12及び29〜38のうちのいずれか1項に記載の方法であって、前記データはバイト単位で分割される、方法。
  40. 請求項1〜12及び29〜39のうちのいずれか1項に記載の方法であって、前記データは2つのデータサブセットに分割される、方法。
  41. 請求項40に記載の方法であって、前記データは、当該データの偶数又は奇数のステータスに従って分割される、方法。
  42. 請求項1〜12及び29〜41のうちのいずれか1項に記載の方法であって、前記パリティデータは、前記複数のデータサブセットに対して論理関数を実行することにより生成される、方法。
  43. 請求項42に記載の方法であって、前記論理関数は排他的論理和である、方法。
  44. 請求項1〜12及び29〜43のうちのいずれか1項に記載の方法であって、前記データを暗号化するステップを更に含む、方法。
  45. データを受信する方法であって、
    a)データサブセット及びパリティデータを受信するステップと、
    b)前記受信したデータサブセット及びパリティデータから、失われたデータサブセットを再生成することにより、再生成されたデータセットを形成するステップと、
    c)前記データサブセットと、再生成されたデータサブセットと、を組み合わせるステップと、
    を含む方法。
  46. 請求項45に記載の方法であって、前記再生成されたデータサブセットは複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは更なるデータサブセットと更なるパリティデータとを含み、前記組み合わせるステップは、
    d)前記更なるデータサブセットと更なるパリティデータとから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成するステップと、
    e)前記更なるデータサブセットと、再生成された更なるデータサブセットと、を組み合わせることにおり、元のデータセットを形成するステップと、
    を含む、方法。
  47. 請求項46に記載の方法であって、前記受信したデータは暗号化されており、前記方法は更に、
    f)前記元のデータセットを復号するステップ、
    を含む、方法。
  48. 請求項45〜47のいずれか1項に記載の方法であって、前記受信するステップは、前記データサブセット及びパリティデータのうちのいずれか又はすべてを、異なる複数のチャンネルから受信するステップを含む、方法。
  49. 請求項48に記載の方法であって、前記異なる複数のチャンネルは、異なる複数の無線周波数である、方法。
  50. 請求項48及び49に記載の方法であって、前記異なる複数のチャンネルは、複数の異なる携帯電話無線チャンネルである、方法。
  51. 請求項48〜50のいずれか1項に記載の方法であって、どのチャンネルがどのデータサブセット及びパリティデータを含んでいるかを示す情報を含むチャンネル情報を受信するステップを更に含む、方法。
  52. 請求項51に記載の方法であって、前記組み合わせるステップでは、前記データサブセットと再生成されたデータサブセットとを、前記受信したチャンネル情報に基づき組み合わせる、方法。
  53. 請求項48〜52のいずれか1項に記載の方法であって、前記データサブセットとパリティデータのうちのいずれか又はすべてを搬送する前記チャンネルが受信の間に変化する、方法。
  54. 請求項29〜53のいずれか1項に記載の方法であって、前記データは、オーディオデータ、携帯電話データ、パケットデータ、ビデオデータ、リアルタイムデュプレックスデータ及びインターネットデータからなるグループから選択されたものである、方法。
  55. データを送信するための装置であって、
    a)前記データを分割して、複数のデータサブセットとして送信されるようにし、
    b)前記複数のデータサブセットからパリティデータを生成することで、前記複数のデータサブセットのうちの1つ又は複数のデータサブセットが、残りデータサブセットと前記パリティデータとから再生成されるようにし、
    c)前記複数のデータサブセットとパリティデータとを送信する、
    ように構成されたプロセッサを備える、装置。
  56. 請求項55に記載の装置であって、前記プロセッサは、
    i)前記複数のデータサブセット及び前記パリティデータのいずれか1つ又は複数に対してステップa及びbを繰り返し、更なるデータサブセットと更なるパリティデータとを生成し、
    ii)前記更なるデータサブセットと前記更なるパリティデータとを送信する、
    ことにより送信を行うよう構成されている、方法。
  57. データを受信するための装置であって、
    a)データサブセット及びパリティデータを受信し、
    b)前記受信したデータサブセット及びパリティデータから、失われたデータサブセットを再生成することにより、再生成されたデータセットを形成し、
    c)前記データサブセットと、再生成されたデータサブセットと、を組み合わせる、
    ように構成されたプロセッサを備える、装置。
  58. 請求項57に記載の装置であって、前記再生成されたデータサブセットは複数の統合されたデータセットを形成し、前記複数の統合されたデータセットは更なるデータサブセットと更なるパリティデータとを含み、前記プロセッサは、
    d)前記更なるデータサブセットと更なるパリティデータとから、失われた更なるデータサブセットを再生成することにより、再生成された更なるデータサブセットを形成し、
    e)前記更なるデータサブセットと、再生成された更なるデータサブセットと、を組み合わせることにより、元のデータセットを形成する、
    ことにより前記データサブセットを組み合わせるよう構成されている、装置。
  59. 請求項55〜58のいずれか1項に記載の装置を有するモバイルハンドセット。
  60. 請求項1〜12,29〜44のいずれか1項に記載の方法であって、前記データは、基準データファイルに対する差分データであり、前記方法は、元のデータを前記基準データファイルと比較することにより前記差分データを求めるステップを更に含む、方法。
  61. 請求項13〜20のいずれか1項に記載の方法であって、前記データは、基準データファイルに対する差分データであり、前記方法は、前記差分データを前記基準データファイルに適用することにより根底のデータを求めるステップを更に含む、方法。
  62. 請求項45〜54のいずれか1項に記載の方法であって、前記組み合わせられたデータセットは、基準データファイルに対する差分データであり、前記方法は、前記差分データを前記基準データファイルに適用することにより根底のデータを求めるステップを更に含む、方法。
  63. 請求項21〜22,55〜56のいずれか1項に記載の装置であって、前記複数のデータサブセットに分割されたデータは、基準データファイルに対する差分データであり、前記プロセッサは、更に、前記データを前記基準データファイルと比較することにより前記差分データを求めるよう構成されている、装置。
  64. 請求項23又は24のいずれか1項に記載の装置であって、前記元のデータセットは、基準データファイルに対する差分データであり、前記プロセッサは、更に、前記差分データを前記基準データファイルに適用することにより根底のデータを求めるよう構成されている、装置。
  65. 請求項57〜59のいずれか1項に記載の装置であって、前記組み合わせられたデータセットは、基準データファイルに対する差分データであり、前記プロセッサは、更に、前記差分データを前記基準データファイルに適用することにより根底のデータを求めるよう構成されている、装置。
JP2011525607A 2008-09-02 2009-09-01 分散的な記憶及び通信 Pending JP2012501508A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GB0815959.2 2008-09-02
GB0815959A GB2463078B (en) 2008-09-02 2008-09-02 Distributed storage
GB0817804A GB2463085B (en) 2008-09-02 2008-09-29 Communication system
GB0817804.8 2008-09-29
GB0819211A GB2463087B (en) 2008-09-02 2008-10-20 Data storage and communication
GB0819211.4 2008-10-20
PCT/GB2009/002101 WO2010026366A1 (en) 2008-09-02 2009-09-01 Distributed storage and communication

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014243028A Division JP5905068B2 (ja) 2008-09-02 2014-12-01 分散的な記憶及び通信

Publications (2)

Publication Number Publication Date
JP2012501508A true JP2012501508A (ja) 2012-01-19
JP2012501508A5 JP2012501508A5 (ja) 2012-10-18

Family

ID=39866115

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011525607A Pending JP2012501508A (ja) 2008-09-02 2009-09-01 分散的な記憶及び通信
JP2014243028A Active JP5905068B2 (ja) 2008-09-02 2014-12-01 分散的な記憶及び通信

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014243028A Active JP5905068B2 (ja) 2008-09-02 2014-12-01 分散的な記憶及び通信

Country Status (5)

Country Link
US (2) US9026844B2 (ja)
EP (1) EP2340489B1 (ja)
JP (2) JP2012501508A (ja)
GB (3) GB2463078B (ja)
WO (1) WO2010026366A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014525188A (ja) * 2011-07-18 2014-09-25 クアンド サービス インコーポレイテッド 複数のパリティセットに属するデータサブセットを再構築するパリティベースの方法
JP2015513851A (ja) * 2012-02-29 2015-05-14 クアンド サービス インコーポレイテッド 電子的通知方法
US9678833B2 (en) 2014-01-31 2017-06-13 Fujitsu Limited Storage controller, storage system and storage control method
US10818314B1 (en) 2019-05-07 2020-10-27 International Business Machines Corporation Storing multiple instances of a housekeeping data set on a magnetic recording tape

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2463078B (en) 2008-09-02 2013-04-17 Extas Global Ltd Distributed storage
US8654971B2 (en) * 2009-05-19 2014-02-18 Security First Corp. Systems and methods for securing data in the cloud
GB201003407D0 (en) * 2010-03-01 2010-04-14 Extas Global Ltd Distributed storage and communication
EP2553905B1 (en) 2010-03-31 2018-05-09 Security First Corp. Systems and methods for securing data in motion
US8874868B2 (en) * 2010-05-19 2014-10-28 Cleversafe, Inc. Memory utilization balancing in a dispersed storage network
GB2555549A (en) * 2010-07-14 2018-05-02 Qando Services Inc Distributed data storage and recovery
GB2482112A (en) 2010-07-14 2012-01-25 Extas Global Ltd Distributed data storage and recovery
US9165137B2 (en) 2010-08-18 2015-10-20 Security First Corp. Systems and methods for securing virtual machine computing environments
GB2483222B (en) * 2010-08-24 2018-05-09 Qando Services Inc Accessing a web site
GB2484116B (en) * 2010-09-29 2018-01-17 Qando Services Inc Distributed electronic communication
KR101502895B1 (ko) 2010-12-22 2015-03-17 주식회사 케이티 복수의 오류 복제본으로부터 오류를 복구하는 방법 및 상기 방법을 이용하는 스토리지 시스템
KR101544485B1 (ko) 2011-04-25 2015-08-17 주식회사 케이티 클라우드 스토리지 시스템에서 복수개의 복제본을 분산 저장하는 방법 및 장치
CN104520873A (zh) 2012-04-06 2015-04-15 安全第一公司 用于保护和恢复虚拟机的系统和方法
WO2014066986A1 (en) * 2012-11-02 2014-05-08 Vod2 Inc. Data distribution methods and systems
US9075686B2 (en) * 2013-02-25 2015-07-07 GM Global Technology Operations LLC System and method to improve control module reflash time
FR3026870B1 (fr) * 2014-10-07 2016-11-04 Airbus Operations Sas Dispositif de gestion du stockage de donnees.
US9733849B2 (en) 2014-11-21 2017-08-15 Security First Corp. Gateway for cloud-based secure storage
US10922292B2 (en) * 2015-03-25 2021-02-16 WebCloak, LLC Metamorphic storage of passcodes
US9760432B2 (en) * 2015-07-28 2017-09-12 Futurewei Technologies, Inc. Intelligent code apparatus, method, and computer program for memory
US20170104806A1 (en) * 2015-10-13 2017-04-13 Comcast Cable Communications, Llc Methods and systems for content stream coding
US10437480B2 (en) 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
CN109074295B (zh) * 2016-07-29 2022-07-05 惠普发展公司,有限责任合伙企业 具有真实性的数据恢复
US11860819B1 (en) * 2017-06-29 2024-01-02 Amazon Technologies, Inc. Auto-generation of partition key
DE102021000348A1 (de) 2020-02-14 2021-08-19 Sew-Eurodrive Gmbh & Co Kg Verfahren und System zur Übertragung von Daten

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744322A (ja) * 1991-07-03 1995-02-14 Internatl Business Mach Corp <Ibm> Dasdアレイの階層を管理する方法および装置
US20020124139A1 (en) * 2000-12-30 2002-09-05 Sung-Hoon Baek Hierarchical RAID system including multiple RAIDs and method for controlling RAID system
JP2004086721A (ja) * 2002-08-28 2004-03-18 Nec Corp データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム
JP2008516307A (ja) * 2004-10-05 2008-05-15 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスク・データ・ストレージ・システムについての保守料金を決定するためのオン・デマンドかつ非容量ベースの処理、装置、およびコンピュータ・プログラム

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432787A (en) * 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
JPH0816328A (ja) 1994-06-28 1996-01-19 Mitsubishi Electric Corp ディスクアレイシステム
JPH09297663A (ja) * 1996-05-08 1997-11-18 Ekushingu:Kk ディスクアレイ装置
US6185368B1 (en) * 1996-07-29 2001-02-06 Sony Corporation Redundant disk array with real-time lost data reconstruction
KR100267366B1 (en) * 1997-07-15 2000-10-16 Samsung Electronics Co Ltd Method for recoding parity and restoring data of failed disks in an external storage subsystem and apparatus therefor
US6243846B1 (en) * 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6353895B1 (en) * 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
US6421803B1 (en) * 1999-06-25 2002-07-16 Telefonaktiebolaget L M Ericsson (Publ) System and method for implementing hybrid automatic repeat request using parity check combining
JP2001195204A (ja) * 2000-01-14 2001-07-19 Nippon Telegr & Teleph Corp <Ntt> データ正否チェック方法およびデータ正否チェックプログラムを記録した記録媒体
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US6789077B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US20020103907A1 (en) 2000-06-20 2002-08-01 Erik Petersen System and method of storing data to a recording medium
US20020032844A1 (en) 2000-07-26 2002-03-14 West Karlon K. Distributed shared memory management
US6775791B2 (en) * 2001-01-26 2004-08-10 Dell Products L.P. Replaceable memory modules with parity-based data recovery
US6775792B2 (en) * 2001-01-29 2004-08-10 Snap Appliance, Inc. Discrete mapping of parity blocks
US6862692B2 (en) * 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
WO2002093846A1 (en) 2001-03-28 2002-11-21 Park, Young-Chan Method of transferring a divided file
US8656246B2 (en) * 2001-04-16 2014-02-18 Qualcomm Incorporated Method and an apparatus for use of codes in multicast transmission
US6950966B2 (en) * 2001-07-17 2005-09-27 Seachange International, Inc. Data transmission from raid services
US6871263B2 (en) * 2001-08-28 2005-03-22 Sedna Patent Services, Llc Method and apparatus for striping data onto a plurality of disk drives
US7073115B2 (en) 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
JP4685317B2 (ja) * 2002-03-29 2011-05-18 株式会社富士通ソーシアルサイエンスラボラトリ データ分散格納方法、データ分散格納装置、プログラム及びバックアップサイト
US20040177218A1 (en) * 2002-11-06 2004-09-09 Meehan Thomas F. Multiple level raid architecture
US7188270B1 (en) * 2002-11-21 2007-03-06 Adaptec, Inc. Method and system for a disk fault tolerance in a disk array using rotating parity
JP3951949B2 (ja) * 2003-03-31 2007-08-01 日本電気株式会社 分散型資源管理システムおよび分散型資源管理方法並びにプログラム
JP4490068B2 (ja) * 2003-09-22 2010-06-23 大日本印刷株式会社 ネットワークを利用したデータ保管システム
WO2005052786A2 (en) 2003-11-28 2005-06-09 Cpm S.A. Electronic computing system - on demand and method for dynamic access to digital resources
US7590801B1 (en) * 2004-02-12 2009-09-15 Netapp, Inc. Identifying suspect disks
JP4485230B2 (ja) * 2004-03-23 2010-06-16 株式会社日立製作所 マイグレーション実行方法
GB2412760B (en) * 2004-04-01 2006-03-15 Toshiba Res Europ Ltd Secure storage of data in a network
US7406621B2 (en) * 2004-04-02 2008-07-29 Seagate Technology Llc Dual redundant data storage format and method
US7321905B2 (en) * 2004-09-30 2008-01-22 International Business Machines Corporation System and method for efficient data recovery in a storage array utilizing multiple parity slopes
US7565569B2 (en) * 2004-10-22 2009-07-21 International Business Machines Corporation Data protection in a mass storage system
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology
CA2590361C (en) * 2004-11-05 2012-01-03 Data Robotics Incorporated Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
US7577866B1 (en) * 2005-06-27 2009-08-18 Emc Corporation Techniques for fault tolerant data storage
US8060648B2 (en) * 2005-08-31 2011-11-15 Cable Television Laboratories, Inc. Method and system of allocating data for subsequent retrieval
US9996413B2 (en) 2007-10-09 2018-06-12 International Business Machines Corporation Ensuring data integrity on a dispersed storage grid
US7574579B2 (en) 2005-09-30 2009-08-11 Cleversafe, Inc. Metadata management system for an information dispersed storage system
JP2007122185A (ja) * 2005-10-25 2007-05-17 Fujitsu Ltd データ記憶方法およびデータ記憶装置
BRPI0618725A2 (pt) * 2005-11-18 2011-09-06 Rick L Orsini método analisador de dados seguro e sistema
US7631143B1 (en) * 2006-01-03 2009-12-08 Emc Corporation Data storage system employing virtual disk enclosure
EP1811378A2 (en) * 2006-01-23 2007-07-25 Xyratex Technology Limited A computer system, a computer and a method of storing a data file
JP2007299088A (ja) * 2006-04-28 2007-11-15 Fujitsu Ltd データ保護システム、方法及びプログラム
WO2007133791A2 (en) 2006-05-15 2007-11-22 Richard Kane Data partitioning and distributing system
JP2008098894A (ja) * 2006-10-11 2008-04-24 Kddi Corp 情報管理システム、情報管理方法、情報管理プログラム
KR101490327B1 (ko) * 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8230432B2 (en) 2007-05-24 2012-07-24 International Business Machines Corporation Defragmenting blocks in a clustered or distributed computing system
JP5274094B2 (ja) 2007-06-04 2013-08-28 三菱電機株式会社 通信システム、送信局および通信方法
US20090172244A1 (en) * 2007-12-31 2009-07-02 Chaoyang Wang Hierarchical secondary raid stripe mapping
US8171379B2 (en) * 2008-02-18 2012-05-01 Dell Products L.P. Methods, systems and media for data recovery using global parity for multiple independent RAID levels
GB2463078B (en) 2008-09-02 2013-04-17 Extas Global Ltd Distributed storage
US8458515B1 (en) * 2009-11-16 2013-06-04 Symantec Corporation Raid5 recovery in a high availability object based file system
US8762820B1 (en) * 2011-12-22 2014-06-24 Landis+Gyr Technologies, Llc Data communications via power line
US8924720B2 (en) * 2012-09-27 2014-12-30 Intel Corporation Method and system to securely migrate and provision virtual machine images and content
US9218244B1 (en) * 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744322A (ja) * 1991-07-03 1995-02-14 Internatl Business Mach Corp <Ibm> Dasdアレイの階層を管理する方法および装置
US20020124139A1 (en) * 2000-12-30 2002-09-05 Sung-Hoon Baek Hierarchical RAID system including multiple RAIDs and method for controlling RAID system
JP2004086721A (ja) * 2002-08-28 2004-03-18 Nec Corp データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム
JP2008516307A (ja) * 2004-10-05 2008-05-15 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスク・データ・ストレージ・システムについての保守料金を決定するためのオン・デマンドかつ非容量ベースの処理、装置、およびコンピュータ・プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014525188A (ja) * 2011-07-18 2014-09-25 クアンド サービス インコーポレイテッド 複数のパリティセットに属するデータサブセットを再構築するパリティベースの方法
JP2015513851A (ja) * 2012-02-29 2015-05-14 クアンド サービス インコーポレイテッド 電子的通知方法
US9678833B2 (en) 2014-01-31 2017-06-13 Fujitsu Limited Storage controller, storage system and storage control method
US10818314B1 (en) 2019-05-07 2020-10-27 International Business Machines Corporation Storing multiple instances of a housekeeping data set on a magnetic recording tape

Also Published As

Publication number Publication date
GB2463085A (en) 2010-03-03
GB0817804D0 (en) 2008-11-05
GB0819211D0 (en) 2008-11-26
EP2340489B1 (en) 2018-10-31
JP5905068B2 (ja) 2016-04-20
GB2463087A (en) 2010-03-03
EP2340489A1 (en) 2011-07-06
JP2015052806A (ja) 2015-03-19
WO2010026366A1 (en) 2010-03-11
GB2463078A (en) 2010-03-03
US9026844B2 (en) 2015-05-05
GB2463087B (en) 2013-07-31
WO2010026366A8 (en) 2011-04-14
GB2463085B (en) 2013-04-17
US20150301893A1 (en) 2015-10-22
US20110145638A1 (en) 2011-06-16
GB0815959D0 (en) 2008-10-08
GB2463078B (en) 2013-04-17

Similar Documents

Publication Publication Date Title
JP5905068B2 (ja) 分散的な記憶及び通信
US11233643B1 (en) Distributed data storage system data decoding and decryption
US20230351062A1 (en) Recovering data from encoded data slices interspersed with auxiliary data
US9203812B2 (en) Dispersed storage network with encrypted portion withholding and methods for use therewith
US9104691B2 (en) Securing data in a dispersed storage network using an encoding equation
US8744071B2 (en) Dispersed data storage system data encryption and encoding
US20190081781A1 (en) Storing access information in a dispersed storage network
US9009491B2 (en) Distributed storage network and method for encrypting and decrypting data using hash functions
US8601259B2 (en) Securing data in a dispersed storage network using security sentinel value
US11301592B2 (en) Distributed storage with data obfuscation and method for use therewith
US10911230B2 (en) Securely activating functionality of a computing device in a dispersed storage network
US20200241960A1 (en) Encoding and storage node repairing method for minimum storage regenerating codes for distributed storage systems
US9092385B2 (en) Facilitating access of a dispersed storage network
US9697244B2 (en) Record addressing information retrieval based on user data descriptors
US20140281550A1 (en) Distributed Storage Network and Method for Storing and Retrieving Encryption Keys
US20130073901A1 (en) Distributed storage and communication
CN112764677B (zh) 一种在云存储中增强数据迁移安全性的方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131015

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140729

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20141127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141127