(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-07
(45)【発行日】2025-03-17
(54)【発明の名称】情報処理装置、情報処理方法及びストレージシステム。
(51)【国際特許分類】
G09C 1/00 20060101AFI20250310BHJP
【FI】
G09C1/00 650Z
(21)【出願番号】P 2021114379
(22)【出願日】2021-07-09
【審査請求日】2024-03-13
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】大場 義洋
【審査官】平井 誠
(56)【参考文献】
【文献】特開2003-348065(JP,A)
【文献】国際公開第2016/130030(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00- 5/00
H04L 9/00-40
(57)【特許請求の範囲】
【請求項1】
k個の乱数から暗号鍵とk個の鍵シンボルを生成する鍵生成部と、
前記暗号鍵を用いてk個の情報シンボルを暗号化してk個の暗号シンボルを出力する暗号化部と、
前記k個の暗号シンボル又は前記k個の鍵シンボルのいずれかをk個のメッセージシンボルとして出力し、前記k個のメッセージシンボルが前記k個の暗号シンボル又は前記k個の鍵シンボルのいずれかであるかを示すフラグを出力する選択部と、
前記k個のメッセージシンボルを最大距離分離符号により符号化してn個の符号シンボルを出力する符号化部と、
前記n個の符号シンボルと前記フラグからn個の符号ブロックを出力する出力部と、
を具備し、
kは1以上の正の整数であり、nはkより大きい正の整数である、情報処理装置。
【請求項2】
前記符号化部は前記最大距離分離符号として、リードソロモン符号を用いる、請求項1に記載の情報処理装置。
【請求項3】
請求項1又は請求項2に記載の前記情報処理装置に接続されるストレージをさらに具備し、
前記ストレージは前記k個の情報シンボルを含む多数の情報シンボルを記憶し、
前記情報処理装置は前記ストレージから前記k個の情報シンボルを読み出し、前記n個の符号ブロックを前記ストレージに書き込む、ストレージシステム。
【請求項4】
前記情報処理装置は前記ストレージに外付けされている、あるいは前記ストレージに内蔵される、請求項3記載のストレージシステム。
【請求項5】
請求項1又は請求項2に記載の前記情報処理装置に接続される第1ストレージと第2ストレージをさらに具備し、
前記第1ストレージ又は前記第2ストレージは前記k個の情報シンボルを含む多数の情報シンボルを記憶し、
前記情報処理装置は前記第1ストレージ又は前記第2ストレージから前記k個の情報シンボルを読み出し、前記n個の符号ブロックを前記第1ストレージ又は前記第2ストレージに書き込み、
前記情報処理装置は前記第1ストレージと前記第2ストレージに共通に外付けされているストレージシステム。
【請求項6】
ストレージと、
前記ストレージからデータを読み出し、前記ストレージにデータを書き込むクライアントと、
前記ストレージをネットワークを介して前記クライアントに接続するインターフェース回路と、を具備するストレージシステムであって、
前記クライアント又は前記インターフェース回路は請求項1又は請求項2に記載の情報処理装置を含み、
前記ストレージは前記k個の情報シンボルを含む多数の情報シンボルを記憶し、
前記情報処理装置は前記ストレージから前記k個の情報シンボルを読み出し、前記n個の符号ブロックを前記ストレージに書き込む、ストレージシステム。
【請求項7】
情報シンボル又は鍵シンボルを処理して符号ブロックを生成する情報処理装置が実行する情報処理方法であって、
k個の乱数から暗号鍵とk個の鍵シンボルを生成するステップと、
前記暗号鍵を用いてk個の情報シンボルを暗号化してk個の暗号シンボルを出力するステップと、
前記k個の暗号シンボル又は前記k個の鍵シンボルのいずれかをk個のメッセージシンボルとして出力し、前記k個のメッセージシンボルが前記k個の暗号シンボル又は前記k個の鍵シンボルのいずれかであるかを示すフラグを出力するステップと、
前記k個のメッセージシンボルを最大距離分離符号により符号化してn個の符号シンボルを出力するステップと、
前記n個の符号シンボルと前記フラグからn個の符号ブロックを出力するステップと、
を具備し、
kは1以上の正の整数であり、nはkより大きい正の整数である、情報処理方法。
【請求項8】
鍵シンボル又は暗号シンボルを符号化したインデックス付き部分符号語と、前記インデックス付き部分符号語が鍵シンボル又は暗号シンボルを符号化したものであるかを示すフラグとをそれぞれ含む少なくともk個の符号ブロックを受信し、前記インデックス付き部分符号語と前記フラグを出力する入力部と、
最大距離分離符号により前記インデックス付き部分符号語からk個のメッセージシンボルを復号するシンボル復号部と、
前記k個のメッセージシンボルを前記フラグの値に応じてk個の鍵シンボルとして出力する、又はk個の暗号シンボルとして出力する選択部と、
前記選択部から出力された前記k個の鍵シンボルから暗号鍵を演算する暗号鍵演算部と、
前記選択部から出力された前記k個の暗号シンボルと前記暗号鍵からk個の情報シンボルを復号する秘密情報復号部と、
を具備し、
kは1以上の正の整数である、情報処理装置。
【請求項9】
前記シンボル復号部は前記最大距離分離符号として、リードソロモン符号を用いる、請求項8に記載の情報処理装置。
【請求項10】
請求項8又は請求項9に記載の前記情報処理装置に接続されるストレージをさらに具備し、
前記ストレージは前記少なくともk個の符号ブロックを記憶し、
前記情報処理装置は前記ストレージから前記少なくともk個の符号ブロックを読み出し、前記k個の情報シンボルを前記ストレージに書き込む、ストレージシステム。
【請求項11】
前記情報処理装置は前記ストレージに外付けされている、あるいは前記ストレージに内蔵される、請求項10記載のストレージシステム。
【請求項12】
請求項8又は請求項9に記載の前記情報処理装置に接続される第1ストレージと第2ストレージをさらに具備し、
前記第1ストレージ又は前記第2ストレージは前記少なくともk個の符号ブロックを記憶し、
前記情報処理装置は前記第1ストレージ又は前記第2ストレージから前記少なくともk個の符号ブロックを読み出し、前記k個の情報シンボルを前記第1ストレージ又は前記第2ストレージに書き込み、
前記情報処理装置は前記第1ストレージと前記第2ストレージに共通に外付けされているストレージシステム。
【請求項13】
ストレージと、
前記ストレージからデータを読み出し、前記ストレージにデータを書き込むクライアントと、
前記ストレージをネットワークを介して前記クライアントに接続するインターフェース回路と、を具備するストレージシステムであって、
前記クライアント又は前記インターフェース回路は請求項
8又は請求項
9に記載の情報処理装置を含み、
前記ストレージは前記少なくともk個の符号ブロックを記憶し、
前記情報処理装置は前記ストレージから前記少なくともk個の符号ブロックを読み出し、前記k個の情報シンボルを前記ストレージに書き込む、ストレージシステム。
【請求項14】
符号ブロックを処理して情報シンボルを生成する情報処理装置が実行する情報処理方法であって、
鍵シンボル又は暗号シンボルを符号化したインデックス付き部分符号語と、前記インデックス付き部分符号語が鍵シンボル又は暗号シンボルを符号化したものであるかを示すフラグとをそれぞれ含む少なくともk個の符号ブロックを受信し、前記インデックス付き部分符号語と前記フラグを出力するステップと、
最大距離分離符号により前記インデックス付き部分符号語からk個のメッセージシンボルを復号するステップと、
前記k個のメッセージシンボルを前記フラグの値に応じてk個の鍵シンボルとして出力する、又はk個の暗号シンボルとして出力するステップと、
前記k個の鍵シンボルとして出力された前記k個のメッセージシンボルから暗号鍵を復号するステップと、
前記暗号鍵と、前記k個の暗号シンボルとして出力された前記k個のメッセージシンボルからk個の情報シンボルを復号するステップと、
を具備し、
kは1以上の正の整数である、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、秘密分散を実現する情報処理装置に関する。
【背景技術】
【0002】
秘密保持方法の例として秘密分散法がある。秘密分散法では、秘密情報が複数の保持者により分散して保持される。秘密情報の所有者は、秘密情報を符号化した複数の異なるブロックをそれぞれ異なる保持者に配布する。ブロックは持ち分と称される。各持ち分は、秘密情報を平文として含まない。秘密情報を復元しようとする者は利用者と称される。利用者は、持ち分の全体集合の中から或る個数以上の持ち分を受信した場合、秘密情報を復元できる。すなわち、持ち分の集合の中から一部の持ち分が消失したとしても、残りの持ち分から秘密情報の復元が可能である。一方、利用者は、或る個数未満の持ち分を受信した場合、秘密情報を復元できない。秘密分散法は、冗長性と秘匿性の両立が可能な秘密保持方法である。
【0003】
秘密分散法の例は、Shamirの閾値法、Krawzcyk法、SHSS(Super High-speed Secret Sharing)がある。
【0004】
Shamirの閾値法では、複数の次元の多項式を用いて保持者の持ち分から或る個数の連立方程式を作り、連立方程式をラグランジュ補完法により解くことにより、秘密情報が得られる。Shamirの閾値法は情報理論的安全性を有しており、セキュリティ的に強固な方式であるが、持ち分の消失の有無に関わらず復号に要する計算量が大きいという欠点がある。
【0005】
Krawzcyk法、および、SHSSは共通鍵で暗号化された秘密情報の秘密分散と共通鍵の秘密分散の2種類の秘密分散により構成されるハイブリッド型秘密分散法であり、計算量的安全性を有する。Krawzcyk法では、共通鍵で暗号化された秘密情報の秘密分散に最大距離分符号(Maximum Distance Separable符号:以下、MDS符号と称される)を用い、共通鍵の秘密分散にはShamirの閾値法を用いる。SHSSでは、共通鍵で暗号化された秘密情報の秘密分散にリードソロモン符号(Reed Solomon符号:以下、RS符号と称される)を用い、共通鍵の秘密分散にはRS符号を改変した消失訂正符号を用いる。このように、Krawzcyk法とSHSSでは、持ち分の消失がない場合にShamirの閾値法より復号の計算量が大幅に小さいが、暗号鍵の秘密分散と暗号化された秘密情報の秘密分散に対して異なる符号法が必要になり、そのため構成が複雑になる。
【先行技術文献】
【特許文献】
【0006】
【文献】米国特許第10887099号明細書
【文献】米国特許第10360392号明細書
【文献】特開2007-73004号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、簡単な構成で秘密分散を実現できる情報処理装置を提供することである。
【課題を解決するための手段】
【0008】
実施形態によれば、情報処理装置は、k個の乱数から暗号鍵とk個の鍵シンボルを生成する鍵生成部と、前記暗号鍵を用いてk個の情報シンボルを暗号化してk個の暗号シンボルを出力する暗号化部と、前記k個の暗号シンボル又は前記k個の鍵シンボルのいずれかをk個のメッセージシンボルとして出力し、前記k個のメッセージシンボルが前記k個の暗号シンボル又は前記k個の鍵シンボルのいずれかであるかを示すフラグを出力する選択部と、前記k個のメッセージシンボルを最大距離分離符号により符号化してn個の符号シンボルを出力する符号化部と、前記n個の符号シンボルと前記フラグからn個の符号ブロックを出力する出力部と、を具備する。kは1以上の正の整数であり、nはkより大きい正の整数である。
【0009】
他の実施形態によれば、情報処理装置は、鍵シンボル又は暗号シンボルを符号化したインデックス付き部分符号語と、前記インデックス付き部分符号語が鍵シンボル又は暗号シンボルを符号化したものであるかを示すフラグとをそれぞれ含む少なくともk個の符号ブロックを受信し、前記インデックス付き部分符号語と前記フラグを出力する入力部と、最大距離分離符号により前記インデックス付き部分符号語からk個のメッセージシンボルを復号するシンボル復号部と、前記k個のメッセージシンボルを前記フラグの値に応じてk個の鍵シンボルとして出力する、又はk個の暗号シンボルとして出力する選択部と、前記選択部から出力された前記k個の鍵シンボルから暗号鍵を復号する暗号鍵復号部と、前記選択部から出力された前記k個の暗号シンボルと前記暗号鍵からk個の情報シンボルを復号する秘密情報復号部と、を具備する。kは1以上の正の整数である。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態における情報処理装置としての秘密分散符号化装置の構成例を示すブロック図。
【
図2】第1実施形態における秘密分散符号化の一例を示すフローチャート。
【
図3】第1実施形態における情報処理装置としての秘密分散復号装置の構成例を示すブロック図。
【
図4】第1実施形態における秘密分散復号処理の一例を示すフローチャート。
【
図5】第1実施形態における情報処理装置としての秘密分散符号化装置と秘密分散復号装置が適用されるコンピュータのハードウェア構成例を示す図。
【
図6】第1実施形態における秘密分散が適用されるユースケースの一例を示す図。
【
図7】第2実施形態における情報処理装置としての秘密分散符号化装置と秘密分散復号装置が適用されるネットワークストレージ装置のハードウェア構成の一例を示す図。
【
図8】第2実施形態における情報処理装置としての秘密分散符号化装置と秘密分散復号装置が適用されるネットワークストレージ装置のハードウェア構成の他の例を示す図。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、形状、配置、材質等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各要素のサイズ、厚み、平面寸法又は形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、互いの寸法の関係や比率が異なる要素が含まれることもある。複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接接続のみならず、他の要素を介して接続されることも意味する。
【0012】
以下、図面を参照しながら本実施の形態について詳細に説明する。
【0013】
(第1実施形態)
図1は、第1実施形態における情報処理装置の一例としての秘密分散符号化装置10の構成例を示すブロック図である。
秘密分散符号化装置10は、秘密情報22を記憶するストレージ20に接続される。ストレージ20の例は不揮発性メモリを備えるSSD(Solid State Drive)である。ストレージ20は、多数の情報シンボルを記憶し、多数の情報シンボルの中のk個の情報シンボルを秘密情報22として記憶する。ストレージ20は、多数の秘密情報22を記憶する。
【0014】
秘密分散符号化装置10は、秘密情報22を複数の異なる保持者(エンティティとも称される)に分散して渡すことにより秘密分散を実現する。
【0015】
秘密分散符号化装置10は、秘密情報暗号化部30、乱数発生器32、暗号鍵演算部34、入力選択部36、MDS符号-符号化部38、及び分散符号出力部40で構成される。
【0016】
ストレージ20から出力された秘密情報22としてのk個の情報シンボルが秘密情報暗号化部30に入力される。kは1以上の正整数である。k個の情報シンボルは秘密分散符号化の単位である。
【0017】
乱数発生器32から出力されたk個の乱数が暗号鍵演算部34に入力される。暗号鍵演算部34は、k個の乱数の線形和を計算して、1個の暗号鍵sとk個の鍵シンボルを出力する。暗号鍵sは秘密情報暗号化部30に入力され、k個の鍵シンボルは入力選択部36に入力される。秘密情報暗号化部30から出力されたk個の暗号シンボルも入力選択部36に入力される。
【0018】
入力選択部36は、k個のメッセージシンボルと内容種別フラグfを出力する。k個のメッセージシンボルはMDS符号-符号化部38に入力される。内容種別フラグfは分散符号出力部40に入力される。MDS符号-符号化部38はk個のメッセージシンボルをMDS符号により符号化して符号語を生成する。符号語はk個のメッセージシンボルがMDS符号により符号化されたn個の符号シンボル(c[1],…,c[n])の並びである。nはk以上の正整数である。符号語は分散符号出力部40に入力される。k個のメッセージシンボルからn個の符号シンボルを生成する方法は後述する。
【0019】
MDS符号は、符号長n(シンボル)、情報記号数k(シンボル)、最小ハミング距離dの3つのパラメータで特徴づけられる。MDS符号を消失訂正に用いる場合、受信シンボルは誤りを含まないという仮定の下で(n-k)(=d-1)シンボルの消失訂正能力を有する。MDS符号-符号化部38はMDS符号としてRS符号を使用してもよい。
【0020】
分散符号出力部40は内容種別フラグfと符号語内インデックスiと符号シンボル(c[1],…,c[n])の組からなるn個の符号ブロック(f,1,c[1]),…,(f,n,c[n])を出力する。符号語内インデックスiは符号語内の符号シンボルc[i]のインデックスであり、1~nの正整数である。n個の符号ブロックはn人の保持者により保持される。
【0021】
秘密情報暗号化部30、乱数発生器32、暗号鍵演算部34、入力選択部36、MDS符号-符号化部38、及び分散符号出力部40は、電気回路などといったハードウェアによって実現されるものであってもよいし、プロセッサ(図示せず)がプログラムを実行することによってソフトウェアとして実現されるものであってもよい。
【0022】
制御部42がストレージ20と秘密分散符号化装置10に接続される。制御部42はストレージ20からの秘密情報22の読み出しと秘密分散符号化装置10の符号化動作を制御する。
【0023】
図2は、第1実施形態における秘密分散符号化の一例を示すフローチャートである。
【0024】
S102で、制御部42は乱数発生器32にk個の乱数を発生させる。k個の乱数は暗号鍵演算部34に入力される。制御部42が乱数発生器32にk個の乱数を発生させるのは、暗号鍵を設定する又は再設定(更新)する場合である。暗号鍵演算部34はメモリを内蔵しており、生成した暗号鍵を保存する。保存した暗号鍵を使う場合は、制御部42が乱数発生器32にk個の乱数を発生させる必要がない。
【0025】
S104で、制御部42はストレージ20から秘密情報としてのk個の情報シンボルを読み出る。k個の情報シンボルは秘密情報暗号化部30に入力される。k個の情報シンボルは符号化の単位である。
【0026】
制御部42は、S102の処理とS104の処理の実行順番を逆にしてもよいし、2つの処理を同時に実行させてもよい。
【0027】
暗号鍵演算部34にk個の乱数が入力されると、S106で、暗号鍵演算部34は、k個の乱数から1個の暗号鍵sとk個の鍵シンボルを生成し、1個の暗号鍵sを秘密情報暗号化部30に出力し、k個の鍵シンボルを入力選択部36に出力する。暗号鍵sとk個の鍵シンボルa1,a2,…,akの生成方法はいくつか存在する。例として、暗号鍵演算部34がk個の乱数から1個の暗号鍵sとk個の鍵シンボルa1,a2,…,akを生成する2つの方法を説明する。
【0028】
第1の方法では、暗号鍵sはk個の乱数r1,r2,…,rkの和である。
【0029】
【0030】
k個の鍵シンボルa1,a2,…,akは夫々k個の乱数r1,r2,…,rkである。
【0031】
ai=ri 式2
iは1~kの正整数である。
【0032】
第2の方法では、k個の乱数r1,r2,…,rkの1つ
【0033】
【0034】
s=rj 式4
鍵シンボルは、暗号鍵sから他の乱数を減算したものである。
【0035】
【0036】
第1の方法と第2の方法のいずれにおいても、暗号鍵s及びk個の鍵シンボルa1,a2,…,akのそれぞれはk個の乱数r1,r2,…,rkの線形和で表わされる。
【0037】
図2のフローチャートの説明に戻り、秘密情報暗号化部30にk個の情報シンボルが入力されると、S108で、秘密情報暗号化部30は、暗号鍵sを共通鍵とする共通鍵暗号を用いてk個の情報シンボルを暗号化してk個の暗号シンボルを生成し、k個の暗号シンボルを入力選択部36に出力する。共通鍵暗号として例えばAES(Advanced Encryption Standard)を用いてもよい。
【0038】
S106の処理とS108の処理の実行順番は逆になることもある。
【0039】
S112で、制御部42は、入力選択部36にk個の鍵シンボル、又はk個の暗号シンボルのいずれが入力されたかを判定させる。
【0040】
入力選択部36がk個の暗号シンボルが入力されたと判定した場合、S114で、入力選択部36はk個の暗号シンボルをk個のメッセージシンボルとしてMDS符号‐符号化部38に出力し、値を0に設定した内容種別フラグfを分散符号出力部40に出力する。内容種別フラグfはk個のメッセージシンボルが鍵シンボル又は暗号シンボルであるかを示す。値が1の場合、内容種別フラグfはk個のメッセージシンボルが鍵シンボルであることを示す。値が0の場合、内容種別フラグfはk個のメッセージシンボルが暗号シンボルであることを示す。
【0041】
入力選択部36がk個の鍵シンボルが入力されたと判定した場合、S116で、入力選択部36はk個の鍵シンボルをk個のメッセージシンボルとしてMDS符号‐符号化部38に出力し、値を1に設定した内容種別フラグfを分散符号出力部40に出力する。
【0042】
MDS符号-符号化部38にk個のメッセージシンボルが入力されると、S118で、MDS符号-符号化部38は、n個のメッセージシンボルをMDS符号により符号化して符号語を生成し、符号語(c[1],…,c[n])を分散符号出力部40に出力する。
【0043】
S124で、分散符号出力部40は、n個の符号ブロック(f,1,c[1]),…,(f,n,c[n])を生成する。n個の符号ブロック(f,1,c[1]),…,(f,n,c[n])はn人の保持者に夫々渡され、n人の保持者により夫々保持される。例えば、n個の符号ブロック(f,1,c[1]),…,(f,n,c[n])はn人の保持者のストレージに夫々格納される。
【0044】
秘密分散符号化装置10では、秘密情報の暗号シンボルと鍵シンボルのいずれか一方が入力選択部36で選択され、MDS符号-符号化部38に別々に入力され、別々に符号化され、秘密情報の秘密分散と暗号鍵の秘密分散の2種類の秘密分散を含むハイブリッド型の秘密分散が実現される。秘密情報の暗号シンボルと鍵シンボルは同じMDS符号により符号化されるので、簡単な構成でハイブリッド型の秘密分散が実現される。秘密分散符号化装置10から出力される符号ブロックは、符号語が鍵シンボルの符号であるのか暗号シンボルの符号であるかを示す内容種別フラグを含む。
【0045】
図3は、第1実施形態における情報処理装置としての秘密分散復号装置50の構成例を示すブロック図である。秘密分散復号装置50は、n人の保持者が夫々保持しているn個の符号ブロックの中のj個(k≦j≦n)の符号ブロック、すなわち少なくともk個の符号ブロックを入力してk個の情報シンボルを復元する。
【0046】
秘密分散復号装置50は、符号ブロック入力部70、MDS符号-復号部72、出力選択部74、暗号鍵演算部76、及び秘密情報復号部78で構成される。
【0047】
符号ブロックが符号ブロック入力部70に入力される。例えば、n人の保持者のストレージからj個の符号ブロックが読み出され、符号ブロック入力部70に入力される。j個の符号ブロックは内容種別フラグfと符号語内インデックスi1,…,ijと符号シンボル(c[i1],…,c[ij])の組からなる。符号ブロック入力部70はj個の符号ブロックを内容種別フラグfとインデックス付き部分符号語(i1,c[i1]),…(ij,c[ij])に分離し、内容種別フラグfを出力選択部74に出力し、インデックス付き部分符号語(i1,c[i1]),…(ij,c[ij])をMDS符号-復号部72に出力する。符号ブロック数をjとすると、インデックス付き部分符号語はj個の符号語内インデックスと符号シンボルの並び(i1,c[i1]),…(ij,c[ij])で表される。
【0048】
MDS符号-復号部72は少なくともk個のインデックス付き部分符号語(i1,c[i1]),…(ij,c[ij])からMDS符号によりk個のメッセージシンボルを復号する。k個のメッセージシンボルは出力選択部74に入力される。符号化装置10は暗号シンボルを符号化して符号化シンボルを作成する、又は鍵シンボルを符号化して符号化シンボルを作成する。符号化シンボルが暗号シンボルに基づくのか、鍵シンボルに基づくのかは内容種別フラグfの値が表している。そのため、出力選択部74は、内容種別フラグfの値に基づいて、k個のメッセージシンボルをk個の鍵シンボルとして暗号鍵演算部76に出力、又はk個の暗号シンボルとして秘密情報復号部78に出力する。
【0049】
暗号鍵演算部76はk個の鍵シンボルから暗号鍵sを生成する。
【0050】
秘密情報復号部78は暗号鍵sを用いてk個の暗号シンボルからk個の情報シンボルを復号する。k個の情報シンボルは秘密情報62としてストレージ60に格納される。
【0051】
符号ブロック入力部70、MDS符号-復号部72、出力選択部74、暗号鍵演算部76、及び秘密情報復号部78は、電気回路などといったハードウェアによって実現されるものであってもよいし、プロセッサ(図示せず)がプログラムを実行することによってソフトウェアとして実現されるものであってもよい。
【0052】
制御部82がストレージ60と秘密分散復号装置50に接続される。制御部82はストレージ60への秘密情報の書き込みと秘密分散復号装置50の復号動作を制御する。
【0053】
図4は、第1実施形態における秘密分散復号処理の一例を示すフローチャートである。
【0054】
S202で、制御部82は、符号ブロック入力部70に少なくともk個の符号ブロック(f,i1,c[i1]),…(f,ij,c[ij])を入力させる。
【0055】
S204で、符号ブロック入力部70は、k個の符号ブロック(f,i1,c[i1]),…(f,ij,c[ij])からk個のインデックス付き部分符号語(i1,c[i1]),…(ij,c[ij])と内容種別フラグfを抽出し、k個のインデックス付き部分符号語(i1,c[i1]),…(ij,c[ij])をMDS符号-復号部72に出力し、内容種別フラグfを出力選択部74に出力する。
【0056】
MDS符号-復号部72にj個のインデックス付き部分符号語(i1,c[i1]),…(ij,c[ij])が入力されると、S206で、MDS符号-復号部72は、MDS符号によりインデックス付き部分符号語(i1,c[i1]),…(ij,c[ij])からk個のメッセージシンボルを復号し、k個のメッセージシンボルを出力選択部74へ出力する。MDS符号-復号部72はMDS符号としてRS符号を使用してもよい。
【0057】
出力選択部74にフラグfとk個のメッセージシンボルが入力されると、S208で、出力選択部74は内容種別フラグfの値が“1”であるか“0”であるかを判定する。
【0058】
出力選択部74が内容種別フラグfの値が“1”であると判定した場合、S212で、出力選択部74は、k個のメッセージシンボルをk個の鍵シンボルとして暗号鍵演算部76に出力する。
【0059】
暗号鍵演算部76にk個の鍵シンボルが入力されると、S214で、暗号鍵演算部76はk個の鍵シンボルa1,a2,…,akから暗号鍵sを生成する。
【0060】
【0061】
出力選択部74が内容種別フラグfの値が“0”であると判定した場合、S216で、出力選択部74は、k個のメッセージシンボルをk個の暗号シンボルとして秘密情報復号部78に出力する。
【0062】
秘密情報復号部78にk個の暗号シンボルと暗号鍵sが入力されると、S218で、秘密情報復号部78は、暗号鍵sを共通鍵とする共通鍵暗号を用いてk個の暗号シンボルからk個の情報シンボルを復号する。
【0063】
S222で、制御部82は、k個の情報シンボルを秘密情報62としてストレージ60に格納する。
【0064】
次に、MDS符号-符号化部38とMDS符号-復号部72が使用するMDS符号の一例としてのRS符号を説明する。RS符号は、符号長n(シンボル)、情報記号数k(シンボル)、最小ハミング距離dの3つのパラメータで特徴づけられるMDS符号の一種である。RS符号は、GF(2w)上で定義される。wはシンボルのビット長である。いま、消失シンボル数をL(L≦n-k)、メッセージをu(k個のメッセージシンボル)、uの符号語をv(n個の符号シンボル)とし、vのうち受信した符号シンボルのみで構成される(j=n-L)次元ベクトルの部分符号語(j個の符号ブロックに含まれるj個の符号シンボル)をv´とする。L≦n-kのとき、RS符号はvからv´への写像が全単射となる性質を有しており、v´の逆元としてuを復号できる。RS符号の符号化および復号は、生成行列G(k×n行列)行列と、GからL個の消失シンボルに対応する列を除去した部分生成行列G´(k×(n-L))行列)を用いて式7、式8でそれぞれ表せる。
【0065】
<符号化>
v=uG 式7
<復号>
u=v´G´-1 式8
式7からk個のメッセージシンボルからn個の符号語が生成されることが分かる。式8からj個の符号語からk個のメッセージシンボルが生成されることが分かる。Gに課される条件は、Gの任意の部分行列G´に逆行列が存在することである。なお、行列G´は、インデックス付き部分符号語に含まれる符号語内インデックスの集合と生成行列Gから一意に生成可能である。例えば、n=8,k=j=5のとき、符号語内インデックスの集合が{1,2,3,6,7}のとき、G´はGの4、5、8列目を除去した行列となる。
【0066】
秘密分散復号装置50では、符号ブロックから抽出されたインデックス付き部分符号語がMDS符号によりメッセージシンボルに復号される。インデックス付き部分符号語が鍵シンボルの符号であるか暗号シンボルの符号であるかを示す内容種別フラグfの値に応じてメッセージシンボルが暗号鍵復号部又は秘密情報復号部78に供給される。これにより、秘密分散復号装置50は、符号ブロックから暗号鍵sを復号し、暗号鍵sにより暗号シンボルを情報シンボルに復号することができる。
【0067】
図5は、本実施形態における情報処理装置としての秘密分散符号化装置10と秘密分散復号装置50が適用されるコンピュータのハードウェア構成例を示す図である。コンピュータ102は、ストレージ104a、104b、104c、106、非ストレージデバイス108a、104b、CPU118、及びメインメモリ122を含む。
図5は、秘密分散符号化装置10と秘密分散復号装置50がストレージ104a、104b、104c、106に付随する形でコンピュータ102に取り付けられている例を示す。
【0068】
秘密分散符号化装置10aと秘密分散復号装置50aはストレージ104aに対して外付けされている。
【0069】
秘密分散符号化装置10bが複数、ここでは2つのストレージ104b、104cに対して外付けされている。秘密分散復号装置50bが複数、ここでは2つのストレージ104b、104cに対して外付けされている。
図5は、例えばRAIDコントローラのような部分に秘密分散符号化装置10bと秘密分散復号装置50bの機能が搭載されている場合を想定している。あるいは、
図5は、PCI Express
TMスイッチなどのブリッジチップにストレージ104b、104cのストレージプロトコルを処理する機能とともに秘密分散符号化装置10bと秘密分散復号装置50bの機能が搭載されている場合も想定している。
【0070】
秘密分散符号化装置10dと秘密分散復号装置50dはストレージ106の内部に統合されている。
【0071】
秘密分散符号化装置10a、10b、10dは
図1に示した秘密分散符号化装置10と対応する。秘密分散復号装置50a、50b、50dは
図3に示した秘密分散復号装置50と対応する。
【0072】
ストレージ104aは秘密情報112aと符号ブロック114aを記憶する。ストレージ104bは秘密情報112bと符号ブロック114bを記憶する。ストレージ104cは秘密情報112cと符号ブロック114cを記憶する。ストレージ106は秘密情報112dと符号ブロック114dを記憶する。秘密情報112a、112b、112c、112dは
図1に示した秘密情報22及び
図3に示した秘密情報62に対応する。符号ブロック114a、114b、114c、114dは
図1に示した符号ブロック及び
図3に示した符号ブロックに対応する。
【0073】
秘密分散符号化装置10aはストレージ104aから秘密情報112aを読み出し、秘密情報112aを符号化して符号ブロック114aを生成する。秘密分散符号化装置10aは符号ブロック114aをストレージ104aに書き込む。秘密分散復号装置50aはストレージ104aから符号ブロック114aを読み出し、符号ブロック114aから秘密情報112aを復号する。秘密分散復号装置50aは秘密情報112aをストレージ104aに書き込む。
【0074】
秘密分散符号化装置10bはストレージ104bから秘密情報112bを読み出し、秘密情報112bを符号化して符号ブロック114bを生成する。秘密分散符号化装置10bは符号ブロック11bをストレージ104bに書き込む。秘密分散符号化装置10bはストレージ104cから秘密情報112cを読み出し、秘密情報112cを符号化して符号ブロック114cを生成する。秘密分散符号化装置10bは符号ブロック114cをストレージ104cに書き込む。
【0075】
秘密分散復号装置50bはストレージ104bから符号ブロック114bを読み出し、符号ブロック114bから秘密情報112bを復号する。秘密分散復号装置50bは秘密情報112bをストレージ104bに書き込む。秘密分散復号装置50bはストレージ104cから符号ブロック114cを読み出し、符号ブロック114cから秘密情報112cを復号する。秘密分散復号装置50bは秘密情報112cをストレージ104cに書き込む。
【0076】
秘密分散符号化装置10dはストレージ106から秘密情報112dを読み出し、秘密情報112dを符号化して符号ブロック114dを生成する。秘密分散符号化装置10dは符号ブロック114dをストレージ106に書き込む。秘密分散復号装置50dはストレージ106から符号ブロック114dを読み出し、符号ブロック114dから秘密情報112dを復号する。秘密分散復号装置50dは秘密情報112dをストレージ106に書き込む。
【0077】
秘密分散符号化装置10a、10b、10d、秘密分散復号装置50a、50b、50d、及び非ストレージデバイス108a、108bはPCIeTMバス116を介してCPU118に接続される。
【0078】
メインメモリ122がメモリバス124を介してCPU118に接続される。メインメモリ122は、秘密分散符号化プログラム10eと秘密分散符号化プログラム10eを記憶する。CPU118が秘密分散符号化プログラム10eを実行すると、
図1に示した秘密分散符号化装置10に対応する機能モジュールがソフトウェア的に実現される。CPU118が秘密分散復号プログラム50eを実行すると、
図3に示した秘密分散復号装置50に対応する機能モジュールがソフトウェア的に実現される。
【0079】
図6は、本実施形態における秘密分散が適用されるユースケースの一例を示す。本実施形態における秘密分散符号化装置10は秘密情報Sの所有者側に配置され、秘密分散復号装置50は秘密情報Sの利用者側に配置される。すなわち、
図5のコンピュータ102は秘密情報Sの所有者にも利用者にも保持者にも使用され得る。もし、コンピュータ102が秘密情報Sの所有者のみにより使用される場合は、コンピュータ102は秘密分散復号装置50a、50b、50d、秘密分散復号プログラム50eを備えなくてもよい。もし、コンピュータ102が秘密情報Sの利用者のみにより使用される場合は、コンピュータ102は秘密分散符号化装置10a、10b、10d、秘密分散符号化プログラム10eを備えなくてもよい。もし、コンピュータ102が保持者のみにより使用される場合は、コンピュータ102は秘密分散符号化装置10a、10b、10d、秘密分散符号化プログラム10e、秘密分散復号装置50a、50b、50d、秘密分散復号プログラム50eを備えなくてもよい。
【0080】
秘密分散符号化装置10は所有者の所有する秘密情報Sを符号化してn個の符号ブロックを出力する。n人の保持者のそれぞれはn個の符号ブロックの一つを持ち分S1,S2,…,Snとして保持する。秘密分散復号装置50はn個の持ち分S1,S2,…,Snの中の少なくともk個の持ち分が入力されると、秘密情報Sを復号する。
【0081】
(第2実施形態)
次に、第2実施形態について説明する。
図7は第2実施形態における情報処理装置としての秘密分散符号化装置10と秘密分散復号装置50が適用されるネットワークストレージ装置202のハードウェア構成の一例を示す図である。
【0082】
ストレージクライアント226a、226b、…がネットワーク208を介してネットワークストレージ装置202に接続される。ストレージクライアント226a、226b、…の夫々はネットワークストレージ装置202にデータを書き込む、又はネットワークストレージ装置202からデータを読み出すものである。ストレージクライアント226a、226b、…はパーソナルコンピュータ等からなる。ネットワーク208の例はTCP/IPを用いたネットワークである。しかし、他の任意のネットワークをネットワークとして用いてもよい。
【0083】
ネットワークストレージ装置202は、ストレージ204a、204b、ネットワークインターフェースコントローラ(Network Interface Controller:NIC)206、CPU218、及びメインメモリ222を含む。
【0084】
ストレージ204a、204bとNIC206はPCIeTMバス216を介してCPU218に接続される。
【0085】
メインメモリ222がメモリバス224を介してCPU218に接続される。
【0086】
ストレージ204aは秘密情報212aと符号ブロック214aを記憶する。ストレージ204bは秘密情報212bと符号ブロック214bを記憶する。秘密情報212a、212bは
図1に示した秘密情報22及び
図3に示した秘密情報62に対応する。符号ブロック214a、214b、114c、114dは
図1に示した符号ブロック及び
図3に示した符号ブロックに対応する。
【0087】
秘密分散符号化装置10と秘密分散復号装置50はNIC206の内部に統合されている。
【0088】
秘密分散符号化装置10はストレージ204aから秘密情報212aを読み出し、秘密情報212aを符号化して符号ブロック214aを生成する。秘密分散符号化装置10は符号ブロック214aをストレージ204aに書き込む。秘密分散復号装置50はストレージ204aから符号ブロック214aを読み出し、符号ブロック214aから秘密情報212aを復号する。秘密分散復号装置50は秘密情報212aをストレージ204aに書き込む。
【0089】
同様に、秘密分散符号化装置10はストレージ204bから秘密情報212bを読み出し、秘密情報212bを符号化して符号ブロック214bを生成する。秘密分散符号化装置10は符号ブロック214bをストレージ204bに書き込む。秘密分散復号装置50はストレージ204bから符号ブロック214bを読み出し、符号ブロック214bから秘密情報212bを復号する。秘密分散復号装置50は秘密情報212bをストレージ204bに書き込む。
【0090】
ネットワークストレージ装置202とストレージクライアント226a、226bは物理的に別体であり、ネットワークストレージ装置202はストレージクライアント226a、226bの外部に設定されたサーバのように説明したが、第1実施形態と同様に、ネットワークストレージ装置202とストレージクライアント226a、226bは論理的に分かれた仮想計算機等であってもよい。
【0091】
ストレージクライアント226a、226bは秘密情報Sの所有者にも利用者にも使用され得る。
【0092】
秘密分散符号化装置10と秘密分散復号装置50がハードウェアとしてNIC206に内蔵される代わりに、メインメモリ122が秘密分散符号化プログラムと秘密分散符号化プログラムを記憶し、秘密分散符号化装置10に対応する機能モジュールと秘密分散復号装置50に対応する機能モジュールがソフトウェア的に実現されるようにしてもよい。
【0093】
図8は第2実施形態における情報処理装置としての秘密分散符号化装置10と秘密分散復号装置50が適用されるネットワークストレージ装置202のハードウェア構成の他の例を示す図である。
【0094】
ストレージクライアント326a、326b、…がネットワーク308を介してネットワークストレージ装置302に接続される。ストレージクライアント326a、326b、…の夫々はネットワークストレージ装置302にデータを書き込む、又はネットワークストレージ装置302からデータを読み出すものである。ストレージクライアント326a、326b、…はパーソナルコンピュータ等からなる。
【0095】
ネットワークストレージ装置302は、ストレージ304a、304b、ネットワークインターフェースコントローラ(Network Interface Controller:NIC)306、CPU318、及びメインメモリ322を含む。
【0096】
ストレージ304a、304bとNIC306はPCIeTMバス316を介してCPU318に接続される。
【0097】
メインメモリ322がメモリバス324を介してCPU318に接続される。
【0098】
ストレージ304aは秘密情報312aと符号ブロック314aを記憶する。ストレージ304bは秘密情報312bと符号ブロック314bを記憶する。秘密情報312a、312bは
図1に示した秘密情報22及び
図3に示した秘密情報62に対応する。符号ブロック314a、314bは
図1に示した符号ブロック及び
図3に示した符号ブロックに対応する。
【0099】
秘密分散符号化装置10aと秘密分散復号装置50aはストレージクライアント326aの内部に統合されている。秘密分散符号化装置10bと秘密分散復号装置50bはストレージクライアント326bの内部に統合されている。
【0100】
秘密分散符号化装置10aはストレージ304aから秘密情報312aを読み出し、秘密情報312aを符号化して符号ブロック314aを生成する。秘密分散符号化装置10aは符号ブロック314aをストレージ304aに書き込む。秘密分散符号化装置10aはストレージ304bから秘密情報312bを読み出し、秘密情報312bを符号化して符号ブロック314bを生成する。秘密分散符号化装置10aは符号ブロック314bをストレージ304bに書き込む。
【0101】
秘密分散復号装置50aはストレージ304aから符号ブロック314aを読み出し、符号ブロック314aから秘密情報312aを復号する。秘密分散復号装置50aは秘密情報312aをストレージ304aに書き込む。秘密分散復号装置50aはストレージ304bから符号ブロック314bを読み出し、符号ブロック314bから秘密情報312bを復号する。秘密分散復号装置50aは秘密情報312bをストレージ304bに書き込む。
【0102】
同様に、秘密分散符号化装置10bはストレージ304aから秘密情報312aを読み出し、秘密情報312aを符号化して符号ブロック314aを生成する。秘密分散符号化装置10bは符号ブロック314aをストレージ304aに書き込む。秘密分散符号化装置10bはストレージ304bから秘密情報312bを読み出し、秘密情報312bを符号化して符号ブロック314bを生成する。秘密分散符号化装置10bは符号ブロック314bをストレージ304bに書き込む。
【0103】
秘密分散復号装置50bはストレージ304aから符号ブロック314aを読み出し、符号ブロック314aから秘密情報312aを復号する。秘密分散復号装置50bは秘密情報312aをストレージ304aに書き込む。秘密分散復号装置50bはストレージ304bから符号ブロック314bを読み出し、符号ブロック314bから秘密情報312bを復号する。秘密分散復号装置50bは秘密情報312bをストレージ304bに書き込む。
【0104】
ストレージクライアント326a、326bは秘密情報Sの所有者にも利用者にも使用され得る。もし、ストレージクライアント326a、326bが秘密情報Sの所有者のみにより使用される場合は、ストレージクライアント326a、326bは秘密分散復号装置50a、50bを備えなくてもよい。もし、ストレージクライアント326a、326bが秘密情報Sの利用者のみにより使用される場合は、ストレージクライアント326a、326bは秘密分散符号化装置10a、10bを備えなくてもよい。
【0105】
なお、本実施形態において、ネットワークにはTCP/IPを用いたネットワークの他、任意のネットワークを用いて良い。また、ネットワークストレージ60装置は物理的に外部に設定されたサーバのように記載されているが、第1実施形態と同様、論理的に分かれた計算機(仮想計算機、等)であってもよい。
【0106】
各実施形態によれば、暗号鍵の秘密分散と暗号化された秘密情報の秘密分散に対して同一のMDS符号を用いることにより、従来のハイブリッド型秘密分散と同等以上に高速に復号が可能であり、かつ、構成もシンプルなハイブリッド秘密分散を提供することが可能となる。
【0107】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0108】
10…秘密分散符号化装置30…ストレージ、30…秘密情報暗号化部、32…乱数発生器、34…暗号鍵演算部、36…入力選択部、38…MDS符号-符号化部、40…分散符号出力部、50…秘密分散復号装置、60…ストレージ、70…符号ブロック入力部、72…MDS符号-復号部、74…出力選択部、76…暗号鍵演算部、78…秘密情報復号部