JP2009222778A - 分散情報追加装置、方法及びプログラム - Google Patents

分散情報追加装置、方法及びプログラム Download PDF

Info

Publication number
JP2009222778A
JP2009222778A JP2008064416A JP2008064416A JP2009222778A JP 2009222778 A JP2009222778 A JP 2009222778A JP 2008064416 A JP2008064416 A JP 2008064416A JP 2008064416 A JP2008064416 A JP 2008064416A JP 2009222778 A JP2009222778 A JP 2009222778A
Authority
JP
Japan
Prior art keywords
data
partial data
distributed
storage server
column
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
JP2008064416A
Other languages
English (en)
Other versions
JP4966232B2 (ja
Inventor
Norikazu Hosaka
範和 保坂
Takehisa Kato
岳久 加藤
Takaya Tochikubo
孝也 栃窪
Minako Ogawa
美奈子 小川
Yoshihiro Fujii
吉弘 藤井
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008064416A priority Critical patent/JP4966232B2/ja
Publication of JP2009222778A publication Critical patent/JP2009222778A/ja
Application granted granted Critical
Publication of JP4966232B2 publication Critical patent/JP4966232B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】元の秘密情報を復元することなく、かつ復元可能な分散情報を管理者が保持せずに、新たに分散情報を追加する。
【解決手段】分散情報追加装置20は、行番号x,y,zに基づき、行番号zの分散部分データD(z,i)毎に、選択した番号(x,i),(y,i)を保存サーバ装置10x,10yに送出する。保存サーバ装置10x,10yは、この番号に基づき、分散部分データ又は分散部分データ同士の排他的論理和データを分散情報追加装置20に送信する。分散情報追加装置20は、各データ同士を排他的論理和演算して分散部分データD(z,i)を作成し、各データを消去する。分散情報追加装置20は、各分散部分データD(z,i)に上記処理を繰り返し、得られた分散部分データD(z,0),…,D(z,i),…,D(z,n-2)からなる分散情報D(z)を保存サーバ装置10zに送信する。
【選択図】図3

Description

本発明は、元の秘密情報を復元することなく、かつ復元可能な分散情報を管理者が保持せずに、新たに分散情報を追加し得る分散情報追加装置、方法及びプログラムに関する。
1979年にシャミアが(k,n)しきい値秘密分散法と呼ばれる秘密分散法を提案している。(k,n)しきい値秘密分散法では、秘密情報をn個の分散情報に分割し、n個の分散情報の中から任意のk個を集めれば元の秘密情報を復元できるが、k−1個の分散情報からでは、元の秘密情報に関する情報を全く得られない。すなわち、(k,n)しきい値秘密分散法は、しきい値kを境にした秘密情報の復元特性をもっている(なお、1<k<n)。このため、(k,n)しきい値秘密分散法によれば、k−1個以下の分散情報が漏洩しても元の秘密情報が安全であり、n−k個以下の分散情報を紛失しても元の秘密情報を復元できるといった管理を実現できる。
しかしながら、シャミアの(k,n)しきい値秘密分散法に代表されるk−1次多項式を使った秘密分散法では、従来の場合、分散情報を追加したいときに、元の秘密情報を復元又は使用して、追加する分散情報を生成する必要がある。補足すると、既存の分散情報から復元した元の秘密情報、または別途漏えいしないように耐タンパ装置などで保持していた元の秘密情報を用いて、新たに秘密分散処理により分散情報を生成し、追加する分散情報管理者に新たに作成した分散情報を配布する必要がある。
但し、最近の場合、k−1次多項式を使った秘密分散法においても、元の秘密情報及び既存の分散情報を秘密にしたまま、新たに分散情報を追加可能となっている(例えば、特許文献1参照。)。
特許文献1記載の方式によれば、元の秘密情報及び既存の分散情報を秘密にしたまま、新たに追加する分散情報を作成できる。しかしながら、特許文献1記載の方式では、k−1次の多項式演算を用いて各分散情報の管理者が中間計算を行う必要があり、多大な計算が必要である。
一方、多大な計算を不要とする観点から、k−1次多項式を使わずにビット単位の排他的論理和演算でのみ実現する秘密分散法が提案されている(例えば、特許文献2参照。)。非特許文献2においては、(2,n)型のしきい値秘密分散を(2,n’)型のしきい値秘密分散に拡張可能な構成により、新メンバを追加可能とした形態が開示されている。
特開2004−341152号公報 特開2007−124032号公報、特に第96−119段落
しかしながら、以上のような非特許文献2記載の技術では、本発明者の検討によれば、以下の点で改良の余地があると考えられる。
すなわち、非特許文献2記載の技術においては、元の秘密情報を復元することなく、かつ復元可能な分散情報を管理者が保持せずに、新たに分散情報を追加する方式が未知となっている。
本発明は上記実情を考慮してなされたもので、元の秘密情報を復元することなく、かつ復元可能な分散情報を管理者が保持せずに、新たに分散情報を追加し得る分散情報追加装置、方法及びプログラムを提供することを目的とする。
第1の発明は、分散数n個(但し、2<n)の分散情報のうち、任意の2個の分散情報から秘密情報Kを復元可能な(2,n)型の秘密分散法を用い、前記秘密情報Kをn−1個に分割した結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てて生成可能なn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)と、前記各第1分割秘密データのサイズと同一サイズのゼロ値に行番号j=0を割り当てて生成可能な第2分割秘密データK(0)と、前記各分割秘密データのサイズ以上のサイズを有するn−1個の乱数に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当てて生成可能なn−1個の乱数データR(0),…,R(i),…,R(n-2)と、前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び前記乱数データR(0),…,R(i),…,R(n-2)から算出可能なn(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)(但し、(+)は排他的論理和を表す記号)とに基づいて、前記各分散部分データにおける同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に行番号jを割り当てて生成可能なn個の分散情報D(0),…,D(j),…,D(n-1)のうち、生成されたn’個(但し、2≦n’<n)の分散情報を個別に保存し且つ当該保存する分散情報の行番号jにより個別に識別可能なn’台の第1保存サーバ装置と、前記第1保存サーバ装置の行番号jの値とは異なる値の行番号jにより個別に識別可能なn−n’台の第2保存サーバ装置との合計n台の保存サーバ装置に通信可能で且つ、2台の第1保存サーバ装置内の分散情報に基づいて、いずれかの第2保存サーバ装置の行番号jを有する新たな分散情報D(j)を生成し、前記新たな分散情報D(j)を当該行番号jにより識別可能な第2保存サーバ装置に追加するための分散情報追加装置であって、書き込まれたデータを記憶するための記憶手段と、前記n台の保存サーバ装置を個別に識別可能な行番号jのうち、2台の第1保存サーバ装置を識別可能な行番号x,yと、少なくとも1台の第2保存サーバ装置を識別可能な行番号zとを入力するための入力手段と、前記入力された行番号x,y,zに基づいて、前記行番号zの分散情報D(z)を構成する分散部分データD(z,i)に関し、当該分散部分データD(z,i)を示す列番号i毎に、当該分散部分データD(z,i)を作成するための行番号x,yの分散部分データD(x,i),D(y,i)を個別に示す列番号iを選択し、当該選択した列番号i及び当該D(x,i)の行番号xからなる第1番号(x,i)と、当該選択した列番号i及び当該D(y,i)の行番号yからなる第2番号(y,i)とを送出する番号選択手段と、前記送出された第1番号(x,i)を当該行番号xにより識別可能な第1保存サーバ装置に送信すると共に、前記送出された第2番号(y,i)を当該行番号yにより識別可能な第1保存サーバ装置に送信する列番号送信手段と、前記送信した第1又は第2番号内の列番号iが1個のとき、当該列番号iを送信した第1保存サーバ装置から前記選択した分散部分データを受信し、前記送信した第1又は第2番号内の列番号iが複数個のとき、当該列番号iを送信した第1保存サーバ装置から前記選択した分散部分データ同士の排他的論理和を演算した演算結果データを受信するデータ受信手段と、前記各第1保存サーバ装置から受信した各データを前記記憶手段に書き込む受信データ書込手段と、前記記憶手段内の各データ同士の排他的論理和を演算することにより、列番号iの分散部分データD(z,i)を作成する部分データ作成手段と、前記作成した分散部分データD(z,i)を前記記憶手段に書き込む部分データ書込手段と、前記分散部分データD(z,i)の書き込みの後、前記記憶手段内の前記受信した各データを消去する受信データ消去手段と、前記消去の完了後、0以上n−2以下の列番号iのうち、分散部分データD(z,i)を作成していない列番号iに対し、前記番号選択手段、前記列番号送信手段、前記データ受信手段、前記受信データ書込手段、前記部分データ作成手段、前記部分データ書込手段及び前記受信データ消去手段を繰り返し実行するように当該各手段を制御する制御手段と、前記制御の完了後、前記記憶手段内のn−1個の分散部分データD(z,0),…,D(z,i),…,D(z,n-2)からなる追加対象の分散情報D(z)を、前記行番号zにより識別可能な第2保存サーバ装置に送信する分散情報送信手段と、を備えた分散情報追加装置である。
なお、第1の発明は、「装置」として表現したが、これに限らず、「方法」、「プログラム」又は「プログラムを記憶したコンピュータ読み取り可能な記憶媒体」として表現してもよい。
(作用)
第1の発明において、分散情報追加装置は、行番号x,y,zに基づき、行番号zの分散部分データD(z,i)毎に、選択した番号(x,i),(y,i)を第1保存サーバ装置に送出する。
第1保存サーバ装置は、この番号に基づき、分散部分データ又は分散部分データ同士の排他的論理和データを分散情報追加装置に送信する。
分散情報追加装置は、各データ同士を排他的論理和演算して分散部分データD(z,i)を作成し、各データを消去する。
分散情報追加装置は、各分散部分データD(z,i)に上記処理を繰り返し、得られた分散部分データD(z,0),…,D(z,i),…,D(z,n-2)からなる分散情報D(z)を第2保存サーバ装置に送信する。
このように、分散情報追加装置は、分散情報D(x),D(y)を受信せず、必要最小限の各データを受信して分散部分データD(z,i)を作成し、且つD(z,i)の作成毎に、当該受信した各データを消去する構成となっている。
従って、元の秘密情報を復元することなく、かつ復元可能な分散情報を管理者(分散情報追加装置)が保持せずに、新たに分散情報を追加できる。
以上説明したように本発明によれば、元の秘密情報を復元することなく、かつ復元可能な分散情報を管理者が保持せずに、新たに分散情報を追加できる。
以下、本発明の一実施形態について図面を用いて説明する。この実施形態は、既存の分散情報を用いて秘密情報を復元することなく、新たに分散情報を作成して新たな分散情報管理者に配布する形態である。また、本実施形態に用いられる各装置は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
図1は本発明の一実施形態に係る秘密分散システムの構成を示す模式図である。この秘密分散システムは、n台の保存サーバ装置100,101,…,10n-1及び1台の分散情報追加装置20が互いに通信可能となっている。なお、各装置100,101,…,10n-1,20は、ここではインターネット等のネットワークNWを介して又は直接に接続されて通信可能としているが、これに限らず、無線通信手段等により通信可能としてもよい。
ここで、n台の保存サーバ装置100,…,10,…,10n-1は、0以上n−1以下の番号jで識別可能となっている。各保存サーバ装置100,…,10,…,10n-1は、互いに同一のハードウェア構成であるので、ここでは、保存サーバ装置101を代表例に挙げて説明する。
保存サーバ装置101は、保存部111、通信部121、制御部131、XOR演算部141を備えている。
保存部111は、各部121〜141から読出/書込み可能な記憶装置であり、分散情報D(1)を保存している。なお、本実施形態では、保存部110,111,112,113は、秘密分散システムの追加動作開始時には既に分散情報D(0),D(1),D(2),D(3)を保存しているものとする。一方、本実施形態では、保存部114は、秘密分散システムの追加動作開始時には分散情報D(4)を保存しておらず、秘密分散システムによる追加動作により、追加される分散情報D(4)が書き込まれるものとする。
具体的には本実施形態は、特許文献2記載の(2,5)しきい値秘密分散法に基づき、4つの分散情報D(0)〜D(3)を配布済みとし、1つの分散情報D(4)が未配布とした場合に、配布済の2つの分散情報D(1),D(3)から未配布の分散情報D(4)を作成して配布する例を示している。
なお、特許文献2記載の(2,5)しきい値秘密分散法においては、保存サーバ装置10(0≦j≦4)に保存される分散部分データD(j,i)(0≦j≦4,0≦i≦3)からなる分散情報D(j)は図2及び以下に示すようになる。
ここで、D(j)は、n−1個のD(j,i)を含んでいる。n−1個のD(j,i)は、D(j,0),D(j,1),…,D(j,n−2)である。D(j,0),…,D(j,n−2)は、それぞれ次のようにK(j−i (mod n))とR(i)を含んでいる。
D(j,0)=K(j−0 (mod n))(+)R(0)、
D(j,1)=K(j−1 (mod n))(+)R(1)、

