"秘密データをk,L,nランプ型閾値秘密分散によりn個の分割データに分割して、n個の前記分割データをそれぞれ異なる記憶装置に分散保管するデータ分割装置であって、前記秘密データから抽出した長さSの単位秘密データを複数の秘密部分データに分割し、前記秘密部分データと同じ長さで、前記秘密部分データの数の半数の乱数部分データを生成し、前記秘密部分データ、前記乱数部分データ、および前記秘密部分データのうちの1個以上と前記乱数部分データのうちの1個から分割部分データを生成するためのXOR演算を定義した分割行列に基づいて、複数の前記分割部分データを生成し、それぞれ異なる前記乱数部分データを含むXOR演算により生成された複数の前記分割部分データを連結してn種類の長さS/Lの単位分割データを生成し、前記単位分割データを種類毎に連結してn個の分割データを生成する分割処理部を有することを特徴とするデータ分割装置。請求項1に記載のデータ分割装置において、k個の前記分割データのそれぞれから抽出した長さS/2の前記単位分割データから複数の前記分割部分データをそれぞれ抽出し、前記分割データの種類の組み合わせに対応した前記分割行列の部分行列に対する逆行列である復元行列に基づく、抽出した前記分割部分データのXOR演算により、複数の前記秘密部分データを生成し、生成した前記秘密部分データを連結して長さSの前記単位秘密データを生成し、生成した前記単位秘密データを連結して前記秘密データを生成する復元処理部を有することを特徴とするデータ分割装置。請求項2に記載のデータ分割装置において、前記分割処理部もしくは前記復元処理部は、前記分割行列もしくは前記復元行列に基づくXOR演算において、複数回重複して現れるXOR演算の式を中間式として定義しておき、前記分割行列または前記復元行列に基づくXOR演算の際に、前記中間式と一致する部分に予め算出しておいた前記中間式の値を代入することを特徴とするデータ分割装置。秘密データを3,2,4ランプ型閾値秘密分散により4個の分割データに分割して、4個の前記分割データをそれぞれ異なる記憶装置に分散保管するデータ分割装置であって、前記秘密データから抽出した長さSの単位秘密データを長さS/6の6個の秘密部分データに分割し、長さS/6の3個の乱数部分データを生成し、前記秘密部分データ、前記乱数部分データ、および前記秘密部分データのうちの1個以上と前記乱数部分データのうちの1個から分割部分データを生成するためのXOR演算を定義した分割行列に基づいて、12個の前記分割部分データを生成し、それぞれ異なる前記乱数部分データを含むXOR演算により生成された3個の前記分割部分データを連結して4種類の長さS/2の単位分割データを生成し、前記単位分割データを種類毎に連結して4個の分割データを生成する分割処理部を有することを特徴とするデータ分割装置。請求項4に記載のデータ分割装置において、3個の前記分割データのそれぞれから抽出した長さS/2の前記単位分割データから3個の前記分割部分データをそれぞれ抽出し、前記分割データの種類の組み合わせに対応した前記分割行列の部分行列に対する逆行列である復元行列に基づく、抽出した前記分割部分データのXOR演算により、6個の前記秘密部分データを生成し、生成した前記秘密部分データを連結して長さSの前記単位秘密データを生成し、生成した前記単位秘密データを連結して前記秘密データを生成する復元処理部を有することを特徴とするデータ分割装置。請求項4に記載のデータ分割装置において、前記分割行列により定義された、前記秘密部分データs1~s6のうちの1個以上と前記乱数部分データr1~r3のうちの1個から、12個の前記分割部分データを生成するためのXOR演算の式は、a1=r1s1s2a2=r2s3s4a3=r3s5s6b1=r1s3s5b2=r2s1s3s5s6b3=r3s2s4s6c1=r1s3s4s6c2=r2s2s3s4s5c3=r3s1s3s3s5s6d1=r1s1s2s3s5d2=r2s1s4s5s6d3=r3s2s4s5で表され、a1~a3、b1~b3、c1~c3、d1~d3の各3個の前記分割部分データをそれぞれ連結して、A~Dの4種類の前記単位部分データを生成することを特徴とするデータ分割装置。請求項6に記載のデータ分割装置において、前記復元行列に基づく、前記分割部分データから前記秘密部分データを生成するためのXOR演算の式は、前記分割データの種類がA、B、Cの場合は、s1=a2b1b2c1s2=a1a2a3b1c2c3s3=a1b2c1c2s4=a2a3b3c2s5=a1a3b1c3s6=a1a2b3c1c2c3で表され、前記分割データの種類がA、B、Dの場合は、s1=a1a3b1b2b3d2s2=a1a3b2b3d1d2s3=a1a2a3b1b2d3s4=a1a2a3b1d2d3s5=a2a3b1b2d1d3s6=a2a3b1b2b3d1で表され、前記分割データの種類がA、C、Dの場合は、s1=a1a2a3c2c3d1s2=a1c1c3d3s3=a2c1c2c3d1d3s4=a1c1c2d2s5=a1a2c1c2c3d3s6=a3c2c3d2で表され、前記分割データの種類がB、C、Dの場合は、s1=b3c1c2c3d1d2s2=b1b3c1c2c3d2s3=b1b2b3c1d2d3s4=b1b3c1d3s5=b2c1c2d1s6=b2b3c1c2d1d3で表され、s1~s6の6個の前記秘密部分データを連結して前記単位部分データを生成することを特徴とするデータ分割装置。請求項6に記載のデータ分割装置において、前記分割処理部は、前記分割行列に基づくXOR演算の式において、t1=s3s4t2=s1s2t3=s3s5t4=s5s6t5=r3s2s4t6=t2t3t7=r2s1t4の各式を分割中間式として、前記各分割中間式の値を予め算出しておき、前記分割行列に基づくXOR演算の際に、前記分割中間式と一致する部分に前記分割中間式の値を代入することを特徴とするデータ分割装置。請求項7に記載のデータ分割装置において、前記復元処理部は、前記復元行列に基づくXOR演算の式において、前記分割データの種類がA、B、Cの場合は、w1=b2c1w2=a3b1w3=a1c3w4=a2c2w5=w3w4の各式を復元中間式とし、前記分割データの種類がA、B、Dの場合は、x1=a1a3x2=a2b1x3=b2b3d2x1x4=d3x1x2x5=a3b2d1x2の各式を復元中間式とし、前記分割データの種類がA、C、Dの場合は、y1=a2c2y2=a3c3y3=c2d2y4=a1c1y5=c3d3の各式を復元中間式とし、前記分割データの種類がB、C、Dの場合は、z1=a1a3z2=a2b1の各式を復元中間式として、前記各復元中間式の値を予め算出しておき、前記復元行列に基づくXOR演算の際に、前記復元中間式と一致する部分に前記復元中間式の値を代入することを特徴とするデータ分割装置。秘密データを3,2,4ランプ型閾値秘密分散により4個の分割データに分割するデータ分割装置としてコンピュータを機能させるデータ分割プログラムであって、前記秘密データから抽出した長さSの単位秘密データを長さS/6の6個の秘密部分データに分割するステップと、長さS/6の3個の乱数部分データを生成するステップと、前記秘密部分データ、前記乱数部分データ、および前記秘密部分データのうちの1個以上と前記乱数部分データのうちの1個から分割部分データを生成するためのXOR演算を定義した分割行列に基づいて、12個の前記分割部分データを生成するステップと、それぞれ異なる前記乱数部分データを含むXOR演算により生成された3個の前記分割部分データを連結して4種類の長さS/2の単位分割データを生成するステップと、前記単位分割データを種類毎に連結して4個の分割データを生成するステップとを実行することを特徴とするデータ分割プログラム。請求項10に記載のデータ分割プログラムにおいて、3個の前記分割データのそれぞれから抽出した長さS/2の前記単位分割データから3個の前記分割部分データをそれぞれ抽出するステップと、前記分割データの種類の組み合わせを特定するステップと、前記分割データの種類の組み合わせに対応した前記分割行列の部分行列に対する逆行列である復元行列に基づく、抽出した前記分割部分データのXOR演算により、6個の前記秘密部分データを生成するステップと、生成した前記秘密部分データを連結して長さSの前記単位秘密データを生成するステップと、生成した前記単位秘密データを連結して前記秘密データを生成する復元処理部を有することを特徴とするデータ分割プログラム。請求項10に記載のデータ分割プログラムにおいて、前記分割行列により定義された、前記秘密部分データs1~s6のうちの1個以上と前記乱数部分データr1~r3のうちの1個から、12個の前記分割部分データを生成するためのXOR演算の式は、a1=r1s1s2a2=r2s3s4a3=r3s5s6b1=r1s3s5b2=r2s1s3s5s6b3=r3s2s4s6c1=r1s3s4s6c2=r2s2s3s4s5c3=r3s1s3s3s5s6d1=r1s1s2s3s5d2=r2s1s4s5s6d3=r3s2s4s5で表され、a1~a3、b1~b3、c1~c3、d1~d3の各3個の前記分割部分データをそれぞれ連結して、A~Dの4種類の前記単位部分データを生成することを特徴とするデータ分割プログラム。請求項11に記載のデータ分割プログラムにおいて、前記復元行列に基づく、前記分割部分データから前記秘密部分データを生成するためのXOR演算の式は、前記分割データの種類がA、B、Cの場合は、s1=a2b1b2c1s2=a1a2a3b1c2c3s3=a1b2c1c2s4=a2a3b3c2s5=a1a3b1c3s6=a1a2b3c1c2c3で表され、前記分割データの種類がA、B、Dの場合は、s1=a1a3b1b2b3d2s2=a1a3b2b3d1d2s3=a1a2a3b1b2d3s4=a1a2a3b1d2d3s5=a2a3b1b2d1d3s6=a2a3b1b2b3d1で表され、前記分割データの種類がA、C、Dの場合は、s1=a1a2a3c2c3d1s2=a1c1c3d3s3=a2c1c2c3d1d3s4=a1c1c2d2s5=a1a2c1c2c3d3s6=a3c2c3d2で表され、前記分割データの種類がB、C、Dの場合は、s1=b3c1c2c3d1d2s2=b1b3c1c2c3d2s3=b1b2b3c1d2d3s4=b1b3c1d3s5=b2c1c2d1s6=b2b3c1c2d1d3で表され、s1~s6の6個の前記秘密部分データを連結して前記単位部分データを生成することを特徴とするデータ分割プログラム。請求項12に記載のデータ分割プログラムにおいて、前記分割行列に基づくXOR演算により前記分割部分データを生成するステップの前に、前記分割行列に基づくXOR演算の式において、t1=s3s4t2=s1s2t3=s3s5t4=s5s6t5=r3s2s4t6=t2t3t7=r2s1t4の各式を分割中間式として、前記各分割中間式の値を予め算出しておくステップを実行し、前記分割行列に基づくXOR演算により前記分割部分データを生成するステップにおいて、前記分割中間式と一致する部分に前記分割中間式の値を代入することを特徴とするデータ分割プログラム。請求項13に記載のデータ分割プログラムにおいて、前記復元行列に基づくXOR演算により前記秘密部分データを生成するステップの前に、前記復元行列に基づくXOR演算の式において、前記分割データの種類がA、B、Cの場合は、w1=b2c1w2=a3b1w3=a1c3w4=a2c2w5=w3w4の各式を復元中間式とし、前記分割データの種類がA、B、Dの場合は、x1=a1a3x2=a2b1x3=b2b3d2x1x4=d3x1x2x5=a3b2d1x2の各式を復元中間式とし、前記分割データの種類がA、C、Dの場合は、y1=a2c2y2=a3c3y3=c2d2y4=a1c1y5=c3d3の各式を復元中間式とし、前記分割データの種類がB、C、Dの場合は、z1=a1a3z2=a2b1の各式を復元中間式として、前記各復元中間式の値を予め算出しておくステップを実行し、前記復元行列に基づくXOR演算により前記秘密部分データを生成するステップにおいて、前記復元中間式と一致する部分に前記復元中間式の値を代入することを特徴とするデータ分割プログラム。近年、ノート型PCPersonalComputerやタブレット型PC、いわゆるスマートフォンなどの携帯可能な情報処理端末が広く利用されるに従って、これらの端末自体の盗難や紛失等に伴う情報漏洩のリスクが高まっている。これに対して、端末内の重要データを含むデータを外部のサーバ等に保管することで端末の紛失等に伴う情報漏洩のリスクを低減することが考えられる。このとき、重要データをそのまま外部のサーバ等に保管するのではなく、例えば、上述した秘密分散の技術を利用して重要データを非重要データに分割分散して分割データとし、これを外部のサーバ等に分散保管することで、例えば、クラウドコンピューティング環境における仮想データセンターや仮想サーバなどに保管するような場合においても情報漏洩のリスクを低減させることが可能である。しかしながら、これらの携帯端末では、デスクトップ型のPC等に比べて演算処理能力に余裕がないことが通常であり、また、分割データを保管する先のサーバ等にアクセスするためのネットワークについても、無線通信など、帯域幅に余裕がないものであることが多い。従って、秘密分散の処理には、特に効率的かつ高速な処理が求められ、また、生成される分割データのデータ量も小さいものであることが求められる。この点、上述の特許文献1に記載された技術では、秘密部分データと乱数部分データとのXOR演算により複数の分割データを生成することで、処理の効率化高速化を図るとともに、ランプ型の閾値秘密分散ではないものの、n個の分割データ全体のデータ量を一般的なk,n閾値秘密分散法の場合よりも小さくすることが可能である。特許文献1に記載された技術では、XOR演算の対象として、複数の秘密部分データの各々に対応して、原則として秘密データと同じ長さの乱数から秘密部分データと同じ長さに区切った秘密部分データと同数の乱数部分データを必要とする。一方で、秘密データより短い長さの乱数に対しては、同様に秘密部分データと同じ長さに区切って乱数部分データを生成した上で、足りない分は既に生成されている乱数部分データを再利用することで、複数の秘密部分データの各々に対応させるものとしている。このとき、生成される分割データの1つを乱数部分データのみからなるようにし、当該分割データを生成する際に、再利用している乱数部分データの保持を省略して重複を回避することで、乱数部分データのみからなる分割データのデータ量を小さくすることを可能とする。しかしながら、特許文献1に記載された手法では、n個の分割データ全体でのデータ量は小さくなるものの、実際にサイズが小さくなるのは乱数部分データのみからなる1つの分割データのみであり、他の分割データのサイズは秘密データと同じサイズとなる。従って、全体でのデータ量の縮小効果はそれほど大きくならず、また、他の分割データについては送信保管する際のリソースの消費量が全く削減されないことになる。また、乱数部分データのみからなる分割データがサイズから識別可能となってしまうというリスクが生じるなど、実システムでの利用に際しては課題を有する。一方で、上述したランプ型のk,L,n閾値秘密分散の手法によれば、安全性の条件は若干緩められるものの、n個の各分割データのサイズを1/Lに縮小して、全体でのデータ量を1/Lに縮小することができる。また、実際の演算処理についても、秘密データを分割したデータと乱数とのXOR演算とすることにより、コンピュータでの演算処理による分割データの生成を効率化高速化する手法が提案されている。しかしながら、XOR演算によりk,L,n閾値秘密分散を行う際の具体的な計算方法実際の計算式としては種々のものが考えられ、計算式次第で処理性能は大きく変わる。また、秘密データから秘密分散により分割データを生成する際の処理性能だけでなく、複数の分割データから秘密データを復元する際の処理性能についても合わせて、全体としての処理の効率化高速化が求められる。そこで本発明の目的は、秘密データをk,L,nランプ型閾値秘密分散によりn個の分割データに分割して秘匿化する際、およびk個以上の分割データからk,L,nランプ型閾値秘密分散により秘密データを復元する際のXOR演算の処理を全体として効率化および高速化することを可能とするデータ分割装置およびデータ分割プログラムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。本発明の代表的な実施の形態によるデータ分割装置は、秘密データをk,L,nランプ型閾値秘密分散によりn個の分割データに分割して、n個の前記分割データをそれぞれ異なる記憶装置に分散保管するデータ分割装置であって、以下の特徴を有するものである。すなわち、データ分割装置は、前記秘密データから抽出した長さSの単位秘密データを複数の秘密部分データに分割し、前記秘密部分データと同じ長さで、前記秘密部分データの数の半数の乱数部分データを生成し、前記秘密部分データ、前記乱数部分データ、および前記秘密部分データのうちの1個以上と前記乱数部分データのうちの1個から分割部分データを生成するためのXOR演算を定義した分割行列に基づいて、複数の前記分割部分データを生成し、それぞれ異なる前記乱数部分データを含むXOR演算により生成された複数の前記分割部分データを連結してn種類の長さS/Lの単位分割データを生成し、前記単位分割データを種類毎に連結してn個の分割データを生成する分割処理部を有することを特徴とする。また、本発明は、コンピュータを上記のようなデータ分割装置として機能させるプログラムにも適用することができる。本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明の代表的な実施の形態によれば、秘密データをk,L,nランプ型閾値秘密分散によりn個の分割データに分割して秘匿化する際、およびk個以上の分割データからk,L,nランプ型閾値秘密分散により秘密データを復元する際のXOR演算の処理を全体として効率化および高速化することが可能となる。以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。本発明の一実施の形態であるデータ分割装置は、秘密データをk,L,nランプ型閾値秘密分散によりn個の分割データに分割して、これらの分割データをそれぞれ異なるサーバ等の記憶装置に分散保管するものである。これにより、分割データの紛失盗難不正取得等に対する秘密データの秘匿性を高めるとともに、分割データの毀損滅失等に対する秘密データの可用性を高めることを可能とする。また、ランプ型の秘密分散を用いることから、安全性の条件は若干緩められるものの、n個の各分割データのサイズを1/Lに縮小して、全体でのデータ量をk,n閾値秘密分散の場合と比べて1/Lに縮小する。これにより、各分割データを送信保管する際のネットワーク帯域や記憶領域などのリソース使用量を低減させる。また、本実施の形態では、k,L,nランプ型閾値秘密分散において、処理を効率化高速化してCPUリソースの使用量を低減させるため、公知の技術と同様に、コンピュータでのビット演算に適するよう、秘密データを分割した秘密部分データと、これと同じ長さの乱数部分データとのXOR演算に基づいて分割データを生成する。さらに、本実施の形態では、具体的に、3,2,4ランプ型閾値秘密分散において、XOR演算を行うための計算式および計算手順を調整して、秘密データから秘密分散により複数の分割データを生成する際、および複数の分割データから秘密データを復元する際の処理性能を全体として向上させる。<システム構成>図1は、本発明の一実施の形態であるデータ分割装置の構成例について概要を示した図である。データ分割装置100は、例えば、ユーザが利用するPCや携帯端末などの情報処理端末、もしくはこれら複数の情報処理端末が接続されるファイルサーバ等、ユーザにより秘密分散の対象の秘密データ400が作成され、もしくはこれを保持する一般的なコンピュータ機器からなる。データ分割装置100は、インターネット等のネットワーク300を介して複数のサーバ200に接続可能となっている。サーバ200の数は、k,L,nランプ型閾値秘密分散におけるn個本実施の形態では3,2,4ランプ型閾値秘密分散であるため4個以上であることが望ましい。これらのサーバ200は、それぞれ、データ分割装置100によって秘密データ400から秘密分散により生成されネットワーク300を介して送信されてきた分割データ410を、HDDHardDiskDrive等の記憶装置に保管することができるファイルサーバやストレージ機器等からなる。データ分割装置100は、上述した機能を実現するため、例えば、図示しないOSOperatingSystem上で稼働するソフトウェアプログラムとして実装される分割処理部110、分散管理部120、復元処理部130、およびインタフェース部140などの各部を有する。分割処理部110は、例えば、後述するインタフェース部140を介してユーザからセキュアな保管を指示された秘密データ400から、後述するXORによる演算式を定義した分割行列111、および分割中間式112に基づいて、所定の手順に従ってk,L,nランプ型閾値秘密分散本実施の形態では3,2,4ランプ型閾値秘密分散により各サーバ200に分散保管するn個本実施の形態では4個の分割データ410を生成する。また、上記のXORによる演算の際に用いる乱数を生成する乱数生成部113を有する。なお、乱数生成の手法は特に限定されず、所定の長さ以上の乱数を生成することができるものであれば、任意の公知の技術を用いることができる。分散管理部120は、例えば、分割処理部110により秘密データ400から生成された各分割データ410について、設定情報122の設定内容に基づく所定の条件に従って各サーバ200に送信して分散保管するとともに、各分割データ410がいずれのサーバ200に保管されているかの対応に係る情報を分散状況121に記録して管理する。設定情報122には、例えば、分散保管先となる各サーバ200に対するアクセス情報IPアドレスやホスト名等、n個本実施の形態では4個より多数のサーバ200が存在する場合にn個のサーバ200を選択するための基準や条件例えばサーバ200の優先順位や順序付けされたリスト、ローテーションする際の方法等などを予め設定しておくことができる。また、分散管理部120は、後述する復元処理部130による秘密データ400の復元の際に、復元処理部130からの要求に基づいて、分散状況121の内容、および設定情報122の設定内容に基づく所定の条件に従って、各サーバ200から、秘密データ400を復元するためのm個の分割データ410を収集して復元処理部130に受け渡す。なお、収集する分割データ410の個数mの値は、秘密データ400を復元するために必要な分割データ410の数k以上である必要があり、また、n個全ての分割データ410を収集するものとしてもよいすなわちk≦m≦n。本実施の形態ではm=3もしくは4。設定情報122には、例えば、mの値や、m<nである場合に、対象となるm個のサーバ200を選択するための基準や条件、障害等により対象のサーバ200から分割データ410を取得できなかった場合の代替となるサーバ200の決定方法などを予め設定しておくことができる。なお、サーバ200の障害等により、分割データ410の分散保管時にn個の分割データ410のうちいずれかを各サーバ200に保管できなかった場合や、分割データ410の収集時にk個以上収集できなかった場合は、ユーザに対してエラーを応答するようにしてもよい。また、各サーバ200との間で分割データ410の送受信を行う際に、データ分割装置100および各サーバ200がそれぞれ分割データ410に対して所定の暗号化を施した上で送受信することで、情報漏洩のリスクをさらに低減させるようにしてもよい。復元処理部130は、例えば、インタフェース部140を介してユーザから参照や編集等の利用を指示された秘密データ400について、これを復元するために必要な数以上の分割データ410を分散管理部120に要求して取得する。さらに、取得した分割データ410から、後述するXORによる演算式を定義した復元行列131、および復元中間式132に基づいて、所定の手順に従ってk,L,nランプ型閾値秘密分散本実施の形態では3,2,4ランプ型閾値秘密分散により秘密データ400を復元する。インタフェース部140は、データ分割装置100もしくはデータ分割装置100に対する図示しないクライアント端末における画面表示等のユーザインタフェースやデータの送受信などの入出力機能を有する。ユーザは、例えば、一般的なOSが有するファイル管理用の画面等を利用して、データ分割装置100の機能を利用することができる。例えば、ファイル管理用の画面においてユーザが重要データを特定のフォルダ等にドラッグドロップなどの簡易な操作により移動する。これをトリガとして、分割処理部110および分散管理部120によって、自動的に当該重要データを秘密データ400としてn個本実施の形態では4個の分割データ410を生成し、各分割データ410をユーザに意識させずに各サーバ200に分散保管することができる。なお、このとき秘密データ400はデータ分割装置100およびデータ分割装置100に対するユーザのクライアント端末から削除するが、ファイル管理用の画面上では、ユーザに意識させないよう、例えば、秘密データ400に対応するダミーファイル等を作成して残しておく。また、例えば、ユーザは、ファイル管理用の画面において特定のフォルダにて管理されている秘密データ400のダミーファイル等に対して操作を行うことで、秘密データ400に対する参照や編集等の操作を行うことができる。すなわち、ダミーファイル等に対する操作をトリガとして、分散管理部120および復元処理部130によって、ダミーファイル等に対応する秘密データ400について、自動的に各サーバ200からm個k≦m≦n、本実施の形態では3個もしくは4個の分割データ410を収集し、秘密データ400を復元してユーザに利用可能とすることができる。<処理フロー分割処理>図2は、データ分割装置100の分割処理部110における、秘密データ400から秘密分散により分割データ410を生成する分割処理の流れの例について概要を示したフローチャートである。なお、本実施の形態では、上述したように、3,2,4ランプ型閾値秘密分散により秘密分散処理を行うものとする。また、図3は、秘密データ400から3,2,4ランプ型閾値秘密分散により4個の分割データ410を生成する処理の例について概要を示した図である。インタフェース部140を介してユーザから秘密分散の対象となる重要データが指定されると、分割処理部110は、まず、当該重要データを秘密データ400とし、秘密データ400の先頭から所定の長さSの単位秘密データを抽出するS01。この単位秘密データは、XOR演算による秘密分散処理を行う際の処理単位となるデータであり、本実施の形態では、長さSは6の倍数ビットの任意の長さであるものとする。なお、秘密データ400の長さがSに満たない場合は、例えば、秘密データ400に対してSに満たない分をゼロ等の所定のデータでパディングして長さSの単位秘密データを得るものとする。次に、抽出した単位秘密データ401を分割して秘密部分データを6個生成するS02。具体的には、図3に示すように、秘密データ400から抽出した長さSの単位秘密データ401を6等分して、長さS/6の秘密部分データ402を6個s1~s6生成する。さらに、乱数生成部113により、秘密部分データ402と同じ長さS/6の乱数部分データ403を秘密部分データ402の数の半数である3個生成するS03。具体的には、図3に示すように、秘密部分データ402と同じ長さS/6の乱数部分データ403を3個r1~r3生成する。乱数部分データ403の生成に際しては、例えば、乱数生成部113がr1~r3の3個をそれぞれ個別に生成してもよいし、乱数生成部113がS/2より長い乱数を1個生成して、分割処理部110がこれを区切ってS/6の長さの乱数を3個抽出するようにしてもよい。次に、後述する分割部分データを生成するためのXOR演算を行う際に用いるために予め定義された複数の分割中間式112のそれぞれについて、秘密部分データ402s1~s6と乱数部分データ403r1~r3に基づいてXOR演算を行って値を算出しておくS04。この分割中間式112は、後述する分割部分データを生成するためのXOR演算の全体において、複数回繰り返し現れるXOR演算の式を分割中間式112として抽出したものである。この分割中間式112の値を予め計算して保持しておき、後述する分割行列111に基づくXOR演算の際に計算結果を利用することで、内容が重複するXOR演算を極力廃し、処理の効率化高速化を図る。なお、分割中間式112の詳細については後述する。次に、秘密部分データ402s1~s6と乱数部分データ403r1~r3に基づいて、分割行列111に定義された内容に基づいてXOR演算を行い、12個の分割部分データ412を生成するS05。具体的には、図3に示すように、XOR演算を定義した分割行列111と、乱数部分データ403r1~r3および秘密部分データ402s1~s6を要素とする9行1列の秘密データ行列114との乗算によって、それぞれが長さS/6の12個の分割部分データ412a1~a3、b1~b3、c1~c3、d1~d3を得る。すなわち、分割行列111と秘密データ行列114との乗算によって得られる以下の各式によって12個の分割部分データ412を得る。a1=r1s1s2...式1a2=r2s3s4...式2a3=r3s5s6...式3b1=r1s3s5...式4b2=r2s1s3s5s6...式5b3=r3s2s4s6...式6c1=r1s3s4s6...式7c2=r2s2s3s4s5...式8c3=r3s1s3s3s5s6...式9d1=r1s1s2s3s5...式10d2=r2s1s4s5s6...式11d3=r3s2s4s5...式12なお、上記各式における演算子のはXORを意味する。また、実際の計算の際には、後述するように、上記各式において各分割中間式112と一致するXOR演算の部分に、ステップS04で予め計算しておいた各分割中間式112の値を代入することで、全体でのXOR演算の数を低減させる。次に、12個の分割部分データ412から4個4種類の単位分割データを生成するS06。具体的には、図3に示すように、a1~a3の分割部分データ412を連結して、長さS/2の単位分割データ411aを生成する。同様に、b1~b3、c1~c3、d1~d3の分割部分データ412をそれぞれ連結して、単位分割データ411b~dを生成する。次に、生成した4個の単位分割データ411をそれぞれ対応する種類の分割データ410の末尾等に連結するS07。具体的には、図3に示すように、長さS/2の単位分割データ411a~dを、それぞれ分割データA410a~分割データD410dの末尾に連結する。なお、連結すべき分割データ410が存在しない場合は、各単位分割データ411自身をそれぞれ分割データ410とする。なお、各分割データ410には、自身が分割データA410a、分割データB410b、分割データC410c、もしくは分割データD410dのいずれの種類であるかを識別する情報をヘッダ等に付加するものとする。これにより、復元時に取得した各分割データ410について、これを構成する単位分割データ411が、a1~a3、b1~b3、c1~c3、もしくはd1~d3のいずれの分割部分データ412により構成されているのかをヘッダ等の情報から知ることができる。この他にも、例えば、ステップS01において、秘密データ400の長さがSに満たないためにゼロ等のデータをパディングして単位秘密データ401を抽出した場合の、末尾の単位秘密データ401の有効な長さの情報などを付加してもよい。その後、秘密データ400にまだ処理していない残部があるか否かを判定しS08、残部がある場合にはステップS01に戻って上記の一連の処理を秘密データ400に残部がなくなるまで繰り返す。秘密データ400に未処理の残部がない場合は、分割処理を終了する。なお、図3に示した分割行列111を用いて上記の処理により得られる4個の分割データ410分割データA~Dは、3,2,4ランプ型閾値秘密分散の要件を満たすものである。すなわち、各分割データ410を構成する各単位分割データ411のそれぞれからは、秘密データ400を構成する単位秘密データ401の情報s1~s6の秘密部分データ402の情報を全く得ることはできない。例えば、第三者が、分割データA410aを取得した場合、これを構成する単位分割データ411aからはa1~a3の分割部分データ412の情報を得ることができる。仮に、これらの分割部分データ412が、上記の式1~式3の3個の式から生成されたものであることを当該第三者が知ったとしても、式1~式3からなる、r1~r3、およびs1~s6を変数とする連立方程式を解くことはできない。また、式1~式3からなる連立方程式からは、乱数成分であるr1~r3を消去することができないため、s1~s6の秘密部分データ402のいずれの情報解も得ることができないすなわち、正規化した情報エントロピーは1である。従って、秘密データ400s1~s6の秘密部分データ402からなる単位秘密データ401の秘匿性は保たれる。これは、分割データB410b~分割データD410dの各分割データ410についても同様である。換言すれば、4個の異なる単位分割データ411例えば、単位分割データ411aをそれぞれ構成する3個の分割部分データ412例えば、a1~a3をそれぞれ得るための3個の計算式例えば、上記の式1~式3において、各式が、1個または相異なる2個以上の秘密部分データ402s1~s6と1個または相異なる2個以上の乱数部分データ403r1~r3のXOR演算として表されるように分割行列111を構成すれば、各分割データ410単位分割データ411は乱数データと同等の乱数性を有することになるため、1個の分割データ410からは秘密データ400単位秘密データ401の情報を得ることはできないことになる。なお、本実施の形態では、3個の各計算式がそれぞれ互いに異なる1個の乱数部分データ403のみ例えば、式1はr1のみ、式2はr2のみ、式3はr3のみを有するものとしている。一方、3個の異なる分割データ410があれば、秘密データ400を復元することができる。すなわち、3個の異なる分割データ410を構成する各単位分割データ411からは、秘密データ400を構成する単位秘密データ401の情報s1~s6の秘密部分データ402の情報の全てを得ることができる。例えば、ユーザが分割データA410a、分割データB410b、分割データC410cの3個の分割データ410を集めた場合、上記と同様に、式1~式9の9個の独立した式からなる連立方程式が得られることになる。これを解くことにより、r1~r3、およびs1~s3の9個の変数の情報解を得ることができ、s1~s6の秘密部分データ402の情報から単位秘密データ401および秘密データ400を復元することができるすなわち、正規化した情報エントロピーはゼロである。なお、2個の異なる分割データ410がある場合には、秘密データ400の情報の一部を得ることが可能である。例えば、ユーザが分割データA410a、分割データB410bの2個の分割データ410を集めた場合、上記と同様に、式1~式6の6個の式からなる連立方程式が得られることになる。この連立方程式では、r1~r3、s1~s6の全ての情報解を得ることはできないが、例えば、式1と式4、式2と式5、式3と式6によりそれぞれ乱数成分であるr1~r3を消去することができるため、s1~s6の間の関係を簡易な一次式として得ることができる。理論上は、これらの式からs1~s6のうち半分の情報を得ることが可能である正規化した情報エントロピーは0.5である。本実施の形態では、図3に示した3,2,4ランプ型閾値秘密分散での分割処理に用いる分割行列111は、後述する分割データ410からの秘密データ400の復元処理に用いる復元行列131と合わせて、分割復元の秘密分散処理全体でのXOR演算の数が少なくなるよう調整している。具体的には、分割行列111として成立し得る行列の各パターンおよびこれに対して得られる復元行列131について、後述する中間式による影響も考慮して、分割復元の秘密分散処理全体でのXOR演算の数を解析し、数が少なくなる、すなわち全体として処理効率のよいパターンを得た。図3に示した分割行列111は、上記の手順により得た調整された分割行列111である。さらに本実施の形態では、図2のステップS05において上記の式1~式12に基づいて分割部分データ412a1~a3、b1~b3、c1~c3、d1~d3を算出する際に実行されるXOR演算式1~式12における演算子の回数が少なくなるよう、分割中間式112を利用する。すなわち、上記の式1~式12において複数回繰り返し現れるXOR演算の式を予め分割中間式112として定義しておき、図2のステップS04において、各分割中間式112の値を予め計算しておく。その後、ステップS05で式1~式12におけるXOR演算により分割部分データ412a1~a3、b1~b3、c1~c3、d1~d3を算出する際に、各分割中間式112と一致する部分については、予め計算された分割中間式112の計算結果を利用することで、重複するXOR演算を極力廃し、処理の効率化高速化を図る。<分割中間式>図4は、秘密部分データ402s1~s6と乱数部分データ403r1~r3から分割部分データ412a1~a3、b1~b3、c1~c3、d1~d3を算出する際の例について概要を示した図である。図4の上段の図は、図3に示した分割行列111の内容を模式的に表として示しており、表の行列は、図3に示した分割行列111の行列に対応している。各行で、1が立っている列に対応する要素例えば、1行目の場合はr1、s1、およびs2についてXOR演算する例えば、1行目の場合はr1s1s2ことで、各行に対応する分割部分データ412例えば、1行目の場合はa1を得ることができることを示している。すなわち、図4に示す分割行列111の表の各行は、それぞれ上記の式1~式12に示したXOR演算の内容を示している。ここで、本実施の形態では、図4の下段に示すように、t1~t7の7個の分割中間式112を定義しており、これらはそれぞれ1が立っている列図4の上段に示す分割行列111の列に対応するにより、以下の式の演算を表している。t1=s3s4...式13t2=s1s2...式14t3=s3s5...式15t4=s5s6...式16t5=r3s2s4...式17t6=t2t3...式18t7=r2s1t4...式19また、上記のt1~t7の分割中間式112を用いることにより、上記の式1~式12がそれぞれ以下の式により簡略化されることを表している。a1=r1t2...式1’a2=r2t1...式2’a3=r3t4...式3’b1=r1t3...式4’b2=s3t7...式5’b3=s6t5...式6’c1=r1s6t1...式7’c2=r2s2s5t1...式8’c3=r3s6t6...式9’d1=r1t6...式10’d2=s4t7...式11’d3=s5t5...式12’ここで、簡略化する前の上記の式1~式12では、2入力のXOR演算の数すなわち演算子の数は38個であるが、上記の式1’~式12’および分割中間式112である式13~式19では、XOR演算の数は25個に大きく低減されている低減率34.2。従って、分割行列111に基づくXOR演算を直接実行する上記の式1~式12よりも、分割中間式112上記の式13~式19を予め計算した上で、分割中間式112を利用して分割行列111に基づくXOR演算を実行する上記の式1’~式12’ことで、XOR演算に係る処理の効率化高速化することができる。なお、分割行列111の内容を調整することで、分割処理時のXOR演算の数を25個からさらに低減させることも可能であるが、この場合は、後述する復元処理時のXOR演算の回数が増え、分割復元の処理全体としてはXOR演算の数は必ずしも最小とはならない。分割復元の処理全体として考えた場合に、解析により処理効率がよいXOR演算の数が少ないものとして得られたものが、図3に示した分割行列111である。<処理フロー復元処理>図5は、データ分割装置100の復元処理部130における、分割データ410から秘密分散により秘密データ400を生成する復元処理の流れの例について概要を示したフローチャートである。なお、本実施の形態では、上述したように、3,2,4ランプ型閾値秘密分散により秘密分散処理を行うものとする。また、図6は、3個の分割データ410から3,2,4ランプ型閾値秘密分散により秘密データ400を生成復元する処理の例について概要を示した図である。まず、復元処理の前処理として、インタフェース部140を介してユーザから参照や編集等の利用を行う重要データ、すなわち復元の対象となる重要データが指定されると、復元処理部130は、この重要データを秘密データ400として、これを復元するために必要な数以上本実施の形態では3個以上の分割データ410を分散管理部120に要求して取得する。図6の例では、分割データ410a、410b、410cの3個の分割データ410を復元に用いる場合を示している。これには、分散管理部120を介して分割データ410a、410b、410cの3個の分割データ410を取得し、これらを復元に用いる場合、および、分散管理部120を介して4個全ての分割データ410を取得し、そのうちの分割データ410a、410b、410cの3個を復元に用いる場合が含まれる。復元処理部130は、3個の分割データ410を取得すると、まず、3個の分割データ410の先頭からそれぞれ所定の長さS/2の単位分割データ411a、b、cを抽出するS11。この単位分割データ411は、XOR演算による秘密分散処理を行う際の処理単位となるデータである。次に、抽出した各単位分割データ411について、それぞれいずれの種類のものであるかを特定するS12。図6の例では、各分割データ410a、b、cから抽出した各単位分割データ411a、b、cについて、ヘッダ等に付加された情報等に基づき、それぞれが単位分割データ411a、411b、411cもしくは単位分割データ411dのいずれであるかを特定する。次に、抽出した各単位分割データ411からそれぞれ、3個の分割部分データ412を抽出するS13。具体的には、図6に示すように、長さS/2の3個の単位分割データ411a、b、cをそれぞれ3等分して、長さS/6の分割部分データ412を3個ずつa1~a3、b1~b3、c1~c3生成する。次に、後述する秘密部分データ402を生成するためのXOR演算を行う際に用いるために、ステップS12で特定した各単位分割データ411の種類の組み合わせ毎に定義された複数の復元中間式132のそれぞれについて、ステップS13で抽出した分割部分データ412に基づいてXOR演算を行って値を算出しておくS14。この復元中間式132は、上記の分割中間式112と同様に、後述する秘密部分データ402を生成するためのXOR演算の全体において、複数回繰り返し現れるXOR演算の式を復元中間式132として抽出したものである。この復元中間式132の値を予め計算して保持しておき、復元行列131に基づくXOR演算の際に計算結果を利用することで、内容が重複するXOR演算を極力廃し、処理の効率化高速化を図る。なお、復元中間式132の詳細については後述する。次に、ステップS13で抽出した分割部分データ412に基づいて、ステップS12で特定した各単位分割データ411の種類の組み合わせ毎に定義された復元行列131に定義された内容に従ってXOR演算を行い、6個の秘密部分データ402を生成するS15。具体的には、図6に示すように、単位分割データ411の種類の組み合わせ図6の例では、a、b、cの3個の単位分割データ411毎にXOR演算を定義した復元行列131図6の例では復元行列131aと、分割部分データ412図6の例ではa1~a3、b1~b3、c1~c3を要素とする9行1列の分割データ行列133aとの乗算によって、それぞれが長さS/6の6個の秘密部分データ402s1~s6を得る。すなわち、図6の例に示すように、分割データ410a、410b、410cの3個の分割データ410に基づく場合は、復元行列131aと、分割データ行列133aとの乗算によって得られる以下の各式によって6個の秘密部分データ402を得る。s1=a2b1b2c1...式20s2=a1a2a3b1c2c3...式21s3=a1b2c1c2...式22s4=a2a3b3c2...式23s5=a1a3b1c3...式24s6=a1a2b3c1c2c3...式25なお、上記の行列の乗算からは、乱数部分データ403r1~r3も得ることができるが、秘密データ400の復元に際しては不要であるため処理を省略する。また、分割処理時と同様に、実際の計算の際には、後述するように、式20~式25の各式において各復元中間式132と一致するXOR演算の部分に、ステップS14で予め計算しておいた各復元中間式132の値を代入することで、全体でのXOR演算の数を低減させる。次に、6個の秘密部分データ402から単位秘密データ401を生成するS16。具体的には、図6に示すように、s1~s6の秘密部分データ402を連結して、長さSの単位秘密データ401を生成する。次に、生成した単位秘密データ401を秘密データ400の末尾等に連結するS17。具体的には、図6に示すように、長さSの単位秘密データ401を秘密データ400の末尾に連結する。なお、連結すべき秘密データ400が存在しない場合は、単位秘密データ401自身を秘密データ400とする。その後、各分割データ410にまだ処理していない残部があるか否かを判定しS18、残部がある場合にはステップS11に戻って上記の一連の処理を各分割データ410に残部がなくなるまで繰り返す。各分割データ410に未処理の残部がない場合は、復元処理を終了する。なお、上述した手順によって、図6に示したような復元行列131に基づいて得られる秘密データ400s1~s6の秘密部分データ402からなる単位秘密データ401は、元の重要データの内容と同じものである。これは、ステップS12で特定した各単位分割データ411の種類の組み合わせ毎に定義された複数の復元行列131が、上記の分割行列111における当該組み合わせに係る部分から求められた逆行列であるためである。図7は、分割データ410a、b、cから秘密データ400を復元するために用いる復元行列131aを分割行列111から得る処理の例を示した図である。復元行列131aを得るためには、図7の上段に示すように、分割行列111のうち、復元の際に用いられる分割データ410a、b、cに対応する行、すなわちこれに対応する分割部分データ412a1~a3、b1~b3、c1~c3を得ることができる9行図中の網掛け部分を抽出して、図7の下段左側に示すような9行9列の部分行列を得る。この部分行列から、例えば掃き出し法などにより、図7の下段右側に示すような逆行列を求める。この逆行列が復元行列131aとなる。なお、分割行列111における要素の値の1は、数値の1ではなくXORの対象となる要素を決定するビットを示している。従って、例えば掃き出し法を用いて逆行列を求める際に、手順の課程での減算処理により要素の値が-1になった場合でも1として取り扱うことにより、復元行列131を得ることができる。同様に、図8は、分割データ410a、b、dから秘密データ400を復元するために用いる復元行列131bを分割行列111から得る処理の例を示した図である。図8の上段に示すように、分割行列111のうち、復元の際に用いられる分割データ410a、b、dに対応する行、すなわちこれに対応する分割部分データ412a1~a3、b1~b3、d1~d3を得ることができる9行図中の網掛け部分を抽出して、図8の下段左側に示すような9行9列の部分行列を得る。この部分行列から求めた逆行列が復元行列131bとなる。同様に、図9は、分割データ410a、c、dから秘密データ400を復元するために用いる復元行列131cを分割行列111から得る処理の例を示した図である。図9の上段に示すように、分割行列111のうち、復元の際に用いられる分割データ410a、c、dに対応する行、すなわちこれに対応する分割部分データ412a1~a3、c1~c3、d1~d3を得ることができる9行図中の網掛け部分を抽出して、図9の下段左側に示すような9行9列の部分行列を得る。この部分行列から求めた逆行列が復元行列131cとなる。同様に、図10は、分割データ410b、c、dから秘密データ400を復元するために用いる復元行列131dを分割行列111から得る処理の例を示した図である。図10の上段に示すように、分割行列111のうち、復元の際に用いられる分割データ410b、c、dに対応する行、すなわちこれに対応する分割部分データ412b1~b3、c1~c3、d1~d3を得ることができる9行図中の網掛け部分を抽出して、図10の下段左側に示すような9行9列の部分行列を得る。この部分行列から求めた逆行列が復元行列131dとなる。<復元中間式>図11は、分割部分データ412a1~a3、b1~b3、c1~c3から秘密部分データ402s1~s6を算出する際の例について概要を示した図である。上述の図4と同様に、図11の上段の図は、図7に示した復元行列131aの内容を模式的に表として示しており、表の行列は、図7に示した復元行列131aの行列に対応している。ここで、本実施の形態では、図11の下段に示すように、w1~w5の5個の復元中間式132aを定義しており、これらはそれぞれ1が立っている列図11の上段に示す復元行列131aの列に対応するにより、以下の式の演算を表している。w1=b2c1...式26w2=a3b1...式27w3=a1c3...式28w4=a2c2...式29w5=w3w4...式30また、上記のw1~w5の復元中間式132aを用いることにより、上記の式20~式25がそれぞれ以下の式により簡略化されることを表している。s1=a2b1w1...式20’s2=w2w5...式21’s3=a1c2w1...式22’s4=a3b3w4...式23’s5=w2w3...式24’s6=b3c1w5...式25’ここで、簡略化する前の上記の式20~式25では、2入力のXOR演算の数は22個であるが、上記の式20’~式25’および復元中間式132aである式26~式30では、XOR演算の数は15個に大きく低減されている低減率31.8。従って、復元行列131aに基づくXOR演算を直接実行する上記の式20~式25よりも、復元中間式132aを予め計算した上で上記の式26~式30、復元中間式132aを利用して復元行列131aに基づくXOR演算を実行する上記の式20’~式25’ことで、XOR演算に係る処理の効率化高速化することができる。同様に、図12は、分割部分データ412a1~a3、b1~b3、d1~d3から秘密部分データ402s1~s6を算出する際の例について概要を示した図である。図12の上段の図は、図8に示した復元行列131bの内容を模式的に表として示しており、表の行列は、図8に示した復元行列131bの行列に対応している。ここで、本実施の形態では、図12の下段に示すように、x1~x5の5個の復元中間式132bを定義しており、これらはそれぞれ1が立っている列図12の上段に示す復元行列131bの列に対応するにより、以下の式の演算を表している。x1=a1a3...式31x2=a2b1...式32x3=b2b3d2x1...式33x4=d3x1x2...式34x5=a3b2d1x2...式35また、上記のx1~x5の復元中間式132bを用いることにより、復元行列131bと、分割部分データ412a1~a3、b1~b3、d1~d3を要素とする分割データ行列との乗算によって6個の秘密部分データ402s1~s6を得る式記載は省略が、それぞれ以下の簡略化された式によって表されることを示している。s1=b1x3...式36’s2=d1x3...式37’s3=b2x4...式38’s4=d2x4...式39’s5=d3x5...式40’s6=b3x5...式41’ここで、簡略化する前では、XOR演算の数は30個であるが、上記の式36’~式41’および復元中間式132bである式31~式35では、XOR演算の数は16個に大きく低減されている低減率46.6。同様に、図13は、分割部分データ412a1~a3、c1~c3、d1~d3から秘密部分データ402s1~s6を算出する際の例について概要を示した図である。図13の上段の図は、図9に示した復元行列131cの内容を模式的に表として示しており、表の行列は、図9に示した復元行列131cの行列に対応している。ここで、本実施の形態では、図13の下段に示すように、y1~y5の5個の復元中間式132cを定義しており、これらはそれぞれ1が立っている列図13の上段に示す復元行列131cの列に対応するにより、以下の式の演算を表している。y1=a2c2...式42y2=a3c3...式43y3=c2d2...式44y4=a1c1...式45y5=c3d3...式46また、上記のy1~y5の復元中間式132cを用いることにより、復元行列131cと、分割部分データ412a1~a3、c1~c3、d1~d3を要素とする分割データ行列との乗算によって6個の秘密部分データ402s1~s6を得る式記載は省略が、それぞれ以下の簡略化された式によって表されることを示している。s1=a1d1y1y2...式47’s2=y4y5...式48’s3=c1d1y1y5...式49’s4=y3y4...式50’s5=s2y1...式51’s6=y2y3...式52’ここで、簡略化する前では、XOR演算の数は24個であるが、上記の式47’~式52’および復元中間式132cである式42~式46では、XOR演算の数は15個に大きく低減されている低減率37.5。同様に、図14は、分割部分データ412b1~b3、c1~c3、d1~d3から秘密部分データ402s1~s6を算出する際の例について概要を示した図である。図14の上段の図は、図10に示した復元行列131dの内容を模式的に表として示しており、表の行列は、図10に示した復元行列131dの行列に対応している。ここで、本実施の形態では、図14の下段に示すように、z1~z2の2個の復元中間式132dを定義しており、これらはそれぞれ1が立っている列図14の上段に示す復元行列131dの列に対応するにより、以下の式の演算を表している。z1=a1a3...式53z2=a2b1...式54また、上記のz1~z2の復元中間式132dを用いることにより、復元行列131dと、分割部分データ412b1~b3、c1~c3、d1~d3を要素とする分割データ行列との乗算によって6個の秘密部分データ402s1~s6を得る式記載は省略が、それぞれ以下の簡略化された式によって表されることを示している。s1=d1z2...式55’s2=b1z2...式56’s3=b2d2s4...式57’s4=b1d3z1...式58’s5=b2c1c2d1...式59’s6=b3d3s5...式60’ここで、簡略化する前では、XOR演算の数は26個であるが、上記の式55’~式60’および復元中間式132dである式53~式54では、XOR演算の数は15個に大きく低減されている低減率42.3。なお、本実施の形態では、3,2,4ランプ型閾値秘密分散を用いる場合における、調整された分割行列111や分割中間式112、および復元行列131や復元中間式132について具体的に説明したが、3,2,4型に限らず、他のk,L,n型の場合であっても同様の思想で分割行列111や復元行列131を求め、また、分割中間式112や復元中間式132を定義してXOR演算の数を低減させ、処理を効率化高速化させることが可能である。以上に説明したように、本発明の一実施の形態であるデータ分割装置100およびデータ分割装置100上で稼働するデータ分割プログラムによれば、秘密データ400をk,L,nランプ型閾値秘密分散によりn個の分割データ410に分割して、これらの分割データ410をそれぞれ異なるサーバ200等に分散保管する。これにより、分割データ410の紛失盗難不正取得等に対する秘密データ400の秘匿性を高めるとともに、分割データ410の毀損滅失等に対する秘密データ400の可用性を高めることが可能となる。また、ランプ型の秘密分散を用いることから、安全性の条件は若干緩められるものの、n個の各分割データ410のサイズを1/Lに縮小して、全体でのデータ量をk,n閾値秘密分散の場合と比べて1/Lに縮小する。これにより、各分割データ410を送信保管する際のネットワーク300の帯域や記憶領域などのリソース使用量を低減させることが可能となる。また、k,L,nランプ型閾値秘密分散において、コンピュータでのビット演算に適するよう、XOR演算により秘密分散処理を行う。すなわち、秘密データ400を分割した秘密部分データ402のうちの1個以上と、秘密部分データ402と同じ長さで秘密部分データ402の半数の乱数部分データ403のうちの1個とのXOR演算に基づいて複数の分割部分データ412を生成し、それぞれ異なる乱数部分データ403を含むXOR演算により生成された複数の分割部分データ412を連結して単位分割データ411および分割データ400を生成する。これにより、秘密分散処理を効率化高速化することが可能となる。さらに、本実施の形態では、具体的に3,2,4ランプ型閾値秘密分散において、XOR演算を行うための計算式分割行列111、および復元行列131を調整し、また、中間式分割中間式112、および復元中間式132を用いて計算手順を調整することで、XOR演算の数を大きく低減させる上述の分割中間式および復元中間式の例では中間式による低減率は平均すると40.2ことを実現している。これにより、秘密データ400から3,2,4ランプ型閾値秘密分散により複数の分割データ410を生成し、また複数の分割データ410から秘密データ400を復元することを実際に可能とし、さらにそれらの際の処理性能を全体として向上させることが可能となる。以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。"