JP2017040851A - 秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム - Google Patents

秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム Download PDF

Info

Publication number
JP2017040851A
JP2017040851A JP2015163490A JP2015163490A JP2017040851A JP 2017040851 A JP2017040851 A JP 2017040851A JP 2015163490 A JP2015163490 A JP 2015163490A JP 2015163490 A JP2015163490 A JP 2015163490A JP 2017040851 A JP2017040851 A JP 2017040851A
Authority
JP
Japan
Prior art keywords
data
secret sharing
generated
key
secret
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015163490A
Other languages
English (en)
Other versions
JP6373237B2 (ja
Inventor
健太郎 宮本
Kentaro Miyamoto
健太郎 宮本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Corp
Original Assignee
Fujifilm Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujifilm Corp filed Critical Fujifilm Corp
Priority to JP2015163490A priority Critical patent/JP6373237B2/ja
Publication of JP2017040851A publication Critical patent/JP2017040851A/ja
Application granted granted Critical
Publication of JP6373237B2 publication Critical patent/JP6373237B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】比較的迅速に秘密分散および復元できる秘密分散装置を提供する。
【解決手段】秘密対象データのうち、第1,第2のデータ列S1,S2のXOR演算により得られたデータS0が暗号化され,キー・データk0が得られる42、43。キー・データk0を用いて第1、第2のデータ列がXOR演算され,第2,第3の演算データS10、S20が得られステップ44、45、キー・データk1、k2により暗号化され、第1、第2のランダム・データR1、R2が得られる。データR1は、第1の秘密分散データW1となる46。データR1とデータS0とのXOR演算が行われて、第2の秘密分散データW2が得られる47。データR2は、第3の秘密分散データW3となる。データR2とデータS0とのXOR演算が行われて、第4の秘密分散データW4が得られる。この後、続くデータ列について上記の処理が繰り返される。
【選択図】図2

Description

この発明は,秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラムに関する。
データ量が極めて多いデータをストレージ装置に保存すると,ストレージ装置のコストが高くなってしまう。このために,インターネット上で提供されているクラウド・ストレージ・サーバを利用することにより,データの保存のためのコストを低減できる。しかしながら,クラウド・ストレージ・サーバはセキュリティ上の懸念が指摘されており,特にデータの保障がクラウド利用の課題となっている。このような課題を解決するたに秘密分散法を利用して,複数のデータを複数のストレージ・サーバに分散して保存することが考えられている。(k,L,n)ランプ型秘密分散法と呼ばれるものでは,多項式補間が用いられるので,その計算量が膨大となってしまい,処理に非常に時間がかかってしまう。
これに対して,排他的論理和演算(XOR演算ということにする)を利用して秘密分散法の処理を行うことにより,データの秘密分散および復元を行うことが考えられている(特許文献1,2)。
特許第553025号 特開2009-21765号公報
しかしながら,特許文献1および2に記載のいずれにおいても処理が複雑であり,より迅速な秘密分散処理を実現することは難しく,データの復元も煩雑となる。
この発明は,迅速に秘密分散処理を行うことができ,比較的簡単にデータを復元することを目的とする。
この発明による秘密分散装置は,nが自然数であるnビットの連続する第1のデータ列とnが自然数であるnビットの連続する第2のデータ列とのXOR演算を行い,第1の演算データを出力する第1のXOR演算手段,第1のキー・データおよび第2のキー・データを用いて,第1のXOR演算手段から出力される第1の演算データのビット列の配列を変更して,キー・データを生成する第1のキー・データ生成手段,第1のデータ列と第1のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第2の演算データを出力する第2のXOR演算手段,第2のデータ列と第1のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第3の演算データを出力する第3のXOR演算手段,第1のキー・データを用いて第2のXOR演算手段から出力される第2の演算データのビット列の配列を変更して第1のランダム・データを生成し,生成した第1のランダム・データを第1の秘密分散データとして出力する第1の秘密分散データ出力手段,第1の秘密分散データ出力手段から出力された第1の秘密分散データと,第1のXOR演算手段によって生成された第1の演算データとのXOR演算を行い,第2の秘密分散データを出力する第2の秘密分散データ出力手段,第2のキー・データを用いて第3のXOR演算手段から出力される第3の演算データのビット列の配列を変更して第2のランダム・データを生成し,生成した第2のランダム・データを第3の秘密分散データとして出力する第3の秘密分散データ出力手段,および第3の秘密分散データ出力手段から出力された第3の秘密分散データと,第1のXOR演算手段によって生成された第1の演算データとのXOR演算を行い,第4の秘密分散データを出力する第4の秘密分散データ出力手段を備えていることを特徴とする。
この発明は,秘密分散方法も提供している。すなわち,第1のXOR演算手段が,nが自然数であるnビットの連続する第1のデータ列とnが自然数であるnビットの連続する第2のデータ列とのXOR演算を行い,第1の演算データを出力し,第1のキー・データ生成手段が,第1のキー・データおよび第2のキー・データを用いて,第1のXOR演算手段から出力される第1の演算データのビット列の配列を変更して,キー・データを生成し,第2のXOR演算手段が,第1のデータ列と第1のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第2の演算データを出力し,第3のXOR演算手段が,第2のデータ列と第1のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第3の演算データを出力し,第1の秘密分散データ出力手段が,第1のキー・データを用いて第2のXOR演算手段から出力される第2の演算データのビット列の配列を変更して第1のランダム・データを生成し,生成した第1のランダム・データを第1の秘密分散データとして出力し,第2の秘密分散データ出力手段が,第1の秘密分散データ出力手段から出力された第1の秘密分散データと,第1のXOR演算手段によって生成された第1の演算データとのXOR演算を行い,第2の秘密分散データを出力し,第3の秘密分散データ出力手段が,第2のキー・データを用いて第3のXOR演算手段から出力される第3の演算データのビット列の配列を変更して第2のランダム・データを生成し,生成した第2のランダム・データを第3の秘密分散データとして出力し,第4の秘密分散データ出力手段が,第3の秘密分散データ出力手段から出力された第3の秘密分散データと,第1のXOR演算手段によって生成された第1の演算データとのXOR演算を行い,第4の秘密分散データを出力するものである。
この発明は,秘密分散装置のコンピュータを制御するコンピュータが読取可能なプログラムおよびそのプログラムを格納した記録媒体も提供している。
第1のキー・データと第2のキー・データとのXOR演算を行い,XORキー・データを生成するXORキー・データ生成手段をさらに備えてもよい。この場合,第1のキー・データ生成手段は,たとえば,XORキー・データ生成手段によって生成されたXORキー・データを用いて,第1の暗号化方式により第1の演算データを暗号化することにより第1の演算データのビット列の配列を変更してキー・データを生成し,第1の秘密分散データ出力手段は,たとえば,第1のキー・データを用いて,第1の暗号化方式により第2の演算データを暗号化することにより第1のランダム・データを生成して,生成した第1のランダム・データを第1の秘密分散データとして出力し,第3の秘密分散データ出力手段は,たとえば,第2のキー・データを用いて,第1の暗号化方式により第3の演算データを暗号化することにより第2のランダム・データを生成して,生成した第2のランダム・データを第3の秘密分散データとして出力するものである。
第1のキー・データ生成手段は,たとえば,第1のキー・データを用いて,第1の演算データのビット列の配列を変更する第1の配列変更処理を行い,第2のキー・データを用いて,第1の配列変更処理が行われた第1の演算データのビット列の配列をさらに変更する第2の配列変更処理を行い,キー・データを生成し,第1の秘密分散データ出力手段は,たとえば,第1のキー・データを用いて第1の配列変更処理および第2の配列変更処理の少なくとも一方の処理を行うことにより,第1のランダム・データを生成して,生成した第1のランダム・データを第1の秘密分散データとして出力し,第3の秘密分散データ出力手段は,たとえば,第2のキー・データを用いて少なくとも一方の処理を行うことにより,第2のランダム・データを生成して,生成した第2のランダム・データを第3の秘密分散データとして出力するものである。
第1の配列変更処理は,たとえば,ビット・ローテート処理またはビット・シャッフル処理であり,第2の配列変更処理は,たととえば,ビット・ローテート処理またはビット・シャッフル処理のうち,第1の配列変更処理で行われた処理を除く処理である。
この発明によるデータ復元装置は,秘密分散装置において生成された第1の秘密分散データ,第2の秘密分散データ,第3の秘密分散データおよび第4の秘密分散データのうち,少なくとも3つの秘密分散データを取得する秘密分散データ取得手段,秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データから第1の演算データを生成する第1の演算データ生成手段,第1のキー・データおよび第2のキー・データを取得するキー・データ取得手段,キー・データ取得手段によって取得された第1のキー・データおよび第2のキー・データを用いて,第1のキー・データ生成手段によるキー・データの生成と同じ手法によって第1の演算データのビット列の配列を変更してキー・データを生成する第2のキー・データ生成手段,秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データに第1の秘密分散データまたは第3の秘密分散データのいずれか一方しか含まれていない場合には,第1の秘密分散データおよび第3の秘密分散データのうち含まれていない秘密分散データを生成し,第1の秘密分散データと第1のキー・データとを用いて第2の演算データを生成し,かつ第2の秘密分散データと第2のキー・データとを用いて第3の演算データを生成する第2の演算データ生成手段,ならびに第2の演算データ生成手段によって生成された第2の演算データと第2のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い第1のデータ列を復元し,第2の演算データ生成手段によって生成された第3の演算データと第2のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第2のデータ列を復元する復元手段を備えていることを特徴とする。
この発明は,データ復元方法も提供している。すなわち,この方法は,秘密分散データ取得手段が,秘密分散方法において生成された第1の秘密分散データ,第2の秘密分散データ,第3の秘密分散データおよび第4の秘密分散データのうち,少なくとも3つの秘密分散データを取得し,第1の演算データ生成手段が,秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データから第1の演算データを生成し,キー・データ取得手段が,第1のキー・データおよび第2のキー・データを取得し,第2のキー・データ生成手段が,キー・データ取得手段によって取得された第1のキー・データおよび第2のキー・データを用いて,第1のキー・データ生成手段によるキー・データの生成と同じ手法によって第1の演算データのビット列の配列を変更してキー・データを生成し,第2の演算データ生成手段が,秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データに第1の秘密分散データまたは第3の秘密分散データのいずれか一方しか含まれていない場合には,第1の秘密分散データおよび第3の秘密分散データのうち含まれていない秘密分散データを生成し,第1の秘密分散データと第1のキー・データとを用いて第2の演算データを生成し,かつ第2の秘密分散データと第2のキー・データとを用いて第3の演算データを生成し,復元手段が,第2の演算データ生成手段によって生成された第2の演算データと第2のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い第1のデータ列を復元し,第2の演算データ生成手段によって生成された第3の演算データと第2のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第2のデータ列を復元するものである。
この発明は,データ復元装置のコンピュータを制御するコンピュータが読取可能なプログラムおよびそのプログラムを格納した記録媒体も提供している。
第1の演算データ生成手段は,たとえば,秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データのうち,第1の秘密分散データと第2の秘密分散データとのXOR演算または第3の秘密分散データと第4の秘密分散データとのXOR演算を行い,第1の演算データを生成するものである。
第2の演算データ生成手段は,たとえば,秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データに,第1の秘密分散データおよび第3の秘密分散データのいずれも含まれている場合には第1の秘密分散データと第1のキー・データとを用いて第2の演算データを生成し,かつ第3の秘密分散データと第2のキー・データとを用いて第3の演算データを生成し,秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データに,第3の秘密分散データが含まれていない場合には,第4の秘密分散データと第1の演算データ生成手段によって生成された第1の演算データとから第3の秘密分散データを生成し,第1の秘密分散データが含まれていない場合には,第2の秘密分散データと第1の演算データ生成手段によって生成された第1の演算データとから第1の秘密分散データを生成し,生成された第1の秘密分散データと第1のキー・データとを用いて第2の演算データを生成し,かつ生成された第3の秘密分散データと第2のキー・データとを用いて第3の演算データを生成する。
第1のキー・データと第2のキー・データとのXOR演算により得られるXORキー・データを用いて第1の暗号化方式により第1の演算データを暗号化することにより第1の演算データのビット列の配列を変更してキー・データが生成されている場合には,第1の秘密分散データ出力手段は,たとえば,第1のキー・データを用いて,第1の暗号化方式により第2の演算データを暗号化することにより第1のランダム・データを生成して,生成した第1のランダム・データを第1の秘密分散データとして出力し,第3の秘密分散データ出力手段は,たとえば,第2のキー・データを用いて,第1の暗号化方式により第3の演算データを暗号化することにより第2のランダム・データを生成して,生成した第2のランダム・データを第3の秘密分散データとして出力し,第2の演算データ生成手段は,たとえば,第1のランダム・データを,第1のキー・データを用いて第1の暗号化方式に対応した復号方式により復号することにより第2の演算データを生成し,第2のランダム・データを,第2のキー・データを用いて第1の暗号化方式に対応した復号方式により復号することにより第3の演算データを生成する。
第1のキー・データ生成手段において,第1のキー・データを用いて,第1の演算データのビット列の配列を変更する第1の配列変更処理が行なわれ,第2のキー・データを用いて,第1の配列変更処理が行われた第1の演算データのビット列の配列をさらに変更する第2の配列変更処理が行なわれてキー・データが生成されている場合には,第1の秘密分散データ出力手段は,たとえば,第1のキー・データを用いて第1の配列変更処理および第2の配列変更処理の少なくとも一方の処理を行うことにより,第1のランダム・データを生成して,生成した第1のランダム・データを第1の秘密分散データとして出力し,第3の秘密分散データ出力手段は,たとえば,第2のキー・データを用いて少なくとも一方の処理を行うことにより,第2のランダム・データを生成して,生成した第2のランダム・データを第3の秘密分散データとして出力し,第2の演算データ生成手段は,第1のランダム・データを,第1のキー・データを用いて第1の配列変更処理および第2の配列変更処理の少なくとも一方の処理に対応した配列復元処理により第2の演算データを生成し,第2のランダム・データを,第2のキー・データを用いて第1の配列変更処理および第2の配列変更処理の少なくとも一方の処理に対応した配列復元処理により第3の演算データを生成する。
第1の配列変更処理は,たとえば,ビット・ローテート処理またはビット・シャッフル処理であり,第2の配列変更処理は,たとえば,ビット・ローテート処理またはビット・シャッフル処理のうち,第1の配列変更処理で行われた処理を除く処理である。
この発明の秘密分散装置によると,第1のデータ列と第2のデータ列とのXOR演算が行われ,第1の演算データが得られる。第1のキー・データおよび第2のキー・データを用いて,得られた第1の演算データのビット列の配列が変更されてキー・データが生成される。生成されたキー・データと,第1のデータ列および第2のデータ列のそれぞれと,のXOR演算が行われ第2の演算データと第3の演算データとが得られる。第1のキー・データを用いて,得られた第2の演算データのビット列の配列が変更され,第1のランダム・データが得られる。第1のランダム・データが第1の秘密分散データとして出力される。また,第1のランダム・データと第1の演算データとのXOR演算が行われ,その演算結果が第2の秘密分散データとして出力される。同様に,第2のキー・データを用いて,得られた第3の演算データのビット列の配列が変更され,第2のランダム・データが得られる。第2のランダム・データが第3の秘密分散データとして出力される。また,第2のランダム・データと第1の演算データとのXOR演算が行われ,その演算結果が第4の秘密分散データとして出力される。
第2の演算データおよび第3の演算データの生成に利用されるキー・データは,第1のデータ列および第2のデータ列を利用して生成されており,乱数などを利用して新たに生成していないので,秘密分散データの生成に必要な時間を短縮でき,煩雑となってしまうことが未然に防止される。また,第1の演算データのビット列の配列が変更されたキー・データを利用して第2の演算データおよび第3の演算データを生成しているので,第1のキー・データおよび第2のキー・データをそのまま利用して第2の演算データおよび第3の演算データを生成する場合に比べてセキュリティが向上する。
この発明のデータ復元装置によると,秘密分散装置において生成された第1の秘密分散データ,第2の秘密分散データ,第3の秘密分散データおよび第4の秘密分散データのうち,少なくとも3つの秘密分散データならびに第1のキー・データおよび第2のキー・データが取得される。第1のキー・データおよび第2のキー・データを用いて,秘密分散装置において第1の秘密分散データ等が生成されたときに生成されたキー・データの生成と同じ手法によってキー・データが生成される。また,取得された3つ秘密分散データを用いて,第1の演算データ,第2の演算データおよび第3の演算データが生成される。取得された3つの秘密分散データ,生成されたキー・データ,第2の演算データおよび第3の演算データを用いて,第1のデータ列および第2のデータ列が復元できるようになる。
秘密分散/データ復元装置の電気的構成を示すブロック図である。 秘密分散処理手順を示すフローチャートである。 秘密分散処理手順を示すフローチャートである。 秘密データを示している。 キー・データ生成処理を示している。 第1の秘密分散データ生成処理を示している。 第2の秘密分散データ生成処理を示している。 第3の秘密分散データ生成処理を示している。 第4の秘密分散データ生成処理を示している。 秘密分散データを示している。 データ復元処理手順を示すフローチャートである。 データ復元処理手順を示すフローチャートである。 取得した秘密分散データを示している。 取得した秘密分散データを示している。 取得した秘密分散データを示している。 取得した秘密分散データを示している。 第1の演算データ生成処理を示している。 第1の演算データ生成処理を示している。 第1のランダム・データ生成処理を示している。 第2のランダム・データ生成処理を示している。 第2の演算データ生成処理を示している。 第1のデータ列復元処理を示している。 第3の演算データ生成処理を示している。 第2のデータ列復元処理を示している。 キー・データ生成処理を示している。 ビット・ローテート処理を示している。 ビット・シャッフル処理を示している。 第1の秘密分散データ生成処理を示している。 第3の秘密分散データ生成処理を示している。 第2の演算データ生成処理を示している。 第3の演算データ生成処理を示している。
図1は,この発明の実施例を示すもので,主として秘密分散/データ復元装置10(秘密分散装置,データ復元装置)の電気的構成を示すブロック図である。
秘密分散/データ復元装置10は,秘密対象データ(画像データ,音声データ,テキスト・データ)を,XOR(exclusive or)演算(排他的論理和演算)を利用した(3,2,4)ランプ型閾値秘密分散法により4つのデータ(ファイル)に分散し,分散された4つのデータのうち,少なくとも3つのデータ(ファイル)を取得して,秘密対象データを復元するものである。(3,2,4)ランプ型閾値秘密分散法により,データ量が1/2となる。
秘密分散/データ復元装置10の全体の動作は,制御装置11によって統括される。
秘密分散/データ復元装置10には,データ入出力装置16が含まれている。このデータ入出力装置16を用いて,秘密分散/データ復元装置10の外部にあるPC(パーソナル・コンピュータ)(図示略)などからネットワークを介して送信されるデータ(秘密対象データ)等を秘密分散/データ復元装置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に入力した秘密対象データが4つのファイルF1,F2,F3およびF4に分散される(秘密分散)。この分散について詳しくは後述する。分散データ生成装置18において分散させられた4つのファイルF1,F2,F3およびF4はデータ通信装置21からネットワークに送信される。4つのファイルF1,F2,F3およびF4は,それぞれ,ネットワークを介してリモート・サーバ31,32,33および34に入力し,リモート・サーバ31,32,33および34のそれぞれの記憶領域(図示略)に記憶される。
分散させられた4つのファイルF1,F2,F3およびF4が秘密対象データに復元される場合には,リモート・サーバ31,32,33および34のそれぞれの記憶領域(図示略)に記憶されている4つのファイルF1,F2,F3およびF4のうち少なくとも3つのファイルが,リモート・サーバ31,32,33および34から送信され,ネットワークを介してデータ通信装置21によって秘密分散/データ復元装置10に入力する。入力した少なくとも3つのファイルは,分散データ復元装置20において,秘密データに復元される。このデータ復元処理についても詳しくは後述する。復元された秘密データがデータ入出力装置16から,秘密分散/データ復元装置10の外部のPCなどに送信される。
図1に示す秘密分散/データ復元装置10においては,分散データ生成装置18において秘密分散処理が行われているが,秘密分散処理を行う専用の分散データ生成装置18を利用せずに一般的なパーソナル・コンピュータにおいてソフトウエアを用いて秘密分散処理が行われるようにしてもよい。同様に,データ復元を行う専用の分散データ復元装置20を利用せずに一般的なパーソナル・コンピュータにおいてソフトウエアを用いてデータ復元処理が行われるようにしてもよい。
図2および図3は,分散データ生成装置18において行われる秘密分散処理手順を示すフローチャートである。図4は,秘密対象データを示している。
秘密分散/データ復元装置10に秘密対象データが入力すると,秘密対象データは,一次記憶メモリ17に一時的に記憶される。制御装置11によって秘密対象データのうち,図4に示すように,128ビットの連続する第1のデータ列S1(nが自然数であるnビットの連続する第1のデータ列)および128ビットの連続する第2のデータ列S2(nが自然数であるnビットの連続する第2のデータ列)が読み取られる(図2ステップ41)。第1のデータ列S1および第2のデータ列S2は,nビットの連続するデータであれば,必ずしも128ビットでなくともよく,他のビット数でもよい。読み取られた第1のデータ列S1および第2のデータ列S2は,分散データ生成装置18に入力し,分散データ生成装置18において,第1の演算データS0およびキー・データk0が生成される(図2ステップ42,43)。
図5は,分散データ生成装置18において行われる第1の演算データS0およびキー・データk0の生成処理を示している。
分散データ生成装置18において,第1のデータ列S1と第2のデータ列S2とのXOR演算が行われ,第1の演算データS0が生成される(第1のXOR演算手段)。図面ではXOR演算の記号として,+が丸印によって囲まれている。また,第1のキー・データk1および第2のキー・データk2が分散データ生成装置18において生成される。これらの第1のキー・データk1および第2のキー・データk2のデータ・サイズは,128ビット,192ビット,256ビットなどのいずれでもよい。生成された第1のキー・データk1と第2のキー・データk2とのXOR演算が分散データ生成装置18において行われ,キー・データk12が生成される。生成されたキー・データk12を用いて,生成された第1の演算データS0がAES(Advanced Encryption Standard)にもとづいて,分散データ生成装置18において暗号化させられる。これにより,分散データ生成装置18において,キー・データk0が生成される(第1のキー・データ生成手段)。この暗号化処理がキー・データ生成用の第1のキー・データk1およびキー・データ生成用の第2のキー・データのk2を用いて,第1の演算データS0のビット列の配列を変更して,キー・データk0を生成する処理となる。第1の演算データS0のビット列の配列が変更されればよいので,必ずしも暗号化する必要はなく,また,暗号化もAESにもとづく暗号化以外の他の暗号化,たとえば,DES(Data Encryption Standard)にもとづく暗号,RSA暗号なども利用できる。
つづいて,分散データ生成装置18において,次に述べるようにして第2の演算データS10および第3の演算データS20が生成される(図2ステップ44,45)。また,分散データ生成装置において,次に述べるようにして第1のランダム・データR1が生成され,生成された第1のランダム・データR1が第1の秘密分散データW1として出力され(図2ステップ46),第2の秘密分散データW2も生成される(図2ステップ47)。
図6は,分散データ生成装置18における第2の演算データS10および第1のランダム・データR1(第1の秘密分散データW1)の生成処理を示している。
分散データ生成装置18において,第1のデータ列S1とキー・データk0とのXOR演算が行われ,第2の演算データS10が生成される(第2のXOR演算手段)。さらに,分散データ生成装置18において,生成された第2の演算データS10が第1のキー・データk1を用いてAES暗号化させられることにより,第1のランダム・データR1が生成される。分散データ生成装置18において,生成された第1のランダム・データR1が第1の秘密分散データW1として第1のファイルF1に格納される(出力される)(第1の秘密分散データ出力手段)。
図7は,分散データ生成装置18における第2の秘密分散データW2の生成処理を示している。
分散データ生成装置18において,生成された第1のランダム・データR1と第1の演算データS0とのXOR演算が行われ,第2の秘密分散データW1が生成される(第2の秘密分散データ出力手段)。生成された第2の秘密分散データW2は,分散データ生成装置18において,第2のファイルF2に格納される。
図3を参照して,分散データ生成装置18において,次に述べるようにして第2のランダム・データR2が生成され,生成された第2のランダム・データR2が第3の秘密分散データW3として出力され(図3ステップ48),第4の秘密分散データW4も生成される(図3ステップ49)。
図8は,分散データ生成装置18における第3の演算データS20および第2のランダム・データR2(第3の秘密分散データW3)の生成処理を示している。
分散データ生成装置18において,第2のデータ列S2とキー・データk0とのXOR演算が行われ,第3の演算データS20が生成される(第3のXOR演算手段)。さらに,分散データ生成装置18において,生成された第3の演算データS20が第2のキー・データk2を用いてAES暗号化させられることにより,第2のランダム・データR2が生成される。分散データ生成装置18において,生成された第2のランダム・データR2が第3の秘密分散データW3として第3のファイルF3に格納される(出力される)(第3の秘密分散データ出力手段)。
図9は,分散データ生成装置18における第4の秘密分散データW4の生成処理を示している。
分散データ生成装置18において,生成された第2のランダム・データR2と第1の演算データS0とのXOR演算が行われ,第4の秘密分散データW4が生成される(第4の秘密分散データ出力手段)。生成された第4の秘密分散データW4は,分散データ生成装置18において,第4のファイルF4に格納される。
図10は,生成された4つの秘密分散データW1,W2,W3およびW4と,それらの秘密分散データW1,W2,W3およびW4の生成に利用されたキー・データが第1のキー・データk1または第2のキー・データk2のいずれかなのかを示している。
第1の秘密分散データW1は第1のランダム・データR1であり,第2の秘密分散データW2は第1の演算データS0と第1のランダム・データR1とのXOR演算により得られるデータであり,第3の秘密分散データW3は第2のランダム・データR2であり,第4の秘密分散データW4は第1の演算データS0と第2のランダム・データR2とのXOR演算により得られるデータである。第1の秘密分散データW1および第2の秘密分散データW2の生成には第1のキー・データk1が利用されており,第3の秘密分散データW3および第4の秘密分散データW4の生成には第2のキー・データk2が利用されている。
このようにして秘密対象データのうち,第1のデータ列S1および第2のデータ列S2から,第1から第4の秘密分散データW1−W4が生成されると,第1のデータ列S1および第2のデータ列S2につづくデータが新たに読み取られ,新たに読み取られたデータが第1のデータ列S1および第2のデータ列S2として,上述した処理と同様にして第1から第4の秘密分散データW1−W4が新たに生成される。新たに生成された第1,第2,第3および第4の秘密分散データW1,W2,W3およびW4が,第1,第2,第3および第4のファイルF1,F2,F3およびF4に格納される。以下,秘密対象データの終わりまで,第1のデータ列S1および第2のデータ列S2の読み取り,第1から第4の秘密分散データW1からW4の生成ならびに第1から第4のファイルF1からF4への第1から第4の秘密分散データW1からW4の格納が繰り返される。生成された秘密分散データW1からW4に利用されたキー・データが第1のキー・データk1または第2のキー・データk2かを示すデータは,第1および第2のキー・データk1およびk2とともに,第1から第4のファイルF1からF4のヘッダに格納される。もっとも,生成された秘密分散データW1からW4に利用されたキー・データが第1のキー・データk1または第2のキー・データk2のいずれかがあらかじめ定められている場合には,第1または第2のキー・データk1またはk2のどちらのキー・データが使用されたかを示すデータは第1から第4のファイルのヘッダに格納されなくともよい。
このようにして生成された第1から第4のファイルF1からF4が分散データ生成装置18からデータ通信装置21に与えられる。データ通信装置21によって,第1,第2,第3および第4のファイルが,リモート・サーバ31,32,33および34に送信され,それぞれの記憶領域に記憶させられる。
図11および図12は,上述のようにして生成された第1から第4の秘密分散データW1−W4を分散データ復元装置20において復元する処理手順を示すフローチャートである。
リモート・ストレージ・サーバ31,32,33および34に記憶されている第1,第2,第3および第4のファイルF1,F2,F3およびF4のうち,少なくとも3つのファイルが秘密分散/データ復元装置10に送信され,データ通信装置21によって受信される。受信した少なくとも3つのファイルは,分散データ復元装置20に入力し,一時的に記憶される。少なくとも3つのファイルに含まれている少なくとも3つの秘密分散データが分散データ復元装置20において取得される(図11ステップ51)(秘密分散データ取得手段)。
図13から図16は,取得された秘密分散データの一例を示しており,秘密分散データの生成に利用されたキー・データが第1のキー・データk1か,第2のキー・データk2かも示している。
図13は,秘密分散/データ復元装置10において受信したファイルが第1のファイルF1,第2のファイルF2および第3のファイルF3であり,これらのファイルから第1の秘密分散データW1,第2の秘密分散データW2および第3の秘密分散データW3が取得された場合のものである。第1の秘密分散データW1は第1のランダム・データR1であり,第1のキー・データk1が利用されている。第2の秘密分散データW2は第1の演算データS0と第1のランダム・データR1とのXOR演算から得られるデータであり,第1のキー・データk1が利用されている。第3の秘密分散データW3は第2のランダム・データR2であり,第2のキー・データk2が利用されている。
このように,第1,第2および第3の秘密分散データW1,W2およびW3が取得されている場合には,分散データ復元装置20において,第1および第2の秘密分散データW1およびW2から第1の演算データS0が生成される(図11ステップ52)(第1の演算データ生成手段)。
図17は,第1および第2の秘密分散データW1およびW2から第1の演算データS0を生成する処理を示している。
分散データ復元装置20において,第1の秘密分散データW1と第2の秘密分散データW2とのXOR演算が行われる。第1の秘密分散データW1は,第1のランダム・データR1と同じであり,第2の秘密分散データW2は第1の演算データS0と第1のランダム・データR1とのXOR演算により得られたデータであるから,第1の秘密分散データW1と第2の秘密分散データW2とのXOR演算が行われることにより,第1の演算データS0が生成される。
取得された第1,第2および第3のファイルF1,F2およびF3のヘッダのそれぞれには,第1および第2のキー・データk1およびk2が格納されているから,分散データ復元装置20において,そのヘッダから第1および第2のキー・データk1およびk2が取得される(図11ステップ53)。第1の演算データS0ならびに第1および第2のキー・データk1およびk2が取得されるから,秘密分散処理時にキー・データを生成する方法と同じ方法で(図5参照),分散データ復元装置20において,キー・データk0が生成される(ステップ54)。
取得した秘密分散データに第1の秘密分散データW1または第3の秘密分散データW3のいずれか一方しか含まれていない場合には(ステップ55でYES),その含まれていない秘密分散データに対応するランダム・データR1またはR2を生成する必要がある(ステップ56)。取得した秘密分散データに第1の秘密分散データW1および第3の秘密分散データW3の両方が含まれている場合には(ステップ55でNO),ステップ56の処理はスキップされる。第1,第2および第3の秘密分散データW1,W2およびW3が取得されている場合には,ステップ56の処理はスキップされることとなる。
つづいて,分散データ復元装置20において,第1のランダム・データR1から第2の演算データS10が生成される(ステップ57)。
図21は,第2の演算データS10が生成される処理を示している。
分散データ復元装置20において,第1のランダム・データR1(第1の秘密分散データW1)が第1のキー・データk1によってAES復号が行われることにより,第2の演算データS10が生成される(第2の演算データ生成手段)。
つづいて,分散データ復元装置20において,生成された第2の演算データS10から第1のデータ列S1が復元される(図12ステップ58)(復元手段)。
図22は,第1のデータ列S1が復元される処理を示している。
分散データ復元装置20において,生成された第2の演算データS10とキー・データk0とのXOR演算が行われることにより,第1のデータ列S1が復元される。
つづいて,分散データ復元装置20において,第2のランダム・データR2から第3の演算データS20が生成される(ステップ59)。
図23は,第3の演算データS20が生成される処理を示している。
分散データ復元装置20において,第2のランダム・データR2(第3の秘密分散データW3)が第2のキー・データk2によってAES復号が行われることにより,第3の演算データS20が生成される(第2の演算データ生成手段)。
つづいて,分散データ復元装置20において,生成された第3の演算データS20から第2のデータ列S2が復元される(図12ステップ60)(復元手段)。
このような処理が読み取られた第1,第2および第3のファイルF1,F2およびF3に含まれているすべての秘密分散データについて繰り返され,秘密対象データが復元される。
図24は,第2のデータ列S2が復元される処理を示している。
分散データ復元装置20において,生成された第3の演算データS20とキー・データk0とのXOR演算が行われることにより,第2のデータ列S2が復元される。
図14を参照して,図14は,秘密分散/データ復元装置10において第2,第3および第4のファイルF2,F3およびF4を受信した場合の秘密分散データの一例である。
第2,第3および第4のファイルF2,F3およびF4から,第2,第3および第4の秘密分散データW2,W3およびW4が取得される(図11ステップ51)。この場合,第3および第4の秘密分散データW3およびW4から第1の演算データS0が生成される(図11ステップ52)。
図18は,第3および第4の秘密分散データW3およびW4から第1の演算データS0を生成する処理を示している。
データ復元装置20において,第3の秘密分散データW3と第4の秘密分散データW4とのXOR演算が行われる。第3の秘密分散データW3は第2のランダム・データR2であり,第4の秘密分散データW4は第1の演算データS0と第2のランダム・データR2とのXOR演算のデータであるから,第3の秘密分散データW3と第4の秘密分散データW4とのXOR演算が行われることにより,第1の演算データS0が生成される。
取得した秘密分散データには,第1の秘密分散データW1および第3の秘密分散データW3のうち,第3の秘密分散データW3しか含まれていないから(図11ステップ55でYES),含まれていない第1の秘密分散データW1が生成される(図11ステップ56)。
図19は,第1の秘密分散データW1を生成する処理を示している。
分散データ復元装置20において,第2の秘密分散データW2と生成された第1の演算データS0とのXOR演算が行われる。第2の秘密分散データW2は,第1の演算データS0と第1のランダム・データR1とのXOR演算により得られるものであるから,第2の秘密分散データW2と生成された第1の演算データS0とのXOR演算が行われることにより,第1のランダム・データR1(第1の秘密分散データW1)が生成される。
第1の秘密分散データW1から第4の秘密分散データW4の4つの秘密分散データが得られることとなるから,その後は図21から図24を参照して説明したのと同様に第1のデータ列S1および第2のデータ列S2が分散データ復元装置20において復元される。
図15を参照して,図15は,秘密分散/データ復元装置10において,第1,第2および第4のファイルF1,F2およびF4を受信した場合の秘密分散データの一例である。
第1,第2および第4のファイルF1,F2およびF4から,第1,第2および第4の秘密分散データW1,W2およびW4が取得される(図11ステップ51)。この場合,図17を参照して説明したように,第1および第2の秘密分散データW1およびW2から第1の演算データS0が生成される(図11ステップ52)。取得した秘密分散データW1,W2およびW4には,第1の秘密分散データW1および第3の秘密分散データW3のうち,第1の秘密分散データW1しか含まれていないから(図11ステップ55でYES),含まれていない第3の秘密分散データW3が生成される(図11ステップ56)。
図20は,第3の秘密分散データW3を生成する処理を示している。
分散データ復元装置20において,第4の秘密分散データW4と生成された第1の演算データS0とのXOR演算が行われる。第4の秘密分散データW4は,第1の演算データS0と第2のランダム・データR2とのXOR演算により得られるものであるから,第4の秘密分散データW4と生成された第1の演算データS0とのXOR演算が行われることにより,第2のランダム・データR2(第4の秘密分散データW4)が生成される。
第1の秘密分散データW1から第4の秘密分散データW4の4つの秘密分散データが得られることとなるから,その後は図21から図24を参照して説明したのと同様に第1のデータ列S1および第2のデータ列S2が分散データ復元装置20において復元される。
図16を参照して,図16は,秘密分散/データ復元装置10において,第1,第3および第4のファイルF1,F3およびF4を受信した場合の秘密分散データの一例である。
第1,第3および第4のファイルF1,F3およびF4から,第1,第3および第4の秘密分散データW1,W3およびW4が取得される(図11ステップ51)。この場合,図18を参照して説明したように,第3および第4の秘密分散データW3およびW4から第1の演算データS0が生成される(図11ステップ52)。取得した秘密分散データW1,W3およびW4には,第1の秘密分散データW1および第3の秘密分散データW3のいずれも含まれているから(図11ステップ55でNO),ステップ56の処理はスキップされる。図21から図24を参照して説明したように,第1のデータ列S1および第2のデータ列S2が復元される(ステップ57から60)。
上述の実施例においては暗号を利用して第1の演算データS0のビット列の配列を変更しているが,次に説明するのは暗号を利用しないで第1の演算データS0のビット列の配列を変更して秘密分散およびデータ復元が行われるものである。
図25は,図5の処理に対応するもので,第1の演算データS0およびキー・データk0の生成についてのものである。
図5における処理と同様に,分散データ復元装置20において,第1のデータ列S1と第2のデータ列S2とのXOR演算が行われ,第1の演算データS0が生成される(図2ステップ42)。生成された第1の演算データS0に対して,第1のキー・データk1を利用して分散データ生成装置18においてビット・ローテートが行われる。ビット・ローテートが行われた第1の演算データS0に対して第2のキー・データk2を利用して分散データ生成装置18においてビット・シャッフルが行われ,キー・データk0が得られる。
図26は,ビット・ローテートの処理を示している。
ビット・ローテートは,この場合,第1のキー・データk1で決定される数の上位ビットを下位ビットに移動させるものである。第1の演算データS0が「10100111」であり,第1のキー・データk1は2桁分の上位ビットを下位ビットに移動させることを示しているものとする。すると,2桁分の上位ビット「10」が下位ビットに移動させられる。ビット・ローテートの結果,第1の演算データS0は,「10011110」となる。
図27は,ビット・シャッフルの処理を示している。
ビット・シャッフルは,この場合,第2のキー・データk2で決定される桁を中心に上位ビットと下位ビットとを入れ替えるものである。第2のキー・データk2は,5桁目を示しているものとする。すると,第4桁目のデータと第6桁目のデータ,第3桁目のデータと第7桁目のデータ,第2桁目のデータと第8桁目のデータ,第1桁目のデータと第5桁目のデータとが入れ替えられる。「10011110」で表されるデータが「11100011」となる。
図28は,図6に対応するもので,第1のランダム・データR1の生成処理を示している。
図6に示す処理と同様に,第1のデータ列S1とキー・データk0とのXOR演算が分散データ生成装置18において行われ,第2の演算データS10が生成される。生成された第2の演算データS10が,第1のキー・データk1を利用してビット・シャッフルされることにより,第1のランダム・データR1が生成され,第1の秘密分散データW1として出力される。図7に示すように,生成された第1のランダム・データR1と第1の演算データS0とのXOR演算が分散データ生成装置18において生成されることにより,第2の秘密分散データW2が得られるのは上述の通りである。
図29は,図8に対応するもので,第2のランダム・データR2の生成処理を示している。
図8に示す処理と同様に,第2のデータ列S2とキー・データk0とのXOR演算が分散データ生成装置18において行われ,第3の演算データS20が生成される。生成された第3の演算データS20が,第2のキー・データk2を利用してビット・シャッフルされることにより,第2のランダム・データR2が生成され,第3の秘密分散データW3として出力される。図9に示すように,生成された第2のランダム・データR2と第1の演算データS0とのXOR演算が分散データ生成装置18において生成されることにより,第4の秘密分散データW4が得られるのは上述の通りである。
データ復元においては,上述したのと同様にして第1から第4の秘密分散データW1からW4のうち,少なくとも3つの秘密分散データが取得される。
図30は,第1のランダム・データR1から第2の演算データS10を生成する処理を示すもので,図21に対応している。
上述したのと同様に,第1のランダム・データR1が得られると第1のキー・データk1を用いてビット・シャッフルが分散データ復元装置20において行われ,第2の演算データS10が生成される。第2の演算データS10についてビット・シャッフルが行われた第1のランダム・データR1について再びビット・シャッフルが行われることにより,第2の演算データS10が得られる。
図31は,第2のランダム・データR2から第3の演算データS20を生成する処理を示すもので,図23に対応している。
上述したのと同様に,第2のランダム・データR2が得られると第2のキー・データk2を用いてビット・シャッフルが分散データ復元装置20において行われ,第3の演算データS20が生成される。第3の演算データS20についてビット・シャッフルが行われた第2のランダム・データR2について再びビット・シャッフルが行われることにより,第3の演算データS20が得られる。
図28から図31に示す処理においては,ビット・シャッフルが利用されているが,ビット・シャッフルの代わりにビット・ローテートが利用されてもよい。ビット・ローテートが利用される場合には,図30に対応する処理においては,第1のランダム・データR1においてビット・ローテートにより下位ビットに移動させられた上位ビットのデータが再び上位ビットに戻される(逆ビット・ローテート)。同様に図31に対応する処理においては,第2のランダム・データR2においてビット・ローテートにより下位ビットに移動させられた上位ビットのデータが再び上位ビットに戻される。
上述した実施例においては,秘密分散/データ復元装置10に分散データ生成装置18および分散データ復元装置20が設けられているが,これらの処理はソフトウエアによって行われるようにしてもよい。
10 秘密分散/データ復元装置
11 制御装置
15 CD-RPM
18 分散データ生成装置
20 分散データ復元装置

Claims (15)

  1. nが自然数であるnビットの連続する第1のデータ列とnが自然数であるnビットの連続する第2のデータ列とのXOR演算を行い,第1の演算データを出力する第1のXOR演算手段,
    第1のキー・データおよび第2のキー・データを用いて,上記第1のXOR演算手段から出力される第1の演算データのビット列の配列を変更して,キー・データを生成する第1のキー・データ生成手段,
    上記第1のデータ列と上記第1のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第2の演算データを出力する第2のXOR演算手段,
    上記第2のデータ列と上記第1のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第3の演算データを出力する第3のXOR演算手段,
    上記第1のキー・データを用いて上記第2のXOR演算手段から出力される第2の演算データのビット列の配列を変更して第1のランダム・データを生成し,生成した第1のランダム・データを第1の秘密分散データとして出力する第1の秘密分散データ出力手段,
    上記第1の秘密分散データ出力手段から出力された第1の秘密分散データと,上記第1のXOR演算手段によって生成された第1の演算データとのXOR演算を行い,第2の秘密分散データを出力する第2の秘密分散データ出力手段,
    上記第2のキー・データを用いて上記第3のXOR演算手段から出力される第3の演算データのビット列の配列を変更して第2のランダム・データを生成し,生成した第2のランダム・データを第3の秘密分散データとして出力する第3の秘密分散データ出力手段,および
    上記第3の秘密分散データ出力手段から出力された第3の秘密分散データと,上記第1のXOR演算手段によって生成された第1の演算データとのXOR演算を行い,第4の秘密分散データを出力する第4の秘密分散データ出力手段,
    を備えた秘密分散装置。
  2. 上記第1のキー・データと上記第2のキー・データとのXOR演算を行い,XORキー・データを生成するXORキー・データ生成手段をさらに備え,
    上記第1のキー・データ生成手段は,
    上記XORキー・データ生成手段によって生成されたXORキー・データを用いて,第1の暗号化方式により上記第1の演算データを暗号化することにより上記第1の演算データのビット列の配列を変更してキー・データを生成し,
    上記第1の秘密分散データ出力手段は,
    上記第1のキー・データを用いて,上記第1の暗号化方式により上記第2の演算データを暗号化することにより上記第1のランダム・データを生成して,生成した第1のランダム・データを第1の秘密分散データとして出力し,
    上記第3の秘密分散データ出力手段は,
    上記第2のキー・データを用いて,上記第1の暗号化方式により上記第3の演算データを暗号化することにより上記第2のランダム・データを生成して,生成した第2のランダム・データを第3の秘密分散データとして出力する,
    請求項1に記載の秘密分散装置。
  3. 上記第1のキー・データ生成手段は,
    上記第1のキー・データを用いて,上記第1の演算データのビット列の配列を変更する第1の配列変更処理を行い,
    上記第2のキー・データを用いて,上記第1の配列変更処理が行われた上記第1の演算データのビット列の配列をさらに変更する第2の配列変更処理を行い,キー・データを生成し,
    上記第1の秘密分散データ出力手段は,
    上記第1のキー・データを用いて上記第1の配列変更処理および上記第2の配列変更処理の少なくとも一方の処理を行うことにより,上記第1のランダム・データを生成して,生成した第1のランダム・データを第1の秘密分散データとして出力し,
    上記第3の秘密分散データ出力手段は,
    上記第2のキー・データを用いて上記少なくとも一方の処理を行うことにより,上記第2のランダム・データを生成して,生成した第2のランダム・データを第3の秘密分散データとして出力する,
    請求項1に記載の秘密分散装置。
  4. 上記第1の配列変更処理は,
    ビット・ローテート処理またはビット・シャッフル処理であり,
    上記第2の配列変更処理は,
    ビット・ローテート処理またはビット・シャッフル処理のうち,上記第1の配列変更処理で行われた処理を除く処理である,
    請求項3に記載の秘密分散装置。
  5. 請求項1に記載の秘密分散装置において生成された第1の秘密分散データ,第2の秘密分散データ,第3の秘密分散データおよび第4の秘密分散データのうち,少なくとも3つの秘密分散データを取得する秘密分散データ取得手段,
    上記秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データから上記第1の演算データを生成する第1の演算データ生成手段,
    上記第1のキー・データおよび上記第2のキー・データを取得するキー・データ取得手段,
    上記キー・データ取得手段によって取得された上記第1のキー・データおよび上記第2のキー・データを用いて,上記第1のキー・データ生成手段による上記キー・データの生成と同じ手法によって上記第1の演算データのビット列の配列を変更して上記キー・データを生成する第2のキー・データ生成手段,
    上記秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データに第1の秘密分散データまたは第3の秘密分散データのいずれか一方しか含まれていない場合には,第1の秘密分散データおよび第3の秘密分散データのうち含まれていない秘密分散データを生成し,第1の秘密分散データと上記第1のキー・データとを用いて上記第2の演算データを生成し,かつ上記第2の秘密分散データと上記第2のキー・データとを用いて上記第3の演算データを生成する第2の演算データ生成手段,ならびに
    上記第2の演算データ生成手段によって生成された上記第2の演算データと上記第2のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い上記第1のデータ列を復元し,上記第2の演算データ生成手段によって生成された上記第3の演算データと上記第2のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,上記第2のデータ列を復元する復元手段,
    を備えたデータ復元装置。
  6. 上記第1の演算データ生成手段は,
    上記秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データのうち,上記第1の秘密分散データと上記第2の秘密分散データとのXOR演算または上記第3の秘密分散データと上記第4の秘密分散データとのXOR演算を行い,上記第1の演算データを生成する,
    請求項5に記載のデータ復元装置。
  7. 上記第2の演算データ生成手段は,
    上記秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データに,上記第1の秘密分散データおよび上記第3の秘密分散データのいずれも含まれている場合には上記第1の秘密分散データと上記第1のキー・データとを用いて上記第2の演算データを生成し,かつ上記第3の秘密分散データと上記第2のキー・データとを用いて上記第3の演算データを生成し,
    上記秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データに,上記第3の秘密分散データが含まれていない場合には,第4の秘密分散データと上記第1の演算データ生成手段によって生成された第1の演算データとから第3の秘密分散データを生成し,上記第1の秘密分散データが含まれていない場合には,第2の秘密分散データと上記第1の演算データ生成手段によって生成された第1の演算データとから第1の秘密分散データを生成し,
    生成された第1の秘密分散データと上記第1のキー・データとを用いて上記第2の演算データを生成し,かつ生成された上記第3の秘密分散データと上記第2のキー・データとを用いて上記第3の演算データを生成する,
    請求項5に記載のデータ復元装置。
  8. 上記第1のキー・データと上記第2のキー・データとのXOR演算により得られるXORキー・データを用いて第1の暗号化方式により第1の演算データを暗号化することにより上記第1の演算データのビット列の配列を変更してキー・データが生成されており,
    上記第1の秘密分散データ出力手段は,
    上記第1のキー・データを用いて,上記第1の暗号化方式により上記第2の演算データを暗号化することにより上記第1のランダム・データを生成して,生成した第1のランダム・データを第1の秘密分散データとして出力し,
    上記第3の秘密分散データ出力手段は,
    上記第2のキー・データを用いて,上記第1の暗号化方式により上記第3の演算データを暗号化することにより上記第2のランダム・データを生成して,生成した第2のランダム・データを第3の秘密分散データとして出力し,
    上記第2の演算データ生成手段は,
    上記第1のランダム・データを,上記第1のキー・データを用いて上記第1の暗号化方式に対応した復号方式により復号することにより第2の演算データを生成し,
    上記第2のランダム・データを,上記第2のキー・データを用いて上記第1の暗号化方式に対応した復号方式により復号することにより第3の演算データを生成する,
    請求項7に記載のデータ復元装置。
  9. 上記第1のキー・データ生成手段において,
    上記第1のキー・データを用いて,上記第1の演算データのビット列の配列を変更する第1の配列変更処理が行なわれ,
    上記第2のキー・データを用いて,上記第1の配列変更処理が行われた上記第1の演算データのビット列の配列をさらに変更する第2の配列変更処理が行なわれてキー・データが生成されており,
    上記第1の秘密分散データ出力手段は,
    上記第1のキー・データを用いて上記第1の配列変更処理および上記第2の配列変更処理の少なくとも一方の処理を行うことにより,上記第1のランダム・データを生成して,生成した第1のランダム・データを第1の秘密分散データとして出力し,
    上記第3の秘密分散データ出力手段は,
    上記第2のキー・データを用いて上記少なくとも一方の処理を行うことにより,上記第2のランダム・データを生成して,生成した第2のランダム・データを第3の秘密分散データとして出力し,
    上記第2の演算データ生成手段は,
    上記第1のランダム・データを,上記第1のキー・データを用いて上記第1の配列変更処理および上記第2の配列変更処理の少なくとも一方の処理に対応した配列復元処理により上記第2の演算データを生成し,
    上記第2のランダム・データを,上記第2のキー・データを用いて上記第1の配列変更処理および上記第2の配列変更処理の少なくとも一方の処理に対応した配列復元処理により上記第3の演算データを生成する,
    請求項7に記載のデータ復元装置。
  10. 上記第1の配列変更処理は,
    ビット・ローテート処理またはビット・シャッフル処理であり,
    上記第2の配列変更処理は,
    ビット・ローテート処理またはビット・シャッフル処理のうち,上記第1の配列変更処理で行われた処理を除く処理である,
    請求項9に記載のデータ復元装置。
  11. 第1のXOR演算手段が,nが自然数であるnビットの連続する第1のデータ列とnが自然数であるnビットの連続する第2のデータ列とのXOR演算を行い,第1の演算データを出力し,
    第1のキー・データ生成手段が,第1のキー・データおよび第2のキー・データを用いて,上記第1のXOR演算手段から出力される第1の演算データのビット列の配列を変更して,キー・データを生成し,
    第2のXOR演算手段が,上記第1のデータ列と上記第1のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第2の演算データを出力し,
    第3のXOR演算手段が,上記第2のデータ列と上記第1のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,第3の演算データを出力し,
    第1の秘密分散データ出力手段が,上記第1のキー・データを用いて上記第2のXOR演算手段から出力される第2の演算データのビット列の配列を変更して第1のランダム・データを生成し,生成した第1のランダム・データを第1の秘密分散データとして出力し,
    第2の秘密分散データ出力手段が,上記第1の秘密分散データ出力手段から出力された第1の秘密分散データと,上記第1のXOR演算手段によって生成された第1の演算データとのXOR演算を行い,第2の秘密分散データを出力し,
    第3の秘密分散データ出力手段が,上記第2のキー・データを用いて上記第3のXOR演算手段から出力される第3の演算データのビット列の配列を変更して第2のランダム・データを生成し,生成した第2のランダム・データを第3の秘密分散データとして出力し,
    第4の秘密分散データ出力手段が,上記第3の秘密分散データ出力手段から出力された第3の秘密分散データと,上記第1のXOR演算手段によって生成された第1の演算データとのXOR演算を行い,第4の秘密分散データを出力する,
    秘密分散方法。
  12. 秘密分散データ取得手段が,請求項11に記載の秘密分散方法において生成された第1の秘密分散データ,第2の秘密分散データ,第3の秘密分散データおよび第4の秘密分散データのうち,少なくとも3つの秘密分散データを取得し,
    第1の演算データ生成手段が,上記秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データから上記第1の演算データを生成し,
    キー・データ取得手段が,上記第1のキー・データおよび上記第2のキー・データを取得し,
    第2のキー・データ生成手段が,上記キー・データ取得手段によって取得された上記第1のキー・データおよび上記第2のキー・データを用いて,上記第1のキー・データ生成手段による上記キー・データの生成と同じ手法によって上記第1の演算データのビット列の配列を変更して上記キー・データを生成し,
    第2の演算データ生成手段が,上記秘密分散データ取得手段によって取得した少なくとも3つの秘密分散データに第1の秘密分散データまたは第3の秘密分散データのいずれか一方しか含まれていない場合には,第1の秘密分散データおよび第3の秘密分散データのうち含まれていない秘密分散データを生成し,第1の秘密分散データと上記第1のキー・データとを用いて上記第2の演算データを生成し,かつ上記第2の秘密分散データと上記第2のキー・データとを用いて上記第3の演算データを生成し,
    復元手段が,上記第2の演算データ生成手段によって生成された上記第2の演算データと上記第2のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い上記第1のデータ列を復元し,上記第2の演算データ生成手段によって生成された上記第3の演算データと上記第2のキー・データ生成手段によって生成されたキー・データとのXOR演算を行い,上記第2のデータ列を復元する,
    データ復元方法。
  13. 秘密分散装置のコンピュータを制御するコンピュータが読取可能なプログラムであって,
    nが自然数であるnビットの連続する第1のデータ列とnが自然数であるnビットの連続する第2のデータ列とのXOR演算を行わせて,第1の演算データを出力させ,
    第1のキー・データおよび第2のキー・データを用いて,出力させられた第1の演算データのビット列の配列を変更して,キー・データを生成させ,
    上記第1のデータ列と生成されたキー・データとのXOR演算を行わせて,第2の演算データを出力させ,
    上記第2のデータ列と生成されたキー・データとのXOR演算を行わせて,第3の演算データを出力させ,
    上記第1のキー・データを用いて,出力させられた第2の演算データのビット列の配列を変更して第1のランダム・データを生成させ,生成した第1のランダム・データを第1の秘密分散データとして出力させ,
    出力させられた第1の秘密分散データと,生成された第1の演算データとのXOR演算を行わせ,第2の秘密分散データを出力させ,
    上記第2のキー・データを用いて,出力させられた第3の演算データのビット列の配列を変更して第2のランダム・データを生成させ,生成した第2のランダム・データを第3の秘密分散データとして出力させ,
    出力させられた第3の秘密分散データと,生成された第1の演算データS0とのXOR演算を行わせ,第4の秘密分散データを出力させるように秘密分散装置のコンピュータを制御するコンピュータが読取可能なプログラム。
  14. データ復元装置のコンピュータを制御するコンピュータが読取可能なプログラムであって,
    請求項13に記載のプログラムにおいて生成された第1の秘密分散データ,第2の秘密分散データ,第3の秘密分散データおよび第4の秘密分散データのうち,少なくとも3つの秘密分散データを取得させ,
    取得した少なくとも3つの秘密分散データから上記第1の演算データを生成させ,
    上記第1のキー・データおよび上記第2のキー・データを取得させ,
    取得された上記第1のキー・データおよび上記第2のキー・データを用いて,上記キー・データの生成と同じ手法によって上記第1の演算データのビット列の配列を変更して上記キー・データを生成させ,
    取得した少なくとも3つの秘密分散データから第1の秘密分散データまたは第3の秘密分散データのいずれか一方しか含まれていない場合には,第1の秘密分散データおよび第3の秘密分散データのうち含まれていない秘密分散データを生成させ,第1の秘密分散データと上記第1のキー・データとを用いて上記第2の演算データを生成し,かつ上記第2の秘密分散データと上記第2のキー・データとを用いて上記第3の演算データを生成させ,
    生成された上記第2の演算データと生成されたキー・データとのXOR演算を行い上記第1のデータ列を復元させ,生成された上記第3の演算データと生成されたキー・データとのXOR演算を行い,上記第2のデータ列を復元させる,
    データ復元装置のコンピュータを制御するコンピュータが読取可能なプログラム。
  15. 請求項13および請求項14のうち,少なくとも一方のプログラムを格納した記録媒体。
JP2015163490A 2015-08-21 2015-08-21 秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム Active JP6373237B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015163490A JP6373237B2 (ja) 2015-08-21 2015-08-21 秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015163490A JP6373237B2 (ja) 2015-08-21 2015-08-21 秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム

Publications (2)

Publication Number Publication Date
JP2017040851A true JP2017040851A (ja) 2017-02-23
JP6373237B2 JP6373237B2 (ja) 2018-08-15

Family

ID=58206369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015163490A Active JP6373237B2 (ja) 2015-08-21 2015-08-21 秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム

Country Status (1)

Country Link
JP (1) JP6373237B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037093A (ja) * 2007-08-03 2009-02-19 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP2009288616A (ja) * 2008-05-30 2009-12-10 Hitachi Ltd 秘密分散方法、プログラム、及び装置
WO2012133952A1 (en) * 2011-03-31 2012-10-04 Panasonic Corporation Secret sharing apparatus, sharing apparatus and secret sharing method
WO2013080290A1 (ja) * 2011-11-28 2013-06-06 国立大学法人 横浜国立大学 データ分割装置およびデータ分割プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037093A (ja) * 2007-08-03 2009-02-19 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP2009288616A (ja) * 2008-05-30 2009-12-10 Hitachi Ltd 秘密分散方法、プログラム、及び装置
WO2012133952A1 (en) * 2011-03-31 2012-10-04 Panasonic Corporation Secret sharing apparatus, sharing apparatus and secret sharing method
WO2013080290A1 (ja) * 2011-11-28 2013-06-06 国立大学法人 横浜国立大学 データ分割装置およびデータ分割プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高荒 亮 ほか: "XORを用いた高速な(k,L,n)ランプ型秘密分散法に関する研究", コンピュータセキュリティシンポジウム2009 論文集 [第二分冊], vol. Vol.2009 No.11, JPN6011067400, 19 October 2009 (2009-10-19), JP, pages 949 - 954 *

Also Published As

Publication number Publication date
JP6373237B2 (ja) 2018-08-15

Similar Documents

Publication Publication Date Title
JP6934963B2 (ja) データを暗号化する方法およびシステム
JP6035459B2 (ja) 暗号化装置、復号化装置、及びプログラム
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
RU2666281C2 (ru) Электронное устройство блочного шифрования, подходящее для обфускации
JPWO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
RU2017124139A (ru) Система шифрования с открытым ключом
US20200177380A1 (en) Seed key expansion method and its uses
KR101727312B1 (ko) 순서 보존 암호화 및 복호화 장치와 그 방법
JP5732429B2 (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
US8804953B2 (en) Extensive ciphertext feedback
JP5689826B2 (ja) 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム
JP2006311383A (ja) データ管理方法、データ管理システムおよびデータ管理装置
JP2008035305A (ja) 暗号化方法及びデータ秘匿方法
JP5992651B2 (ja) 暗号化方法、プログラム、および、システム
Aggarwal Comparison of RC6, modified RC6 & enhancement of RC6
JP6266130B2 (ja) 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
JP6373237B2 (ja) 秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム
KR101133988B1 (ko) 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템
JP2009288616A (ja) 秘密分散方法、プログラム、及び装置
KR20230095750A (ko) 일방향 함수를 이용한 암호 운영모드 기반의 화이트박스 암호화 방법 및 장치
JP4287397B2 (ja) 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム
JP4194481B2 (ja) 秘密情報保管処理方法及び秘密情報保管装置、並びに秘密情報復元処理方法及び秘密情報復元装置
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180626

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180717

R150 Certificate of patent or registration of utility model

Ref document number: 6373237

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250