(57)【特許請求の範囲】
【請求項１】
ｎが自然数であるｎビットの連続する第１のデータ列とｎが自然数であるｎビットの連続する第２のデータ列とのＸＯＲ演算を行い，第１の演算データを出力する第１のＸＯＲ演算手段，
第１のキー・データおよび第２のキー・データを用いて，上記第１のＸＯＲ演算手段から出力される第１の演算データのビット列の配列を変更して，キー・データを生成する第１のキー・データ生成手段，
上記第１のデータ列と上記第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第２の演算データを出力する第２のＸＯＲ演算手段，
上記第２のデータ列と上記第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第３の演算データを出力する第３のＸＯＲ演算手段，
上記第１のキー・データを用いて上記第２のＸＯＲ演算手段から出力される第２の演算データのビット列の配列を変更して第１のランダム・データを生成し，生成した第１のランダム・データを第１の秘密分散データとして出力する第１の秘密分散データ出力手段，
上記第１の秘密分散データ出力手段から出力された第１の秘密分散データと，上記第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第２の秘密分散データを出力する第２の秘密分散データ出力手段，
上記第２のキー・データを用いて上記第３のＸＯＲ演算手段から出力される第３の演算データのビット列の配列を変更して第２のランダム・データを生成し，生成した第２のランダム・データを第３の秘密分散データとして出力する第３の秘密分散データ出力手段，および
上記第３の秘密分散データ出力手段から出力された第３の秘密分散データと，上記第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第４の秘密分散データを出力する第４の秘密分散データ出力手段，
を備えた秘密分散装置。
【請求項２】
上記第１のキー・データと上記第２のキー・データとのＸＯＲ演算を行い，ＸＯＲキー・データを生成するＸＯＲキー・データ生成手段をさらに備え，
上記第１のキー・データ生成手段は，
上記ＸＯＲキー・データ生成手段によって生成されたＸＯＲキー・データを用いて，第１の暗号化方式により上記第１の演算データを暗号化することにより上記第１の演算データのビット列の配列を変更してキー・データを生成し，
上記第１の秘密分散データ出力手段は，
上記第１のキー・データを用いて，上記第１の暗号化方式により上記第２の演算データを暗号化することにより上記第１のランダム・データを生成して，生成した第１のランダム・データを第１の秘密分散データとして出力し，
上記第３の秘密分散データ出力手段は，
上記第２のキー・データを用いて，上記第１の暗号化方式により上記第３の演算データを暗号化することにより上記第２のランダム・データを生成して，生成した第２のランダム・データを第３の秘密分散データとして出力する，
請求項１に記載の秘密分散装置。
【請求項３】
上記第１のキー・データ生成手段は，
上記第１のキー・データを用いて，上記第１の演算データのビット列の配列を変更する第１の配列変更処理を行い，
上記第２のキー・データを用いて，上記第１の配列変更処理が行われた上記第１の演算データのビット列の配列をさらに変更する第２の配列変更処理を行い，キー・データを生成し，
上記第１の秘密分散データ出力手段は，
上記第１のキー・データを用いて上記第１の配列変更処理および上記第２の配列変更処理の少なくとも一方の処理を行うことにより，上記第１のランダム・データを生成して，生成した第１のランダム・データを第１の秘密分散データとして出力し，
上記第３の秘密分散データ出力手段は，
上記第２のキー・データを用いて上記少なくとも一方の処理を行うことにより，上記第２のランダム・データを生成して，生成した第２のランダム・データを第３の秘密分散データとして出力する，
請求項１に記載の秘密分散装置。
【請求項４】
上記第１の配列変更処理は，
ビット・ローテート処理またはビット・シャッフル処理であり，
上記第２の配列変更処理は，
ビット・ローテート処理またはビット・シャッフル処理のうち，上記第１の配列変更処理で行われた処理を除く処理である，
請求項３に記載の秘密分散装置。
【請求項５】
請求項１に記載の秘密分散装置において生成された第１の秘密分散データ，第２の秘密分散データ，第３の秘密分散データおよび第４の秘密分散データのうち，少なくとも３つの秘密分散データを取得する秘密分散データ取得手段，
上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データから上記第１の演算データを生成する第１の演算データ生成手段，
上記第１のキー・データおよび上記第２のキー・データを取得するキー・データ取得手段，
上記キー・データ取得手段によって取得された上記第１のキー・データおよび上記第２のキー・データを用いて，上記第１のキー・データ生成手段による上記キー・データの生成と同じ手法によって上記第１の演算データのビット列の配列を変更して上記キー・データを生成する第２のキー・データ生成手段，
上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに第１の秘密分散データまたは第３の秘密分散データのいずれか一方しか含まれていない場合には，第１の秘密分散データおよび第３の秘密分散データのうち含まれていない秘密分散データを生成し，第１の秘密分散データと上記第１のキー・データとを用いて上記第２の演算データを生成し，かつ上記第２の秘密分散データと上記第２のキー・データとを用いて上記第３の演算データを生成する第２の演算データ生成手段，ならびに
上記第２の演算データ生成手段によって生成された上記第２の演算データと上記第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い上記第１のデータ列を復元し，上記第２の演算データ生成手段によって生成された上記第３の演算データと上記第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，上記第２のデータ列を復元する復元手段，
を備えたデータ復元装置。
【請求項６】
上記第１の演算データ生成手段は，
上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データのうち，上記第１の秘密分散データと上記第２の秘密分散データとのＸＯＲ演算または上記第３の秘密分散データと上記第４の秘密分散データとのＸＯＲ演算を行い，上記第１の演算データを生成する，
請求項５に記載のデータ復元装置。
【請求項７】
上記第２の演算データ生成手段は，
上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに，上記第１の秘密分散データおよび上記第３の秘密分散データのいずれも含まれている場合には上記第１の秘密分散データと上記第１のキー・データとを用いて上記第２の演算データを生成し，かつ上記第３の秘密分散データと上記第２のキー・データとを用いて上記第３の演算データを生成し，
上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに，上記第３の秘密分散データが含まれていない場合には，第４の秘密分散データと上記第１の演算データ生成手段によって生成された第１の演算データとから第３の秘密分散データを生成し，上記第１の秘密分散データが含まれていない場合には，第２の秘密分散データと上記第１の演算データ生成手段によって生成された第１の演算データとから第１の秘密分散データを生成し，
生成された第１の秘密分散データと上記第１のキー・データとを用いて上記第２の演算データを生成し，かつ生成された上記第３の秘密分散データと上記第２のキー・データとを用いて上記第３の演算データを生成する，
請求項５に記載のデータ復元装置。
【請求項８】
上記第１のキー・データと上記第２のキー・データとのＸＯＲ演算により得られるＸＯＲキー・データを用いて第１の暗号化方式により第１の演算データを暗号化することにより上記第１の演算データのビット列の配列を変更してキー・データが生成されており，
上記第１の秘密分散データ出力手段は，
上記第１のキー・データを用いて，上記第１の暗号化方式により上記第２の演算データを暗号化することにより上記第１のランダム・データを生成して，生成した第１のランダム・データを第１の秘密分散データとして出力し，
上記第３の秘密分散データ出力手段は，
上記第２のキー・データを用いて，上記第１の暗号化方式により上記第３の演算データを暗号化することにより上記第２のランダム・データを生成して，生成した第２のランダム・データを第３の秘密分散データとして出力し，
上記第２の演算データ生成手段は，
上記第１のランダム・データを，上記第１のキー・データを用いて上記第１の暗号化方式に対応した復号方式により復号することにより第２の演算データを生成し，
上記第２のランダム・データを，上記第２のキー・データを用いて上記第１の暗号化方式に対応した復号方式により復号することにより第３の演算データを生成する，
請求項７に記載のデータ復元装置。
【請求項９】
上記第１のキー・データ生成手段において，
上記第１のキー・データを用いて，上記第１の演算データのビット列の配列を変更する第１の配列変更処理が行なわれ，
上記第２のキー・データを用いて，上記第１の配列変更処理が行われた上記第１の演算データのビット列の配列をさらに変更する第２の配列変更処理が行なわれてキー・データが生成されており，
上記第１の秘密分散データ出力手段は，
上記第１のキー・データを用いて上記第１の配列変更処理および上記第２の配列変更処理の少なくとも一方の処理を行うことにより，上記第１のランダム・データを生成して，生成した第１のランダム・データを第１の秘密分散データとして出力し，
上記第３の秘密分散データ出力手段は，
上記第２のキー・データを用いて上記少なくとも一方の処理を行うことにより，上記第２のランダム・データを生成して，生成した第２のランダム・データを第３の秘密分散データとして出力し，
上記第２の演算データ生成手段は，
上記第１のランダム・データを，上記第１のキー・データを用いて上記第１の配列変更処理および上記第２の配列変更処理の少なくとも一方の処理に対応した配列復元処理により上記第２の演算データを生成し，
上記第２のランダム・データを，上記第２のキー・データを用いて上記第１の配列変更処理および上記第２の配列変更処理の少なくとも一方の処理に対応した配列復元処理により上記第３の演算データを生成する，
請求項７に記載のデータ復元装置。
【請求項１０】
上記第１の配列変更処理は，
ビット・ローテート処理またはビット・シャッフル処理であり，
上記第２の配列変更処理は，
ビット・ローテート処理またはビット・シャッフル処理のうち，上記第１の配列変更処理で行われた処理を除く処理である，
請求項９に記載のデータ復元装置。
【請求項１１】
第１のＸＯＲ演算手段が，ｎが自然数であるｎビットの連続する第１のデータ列とｎが自然数であるｎビットの連続する第２のデータ列とのＸＯＲ演算を行い，第１の演算データを出力し，
第１のキー・データ生成手段が，第１のキー・データおよび第２のキー・データを用いて，上記第１のＸＯＲ演算手段から出力される第１の演算データのビット列の配列を変更して，キー・データを生成し，
第２のＸＯＲ演算手段が，上記第１のデータ列と上記第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第２の演算データを出力し，
第３のＸＯＲ演算手段が，上記第２のデータ列と上記第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第３の演算データを出力し，
第１の秘密分散データ出力手段が，上記第１のキー・データを用いて上記第２のＸＯＲ演算手段から出力される第２の演算データのビット列の配列を変更して第１のランダム・データを生成し，生成した第１のランダム・データを第１の秘密分散データとして出力し，
第２の秘密分散データ出力手段が，上記第１の秘密分散データ出力手段から出力された第１の秘密分散データと，上記第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第２の秘密分散データを出力し，
第３の秘密分散データ出力手段が，上記第２のキー・データを用いて上記第３のＸＯＲ演算手段から出力される第３の演算データのビット列の配列を変更して第２のランダム・データを生成し，生成した第２のランダム・データを第３の秘密分散データとして出力し，
第４の秘密分散データ出力手段が，上記第３の秘密分散データ出力手段から出力された第３の秘密分散データと，上記第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第４の秘密分散データを出力する，
秘密分散方法。
【請求項１２】
秘密分散データ取得手段が，請求項11に記載の秘密分散方法において生成された第１の秘密分散データ，第２の秘密分散データ，第３の秘密分散データおよび第４の秘密分散データのうち，少なくとも３つの秘密分散データを取得し，
第１の演算データ生成手段が，上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データから上記第１の演算データを生成し，
キー・データ取得手段が，上記第１のキー・データおよび上記第２のキー・データを取得し，
第２のキー・データ生成手段が，上記キー・データ取得手段によって取得された上記第１のキー・データおよび上記第２のキー・データを用いて，上記第１のキー・データ生成手段による上記キー・データの生成と同じ手法によって上記第１の演算データのビット列の配列を変更して上記キー・データを生成し，
第２の演算データ生成手段が，上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに第１の秘密分散データまたは第３の秘密分散データのいずれか一方しか含まれていない場合には，第１の秘密分散データおよび第３の秘密分散データのうち含まれていない秘密分散データを生成し，第１の秘密分散データと上記第１のキー・データとを用いて上記第２の演算データを生成し，かつ上記第２の秘密分散データと上記第２のキー・データとを用いて上記第３の演算データを生成し，
復元手段が，上記第２の演算データ生成手段によって生成された上記第２の演算データと上記第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い上記第１のデータ列を復元し，上記第２の演算データ生成手段によって生成された上記第３の演算データと上記第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，上記第２のデータ列を復元する，
データ復元方法。
【請求項１３】
秘密分散装置のコンピュータを，
ｎが自然数であるｎビットの連続する第１のデータ列とｎが自然数であるｎビットの連続する第２のデータ列とのＸＯＲ演算を行い，第１の演算データを出力する第１のＸＯＲ演算手段，
第１のキー・データおよび第２のキー・データを用いて，上記第１のＸＯＲ演算手段から出力される第１の演算データのビット列の配列を変更して，キー・データを生成する第１のキー・データ生成手段，
上記第１のデータ列と上記第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第２の演算データを出力する第２のＸＯＲ演算手段，
上記第２のデータ列と上記第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第３の演算データを出力する第３のＸＯＲ演算手段，
上記第１のキー・データを用いて上記第２のＸＯＲ演算手段から出力される第２の演算データのビット列の配列を変更して第１のランダム・データを生成し，生成した第１のランダム・データを第１の秘密分散データとして出力する第１の秘密分散データ出力手段，
上記第１の秘密分散データ出力手段から出力された第１の秘密分散データと，上記第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第２の秘密分散データを出力する第２の秘密分散データ出力手段，
上記第２のキー・データを用いて上記第３のＸＯＲ演算手段から出力される第３の演算データのビット列の配列を変更して第２のランダム・データを生成し，生成した第２のランダム・データを第３の秘密分散データとして出力する第３の秘密分散データ出力手段，および
上記第３の秘密分散データ出力手段から出力された第３の秘密分散データと，上記第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第４の秘密分散データを出力する第４の秘密分散データ出力手段，
として機能させるための秘密分散プログラム。
【請求項１４】
データ復元装置のコンピュータを，
請求項13に記載の秘密分散プログラムにもとづいて生成された第１の秘密分散データ，第２の秘密分散データ，第３の秘密分散データおよび第４の秘密分散データのうち，少なくとも３つの秘密分散データを取得する秘密分散データ取得手段，
上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データから上記第１の演算データを生成する第１の演算データ生成手段，
上記第１のキー・データおよび上記第２のキー・データを取得するキー・データ取得手段，
上記キー・データ取得手段によって取得された上記第１のキー・データおよび上記第２のキー・データを用いて，上記第１のキー・データ生成手段による上記キー・データの生成と同じ手法によって上記第１の演算データのビット列の配列を変更して上記キー・データを生成する第２のキー・データ生成手段，
上記秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに第１の秘密分散データまたは第３の秘密分散データのいずれか一方しか含まれていない場合には，第１の秘密分散データおよび第３の秘密分散データのうち含まれていない秘密分散データを生成し，第１の秘密分散データと上記第１のキー・データとを用いて上記第２の演算データを生成し，かつ上記第２の秘密分散データと上記第２のキー・データとを用いて上記第３の演算データを生成する第２の演算データ生成手段，ならびに
上記第２の演算データ生成手段によって生成された上記第２の演算データと上記第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い上記第１のデータ列を復元し，上記第２の演算データ生成手段によって生成された上記第３の演算データと上記第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，上記第２のデータ列を復元する復元手段，
として機能させるためのデータ復元プログラム。
【請求項１５】
請求項13および請求項14のうち，少なくとも一方のプログラムを格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は，秘密分散装置，データ復元装置，秘密分散方法，データ復元方法およびそれらの制御プログラムに関する。
【背景技術】
【０００２】
データ量が極めて多いデータをストレージ装置に保存すると，ストレージ装置のコストが高くなってしまう。このために，インターネット上で提供されているクラウド・ストレージ・サーバを利用することにより，データの保存のためのコストを低減できる。しかしながら，クラウド・ストレージ・サーバはセキュリティ上の懸念が指摘されており，特にデータの保障がクラウド利用の課題となっている。このような課題を解決するたに秘密分散法を利用して，複数のデータを複数のストレージ・サーバに分散して保存することが考えられている。（ｋ，Ｌ，ｎ）ランプ型秘密分散法と呼ばれるものでは，多項式補間が用いられるので，その計算量が膨大となってしまい，処理に非常に時間がかかってしまう。
【０００３】
これに対して，排他的論理和演算（ＸＯＲ演算ということにする）を利用して秘密分散法の処理を行うことにより，データの秘密分散および復元を行うことが考えられている（特許文献１，２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第553025号
【特許文献２】特開2009-21765号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら，特許文献１および２に記載のいずれにおいても処理が複雑であり，より迅速な秘密分散処理を実現することは難しく，データの復元も煩雑となる。
【０００６】
この発明は，迅速に秘密分散処理を行うことができ，比較的簡単にデータを復元することを目的とする。
【課題を解決するための手段】
【０００７】
この発明による秘密分散装置は，ｎが自然数であるｎビットの連続する第１のデータ列とｎが自然数であるｎビットの連続する第２のデータ列とのＸＯＲ演算を行い，第１の演算データを出力する第１のＸＯＲ演算手段，第１のキー・データおよび第２のキー・データを用いて，第１のＸＯＲ演算手段から出力される第１の演算データのビット列の配列を変更して，キー・データを生成する第１のキー・データ生成手段，第１のデータ列と第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第２の演算データを出力する第２のＸＯＲ演算手段，第２のデータ列と第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第３の演算データを出力する第３のＸＯＲ演算手段，第１のキー・データを用いて第２のＸＯＲ演算手段から出力される第２の演算データのビット列の配列を変更して第１のランダム・データを生成し，生成した第１のランダム・データを第１の秘密分散データとして出力する第１の秘密分散データ出力手段，第１の秘密分散データ出力手段から出力された第１の秘密分散データと，第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第２の秘密分散データを出力する第２の秘密分散データ出力手段，第２のキー・データを用いて第３のＸＯＲ演算手段から出力される第３の演算データのビット列の配列を変更して第２のランダム・データを生成し，生成した第２のランダム・データを第３の秘密分散データとして出力する第３の秘密分散データ出力手段，および第３の秘密分散データ出力手段から出力された第３の秘密分散データと，第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第４の秘密分散データを出力する第４の秘密分散データ出力手段を備えていることを特徴とする。
【０００８】
この発明は，秘密分散方法も提供している。すなわち，第１のＸＯＲ演算手段が，ｎが自然数であるｎビットの連続する第１のデータ列とｎが自然数であるｎビットの連続する第２のデータ列とのＸＯＲ演算を行い，第１の演算データを出力し，第１のキー・データ生成手段が，第１のキー・データおよび第２のキー・データを用いて，第１のＸＯＲ演算手段から出力される第１の演算データのビット列の配列を変更して，キー・データを生成し，第２のＸＯＲ演算手段が，第１のデータ列と第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第２の演算データを出力し，第３のＸＯＲ演算手段が，第２のデータ列と第１のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第３の演算データを出力し，第１の秘密分散データ出力手段が，第１のキー・データを用いて第２のＸＯＲ演算手段から出力される第２の演算データのビット列の配列を変更して第１のランダム・データを生成し，生成した第１のランダム・データを第１の秘密分散データとして出力し，第２の秘密分散データ出力手段が，第１の秘密分散データ出力手段から出力された第１の秘密分散データと，第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第２の秘密分散データを出力し，第３の秘密分散データ出力手段が，第２のキー・データを用いて第３のＸＯＲ演算手段から出力される第３の演算データのビット列の配列を変更して第２のランダム・データを生成し，生成した第２のランダム・データを第３の秘密分散データとして出力し，第４の秘密分散データ出力手段が，第３の秘密分散データ出力手段から出力された第３の秘密分散データと，第１のＸＯＲ演算手段によって生成された第１の演算データとのＸＯＲ演算を行い，第４の秘密分散データを出力するものである。
【０００９】
この発明は，秘密分散装置のコンピュータを制御するコンピュータが読取可能なプログラムおよびそのプログラムを格納した記録媒体も提供している。
【００１０】
第１のキー・データと第２のキー・データとのＸＯＲ演算を行い，ＸＯＲキー・データを生成するＸＯＲキー・データ生成手段をさらに備えてもよい。この場合，第１のキー・データ生成手段は，たとえば，ＸＯＲキー・データ生成手段によって生成されたＸＯＲキー・データを用いて，第１の暗号化方式により第１の演算データを暗号化することにより第１の演算データのビット列の配列を変更してキー・データを生成し，第１の秘密分散データ出力手段は，たとえば，第１のキー・データを用いて，第１の暗号化方式により第２の演算データを暗号化することにより第１のランダム・データを生成して，生成した第１のランダム・データを第１の秘密分散データとして出力し，第３の秘密分散データ出力手段は，たとえば，第２のキー・データを用いて，第１の暗号化方式により第３の演算データを暗号化することにより第２のランダム・データを生成して，生成した第２のランダム・データを第３の秘密分散データとして出力するものである。
【００１１】
第１のキー・データ生成手段は，たとえば，第１のキー・データを用いて，第１の演算データのビット列の配列を変更する第１の配列変更処理を行い，第２のキー・データを用いて，第１の配列変更処理が行われた第１の演算データのビット列の配列をさらに変更する第２の配列変更処理を行い，キー・データを生成し，第１の秘密分散データ出力手段は，たとえば，第１のキー・データを用いて第１の配列変更処理および第２の配列変更処理の少なくとも一方の処理を行うことにより，第１のランダム・データを生成して，生成した第１のランダム・データを第１の秘密分散データとして出力し，第３の秘密分散データ出力手段は，たとえば，第２のキー・データを用いて少なくとも一方の処理を行うことにより，第２のランダム・データを生成して，生成した第２のランダム・データを第３の秘密分散データとして出力するものである。
【００１２】
第１の配列変更処理は，たとえば，ビット・ローテート処理またはビット・シャッフル処理であり，第２の配列変更処理は，たととえば，ビット・ローテート処理またはビット・シャッフル処理のうち，第１の配列変更処理で行われた処理を除く処理である。
【００１３】
この発明によるデータ復元装置は，秘密分散装置において生成された第１の秘密分散データ，第２の秘密分散データ，第３の秘密分散データおよび第４の秘密分散データのうち，少なくとも３つの秘密分散データを取得する秘密分散データ取得手段，秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データから第１の演算データを生成する第１の演算データ生成手段，第１のキー・データおよび第２のキー・データを取得するキー・データ取得手段，キー・データ取得手段によって取得された第１のキー・データおよび第２のキー・データを用いて，第１のキー・データ生成手段によるキー・データの生成と同じ手法によって第１の演算データのビット列の配列を変更してキー・データを生成する第２のキー・データ生成手段，秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに第１の秘密分散データまたは第３の秘密分散データのいずれか一方しか含まれていない場合には，第１の秘密分散データおよび第３の秘密分散データのうち含まれていない秘密分散データを生成し，第１の秘密分散データと第１のキー・データとを用いて第２の演算データを生成し，かつ第２の秘密分散データと第２のキー・データとを用いて第３の演算データを生成する第２の演算データ生成手段，ならびに第２の演算データ生成手段によって生成された第２の演算データと第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い第１のデータ列を復元し，第２の演算データ生成手段によって生成された第３の演算データと第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第２のデータ列を復元する復元手段を備えていることを特徴とする。
【００１４】
この発明は，データ復元方法も提供している。すなわち，この方法は，秘密分散データ取得手段が，秘密分散方法において生成された第１の秘密分散データ，第２の秘密分散データ，第３の秘密分散データおよび第４の秘密分散データのうち，少なくとも３つの秘密分散データを取得し，第１の演算データ生成手段が，秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データから第１の演算データを生成し，キー・データ取得手段が，第１のキー・データおよび第２のキー・データを取得し，第２のキー・データ生成手段が，キー・データ取得手段によって取得された第１のキー・データおよび第２のキー・データを用いて，第１のキー・データ生成手段によるキー・データの生成と同じ手法によって第１の演算データのビット列の配列を変更してキー・データを生成し，第２の演算データ生成手段が，秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに第１の秘密分散データまたは第３の秘密分散データのいずれか一方しか含まれていない場合には，第１の秘密分散データおよび第３の秘密分散データのうち含まれていない秘密分散データを生成し，第１の秘密分散データと第１のキー・データとを用いて第２の演算データを生成し，かつ第２の秘密分散データと第２のキー・データとを用いて第３の演算データを生成し，復元手段が，第２の演算データ生成手段によって生成された第２の演算データと第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い第１のデータ列を復元し，第２の演算データ生成手段によって生成された第３の演算データと第２のキー・データ生成手段によって生成されたキー・データとのＸＯＲ演算を行い，第２のデータ列を復元するものである。
【００１５】
この発明は，データ復元装置のコンピュータを制御するコンピュータが読取可能なプログラムおよびそのプログラムを格納した記録媒体も提供している。
【００１６】
第１の演算データ生成手段は，たとえば，秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データのうち，第１の秘密分散データと第２の秘密分散データとのＸＯＲ演算または第３の秘密分散データと第４の秘密分散データとのＸＯＲ演算を行い，第１の演算データを生成するものである。
【００１７】
第２の演算データ生成手段は，たとえば，秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに，第１の秘密分散データおよび第３の秘密分散データのいずれも含まれている場合には第１の秘密分散データと第１のキー・データとを用いて第２の演算データを生成し，かつ第３の秘密分散データと第２のキー・データとを用いて第３の演算データを生成し，秘密分散データ取得手段によって取得した少なくとも３つの秘密分散データに，第３の秘密分散データが含まれていない場合には，第４の秘密分散データと第１の演算データ生成手段によって生成された第１の演算データとから第３の秘密分散データを生成し，第１の秘密分散データが含まれていない場合には，第２の秘密分散データと第１の演算データ生成手段によって生成された第１の演算データとから第１の秘密分散データを生成し，生成された第１の秘密分散データと第１のキー・データとを用いて第２の演算データを生成し，かつ生成された第３の秘密分散データと第２のキー・データとを用いて第３の演算データを生成する。
【００１８】
第１のキー・データと第２のキー・データとのＸＯＲ演算により得られるＸＯＲキー・データを用いて第１の暗号化方式により第１の演算データを暗号化することにより第１の演算データのビット列の配列を変更してキー・データが生成されている場合には，第１の秘密分散データ出力手段は，たとえば，第１のキー・データを用いて，第１の暗号化方式により第２の演算データを暗号化することにより第１のランダム・データを生成して，生成した第１のランダム・データを第１の秘密分散データとして出力し，第３の秘密分散データ出力手段は，たとえば，第２のキー・データを用いて，第１の暗号化方式により第３の演算データを暗号化することにより第２のランダム・データを生成して，生成した第２のランダム・データを第３の秘密分散データとして出力し，第２の演算データ生成手段は，たとえば，第１のランダム・データを，第１のキー・データを用いて第１の暗号化方式に対応した復号方式により復号することにより第２の演算データを生成し，第２のランダム・データを，第２のキー・データを用いて第１の暗号化方式に対応した復号方式により復号することにより第３の演算データを生成する。
【００１９】
第１のキー・データ生成手段において，第１のキー・データを用いて，第１の演算データのビット列の配列を変更する第１の配列変更処理が行なわれ，第２のキー・データを用いて，第１の配列変更処理が行われた第１の演算データのビット列の配列をさらに変更する第２の配列変更処理が行なわれてキー・データが生成されている場合には，第１の秘密分散データ出力手段は，たとえば，第１のキー・データを用いて第１の配列変更処理および第２の配列変更処理の少なくとも一方の処理を行うことにより，第１のランダム・データを生成して，生成した第１のランダム・データを第１の秘密分散データとして出力し，第３の秘密分散データ出力手段は，たとえば，第２のキー・データを用いて少なくとも一方の処理を行うことにより，第２のランダム・データを生成して，生成した第２のランダム・データを第３の秘密分散データとして出力し，第２の演算データ生成手段は，第１のランダム・データを，第１のキー・データを用いて第１の配列変更処理および第２の配列変更処理の少なくとも一方の処理に対応した配列復元処理により第２の演算データを生成し，第２のランダム・データを，第２のキー・データを用いて第１の配列変更処理および第２の配列変更処理の少なくとも一方の処理に対応した配列復元処理により第３の演算データを生成する。
【００２０】
第１の配列変更処理は，たとえば，ビット・ローテート処理またはビット・シャッフル処理であり，第２の配列変更処理は，たとえば，ビット・ローテート処理またはビット・シャッフル処理のうち，第１の配列変更処理で行われた処理を除く処理である。
【発明の効果】
【００２１】
この発明の秘密分散装置によると，第１のデータ列と第２のデータ列とのＸＯＲ演算が行われ，第１の演算データが得られる。第１のキー・データおよび第２のキー・データを用いて，得られた第１の演算データのビット列の配列が変更されてキー・データが生成される。生成されたキー・データと，第１のデータ列および第２のデータ列のそれぞれと，のＸＯＲ演算が行われ第２の演算データと第３の演算データとが得られる。第１のキー・データを用いて，得られた第２の演算データのビット列の配列が変更され，第１のランダム・データが得られる。第１のランダム・データが第１の秘密分散データとして出力される。また，第１のランダム・データと第１の演算データとのＸＯＲ演算が行われ，その演算結果が第２の秘密分散データとして出力される。同様に，第２のキー・データを用いて，得られた第３の演算データのビット列の配列が変更され，第２のランダム・データが得られる。第２のランダム・データが第３の秘密分散データとして出力される。また，第２のランダム・データと第１の演算データとのＸＯＲ演算が行われ，その演算結果が第４の秘密分散データとして出力される。
【００２２】
第２の演算データおよび第３の演算データの生成に利用されるキー・データは，第１のデータ列および第２のデータ列を利用して生成されており，乱数などを利用して新たに生成していないので，秘密分散データの生成に必要な時間を短縮でき，煩雑となってしまうことが未然に防止される。また，第１の演算データのビット列の配列が変更されたキー・データを利用して第２の演算データおよび第３の演算データを生成しているので，第１のキー・データおよび第２のキー・データをそのまま利用して第２の演算データおよび第３の演算データを生成する場合に比べてセキュリティが向上する。
【００２３】
この発明のデータ復元装置によると，秘密分散装置において生成された第１の秘密分散データ，第２の秘密分散データ，第３の秘密分散データおよび第４の秘密分散データのうち，少なくとも３つの秘密分散データならびに第１のキー・データおよび第２のキー・データが取得される。第１のキー・データおよび第２のキー・データを用いて，秘密分散装置において第１の秘密分散データ等が生成されたときに生成されたキー・データの生成と同じ手法によってキー・データが生成される。また，取得された３つ秘密分散データを用いて，第１の演算データ，第２の演算データおよび第３の演算データが生成される。取得された３つの秘密分散データ，生成されたキー・データ，第２の演算データおよび第３の演算データを用いて，第１のデータ列および第２のデータ列が復元できるようになる。
【図面の簡単な説明】
【００２４】
【図１】秘密分散／データ復元装置の電気的構成を示すブロック図である。
【図２】秘密分散処理手順を示すフローチャートである。
【図３】秘密分散処理手順を示すフローチャートである。
【図４】秘密データを示している。
【図５】キー・データ生成処理を示している。
【図６】第１の秘密分散データ生成処理を示している。
【図７】第２の秘密分散データ生成処理を示している。
【図８】第３の秘密分散データ生成処理を示している。
【図９】第４の秘密分散データ生成処理を示している。
【図１０】秘密分散データを示している。
【図１１】データ復元処理手順を示すフローチャートである。
【図１２】データ復元処理手順を示すフローチャートである。
【図１３】取得した秘密分散データを示している。
【図１４】取得した秘密分散データを示している。
【図１５】取得した秘密分散データを示している。
【図１６】取得した秘密分散データを示している。
【図１７】第１の演算データ生成処理を示している。
【図１８】第１の演算データ生成処理を示している。
【図１９】第１のランダム・データ生成処理を示している。
【図２０】第２のランダム・データ生成処理を示している。
【図２１】第２の演算データ生成処理を示している。
【図２２】第１のデータ列復元処理を示している。
【図２３】第３の演算データ生成処理を示している。
【図２４】第２のデータ列復元処理を示している。
【図２５】キー・データ生成処理を示している。
【図２６】ビット・ローテート処理を示している。
【図２７】ビット・シャッフル処理を示している。
【図２８】第１の秘密分散データ生成処理を示している。
【図２９】第３の秘密分散データ生成処理を示している。
【図３０】第２の演算データ生成処理を示している。
【図３１】第３の演算データ生成処理を示している。
【発明を実施するための形態】
【００２５】
図１は，この発明の実施例を示すもので，主として秘密分散／データ復元装置10（秘密分散装置，データ復元装置）の電気的構成を示すブロック図である。
【００２６】
秘密分散／データ復元装置10は，秘密対象データ（画像データ，音声データ，テキスト・データ）を，ＸＯＲ（exclusive or）演算（排他的論理和演算）を利用した（３，２，４）ランプ型閾値秘密分散法により４つのデータ（ファイル）に分散し，分散された４つのデータのうち，少なくとも３つのデータ（ファイル）を取得して，秘密対象データを復元するものである。（３，２，４）ランプ型閾値秘密分散法により，データ量が１／２となる。
【００２７】
秘密分散／データ復元装置10の全体の動作は，制御装置11によって統括される。
【００２８】
秘密分散／データ復元装置10には，データ入出力装置16が含まれている。このデータ入出力装置16を用いて，秘密分散／データ復元装置10の外部にあるＰＣ（パーソナル・コンピュータ）（図示略）などからネットワークを介して送信されるデータ（秘密対象データ）等を秘密分散／データ復元装置10に入力できる。秘密分散／データ復元装置10に入力した秘密対象データは，データ入出力装置16から一次記憶メモリ17に与えられ，その一次記憶メモリ17に一時的に記憶される。もちろん，メモリ・カードなどの可搬型記録媒体に秘密対象データが記録されている場合には，メモリ・カード・リーダなどが秘密分散／データ復元装置10に設けられ，メモリ・カードなどの可搬型記録媒体に記録されているデータが秘密分散／データ復元装置10に読み取られる。
【００２９】
秘密分散／データ復元装置10には，CD-ROM（Compact Disc Read Only Memory）ドライバ14が含まれている。後述するプログラムが格納されているCD-ROM（Compact Disc Read Only Memory）（可搬型記録媒体）15が，秘密分散／データ復元装置10に装填されることにより，CD-ROM15に格納されているプログラムが読み取られ，秘密分散／データ復元装置10にインストールされる。プログラムは，CD-ROM15のような記録媒体に限らず，メモリ・カードのような他の記録媒体に格納されていてもよいし，ネットワークを介してダウンロードされて秘密分散／データ復元装置10にインストールされるようにしてもよい。
【００３０】
秘密分散／データ復元装置10には，ユーザによって操作される操作装置12が含まれている。操作装置12から与えられるコマンドは，制御装置11に与えられる。また，制御装置11には，データ等を記憶するメモリ13が接続されている。
【００３１】
秘密分散／データ復元装置10には，分散データ生成装置18が含まれている。この分散データ生成装置18において，秘密分散／データ復元装置10に入力した秘密対象データが４つのファイルＦ１，Ｆ２，Ｆ３およびＦ４に分散される（秘密分散）。この分散について詳しくは後述する。分散データ生成装置18において分散させられた４つのファイルＦ１，Ｆ２，Ｆ３およびＦ４はデータ通信装置21からネットワークに送信される。４つのファイルＦ１，Ｆ２，Ｆ３およびＦ４は，それぞれ，ネットワークを介してリモート・サーバ31，32，33および34に入力し，リモート・サーバ31，32，33および34のそれぞれの記憶領域（図示略）に記憶される。
【００３２】
分散させられた４つのファイルＦ１，Ｆ２，Ｆ３およびＦ４が秘密対象データに復元される場合には，リモート・サーバ31，32，33および34のそれぞれの記憶領域（図示略）に記憶されている４つのファイルＦ１，Ｆ２，Ｆ３およびＦ４のうち少なくとも３つのファイルが，リモート・サーバ31，32，33および34から送信され，ネットワークを介してデータ通信装置21によって秘密分散／データ復元装置10に入力する。入力した少なくとも３つのファイルは，分散データ復元装置20において，秘密データに復元される。このデータ復元処理についても詳しくは後述する。復元された秘密データがデータ入出力装置16から，秘密分散／データ復元装置10の外部のＰＣなどに送信される。
【００３３】
図１に示す秘密分散／データ復元装置10においては，分散データ生成装置18において秘密分散処理が行われているが，秘密分散処理を行う専用の分散データ生成装置18を利用せずに一般的なパーソナル・コンピュータにおいてソフトウエアを用いて秘密分散処理が行われるようにしてもよい。同様に，データ復元を行う専用の分散データ復元装置20を利用せずに一般的なパーソナル・コンピュータにおいてソフトウエアを用いてデータ復元処理が行われるようにしてもよい。
【００３４】
図２および図３は，分散データ生成装置18において行われる秘密分散処理手順を示すフローチャートである。図４は，秘密対象データを示している。
【００３５】
秘密分散／データ復元装置10に秘密対象データが入力すると，秘密対象データは，一次記憶メモリ17に一時的に記憶される。制御装置11によって秘密対象データのうち，図４に示すように，128ビットの連続する第１のデータ列Ｓ１（ｎが自然数であるｎビットの連続する第１のデータ列）および128ビットの連続する第２のデータ列Ｓ２（ｎが自然数であるｎビットの連続する第２のデータ列）が読み取られる（図２ステップ41）。第１のデータ列Ｓ１および第２のデータ列Ｓ２は，ｎビットの連続するデータであれば，必ずしも128ビットでなくともよく，他のビット数でもよい。読み取られた第１のデータ列Ｓ１および第２のデータ列Ｓ２は，分散データ生成装置18に入力し，分散データ生成装置18において，第１の演算データＳ０およびキー・データｋ０が生成される（図２ステップ42，43）。
【００３６】
図５は，分散データ生成装置18において行われる第１の演算データＳ０およびキー・データｋ０の生成処理を示している。
【００３７】
分散データ生成装置18において，第１のデータ列Ｓ１と第２のデータ列Ｓ２とのＸＯＲ演算が行われ，第１の演算データＳ０が生成される（第１のＸＯＲ演算手段）。図面ではＸＯＲ演算の記号として，＋が丸印によって囲まれている。また，第１のキー・データｋ１および第２のキー・データｋ２が分散データ生成装置18において生成される。これらの第１のキー・データｋ１および第２のキー・データｋ２のデータ・サイズは，128ビット，192ビット，256ビットなどのいずれでもよい。生成された第１のキー・データｋ１と第２のキー・データｋ２とのＸＯＲ演算が分散データ生成装置18において行われ，キー・データｋ12が生成される。生成されたキー・データｋ12を用いて，生成された第１の演算データＳ０がＡＥＳ（Advanced Encryption Standard）にもとづいて，分散データ生成装置18において暗号化させられる。これにより，分散データ生成装置18において，キー・データｋ０が生成される（第１のキー・データ生成手段）。この暗号化処理がキー・データ生成用の第１のキー・データｋ１およびキー・データ生成用の第２のキー・データのｋ２を用いて，第１の演算データＳ０のビット列の配列を変更して，キー・データｋ０を生成する処理となる。第１の演算データＳ０のビット列の配列が変更されればよいので，必ずしも暗号化する必要はなく，また，暗号化もＡＥＳにもとづく暗号化以外の他の暗号化，たとえば，ＤＥＳ（Data Encryption Standard）にもとづく暗号，ＲＳＡ暗号なども利用できる。
【００３８】
つづいて，分散データ生成装置18において，次に述べるようにして第２の演算データＳ１０および第３の演算データＳ２０が生成される（図２ステップ44，45）。また，分散データ生成装置において，次に述べるようにして第１のランダム・データＲ１が生成され，生成された第１のランダム・データＲ１が第１の秘密分散データＷ１として出力され（図２ステップ46），第２の秘密分散データＷ２も生成される（図２ステップ47）。
【００３９】
図６は，分散データ生成装置18における第２の演算データＳ１０および第１のランダム・データＲ１（第１の秘密分散データＷ１）の生成処理を示している。
【００４０】
分散データ生成装置18において，第１のデータ列Ｓ１とキー・データｋ０とのＸＯＲ演算が行われ，第２の演算データＳ１０が生成される（第２のＸＯＲ演算手段）。さらに，分散データ生成装置18において，生成された第２の演算データＳ１０が第１のキー・データｋ１を用いてＡＥＳ暗号化させられることにより，第１のランダム・データＲ１が生成される。分散データ生成装置18において，生成された第１のランダム・データＲ１が第１の秘密分散データＷ１として第１のファイルＦ１に格納される（出力される）（第１の秘密分散データ出力手段）。
【００４１】
図７は，分散データ生成装置18における第２の秘密分散データＷ２の生成処理を示している。
【００４２】
分散データ生成装置18において，生成された第１のランダム・データＲ１と第１の演算データＳ０とのＸＯＲ演算が行われ，第２の秘密分散データＷ１が生成される（第２の秘密分散データ出力手段）。生成された第２の秘密分散データＷ２は，分散データ生成装置18において，第２のファイルＦ２に格納される。
【００４３】
図３を参照して，分散データ生成装置18において，次に述べるようにして第２のランダム・データＲ２が生成され，生成された第２のランダム・データＲ２が第３の秘密分散データＷ３として出力され（図３ステップ48），第４の秘密分散データＷ４も生成される（図３ステップ49）。
【００４４】
図８は，分散データ生成装置18における第３の演算データＳ２０および第２のランダム・データＲ２（第３の秘密分散データＷ３）の生成処理を示している。
【００４５】
分散データ生成装置18において，第２のデータ列Ｓ２とキー・データｋ０とのＸＯＲ演算が行われ，第３の演算データＳ２０が生成される（第３のＸＯＲ演算手段）。さらに，分散データ生成装置18において，生成された第３の演算データＳ２０が第２のキー・データｋ２を用いてＡＥＳ暗号化させられることにより，第２のランダム・データＲ２が生成される。分散データ生成装置18において，生成された第２のランダム・データＲ２が第３の秘密分散データＷ３として第３のファイルＦ３に格納される（出力される）（第３の秘密分散データ出力手段）。
【００４６】
図９は，分散データ生成装置18における第４の秘密分散データＷ４の生成処理を示している。
【００４７】
分散データ生成装置18において，生成された第２のランダム・データＲ２と第１の演算データＳ０とのＸＯＲ演算が行われ，第４の秘密分散データＷ４が生成される（第４の秘密分散データ出力手段）。生成された第４の秘密分散データＷ４は，分散データ生成装置18において，第４のファイルＦ４に格納される。
【００４８】
図10は，生成された４つの秘密分散データＷ１，Ｗ２，Ｗ３およびＷ４と，それらの秘密分散データＷ１，Ｗ２，Ｗ３およびＷ４の生成に利用されたキー・データが第１のキー・データｋ１または第２のキー・データｋ２のいずれかなのかを示している。
【００４９】
第１の秘密分散データＷ１は第１のランダム・データＲ１であり，第２の秘密分散データＷ２は第１の演算データＳ０と第１のランダム・データＲ１とのＸＯＲ演算により得られるデータであり，第３の秘密分散データＷ３は第２のランダム・データＲ２であり，第４の秘密分散データＷ４は第１の演算データＳ０と第２のランダム・データＲ２とのＸＯＲ演算により得られるデータである。第１の秘密分散データＷ１および第２の秘密分散データＷ２の生成には第１のキー・データｋ１が利用されており，第３の秘密分散データＷ３および第４の秘密分散データＷ４の生成には第２のキー・データｋ２が利用されている。
【００５０】
このようにして秘密対象データのうち，第１のデータ列Ｓ１および第２のデータ列Ｓ２から，第１から第４の秘密分散データＷ１−Ｗ４が生成されると，第１のデータ列Ｓ１および第２のデータ列Ｓ２につづくデータが新たに読み取られ，新たに読み取られたデータが第１のデータ列Ｓ１および第２のデータ列Ｓ２として，上述した処理と同様にして第１から第４の秘密分散データＷ１−Ｗ４が新たに生成される。新たに生成された第１，第２，第３および第４の秘密分散データＷ１，Ｗ２，Ｗ３およびＷ４が，第１，第２，第３および第４のファイルＦ１，Ｆ２，Ｆ３およびＦ４に格納される。以下，秘密対象データの終わりまで，第１のデータ列Ｓ１および第２のデータ列Ｓ２の読み取り，第１から第４の秘密分散データＷ１からＷ４の生成ならびに第１から第４のファイルＦ１からＦ４への第１から第４の秘密分散データＷ１からＷ４の格納が繰り返される。生成された秘密分散データＷ１からＷ４に利用されたキー・データが第１のキー・データｋ１または第２のキー・データｋ２かを示すデータは，第１および第２のキー・データｋ１およびｋ２とともに，第１から第４のファイルＦ１からＦ４のヘッダに格納される。もっとも，生成された秘密分散データＷ１からＷ４に利用されたキー・データが第１のキー・データｋ１または第２のキー・データｋ２のいずれかがあらかじめ定められている場合には，第１または第２のキー・データｋ１またはｋ２のどちらのキー・データが使用されたかを示すデータは第１から第４のファイルのヘッダに格納されなくともよい。
【００５１】
このようにして生成された第１から第４のファイルＦ１からＦ４が分散データ生成装置18からデータ通信装置21に与えられる。データ通信装置21によって，第１，第２，第３および第４のファイルが，リモート・サーバ31，32，33および34に送信され，それぞれの記憶領域に記憶させられる。
【００５２】
図11および図12は，上述のようにして生成された第１から第４の秘密分散データＷ１−Ｗ４を分散データ復元装置20において復元する処理手順を示すフローチャートである。
【００５３】
リモート・ストレージ・サーバ31，32，33および34に記憶されている第１，第２，第３および第４のファイルＦ１，Ｆ２，Ｆ３およびＦ４のうち，少なくとも３つのファイルが秘密分散／データ復元装置10に送信され，データ通信装置21によって受信される。受信した少なくとも３つのファイルは，分散データ復元装置20に入力し，一時的に記憶される。少なくとも３つのファイルに含まれている少なくとも３つの秘密分散データが分散データ復元装置20において取得される（図11ステップ51）（秘密分散データ取得手段）。
【００５４】
図13から図16は，取得された秘密分散データの一例を示しており，秘密分散データの生成に利用されたキー・データが第１のキー・データｋ１か，第２のキー・データｋ２かも示している。
【００５５】
図13は，秘密分散／データ復元装置10において受信したファイルが第１のファイルＦ１，第２のファイルＦ２および第３のファイルＦ３であり，これらのファイルから第１の秘密分散データＷ１，第２の秘密分散データＷ２および第３の秘密分散データＷ３が取得された場合のものである。第１の秘密分散データＷ１は第１のランダム・データＲ１であり，第１のキー・データｋ１が利用されている。第２の秘密分散データＷ２は第１の演算データＳ０と第１のランダム・データＲ１とのＸＯＲ演算から得られるデータであり，第１のキー・データｋ１が利用されている。第３の秘密分散データＷ３は第２のランダム・データＲ２であり，第２のキー・データｋ２が利用されている。
【００５６】
このように，第１，第２および第３の秘密分散データＷ１，Ｗ２およびＷ３が取得されている場合には，分散データ復元装置20において，第１および第２の秘密分散データＷ１およびＷ２から第１の演算データＳ０が生成される（図11ステップ52）（第１の演算データ生成手段）。
【００５７】
図17は，第１および第２の秘密分散データＷ１およびＷ２から第１の演算データＳ０を生成する処理を示している。
【００５８】
分散データ復元装置20において，第１の秘密分散データＷ１と第２の秘密分散データＷ２とのＸＯＲ演算が行われる。第１の秘密分散データＷ１は，第１のランダム・データＲ１と同じであり，第２の秘密分散データＷ２は第１の演算データＳ０と第１のランダム・データＲ１とのＸＯＲ演算により得られたデータであるから，第１の秘密分散データＷ１と第２の秘密分散データＷ２とのＸＯＲ演算が行われることにより，第１の演算データＳ０が生成される。
【００５９】
取得された第１，第２および第３のファイルＦ１，Ｆ２およびＦ３のヘッダのそれぞれには，第１および第２のキー・データｋ１およびｋ２が格納されているから，分散データ復元装置20において，そのヘッダから第１および第２のキー・データｋ１およびｋ２が取得される（図11ステップ53）。第１の演算データＳ０ならびに第１および第２のキー・データｋ１およびｋ２が取得されるから，秘密分散処理時にキー・データを生成する方法と同じ方法で（図５参照），分散データ復元装置20において，キー・データｋ０が生成される（ステップ54）。
【００６０】
取得した秘密分散データに第１の秘密分散データＷ１または第３の秘密分散データＷ３のいずれか一方しか含まれていない場合には（ステップ55でＹＥＳ），その含まれていない秘密分散データに対応するランダム・データＲ１またはＲ２を生成する必要がある（ステップ56）。取得した秘密分散データに第１の秘密分散データＷ１および第３の秘密分散データＷ３の両方が含まれている場合には（ステップ55でＮＯ），ステップ56の処理はスキップされる。第１，第２および第３の秘密分散データＷ１，Ｗ２およびＷ３が取得されている場合には，ステップ56の処理はスキップされることとなる。
【００６１】
つづいて，分散データ復元装置20において，第１のランダム・データＲ１から第２の演算データＳ１０が生成される（ステップ57）。
【００６２】
図21は，第２の演算データＳ１０が生成される処理を示している。
【００６３】
分散データ復元装置20において，第１のランダム・データＲ１（第１の秘密分散データＷ１）が第１のキー・データｋ１によってＡＥＳ復号が行われることにより，第２の演算データＳ１０が生成される（第２の演算データ生成手段）。
【００６４】
つづいて，分散データ復元装置20において，生成された第２の演算データＳ１０から第１のデータ列Ｓ１が復元される（図12ステップ58）（復元手段）。
【００６５】
図22は，第１のデータ列Ｓ１が復元される処理を示している。
【００６６】
分散データ復元装置20において，生成された第２の演算データＳ１０とキー・データｋ０とのＸＯＲ演算が行われることにより，第１のデータ列Ｓ１が復元される。
【００６７】
つづいて，分散データ復元装置20において，第２のランダム・データＲ２から第３の演算データＳ２０が生成される（ステップ59）。
【００６８】
図23は，第３の演算データＳ２０が生成される処理を示している。
【００６９】
分散データ復元装置20において，第２のランダム・データＲ２（第３の秘密分散データＷ３）が第２のキー・データｋ２によってＡＥＳ復号が行われることにより，第３の演算データＳ２０が生成される（第２の演算データ生成手段）。
【００７０】
つづいて，分散データ復元装置20において，生成された第３の演算データＳ２０から第２のデータ列Ｓ２が復元される（図12ステップ60）（復元手段）。
【００７１】
このような処理が読み取られた第１，第２および第３のファイルＦ１，Ｆ２およびＦ３に含まれているすべての秘密分散データについて繰り返され，秘密対象データが復元される。
【００７２】
図24は，第２のデータ列Ｓ２が復元される処理を示している。
【００７３】
分散データ復元装置20において，生成された第３の演算データＳ２０とキー・データｋ０とのＸＯＲ演算が行われることにより，第２のデータ列Ｓ２が復元される。
【００７４】
図14を参照して，図14は，秘密分散／データ復元装置10において第２，第３および第４のファイルＦ２，Ｆ３およびＦ４を受信した場合の秘密分散データの一例である。
【００７５】
第２，第３および第４のファイルＦ２，Ｆ３およびＦ４から，第２，第３および第４の秘密分散データＷ２，Ｗ３およびＷ４が取得される（図11ステップ51）。この場合，第３および第４の秘密分散データＷ３およびＷ４から第１の演算データＳ０が生成される（図11ステップ52）。
【００７６】
図18は，第３および第４の秘密分散データＷ３およびＷ４から第１の演算データＳ０を生成する処理を示している。
【００７７】
データ復元装置20において，第３の秘密分散データＷ３と第４の秘密分散データＷ４とのＸＯＲ演算が行われる。第３の秘密分散データＷ３は第２のランダム・データＲ２であり，第４の秘密分散データＷ４は第１の演算データＳ０と第２のランダム・データＲ２とのＸＯＲ演算のデータであるから，第３の秘密分散データＷ３と第４の秘密分散データＷ４とのＸＯＲ演算が行われることにより，第１の演算データＳ０が生成される。
【００７８】
取得した秘密分散データには，第１の秘密分散データＷ１および第３の秘密分散データＷ３のうち，第３の秘密分散データＷ３しか含まれていないから（図11ステップ55でＹＥＳ），含まれていない第１の秘密分散データＷ１が生成される（図11ステップ56）。
【００７９】
図19は，第１の秘密分散データＷ１を生成する処理を示している。
【００８０】
分散データ復元装置20において，第２の秘密分散データＷ２と生成された第１の演算データＳ０とのＸＯＲ演算が行われる。第２の秘密分散データＷ２は，第１の演算データＳ０と第１のランダム・データＲ１とのＸＯＲ演算により得られるものであるから，第２の秘密分散データＷ２と生成された第１の演算データＳ０とのＸＯＲ演算が行われることにより，第１のランダム・データＲ１（第１の秘密分散データＷ１）が生成される。
【００８１】
第１の秘密分散データＷ１から第４の秘密分散データＷ４の４つの秘密分散データが得られることとなるから，その後は図21から図24を参照して説明したのと同様に第１のデータ列Ｓ１および第２のデータ列Ｓ２が分散データ復元装置20において復元される。
【００８２】
図15を参照して，図15は，秘密分散／データ復元装置10において，第１，第２および第４のファイルＦ１，Ｆ２およびＦ４を受信した場合の秘密分散データの一例である。
【００８３】
第１，第２および第４のファイルＦ１，Ｆ２およびＦ４から，第１，第２および第４の秘密分散データＷ１，Ｗ２およびＷ４が取得される（図11ステップ51）。この場合，図17を参照して説明したように，第１および第２の秘密分散データＷ１およびＷ２から第１の演算データＳ０が生成される（図11ステップ52）。取得した秘密分散データＷ１，Ｗ２およびＷ４には，第１の秘密分散データＷ１および第３の秘密分散データＷ３のうち，第１の秘密分散データＷ１しか含まれていないから（図11ステップ55でＹＥＳ），含まれていない第３の秘密分散データＷ３が生成される（図11ステップ56）。
【００８４】
図20は，第３の秘密分散データＷ３を生成する処理を示している。
【００８５】
分散データ復元装置20において，第４の秘密分散データＷ４と生成された第１の演算データＳ０とのＸＯＲ演算が行われる。第４の秘密分散データＷ４は，第１の演算データＳ０と第２のランダム・データＲ２とのＸＯＲ演算により得られるものであるから，第４の秘密分散データＷ４と生成された第１の演算データＳ０とのＸＯＲ演算が行われることにより，第２のランダム・データＲ２（第４の秘密分散データＷ４）が生成される。
【００８６】
第１の秘密分散データＷ１から第４の秘密分散データＷ４の４つの秘密分散データが得られることとなるから，その後は図21から図24を参照して説明したのと同様に第１のデータ列Ｓ１および第２のデータ列Ｓ２が分散データ復元装置20において復元される。
【００８７】
図16を参照して，図16は，秘密分散／データ復元装置10において，第１，第３および第４のファイルＦ１，Ｆ３およびＦ４を受信した場合の秘密分散データの一例である。
【００８８】
第１，第３および第４のファイルＦ１，Ｆ３およびＦ４から，第１，第３および第４の秘密分散データＷ１，Ｗ３およびＷ４が取得される（図11ステップ51）。この場合，図18を参照して説明したように，第３および第４の秘密分散データＷ３およびＷ４から第１の演算データＳ０が生成される（図11ステップ52）。取得した秘密分散データＷ１，Ｗ３およびＷ４には，第１の秘密分散データＷ１および第３の秘密分散データＷ３のいずれも含まれているから（図11ステップ55でＮＯ），ステップ56の処理はスキップされる。図21から図24を参照して説明したように，第１のデータ列Ｓ１および第２のデータ列Ｓ２が復元される（ステップ57から60）。
【００８９】
上述の実施例においては暗号を利用して第１の演算データＳ０のビット列の配列を変更しているが，次に説明するのは暗号を利用しないで第１の演算データＳ０のビット列の配列を変更して秘密分散およびデータ復元が行われるものである。
【００９０】
図25は，図５の処理に対応するもので，第１の演算データＳ０およびキー・データｋ０の生成についてのものである。
【００９１】
図５における処理と同様に，分散データ復元装置20において，第１のデータ列Ｓ１と第２のデータ列Ｓ２とのＸＯＲ演算が行われ，第１の演算データＳ０が生成される（図２ステップ42）。生成された第１の演算データＳ０に対して，第１のキー・データｋ１を利用して分散データ生成装置18においてビット・ローテートが行われる。ビット・ローテートが行われた第１の演算データＳ０に対して第２のキー・データｋ２を利用して分散データ生成装置18においてビット・シャッフルが行われ，キー・データｋ０が得られる。
【００９２】
図26は，ビット・ローテートの処理を示している。
【００９３】
ビット・ローテートは，この場合，第１のキー・データｋ１で決定される数の上位ビットを下位ビットに移動させるものである。第１の演算データＳ０が「１０１００１１１」であり，第１のキー・データｋ１は２桁分の上位ビットを下位ビットに移動させることを示しているものとする。すると，２桁分の上位ビット「１０」が下位ビットに移動させられる。ビット・ローテートの結果，第１の演算データＳ０は，「１００１１１１０」となる。
【００９４】
図27は，ビット・シャッフルの処理を示している。
【００９５】
ビット・シャッフルは，この場合，第２のキー・データｋ２で決定される桁を中心に上位ビットと下位ビットとを入れ替えるものである。第２のキー・データｋ２は，５桁目を示しているものとする。すると，第４桁目のデータと第６桁目のデータ，第３桁目のデータと第７桁目のデータ，第２桁目のデータと第８桁目のデータ，第１桁目のデータと第５桁目のデータとが入れ替えられる。「１００１１１１０」で表されるデータが「１１１０００１１」となる。
【００９６】
図28は，図６に対応するもので，第１のランダム・データＲ１の生成処理を示している。
【００９７】
図６に示す処理と同様に，第１のデータ列Ｓ１とキー・データｋ０とのＸＯＲ演算が分散データ生成装置18において行われ，第２の演算データＳ１０が生成される。生成された第２の演算データＳ１０が，第１のキー・データｋ１を利用してビット・シャッフルされることにより，第１のランダム・データＲ１が生成され，第１の秘密分散データＷ１として出力される。図７に示すように，生成された第１のランダム・データＲ１と第１の演算データＳ０とのＸＯＲ演算が分散データ生成装置18において生成されることにより，第２の秘密分散データＷ２が得られるのは上述の通りである。
【００９８】
図29は，図８に対応するもので，第２のランダム・データＲ２の生成処理を示している。
【００９９】
図８に示す処理と同様に，第２のデータ列Ｓ２とキー・データｋ０とのＸＯＲ演算が分散データ生成装置18において行われ，第３の演算データＳ２０が生成される。生成された第３の演算データＳ２０が，第２のキー・データｋ２を利用してビット・シャッフルされることにより，第２のランダム・データＲ２が生成され，第３の秘密分散データＷ３として出力される。図９に示すように，生成された第２のランダム・データＲ２と第１の演算データＳ０とのＸＯＲ演算が分散データ生成装置18において生成されることにより，第４の秘密分散データＷ４が得られるのは上述の通りである。
【０１００】
データ復元においては，上述したのと同様にして第１から第４の秘密分散データＷ１からＷ４のうち，少なくとも３つの秘密分散データが取得される。
【０１０１】
図30は，第１のランダム・データＲ１から第２の演算データＳ１０を生成する処理を示すもので，図21に対応している。
【０１０２】
上述したのと同様に，第１のランダム・データＲ１が得られると第１のキー・データｋ１を用いてビット・シャッフルが分散データ復元装置20において行われ，第２の演算データＳ１０が生成される。第２の演算データＳ１０についてビット・シャッフルが行われた第１のランダム・データＲ１について再びビット・シャッフルが行われることにより，第２の演算データＳ１０が得られる。
【０１０３】
図31は，第２のランダム・データＲ２から第３の演算データＳ２０を生成する処理を示すもので，図23に対応している。
【０１０４】
上述したのと同様に，第２のランダム・データＲ２が得られると第２のキー・データｋ２を用いてビット・シャッフルが分散データ復元装置20において行われ，第３の演算データＳ２０が生成される。第３の演算データＳ２０についてビット・シャッフルが行われた第２のランダム・データＲ２について再びビット・シャッフルが行われることにより，第３の演算データＳ２０が得られる。
【０１０５】
図28から図31に示す処理においては，ビット・シャッフルが利用されているが，ビット・シャッフルの代わりにビット・ローテートが利用されてもよい。ビット・ローテートが利用される場合には，図30に対応する処理においては，第１のランダム・データＲ１においてビット・ローテートにより下位ビットに移動させられた上位ビットのデータが再び上位ビットに戻される（逆ビット・ローテート）。同様に図31に対応する処理においては，第２のランダム・データＲ２においてビット・ローテートにより下位ビットに移動させられた上位ビットのデータが再び上位ビットに戻される。
【０１０６】
上述した実施例においては，秘密分散／データ復元装置10に分散データ生成装置18および分散データ復元装置20が設けられているが，これらの処理はソフトウエアによって行われるようにしてもよい。
【符号の説明】
【０１０７】
10  秘密分散／データ復元装置
11  制御装置
15  CD-RPM
18  分散データ生成装置
20  分散データ復元装置
【図１】
0006373237.tif 000002
【図２】
0006373237.tif 000003
【図３】
0006373237.tif 000004
【図４】
0006373237.tif 000005
【図５】
0006373237.tif 000006
【図６】
0006373237.tif 000007
【図７】
0006373237.tif 000008
【図８】
0006373237.tif 000009
【図９】
0006373237.tif 000010
【図１０】
0006373237.tif 000011
【図１１】
0006373237.tif 000012
【図１２】
0006373237.tif 000013
【図１３】
0006373237.tif 000014
【図１４】
0006373237.tif 000015
【図１５】
0006373237.tif 000016
【図１６】
0006373237.tif 000017
【図１７】
0006373237.tif 000018
【図１８】
0006373237.tif 000019
【図１９】
0006373237.tif 000020
【図２０】
0006373237.tif 000021
【図２１】
0006373237.tif 000022
【図２２】
0006373237.tif 000023
【図２３】
0006373237.tif 000024
【図２４】
0006373237.tif 000025
【図２５】
0006373237.tif 000026
【図２６】
0006373237.tif 000027
【図２７】
0006373237.tif 000028
【図２８】
0006373237.tif 000029
【図２９】
0006373237.tif 000030
【図３０】
0006373237.tif 000031
【図３１】
0006373237.tif 000032