(57)【要約】    【課題】分散保存する分割データのサイズが小さくでき、分散保存と回収復元を高速に行う。    【解決手段】データ分割部２６はデータをｎ個に分割する。符号化部２８は、排他的論理和（ＸＯＲ）をとる複数の分割データを指定するビットマップ行列と、ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する。分散保存部３０は、ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する。復号部３２は、分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することにより元のデータを復号する。    【選択図】      図２
2007299088.tif 000002
【特許請求の範囲】
【請求項１】
データをｎ個に分割するデータ分割部と、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化部と、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号部と、
とを特徴とするデータ保護システム。
【請求項２】
請求項１記載のデータ保護システムに於いて、前記符号化部のビットマップ行列は、ビット０と１からなる少なくともｍ行ｎ列の行列であり、１行当たり少なくとも２個のビット１を含むことで２以上の分割データの排他論理和をとった符号化データを生成することを特徴とするデータ保護システム。
【請求項３】
データをキーにより暗号化して暗号化データを生成する暗号化部と、
前記暗号化データ及びキーの各々をｎ個に分割するデータ分割部と、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割暗号化データの排他的論理和をとった排他的論理和データとの組からなる第１符号化データを、分割数ｎ以上のｍ個だけ生成する第１符号化部と、
前記ビットマップ行列と、前記ビットマップ行列で指定された複数の分割キーの排他的論理和をとった排他的論理和データとの組からなる第２符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する第２符号化部と、
前記ｍ個の第１及び第２符号化データの各々を、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の第１及び第２符号化データのうち復元可能なｋ個以上の第１及び第２符号化データを回収して暗号化データ及びキーを復号する復号部と、
復元された前記キーを用いて復元された前記暗号化データから元のデータを生成する暗号解読部と、
を備えたことを特徴とするデータ保護システム。
【請求項４】
データをｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化ステップと、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号ステップと、
とを特徴とするデータ保護方法。
【請求項５】
コンピュータに、
データをｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化ステップと、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号ステップと、
とを実行させることを特徴とするデータ保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人情報などの重要な情報を分割してネットワークストレージ装置やＵＳＢメモリなどの記憶デバイスに分散保存し、必要な時に集めて復元するデータ保護システム、方法及びプログラムに関し、特に、情報を冗長符号化して分散保存することで一部の情報が盗難にあっても漏洩防止と情報復元を可能とするデータ保護システム、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、技術情報や個人情報などといった重要な情報を安全に保管するため、鍵を用いた暗号化アルゴリズムが用いられている。代表的な鍵暗号方式としては、共通鍵暗号方式のＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）やＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｉｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、公開鍵暗号方式のＲＳＡ（Ｒｉｖｅｓｔ,Ｓｈａｍｉｒ  ａｎｄ  Ａｄｌｅｍａｎ）などがある。
【０００３】
しかし、このような従来の鍵を用いた暗号化アルゴリズムは、計算機の能力が高くなれば総当たりにより解読することも不可能ではないため安全とは言いきれない。また、鍵を管理するために大きなコストがかかる点も問題である。
【０００４】
これに対して情報を複数のパーツ（割符）に分散させ、パーツが揃った時のみ情報が復元可能な秘密情報分散アルゴリズムというデータ保護技術がある。秘密情報分散アルゴリズムでは鍵は使わずに情報を複数のパーツに分散するだけであるが、１つのパーツだけを入手したとしてもそこから元の情報を得ることは不可能であり、盗難や紛失の際でも情報漏えいが簡単に防止できる。
【０００５】
このような従来の秘密情報分散アルゴリズムとしては次のものがある。
（１）（ｋ,ｎ）しきい値秘密分散法と呼ばれる方法であり、元のデータをｎ個のデータに分割し、そのうち任意のｋ個の分割データを集めれば元データが復元できるが、任意の（ｋ−１）個以下の分割データでは元データSは復元できない（特許文献１）。
（２）（ｋ,ｎ）しきい値秘密分散法の実現する方法として、多項式演算によりデータの分割及び復元を行なっている（特許文献２）。
（３）単純にデータをばらばらにしてそれを分割データとして並び替えることで情報分散を実現する方法である（特許文献３）。
（４）元のデータを分割したものと任意の乱数の排他的論理和（ＸＯＲ）をとったものを分割データとして出力する情報分散方法である（特許文献４）。
【特許文献１】Ａ．Ｓｈａｍｉｒ，"How to Share a Secret ", Coｍｍ. Assoc. Coｍput. Ｍach., VoL ２２, ｎo.１１, pp.６１２-６１３（Ｎov.１９７９）
【特許文献２】Bruce Schｎeier, " Applied Cryptography, John Wiley & Soｎs, Iｎc., pp.３８３-３８４（１９９４）
【特許文献３】特開２００４−０５３９６９号公報
【特許文献４】特開２００６−０１８８５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような従来の秘密情報分散アルゴリズムにあっては、分割や復元にかかる計算時間が長く、分割データのサイズが大きいなどの問題があったため、データそのものの分割ではなくデータを暗号化し、暗号化に用いた鍵を分散して管理するためなどに利用されており、データそのものの保存管理には利用できない問題がある。
【０００７】
即ち特許文献１，２の（ｋ，ｎ）しきい値秘密分散法は、多項式演算によりデータの分割及び復元を行なっているため、分割データの容量が元データと同じになってしまうという問題があり、また分割と復元にかかる時間も大きい。
【０００８】
また特許文献３の方法は、処理は高速であるが、ｋ＝ｎの場合及びｋ＝２,ｎ＝３のしきい値秘密情報分散、即ち、元のデータをｎ＝３個のデータに分割し、そのうち任意のｋ＝２個の分割データを集めれば元データが復元できる場合しか実現できないという問題かある。
【０００９】
更に特許文献４の方法は、特許文献１，２の方法と同様に分割データの容量が元のデータと同じになってしまう問題がある。
【００１０】
本発明では、分散保存する分割データのサイズが小さくでき、分散保存と回収復元が高速にできるデータ保護システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
（システム）
本発明は、データ保護システムを提供する。本発明のデータ保護システムは、
データをｎ個に分割するデータ分割部と、
排他的論理和（ＸＯＲ）をとる複数の分割データを指定するビットマップ行列と、ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化部と、
ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号部と、
とを特徴とする。
【００１２】
ここで、符号化部のビットマップ行列は、ビット０と１からなる少なくともｍ行ｎ列の行列であり、１行当たり少なくとも２個のビット１を含むことで２以上の分割データの排他論理和をとった符号化データを生成する。
【００１３】
復号部は、復元可能なｋ個以上の符号化データとして少なくとも分割数ｎ個分の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することによりｎ個の分割データを復号する。
【００１４】
本発明によるデータ保護システムの別の形態にあっては、
データをキーにより暗号化して暗号化データを生成する暗号化部と、
暗号化データ及びキーの各々をｎ個に分割するデータ分割部と、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、ビットマップ行列で指定された複数の分割暗号化データの排他的論理和をとった排他的論理和データとの組からなる第１符号化データを、分割数ｎ以上のｍ個だけ生成する第１符号化部と、
同じビットマップ行列と、ビットマップ行列で指定された複数の分割キーの排他的論理和をとった排他的論理和データとの組からなる第２符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する第２符号化部と、
ｍ個の第１及び第２符号化データの各々を、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の第１及び第２符号化データのうち復元可能なｋ個以上の第１及び第２符号化データを回収して暗号化データ及びキーを復号する復号部と、
復元されたキーを用いて復元された暗号化データから元のデータを生成する暗号解読部と、
を備えたことを特徴とする。
【００１５】
この場合も、符号化部のビットマップ行列は、ビット０と１からなる少なくともｍ行ｎ列の行列であり、１行当たり少なくとも２個のビット１を含むことで２以上の分割データの排他論理和をとった符号化暗号データ及び符号化キーを生成する。
【００１６】
また復号部は、復元可能なｋ個以上の符号化データとして少なくとも分割数ｎ個分の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することによりｎ個の分割暗号化データ及び分割キーを復号する。
【００１７】
分散保存部は、記憶デバイスとしてネットワークストレージ、装置又は機器に対し着脱自在な可搬型記憶媒体等の外部記憶装置を含む。また分散保存部は、記憶デバイスに保存する符号化データの数を、記憶デバイスの記憶容量又は必要度に応じて変更する。
【００１８】
（方法）
本発明はデータ保護方法を提供する。本発明のデータ保護方法は、
データをｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化ステップと、
ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号ステップと、
とを特徴とする。
【００１９】
本発明によるデータ保護方法の他の形態にあっては、
データをキーにより暗号化して暗号化データを生成する暗号化ステップと、
暗号化データ及びキーの各々をｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、ビットマップ行列で指定された複数の分割暗号化データの排他的論理和をとった排他的論理和データとの組からなる第１符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する第１符号化ステップと、
同じビットマップ行列と、ビットマップ行列で指定された複数の分割キーの排他的論理和をとった排他的論理和データとの組からなる第２符号化データを、分割数ｎ以上のｍ個だけ生成する第２符号化ステップと、
ｍ個の第１及び第２符号化データの各々を、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の第１及び第２符号化データのうち復元可能なｋ個以上の第１及び第２符号化データを回収して暗号化データ及びキーを復号する復号ステップと、
復元されたキーを用いて復元された暗号化データから元のデータを生成する暗号解読ステップと、
を備えたことを特徴とする。
【００２０】
（プログラム）
本発明はデータ保護プログラムを提供する。本発明のデータ保護プログラムは、コンピュータに、
データをｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化ステップと、
ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号ステップと、
とを実行させることを特徴とする。
【００２１】
本発明によるデータ保護プログラムの他の形態にあっては、コンピュータに、
データをキーにより暗号化して暗号化データを生成する暗号化ステップと、
暗号化データ及びキーの各々をｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、ビットマップ行列で指定された複数の分割暗号化データの排他的論理和をとった排他的論理和データとの組からなる第１符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する第１符号化ステップと、
ビットマップ行列と、ビットマップ行列で指定された複数の分割キーの排他的論理和をとった排他的論理和データとの組からなる第２符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する第２符号化ステップと、
ｍ個の第１及び第２符号化データの各々を、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の第１及び第２符号化データのうち復元可能なｋ個以上の第１及び第２符号化データを回収して暗号化データ及びキーを復号する復号ステップと、
復元されたキーを用いて復元された暗号化データから元のデータを生成する暗号解読ステップと、
を実行させることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、情報を分割して冗長符号化された分割データを作るための演算は排他的論理和（ＸＯＲ）だけであるため、非常に高速に分割データを生成することができる。
【００２３】
また、冗長符号化データとして生成された分割データの記憶デバイスに対する分散数は必要に応じて任意に決めることができるため、記憶容量の少ないＵＳＢメモリなどにも分割データを保存でき、家庭的なコンピュータの利用環境であっても、複数の記憶デバイスを保存場所として容易に確保して分散保存によるデータ保護を簡単に利用することができる。
【００２４】
更に分割データとして生成される符号化データの数は、元の分割データ数ｎに対し冗長度に応じてｍ個生成され、そのうちのｋ個を回収できれば元の分割データを復元できるため、（ｍ−ｋ）個のデータが盗難などにより失われても復元可能であり、データ保護の信頼性が高い。当然に、（ｍ−ｋ）個の符号化データが盗難にあっても、このようなｋ個未満の符号化データから元の分割データは復元不可能であり、高いデータ保護の信頼性が確保できる。
【００２５】
更に、鍵による暗号化を組合わせた場合、暗号化データ及びキーの各々を冗長符号化データに分割して分散保存しておくことで、分散保存している一部の符号化データが盗難などにあったとしても、データ復元と復元後の暗号解読が不可能であることから、２重にデータを保護してデータ保護の信頼性を高めることができる。
【発明を実施するための最良の形態】
【００２６】
図１は本発明のデータ保護システムの使用環境の説明図である。図１において、ユーザが使用しているパーソナルコンピュータ１０には本実施形態のデータ保護システムを実現するデータ保護プログラムがインストールされており、ユーザが重要なデータファイルを保存する際に使用される。
【００２７】
パーソナルコンピュータ１０はハードディスクドライブを内蔵しており、また可搬自在な外部記憶デバイスとしてＵＳＢメモリスティック１２を使用することができる。またパーソナルコンピュータ１０は、ネットワーク１４を介してネットワークコンピュータ１６−１，１６−２に接続することができる。ネットワークコンピュータ１６−１，１６−２は、ユーザのパーソナルコンピュータ１０から見て、内蔵したハードディスクドライブによりネットワークストレージを構成している。
【００２８】
図２は本発明によるデータ保護システムの実施形態を示した機能構成のブロック図である。図２において、ユーザが使用するパーソナルコンピュータ１０には、データ保護プログラムの実行により実現される機能としてデータ保護部２０が設けられている。データ保護部２０に対しては、保護対象とする重要な情報を格納した元データファイル２２、保存場所の１つとなる保存ファイル２４が設けられる。
【００２９】
データ保護部２０には、データ分割部２６、符号化部２８、分散保存部３０及び復号部３２が設けられている。またデータ保護部２０には、外部記憶装置としてＵＳＢメモリスティック１２、ネットワークストレージ１８−１，１８−２が接続されている。
【００３０】
データ分割部２６は元データファイル２２から読み出された保護対象とするデータをｎ個のブロックデータに分割する。符号化部２８は、排他的論理和（ＸＯＲ）をとる複数の分割したブロックデータを指定するビットマップ行列と、このビットマップ行列で指定された複数のデータブロックの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の予め定めた冗長度Ｑに応じたｍ個だけ生成する。
【００３１】
分散保存部３０は、符号化部２８で生成されたｍ個の符号化データを２箇所以上でｍ箇所以内の記憶デバイス、本実施形態にあってはパーソナルコンピュータ１０自身の保存ファイル２４、着脱自在なＵＳＢメモリスティック１２、及びネットワーク１４を介して接続されたネットワークストレージ１８−１，１８−２に分散して保存する。
【００３２】
復号部３２は、分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する。具体的には、復号部３２は復元可能なｋ個以上の符号化データとして少なくとも分割数ｎ個分の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することにより、ｍ個の分割されたブロックデータを復号する。
【００３３】
ここで、符号化部２８で生成する符号化データの数は分割数ｎ以上の冗長度Ｑに応じたｍ個としているが、この場合、冗長度Ｑは
冗長度Ｑ＝ｍ／ｎ
で表すことができる。
【００３４】
この冗長度Ｑは符号化率Ｒの逆数である。即ち符号化率Ｒは
符号化率Ｒ＝ｎ／ｍ＝１／Ｑ
と表すことができる。
【００３５】
冗長度Ｑは１以上の値であり、冗長度を大きくするほどデータ保護の信頼性は向上するが、分散配置する符号化データの数が増加する。そこで、信頼性の向上と、符号化データの数のバランスを考慮して最適な値、例えばデータ分割数ｎより符号化データの数ｍが数パーセント程度多くなるように冗長度Ｑを決める。
【００３６】
また分散保存部３０による符号化データの分散保存は、複数の記憶デバイスに均等に符号化データを分散配置する方法、あるいは記憶デバイスの記憶容量や必要度に応じて符号化データの分散数を変更する方法などをとることができる。
【００３７】
例えば図２の実施形態にあっては、ＵＳＢメモリスティック１２の記憶容量は保存ファイル２４やネットワークストレージ１８−１，１８−２に比べ小さいことから、符号化部２８で生成したｍ個の符号化データにつき、全体の記憶容量に対するＵＳＢメモリスティック１２の占める割合に応じた数の符号化データをＵＳＢメモリスティック１２に分散配置する。これによって、複数の分散保存する記憶デバイスの記憶容量に相違があっても、それぞれの記憶容量に応じた数の符号化データを適切に分散保存することができる。
【００３８】
図３は本実施形態のデータ保護プログラムが実行されるコンピュータのハードウェア環境のブロック図である。図３において、ＣＰＵ３４のバス３６には、ＲＡＭ３８、ＲＯＭ４０、ハードディスクドライブ４２、キーボード４６，マウス４８，ディスプレイ５０を接続したデバイスインタフェース４４、ネットワークアダプタ５２、更にＵＳＢアダプタ５４が接続されている。
【００３９】
ハードディスクドライブ４２には本実施形態のデータ保護プログラムが格納されている。コンピュータを起動すると、ＲＯＭ４０のブートアッププログラムによるブート処理により、ハードディスクドライブ４２のＯＳがＲＡＭ３８に読み出されて実行された後、ハードディスクドライブ４２から本実施形態のデータ保護プログラムがＲＡＭ３８に読み出され、ＣＰＵ３４により実行される。
【００４０】
図４は本実施形態によるデータ保護処理のフローチャートである。図４について、図２を参照して説明すると次のようになる。ステップＳ１でファイル保存要求を判別すると、ステップＳ２に進み、図２のデータ分割部２６及び符号化部２８による保存ファイルの符号化処理を実行する。
【００４１】
続いてステップＳ３で分散保存部３０により符号化データの分散処理を行い、符号化処理で作成されたｍ個の符号化データを保存場所となる複数の記憶デバイスに分散保存する。
【００４２】
続いてステップＳ４でファイル読出要求を判別すると、ステップＳ５で復号部３２が保存先から符号化データを回収し、ステップＳ６で回収した符号化データについてガウス消去法によりビットマップ行列を単位行列化して元のファイルを復元する。
【００４３】
図５は図４のステップＳ２の符号化処理の詳細を示したフローチャートである。図５において、符号化処理は、まずステップＳ１で処理対象となる保存データを符号化処理に適合したサイズとなるデータＤ１〜ＤＮに等分割する。
【００４４】
図６は図５のステップＳ１のデータ分割の説明図であり、保存データ５６を符号化処理に必要な所定サイズの分割元データ５８−１〜５８−Ｎに分割する。ここで保存データ５６は本実施形態で処理可能な保護データの最大サイズを示しており、実際の保護データはこの保存データ５６のサイズ内に収まっており、余った部分についてはビット０で埋めており、したがって最大サイズ以内のデータにつき固定的にＮ個の分割元データ５８−１〜５８−Ｎが等分割により生成される。
【００４５】
再び図５を参照するに、次にステップＳ２で分割データ番号ｉをｉ＝１に初期化する。この分割データ番号ｉはｉ＝１〜Ｎの値をとる。次にステップＳ３で本実施形態の符号化に使用するｍ行ｎ列のビットマップ行列Ｍを生成する。
【００４６】
図７は図５のステップＳ３で生成するビットマップ行列６２の説明図である。本実施形態にあっては、図６のように、保存データ５６からＮ個に分割した分割元データ５８−１〜５８−Ｎにつき更に、図５のステップＳ４で例えば図６の分割元データ５８−１につき取り出して示すようにｎ個のブロックデータ６０−１〜６０−ｎに分割しており、このブロックデータ６０−１〜６０−ｎと冗長度Ｑで決まる符号化データの生成数ｍ個に基づきビットマップ行列６２が作成される。
【００４７】
ビットマップ行列６２は行番号ｘと列番号ｙを持ち、行番号ｘは符号化データの生成数ｘ＝１〜ｍの値を取り、一方、列番号ｙは図６に示したブロックデータ６０−１〜６０−ｎの位置を示すｙ＝１〜ｎの値を取る。
【００４８】
ビットマップ行列６２は、行番号ｘで与えられる各行ごとに、符号化データに組み合わせる排他的論理和データの排他的論理和計算に使用するブロックデータの位置を、ビットｂ１〜ｂｎのビット１により示している。
【００４９】
例えばビットマップ行列
ｂ１，ｂ２，ｂ３・・・ｂｎ＝１１０・・・０
であれば、ビット１に対応した第１ビット目ｂ１と第２ビット目ｂ２の列番号ｙで示す図６の１番目のブロックデータ６０−１と２番目のブロックデータ６０−２の排他的論理和を計算して求めることになる。
【００５０】
ビットマップ行列６２としてはビット０と１からなる任意の行列を作成することができるが、ビット１が１つのみで他のビットが全て０となる場合には、排他的論理和計算にあっては１箇所のビット１に対応したブロックデータそのものが排他的論理和計算されたデータとなり、これを分散保存した場合には一部ではあるがブロックデータそのものが分かってしまう。
【００５１】
そこで本実施形態におけるビットマップ行列６２にあっては、必ずビット１を２つ以上含むビットマップ行列を生成する。これによって符号化されたデータに含まれるＸＯＲデータは必ず２以上のブロックデータの排他的論理和となり、一部のブロックデータがそのまま分散保存され、紛失・盗難などの際に、第三者に一部であってもブロックデータがそのまま分かってしまうことを防止する。
【００５２】
再び図５を参照するに、ステップＳ３でｍ行ｎ列のビットマップ行列Ｍを生成したならば、次にステップＳ４でデータＤｉを図６の分割元データ５８−１に示すようにｎ個のブロックデータＢＬ１〜ＢＬｎに分割する。
【００５３】
続いてステップＳ５で行番号ｘをｘ＝１に初期化する。続いてステップＳ６で符号化データＰをＰ＝０に初期化し、且つ列番号ｙをｙ＝１に初期化する。続いてステップＳ７でビットマップ行列Ｍｘｙ＝Ｍ１１のビットｂ１がビット１か否かチェックする。
【００５４】
行列のビットｂ１が１であれば、ステップＳ８でこれに対応したブロックデータＢＬｘとステップＳ６で初期設定した符号化データＰとの排他的論理和（ＸＯＲ）を求めて新たな符号化データＰとする。また、ステップＳ７で行列Ｍｘｙ＝Ｍ１１がビット０であった場合には、ステップＳ８はスキップする。
【００５５】
次にステップＳ９で列番号ｙを１つインクリメントした後、ステップＳ１０で最終値ｎを超えていなければステップＳ７に戻り、次の行列Ｍｘｙ＝Ｍ１２のビットｂ２がビット１か否かチェックし、ビット１であれば、ステップＳ８で対応するブロックデータＢＬ２と現在求めている符号化データＰとの排他的論理和（ＸＯＲ）を計算する。またステップＳ７で指定されるビットｂ２がビット０であれば、ステップＳ８はスキップする。
【００５６】
このようなステップＳ７〜Ｓ９の処理を、ステップＳ１０で列番号ｙがｙ＝ｎに達するまで繰り返し、ｎを超えた場合にはステップＳ１１に進み、行番号ｘを１つインクリメントした後、ステップ１２で、このときステップＳ８で計算していた符号化データＰを予め決められた複数の分散先の１つに均等に分散して保存する。
【００５７】
例えば図２のように、符号化データの分散先が保存ファイル２４、ＵＳＢメモリスティック１２及びネットワークストレージ１８−１，１８−２の４つであれば、生成された符号化データの生成番号は行番号ｘに一致することから、保存箇所の数Ａにつき
（ｘ  ｍｏｄ  Ａ）
をとることで順番に保存箇所を指定して、均等に符号化データを保存することができる。
【００５８】
次にステップＳ１３で行番号ｘが最終値ｍを超えたか否かチェックし、ｍを超えていなければステップＳ６に戻り、次の行番号ｘ＝２のビットマップ行列を用いたステップＳ６〜Ｓ１２による符号化と分散保存を行う。
【００５９】
ステップＳ６〜Ｓ１２の処理の繰り返しにより、ステップＳ１３で行番号ｘがｍを超えると、全てのビットマップ行列６２による符号化が終了したことから、ステップＳ１４に進み、ファイル番号ｉを１つインクリメントした後、ステップＳ１５で最終ファイルか否か、即ちファイル番号ｉがＮを超えたか否かチェックし、超えていなければステップＳ３に戻り、図６の次の分割元データ５８−２を対象に、ステップＳ３〜Ｓ１４によるｎ個の符号化データの生成を繰り返す。
【００６０】
図６の分割元データ５８−Ｎの符号化が終了すると、ステップＳ１５で最終ファイルの処理終了が判別され、一連の符号化処理を終了して図４のメインルーチンにリターンする。
【００６１】
図８は本実施形態のデータ保護処理における符号化処理、分散保存処理、及び復号のための回収処理の説明図である。符号化処理は図６のように、Ｎ個に分割されたデータの１つを分割元データ５８とし、分割元データ５８をｎ個のブロックデータ６０−１〜６０−ｎに分割している。
【００６２】
この分割数ｎは例えばｎ＝１０２８、ブロックサイズ＝１２８０バイトというように固定設定されており、実際のデータが最大サイズより小さい場合には、空き部分にビット０を入れて固定的に分割数ｎのブロックデータを生成する。
【００６３】
ブロックデータ６０−１〜６０−ｎは、ビットマップ６８に基づくビット１に対応した複数のブロックデータの排他的論理和の計算により、ＸＯＲデータ７０との組からなるｍ個の符号化データ６６−１〜６６−ｍに変換される。
【００６４】
符号化データ６６−１を例に取ると、ビットマップ６８はＸＯＲデータ７０を計算するために使用する元データ５８における分割したブロックデータ６０−１〜６０−ｎの位置を示すｎビットのデータである。
【００６５】
例えば符号化データ６６−１のビットマップ６８は「１００００・・・００１」であり、左端と右端の１ビットのみが「１」で残りは全て「０」となっている。したがって、このビットマップ６８に基づき、ビット１に対応したブロックデータ６０−１とブロックデータ６０−ｎを選択して排他的論理和（ＸＯＲ）を計算し、ＸＯＲデータ７０としてデータＰ１を計算してビットマップ６８に組み合わせることで、符号化データ６６−１を生成している。
【００６６】
符号化処理により生成されたｍ個の符号化データ６６−１〜６６−ｍは、記憶場所となるＮ個の記憶デバイス１８０−１〜１８０−Ｎに均等に分散配置されるか、記憶容量や必要性に応じた数に従って分散保存される。分散保存される記憶デバイスの数ＮはＮ＝２以上でｍ以内の数である。
【００６７】
記憶デバイス１８０−１〜１８０−Ｎに分散保存された符号化データに基づく復号は、符号化データの回収７２を行って回収データ７４として符号化データ６６−１〜６６−ｋを求め、このｋ個の符号化データから、図９に示すように元のブロックデータ６０−１〜６０−ｎを復号データ７８として復号することができる。
【００６８】
図９における復号処理は、回収データ７４として得られたｋ個の符号化データ６６−１〜６６−ｋにおけるビットマップ６８に対し、ガウスの消去法による単位行列化７６の処理を行うことで、これに付加しているＸＯＲデータ７０に対応した値Ｐ１〜Ｐｋから元のブロックデータＢＬ１〜ＢＬｎとしてブロックデータ６０−１〜６０−ｎを復号することができる。
【００６９】
図１０は本実施形態による符号化処理、分散保存処理及び復号処理を具体的に示している。図１０において、分割元データ５８は例えば２バイトのブロックデータ６０−１〜６０−４に分割される。ブロックデータ６０−１〜６０−４は１６進で例えば「５２」、「７０」、「７３」、「３０」である。
【００７０】
続いて符号化を行い、冗長度Ｑにより決まるｍ個の符号化データ６６−１，６６−２，６６−３，６６−４，６６−５，・・・に変換する。符号化データ６６−１を例に取ると、ビットマップ６８とＸＯＲ７０で構成され、ビットマップ６８とＸＯＲデータ７０を計算するために使用する分割元データ５８における分割したブロックデータ６０−１〜６０−４の位置を示す４ビットのデータである。
【００７１】
符号化データのビットマップ６８は「１０１０」であり、これに従って元データ５８から対応する１番目と３番目のブロックデータ６０−１，６０−３を選択して、排他的論理和（ＸＯＲ）を１６進計算で
ＸＯＲ＝５２（＋）７３＝２１
として求め、ＸＯＲデータ７０として「２１」を得ている。
【００７２】
このようにして変換された符号化データ６６−１，６６−２，６６−３，６６−４，６６−５，・・・は、保存場所となる複数の記憶デバイスに分散記憶され、その後に読出要求を受けると、復号に必要な回収データ７４として例えば４個の符号化データデータ６６−１〜６６−４が回収される。
【００７３】
復号処理は、回収データ７４として得られた４個の符号化データ６６−１〜６６−４におけるビットマップ６８に対し、ガウスの消去法による単位行列化データ７６の処理を行って単位行列８０とすることで、単位行列８０に付加しているＸＯＲデータ７０から元のブロックデータ６０−１〜６０−４の値である「５２」、「７０」、「７３」、「３０」を復号することができる。
【００７４】
ここで図４の復号処理の際に、図８のように例えば記憶デバイス１８−３が盗難などにより失われて符号化データの消失が発生していたとしても、図９のようにｋ個の符号化データが回収できれば、ビットマップの単位行列化データ７６により元のブロックデータ６０−１〜６０−ｎを復号することができる。
【００７５】
実際の装置では、盗難などによるデータの喪失が予想される記憶デバイス、例えば図１のシステム環境ではＵＳＢメモリスティック１２が紛失や盗難に遭う可能性が最も高いことから、このＵＳＢメモリスティック１２により失われる符号化データを考慮して、ブロックデータの分割数ｎより数パーセント程度余分となるｍ個の符号化データを生成して分散記憶しておく。
【００７６】
これにより例えばＵＳＢメモリスティック１２が盗難もしくは紛失などにより失われても、それ以外の記憶デバイスからｋ個の符号化データを回収して元データを復号することができる。
【００７７】
一方、ＵＳＢメモリスティック１２に保存している符号化データについては、例えばｋ個未満の符号化データが保存されているだけであり、このＵＳＢメモリスティック１２の保存データは復元に必要なｋ個に達していないことから、ＵＳＢメモリスティック１２の符号化データを第三者が不正に入手しても元の分割データを復元することはできない。
【００７８】
また１つ１つの符号化データも少なくとも２つのブロックデータの排他的論理和から求められているため、符号化データに含まれるＸＯＲデータそのものも直接、元データの一部を示してはおらず、一部であっても元データを知ることはできない。
【００７９】
図１１は本実施形態における符号化データの均等分散配置の説明図である。図１１にあっては、ユーザが使用するクライアント８２はユーザファイル８４を備えており、クライアント８２はデータ保護サーバ８６にアクセス可能であり、データ保護サーバ８６に本実施形態によるデータ保護プログラムがインストールされている。即ちデータ保護サーバ８６には、図２のパーソナルコンピュータ１０に示したデータ保護部２０と同じ機能が設けられている。
【００８０】
データ保護サーバ８６はクライアント８２からユーザファイルの保存要求を受けると、図２のデータ保護部２０のデータ分割部２６及び符号化部２８によるユーザファイルデータの分割と符号化処理を実行した後、分散保存部３０により例えば保存場所となるネットワークストレージ１８−１〜１８−３に、符号化処理で生成した例えば１２個の符号化データＰ１〜Ｐ１２を４つずつ均等に分散保存する。
【００８１】
このときデータ保護サーバ８６自身には符号化データは保存しておらず、管理ファイル８８に保存先となるネットワークストレージ１８−１〜１８−３のアドレスと、保存している符号化データの数などの管理情報のみが記憶されているだけである。
【００８２】
このため、クライアント８２からファイル読出要求を受けた際に、データ保護サーバ８６は管理ファイル８８を参照し、保存先となるネットワークストレージ１８−１〜１８−３を指定して、復元に必要なｋ個の符号化データを回収して復号し、クライアント８２に応答することになる。
【００８３】
図１２は本実施形態における符号化データを保存場所に応じて変化させた分散保存の説明図である。図１２において、データ保護サーバ８６は、保存先となる例えばネットワークストレージ１８−１〜１８−３の記憶容量または必要度などに応じて、生成されたｍ個例えばｍ＝１０個の符号化データＰ１〜Ｐ１０の保存数を、例えばネットワークストレージ１８−１については５個、ネットワークストレージ１８−２については３個、ネットワークストレージ１８−３については２個というように決めている。
【００８４】
ここでデータ保護サーバ８６による復元は、ｍ＝１０個の符号化データのうちのｋ＝７個の符号化データを回収できれば復元できるものとする。このような場合には、３台のネットワークストレージ１８−１〜１８−３のうち、ネットワークストレージ１８−２，１８−３のいずれか一方が回収不能となった場合であっても、データ保護サーバ８６で復元できる。
【００８５】
即ち、ネットワークストレージ１８−２の３つの符号化データＰ６〜Ｐ８が回収できなくても、ネットワークストレージ１８−１〜１８−３から７個の符号化データＰ１〜Ｐ５，Ｐ９〜Ｐ１０が回収できることで、元の分割データを復元できる。
【００８６】
またネットワークストレージ１８−３の符号化データＰ９〜Ｐ１０が回収できない場合であっても、ネットワークストレージ１８−１〜１８−２から８つの符号化データＰ１〜Ｐ５，Ｐ６〜Ｐ８が回収できることで、元の分割データを復元できる。
【００８７】
これに対しネットワークストレージ１８−１の符号化データが回収できない場合には、残りのネットワークストレージ１８−２，１８−３からは５つの符号化データＰ６〜Ｐ１０しか回収できず、復元可能なｋ＝７個に達しないことから、元の分割データは復元できない。
【００８８】
図１３は保存データをキーにより暗号化した後に分割して符号化する他の実施形態を示したブロック図である。図１３において、パーソナルコンピュータ１０のデータ保護部２０には、図２の実施形態におけるデータ分割部２６、符号化部２８、分散保存部３０、復号部３２に加え、更に暗号化部９０と暗号解読部９２が設けられている。また符号化部２８には第１符号化部２８−１と第２符号化部２８−２の機能が設けられる。
【００８９】
暗号化部９０は、元データファイル２２から読み出した保存するファイルのデータをキーにより暗号化して暗号化データを生成する。データ分割部２６は、暗号化部９０で生成された暗号化データ及び暗号化に使用したキーの各々をｎ個のブロックデータに分割する。
【００９０】
符号化部２８に設けた第１符号化部２８−１は暗号化データを符号化する。また第２符号化部２８−２はキーを符号化する。即ち第１符号化部２８−１は、排他的論理和をとる複数の分割データを指定するビットマップ行列と、このビットマップ行列で指定された複数の分割暗号化データの排他的論理和をとった排他的論理和データとの組からなる第１符号化データを分割数ｎ以上の冗長度Ｑに応じたｍ個だけ生成する。
【００９１】
第２符号化部２８−２は、同じビットマップ行列と、このビットマップ行列で指定された複数の分割キーの排他的論理和をとった排他的論理和データとの組からなる第２符号化データを、分割数ｎ以上の冗長度Ｑに応じたｍ個だけ生成する。
【００９２】
分散保存部３０は、符号化部２８で生成したｍ個の第１符号化データ及び第２符号化データの各々を２箇所以上でｍ箇所以内の記憶デバイス、例えば保存ファイル２４、ＵＳＢメモリスティック１２、ネットワークストレージ１８−１，１８−２に分散して保存する。
【００９３】
復号部３２は、分散保存されたｍ個の第１符号化データ及び第２符号化データのうちの復元可能なｋ個以上の第１符号化データ及び第２符号化データをそれぞれ回収し、暗号化データ及びキーを復号する。
【００９４】
具体的には、復号部３２は復元可能なｋ個以上の第１符号化データ及び第２符号化データを回収し、回収した第１符号化データ及び第２符号化データのビットマップ行列を単位行列化することにより、ｍ個の分割暗号化データ及び分割キーを復号する。暗号解読部９２は、復元されたキーを用いて復元された暗号化データから元のデータを生成する。
【００９５】
この実施形態で使用する暗号化アルゴリズムは、共通鍵暗号方式のＤＥＳやＡＥＳ、あるいは公開鍵暗号方式のＲＳＡなど、適宜の暗号化アルゴリズムを使用することができる。
【００９６】
図１４は図１３の実施形態によるデータ保護処理のフローチャートである。図１４においてデータ保護処理は、ステップＳ１でファイル保存要求を判別すると、ステップＳ２に進み、保存データをキーにより暗号化した後、ステップＳ３で暗号化データ及びキーの符号化処理を行う。続いてステップＳ４で符号化データ及び符号化キーの分散保存処理を行う。
【００９７】
一方、ステップＳ５でファイル読出要求を判別すると、ステップＳ６で保存先から符号化データ及び符号化キーを回収した後、ステップＳ７でそれぞれにつきガウス消去法により単位行列化して暗号化データ及びキーを復元し、更にステップＳ８で、復元したキーにより暗号化データから元データを解読する。このようなステップＳ１〜Ｓ８の処理を、ステップＳ９で停止指示があるまで繰り返すことになる。
【００９８】
この図１３，図１４の実施形態に示した保存データをキーにより暗号化した後に暗号化データ及びキーをそれぞれ符号化して分散保存することにより、分散保存した符号化データは本実施形態による冗長符号化に加えて暗号化されることで二重の保護が掛けられており、保存先の記憶デバイスが盗難などにより失われても、失われたデータから元のデータを復元することはほぼ不可能であり、分散保存によるデータ保護の秘密性と信頼性をより一層高めることができる。
【００９９】
また本発明はコンピュータにより実行されるデータ保護プログラムを提供するものであり、このデータ保護プログラムは図４，図５及び図１４のフローチャートに示した処理内容を備えることになる。
【０１００】
また本発明は、本実施形態のデータ保護プログラムを記録したコンピュータ可読の記録媒体を提供する。この記録媒体とは、ＣＤ−ＲＯＭ、フロッピィディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの可搬型記憶媒体や、コンピュータシステムの内外に備えられたハードディスクドライブなどの記憶装置の他、回線を介してプログラムを保持するデータベース、あるいは他のコンピュータシステム並びにそのデータベースや、更に回線上の伝送媒体を含むものである。
【０１０１】
なお本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【０１０２】
ここで本発明の特徴を列挙すると、次の付記のようになる。
（付記）
（付記１）
データをｎ個に分割するデータ分割部と、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化部と、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号部と、
とを特徴とするデータ保護システム。（１）
【０１０３】
（付記２）
付記１記載のデータ保護システムに於いて、前記符号化部のビットマップ行列は、ビット０と１からなる少なくともｍ行ｎ列の行列であり、１行当たり少なくとも２個のビット１を含むことで２以上の分割データの排他論理和をとった符号化データを生成することを特徴とするデータ保護システム。（２）
【０１０４】
（付記３）
付記１記載のデータ保護システムに於いて、前記復号部は、復元可能なｋ個以上の符号化データとして少なくとも前記分割数ｎ分の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することによりｎ個の分割データを復号することを特徴とするデータ保護システム。
【０１０５】
（付記４）
データをキーにより暗号化して暗号化データを生成する暗号化部と、
前記暗号化データ及びキーの各々をｎ個に分割するデータ分割部と、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割暗号化データの排他的論理和をとった排他的論理和データとの組からなる第１符号化データを、分割数ｎ以上のｍ個だけ生成する第１符号化部と、
前記ビットマップ行列と、前記ビットマップ行列で指定された複数の分割キーの排他的論理和をとった排他的論理和データとの組からなる第２符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する第２符号化部と、
前記ｍ個の第１及び第２符号化データの各々を、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の第１及び第２符号化データのうち復元可能なｋ個以上の第１及び第２符号化データを回収して暗号化データ及びキーを復号する復号部と、
復元された前記キーを用いて復元された前記暗号化データから元のデータを生成する暗号解読部と、
を備えたことを特徴とするデータ保護システム。（３）
【０１０６】
（付記５）
付記４記載のデータ保護システムに於いて、前記符号化部のビットマップ行列は、ビット０と１からなる少なくともｍ行ｎ列の行列であり、１行当たり少なくとも２個のビット１を含むことで２以上の分割データの排他論理和をとった符号化暗号データ及び符号化キーを生成することを特徴とするデータ保護システム。
【０１０７】
（付記６）
付記４記載のデータ保護システムに於いて、前記復号部は、復元可能なｋ個以上の符号化データとして少なくとも前記分割数ｎ分の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することによりｎ個の分割暗号化データ及び分割キーを復号することを特徴とするデータ保護システム。
【０１０８】
（付記７）
付記１又は４記載のデータ保護システムに於いて、前記分散保存部は、前記記憶デバイスとしてネットワークストレージ、装置又は機器に対し着脱自在な可搬型記憶媒体等の外部記憶装置を含むことを特徴とするデータ保護システム。
【０１０９】
（付記８）
付記１又は４記載のデータ保護システムに於いて、前記分散保存部は、前記記憶デバイスに保存する符号化データの数を、前記記憶デバイスの記憶容量又は必要度に応じて変更することを特徴とするデータ保護システム。
【０１１０】
（付記９）
データをｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化ステップと、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号ステップと、
とを特徴とするデータ保護方法。（４）
【０１１１】
（付記１０）
付記９記載のデータ保護方法に於いて、前記符号化ステップのビットマップ行列は、ビット０と１からなる少なくともｍ行ｎ列の行列であり、１行当たり少なくとも２個のビット１を含むことで２以上の分割データの排他論理和をとった符号化データを生成することを特徴とするデータ保護方法。
【０１１２】
（付記１１）
付記９記載のデータ保護方法に於いて、前記復号ステップは、復元可能なｋ個以上の符号化データとして少なくとも前記分割数ｎ分の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することによりｎ個の分割データを復号することを特徴とするデータ保護方法。
【０１１３】
（付記１２）
データをキーにより暗号化して暗号化データを生成する暗号化ステップと、
前記暗号化データ及びキーの各々をｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割暗号化データの排他的論理和をとった排他的論理和データとの組からなる第１符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する第１符号化ステップと、
前記ビットマップ行列と、前記ビットマップ行列で指定された複数の分割キーの排他的論理和をとった排他的論理和データとの組からなる第２符号化データを、分割数ｎ以上のｍ個だけ生成する第２符号化ステップと、
前記ｍ個の第１及び第２符号化データの各々を、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の第１及び第２符号化データのうち復元可能なｋ個以上の第１及び第２符号化データを回収して暗号化データ及びキーを復号する復号ステップと、
復元された前記キーを用いて復元された前記暗号化データから元のデータを生成する暗号解読ステップと、
を備えたことを特徴とするデータ保護方法。
【０１１４】
（付記１３）
付記１２記載のデータ保護方法に於いて、前記符号化ステップのビットマップ行列は、ビット０と１からなる少なくともｍ行ｎ列の行列であり、１行当たり少なくとも２個のビット１を含むことで２以上の分割データの排他論理和をとった符号化暗号データ及び符号化キーを生成することを特徴とするデータ保護方法。
【０１１５】
（付記１４）
付記１２記載のデータ保護方法に於いて、前記復号ステップは、復元可能なｋ個以上の符号化データとして少なくとも前記分割数ｎ分の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することによりｎ個の分割暗号化データ及び分割キーを復号することを特徴とするデータ保護方法。
【０１１６】
（付記１５）
付記９又は１２記載のデータ保護方法に於いて、前記分散保存ステップは、前記記憶デバイスとしてネットワークストレージ、装置又は機器に対し着脱自在な可搬型記憶媒体等の外部記憶装置を含むことを特徴とするデータ保護方法。
【０１１７】
（付記１６）
付記９又は１２記載のデータ保護方法に於いて、前記分散保存ステップは、前記記憶デバイスに保存する符号化データの数を、前記記憶デバイスの記憶容量又は必要度に応じて変更することを特徴とするデータ保護方法。
【０１１８】
（付記１７）
コンピュータに、
データをｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化ステップと、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号ステップと、
とを実行させることを特徴とするデータ保護プログラム。（５）
【０１１９】
（付記１８）
付記１７記載のデータ保護プログラムに於いて、前記符号化ステップのビットマップ行列は、ビット０と１からなる少なくともｍ行ｎ列の行列であり、１行当たり少なくとも２個のビット１を含むことで２以上の分割データの排他論理和をとった符号化データを生成することを特徴とするデータ保護プログラム。
【０１２０】
（付記１９）
付記１７記載のデータ保護プログラムに於いて、前記復号ステップは、復元可能なｋ個以上の符号化データとして少なくとも前記分割数ｎ分の符号化データを回収し、回収した符号化データのビットマップ行列を単位行列化することによりｎ個の分割データを復号することを特徴とするデータ保護プログラム。
【０１２１】
（付記２０）
コンピュータに、
データをキーにより暗号化して暗号化データを生成する暗号化ステップと、
前記暗号化データ及びキーの各々をｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割暗号化データの排他的論理和をとった排他的論理和データとの組からなる第１符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する第１符号化ステップと、
前記ビットマップ行列と、前記ビットマップ行列で指定された複数の分割キーの排他的論理和をとった排他的論理和データとの組からなる第２符号化データを、分割数ｎ以上のｍ個だけ生成する第２符号化ステップと、
前記ｍ個の第１及び第２符号化データの各々を、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の第１及び第２符号化データのうち復元可能なｋ個以上の第１及び第２符号化データを回収して暗号化データ及びキーを復号する復号ステップと、
復元された前記キーを用いて復元された前記暗号化データから元のデータを生成する暗号解読ステップと、
を実行させることを特徴とするデータ保護プログラム。
【図面の簡単な説明】
【０１２２】
【図１】本発明のデータ保護システムの使用環境の説明図
【図２】本発明によるデータ保護システムの実施形態を示した機能構成のブロック図
【図３】本実施形態のデータ保護プログラムが実行されるコンピュータのハードウェア環境のブロック図
【図４】本実施形態によるデータ保護処理のフローチャート
【図５】図４のステップＳ２の符号化処理の詳細を示したフローチャート
【図６】図４の符号化処理における保存データの分割処理の説明図
【図７】図４の符号化処理で生成するビットマップ行列の説明図
【図８】本実施形態による符号化処理、分散保存処理及び復号のための回収処理の説明図
【図９】図８の回収処理に続く復号処理の説明図
【図１０】本実施形態による符号化処理と復号処理の具体的な説明図
【図１１】本実施形態における符号化データの均等分散保存の説明図
【図１２】本実施形態における符号化データを保存場所に応じて変化させた分散保存の説明図
【図１３】保存データをキーにより暗号化した後に分割して符号化する他の実施形態を示したブロック図
【図１４】図１３の実施形態によるデータ保護処理のフローチャート
【符号の説明】
【０１２３】
１０：パーソナルコンピュータ
１２：ＵＳＢメモリスティック
１４：ネットワーク
１６−１，１６−４：ネットワークコンピュータ
１８−１，１８−２：ネットワークストレージ
２０：データ保護部
２２：元データファイル
２４：保存ファイル
２６：データ分割部
２８：符号化部
２８−１：第１符号化部
２８−２：第２符号化部
３０：分散保存部
３２：復号部
５６：保存データ
５８，５８−１〜５８−Ｎ：分割元データ
６０−１〜６０−ｎ：ブロックデータ
６２：ビットマップ行列
６６−１〜６６−ｍ：符号化データ
６８：ビットマップ
７０：ＸＯＲデータ
７２：回収
７４：回収データ
７５：復号処理
７６：単位行列化
７８：復元データ
８０：単位行列
８２：クライアント
８４：ユーザファイル
８６：データ保護サーバ
８８：管理ファイル
９０：暗号化部
９２：暗号解読部
【図１】
2007299088.tif 000003
【図２】
2007299088.tif 000004
【図３】
2007299088.tif 000005
【図４】
2007299088.tif 000006
【図５】
2007299088.tif 000007
【図６】
2007299088.tif 000008
【図７】
2007299088.tif 000009
【図８】
2007299088.tif 000010
【図９】
2007299088.tif 000011
【図１０】
2007299088.tif 000012
【図１１】
2007299088.tif 000013
【図１２】
2007299088.tif 000014
【図１３】
2007299088.tif 000015
【図１４】
2007299088.tif 000016
【手続補正書】
【提出日】平成18年8月28日(2006.8.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
データをｎ個に分割するデータ分割部と、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化部と、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号部と、
を備えたことを特徴とするデータ保護システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
データをｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化ステップと、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号ステップと、
を備えたことを特徴とするデータ保護方法。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
（システム）
本発明は、データ保護システムを提供する。本発明のデータ保護システムは、
データをｎ個に分割するデータ分割部と、
排他的論理和（ＸＯＲ）をとる複数の分割データを指定するビットマップ行列と、ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化部と、
ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号部と、
を備えたことを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
このようにして変換された符号化データ６６−１，６６−２，６６−３，６６−４，６６−５，・・・は、保存場所となる複数の記憶デバイスに分散記憶され、その後に読出要求を受けると、復号に必要な回収データ７４として例えば４個の符号化データ６６−１〜６６−４が回収される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
ここで図４の復号処理の際に、図８のように例えば記憶デバイス１８０−３が盗難などにより失われて符号化データの消失が発生していたとしても、図９のようにｋ個の符号化データが回収できれば、ビットマップの単位行列化データ７６により元のブロックデータ６０−１〜６０−ｎを復号することができる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
ここで本発明の特徴を列挙すると、次の付記のようになる。
（付記）
（付記１）
データをｎ個に分割するデータ分割部と、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化部と、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存部と、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号部と、
を備えたことを特徴とするデータ保護システム。（１）
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１１０
【補正方法】変更
【補正の内容】
【０１１０】
（付記９）
データをｎ個に分割するデータ分割ステップと、
排他的論理和をとる複数の分割データを指定するビットマップ行列と、前記ビットマップ行列で指定された複数の分割データの排他的論理和をとった排他的論理和データとの組からなる符号化データを、分割数ｎ以上の冗長度に応じたｍ個だけ生成する符号化ステップと、
前記ｍ個の符号化データを、２箇所以上でｍ箇所以内の記憶デバイスに分散して保存する分散保存ステップと、
分散保存されたｍ個の符号化データのうち復元可能なｋ個以上の符号化データを回収して元のデータを復号する復号ステップと、
を備えたことを特徴とするデータ保護方法。（４）