D(j,i)=K(j−i (mod n))(+)R(i)、

D(j,n−2)=K(j−(n−2) (mod n))(+)R(n−2)
各式中、(+)はXOR(排他的論理和)演算子を表す記号とする。
K(0),…,K(n−1)及びR(0),…,R(n−2)は全て同じ長さの0と1から値をとるバイナリデータである。K(0),…,K(n−1)のうち、K(0)を除くK(1),…,K(n−1)は、秘密情報Kをn−1個に分割した情報であり、K=K(1)‖K(2)‖K(3)‖K(4)の関係がある。K(0)はゼロ値データである。R(0)、R(1)、R(2)、R(3)はランダムな値である。
補足すると、本実施形態は、n’個の分散情報が個別に配布されたn’台の保存サーバ装置10x,10y,…が(2,n)しきい値法で秘密分散された分散情報D(x),D(y),…を各々保存しており(但し、2≦n’<n)、追加可能なn−n’個の分散情報D(z),…を他の保存サーバ装置10z,…に追加する場合において、n=5、n’=4、x=1,y=3,z=4とした例を示している。
すなわち、本実施形態において、配布済みのn’個のD(j)には、D(x),D(y)が含まれる。追加可能なn−n’個のD(j)には、D(z)が含まれる。番号x,y,zは、それぞれ0以上n−1以下の範囲にある番号jの任意の値である(但し、x<y、x≠y≠z)。
通信部121は、制御部131により制御され、分散情報追加装置20と通信するための通信機能をもっている。
制御部131は、通信部121を介して分散情報追加装置20からD(z,i)を計算するために必要となる分散部分データD(x,i)の番号(行番号x,列番号i)を受信すると、この番号に基づいて、保存部111内の該当する分散部分データD(x,i)を読み出す機能と、読み出した分散部分データD(x,i)が複数個の場合には各D(x,i)をXOR演算部141へ送出し、XOR演算部141から受けたXOR演算結果データDXOR(x,i)を通信部121から分散情報追加装置20へ送信する機能と、読み出した分散部分データD(x,i)が1個の場合には当該D(x,i)を通信部121から分散情報追加装置20へ送信する機能とをもっている。
XOR演算部141は、制御部131から送出された複数の分散部分データD(x,i)を互いにXOR演算し、得られたXOR演算結果データDXOR=D(x,i)(+)D(x,i)を制御部131へ送出する機能をもっている。
一方、分散情報追加装置20は、保存部21、入力部22、制御部23、分散情報生成部24、通信部25及び出力部26を備えている。
保存部21は、各部22〜26からアクセス可能な記憶装置であり、例えば、各保存サーバ装置10x,10yから受信した分散部分データD(x,i),D(y,i)や新たに作成した分散情報D(z)が一時的に保存される。
入力部22は、n台の保存サーバ装置100〜104を個別に識別可能な行番号jのうち、2台の保存サーバ装置10x,10yを識別可能な行番号x,yと、少なくとも1台の保存サーバ装置10zを識別可能な行番号zとを入力するための入力機能をもっている。入力部22の入力機能は、分散情報追加装置20が既存の任意の分散情報D(x),D(y)を指定する機能に変更してもよく、オプショナルな機能部である。
制御部23は、図3に示す動作を実行するように各部21,24〜26を制御するものであり、例えば、以下の各機能(f23-1)〜(f23-8)をもっている。
(f23-1) 入力部22から入力された行番号x,y,zに基づいて、行番号zの分散情報D(z)を構成する分散部分データD(z,i)に関し、当該分散部分データD(z,i)を示す列番号i毎に、当該分散部分データD(z,i)を作成するための行番号x,yの分散部分データD(x,i),D(y,i)を個別に示す列番号iを選択し、当該選択した列番号i及び当該D(x,i)の行番号xからなる第1番号(x,i)と、当該選択した列番号i及び当該D(y,i)の行番号yからなる第2番号(y,i)とを送出するように、番号選択要求を分散情報生成部24に送出する機能。
(f23-2) 分散情報生成部24から送出された第1番号(x,i)を当該行番号xにより識別可能な保存サーバ装置10xに通信部25を介して送信すると共に、分散情報生成部24から送出された第2番号(y,i)を当該行番号yにより識別可能な保存サーバ装置10yに通信部25を介して送信する機能。
(f23-3) 各保存サーバ装置10x,10yから受信した各データを保存部21に書き込む機能。ここで、各データとしては、送信した第1又は第2番号内の列番号iが1個のとき、分散情報生成部24により選択した分散部分データである。また、各データとしては、送信した第1又は第2番号内の列番号iが複数個のとき、分散情報生成部24により選択した分散部分データ同士の排他的論理和を保存サーバ装置10x,10yが演算してなる演算結果データである。
(f23-4) 保存部21内の各データ同士の排他的論理和を演算することにより、列番号iの分散部分データD(z,i)を作成するように、演算命令を分散情報生成部24に送出する機能。
(f23-5) 分散情報生成部24により作成した分散部分データD(z,i)を保存部21に書き込む機能。
(f23-6) 分散部分データD(z,i)の書き込みの後、保存部21内の受信した各データを消去する機能。
(f23-7) 消去の完了後、0以上n−2以下の列番号iのうち、分散部分データD(z,i)を作成していない列番号iに対し、前述した各機能(f23-1)〜(f23-6)を繰り返し実行するように当該各(f23-1)〜(f23-6)を制御する機能。
(f23-8) 制御の完了後、保存部21内のn−1個の分散部分データD(z,0),…,D(z,i),…,D(z,n-2)からなる追加対象の分散情報D(z)を、行番号zにより識別可能な保存サーバ装置10zに通信部25を介して送信する機能。
分散情報生成部24は、以下の各機能(f24-1),(f24-2)をもっている。
(f24-1) 制御部23から受けた番号選択要求により、入力部22から入力された行番号x,y,zに基づいて、行番号zの分散情報D(z)を構成する分散部分データD(z,i)に関し、当該分散部分データD(z,i)を示す列番号i毎に、当該分散部分データD(z,i)を作成するための行番号x,yの分散部分データD(x,i),D(y,i)を個別に示す列番号iを選択し、当該選択した列番号i及び当該D(x,i)の行番号xからなる第1番号(x,i)と、当該選択した列番号i及び当該D(y,i)の行番号yからなる第2番号(y,i)とを制御部23に送出する機能。
(f24-2) 制御部23から受けた演算命令に従い、保存部21内の各データ同士の排他的論理和を演算することにより、列番号iの分散部分データD(z,i)を作成し、得られた分散部分データD(z,i)を制御部23に送出する機能。
ここで、分散情報生成部24の機能(f24-1)は、図4に示す動作を実行するように、以下の各機能(f24-1-1)〜(f24-1-18)を備えている。
(f24-1-1) 入力された行番号xにより識別可能な一方の保存サーバ装置10xの分散部分データD(x,i)に関し、当該分散部分データD(x,i)の列番号iに相当するn−1個の変数と、変数毎に分散部分データD(x,i)を選択するか否かを示すフラグとを互いに関連付けてなり、X[変数]=フラグの関係をもつ第1配列Xを保存部21に設定する機能。
(f24-1-2) 入力された行番号yにより識別可能な他方の保存サーバ装置10yの分散部分データD(y,i)に関し、当該分散部分データD(y,i)の列番号iに相当するn−1個の変数と、変数毎に分散部分データD(y,i)を選択するか否かを示すフラグとを互いに関連付けてなり、Y[変数]=フラグの関係をもつ第2配列Yを保存部21に設定する機能。
(f24-1-3) 入力された行番号x,y,zのうち、保存サーバ装置10x,10yの行番号x,yの差分d=y−x(但し、x<y)を算出する機能。
(f24-1-4) 各配列X,Yの全ての変数に対してフラグを0に初期化した後、行番号zの分散情報D(z)を構成する分散部分データD(z,i)を示す列番号iを変数hとして第1配列Xのフラグを立てることにより、第1配列XをX[h]=1と設定し、前記第2配列YをY[h]=0と設定する第1初期化機能。
(f24-1-5) 変数h、差分d及び分散数nに基づいて、h+d=n−1(mod n)であるか否かを判定する第1判定機能。
(f24-1-6) 第1判定機能による判定結果が否の場合、変数h及び差分dに基づいて、各配列X,YをX[h+d]=Y[h+d]=1と設定する第1の配列設定機能。
(f24-1-7) 第1の配列設定機能による設定の後、差分d及び分散数nに基づいて、変数hをh=h+d (mod n)に更新する第1更新機能。
(f24-1-8) 第1更新機能による更新の後、部分分散データD(z,i)を示す行番号z及び列番号i、行番号x、変数h、分散数nに基づいて、z−i=x−h(mod n)であるか否かを判定する第2判定機能。
(f24-1-9) 第2判定機能による判定結果が否の場合、第1判定機能に戻って処理を繰り返す機能。
(f24-1-10) 第1判定機能による判定結果がh+d=n−1(mod n)である場合、各配列X,Yの全ての変数に対してフラグを0に初期化した後、行番号zの分散情報D(z)を構成する分散部分データD(z,i)を示す列番号iを変数hとして第2配列Y[h]のフラグを立てることにより、第2配列YをY[h]=1と設定し、第1配列XをX[h]=0と設定する第2初期化機能。
(f24-1-12) 第2初期化機能による設定の後、変数h及び差分dに基づいて、各配列X,YをX[h−d]=Y[h−d]=1と設定する第2の配列設定機能。
(f24-1-13) 第2の配列設定機能による設定の後、差分d及び分散数nに基づいて、変数hをh=h−d (mod n)に更新する第2更新機能。
(f24-1-14) 第2更新機能による更新の後、部分分散データD(z,i)を示す行番号z及び列番号i、行番号y、変数h、分散数nに基づいて、z−i=y−h(mod n)であるか否かを判定する第3判定機能。
(f24-1-15) 第3判定機能による判定結果が否の場合、第2の配列設定機能に戻って処理を繰り返す機能。
(f24-1-16) 第3判定機能による判定結果がz−i=y−h(mod n)である場合、フラグが1に設定された第1配列Xの変数を分散部分データD(x,i)の列番号iとして選択すると共に、フラグが1に設定された第2配列Yの変数を分散部分データD(y,i)の列番号iとして選択する第1選択機能。
(f24-1-17) 第2判定機能による判定結果がz−i=x−h(mod n)である場合、フラグが1に設定された第1配列Xの変数を分散部分データD(x,i)の列番号iとして選択すると共に、フラグが1に設定された第2配列Yの変数を分散部分データD(y,i)の列番号iとして選択する第2選択機能。
(f24-1-18) 第1又は第2選択機能により選択された各々の列番号iに基づいて、第1番号(x,i)及び第2番号(y,i)を制御部23に送出する機能。
通信部25は、制御部23により制御され、各保存サーバ装置10x,10y,10zと通信するための通信機能をもっている。
出力部26は、制御部23の制御により、追加する分散情報D(z)を出力する機能をもっている。但し、分散情報D(z)を出力する機能は必須ではなく、省略してもよい。
次に、以上のように構成された秘密分散システムによる分散情報追加方法について図3及び図4のフローチャートを用いて説明する。なお、ここでは分散数n=5、配布済み数n’=4を例に挙げて述べる。
この秘密分散システムにおいては、分散数n個(但し、2<n)の分散情報のうち、任意の2個の分散情報から秘密情報Kを復元可能な(2,n)型の秘密分散法が用いられている。
この秘密分散法では、図2にn=5の例を示したように、秘密情報Kをn−1個に分割した結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てて生成可能なn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)と、各第1分割秘密データのサイズと同一サイズのゼロ値に行番号j=0を割り当てて生成可能な第2分割秘密データK(0)と、各分割秘密データのサイズ以上のサイズを有するn−1個の乱数に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当てて生成可能なn−1個の乱数データR(0),…,R(i),…,R(n-2)と、第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び乱数データR(0),…,R(i),…,R(n-2)から算出可能なn(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)(但し、(+)は排他的論理和を表す記号)とに基づいて、各分散部分データにおける同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に行番号jを割り当ててn個の分散情報D(0),…,D(j),…,D(n-1)が生成可能となっている。
また、4台の保存サーバ装置100〜103は、生成可能なn個の分散情報D(0),…,D(j),…,D(n-1)のうち、生成された4個の分散情報を個別に保存し且つ当該保存する分散情報の行番号jにより個別に識別可能となっている。
1台の保存サーバ装置104は、保存サーバ装置100〜103の行番号jの値とは異なる値の行番号jにより個別に識別可能となっている。
分散情報追加装置20は、合計5台の保存サーバ装置100〜104に通信可能で且つ、2台の保存サーバ装置101,103内の分散情報D(1),D(3)に基づいて、保存サーバ装置104の行番号jを有する新たな分散情報D(4)を生成し、新たな分散情報D(4)を当該行番号jにより識別可能な保存サーバ装置104に追加可能となっている。
すなわち、以下の説明では、図5に示すように、n=5,n’=4として、(2,n)しきい値法で秘密分散した後、分散情報D(1)とD(3)から分散情報D(4)を追加する例を挙げて述べる。既存の保存サーバ装置10x,10yを示す番号x,yはそれぞれx=1,y=3とする。追加する保存サーバ装置10zを示す番号zは、z=4とする。
分散情報追加装置20においては、操作者の操作により、分散数n、分散情報の長さL、分散情報D(x),D(y)を保存している各保存サーバ装置10x,10yの番号(x=1,y=3)、追加する分散情報D(z)を配布する保存サーバ装置10zの番号(z=4)が入力部22から制御部23に入力される(ST1)。
各番号x,y,zの大小関係は、説明の便宜上、0≦x<y≦n’−1<z≦n−1、とする。実際は、0≦x<y≦n−1、0≦z≦n−1、x≠y≠z、であればよい。
n’:既存の保存サーバ装置の台数
制御部23は、分散数nと、分散情報の長さLと、分散情報D(x),D(y)を保存している保存サーバ装置101,103の番号(x=1,y=3)と、追加する分散情報D(z)を配布する保存サーバ装置104の番号(z=4)とを含む番号選択要求を分散情報生成部24へ送出する。
分散情報生成部24は、これらのデータn,L,x,y,zを含む番号選択要求を受けると、図4に示す選択アルゴリズムにより、追加する分散部分データD(z,i)毎に、D(z,i)の計算に必要な分散部分データを、既存の分散情報D(x),D(y)内の分散部分データ{D(x,0),D(x,1),…,D(x,n−2),D(y,0),D(y,1),…,D(y,n−2)}から選択する(ST2)。
例えばi=0として、追加する分散部分データD(4,0)を計算する場合、分散情報生成部24は、分散情報D(x)を保存している番号(x=1)の保存サーバ装置101が保存する分散部分データD(x,0),D(x,1),…,D(x,n−2)から0番目と2番目の分散部分データD(1,0),D(1,2)を選択する。
同様に、分散情報生成部24は、分散情報D(y)を保存している番号(y=3)の保存サーバ装置103が保存する分散部分データD(y,0),D(y,1),…,D(y,n−2)から2番目の分散部分データD(3,2)を選択する。なお、ステップST2の選択アルゴリズムの詳細については後述する。
選択された分散部分データD(1,0),D(1,2),D(3,2)の番号(x=1、i=0,2),(y=3、i=2)は、分散情報生成部24から制御部23に送出される。
制御部23は、送出された番号(x=1、i=0,2)を当該行番号xにより識別可能な1番目の保存サーバ装置101へ通信部25を介して送信すると共に、送出された番号(y=3、i=2)を当該行番号yにより識別可能な3番目の保存サーバ装置103へ通信部25を介して送信する(ST3)。
1番目の保存サーバ装置101の制御部131は、通信部121を介して分散情報追加装置20からD(z,i)を計算するために必要となる分散部分データD(x,i)の番号(x=1,i=0,2)を受信すると、この番号に基づいて、保存部111内の該当する分散部分データD(1,0),D(1,2)を読み出す。
制御部131は、読み出した分散部分データD(1,0),D(1,2)をXOR演算部141へ送出する。
XOR演算部141は、送出された分散部分データD(1,0),D(1,2)を互いにXOR演算し、得られたXOR演算結果データDXOR(x=1,i=0,2)=D(1,0)(+)D(1,2)を制御部131へ送出する。
制御部131は、このXOR演算結果データDXOR(x=1,i=0,2)を通信部121から分散情報追加装置20へ送信する(ST4)。
同様に、3番目の保存サーバ装置103の制御部133は、通信部123を介して分散情報追加装置20からD(z,i)を計算するために必要となる分散部分データD(y,i)の番号(y=3,i=2)を受信すると、この番号に基づいて、保存部113内の該当する分散部分データD(3,2)を読み出す。
制御部133は、読み出した分散部分データD(3,2)が1個であるので、XOR演算部143へ送出せず、この分散部分データD(3,2)を通信部123から分散情報追加装置20へ送信する(ST4)。
分散情報追加装置20においては、制御部23が通信部25を介して2つの保存サーバ装置101,103から受信したXOR演算結果データDXOR(x=1,i=0,2)と、分散部分データD(3,2)と保存部21に書き込む。
しかる後、分散情報追加装置20においては、制御部23が保存部21内の各データ同士の演算命令を分散情報生成部24へ送出する。
分散情報生成部24は、この演算命令を受けると、保存部21内の2つのデータをXOR演算し(ST5)、演算結果を分散部分データD(z,i)=D(4,0)=DXOR(x=1,i=0,2)(+)D(3,2)として制御部23へ送出する。
制御部23は、この分散部分データD(4,0)を保存部21に書き込む。しかる後、制御部23は、保存部21内の各保存サーバ装置101,103から受信した2つのデータDXOR(x=1,i=0,2)及びD(3,2)を消去する(ST6)。
制御部23は、以上の処理を0≦i≦n−2の範囲で繰り返すことにより、0≦i≦n−2の番号i毎に、追加する分散部分データD(z,i)を計算する。
すなわち、i=1として、追加する分散部分データD(4,1)を計算する場合、分散情報追加装置は、図4の選択アルゴリズムにより、必要な分散部分データD(x,i)の番号(x=1,i=0,3)を保存サーバ装置101へ送信すると共に、必要な分散部分データD(y,i)の番号(y=3,i=3)を保存サーバ装置103へ送信する。
保存サーバ装置101は、この番号(x=1,i=0,3)に基づいて、該当する分散部分データのXOR演算結果データDXOR(x=1,i=0,3)=D(1,0)(+)D(1,3)を分散情報追加装置20へ送信する。保存サーバ装置103は、この番号(y=3,i=3)に基づいて、該当する分散部分データD(3,3)を分散情報追加装置20に送信する。
分散情報追加装置20は、2つの保存サーバ装置101,103から受信したデータDXOR(x=1,i=0,3)及びD(3,3)を互いにXOR演算し、演算結果を分散部分データD(4,1)=DXOR(x=1,i=0,3)(+)D(3,3)として保存部21に保存した後、受信したデータDXOR(x=1,i=0,3)及びD(3,3)を削除する。
続いて、i=2として、追加する分散部分データD(4,2)を計算する場合、分散情報追加装置20は、図4の選択アルゴリズムより、必要な分散部分データD(x,i)の番号(x=1,i=0,1,3)を保存サーバ装置101へ送信すると共に、必要な分散部分データD(y,i)の番号(y=3,i=0,1,2,3)を保存サーバ装置103へ送信する。
保存サーバ装置101は、この番号(x=1,i=0,1,3)に基づいて、該当する分散部分データのXOR演算結果データDXOR(x=1,i=0,1,3)=D(1,0)(+)D(1,1)(+)D(1,3)を分散情報追加装置20へ送信する。保存サーバ装置103は、この番号(y=3,i=0,1,2,3)に基づいて、該当する分散部分データの演算結果データDXOR(y=3,i=0,1,2,3)=D(3,0)(+)D(3,1)(+)D(3,2)(+)D(3,3)を分散情報追加装置20に送信する。
分散情報追加装置20は、2つの保存サーバ装置101,103から受信したデータDXOR(x=1,i=0,1,3)及びDXOR(y=3,i=0,1,2,3)を互いにXOR演算し、演算結果を分散部分データD(4,2)=DXOR(x=1,i=0,1,3)(+)DXOR(y=3,i=0,1,2,3)として保存部21に保存した後、受信したデータDXOR(x=1,i=0,1,3)及びDXOR(y=3,i=0,1,2,3)を削除する。
最後にi=3として、追加する分散部分データD(4,3)を計算する場合、分散情報追加装置は、図4の選択アルゴリズムより、必要な分散部分データD(x,i)の番号(x=1,i=1,3)を保存サーバ装置101へ送信すると共に、必要な分散部分データD(y,i)の番号(y=3,i=0)を保存サーバ装置103へ送信する。
保存サーバ装置101は、この番号(x=1,i=1,3)に基づいて、該当する分散部分データのXOR演算結果データDXOR(x=1,i=1,3)=D(1,0)(+)D(1,3)を分散情報追加装置20へ送信する。保存サーバ装置103は、この番号(y=3,i=0)に基づいて、該当する分散部分データD(3,0)を分散情報追加装置20に送信する。
分散情報追加装置20は、2つの保存サーバ装置101,103から受信したデータDXOR(x=1,i=1,3)及びD(3,0)を互いにXOR演算し、演算結果を分散部分データD(4,3)=DXOR(x=1,i=1,3)(+)D(3,0)として保存部21に保存した後、受信したデータDXOR(x=1,i=1,3)及びD(3,0)を削除する。
以上により、0≦i≦n−2(=3)までの繰り返し処理が完了する。
制御部23は、繰り返し処理が完了すると、保存部21内の番号i毎の分散部分データ(4,0),…,(4,3)からなる分散情報D(z)を通信部25から保存サーバ装置104に送信する(ST7)。
保存サーバ装置104は、この分散情報D(z)を保存部114に保存する(ST8)。
以上の操作により、図5に示すように、n=5,n’=4の例において、(2,n)しきい値法で秘密分散した後、元の秘密情報を復元することなく、かつ元の秘密情報の一部も漏えいすることなく、分散情報D(1)とD(3)から新たな分散情報D(4)を作成することができる。
また、説明を容易にするため、x<y<zとして実施形態を説明したが、x<yを満たし、zは0≦z≦n−1であれば同様に分散情報を追加することができる。
(ステップST2の選択アルゴリズムの詳細)
次に、ステップST2の選択アルゴリズムについて図4のフローチャート及び図6乃至図9の模式図を参照しながら詳細に説明する。
分散情報生成部24は、分散数nと、分散情報の長さLと、分散情報D(x),D(y)を保存している保存サーバ装置の番号(x=1,y=3)と、追加する分散情報D(z)を配布する保存サーバ装置の番号(z=4)とを含む番号選択要求を制御部23から受けると、図4に示すように、既存の保存サーバ装置の番号の差分d=y−xを算出する(ST2−1)。なお、x<yである。
また、分散情報生成部24は、入力された行番号x=1により識別可能な一方の保存サーバ装置101の分散部分データD(1,i)に関し、当該分散部分データD(1,i)の列番号iに相当するn−1個の変数と、変数毎に分散部分データD(1,i)を選択するか否かを示すフラグとを互いに関連付けてなり、X[変数]=フラグの関係をもつ第1配列Xを保存部21に設定する。
同様に、分散情報生成部24は、入力された行番号y=3により識別可能な他方の保存サーバ装置103の分散部分データD(3,i)に関し、当該分散部分データD(3,i)の列番号iに相当するn−1個の変数と、変数毎に分散部分データD(3,i)を選択するか否かを示すフラグとを互いに関連付けてなり、Y[変数]=フラグの関係をもつ第2配列Yを保存部21に設定する。
しかる後、分散情報生成部24は、各配列X,Yの全ての変数に対してフラグを0に初期化した後、行番号zの分散情報D(z)を構成する分散部分データD(z,i)を示す列番号iを変数hとして第1配列Xのフラグを立てることにより、第1配列XをX[h]=1と設定し、第2配列YをY[h]=0と設定する(ST2−2)。なお、0≦i≦n−2であり、iの初期値は0である。すなわち、ステップST2−2では、配列X[0]=1とする。また、ステップST2−2〜ST2−14は、図4、図6乃至図9に示すように、変数iを0から3(=n−2)まで変えて繰り返し実行される。また、ステップST2−2〜ST2−14において、演算はmod 5(=mod n)で実行される。
続いて、分散情報生成部24は、差分d及び分散数nに基づいて、h+d=n−1(mod n)であるか否かを判定し(ST2−3)、判定結果がh+d=n−1である場合にはステップST2−7に進む。
一方、ステップST2−3の判定結果が否の場合には、分散情報生成部24は、変数h及び差分dに基づいて、各配列X,Yを配列X[h+d]=Y[h+d]=1とする(ST2−4)。
しかる後、分散情報生成部24は、差分d及び分散数nに基づいて、変数hをh=h+d (mod n)に更新する(ST2−5)。
更に、分散情報生成部24は、部分分散データD(z,i)を示す行番号z及び列番号i、行番号x、変数h、分散数nに基づいて、z−i=x−h(mod n)であるか否かを判定し(ST2−6)、判定結果がz−i=x−hである場合にはステップST2−11に進む。
一方、ステップST2−6の判定結果が否の場合には、分散情報生成部24は、ステップST2−3に戻る。
このようなステップST2−3〜ST2−6の処理を繰り返した結果、ステップST2−3の判定結果がh+d=n−1となった場合を説明する。
分散情報生成部24は、各配列X,Yの全ての変数に対してフラグを0に初期化した後、行番号zの分散情報D(z)を構成する分散部分データD(z,i)を示す列番号iを変数hとして第2配列Y[h]のフラグを立てることにより、第2配列YをY[h]=1と設定し、第1配列XをX[h]=0と設定する(ST2−7)。なお、0≦i≦n−2であり、iの初期値は0である。すなわち、ステップST2−7では、配列Y[0]=1とする。
続いて、分散情報生成部24は、変数h及び差分dに基づいて、各配列X,YをX[h−d]=Y[h−d]=1と設定する(ST2−8)。また、分散情報生成部24は、差分d及び分散数nに基づいて、変数hをh=h−d (mod n)に更新する(ST2−9)。
更に、分散情報生成部24は、部分分散データD(z,i)を示す行番号z及び列番号i、行番号y、変数h、分散数nに基づいて、z−i=y−h(mod n)であるか否かを判定し(ST2−10)、判定結果がz−i=y−hである場合にはステップST2−11に進む。
一方、ステップST2−10の判定結果が否の場合には、分散情報生成部24は、ステップST2−8に戻る。
次に、ステップST2−6又はST2−10の判定結果により、ステップST2−11に進む場合を説明する。なお、0≦t≦n−2であり、tの初期値は0である。ステップST2−11〜ST2−14は、変数tを0からn−2まで変えて繰り返し実行される。
分散情報生成部24は、配列X[t]=1であるか否かを判定し(ST2−11)、否の場合にはステップ2−13に進み、ステップST2−11の判定結果がX[t]=1である場合には、変数tをD(x)の分散部分データの列番号iとして選択した後(ST2−12)、ステップST2−13に進む。
続いて、分散情報生成部24は、配列Y[t]=1であるか否かを判定し(ST2−13)、否の場合には処理を終了し、ステップST2−13の判定結果がY[t]=1である場合には、変数tをD(y)の分散部分データの列番号iとして選択する(ST2−14)。しかる後、分散情報生成部24は、ステップST2−12,ST2−14により選択した分散部分データの列番号iに基づいて、分散部分データを示す番号(x,i)及び(y,i)を制御部23に送出する。
次に、上述した選択アルゴリズムについて補足的に説明する。
この選択アルゴリズムにおいては、追加する分散情報D(z)の分散部分データD(z,i)毎に、この分散部分データD(z,i)に含める部分秘密情報K(*)を含む既存の分散部分データD(x,i)又はD(y,i)を探索する。
例えば、x=1の場合、既存の分散部分データD(1,i)は、それぞれ次に示す部分秘密情報K(*)をもっている。
D(1,0):K(1)、
D(1,1):K(0)、
D(1,2):K(4)、
D(1,3):K(3)
同様に、y=3の場合、既存の分散部分データD(3,i)は、それぞれ次に示す部分秘密情報K(*)をもっている。
D(3,0):K(3)、
D(3,1):K(2)、
D(3,2):K(1)、
D(3,3):K(0)
ここで、x,yを一般化してjで表すと、既存の分散部分データD(j,i)のiが1ずつ増加するに従い、含まれる部分秘密情報K(*)の*が1ずつ減るといった対応関係があることが分かる。また、部分秘密情報K(2)を含むD(x,i)は存在しないことが分かる。
また、分散部分データD(j,i)内の部分秘密情報K(*)は、K(j−i)で表される。すなわち、部分秘密情報K(*)は、K([j−i]mod 5)である。
従って、追加する分散部分データD(z,i)がD(4,0)の場合、D(4,0)に含まれる部分秘密情報K(*)は、K(z−i)=K(4)で表される。この部分秘密情報K(4)を含む分散部分データD(j,i)であるD(x,x−i)又はD(y,y−i)をステップST2−2〜ST2−10で探索する。
このとき、ステップST2−3の最初の条件分岐「h+d=n−1」においては、必要な部分秘密情報K(*)を含むD(x,h+d)(=D(x,i+d))がD(x)の範囲外(=D(x,n−1))か否かを判定するため、「h+d=n−1」が成立するか否かを判定する。判定結果が範囲外を示す場合(ST2−3;YES)にはステップST2−7に移行して、必要な部分秘密情報K(*)を含む分散部分データをD(y)から探索する。
例えば図8に示すように、追加する分散部分データD(z,i)がD(4,2)の場合、D(4,2)に含まれる部分秘密情報K(z−i)=K(2)については、前述した通り、K(2)を含む分散部分データD(x,i)が存在しない。このため、K(2)を含む分散部分データD(x,i+d)=D(1,4)の場合には、範囲外と判定される。範囲外を示す判定結果は、存在するD(x,i)の範囲がD(1,0)〜D(1,3)であり、D(1,4)が存在しないことに対応している。換言すると、存在するD(x,i)を示す番号iの範囲が0≦i≦n−2であり、i=n−1が成立しないことに対応している。
次に、ステップST2−6の最後の条件分岐「z−i=x−h」においては、追加する分散部分データD(z,i)に含まれる部分秘密情報K(z−i)に関し、K(z−i)となるK(x−i)を含むD(x,i)があるか否かを判定する。なお、K(j−i)=K(z−i)=K(x−i)=K(y−i)の関係がある。
同様に、ステップST2−10の最後の条件分岐「z−i=y−h」においては、追加する分散部分データD(z,i)に含まれる部分秘密情報K(z−i)に関し、K(z−i)となるK(y−i)を含むD(y,i)があるか否かを判定する。
換言すると、ステップST2−3の最初の条件分岐「h+d=n−1」により、追加するD(z,i)毎に、必要な部分秘密情報K(z−i)がD(x)にあるか無いかを判定し、D(x)にある場合、ステップST2−3〜ST2−6のループ処理が実行される。そして、ステップST2−6の最後の条件分岐「z−i=x−h」においては、必要な部分秘密情報K(z−i)を含む分散部分データD(x,i)を探索したか否かを判定し、探索した場合にはステップST2−11に進んでいる。また、ステップST2−3の判定により、必要な部分秘密情報K(z−i)がD(x)に無い場合、ステップST2−7〜ST2−10のループ処理が実行される。そして、ステップST2−10の最後の条件分岐「z−i=y−h」においては、必要な部分秘密情報K(z−i)を含む分散部分データD(y,i)を探索したか否かを判定し、探索した場合にはステップST2−11に進んでいる。
一方、ステップST2−2又はST2−7において、初期化後に最初にフラグを立てた配列X[i]又はY[i]は、分散部分データD(x,i)又はD(y,i)を示し、この分散部分データD(x,i)又はD(y,i)は、追加する乱数成分R(i)と、不要な分散部分データK(z−i+d)を打ち消す分散部分データK(x−i)又はK(y−i)とを含んでいる。すなわち、以下の通りである。
X[i];D(x,i)=R(i)(+)K(x−i)、
Y[i];D(y,i)=R(i)(+)K(y−i)
なお、不要な乱数成分R(i+d)や不要な部分秘密情報K(z−i+d)は、それぞれ打ち消される。すなわち、不要な乱数成分R(i+d)は、ステップST2−4又はST2−8に基づき、同一番号tの分散部分データD(x,t),D(y,t)を選択することにより、互いに打ち消される。例えば、D(4,0)の計算に必要なD(1,0),D(1,2),D(3,2)の場合、不要な乱数成分R(2)は、ステップST2−4又はST2−8に基づき、ステップST2−11〜ST2−14により、同一番号t=2の分散部分データD(x,2),D(y,2)を選択することにより、互いに打ち消される。
また、不要な部分秘密情報K(z−i+d)は、必要な部分秘密情報K(*)(=K(z−i))を含む分散部分データD(x,x−*)又はD(y,y−*)に対して同一番号(j−*)の分散部分データD(y,y−*)又はD(x,x−*)に含まれる部分秘密情報K(*+d)と同一の部分秘密情報K(x−*)又はK(y−*)を含む他の分散部分データD(x,i)又はD(y,i)をステップST2−2又はST2−7に基づき、ステップST2−11,ST2−12又はステップST2−13,ST2−14で選択することにより、互いに打ち消される。
例えば、D(4,0)の計算に必要なD(1,0),D(1,2),D(3,2)の場合、不要な部分秘密情報K(z−i+d)=K(1)は、必要な部分秘密情報K(z−i)=K(4)を含む分散部分データD(x,x−*)=D(1,2)に対して同一番号(2)の分散部分データD(y,2)=D(3,2)に含まれる部分秘密情報K(*+d)=K(1)と同一の部分秘密情報K(1)を含む他の分散部分データD(x,i)=D(1,0)をステップST2−2,ST2−11,ST2−12で選択することにより、互いに打ち消される。なお、この例ではz=4、i=0、d=2、*=4、x=1、y=3であり、演算はmod 5の下で実行される。
従って、図4に示す選択アルゴリズムは、不要なR(i+d),K(z−i+d)をそれぞれ打ち消しながら、必要な部分秘密情報K(z−i)を追加するためのループ処理と見なすこともできる。
上述したように本実施形態によれば、分散情報追加装置20が、分散情報D(x),D(y)を受信せず、必要最小限の各データを受信して分散部分データD(z,i)を作成し、且つD(z,i)の作成毎に、当該受信した各データを消去する構成により、元の秘密情報Kを復元することなく、かつ元の秘密情報Kを復元可能な分散情報D(1),D(3)を管理者(分散情報追加装置)が保持せずに、新たに分散情報D(4)を追加することができる。
換言すると、k−1次多項式を使わずにビット単位の排他的論理和演算のみで秘密情報を分散・復元する秘密分散システムにおいて、新たに分散情報管理者(保管サーバ装置104)を追加する場合に元の秘密情報を復元可能な分散情報を保持せずに、新たに追加する分散情報を生成し、分散情報管理者に配布することができる。これにより、追加処理における秘密情報の漏洩リスクを軽減でき、セキュリティ性を向上させることができる。
また、本実施形態によれば、既存の分散情報から新たな分散情報を作成するためのアルゴリズムが明確になっているので、容易に実施することができる。
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
本発明の第1の実施形態に係る秘密分散システムの構成を示す模式図である。 同実施形態における分散情報の構成例を示す模式図である。 同実施形態における動作を説明するためのフローチャートである。 同実施形態における動作を詳細に説明するためのフローチャートである。 同実施形態における分散情報を追加した場合の一例を示す模式図である。 同実施形態における動作を説明するための模式図である。 同実施形態における動作を説明するための模式図である。 同実施形態における動作を説明するための模式図である。 同実施形態における動作を説明するための模式図である。
符号の説明
100,101,…,10n-1…保存サーバ装置、110,111,11n-1…保存部、120,121,12n-1…通信部、130,131,13n-1…制御部、140,141,14n-1…XOR演算部、20…分散情報追加装置、21…保存部、22…入力部、23…制御部、24…分散情報生成部、25…通信部、26…出力部、NW…ネットワーク。

