(57)【特許請求の範囲】
【請求項１】
３個以上の所定個のブロックデータにより構成される元データから、前記所定個未満のブロックデータを有する分散データを複数生成する分散装置であって、
所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部を備え、
前記演算処理部は、
前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行い、前記第１演算処理に用いるブロックデータの組み合わせが異なる、第１分散データと第２分散データとを生成し、
前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、
前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、
前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、
前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、
前記第２分散データは、前記第１分散データよりデータサイズが大きい、
分散装置。
【請求項２】
請求項１に記載の分散装置であって、
前記第１分散データは、前記非演算処理ブロックと複数の前記第１演算処理ブロックとが連接されて構成され、
前記第２分散データは、複数の前記第１演算処理ブロックが連接されて構成され、
前記演算処理部は、
前記第１分散データに対し、前記第１演算処理に用いる少なくとも２個のブロックデータの組み合わせのうち少なくとも一列分をシフト処理し、
前記非演算処理ブロックを構成する単一ブロックデータと前記シフト処理したブロックデータとを第１演算処理した第１ブロックと、
前記シフト処理したブロックデータと前記シフト処理していないブロックデータとを第１演算処理した第２ブロックと、を少なくとも連接して前記第２分散データを生成する、
分散装置。
【請求項３】
請求項２に記載の分散装置であって、
前記演算処理部は、
前記シフト処理していない一部のブロックデータと前記第１分散データの生成時に用いないブロックデータとを第１演算処理した第３ブロックと、を更に連接して前記第２分散データを生成する、
分散装置。
【請求項４】
請求項１に記載の分散装置であって、
前記第１演算処理及び前記第２演算処理は、排他的論理和の演算処理である、
分散装置。
【請求項５】
請求項１に記載の分散装置であって、
前記第１演算処理は、前記所定ブロックデータと前記他のブロックデータとの積に対する素数を用いた剰余演算であり、
前記第２演算処理は、前記第１演算処理の演算結果と前記他のブロックデータの逆数との積に対する素数を用いた剰余演算である、
分散装置。
【請求項６】
請求項１に記載の分散装置であって、
前記演算処理部は、
前記第１分散データ又は前記第２分散データにおけるブロックデータの組み合わせに、乱数を更に用いて前記第１分散データ又は前記第２分散データを生成する、
分散装置。
【請求項７】
請求項１〜６のうちいずれか一項に記載の分散装置であって、
前記元データを記憶する記憶部と、
生成された前記第１分散データ及び前記第２分散データのうち、データサイズが小さい分散データを、ネットワークを介して前記分散装置と接続される外部装置に記憶させる通信制御部と、を更に備え、
前記演算処理部は、
前記データサイズが大きい分散データを前記記憶部に記憶させる、
分散装置。
【請求項８】
請求項１〜６のうちいずれか一項に記載の分散装置であって、
前記元データを記憶する記憶部と、
ネットワークを介して前記分散装置と接続される外部装置との通信速度を取得する通信制御部と、を更に備え、
前記演算処理部は、
前記記憶部に対する読み込み速度又は書き込み速度と前記外部装置との通信速度とを基に、前記読み込み速度又は書き込み速度が前記通信速度より大きい場合に、生成された前記第１分散データ及び前記第２分散データのうち、データサイズが大きい分散データを前記記憶部に記憶させ、
前記通信制御部は、
生成された前記第１分散データ及び前記第２分散データのうち、前記データサイズが小さい分散データを前記外部装置に記憶させる、
分散装置。
【請求項９】
３個以上の所定個のブロックデータにより構成される元データを、前記所定個未満のブロックデータを複数用いて復元する復元装置であって、
所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部を備え、
前記演算処理部は、
前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行って得られ、かつ前記第１演算処理に用いるブロックデータの組み合わせが異なる第１分散データと第２分散データとを前記第２演算処理して全ての前記ブロックデータを取得し、取得された前記全ての前記ブロックデータを連接させて前記元データを復元し、
前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、
前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、
前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、
前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、
前記第２分散データは、前記第１分散データよりデータサイズが大きい、
復元装置。
【請求項１０】
３個以上の所定個のブロックデータにより構成される元データから、前記所定個未満のブロックデータを有する分散データを複数生成する分散装置における分散方法であって、
前記分散装置は、所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部を備え、
前記演算処理部は、
前記元データを前記所定個のブロックデータに分割するステップと、
分割された前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行い、前記第１演算処理に用いるブロックデータの組み合わせが異なる、第１分散データと第２分散データとを生成するステップと、を有し、
前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、
前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、
前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、
前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、
前記第２分散データは、前記第１分散データよりデータサイズが大きい、
分散方法。
【請求項１１】
３個以上の所定個のブロックデータにより構成される元データを、前記所定個未満のブロックデータを複数用いて復元する復元装置における復元方法であって、
前記復元装置は、所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部を備え、
前記演算処理部は、
前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行って得られ、かつ前記第１演算処理に用いるブロックデータの組み合わせが異なる第１分散データと第２分散データとを取得するステップと、
前記第１分散データと前記第２分散データとに対し、前記第２演算処理して全ての前記ブロックデータを取得するステップと、
取得された前記全ての前記ブロックデータを連接させて前記元データを復元するステップと、を有し、
前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、
前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、
前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、
前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、
前記第２分散データは、前記第１分散データよりデータサイズが大きい、
復元方法。
【請求項１２】
３個以上の所定個のブロックデータにより構成される元データから、前記所定個未満のブロックデータを有する分散データを複数生成する分散ユニットと、
前記所定個未満のブロックデータを複数用いて、前記元データを復元する復元ユニットと、を含み、
前記分散ユニット及び前記復元ユニットは、
所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部をそれぞれ有し、
前記分散ユニットの前記演算処理部は、
前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行い、前記第１演算処理に用いるブロックデータの組み合わせが異なる、第１分散データと第２分散データとを生成し、
前記復元ユニットの前記演算処理部は、
前記第１分散データと前記第２分散データとを前記第２演算処理して全ての前記ブロックデータを取得し、取得された前記全ての前記ブロックデータを連接させて前記元データを復元し、
前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、
前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、
前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、
前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、
前記第２分散データは、前記第１分散データよりデータサイズが大きい、
分散復元システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、元データの分散又は復元の処理を行う分散装置、復元装置、分散方法、復元方法及び分散復元システムに関する。
【背景技術】
【０００２】
従来、元データに対して、それぞれ非対称なデータサイズを有する複数の分散データを生成する秘密分散法として、ＡＯＮＴ（All or Nothing Transform）法が知られている（例えば特許文献１参照）。非対称なデータサイズは、生成された各々の分散データのデータサイズが異なることを表す。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３１１３８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１において用いられる秘密分散法は、暗号化されたデータを分割した上で複数の分散データを生成するため、分散データの生成処理に時間を要するという課題が生じる。また、特許文献１において用いられる秘密分散法は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）におけるデータの分割処理と同様に、各々の分散データの情報エントロピーが低いため、情報理論的に安全性が高いと考えることが困難である。例えば、特許文献１の秘密分散法によって生成された各分散データに暗号化処理を施したとしても、暗号化処理された各分散データの情報エントロピーは大きくならないため、情報理論的な安全性が高くなるとは考えづらい。
【０００５】
本発明は、上述した従来の事情に鑑みてなされたものであって、非対称なデータサイズを有する分散データを、元データから安全かつ高速に生成する分散装置、分散方法及び分散復元システムを提供することである。
【０００６】
また、本発明は、上述した従来の事情に鑑みてなされたものであって、非対称なデータサイズを有する分散データから、安全かつ高速に元データを復元する復元装置、復元方法及び分散復元システムを提供することである。
【課題を解決するための手段】
【０００７】
本発明は、３個以上の所定個のブロックデータにより構成される元データから、前記所定個未満のブロックデータを有する分散データを複数生成する分散装置であって、所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部を備え、前記演算処理部は、前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行い、前記第１演算処理に用いるブロックデータの組み合わせが異なる、第１分散データと第２分散データとを生成し、前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、前記第２分散データは、前記第１分散データよりデータサイズが大きい。 
【０００８】
また、本発明は、３個以上の所定個のブロックデータにより構成される元データを、前記所定個未満のブロックデータを複数用いて復元する復元装置であって、所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部を備え、前記演算処理部は、前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行って得られ、かつ前記第１演算処理に用いるブロックデータの組み合わせが異なる第１分散データと第２分散データとを前記第２演算処理して全ての前記ブロックデータを取得し、取得された前記全ての前記ブロックデータを連接させて前記元データを復元し、前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、前記第２分散データは、前記第１分散データよりデータサイズが大きい。 
【０００９】
また、本発明は、３個以上の所定個のブロックデータにより構成される元データから、前記所定個未満のブロックデータを有する分散データを複数生成する分散装置における分散方法であって、前記分散装置は、所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部を備え、前記演算処理部は、前記元データを前記所定個のブロックデータに分割するステップと、分割された前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行い、前記第１演算処理に用いるブロックデータの組み合わせが異なる、第１分散データと第２分散データとを生成するステップと、を有し、前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、前記第２分散データは、前記第１分散データよりデータサイズが大きい。 
【００１０】
また、本発明は、３個以上の所定個のブロックデータにより構成される元データを、前記所定個未満のブロックデータを複数用いて復元する復元装置における復元方法であって、前記復元装置は、所定ブロックデータと他のブロックデータとの第１演算処理を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部を備え、前記演算処理部は、前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行って得られ、かつ前記第１演算処理に用いるブロックデータの組み合わせが異なる第１分散データと第２分散データとを取得するステップと、前記第１分散データと前記第２分散データとに対し、前記第２演算処理して全ての前記ブロックデータを取得するステップと、取得された前記全ての前記ブロックデータを連接させて前記元データを復元するステップと、を有し、前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、前記第２分散データは、前記第１分散データよりデータサイズが大きい。 
【００１１】
また、本発明は、３個以上の所定個のブロックデータにより構成される元データから、前記所定個未満のブロックデータを有する分散データを複数生成する分散ユニットと、前記所定個未満のブロックデータを複数用いて、前記元データを復元する復元ユニットと、を含み、前記分散ユニット及び前記復元ユニットは、所定ブロックデータと他のブロックデータとの第１演算処理結果を実行して得られる演算結果に対して第２演算処理を実行すると前記所定ブロックデータを得る演算処理部をそれぞれ有し、前記分散ユニットの前記演算処理部は、前記所定個のブロックデータから前記所定個未満のブロックデータを組み合わせて前記第１演算処理を行い、前記第１演算処理に用いるブロックデータの組み合わせが異なる、第１分散データと第２分散データとを生成し、前記復元ユニットの前記演算処理部は、前記第１分散データと前記第２分散データとを前記第２演算処理して全ての前記ブロックデータを取得し、取得された前記全ての前記ブロックデータを連接させて前記元データを復元し、前記第１分散データは、単一のブロックデータからなる非演算処理ブロックを少なくとも有し、前記第２分散データは、前記単一のブロックデータと前記単一のブロックデータを除く前記ブロックデータとが第１演算処理された第１演算処理ブロックを少なくとも有し、前記第１分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータが選択され、前記第２分散データの前記第１演算処理に用いるブロックデータの組み合わせは、前記第１分散データ及び前記第２分散データに用いられるブロックデータと、前記第２分散データにのみ用いられるブロックデータとが選択され、前記第２分散データは、前記第１分散データよりデータサイズが大きい、分散復元システムである。 
【発明の効果】
【００１２】
本発明によれば、元データから非対称なデータサイズを有する複数の分散データへの生成、又は非対称なデータサイズを有する複数の分散データから元データへの復元を、安全かつ高速に処理することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１における分散データの生成方法の一例を示す説明図
【図２】実施の形態１における分散データの内容を示す説明図
【図３】実施の形態１における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図４】実施の形態１における動作手順を説明するフローチャート
【図５】実施の形態２における分散データの生成方法の一例を示す説明図
【図６】実施の形態２における分散データの内容を示す説明図
【図７】実施の形態２における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図８】実施の形態２における動作手順を説明するフローチャート
【図９】実施の形態３における分散データの生成方法の一例を示す説明図
【図１０】実施の形態３における分散データの内容を示す説明図
【図１１】実施の形態３における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図１２】実施の形態３における動作手順を説明するフローチャート
【図１３】実施の形態４における分散データの生成方法の一例を示す説明図
【図１４】実施の形態４における分散データの内容を示す説明図
【図１５】実施の形態４における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図１６】実施の形態４における動作手順を説明するフローチャート
【図１７】実施の形態５における分散データの生成方法の一例を示す説明図
【図１８】実施の形態５における分散データの内容を示す説明図
【図１９】実施の形態５における動作手順を説明するフローチャート
【図２０】実施の形態６における分散データの生成方法の一例を示す説明図
【図２１】実施の形態６における分散データの内容を示す説明図
【図２２】実施の形態６における動作手順を説明するフローチャート
【図２３】実施の形態７における分散データの生成方法の一例を示す説明図
【図２４】実施の形態７における分散データの内容を示す説明図
【図２５】実施の形態７における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図２６】実施の形態７における動作手順を説明するフローチャート
【図２７】実施の形態８における分散データの生成方法の一例を示す説明図
【図２８】実施の形態８における分散データの内容を示す説明図
【図２９】実施の形態８における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図３０】実施の形態８における動作手順を説明するフローチャート
【図３１】実施の形態９における分散データの生成方法の一例を示す説明図
【図３２】実施の形態９における分散データの内容を示す説明図
【図３３】実施の形態９における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図３４】実施の形態９における動作手順を説明するフローチャート
【図３５】実施の形態１０における分散データの生成方法の一例を示す説明図
【図３６】実施の形態１０における分散データの内容を示す説明図
【図３７】実施の形態１０における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図３８】実施の形態１０における動作手順を説明するフローチャート
【図３９】実施の形態１１における分散データの生成方法の一例を示す説明図
【図４０】実施の形態１１における分散データの内容を示す説明図
【図４１】実施の形態１１における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図４２】実施の形態１１における動作手順を説明するフローチャート
【図４３】実施の形態１２における分散データの生成方法の一例を示す説明図
【図４４】実施の形態１２における分散データの内容を示す説明図
【図４５】実施の形態１２における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図４６】実施の形態１２における動作手順を説明するフローチャート
【図４７】実施の形態１３における分散データの生成方法の一例を示す説明図
【図４８】実施の形態１３における分散データの内容を示す説明図
【図４９】実施の形態１３における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図
【図５０】実施の形態１３における動作手順を説明するフローチャート
【図５１】特願２０１１−０７７６３０号の秘密分散法を用いた閾値４、分散数４の分散データの内容を示す説明図
【図５２】図５１に示す方法により生成された４個の分散データから元データを復元するための動作手順を説明するフローチャート
【図５３】図５１に示す分散データにおいて復元処理に不要な列が削除された分散データの内容を示す説明図
【図５４】分散復元装置の機能的構成の一例を示すブロック図
【図５５】分散復元装置のハードウェア構成を示すブロック図
【図５６】分散復元装置を含む分散復元システムのハードウェア構成を示すブロック図
【図５７】図２又は図１０に示す分散データ毎の分散条件情報の各内容を示す説明図、（ａ）図２に示す分散データＳＤ１，ＳＤ２，ＳＤ３に対する基本的な分散条件情報、（ｂ）分割ブロックと乱数とを用いて図１０に示す分散データが生成されている場合の分散条件情報、（ｃ）図１０に示す分散データの生成に用いられている分割ブロック数の情報を含む場合の分散条件情報
【発明を実施するための形態】
【００１４】
（用語又は表記の説明）
以下の説明において、「分割」とは、単にデータを２個以上のデータに分ける動作であり、秘密分散における「分散」を含む概念である。以下の説明では、「分散」は「分割」の一例として用いると共に、「分割」と「分散」の各用語を使い分ける。
【００１５】
また、「元データ」とは、第三者に対して秘匿しなければならないデータを含むデータである。また、元データは、元データ全体が秘匿対象でも良いし、元データの一部が秘匿対象でも良い。以下の説明において、元データは複数のブロックのデータが連接されて構成され、各々のブロックのデータを「分割ブロック」という。
【００１６】
また、「分散データ」とは、本発明に係る分散装置が元データに対して後述する分散方法に従って生成したデータである。
【００１７】
また、後述する演算処理部１００が実行する演算処理としての排他的論理和の処理を、単に「ＸＯＲ処理」という。
【００１８】
また、後述する演算処理部１００が実行する演算処理は、例えば、所定の分割ブロックに他の分割ブロックを複数回演算すると所定の分割ブロックを得るための演算処理である。ここで、演算処理部１００の演算処理の具体例を簡単に説明する。
【００１９】
所定の分割ブロックの値をＢＡ、他の分割ブロックの値をＢＢとした場合、演算処理部１００は、排他的論理和の演算処理によって、
第１回目：  ＢＡ  ＸＯＲ  ＢＢ  の演算処理を実行し、
第２回目：  （ＢＡ  ＸＯＲ  ＢＢ）  ＸＯＲ  ＢＢ＝ＢＡの演算処理を実行する。
【００２０】
これにより、演算処理部１００は、複数回（例えば２回）の演算処理によって、所定の分割ブロックＢＡを得ることができる。従って、排他的論理和の演算処理は、演算処理部１００によって実行される演算処理の一例である。
【００２１】
また、演算処理部１００は、排他的論理和の演算処理の他に、次の演算処理を実行しても良い。具体的には、同様に所定の分割ブロックの値をＢＡ、他の分割ブロックの値をＢＢ、更に、素数をＮＮとした場合、演算処理部１００は、次の演算処理、即ち、
第１回目：  ＢＡ  ×  ＢＢ  ｍｏｄ（ＮＮ）＝ＣＣの演算処理を実行し、
第２回目：  ＣＣ  ×  ＢＢ＾（−１）  ｍｏｄ（ＮＮ）＝ＢＡの演算処理を実行する。
【００２２】
これにより、演算処理部１００は、複数回（例えば２回）の演算処理によって、所定の分割ブロックＢＡを得ることができる。従って、排他的論理和の演算処理に限らず、演算子ｍｏｄを用いた演算処理も、演算処理部１００によって実行される演算処理の一例である。このように、演算処理部１００が実行する演算処理、即ち、所定の分割ブロックに他の分割ブロックを複数回演算すると所定の分割ブロックを得るための演算処理は複数存在する。
【００２３】
例えば図２に示す分散データＳＤ１は、合計１６個の分割ブロックを含んで構成される元データＯＤのうち、分割ブロックＤＢ１と、分割ブロックＤＢ２と分割ブロックＤＢ３とがＸＯＲ処理されたブロックと、分割ブロックＤＢ４と分割ブロックＤＢ５とがＸＯＲ処理されたブロックと、分割ブロックＤＢ６と分割ブロックＤＢ７とがＸＯＲ処理されたブロックとが連接されて構成されている。
【００２４】
以下の説明では、図２を含む他の図においても、元データＯＤの第１番目の分割ブロック（列）を「列１」と表記し、順に、「列２」，「列３」，…，「列１６」と表記することで、例えば図２に示す元データＯＤの各々の分割ブロックＤＢ１，ＤＢ２，…，ＤＢ１６を識別する。各々の分割ブロックのデータサイズは、１ビット単位で、任意のデータサイズに設定可能である。なお、例えば図２では元データＯＤを合計１６個の分割ブロックに分割されているが、実際は２個以上であれば、分割ブロックの数は特に限定されない。
【００２５】
例えば図２に示す分散データＳＤ１において、第１番目のブロック（列）、即ち、分割ブロックＤＢ１を「列ａ」と表記し、順に、「列ｂ」，「列ｃ」，…と表記することで、例えば図２に示す分散データＳＤ１の各々の分割ブロックを識別する。
【００２６】
また、以下の説明では、分散データＳＤ１の列ｙを［分散（１）ｙ］と表記する。例えば、図２に示す分散データＳＤ１の列ｃは［分散（１）ｃ］と表記し、同図に示す分散データ３の列ｆは［分散（３）ｆ］と表記する。
【００２７】
（本発明に係る分散装置又は復元装置に対応する分散復元装置）
第１の発明は、元データから、複数の分割ブロックを含む分散データを複数生成する分散装置であって、所定分割ブロックに他の分割ブロックを複数回演算すると所定分割ブロックを得る演算処理を行う演算処理部を備え、演算処理部は、複数の分割ブロックから所定数の分割ブロックを組み合わせて演算処理を行い、分割ブロックの組み合わせが異なる、少なくとも第１の分散データと第２の分散データとを生成し、第１の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックを含み、第２の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックと、第２の分散データにのみ用いられる分割ブロックとを含む。
【００２８】
第１の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って複数個の分散データを生成するため、分散データのデータサイズを元データのデータサイズより少なくでき、分散装置におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散装置は、非対称なデータサイズの分散データを安全に生成することができる。
【００２９】
第２の発明は、第１の発明において、演算処理部が第２の分散データにのみ用いられる複数の分割ブロックを組み合わせて演算処理を行い、分割ブロックの組み合わせが異なる、第３の分散データと第４の分散データとを生成し、第１又は第２の分散データに用いられる分割ブロックと、第３又は第４の分散データに用いられる分割ブロックと、いずれの分散データにも用いられていない複数の分割ブロックとを組み合わせて演算処理によって第５の分散データを生成する。
【００３０】
第２の発明によれば、より大きな非対称なデータサイズを有する分散データを生成することができる。
【００３１】
第３の発明は、第１の発明において、演算処理部が分散データの一部を分割して新たな分散データを生成する。
【００３２】
第３の発明によれば、更により大きな非対称なデータサイズを有する分散データを生成することができる。
【００３３】
第４の発明は、第３の発明において、演算処理部が分散データにおける分割ブロックの組み合わせを変更して新たな分散データを生成する。
【００３４】
第４の発明によれば、分散データの生成時に用いられた分割ブロックの組み合わせが並び替えられているため、第三者が例えば既知のデータフォーマットを用いて、元データのデータ構造の特徴を推測して復元を試みるという危険性を低減することができる。なお、分散装置は、例えば２個以上の分割ブロックを重複して用いて分散データを生成することで、分散データの欠損があった場合でも元データを復元できる可能性が向上し、耐障害性を向上させることができる。
【００３５】
第５の発明は、第１の発明において、演算処理部がいずれかの分散データにおける分割ブロックの組み合わせに乱数を更に用いて分散データを生成する。
【００３６】
第５の発明によれば、分散処理によって、元データの分割ブロックの内容を乱数によって置き換えることができ、元データの漏洩防止を図ることができ、元データのセキュリティレベルを向上させることができる。
【００３７】
第６の発明は、第１から第５の発明のうちいずれかの発明において、いずれかの分割ブロックが単一の分割ブロックにより構成されている。
【００３８】
第６の発明によれば、分散装置は、複数の分散データから元データを復元する場合に復元処理を高速に実行可能とさせるための分散データを生成することができる。
【００３９】
第７の発明は、第１から第６の発明のうちいずれかの発明において、元データを記憶する記憶部と、生成された第１の分散データ及び第２の分散データのうち、データサイズが小さい分散データを、ネットワークを介して分散装置と接続される外部装置に記憶させる通信制御部と、を更に備え、演算処理部は、データサイズが大きい分散データを記憶部に記憶させる。
【００４０】
第８の発明は、第１から第６の発明のうちいずれかの発明において、元データを記憶する記憶部と、ネットワークを介して分散装置と接続される外部装置との通信速度を取得する通信制御部と、を更に備え、演算処理部は、記憶部に対する読み込み速度又は書き込み速度と外部装置との通信速度とを基に、読み込み速度又は書き込み速度が通信速度より大きい場合に、生成された第１の分散データ及び第２の分散データのうち、データサイズが大きい分散データを記憶部に記憶させ、通信制御部は、生成された第１の分散データ及び第２の分散データのうち、データサイズが小さい分散データを外部装置に記憶させる。
【００４１】
第７又は第８の発明によれば、小さなサイズの分散データを、通信速度又はアクセススピードが遅い記憶装置（例えば分散装置とネットワークを介して接続されている外部記憶装置）に記憶させ、大きなサイズの分散データを高速な記憶領域（例えば分散装置のハードディスク）に記憶させることで、各々の分散データの記憶処理を高速に実行することができる。
【００４２】
第９の発明は、複数の分割ブロックを含む分散データを複数用いて、元データを復元する復元装置であって、所定分割ブロックに他の分割ブロックを複数回演算すると所定分割ブロックを得る演算処理を行う演算処理部を備え、演算処理部は、複数の分割ブロックから選択された所定数の分割ブロックの組み合わせを基に演算処理によって生成された、少なくとも第１の分散データと第２の分散データとを演算処理して全ての分割ブロックを取得し、取得された全ての分割ブロックを連接させて元データを復元し、第１の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックを含み、第２の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックと、第２の分散データにのみ用いられる分割ブロックとを含む。
【００４３】
第９の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って生成された複数個の分散データを用いて、元データの復元処理を高速に実行することができ、復元装置におけるメモリ量を削減できる。また、復元装置は、非対称なデータサイズを有する分散データから元データを安全に復元することができる。
【００４４】
第１０の発明は、元データから、複数の分割ブロックを含む分散データを複数生成する分散装置における分散方法であって、元データを複数の分割ブロックに分割するステップと、分割された複数の分割ブロックのうち、所定分割ブロックと他の分割ブロックとを複数回演算して所定分割ブロックを得る演算処理を行うステップと、複数の分割ブロックから所定数の分割ブロックを組み合わせて演算処理を行い、分割ブロックの組み合わせが異なる、少なくとも第１の分散データと第２の分散データとを生成するステップと、を有し、第１の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックを含み、第２の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックと、第２の分散データにのみ用いられる分割ブロックとを含む。
【００４５】
第１０の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って複数個の分散データを生成するため、分散データのデータサイズを元データのデータサイズより少なくでき、分散装置におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散装置の分散方法によれば、非対称なデータサイズの分散データを安全に生成することができる。
【００４６】
第１１の発明は、複数の分割ブロックを含む分散データを複数用いて、元データを復元する復元装置における復元方法であって、複数の分割ブロックから選択された所定数の分割ブロックの組み合わせを基に生成された、少なくとも第１の分散データと第２の分散データとを取得するステップと、所定分割ブロックに他の分割ブロックを複数回演算すると所定分割ブロックを得る演算処理を行うステップと、少なくとも第１の分散データと第２の分散データとに対し、演算処理して全ての分割ブロックを取得するステップと、取得された全ての分割ブロックを連接させて元データを復元するステップと、を有し、第１の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックを含み、第２の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックと、第２の分散データにのみ用いられる分割ブロックとを含む。
【００４７】
第１１の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って生成された複数個の分散データを用いて、元データの復元処理を高速に実行することができ、復元装置におけるメモリ量を削減できる。また、復元装置の復元方法によれば、非対称なデータサイズを有する分散データから元データを安全に復元することができる。
【００４８】
第１２の発明は、元データから複数の分割ブロックを含む分散データを複数生成する分散ユニットと、複数の分割ブロックを含む分散データを複数用いて、元データを復元する復元ユニットと、を含み、分散ユニット及び復元ユニットは、所定分割ブロックに他の分割ブロックを複数回演算すると所定分割ブロックを得る演算処理を行う演算処理部を有し、分散ユニットの演算処理部は、複数の分割ブロックから所定数の分割ブロックを組み合わせて演算処理を行い、分割ブロックの組み合わせが異なる、少なくとも第１の分散データと第２の分散データとを生成し、復元ユニットの演算処理部は、複数の分割ブロックから選択された所定数の分割ブロックの組み合わせを基に演算処理によって生成された、少なくとも第１の分散データと第２の分散データとを演算処理して全ての分割ブロックを取得し、取得された全ての分割ブロックを連接させて元データを復元し、第１の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックを含み、第２の分散データにおける分割ブロックの組み合わせは、第１の分散データ及び第２の分散データに用いられる分割ブロックと、第２の分散データにのみ用いられる分割ブロックとを含む分散復元システムである。
【００４９】
第１２の発明によれば、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って複数個の分散データを生成するため、分散データのデータサイズを元データのデータサイズより少なくでき、分散復元システムにおけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元システムは、非対称なデータサイズの分散データを安全に生成することができる。更に、分散復元システムは、選択された分割ブロックの組み合わせに従って排他的論理和の演算を行って生成された複数個の分散データを用いて、元データの復元処理を高速に実行することができ、分散復元システムにおけるメモリ量を削減できる。また、分散復元システムは、非対称なデータサイズを有する分散データから元データを安全に復元することができる。
【００５０】
（各実施の形態に共通する分散復元装置の機能的構成）
先ず、各実施の形態に共通する分散復元装置の構成について図５４から図５７を参照して説明する。図５４は、分散復元装置２００の機能的構成の一例を示すブロック図である。図５４に示す分散復元装置２００は、機能的構成の一例として実施の形態１（後述参照）の分散方法及び復元方法を実行するための機能的構成を図示したものであるが、同様にして、分散復元装置２００は、後述する実施の形態２から実施の形態１３の各分散方法及び復元方法を実行することもできる。
【００５１】
図５４に示す分散復元装置２００は、演算処理部１００（点線部参照）及び記憶部３を含む。演算処理部１００は、アプリケーション１及び分散復元モジュール２を含む。なお、図５４では、図５５に示す通信制御部としてのＭＡＣ／ＰＨＹ９０の図示を省略している。
【００５２】
アプリケーション１は、分散処理依頼部１０及び復元処理依頼部２０を含み、分散処理における分散条件情報（後述参照）及び各々のアドレス情報Ａ１，Ａ２，Ａ３，Ａ４と、復元処理における各々のアドレス情報Ｂ１，Ｂ２，Ｂ３，Ｂ４とを取り扱う。
【００５３】
分散処理依頼部１０は、ユーザの入力操作（例えば元データＯＤから複数の分散データを生成するための操作）に応じて、後述する分散復元モジュール２の分散処理部３０に、分散条件情報及び各々のアドレス情報Ａ１，Ａ２，Ａ３，Ａ４を含む分散処理実行指示を出力する。なお、図５４から図５６では、ユーザの入力操作を示す補助線の図示を省略している。
【００５４】
復元処理依頼部２０は、ユーザの入力操作（例えば複数の分散データから元データＯＤを復元するための操作）に応じて、後述する分散復元モジュール２の復元処理部５０に、各々のアドレス情報Ｂ１，Ｂ２，Ｂ３，Ｂ４を含む復元処理実行指示を出力する。
【００５５】
分散復元モジュール２は、分散処理部３０、乱数生成部４０及び復元処理部５０を含む。
【００５６】
分散処理部３０は、分散処理依頼部１０から出力された分散処理実行指示を基に、分散データの生成処理を実行する。分散処理部３０は、必要に応じて、乱数の生成を依頼するための乱数生成指示を乱数生成部４０に出力する。
【００５７】
乱数生成部４０は、分散処理部３０から出力された乱数生成指示を基に乱数を生成し、生成された乱数を分散データのＩＤ（Identification）として分散処理部３０に出力する。なお、乱数は、図５５に示すＲＡＭ７０に一時的に記憶され、又は図５５に示すＨＤＤ８０に記憶される。
【００５８】
復元処理部５０は、復元処理依頼部２０から出力された復元処理実行指示を基に、元データＯＤの復元処理を実行する。復元処理部５０は、復元された元データＯＤをアドレス情報Ｂ１（後述参照）が示す記憶部３のアドレスに記憶する。
【００５９】
なお、図５４に示す分散復元装置２００はアプリケーション１を含む構成であるが、例えばアプリケーション１は分散復元装置２００にインストールされずに他の装置にインストールされても良い。この場合、分散復元装置２００は、ネットワークを介して接続された他の装置（例えば図５６に示す外部記憶装置５１０，５２０，５３０）から送信された分散処理実行指示又は復元処理実行指示を基に、分散データの生成処理又は元データＯＤの復元処理を実行しても良い。
【００６０】
記憶部３は、分散復元装置２００に内蔵されるハードディスク又はフラッシュメモリを用いて構成され、分散復元装置２００が取得したデータ又は生成したデータを記憶する。記憶部３は、例えば元データＯＤ及び分散データを記憶する。なお、アプリケーション１は、記憶部３に記憶されている。記憶部３は、ハードディスク又はフラッシュメモリではなく、例えばＵＳＢ（Universal Serial Bus）端子を介して接続された外部記憶媒体（例えばＵＳＢメモリ）を用いて構成されても良い。
【００６１】
なお、図５４に示す分散復元装置２００は記憶部３を含む構成であるが、例えば記憶部３は分散復元装置２００に設けられずに、ネットワークを介して分散復元装置２００と接続された他の装置（例えば図５６に示す外部記憶装置５１０，５２０，５３０）に設けられても良い。
【００６２】
以下の説明では、アプリケーション１、分散復元モジュール２及び記憶部３がそれぞれ異なる装置において設けられていても、各々の動作の説明を煩雑にしないために、装置間の通信方法に関する説明は割愛する。
【００６３】
なお、図５４において、分散復元モジュール２の上側に図示したアプリケーション１及び記憶部３は分散データの生成方法を説明するために図示されており、分散復元モジュール２の下側に図示したアプリケーション１及び記憶部３は元データＯＤの復元方法を説明するために図示されている。但し、分散復元モジュール２の上側と下側の各アプリケーション１及び記憶部３は、同じアプリケーション及び記憶装置でも良いし、異なるアプリケーション及び記憶部でも良い。
【００６４】
（分散データの生成方法の概要）
始めに、分散データの生成方法の概要を説明する。アプリケーション１は、ユーザの入力操作に応じて、分散処理の対象となる元データＯＤを取得して記憶部３に記憶する。なお、元データＯＤは記憶部３に予め記憶されていても良い。
【００６５】
分散処理依頼部１０は、分散処理における分散条件を示す分散条件情報（後述参照）、元データＯＤを記憶した記憶部３のアドレスを示すアドレス情報Ａ１、及び生成された各々の分散データの記憶先アドレスを示すアドレス情報Ａ２，Ａ３，Ａ４を分散処理部３０に出力する。分散処理依頼部１０は、各々のアドレス情報Ａ１，Ａ２，Ａ３，Ａ４を生成しても良いし、ユーザの入力操作に応じて取得しても良い。
【００６６】
分散条件情報とは、分散復元装置２００が分散処理を実行するために用いられる分散条件を示す情報を表し、例えば実施の形態１から実施の形態１３に共通する非対称分散処理の条件情報である（後述参照）。ここでは、図１及び図２に示すように、分散条件情報の一例として、１個の元データＯＤを３個の分散データに非対称分散処理する場合に対応する分散条件情報について説明する。
【００６７】
なお、図５４では３個の分散データが生成される場合に対応して、分散処理依頼部１０は、元データＯＤの記憶先を示すアドレス情報Ａ１と３個の分散データの記憶先を示すアドレス情報Ａ２，Ａ３，Ａ４とを生成又は取得する。更に、分散復元装置２００が少なくとも４個以上の分散データを生成する場合には、分散処理依頼部１０は、元データＯＤの記憶先を示すアドレス情報Ａ１を含めて少なくとも５個以上のアドレス情報を生成又は取得する。
【００６８】
分散処理部３０は、分散処理依頼部１０から出力されたアドレス情報Ａ１の記憶先アドレスから元データＯＤを読み出し、分散条件情報に従って、例えば３個の分散データＳＤ１，ＳＤ２，ＳＤ３を生成する。
【００６９】
分散処理部３０は、各分散データのＩＤとして用いるための乱数を乱数生成部４０に生成させ、生成された乱数をＩＤとして、各分散データのヘッダに分散条件情報に付加する（図５７参照）。ＩＤは、分散データの識別番号として機能する。
【００７０】
分散処理部３０は、生成された各分散データＳＤ１，ＳＤ２，ＳＤ３を、分散処理依頼部１０から出力されたアドレス情報Ａ２，Ａ３，Ａ４の記憶先アドレスに記憶させる。ここでは、説明を簡単にするために、全ての分散データＳＤ１，ＳＤ２，ＳＤ３は記憶部３に記憶されているが、実際の分散復元装置２００の利用においては、分散データＳＤ１と、分散データＳＤ２，ＳＤ３とは別々に記憶されることが好ましい（図１参照）。
【００７１】
（元データＯＤの復元方法の概要）
次に、元データＯＤの復元方法の概要を説明する。アプリケーション１は、ユーザの入力操作に応じて、復元処理の対象となる複数の分散データＳＤ１，ＳＤ２，ＳＤ３を記憶部３に記憶する。なお、分散データＳＤ１，ＳＤ２，ＳＤ３は記憶部３に予め記憶されていても良い。
【００７２】
復元処理依頼部２０は、復元された元データＯＤを記憶する記憶部３の記憶先アドレスを示すアドレス情報Ｂ１、及び各分散データの記憶部３における記憶先アドレスを示すアドレス情報Ｂ２，Ｂ３，Ｂ４を復元処理部５０に出力する。復元処理依頼部２０は、ユーザの入力操作又は予め定められた分散条件情報を例えば記憶部３から取得し、各々のアドレス情報Ｂ１，Ｂ２，Ｂ３，Ｂ４を生成しても良いし、ユーザの入力操作に応じて取得しても良い。
【００７３】
復元処理部５０は、復元処理依頼部２０から出力されたアドレス情報Ｂ２，Ｂ３，Ｂ４の記憶先アドレスから分散データを読み出し、分散条件情報に従って、例えば１個の元データＯＤを復元する。復元処理部５０は、復元された元データＯＤを、復元処理依頼部２０から出力されたアドレス情報Ｂ１の記憶先アドレスに記憶させる。
【００７４】
（各実施の形態に共通する分散復元装置のハードウェア構成）
図５５は、分散復元装置２００のハードウェア構成を示すブロック図である。ここでは、図５４に示すアプリケーション１、分散復元モジュール２及び記憶部３が、同一の分散復元装置２００において動作する例を説明する。
【００７５】
図５５に示す分散復元装置２００は、ＣＰＵ（Central Processing Unit）６０、ＣＰＵ６０のワークメモリとしてのＲＡＭ（Random Access Memory）７０、書き換え不能な不揮発性メモリであるＲＯＭ（Read Only Memory）７５、書き換え可能な不揮発性メモリであるＨＤＤ（ハードディスク）８０、及び通信制御部としてのＭＡＣ／ＰＨＹ（Media Access Control / Physical Layer）９０を含む構成である。
【００７６】
図５５に示す分散復元装置２００において、ＣＰＵ６０、ＲＡＭ７０、ＲＯＭ７５、ＨＤＤ８０及びＭＡＣ／ＰＨＹ９０は、バスＢＳ０を介して相互にデータの入出力が可能に接続されている。
【００７７】
図５４に示す演算処理部１００は、図５５に示すＣＰＵ６０、ＲＡＭ７０及びＲＯＭ７５に対応する。図５４に示す記憶部３は、図５５に示すＨＤＤ８０に対応する。このため、各々のアドレス情報Ａ１，Ａ２，Ａ３，Ａ４，Ｂ１，Ｂ２，Ｂ３，Ｂ４は、フォルダ名又はファイル名としても良い。また、元データＯＤは、ＨＤＤ８０ではなく、例えばＲＯＭ７５に記憶されていても良い。
【００７８】
ＭＡＣ／ＰＨＹ９０は、分散復元装置２００における通信制御部として機能し、例えばＣＰＵ６０によって生成された分散データを、ネットワークＮＷを介して分散復元装置２００と接続されている他の装置（例えば図５６に示す外部記憶装置５１０，５２０，５３０）に送信する。
【００７９】
（各実施の形態に共通する分散復元装置を含む分散復元システムのハードウェア構成）
図５６は、分散復元装置２００を含む分散復元システム１０００のハードウェア構成を示すブロック図である。ここでは、図５４に示すアプリケーション１及び分散復元モジュール２が動作する分散復元装置２００と、図５４に示す記憶部３が設けられた装置とが異なる例を説明する。なお、図５６に示す分散復元システム１０００において、元データＯＤは、分散復元モジュール２が動作する分散復元装置２００内のＨＤＤ８０に記憶されているとする。
【００８０】
図５６に示す分散復元システム１０００は、分散復元装置２００と、ネットワークＮＷを介して分散復元装置２００と接続された外部記憶装置５１０、外部記憶装置５２０及び外部記憶装置５３０とを含む。外部記憶装置５１０、外部記憶装置５２０及び外部記憶装置５３０は、例えばサーバ装置であり、それぞれ分散データＳＤ１、分散データＳＤ２及び分散データＳＤ３を記憶する。即ち、図５６に示す分散復元システム１０００では、分散復元装置２００は、分散データＳＤ１を外部記憶装置５１０に記憶させ、分散データＳＤ２を外部記憶装置５２０に記憶させ、分散データＳＤ３を外部記憶装置５３０に記憶させる。
【００８１】
但し、外部記憶装置５１０は、分散データＳＤ１，ＳＤ２を記憶しても良い。外部記憶装置５２０は、分散データＳＤ２，ＳＤ３を記憶しても良い。同様に、外部記憶装置５３０は、分散データＳＤ３，ＳＤ１を記憶しても良い。これにより、分散復元システム１０００は、分散データを記憶する外部記憶装置を１つ省略することができ、分散データの管理を簡易化できる。
【００８２】
このように、各分散データＳＤ１，ＳＤ２，ＳＤ３を異なる外部記憶装置５１０，５２０，５３０に記憶させる目的は、第三者による元データの不正な復元処理を防止するためである。例えば、各外部記憶装置５１０，５２０，５３０の管理者が別人であれば、１人の管理者の権限だけでは元データを復元できなくなり、元データの管理も安全である。
【００８３】
例えば、分散復元装置２００がクラウドコンピューティング技術を用いる場合、特定の１社の外部記憶装置（例えば外部記憶装置５１０）に全ての分散データが記憶されると、外部記憶装置５１０の管理者の入力操作に応じて、元データが復元される可能性がある。以下、クラウドコンピューティング技術を用いるコンピュータを「クラウドコンピュータ」という。図５６に示す分散復元システム１０００を用いることで、元データの復元の可能性を低減することができる。
【００８４】
現在、クラウドコンピュータは利用料金の安さ及び手軽さが評価されているが、データの内容を盗み見される可能性があり、特にセキュリティが要求される業務ではクラウドコンピュータの利用が進まない状況にある。従って、図５６に示す分散復元システム１０００を用いることで、安全にクラウドコンピュータを利用できるようになる。
【００８５】
アプリケーション１及び分散復元モジュール２が動作する分散復元装置２００は、ＣＰＵ６０、ＲＡＭ７０、ＲＯＭ７５、ＨＤＤ８０及びＭＡＣ／ＰＨＹ９０を含む。図５６に示す分散復元装置２００において、ＣＰＵ６０、ＲＡＭ７０、ＲＯＭ７５、ＨＤＤ８０及びＭＡＣ／ＰＨＹ９０は、バスＢＳ０を介して相互にデータの入出力が可能に接続されている。
【００８６】
図５４に示す演算処理部１００は、図５６に示すＣＰＵ６０、ＲＡＭ７０及びＲＯＭ７５に対応する。元データＯＤの記憶先はＨＤＤ８０である。このため、アドレス情報Ａ１，Ｂ１は、フォルダ名又はファイル名としても良い。
【００８７】
ＭＡＣ／ＰＨＹ９０は、有線用又は無線用の通信回路を用いて構成され、分散復元装置２００と、ネットワークＮＷを介して接続された外部記憶装置５１０，５２０，５３０との間の通信を制御する。
【００８８】
外部記憶装置５１０は、ＭＡＣ／ＰＨＹ５１１、ＣＰＵ５１２、ＨＤＤ５１３及びＲＡＭ５１４を含む。外部記憶装置５１０において、ＭＡＣ／ＰＨＹ５１１、ＣＰＵ５１２、ＨＤＤ５１３及びＲＡＭ５１４は、バスＢＳ１を介して、データが相互に入出力可能に接続されている。
【００８９】
ＣＰＵ５１２は、ＭＡＣ／ＰＨＹ５１１又はＨＤＤ５１３へのアクセスを行い、外部記憶装置５１０の総括的な制御を行う。ＭＡＣ／ＰＨＹ５１１は、ネットワークＮＷを介して、分散復元装置２００との間における通信を制御する。ＨＤＤ５１３は、分散復元装置２００により生成された分散データＳＤ１を記憶する。
【００９０】
外部記憶装置５２０は、ＭＡＣ／ＰＨＹ５２１、ＣＰＵ５２２、ＨＤＤ５２３及びＲＡＭ５２４を含む。外部記憶装置５２０において、ＭＡＣ／ＰＨＹ５２１、ＣＰＵ５２２、ＨＤＤ５２３及びＲＡＭ５２４は、バスＢＳ２を介して、データが相互に入出力可能に接続されている。
【００９１】
ＣＰＵ５２２は、ＭＡＣ／ＰＨＹ５２１又はＨＤＤ５２３へのアクセスを行い、外部記憶装置５２０の総括的な制御を行う。ＭＡＣ／ＰＨＹ５２１は、ネットワークＮＷを介して、分散復元装置２００との間における通信を制御する。ＨＤＤ５２３は、分散復元装置２００により生成された分散データＳＤ２を記憶する。
【００９２】
外部記憶装置５３０は、ＭＡＣ／ＰＨＹ５３１、ＣＰＵ５３２、ＨＤＤ５３３及びＲＡＭ５３４を含む。外部記憶装置５３０において、ＭＡＣ／ＰＨＹ５３１、ＣＰＵ５３２、ＨＤＤ５３３及びＲＡＭ５３４は、バスＢＳ３を介して、データが相互に入出力可能に接続されている。
【００９３】
ＣＰＵ５３２は、ＭＡＣ／ＰＨＹ５３１又はＨＤＤ５３３へのアクセスを行い、外部記憶装置５３０の総括的な制御を行う。ＭＡＣ／ＰＨＹ５３１は、ネットワークＮＷを介して、分散復元装置２００との間における通信を制御する。ＨＤＤ５３３は、分散復元装置２００により生成された分散データＳＤ３を記憶する。
【００９４】
このように、分散データＳＤ１，ＳＤ２，ＳＤ３の記憶先は、分散復元モジュール２が動作する分散復元装置２００とは異なる外部記憶装置５１０，５２０，５３０のＨＤＤ５１３，５２３，５３３である。このため、アドレス情報Ａ２，Ａ３，Ａ４，Ｂ２，Ｂ３，Ｂ４は、ネットワークＮＷにおけるフォルダ名若しくはファイル名、又はＵＲＬ（Uniform Resource Locator）としても良い。
【００９５】
なお、外部記憶装置５１０，５２０，５３０において、分散データＳＤ１，ＳＤ２，Ｓ３はＨＤＤ５１３，５２３，５３３に記憶されているが、例えばフラッシュメモリ又はＲＡＭ５１４，５２４，５３４又は不図示のＲＯＭに記憶されても良い。
【００９６】
図５６において、ＭＡＣ／ＰＨＹ９０は、分散復元装置２００と他の外部記憶装置５１０，５２０，５３０との間における通信の通信速度を算出して取得し、算出された通信速度の情報をＣＰＵ６０に出力する。
【００９７】
ＣＰＵ６０（例えば分散処理部３０）は、ＨＤＤ８０（記憶部３）に対するデータの読み込み速度又は書き込み速度を算出して取得し、算出された読み込み速度又は書き込み速度と通信速度とを比較する。
【００９８】
ＣＰＵ６０（例えば分散処理部３０）は、読み込み速度又は書き込み速度の値が通信速度の値より大きいと判定した場合に、各分散データＳＤ１，ＳＤ２，ＳＤ３のうちデータサイズが小さい分散データ（例えば分散データＳＤ１）を他の外部記憶装置５１０，５２０，５３０のうちいずれかに記憶させると判定し、データサイズが大きい分散データ（例えば分散データＳＤ２，ＳＤ３）をＨＤＤ８０（記憶部３）に記憶させると判定する。
【００９９】
ＣＰＵ６０（例えば分散処理部３０）は、データサイズが小さい分散データ（例えば分散データＳＤ１）をＭＡＣ／ＰＨＹ９０に出力する。ＭＡＣ／ＰＨＹ９０は、ＣＰＵ６０から出力された分散データ（例えば分散データＳＤ１）を他の外部記憶装置（例えば外部記憶装置５１０）に送信して記憶させる。
【０１００】
ＣＰＵ６０（例えば分散処理部３０）は、データサイズが大きい分散データ（例えば分散データＳＤ２，ＳＤ３）をＨＤＤ８０（記憶部３）に記憶させる。
【０１０１】
従って、分散復元装置２００は、非対称なデータサイズの分散データを生成することができるため、通信速度の値が小さい、即ち、通信時間の遅い外部記憶装置（例えば外部記憶装置５１０）のＨＤＤ（例えばＨＤＤ５１３）には小さなデータサイズの分散データを、読み込み速度又は書き込み速度の値が大きい分散復元装置２００のＨＤＤ８０には大きなデータサイズの分散データを記憶させる。
【０１０２】
これにより、分散復元システム１０００は、分散復元システム１０００における処理速度を向上させることができる。なお、実際の利用の一例としては、分散復元装置２００のＨＤＤ８０には大きなデータサイズの分散データが記憶され、外部記憶装置（例えば外部記憶装置５１０）のＨＤＤには小さなデータサイズの分散データが記憶されることが、分散復元装置２００と他の外部記憶装置５１０，５２０，５３０との間の通信遅延の発生を低減させることができる点で好ましい。
【０１０３】
（分散条件情報）
図５７は、図２又は図１０に示す分散データＳＤ１，ＳＤ２，ＳＤ３毎の分散条件情報Ｉｎｄｅｘ＿ＳＤ１，Ｉｎｄｅｘ＿ＳＤ２，Ｉｎｄｅｘ＿ＳＤ３，Ｉｎｄｅｘ＿ＳＤ４，Ｉｎｄｅｘ＿ＳＤ５の各内容を示す説明図である。図５７（ａ）は、図２に示す分散データＳＤ１，ＳＤ２，ＳＤ３に対する基本的な分散条件情報である。図５７（ｂ）は、分割ブロックと乱数とを用いて図１０に示す分散データＳＤ３が生成されている場合の分散条件情報Ｉｎｄｅｘ＿ＳＤ４である。図５７（ｃ）は、図１０に示す分散データＳＤ３の生成に用いられている分割ブロック数の情報を含む場合の分散条件情報Ｉｎｄｅｘ＿ＳＤ５である。図５７（ａ）、図５７（ｂ）及び図５７（ｃ）の各説明では、各分散データの構成の説明は省略して詳細は後述する。
【０１０４】
分散処理部３０は、例えば３個の分散データＳＤ１，ＳＤ２，ＳＤ３を生成した後、各分散データＳＤ１，分散データＳＤ２，分散データＳＤ３の各ヘッダ部に、分散条件情報を付加する。ここで分散処理依頼部１０から出力された分散処理実行指示に含まれる分散条件情報とは、どのような分散方法によって分散データを生成したか、又はどのような復元方法によって復元処理を実行するかを示す情報であり、実施の形態毎における具体的な分散処理と復元処理の内容の説明は後述する。更に、分散条件情報は、分散データの属性情報を含む。属性情報は、例えば分散データのＩＤ、分散データを生成する場合に用いられる分割ブロックの組み合わせに対応する段数である。
【０１０５】
例えば図５７（ａ）に示す分散データＳＤ２（図２参照）の［分散（２）ａ］の生成では、元データＯＤの列１と列２とが用いられて元データＯＤを２段（行）に畳み込む操作が行われている。このため、分散条件情報Ｉｎｄｅｘ＿ＳＤ２は、図５７（ａ）に示す分散データＳＤ２を生成するための条件として、「２段（行）」、「１・２スタート」を含む。「１・２スタート」は、分散データＳＤ２の第１番目の列ａに対応する［分散（２）ａ］が列１と列２とがＸＯＲ処理されたデータブロックであることを示す。
【０１０６】
同様に、図５７（ａ）に示す分散データＳＤ１（図２参照）の［分散（１）ａ］の生成では、元データＯＤの列１だけが用いられ、［分散（１）ｂ］の生成では元データＯＤの列２と列３とが用いられて元データＯＤを２段（行）に畳み込む操作が行われている。このため、分散条件情報Ｉｎｄｅｘ＿ＳＤ１は、図５７（ａ）に示す分散データＳＤ１を生成するための条件として、「２段（行）」、「１スタート」を含む。
【０１０７】
同様に、図５７（ａ）に示す分散データＳＤ３（図２参照）の［分散（１）ａ］の生成では、元データＯＤの列１と列９とが用いられて元データＯＤを２段（行）に畳み込む操作が行われている。このため、分散条件情報Ｉｎｄｅｘ＿ＳＤ３は、図５７（ａ）に示す分散データＳＤ３を生成するための条件として、「２段（行）」、「１・９スタート」を含む。
【０１０８】
このような分散条件情報を付加することで、復元処理部５０は、元データＯＤを復元する場合に、どのような復元処理を選択すればよいかがわかる。
【０１０９】
更に、分散条件情報は、識別情報としてのＩＤを付加しても良い。これにより、復元処理部５０は、元データＯＤを復元する場合に、誤った分散データを選択することなく、正しい分散データを選択して元データＯＤを復元することができる。
【０１１０】
例えば、復元処理部５０は、同じ元データＯＤから生成された全ての分散データに対して共通のＩＤを付与した場合、元データＯＤを復元するときに分散条件情報のＩＤを判定することで、元データＯＤが復元可能であるか否かを復元処理の開始前に判定することができる。また、復元処理部５０は、全ての分散データにおける分散条件情報のＩＤが一個でも異なっていると判定した場合には、復元処理ができず、無駄に復元処理を行う必要がなくなる。また、復元処理部５０は、分散条件情報にＩＤを用いることで、復元処理結果が正しい元データＯＤであることを保証することができる。
【０１１１】
なお、ＩＤは、分散データを生成する度に生成された通し番号、又は、乱数生成部４０によって生成された乱数を用いれば良い。
【０１１２】
なお、同一の元データＯＤから生成された全ての分散データに対して、共通のＩＤを付与すると説明したが、同一の元データから生成された分散データであることを示す方法は、これに限定されない。例えば、分散処理部３０は、適当な一次関数の直線上に並ぶ点をＩＤとして用いても良い。例えば、分散処理部３０は、特定の一次関数（一次関数に限定しない）に対して適当な乱数値（ｘ値）を演算した関数値（ｙ値）を、共通のＩＤの代わりのＩＤとして用いても良い。
【０１１３】
なお、復元処理部５０は、分散条件情報に含まれるＩＤを基に、元データＯＤが復元可能か否かを判定しているが、例えば元データＯＤに設けられた付加情報（例えばマーク）が復元処理の結果として復元処理部５０によって存在を確認できるか否かによって、正しい復元処理ができたか否かを判定しても良い。
【０１１４】
なお、図５７では、分散条件情報をヘッダ部に付加すると説明したが、分散条件情報は分散データのどの箇所（例えば分散データの末端部分）に付加しても良いし、又は、分散条件情報を分散データとは別のファイルとして分散データのファイルと分散条件情報のファイルとを関連付けて記憶させても良い。
【０１１５】
なお、例えば分散条件情報Ｉｎｄｅｘ＿ＳＤ１は、「ＩＤ：ｘｚｘｚｘｚｘ、２段、１スタート」であるが、分散条件情報の記述方法は様々にあり、図５７（ａ）に示す記述方法に限定されない。例えば、分散条件情報は、ＡＳＣＩＩ文字列を用いて記述されても良いし、特殊なコマンド又は識別子を用いて記述されても良い。
【０１１６】
また、例えば図５７（ｂ）に示す分散データＳＤ３（図３参照）の［分散（３）ａ］の生成では元データＯＤの列３だけが用いられ、［分散（３）ｂ］の生成では元データＯＤの列６だけが用いられ、［分散（３）ｃ］の生成では元データＯＤの列１と列２と列９とが用いられて元データＯＤを３段（行）に畳み込む操作が行われている。
【０１１７】
更に、図５７（ｂ）に示す分散データＳＤ３（図３参照）の［分散（３）ｄ］の生成では、元データＯＤの列４と列５と乱数Ｃ（例えば乱数生成部４０により生成）とが用いられている。更に、同図に示す分散データＳＤ３（図３参照）の［分散（３）ｅ］の生成では、元データＯＤの列７と列８と乱数Ｄ（例えば乱数生成部４０により生成）とが用いられている。なお、分散処理部３０は、乱数生成部４０によって生成された乱数Ｃ，Ｄを用いて分散データを生成することで、図５７（ｂ）に示す分散データＳＤ３のセキュリティを向上させることができる。
【０１１８】
このため、分散条件情報Ｉｎｄｅｘ＿ＳＤ４は、図５７（ｂ）に示す分散データＳＤ３を生成するための条件として、「３段（行）」、「３スタート」、「乱数：Ｃ，Ｄ」を含む。
【０１１９】
また、分散条件情報は分散データの生成に用いられた分割ブロックの総数の情報であるＬＥＮ長を含んでも良い。例えば、図５７（ｃ）に示す分散データＳＤ３は、分散データＳＤ３の生成に用いられた分割ブロックの総数は「９」である。従って、分散条件情報Ｉｎｄｅｘ＿ＳＤ５は、図５７（ｃ）に示す分散データＳＤ３を生成するための条件として、「３段（行）」、「３スタート」、「ＬＥＮ長：９」を含む。また、図５７（ｃ）に示す分散条件情報Ｉｎｄｅｘ＿ＳＤ５は、同図に示す分散データＳＤ３の生成に用いられた乱数Ｃと乱数Ｄを含む「乱数：Ｃ，Ｄ」の情報を含んでも良い。
【０１２０】
以下、上述した分散復元装置２００の各種の実施の形態を、図面を参照して説明する。なお、本発明は、装置としての分散復元装置２００に対応する分散装置及び復元装置、又は分散復元装置２００をコンピュータとして動作させるためのプログラムとして表現することも可能である。更に、本発明は、分散復元装置２００により実行される各分散方法又は復元方法として表現することも可能である。更に、本発明は、図５６に示す分散復元システム１０００として表現することも可能である。即ち、本発明は、装置、方法、プログラム及びシステムのうちいずれのカテゴリにおいても表現可能である。
【０１２１】
以下の各実施の形態では、図５４に示す機能的構成を有する分散復元装置２００が元データＯＤから複数の分散データを生成する分散処理、及び、複数の全ての分散データから元データＯＤを復元する復元処理について説明する。
【０１２２】
（実施の形態１）
先ず、分散復元装置２００の実施の形態１について、図１から図４を参照して説明する。図１は、実施の形態１における分散データの生成方法の一例を示す説明図である。図２は、実施の形態１における分散データの内容を示す説明図である。図３は、実施の形態１における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図４は、実施の形態１における動作手順を説明するフローチャートである。
【０１２３】
実施の形態１では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計３個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３を生成する方法、及び、３個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３を用いて元データＯＤを復元する方法を説明する。
【０１２４】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２，ＳＤ３をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、３個の分散データＳＤ１，ＳＤ２，ＳＤ３を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０１２５】
実施の形態１では、図１及び図２に示すように、元データＯＤは、それぞれ連接された合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含んで構成されている。なお、実施の形態１では、説明を簡単にするために、元データＯＤは合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含む構成としているが、元データＯＤを構成する分割ブロックの数は１６に限定されない。
【０１２６】
（実施の形態１における分散データの構成）
実施の形態１における分散データの構成について、図１及び図２を参照して説明する。図１及び図２に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｂ］は列２の分割ブロックＤＢ２と列３の分割ブロックＤＢ３とがＸＯＲ処理された値であり、［分散（１）ｃ］は列４の分割ブロックＤＢ４と列５の分割ブロックＤＢ５とがＸＯＲ処理された値であり、［分散（１）ｄ］は列６の分割ブロックＤＢ６と列７の分割ブロックＤＢ７とがＸＯＲ処理された値である。
従って、分散データＳＤ１は、４個の列［分散（１）ａ］，［分散（１）ｂ］，［分散（１）ｃ］，［分散（１）ｄ］が連接された構成である。
【０１２７】
このように、分散データＳＤ１は、元データＯＤの半分のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は４個であって、元データＯＤのブロック（列）数の１６個の１／４である。
【０１２８】
次に、図１及び図２に示す分散データＳＤ２において、［分散（２）ａ］は列１の分割ブロックＤＢ１と列２の分割ブロックＤＢ２とがＸＯＲ処理された値であり、［分散（２）ｂ］は列３の分割ブロックＤＢ３と列４の分割ブロックＤＢ４とがＸＯＲ処理された値であり、［分散（２）ｃ］は列５の分割ブロックＤＢ５と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（２）ｄ］は列７の分割ブロックＤＢ７と列８の分割ブロックＤＢ８とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、４個の列［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］が連接された構成である。
【０１２９】
このように、分散データＳＤ２は、元データＯＤの半分のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は４個であって、元データＯＤのブロック（列）数の１６個の１／４である。
【０１３０】
同様に、図１及び図２に示す分散データＳＤ３において、［分散（３）ａ］は列１の分割ブロックＤＢ１と列９の分割ブロックＤＢ９とがＸＯＲ処理された値であり、［分散（３）ｂ］は列２の分割ブロックＤＢ２と列１０の分割ブロックＤＢ１０とがＸＯＲ処理された値であり、［分散（３）ｃ］は列３の分割ブロックＤＢ３と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（３）ｄ］は列４の分割ブロックＤＢ４と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値であり、［分散（３）ｅ］は列５の分割ブロックＤＢ５と列１３の分割ブロックＤＢ１３とがＸＯＲ処理された値であり、［分散（３）ｆ］は列６の分割ブロックＤＢ６と列１４の分割ブロックＤＢ１４とがＸＯＲ処理された値であり、［分散（３）ｇ］は列７の分割ブロックＤＢ７と列１５の分割ブロックＤＢ１５とがＸＯＲ処理された値であり、［分散（３）ｈ］は列８の分割ブロックＤＢ８と列１６の分割ブロックＤＢ１６とがＸＯＲ処理された値である。
従って、分散データＳＤ３は、８個の列［分散（３）ａ］，［分散（３）ｂ］，［分散（３）ｃ］，［分散（３）ｄ］，［分散（３）ｅ］，［分散（３）ｆ］，［分散（３）ｇ］，［分散（３）ｈ］が連接された構成である。
【０１３１】
このように、分散データＳＤ３は、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は８個であって、元データＯＤのブロック（列）数の１６個の１／２である。
【０１３２】
（実施の形態１における分散データの生成方法）
実施の形態１における分散データＳＤ１，ＳＤ２，ＳＤ３の具体的な生成方法について、図１及び図２を参照して説明する。分散復元装置２００は、先ず、元データＯＤを２個のデータに均等に分割する。但し、分散復元装置２００は、元データＯＤを３個以上のデータに均等に分割しても良い（実施の形態２参照）。例えば、分散復元装置２００は、合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含む元データＯＤを、列１〜列８のデータと、列９〜列１６のデータとに均等に分割する。
【０１３３】
分散復元装置２００は、列１〜列８のデータのうちいずれかの列のデータと、列９〜列１６のデータのうちいずれかの列のデータとをＸＯＲ処理し、合計８個のＸＯＲ処理されたデータを連接させて分散データＳＤ３を生成する。
【０１３４】
例えば、図１及び図２に示すように、分散復元装置２００は、列１と列９とをＸＯＲ処理したデータと、列２と列１０とをＸＯＲ処理したデータと、列３と列１１とをＸＯＲ処理したデータと、列４と列１２とをＸＯＲ処理したデータと、列５と列１３とをＸＯＲ処理したデータと、列６と列１４とをＸＯＲ処理したデータと、列７と列１５とをＸＯＲ処理したデータと、列８と列１６とをＸＯＲ処理したデータとを連接した分散データＳＤ３を生成する。
【０１３５】
次に、分散復元装置２００は、分散データＳＤ３の生成時における各ＸＯＲ処理に用いた列１〜列８のデータ又は列９〜列１６のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置２００は、列の組み合わせとして列１〜列８のデータを選択するが、分散データＳＤ３の生成時における各ＸＯＲ処理の対象とされた２個の列のデータのうちどちらか一方のデータを選択しても良い。例えば、列１，列１０，列３，列４，列１３，列６，列７，列１６の各データが選択されても良い。
【０１３６】
分散復元装置２００は、選択された列の組み合わせに対し、本発明者による特願２０１０−０７７６３０号の秘密分散法に従って分散処理を実行し、２個の分散データＳＤ１，ＳＤ２を生成する。特願２０１１−０７７６３０号の秘密分散法に従った分散処理によって、分散データＳＤ３の生成時における各ＸＯＲ処理に用いた列１〜列８及び列９〜列１６の各データのうち、分散復元装置２００によって選択された列の組み合わせ（例えば列１〜列８）がそれぞれ異なる組み合わせによってＸＯＲ処理されて、２個の分散データＳＤ１，ＳＤ２が生成される。
【０１３７】
具体的には、分散復元装置２００は、例えば列１〜列８の組み合わせを選択した場合に、［分散（１）ａ］に列１だけを用い、［分散（１）ｂ］に列２と列３とのＸＯＲ処理した値を用い、［分散（１）ｃ］に列４と列５とのＸＯＲ処理した値を用い、［分散（１）ｄ］に列６と列７とのＸＯＲ処理した値を用い、［分散（１）ａ］，［分散（１）ｂ］，［分散（１）ｃ］，［分散（１）ｄ］を連接させて分散データＳＤ１を生成する。
【０１３８】
更に、分散復元装置２００は、生成された分散データＳＤ１に対し、分散データＳＤ１の下段に図示した偶数の列２、列４、列６を左方向に一列分シフトさせることによって、分散データＳＤ２を生成する。従って、分散復元装置２００は、分散データＳＤ２を生成する場合では、分散データＳＤ１の生成時に用いない列８のデータを、列７とのＸＯＲ処理に用いる。
【０１３９】
なお、分散復元装置２００は、分散データＳＤ２を分散データＳＤ１より先に生成しても良い。具体的には、分散復元装置２００は、例えば列１〜列８の組み合わせを選択した場合に、［分散（２）ａ］に列１と列２とのＸＯＲ処理した値を用い、［分散（２）ｂ］に列３と列４とのＸＯＲ処理した値を用い、［分散（２）ｃ］に列５と列６とのＸＯＲ処理した値を用い、［分散（２）ｄ］に列７と列８とのＸＯＲ処理した値を用い、［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］を連接させて分散データＳＤ２を生成する。
【０１４０】
更に、分散復元装置２００は、生成された分散データＳＤ２に対し、分散データＳＤ２の下段に図示した偶数の列２、列４、列６、列８を右方向に一列分シフトさせることによって、分散データＳＤ１を生成する。従って、分散復元装置２００は、分散データＳＤ１を生成する場合では、分散データＳＤ２の生成時に用いた列８のデータを用いず、［分散（１）ａ］に単一の列１だけを用いる。
【０１４１】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２，ＳＤ３とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０１４２】
また、本実施の形態１における非対称分散の割合は、図２に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／４であり、ＨＤＤ８０に記憶される分散データＳＤ２，ＳＤ３のデータサイズが元データＯＤのデータサイズの３／４（１／４＋１／２）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：３の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０１４３】
なお、本実施の形態を含む各実施の形態において、上述した分散データＳＤ１，ＳＤ２，ＳＤ３の各列（図１又は図２参照）に配置した元データＯＤの列の番号には特段の意味はなく、分散復元装置２００は、例えば元データＯＤの奇数番号の列だけを用いて分散データＳＤ１，ＳＤ２を生成し、奇数番号の列を上段に、偶数番号の列を下段に配置して、それぞれをＸＯＲ処理することで分散データＳＤ３を生成しても良い。即ち、分散復元装置２００における各分散データの生成時に用いられる元データＯＤの列の配置は任意である。
【０１４４】
なお、以下の図の説明では、説明が煩雑になるのを避けるため、元データＯＤに対するデータ処理の説明は割愛しているが、元データを図示した全ての図において、元データＯＤとは何らかのデータ処理が施された元データであるか、又は元データＯＤに何らかのデータ処理が施されたデータであるかは問わないとする。
【０１４５】
従って、実施の形態１に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０１４６】
以上により、実施の形態１の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３を安全に生成することができる。
【０１４７】
（実施の形態１における元データの復元方法）
実施の形態１における元データＯＤの具体的な復元方法について、図３及び図４を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２，ＳＤ３を取得する。
【０１４８】
なお、本実施の形態を含む各実施の形態の分散復元装置２００の動作の実行順序を示す図において、例えば分散復元装置２００が第１番目に実行する動作を「（１）」と示し、第２番目に実行する動作を「（２）」と示し、以下、同様に第ｎ番目に実行する動作を「（ｎ）」と示す。
【０１４９】
図３及び図４において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ３の［分散（３）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列９を取得する（２）。
【０１５０】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列３を取得し（３）、分散データＳＤ３の［分散（３）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列１０を取得する（３）。
【０１５１】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列４を取得し（４）、分散データＳＤ３の［分散（３）ｃ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１１を取得する（４）。
【０１５２】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｃ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列５を取得し（５）、分散データＳＤ３の［分散（３）ｄ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１２を取得する（５）。
【０１５３】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｃ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列６を取得し（６）、分散データＳＤ３の［分散（３）ｅ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列１３を取得する（６）。
【０１５４】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｄ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列７を取得し（７）、分散データＳＤ３の［分散（３）ｆ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列１４を取得する（７）。
【０１５５】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｄ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列８を取得し（８）、分散データＳＤ３の［分散（３）ｇ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列１５を取得する（８）。
【０１５６】
最後に、分散復元装置２００は、分散データＳＤ３の［分散（３）ｈ］と既に取得した列８とをＸＯＲ処理して元データＯＤの列１６を取得する（９）。
【０１５７】
分散復元装置２００は、（１）〜（９）の各動作において取得された列１〜列１６の各分割ブロックＤＢ１〜ＤＢ１６を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０１５８】
以上により、実施の形態１の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３から元データＯＤを安全に復元することができる。
【０１５９】
（実施の形態１と特願２０１１−０７７６３０号との分散処理及び復元処理の違い）
ここで、実施の形態１の分散処理及び復元処理と、本発明者による特願２０１１−０７７６３０号の秘密分散法における分散処理及び復元処理との違いについて、図５１及び図５２を参照して説明する。図５１は、特願２０１１−０７７６３０号の秘密分散法を用いた閾値４、分散数４の分散データの内容を示す説明図である。図５２は、図５１に示す方法により生成された４個の分散データから元データを復元するための動作手順を説明するフローチャートである。
【０１６０】
図５１に示す各分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４は、実施の形態１と同様に合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含んで構成される元データＯＤから特願２０１１−０７７６３０号の秘密分散法（閾値４、分散数４）に従って生成されている。閾値４であるため、各分散データの列には１個、２個、３個又は４個の分割ブロックがＸＯＲ処理された値が用いられ、各々の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４において各列のＸＯＲ処理に用いられる分割ブロックは他の分散データの各列のＸＯＲ処理に用いられる分割ブロックと異なるように組み合わされている（図５１参照）。
【０１６１】
但し、各実施の形態においても、各々の分散データにおいて各列のＸＯＲ処理に用いられる分割ブロックは他の分散データの各列のＸＯＲ処理に用いられる分割ブロックと異なるように組み合わされている。
【０１６２】
具体的には、図５１に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｂ］は列２の分割ブロックＤＢ２と列５の分割ブロックＤＢ５とがＸＯＲ処理された値であり、［分散（１）ｃ］は列６の分割ブロックＤＢ６と列９の分割ブロックＤＢ９とがＸＯＲ処理された値であり、［分散（１）ｄ］は列３の分割ブロックＤＢ３と列１０の分割ブロックＤＢ１０と列１３の分割ブロックＤＢ１３とがＸＯＲ処理された値であり、［分散（１）ｅ］は列４の分割ブロックＤＢ４と列７の分割ブロックＤＢ７と列１４の分割ブロックＤＢ１４とがＸＯＲ処理された値であり、［分散（１）ｆ］は列８の分割ブロックＤＢ８と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（１）ｇ］は列１２の分割ブロックＤＢ１２と列１５の分割ブロックＤＢ１５とがＸＯＲ処理された値であり、［分散（１）ｈ］は列１６の分割ブロックＤＢ１６である。
【０１６３】
更に、図５１に示す分散データＳＤ２において、［分散（２）ｃ］は列１の分割ブロックＤＢ１と列２の分割ブロックＤＢ２とがＸＯＲ処理された値であり、［分散（２）ｄ］は列５の分割ブロックＤＢ５と列６の分割ブロックＤＢ６と列３の分割ブロックＤＢ３と列４の分割ブロックＤＢ４とがＸＯＲ処理された値であり、［分散（２）ｅ］は列９の分割ブロックＤＢ９と列１０の分割ブロックＤＢ１０と列７の分割ブロックＤＢ７と列８の分割ブロックＤＢ８とがＸＯＲ処理された値であり、［分散（２）ｆ］は列１３の分割ブロックＤＢ１３と列１４の分割ブロックＤＢ１４と列１１の分割ブロックＤＢ１１と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値であり、［分散（２）ｇ］は列１５の分割ブロックＤＢ１５と列１６の分割ブロックＤＢ１６とがＸＯＲ処理された値である。
【０１６４】
更に、図５１に示す分散データＳＤ３において、［分散（３）ｃ］は列４の分割ブロックＤＢ４であり、［分散（３）ｄ］は列２の分割ブロックＤＢ２と列３の分割ブロックＤＢ３と列８の分割ブロックＤＢ８とがＸＯＲ処理された値であり、［分散（３）ｅ］は列１の分割ブロックＤＢ１と列６の分割ブロックＤＢ６と列７の分割ブロックＤＢ７と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値であり、［分散（３）ｆ］は列５の分割ブロックＤＢ５と列１０の分割ブロックＤＢ１０と列１１の分割ブロックＤＢ１１と列１６の分割ブロックＤＢ１６とがＸＯＲ処理された値であり、［分散（３）ｇ］は列９の分割ブロックＤＢ９と列１４の分割ブロックＤＢ１４と列１５の分割ブロックＤＢ１５とがＸＯＲ処理された値であり、［分散（３）ｈ］は列１３の分割ブロックＤＢ１３である。
【０１６５】
最後に、図５１に示す分散データＳＤ４において、［分散（４）ｂ］は列４の分割ブロックＤＢ４であり、［分散（４）ｃ］は列８の分割ブロックＤＢ８であり、［分散（４）ｄ］は列３の分割ブロックＤＢ３と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値であり、［分散（４）ｅ］は列２の分割ブロックＤＢ２と列７の分割ブロックＤＢ７と列１６の分割ブロックＤＢ１６とがＸＯＲ処理された値であり、［分散（４）ｆ］は列６の分割ブロックＤＢ６と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（４）ｇ］は列１の分割ブロックＤＢ１と列１０の分割ブロックＤＢ１０と列１５の分割ブロックＤＢ１５とがＸＯＲ処理された値であり、［分散（４）ｈ］は列５の分割ブロックＤＢ５と列１４の分割ブロックＤＢ１４とがＸＯＲ処理された値であり、［分散（４）ｉ］は列９の分割ブロックＤＢ９であり、［分散（４）ｊ］は列１３の分割ブロックＤＢ１３である。
【０１６６】
従って、図５１に示す各分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４は、いずれかの分散データを基準とした場合に、基準となる分散データから４段構成のうちＸＯＲ処理に用いられる１個又は２個以上の横方向の列が左方向又は右方向に何列かシフトすることで、他の分散データと異なる構成を有することになっている。
【０１６７】
例えば、基準となる分散データを分散データＳＤ２とした場合、分散データＳＤ１は、分散データＳＤ２の第１段目の横方向の列（列１，列５，列９，列１３）が左方向に２列分シフトし、分散データＳＤ２の第２段目の横方向の列（列２，列６，列１０，列１４）が左方向に１列分シフトし、分散データＳＤ２の第４段目の横方向の列（列４，列８，列１２，列１６）が右方向に１列分シフトして構成されている。
【０１６８】
同様に、基準となる分散データを分散データＳＤ２とした場合、分散データＳＤ３は、分散データＳＤ２の第１段目の横方向の列（列１，列５，列９，列１３）が右方向に２列分シフトし、分散データＳＤ２の第２段目の横方向の列（列２，列６，列１０，列１４）が右方向に１列分シフトし、分散データＳＤ２の第４段目の横方向の列（列４，列８，列１２，列１６）が左方向に１列分シフトして構成されている。
【０１６９】
同様に、基準となる分散データを分散データＳＤ２とした場合、分散データＳＤ４は、分散データＳＤ２の第１段目の横方向の列（列１，列５，列９，列１３）が右方向に４列分シフトし、分散データＳＤ２の第２段目の横方向の列（列２，列６，列１０，列１４）が右方向に２列分シフトし、分散データＳＤ２の第４段目の横方向の列（列４，列８，列１２，列１６）が左方向に２列分シフトして構成されている。
【０１７０】
図５１に示す各分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４から元データＯＤを復元するための復元処理では、図５２において、特願２０１１−０７７６３０号の秘密分散装置（以下、単に「秘密分散装置」という）は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ４の［分散（４）ｂ］を基にして元データＯＤの列４を取得し（２）、分散データＳＤ４の［分散（４）ｃ］を基にして元データＯＤの列８を取得する（２）。
【０１７１】
秘密分散装置は、分散データＳＤ２の［分散（２）ｃ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（３）、分散データＳＤ３の［分散（３）ｄ］と既に取得した列２と列８とをＸＯＲ処理して元データＯＤの列３を取得する（４）。
【０１７２】
秘密分散装置は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列５を取得し（５）、分散データＳＤ４の［分散（４）ｄ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１２を取得する（６）。
【０１７３】
秘密分散装置は、分散データＳＤ２の［分散（２）ｄ］と既に取得した列５と列３と列４とをＸＯＲ処理して元データＯＤの列６を取得し（７）、分散データＳＤ３の［分散（３）ｅ］と既に取得した列１と列６と列１２とをＸＯＲ処理して元データＯＤの列７を取得する（８）。
【０１７４】
秘密分散装置は、分散データＳＤ１の［分散（１）ｃ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列９を取得し（９）、分散データＳＤ４の［分散（４）ｅ］と既に取得した列２と列７とをＸＯＲ処理して元データＯＤの列１６を取得する（１０）。
【０１７５】
秘密分散装置は、分散データＳＤ２の［分散（２）ｅ］と既に取得した列９と列７と列８とをＸＯＲ処理して元データＯＤの列１０を取得し（１１）、分散データＳＤ３の［分散（３）ｆ］と既に取得した列５と列１０と列１６とをＸＯＲ処理して元データＯＤの列１１を取得する（１２）。
【０１７６】
最後に、秘密分散装置は、分散データＳＤ１の［分散（１）ｄ］と既に取得した列１０と列３とをＸＯＲ処理して元データＯＤの列１３を取得し（１３）、分散データＳＤ２の［分散（２）ｆ］と既に取得した列１３と列１１と列１２とをＸＯＲ処理して元データＯＤの列１４を取得し（１４）、分散データＳＤ３の［分散（３）ｇ］と既に取得した列９と列１４とをＸＯＲ処理して元データＯＤの列１５を取得する（１５）。
【０１７７】
即ち、図５２に示す復元処理では、分散データＳＤ１では最上段の列の分割ブロック（図５１において網掛けされた列１，列５，列９，列１３）が復元され、分散データＳＤ２では第２段目の列の分割ブロック（同図において網掛けされた列２，列６，列１０，列１４）が復元され、分散データＳＤ３では第３段目の列の分割ブロック（同図において網掛けされた列３，列７，列１１，列１５）が復元され、分散データＳＤ４では第４段目の列の分割ブロック（同図において網掛けされた列４，列８，列１２，列１６）が復元されている。
【０１７８】
従って、本発明者による特願２０１１−０７７６３０号の秘密分散法における復元処理では、図５１に示す各分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４のうち、網掛けされた列の分割ブロックだけを用いて復元可能であり、網掛けされていない列の分割ブロックを含まない列は不要となる。具体的には、図５３に示すように、分散データＳＤ１の列ｅ，列ｆ，列ｇ，列ｈ、分散データＳＤ２の列ｇ、分散データＳＤ３の列ｃ，列ｈ、分散データＳＤ４の列ｆ，列ｇ，列ｈ，列ｉ，列ｊの各分割ブロックは不要な列となる。図５３は、図５１に示す分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４において復元処理に不要な列が削除された分散データの内容を示す説明図である。
【０１７９】
図５３に示す各分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４から元データＯＤを復元する方法は図５２と同一である。従って、秘密分散装置は、図５１に示す各分散データではなく、図５３に示す各分散データを生成する方がメモリ量及びセキュリティの観点から好ましい。
【０１８０】
また、図５１又は図５３に示す各分散データは４列のデータ構成であるため、分散データＳＤ１と分散データＳＤ２，ＳＤ３，ＳＤ４とのデータサイズの比は図２に示す各分散データと同様に１：３である。
【０１８１】
ここで、実施の形態１の分散処理及び復元処理と、本発明者による特願２０１１−０７７６３０号の秘密分散法における分散処理及び復元処理との違いを検討する。本発明者による特願２０１１−０７７６３０号の秘密分散法に従って生成された図５１又は図５３に示す各分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４から元データＯＤを復元するためにはＸＯＲ処理が２７回必要である。
【０１８２】
一方、実施の形態１に従って生成された図１又は図２に示す各分散データＳＤ１，ＳＤ２，ＳＤ３から元データＯＤを復元するためにはＸＯＲ処理が１５回必要となる。従って、実施の形態１の分散処理及び復元処理によれば、分散復元装置２００は、秘密分散装置よりもＸＯＲ処理の実行回数を低減することができ、非対称なデータサイズの分散データを高速に生成することができ、元データＯＤを高速に復元することができる。
【０１８３】
（実施の形態２）
次に、分散復元装置２００の実施の形態２について、図５から図８を参照して説明する。図５は、実施の形態２における分散データの生成方法の一例を示す説明図である。図６は、実施の形態２における分散データの内容を示す説明図である。図７は、実施の形態２における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図８は、実施の形態２における動作手順を説明するフローチャートである。
【０１８４】
実施の形態２では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計５個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４、分散データＳＤ５を生成する方法、及び、５個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４、分散データＳＤ５を用いて元データＯＤを復元する方法を説明する。
【０１８５】
分散復元装置２００は、分散データＳＤ１，ＳＤ２を例えば外部記憶装置５１０に記憶させ、分散データＳＤ３，ＳＤ４，ＳＤ５をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、５個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，ＳＤ５を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０１８６】
実施の形態２では、図５に示すように、元データＯＤは、それぞれ連接された合計２４個の分割ブロックＤＢ１〜ＤＢ２４を含んで構成されている。なお、実施の形態２では、説明を簡単にするために、元データＯＤは合計２４個の分割ブロックＤＢ１〜ＤＢ２４を含む構成としているが、元データＯＤを構成する分割ブロックの数は２４に限定されない。また、図面の複雑化を避けるために、図６では、元データＯＤの構成の図示を省略している。
【０１８７】
（実施の形態２における分散データの構成）
実施の形態２における分散データの構成について、図５及び図６を参照して説明する。なお、実施の形態１と同一の内容の説明は省略し、異なる内容について説明する。図５及び図６に示す分散データＳＤ１は、図１及び図２に示す分散データＳＤ１と同一である。また、図５及び図６に示す分散データＳＤ３は、図１及び図２に示す分散データＳＤ２と同一である。
【０１８８】
図５及び図６に示す分散データＳＤ２において、［分散（２）ａ］は列９の分割ブロックＤＢ９であり、［分散（２）ｂ］は列１０の分割ブロックＤＢ１０と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（２）ｃ］は列１２の分割ブロックＤＢ１２と列１３の分割ブロックＤＢ１３とがＸＯＲ処理された値であり、［分散（２）ｄ］は列１４の分割ブロックＤＢ１４と列１５の分割ブロックＤＢ１５とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、４個の列［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］が連接された構成である。
【０１８９】
このように、分散データＳＤ２は、元データＯＤの３分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は４個であって、分割データＳＤ１と同様に、元データＯＤのブロック（列）数の２４個の１／６である。
【０１９０】
次に、図５及び図６に示す分散データＳＤ４において、［分散（４）ａ］は列９の分割ブロックＤＢ９と列１０の分割ブロックＤＢ１０とがＸＯＲ処理された値であり、［分散（４）ｂ］は列１１の分割ブロックＤＢ１１と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値であり、［分散（４）ｃ］は列１３の分割ブロックＤＢ１３と列１４の分割ブロックＤＢ１４とがＸＯＲ処理された値であり、［分散（４）ｄ］は列１５の分割ブロックＤＢ１５と列１６の分割ブロックＤＢ１６とがＸＯＲ処理された値である。
従って、分散データＳＤ４は、４個の列［分散（４）ａ］，［分散（４）ｂ］，［分散（４）ｃ］，［分散（４）ｄ］が連接された構成である。
【０１９１】
このように、分散データＳＤ４は、元データＯＤの３分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ４のブロック（列）数は４個であって、分散データＳＤ２と同様に、元データＯＤのブロック（列）数の２４個の１／６である。
【０１９２】
同様に、図５及び図６に示す分散データＳＤ５において、［分散（５）ａ］は列１の分割ブロックＤＢ１と列９の分割ブロックＤＢ９と列１７の分割ブロックＤＢ１７とがＸＯＲ処理された値であり、［分散（５）ｂ］は列２の分割ブロックＤＢ２と列１０の分割ブロックＤＢ１０と列１８の分割ブロックＤＢ１８とがＸＯＲ処理された値であり、［分散（５）ｃ］は列３の分割ブロックＤＢ３と列１１の分割ブロックＤＢ１１と列１９の分割ブロックＤＢ１９とがＸＯＲ処理された値であり、［分散（５）ｄ］は列４の分割ブロックＤＢ４と列１２の分割ブロックＤＢ１２と列２０の分割ブロックＤＢ２０とがＸＯＲ処理された値であり、［分散（５）ｅ］は列５の分割ブロックＤＢ５と列１３の分割ブロックＤＢ１３と列２１の分割ブロックＤＢ２１とがＸＯＲ処理された値であり、［分散（５）ｆ］は列６の分割ブロックＤＢ６と列１４の分割ブロックＤＢ１４と列２２の分割ブロックＤＢ２２とがＸＯＲ処理された値であり、［分散（５）ｇ］は列７の分割ブロックＤＢ７と列１５の分割ブロックＤＢ１５と列２３の分割ブロックＤＢ２３とがＸＯＲ処理された値であり、［分散（５）ｈ］は列８の分割ブロックＤＢ８と列１６の分割ブロックＤＢ１６と列２４の分割ブロックＤＢ２４とがＸＯＲ処理された値である。
従って、分散データＳＤ５は、８個の列［分散（５）ａ］，［分散（５）ｂ］，［分散（５）ｃ］，［分散（５）ｄ］，［分散（５）ｅ］，［分散（５）ｆ］，［分散（５）ｇ］，［分散（５）ｈ］が連接された構成である。
【０１９３】
このように、分散データＳＤ５は、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって３段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は８個であって、元データＯＤのブロック（列）数の２４個の１／３である。
【０１９４】
（実施の形態２における分散データの生成方法）
実施の形態１における分散データＳＤ１，ＳＤ２，ＳＤ３の具体的な生成方法について、図５及び図６を参照して説明する。分散復元装置２００は、先ず、元データＯＤを３個のデータに均等に分割する。但し、分散復元装置２００は、元データＯＤを４個以上のデータに均等に分割しても良い。例えば、分散復元装置２００は、合計２４個の分割ブロックＤＢ１〜ＤＢ２４を含む元データＯＤを、列１〜列８のデータと、列９〜列１６のデータと、列１７〜列２４のデータとに均等に分割する。
【０１９５】
分散復元装置２００は、列１〜列８のデータのうちいずれかの列のデータと、列９〜列１６のデータのうちいずれかの列のデータと、列１７〜列２４のデータのうちいずれかのデータとをＸＯＲ処理し、合計８個のＸＯＲ処理されたデータを連接させて分散データＳＤ５を生成する。
【０１９６】
例えば、図５及び図６に示すように、分散復元装置２００は、列１と列９と列１７とをＸＯＲ処理したデータと、列２と列１０と列１８とをＸＯＲ処理したデータと、列３と列１１と列１９とをＸＯＲ処理したデータと、列４と列１２と列２０とをＸＯＲ処理したデータと、列５と列１３と列２１とをＸＯＲ処理したデータと、列６と列１４と列２２とをＸＯＲ処理したデータと、列７と列１５と列２３とをＸＯＲ処理したデータと、列８と列１６と列２４とをＸＯＲ処理したデータとを連接させた分散データＳＤ５を生成する。
【０１９７】
次に、分散復元装置２００は、分散データＳＤ５の生成時における各ＸＯＲ処理に用いた列１〜列８のデータ、列９〜列１６のデータ及び列１７〜列２４のデータのうち２個の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置２００は、列の組み合わせとして、列１〜列８のデータと列９〜列１６のデータとを選択するが、分散データＳＤ５の生成時における各ＸＯＲ処理の対象とされた３個の列のデータのうちどちらか一方のデータを選択して１個の列の組み合わせを選択しても良い。例えば、第１番目の列の組み合わせとして、列１，列１０，列１９，列４，列１３，列２２，列７，列１６の各データが選択され、第２番目の列の組み合わせとして、列９，列２，列３，列１２，列５，列１４，列１５，列２４の各データが選択されても良い。
【０１９８】
分散復元装置２００は、選択された各々の列の組み合わせに対し、本発明者による特願２０１０−０７７６３０号の秘密分散法に従って分散処理を実行し、４個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を生成する。特願２０１１−０７７６３０号の秘密分散法に従った分散処理によって、分散データＳＤ５の生成時における各ＸＯＲ処理に用いた列１〜列８、列９〜列１６及び列１７〜列２４の各データのうち、分散復元装置２００によって選択された列の組み合わせ（例えば列１〜列８）毎に、それぞれ異なる組み合わせによってＸＯＲ処理されて、４個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４が生成される。
【０１９９】
ここで、分散復元装置２００が例えば列１〜列８の組み合わせを選択した場合に２個の分散データＳＤ１，ＳＤ３を生成する方法は実施の形態１と同一であるため説明を省略し、分散復元装置２００が例えば列９〜列１６の組み合わせを選択した場合に２個の分散データＳＤ２，ＳＤ４を生成する方法について説明する。
【０２００】
分散復元装置２００は、例えば列９〜列１６の組み合わせを選択した場合に、［分散（２）ａ］に列９だけを用い、［分散（２）ｂ］に列１０と列１１とのＸＯＲ処理した値を用い、［分散（２）ｃ］に列１２と列１３とのＸＯＲ処理した値を用い、［分散（２）ｄ］に列１４と列１５とのＸＯＲ処理した値を用い、［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］を連接させて分散データＳＤ２を生成する。
【０２０１】
更に、分散復元装置２００は、生成された分散データＳＤ２に対し、分散データＳＤ２の下段に図示した偶数の列１０、列１２、列１４を左方向に一列分シフトさせることによって、分散データＳＤ４を生成する。従って、分散復元装置２００は、分散データＳＤ４を生成する場合では、分散データＳＤ２の生成時に用いない列１６のデータを、列１５とのＸＯＲ処理に用いる。
【０２０２】
なお、分散復元装置２００は、分散データＳＤ４を分散データＳＤ２より先に生成しても良い。具体的には、分散復元装置２００は、例えば列９〜列１６の組み合わせを選択した場合に、［分散（４）ａ］に列９と列１０とのＸＯＲ処理した値を用い、［分散（４）ｂ］に列１１と列１２とのＸＯＲ処理した値を用い、［分散（４）ｃ］に列１３と列１４６とのＸＯＲ処理した値を用い、［分散（４）ｄ］に列１５と列１６とのＸＯＲ処理した値を用い、［分散（４）ａ］，［分散（４）ｂ］，［分散（４）ｃ］，［分散（４）ｄ］を連接させて分散データＳＤ４を生成する。
【０２０３】
更に、分散復元装置２００は、生成された分散データＳＤ４に対し、分散データＳＤ４の下段に図示した偶数の列１０、列１２、列１４、列１６を右方向に一列分シフトさせることによって、分散データＳＤ２を生成する。従って、分散復元装置２００は、分散データＳＤ２を生成する場合では、分散データＳＤ４の生成時に用いた列１６のデータを用いず、［分散（２）ａ］に単一の列９だけを用いる。
【０２０４】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１，ＳＤ２と、分散データＳＤ３，ＳＤ４，ＳＤ５とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０２０５】
また、本実施の形態２における非対称分散の割合は、図６に示すように、外部記憶装置５１０に記憶される分散データＳＤ１，ＳＤ２のデータサイズが元データＯＤのデータサイズの２／６であり、ＨＤＤ８０に記憶される分散データＳＤ３，ＳＤ４，ＳＤ５のデータサイズが元データＯＤのデータサイズの４／６（１／６＋１／６＋１／３）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：２の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，ＳＤ５の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０２０６】
従って、実施の形態２に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０２０７】
以上により、実施の形態２の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，ＳＤ５を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，ＳＤ５のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，ＳＤ５を安全に生成することができる。
【０２０８】
（実施の形態２における元データの復元方法）
実施の形態２における元データＯＤの具体的な復元方法について、図７及び図８を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，ＳＤ５を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１，ＳＤ２を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ３，ＳＤ４，ＳＤ５を取得する。
【０２０９】
図７及び図８において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ２の［分散（２）ａ］を基にして元データＯＤの列９を取得する（１）。分散復元装置２００は、分散データＳＤ３の［分散（３）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ４の［分散（４）ａ］と既に取得した列９とをＸＯＲ処理して元データＯＤの列１０を取得する（２）。分散復元装置２００は、分散データＳＤ５の［分散（５）ａ］と既に取得した列１と列９とをＸＯＲ処理して元データＯＤの列１７を取得する（３）。
【０２１０】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列３を取得し（４）、分散データＳＤ２の［分散（２）ｂ］と既に取得した列１０とをＸＯＲ処理して元データＯＤの列１１を取得する（４）。分散復元装置２００は、分散データＳＤ５の［分散（５）ｂ］と既に取得した列２と列１０とをＸＯＲ処理して元データＯＤの列１８を取得する（５）。
【０２１１】
分散復元装置２００は、分散データＳＤ３の［分散（３）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列４を取得し（６）、分散データＳＤ４の［分散（４）ｂ］と既に取得した列１１とをＸＯＲ処理して元データＯＤの列１２を取得する（６）。分散復元装置２００は、分散データＳＤ５の［分散（５）ｃ］と既に取得した列３と列１１とをＸＯＲ処理して元データＯＤの列１９を取得する（７）。
【０２１２】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｃ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列５を取得し（８）、分散データＳＤ２の［分散（２）ｃ］と既に取得した列１２とをＸＯＲ処理して元データＯＤの列１３を取得する（８）。分散復元装置２００は、分散データＳＤ５の［分散（５）ｄ］と既に取得した列４と列１２とをＸＯＲ処理して元データＯＤの列２０を取得する（９）。
【０２１３】
分散復元装置２００は、分散データＳＤ３の［分散（３）ｃ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列６を取得し（１０）、分散データＳＤ４の［分散（４）ｃ］と既に取得した列１３とをＸＯＲ処理して元データＯＤの列１４を取得する（１０）。分散復元装置２００は、分散データＳＤ５の［分散（５）ｅ］と既に取得した列５と列１３とをＸＯＲ処理して元データＯＤの列２１を取得する（１１）。
【０２１４】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｄ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列７を取得し（１２）、分散データＳＤ２の［分散（２）ｄ］と既に取得した列１４とをＸＯＲ処理して元データＯＤの列１５を取得する（１２）。分散復元装置２００は、分散データＳＤ５の［分散（５）ｆ］と既に取得した列６と列１４とをＸＯＲ処理して元データＯＤの列２２を取得する（１３）。
【０２１５】
分散復元装置２００は、分散データＳＤ３の［分散（３）ｄ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列８を取得し（１４）、分散データＳＤ４の［分散（４）ｄ］と既に取得した列１５とをＸＯＲ処理して元データＯＤの列１６を取得する（１４）。
【０２１６】
最後に、分散復元装置２００は、分散データＳＤ５の［分散（５）ｇ］と既に取得した列７と列１５とをＸＯＲ処理して元データＯＤの列２３を取得し（１５）、分散データＳＤ５の［分散（５）ｈ］と既に取得した列８と列１６とをＸＯＲ処理して元データＯＤの列２４を取得する（１６）。
【０２１７】
分散復元装置２００は、（１）〜（１６）の各動作において取得された列１〜列２４の各分割ブロックＤＢ１〜ＤＢ２４を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０２１８】
以上により、実施の形態２の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，ＳＤ５を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，ＳＤ５から元データＯＤを安全に復元することができる。
【０２１９】
（実施の形態３）
次に、分散復元装置２００の実施の形態３について、図９から図１２を参照して説明する。図９は、実施の形態３における分散データの生成方法の一例を示す説明図である。図１０は、実施の形態３における分散データの内容を示す説明図である。図１１は、実施の形態３における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図１２は、実施の形態３における動作手順を説明するフローチャートである。
【０２２０】
実施の形態３では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計４個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４を生成する方法、及び、４個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４を用いて元データＯＤを復元する方法を説明する。
【０２２１】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２，ＳＤ３，ＳＤ４をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、４個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０２２２】
実施の形態３では、図９及び図１０に示すように、元データＯＤは、それぞれ連接された合計２４個の分割ブロックＤＢ１〜ＤＢ１８を含んで構成されている。なお、実施の形態３では、説明を簡単にするために、元データＯＤは合計１８個の分割ブロックＤＢ１〜ＤＢ１８を含む構成としているが、元データＯＤを構成する分割ブロックの数は１８に限定されない。
【０２２３】
（実施の形態３における分散データの構成）
実施の形態３における分散データの構成について、図９及び図１０を参照して説明する。図９及び図１０に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｂ］は列４の分割ブロックＤＢ４であり、［分散（１）ｃ］は列７の分割ブロックＤＢ７と列２の分割ブロックＤＢ２と列３の分割ブロックＤＢ３とがＸＯＲ処理された値であり、［分散（１）ｄ］は乱数Ａと列５の分割ブロックＤＢ５と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（１）ｅ］は乱数Ｂと列８の分割ブロックＤＢ８と列９の分割ブロックＤＢ９とがＸＯＲ処理された値である。
従って、分散データＳＤ１は、５個の列［分散（１）ａ］，［分散（１）ｂ］，［分散（１）ｃ］，［分散（１）ｄ］，［分散（１）ｅ］が連接された構成である。
【０２２４】
このように、分散データＳＤ１は、［分散（１）ａ］，［分散（１）ｂ］を除き、元データＯＤの半分のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって３段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は５個であるが、［分散（１）ａ］，［分散（１）ｂ］のデータサイズは元データＯＤのデータサイズの１／１８であって無視できる値と考えられる。このため、分散データＳＤ１のブロック（列）数は３個であり、元データＯＤのブロック（列）数の１８個の１／６である。
【０２２５】
次に、図９及び図１０に示す分散データＳＤ２において、［分散（２）ｂ］は列１の分割ブロックＤＢ１と列３の分割ブロックＤＢ３とが連接された値であり、［分散（２）ｃ］は列４の分割ブロックＤＢ４と列２の分割ブロックＤＢ２と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（２）ｄ］は列７の分割ブロックＤＢ７と列５の分割ブロックＤＢ５と列９の分割ブロックＤＢ９とがＸＯＲ処理された値であり、［分散（２）ｅ］は乱数Ａと列８の分割ブロックＤＢ８と乱数ＣとがＸＯＲ処理された値である。
従って、分散データＳＤ２は、４個の列［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］，［分散（２）ｅ］が連接された構成である。
【０２２６】
このように、分散データＳＤ２は、［分散（２）ｂ］を除き、元データＯＤの半分のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって３段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は４個であるが、［分散（２）ｂ］のデータサイズは元データＯＤのデータサイズの１／１８であって無視できる値と考えられる。このため、分散データＳＤ２のブロック（列）数は３個であり、元データＯＤのブロック（列）数の１８個の１／６である。
【０２２７】
次に、図９及び図１０に示す分散データＳＤ３において、［分散（３）ａ］は列３の分割ブロックＤＢ３であり、［分散（３）ｂ］は列６の分割ブロックＤＢ６であり、［分散（３）ｃ］は列１の分割ブロックＤＢ１と列２の分割ブロックＤＢ２と列９の分割ブロックＤＢ９とがＸＯＲ処理された値であり、［分散（３）ｄ］は列４の分割ブロックＤＢ４と列５の分割ブロックＤＢ５と乱数ＣとがＸＯＲ処理された値であり、［分散（３）ｅ］は列７の分割ブロックＤＢ７と列８の分割ブロックＤＢ８と乱数ＤとがＸＯＲ処理された値である。
従って、分散データＳＤ３は、５個の列［分散（３）ａ］，［分散（３）ｂ］，［分散（３）ｃ］，［分散（３）ｄ］，［分散（３）ｅ］が連接された構成である。
【０２２８】
このように、分散データＳＤ３は、［分散（３）ａ］，［分散（３）ｂ］を除き、元データＯＤの半分のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって３段に畳み込んで構成されている。従って、分散データＳＤ３のブロック（列）数は５個であるが、［分散（３）ａ］，［分散（３）ｂ］のデータサイズは元データＯＤのデータサイズの１／１８であって無視できる値と考えられる。このため、分散データＳＤ３のブロック（列）数は３個であり、元データＯＤのブロック（列）数の１８個の１／６である。
【０２２９】
同様に、図９及び図１０に示す分散データＳＤ４において、［分散（４）ａ］は列１の分割ブロックＤＢ１と列１０の分割ブロックＤＢ１０とがＸＯＲ処理された値であり、［分散（４）ｂ］は列２の分割ブロックＤＢ２と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（４）ｃ］は列３の分割ブロックＤＢ３と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値であり、［分散（４）ｄ］は列４の分割ブロックＤＢ４と列１３の分割ブロックＤＢ１３とがＸＯＲ処理された値であり、［分散（４）ｅ］は列５の分割ブロックＤＢ５と列１４の分割ブロックＤＢ１４とがＸＯＲ処理された値であり、［分散（４）ｆ］は列６の分割ブロックＤＢ６と列１５の分割ブロックＤＢ１５とがＸＯＲ処理された値であり、［分散（４）ｇ］は列７の分割ブロックＤＢ７と列１６の分割ブロックＤＢ１６とがＸＯＲ処理された値であり、［分散（４）ｈ］は列８の分割ブロックＤＢ８と列１７の分割ブロックＤＢ１７とがＸＯＲ処理された値であり、［分散（４）ｉ］は列９の分割ブロックＤＢ９と列１８の分割ブロックＤＢ１８とがＸＯＲ処理された値である。
従って、分散データＳＤ４は、９個の列［分散（４）ａ］，［分散（４）ｂ］，［分散（４）ｃ］，［分散（４）ｄ］，［分散（４）ｅ］，［分散（４）ｆ］，［分散（４）ｇ］，［分散（４）ｈ］，［分散（４）ｉ］が連接された構成である。 
【０２３０】
このように、分散データＳＤ４は、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は９個であって、元データＯＤのブロック（列）数の１８個の１／２である。
【０２３１】
（実施の形態３における分散データの生成方法）
実施の形態３における分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４の具体的な生成方法について、図１１及び図１２を参照して説明する。分散復元装置２００は、先ず、元データＯＤを２個のデータに均等に分割する。但し、分散復元装置２００は、元データＯＤを３個以上のデータに均等に分割しても良い。例えば、分散復元装置２００は、合計１８個の分割ブロックＤＢ１〜ＤＢ１８を含む元データＯＤを、列１〜列９のデータと、列１０〜列１８のデータとに均等に分割する。
【０２３２】
分散復元装置２００は、列１〜列９のデータのうちいずれかの列のデータと、列１０〜列１８のデータのうちいずれかの列のデータとをＸＯＲ処理し、合計９個のＸＯＲ処理されたデータを連接させて分散データＳＤ４を生成する。
【０２３３】
例えば、図９及び図１０に示すように、分散復元装置２００は、列１と列１０とをＸＯＲ処理したデータと、列２と列１１とをＸＯＲ処理したデータと、列３と列１２とをＸＯＲ処理したデータと、列４と列１３とをＸＯＲ処理したデータと、列５と列１４とをＸＯＲ処理したデータと、列６と列１５とをＸＯＲ処理したデータと、列７と列１６とをＸＯＲ処理したデータと、列８と列１７とをＸＯＲ処理したデータと、列９と列１８とをＸＯＲ処理したデータとを連接した分散データＳＤ４を生成する。
【０２３４】
次に、分散復元装置２００は、分散データＳＤ４の生成時における各ＸＯＲ処理に用いた列１〜列９のデータ又は列１０〜列１８のデータのいずれかの列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置２００は、列の組み合わせとして、列１〜列９のデータを選択するが、分散データＳＤ４の生成時における各ＸＯＲ処理の対象とされた２個の列のデータのうちどちらか一方のデータを選択して列の組み合わせを選択しても良い。例えば、列の組み合わせとして、列１，列１１，列３，列４，列１４，列１５，列７，列８，列１８の各データが選択されても良い。
【０２３５】
分散復元装置２００は、選択された列の組み合わせに対し、本発明者による特願２０１０−０７７６３０号の秘密分散法に従って分散処理を実行し、３個の分散データＳＤ１，ＳＤ２，ＳＤ３を生成する。特願２０１１−０７７６３０号の秘密分散法に従った分散処理によって、分散データＳＤ４の生成時における各ＸＯＲ処理に用いた列１〜列９及び列１０〜列１８の各データのうち、分散復元装置２００によって選択された列の組み合わせ（例えば列１〜列９）がそれぞれ異なる組み合わせによってＸＯＲ処理されて、３個の分散データＳＤ１，ＳＤ２，ＳＤ３が生成される。
【０２３６】
具体的には、分散復元装置２００は、例えば列１〜列９の組み合わせを選択した場合に、［分散（１）ａ］に列１だけを用い、［分散（１）ｂ］に列４だけを用い、［分散（１）ｃ］に列７と列２と列３とのＸＯＲ処理した値を用い、［分散（１）ｄ］に乱数Ａと列５と列６とのＸＯＲ処理した値を用い、［分散（１）ｅ］に乱数Ｂと列８と列９とのＸＯＲ処理した値を用い、［分散（１）ａ］，［分散（１）ｂ］，［分散（１）ｃ］，［分散（１）ｄ］，［分散（１）ｅ］を連接させて分散データＳＤ１を生成する。
【０２３７】
更に、分散復元装置２００は、生成された分散データＳＤ１に対し、分散データＳＤ１の最上段に図示した列１、列４、列７、乱数Ａ、乱数Ｂを右方向に一列分シフトさせ、分散データＳＤ１の最下段に図示した列３、列６、列９を左方向に一列分シフトさせることによって、分散データＳＤ２を生成する。従って、分散復元装置２００は、分散データＳＤ２を生成する場合では、分散データＳＤ１の生成時に用いない乱数Ｃのデータを、乱数Ａと列８とのＸＯＲ処理に用い、分散データＳＤ１の生成時に用いる乱数Ｂのデータを用いない。
【０２３８】
なお、分散復元装置２００は、分散データＳＤ２を分散データＳＤ１より先に生成しても良い。具体的には、分散復元装置２００は、例えば列１〜列９の組み合わせを選択した場合に、［分散（２）ｂ］に列１と列３とを連接した値を用い、［分散（２）ｃ］に列４と列２と列６とをＸＯＲ処理した値を用い、［分散（２）ｄ］に列７と列５と列９とをＸＯＲ処理した値を用い、［分散（２）ｅ］に乱数Ａと列８と乱数ＣとをＸＯＲ処理した値を用い、［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］，［分散（２）ｅ］を連接させて分散データＳＤ２を生成する。詳細な説明は割愛するが、分散復元装置２００は、同様にして、分散データＳＤ２から分散データＳＤ１を生成する（図９及び図１０参照）。
【０２３９】
更に、分散復元装置２００は、生成された分散データＳＤ１に対し、分散データＳＤ１の最上段に図示した列１、列４、列７、乱数Ａ、乱数Ｂを右方向に二列分シフトさせ、分散データＳＤ１の最下段に図示した列３、列６、列９を左方向に二列分シフトさせることによって、分散データＳＤ３を生成する。従って、分散復元装置２００は、分散データＳＤ３を生成する場合では、分散データＳＤ１の生成時に用いない乱数Ｃのデータを列４と列５とのＸＯＲ処理に用い、乱数Ｄのデータを列７と列８とのＸＯＲ処理に用い、分散データＳＤ１の生成時に用いる乱数Ａと乱数Ｂとを用いない。
【０２４０】
なお、分散復元装置２００は、分散データＳＤ３を分散データＳＤ１より先に生成しても良い。具体的には、分散復元装置２００は、例えば列１〜列９の組み合わせを選択した場合に、［分散（３）ａ］に列３だけを用い、［分散（３）ｂ］に列６だけを用い、［分散（３）ｃ］に列１と列２と列９とをＸＯＲ処理した値を用い、［分散（３）ｄ］に列４と列５と乱数ＣとをＸＯＲ処理した値を用い、［分散（３）ｅ］に列７と列８と乱数ＤとをＸＯＲ処理した値を用い、［分散（３）ａ］，［分散（３）ｂ］，［分散（３）ｃ］，［分散（３）ｄ］，［分散（３）ｅ］を連接させて分散データＳＤ３を生成する。分散復元装置２００は、同様にして、分散データＳＤ３から分散データＳＤ１を生成する（図９及び図１０参照）。
【０２４１】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを３段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２，ＳＤ３，ＳＤ４とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０２４２】
また、本実施の形態３における非対称分散の割合は、図１０に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／６であり、ＨＤＤ８０に記憶される分散データＳＤ２，ＳＤ３，ＳＤ４のデータサイズが元データＯＤのデータサイズの５／６（１／６＋１／６＋１／２）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：５の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０２４３】
従って、実施の形態３に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０２４４】
以上により、実施の形態３の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を安全に生成することができる。
【０２４５】
更に、分散復元装置２００は、分散データＳＤ１の［分散（１）ｄ］に乱数Ａ、［分散（１）ｅ］に乱数Ｂ、［分散（２）ｅ］に乱数Ａと乱数Ｃ、［分散（３）ｄ］に乱数Ｃ、［分散（３）ｅ］に乱数Ｄを用いてＸＯＲ処理しているため、分散データを暗号化処理しており、乱数が用いられていない各分散データよりも分散データのセキュリティを向上させていることになる。なお、各分散データの生成時に用いられた乱数Ａ、乱数Ｂ、乱数Ｃ、乱数Ｄは乱数生成部４０により出力された値であって、ＲＡＭ７０又はＨＤＤ８０に記憶されることが好ましい。
【０２４６】
（実施の形態３における元データの復元方法）
実施の形態３における元データＯＤの具体的な復元方法について、図１１及び図１２を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２，ＳＤ３，ＳＤ４を取得し、更に、ＣＰＵ６０においてＲＡＭ７０又はＨＤＤ８０にアクセスして乱数Ａ、乱数Ｂ、乱数Ｃ、乱数Ｄを取得する。
【０２４７】
図１１及び図１２において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ３の［分散（３）ａ］を基にして元データＯＤの列３を取得し（１）、分散データＳＤ１の［分散（１）ｂ］を基にして元データＯＤの列４を取得し（１）、分散データＳＤ３の［分散（３）ｂ］を基にして元データＯＤの列６を取得する（１）。
【０２４８】
分散復元装置２００は、分散データＳＤ３の［分散（３）ａ］と既に取得した列４と列６とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ３の［分散（３）ｃ］と既に取得した列１と列２とをＸＯＲ処理して元データＯＤの列９を取得する（３）。
【０２４９】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｃ］と既に取得した列２と列３とをＸＯＲ処理して元データＯＤの列７を取得し（４）、分散データＳＤ１の［分散（１）ｄ］と既に取得した列６と乱数ＡとをＸＯＲ処理して元データＯＤの列５を取得し（５）、分散データＳＤ２の［分散（２）ｅ］と乱数Ａと乱数ＣとをＸＯＲ処理して元データＯＤの列８を取得する（６）。
【０２５０】
分散復元装置２００は、分散データＳＤ４の［分散（４）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列１０を取得し（７）、分散データＳＤ４の［分散（４）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列１１を取得し（８）、分散データＳＤ４の［分散（４）ｃ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１２を取得する（９）。
【０２５１】
分散復元装置２００は、分散データＳＤ４の［分散（４）ｄ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１３を取得し（１０）、分散データＳＤ４の［分散（４）ｅ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列１４を取得し（１１）、分散データＳＤ４の［分散（４）ｆ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列１５を取得する（１２）。
【０２５２】
最後に、分散復元装置２００は、分散データＳＤ４の［分散（４）ｇ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列１６を取得し（１３）、分散データＳＤ４の［分散（４）ｈ］と既に取得した列８とをＸＯＲ処理して元データＯＤの列１７を取得し（１４）、分散データＳＤ４の［分散（４）ｉ］と既に取得した列９とをＸＯＲ処理して元データＯＤの列１８を取得する（１５）。
【０２５３】
分散復元装置２００は、（１）〜（１５）の各動作において取得された列１〜列１８の各分割ブロックＤＢ１〜ＤＢ１８を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０２５４】
以上により、実施の形態３の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４から元データＯＤを安全に復元することができる。
【０２５５】
（実施の形態４）
次に、分散復元装置２００の実施の形態４について、図１３から図１６を参照して説明する。図１３は、実施の形態４における分散データの生成方法の一例を示す説明図である。図１４は、実施の形態４における分散データの内容を示す説明図である。図１５は、実施の形態４における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図１６は、実施の形態４における動作手順を説明するフローチャートである。
【０２５６】
実施の形態４では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計３個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３を生成する方法、及び、３個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３を用いて元データＯＤを復元する方法を説明する。
【０２５７】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２，ＳＤ３をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、３個の分散データＳＤ１，ＳＤ２，ＳＤ３を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０２５８】
実施の形態４では、図１３及び図１４に示すように、元データＯＤは、それぞれ連接された合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含んで構成されている。なお、実施の形態４では、説明を簡単にするために、元データＯＤは合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む構成としているが、元データＯＤを構成する分割ブロックの数は１２に限定されない。
【０２５９】
（実施の形態４における分散データの構成）
実施の形態４における分散データの構成について、図１３及び図１４を参照して説明する。図１３及び図１４に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｂ］は列２の分割ブロックＤＢ２と列３の分割ブロックＤＢ３とがＸＯＲ処理された値である。
従って、分散データＳＤ１は、２個の列［分散（１）ａ］，［分散（１）ｂ］が連接された構成である。
【０２６０】
このように、分散データＳＤ１は、元データＯＤの３分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は２個であって、分割データＳＤ１と同様に、元データＯＤのブロック（列）数の１２個の１／６である。
【０２６１】
次に、図１３及び図１４に示す分散データＳＤ２において、［分散（２）ａ］は列１の分割ブロックＤＢ１と列２の分割ブロックＤＢ２とがＸＯＲ処理された値であり、［分散（２）ｂ］は列３の分割ブロックＤＢ３と列４の分割ブロックＤＢ４とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、２個の列［分散（２）ａ］，［分散（２）ｂ］が連接された構成である。
【０２６２】
このように、分散データＳＤ２は、元データＯＤの３分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は２個であって、元データＯＤのブロック（列）数の１２個の１／６である。
【０２６３】
同様に、図１３及び図１４に示す分散データＳＤ３において、［分散（３）ａ］は列１の分割ブロックＤＢ１と列５の分割ブロックＤＢ５とがＸＯＲ処理された値であり、［分散（３）ｂ］は列１の分割ブロックＤＢ１と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（３）ｃ］は列２の分割ブロックＤＢ２と列７の分割ブロックＤＢ７とがＸＯＲ処理された値であり、［分散（３）ｄ］は列２の分割ブロックＤＢ２と列８の分割ブロックＤＢ８とがＸＯＲ処理された値であり、［分散（３）ｅ］は列３の分割ブロックＤＢ３と列９の分割ブロックＤＢ９とがＸＯＲ処理された値であり、［分散（３）ｆ］は列３の分割ブロックＤＢ３と列１０の分割ブロックＤＢ１０とがＸＯＲ処理された値であり、［分散（３）ｇ］は列４の分割ブロックＤＢ４と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（３）ｈ］は列４の分割ブロックＤＢ４と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値である。
従って、分散データＳＤ３は、８個の列［分散（３）ａ］，［分散（３）ｂ］，［分散（３）ｃ］，［分散（３）ｄ］，［分散（３）ｅ］，［分散（３）ｆ］，［分散（３）ｇ］，［分散（３）ｈ］が連接された構成である。
【０２６４】
このように、分散データＳＤ３は、列１〜列４の各データが２回用いられ、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ３のブロック（列）数は８個であって、元データＯＤのブロック（列）数の１２個の２／３である。
【０２６５】
（実施の形態４における分散データの生成方法）
実施の形態４における分散データＳＤ１，ＳＤ２，ＳＤ３の具体的な生成方法について、図１３及び図１４を参照して説明する。分散復元装置２００は、先ず、元データＯＤを異なるデータサイズを有する２個のデータに分割する。例えば、分散復元装置２００は、合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む元データＯＤを、列１〜列４のデータと、列５〜列１２のデータとに分割する。
【０２６６】
分散復元装置２００は、列１〜列４のデータのうちいずれかの列のデータと、列５〜列１２のデータのうちいずれかの列のデータとをＸＯＲ処理し、合計８個のＸＯＲ処理されたデータを連接させて分散データＳＤ３を生成する。実施の形態４では、分散復元装置２００は、分散データＳＤ３を生成する際、列１〜列４の各データを２回用いて、列５〜列１２のデータのうちいずれかの列のデータとＸＯＲ処理を実行する。
【０２６７】
例えば、図１３及び図１４に示すように、分散復元装置２００は、列１と列５とをＸＯＲ処理したデータと、列１と列６とをＸＯＲ処理したデータと、列２と列７とをＸＯＲ処理したデータと、列２と列８とをＸＯＲ処理したデータと、列３と列９とをＸＯＲ処理したデータと、列３と列１０とをＸＯＲ処理したデータと、列４と列１１とをＸＯＲ処理したデータと、列４と列１２とをＸＯＲ処理したデータとを連接した分散データＳＤ３を生成する。
【０２６８】
次に、分散復元装置２００は、分散データＳＤ３の生成時における各ＸＯＲ処理に用いた列１〜列４のデータ又は列５〜列１２のデータのうちデータ数が少ない列の組み合わせを選択する。即ち、分散復元装置２００は、列１〜列４のデータの組み合わせを選択する。
【０２６９】
分散復元装置２００は、選択された列の組み合わせに対し、本発明者による特願２０１０−０７７６３０号の秘密分散法に従って分散処理を実行し、２個の分散データＳＤ１，ＳＤ２を生成する。特願２０１１−０７７６３０号の秘密分散法に従った分散処理によって、分散データＳＤ３の生成時における各ＸＯＲ処理に用いた列１〜列４又は列５〜列１２の各データのうち、分散復元装置２００によって選択された列の組み合わせ（例えば列１〜列４）がそれぞれ異なる組み合わせによってＸＯＲ処理されて、２個の分散データＳＤ１，ＳＤ２が生成される。
【０２７０】
具体的に、分散復元装置２００は、［分散（１）ａ］に列１だけを用い、［分散（１）ｂ］に列２と列３とのＸＯＲ処理した値を用い、［分散（１）ａ］，［分散（１）ｂ］を連接させて分散データＳＤ１を生成する。
【０２７１】
更に、分散復元装置２００は、生成された分散データＳＤ１に対し、分散データＳＤ１の下段に図示した偶数の列２を左方向に一列分シフトさせることによって、分散データＳＤ２を生成する。従って、分散復元装置２００は、分散データＳＤ２を生成する場合では、分散データＳＤ１の生成時に用いない列４のデータを、列３とのＸＯＲ処理に用いる。
【０２７２】
なお、分散復元装置２００は、分散データＳＤ２を分散データＳＤ１より先に生成しても良い。具体的には、分散復元装置２００は、［分散（２）ａ］に列１と列２とのＸＯＲ処理した値を用い、［分散（２）ｂ］に列３と列４とのＸＯＲ処理した値を用い、［分散（２）ａ］，［分散（２）ｂ］を連接させて分散データＳＤ２を生成する。詳細な説明は割愛するが、分散復元装置２００は、同様にして、分散データＳＤ２から分散データＳＤ１を生成する（図１３及び図１４参照）。
【０２７３】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２，ＳＤ３とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０２７４】
また、本実施の形態４における非対称分散の割合は、図１４に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／６であり、ＨＤＤ８０に記憶される分散データＳＤ２，ＳＤ３のデータサイズが元データＯＤのデータサイズの５／６（１／６＋２／３）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：５の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０２７５】
従って、実施の形態４に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０２７６】
以上により、実施の形態４の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３を安全に生成することができる。
【０２７７】
また、実施の形態４の分散復元装置２００は、分散データを生成する際、実施の形態１から実施の形態３において説明したような元データＯＤを２個以上の列のデータに均等に分割せずに、異なるデータサイズを有する列のデータに分割しても、非対称なデータサイズを有する分散データを生成することができる。
【０２７８】
（実施の形態４における元データの復元方法）
実施の形態４における元データＯＤの具体的な復元方法について、図１５及び図１６を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２，ＳＤ３を取得する。
【０２７９】
図１５及び図１６において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得する（１）。分散復元装置２００は、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ３の［分散（３）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列５を取得し（２）、分散データＳＤ３の［分散（３）ｂ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列６を取得する（２）。
【０２８０】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列３を取得し（３）、分散データＳＤ３の［分散（３）ｃ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列７を取得し（３）、分散データＳＤ３の［分散（３）ｄ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列８を取得する（３）。
【０２８１】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列４を取得し（４）、分散データＳＤ３の［分散（３）ｅ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列９を取得し（４）、分散データＳＤ３の［分散（３）ｆ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１０を取得する（４）。
【０２８２】
最後に、分散復元装置２００は、分散データＳＤ３の［分散（３）ｇ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１１を取得し（５）、分散データＳＤ３の［分散（３）ｈ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１２を取得する（５）。
【０２８３】
分散復元装置２００は、（１）〜（５）の各動作において取得された列１〜列１２の各分割ブロックＤＢ１〜ＤＢ１２を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０２８４】
以上により、実施の形態４の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３から元データＯＤを安全に復元することができる。
【０２８５】
（実施の形態５）
先ず、分散復元装置２００の実施の形態５について、図１７から図１９を参照して説明する。図１７は、実施の形態５における分散データの生成方法の一例を示す説明図である。図１８は、実施の形態５における分散データの内容を示す説明図である。図１９は、実施の形態５における動作手順を説明するフローチャートである。
【０２８６】
実施の形態５では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計４個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４を生成する方法、及び、４個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４を用いて元データＯＤを復元する方法を説明する。
【０２８７】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２，ＳＤ３，ＳＤ４をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、４個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０２８８】
実施の形態５では、図１７及び図１８に示すように、元データＯＤは、それぞれ連接された合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含んで構成されている。なお、実施の形態５では、説明を簡単にするために、元データＯＤは合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含む構成としているが、元データＯＤを構成する分割ブロックの数は１６に限定されない。
【０２８９】
（実施の形態５における分散データの構成）
実施の形態５における分散データの構成について、図１７及び図１８を参照して説明する。図１７及び図１８に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｃ］は列４の分割ブロックＤＢ４と列５の分割ブロックＤＢ５とがＸＯＲ処理された値である。
従って、分散データＳＤ１は、２個の列［分散（１）ａ］，［分散（１）ｃ］が連接された構成である。
【０２９０】
このように、分散データＳＤ１は、元データＯＤの４分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は２個であって、元データＯＤのブロック（列）数の１６個の１／８である。
【０２９１】
次に、図１７及び図１８に示す分散データＳＤ２において、［分散（２）ｂ］は列２の分割ブロックＤＢ２と列３の分割ブロックＤＢ３とがＸＯＲ処理された値であり、［分散（２）ｄ］は列６の分割ブロックＤＢ６と列７の分割ブロックＤＢ７とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、２個の列［分散（２）ｂ］，［分散（２）ｄ］が連接された構成である。
【０２９２】
このように、分散データＳＤ２は、元データＯＤの４分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は２個であって、元データＯＤのブロック（列）数の１６個の１／８である。
【０２９３】
図１７及び図１８に示す分散データＳＤ３は、図１及び図２に示す実施の形態１における分散データＳＤ２と同一であるため説明を省略する。
【０２９４】
また、図１７及び図１８に示す分散データＳＤ４は、図１及び図２に示す実施の形態１における分散データＳＤ３と同一であるため説明を省略する。
【０２９５】
（実施の形態５における分散データの生成方法）
実施の形態５における分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４の具体的な生成方法について、図１７及び図１８を参照して説明する。分散復元装置２００は、先ず、元データＯＤを２個のデータに均等に分割する。但し、分散復元装置２００は、元データＯＤを３個以上のデータに均等に分割しても良い（実施の形態２参照）。例えば、分散復元装置２００は、合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含む元データＯＤを、列１〜列８のデータと、列９〜列１６のデータとに均等に分割する。
【０２９６】
分散復元装置２００は、列１〜列８のデータのうちいずれかの列のデータと、列９〜列１６のデータのうちいずれかの列のデータとをＸＯＲ処理し、合計８個のＸＯＲ処理されたデータを連接させて分散データＳＤ４を生成する。
【０２９７】
例えば、図１７及び図１８に示すように、分散復元装置２００は、列１と列９とをＸＯＲ処理したデータと、列２と列１０とをＸＯＲ処理したデータと、列３と列１１とをＸＯＲ処理したデータと、列４と列１２とをＸＯＲ処理したデータと、列５と列１３とをＸＯＲ処理したデータと、列６と列１４とをＸＯＲ処理したデータと、列７と列１５とをＸＯＲ処理したデータと、列８と列１６とをＸＯＲ処理したデータとを連接した分散データＳＤ４を生成する。
【０２９８】
次に、分散復元装置２００は、分散データＳＤ４の生成時における各ＸＯＲ処理に用いた列１〜列８のデータ又は列９〜列１６のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置２００は、列の組み合わせとして列１〜列８のデータを選択するが、分散データＳＤ４の生成時における各ＸＯＲ処理の対象とされた２個の列のデータのうちどちらか一方のデータを選択しても良い。例えば、列１，列１０，列３，列４，列１３，列６，列７，列１６の各データが選択されても良い。
【０２９９】
分散復元装置２００は、選択された列の組み合わせに対し、本発明者による特願２０１０−０７７６３０号の秘密分散法に従って分散処理を実行し、実施の形態１における２個の分散データ（図２に示す分散データＳＤ１，ＳＤ２）を生成する。特願２０１１−０７７６３０号の秘密分散法に従った分散処理によって、分散データＳＤ４の生成時における各ＸＯＲ処理に用いた列１〜列８及び列９〜列１６の各データのうち、分散復元装置２００によって選択された列の組み合わせ（例えば列１〜列８）がそれぞれ異なる組み合わせによってＸＯＲ処理されて、２個の分散データ（図２に示す分散データＳＤ１，ＳＤ２）が生成される。
【０３００】
具体的には、分散復元装置２００は、例えば列１〜列８の組み合わせを選択した場合に、図２に示す［分散（１）ａ］に列１だけを用い、図２に示す［分散（１）ｂ］に列２と列３とのＸＯＲ処理した値を用い、図２に示す［分散（１）ｃ］に列４と列５とのＸＯＲ処理した値を用い、図２に示す［分散（１）ｄ］に列６と列７とのＸＯＲ処理した値を用い、図２に示す［分散（１）ａ］，［分散（１）ｂ］，［分散（１）ｃ］，［分散（１）ｄ］を連接させて分散データ（図２に示す分散データＳＤ１）を生成する。
【０３０１】
更に、分散復元装置２００は、生成された分散データ（図２に示す分散データＳＤ１）に対し、一部の列のデータを抽出して新たな分散データＳＤ１を生成し、残りの列のデータを分散データＳＤ２として生成する。
【０３０２】
具体的には、分散復元装置２００は、図２に示す［分散（１）ａ］，［分散（１）ｃ］を抽出して連接させた分散データＳＤ１（図１８参照）を生成し、残りの列のデータである図２に示す［分散（１）ｂ］，［分散（１）ｄ］を連接させて分散データＳＤ２（図１８参照）を生成する。なお、２個の分散データ（図２に示す分散データＳＤ１，ＳＤ２）のうち、図２に示す分散データＳＤ２は図１８に示す分散データＳＤ３と同一であるため、図１８に示す分散データＳＤ３の生成方法の説明は省略する。
【０３０３】
なお、分散復元装置２００は、本実施の形態５における分散データＳＤ１に対し、［分散（１）ａ］と［分散（１）ｃ］との間に乱数又はゼロ（０）を埋め合わせても良く、［分散（１）ｃ］に続けて乱数又はゼロ（０）を埋め合わせても良い。同様に、分散復元装置２００は、本実施の形態５における分散データＳＤ２に対し、［分散（２）ｂ］と［分散（２）ｄ］との間に乱数又はゼロ（０）を埋め合わせても良く、［分散（２）ｂ］の前に乱数又はゼロ（０）を埋め合わせても良い。
【０３０４】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２，ＳＤ３，ＳＤ４とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０３０５】
また、本実施の形態５における非対称分散の割合は、図１８に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／８であり、ＨＤＤ８０に記憶される分散データＳＤ２，ＳＤ３，ＳＤ４のデータサイズが元データＯＤのデータサイズの７／８（１／８＋１／４＋１／２）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：７の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０３０６】
従って、実施の形態５に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０３０７】
以上により、実施の形態５の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を安全に生成することができる。
【０３０８】
（実施の形態５における元データの復元方法）
実施の形態５における元データＯＤの具体的な復元方法について、図１９を参照して説明する。実施の形態５では分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れは実施の形態１と同一であるため、実施の形態５における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れの図面は省略している。
【０３０９】
分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２，ＳＤ３，ＳＤ４を取得する。
【０３１０】
図１９において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ３の［分散（３）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ４の［分散（４）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列９を取得する（２）。
【０３１１】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列３を取得し（３）、分散データＳＤ４の［分散（４）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列１０を取得する（３）。
【０３１２】
分散復元装置２００は、分散データＳＤ３の［分散（３）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列４を取得し（４）、分散データＳＤ４の［分散（４）ｃ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１１を取得する（４）。
【０３１３】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｃ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列５を取得し（５）、分散データＳＤ４の［分散（４）ｄ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１２を取得する（５）。
【０３１４】
分散復元装置２００は、分散データＳＤ３の［分散（３）ｃ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列６を取得し（６）、分散データＳＤ４の［分散（４）ｅ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列１３を取得する（６）。
【０３１５】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｄ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列７を取得し（７）、分散データＳＤ４の［分散（４）ｆ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列１４を取得する（７）。
【０３１６】
分散復元装置２００は、分散データＳＤ３の［分散（３）ｄ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列８を取得し（８）、分散データＳＤ４の［分散（４）ｇ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列１５を取得する（８）。
【０３１７】
最後に、分散復元装置２００は、分散データＳＤ４の［分散（４）ｈ］と既に取得した列８とをＸＯＲ処理して元データＯＤの列１６を取得する（９）。
【０３１８】
分散復元装置２００は、（１）〜（９）の各動作において取得された列１〜列１６の各分割ブロックＤＢ１〜ＤＢ１６を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０３１９】
以上により、実施の形態５の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４から元データＯＤを安全に復元することができる。
【０３２０】
（実施の形態６）
先ず、分散復元装置２００の実施の形態６について、図２０から図２２を参照して説明する。図２０は、実施の形態６における分散データの生成方法の一例を示す説明図である。図２１は、実施の形態６における分散データの内容を示す説明図である。図２２は、実施の形態６における動作手順を説明するフローチャートである。
【０３２１】
実施の形態６では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計４個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４を生成する方法、及び、４個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４を用いて元データＯＤを復元する方法を説明する。
【０３２２】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２，ＳＤ３，ＳＤ４をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、４個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０３２３】
実施の形態６では、図２０及び図２１に示すように、元データＯＤは、それぞれ連接された合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含んで構成されている。なお、実施の形態６では、説明を簡単にするために、元データＯＤは合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む構成としているが、元データＯＤを構成する分割ブロックの数は１２に限定されない。
【０３２４】
（実施の形態６における分散データの構成）
実施の形態６における分散データの構成について、図２０及び図２１を参照して説明する。図２０及び図２１に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１である。
従って、分散データＳＤ１は、１個の列［分散（１）ａ］のデータにより構成される。
【０３２５】
このように、分散データＳＤ１は、元データＯＤの６分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は１個であって、元データＯＤのブロック（列）数の１２個の１／１２である。
【０３２６】
次に、図１７及び図１８に示す分散データＳＤ２において、［分散（２）ｂ］は列２の分割ブロックＤＢ２と列３の分割ブロックＤＢ３とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、１個の列［分散（２）ｂ］のデータにより構成される。
【０３２７】
このように、分散データＳＤ２は、元データＯＤの６分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は１個であって、元データＯＤのブロック（列）数の１２個の１／１２である。
【０３２８】
図１７及び図１８に示す分散データＳＤ３は、図１３及び図１４に示す実施の形態４における分散データＳＤ２と同一であるため説明を省略する。
【０３２９】
また、図１７及び図１８に示す分散データＳＤ４は、図１３及び図１４に示す実施の形態４における分散データＳＤ３と同一であるため説明を省略する。
【０３３０】
（実施の形態６における分散データの生成方法）
実施の形態６における分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４の具体的な生成方法について、図２０及び図２１を参照して説明する。分散復元装置２００は、先ず、元データＯＤを異なるデータサイズを有する２個のデータに分割する。例えば、分散復元装置２００は、合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む元データＯＤを、列１〜列４のデータと、列５〜列１２のデータとに分割する。
【０３３１】
分散復元装置２００は、列１〜列４のデータのうちいずれかの列のデータと、列５〜列１２のデータのうちいずれかの列のデータとをＸＯＲ処理し、合計８個のＸＯＲ処理されたデータを連接させて分散データＳＤ４を生成する。実施の形態６では、分散復元装置２００は、分散データＳＤ４を生成する際、列１〜列４の各データを２回用いて、列５〜列１２のデータのうちいずれかの列のデータとＸＯＲ処理を実行する。
【０３３２】
例えば、図２０及び図２１に示すように、分散復元装置２００は、列１と列５とをＸＯＲ処理したデータと、列１と列６とをＸＯＲ処理したデータと、列２と列７とをＸＯＲ処理したデータと、列２と列８とをＸＯＲ処理したデータと、列３と列９とをＸＯＲ処理したデータと、列３と列１０とをＸＯＲ処理したデータと、列４と列１１とをＸＯＲ処理したデータと、列４と列１２とをＸＯＲ処理したデータとを連接した分散データＳＤ４を生成する。
【０３３３】
次に、分散復元装置２００は、分散データＳＤ４の生成時における各ＸＯＲ処理に用いた列１〜列４のデータ又は列５〜列１２のデータのうちデータ数が少ない列の組み合わせを選択する。即ち、分散復元装置２００は、列１〜列４のデータの組み合わせを選択する。
【０３３４】
分散復元装置２００は、選択された列の組み合わせに対し、本発明者による特願２０１０−０７７６３０号の秘密分散法に従って分散処理を実行し、実施の形態４における２個の分散データ（図１４に示す分散データＳＤ１，ＳＤ２）を生成する。特願２０１１−０７７６３０号の秘密分散法に従った分散処理によって、分散データＳＤ４の生成時における各ＸＯＲ処理に用いた列１〜列４及び列５〜列１２の各データのうち、分散復元装置２００によって選択された列の組み合わせ（例えば列１〜列４）がそれぞれ異なる組み合わせによってＸＯＲ処理されて、２個の分散データ（図１４に示す分散データＳＤ１，ＳＤ２）が生成される。
【０３３５】
具体的には、分散復元装置２００は、例えば列１〜列４の組み合わせを選択した場合に、図１４に示す［分散（１）ａ］に列１だけを用い、図１４に示す［分散（１）ｂ］に列２と列３とのＸＯＲ処理した値を用い、図１４に示す［分散（１）ａ］，［分散（１）ｂ］を連接させて分散データ（図１４に示す分散データＳＤ１）を生成する。
【０３３６】
更に、分散復元装置２００は、生成された分散データ（図１４に示す分散データＳＤ１）に対し、一部の列のデータを抽出して新たな分散データＳＤ１（図２１参照）を生成し、残りの列のデータを分散データＳＤ２（図２１参照）として生成する。
【０３３７】
具体的には、分散復元装置２００は、図１４に示す［分散（１）ａ］を抽出した分散データＳＤ１（図２１参照）を生成し、残りの列のデータである図１４に示す［分散（１）ｂ］により構成される分散データＳＤ２（図２１参照）を生成する。なお、２個の分散データ（図１４に示す分散データＳＤ１，ＳＤ２）のうち、図１４に示す分散データＳＤ２は図２１に示す分散データＳＤ３と同一であるため、図２１に示す分散データＳＤ３の生成方法の説明は省略する。
【０３３８】
なお、分散復元装置２００は、本実施の形態６における分散データＳＤ１に対し、［分散（１）ａ］に続けて乱数又はゼロ（０）を埋め合わせても良い。同様に、分散復元装置２００は、本実施の形態６における分散データＳＤ２に対し、［分散（２）ｂ］の前に乱数又はゼロ（０）を埋め合わせても良い。
【０３３９】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２，ＳＤ３，ＳＤ４とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０３４０】
また、本実施の形態６における非対称分散の割合は、図２１に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／１２であり、ＨＤＤ８０に記憶される分散データＳＤ２，ＳＤ３，ＳＤ４のデータサイズが元データＯＤのデータサイズの１１／１２（１／１２＋１／６＋２／３）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：１１の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０３４１】
従って、実施の形態６に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０３４２】
以上により、実施の形態６の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を安全に生成することができる。
【０３４３】
（実施の形態６における元データの復元方法）
実施の形態６における元データＯＤの具体的な復元方法について、図２２を参照して説明する。実施の形態６では分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れは実施の形態４と同一であるため、実施の形態６における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れの図面は省略している。
【０３４４】
分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２，ＳＤ３，ＳＤ４を取得する。
【０３４５】
図２２において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得する（１）。
【０３４６】
分散復元装置２００は、分散データＳＤ３の［分散（３）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ４の［分散（４）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列５を取得し（２）、分散データＳＤ４の［分散（４）ｂ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列６を取得する（２）。
【０３４７】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列３を取得し（３）、分散データＳＤ４の［分散（４）ｃ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列７を取得し（３）、分散データＳＤ４の［分散（４）ｄ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列８を取得する（３）。
【０３４８】
分散復元装置２００は、分散データＳＤ３の［分散（３）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列４を取得し（４）、分散データＳＤ４の［分散（４）ｅ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列９を取得し（４）、分散データＳＤ４の［分散（４）ｆ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１０を取得する（４）。
【０３４９】
最後に、分散復元装置２００は、分散データＳＤ４の［分散（４）ｇ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１１を取得し（５）、分散データＳＤ４の［分散（４）ｈ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１２を取得する（５）。
【０３５０】
分散復元装置２００は、（１）〜（５）の各動作において取得された列１〜列１２の各分割ブロックＤＢ１〜ＤＢ１２を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０３５１】
以上により、実施の形態６の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４から元データＯＤを安全に復元することができる。
【０３５２】
（実施の形態７）
先ず、分散復元装置２００の実施の形態７について、図２３から図２６を参照して説明する。図２３は、実施の形態７における分散データの生成方法の一例を示す説明図である。図２４は、実施の形態７における分散データの内容を示す説明図である。図２５は、実施の形態７における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図２６は、実施の形態７における動作手順を説明するフローチャートである。
【０３５３】
実施の形態７では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計４個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４を生成する方法、及び、４個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３、分散データＳＤ４を用いて元データＯＤを復元する方法を説明する。
【０３５４】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２，ＳＤ３，ＳＤ４をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、４個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０３５５】
実施の形態５では、図２３及び図２４に示すように、元データＯＤは、それぞれ連接された合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含んで構成されている。なお、実施の形態７では、説明を簡単にするために、元データＯＤは合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含む構成としているが、元データＯＤを構成する分割ブロックの数は１６に限定されない。
【０３５６】
（実施の形態７における分散データの構成）
実施の形態７における分散データの構成について、図２３及び図２４を参照して説明する。図２３及び図２４に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｂ］は列３の分割ブロックＤＢ３と列５の分割ブロックＤＢ５とがＸＯＲ処理された値である。
従って、分散データＳＤ１は、２個の列［分散（１）ａ］，［分散（１）ｂ］が連接された構成である。
【０３５７】
このように、分散データＳＤ１は、元データＯＤの４分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は２個であって、元データＯＤのブロック（列）数の１６個の１／８である。
【０３５８】
次に、図２３及び図２４に示す分散データＳＤ２において、［分散（２）ａ］は列１の分割ブロックＤＢ１と列３の分割ブロックＤＢ３とがＸＯＲ処理された値であり、［分散（２）ｂ］は列５の分割ブロックＤＢ５と列７の分割ブロックＤＢ７とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、２個の列［分散（２）ａ］，［分散（２）ｂ］が連接された構成である。
【０３５９】
このように、分散データＳＤ２は、元データＯＤの４分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は２個であって、元データＯＤのブロック（列）数の１６個の１／８である。
【０３６０】
図２３及び図２４に示す分散データＳＤ３は、図１及び図２に示す実施の形態１における分散データＳＤ２と同一であるため説明を省略する。
【０３６１】
また、図２３及び図２４に示す分散データＳＤ４は、図１及び図２に示す実施の形態１における分散データＳＤ３と同一であるため説明を省略する。
【０３６２】
（実施の形態７における分散データの生成方法）
実施の形態７における分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４の具体的な生成方法について、図２３及び図２４を参照して説明する。分散復元装置２００は、先ず、元データＯＤを２個のデータに均等に分割する。但し、分散復元装置２００は、元データＯＤを３個以上のデータに均等に分割しても良い（実施の形態２参照）。例えば、分散復元装置２００は、合計１６個の分割ブロックＤＢ１〜ＤＢ１６を含む元データＯＤを、列１〜列８のデータと、列９〜列１６のデータとに均等に分割する。
【０３６３】
分散復元装置２００は、列１〜列８のデータのうちいずれかの列のデータと、列９〜列１６のデータのうちいずれかの列のデータとをＸＯＲ処理し、合計８個のＸＯＲ処理されたデータを連接させて分散データＳＤ４を生成する。
【０３６４】
例えば、図２３及び図２４に示すように、分散復元装置２００は、列１と列９とをＸＯＲ処理したデータと、列２と列１０とをＸＯＲ処理したデータと、列３と列１１とをＸＯＲ処理したデータと、列４と列１２とをＸＯＲ処理したデータと、列５と列１３とをＸＯＲ処理したデータと、列６と列１４とをＸＯＲ処理したデータと、列７と列１５とをＸＯＲ処理したデータと、列８と列１６とをＸＯＲ処理したデータとを連接した分散データＳＤ４を生成する。
【０３６５】
次に、分散復元装置２００は、分散データＳＤ４の生成時における各ＸＯＲ処理に用いた列１〜列８のデータ又は列９〜列１６のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置２００は、列の組み合わせとして列１〜列８のデータを選択するが、分散データＳＤ４の生成時における各ＸＯＲ処理の対象とされた２個の列のデータのうちどちらか一方のデータを選択しても良い。例えば、列１，列１０，列３，列４，列１３，列６，列７，列１６の各データが選択されても良い。
【０３６６】
分散復元装置２００は、選択された列の組み合わせに対し、本発明者による特願２０１０−０７７６３０号の秘密分散法に従って分散処理を実行し、２個の分散データ（図２に示す分散データＳＤ１，ＳＤ２）を生成する。特願２０１１−０７７６３０号の秘密分散法に従った分散処理によって、分散データＳＤ４の生成時における各ＸＯＲ処理に用いた列１〜列８及び列９〜列１６の各データのうち、分散復元装置２００によって選択された列の組み合わせ（例えば列１〜列８）がそれぞれ異なる組み合わせによってＸＯＲ処理されて、２個の分散データ（図２に示す分散データＳＤ１，ＳＤ２）が生成される。
【０３６７】
具体的には、分散復元装置２００は、例えば列１〜列８の組み合わせを選択した場合に、図２に示す［分散（１）ａ］に列１だけを用い、図２に示す［分散（１）ｂ］に列２と列３とのＸＯＲ処理した値を用い、図２に示す［分散（１）ｃ］に列４と列５とのＸＯＲ処理した値を用い、図２に示す［分散（１）ｄ］に列６と列７とのＸＯＲ処理した値を用い、図２に示す［分散（１）ａ］，［分散（１）ｂ］，［分散（１）ｃ］，［分散（１）ｄ］を連接させて分散データ（図２に示す分散データＳＤ１）を生成する。
【０３６８】
更に、分散復元装置２００は、生成された分散データ（図２に示す分散データＳＤ１）に対し、一部の列のデータを抽出し、抽出された一部の列のデータを他の列のデータに変更して新たな分散データＳＤ１（図２４参照）を生成し、残りの列のデータの一部の列のデータを他の列のデータに変更して新たな分散データＳＤ２（図２４参照）として生成する。
【０３６９】
具体的には、分散復元装置２００は、図２に示す［分散（１）ａ］，［分散（１）ｃ］を抽出して［分散（１）ａ］の列４を列３に変更して連接させた分散データＳＤ１（図２４参照）を生成し、残りの列のデータ［分散（１）ｂ］の列２を列１に変更し，［分散（１）ｄ］の列６を列５に変更して連接させた分散データＳＤ２（図２４参照）を生成する。なお、２個の分散データ（図２に示す分散データＳＤ１，ＳＤ２）のうち、図２に示す分散データＳＤ２は図２４に示す分散データＳＤ３と同一であるため、図２４に示す分散データＳＤ３の生成方法の説明は省略する。
【０３７０】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２，ＳＤ３，ＳＤ４とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０３７１】
また、本実施の形態７における非対称分散の割合は、図２４に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／８であり、ＨＤＤ８０に記憶される分散データＳＤ２，ＳＤ３，ＳＤ４のデータサイズが元データＯＤのデータサイズの７／８（１／８＋１／４＋１／２）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：７の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０３７２】
従って、実施の形態７に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０３７３】
以上により、実施の形態７の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を安全に生成することができる。
【０３７４】
（実施の形態７における元データの復元方法）
実施の形態７における元データＯＤの具体的な復元方法について、図２５及び図２６を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２，ＳＤ３，ＳＤ４を取得する。
【０３７５】
図２６において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ３の［分散（３）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列３を取得し（２）、分散データＳＤ４の［分散（４）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列９を取得する（２）。
【０３７６】
分散復元装置２００は、分散データＳＤ４の［分散（４）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列１０を取得する（３）。
【０３７７】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列５を取得し（４）、分散データＳＤ３の［分散（３）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列４を取得し（４）、分散データＳＤ４の［分散（４）ｃ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１１を取得する（４）。
【０３７８】
分散復元装置２００は、分散データＳＤ４の［分散（４）ｄ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１２を取得する（５）。
【０３７９】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｂ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列７を取得し（６）、分散データＳＤ３の［分散（３）ｃ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列６を取得し（６）、分散データＳＤ４の［分散（４）ｅ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列１３を取得する（６）。
【０３８０】
分散復元装置２００は、分散データＳＤ４の［分散（４）ｆ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列１４を取得する（７）。
【０３８１】
分散復元装置２００は、分散データＳＤ３の［分散（３）ｄ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列８を取得し（８）、分散データＳＤ４の［分散（４）ｇ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列１５を取得する（８）。
【０３８２】
最後に、分散復元装置２００は、分散データＳＤ４の［分散（４）ｈ］と既に取得した列８とをＸＯＲ処理して元データＯＤの列１６を取得する（９）。
【０３８３】
分散復元装置２００は、（１）〜（９）の各動作において取得された列１〜列１６の各分割ブロックＤＢ１〜ＤＢ１６を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０３８４】
以上により、実施の形態７の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４から元データＯＤを安全に復元することができる。
【０３８５】
（実施の形態８）
先ず、分散復元装置２００の実施の形態８について、図２７から図３０を参照して説明する。図２７は、実施の形態８における分散データの生成方法の一例を示す説明図である。図２８は、実施の形態８における分散データの内容を示す説明図である。図２９は、実施の形態８における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図３０は、実施の形態８における動作手順を説明するフローチャートである。
【０３８６】
実施の形態８では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計３個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３を生成する方法、及び、３個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３を用いて元データＯＤを復元する方法を説明する。
【０３８７】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２，ＳＤ３をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、３個の分散データＳＤ１，ＳＤ２，ＳＤ３を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０３８８】
実施の形態８では、図２７及び図２８に示すように、元データＯＤは、それぞれ連接された合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含んで構成されている。なお、実施の形態８では、説明を簡単にするために、元データＯＤは合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む構成としているが、元データＯＤを構成する分割ブロックの数は１２に限定されない。
【０３８９】
（実施の形態８における分散データの構成）
実施の形態８における分散データの構成について、図２７及び図２８を参照して説明する。図２７及び図２８に示す分散データＳＤ１は、図１及び図２に示す分散データＳＤ１と同一である。図２７及び図２８に示す分散データＳＤ２は、図１及び図２に示す分散データＳＤ２と同一である。
【０３９０】
図２７及び図２８に示す分散データＳＤ３において、［分散（３）ａ］は列１の分割ブロックＤＢ１と列９の分割ブロックＤＢ９とがＸＯＲ処理された値であり、［分散（３）ｂ］は列３の分割ブロックＤＢ３と列１０の分割ブロックＤＢ１０とがＸＯＲ処理された値であり、［分散（３）ｃ］は列５の分割ブロックＤＢ５と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（３）ｄ］は列７の分割ブロックＤＢ７と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値である。
従って、分散データＳＤ３は、４個の列［分散（３）ａ］，［分散（３）ｂ］，［分散（３）ｃ］，［分散（３）ｄ］が連接された構成である。
【０３９１】
このように、分散データＳＤ３は、元データＯＤのデータサイズの３分の２に対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１，ＳＤ２と同様に、分散データＳＤ３のブロック（列）数は４個であって、元データＯＤのブロック（列）数の１２個の１／３である。
【０３９２】
（実施の形態８における分散データの生成方法）
実施の形態８における分散データＳＤ１，ＳＤ２，ＳＤ３の具体的な生成方法について、図２７及び図２８を参照して説明する。分散復元装置２００は、先ず、元データＯＤを異なるデータサイズを有する２個のデータに分割する。例えば、分散復元装置２００は、合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む元データＯＤを、列１〜列８のデータと、列９〜列１２のデータとに分割する。
【０３９３】
分散復元装置２００は、列１〜列８のデータのうちいずれかの列のデータ又は列９〜列１２のデータに対し、本発明者による特願２０１１−０７７６３０号の秘密分散法に従って分散処理を実行し、２個の分散データＳＤ１，ＳＤ２を生成する。ここでは、列１〜列８のデータに対して本発明者による特願２０１１−０７７６３０号の秘密分散法に従って分散処理が実行されて、２個の分散データＳＤ１，ＳＤ２が生成されている。
【０３９４】
次に、分散復元装置２００は、分散データＳＤ１又は分散データＳＤ２の生成時における各ＸＯＲ処理の対象として用いた列１〜列８のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置２００は、列の組み合わせとして列１、列３、列５、列７の各データを選択するが、他には例えば列１、列４、列６、列８を選択しても良いし、他には例えば列２、列４、列６、列８の各データを選択しても良い。
【０３９５】
分散復元装置２００は、分散データＳＤ１又は分散データＳＤ２の生成時における各ＸＯＲ処理の対象として選択された列の組み合わせと、分散データＳＤ１，ＳＤ２の生成時に用いられなかった列の組み合わせ（列９〜列１２）とをそれぞれＸＯＲ処理させることによって、分散データＳＤ３を生成する。
【０３９６】
具体的には、分散復元装置２００は、例えば分散データＳＤ１又は分散データＳＤ２の生成時における各ＸＯＲ処理の対象として列１、列３、列５、列７を選択した場合に、［分散（３）ａ］に列１と列９とのＸＯＲ処理した値を用い、［分散（３）ｂ］に列３と列１０とのＸＯＲ処理した値を用い、［分散（３）ｃ］に列５と列１１とのＸＯＲ処理した値を用い、［分散（１）ｄ］に列７と列１２とのＸＯＲ処理した値を用い、［分散（３）ａ］，［分散（３）ｂ］，［分散（３）ｃ］，［分散（３）ｄ］を連接させて分散データＳＤ３を生成する。
【０３９７】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２，ＳＤ３とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０３９８】
また、本実施の形態８における非対称分散の割合は、図２８に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／３であり、ＨＤＤ８０に記憶される分散データＳＤ２，ＳＤ３のデータサイズが元データＯＤのデータサイズの２／３（１／３＋１／３）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：２の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０３９９】
従って、実施の形態８に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０４００】
以上により、実施の形態８の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３を安全に生成することができる。
【０４０１】
（実施の形態８における元データの復元方法）
実施の形態８における元データＯＤの具体的な復元方法について、図２９及び図３０を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２，ＳＤ３を取得する。
【０４０２】
図２９及び図３０において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ３の［分散（３）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列９を取得する（２）。
【０４０３】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列３を取得する（３）。
【０４０４】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列４を取得し（４）、分散データＳＤ３の［分散（３）ｂ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１０を取得する（４）。
【０４０５】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｃ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列５を取得する（５）。
【０４０６】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｃ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列６を取得し（６）、分散データＳＤ３の［分散（３）ｃ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列１１を取得する（６）。
【０４０７】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｄ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列７を取得する（７）。
【０４０８】
最後に、分散復元装置２００は、分散データＳＤ２の［分散（２）ｄ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列８を取得し（８）、分散データＳＤ３の［分散（３）ｄ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列１２を取得する（８）。
【０４０９】
分散復元装置２００は、（１）〜（８）の各動作において取得された列１〜列１２の各分割ブロックＤＢ１〜ＤＢ１２を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０４１０】
以上により、実施の形態８の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３から元データＯＤを安全に復元することができる。
【０４１１】
（実施の形態９）
先ず、分散復元装置２００の実施の形態９について、図３１から図３４を参照して説明する。図３１は、実施の形態９における分散データの生成方法の一例を示す説明図である。図３２は、実施の形態９における分散データの内容を示す説明図である。図３３は、実施の形態９における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図３４は、実施の形態９における動作手順を説明するフローチャートである。
【０４１２】
実施の形態９では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計２個の分散データＳＤ１、分散データＳＤ２を生成する方法、及び、２個の分散データＳＤ１、分散データＳＤ２を用いて元データＯＤを復元する方法を説明する。
【０４１３】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、データサイズの異なる２個の分散データＳＤ１，ＳＤ２を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０４１４】
実施の形態９では、図３１及び図３２に示すように、元データＯＤは、それぞれ連接された合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含んで構成されている。なお、実施の形態９では、説明を簡単にするために、元データＯＤは合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む構成としているが、元データＯＤを構成する分割ブロックの数は１２に限定されない。
【０４１５】
（実施の形態９における分散データの構成）
実施の形態９における分散データの構成について、図３１及び図３２を参照して説明する。図３１及び図３２に示す分散データＳＤ１は、図１及び図２に示す分散データＳＤ１と同一である。
【０４１６】
図２７及び図２８に示す分散データＳＤ２において、［分散（２）ａ］は列１の分割ブロックＤＢ１と列２の分割ブロックＤＢ２とがＸＯＲ処理された値であり、［分散（２）ｂ］は列１の分割ブロックＤＢ１と列９の分割ブロックＤＢ９とがＸＯＲ処理された値であり、［分散（２）ｃ］は列２の分割ブロックＤＢ２と列４の分割ブロックＤＢ４とがＸＯＲ処理された値であり、［分散（２）ｄ］は列２の分割ブロックＤＢ２と列１０の分割ブロックＤＢ１０とがＸＯＲ処理された値であり、［分散（３）ｅ］は列３の分割ブロックＤＢ３と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（３）ｆ］は列３の分割ブロックＤＢ３と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（２）ｇ］は列４の分割ブロックＤＢ４と列８の分割ブロックＤＢ８とがＸＯＲ処理された値であり、［分散（２）ｈ］は列４の分割ブロックＤＢ４と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、８個の列［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］，［分散（２）ｅ］，［分散（２）ｆ］，［分散（２）ｇ］，［分散（２）ｈ］が連接された構成である。
【０４１７】
このように、分散データＳＤ２は、列１〜列４の各データが２回用いられ、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は８個であって、元データＯＤのブロック（列）数の１２個の２／３である。
【０４１８】
（実施の形態９における分散データの生成方法）
実施の形態９における分散データＳＤ１，ＳＤ２，ＳＤ３の具体的な生成方法について、図３１及び図３２を参照して説明する。分散復元装置２００は、先ず、元データＯＤを異なるデータサイズを有する２個のデータに分割する。例えば、分散復元装置２００は、合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む元データＯＤを、列１〜列８のデータと、列９〜列１２のデータとに分割する。
【０４１９】
分散復元装置２００は、列１〜列８のデータのうちいずれかの列のデータ又は列９〜列１２のデータのうちいずれかの列のデータに対し、本発明者による特願２０１１−０７７６３０号の秘密分散法に従って分散処理を実行し、２個の分散データ（図２８に示す分散データＳＤ１，ＳＤ２）を生成する。ここでは、列１〜列８のデータに対して本発明者による特願２０１１−０７７６３０号の秘密分散法に従って分散処理が実行されて、２個の分散データ（図２８に示す分散データＳＤ１，ＳＤ２）が生成されている。なお、実施の形態９における分散データＳＤ１は実施の形態８における分散データＳＤ１（図２８参照）と同一であるため、実施の形態９における分散データＳＤ１の生成方法の説明は省略する。
【０４２０】
次に、分散復元装置２００は、図２８に示す分散データＳＤ１又は分散データＳＤ２の生成時における各ＸＯＲ処理の対象として用いた列１〜列８のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置２００は、列の組み合わせとして列１、列３、列５、列７の各データを選択するが、他には例えば列１、列４、列６、列８を選択しても良いし、他には例えば列２、列４、列６、列８の各データを選択しても良い。
【０４２１】
分散復元装置２００は、図２８に示す分散データＳＤ１又は分散データＳＤ２の生成時における各ＸＯＲ処理の対象として選択された列の組み合わせと、図２８に示す分散データＳＤ１，ＳＤ２の生成時に用いられなかった列の組み合わせ（列９〜列１２）とをそれぞれＸＯＲ処理させることによって、図２８に示す分散データＳＤ３を生成する。
【０４２２】
具体的には、分散復元装置２００は、例えば図２８に示す分散データＳＤ１又は分散データＳＤ２の生成時における各ＸＯＲ処理の対象として列１、列３、列５、列７を選択した場合に、［分散（３）ａ］に列１と列９とのＸＯＲ処理した値を用い、［分散（３）ｂ］に列３と列１０とのＸＯＲ処理した値を用い、［分散（３）ｃ］に列５と列１１とのＸＯＲ処理した値を用い、［分散（１）ｄ］に列７と列１２とのＸＯＲ処理した値を用い、［分散（３）ａ］，［分散（３）ｂ］，［分散（３）ｃ］，［分散（３）ｄ］を連接させて図２８に示す分散データＳＤ３を生成する。
【０４２３】
更に、分散復元装置２００は、生成された図２８に示す分散データＳＤ２と分散データＳＤ３とを連接し、連接された列のデータのうち一部の列のデータを他の列のデータに変更して新たな分散データＳＤ２（図３２参照）を生成する。
【０４２４】
具体的には、分散復元装置２００は、図２８に示す分散データＳＤ２の［分散（２）ｂ］の列３を列２に変更し、同図に示す分散データＳＤ２の［分散（２）ｃ］の列５を列３に変更し、同図に示す分散データＳＤ２の［分散（２）ｄ］の列７を列４に変更し、同図に示す分散データＳＤ３の［分散（３）ｂ］の列３を列２に変更し、同図に示す分散データＳＤ３の［分散（３）ｃ］の列５を列３に変更し、同図に示す分散データＳＤ３の［分散（３）ｄ］の列７を列４に変更する。これにより、分散復元装置２００は、図３２に示す分散データＳＤ２を、実施の形態９における分散データＳＤ２として生成する。
【０４２５】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０４２６】
また、本実施の形態９における非対称分散の割合は、図３２に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／３であり、ＨＤＤ８０に記憶される分散データＳＤ２のデータサイズが元データＯＤのデータサイズの２／３である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：２の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０４２７】
従って、実施の形態９に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０４２８】
以上により、実施の形態９の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２を生成するため、分散データＳＤ１，ＳＤ２のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２を安全に生成することができる。
【０４２９】
（実施の形態９における元データの復元方法）
実施の形態９における元データＯＤの具体的な復元方法について、図３３及び図３４を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２を取得する。
【０４３０】
図３３及び図３４において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列２を取得し（２）、分散データＳＤ２の［分散（２）ｂ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列９を取得する（２）。
【０４３１】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列３を取得し（３）、分散データＳＤ２の［分散（２）ｃ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列４を取得し（３）、分散データＳＤ２の［分散（２）ｄ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列１０を取得する（３）。
【０４３２】
分散復元装置２００は、分散データＳＤ２の［分散（２）ｅ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列６を取得し（４）、分散データＳＤ２の［分散（２）ｆ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１１を取得する（４）。
【０４３３】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｃ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列５を取得し（５）、分散データＳＤ２の［分散（２）ｇ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列８を取得し（５）、分散データＳＤ２の［分散（２）ｈ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１２を取得する（５）。
【０４３４】
最後に、分散復元装置２００は、分散データＳＤ１の［分散（１）ｄ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列７を取得する（８）。
【０４３５】
分散復元装置２００は、（１）〜（６）の各動作において取得された列１〜列１２の各分割ブロックＤＢ１〜ＤＢ１２を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０４３６】
以上により、実施の形態９の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２から元データＯＤを安全に復元することができる。
【０４３７】
（実施の形態１０）
先ず、分散復元装置２００の実施の形態１０について、図３５から図３８を参照して説明する。図３５は、実施の形態１０における分散データの生成方法の一例を示す説明図である。図３６は、実施の形態１０における分散データの内容を示す説明図である。図３７は、実施の形態１０における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図３８は、実施の形態１０における動作手順を説明するフローチャートである。
【０４３８】
実施の形態１０では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計２個の分散データＳＤ１、分散データＳＤ２を生成する方法、及び、２個の分散データＳＤ１、分散データＳＤ２を用いて元データＯＤを復元する方法を説明する。
【０４３９】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、データサイズの異なる２個の分散データＳＤ１，ＳＤ２を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０４４０】
実施の形態１０では、図３５及び図３６に示すように、元データＯＤは、それぞれ連接された合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含んで構成されている。なお、実施の形態１０では、説明を簡単にするために、元データＯＤは合計１２個の分割ブロックＤＢ１〜ＤＢ１２を含む構成としているが、元データＯＤを構成する分割ブロックの数は１２に限定されない。
【０４４１】
（実施の形態１０における分散データの構成）
実施の形態１０おける分散データの構成について、図３５及び図３６を参照して説明する。図３５及び図３６に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｂ］は列２の分割ブロックＤＢ２と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（１）ｃ］は列３の分割ブロックＤＢ３と列８の分割ブロックＤＢ８とがＸＯＲ処理された値であり、［分散（１）ｄ］は列４の分割ブロックＤＢ４と列１０の分割ブロックＤＢ１０とがＸＯＲ処理された値である。
従って、分散データＳＤ１は、４個の列［分散（１）ａ］，［分散（１）ｂ］，［分散（１）ｃ］，［分散（１）ｄ］が連接された構成である。
【０４４２】
このように、分散データＳＤ１は、元データＯＤのデータサイズの３分の２に対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は４個であって、元データＯＤのブロック（列）数の１２個の１／３である。
【０４４３】
図３５及び図３６に示す分散データＳＤ２において、［分散（２）ａ］は列１の分割ブロックＤＢ１と列５の分割ブロックＤＢ５とがＸＯＲ処理された値であり、［分散（２）ｂ］は列１の分割ブロックＤＢ１と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（２）ｃ］は列２の分割ブロックＤＢ２と列７の分割ブロックＤＢ７とがＸＯＲ処理された値であり、［分散（２）ｄ］は列２の分割ブロックＤＢ２と列８の分割ブロックＤＢ８とがＸＯＲ処理された値であり、［分散（３）ｅ］は列３の分割ブロックＤＢ３と列９の分割ブロックＤＢ９とがＸＯＲ処理された値であり、［分散（３）ｆ］は列３の分割ブロックＤＢ３と列１０の分割ブロックＤＢ１０とがＸＯＲ処理された値であり、［分散（２）ｇ］は列４の分割ブロックＤＢ４と列１１の分割ブロックＤＢ１１とがＸＯＲ処理された値であり、［分散（２）ｈ］は列４の分割ブロックＤＢ４と列１２の分割ブロックＤＢ１２とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、８個の列［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］，［分散（２）ｅ］，［分散（２）ｆ］，［分散（２）ｇ］，［分散（２）ｈ］が連接された構成である。
【０４４４】
このように、分散データＳＤ２は、列１〜列４の各データが２回用いられ、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は８個であって、元データＯＤのブロック（列）数の１２個の２／３である。
【０４４５】
（実施の形態１０における分散データの生成方法）
実施の形態１０における分散データＳＤ１，ＳＤ２の具体的な生成方法について、図３５及び図３６を参照して説明する。分散復元装置２００は、先ず、実施の形態９において説明した方法に従って、２個の分散データＳＤ１，ＳＤ２（図３２参照）を生成する。ここでは、実施の形態９において説明した方法の説明は省略する。
【０４４６】
次に、分散復元装置２００は、生成された図３２に示す分散データＳＤ１，ＳＤ２に対し、各分散データＳＤ１，ＳＤ２の列のデータのうち一部の列のデータを他の列のデータに変更して新たな分散データＳＤ１，ＳＤ２（図３６参照）を生成する。
【０４４７】
具体的には、分散復元装置２００は、図３２に示す分散データＳＤ１の［分散（１）ｂ］の列３を列６に変更し、同図に示す分散データＳＤ１の［分散（１）ｃ］の列４を列３に変更し、同図に示す分散データＳＤ１の［分散（１）ｃ］の列５を列８に変更し、同図に示す分散データＳＤ１の［分散（１）ｄ］の列６を列４に変更し、同図に示す分散データＳＤ１の［分散（１）ｄ］の列７を列１０に変更する。これにより、分散復元装置２００は、図３６に示す分散データＳＤ１を、実施の形態１０における分散データＳＤ１として生成する。
【０４４８】
更に、分散復元装置２００は、図３２に示す分散データＳＤ２の［分散（２）ａ］の列２を列５に変更し、同図に示す分散データＳＤ１の［分散（２）ｂ］の列９を列６に変更し、同図に示す分散データＳＤ２の［分散（２）ｃ］の列４を列７に変更し、同図に示す分散データＳＤ２の［分散（２）ｄ］の列１０を列８に変更し、同図に示す分散データＳＤ２の［分散（２）ｅ］の列６を列９に変更し、同図に示す分散データＳＤ２の［分散（２）ｆ］の列１１を列１０に変更し、同図に示す分散データＳＤ２の［分散（２）ｇ］の列８を列１１に変更する。これにより、分散復元装置２００は、図３６に示す分散データＳＤ２を、実施の形態１０における分散データＳＤ２として生成する。
【０４４９】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０４５０】
また、本実施の形態１０における非対称分散の割合は、図３６に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／３であり、ＨＤＤ８０に記憶される分散データＳＤ２のデータサイズが元データＯＤのデータサイズの２／３である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：２の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０４５１】
従って、実施の形態１０に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０４５２】
以上により、実施の形態１０の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２を生成するため、分散データＳＤ１，ＳＤ２のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２を安全に生成することができる。
【０４５３】
（実施の形態１０における元データの復元方法）
実施の形態１０における元データＯＤの具体的な復元方法について、図３７及び図３８を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２を取得する。
【０４５４】
図３７及び図３８において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得し（１）、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列５を取得し（２）、分散データＳＤ２の［分散（２）ｂ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列６を取得する（２）。
【０４５５】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列６とをＸＯＲ処理して元データＯＤの列２を取得し（３）、分散データＳＤ２の［分散（２）ｃ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列７を取得し（４）、分散データＳＤ２の［分散（２）ｄ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列８を取得する（４）。
【０４５６】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｃ］と既に取得した列８とをＸＯＲ処理して元データＯＤの列３を取得し（５）、分散データＳＤ２の［分散（２）ｅ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列９を取得し（６）、分散データＳＤ２の［分散（２）ｆ］と既に取得した列３とをＸＯＲ処理して元データＯＤの列１０を取得する（６）。
【０４５７】
最後に、分散復元装置２００は、分散データＳＤ１の［分散（１）ｄ］と既に取得した列１０とをＸＯＲ処理して元データＯＤの列４を取得し（７）、分散データＳＤ２の［分散（２）ｇ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１１を取得し（８）、分散データＳＤ２の［分散（２）ｈ］と既に取得した列４とをＸＯＲ処理して元データＯＤの列１２を取得する（８）。
【０４５８】
分散復元装置２００は、（１）〜（８）の各動作において取得された列１〜列１２の各分割ブロックＤＢ１〜ＤＢ１２を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０４５９】
以上により、実施の形態１０の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２から元データＯＤを安全に復元することができる。
【０４６０】
（実施の形態１１）
先ず、分散復元装置２００の実施の形態１１について、図３９から図４２を参照して説明する。図３９は、実施の形態１１における分散データの生成方法の一例を示す説明図である。図４０は、実施の形態１１における分散データの内容を示す説明図である。図４１は、実施の形態１１における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図４２は、実施の形態１１における動作手順を説明するフローチャートである。
【０４６１】
実施の形態１１では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計３個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３を生成する方法、及び、３個の分散データＳＤ１、分散データＳＤ２、分散データＳＤ３を用いて元データＯＤを復元する方法を説明する。
【０４６２】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２，ＳＤ３をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、３個の分散データＳＤ１，ＳＤ２，ＳＤ３を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０４６３】
実施の形態１１では、図３９及び図４０に示すように、元データＯＤは、それぞれ連接された合計８個の分割ブロックＤＢ１〜ＤＢ８を含んで構成されている。なお、実施の形態１１では、説明を簡単にするために、元データＯＤは合計８個の分割ブロックＤＢ１〜ＤＢ８を含む構成としているが、元データＯＤを構成する分割ブロックの数は８に限定されない。
【０４６４】
（実施の形態１１における分散データの構成）
実施の形態１１における分散データの構成について、図３９及び図４０を参照して説明する。図３９及び図４０に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｂ］は列２の分割ブロックＤＢ２と列７の分割ブロックＤＢ７とがＸＯＲ処理された値である。
従って、分散データＳＤ１は、２個の列［分散（１）ａ］，［分散（１）ｂ］が連接された構成である。
【０４６５】
このように、分散データＳＤ１は、元データＯＤの３分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は２個であって、元データＯＤのブロック（列）数の８個の１／４である。
【０４６６】
次に、図３９及び図４０に示す分散データＳＤ２において、［分散（２）ａ］は列１の分割ブロックＤＢ１と列７の分割ブロックＤＢ７とがＸＯＲ処理された値であり、［分散（２）ｂ］は列２の分割ブロックＤＢ２と列８の分割ブロックＤＢ８とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、２個の列［分散（２）ａ］，［分散（２）ｂ］が連接された構成である。
【０４６７】
このように、分散データＳＤ２は、元データＯＤの３分の１のデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は２個であって、元データＯＤのブロック（列）数の８個の１／４である。
【０４６８】
同様に、図３９及び図４０に示す分散データＳＤ３において、［分散（３）ａ］は列１の分割ブロックＤＢ１と列３の分割ブロックＤＢ３とがＸＯＲ処理された値であり、［分散（３）ｂ］は列１の分割ブロックＤＢ１と列４の分割ブロックＤＢ４とがＸＯＲ処理された値であり、［分散（３）ｃ］は列２の分割ブロックＤＢ２と列５の分割ブロックＤＢ５とがＸＯＲ処理された値であり、［分散（３）ｄ］は列２の分割ブロックＤＢ２と列６の分割ブロックＤＢ６とがＸＯＲ処理された値である。
従って、分散データＳＤ３は、４個の列［分散（３）ａ］，［分散（３）ｂ］，［分散（３）ｃ］，［分散（３）ｄ］が連接された構成である。
【０４６９】
このように、分散データＳＤ３は、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は４個であって、元データＯＤのブロック（列）数の８個の１／２である。
【０４７０】
（実施の形態１１における分散データの生成方法）
実施の形態１１における分散データＳＤ１，ＳＤ２，ＳＤ３の具体的な生成方法について、図３９及び図４０を参照して説明する。分散復元装置２００は、先ず、元データＯＤを２個のデータに均等に分割する。例えば、分散復元装置２００は、合計８個の分割ブロックＤＢ１〜ＤＢ８を含む元データＯＤを、列１、列２、列７、列８のデータと、列３〜列６のデータとに均等に分割する。
【０４７１】
分散復元装置２００は、列１、列２、列７、列８のデータのうちいずれかの列のデータと、列３〜列６のデータのうちいずれかの列のデータとをＸＯＲ処理し、合計４個のＸＯＲ処理されたデータを連接させて分散データを生成する。
【０４７２】
例えば、分散復元装置２００は、列１と列３とをＸＯＲ処理したデータと、列２と列４とをＸＯＲ処理したデータと、列７と列５とをＸＯＲ処理したデータと、列８と列６とをＸＯＲ処理したデータとを連接した分散データを生成する。更に、分散復元装置２００は、生成された分散データの一部の列のデータを他の列のデータに変更して新たな分散データＳＤ３（図４０参照）を生成する。
【０４７３】
具体的には、分散復元装置２００は、列２と列４とのＸＯＲ処理したデータの列２を列１に変更し、列７と列５とをＸＯＲ処理したデータの列７を列２に変更し、列８と列６とをＸＯＲ処理したデータの列８を列２に変更する。これにより、分散復元装置２００は、［分散（２）ａ］に列１と列３とをＸＯＲ処理した値を用い、［分散（２）ｂ］に列１と列４とをＸＯＲ処理した値を用い、［分散（２）ｃ］に列２と列５とをＸＯＲ処理した値を用い、［分散（２）ｄ］に列２と列６とをＸＯＲ処理した値を用い、［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］を連接させて分散データＳＤ２を生成する。
【０４７４】
次に、分散復元装置２００は、分散データＳＤ３の生成時における各ＸＯＲ処理に用いた列１、列２、列７、列８のデータ又は列３〜列６のデータのうちどちらか一方の列の組み合わせを選択する。ここで、説明を簡単にするために、分散復元装置２００は、列の組み合わせとして列１、列２、列７、列８のデータを選択するが、列３〜列６が選択されても良い。
【０４７５】
分散復元装置２００は、選択された列の組み合わせに対し、本発明者による特願２０１０−０７７６３０号の秘密分散法に従って分散処理を実行し、２個の分散データＳＤ１，ＳＤ２を生成する。特願２０１１−０７７６３０号の秘密分散法に従った分散処理によって、分散データＳＤ３の生成時における各ＸＯＲ処理に用いた列１、列２、列７、列８及び列３〜列６の各データのうち、分散復元装置２００によって選択された列の組み合わせ（例えば列１、列２、列７、列８）がそれぞれ異なる組み合わせによってＸＯＲ処理されて、分散データＳＤ１，ＳＤ２が生成される。
【０４７６】
具体的には、分散復元装置２００は、例えば列１、列２、列７、列８の組み合わせを選択した場合に、［分散（１）ａ］に列１だけを用い、［分散（１）ｂ］に列２と列７とのＸＯＲ処理した値を用い、［分散（１）ａ］，［分散（１）ｂ］，［分散（１）ｃ］，［分散（１）ｄ］を連接させて分散データＳＤ１を生成する。
【０４７７】
更に、分散復元装置２００は、生成された分散データＳＤ１に対し、分散データＳＤ１の下段に図示した列７を左方向に一列分シフトさせることによって、分散データＳＤ２を生成する。従って、分散復元装置２００は、分散データＳＤ２を生成する場合では、分散データＳＤ１の生成時に用いない列８のデータを、列２とのＸＯＲ処理に用いる。
【０４７８】
なお、分散復元装置２００は、分散データＳＤ２を分散データＳＤ１より先に生成しても良い。具体的には、分散復元装置２００は、例えば列１、列２、列７、列８の組み合わせを選択した場合に、［分散（２）ａ］に列１と列７とのＸＯＲ処理した値を用い、［分散（２）ｂ］に列２と列８とのＸＯＲ処理した値を用い、［分散（２）ａ］，［分散（２）ｂ］を連接させて分散データＳＤ２を生成する。
【０４７９】
更に、分散復元装置２００は、生成された分散データＳＤ２に対し、分散データＳＤ２の下段に図示した列７、列８を右方向に一列分シフトさせることによって、分散データＳＤ１を生成する。従って、分散復元装置２００は、分散データＳＤ１を生成する場合では、分散データＳＤ２の生成時に用いた列８のデータを用いず、［分散（１）ａ］に単一の列１だけを用いる。
【０４８０】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２，ＳＤ３とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０４８１】
また、本実施の形態１１における非対称分散の割合は、図４０に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／４であり、ＨＤＤ８０に記憶される分散データＳＤ２，ＳＤ３のデータサイズが元データＯＤのデータサイズの３／４（１／４＋１／２）である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：３の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２，ＳＤ３の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０４８２】
従って、実施の形態１１に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０４８３】
以上により、実施の形態１１の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２，ＳＤ３を生成するため、分散データＳＤ１，ＳＤ２，ＳＤ３のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２，ＳＤ３を安全に生成することができる。
【０４８４】
（実施の形態１１における元データの復元方法）
実施の形態１１における元データＯＤの具体的な復元方法について、図４１及び図４２を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２，ＳＤ３を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２，ＳＤ３を取得する。
【０４８５】
図４１及び図４２において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得する（１）。
【０４８６】
分散復元装置２００は、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列７を取得し（２）、分散データＳＤ３の［分散（３）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列３を取得し（２）、分散データＳＤ３の［分散（３）ｂ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列４を取得する（２）。
【０４８７】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列２を取得する（３）。
【０４８８】
最後に、分散復元装置２００は、分散データＳＤ２の［分散（２）ｂ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列８を取得し（４）、分散データＳＤ３の［分散（３）ｃ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列５を取得し（４）、分散データＳＤ３の［分散（３）ｄ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列６を取得する（４）。
【０４８９】
分散復元装置２００は、（１）〜（４）の各動作において取得された列１〜列８の各分割ブロックＤＢ１〜ＤＢ８を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０４９０】
以上により、実施の形態１１の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２，ＳＤ３を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２，ＳＤ３から元データＯＤを安全に復元することができる。
【０４９１】
（実施の形態１２）
先ず、分散復元装置２００の実施の形態１２について、図４３から図４６を参照して説明する。図４３は、実施の形態１２における分散データの生成方法の一例を示す説明図である。図４４は、実施の形態１２における分散データの内容を示す説明図である。図４５は、実施の形態１２における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図４６は、実施の形態１２における動作手順を説明するフローチャートである。
【０４９２】
実施の形態１２では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計２個の分散データＳＤ１、分散データＳＤ２を生成する方法、及び、２個の分散データＳＤ１、分散データＳＤ２用いて元データＯＤを復元する方法を説明する。
【０４９３】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、２個の分散データＳＤ１，ＳＤ２を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０４９４】
実施の形態１２では、図４３及び図４４に示すように、元データＯＤは、それぞれ連接された合計８個の分割ブロックＤＢ１〜ＤＢ８を含んで構成されている。なお、実施の形態１２では、説明を簡単にするために、元データＯＤは合計８個の分割ブロックＤＢ１〜ＤＢ８を含む構成としているが、元データＯＤを構成する分割ブロックの数は８に限定されない。
【０４９５】
（実施の形態１２における分散データの構成）
実施の形態１２における分散データの構成について、図４３及び図４４を参照して説明する。図４３及び図４４に示す分散データＳＤ１は、図３９及び図４０に示す分散データＳＤ１と同一である。
【０４９６】
次に、図４３及び図４４に示す分散データＳＤ２において、［分散（２）ａ］は列１の分割ブロックＤＢ１と列３の分割ブロックＤＢ３とがＸＯＲ処理された値であり、［分散（２）ｂ］は列１の分割ブロックＤＢ１と列４の分割ブロックＤＢ４とがＸＯＲ処理された値であり、［分散（２）ｃ］は列１の分割ブロックＤＢ１と列７の分割ブロックＤＢ７とがＸＯＲ処理された値であり、［分散（２）ｄ］は列２の分割ブロックＤＢ２と列５の分割ブロックＤＢ５とがＸＯＲ処理された値であり、［分散（２）ｅ］は列２の分割ブロックＤＢ２と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（２）ｆ］は列２の分割ブロックＤＢ２と列８の分割ブロックＤＢ８とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、６個の列［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］，［分散（２）ｅ］，［分散（２）ｆ］が連接された構成である。
【０４９７】
このように、分散データＳＤ２は、列１のデータと列２のデータとがそれぞれ２回用いられ、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は６個であって、元データＯＤのブロック（列）数の８個の３／４である。
【０４９８】
（実施の形態１２における分散データの生成方法）
実施の形態１２における分散データＳＤ１，ＳＤ２の具体的な生成方法について、図４３及び図４３を参照して説明する。分散復元装置２００は、先ず、実施の形態１１において説明した方法に従って、３個の分散データＳＤ１，ＳＤ２，ＳＤ３（図４０参照）を生成する。ここでは、実施の形態１１において説明した方法の説明は省略する。また、図４０に示す分散データＳＤ１と、図４４に示す分散データＳＤ１とは同一であるため、実施の形態１２における分散データＳＤ１（図４４参照）の生成方法の説明は省略する。
【０４９９】
次に、分散復元装置２００は、生成された図４０に示す分散データＳＤ２，ＳＤ３を連接させて列を並び替えることによって、実施の形態１２における分散データＳＤ２を生成する（図４４参照）。
【０５００】
具体的には、分散復元装置２００は、［分散（２）ａ］に列１と列３とをＸＯＲ処理した値を用い、［分散（２）ｂ］に列１と列４とのＸＯＲ処理した値を用い、［分散（１）ｃ］に列１と列７とのＸＯＲ処理した値を用い、［分散（２）ｄ］に列２と列５とをＸＯＲ処理した値を用い、［分散（２）ｅ］に列２と列６とのＸＯＲ処理した値を用い、［分散（２）ｆ］に列２と列８とのＸＯＲ処理した値を用い、［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］，［分散（２）ｅ］，［分散（２）ｆ］を連接させて分散データＳＤ２を生成する（図４４参照）。
【０５０１】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行し、更に、複数の分散データを連接することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０５０２】
また、本実施の形態１２における非対称分散の割合は、図４４に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／４であり、ＨＤＤ８０に記憶される分散データＳＤ２のデータサイズが元データＯＤのデータサイズの３／４である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：３の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０５０３】
従って、実施の形態１２に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０５０４】
以上により、実施の形態１２の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２を生成するため、分散データＳＤ１，ＳＤ２のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２を安全に生成することができる。
【０５０５】
（実施の形態１２における元データの復元方法）
実施の形態１２における元データＯＤの具体的な復元方法について、図４５及び図４６を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２を取得する。
【０５０６】
図４５及び図４６において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得する（１）。
【０５０７】
分散復元装置２００は、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列３を取得し（２）、分散データＳＤ２の［分散（２）ｂ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列４を取得し（２）、分散データＳＤ２の［分散（２）ｃ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列７を取得する（２）。
【０５０８】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列７とをＸＯＲ処理して元データＯＤの列２を取得する（３）。
【０５０９】
最後に、分散復元装置２００は、分散データＳＤ２の［分散（２）ｄ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列５を取得し（４）、分散データＳＤ２の［分散（２）ｅ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列６を取得し（４）、分散データＳＤ２の［分散（２）ｆ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列８を取得する（４）。
【０５１０】
分散復元装置２００は、（１）〜（４）の各動作において取得された列１〜列８の各分割ブロックＤＢ１〜ＤＢ８を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０５１１】
以上により、実施の形態１２の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２から元データＯＤを安全に復元することができる。
【０５１２】
（実施の形態１３）
先ず、分散復元装置２００の実施の形態１３について、図４７から図５０を参照して説明する。図４７は、実施の形態１３における分散データの生成方法の一例を示す説明図である。図４８は、実施の形態１３における分散データの内容を示す説明図である。図４９は、実施の形態１３における分散データ同士のＸＯＲ処理によって元データの各分割ブロックを得る流れを示す説明図である。図５０は、実施の形態１３における動作手順を説明するフローチャートである。
【０５１３】
実施の形態１３では、元データＯＤから、元データＯＤのデータサイズより小さいデータサイズを有する合計２個の分散データＳＤ１、分散データＳＤ２を生成する方法、及び、２個の分散データＳＤ１、分散データＳＤ２用いて元データＯＤを復元する方法を説明する。
【０５１４】
分散復元装置２００は、分散データＳＤ１を例えば外部記憶装置５１０に記憶させ、分散データＳＤ２をＨＤＤ８０に記憶させる。これにより、分散復元装置２００は、２個の分散データＳＤ１，ＳＤ２を、例えば外部記憶装置５１０とＨＤＤ８０とに対して非対称に分散させる。
【０５１５】
実施の形態１３では、図４７及び図４８に示すように、元データＯＤは、それぞれ連接された合計８個の分割ブロックＤＢ１〜ＤＢ８を含んで構成されている。なお、実施の形態１３では、説明を簡単にするために、元データＯＤは合計８個の分割ブロックＤＢ１〜ＤＢ８を含む構成としているが、元データＯＤを構成する分割ブロックの数は８に限定されない。
【０５１６】
（実施の形態１３における分散データの構成）
実施の形態１３における分散データの構成について、図４７及び図４８を参照して説明する。図４７及び図４８に示す分散データＳＤ１において、［分散（１）ａ］は列１の分割ブロックＤＢ１であり、［分散（１）ｂ］は列２の分割ブロックＤＢ２と列５の分割ブロックＤＢ５とがＸＯＲ処理された値である。
従って、分散データＳＤ１は、２個の列［分散（１）ａ］，［分散（１）ｂ］が連接された構成である。
【０５１７】
このように、分散データＳＤ１は、元データＯＤのデータサイズの２分の１に対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ１のブロック（列）数は２個であって、元データＯＤのブロック（列）数の８個の１／４である。
【０５１８】
次に、図４７及び図４８に示す分散データＳＤ２において、［分散（２）ａ］は列１の分割ブロックＤＢ１と列３の分割ブロックＤＢ３とがＸＯＲ処理された値であり、［分散（２）ｂ］は列１の分割ブロックＤＢ１と列４の分割ブロックＤＢ４とがＸＯＲ処理された値であり、［分散（２）ｃ］は列１の分割ブロックＤＢ１と列５の分割ブロックＤＢ５とがＸＯＲ処理された値であり、［分散（２）ｄ］は列２の分割ブロックＤＢ２と列６の分割ブロックＤＢ６とがＸＯＲ処理された値であり、［分散（２）ｅ］は列２の分割ブロックＤＢ２と列７の分割ブロックＤＢ７とがＸＯＲ処理された値であり、［分散（２）ｆ］は列２の分割ブロックＤＢ２と列８の分割ブロックＤＢ８とがＸＯＲ処理された値である。
従って、分散データＳＤ２は、６個の列［分散（２）ａ］，［分散（２）ｂ］，［分散（２）ｃ］，［分散（２）ｄ］，［分散（２）ｅ］，［分散（２）ｆ］が連接された構成である。
【０５１９】
このように、分散データＳＤ２は、列１のデータと列２のデータとがそれぞれ２回用いられ、元データＯＤのデータサイズに対応する分割ブロックのデータを、ＸＯＲ処理によって２段に畳み込んで構成されている。従って、分散データＳＤ２のブロック（列）数は６個であって、元データＯＤのブロック（列）数の８個の３／４である。
【０５２０】
（実施の形態１３における分散データの生成方法）
実施の形態１３における分散データＳＤ１，ＳＤ２の具体的な生成方法について、図４７及び図４８を参照して説明する。分散復元装置２００は、先ず、実施の形態１２において説明した方法に従って、２個の分散データＳＤ１，ＳＤ２（図４４参照）を生成する。ここでは、実施の形態１２において説明した方法の説明は省略する。
【０５２１】
分散復元装置２００は、図４４に示す分散データＳＤ１の一部の列のデータを他の列のデータに変更して新たな分散データＳＤ１（図４８参照）を生成する。
【０５２２】
具体的には、分散復元装置２００は、図４４に示す分散データＳＤ１の［分散（１）ｂ］の列７を列５に変更して、実施の形態１３における分散データＳＤ１を生成する（図４８参照）。
【０５２３】
次に、分散復元装置２００は、生成された図４４に示す分散データＳＤ２の一部の列のデータを他の列のデータに変更して新たな分散データＳＤ２を生成する（図４８参照）。
【０５２４】
具体的には、分散復元装置２００は、図４４に示す分散データＳＤ２の［分散（２）ｃ］の列７を列５に変更し、同図に示す分散データＳＤ２の［分散（２）ｄ］の列５を列６に変更し、同図に示す分散データＳＤ２の［分散（２）ｅ］の列６を列７に変更することによって、分散データＳＤ２を生成する（図４８参照）。
【０５２５】
このように、分散復元装置２００は、分散データを生成する場合に、元データＯＤの分割ブロックのデータを２段（行）に畳み込む処理（ＸＯＲ処理）を実行し、更に、ＸＯＲ処理の対象として用いる列のデータを他の列のデータに変更することで、分散データの中において元データの情報（内容）を欠落させることができる。これにより、分散復元装置２００は、分散データＳＤ１と、分散データＳＤ２とのいずれか一方の分散データから元データＯＤが復元されることを阻止できる分散データを生成することができる。
【０５２６】
また、本実施の形態１３における非対称分散の割合は、図４８に示すように、外部記憶装置５１０に記憶される分散データＳＤ１のデータサイズが元データＯＤのデータサイズの１／４であり、ＨＤＤ８０に記憶される分散データＳＤ２のデータサイズが元データＯＤのデータサイズの３／４である。このため、分散復元装置２００は、外部記憶装置５１０とＨＤＤ８０とに対し、１：３の非対称なデータサイズの分散データを生成することができる。なお、分散データＳＤ１，ＳＤ２の各データサイズの合計は、元データＯＤのデータサイズと同じになる。
【０５２７】
従って、実施の形態１３に分散復元装置２００における元データＯＤとＸＯＲ処理を用いて元データＯＤの情報（内容）を打ち消すことで、生成された各分散データの情報エントロピーは増大させられている。このため、分散復元装置２００は、生成された分散データの数に対応する閾値未満の分散データから元データＯＤの復元を困難にさせることができる。また、分散復元装置２００は、ＸＯＲ処理を用いるだけで、従来の閾値秘密分散法に比べて、データサイズが非対称の分散データを生成することができ、分散データの生成処理の速度を向上させることができる。
【０５２８】
以上により、実施の形態１３の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って複数個の分散データＳＤ１，ＳＤ２を生成するため、分散データＳＤ１，ＳＤ２のデータサイズを元データＯＤのデータサイズより少なくでき、分散復元装置２００におけるメモリ量を削減でき、更に、分散処理の速度を向上させることができる。また、分散復元装置２００は、非対称なデータサイズの分散データＳＤ１，ＳＤ２を安全に生成することができる。
【０５２９】
（実施の形態１３における元データの復元方法）
実施の形態１３における元データＯＤの具体的な復元方法について、図４９及び図５０を参照して説明する。分散復元装置２００は、先ず、全ての分散データＳＤ１，ＳＤ２を取得する。具体的には、分散復元装置２００は、ＭＡＣ／ＰＨＹ９０において外部記憶装置５１０にアクセスして分散データＳＤ１を取得し、ＣＰＵ６０においてＨＤＤ８０にアクセスして分散データＳＤ２を取得する。
【０５３０】
図４９及び図５０において、分散復元装置２００は、分散データＳＤ１の［分散（１）ａ］を基にして元データＯＤの列１を取得する（１）。
【０５３１】
分散復元装置２００は、分散データＳＤ２の［分散（２）ａ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列３を取得し（２）、分散データＳＤ２の［分散（２）ｂ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列４を取得し（２）、分散データＳＤ２の［分散（２）ｃ］と既に取得した列１とをＸＯＲ処理して元データＯＤの列５を取得する（２）。
【０５３２】
分散復元装置２００は、分散データＳＤ１の［分散（１）ｂ］と既に取得した列５とをＸＯＲ処理して元データＯＤの列２を取得する（３）。
【０５３３】
最後に、分散復元装置２００は、分散データＳＤ２の［分散（２）ｄ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列６を取得し（４）、分散データＳＤ２の［分散（２）ｅ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列７を取得し（４）、分散データＳＤ２の［分散（２）ｆ］と既に取得した列２とをＸＯＲ処理して元データＯＤの列８を取得する（４）。
【０５３４】
分散復元装置２００は、（１）〜（４）の各動作において取得された列１〜列８の各分割ブロックＤＢ１〜ＤＢ８を連接させて元データＯＤを取得する。これにより、分散復元装置２００は、元データＯＤの復元処理を終了する。
【０５３５】
以上により、実施の形態１３の分散復元装置２００は、選択された分割ブロックの組み合わせに従って排他的論理和（ＸＯＲ処理）の演算を行って生成された複数個の分散データＳＤ１，ＳＤ２を用いて、元データＯＤの復元処理を高速に実行することができ、分散復元装置２００におけるメモリ量を削減できる。また、分散復元装置２００は、非対称なデータサイズを有する分散データＳＤ１，ＳＤ２から元データＯＤを安全に復元することができる。
【０５３６】
以上により、各実施の形態における分散復元装置２００は、非対称分散の割合（例えば１：２、１：３、１：５、１；７、１：１１）を自由に設定して分散データを生成することができる。
【０５３７】
以上、図面を参照して各種の実施の形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種実施の形態の変更例または修正例、更に各種実施の形態の組み合わせ例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【０５３８】
本発明は、元データから非対称なデータサイズを有する複数の分散データへの生成処理又は非対称なデータサイズを有する複数の分散データから元データへの復元処理を、安全かつ高速に実行する分散装置、復元装置、分散方法、復元方法及び分散復元システムとして有用である。
【符号の説明】
【０５３９】
１      アプリケーション
２      分散復元モジュール
３      記憶部
１０    分散処理依頼部
２０    復元処理依頼部
３０    分散処理部
４０    乱数生成部
５０    復元処理部
６０    ＣＰＵ
７０    ＲＡＭ
８０    ＨＤＤ
９０    ＭＡＣ／ＰＨＹ
１００  演算処理部
２００  分散復元装置
５１０、５２０、５３０  外部記憶装置
【図１】
0006011775.tif 000002
【図２】
0006011775.tif 000003
【図３】
0006011775.tif 000004
【図４】
0006011775.tif 000005
【図５】
0006011775.tif 000006
【図６】
0006011775.tif 000007
【図７】
0006011775.tif 000008
【図８】
0006011775.tif 000009
【図９】
0006011775.tif 000010
【図１０】
0006011775.tif 000011
【図１１】
0006011775.tif 000012
【図１２】
0006011775.tif 000013
【図１３】
0006011775.tif 000014
【図１４】
0006011775.tif 000015
【図１５】
0006011775.tif 000016
【図１６】
0006011775.tif 000017
【図１７】
0006011775.tif 000018
【図１８】
0006011775.tif 000019
【図１９】
0006011775.tif 000020
【図２０】
0006011775.tif 000021
【図２１】
0006011775.tif 000022
【図２２】
0006011775.tif 000023
【図２３】
0006011775.tif 000024
【図２４】
0006011775.tif 000025
【図２５】
0006011775.tif 000026
【図２６】
0006011775.tif 000027
【図２７】
0006011775.tif 000028
【図２８】
0006011775.tif 000029
【図２９】
0006011775.tif 000030
【図３０】
0006011775.tif 000031
【図３１】
0006011775.tif 000032
【図３２】
0006011775.tif 000033
【図３３】
0006011775.tif 000034
【図３４】
0006011775.tif 000035
【図３５】
0006011775.tif 000036
【図３６】
0006011775.tif 000037
【図３７】
0006011775.tif 000038
【図３８】
0006011775.tif 000039
【図３９】
0006011775.tif 000040
【図４０】
0006011775.tif 000041
【図４１】
0006011775.tif 000042
【図４２】
0006011775.tif 000043
【図４３】
0006011775.tif 000044
【図４４】
0006011775.tif 000045
【図４５】
0006011775.tif 000046
【図４６】
0006011775.tif 000047
【図４７】
0006011775.tif 000048
【図４８】
0006011775.tif 000049
【図４９】
0006011775.tif 000050
【図５０】
0006011775.tif 000051
【図５１】
0006011775.tif 000052
【図５２】
0006011775.tif 000053
【図５３】
0006011775.tif 000054
【図５４】
0006011775.tif 000055
【図５５】
0006011775.tif 000056
【図５６】
0006011775.tif 000057
【図５７】
0006011775.tif 000058