(57)【要約】【課題】２重故障の可用性を実現しつつ、より少ない演算量でより効率的に秘密分散を行う。【解決手段】元データＳから４つの分散データを生成する秘密分散装置１であって、元データＳを分割して２つの元部分データを生成する元部分データ生成手段１３と、元部分データと同じサイズの乱数部分データを２つ生成する乱数生成手段１２と、４つの分散データのそれぞれを分散部分データ単位で生成する分散データ生成手段１３と、４つの分散データのうち任意の２つの分散データを用いて元データＳを復元する復元手段１４とを有し、分散データ生成手段１３は、分散部分データを元部分データおよび乱数部分データの排他的論理和を算出することにより生成する。【選択図】図１
2011035618.tif 000002
【特許請求の範囲】
【請求項１】
元データから４つの分散データを生成する秘密分散装置であって、
前記元データを分割して２つの元部分データを生成する元部分データ生成手段と、
前記元部分データと同じサイズの乱数部分データを２つ生成する乱数生成手段と、
前記４つの分散データのそれぞれを、当該分散データを構成する前記元部分データと同じサイズの分散部分データ単位で生成する分散データ生成手段と、
前記４つの分散データのうち、任意の２つの分散データを用いて前記元データを復元する復元手段と、を有し、
前記分散データ生成手段は、前記分散部分データを、前記元部分データおよび前記乱数部分データの排他的論理和を算出することにより生成すること
を特徴とする秘密分散装置。
【請求項２】
請求項１記載の秘密分散装置であって、
前記元部分データをＳ（ｊ）（ｊ＝１，２）と、乱数部分データをＲ（ｊ）（ｊ＝１，２）と、分散データＤ（ｉ）（ｉ＝１〜４）を構成する分散部分データをＤ（ｉ，ｊ）（ｉ＝１〜４、ｊ＝１，２）と、排他的論理和を＋とした場合、
前記分散データ生成手段は、
分散部分データＤ（１，１）をＳ（１）＋Ｒ（１）＋Ｒ（２）で、
分散部分データＤ（１，２）をＳ（２）＋Ｒ（２）で、
分散部分データＤ（２，１）をＳ（１）＋Ｒ（１）で、
分散部分データＤ（２，２）をＳ（２）＋Ｒ（１）＋Ｒ（２）で、
分散部分データＤ（３，１）をＲ（１）で、
分散部分データＤ（３，２）をＲ（２）で、
分散部分データＤ（４，１）をＳ（１）＋Ｒ（２）で、
分散部分データＤ（４，２）をＳ（２）＋Ｒ（１）で、それぞれ生成すること
を特徴とする秘密分散装置。
【請求項３】
請求項２記載の秘密分散装置であって、
前記復元手段は、
分散データＤ（１）およびＤ（２）から元データを復元する場合、
元部分データＳ（１）をＤ（１，２）＋Ｄ（２,１）＋Ｄ（２，２）で、
元部分データＳ（２）をＤ（１，１）＋Ｄ（１,２）＋Ｄ（２，１）で復元し、
分散データＤ（１）およびＤ（３）から元データを復元する場合、
元部分データＳ（１）をＤ（１，１）＋Ｄ（３，１）＋Ｄ（３，２）で、
元部分データＳ（２）をＤ（１，２）＋Ｄ（３，２）で、復元し、
分散データＤ（２）およびＤ（３）から元データを復元する場合、
元部分データＳ（１）をＤ（２，１）＋Ｄ（３，１）で、
元部分データＳ（２）をＤ（２，２）＋Ｄ（３，１）＋Ｄ（３，２）で復元し、
分散データＤ（１）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（１，１）＋Ｄ（１,２）＋Ｄ（４，２）で、
元部分データＳ（２）をＤ（１，１）＋Ｄ（４，１）＋Ｄ（４，２）で復元し、
分散データＤ（２）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（２，２）＋Ｄ（４，１）＋Ｄ（４，２）で、
元部分データＳ（２）をＤ（２，１）＋Ｄ（２，２）＋Ｄ（４，１）で復元し、
分散データＤ（３）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（３，２）＋Ｄ（４，１）で、
元部分データＳ（２）をＤ（３，１）＋Ｄ（４，２）で、復元すること
を特徴とする秘密分散装置。
【請求項４】
請求項２または請求項３記載の秘密分散装置であって、
少なくとも２つの分散データから他の分散データを生成する追加分散データ生成手段をさらに有すること
を特徴とする秘密分散装置。
【請求項５】
請求項４記載の秘密分散装置であって、
前記追加分散データ生成手段は、
分散データＤ（１）、Ｄ（２）およびＤ（３）から、分散データＤ（４）を生成する場合、
分散部分データＤ（４，１）をＤ（１，１）＋Ｄ（３，１）で、
分散部分データＤ（４，２）をＤ（２，２）＋Ｄ（３，２）で生成し、
分散データＤ（１）、Ｄ（２）およびＤ（４）から、分散データＤ（３）を生成する場合、
分散部分データＤ（３，１）をＤ（１，１）＋Ｄ（４，１）で、
分散部分データＤ（３，２）をＤ（２，２）＋Ｄ（４，２）で生成し、
分散データＤ（１）、Ｄ（３）およびＤ（４）から、分散データＤ（２）を生成する場合、
分散部分データＤ（２，１）をＤ（１，１）＋Ｄ（３，２）で、
分散部分データＤ（２，２）をＤ（１，２）＋Ｄ（３，１）で生成し、
分散データＤ（２）、Ｄ（３）およびＤ（４）から、分散データＤ（１）を生成する場合、
分散部分データＤ（１，１）をＤ（２，１）＋Ｄ（３，１）で、
分散部分データＤ（１，２）をＤ（２，２）＋Ｄ（３，２）で生成すること
を特徴とする秘密分散装置。
【請求項６】
情報処理装置が行う、元データから４つの分散データを生成する秘密分散方法であって、
前記元データを分割して２つの元部分データを生成する元部分データ生成ステップと、
前記元部分データと同じサイズの乱数部分データを２つ生成する乱数生成ステップと、
前記４つの分散データのそれぞれを、当該分散データを構成する前記元部分データと同じサイズの分散部分データ単位で生成する分散データ生成ステップと、
前記４つの分散データのうち、任意の２つの分散データを用いて前記元データを復元する復元ステップと、を行い、
前記分散データ生成ステップは、前記分散部分データを、前記元部分データおよび前記乱数部分データの排他的論理和を算出することにより生成すること
を特徴とする秘密分散方法。
【請求項７】
請求項６記載の秘密分散方法であって、
前記元部分データをＳ（ｊ）（ｊ＝１，２）と、乱数部分データをＲ（ｊ）（ｊ＝１，２）と、分散データＤ（ｉ）（ｉ＝１〜４）を構成する分散部分データをＤ（ｉ，ｊ）（ｉ＝１〜４、ｊ＝１，２）と、排他的論理和を＋とした場合、
前記分散データ生成ステップは、
分散部分データＤ（１，１）をＳ（１）＋Ｒ（１）＋Ｒ（２）で、
分散部分データＤ（１，２）をＳ（２）＋Ｒ（２）で、
分散部分データＤ（２，１）をＳ（１）＋Ｒ（１）で、
分散部分データＤ（２，２）をＳ（２）＋Ｒ（１）＋Ｒ（２）で、
分散部分データＤ（３，１）をＲ（１）で、
分散部分データＤ（３，２）をＲ（２）で、
分散部分データＤ（４，１）をＳ（１）＋Ｒ（２）で、
分散部分データＤ（４，２）をＳ（２）＋Ｒ（１）で、それぞれ生成すること
を特徴とする秘密分散方法。
【請求項８】
請求項７記載の秘密分散方法であって、
前記復元ステップは、
分散データＤ（１）およびＤ（２）から元データを復元する場合、
元部分データＳ（１）をＤ（１，２）＋Ｄ（２,１）＋Ｄ（２，２）で、
元部分データＳ（２）をＤ（１，１）＋Ｄ（１,２）＋Ｄ（２，１）で復元し、
分散データＤ（１）およびＤ（３）から元データを復元する場合、
元部分データＳ（１）をＤ（１，１）＋Ｄ（３，１）＋Ｄ（３，２）で、
元部分データＳ（２）をＤ（１，２）＋Ｄ（３，２）で、復元し、
分散データＤ（２）およびＤ（３）から元データを復元する場合、
元部分データＳ（１）をＤ（２，１）＋Ｄ（３，１）で、
元部分データＳ（２）をＤ（２，２）＋Ｄ（３，１）＋Ｄ（３，２）で復元し、
分散データＤ（１）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（１，１）＋Ｄ（１,２）＋Ｄ（４，２）で、
元部分データＳ（２）をＤ（１，１）＋Ｄ（４，１）＋Ｄ（４，２）で復元し、
分散データＤ（２）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（２，２）＋Ｄ（４，１）＋Ｄ（４，２）で、
元部分データＳ（２）をＤ（２，１）＋Ｄ（２，２）＋Ｄ（４，１）で復元し、
分散データＤ（３）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（３，２）＋Ｄ（４，１）で、
元部分データＳ（２）をＤ（３，１）＋Ｄ（４，２）で、復元すること
を特徴とする秘密分散方法。
【請求項９】
請求項７または請求項８記載の秘密分散方法であって、
少なくとも２つの分散データから他の分散データを生成する追加分散データ生成ステップをさらに有すること
を特徴とする秘密分散方法。
【請求項１０】
請求項９記載の秘密分散方法であって、
前記追加分散データ生成ステップは、
分散データＤ（１）、Ｄ（２）およびＤ（３）から、分散データＤ（４）を生成する場合、
分散部分データＤ（４，１）をＤ（１，１）＋Ｄ（３，１）で、
分散部分データＤ（４，２）をＤ（２，２）＋Ｄ（３，２）で生成し、
分散データＤ（１）、Ｄ（２）およびＤ（４）から、分散データＤ（３）を生成する場合、
分散部分データＤ（３，１）をＤ（１，１）＋Ｄ（４，１）で、
分散部分データＤ（３，２）をＤ（２，２）＋Ｄ（４，２）で生成し、
分散データＤ（１）、Ｄ（３）およびＤ（４）から、分散データＤ（２）を生成する場合、
分散部分データＤ（２，１）をＤ（１，１）＋Ｄ（３，２）で、
分散部分データＤ（２，２）をＤ（１，２）＋Ｄ（３，１）で生成し、
分散データＤ（２）、Ｄ（３）およびＤ（４）から、分散データＤ（１）を生成する場合、
分散部分データＤ（１，１）をＤ（２，１）＋Ｄ（３，１）で、
分散部分データＤ（１，２）をＤ（２，２）＋Ｄ（３，２）で生成すること
を特徴とする秘密分散方法。
【請求項１１】
情報処理装置が実行する、元データから４つの分散データを生成する秘密分散プログラムであって、
前記情報処理装置を、
前記元データを分割して２つの元部分データを生成する元部分データ生成手段、
前記元部分データと同じサイズの乱数部分データを２つ生成する乱数生成手段と、
前記４つの分散データのそれぞれを、当該分散データを構成する前記元部分データと同じサイズの分散部分データ単位で生成する分散データ生成手段、および
前記４つの分散データのうち、任意の２つの分散データを用いて前記元データを復元する復元手段、として機能させ、
前記分散データ生成手段は、前記分散部分データを、前記元部分データおよび前記乱数部分データの排他的論理和を算出することにより生成すること
を特徴とする秘密分散プログラム。
【請求項１２】
請求項１１記載の秘密分散プログラムであって、
前記元部分データをＳ（ｊ）（ｊ＝１，２）と、乱数部分データをＲ（ｊ）（ｊ＝１，２）と、分散データＤ（ｉ）（ｉ＝１〜４）を構成する分散部分データをＤ（ｉ，ｊ）（ｉ＝１〜４、ｊ＝１，２）と、排他的論理和を＋とした場合、
前記分散データ生成手段は、
分散部分データＤ（１，１）をＳ（１）＋Ｒ（１）＋Ｒ（２）で、
分散部分データＤ（１，２）をＳ（２）＋Ｒ（２）で、
分散部分データＤ（２，１）をＳ（１）＋Ｒ（１）で、
分散部分データＤ（２，２）をＳ（２）＋Ｒ（１）＋Ｒ（２）で、
分散部分データＤ（３，１）をＲ（１）で、
分散部分データＤ（３，２）をＲ（２）で、
分散部分データＤ（４，１）をＳ（１）＋Ｒ（２）で、
分散部分データＤ（４，２）をＳ（２）＋Ｒ（１）で、それぞれ生成すること
を特徴とする秘密分散プログラム。
【請求項１３】
請求項１２記載の秘密分散プログラムであって、
前記復元手段は、
分散データＤ（１）およびＤ（２）から元データを復元する場合、
元部分データＳ（１）をＤ（１，２）＋Ｄ（２,１）＋Ｄ（２，２）で、
元部分データＳ（２）をＤ（１，１）＋Ｄ（１,２）＋Ｄ（２，１）で復元し、
分散データＤ（１）およびＤ（３）から元データを復元する場合、
元部分データＳ（１）をＤ（１，１）＋Ｄ（３，１）＋Ｄ（３，２）で、
元部分データＳ（２）をＤ（１，２）＋Ｄ（３，２）で、復元し、
分散データＤ（２）およびＤ（３）から元データを復元する場合、
元部分データＳ（１）をＤ（２，１）＋Ｄ（３，１）で、
元部分データＳ（２）をＤ（２，２）＋Ｄ（３，１）＋Ｄ（３，２）で復元し、
分散データＤ（１）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（１，１）＋Ｄ（１,２）＋Ｄ（４，２）で、
元部分データＳ（２）をＤ（１，１）＋Ｄ（４，１）＋Ｄ（４，２）で復元し、
分散データＤ（２）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（２，２）＋Ｄ（４，１）＋Ｄ（４，２）で、
元部分データＳ（２）をＤ（２，１）＋Ｄ（２，２）＋Ｄ（４，１）で復元し、
分散データＤ（３）およびＤ（４）から元データを復元する場合、
元部分データＳ（１）をＤ（３，２）＋Ｄ（４，１）で、
元部分データＳ（２）をＤ（３，１）＋Ｄ（４，２）で、復元すること
を特徴とする秘密分散プログラム。
【請求項１４】
請求項１２または請求項１３記載の秘密分散プログラムであって、
少なくとも２つの分散データから他の分散データを生成する追加分散データ生成手段、として機能させること
を特徴とする秘密分散プログラム。
【請求項１５】
請求項１４記載の秘密分散プログラムであって、
前記追加分散データ生成手段は、
分散データＤ（１）、Ｄ（２）およびＤ（３）から、分散データＤ（４）を生成する場合、
分散部分データＤ（４，１）をＤ（１，１）＋Ｄ（３，１）で、
分散部分データＤ（４，２）をＤ（２，２）＋Ｄ（３，２）で生成し、
分散データＤ（１）、Ｄ（２）およびＤ（４）から、分散データＤ（３）を生成する場合、
分散部分データＤ（３，１）をＤ（１，１）＋Ｄ（４，１）で、
分散部分データＤ（３，２）をＤ（２，２）＋Ｄ（４，２）で生成し、
分散データＤ（１）、Ｄ（３）およびＤ（４）から、分散データＤ（２）を生成する場合、
分散部分データＤ（２，１）をＤ（１，１）＋Ｄ（３，２）で、
分散部分データＤ（２，２）をＤ（１，２）＋Ｄ（３，１）で生成し、
分散データＤ（２）、Ｄ（３）およびＤ（４）から、分散データＤ（１）を生成する場合、
分散部分データＤ（１，１）をＤ（２，１）＋Ｄ（３，１）で、
分散部分データＤ（１，２）をＤ（２，２）＋Ｄ（３，２）で生成すること
を特徴とする秘密分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密分散法により、元データを複数の分散データに分散する秘密分散装置、秘密分散方法、および秘密分散プログラムに関する。
【背景技術】
【０００２】
業務のオンライン化、文書の電子化が進展すると、電子データに求められる要件が厳しくなる。電子データを扱う情報システムをセキュアに構築するための視点として、機密性、可用性などがある。
【０００３】
データを保管するストレージの可用性を高める技術としてＲＡＩＤがある。ＲＡＩＤは、複数のハードディスクを組み合わせてディスクアクセスを高速化し、また冗長性を持つことで、ハードディスクが故障した場合でもデータを復旧することできる。これまで、ＲＡＩＤを構成する１つのハードディスクが故障した場合にデータを復旧できるＲＡＩＤ５が利用されてきたが、近年、２つのハードディスクが故障した場合にもデータを復旧できるＲＡＩＤ６の利用が増加している。
【０００４】
ＲＡＩＤを構成する複数のハードディスクは、利用開始時期が同じであり、運用期間もほぼ同じであることから、１つのハードディスクの故障によりデータを復旧している最中にもう１つのハードディスクが故障するケースが発生する可能性がある。情報の電子化が進んでいる現在、データの保護が以前よりも強く要求されている。ＲＡＩＤは機密性を実現する仕組みは持たず、ＲＡＩＤに保管する前にデータを暗号化することで機密性を確保する必要がる。
【０００５】
データの機密性を実現するために、これまでＤＥＳやＡＥＳ等の暗号技術を用いている。しかし、これらの暗号技術は、時間をかけると解読されてしまうおそれがある。そのため、暗号化していても、暗号ファイルが盗難にあうと、いずれは解読されてしまうおそれがある。
【０００６】
データを安全にかつ冗長を持たせて保管する技術として、秘密分散法が提案されている。秘密分散法は、秘密情報をｎ個の分散データに分散し、ｎ個の分散データのうちｋ個（ｋ＜ｎ）から元の秘密情報を復元できるもので、これを（ｋ、ｎ）型秘密分散法と表記する。近年、大量なデータを効率的に処理できる秘密分散法としてバーナム暗号を応用した秘密分散法が注目されており、様々なバーナム暗号を応用した秘密分散法が提案されている。バーナム暗号を応用した秘密分散法としては、例えば、特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２１３６５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
さて、（ｎ−１、ｎ）型の秘密分散法は、ｎ個の分散データのうち（ｎ−１）が揃うと元の秘密情報を復元することができる。しかし、ｎ個のうち２つの分散データが失われてしまうと秘密情報を復元することができない。そのため、現在利用が増加してきているＲＡＩＤ６のように、ディスクの２重故障における可用性には対応できない。
【０００９】
また、（ｋ、ｎ）型の秘密分散法において、分散データのデータ量は、元の秘密情報のデータ量の少なくともｎ倍となる。すなわち、分散データを保管するために、元の秘密情報のデータ容量に対して分散数ｎに比例した倍数以上の膨大なディスク容量が必要となる。そのため、大量の秘密情報を比較的大きな分散数ｎで分散する場合、ディスク容量の面で現実的ではないという問題がある。
【００１０】
また、大量の秘密情報に対して、より少ない演算量でより効率的に、秘密分散を行うことが求められている。
【００１１】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、２重故障の可用性を実現しつつ、より少ない演算量でより効率的に秘密分散を行う秘密分散装置、秘密分散方法、および秘密分散プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明は、  元データから４つの分散データを生成する秘密分散装置であって、前記元データを分割して２つの元部分データを生成する元部分データ生成手段と、前記元部分データと同じサイズの乱数部分データを２つ生成する乱数生成手段と、前記４つの分散データのそれぞれを、当該分散データを構成する前記元部分データと同じサイズの分散部分データ単位で生成する分散データ生成手段と、前記４つの分散データのうち、任意の２つの分散データを用いて前記元データを復元する復元手段と、を有し、前記分散データ生成手段は、前記分散部分データを、前記元部分データおよび前記乱数部分データの排他的論理和を算出することにより生成する。
【００１３】
また、本発明は、情報処理装置が行う、元データから４つの分散データを生成する秘密分散方法であって、前記元データを分割して２つの元部分データを生成する元部分データ生成ステップと、前記元部分データと同じサイズの乱数部分データを２つ生成する乱数生成ステップと、前記４つの分散データのそれぞれを、当該分散データを構成する前記元部分データと同じサイズの分散部分データ単位で生成する分散データ生成ステップと、前記４つの分散データのうち、任意の２つの分散データを用いて前記元データを復元する復元ステップと、を行い、前記分散データ生成ステップは、前記分散部分データを、前記元部分データおよび前記乱数部分データの排他的論理和を算出することにより生成する。
【００１４】
また、本発明は、情報処理装置が実行する、元データから４つの分散データを生成する秘密分散プログラムであって、前記情報処理装置を、前記元データを分割して２つの元部分データを生成する元部分データ生成手段、前記元部分データと同じサイズの乱数部分データを２つ生成する乱数生成手段と、前記４つの分散データのそれぞれを、当該分散データを構成する前記元部分データと同じサイズの分散部分データ単位で生成する分散データ生成手段、および、前記４つの分散データのうち、任意の２つの分散データを用いて前記元データを復元する復元手段、として機能させ、前記分散データ生成手段は、前記分散部分データを、前記元部分データおよび前記乱数部分データの排他的論理和を算出することにより生成する。
【発明の効果】
【００１５】
本発明によれば、２重故障の可用性を実現しつつ、より少ない演算量でより効率的に秘密分散を行う秘密分散装置、秘密分散方法、および秘密分散プログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係る秘密分散システムの全体構成図である。
【図２】元データＳ、乱数データＲおよび分散データＤを模式的に示す図である。
【図３】分散データ生成処理のフローチャートである。
【図４】分散データ生成式を示す図である。
【図５】元データの復元処理のフローチャートである。
【図６】元データの復元式を示す図である。
【図７】追加分散データ生成処理のフローチャートである。
【図８】２つの分散データから追加分散データを生成する追加分散データ生成式を示す図である。
【図９】３つの分散データから追加分散データを生成する追加分散データ生成式を示す図である。
【図１０】分散データの再生成式を示す図である。
【図１１】第１の適用例のシステム構成を示す図である。
【図１２】第２の適用例のシステム構成を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について説明する。
【００１８】
図１は、本発明の実施形態に係る秘密分散システムの全体構成図である。本実施形態の秘密分散システムは、秘密分散装置１と、端末５と、複数の保管サーバ７ａ、７ｂ、７ｃ、７ｄとを有し、各装置はネットワーク３により接続されている。
【００１９】
本実施形態の秘密分散装置１は、（２、４）型の秘密分散を行うものである。すなわち、秘密分散装置１は、秘密情報である平文の元データＳを、４つの分散データＤ（１）、Ｄ（２）、Ｄ（３）、Ｄ（４）に分散し、この４つの分散データをネットワーク３を介して複数の保管サーバ７ａ、７ｂ、７ｃ、７ｄにそれぞれ保管する。また、秘密分散装置１は、複数の保管サーバに保管しておいた４つの分散データＤ（１）、Ｄ（２）、Ｄ（３）、Ｄ（４）のうちの任意の２つの分散データから元データＳを復元できるものとする。
【００２０】
図示する秘密分散装置１は、元データ入力部１１と、乱数生成部１２と、分散データ生成部１３（元部分データ生成手段、分散データ生成手段）と、元データ復元部１４（復元手段）と、追加分散データ生成部１５（追加分散データ生成手段）と、通信部１６と、記憶部１７とを有する。
【００２１】
元データ入力部１１は、ネットワーク３を介して端末５等から送信された元データＳを入力し、記憶部１７に記憶する。乱数生成部１２は、元データＳと同じサイズ（例えば、ビット長）の乱数Ｒを所定のアルゴリズムまたは熱雑音を使用するなどの方法により生成し、記憶部１７に記憶する。
【００２２】
分散データ生成部１３は、元データＳから４つの分散データＤを生成する。元データ復元部１４は、任意の２つの分散データＤから元データＳを復元する。追加分散データ生成部１５は、任意の３つの分散データＤから残りの１つの分散データＤを生成する。通信部部１６は、分散データ生成部１３またはは追加分散データ生成部１５が生成した分散データＤを、ネットワーク３を介して各保管サーバ７ａ、７ｂ、７ｃ、７ｄに送信するとともに、各保管サーバ７ａ、７ｂ、７ｃ、７ｄから分散データＤを受信する。
【００２３】
記憶部１７には、元データＳ、乱数Ｒなどが記憶される。また、記憶部１７には、後述する分散データ生成式、復元式および追加分散生成式があらかじめ記憶されている。記憶部１７には、メモリまたはＨＤＤなどの記憶装置が用いられる。
【００２４】
上記説明した秘密分散装置１および端末５は、例えば、少なくともＣＰＵと、メモリと、ＨＤＤなどの記憶装置とを備えたコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、秘密分散装置１および端末５の各機能は、秘密分散装置１用のプログラムの場合は秘密分散装置１のＣＰＵが、そして、端末５用のプログラムの場合は端末５のＣＰＵが、それぞれ実行することにより実現される。
【００２５】
図２は、本実施形態における、元データＳ、乱数データＲおよび分散データＤ（ｉ）（ｉ＝１〜４）を模式的に示すものである。本実施形態の分散データＤ（ｉ）の生成および元データＳの復元における処理単位は、元データの１／２のサイズ（ビット長）とする。
【００２６】
図示するように、元データＳは、２つの元部分データＳ（ｊ）（ｊ＝１、２）、すなわちＳ（１）、Ｓ（２）から構成される。元データＳを２等分して、２つの元部分データＳ（１）、Ｓ（２）とする。なお、元データＳのビット長が奇数の場合は、元データの末尾の部分に０を埋めるなどして元データＳを２分割する。
【００２７】
また、乱数Ｒは、２つの乱数部分データＲ（ｊ）（ｊ＝１、２）、すなわちＲ（１）、Ｒ（２）から構成される。乱数生成部１２は、元データＳと同じサイズ（ビット長）の乱数Ｒを生成し、当該乱数Ｒを２等分して２つの乱数部分データＲ（１）、Ｒ（２）とする。なお、乱数生成部１２は、最初から元部分データＳ（ｊ）と同じサイズの２つの乱数部分データＲ（ｊ）を生成してもよい。
【００２８】
また、４つの分散データＤ（ｉ）の各々は、２つの分散部分データＤ（ｉ，ｊ）（ｉ＝１〜４、ｊ＝１、２）から構成される。すなわち、第１の分散データＤ（１）は、第１の分散部分データＤ（１，１）およびＤ（１，２）から構成され、第２の分散データＤ（２）は、第２の分散部分データＤ（２，１）およびＤ（２，２）から構成され、第３の分散データＤ（３）は、第３の分散部分データＤ（３，１）およびＤ（３，２）から構成され、第４の分散データＤ（４）は、第４の分散部分データＤ（４，１）およびＤ（４，２）から構成される。
【００２９】
なお、各分散データＤ（ｉ）のサイズは元データＳと同じであり、各分散部分データ（ｉ，ｊ）のサイズも元部分データＳ（ｊ）と同じである。
【００３０】
そして、本実施形態は、各分散部分データＤ（ｉ，ｊ）を生成するために、元部分データと乱数部分データの排他的論理和演算（ＸＯＲ）を行う。すなわち、元部分データと乱数部分データの排他的論理和演算（ＸＯＲ）からなる分散データ生成式を用いて、各分散部分データＤ（ｉ，ｊ）を生成する。そして、対応する分散部分データＤ（ｉ，１）、Ｄ（ｉ，２）を結合して、分散データＤ（ｉ）を生成する。
【００３１】
これにより、本実施形態では、コンピュータ処理に適したビット演算である排他的論理和演算（ＸＯＲ）を用いることにより、多項式や剰余演算を用いる秘密分散処理と比較して、高速かつ高性能な演算処理能力を必要とせず、大容量の元データに対しても簡単な演算処理を繰り返して分散データを生成することができる。
【００３２】
なお、本実施形態で使用する排他的論理和演算（ＸＯＲ）は、以下の説明では、「＋」の演算記号で表すものとする。この排他的論理和演算のビット毎の演算規則での各演算結果は下記のとおりである。
【００３３】
０＋０の演算結果は０
０＋１の演算結果は１
１＋１の演算結果は１
１＋１の演算結果は０
また、排他的論理和演算は交換法則、結合法則が成り立つ。すなわち、
ａ＋ｂ＝ｂ＋ａ
（ａ＋ｂ）＋ｃ＝ａ＋（ｂ＋ｃ）
が成り立つことが数学的に証明される。
【００３４】
また、ａ＋ａ＝０，ａ＋０＝０＋ａ＝ａが成り立つ。
【００３５】
ここでａ，ｂ，ｃは、同じ長さのビット列を表し、０は、ａ，ｂ，ｃと同じ長さですべて「０」からなるビット列を表す。
【００３６】
＜分散データ生成処理＞
次に、元データＳから４つの分散データＤを生成する処理について説明する。
【００３７】
図３は、分散データＤ（ｉ）の生成処理を示すフローチャートである。端末５は、利用者が入力した元データＳを含む秘密分散要求を、ネットワーク３を介して秘密分散装置１に送信する。これにより、秘密分散装置１の元データ入力部１１は、端末５から送信された元データＳ受信する（Ｓ１１）。
【００３８】
なお、ここでは、受信した元データＳは、１６ビットの「10110010 00110111」であるものとする。この場合、以下で説明する乱数Ｒおよび分散データＤ（ｉ）は、すべて元データのビット長と同じ１６ビット長のデータである。
【００３９】
そして、分散データ生成部１３は、入力された元データＳを２等分し、２つの元部分データＳ（ｊ）を生成する（Ｓ１２）。すなわち、分散データ生成部１３は、第１の元部分データをＳ（１）とし、第２の元部分データをＳ（２）として記憶部１７に記憶する。
【００４０】
ここでは、元データＳのビット長が１６ビット長であるため、各元部分データＳ（ｊ）のビット長(処理単位ビット長)は８ビットである。なお、元データＳが「10110010 00110111」の場合、元部分データＳ（１）およびＳ（２）は、それぞれ「10110010」および「00110111」となる。なお、元データＳのビット長が奇数の場合には、元データＳの末尾に０を付加し、偶数のビット長にしてから２等分するものとする。
【００４１】
そして、乱数生成部１２は、元部分データＳ（１）、Ｓ（２）と同じサイズの乱数部分データＲ（１）、Ｒ（２）を生成し、記憶部１７に格納する（Ｓ１３）。乱数生成部１２は、元データＳと同じサイズの乱数Ｒを生成した後、２等分して乱数部分データＲ（１）、Ｒ（２）を生成しても、あるいは最初から乱数部分データＲ（１）、Ｒ（２）を生成してもよい。
【００４２】
なお、ここでは、乱数Ｒ（＝Ｒ（１）、Ｒ（２））は、以下の通りとする。
【００４３】
第１の乱数部分データＲ（１）＝「10110001」
第２の乱数部分データＲ（２）＝「00110101」
そして、分散データ生成部１３は、記憶部１７に記憶された元部分データと乱数部分データとの排他的論理和を演算することにより、分散データを生成する（Ｓ１４）。すなわち、分散データ生成部１３は、図４に示す分散データ生成式（論理演算式）にしたがって、４つの分散データＤ（ｉ）の各々を構成する各分散部分データＤ（ｉ，ｊ）を生成する。この分散データ生成式は、記憶部１７にあらかじめ記憶されているものとする。
【００４４】
図４は、分散データ生成式を示す表である。図示するように、分散データＤ（１）の分散部分データＤ（１，１）を生成するための式はＳ（１）＋Ｒ（１）＋Ｒ（２）であり、Ｄ（１，２）を生成するための式はＳ（２）＋Ｒ（２）である。分散データＤ（２）の分散部分データＤ（２，１）を生成するための式はＳ（１）＋Ｒ（１）であり、Ｄ（２，２）を生成するため式はＳ（２）＋Ｒ（１）＋Ｒ（２）である。
【００４５】
分散データＤ（３）の分散部分データＤ（３，１）を生成するための式はＲ（１）であり、Ｄ（３、２）を生成するための式はＲ（２）である。分散データＤ（４）の分散部分データＤ（４、１）を生成するための式はＳ（１）＋Ｒ（２）であり、Ｄ（４，２）の式はＳ（２）＋Ｒ（１）である。なお、分散データＤ（３）については、図示するように、排他的論理和の演算を行うことなく、乱数生成部１２が生成した乱数部分データＲ（１）、Ｒ（２）から構成される乱数Ｒのみからなる分散データである。
【００４６】
なお、図４に示す分散データ生成式では、１つの分散データＤ（ｉ）のみからは、元データＳを復元することができない。すなわち、乱数部分データＲ（ｊ）を取り除くことができない。具体的には、以下のように、１つの分散データＤ（ｉ）を構成する２つの分散部分データＤ（ｉ，ｊ）に何らかの論理演算を実施しても乱数部分データＲ（ｊ）を取り除くことができない。
【００４７】
D(1,1)+D(1,2)= (S(1)+R(1)+R(2)) + (S(2)+R(2)) 
= S(1)+S(2)+R(1)
D(2,1)+D(2,2)= (S(1)+R(1)) + (S(2)+R(1)+R(2)) 
= S(1)+S(2)+R(2)
D(3,1)+D(3,2)= R(1) + R(2) 
D(4,1)+D(4,2)= (S(1)+R(2)) + (S(2)+R(1)) 
= S(1)+S(2)+R(1)+R(2)
図４に示す分散データ生成式にしたがって、分散データ生成部１３が演算処理を行うことにより、ここでは、次に示すような分散データＤ（ｉ）の分散部分データＤ（ｉ，ｊ）が生成される。
【００４８】
すなわち、Ｄ（１，１）は「00110110」、Ｄ（１，２）は「00000010」となるので、Ｄ（１）は「00110110 00000010」である。
【００４９】
Ｄ（２，１）は「00000011」、Ｄ（２，２）は「10110011」となるので、Ｄ（２）は「0000001110110011」である。
【００５０】
Ｄ（３，１）は「10110001」、Ｄ（３，２）は「00110101」となるので、Ｄ（３）は「10110001 00110101」である。
【００５１】
Ｄ（４，１）は「10000111」、Ｄ（４，２）は「10000110」となるので、Ｄ（４）は「10000111 10000110」である。
【００５２】
このように、分散データ生成部１３は、対応する各分散部分データＤ（ｉ，ｊ）を結合して、分散データＤ（ｉ）を生成する。
【００５３】
そして、分散データ生成部１３は、通信部１６を用いて、生成した分散データＤ（１）、Ｄ（２）、Ｄ（３）、Ｄ（４）を、ネットワーク３を介して各保管サーバ７ａ、７ｂ、７ｃ、７ｄにそれぞれ送信し、各保管サーバ７に保管する（Ｓ１５）。なお、秘密分散装置１は、分散データを各保管サーバ７に送信した後は、メモリまたは記憶部１７に生成した当該分散データ、記憶部１７に記憶した元データおよび乱数を廃棄するものとする。
【００５４】
＜元データ復元処理＞
次に、分散データから元データを復元する処理について説明する。
【００５５】
本実施形態では、各保管サーバ７ａ，７ｂ，７ｃ、７ｄに格納された４つの分散データＤ（ｉ）のうち、２つの分散データを用いて元データＳを復元する。
【００５６】
図５は、元データＳの復元処理を示すフローチャートである。例えば、端末５は、利用者の要求を受け付けて、元データＳの復元要求をネットワーク３を介して秘密分散装置１に送信する。これにより、秘密分散装置１の元データ復元部１４は、端末５から送信された復元要求を受け付ける（Ｓ２１）。そして、元データ復元部１４は、通信部１６を用いて、任意の２つの分散データＤ（ｉ）を対応する保管サーバから取得し、記憶部１７に記憶する（Ｓ２２）。なお、秘密分散装置１は、元データＳから分散データＤ（ｉ）を生成した際に、どの分散データをどの保管サーバに保管したかを記憶しておくものとする。
【００５７】
そして、元データ復元部１４は、記憶部１７に記憶した分散データＤ（ｉ）の各々を２等分して、分散部分データＤ（ｉ，ｊ）を生成する（Ｓ２３）。そして、元データ復元部１４は、各分散部分データＤ（ｉ，ｊ）の排他的論理和を演算することにより、元データＳを復元する（Ｓ２４）。すなわち、元データ復元部１４は、図６に示す復元式（論理演算式）にしたがって、任意の２つの分散データＤ（ｉ）から、元データＳを復元する。この復元式は、記憶部１７にあらかじめ記憶されているものとする。
【００５８】
図６は、復元式を示す表である。図６に示するように、分散データＤ（１）およびＤ（２）から元データＳを復元する場合、元部分データＳ（１）は、次のように定義されている。
【００５９】
S(1)= D(1,2)+D(2,1)+D(2,2)
ここで、図４の分散データ生成式を参照すると上記式は、以下のように書き換えることができ、排他的論理和演算の交換法則および結合法則によりＳ（１）が復元される。
【００６０】
S(1)= (S(2)+R(2)) + (S(1)+R(1)) + (S(2)+R(1)+R(2))
= S(1)
Ｓ（２）についても同様に、図６に示す復元式から以下のように定義され、そして、図４の分散データ生成式から書き換えができ、Ｓ（２）が復元される。
【００６１】
S(2)= D(1,1)+D(1,2)+D(2,1)
= (S(1)+R(1)+R(2)) + (S(2)+R(2)) + (S(1)+R(1))
= S(2)
また、分散データＤ（１）およびＤ（３）から元データＳを復元する場合、図６に示す復元式から以下のように定義され、そして、図４の分散データ生成式から書き換えができ、Ｓ（１）およびＳ（２）が復元される。
【００６２】
S(1)= D(1,1)+D(3,1)+D(3,2)
= (S(1)+R(1)+R(2)) + (R(1)) + (R(2))
= S(1)
S(2)= D(1,2)+D(3,2)
= (S(2)+R(2)) + (R(2))
= S(2)
また、分散データＤ（２）およびＤ（３）から元データＳを復元する場合、図６に示す復元式から以下のように定義され、そして、図４の分散データ生成式から書き換えができ、Ｓ（１）およびＳ（２）が復元される。
【００６３】
S(1)= D(2,1)+D(3,1)
= (S(1)+R(1)) + (R(1))
= S(1)
S(2)= D(2,2)+D(3,1) +D(3,2)
= (S(2)+R(1)+R(2)) + (R(1)) + (R(2))
= S(2)
また、分散データＤ（１）およびＤ（４）から元データＳを復元する場合、図６に示す復元式から以下のように定義され、そして、図４の分散データ生成式から書き換えができ、Ｓ（１）およびＳ（２）が復元される。
【００６４】
S(1)= D(1,1)+D(1,2)+D(4,2)
= (S(1)+R(1)+R(2)) + (S(2)+R(2)) + (S(2)+R(1))
= S(1)
S(2)= D(1,1)+D(4,1)+D(4,2)
= (S(1)+R(1)+R(2)) +  (S(1)+R(2)) + (S(2)+R(1))
= S(2)
また、分散データＤ（２）およびＤ（４）から元データＳを復元する場合、図６に示す復元式から以下のように定義され、そして、図４の分散データ生成式から書き換えができ、Ｓ（１）およびＳ（２）が復元される。
【００６５】
S(1)= D(2,2)+D(4,1)+D(4,2)
= (S(2)+R(1)+R(2)) + (S(1)+R(2)) + (S(2)+R(1))
= S(1)
S(2)= D(2,1)+D(2,2)+D(4,1)
= (S(1)+R(1)) +  (S(2)+R(1)+R(2)) + (S(1)+R(2))
= S(2)
また、分散データＤ（３）およびＤ（４）から元データＳを復元する場合、図６に示す復元式から以下のように定義され、そして、図４の分散データ生成式から書き換えができ、Ｓ（１）およびＳ（２）が復元される。
【００６６】
S(1)= D(3,2)+D(4,1)
= (R(2)) + (S(1)+R(2))
= S(1)
S(2)= D(3,1)+D(4,2)
= (R(1)) + (S(2)+R(1))
= S(2)
以上説明したように保管サーバから取得した任意の２つの分散データＤ（ｉ）を用いて、元部分データＳ（１）、Ｓ（２）を復元することができ、したがって元データＳ（＝Ｓ（１）、Ｓ（２））を復元することができる。
【００６７】
そして、元データ復元部１４は、通信部１６を用いて、メモリ上で復元した（または記憶部１７に記憶された）元データＳを、要求元の端末５に送信する（Ｓ２５）。
【００６８】
＜追加分散データ生成処理＞
次に、任意の３つの分散データから、残りの１つの分散データを生成する処理について説明する。
【００６９】
本実施形態は、前述のとおり、元データから４つの分散データを生成し、当該４つの分散データのうちの任意の２つの分散データから元データを復元可能な（２、４）型の秘密分散法を用いるものである。
【００７０】
ここで、生成した４つの分散データのうちの任意の１つの分散データを破棄し、３つの分散データのみを保管サーバに保管した場合、（２、３）型の秘密分散法に変更される。一方、このように（２、４）型の秘密分散法から（２、３）型の秘密分散法に変更・移行した後に、再度（２、４）型の秘密分散法に戻したい場合がある。
【００７１】
また、ハードディスク障害などにより、いずれかの分散データが破壊されてしまう場合がある。この場合、残りの３つの分散データから破壊された分散データを生成し、再度、保管サーバに保管しておく必要がある。
【００７２】
本実施形態では、上記のような場合に、各保管サーバ７ａ，７ｂ，７ｃ、７ｄに格納された４つの分散データＤ（ｉ）のうち、３つの分散データを用いて残りの１つの分散データ(以下、「追加分散データ」)を生成する。
【００７３】
図７は、追加分散データの生成処理を示すフローチャートである。秘密分散装置１の追加分散データ生成部１５は、例えばシステム管理者などから追加分散データ生成要求を受け付ける（Ｓ３１）。そして、追加分散データ生成部１５は、通信部１６を用いて、いずれか３つの分散データＤ（ｉ）をそれぞれ対応する保管サーバから取得し、記憶部１７に記憶する（Ｓ３２）。
【００７４】
そして、追加分散データ生成部１５は、記憶部１７に記憶した分散データＤ（ｉ）の各々を２等分して、分散部分データＤ（ｉ，ｊ）を生成する（Ｓ３３）。そして、追加分散データ生成部１５は、各分散部分データＤ（ｉ，ｊ）の排他的論理和を演算することにより、１つの追加分散データを生成する（Ｓ３４）。すなわち、追加分散データ生成部１５は、図８に示す追加分散データ生成式（論理演算式）にしたがって、３つの分散データＤ（ｉ）から、追加分散データを生成・復元する。この追加分散データ生成式は、記憶部１７にあらかじめ記憶されているものとする。
【００７５】
図８は、追加分散データ生成式を示す表である。図８に示すように、分散データＤ（１）、Ｄ（２）およびＤ（３）から追加分散データＤ（４）を生成する場合、追加分散部分データＤ（４，１）は、次のように定義されている。
【００７６】
D(4,1)= D(1,1)+D(3,1)
ここで、図４の分散データ生成式を参照すると上記式は、以下のように書き換えることができ、排他的論理和演算の交換法則および結合法則により、図４の分散データ生成式に示すＤ（４，１）を生成することができる。
【００７７】
S(4,1)= (S(1)+R(1)+R(2)) + (R(1))
= S(1)+R(2)
追加分散部分データＤ（４，２）についても同様に、図８に示す追加分散データ生成式から以下のように定義され、そして、図４の分散データ生成式から書き換えができ、図４に示すＤ（４，２）を生成することができる。
【００７８】
D(4,2)= D(2,2)+D(3,2)
= (S(2)+R(1)+R(2)) + (R(2))
= S(2) +R(1)
また、分散データＤ（１）、Ｄ（２）およびＤ（４）から追加分散データＤ（３）を生成する場合、図８に示す追加分散データ生成式から追加分散部分データＤ（３，１）およびＤ（３，２）は下記のように定義され、そして、図４の分散データ生成式から書き換えができ、図４に示すＤ（３，１）およびＤ（３，２）を生成することができる。
【００７９】
D(3,1)= D(1,1)+D(4,1)
= (S(1)+R(1)+R(2)) + (S(1)+R(2))
= R(1)
D(3,2)= D(2,2)+D(4,2)
= (S(2)+R(1)+R(2)) + (S(2)+R(1))
= R(2)
また、分散データＤ（１）、Ｄ（３）およびＤ（４）から追加分散データＤ（２）を生成する場合、図８に示す追加分散データ生成式から追加分散部分データＤ（２，１）およびＤ（２，２）は下記のように定義され、そして、図４の分散データ生成式から書き換えができ、図４に示すＤ（２，１）およびＤ（２，２）を生成することができる。
【００８０】
D(2,1)= D(1,1)+D(3,2)
= (S(1)+R(1)+R(2)) + (R(2))
= S(1)+R(1)
D(2,2)= D(1,2)+D(3,1)
= (S(2)+R(2)) + (R(1))
= S(2)+R(1)+R(2)
また、分散データＤ（２）、Ｄ（３）およびＤ（４）から追加分散データＤ（１）を生成する場合、図８に示す追加分散データ生成式から追加分散部分データＤ（１，１）およびＤ（１，２）は下記のように定義され、そして、図４の分散データ生成式から書き換えができ、図４に示すＤ（１，１）およびＤ（１，２）を生成することができる。
【００８１】
D(1,1)= D(2,1)+D(3,2)
= (S(1)+R(1)) + (R(2))
= S(1)+R(1)+R(2)
D(1,2)= D(2,2)+D(3,1)
= (S(2)+R(1)+R(2)) + (R(1))
= S(2)+R(2)
なお、図８に示す追加分散データ生成式は一例であって、他の追加分散データ生成式を用いて追加分散データを生成することとしてもよい。
【００８２】
そして、追加分散データ生成部１５は、通信部１６を用いて、メモリ上で生成した（または記憶部１７に記憶された）追加分散データを、所定の保管サーバに送信し、保管する（Ｓ３５）。
【００８３】
次に、任意の２つの分散データから、残りの２つの分散データ（追加分散データ）を生成する処理について説明する。
【００８４】
図９は、任意の２つの分散データから、残りの２つの追加分散データを生成する追加分散データ生成式を示す表である。
【００８５】
秘密分散装置１の追加分散データ生成部１５は、図７と同様に、例えばシステム管理者などから追加分散データ生成要求を受け付け（Ｓ３１）、いずれか２つの分散データＤ（ｉ）をそれぞれ対応する保管サーバから取得して記憶部１７に記憶し（Ｓ３２）、記憶部１７に記憶した分散データＤ（ｉ）の各々を２等分して、分散部分データＤ（ｉ，ｊ）を生成する（Ｓ３３）。
【００８６】
そして、追加分散データ生成部１５は、各分散部分データＤ（ｉ，ｊ）の排他的論理和を演算することにより、２つの追加分散データを生成する（Ｓ３４）。すなわち、追加分散データ生成部１５は、図７のＳ３４と同様に、図９に示す追加分散データ生成式（論理演算式）にしたがって、２つの分散データＤ（ｉ）から、２つの追加分散データを生成・復元する。この追加分散データ生成式は、記憶部１７にあらかじめ記憶されているものとする。
【００８７】
そして、追加分散データ生成部１５は、通信部１６を用いて、メモリ上で生成した（または記憶部１７に記憶された）追加分散データを、所定の保管サーバに送信し、保管する（Ｓ３５）。
【００８８】
＜分散データの再生成処理＞
次に、新たな乱数Ｒ’を用いて、分散データＤ（１）〜Ｄ（４）から新たな分散データＤ（１）’〜Ｄ（４）’を再生成する処理について説明する。なお、この分散データの再生成処理は、分散データ生成部１３が行うものとする。
【００８９】
この分散データの再生成処理には、４つの分散データのうちの少なく２つの分散データと、新たな乱数Ｒ’とを用いることにより、新たな分散データＤ（１）’〜Ｄ（４）’を再生成することができる。そのため、ある分散データが滅失したことを契機に、データ復旧の一環としての分散データの再生成処理を行い、新たな分散データＤ（１）’〜Ｄ（４）’を再生成することとしてもよい。
【００９０】
分散データの再生成処理は、図４の分散データ生成式を変更するものではなく、乱数Ｒを新たな乱数Ｒ’で置き換えることで実施することができる。乱数Ｒ（すなわち、分散データＤ（３））は、図９で説明したように、少なくとも２つの分散データがあれば生成することができるので、分散データの再生成処理は、少なく２つの分散データと、新たな乱数Ｒ’とがあれば実施することができる。なお、新たな乱数Ｒ’については、乱数生成部１２が生成する。
【００９１】
以下に、分散データＤ（１）、Ｄ（２）から、新たな分散データを再生成する処理を具体的に説明する。乱数Ｒ（分散データＤ（３））は、図９で説明したように、分散データＤ（１）、Ｄ（２）から生成する。
【００９２】
分散部分データＤ（１，１）は、図４の分散データ生成式に示すとおり、「Ｓ（１）＋Ｒ（１）＋Ｒ（２）」の式で算出することができる。この分散部分データＤ（１，１）を再生成するには、この「Ｓ（１）＋Ｒ（１）＋Ｒ（２）」のＲ（１）とＲ（２）を、新たな乱数Ｒ’（１）とＲ’（２）で置き換える必要がある。下記の式に示すように、乱数の項Ｒ（１）とＲ（２）は、乱数Ｒ（１）とＲ（２）の排他的論理和演算により消すことができる。
【００９３】
D(1,1)+R(1)+R(2) = (S(1)+R(1)+R(2))+R(1)+R(2)
= S(1)
そして、上記式に新たな乱数Ｒ’（１）＋Ｒ’（２）の排他的論理和演算を行うことにより、下記のように新たな分散部分データＤ’（１，１））を算出することができる。
【００９４】
D’(1,1) = D(1,1)+R(1)+R(2)+R’(1)+R’(2)
= (S(1)+R(1)+R(2))+R(1)+R(2)+R’(1)+R’(2)
= S(1)+R’(1)+R’(2)
図１０は、新たな分散データＤ’（i）を再生成するための生成式である。他の新たな分散部分データＤ’（i，j）についても、Ｄ（１，１）と同様に、図１０の生成式にしたがって算出することができる。なお、新たな分散データＤ’（４）の再生成に必要な分散部分データＤ（４，１）、（４，２）については、図９の追加分散データ生成式により分散データＤ（１）、Ｄ（２）から生成するものとする。
【００９５】
なお、上記説明では、分散データＤ（１）、Ｄ（２）から新たな分散データＤ’（i）を再生成する場合の処理について説明したが、他の任意の２つの分散データＤ（ｉ）を用いた場合であっても、他の分散データを図９の追加分散データ生成式を用いて生成し、図１０の式に適用することにより、新たな分散データＤ’（i）を再生成ことができる。
【００９６】
＜秘密分散装置システムの適用例＞
以下に、秘密分散システムの適用例について説明する。
【００９７】
図１１は、本実施形態の秘密分散装置１の第１の適用例を示す構成図である。本実施形態の秘密分散は、ハードディスクのブロックに対して行うことができるため、秘密分散装置１に接続された複数のハードディスクをＲＡＩＤの代わりとして使用することができる。
【００９８】
図示するように秘密分散装置１には、４つのハードディスク（ＨＤＤ＃１、ＨＤＤ＃２、ＨＤＤ＃３、ＨＤＤ＃４）が接続されている。平時においては、秘密分散装置１は、入力された平文の元データＳから、前述のように４つの分散データＤ（ｉ）を生成し、各ハードディスクに格納する。
【００９９】
また、ハードディスク故障時においては、本実施形態は（２、４）型の秘密分散であるため、２つのハードディスク（例えば、ＨＤＤ＃２とＨＤＤ＃４）が同時に故障しても、残りのハードディスク（例えば、ＨＤＤ＃１とＨＤＤ＃３）から元データＳを復元することができる。すなわち、図１１に示す適用例では、ＲＡＩＤ６と同等の可用性を実現しつつ、１つのハードディスクに格納された分散データだけでは元データを復元できないため、元データＳの機密性および安全性を確保することができる。なお、ＲＡＩＤ６には、機密性の仕組みはないため、機密性を確保するには、暗号と組み合わせて使用する必要があるため、コストが増大する。
【０１００】
図１２は、本実施形態の秘密分散装置１の第２の適用例を示す構成図である。本実施形態の秘密分散は、ファイルに対して行うことができるため、図１と同様に、入力された元データファイルＳを、４つの分散データファイルに分散し、別々の装置に保管することでバックアップとしての用いることができる。図示する例では、分散データＤ（１）のファイル１０１は秘密分散装置１と接続され、他の分散データＤ（２）、Ｄ（３）、Ｄ（４）のファイル１０２〜１０４は、ネットワークを介してそれぞれ異なる場所に設置された保管サーバに格納されるものとする。
【０１０１】
図１２に示す場合、例えば、分散データＤ（２）のファイル１０２がハードディスク故障時で、かつ、分散データＤ（４）のファイルが格納された保管サーバの建物が火災にあった場合であっても、残りのファイル１０１、１０３から元データファイルＳを復元することができる。
【０１０２】
以上説明した本実施形態では、秘密情報である元データＳから４つの分散データＤ（ｉ）を生成するとともに、当該４つの分散データＤ（ｉ）のうちの任意の２つの分散データから元データＳを復元できる（２、４）型の秘密分散を行うものである。これにより、本実施形態では、ハードディスクの２重故障に耐えうる可用性を実現しつつ、高い機密性を確保することができる。
【０１０３】
また、本実施形態では、コンピュータ処理に適したビット演算である排他的論理和演算（ＸＯＲ）を用いることにより、大容量の元データに対しても簡単な演算処理を繰り返して分散データを生成することができる。
【０１０４】
また、本実施形態では、元データＳを２等分した元部分データＳ（ｊ）のサイズを処理単位として、分散部分データＤ（ｉ，ｊ）を生成し、また、元部分データＳ（ｊ）を復元する。これにより、本実施形態では、従来の秘密分散法と比較して、より少ない演算数（排他的論理和の演算数）で分散データの生成および元データの復元を行うことができる。すなわち、本実施形態では、大容量のデータに対して、より効率よく、より高速に秘密分散処理を実施することができる。
【０１０５】
また、本実施形態では、任意の３つの分散データから、残りの１つの分散データ（追加分散データ）を生成可能である。これにより、本実施形態では、４つの分散データのうち任意の３つの分散データのみを保管することにより、（２、３）型の秘密分散となる。また、３つの分散データから残りの分散データを生成できるため、（２、３）型の秘密分散から（２、４）型の秘密分散に移行することもできる。このように、本実施形態では、（２、４）型秘密分散での運用と、（２、３）型秘密分散での運用との相互切換えを容易に行うことができる。
【０１０６】
また、４つの分散データのうち任意の３つの分散データのみを保管して（２、３）型の秘密分散とすることにより、分散データを保管するディスク容量を削減することができる。
【０１０７】
また、元データから生成された４つの分散データのうちの１つが、ハードディスク障害などにより破壊または消去された場合であっても、破壊・消去された分散データを生成することができる。したがって、１つの分散データが破壊・消去された場合であっても、当該破壊・消去された分散データを再生成できるため、利用者が提示した元データを変更することなく（２、４）型秘密分散として運用できるため、利用者の利便性を向上することができる。
【０１０８】
また、本実施形態の分散データＤ（３）は、乱数Ｒのみで構成されるデータである。そのため、仮に元データＳを変更した場合であっても、分散データＤ（３）を変更する必要がない。分散データＤ（３）をネットワークから切り離して保管するサービス提供形態を行うことも可能である。
【０１０９】
また、本実施形態は、（２、４）型の秘密分散を行うものである。（２、３）型の秘密分散の場合、可用性を高める方法として、各分散データをバックアップすることが考えられる。その場合、単純にデータをコピーすると、分散データの容量は２倍になり、すなわち、元データの６倍の容量のディスクが必要となる。これに対し、（２、４）型の秘密分散を行う本実施形態では、ハードディスクの２重故障に耐えうる可用性を実現しているため、各分散データのバックアップが不要であり、したがって、元データの４倍のディスク容量に抑えることができる。
【０１１０】
また、本実施形態では、秘密分散により元データの機密性を確保するものであり、１つの分散データからは元データを復元できないものである。そのため、本実施形態では、時間をかけると解読されてしまうおそれがある暗号技術を用いた場合と比較して、長期間保管しても危殆化することなく、より高い機密性を実現することができる。
【０１１１】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【符号の説明】
【０１１２】
１    秘密分散装置
１１  元データ入力部
１２  乱数生成部
１３  分散データ生成部
１４  元データ復元部
１５  追加分散データ生成部
１６  通信部
１７  記憶部
３    ネットワーク
５    端末
７ａ，７ｂ，７ｃ，７ｄ  保管サーバ
【図１】
2011035618.tif 000003
【図２】
2011035618.tif 000004
【図３】
2011035618.tif 000005
【図４】
2011035618.tif 000006
【図５】
2011035618.tif 000007
【図６】
2011035618.tif 000008
【図７】
2011035618.tif 000009
【図８】
2011035618.tif 000010
【図９】
2011035618.tif 000011
【図１０】
2011035618.tif 000012
【図１１】
2011035618.tif 000013
【図１２】
2011035618.tif 000014