Claims (5)

  1. 分散数n個(但し、2<n)の分散情報のうち、任意の2個の分散情報から秘密情報Kを復元可能な(2,n)型の秘密分散法を用い、前記秘密情報Kをn−1個に分割した結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てて生成可能なn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)と、前記各第1分割秘密データのサイズと同一サイズのゼロ値に行番号j=0を割り当てて生成可能な第2分割秘密データK(0)と、前記各分割秘密データのサイズ以上のサイズを有するn−1個の乱数に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当てて生成可能なn−1個の乱数データR(0),…,R(i),…,R(n-2)と、前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び前記乱数データR(0),…,R(i),…,R(n-2)から算出可能なn(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)(但し、(+)は排他的論理和を表す記号)とに基づいて、前記各分散部分データにおける同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に行番号jを割り当てて生成可能なn個の分散情報D(0),…,D(j),…,D(n-1)のうち、生成されたn’個(但し、2≦n’<n)の分散情報を個別に保存し且つ当該保存する分散情報の行番号jにより個別に識別可能なn’台の第1保存サーバ装置と、
    前記第1保存サーバ装置の行番号jの値とは異なる値の行番号jにより個別に識別可能なn−n’台の第2保存サーバ装置と
    の合計n台の保存サーバ装置に通信可能で且つ、2台の第1保存サーバ装置内の分散情報に基づいて、いずれかの第2保存サーバ装置の行番号jを有する新たな分散情報D(j)を生成し、前記新たな分散情報D(j)を当該行番号jにより識別可能な第2保存サーバ装置に追加するための分散情報追加装置であって、
    書き込まれたデータを記憶するための記憶手段と、
    前記n台の保存サーバ装置を個別に識別可能な行番号jのうち、2台の第1保存サーバ装置を識別可能な行番号x,yと、少なくとも1台の第2保存サーバ装置を識別可能な行番号zとを入力するための入力手段と、
    前記入力された行番号x,y,zに基づいて、前記行番号zの分散情報D(z)を構成する分散部分データD(z,i)に関し、当該分散部分データD(z,i)を示す列番号i毎に、当該分散部分データD(z,i)を作成するための行番号x,yの分散部分データD(x,i),D(y,i)を個別に示す列番号iを選択し、当該選択した列番号i及び当該D(x,i)の行番号xからなる第1番号(x,i)と、当該選択した列番号i及び当該D(y,i)の行番号yからなる第2番号(y,i)とを送出する番号選択手段と、
    前記送出された第1番号(x,i)を当該行番号xにより識別可能な第1保存サーバ装置に送信すると共に、前記送出された第2番号(y,i)を当該行番号yにより識別可能な第1保存サーバ装置に送信する列番号送信手段と、
    前記送信した第1又は第2番号内の列番号iが1個のとき、当該列番号iを送信した第1保存サーバ装置から前記選択した分散部分データを受信し、前記送信した第1又は第2番号内の列番号iが複数個のとき、当該列番号iを送信した第1保存サーバ装置から前記選択した分散部分データ同士の排他的論理和を演算した演算結果データを受信するデータ受信手段と、
    前記各第1保存サーバ装置から受信した各データを前記記憶手段に書き込む受信データ書込手段と、
    前記記憶手段内の各データ同士の排他的論理和を演算することにより、列番号iの分散部分データD(z,i)を作成する部分データ作成手段と、
    前記作成した分散部分データD(z,i)を前記記憶手段に書き込む部分データ書込手段と、
    前記分散部分データD(z,i)の書き込みの後、前記記憶手段内の前記受信した各データを消去する受信データ消去手段と、
    前記消去の完了後、0以上n−2以下の列番号iのうち、分散部分データD(z,i)を作成していない列番号iに対し、前記番号選択手段、前記列番号送信手段、前記データ受信手段、前記受信データ書込手段、前記部分データ作成手段、前記部分データ書込手段及び前記受信データ消去手段を繰り返し実行するように当該各手段を制御する制御手段と、
    前記制御の完了後、前記記憶手段内のn−1個の分散部分データD(z,0),…,D(z,i),…,D(z,n-2)からなる追加対象の分散情報D(z)を、前記行番号zにより識別可能な第2保存サーバ装置に送信する分散情報送信手段と、
    を備えたことを特徴とする分散情報追加装置。
  2. 請求項1に記載の分散情報追加装置において、
    前記番号選択手段は、
    前記入力された行番号xにより識別可能な一方の第1保存サーバ装置の分散部分データD(x,i)に関し、当該分散部分データD(x,i)の列番号iに相当するn−1個の変数と、変数毎に分散部分データD(x,i)を選択するか否かを示すフラグとを互いに関連付けてなり、X[変数]=フラグの関係をもつ第1配列Xを前記記憶手段に設定する手段と、
    前記入力された行番号yにより識別可能な他方の第1保存サーバ装置の分散部分データD(y,i)に関し、当該分散部分データD(y,i)の列番号iに相当するn−1個の変数と、変数毎に分散部分データD(y,i)を選択するか否かを示すフラグとを互いに関連付けてなり、Y[変数]=フラグの関係をもつ第2配列Yを前記記憶手段に設定する手段と、
    前記入力された行番号x,y,zのうち、第1保存サーバ装置の行番号x,yの差分d=y−x(但し、x<y)を算出する手段と、
    前記各配列X,Yの全ての変数に対してフラグを0に初期化した後、前記行番号zの分散情報D(z)を構成する分散部分データD(z,i)を示す列番号iを変数hとして第1配列Xのフラグを立てることにより、前記第1配列XをX[h]=1と設定し、前記第2配列YをY[h]=0と設定する第1初期化手段と、
    前記変数h、前記差分d及び分散数nに基づいて、h+d=n−1(mod n)であるか否かを判定する第1判定手段と、
    前記第1判定手段による判定結果が否の場合、前記変数h及び前記差分dに基づいて、前記各配列X,YをX[h+d]=Y[h+d]=1と設定する第1の配列設定手段と、
    前記第1の配列設定手段による設定の後、前記差分d及び分散数nに基づいて、前記変数hをh=h+d (mod n)に更新する第1更新手段と、
    前記第1更新手段による更新の後、前記部分分散データD(z,i)を示す行番号z及び列番号i、行番号x、変数h、分散数nに基づいて、z−i=x−h(mod n)であるか否かを判定する第2判定手段と、
    前記第2判定手段による判定結果が否の場合、前記第1判定手段に戻って処理を繰り返す手段と、
    前記第1判定手段による判定結果がh+d=n−1(mod n)である場合、前記各配列X,Yの全ての変数に対してフラグを0に初期化した後、前記行番号zの分散情報D(z)を構成する分散部分データD(z,i)を示す列番号iを変数hとして第2配列Y[h]のフラグを立てることにより、前記第2配列YをY[h]=1と設定し、前記第1配列XをX[h]=0と設定する第2初期化手段と、
    前記第2初期化手段による設定の後、前記変数h及び前記差分dに基づいて、前記各配列X,YをX[h−d]=Y[h−d]=1と設定する第2の配列設定手段と、
    前記第2の配列設定手段による設定の後、前記差分d及び分散数nに基づいて、前記変数hをh=h−d (mod n)に更新する第2更新手段と、
    前記第2更新手段による更新の後、前記部分分散データD(z,i)を示す行番号z及び列番号i、行番号y、変数h、分散数nに基づいて、z−i=y−h(mod n)であるか否かを判定する第3判定手段と、
    前記第3判定手段による判定結果が否の場合、前記第2の配列設定手段に戻って処理を繰り返す手段と、
    前記第3判定手段による判定結果がz−i=y−h(mod n)である場合、フラグが1に設定された第1配列Xの変数を前記分散部分データD(x,i)の列番号iとして選択すると共に、フラグが1に設定された第2配列Yの変数を前記分散部分データD(y,i)の列番号iとして選択する第1選択手段と、
    前記第2判定手段による判定結果がz−i=x−h(mod n)である場合、フラグが1に設定された第1配列Xの変数を前記分散部分データD(x,i)の列番号iとして選択すると共に、フラグが1に設定された第2配列Yの変数を前記分散部分データD(y,i)の列番号iとして選択する第2選択手段と、
    前記第1又は第2選択手段により選択された各々の列番号iに基づいて、前記第1番号(x,i)及び前記第2番号(y,i)を送出する手段と、
    を備えたことを特徴とする分散情報追加装置。
  3. 分散数n個(但し、2<n)の分散情報のうち、任意の2個の分散情報から秘密情報Kを復元可能な(2,n)型の秘密分散法を用い、前記秘密情報Kをn−1個に分割した結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てて生成可能なn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)と、前記各第1分割秘密データのサイズと同一サイズのゼロ値に行番号j=0を割り当てて生成可能な第2分割秘密データK(0)と、前記各分割秘密データのサイズ以上のサイズを有するn−1個の乱数に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当てて生成可能なn−1個の乱数データR(0),…,R(i),…,R(n-2)と、前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び前記乱数データR(0),…,R(i),…,R(n-2)から算出可能なn(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)(但し、(+)は排他的論理和を表す記号)とに基づいて、前記各分散部分データにおける同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に行番号jを割り当てて生成可能なn個の分散情報D(0),…,D(j),…,D(n-1)のうち、生成されたn’個(但し、2≦n’<n)の分散情報を個別に保存し且つ当該保存する分散情報の行番号jにより個別に識別可能なn’台の第1保存サーバ装置と、
    前記第1保存サーバ装置の行番号jの値とは異なる値の行番号jにより個別に識別可能なn−n’台の第2保存サーバ装置と
    の合計n台の保存サーバ装置に通信可能であり、且つ記憶手段、入力手段、番号選択手段、列番号送信手段、データ受信手段、受信データ書込手段、部分データ作成手段、部分データ書込手段、受信データ消去手段、制御手段及び分散情報送信手段を有し、2台の第1保存サーバ装置内の分散情報に基づいて、いずれかの第2保存サーバ装置の行番号jを有する新たな分散情報D(j)を生成し、前記新たな分散情報D(j)を当該行番号jにより識別可能な第2保存サーバ装置に追加するための分散情報追加装置が実行する分散情報追加方法であって、
    前記入力手段が、前記n台の保存サーバ装置を個別に識別可能な行番号jのうち、2台の第1保存サーバ装置を識別可能な行番号x,yと、少なくとも1台の第2保存サーバ装置を識別可能な行番号zとを入力する入力工程と、
    前記番号選択手段が、前記入力された行番号x,y,zに基づいて、前記行番号zの分散情報D(z)を構成する分散部分データD(z,i)に関し、当該分散部分データD(z,i)を示す列番号i毎に、当該分散部分データD(z,i)を作成するための行番号x,yの分散部分データD(x,i),D(y,i)を個別に示す列番号iを選択し、当該選択した列番号i及び当該D(x,i)の行番号xからなる第1番号(x,i)と、当該選択した列番号i及び当該D(y,i)の行番号yからなる第2番号(y,i)とを送出する番号選択工程と、
    前記列番号送信手段が、前記送出された第1番号(x,i)を当該行番号xにより識別可能な第1保存サーバ装置に送信すると共に、前記送出された第2番号(y,i)を当該行番号yにより識別可能な第1保存サーバ装置に送信する列番号送信工程と、
    前記データ受信手段が、前記送信した第1又は第2番号内の列番号iが1個のとき、当該列番号iを送信した第1保存サーバ装置から前記選択した分散部分データを受信し、前記送信した第1又は第2番号内の列番号iが複数個のとき、当該列番号iを送信した第1保存サーバ装置から前記選択した分散部分データ同士の排他的論理和を演算した演算結果データを受信するデータ受信工程と、
    前記受信データ書込手段が、前記各第1保存サーバ装置から受信した各データを前記記憶手段に書き込む受信データ書込工程と、
    前記部分データ作成手段が、前記記憶手段内の各データ同士の排他的論理和を演算することにより、列番号iの分散部分データD(z,i)を作成する部分データ作成工程と、
    前記部分データ書込手段が、前記作成した分散部分データD(z,i)を前記記憶手段に書き込む部分データ書込工程と、
    前記受信データ消去手段が、前記分散部分データD(z,i)の書き込みの後、前記記憶手段内の前記受信した各データを消去する受信データ消去工程と、
    前記制御手段が、前記消去の完了後、0以上n−2以下の列番号iのうち、分散部分データD(z,i)を作成していない列番号iに対し、前記番号選択手段、前記列番号送信手段、前記データ受信手段、前記受信データ書込手段、前記部分データ作成手段、前記部分データ書込手段及び前記受信データ消去手段による各工程を繰り返し実行するように当該各手段を制御する制御工程と、
    前記分散情報送信手段が、前記制御の完了後、前記記憶手段内のn−1個の分散部分データD(z,0),…,D(z,i),…,D(z,n-2)からなる追加対象の分散情報D(z)を、前記行番号zにより識別可能な第2保存サーバ装置に送信する分散情報送信工程と、
    を備えたことを特徴とする分散情報追加方法。
  4. 分散数n個(但し、2<n)の分散情報のうち、任意の2個の分散情報から秘密情報Kを復元可能な(2,n)型の秘密分散法を用い、前記秘密情報Kをn−1個に分割した結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てて生成可能なn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)と、前記各第1分割秘密データのサイズと同一サイズのゼロ値に行番号j=0を割り当てて生成可能な第2分割秘密データK(0)と、前記各分割秘密データのサイズ以上のサイズを有するn−1個の乱数に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当てて生成可能なn−1個の乱数データR(0),…,R(i),…,R(n-2)と、前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び前記乱数データR(0),…,R(i),…,R(n-2)から算出可能なn(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)(但し、(+)は排他的論理和を表す記号)とに基づいて、前記各分散部分データにおける同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に行番号jを割り当てて生成可能なn個の分散情報D(0),…,D(j),…,D(n-1)のうち、生成されたn’個(但し、2≦n’<n)の分散情報を個別に保存し且つ当該保存する分散情報の行番号jにより個別に識別可能なn’台の第1保存サーバ装置と、
    前記第1保存サーバ装置の行番号jの値とは異なる値の行番号jにより個別に識別可能なn−n’台の第2保存サーバ装置と
    の合計n台の保存サーバ装置に通信可能で且つ記憶手段を有し、2台の第1保存サーバ装置内の分散情報に基づいて、いずれかの第2保存サーバ装置の行番号jを有する新たな分散情報D(j)を生成し、前記新たな分散情報D(j)を当該行番号jにより識別可能な第2保存サーバ装置に追加するための分散情報追加装置に用いられるプログラムであって、
    前記分散情報追加装置を、
    前記n台の保存サーバ装置を個別に識別可能な行番号jのうち、2台の第1保存サーバ装置を識別可能な行番号x,yと、少なくとも1台の第2保存サーバ装置を識別可能な行番号zとを入力するための入力手段、
    前記入力された行番号x,y,zに基づいて、前記行番号zの分散情報D(z)を構成する分散部分データD(z,i)に関し、当該分散部分データD(z,i)を示す列番号i毎に、当該分散部分データD(z,i)を作成するための行番号x,yの分散部分データD(x,i),D(y,i)を個別に示す列番号iを選択し、当該選択した列番号i及び当該D(x,i)の行番号xからなる第1番号(x,i)と、当該選択した列番号i及び当該D(y,i)の行番号yからなる第2番号(y,i)とを送出する番号選択手段、
    前記送出された第1番号(x,i)を当該行番号xにより識別可能な第1保存サーバ装置に送信すると共に、前記送出された第2番号(y,i)を当該行番号yにより識別可能な第1保存サーバ装置に送信する列番号送信手段、
    前記送信した第1又は第2番号内の列番号iが1個のとき、当該列番号iを送信した第1保存サーバ装置から前記選択した分散部分データを受信し、前記送信した第1又は第2番号内の列番号iが複数個のとき、当該列番号iを送信した第1保存サーバ装置から前記選択した分散部分データ同士の排他的論理和を演算した演算結果データを受信するデータ受信手段、
    前記各第1保存サーバ装置から受信した各データを前記記憶手段に書き込む受信データ書込手段、
    前記記憶手段内の各データ同士の排他的論理和を演算することにより、列番号iの分散部分データD(z,i)を作成する部分データ作成手段、
    前記作成した分散部分データD(z,i)を前記記憶手段に書き込む部分データ書込手段、
    前記分散部分データD(z,i)の書き込みの後、前記記憶手段内の前記受信した各データを消去する受信データ消去手段、
    前記消去の完了後、0以上n−2以下の列番号iのうち、分散部分データD(z,i)を作成していない列番号iに対し、前記番号選択手段、前記列番号送信手段、前記データ受信手段、前記受信データ書込手段、前記部分データ作成手段、前記部分データ書込手段及び前記受信データ消去手段を繰り返し実行するように当該各手段を制御する制御手段、
    前記制御の完了後、前記記憶手段内のn−1個の分散部分データD(z,0),…,D(z,i),…,D(z,n-2)からなる追加対象の分散情報D(z)を、前記行番号zにより識別可能な第2保存サーバ装置に送信する分散情報送信手段、
    として機能させるためのプログラム。
  5. 請求項4に記載のプログラムにおいて、
    前記番号選択手段は、前記分散情報追加装置を、
    前記入力された行番号xにより識別可能な一方の第1保存サーバ装置の分散部分データD(x,i)に関し、当該分散部分データD(x,i)の列番号iに相当するn−1個の変数と、変数毎に分散部分データD(x,i)を選択するか否かを示すフラグとを互いに関連付けてなり、X[変数]=フラグの関係をもつ第1配列Xを前記記憶手段に設定する手段と、
    前記入力された行番号yにより識別可能な他方の第1保存サーバ装置の分散部分データD(y,i)に関し、当該分散部分データD(y,i)の列番号iに相当するn−1個の変数と、変数毎に分散部分データD(y,i)を選択するか否かを示すフラグとを互いに関連付けてなり、Y[変数]=フラグの関係をもつ第2配列Yを前記記憶手段に設定する手段と、
    前記入力された行番号x,y,zのうち、第1保存サーバ装置の行番号x,yの差分d=y−x(但し、x<y)を算出する手段、
    前記各配列X,Yの全ての変数に対してフラグを0に初期化した後、前記行番号zの分散情報D(z)を構成する分散部分データD(z,i)を示す列番号iを変数hとして第1配列X[h]のフラグを立てることにより、前記第1配列XをX[h]=1と設定し、前記第2配列YをY[h]=0と設定する第1初期化手段、
    前記変数h、前記差分d及び分散数nに基づいて、h+d=n−1(mod n)であるか否かを判定する第1判定手段、
    前記第1判定手段による判定結果が否の場合、前記変数h及び前記差分dに基づいて、前記各配列X,YをX[h+d]=Y[h+d]=1と設定する第1の配列設定手段、
    前記第1の配列設定手段による設定の後、前記差分d及び分散数nに基づいて、前記変数hをh=h+d (mod n)に更新する第1更新手段、
    前記第1更新手段による更新の後、前記部分分散データD(z,i)を示す行番号z及び列番号i、行番号x、変数h、分散数nに基づいて、z−i=x−h(mod n)であるか否かを判定する第2判定手段、
    前記第2判定手段による判定結果が否の場合、前記第1判定手段に戻って処理を繰り返す手段、
    前記第1判定手段による判定結果がh+d=n−1(mod n)である場合、前記各配列X,Yの全ての変数に対してフラグを0に初期化した後、前記行番号zの分散情報D(z)を構成する分散部分データD(z,i)を示す列番号iを変数hとして第2配列Y[h]のフラグを立てることにより、前記第2配列YをY[h]=1と設定し、前記第1配列XをX[h]=0と設定する第2初期化手段、
    前記第2初期化手段による設定の後、前記変数h及び前記差分dに基づいて、前記各配列X,YをX[h−d]=Y[h−d]=1と設定する第2の配列設定手段、
    前記第2の配列設定手段による設定の後、前記差分d及び分散数nに基づいて、前記変数hをh=h−d (mod n)に更新する第2更新手段、
    前記第2更新手段による更新の後、前記部分分散データD(z,i)を示す行番号z及び列番号i、行番号y、変数h、分散数nに基づいて、z−i=y−h(mod n)であるか否かを判定する第3判定手段、
    前記第3判定手段による判定結果が否の場合、前記第2の配列設定手段に戻って処理を繰り返す手段、
    前記第3判定手段による判定結果がz−i=y−h(mod n)である場合、フラグが1に設定された第1配列Xの変数を前記分散部分データD(x,i)の列番号iとして選択すると共に、フラグが1に設定された第2配列Yの変数を前記分散部分データD(y,i)の列番号iとして選択する第1選択手段、
    前記第2判定手段による判定結果がz−i=x−h(mod n)である場合、フラグが1に設定された第1配列Xの変数を前記分散部分データD(x,i)の列番号iとして選択すると共に、フラグが1に設定された第2配列Yの変数を前記分散部分データD(y,i)の列番号iとして選択する第2選択手段、
    前記第1又は第2選択手段により選択された各々の列番号iに基づいて、前記第1番号(x,i)及び前記第2番号(y,i)を送出する手段、
    として機能させるためのプログラム。
