(用語又は表記の説明)
以下の説明において、「分割」とは、単にデータを2個以上のデータに分ける動作であり、秘密分散における「分散」を含む概念である。以下の説明では、「分散」は「分割」の一例として用いると共に、「分割」と「分散」の各用語を使い分ける。
また、「元データ」とは、第三者に対して秘匿しなければならないデータを含むデータである。また、元データは、元データ全体が秘匿対象でも良いし、元データの一部が秘匿対象でも良い。以下の説明において、元データは複数のブロックのデータが連接されて構成され、各々のブロックのデータを「分割ブロック」という。
また、「分散データ」とは、本発明に係る分散装置が元データに対して後述する分散方法に従って生成したデータである。
また、後述する演算処理部100が実行する演算処理としての排他的論理和の処理を、単に「XOR処理」という。
また、後述する演算処理部100が実行する演算処理は、例えば、所定の分割ブロックに他の分割ブロックを複数回演算すると所定の分割ブロックを得るための演算処理である。ここで、演算処理部100の演算処理の具体例を簡単に説明する。
所定の分割ブロックの値をBA、他の分割ブロックの値をBBとした場合、演算処理部100は、排他的論理和の演算処理によって、
第1回目: BA XOR BB の演算処理を実行し、
第2回目: (BA XOR BB) XOR BB=BAの演算処理を実行する。
これにより、演算処理部100は、複数回(例えば2回)の演算処理によって、所定の分割ブロックBAを得ることができる。従って、排他的論理和の演算処理は、演算処理部100によって実行される演算処理の一例である。
また、演算処理部100は、排他的論理和の演算処理の他に、次の演算処理を実行しても良い。具体的には、同様に所定の分割ブロックの値をBA、他の分割ブロックの値をBB、更に、素数をNNとした場合、演算処理部100は、次の演算処理、即ち、
第1回目: BA × BB mod(NN)=CCの演算処理を実行し、
第2回目: CC × BB^(−1) mod(NN)=BAの演算処理を実行する。
これにより、演算処理部100は、複数回(例えば2回)の演算処理によって、所定の分割ブロックBAを得ることができる。従って、排他的論理和の演算処理に限らず、演算子modを用いた演算処理も、演算処理部100によって実行される演算処理の一例である。このように、演算処理部100が実行する演算処理、即ち、所定の分割ブロックに他の分割ブロックを複数回演算すると所定の分割ブロックを得るための演算処理は複数存在する。
例えば図2に示す分散データSD1は、合計16個の分割ブロックを含んで構成される元データODのうち、分割ブロックDB1と、分割ブロックDB2と分割ブロックDB3とがXOR処理されたブロックと、分割ブロックDB4と分割ブロックDB5とがXOR処理されたブロックと、分割ブロックDB6と分割ブロックDB7とがXOR処理されたブロックとが連接されて構成されている。
以下の説明では、図2を含む他の図においても、元データODの第1番目の分割ブロック(列)を「列1」と表記し、順に、「列2」,「列3」,…,「列16」と表記することで、例えば図2に示す元データODの各々の分割ブロックDB1,DB2,…,DB16を識別する。各々の分割ブロックのデータサイズは、1ビット単位で、任意のデータサイズに設定可能である。なお、例えば図2では元データODを合計16個の分割ブロックに分割されているが、実際は2個以上であれば、分割ブロックの数は特に限定されない。
例えば図2に示す分散データSD1において、第1番目のブロック(列)、即ち、分割ブロックDB1を「列a」と表記し、順に、「列b」,「列c」,…と表記することで、例えば図2に示す分散データSD1の各々の分割ブロックを識別する。
また、以下の説明では、分散データSD1の列yを[分散(1)y]と表記する。例えば、図2に示す分散データSD1の列cは[分散(1)c]と表記し、同図に示す分散データ3の列fは[分散(3)f]と表記する。
(本発明に係る分散装置又は復元装置に対応する分散復元装置)
第1の発明は、元データから、複数の分割ブロックを含む分散データを複数生成する分散装置であって、所定分割ブロックに他の分割ブロックを複数回演算すると所定分割ブロックを得る演算処理を行う演算処理部を備え、演算処理部は、複数の分割ブロックから所定数の分割ブロックを組み合わせて演算処理を行い、分割ブロックの組み合わせが異なる、少なくとも第1の分散データと第2の分散データとを生成し、第1の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックを含み、第2の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックと、第2の分散データにのみ用いられる分割ブロックとを含む。
第1の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って複数個の分散データを生成するため、分散データのデータサイズを元データのデータサイズより少なくでき、分散装置におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散装置は、非対称なデータサイズの分散データを安全に生成することができる。
第2の発明は、第1の発明において、演算処理部が第2の分散データにのみ用いられる複数の分割ブロックを組み合わせて演算処理を行い、分割ブロックの組み合わせが異なる、第3の分散データと第4の分散データとを生成し、第1又は第2の分散データに用いられる分割ブロックと、第3又は第4の分散データに用いられる分割ブロックと、いずれの分散データにも用いられていない複数の分割ブロックとを組み合わせて演算処理によって第5の分散データを生成する。
第2の発明によれば、より大きな非対称なデータサイズを有する分散データを生成することができる。
第3の発明は、第1の発明において、演算処理部が分散データの一部を分割して新たな分散データを生成する。
第3の発明によれば、更により大きな非対称なデータサイズを有する分散データを生成することができる。
第4の発明は、第3の発明において、演算処理部が分散データにおける分割ブロックの組み合わせを変更して新たな分散データを生成する。
第4の発明によれば、分散データの生成時に用いられた分割ブロックの組み合わせが並び替えられているため、第三者が例えば既知のデータフォーマットを用いて、元データのデータ構造の特徴を推測して復元を試みるという危険性を低減することができる。なお、分散装置は、例えば2個以上の分割ブロックを重複して用いて分散データを生成することで、分散データの欠損があった場合でも元データを復元できる可能性が向上し、耐障害性を向上させることができる。
第5の発明は、第1の発明において、演算処理部がいずれかの分散データにおける分割ブロックの組み合わせに乱数を更に用いて分散データを生成する。
第5の発明によれば、分散処理によって、元データの分割ブロックの内容を乱数によって置き換えることができ、元データの漏洩防止を図ることができ、元データのセキュリティレベルを向上させることができる。
第6の発明は、第1から第5の発明のうちいずれかの発明において、いずれかの分割ブロックが単一の分割ブロックにより構成されている。
第6の発明によれば、分散装置は、複数の分散データから元データを復元する場合に復元処理を高速に実行可能とさせるための分散データを生成することができる。
第7の発明は、第1から第6の発明のうちいずれかの発明において、元データを記憶する記憶部と、生成された第1の分散データ及び第2の分散データのうち、データサイズが小さい分散データを、ネットワークを介して分散装置と接続される外部装置に記憶させる通信制御部と、を更に備え、演算処理部は、データサイズが大きい分散データを記憶部に記憶させる。
第8の発明は、第1から第6の発明のうちいずれかの発明において、元データを記憶する記憶部と、ネットワークを介して分散装置と接続される外部装置との通信速度を取得する通信制御部と、を更に備え、演算処理部は、記憶部に対する読み込み速度又は書き込み速度と外部装置との通信速度とを基に、読み込み速度又は書き込み速度が通信速度より大きい場合に、生成された第1の分散データ及び第2の分散データのうち、データサイズが大きい分散データを記憶部に記憶させ、通信制御部は、生成された第1の分散データ及び第2の分散データのうち、データサイズが小さい分散データを外部装置に記憶させる。
第7又は第8の発明によれば、小さなサイズの分散データを、通信速度又はアクセススピードが遅い記憶装置(例えば分散装置とネットワークを介して接続されている外部記憶装置)に記憶させ、大きなサイズの分散データを高速な記憶領域(例えば分散装置のハードディスク)に記憶させることで、各々の分散データの記憶処理を高速に実行することができる。
第9の発明は、複数の分割ブロックを含む分散データを複数用いて、元データを復元する復元装置であって、所定分割ブロックに他の分割ブロックを複数回演算すると所定分割ブロックを得る演算処理を行う演算処理部を備え、演算処理部は、複数の分割ブロックから選択された所定数の分割ブロックの組み合わせを基に演算処理によって生成された、少なくとも第1の分散データと第2の分散データとを演算処理して全ての分割ブロックを取得し、取得された全ての分割ブロックを連接させて元データを復元し、第1の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックを含み、第2の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックと、第2の分散データにのみ用いられる分割ブロックとを含む。
第9の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って生成された複数個の分散データを用いて、元データの復元処理を高速に実行することができ、復元装置におけるメモリ量を削減できる。また、復元装置は、非対称なデータサイズを有する分散データから元データを安全に復元することができる。
第10の発明は、元データから、複数の分割ブロックを含む分散データを複数生成する分散装置における分散方法であって、元データを複数の分割ブロックに分割するステップと、分割された複数の分割ブロックのうち、所定分割ブロックと他の分割ブロックとを複数回演算して所定分割ブロックを得る演算処理を行うステップと、複数の分割ブロックから所定数の分割ブロックを組み合わせて演算処理を行い、分割ブロックの組み合わせが異なる、少なくとも第1の分散データと第2の分散データとを生成するステップと、を有し、第1の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックを含み、第2の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックと、第2の分散データにのみ用いられる分割ブロックとを含む。
第10の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って複数個の分散データを生成するため、分散データのデータサイズを元データのデータサイズより少なくでき、分散装置におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散装置の分散方法によれば、非対称なデータサイズの分散データを安全に生成することができる。
第11の発明は、複数の分割ブロックを含む分散データを複数用いて、元データを復元する復元装置における復元方法であって、複数の分割ブロックから選択された所定数の分割ブロックの組み合わせを基に生成された、少なくとも第1の分散データと第2の分散データとを取得するステップと、所定分割ブロックに他の分割ブロックを複数回演算すると所定分割ブロックを得る演算処理を行うステップと、少なくとも第1の分散データと第2の分散データとに対し、演算処理して全ての分割ブロックを取得するステップと、取得された全ての分割ブロックを連接させて元データを復元するステップと、を有し、第1の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックを含み、第2の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックと、第2の分散データにのみ用いられる分割ブロックとを含む。
第11の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って生成された複数個の分散データを用いて、元データの復元処理を高速に実行することができ、復元装置におけるメモリ量を削減できる。また、復元装置の復元方法によれば、非対称なデータサイズを有する分散データから元データを安全に復元することができる。
第12の発明は、元データから複数の分割ブロックを含む分散データを複数生成する分散ユニットと、複数の分割ブロックを含む分散データを複数用いて、元データを復元する復元ユニットと、を含み、分散ユニット及び復元ユニットは、所定分割ブロックに他の分割ブロックを複数回演算すると所定分割ブロックを得る演算処理を行う演算処理部を有し、分散ユニットの演算処理部は、複数の分割ブロックから所定数の分割ブロックを組み合わせて演算処理を行い、分割ブロックの組み合わせが異なる、少なくとも第1の分散データと第2の分散データとを生成し、復元ユニットの演算処理部は、複数の分割ブロックから選択された所定数の分割ブロックの組み合わせを基に演算処理によって生成された、少なくとも第1の分散データと第2の分散データとを演算処理して全ての分割ブロックを取得し、取得された全ての分割ブロックを連接させて元データを復元し、第1の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックを含み、第2の分散データにおける分割ブロックの組み合わせは、第1の分散データ及び第2の分散データに用いられる分割ブロックと、第2の分散データにのみ用いられる分割ブロックとを含む分散復元システムである。
第12の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って複数個の分散データを生成するため、分散データのデータサイズを元データのデータサイズより少なくでき、分散復元システムにおけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元システムは、非対称なデータサイズの分散データを安全に生成することができる。更に、分散復元システムは、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って生成された複数個の分散データを用いて、元データの復元処理を高速に実行することができ、分散復元システムにおけるメモリ量を削減できる。また、分散復元システムは、非対称なデータサイズを有する分散データから元データを安全に復元することができる。
(各実施の形態に共通する分散復元装置の機能的構成)
先ず、各実施の形態に共通する分散復元装置の構成について図54から図57を参照して説明する。図54は、分散復元装置200の機能的構成の一例を示すブロック図である。図54に示す分散復元装置200は、機能的構成の一例として実施の形態1(後述参照)の分散方法及び復元方法を実行するための機能的構成を図示したものであるが、同様にして、分散復元装置200は、後述する実施の形態2から実施の形態13の各分散方法及び復元方法を実行することもできる。
図54に示す分散復元装置200は、演算処理部100(点線部参照)及び記憶部3を含む。演算処理部100は、アプリケーション1及び分散復元モジュール2を含む。なお、図54では、図55に示す通信制御部としてのMAC/PHY90の図示を省略している。
アプリケーション1は、分散処理依頼部10及び復元処理依頼部20を含み、分散処理における分散条件情報(後述参照)及び各々のアドレス情報A1,A2,A3,A4と、復元処理における各々のアドレス情報B1,B2,B3,B4とを取り扱う。
分散処理依頼部10は、ユーザの入力操作(例えば元データODから複数の分散データを生成するための操作)に応じて、後述する分散復元モジュール2の分散処理部30に、分散条件情報及び各々のアドレス情報A1,A2,A3,A4を含む分散処理実行指示を出力する。なお、図54から図56では、ユーザの入力操作を示す補助線の図示を省略している。
復元処理依頼部20は、ユーザの入力操作(例えば複数の分散データから元データODを復元するための操作)に応じて、後述する分散復元モジュール2の復元処理部50に、各々のアドレス情報B1,B2,B3,B4を含む復元処理実行指示を出力する。
分散復元モジュール2は、分散処理部30、乱数生成部40及び復元処理部50を含む。
分散処理部30は、分散処理依頼部10から出力された分散処理実行指示を基に、分散データの生成処理を実行する。分散処理部30は、必要に応じて、乱数の生成を依頼するための乱数生成指示を乱数生成部40に出力する。
乱数生成部40は、分散処理部30から出力された乱数生成指示を基に乱数を生成し、生成された乱数を分散データのID(Identification)として分散処理部30に出力する。なお、乱数は、図55に示すRAM70に一時的に記憶され、又は図55に示すHDD80に記憶される。
復元処理部50は、復元処理依頼部20から出力された復元処理実行指示を基に、元データODの復元処理を実行する。復元処理部50は、復元された元データODをアドレス情報B1(後述参照)が示す記憶部3のアドレスに記憶する。
なお、図54に示す分散復元装置200はアプリケーション1を含む構成であるが、例えばアプリケーション1は分散復元装置200にインストールされずに他の装置にインストールされても良い。この場合、分散復元装置200は、ネットワークを介して接続された他の装置(例えば図56に示す外部記憶装置510,520,530)から送信された分散処理実行指示又は復元処理実行指示を基に、分散データの生成処理又は元データODの復元処理を実行しても良い。
記憶部3は、分散復元装置200に内蔵されるハードディスク又はフラッシュメモリを用いて構成され、分散復元装置200が取得したデータ又は生成したデータを記憶する。記憶部3は、例えば元データOD及び分散データを記憶する。なお、アプリケーション1は、記憶部3に記憶されている。記憶部3は、ハードディスク又はフラッシュメモリではなく、例えばUSB(Universal Serial Bus)端子を介して接続された外部記憶媒体(例えばUSBメモリ)を用いて構成されても良い。
なお、図54に示す分散復元装置200は記憶部3を含む構成であるが、例えば記憶部3は分散復元装置200に設けられずに、ネットワークを介して分散復元装置200と接続された他の装置(例えば図56に示す外部記憶装置510,520,530)に設けられても良い。
以下の説明では、アプリケーション1、分散復元モジュール2及び記憶部3がそれぞれ異なる装置において設けられていても、各々の動作の説明を煩雑にしないために、装置間の通信方法に関する説明は割愛する。
なお、図54において、分散復元モジュール2の上側に図示したアプリケーション1及び記憶部3は分散データの生成方法を説明するために図示されており、分散復元モジュール2の下側に図示したアプリケーション1及び記憶部3は元データODの復元方法を説明するために図示されている。但し、分散復元モジュール2の上側と下側の各アプリケーション1及び記憶部3は、同じアプリケーション及び記憶装置でも良いし、異なるアプリケーション及び記憶部でも良い。
(分散データの生成方法の概要)
始めに、分散データの生成方法の概要を説明する。アプリケーション1は、ユーザの入力操作に応じて、分散処理の対象となる元データODを取得して記憶部3に記憶する。なお、元データODは記憶部3に予め記憶されていても良い。
分散処理依頼部10は、分散処理における分散条件を示す分散条件情報(後述参照)、元データODを記憶した記憶部3のアドレスを示すアドレス情報A1、及び生成された各々の分散データの記憶先アドレスを示すアドレス情報A2,A3,A4を分散処理部30に出力する。分散処理依頼部10は、各々のアドレス情報A1,A2,A3,A4を生成しても良いし、ユーザの入力操作に応じて取得しても良い。
分散条件情報とは、分散復元装置200が分散処理を実行するために用いられる分散条件を示す情報を表し、例えば実施の形態1から実施の形態13に共通する非対称分散処理の条件情報である(後述参照)。ここでは、図1及び図2に示すように、分散条件情報の一例として、1個の元データODを3個の分散データに非対称分散処理する場合に対応する分散条件情報について説明する。
なお、図54では3個の分散データが生成される場合に対応して、分散処理依頼部10は、元データODの記憶先を示すアドレス情報A1と3個の分散データの記憶先を示すアドレス情報A2,A3,A4とを生成又は取得する。更に、分散復元装置200が少なくとも4個以上の分散データを生成する場合には、分散処理依頼部10は、元データODの記憶先を示すアドレス情報A1を含めて少なくとも5個以上のアドレス情報を生成又は取得する。
分散処理部30は、分散処理依頼部10から出力されたアドレス情報A1の記憶先アドレスから元データODを読み出し、分散条件情報に従って、例えば3個の分散データSD1,SD2,SD3を生成する。
分散処理部30は、各分散データのIDとして用いるための乱数を乱数生成部40に生成させ、生成された乱数をIDとして、各分散データのヘッダに分散条件情報に付加する(図57参照)。IDは、分散データの識別番号として機能する。
分散処理部30は、生成された各分散データSD1,SD2,SD3を、分散処理依頼部10から出力されたアドレス情報A2,A3,A4の記憶先アドレスに記憶させる。ここでは、説明を簡単にするために、全ての分散データSD1,SD2,SD3は記憶部3に記憶されているが、実際の分散復元装置200の利用においては、分散データSD1と、分散データSD2,SD3とは別々に記憶されることが好ましい(図1参照)。
(元データODの復元方法の概要)
次に、元データODの復元方法の概要を説明する。アプリケーション1は、ユーザの入力操作に応じて、復元処理の対象となる複数の分散データSD1,SD2,SD3を記憶部3に記憶する。なお、分散データSD1,SD2,SD3は記憶部3に予め記憶されていても良い。
復元処理依頼部20は、復元された元データODを記憶する記憶部3の記憶先アドレスを示すアドレス情報B1、及び各分散データの記憶部3における記憶先アドレスを示すアドレス情報B2,B3,B4を復元処理部50に出力する。復元処理依頼部20は、ユーザの入力操作又は予め定められた分散条件情報を例えば記憶部3から取得し、各々のアドレス情報B1,B2,B3,B4を生成しても良いし、ユーザの入力操作に応じて取得しても良い。
復元処理部50は、復元処理依頼部20から出力されたアドレス情報B2,B3,B4の記憶先アドレスから分散データを読み出し、分散条件情報に従って、例えば1個の元データODを復元する。復元処理部50は、復元された元データODを、復元処理依頼部20から出力されたアドレス情報B1の記憶先アドレスに記憶させる。
(各実施の形態に共通する分散復元装置のハードウェア構成)
図55は、分散復元装置200のハードウェア構成を示すブロック図である。ここでは、図54に示すアプリケーション1、分散復元モジュール2及び記憶部3が、同一の分散復元装置200において動作する例を説明する。
図55に示す分散復元装置200は、CPU(Central Processing Unit)60、CPU60のワークメモリとしてのRAM(Random Access Memory)70、書き換え不能な不揮発性メモリであるROM(Read Only Memory)75、書き換え可能な不揮発性メモリであるHDD(ハードディスク)80、及び通信制御部としてのMAC/PHY(Media Access Control / Physical Layer)90を含む構成である。
図55に示す分散復元装置200において、CPU60、RAM70、ROM75、HDD80及びMAC/PHY90は、バスBS0を介して相互にデータの入出力が可能に接続されている。
図54に示す演算処理部100は、図55に示すCPU60、RAM70及びROM75に対応する。図54に示す記憶部3は、図55に示すHDD80に対応する。このため、各々のアドレス情報A1,A2,A3,A4,B1,B2,B3,B4は、フォルダ名又はファイル名としても良い。また、元データODは、HDD80ではなく、例えばROM75に記憶されていても良い。
MAC/PHY90は、分散復元装置200における通信制御部として機能し、例えばCPU60によって生成された分散データを、ネットワークNWを介して分散復元装置200と接続されている他の装置(例えば図56に示す外部記憶装置510,520,530)に送信する。
(各実施の形態に共通する分散復元装置を含む分散復元システムのハードウェア構成)
図56は、分散復元装置200を含む分散復元システム1000のハードウェア構成を示すブロック図である。ここでは、図54に示すアプリケーション1及び分散復元モジュール2が動作する分散復元装置200と、図54に示す記憶部3が設けられた装置とが異なる例を説明する。なお、図56に示す分散復元システム1000において、元データODは、分散復元モジュール2が動作する分散復元装置200内のHDD80に記憶されているとする。
図56に示す分散復元システム1000は、分散復元装置200と、ネットワークNWを介して分散復元装置200と接続された外部記憶装置510、外部記憶装置520及び外部記憶装置530とを含む。外部記憶装置510、外部記憶装置520及び外部記憶装置530は、例えばサーバ装置であり、それぞれ分散データSD1、分散データSD2及び分散データSD3を記憶する。即ち、図56に示す分散復元システム1000では、分散復元装置200は、分散データSD1を外部記憶装置510に記憶させ、分散データSD2を外部記憶装置520に記憶させ、分散データSD3を外部記憶装置530に記憶させる。
但し、外部記憶装置510は、分散データSD1,SD2を記憶しても良い。外部記憶装置520は、分散データSD2,SD3を記憶しても良い。同様に、外部記憶装置530は、分散データSD3,SD1を記憶しても良い。これにより、分散復元システム1000は、分散データを記憶する外部記憶装置を1つ省略することができ、分散データの管理を簡易化できる。
このように、各分散データSD1,SD2,SD3を異なる外部記憶装置510,520,530に記憶させる目的は、第三者による元データの不正な復元処理を防止するためである。例えば、各外部記憶装置510,520,530の管理者が別人であれば、1人の管理者の権限だけでは元データを復元できなくなり、元データの管理も安全である。
例えば、分散復元装置200がクラウドコンピューティング技術を用いる場合、特定の1社の外部記憶装置(例えば外部記憶装置510)に全ての分散データが記憶されると、外部記憶装置510の管理者の入力操作に応じて、元データが復元される可能性がある。以下、クラウドコンピューティング技術を用いるコンピュータを「クラウドコンピュータ」という。図56に示す分散復元システム1000を用いることで、元データの復元の可能性を低減することができる。
現在、クラウドコンピュータは利用料金の安さ及び手軽さが評価されているが、データの内容を盗み見される可能性があり、特にセキュリティが要求される業務ではクラウドコンピュータの利用が進まない状況にある。従って、図56に示す分散復元システム1000を用いることで、安全にクラウドコンピュータを利用できるようになる。
アプリケーション1及び分散復元モジュール2が動作する分散復元装置200は、CPU60、RAM70、ROM75、HDD80及びMAC/PHY90を含む。図56に示す分散復元装置200において、CPU60、RAM70、ROM75、HDD80及びMAC/PHY90は、バスBS0を介して相互にデータの入出力が可能に接続されている。
図54に示す演算処理部100は、図56に示すCPU60、RAM70及びROM75に対応する。元データODの記憶先はHDD80である。このため、アドレス情報A1,B1は、フォルダ名又はファイル名としても良い。
MAC/PHY90は、有線用又は無線用の通信回路を用いて構成され、分散復元装置200と、ネットワークNWを介して接続された外部記憶装置510,520,530との間の通信を制御する。
外部記憶装置510は、MAC/PHY511、CPU512、HDD513及びRAM514を含む。外部記憶装置510において、MAC/PHY511、CPU512、HDD513及びRAM514は、バスBS1を介して、データが相互に入出力可能に接続されている。
CPU512は、MAC/PHY511又はHDD513へのアクセスを行い、外部記憶装置510の総括的な制御を行う。MAC/PHY511は、ネットワークNWを介して、分散復元装置200との間における通信を制御する。HDD513は、分散復元装置200により生成された分散データSD1を記憶する。
外部記憶装置520は、MAC/PHY521、CPU522、HDD523及びRAM524を含む。外部記憶装置520において、MAC/PHY521、CPU522、HDD523及びRAM524は、バスBS2を介して、データが相互に入出力可能に接続されている。
CPU522は、MAC/PHY521又はHDD523へのアクセスを行い、外部記憶装置520の総括的な制御を行う。MAC/PHY521は、ネットワークNWを介して、分散復元装置200との間における通信を制御する。HDD523は、分散復元装置200により生成された分散データSD2を記憶する。
外部記憶装置530は、MAC/PHY531、CPU532、HDD533及びRAM534を含む。外部記憶装置530において、MAC/PHY531、CPU532、HDD533及びRAM534は、バスBS3を介して、データが相互に入出力可能に接続されている。
CPU532は、MAC/PHY531又はHDD533へのアクセスを行い、外部記憶装置530の総括的な制御を行う。MAC/PHY531は、ネットワークNWを介して、分散復元装置200との間における通信を制御する。HDD533は、分散復元装置200により生成された分散データSD3を記憶する。
このように、分散データSD1,SD2,SD3の記憶先は、分散復元モジュール2が動作する分散復元装置200とは異なる外部記憶装置510,520,530のHDD513,523,533である。このため、アドレス情報A2,A3,A4,B2,B3,B4は、ネットワークNWにおけるフォルダ名若しくはファイル名、又はURL(Uniform Resource Locator)としても良い。
なお、外部記憶装置510,520,530において、分散データSD1,SD2,S3はHDD513,523,533に記憶されているが、例えばフラッシュメモリ又はRAM514,524,534又は不図示のROMに記憶されても良い。
図56において、MAC/PHY90は、分散復元装置200と他の外部記憶装置510,520,530との間における通信の通信速度を算出して取得し、算出された通信速度の情報をCPU60に出力する。
CPU60(例えば分散処理部30)は、HDD80(記憶部3)に対するデータの読み込み速度又は書き込み速度を算出して取得し、算出された読み込み速度又は書き込み速度と通信速度とを比較する。
CPU60(例えば分散処理部30)は、読み込み速度又は書き込み速度の値が通信速度の値より大きいと判定した場合に、各分散データSD1,SD2,SD3のうちデータサイズが小さい分散データ(例えば分散データSD1)を他の外部記憶装置510,520,530のうちいずれかに記憶させると判定し、データサイズが大きい分散データ(例えば分散データSD2,SD3)をHDD80(記憶部3)に記憶させると判定する。
CPU60(例えば分散処理部30)は、データサイズが小さい分散データ(例えば分散データSD1)をMAC/PHY90に出力する。MAC/PHY90は、CPU60から出力された分散データ(例えば分散データSD1)を他の外部記憶装置(例えば外部記憶装置510)に送信して記憶させる。
CPU60(例えば分散処理部30)は、データサイズが大きい分散データ(例えば分散データSD2,SD3)をHDD80(記憶部3)に記憶させる。
従って、分散復元装置200は、非対称なデータサイズの分散データを生成することができるため、通信速度の値が小さい、即ち、通信時間の遅い外部記憶装置(例えば外部記憶装置510)のHDD(例えばHDD513)には小さなデータサイズの分散データを、読み込み速度又は書き込み速度の値が大きい分散復元装置200のHDD80には大きなデータサイズの分散データを記憶させる。
これにより、分散復元システム1000は、分散復元システム1000における処理速度を向上させることができる。なお、実際の利用の一例としては、分散復元装置200のHDD80には大きなデータサイズの分散データが記憶され、外部記憶装置(例えば外部記憶装置510)のHDDには小さなデータサイズの分散データが記憶されることが、分散復元装置200と他の外部記憶装置510,520,530との間の通信遅延の発生を低減させることができる点で好ましい。
(分散条件情報)
図57は、図2又は図10に示す分散データSD1,SD2,SD3毎の分散条件情報Index_SD1,Index_SD2,Index_SD3,Index_SD4,Index_SD5の各内容を示す説明図である。図57(a)は、図2に示す分散データSD1,SD2,SD3に対する基本的な分散条件情報である。図57(b)は、分割ブロックと乱数とを用いて図10に示す分散データSD3が生成されている場合の分散条件情報Index_SD4である。図57(c)は、図10に示す分散データSD3の生成に用いられている分割ブロック数の情報を含む場合の分散条件情報Index_SD5である。図57(a)、図57(b)及び図57(c)の各説明では、各分散データの構成の説明は省略して詳細は後述する。
分散処理部30は、例えば3個の分散データSD1,SD2,SD3を生成した後、各分散データSD1,分散データSD2,分散データSD3の各ヘッダ部に、分散条件情報を付加する。ここで分散処理依頼部10から出力された分散処理実行指示に含まれる分散条件情報とは、どのような分散方法によって分散データを生成したか、又はどのような復元方法によって復元処理を実行するかを示す情報であり、実施の形態毎における具体的な分散処理と復元処理の内容の説明は後述する。更に、分散条件情報は、分散データの属性情報を含む。属性情報は、例えば分散データのID、分散データを生成する場合に用いられる分割ブロックの組み合わせに対応する段数である。
例えば図57(a)に示す分散データSD2(図2参照)の[分散(2)a]の生成では、元データODの列1と列2とが用いられて元データODを2段(行)に畳み込む操作が行われている。このため、分散条件情報Index_SD2は、図57(a)に示す分散データSD2を生成するための条件として、「2段(行)」、「1・2スタート」を含む。「1・2スタート」は、分散データSD2の第1番目の列aに対応する[分散(2)a]が列1と列2とがXOR処理されたデータブロックであることを示す。
同様に、図57(a)に示す分散データSD1(図2参照)の[分散(1)a]の生成では、元データODの列1だけが用いられ、[分散(1)b]の生成では元データODの列2と列3とが用いられて元データODを2段(行)に畳み込む操作が行われている。このため、分散条件情報Index_SD1は、図57(a)に示す分散データSD1を生成するための条件として、「2段(行)」、「1スタート」を含む。
同様に、図57(a)に示す分散データSD3(図2参照)の[分散(1)a]の生成では、元データODの列1と列9とが用いられて元データODを2段(行)に畳み込む操作が行われている。このため、分散条件情報Index_SD3は、図57(a)に示す分散データSD3を生成するための条件として、「2段(行)」、「1・9スタート」を含む。
このような分散条件情報を付加することで、復元処理部50は、元データODを復元する場合に、どのような復元処理を選択すればよいかがわかる。
更に、分散条件情報は、識別情報としてのIDを付加しても良い。これにより、復元処理部50は、元データODを復元する場合に、誤った分散データを選択することなく、正しい分散データを選択して元データODを復元することができる。
例えば、復元処理部50は、同じ元データODから生成された全ての分散データに対して共通のIDを付与した場合、元データODを復元するときに分散条件情報のIDを判定することで、元データODが復元可能であるか否かを復元処理の開始前に判定することができる。また、復元処理部50は、全ての分散データにおける分散条件情報のIDが一個でも異なっていると判定した場合には、復元処理ができず、無駄に復元処理を行う必要がなくなる。また、復元処理部50は、分散条件情報にIDを用いることで、復元処理結果が正しい元データODであることを保証することができる。
なお、IDは、分散データを生成する度に生成された通し番号、又は、乱数生成部40によって生成された乱数を用いれば良い。
なお、同一の元データODから生成された全ての分散データに対して、共通のIDを付与すると説明したが、同一の元データから生成された分散データであることを示す方法は、これに限定されない。例えば、分散処理部30は、適当な一次関数の直線上に並ぶ点をIDとして用いても良い。例えば、分散処理部30は、特定の一次関数(一次関数に限定しない)に対して適当な乱数値(x値)を演算した関数値(y値)を、共通のIDの代わりのIDとして用いても良い。
なお、復元処理部50は、分散条件情報に含まれるIDを基に、元データODが復元可能か否かを判定しているが、例えば元データODに設けられた付加情報(例えばマーク)が復元処理の結果として復元処理部50によって存在を確認できるか否かによって、正しい復元処理ができたか否かを判定しても良い。
なお、図57では、分散条件情報をヘッダ部に付加すると説明したが、分散条件情報は分散データのどの箇所(例えば分散データの末端部分)に付加しても良いし、又は、分散条件情報を分散データとは別のファイルとして分散データのファイルと分散条件情報のファイルとを関連付けて記憶させても良い。
なお、例えば分散条件情報Index_SD1は、「ID:xzxzxzx、2段、1スタート」であるが、分散条件情報の記述方法は様々にあり、図57(a)に示す記述方法に限定されない。例えば、分散条件情報は、ASCII文字列を用いて記述されても良いし、特殊なコマンド又は識別子を用いて記述されても良い。
また、例えば図57(b)に示す分散データSD3(図3参照)の[分散(3)a]の生成では元データODの列3だけが用いられ、[分散(3)b]の生成では元データODの列6だけが用いられ、[分散(3)c]の生成では元データODの列1と列2と列9とが用いられて元データODを3段(行)に畳み込む操作が行われている。
更に、図57(b)に示す分散データSD3(図3参照)の[分散(3)d]の生成では、元データODの列4と列5と乱数C(例えば乱数生成部40により生成)とが用いられている。更に、同図に示す分散データSD3(図3参照)の[分散(3)e]の生成では、元データODの列7と列8と乱数D(例えば乱数生成部40により生成)とが用いられている。なお、分散処理部30は、乱数生成部40によって生成された乱数C,Dを用いて分散データを生成することで、図57(b)に示す分散データSD3のセキュリティを向上させることができる。
このため、分散条件情報Index_SD4は、図57(b)に示す分散データSD3を生成するための条件として、「3段(行)」、「3スタート」、「乱数:C,D」を含む。
また、分散条件情報は分散データの生成に用いられた分割ブロックの総数の情報であるLEN長を含んでも良い。例えば、図57(c)に示す分散データSD3は、分散データSD3の生成に用いられた分割ブロックの総数は「9」である。従って、分散条件情報Index_SD5は、図57(c)に示す分散データSD3を生成するための条件として、「3段(行)」、「3スタート」、「LEN長:9」を含む。また、図57(c)に示す分散条件情報Index_SD5は、同図に示す分散データSD3の生成に用いられた乱数Cと乱数Dを含む「乱数:C,D」の情報を含んでも良い。
以下、上述した分散復元装置200の各種の実施の形態を、図面を参照して説明する。なお、本発明は、装置としての分散復元装置200に対応する分散装置及び復元装置、又は分散復元装置200をコンピュータとして動作させるためのプログラムとして表現することも可能である。更に、本発明は、分散復元装置200により実行される各分散方法又は復元方法として表現することも可能である。更に、本発明は、図56に示す分散復元システム1000として表現することも可能である。即ち、本発明は、装置、方法、プログラム及びシステムのうちいずれのカテゴリにおいても表現可能である。
以下の各実施の形態では、図54に示す機能的構成を有する分散復元装置200が元データODから複数の分散データを生成する分散処理、及び、複数の全ての分散データから元データODを復元する復元処理について説明する。
(実施の形態1)
先ず、分散復元装置200の実施の形態1について、図1から図4を参照して説明する。図1は、実施の形態1における分散データの生成方法の一例を示す説明図である。図2は、実施の形態1における分散データの内容を示す説明図である。図3は、実施の形態1における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図4は、実施の形態1における動作手順を説明するフローチャートである。
実施の形態1では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計3個の分散データSD1、分散データSD2、分散データSD3を生成する方法、及び、3個の分散データSD1、分散データSD2、分散データSD3を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2,SD3をHDD80に記憶させる。これにより、分散復元装置200は、3個の分散データSD1,SD2,SD3を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態1では、図1及び図2に示すように、元データODは、それぞれ連接された合計16個の分割ブロックDB1〜DB16を含んで構成されている。なお、実施の形態1では、説明を簡単にするために、元データODは合計16個の分割ブロックDB1〜DB16を含む構成としているが、元データODを構成する分割ブロックの数は16に限定されない。
(実施の形態1における分散データの構成)
実施の形態1における分散データの構成について、図1及び図2を参照して説明する。図1及び図2に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)b]は列2の分割ブロックDB2と列3の分割ブロックDB3とがXOR処理された値であり、[分散(1)c]は列4の分割ブロックDB4と列5の分割ブロックDB5とがXOR処理された値であり、[分散(1)d]は列6の分割ブロックDB6と列7の分割ブロックDB7とがXOR処理された値である。
従って、分散データSD1は、4個の列[分散(1)a],[分散(1)b],[分散(1)c],[分散(1)d]が連接された構成である。
このように、分散データSD1は、元データODの半分のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は4個であって、元データODのブロック(列)数の16個の1/4である。
次に、図1及び図2に示す分散データSD2において、[分散(2)a]は列1の分割ブロックDB1と列2の分割ブロックDB2とがXOR処理された値であり、[分散(2)b]は列3の分割ブロックDB3と列4の分割ブロックDB4とがXOR処理された値であり、[分散(2)c]は列5の分割ブロックDB5と列6の分割ブロックDB6とがXOR処理された値であり、[分散(2)d]は列7の分割ブロックDB7と列8の分割ブロックDB8とがXOR処理された値である。
従って、分散データSD2は、4個の列[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d]が連接された構成である。
このように、分散データSD2は、元データODの半分のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は4個であって、元データODのブロック(列)数の16個の1/4である。
同様に、図1及び図2に示す分散データSD3において、[分散(3)a]は列1の分割ブロックDB1と列9の分割ブロックDB9とがXOR処理された値であり、[分散(3)b]は列2の分割ブロックDB2と列10の分割ブロックDB10とがXOR処理された値であり、[分散(3)c]は列3の分割ブロックDB3と列11の分割ブロックDB11とがXOR処理された値であり、[分散(3)d]は列4の分割ブロックDB4と列12の分割ブロックDB12とがXOR処理された値であり、[分散(3)e]は列5の分割ブロックDB5と列13の分割ブロックDB13とがXOR処理された値であり、[分散(3)f]は列6の分割ブロックDB6と列14の分割ブロックDB14とがXOR処理された値であり、[分散(3)g]は列7の分割ブロックDB7と列15の分割ブロックDB15とがXOR処理された値であり、[分散(3)h]は列8の分割ブロックDB8と列16の分割ブロックDB16とがXOR処理された値である。
従って、分散データSD3は、8個の列[分散(3)a],[分散(3)b],[分散(3)c],[分散(3)d],[分散(3)e],[分散(3)f],[分散(3)g],[分散(3)h]が連接された構成である。
このように、分散データSD3は、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は8個であって、元データODのブロック(列)数の16個の1/2である。
(実施の形態1における分散データの生成方法)
実施の形態1における分散データSD1,SD2,SD3の具体的な生成方法について、図1及び図2を参照して説明する。分散復元装置200は、先ず、元データODを2個のデータに均等に分割する。但し、分散復元装置200は、元データODを3個以上のデータに均等に分割しても良い(実施の形態2参照)。例えば、分散復元装置200は、合計16個の分割ブロックDB1〜DB16を含む元データODを、列1〜列8のデータと、列9〜列16のデータとに均等に分割する。
分散復元装置200は、列1〜列8のデータのうちいずれかの列のデータと、列9〜列16のデータのうちいずれかの列のデータとをXOR処理し、合計8個のXOR処理されたデータを連接させて分散データSD3を生成する。
例えば、図1及び図2に示すように、分散復元装置200は、列1と列9とをXOR処理したデータと、列2と列10とをXOR処理したデータと、列3と列11とをXOR処理したデータと、列4と列12とをXOR処理したデータと、列5と列13とをXOR処理したデータと、列6と列14とをXOR処理したデータと、列7と列15とをXOR処理したデータと、列8と列16とをXOR処理したデータとを連接した分散データSD3を生成する。
次に、分散復元装置200は、分散データSD3の生成時における各XOR処理に用いた列1〜列8のデータ又は列9〜列16のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置200は、列の組み合わせとして列1〜列8のデータを選択するが、分散データSD3の生成時における各XOR処理の対象とされた2個の列のデータのうちどちらか一方のデータを選択しても良い。例えば、列1,列10,列3,列4,列13,列6,列7,列16の各データが選択されても良い。
分散復元装置200は、選択された列の組み合わせに対し、本発明者による特願2010−077630号の秘密分散法に従って分散処理を実行し、2個の分散データSD1,SD2を生成する。特願2011−077630号の秘密分散法に従った分散処理によって、分散データSD3の生成時における各XOR処理に用いた列1〜列8及び列9〜列16の各データのうち、分散復元装置200によって選択された列の組み合わせ(例えば列1〜列8)がそれぞれ異なる組み合わせによってXOR処理されて、2個の分散データSD1,SD2が生成される。
具体的には、分散復元装置200は、例えば列1〜列8の組み合わせを選択した場合に、[分散(1)a]に列1だけを用い、[分散(1)b]に列2と列3とのXOR処理した値を用い、[分散(1)c]に列4と列5とのXOR処理した値を用い、[分散(1)d]に列6と列7とのXOR処理した値を用い、[分散(1)a],[分散(1)b],[分散(1)c],[分散(1)d]を連接させて分散データSD1を生成する。
更に、分散復元装置200は、生成された分散データSD1に対し、分散データSD1の下段に図示した偶数の列2、列4、列6を左方向に一列分シフトさせることによって、分散データSD2を生成する。従って、分散復元装置200は、分散データSD2を生成する場合では、分散データSD1の生成時に用いない列8のデータを、列7とのXOR処理に用いる。
なお、分散復元装置200は、分散データSD2を分散データSD1より先に生成しても良い。具体的には、分散復元装置200は、例えば列1〜列8の組み合わせを選択した場合に、[分散(2)a]に列1と列2とのXOR処理した値を用い、[分散(2)b]に列3と列4とのXOR処理した値を用い、[分散(2)c]に列5と列6とのXOR処理した値を用い、[分散(2)d]に列7と列8とのXOR処理した値を用い、[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d]を連接させて分散データSD2を生成する。
更に、分散復元装置200は、生成された分散データSD2に対し、分散データSD2の下段に図示した偶数の列2、列4、列6、列8を右方向に一列分シフトさせることによって、分散データSD1を生成する。従って、分散復元装置200は、分散データSD1を生成する場合では、分散データSD2の生成時に用いた列8のデータを用いず、[分散(1)a]に単一の列1だけを用いる。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2,SD3とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態1における非対称分散の割合は、図2に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/4であり、HDD80に記憶される分散データSD2,SD3のデータサイズが元データODのデータサイズの3/4(1/4+1/2)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:3の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3の各データサイズの合計は、元データODのデータサイズと同じになる。
なお、本実施の形態を含む各実施の形態において、上述した分散データSD1,SD2,SD3の各列(図1又は図2参照)に配置した元データODの列の番号には特段の意味はなく、分散復元装置200は、例えば元データODの奇数番号の列だけを用いて分散データSD1,SD2を生成し、奇数番号の列を上段に、偶数番号の列を下段に配置して、それぞれをXOR処理することで分散データSD3を生成しても良い。即ち、分散復元装置200における各分散データの生成時に用いられる元データODの列の配置は任意である。
なお、以下の図の説明では、説明が煩雑になるのを避けるため、元データODに対するデータ処理の説明は割愛しているが、元データを図示した全ての図において、元データODとは何らかのデータ処理が施された元データであるか、又は元データODに何らかのデータ処理が施されたデータであるかは問わないとする。
従って、実施の形態1に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態1の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3を生成するため、分散データSD1,SD2,SD3のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3を安全に生成することができる。
(実施の形態1における元データの復元方法)
実施の形態1における元データODの具体的な復元方法について、図3及び図4を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2,SD3を取得する。
なお、本実施の形態を含む各実施の形態の分散復元装置200の動作の実行順序を示す図において、例えば分散復元装置200が第1番目に実行する動作を「(1)」と示し、第2番目に実行する動作を「(2)」と示し、以下、同様に第n番目に実行する動作を「(n)」と示す。
図3及び図4において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列2を取得し(2)、分散データSD3の[分散(3)a]と既に取得した列1とをXOR処理して元データODの列9を取得する(2)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列2とをXOR処理して元データODの列3を取得し(3)、分散データSD3の[分散(3)b]と既に取得した列2とをXOR処理して元データODの列10を取得する(3)。
分散復元装置200は、分散データSD2の[分散(2)b]と既に取得した列3とをXOR処理して元データODの列4を取得し(4)、分散データSD3の[分散(3)c]と既に取得した列3とをXOR処理して元データODの列11を取得する(4)。
分散復元装置200は、分散データSD1の[分散(1)c]と既に取得した列4とをXOR処理して元データODの列5を取得し(5)、分散データSD3の[分散(3)d]と既に取得した列4とをXOR処理して元データODの列12を取得する(5)。
分散復元装置200は、分散データSD2の[分散(2)c]と既に取得した列5とをXOR処理して元データODの列6を取得し(6)、分散データSD3の[分散(3)e]と既に取得した列5とをXOR処理して元データODの列13を取得する(6)。
分散復元装置200は、分散データSD1の[分散(1)d]と既に取得した列6とをXOR処理して元データODの列7を取得し(7)、分散データSD3の[分散(3)f]と既に取得した列6とをXOR処理して元データODの列14を取得する(7)。
分散復元装置200は、分散データSD2の[分散(2)d]と既に取得した列7とをXOR処理して元データODの列8を取得し(8)、分散データSD3の[分散(3)g]と既に取得した列7とをXOR処理して元データODの列15を取得する(8)。
最後に、分散復元装置200は、分散データSD3の[分散(3)h]と既に取得した列8とをXOR処理して元データODの列16を取得する(9)。
分散復元装置200は、(1)〜(9)の各動作において取得された列1〜列16の各分割ブロックDB1〜DB16を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態1の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3から元データODを安全に復元することができる。
(実施の形態1と特願2011−077630号との分散処理及び復元処理の違い)
ここで、実施の形態1の分散処理及び復元処理と、本発明者による特願2011−077630号の秘密分散法における分散処理及び復元処理との違いについて、図51及び図52を参照して説明する。図51は、特願2011−077630号の秘密分散法を用いた閾値4、分散数4の分散データの内容を示す説明図である。図52は、図51に示す方法により生成された4個の分散データから元データを復元するための動作手順を説明するフローチャートである。
図51に示す各分散データSD1,SD2,SD3,SD4は、実施の形態1と同様に合計16個の分割ブロックDB1〜DB16を含んで構成される元データODから特願2011−077630号の秘密分散法(閾値4、分散数4)に従って生成されている。閾値4であるため、各分散データの列には1個、2個、3個又は4個の分割ブロックがXOR処理された値が用いられ、各々の分散データSD1,SD2,SD3,SD4において各列のXOR処理に用いられる分割ブロックは他の分散データの各列のXOR処理に用いられる分割ブロックと異なるように組み合わされている(図51参照)。
但し、各実施の形態においても、各々の分散データにおいて各列のXOR処理に用いられる分割ブロックは他の分散データの各列のXOR処理に用いられる分割ブロックと異なるように組み合わされている。
具体的には、図51に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)b]は列2の分割ブロックDB2と列5の分割ブロックDB5とがXOR処理された値であり、[分散(1)c]は列6の分割ブロックDB6と列9の分割ブロックDB9とがXOR処理された値であり、[分散(1)d]は列3の分割ブロックDB3と列10の分割ブロックDB10と列13の分割ブロックDB13とがXOR処理された値であり、[分散(1)e]は列4の分割ブロックDB4と列7の分割ブロックDB7と列14の分割ブロックDB14とがXOR処理された値であり、[分散(1)f]は列8の分割ブロックDB8と列11の分割ブロックDB11とがXOR処理された値であり、[分散(1)g]は列12の分割ブロックDB12と列15の分割ブロックDB15とがXOR処理された値であり、[分散(1)h]は列16の分割ブロックDB16である。
更に、図51に示す分散データSD2において、[分散(2)c]は列1の分割ブロックDB1と列2の分割ブロックDB2とがXOR処理された値であり、[分散(2)d]は列5の分割ブロックDB5と列6の分割ブロックDB6と列3の分割ブロックDB3と列4の分割ブロックDB4とがXOR処理された値であり、[分散(2)e]は列9の分割ブロックDB9と列10の分割ブロックDB10と列7の分割ブロックDB7と列8の分割ブロックDB8とがXOR処理された値であり、[分散(2)f]は列13の分割ブロックDB13と列14の分割ブロックDB14と列11の分割ブロックDB11と列12の分割ブロックDB12とがXOR処理された値であり、[分散(2)g]は列15の分割ブロックDB15と列16の分割ブロックDB16とがXOR処理された値である。
更に、図51に示す分散データSD3において、[分散(3)c]は列4の分割ブロックDB4であり、[分散(3)d]は列2の分割ブロックDB2と列3の分割ブロックDB3と列8の分割ブロックDB8とがXOR処理された値であり、[分散(3)e]は列1の分割ブロックDB1と列6の分割ブロックDB6と列7の分割ブロックDB7と列12の分割ブロックDB12とがXOR処理された値であり、[分散(3)f]は列5の分割ブロックDB5と列10の分割ブロックDB10と列11の分割ブロックDB11と列16の分割ブロックDB16とがXOR処理された値であり、[分散(3)g]は列9の分割ブロックDB9と列14の分割ブロックDB14と列15の分割ブロックDB15とがXOR処理された値であり、[分散(3)h]は列13の分割ブロックDB13である。
最後に、図51に示す分散データSD4において、[分散(4)b]は列4の分割ブロックDB4であり、[分散(4)c]は列8の分割ブロックDB8であり、[分散(4)d]は列3の分割ブロックDB3と列12の分割ブロックDB12とがXOR処理された値であり、[分散(4)e]は列2の分割ブロックDB2と列7の分割ブロックDB7と列16の分割ブロックDB16とがXOR処理された値であり、[分散(4)f]は列6の分割ブロックDB6と列11の分割ブロックDB11とがXOR処理された値であり、[分散(4)g]は列1の分割ブロックDB1と列10の分割ブロックDB10と列15の分割ブロックDB15とがXOR処理された値であり、[分散(4)h]は列5の分割ブロックDB5と列14の分割ブロックDB14とがXOR処理された値であり、[分散(4)i]は列9の分割ブロックDB9であり、[分散(4)j]は列13の分割ブロックDB13である。
従って、図51に示す各分散データSD1,SD2,SD3,SD4は、いずれかの分散データを基準とした場合に、基準となる分散データから4段構成のうちXOR処理に用いられる1個又は2個以上の横方向の列が左方向又は右方向に何列かシフトすることで、他の分散データと異なる構成を有することになっている。
例えば、基準となる分散データを分散データSD2とした場合、分散データSD1は、分散データSD2の第1段目の横方向の列(列1,列5,列9,列13)が左方向に2列分シフトし、分散データSD2の第2段目の横方向の列(列2,列6,列10,列14)が左方向に1列分シフトし、分散データSD2の第4段目の横方向の列(列4,列8,列12,列16)が右方向に1列分シフトして構成されている。
同様に、基準となる分散データを分散データSD2とした場合、分散データSD3は、分散データSD2の第1段目の横方向の列(列1,列5,列9,列13)が右方向に2列分シフトし、分散データSD2の第2段目の横方向の列(列2,列6,列10,列14)が右方向に1列分シフトし、分散データSD2の第4段目の横方向の列(列4,列8,列12,列16)が左方向に1列分シフトして構成されている。
同様に、基準となる分散データを分散データSD2とした場合、分散データSD4は、分散データSD2の第1段目の横方向の列(列1,列5,列9,列13)が右方向に4列分シフトし、分散データSD2の第2段目の横方向の列(列2,列6,列10,列14)が右方向に2列分シフトし、分散データSD2の第4段目の横方向の列(列4,列8,列12,列16)が左方向に2列分シフトして構成されている。
図51に示す各分散データSD1,SD2,SD3,SD4から元データODを復元するための復元処理では、図52において、特願2011−077630号の秘密分散装置(以下、単に「秘密分散装置」という)は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD4の[分散(4)b]を基にして元データODの列4を取得し(2)、分散データSD4の[分散(4)c]を基にして元データODの列8を取得する(2)。
秘密分散装置は、分散データSD2の[分散(2)c]と既に取得した列1とをXOR処理して元データODの列2を取得し(3)、分散データSD3の[分散(3)d]と既に取得した列2と列8とをXOR処理して元データODの列3を取得する(4)。
秘密分散装置は、分散データSD1の[分散(1)b]と既に取得した列2とをXOR処理して元データODの列5を取得し(5)、分散データSD4の[分散(4)d]と既に取得した列3とをXOR処理して元データODの列12を取得する(6)。
秘密分散装置は、分散データSD2の[分散(2)d]と既に取得した列5と列3と列4とをXOR処理して元データODの列6を取得し(7)、分散データSD3の[分散(3)e]と既に取得した列1と列6と列12とをXOR処理して元データODの列7を取得する(8)。
秘密分散装置は、分散データSD1の[分散(1)c]と既に取得した列6とをXOR処理して元データODの列9を取得し(9)、分散データSD4の[分散(4)e]と既に取得した列2と列7とをXOR処理して元データODの列16を取得する(10)。
秘密分散装置は、分散データSD2の[分散(2)e]と既に取得した列9と列7と列8とをXOR処理して元データODの列10を取得し(11)、分散データSD3の[分散(3)f]と既に取得した列5と列10と列16とをXOR処理して元データODの列11を取得する(12)。
最後に、秘密分散装置は、分散データSD1の[分散(1)d]と既に取得した列10と列3とをXOR処理して元データODの列13を取得し(13)、分散データSD2の[分散(2)f]と既に取得した列13と列11と列12とをXOR処理して元データODの列14を取得し(14)、分散データSD3の[分散(3)g]と既に取得した列9と列14とをXOR処理して元データODの列15を取得する(15)。
即ち、図52に示す復元処理では、分散データSD1では最上段の列の分割ブロック(図51において網掛けされた列1,列5,列9,列13)が復元され、分散データSD2では第2段目の列の分割ブロック(同図において網掛けされた列2,列6,列10,列14)が復元され、分散データSD3では第3段目の列の分割ブロック(同図において網掛けされた列3,列7,列11,列15)が復元され、分散データSD4では第4段目の列の分割ブロック(同図において網掛けされた列4,列8,列12,列16)が復元されている。
従って、本発明者による特願2011−077630号の秘密分散法における復元処理では、図51に示す各分散データSD1,SD2,SD3,SD4のうち、網掛けされた列の分割ブロックだけを用いて復元可能であり、網掛けされていない列の分割ブロックを含まない列は不要となる。具体的には、図53に示すように、分散データSD1の列e,列f,列g,列h、分散データSD2の列g、分散データSD3の列c,列h、分散データSD4の列f,列g,列h,列i,列jの各分割ブロックは不要な列となる。図53は、図51に示す分散データSD1,SD2,SD3,SD4において復元処理に不要な列が削除された分散データの内容を示す説明図である。
図53に示す各分散データSD1,SD2,SD3,SD4から元データODを復元する方法は図52と同一である。従って、秘密分散装置は、図51に示す各分散データではなく、図53に示す各分散データを生成する方がメモリ量及びセキュリティの観点から好ましい。
また、図51又は図53に示す各分散データは4列のデータ構成であるため、分散データSD1と分散データSD2,SD3,SD4とのデータサイズの比は図2に示す各分散データと同様に1:3である。
ここで、実施の形態1の分散処理及び復元処理と、本発明者による特願2011−077630号の秘密分散法における分散処理及び復元処理との違いを検討する。本発明者による特願2011−077630号の秘密分散法に従って生成された図51又は図53に示す各分散データSD1,SD2,SD3,SD4から元データODを復元するためにはXOR処理が27回必要である。
一方、実施の形態1に従って生成された図1又は図2に示す各分散データSD1,SD2,SD3から元データODを復元するためにはXOR処理が15回必要となる。従って、実施の形態1の分散処理及び復元処理によれば、分散復元装置200は、秘密分散装置よりもXOR処理の実行回数を低減することができ、非対称なデータサイズの分散データを高速に生成することができ、元データODを高速に復元することができる。
(実施の形態2)
次に、分散復元装置200の実施の形態2について、図5から図8を参照して説明する。図5は、実施の形態2における分散データの生成方法の一例を示す説明図である。図6は、実施の形態2における分散データの内容を示す説明図である。図7は、実施の形態2における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図8は、実施の形態2における動作手順を説明するフローチャートである。
実施の形態2では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計5個の分散データSD1、分散データSD2、分散データSD3、分散データSD4、分散データSD5を生成する方法、及び、5個の分散データSD1、分散データSD2、分散データSD3、分散データSD4、分散データSD5を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1,SD2を例えば外部記憶装置510に記憶させ、分散データSD3,SD4,SD5をHDD80に記憶させる。これにより、分散復元装置200は、5個の分散データSD1,SD2,SD3,SD4,SD5を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態2では、図5に示すように、元データODは、それぞれ連接された合計24個の分割ブロックDB1〜DB24を含んで構成されている。なお、実施の形態2では、説明を簡単にするために、元データODは合計24個の分割ブロックDB1〜DB24を含む構成としているが、元データODを構成する分割ブロックの数は24に限定されない。また、図面の複雑化を避けるために、図6では、元データODの構成の図示を省略している。
(実施の形態2における分散データの構成)
実施の形態2における分散データの構成について、図5及び図6を参照して説明する。なお、実施の形態1と同一の内容の説明は省略し、異なる内容について説明する。図5及び図6に示す分散データSD1は、図1及び図2に示す分散データSD1と同一である。また、図5及び図6に示す分散データSD3は、図1及び図2に示す分散データSD2と同一である。
図5及び図6に示す分散データSD2において、[分散(2)a]は列9の分割ブロックDB9であり、[分散(2)b]は列10の分割ブロックDB10と列11の分割ブロックDB11とがXOR処理された値であり、[分散(2)c]は列12の分割ブロックDB12と列13の分割ブロックDB13とがXOR処理された値であり、[分散(2)d]は列14の分割ブロックDB14と列15の分割ブロックDB15とがXOR処理された値である。
従って、分散データSD2は、4個の列[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d]が連接された構成である。
このように、分散データSD2は、元データODの3分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は4個であって、分割データSD1と同様に、元データODのブロック(列)数の24個の1/6である。
次に、図5及び図6に示す分散データSD4において、[分散(4)a]は列9の分割ブロックDB9と列10の分割ブロックDB10とがXOR処理された値であり、[分散(4)b]は列11の分割ブロックDB11と列12の分割ブロックDB12とがXOR処理された値であり、[分散(4)c]は列13の分割ブロックDB13と列14の分割ブロックDB14とがXOR処理された値であり、[分散(4)d]は列15の分割ブロックDB15と列16の分割ブロックDB16とがXOR処理された値である。
従って、分散データSD4は、4個の列[分散(4)a],[分散(4)b],[分散(4)c],[分散(4)d]が連接された構成である。
このように、分散データSD4は、元データODの3分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD4のブロック(列)数は4個であって、分散データSD2と同様に、元データODのブロック(列)数の24個の1/6である。
同様に、図5及び図6に示す分散データSD5において、[分散(5)a]は列1の分割ブロックDB1と列9の分割ブロックDB9と列17の分割ブロックDB17とがXOR処理された値であり、[分散(5)b]は列2の分割ブロックDB2と列10の分割ブロックDB10と列18の分割ブロックDB18とがXOR処理された値であり、[分散(5)c]は列3の分割ブロックDB3と列11の分割ブロックDB11と列19の分割ブロックDB19とがXOR処理された値であり、[分散(5)d]は列4の分割ブロックDB4と列12の分割ブロックDB12と列20の分割ブロックDB20とがXOR処理された値であり、[分散(5)e]は列5の分割ブロックDB5と列13の分割ブロックDB13と列21の分割ブロックDB21とがXOR処理された値であり、[分散(5)f]は列6の分割ブロックDB6と列14の分割ブロックDB14と列22の分割ブロックDB22とがXOR処理された値であり、[分散(5)g]は列7の分割ブロックDB7と列15の分割ブロックDB15と列23の分割ブロックDB23とがXOR処理された値であり、[分散(5)h]は列8の分割ブロックDB8と列16の分割ブロックDB16と列24の分割ブロックDB24とがXOR処理された値である。
従って、分散データSD5は、8個の列[分散(5)a],[分散(5)b],[分散(5)c],[分散(5)d],[分散(5)e],[分散(5)f],[分散(5)g],[分散(5)h]が連接された構成である。
このように、分散データSD5は、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって3段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は8個であって、元データODのブロック(列)数の24個の1/3である。
(実施の形態2における分散データの生成方法)
実施の形態1における分散データSD1,SD2,SD3の具体的な生成方法について、図5及び図6を参照して説明する。分散復元装置200は、先ず、元データODを3個のデータに均等に分割する。但し、分散復元装置200は、元データODを4個以上のデータに均等に分割しても良い。例えば、分散復元装置200は、合計24個の分割ブロックDB1〜DB24を含む元データODを、列1〜列8のデータと、列9〜列16のデータと、列17〜列24のデータとに均等に分割する。
分散復元装置200は、列1〜列8のデータのうちいずれかの列のデータと、列9〜列16のデータのうちいずれかの列のデータと、列17〜列24のデータのうちいずれかのデータとをXOR処理し、合計8個のXOR処理されたデータを連接させて分散データSD5を生成する。
例えば、図5及び図6に示すように、分散復元装置200は、列1と列9と列17とをXOR処理したデータと、列2と列10と列18とをXOR処理したデータと、列3と列11と列19とをXOR処理したデータと、列4と列12と列20とをXOR処理したデータと、列5と列13と列21とをXOR処理したデータと、列6と列14と列22とをXOR処理したデータと、列7と列15と列23とをXOR処理したデータと、列8と列16と列24とをXOR処理したデータとを連接させた分散データSD5を生成する。
次に、分散復元装置200は、分散データSD5の生成時における各XOR処理に用いた列1〜列8のデータ、列9〜列16のデータ及び列17〜列24のデータのうち2個の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置200は、列の組み合わせとして、列1〜列8のデータと列9〜列16のデータとを選択するが、分散データSD5の生成時における各XOR処理の対象とされた3個の列のデータのうちどちらか一方のデータを選択して1個の列の組み合わせを選択しても良い。例えば、第1番目の列の組み合わせとして、列1,列10,列19,列4,列13,列22,列7,列16の各データが選択され、第2番目の列の組み合わせとして、列9,列2,列3,列12,列5,列14,列15,列24の各データが選択されても良い。
分散復元装置200は、選択された各々の列の組み合わせに対し、本発明者による特願2010−077630号の秘密分散法に従って分散処理を実行し、4個の分散データSD1,SD2,SD3,SD4を生成する。特願2011−077630号の秘密分散法に従った分散処理によって、分散データSD5の生成時における各XOR処理に用いた列1〜列8、列9〜列16及び列17〜列24の各データのうち、分散復元装置200によって選択された列の組み合わせ(例えば列1〜列8)毎に、それぞれ異なる組み合わせによってXOR処理されて、4個の分散データSD1,SD2,SD3,SD4が生成される。
ここで、分散復元装置200が例えば列1〜列8の組み合わせを選択した場合に2個の分散データSD1,SD3を生成する方法は実施の形態1と同一であるため説明を省略し、分散復元装置200が例えば列9〜列16の組み合わせを選択した場合に2個の分散データSD2,SD4を生成する方法について説明する。
分散復元装置200は、例えば列9〜列16の組み合わせを選択した場合に、[分散(2)a]に列9だけを用い、[分散(2)b]に列10と列11とのXOR処理した値を用い、[分散(2)c]に列12と列13とのXOR処理した値を用い、[分散(2)d]に列14と列15とのXOR処理した値を用い、[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d]を連接させて分散データSD2を生成する。
更に、分散復元装置200は、生成された分散データSD2に対し、分散データSD2の下段に図示した偶数の列10、列12、列14を左方向に一列分シフトさせることによって、分散データSD4を生成する。従って、分散復元装置200は、分散データSD4を生成する場合では、分散データSD2の生成時に用いない列16のデータを、列15とのXOR処理に用いる。
なお、分散復元装置200は、分散データSD4を分散データSD2より先に生成しても良い。具体的には、分散復元装置200は、例えば列9〜列16の組み合わせを選択した場合に、[分散(4)a]に列9と列10とのXOR処理した値を用い、[分散(4)b]に列11と列12とのXOR処理した値を用い、[分散(4)c]に列13と列146とのXOR処理した値を用い、[分散(4)d]に列15と列16とのXOR処理した値を用い、[分散(4)a],[分散(4)b],[分散(4)c],[分散(4)d]を連接させて分散データSD4を生成する。
更に、分散復元装置200は、生成された分散データSD4に対し、分散データSD4の下段に図示した偶数の列10、列12、列14、列16を右方向に一列分シフトさせることによって、分散データSD2を生成する。従って、分散復元装置200は、分散データSD2を生成する場合では、分散データSD4の生成時に用いた列16のデータを用いず、[分散(2)a]に単一の列9だけを用いる。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1,SD2と、分散データSD3,SD4,SD5とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態2における非対称分散の割合は、図6に示すように、外部記憶装置510に記憶される分散データSD1,SD2のデータサイズが元データODのデータサイズの2/6であり、HDD80に記憶される分散データSD3,SD4,SD5のデータサイズが元データODのデータサイズの4/6(1/6+1/6+1/3)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:2の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3,SD4,SD5の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態2に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態2の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3,SD4,SD5を生成するため、分散データSD1,SD2,SD3,SD4,SD5のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3,SD4,SD5を安全に生成することができる。
(実施の形態2における元データの復元方法)
実施の形態2における元データODの具体的な復元方法について、図7及び図8を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3,SD4,SD5を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1,SD2を取得し、CPU60においてHDD80にアクセスして分散データSD3,SD4,SD5を取得する。
図7及び図8において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD2の[分散(2)a]を基にして元データODの列9を取得する(1)。分散復元装置200は、分散データSD3の[分散(3)a]と既に取得した列1とをXOR処理して元データODの列2を取得し(2)、分散データSD4の[分散(4)a]と既に取得した列9とをXOR処理して元データODの列10を取得する(2)。分散復元装置200は、分散データSD5の[分散(5)a]と既に取得した列1と列9とをXOR処理して元データODの列17を取得する(3)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列2とをXOR処理して元データODの列3を取得し(4)、分散データSD2の[分散(2)b]と既に取得した列10とをXOR処理して元データODの列11を取得する(4)。分散復元装置200は、分散データSD5の[分散(5)b]と既に取得した列2と列10とをXOR処理して元データODの列18を取得する(5)。
分散復元装置200は、分散データSD3の[分散(3)b]と既に取得した列3とをXOR処理して元データODの列4を取得し(6)、分散データSD4の[分散(4)b]と既に取得した列11とをXOR処理して元データODの列12を取得する(6)。分散復元装置200は、分散データSD5の[分散(5)c]と既に取得した列3と列11とをXOR処理して元データODの列19を取得する(7)。
分散復元装置200は、分散データSD1の[分散(1)c]と既に取得した列4とをXOR処理して元データODの列5を取得し(8)、分散データSD2の[分散(2)c]と既に取得した列12とをXOR処理して元データODの列13を取得する(8)。分散復元装置200は、分散データSD5の[分散(5)d]と既に取得した列4と列12とをXOR処理して元データODの列20を取得する(9)。
分散復元装置200は、分散データSD3の[分散(3)c]と既に取得した列5とをXOR処理して元データODの列6を取得し(10)、分散データSD4の[分散(4)c]と既に取得した列13とをXOR処理して元データODの列14を取得する(10)。分散復元装置200は、分散データSD5の[分散(5)e]と既に取得した列5と列13とをXOR処理して元データODの列21を取得する(11)。
分散復元装置200は、分散データSD1の[分散(1)d]と既に取得した列6とをXOR処理して元データODの列7を取得し(12)、分散データSD2の[分散(2)d]と既に取得した列14とをXOR処理して元データODの列15を取得する(12)。分散復元装置200は、分散データSD5の[分散(5)f]と既に取得した列6と列14とをXOR処理して元データODの列22を取得する(13)。
分散復元装置200は、分散データSD3の[分散(3)d]と既に取得した列7とをXOR処理して元データODの列8を取得し(14)、分散データSD4の[分散(4)d]と既に取得した列15とをXOR処理して元データODの列16を取得する(14)。
最後に、分散復元装置200は、分散データSD5の[分散(5)g]と既に取得した列7と列15とをXOR処理して元データODの列23を取得し(15)、分散データSD5の[分散(5)h]と既に取得した列8と列16とをXOR処理して元データODの列24を取得する(16)。
分散復元装置200は、(1)〜(16)の各動作において取得された列1〜列24の各分割ブロックDB1〜DB24を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態2の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3,SD4,SD5を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3,SD4,SD5から元データODを安全に復元することができる。
(実施の形態3)
次に、分散復元装置200の実施の形態3について、図9から図12を参照して説明する。図9は、実施の形態3における分散データの生成方法の一例を示す説明図である。図10は、実施の形態3における分散データの内容を示す説明図である。図11は、実施の形態3における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図12は、実施の形態3における動作手順を説明するフローチャートである。
実施の形態3では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計4個の分散データSD1、分散データSD2、分散データSD3、分散データSD4を生成する方法、及び、4個の分散データSD1、分散データSD2、分散データSD3、分散データSD4を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2,SD3,SD4をHDD80に記憶させる。これにより、分散復元装置200は、4個の分散データSD1,SD2,SD3,SD4を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態3では、図9及び図10に示すように、元データODは、それぞれ連接された合計24個の分割ブロックDB1〜DB18を含んで構成されている。なお、実施の形態3では、説明を簡単にするために、元データODは合計18個の分割ブロックDB1〜DB18を含む構成としているが、元データODを構成する分割ブロックの数は18に限定されない。
(実施の形態3における分散データの構成)
実施の形態3における分散データの構成について、図9及び図10を参照して説明する。図9及び図10に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)b]は列4の分割ブロックDB4であり、[分散(1)c]は列7の分割ブロックDB7と列2の分割ブロックDB2と列3の分割ブロックDB3とがXOR処理された値であり、[分散(1)d]は乱数Aと列5の分割ブロックDB5と列6の分割ブロックDB6とがXOR処理された値であり、[分散(1)e]は乱数Bと列8の分割ブロックDB8と列9の分割ブロックDB9とがXOR処理された値である。
従って、分散データSD1は、5個の列[分散(1)a],[分散(1)b],[分散(1)c],[分散(1)d],[分散(1)e]が連接された構成である。
このように、分散データSD1は、[分散(1)a],[分散(1)b]を除き、元データODの半分のデータサイズに対応する分割ブロックのデータを、XOR処理によって3段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は5個であるが、[分散(1)a],[分散(1)b]のデータサイズは元データODのデータサイズの1/18であって無視できる値と考えられる。このため、分散データSD1のブロック(列)数は3個であり、元データODのブロック(列)数の18個の1/6である。
次に、図9及び図10に示す分散データSD2において、[分散(2)b]は列1の分割ブロックDB1と列3の分割ブロックDB3とが連接された値であり、[分散(2)c]は列4の分割ブロックDB4と列2の分割ブロックDB2と列6の分割ブロックDB6とがXOR処理された値であり、[分散(2)d]は列7の分割ブロックDB7と列5の分割ブロックDB5と列9の分割ブロックDB9とがXOR処理された値であり、[分散(2)e]は乱数Aと列8の分割ブロックDB8と乱数CとがXOR処理された値である。
従って、分散データSD2は、4個の列[分散(2)b],[分散(2)c],[分散(2)d],[分散(2)e]が連接された構成である。
このように、分散データSD2は、[分散(2)b]を除き、元データODの半分のデータサイズに対応する分割ブロックのデータを、XOR処理によって3段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は4個であるが、[分散(2)b]のデータサイズは元データODのデータサイズの1/18であって無視できる値と考えられる。このため、分散データSD2のブロック(列)数は3個であり、元データODのブロック(列)数の18個の1/6である。
次に、図9及び図10に示す分散データSD3において、[分散(3)a]は列3の分割ブロックDB3であり、[分散(3)b]は列6の分割ブロックDB6であり、[分散(3)c]は列1の分割ブロックDB1と列2の分割ブロックDB2と列9の分割ブロックDB9とがXOR処理された値であり、[分散(3)d]は列4の分割ブロックDB4と列5の分割ブロックDB5と乱数CとがXOR処理された値であり、[分散(3)e]は列7の分割ブロックDB7と列8の分割ブロックDB8と乱数DとがXOR処理された値である。
従って、分散データSD3は、5個の列[分散(3)a],[分散(3)b],[分散(3)c],[分散(3)d],[分散(3)e]が連接された構成である。
このように、分散データSD3は、[分散(3)a],[分散(3)b]を除き、元データODの半分のデータサイズに対応する分割ブロックのデータを、XOR処理によって3段に畳み込んで構成されている。従って、分散データSD3のブロック(列)数は5個であるが、[分散(3)a],[分散(3)b]のデータサイズは元データODのデータサイズの1/18であって無視できる値と考えられる。このため、分散データSD3のブロック(列)数は3個であり、元データODのブロック(列)数の18個の1/6である。
同様に、図9及び図10に示す分散データSD5において、[分散(5)a]は列1の分割ブロックDB1と列10の分割ブロックDB10とがXOR処理された値であり、[分散(5)b]は列2の分割ブロックDB2と列11の分割ブロックDB11とがXOR処理された値であり、[分散(5)c]は列3の分割ブロックDB3と列12の分割ブロックDB12とがXOR処理された値であり、[分散(5)d]は列4の分割ブロックDB4と列13の分割ブロックDB13とがXOR処理された値であり、[分散(5)e]は列5の分割ブロックDB5と列14の分割ブロックDB14とがXOR処理された値であり、[分散(5)f]は列6の分割ブロックDB6と列15の分割ブロックDB15とがXOR処理された値であり、[分散(5)g]は列7の分割ブロックDB7と列16の分割ブロックDB16とがXOR処理された値であり、[分散(5)h]は列8の分割ブロックDB8と列17の分割ブロックDB17とがXOR処理された値であり、[分散(5)i]は列9の分割ブロックDB9と列18の分割ブロックDB18とがXOR処理された値である。
従って、分散データSD5は、9個の列[分散(5)a],[分散(5)b],[分散(5)c],[分散(5)d],[分散(5)e],[分散(5)f],[分散(5)g],[分散(5)h],[分散(5)i]が連接された構成である。
このように、分散データSD5は、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は9個であって、元データODのブロック(列)数の18個の1/2である。
(実施の形態3における分散データの生成方法)
実施の形態3における分散データSD1,SD2,SD3,SD4の具体的な生成方法について、図11及び図12を参照して説明する。分散復元装置200は、先ず、元データODを2個のデータに均等に分割する。但し、分散復元装置200は、元データODを3個以上のデータに均等に分割しても良い。例えば、分散復元装置200は、合計18個の分割ブロックDB1〜DB18を含む元データODを、列1〜列9のデータと、列10〜列18のデータとに均等に分割する。
分散復元装置200は、列1〜列9のデータのうちいずれかの列のデータと、列10〜列18のデータのうちいずれかの列のデータとをXOR処理し、合計9個のXOR処理されたデータを連接させて分散データSD4を生成する。
例えば、図9及び図10に示すように、分散復元装置200は、列1と列10とをXOR処理したデータと、列2と列11とをXOR処理したデータと、列3と列12とをXOR処理したデータと、列4と列13とをXOR処理したデータと、列5と列14とをXOR処理したデータと、列6と列15とをXOR処理したデータと、列7と列16とをXOR処理したデータと、列8と列17とをXOR処理したデータと、列9と列18とをXOR処理したデータとを連接した分散データSD4を生成する。
次に、分散復元装置200は、分散データSD4の生成時における各XOR処理に用いた列1〜列9のデータ又は列10〜列18のデータのいずれかの列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置200は、列の組み合わせとして、列1〜列9のデータを選択するが、分散データSD4の生成時における各XOR処理の対象とされた2個の列のデータのうちどちらか一方のデータを選択して列の組み合わせを選択しても良い。例えば、列の組み合わせとして、列1,列11,列3,列4,列14,列15,列7,列8,列18の各データが選択されても良い。
分散復元装置200は、選択された列の組み合わせに対し、本発明者による特願2010−077630号の秘密分散法に従って分散処理を実行し、3個の分散データSD1,SD2,SD3を生成する。特願2011−077630号の秘密分散法に従った分散処理によって、分散データSD4の生成時における各XOR処理に用いた列1〜列9及び列10〜列18の各データのうち、分散復元装置200によって選択された列の組み合わせ(例えば列1〜列9)がそれぞれ異なる組み合わせによってXOR処理されて、3個の分散データSD1,SD2,SD3が生成される。
具体的には、分散復元装置200は、例えば列1〜列9の組み合わせを選択した場合に、[分散(1)a]に列1だけを用い、[分散(1)b]に列4だけを用い、[分散(1)c]に列7と列2と列3とのXOR処理した値を用い、[分散(1)d]に乱数Aと列5と列6とのXOR処理した値を用い、[分散(1)e]に乱数Bと列8と列9とのXOR処理した値を用い、[分散(1)a],[分散(1)b],[分散(1)c],[分散(1)d],[分散(1)e]を連接させて分散データSD1を生成する。
更に、分散復元装置200は、生成された分散データSD1に対し、分散データSD1の最上段に図示した列1、列4、列7、乱数A、乱数Bを右方向に一列分シフトさせ、分散データSD1の最下段に図示した列3、列6、列9を左方向に一列分シフトさせることによって、分散データSD2を生成する。従って、分散復元装置200は、分散データSD2を生成する場合では、分散データSD1の生成時に用いない乱数Cのデータを、乱数Aと列8とのXOR処理に用い、分散データSD1の生成時に用いる乱数Bのデータを用いない。
なお、分散復元装置200は、分散データSD2を分散データSD1より先に生成しても良い。具体的には、分散復元装置200は、例えば列1〜列9の組み合わせを選択した場合に、[分散(2)b]に列1と列3とを連接した値を用い、[分散(2)c]に列4と列2と列6とをXOR処理した値を用い、[分散(2)d]に列7と列5と列9とをXOR処理した値を用い、[分散(2)e]に乱数Aと列8と乱数CとをXOR処理した値を用い、[分散(2)b],[分散(2)c],[分散(2)d],[分散(2)e]を連接させて分散データSD2を生成する。詳細な説明は割愛するが、分散復元装置200は、同様にして、分散データSD2から分散データSD1を生成する(図9及び図10参照)。
更に、分散復元装置200は、生成された分散データSD1に対し、分散データSD1の最上段に図示した列1、列4、列7、乱数A、乱数Bを右方向に二列分シフトさせ、分散データSD1の最下段に図示した列3、列6、列9を左方向に二列分シフトさせることによって、分散データSD3を生成する。従って、分散復元装置200は、分散データSD3を生成する場合では、分散データSD1の生成時に用いない乱数Cのデータを列4と列5とのXOR処理に用い、乱数Dのデータを列7と列8とのXOR処理に用い、分散データSD1の生成時に用いる乱数Aと乱数Bとを用いない。
なお、分散復元装置200は、分散データSD3を分散データSD1より先に生成しても良い。具体的には、分散復元装置200は、例えば列1〜列9の組み合わせを選択した場合に、[分散(3)a]に列3だけを用い、[分散(3)b]に列6だけを用い、[分散(3)c]に列1と列2と列9とをXOR処理した値を用い、[分散(3)d]に列4と列5と乱数CとをXOR処理した値を用い、[分散(3)e]に列7と列8と乱数DとをXOR処理した値を用い、[分散(3)a],[分散(3)b],[分散(3)c],[分散(3)d],[分散(3)e]を連接させて分散データSD3を生成する。分散復元装置200は、同様にして、分散データSD3から分散データSD1を生成する(図9及び図10参照)。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを3段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2,SD3,SD4とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態3における非対称分散の割合は、図10に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/6であり、HDD80に記憶される分散データSD2,SD3,SD4のデータサイズが元データODのデータサイズの5/6(1/6+1/6+1/2)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:5の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3,SD4の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態3に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態3の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3,SD4を生成するため、分散データSD1,SD2,SD3,SD4のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3,SD4を安全に生成することができる。
更に、分散復元装置200は、分散データSD1の[分散(1)d]に乱数A、[分散(1)e]に乱数B、[分散(2)e]に乱数Aと乱数C、[分散(3)d]に乱数C、[分散(3)e]に乱数Dを用いてXOR処理しているため、分散データを暗号化処理しており、乱数が用いられていない各分散データよりも分散データのセキュリティを向上させていることになる。なお、各分散データの生成時に用いられた乱数A、乱数B、乱数C、乱数Dは乱数生成部40により出力された値であって、RAM70又はHDD80に記憶されることが好ましい。
(実施の形態3における元データの復元方法)
実施の形態3における元データODの具体的な復元方法について、図11及び図12を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3,SD4を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2,SD3,SD4を取得し、更に、CPU60においてRAM70又はHDD80にアクセスして乱数A、乱数B、乱数C、乱数Dを取得する。
図11及び図12において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD3の[分散(3)a]を基にして元データODの列3を取得し(1)、分散データSD1の[分散(1)b]を基にして元データODの列4を取得し(1)、分散データSD3の[分散(3)b]を基にして元データODの列6を取得する(1)。
分散復元装置200は、分散データSD3の[分散(3)a]と既に取得した列4と列6とをXOR処理して元データODの列2を取得し(2)、分散データSD3の[分散(3)c]と既に取得した列1と列2とをXOR処理して元データODの列9を取得する(3)。
分散復元装置200は、分散データSD1の[分散(1)c]と既に取得した列2と列3とをXOR処理して元データODの列7を取得し(4)、分散データSD1の[分散(1)d]と既に取得した列6と乱数AとをXOR処理して元データODの列5を取得し(5)、分散データSD2の[分散(2)e]と乱数Aと乱数CとをXOR処理して元データODの列8を取得する(6)。
分散復元装置200は、分散データSD4の[分散(4)a]と既に取得した列1とをXOR処理して元データODの列10を取得し(7)、分散データSD4の[分散(4)b]と既に取得した列2とをXOR処理して元データODの列11を取得し(8)、分散データSD4の[分散(4)c]と既に取得した列3とをXOR処理して元データODの列12を取得する(9)。
分散復元装置200は、分散データSD4の[分散(4)d]と既に取得した列4とをXOR処理して元データODの列13を取得し(10)、分散データSD4の[分散(4)e]と既に取得した列5とをXOR処理して元データODの列14を取得し(11)、分散データSD4の[分散(4)f]と既に取得した列6とをXOR処理して元データODの列15を取得する(12)。
最後に、分散復元装置200は、分散データSD4の[分散(4)g]と既に取得した列7とをXOR処理して元データODの列16を取得し(13)、分散データSD4の[分散(4)h]と既に取得した列8とをXOR処理して元データODの列17を取得し(14)、分散データSD4の[分散(4)i]と既に取得した列9とをXOR処理して元データODの列18を取得する(15)。
分散復元装置200は、(1)〜(15)の各動作において取得された列1〜列18の各分割ブロックDB1〜DB18を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態3の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3,SD4を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3,SD4から元データODを安全に復元することができる。
(実施の形態4)
次に、分散復元装置200の実施の形態4について、図13から図16を参照して説明する。図13は、実施の形態4における分散データの生成方法の一例を示す説明図である。図14は、実施の形態4における分散データの内容を示す説明図である。図15は、実施の形態4における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図16は、実施の形態4における動作手順を説明するフローチャートである。
実施の形態4では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計3個の分散データSD1、分散データSD2、分散データSD3を生成する方法、及び、3個の分散データSD1、分散データSD2、分散データSD3を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2,SD3をHDD80に記憶させる。これにより、分散復元装置200は、3個の分散データSD1,SD2,SD3を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態4では、図13及び図14に示すように、元データODは、それぞれ連接された合計12個の分割ブロックDB1〜DB12を含んで構成されている。なお、実施の形態4では、説明を簡単にするために、元データODは合計12個の分割ブロックDB1〜DB12を含む構成としているが、元データODを構成する分割ブロックの数は12に限定されない。
(実施の形態4における分散データの構成)
実施の形態4における分散データの構成について、図13及び図14を参照して説明する。図13及び図14に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)b]は列2の分割ブロックDB2と列3の分割ブロックDB3とがXOR処理された値である。
従って、分散データSD1は、2個の列[分散(1)a],[分散(1)b]が連接された構成である。
このように、分散データSD1は、元データODの3分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は2個であって、分割データSD1と同様に、元データODのブロック(列)数の12個の1/6である。
次に、図13及び図14に示す分散データSD2において、[分散(2)a]は列1の分割ブロックDB1と列2の分割ブロックDB2とがXOR処理された値であり、[分散(2)b]は列3の分割ブロックDB3と列4の分割ブロックDB4とがXOR処理された値である。
従って、分散データSD2は、2個の列[分散(2)a],[分散(2)b]が連接された構成である。
このように、分散データSD2は、元データODの3分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は2個であって、元データODのブロック(列)数の12個の1/6である。
同様に、図13及び図14に示す分散データSD3において、[分散(3)a]は列1の分割ブロックDB1と列5の分割ブロックDB5とがXOR処理された値であり、[分散(3)b]は列1の分割ブロックDB1と列6の分割ブロックDB6とがXOR処理された値であり、[分散(3)c]は列2の分割ブロックDB2と列7の分割ブロックDB7とがXOR処理された値であり、[分散(3)d]は列2の分割ブロックDB2と列8の分割ブロックDB8とがXOR処理された値であり、[分散(3)e]は列3の分割ブロックDB3と列9の分割ブロックDB9とがXOR処理された値であり、[分散(3)f]は列3の分割ブロックDB3と列10の分割ブロックDB10とがXOR処理された値であり、[分散(3)g]は列4の分割ブロックDB4と列11の分割ブロックDB11とがXOR処理された値であり、[分散(3)h]は列4の分割ブロックDB4と列12の分割ブロックDB12とがXOR処理された値である。
従って、分散データSD3は、8個の列[分散(3)a],[分散(3)b],[分散(3)c],[分散(3)d],[分散(3)e],[分散(3)f],[分散(3)g],[分散(3)h]が連接された構成である。
このように、分散データSD3は、列1〜列4の各データが2回用いられ、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD3のブロック(列)数は8個であって、元データODのブロック(列)数の12個の2/3である。
(実施の形態4における分散データの生成方法)
実施の形態4における分散データSD1,SD2,SD3の具体的な生成方法について、図13及び図14を参照して説明する。分散復元装置200は、先ず、元データODを異なるデータサイズを有する2個のデータに分割する。例えば、分散復元装置200は、合計12個の分割ブロックDB1〜DB12を含む元データODを、列1〜列4のデータと、列5〜列12のデータとに分割する。
分散復元装置200は、列1〜列4のデータのうちいずれかの列のデータと、列5〜列12のデータのうちいずれかの列のデータとをXOR処理し、合計8個のXOR処理されたデータを連接させて分散データSD3を生成する。実施の形態4では、分散復元装置200は、分散データSD3を生成する際、列1〜列4の各データを2回用いて、列5〜列12のデータのうちいずれかの列のデータとXOR処理を実行する。
例えば、図13及び図14に示すように、分散復元装置200は、列1と列5とをXOR処理したデータと、列1と列6とをXOR処理したデータと、列2と列7とをXOR処理したデータと、列2と列8とをXOR処理したデータと、列3と列9とをXOR処理したデータと、列3と列10とをXOR処理したデータと、列4と列11とをXOR処理したデータと、列4と列12とをXOR処理したデータとを連接した分散データSD3を生成する。
次に、分散復元装置200は、分散データSD3の生成時における各XOR処理に用いた列1〜列4のデータ又は列5〜列12のデータのうちデータ数が少ない列の組み合わせを選択する。即ち、分散復元装置200は、列1〜列4のデータの組み合わせを選択する。
分散復元装置200は、選択された列の組み合わせに対し、本発明者による特願2010−077630号の秘密分散法に従って分散処理を実行し、2個の分散データSD1,SD2を生成する。特願2011−077630号の秘密分散法に従った分散処理によって、分散データSD3の生成時における各XOR処理に用いた列1〜列4又は列5〜列12の各データのうち、分散復元装置200によって選択された列の組み合わせ(例えば列1〜列4)がそれぞれ異なる組み合わせによってXOR処理されて、2個の分散データSD1,SD2が生成される。
具体的に、分散復元装置200は、[分散(1)a]に列1だけを用い、[分散(1)b]に列2と列3とのXOR処理した値を用い、[分散(1)a],[分散(1)b]を連接させて分散データSD1を生成する。
更に、分散復元装置200は、生成された分散データSD1に対し、分散データSD1の下段に図示した偶数の列2を左方向に一列分シフトさせることによって、分散データSD2を生成する。従って、分散復元装置200は、分散データSD2を生成する場合では、分散データSD1の生成時に用いない列4のデータを、列3とのXOR処理に用いる。
なお、分散復元装置200は、分散データSD2を分散データSD1より先に生成しても良い。具体的には、分散復元装置200は、[分散(2)a]に列1と列2とのXOR処理した値を用い、[分散(2)b]に列3と列4とのXOR処理した値を用い、[分散(2)a],[分散(2)b]を連接させて分散データSD2を生成する。詳細な説明は割愛するが、分散復元装置200は、同様にして、分散データSD2から分散データSD1を生成する(図13及び図14参照)。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2,SD3とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態4における非対称分散の割合は、図14に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/6であり、HDD80に記憶される分散データSD2,SD3のデータサイズが元データODのデータサイズの5/6(1/6+2/3)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:5の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態4に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態4の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3を生成するため、分散データSD1,SD2,SD3のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3を安全に生成することができる。
また、実施の形態4の分散復元装置200は、分散データを生成する際、実施の形態1から実施の形態3において説明したような元データODを2個以上の列のデータに均等に分割せずに、異なるデータサイズを有する列のデータに分割しても、非対称なデータサイズを有する分散データを生成することができる。
(実施の形態4における元データの復元方法)
実施の形態4における元データODの具体的な復元方法について、図15及び図16を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2,SD3を取得する。
図15及び図16において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得する(1)。分散復元装置200は、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列2を取得し(2)、分散データSD3の[分散(3)a]と既に取得した列1とをXOR処理して元データODの列5を取得し(2)、分散データSD3の[分散(3)b]と既に取得した列1とをXOR処理して元データODの列6を取得する(2)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列2とをXOR処理して元データODの列3を取得し(3)、分散データSD3の[分散(3)c]と既に取得した列2とをXOR処理して元データODの列7を取得し(3)、分散データSD3の[分散(3)d]と既に取得した列2とをXOR処理して元データODの列8を取得する(3)。
分散復元装置200は、分散データSD2の[分散(2)b]と既に取得した列3とをXOR処理して元データODの列4を取得し(4)、分散データSD3の[分散(3)e]と既に取得した列3とをXOR処理して元データODの列9を取得し(4)、分散データSD3の[分散(3)f]と既に取得した列3とをXOR処理して元データODの列10を取得する(4)。
最後に、分散復元装置200は、分散データSD3の[分散(3)g]と既に取得した列4とをXOR処理して元データODの列11を取得し(5)、分散データSD3の[分散(3)h]と既に取得した列4とをXOR処理して元データODの列12を取得する(5)。
分散復元装置200は、(1)〜(5)の各動作において取得された列1〜列12の各分割ブロックDB1〜DB12を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態4の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3から元データODを安全に復元することができる。
(実施の形態5)
先ず、分散復元装置200の実施の形態5について、図17から図19を参照して説明する。図17は、実施の形態5における分散データの生成方法の一例を示す説明図である。図18は、実施の形態5における分散データの内容を示す説明図である。図19は、実施の形態5における動作手順を説明するフローチャートである。
実施の形態5では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計4個の分散データSD1、分散データSD2、分散データSD3、分散データSD4を生成する方法、及び、4個の分散データSD1、分散データSD2、分散データSD3、分散データSD4を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2,SD3,SD4をHDD80に記憶させる。これにより、分散復元装置200は、4個の分散データSD1,SD2,SD3,SD4を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態5では、図17及び図18に示すように、元データODは、それぞれ連接された合計16個の分割ブロックDB1〜DB16を含んで構成されている。なお、実施の形態5では、説明を簡単にするために、元データODは合計16個の分割ブロックDB1〜DB16を含む構成としているが、元データODを構成する分割ブロックの数は16に限定されない。
(実施の形態5における分散データの構成)
実施の形態5における分散データの構成について、図17及び図18を参照して説明する。図17及び図18に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)c]は列4の分割ブロックDB4と列5の分割ブロックDB5とがXOR処理された値である。
従って、分散データSD1は、2個の列[分散(1)a],[分散(1)c]が連接された構成である。
このように、分散データSD1は、元データODの4分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は2個であって、元データODのブロック(列)数の16個の1/8である。
次に、図17及び図18に示す分散データSD2において、[分散(2)b]は列2の分割ブロックDB2と列3の分割ブロックDB3とがXOR処理された値であり、[分散(2)d]は列6の分割ブロックDB6と列7の分割ブロックDB7とがXOR処理された値である。
従って、分散データSD2は、2個の列[分散(2)b],[分散(2)d]が連接された構成である。
このように、分散データSD2は、元データODの4分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は2個であって、元データODのブロック(列)数の16個の1/8である。
図17及び図18に示す分散データSD3は、図1及び図2に示す実施の形態1における分散データSD2と同一であるため説明を省略する。
また、図17及び図18に示す分散データSD4は、図1及び図2に示す実施の形態1における分散データSD3と同一であるため説明を省略する。
(実施の形態5における分散データの生成方法)
実施の形態5における分散データSD1,SD2,SD3,SD4の具体的な生成方法について、図17及び図18を参照して説明する。分散復元装置200は、先ず、元データODを2個のデータに均等に分割する。但し、分散復元装置200は、元データODを3個以上のデータに均等に分割しても良い(実施の形態2参照)。例えば、分散復元装置200は、合計16個の分割ブロックDB1〜DB16を含む元データODを、列1〜列8のデータと、列9〜列16のデータとに均等に分割する。
分散復元装置200は、列1〜列8のデータのうちいずれかの列のデータと、列9〜列16のデータのうちいずれかの列のデータとをXOR処理し、合計8個のXOR処理されたデータを連接させて分散データSD4を生成する。
例えば、図17及び図18に示すように、分散復元装置200は、列1と列9とをXOR処理したデータと、列2と列10とをXOR処理したデータと、列3と列11とをXOR処理したデータと、列4と列12とをXOR処理したデータと、列5と列13とをXOR処理したデータと、列6と列14とをXOR処理したデータと、列7と列15とをXOR処理したデータと、列8と列16とをXOR処理したデータとを連接した分散データSD4を生成する。
次に、分散復元装置200は、分散データSD4の生成時における各XOR処理に用いた列1〜列8のデータ又は列9〜列16のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置200は、列の組み合わせとして列1〜列8のデータを選択するが、分散データSD4の生成時における各XOR処理の対象とされた2個の列のデータのうちどちらか一方のデータを選択しても良い。例えば、列1,列10,列3,列4,列13,列6,列7,列16の各データが選択されても良い。
分散復元装置200は、選択された列の組み合わせに対し、本発明者による特願2010−077630号の秘密分散法に従って分散処理を実行し、実施の形態1における2個の分散データ(図2に示す分散データSD1,SD2)を生成する。特願2011−077630号の秘密分散法に従った分散処理によって、分散データSD4の生成時における各XOR処理に用いた列1〜列8及び列9〜列16の各データのうち、分散復元装置200によって選択された列の組み合わせ(例えば列1〜列8)がそれぞれ異なる組み合わせによってXOR処理されて、2個の分散データ(図2に示す分散データSD1,SD2)が生成される。
具体的には、分散復元装置200は、例えば列1〜列8の組み合わせを選択した場合に、図2に示す[分散(1)a]に列1だけを用い、図2に示す[分散(1)b]に列2と列3とのXOR処理した値を用い、図2に示す[分散(1)c]に列4と列5とのXOR処理した値を用い、図2に示す[分散(1)d]に列6と列7とのXOR処理した値を用い、図2に示す[分散(1)a],[分散(1)b],[分散(1)c],[分散(1)d]を連接させて分散データ(図2に示す分散データSD1)を生成する。
更に、分散復元装置200は、生成された分散データ(図2に示す分散データSD1)に対し、一部の列のデータを抽出して新たな分散データSD1を生成し、残りの列のデータを分散データSD2として生成する。
具体的には、分散復元装置200は、図2に示す[分散(1)a],[分散(1)c]を抽出して連接させた分散データSD1(図18参照)を生成し、残りの列のデータである図2に示す[分散(1)b],[分散(1)d]を連接させて分散データSD2(図18参照)を生成する。なお、2個の分散データ(図2に示す分散データSD1,SD2)のうち、図2に示す分散データSD2は図18に示す分散データSD3と同一であるため、図18に示す分散データSD3の生成方法の説明は省略する。
なお、分散復元装置200は、本実施の形態5における分散データSD1に対し、[分散(1)a]と[分散(1)c]との間に乱数又はゼロ(0)を埋め合わせても良く、[分散(1)c]に続けて乱数又はゼロ(0)を埋め合わせても良い。同様に、分散復元装置200は、本実施の形態5における分散データSD2に対し、[分散(2)b]と[分散(2)d]との間に乱数又はゼロ(0)を埋め合わせても良く、[分散(2)b]の前に乱数又はゼロ(0)を埋め合わせても良い。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2,SD3,SD4とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態5における非対称分散の割合は、図18に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/8であり、HDD80に記憶される分散データSD2,SD3,SD4のデータサイズが元データODのデータサイズの7/8(1/8+1/4+1/2)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:7の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3,SD4の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態5に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態5の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3,SD4を生成するため、分散データSD1,SD2,SD3,SD4のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3,SD4を安全に生成することができる。
(実施の形態5における元データの復元方法)
実施の形態5における元データODの具体的な復元方法について、図19を参照して説明する。実施の形態5では分散データ同士のXOR処理によって元データの各分割ブロックを得る流れは実施の形態1と同一であるため、実施の形態5における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れの図面は省略している。
分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3,SD4を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2,SD3,SD4を取得する。
図19において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD3の[分散(3)a]と既に取得した列1とをXOR処理して元データODの列2を取得し(2)、分散データSD4の[分散(4)a]と既に取得した列1とをXOR処理して元データODの列9を取得する(2)。
分散復元装置200は、分散データSD2の[分散(2)b]と既に取得した列2とをXOR処理して元データODの列3を取得し(3)、分散データSD4の[分散(4)b]と既に取得した列2とをXOR処理して元データODの列10を取得する(3)。
分散復元装置200は、分散データSD3の[分散(3)b]と既に取得した列3とをXOR処理して元データODの列4を取得し(4)、分散データSD4の[分散(4)c]と既に取得した列3とをXOR処理して元データODの列11を取得する(4)。
分散復元装置200は、分散データSD1の[分散(1)c]と既に取得した列4とをXOR処理して元データODの列5を取得し(5)、分散データSD4の[分散(4)d]と既に取得した列4とをXOR処理して元データODの列12を取得する(5)。
分散復元装置200は、分散データSD3の[分散(3)c]と既に取得した列5とをXOR処理して元データODの列6を取得し(6)、分散データSD4の[分散(4)e]と既に取得した列5とをXOR処理して元データODの列13を取得する(6)。
分散復元装置200は、分散データSD2の[分散(2)d]と既に取得した列6とをXOR処理して元データODの列7を取得し(7)、分散データSD4の[分散(4)f]と既に取得した列6とをXOR処理して元データODの列14を取得する(7)。
分散復元装置200は、分散データSD3の[分散(3)d]と既に取得した列7とをXOR処理して元データODの列8を取得し(8)、分散データSD4の[分散(4)g]と既に取得した列7とをXOR処理して元データODの列15を取得する(8)。
最後に、分散復元装置200は、分散データSD4の[分散(4)h]と既に取得した列8とをXOR処理して元データODの列16を取得する(9)。
分散復元装置200は、(1)〜(9)の各動作において取得された列1〜列16の各分割ブロックDB1〜DB16を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態5の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3,SD4を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3,SD4から元データODを安全に復元することができる。
(実施の形態6)
先ず、分散復元装置200の実施の形態6について、図20から図22を参照して説明する。図20は、実施の形態6における分散データの生成方法の一例を示す説明図である。図21は、実施の形態6における分散データの内容を示す説明図である。図22は、実施の形態6における動作手順を説明するフローチャートである。
実施の形態6では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計4個の分散データSD1、分散データSD2、分散データSD3、分散データSD4を生成する方法、及び、4個の分散データSD1、分散データSD2、分散データSD3、分散データSD4を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2,SD3,SD4をHDD80に記憶させる。これにより、分散復元装置200は、4個の分散データSD1,SD2,SD3,SD4を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態6では、図20及び図21に示すように、元データODは、それぞれ連接された合計12個の分割ブロックDB1〜DB12を含んで構成されている。なお、実施の形態6では、説明を簡単にするために、元データODは合計12個の分割ブロックDB1〜DB12を含む構成としているが、元データODを構成する分割ブロックの数は12に限定されない。
(実施の形態6における分散データの構成)
実施の形態6における分散データの構成について、図20及び図21を参照して説明する。図20及び図21に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1である。
従って、分散データSD1は、1個の列[分散(1)a]のデータにより構成される。
このように、分散データSD1は、元データODの6分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は1個であって、元データODのブロック(列)数の12個の1/12である。
次に、図17及び図18に示す分散データSD2において、[分散(2)b]は列2の分割ブロックDB2と列3の分割ブロックDB3とがXOR処理された値である。
従って、分散データSD2は、1個の列[分散(2)b]のデータにより構成される。
このように、分散データSD2は、元データODの6分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は1個であって、元データODのブロック(列)数の12個の1/12である。
図17及び図18に示す分散データSD3は、図13及び図14に示す実施の形態4における分散データSD2と同一であるため説明を省略する。
また、図17及び図18に示す分散データSD4は、図13及び図14に示す実施の形態4における分散データSD3と同一であるため説明を省略する。
(実施の形態6における分散データの生成方法)
実施の形態6における分散データSD1,SD2,SD3,SD4の具体的な生成方法について、図20及び図21を参照して説明する。分散復元装置200は、先ず、元データODを異なるデータサイズを有する2個のデータに分割する。例えば、分散復元装置200は、合計12個の分割ブロックDB1〜DB12を含む元データODを、列1〜列4のデータと、列5〜列12のデータとに分割する。
分散復元装置200は、列1〜列4のデータのうちいずれかの列のデータと、列5〜列12のデータのうちいずれかの列のデータとをXOR処理し、合計8個のXOR処理されたデータを連接させて分散データSD4を生成する。実施の形態6では、分散復元装置200は、分散データSD4を生成する際、列1〜列4の各データを2回用いて、列5〜列12のデータのうちいずれかの列のデータとXOR処理を実行する。
例えば、図20及び図21に示すように、分散復元装置200は、列1と列5とをXOR処理したデータと、列1と列6とをXOR処理したデータと、列2と列7とをXOR処理したデータと、列2と列8とをXOR処理したデータと、列3と列9とをXOR処理したデータと、列3と列10とをXOR処理したデータと、列4と列11とをXOR処理したデータと、列4と列12とをXOR処理したデータとを連接した分散データSD4を生成する。
次に、分散復元装置200は、分散データSD4の生成時における各XOR処理に用いた列1〜列4のデータ又は列5〜列12のデータのうちデータ数が少ない列の組み合わせを選択する。即ち、分散復元装置200は、列1〜列4のデータの組み合わせを選択する。
分散復元装置200は、選択された列の組み合わせに対し、本発明者による特願2010−077630号の秘密分散法に従って分散処理を実行し、実施の形態4における2個の分散データ(図14に示す分散データSD1,SD2)を生成する。特願2011−077630号の秘密分散法に従った分散処理によって、分散データSD4の生成時における各XOR処理に用いた列1〜列4及び列5〜列12の各データのうち、分散復元装置200によって選択された列の組み合わせ(例えば列1〜列4)がそれぞれ異なる組み合わせによってXOR処理されて、2個の分散データ(図14に示す分散データSD1,SD2)が生成される。
具体的には、分散復元装置200は、例えば列1〜列4の組み合わせを選択した場合に、図14に示す[分散(1)a]に列1だけを用い、図14に示す[分散(1)b]に列2と列3とのXOR処理した値を用い、図14に示す[分散(1)a],[分散(1)b]を連接させて分散データ(図14に示す分散データSD1)を生成する。
更に、分散復元装置200は、生成された分散データ(図14に示す分散データSD1)に対し、一部の列のデータを抽出して新たな分散データSD1(図21参照)を生成し、残りの列のデータを分散データSD2(図21参照)として生成する。
具体的には、分散復元装置200は、図14に示す[分散(1)a]を抽出した分散データSD1(図21参照)を生成し、残りの列のデータである図14に示す[分散(1)b]により構成される分散データSD2(図21参照)を生成する。なお、2個の分散データ(図14に示す分散データSD1,SD2)のうち、図14に示す分散データSD2は図21に示す分散データSD3と同一であるため、図21に示す分散データSD3の生成方法の説明は省略する。
なお、分散復元装置200は、本実施の形態6における分散データSD1に対し、[分散(1)a]に続けて乱数又はゼロ(0)を埋め合わせても良い。同様に、分散復元装置200は、本実施の形態6における分散データSD2に対し、[分散(2)b]の前に乱数又はゼロ(0)を埋め合わせても良い。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2,SD3,SD4とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態6における非対称分散の割合は、図21に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/12であり、HDD80に記憶される分散データSD2,SD3,SD4のデータサイズが元データODのデータサイズの11/12(1/12+1/6+2/3)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:11の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3,SD4の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態6に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態6の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3,SD4を生成するため、分散データSD1,SD2,SD3,SD4のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3,SD4を安全に生成することができる。
(実施の形態6における元データの復元方法)
実施の形態6における元データODの具体的な復元方法について、図22を参照して説明する。実施の形態6では分散データ同士のXOR処理によって元データの各分割ブロックを得る流れは実施の形態4と同一であるため、実施の形態6における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れの図面は省略している。
分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3,SD4を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2,SD3,SD4を取得する。
図22において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得する(1)。
分散復元装置200は、分散データSD3の[分散(3)a]と既に取得した列1とをXOR処理して元データODの列2を取得し(2)、分散データSD4の[分散(4)a]と既に取得した列1とをXOR処理して元データODの列5を取得し(2)、分散データSD4の[分散(4)b]と既に取得した列1とをXOR処理して元データODの列6を取得する(2)。
分散復元装置200は、分散データSD2の[分散(2)b]と既に取得した列2とをXOR処理して元データODの列3を取得し(3)、分散データSD4の[分散(4)c]と既に取得した列2とをXOR処理して元データODの列7を取得し(3)、分散データSD4の[分散(4)d]と既に取得した列2とをXOR処理して元データODの列8を取得する(3)。
分散復元装置200は、分散データSD3の[分散(3)b]と既に取得した列3とをXOR処理して元データODの列4を取得し(4)、分散データSD4の[分散(4)e]と既に取得した列3とをXOR処理して元データODの列9を取得し(4)、分散データSD4の[分散(4)f]と既に取得した列4とをXOR処理して元データODの列10を取得する(4)。
最後に、分散復元装置200は、分散データSD4の[分散(4)g]と既に取得した列4とをXOR処理して元データODの列11を取得し(5)、分散データSD4の[分散(4)h]と既に取得した列4とをXOR処理して元データODの列12を取得する(5)。
分散復元装置200は、(1)〜(5)の各動作において取得された列1〜列12の各分割ブロックDB1〜DB12を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態6の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3,SD4を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3,SD4から元データODを安全に復元することができる。
(実施の形態7)
先ず、分散復元装置200の実施の形態7について、図23から図26を参照して説明する。図23は、実施の形態7における分散データの生成方法の一例を示す説明図である。図24は、実施の形態7における分散データの内容を示す説明図である。図25は、実施の形態7における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図26は、実施の形態7における動作手順を説明するフローチャートである。
実施の形態7では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計4個の分散データSD1、分散データSD2、分散データSD3、分散データSD4を生成する方法、及び、4個の分散データSD1、分散データSD2、分散データSD3、分散データSD4を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2,SD3,SD4をHDD80に記憶させる。これにより、分散復元装置200は、4個の分散データSD1,SD2,SD3,SD4を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態5では、図23及び図24に示すように、元データODは、それぞれ連接された合計16個の分割ブロックDB1〜DB16を含んで構成されている。なお、実施の形態7では、説明を簡単にするために、元データODは合計16個の分割ブロックDB1〜DB16を含む構成としているが、元データODを構成する分割ブロックの数は16に限定されない。
(実施の形態7における分散データの構成)
実施の形態7における分散データの構成について、図23及び図24を参照して説明する。図23及び図24に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)b]は列3の分割ブロックDB3と列5の分割ブロックDB5とがXOR処理された値である。
従って、分散データSD1は、2個の列[分散(1)a],[分散(1)b]が連接された構成である。
このように、分散データSD1は、元データODの4分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は2個であって、元データODのブロック(列)数の16個の1/8である。
次に、図23及び図24に示す分散データSD2において、[分散(2)a]は列1の分割ブロックDB1と列3の分割ブロックDB3とがXOR処理された値であり、[分散(2)b]は列5の分割ブロックDB5と列7の分割ブロックDB7とがXOR処理された値である。
従って、分散データSD2は、2個の列[分散(2)a],[分散(2)b]が連接された構成である。
このように、分散データSD2は、元データODの4分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は2個であって、元データODのブロック(列)数の16個の1/8である。
図23及び図24に示す分散データSD3は、図1及び図2に示す実施の形態1における分散データSD2と同一であるため説明を省略する。
また、図23及び図24に示す分散データSD4は、図1及び図2に示す実施の形態1における分散データSD3と同一であるため説明を省略する。
(実施の形態7における分散データの生成方法)
実施の形態7における分散データSD1,SD2,SD3,SD4の具体的な生成方法について、図23及び図24を参照して説明する。分散復元装置200は、先ず、元データODを2個のデータに均等に分割する。但し、分散復元装置200は、元データODを3個以上のデータに均等に分割しても良い(実施の形態2参照)。例えば、分散復元装置200は、合計16個の分割ブロックDB1〜DB16を含む元データODを、列1〜列8のデータと、列9〜列16のデータとに均等に分割する。
分散復元装置200は、列1〜列8のデータのうちいずれかの列のデータと、列9〜列16のデータのうちいずれかの列のデータとをXOR処理し、合計8個のXOR処理されたデータを連接させて分散データSD4を生成する。
例えば、図23及び図24に示すように、分散復元装置200は、列1と列9とをXOR処理したデータと、列2と列10とをXOR処理したデータと、列3と列11とをXOR処理したデータと、列4と列12とをXOR処理したデータと、列5と列13とをXOR処理したデータと、列6と列14とをXOR処理したデータと、列7と列15とをXOR処理したデータと、列8と列16とをXOR処理したデータとを連接した分散データSD4を生成する。
次に、分散復元装置200は、分散データSD4の生成時における各XOR処理に用いた列1〜列8のデータ又は列9〜列16のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置200は、列の組み合わせとして列1〜列8のデータを選択するが、分散データSD4の生成時における各XOR処理の対象とされた2個の列のデータのうちどちらか一方のデータを選択しても良い。例えば、列1,列10,列3,列4,列13,列6,列7,列16の各データが選択されても良い。
分散復元装置200は、選択された列の組み合わせに対し、本発明者による特願2010−077630号の秘密分散法に従って分散処理を実行し、2個の分散データ(図2に示す分散データSD1,SD2)を生成する。特願2011−077630号の秘密分散法に従った分散処理によって、分散データSD4の生成時における各XOR処理に用いた列1〜列8及び列9〜列16の各データのうち、分散復元装置200によって選択された列の組み合わせ(例えば列1〜列8)がそれぞれ異なる組み合わせによってXOR処理されて、2個の分散データ(図2に示す分散データSD1,SD2)が生成される。
具体的には、分散復元装置200は、例えば列1〜列8の組み合わせを選択した場合に、図2に示す[分散(1)a]に列1だけを用い、図2に示す[分散(1)b]に列2と列3とのXOR処理した値を用い、図2に示す[分散(1)c]に列4と列5とのXOR処理した値を用い、図2に示す[分散(1)d]に列6と列7とのXOR処理した値を用い、図2に示す[分散(1)a],[分散(1)b],[分散(1)c],[分散(1)d]を連接させて分散データ(図2に示す分散データSD1)を生成する。
更に、分散復元装置200は、生成された分散データ(図2に示す分散データSD1)に対し、一部の列のデータを抽出し、抽出された一部の列のデータを他の列のデータに変更して新たな分散データSD1(図24参照)を生成し、残りの列のデータの一部の列のデータを他の列のデータに変更して新たな分散データSD2(図24参照)として生成する。
具体的には、分散復元装置200は、図2に示す[分散(1)a],[分散(1)c]を抽出して[分散(1)a]の列4を列3に変更して連接させた分散データSD1(図24参照)を生成し、残りの列のデータ[分散(1)b]の列2を列1に変更し,[分散(1)d]の列6を列5に変更して連接させた分散データSD2(図24参照)を生成する。なお、2個の分散データ(図2に示す分散データSD1,SD2)のうち、図2に示す分散データSD2は図24に示す分散データSD3と同一であるため、図24に示す分散データSD3の生成方法の説明は省略する。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2,SD3,SD4とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態7における非対称分散の割合は、図24に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/8であり、HDD80に記憶される分散データSD2,SD3,SD4のデータサイズが元データODのデータサイズの7/8(1/8+1/4+1/2)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:7の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3,SD4の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態7に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態7の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3,SD4を生成するため、分散データSD1,SD2,SD3,SD4のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3,SD4を安全に生成することができる。
(実施の形態7における元データの復元方法)
実施の形態7における元データODの具体的な復元方法について、図25及び図26を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3,SD4を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2,SD3,SD4を取得する。
図26において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD3の[分散(3)a]と既に取得した列1とをXOR処理して元データODの列2を取得し(2)、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列3を取得し(2)、分散データSD4の[分散(4)a]と既に取得した列1とをXOR処理して元データODの列9を取得する(2)。
分散復元装置200は、分散データSD4の[分散(4)b]と既に取得した列2とをXOR処理して元データODの列10を取得する(3)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列3とをXOR処理して元データODの列5を取得し(4)、分散データSD3の[分散(3)b]と既に取得した列3とをXOR処理して元データODの列4を取得し(4)、分散データSD4の[分散(4)c]と既に取得した列3とをXOR処理して元データODの列11を取得する(4)。
分散復元装置200は、分散データSD4の[分散(4)d]と既に取得した列4とをXOR処理して元データODの列12を取得する(5)。
分散復元装置200は、分散データSD2の[分散(2)b]と既に取得した列5とをXOR処理して元データODの列7を取得し(6)、分散データSD3の[分散(3)c]と既に取得した列5とをXOR処理して元データODの列6を取得し(6)、分散データSD4の[分散(4)e]と既に取得した列5とをXOR処理して元データODの列13を取得する(6)。
分散復元装置200は、分散データSD4の[分散(4)f]と既に取得した列6とをXOR処理して元データODの列14を取得する(7)。
分散復元装置200は、分散データSD3の[分散(3)d]と既に取得した列7とをXOR処理して元データODの列8を取得し(8)、分散データSD4の[分散(4)g]と既に取得した列7とをXOR処理して元データODの列15を取得する(8)。
最後に、分散復元装置200は、分散データSD4の[分散(4)h]と既に取得した列8とをXOR処理して元データODの列16を取得する(9)。
分散復元装置200は、(1)〜(9)の各動作において取得された列1〜列16の各分割ブロックDB1〜DB16を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態7の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3,SD4を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3,SD4から元データODを安全に復元することができる。
(実施の形態8)
先ず、分散復元装置200の実施の形態8について、図27から図30を参照して説明する。図27は、実施の形態8における分散データの生成方法の一例を示す説明図である。図28は、実施の形態8における分散データの内容を示す説明図である。図29は、実施の形態8における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図30は、実施の形態8における動作手順を説明するフローチャートである。
実施の形態8では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計3個の分散データSD1、分散データSD2、分散データSD3を生成する方法、及び、3個の分散データSD1、分散データSD2、分散データSD3を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2,SD3をHDD80に記憶させる。これにより、分散復元装置200は、3個の分散データSD1,SD2,SD3を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態8では、図27及び図28に示すように、元データODは、それぞれ連接された合計12個の分割ブロックDB1〜DB12を含んで構成されている。なお、実施の形態8では、説明を簡単にするために、元データODは合計12個の分割ブロックDB1〜DB12を含む構成としているが、元データODを構成する分割ブロックの数は12に限定されない。
(実施の形態8における分散データの構成)
実施の形態8における分散データの構成について、図27及び図28を参照して説明する。図27及び図28に示す分散データSD1は、図1及び図2に示す分散データSD1と同一である。図27及び図28に示す分散データSD2は、図1及び図2に示す分散データSD2と同一である。
図27及び図28に示す分散データSD3において、[分散(3)a]は列1の分割ブロックDB1と列9の分割ブロックDB9とがXOR処理された値であり、[分散(3)b]は列3の分割ブロックDB3と列10の分割ブロックDB10とがXOR処理された値であり、[分散(3)c]は列5の分割ブロックDB5と列11の分割ブロックDB11とがXOR処理された値であり、[分散(3)d]は列7の分割ブロックDB7と列12の分割ブロックDB12とがXOR処理された値である。
従って、分散データSD3は、4個の列[分散(3)a],[分散(3)b],[分散(3)c],[分散(3)d]が連接された構成である。
このように、分散データSD3は、元データODのデータサイズの3分の2に対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1,SD2と同様に、分散データSD3のブロック(列)数は4個であって、元データODのブロック(列)数の12個の1/3である。
(実施の形態8における分散データの生成方法)
実施の形態8における分散データSD1,SD2,SD3の具体的な生成方法について、図27及び図28を参照して説明する。分散復元装置200は、先ず、元データODを異なるデータサイズを有する2個のデータに分割する。例えば、分散復元装置200は、合計12個の分割ブロックDB1〜DB12を含む元データODを、列1〜列8のデータと、列9〜列12のデータとに分割する。
分散復元装置200は、列1〜列8のデータのうちいずれかの列のデータ又は列9〜列12のデータに対し、本発明者による特願2011−077630号の秘密分散法に従って分散処理を実行し、2個の分散データSD1,SD2を生成する。ここでは、列1〜列8のデータに対して本発明者による特願2011−077630号の秘密分散法に従って分散処理が実行されて、2個の分散データSD1,SD2が生成されている。
次に、分散復元装置200は、分散データSD1又は分散データSD2の生成時における各XOR処理の対象として用いた列1〜列8のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置200は、列の組み合わせとして列1、列3、列5、列7の各データを選択するが、他には例えば列1、列4、列6、列8を選択しても良いし、他には例えば列2、列4、列6、列8の各データを選択しても良い。
分散復元装置200は、分散データSD1又は分散データSD2の生成時における各XOR処理の対象として選択された列の組み合わせと、分散データSD1,SD2の生成時に用いられなかった列の組み合わせ(列9〜列12)とをそれぞれXOR処理させることによって、分散データSD3を生成する。
具体的には、分散復元装置200は、例えば分散データSD1又は分散データSD2の生成時における各XOR処理の対象として列1、列3、列5、列7を選択した場合に、[分散(3)a]に列1と列9とのXOR処理した値を用い、[分散(3)b]に列3と列10とのXOR処理した値を用い、[分散(3)c]に列5と列11とのXOR処理した値を用い、[分散(1)d]に列7と列12とのXOR処理した値を用い、[分散(3)a],[分散(3)b],[分散(3)c],[分散(3)d]を連接させて分散データSD3を生成する。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2,SD3とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態8における非対称分散の割合は、図28に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/3であり、HDD80に記憶される分散データSD2,SD3のデータサイズが元データODのデータサイズの2/3(1/3+1/3)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:2の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態8に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態8の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3を生成するため、分散データSD1,SD2,SD3のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3を安全に生成することができる。
(実施の形態8における元データの復元方法)
実施の形態8における元データODの具体的な復元方法について、図29及び図30を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2,SD3を取得する。
図29及び図30において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列2を取得し(2)、分散データSD3の[分散(3)a]と既に取得した列1とをXOR処理して元データODの列9を取得する(2)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列2とをXOR処理して元データODの列3を取得する(3)。
分散復元装置200は、分散データSD2の[分散(2)b]と既に取得した列3とをXOR処理して元データODの列4を取得し(4)、分散データSD3の[分散(3)b]と既に取得した列3とをXOR処理して元データODの列10を取得する(4)。
分散復元装置200は、分散データSD1の[分散(1)c]と既に取得した列4とをXOR処理して元データODの列5を取得する(5)。
分散復元装置200は、分散データSD2の[分散(2)c]と既に取得した列5とをXOR処理して元データODの列6を取得し(6)、分散データSD3の[分散(3)c]と既に取得した列5とをXOR処理して元データODの列11を取得する(6)。
分散復元装置200は、分散データSD1の[分散(1)d]と既に取得した列6とをXOR処理して元データODの列7を取得する(7)。
最後に、分散復元装置200は、分散データSD2の[分散(2)d]と既に取得した列7とをXOR処理して元データODの列8を取得し(8)、分散データSD3の[分散(3)d]と既に取得した列7とをXOR処理して元データODの列12を取得する(8)。
分散復元装置200は、(1)〜(8)の各動作において取得された列1〜列12の各分割ブロックDB1〜DB12を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態8の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3から元データODを安全に復元することができる。
(実施の形態9)
先ず、分散復元装置200の実施の形態9について、図31から図34を参照して説明する。図31は、実施の形態9における分散データの生成方法の一例を示す説明図である。図32は、実施の形態9における分散データの内容を示す説明図である。図33は、実施の形態9における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図34は、実施の形態9における動作手順を説明するフローチャートである。
実施の形態9では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計2個の分散データSD1、分散データSD2を生成する方法、及び、2個の分散データSD1、分散データSD2を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2をHDD80に記憶させる。これにより、分散復元装置200は、データサイズの異なる2個の分散データSD1,SD2を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態9では、図31及び図32に示すように、元データODは、それぞれ連接された合計12個の分割ブロックDB1〜DB12を含んで構成されている。なお、実施の形態9では、説明を簡単にするために、元データODは合計12個の分割ブロックDB1〜DB12を含む構成としているが、元データODを構成する分割ブロックの数は12に限定されない。
(実施の形態9における分散データの構成)
実施の形態9における分散データの構成について、図31及び図32を参照して説明する。図31及び図32に示す分散データSD1は、図1及び図2に示す分散データSD1と同一である。
図27及び図28に示す分散データSD2において、[分散(2)a]は列1の分割ブロックDB1と列2の分割ブロックDB2とがXOR処理された値であり、[分散(2)b]は列1の分割ブロックDB1と列9の分割ブロックDB9とがXOR処理された値であり、[分散(2)c]は列2の分割ブロックDB2と列4の分割ブロックDB4とがXOR処理された値であり、[分散(2)d]は列2の分割ブロックDB2と列10の分割ブロックDB10とがXOR処理された値であり、[分散(3)e]は列3の分割ブロックDB3と列6の分割ブロックDB6とがXOR処理された値であり、[分散(3)f]は列3の分割ブロックDB3と列11の分割ブロックDB11とがXOR処理された値であり、[分散(2)g]は列4の分割ブロックDB4と列8の分割ブロックDB8とがXOR処理された値であり、[分散(2)h]は列4の分割ブロックDB4と列12の分割ブロックDB12とがXOR処理された値である。
従って、分散データSD2は、8個の列[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d],[分散(2)e],[分散(2)f],[分散(2)g],[分散(2)h]が連接された構成である。
このように、分散データSD2は、列1〜列4の各データが2回用いられ、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は8個であって、元データODのブロック(列)数の12個の2/3である。
(実施の形態9における分散データの生成方法)
実施の形態9における分散データSD1,SD2,SD3の具体的な生成方法について、図31及び図32を参照して説明する。分散復元装置200は、先ず、元データODを異なるデータサイズを有する2個のデータに分割する。例えば、分散復元装置200は、合計12個の分割ブロックDB1〜DB12を含む元データODを、列1〜列8のデータと、列9〜列12のデータとに分割する。
分散復元装置200は、列1〜列8のデータのうちいずれかの列のデータ又は列9〜列12のデータのうちいずれかの列のデータに対し、本発明者による特願2011−077630号の秘密分散法に従って分散処理を実行し、2個の分散データ(図28に示す分散データSD1,SD2)を生成する。ここでは、列1〜列8のデータに対して本発明者による特願2011−077630号の秘密分散法に従って分散処理が実行されて、2個の分散データ(図28に示す分散データSD1,SD2)が生成されている。なお、実施の形態9における分散データSD1は実施の形態8における分散データSD1(図28参照)と同一であるため、実施の形態9における分散データSD1の生成方法の説明は省略する。
次に、分散復元装置200は、図28に示す分散データSD1又は分散データSD2の生成時における各XOR処理の対象として用いた列1〜列8のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置200は、列の組み合わせとして列1、列3、列5、列7の各データを選択するが、他には例えば列1、列4、列6、列8を選択しても良いし、他には例えば列2、列4、列6、列8の各データを選択しても良い。
分散復元装置200は、図28に示す分散データSD1又は分散データSD2の生成時における各XOR処理の対象として選択された列の組み合わせと、図28に示す分散データSD1,SD2の生成時に用いられなかった列の組み合わせ(列9〜列12)とをそれぞれXOR処理させることによって、図28に示す分散データSD3を生成する。
具体的には、分散復元装置200は、例えば図28に示す分散データSD1又は分散データSD2の生成時における各XOR処理の対象として列1、列3、列5、列7を選択した場合に、[分散(3)a]に列1と列9とのXOR処理した値を用い、[分散(3)b]に列3と列10とのXOR処理した値を用い、[分散(3)c]に列5と列11とのXOR処理した値を用い、[分散(1)d]に列7と列12とのXOR処理した値を用い、[分散(3)a],[分散(3)b],[分散(3)c],[分散(3)d]を連接させて図28に示す分散データSD3を生成する。
更に、分散復元装置200は、生成された図28に示す分散データSD2と分散データSD3とを連接し、連接された列のデータのうち一部の列のデータを他の列のデータに変更して新たな分散データSD2(図32参照)を生成する。
具体的には、分散復元装置200は、図28に示す分散データSD2の[分散(2)b]の列3を列2に変更し、同図に示す分散データSD2の[分散(2)c]の列5を列3に変更し、同図に示す分散データSD2の[分散(2)d]の列7を列4に変更し、同図に示す分散データSD3の[分散(3)b]の列3を列2に変更し、同図に示す分散データSD3の[分散(3)c]の列5を列3に変更し、同図に示す分散データSD3の[分散(3)d]の列7を列4に変更する。これにより、分散復元装置200は、図32に示す分散データSD2を、実施の形態9における分散データSD2として生成する。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態9における非対称分散の割合は、図32に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/3であり、HDD80に記憶される分散データSD2のデータサイズが元データODのデータサイズの2/3である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:2の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態9に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態9の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2を生成するため、分散データSD1,SD2のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2を安全に生成することができる。
(実施の形態9における元データの復元方法)
実施の形態9における元データODの具体的な復元方法について、図33及び図34を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2を取得する。
図33及び図34において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列2を取得し(2)、分散データSD2の[分散(2)b]と既に取得した列1とをXOR処理して元データODの列9を取得する(2)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列2とをXOR処理して元データODの列3を取得し(3)、分散データSD2の[分散(2)c]と既に取得した列2とをXOR処理して元データODの列4を取得し(3)、分散データSD2の[分散(2)d]と既に取得した列2とをXOR処理して元データODの列10を取得する(3)。
分散復元装置200は、分散データSD2の[分散(2)e]と既に取得した列3とをXOR処理して元データODの列6を取得し(4)、分散データSD2の[分散(2)f]と既に取得した列3とをXOR処理して元データODの列11を取得する(4)。
分散復元装置200は、分散データSD1の[分散(1)c]と既に取得した列4とをXOR処理して元データODの列5を取得し(5)、分散データSD2の[分散(2)g]と既に取得した列4とをXOR処理して元データODの列8を取得し(5)、分散データSD2の[分散(2)h]と既に取得した列4とをXOR処理して元データODの列12を取得する(5)。
最後に、分散復元装置200は、分散データSD1の[分散(1)d]と既に取得した列6とをXOR処理して元データODの列7を取得する(8)。
分散復元装置200は、(1)〜(6)の各動作において取得された列1〜列12の各分割ブロックDB1〜DB12を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態9の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2から元データODを安全に復元することができる。
(実施の形態10)
先ず、分散復元装置200の実施の形態10について、図35から図38を参照して説明する。図35は、実施の形態10における分散データの生成方法の一例を示す説明図である。図36は、実施の形態10における分散データの内容を示す説明図である。図37は、実施の形態10における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図38は、実施の形態10における動作手順を説明するフローチャートである。
実施の形態10では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計2個の分散データSD1、分散データSD2を生成する方法、及び、2個の分散データSD1、分散データSD2を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2をHDD80に記憶させる。これにより、分散復元装置200は、データサイズの異なる2個の分散データSD1,SD2を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態10では、図35及び図36に示すように、元データODは、それぞれ連接された合計12個の分割ブロックDB1〜DB12を含んで構成されている。なお、実施の形態10では、説明を簡単にするために、元データODは合計12個の分割ブロックDB1〜DB12を含む構成としているが、元データODを構成する分割ブロックの数は12に限定されない。
(実施の形態10における分散データの構成)
実施の形態10おける分散データの構成について、図35及び図36を参照して説明する。図35及び図36に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)b]は列2の分割ブロックDB2と列6の分割ブロックDB6とがXOR処理された値であり、[分散(1)c]は列3の分割ブロックDB3と列8の分割ブロックDB8とがXOR処理された値であり、[分散(1)d]は列4の分割ブロックDB4と列10の分割ブロックDB10とがXOR処理された値である。
従って、分散データSD1は、4個の列[分散(1)a],[分散(1)b],[分散(1)c],[分散(1)d]が連接された構成である。
このように、分散データSD1は、元データODのデータサイズの3分の2に対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は4個であって、元データODのブロック(列)数の12個の1/3である。
図35及び図36に示す分散データSD2において、[分散(2)a]は列1の分割ブロックDB1と列5の分割ブロックDB5とがXOR処理された値であり、[分散(2)b]は列1の分割ブロックDB1と列6の分割ブロックDB6とがXOR処理された値であり、[分散(2)c]は列2の分割ブロックDB2と列7の分割ブロックDB7とがXOR処理された値であり、[分散(2)d]は列2の分割ブロックDB2と列8の分割ブロックDB8とがXOR処理された値であり、[分散(3)e]は列3の分割ブロックDB3と列9の分割ブロックDB9とがXOR処理された値であり、[分散(3)f]は列3の分割ブロックDB3と列10の分割ブロックDB10とがXOR処理された値であり、[分散(2)g]は列4の分割ブロックDB4と列11の分割ブロックDB11とがXOR処理された値であり、[分散(2)h]は列4の分割ブロックDB4と列12の分割ブロックDB12とがXOR処理された値である。
従って、分散データSD2は、8個の列[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d],[分散(2)e],[分散(2)f],[分散(2)g],[分散(2)h]が連接された構成である。
このように、分散データSD2は、列1〜列4の各データが2回用いられ、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は8個であって、元データODのブロック(列)数の12個の2/3である。
(実施の形態10における分散データの生成方法)
実施の形態10における分散データSD1,SD2の具体的な生成方法について、図35及び図36を参照して説明する。分散復元装置200は、先ず、実施の形態9において説明した方法に従って、2個の分散データSD1,SD2(図32参照)を生成する。ここでは、実施の形態9において説明した方法の説明は省略する。
次に、分散復元装置200は、生成された図32に示す分散データSD1,SD2に対し、各分散データSD1,SD2の列のデータのうち一部の列のデータを他の列のデータに変更して新たな分散データSD1,SD2(図36参照)を生成する。
具体的には、分散復元装置200は、図32に示す分散データSD1の[分散(1)b]の列3を列6に変更し、同図に示す分散データSD1の[分散(1)c]の列4を列3に変更し、同図に示す分散データSD1の[分散(1)c]の列5を列8に変更し、同図に示す分散データSD1の[分散(1)d]の列6を列4に変更し、同図に示す分散データSD1の[分散(1)d]の列7を列10に変更する。これにより、分散復元装置200は、図36に示す分散データSD1を、実施の形態10における分散データSD1として生成する。
更に、分散復元装置200は、図32に示す分散データSD2の[分散(2)a]の列2を列5に変更し、同図に示す分散データSD1の[分散(2)b]の列9を列6に変更し、同図に示す分散データSD2の[分散(2)c]の列4を列7に変更し、同図に示す分散データSD2の[分散(2)d]の列10を列8に変更し、同図に示す分散データSD2の[分散(2)e]の列6を列9に変更し、同図に示す分散データSD2の[分散(2)f]の列11を列10に変更し、同図に示す分散データSD2の[分散(2)g]の列8を列11に変更する。これにより、分散復元装置200は、図36に示す分散データSD2を、実施の形態10における分散データSD2として生成する。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態10における非対称分散の割合は、図36に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/3であり、HDD80に記憶される分散データSD2のデータサイズが元データODのデータサイズの2/3である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:2の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態10に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態10の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2を生成するため、分散データSD1,SD2のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2を安全に生成することができる。
(実施の形態10における元データの復元方法)
実施の形態10における元データODの具体的な復元方法について、図37及び図38を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2を取得する。
図37及び図38において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得し(1)、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列5を取得し(2)、分散データSD2の[分散(2)b]と既に取得した列1とをXOR処理して元データODの列6を取得する(2)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列6とをXOR処理して元データODの列2を取得し(3)、分散データSD2の[分散(2)c]と既に取得した列2とをXOR処理して元データODの列7を取得し(4)、分散データSD2の[分散(2)d]と既に取得した列2とをXOR処理して元データODの列8を取得する(4)。
分散復元装置200は、分散データSD1の[分散(1)c]と既に取得した列8とをXOR処理して元データODの列3を取得し(5)、分散データSD2の[分散(2)e]と既に取得した列3とをXOR処理して元データODの列9を取得し(6)、分散データSD2の[分散(2)f]と既に取得した列3とをXOR処理して元データODの列10を取得する(6)。
最後に、分散復元装置200は、分散データSD1の[分散(1)d]と既に取得した列10とをXOR処理して元データODの列4を取得し(7)、分散データSD2の[分散(2)g]と既に取得した列4とをXOR処理して元データODの列11を取得し(8)、分散データSD2の[分散(2)h]と既に取得した列4とをXOR処理して元データODの列12を取得する(8)。
分散復元装置200は、(1)〜(8)の各動作において取得された列1〜列12の各分割ブロックDB1〜DB12を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態10の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2から元データODを安全に復元することができる。
(実施の形態11)
先ず、分散復元装置200の実施の形態11について、図39から図42を参照して説明する。図39は、実施の形態11における分散データの生成方法の一例を示す説明図である。図40は、実施の形態11における分散データの内容を示す説明図である。図41は、実施の形態11における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図42は、実施の形態11における動作手順を説明するフローチャートである。
実施の形態11では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計3個の分散データSD1、分散データSD2、分散データSD3を生成する方法、及び、3個の分散データSD1、分散データSD2、分散データSD3を用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2,SD3をHDD80に記憶させる。これにより、分散復元装置200は、3個の分散データSD1,SD2,SD3を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態11では、図39及び図40に示すように、元データODは、それぞれ連接された合計8個の分割ブロックDB1〜DB8を含んで構成されている。なお、実施の形態11では、説明を簡単にするために、元データODは合計8個の分割ブロックDB1〜DB8を含む構成としているが、元データODを構成する分割ブロックの数は8に限定されない。
(実施の形態11における分散データの構成)
実施の形態11における分散データの構成について、図39及び図40を参照して説明する。図39及び図40に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)b]は列2の分割ブロックDB2と列7の分割ブロックDB7とがXOR処理された値である。
従って、分散データSD1は、2個の列[分散(1)a],[分散(1)b]が連接された構成である。
このように、分散データSD1は、元データODの3分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は2個であって、元データODのブロック(列)数の8個の1/4である。
次に、図39及び図40に示す分散データSD2において、[分散(2)a]は列1の分割ブロックDB1と列7の分割ブロックDB7とがXOR処理された値であり、[分散(2)b]は列2の分割ブロックDB2と列8の分割ブロックDB8とがXOR処理された値である。
従って、分散データSD2は、2個の列[分散(2)a],[分散(2)b]が連接された構成である。
このように、分散データSD2は、元データODの3分の1のデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は2個であって、元データODのブロック(列)数の8個の1/4である。
同様に、図39及び図40に示す分散データSD3において、[分散(3)a]は列1の分割ブロックDB1と列3の分割ブロックDB3とがXOR処理された値であり、[分散(3)b]は列1の分割ブロックDB1と列4の分割ブロックDB4とがXOR処理された値であり、[分散(3)c]は列2の分割ブロックDB2と列5の分割ブロックDB5とがXOR処理された値であり、[分散(3)d]は列2の分割ブロックDB2と列6の分割ブロックDB6とがXOR処理された値である。
従って、分散データSD3は、4個の列[分散(3)a],[分散(3)b],[分散(3)c],[分散(3)d]が連接された構成である。
このように、分散データSD3は、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は4個であって、元データODのブロック(列)数の8個の1/2である。
(実施の形態11における分散データの生成方法)
実施の形態11における分散データSD1,SD2,SD3の具体的な生成方法について、図39及び図40を参照して説明する。分散復元装置200は、先ず、元データODを2個のデータに均等に分割する。例えば、分散復元装置200は、合計8個の分割ブロックDB1〜DB8を含む元データODを、列1、列2、列7、列8のデータと、列3〜列6のデータとに均等に分割する。
分散復元装置200は、列1、列2、列7、列8のデータのうちいずれかの列のデータと、列3〜列6のデータのうちいずれかの列のデータとをXOR処理し、合計4個のXOR処理されたデータを連接させて分散データを生成する。
例えば、分散復元装置200は、列1と列3とをXOR処理したデータと、列2と列4とをXOR処理したデータと、列7と列5とをXOR処理したデータと、列8と列6とをXOR処理したデータとを連接した分散データを生成する。更に、分散復元装置200は、生成された分散データの一部の列のデータを他の列のデータに変更して新たな分散データSD3(図40参照)を生成する。
具体的には、分散復元装置200は、列2と列4とのXOR処理したデータの列2を列1に変更し、列7と列5とをXOR処理したデータの列7を列2に変更し、列8と列6とをXOR処理したデータの列8を列2に変更する。これにより、分散復元装置200は、[分散(2)a]に列1と列3とをXOR処理した値を用い、[分散(2)b]に列1と列4とをXOR処理した値を用い、[分散(2)c]に列2と列5とをXOR処理した値を用い、[分散(2)d]に列2と列6とをXOR処理した値を用い、[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d]を連接させて分散データSD2を生成する。
次に、分散復元装置200は、分散データSD3の生成時における各XOR処理に用いた列1、列2、列7、列8のデータ又は列3〜列6のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置200は、列の組み合わせとして列1、列2、列7、列8のデータを選択するが、列3〜列6が選択されても良い。
分散復元装置200は、選択された列の組み合わせに対し、本発明者による特願2010−077630号の秘密分散法に従って分散処理を実行し、2個の分散データSD1,SD2を生成する。特願2011−077630号の秘密分散法に従った分散処理によって、分散データSD3の生成時における各XOR処理に用いた列1、列2、列7、列8及び列3〜列6の各データのうち、分散復元装置200によって選択された列の組み合わせ(例えば列1、列2、列7、列8)がそれぞれ異なる組み合わせによってXOR処理されて、分散データSD1,SD2が生成される。
具体的には、分散復元装置200は、例えば列1、列2、列7、列8の組み合わせを選択した場合に、[分散(1)a]に列1だけを用い、[分散(1)b]に列2と列7とのXOR処理した値を用い、[分散(1)a],[分散(1)b],[分散(1)c],[分散(1)d]を連接させて分散データSD1を生成する。
更に、分散復元装置200は、生成された分散データSD1に対し、分散データSD1の下段に図示した列7を左方向に一列分シフトさせることによって、分散データSD2を生成する。従って、分散復元装置200は、分散データSD2を生成する場合では、分散データSD1の生成時に用いない列8のデータを、列2とのXOR処理に用いる。
なお、分散復元装置200は、分散データSD2を分散データSD1より先に生成しても良い。具体的には、分散復元装置200は、例えば列1、列2、列7、列8の組み合わせを選択した場合に、[分散(2)a]に列1と列7とのXOR処理した値を用い、[分散(2)b]に列2と列8とのXOR処理した値を用い、[分散(2)a],[分散(2)b]を連接させて分散データSD2を生成する。
更に、分散復元装置200は、生成された分散データSD2に対し、分散データSD2の下段に図示した列7、列8を右方向に一列分シフトさせることによって、分散データSD1を生成する。従って、分散復元装置200は、分散データSD1を生成する場合では、分散データSD2の生成時に用いた列8のデータを用いず、[分散(1)a]に単一の列1だけを用いる。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2,SD3とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態11における非対称分散の割合は、図40に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/4であり、HDD80に記憶される分散データSD2,SD3のデータサイズが元データODのデータサイズの3/4(1/4+1/2)である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:3の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2,SD3の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態11に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態11の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2,SD3を生成するため、分散データSD1,SD2,SD3のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2,SD3を安全に生成することができる。
(実施の形態11における元データの復元方法)
実施の形態11における元データODの具体的な復元方法について、図41及び図42を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2,SD3を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2,SD3を取得する。
図41及び図42において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得する(1)。
分散復元装置200は、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列7を取得し(2)、分散データSD3の[分散(3)a]と既に取得した列1とをXOR処理して元データODの列3を取得し(2)、分散データSD3の[分散(3)b]と既に取得した列1とをXOR処理して元データODの列4を取得する(2)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列7とをXOR処理して元データODの列2を取得する(3)。
最後に、分散復元装置200は、分散データSD2の[分散(2)b]と既に取得した列2とをXOR処理して元データODの列8を取得し(4)、分散データSD3の[分散(3)c]と既に取得した列2とをXOR処理して元データODの列5を取得し(4)、分散データSD3の[分散(3)d]と既に取得した列2とをXOR処理して元データODの列6を取得する(4)。
分散復元装置200は、(1)〜(4)の各動作において取得された列1〜列8の各分割ブロックDB1〜DB8を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態11の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2,SD3を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2,SD3から元データODを安全に復元することができる。
(実施の形態12)
先ず、分散復元装置200の実施の形態12について、図43から図46を参照して説明する。図43は、実施の形態12における分散データの生成方法の一例を示す説明図である。図44は、実施の形態12における分散データの内容を示す説明図である。図45は、実施の形態12における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図46は、実施の形態12における動作手順を説明するフローチャートである。
実施の形態12では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計2個の分散データSD1、分散データSD2を生成する方法、及び、2個の分散データSD1、分散データSD2用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2をHDD80に記憶させる。これにより、分散復元装置200は、2個の分散データSD1,SD2を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態12では、図43及び図44に示すように、元データODは、それぞれ連接された合計8個の分割ブロックDB1〜DB8を含んで構成されている。なお、実施の形態12では、説明を簡単にするために、元データODは合計8個の分割ブロックDB1〜DB8を含む構成としているが、元データODを構成する分割ブロックの数は8に限定されない。
(実施の形態12における分散データの構成)
実施の形態12における分散データの構成について、図43及び図44を参照して説明する。図43及び図44に示す分散データSD1は、図39及び図40に示す分散データSD1と同一である。
次に、図43及び図44に示す分散データSD2において、[分散(2)a]は列1の分割ブロックDB1と列3の分割ブロックDB3とがXOR処理された値であり、[分散(2)b]は列1の分割ブロックDB1と列4の分割ブロックDB4とがXOR処理された値であり、[分散(2)c]は列1の分割ブロックDB1と列7の分割ブロックDB7とがXOR処理された値であり、[分散(2)d]は列2の分割ブロックDB2と列5の分割ブロックDB5とがXOR処理された値であり、[分散(2)e]は列2の分割ブロックDB2と列6の分割ブロックDB6とがXOR処理された値であり、[分散(2)f]は列2の分割ブロックDB2と列8の分割ブロックDB8とがXOR処理された値である。
従って、分散データSD2は、6個の列[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d],[分散(2)e],[分散(2)f]が連接された構成である。
このように、分散データSD2は、列1のデータと列2のデータとがそれぞれ2回用いられ、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は6個であって、元データODのブロック(列)数の8個の3/4である。
(実施の形態12における分散データの生成方法)
実施の形態12における分散データSD1,SD2の具体的な生成方法について、図43及び図43を参照して説明する。分散復元装置200は、先ず、実施の形態11において説明した方法に従って、3個の分散データSD1,SD2,SD3(図40参照)を生成する。ここでは、実施の形態11において説明した方法の説明は省略する。また、図40に示す分散データSD1と、図44に示す分散データSD1とは同一であるため、実施の形態12における分散データSD1(図44参照)の生成方法の説明は省略する。
次に、分散復元装置200は、生成された図40に示す分散データSD2,SD3を連接させて列を並び替えることによって、実施の形態12における分散データSD2を生成する(図44参照)。
具体的には、分散復元装置200は、[分散(2)a]に列1と列3とをXOR処理した値を用い、[分散(2)b]に列1と列4とのXOR処理した値を用い、[分散(1)c]に列1と列7とのXOR処理した値を用い、[分散(2)d]に列2と列5とをXOR処理した値を用い、[分散(2)e]に列2と列6とのXOR処理した値を用い、[分散(2)f]に列2と列8とのXOR処理した値を用い、[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d],[分散(2)e],[分散(2)f]を連接させて分散データSD2を生成する(図44参照)。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行し、更に、複数の分散データを連接することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態12における非対称分散の割合は、図44に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/4であり、HDD80に記憶される分散データSD2のデータサイズが元データODのデータサイズの3/4である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:3の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態12に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態12の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2を生成するため、分散データSD1,SD2のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2を安全に生成することができる。
(実施の形態12における元データの復元方法)
実施の形態12における元データODの具体的な復元方法について、図45及び図46を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2を取得する。
図45及び図46において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得する(1)。
分散復元装置200は、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列3を取得し(2)、分散データSD2の[分散(2)b]と既に取得した列1とをXOR処理して元データODの列4を取得し(2)、分散データSD2の[分散(2)c]と既に取得した列1とをXOR処理して元データODの列7を取得する(2)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列7とをXOR処理して元データODの列2を取得する(3)。
最後に、分散復元装置200は、分散データSD2の[分散(2)d]と既に取得した列2とをXOR処理して元データODの列5を取得し(4)、分散データSD2の[分散(2)e]と既に取得した列2とをXOR処理して元データODの列6を取得し(4)、分散データSD2の[分散(2)f]と既に取得した列2とをXOR処理して元データODの列8を取得する(4)。
分散復元装置200は、(1)〜(4)の各動作において取得された列1〜列8の各分割ブロックDB1〜DB8を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態12の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2から元データODを安全に復元することができる。
(実施の形態13)
先ず、分散復元装置200の実施の形態13について、図47から図50を参照して説明する。図47は、実施の形態13における分散データの生成方法の一例を示す説明図である。図48は、実施の形態13における分散データの内容を示す説明図である。図49は、実施の形態13における分散データ同士のXOR処理によって元データの各分割ブロックを得る流れを示す説明図である。図50は、実施の形態13における動作手順を説明するフローチャートである。
実施の形態13では、元データODから、元データODのデータサイズより小さいデータサイズを有する合計2個の分散データSD1、分散データSD2を生成する方法、及び、2個の分散データSD1、分散データSD2用いて元データODを復元する方法を説明する。
分散復元装置200は、分散データSD1を例えば外部記憶装置510に記憶させ、分散データSD2をHDD80に記憶させる。これにより、分散復元装置200は、2個の分散データSD1,SD2を、例えば外部記憶装置510とHDD80とに対して非対称に分散させる。
実施の形態13では、図47及び図48に示すように、元データODは、それぞれ連接された合計8個の分割ブロックDB1〜DB8を含んで構成されている。なお、実施の形態13では、説明を簡単にするために、元データODは合計8個の分割ブロックDB1〜DB8を含む構成としているが、元データODを構成する分割ブロックの数は8に限定されない。
(実施の形態13における分散データの構成)
実施の形態13における分散データの構成について、図47及び図48を参照して説明する。図47及び図48に示す分散データSD1において、[分散(1)a]は列1の分割ブロックDB1であり、[分散(1)b]は列2の分割ブロックDB2と列5の分割ブロックDB5とがXOR処理された値である。
従って、分散データSD1は、2個の列[分散(1)a],[分散(1)b]が連接された構成である。
このように、分散データSD1は、元データODのデータサイズの2分の1に対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD1のブロック(列)数は2個であって、元データODのブロック(列)数の8個の1/4である。
次に、図47及び図48に示す分散データSD2において、[分散(2)a]は列1の分割ブロックDB1と列3の分割ブロックDB3とがXOR処理された値であり、[分散(2)b]は列1の分割ブロックDB1と列4の分割ブロックDB4とがXOR処理された値であり、[分散(2)c]は列1の分割ブロックDB1と列5の分割ブロックDB5とがXOR処理された値であり、[分散(2)d]は列2の分割ブロックDB2と列6の分割ブロックDB6とがXOR処理された値であり、[分散(2)e]は列2の分割ブロックDB2と列7の分割ブロックDB7とがXOR処理された値であり、[分散(2)f]は列2の分割ブロックDB2と列8の分割ブロックDB8とがXOR処理された値である。
従って、分散データSD2は、6個の列[分散(2)a],[分散(2)b],[分散(2)c],[分散(2)d],[分散(2)e],[分散(2)f]が連接された構成である。
このように、分散データSD2は、列1のデータと列2のデータとがそれぞれ2回用いられ、元データODのデータサイズに対応する分割ブロックのデータを、XOR処理によって2段に畳み込んで構成されている。従って、分散データSD2のブロック(列)数は6個であって、元データODのブロック(列)数の8個の3/4である。
(実施の形態13における分散データの生成方法)
実施の形態13における分散データSD1,SD2の具体的な生成方法について、図47及び図48を参照して説明する。分散復元装置200は、先ず、実施の形態12において説明した方法に従って、2個の分散データSD1,SD2(図44参照)を生成する。ここでは、実施の形態12において説明した方法の説明は省略する。
分散復元装置200は、図44に示す分散データSD1の一部の列のデータを他の列のデータに変更して新たな分散データSD1(図48参照)を生成する。
具体的には、分散復元装置200は、図44に示す分散データSD1の[分散(1)b]の列7を列5に変更して、実施の形態13における分散データSD1を生成する(図48参照)。
次に、分散復元装置200は、生成された図44に示す分散データSD2の一部の列のデータを他の列のデータに変更して新たな分散データSD2を生成する(図48参照)。
具体的には、分散復元装置200は、図44に示す分散データSD2の[分散(2)c]の列7を列5に変更し、同図に示す分散データSD2の[分散(2)d]の列5を列6に変更し、同図に示す分散データSD2の[分散(2)e]の列6を列7に変更することによって、分散データSD2を生成する(図48参照)。
このように、分散復元装置200は、分散データを生成する場合に、元データODの分割ブロックのデータを2段(行)に畳み込む処理(XOR処理)を実行し、更に、XOR処理の対象として用いる列のデータを他の列のデータに変更することで、分散データの中において元データの情報(内容)を欠落させることができる。これにより、分散復元装置200は、分散データSD1と、分散データSD2とのいずれか一方の分散データから元データODが復元されることを阻止できる分散データを生成することができる。
また、本実施の形態13における非対称分散の割合は、図48に示すように、外部記憶装置510に記憶される分散データSD1のデータサイズが元データODのデータサイズの1/4であり、HDD80に記憶される分散データSD2のデータサイズが元データODのデータサイズの3/4である。このため、分散復元装置200は、外部記憶装置510とHDD80とに対し、1:3の非対称なデータサイズの分散データを生成することができる。なお、分散データSD1,SD2の各データサイズの合計は、元データODのデータサイズと同じになる。
従って、実施の形態13に分散復元装置200における元データODとXOR処理を用いて元データODの情報(内容)を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置200は、生成された分散データの数に対応する閾値未満の分散データから元データODの復元を困難にさせることができる。また、分散復元装置200は、XOR処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
以上により、実施の形態13の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って複数個の分散データSD1,SD2を生成するため、分散データSD1,SD2のデータサイズを元データODのデータサイズより少なくでき、分散復元装置200におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置200は、非対称なデータサイズの分散データSD1,SD2を安全に生成することができる。
(実施の形態13における元データの復元方法)
実施の形態13における元データODの具体的な復元方法について、図49及び図50を参照して説明する。分散復元装置200は、先ず、全ての分散データSD1,SD2を取得する。具体的には、分散復元装置200は、MAC/PHY90において外部記憶装置510にアクセスして分散データSD1を取得し、CPU60においてHDD80にアクセスして分散データSD2を取得する。
図49及び図50において、分散復元装置200は、分散データSD1の[分散(1)a]を基にして元データODの列1を取得する(1)。
分散復元装置200は、分散データSD2の[分散(2)a]と既に取得した列1とをXOR処理して元データODの列3を取得し(2)、分散データSD2の[分散(2)b]と既に取得した列1とをXOR処理して元データODの列4を取得し(2)、分散データSD2の[分散(2)c]と既に取得した列1とをXOR処理して元データODの列5を取得する(2)。
分散復元装置200は、分散データSD1の[分散(1)b]と既に取得した列5とをXOR処理して元データODの列2を取得する(3)。
最後に、分散復元装置200は、分散データSD2の[分散(2)d]と既に取得した列2とをXOR処理して元データODの列6を取得し(4)、分散データSD2の[分散(2)e]と既に取得した列2とをXOR処理して元データODの列7を取得し(4)、分散データSD2の[分散(2)f]と既に取得した列2とをXOR処理して元データODの列8を取得する(4)。
分散復元装置200は、(1)〜(4)の各動作において取得された列1〜列8の各分割ブロックDB1〜DB8を連接させて元データODを取得する。これにより、分散復元装置200は、元データODの復元処理を終了する。
以上により、実施の形態13の分散復元装置200は、選択された分割ブロックの組み合わせに従って排他的論理和(XOR処理)の演算を行って生成された複数個の分散データSD1,SD2を用いて、元データODの復元処理を高速に実行することができ、分散復元装置200におけるメモリ量を削減できる。また、分散復元装置200は、非対称なデータサイズを有する分散データSD1,SD2から元データODを安全に復元することができる。
以上により、各実施の形態における分散復元装置200は、非対称分散の割合(例えば1:2、1:3、1:5、1;7、1:11)を自由に設定して分散データを生成することができる。
以上、図面を参照して各種の実施の形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種実施の形態の変更例または修正例、更に各種実施の形態の組み合わせ例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。