JP2008064416A 2008-03-13 2008-03-13 分散情報追加装置、方法及びプログラム Active JP4966232B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008064416A JP4966232B2 (ja) 2008-03-13 2008-03-13 分散情報追加装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008064416A JP4966232B2 (ja) 2008-03-13 2008-03-13 分散情報追加装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009222778A true JP2009222778A (ja) 2009-10-01
JP4966232B2 JP4966232B2 (ja) 2012-07-04

Family

ID=41239672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008064416A Active JP4966232B2 (ja) 2008-03-13 2008-03-13 分散情報追加装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4966232B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014509753A (ja) * 2011-03-31 2014-04-21 パナソニック株式会社 秘密分散装置、分散装置および秘密分散方法
JP6300286B1 (ja) * 2016-12-27 2018-03-28 株式会社ZenmuTech アクセス管理システム、アクセス管理方法及びプログラム
JP2018110442A (ja) * 2018-02-21 2018-07-12 株式会社ZenmuTech アクセス管理システム、アクセス管理方法及びプログラム
JP2020064245A (ja) * 2018-10-19 2020-04-23 株式会社日立製作所 秘密分散装置、秘密分散システム、及び秘密分散方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004341152A (ja) * 2003-05-15 2004-12-02 Oki Electric Ind Co Ltd 秘密分散方法、秘密分散システム、及び分散演算装置
JP2005229178A (ja) * 2004-02-10 2005-08-25 Ntt Communications Kk 機密情報管理システム、機密情報管理方法、および機密情報管理プログラム、並びに機密情報管理システム用端末プログラム
JP2007124032A (ja) * 2005-10-25 2007-05-17 Toshiba Corp 秘密分散装置、方法及びプログラム
JP2009010531A (ja) * 2007-06-26 2009-01-15 Toshiba Corp 秘密分散装置、方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004341152A (ja) * 2003-05-15 2004-12-02 Oki Electric Ind Co Ltd 秘密分散方法、秘密分散システム、及び分散演算装置
JP2005229178A (ja) * 2004-02-10 2005-08-25 Ntt Communications Kk 機密情報管理システム、機密情報管理方法、および機密情報管理プログラム、並びに機密情報管理システム用端末プログラム
JP2007124032A (ja) * 2005-10-25 2007-05-17 Toshiba Corp 秘密分散装置、方法及びプログラム
JP2009010531A (ja) * 2007-06-26 2009-01-15 Toshiba Corp 秘密分散装置、方法及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014509753A (ja) * 2011-03-31 2014-04-21 パナソニック株式会社 秘密分散装置、分散装置および秘密分散方法
JP6300286B1 (ja) * 2016-12-27 2018-03-28 株式会社ZenmuTech アクセス管理システム、アクセス管理方法及びプログラム
JP2018106026A (ja) * 2016-12-27 2018-07-05 株式会社ZenmuTech アクセス管理システム、アクセス管理方法及びプログラム
JP2018110442A (ja) * 2018-02-21 2018-07-12 株式会社ZenmuTech アクセス管理システム、アクセス管理方法及びプログラム
JP2020064245A (ja) * 2018-10-19 2020-04-23 株式会社日立製作所 秘密分散装置、秘密分散システム、及び秘密分散方法
JP6997696B2 (ja) 2018-10-19 2022-01-18 株式会社日立製作所 秘密分散装置、秘密分散システム、及び秘密分散方法

Also Published As

Publication number Publication date
JP4966232B2 (ja) 2012-07-04

Similar Documents

Publication Publication Date Title
JP4304215B2 (ja) 秘密分散装置、方法及びプログラム
JP4334582B2 (ja) 秘密分散装置、方法及びプログラム
CN110709863B (zh) 使用秘密共享的逻辑回归建模方法、存储介质及系统
JP5411994B2 (ja) 秘密分散システム、秘密分散装置、秘密分散方法、秘密ソート方法、秘密分散プログラム
JP4783119B2 (ja) 秘密分散装置、方法及びプログラム
JP2006121689A (ja) Drmシステムにおけるシステムキーを共有及び生成する方法、並びにその装置
JP7089303B2 (ja) 推論装置、処理システム、推論方法及び推論プログラム
TW202127223A (zh) 虛擬使用者共享方法、系統以及電腦可讀取記錄媒體
CN109245878B (zh) 一种区块链的新区块生成方法、设备及可读存储介质
JP4966232B2 (ja) 分散情報追加装置、方法及びプログラム
JP2010211295A (ja) データ更新装置、データ更新装置のデータ更新方法およびデータ更新プログラム
JP2007300157A (ja) 秘密分散システム、装置及びプログラム
WO2019235095A1 (ja) 匿名署名システム、署名生成装置、匿名署名生成装置、検証装置、匿名署名方法及びプログラム
KR20140128685A (ko) 일정 수 이상의 파일 조각으로 원본 파일을 복구하는 파일 관리 장치 및 방법
US20210157955A1 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
JP2015179448A (ja) 情報処理装置、情報処理方法、情報処理プログラム、情報処理システム、ストレージ、ストレージ制御方法、及び、ストレージ制御プログラム
JP2010096787A (ja) 秘密情報分散装置、秘密情報分散プログラム、秘密情報分散方法、秘密情報復元装置、秘密情報復元プログラム、秘密情報復元方法、及び秘密情報分散復元システム
JP2008136193A (ja) 署名生成装置、署名検証装置、それらの方法及びプログラム
JP2016151797A (ja) 情報処理システム、その制御方法、及びプログラム
JP2010107947A (ja) Shaアルゴリズム基盤のメッセージスケジュール演算方法、メッセージ圧縮演算方法及びこれを行う暗号装置
CN114817954A (zh) 图像的处理方法、系统和装置
KR101987752B1 (ko) 차량 내 탑재되어 있는 ecu들에 대해 암호화된 방식으로 세션 키의 배포를 처리하는 키 배포 처리 장치 및 그 동작 방법
JP6203532B2 (ja) 半導体記憶装置及びデータ処理システム
JPWO2016136201A1 (ja) 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体
CN116760547B (zh) 分布式私钥管理方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120223

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: 20120306

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120330

R150 Certificate of patent or registration of utility model

Ref document number: 4966232

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350