(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-07
(45)【発行日】2022-03-15
(54)【発明の名称】秘密分散システム
(51)【国際特許分類】
G09C 1/00 20060101AFI20220308BHJP
G06F 21/60 20130101ALI20220308BHJP
H04L 9/08 20060101ALI20220308BHJP
【FI】
G09C1/00 650Z
G06F21/60 320
H04L9/08
(21)【出願番号】P 2018020566
(22)【出願日】2018-02-07
(62)【分割の表示】P 2015509790の分割
【原出願日】2013-04-03
【審査請求日】2018-03-09
【審判番号】
【審判請求日】2019-12-06
(73)【特許権者】
【識別番号】515275247
【氏名又は名称】岩村 惠市
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】岩村 惠市
【合議体】
【審判長】田中 秀人
【審判官】石井 茂和
【審判官】山崎 慎一
(56)【参考文献】
【文献】特開2013-020314(JP,A)
【文献】特開2001-034164(JP,A)
【文献】高橋慧,岩村恵市,クラウドコンピューティングに適した秘密分散法,電子情報通信学会技術研究報告,第112巻 第226号,2012年9月27日,p.11-16
【文献】電子情報通信学会,原稿の提出について,[online],[2016年12月28日閲覧],インターネット<URL:https://www.ieice.org/jpn/kenkyuukai/geikou.html>
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00, G06F 21/60, H04L 9/08
(57)【特許請求の範囲】
【請求項1】
少なくとも1つの秘密情報S
i(iは1以上の整数)の各々をn個に分散し、前記n個のうちのk個(kはn以下の整数)の分散値から前記秘密情報S
iを復元でき、k-1個以下の分散値からは前記秘密情報S
iを復元できない秘密分散システムであって、
第1の鍵を保持する鍵サーバと、
前記第1の鍵とは異なる第2の鍵を保持し、前記分散値を生成するディーラと、
前記ディーラにより生成された分散値を保存するデータサーバと、を備え、
前記ディーラは、
前記第1の鍵を用いて前記鍵サーバが生成した暗号値Eid(i,j)及び前記第2の鍵を用いて前記ディーラ自身が生成した暗号値Eid(i,j)の少なくとも一方を含む(k-1)個の暗号値Eid(i,j)を取得し、下記の基本方程式(1)に基づいて、前記(k-1)個の暗号値Eid(i,j)に応じた(k-1)個の方程式を作成し、前記鍵サーバ又は前記ディーラの識別情報X
jの値及び暗号値Eid(i,j)の値から(k-1)個の方程式を解いて未知定数a
i(1)~a
i(k-1)を算出し、
【数1】
下記の基本方程式(2)に基づいて、データサーバ毎に、算出した前記未知定数a
i(1)~a
i(k-1)の値、前記秘密情報S
iの値、及び前記データサーバの識別情報D
dの値から各データサーバに保存する分散値W(i,d)を算出し、算出した前記分散値W(i,d)を前記データサーバに送信する、
【数2】
秘密分散システム。
【請求項2】
前記秘密情報を復元する復元端末をさらに備え、
前記復元端末は、
前記暗号値Eid(i,j)及び前記分散値W(i,d)の合計値がk個になるように、前記鍵サーバ又は前記ディーラから前記暗号値Eid(i,j)を取得すると共に、前記データサーバから前記分散値W(i,d)を取得し、
取得したk個の前記暗号値Eid(i,j)及び前記分散値W(i,d)から前記基本方程式(1)及び前記基本方程式(2)を用いてk個の方程式を作成し、前記k個の方程式を解いて前記秘密情報S
iを復元する、
請求項1に記載の秘密分散システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報を安全に分散管理する分散管理技術に関する。
【背景技術】
【0002】
近年、新たなネットワーク技術としてクラウドコンピューティングが注目されている。クラウドコンピューティングとはユーザの持つデータをクラウドと呼ばれるネットワーク上の複数のサーバにより構成される仮想の大容量ストレージに分散・保存し、そのデータをどこからでもネットワーク経由でユーザが必要に応じてアクセスすることを可能にする技術である。また、秘匿計算を実現することで単にデータをストレージするだけでなく、クラウド上に分散・保存されたデータを用いて個々のデータを秘匿しながら任意の計算を行うことが望まれる。
【0003】
この様な秘匿計算を実現するために秘密分散の利用が注目されている。秘密分散法とは1個の秘密情報をn個に分散し、n個に分散した分散情報の内、k個(k≦n)の情報を集めることで元の秘密情報が復元できるという技術である。また、k個未満の情報からは一切秘密情報に関する情報を得ることができない。この秘密分散法として、Shamirによる(k,n)秘密分散法が良く知られている。(k,n)秘密分散法を含む従来の秘密分散システムは分散情報を保存する複数のデータサーバと、秘密情報を分散するディーラまたは秘密情報を復元する復元端末からなる。すなわち、秘密分散時にユーザは自分が所有する秘密情報の分散をディーラに依頼し、ディーラは秘密分散演算を行いn個の分散値を計算して、その値を各々n個のデータサーバに分散保存する。一般に、ディーラは秘密分散時のみ存在するとされる。一方、復元時にはユーザは復元したい秘密情報に対する分散値をk個のデータサーバから復元端末に集めて復元を行う。この復元端末も一般には、データ復元時のみ存在する。
【0004】
Shamirの(k,n)秘密分散法は次式のようなk-1次の多項式を設定(Sは秘密情報、a1~ak-1は乱数で与えられる。)し、n個のデータサーバの識別情報をD
d
(d=1,…,n)としたときのW
d
が、各データサーバが保存する分散値となる。このk-1次多項式はk個の分散値W1,…,Wkが集まれば解く(秘密情報Sを求める)ことができる。
【0005】
【0006】
一般に、クラウドが扱うデータは顧客から預かった情報であり、かつ大容量であることから秘密分散を用いたクラウドシステムには以下のような要件が望まれている。
【0007】
(I) 分散値を保存するデータサーバのうちいくつか(n-k個以下)が破損しても元のデータを復元することができる。
(II) 秘密分散によって増加する記憶容量をn倍以下に抑えることができる。
(III)k個未満のサーバから分散値が集まっても、秘密情報の部分的漏えいが生じず、少なくとも計算量的安全性を持つ。
【0008】
まず、(I) の要件について考える。クラウドコンピューティングは複数のサーバにより構成されており、顧客からの情報を預かっていることから、これらのサーバのうちのいくつかが災害による停電やヒューマンエラー等によりダウンしても影響がないことが求められる。この要件は、従来法である(k,n)秘密分散法によって実現できる。
【0009】
次に、(II)の要件は、これからよりクラウドシステムが普及していくために重要である。特に、クラウドコンピューティングでは膨大なデータを扱うため、少しのデータ増加が大量のデータ増加になる分散手法は記憶容量的に問題がある。しかし、(k,n)秘密分散法は、1つの分散情報のデータサイズを元の秘密情報よりも小さくすることができないため、1個のデータ増加がn個のデータ増加となり、容量効率が非常に悪い。よって、従来法である(k,n)秘密分散法は(I)(II)の要件を同時に満たすことができない。それに対して、秘密分散法の容量が削減可能な手法としてランプ型秘密分散法が知られている。ランプ型秘密分散法は、ユーザの記憶容量を(k,n)秘密分散法と比べて1/L倍(1≦L≦k)にできるので、ランプ型秘密分散を用いれば(I)(II)の要件は実現できる。
【0010】
また、(III)の要件はクラウドコンピューティングの安全性を保証するために必要である。ランプ型秘密分散法は、ユーザの記憶容量を(k,n)秘密分散法と比べて1/L倍にできるが、ユーザの記憶容量を削減するほど、k個未満の分散情報から秘密情報の段階的な漏えいが起こるため、安全性に問題が生じることが知られている。よって、従来の代表的な秘密分散法であるShamirの(k,n)秘密分散法、及びランプ型秘密分散法は上記(I)~(III)の要件全てを満たさず、そのままクラウドシステムに適用することは不適である。
【先行技術文献】
【非特許文献】
【0011】
【文献】永井 良英, 高荒 亮, 岩村 惠市:”XORを用いた高速な秘密分散法のデータ容量削減に関する一手法 ”コンピュータセキュリティシンポジウム2012,1C2-3,Oct.2012.
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明は、上述の問題に鑑み、クラウドのような大容量データを扱うシステムにおいて、秘密情報を分散保存した複数のデータサーバのうち一部のデータサーバから秘密情報を復元することができ、記憶容量の低減に寄与すると共に、安全性にも優れる秘密分散システムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本開示の第1の態様に係る鍵サーバは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、分散値を得るために予め設定された鍵を用いてディーラからの情報を暗号化する。
【0014】
本開示の第2の態様に係るディーラは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、分散値を得るために予め設定された鍵を用いて自分の持つ情報を暗号化する。
【0015】
本開示の第3の態様に係るディーラは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバが計算した暗号化結果から得られる値と秘密情報とあらかじめ定められた値からデータサーバが保存する分散値を計算する。
【0016】
本開示の第4の態様に係るディーラは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバおよびディーラが計算した暗号化結果から得られる値と秘密情報とあらかじめ定められた値からデータサーバが保存する分散値を計算する。
【0017】
本開示の第5の態様に係る復元装置は、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバが計算した暗号化結果から得られる値とデータサーバが保存している値から秘密情報を復元する。
【0018】
本開示の第6の態様に係る復元装置は、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバおよびディーラが計算した暗号化結果から得られる値とデータサーバが保存している値から秘密情報を復元する。
【発明の効果】
【0019】
本発明は、クラウドのような大容量データを扱うシステムにおいて、秘密情報を分散保存した複数のデータサーバのうち一部のデータサーバから秘密情報を復元することができ、記憶容量の低減に寄与すると共に、安全性にも優れる秘密分散システムを提供することができる。
【図面の簡単な説明】
【0020】
【
図1】第1の実施の形態の秘密情報分散復元システムの構成図である。
【
図2】第1の実施の形態の情報提供端末12のブロック図である。
【
図3】第1の実施の形態の情報提供端末12が実行する分散値の作成及び送信処理ルーチンの一部を示したフローチャートである。
【
図4】第1の実施の形態の情報提供端末12が実行する分散値の作成及び送信処理ルーチンの残りを示したフローチャートである。
【
図5】第1の実施の形態の鍵サーバ14が実行する暗号化処理ルーチンを示したフローチャートである。
【
図6】第1の実施の形態の分散値の作成及び分散の処理を示した図である。
【
図7】第1の実施の形態の基礎方程式を示した図である。
【
図8】第1の実施の形態の情報提供端末12が実行する復元処理ルーチンを示したフローチャートである。
【
図9】第1の実施の形態の鍵サーバ14が実行する暗号化データ送信処理ルーチンを示したフローチャートである。
【
図10】第1の実施の形態のデータサーバ16が実行する分散値送信処理ルーチンを示したフローチャートである。
【
図11】第1の実施の形態の
秘密情報の復元の処理を説明する図である。
【
図13】第2の実施の形態の情報提供端末12が実行する分散値の作成及び送信処理ルーチンの一部を示したフローチャートである。
【
図14】第2の実施の形態の分散値の作成及び分散の処理を示した図である。
【
図15】第2の実施の形態の基礎方程式を示した図である。
【
図16】第3の実施の形態の情報提供端末12が実行する分散値の作成及び送信処理ルーチンの一部を示したフローチャートである。
【
図17】第3の実施の形態の鍵サーバ14が実行する暗号化処理ルーチンを示したフローチャートである。
【
図18】第3の実施の形態の分散値の作成及び分散の処理を示した図である。
【
図19】第4の実施の形態の情報提供端末12が実行する秘密情報の復元及び更新処理ルーチンの一部を示したフローチャートである。
【
図20】第4の実施の形態の情報提供端末12が実行する秘密情報の復元及び更新処理ルーチンの他の一部を示したフローチャートである。
【
図21】第4の実施の形態の情報提供端末12が実行する秘密情報の復元及び更新処理ルーチンの残りを示したフローチャートである。
【
図22】第4の実施の形態の鍵サーバ14が実行する暗号化データ送信処理ルーチンの一部を示したフローチャートである。
【
図23】第4の実施の形態の鍵サーバ14が実行する暗号化データ送信処理ルーチンの残りを示したフローチャートである。
【
図24】第4の実施の形態のデータサーバ16が実行する検索処理ルーチンを示したフローチャートである。
【
図25】第4の実施の形態の秘密情報の復元の処理を説明する図である。
【
図26】第4の実施の形態の分散値の作成及び分散の処理を示した図である。
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
【0022】
(第1の実施の形態)
まず、第1の実施の形態の構成を説明する。
図1に示すように、第1の実施の形態の秘密情報分散復元システムは、ネットワーク10を介して相互に接続された、情報提供端末(ディーラ)12、複数の鍵サーバ
14
1
、14
2
、・・・、14
k-1
、複数のデータサーバ
16
1
、16
2
、・・・、16
n-(k-1)
及び復元端末18を備えている。
複数の鍵サーバ14は、添字jで区別されている。jは、鍵サーバ14を識別する変数であり、1~(k-1)までの整数を表し、(k-1)は鍵サーバの総数を表す。また、複数のデータサーバ16
d
は、添字dで区別されている。dは、データサーバ16を識別する変数であり、1~(n-k+1)までの整数を表し、(n-k+1)はデータサーバの総数を表す。また、鍵サーバ14とデータサーバ16の総個数はn個である。
複数の鍵サーバ14
j
の各々を区別する必要がない場合は、「鍵サーバ14」と総称する。複数のデータサーバ16
d
の各々を区別する必要がない場合は、「データサーバ16」と総称する。
また、鍵サーバ14
j
の識別情報X
j
は
、
数値で与えられている。また、データサーバ16
d
の識別情報D
d
も、数値で与えられている。これらの識別情報も、添字j、dで区別されている。
【0023】
上記情報提供端末12、
鍵サーバ14、データサーバ16及び復元端末18は、同様の構成になっているので、情報提供端末12のみの構成を、
図2を参照して説明する。
図2に示すように、情報提供端末12は、CPU22、ROM24、RAM26、メモリ28、入力装置30、送受信装置32、表示装置34がバス36を介して相互に接続されて、構成されている。なお、メモリ28には後述する種々のテーブルが設けられている。
【0024】
次に、本実施の形態の作用を説明する。
図3及び
図4には、分散値の作成及び送信処理ルーチンが示されている。
図3に示すように、ステップ42で、秘密情報を分散させたいユーザの操作に従って、入力装置30が、複数の秘密情報S
i、
秘密情報S
i
を識別するための識別情報id
i
、ユーザのIDを入力する。
秘密情報は複数個あり、複数の秘密情報Sは、添字iで区別されている。添字iは、秘密情報Sを識別する変数であり、1~Iまでの整数を表し、Iは秘密情報の総数を表す。
これらは、メモリ28(
図6参照)に格納される。特に、複数の秘密情報S
i、秘密情報の
識別情報id
i
はテーブル92に格納される。ステップ44で、送受信装置32が、ユーザIDを各
鍵サーバ14に送信する(
図6参照)。
【0025】
図5には、
鍵サーバ14が実行する暗号化処理ルーチンが示されている。
上記の
図3のステップ44が実行されると、
図5のステップ84の、鍵サーバ14が行うユーザIDを受信したか否かの判断が肯定される。ステップ84の判断が肯定されると、ステップ86で、鍵サーバ14は、鍵サーバ14のメモリ28に記憶された
鍵サーバ14
j
が有する
固有鍵K
j
を読み出し、ステップ88で、鍵サーバ14は、受信した
ユーザIDを、読み出した固有鍵K
jで暗号化して、暗号値EID
jを作成し、ステップ90で、鍵サーバ14は、暗号化されたユーザID(暗号値EID
j)を、情報提供端末12に送信する。
【0026】
上記ステップ90が全ての鍵サーバで実行されると、
図3におけるステップ46の、全ての鍵サーバ14から暗号値EID
jを受信したか否かの判断が肯定されて、本ルーチンは、ステップ48に移行される。暗号値EID
jは、テーブル94(
図6)に記憶される。
情報提供端末12は、ステップ48で、秘密情報
Sを識別する変数i、鍵サーバ
14を識別する変数jを0に初期化し、ステップ50で、
変数iを1インクリメントし、ステップ52で変数jを1インクリメントする。情報提供端末12は、ステップ54で、秘密情報S
iの
識別情報id
i
を、受信した暗号値EID
jで暗号化して、暗号値Eid(i,j)を作成し、テーブル94に格納する。情報提供端末12は、ステップ56で、情報提供端末12のメモリ28におけるテーブル100(
図6参照)から、変数jで識別される鍵サーバ
14
j
の識別情報X
j
を読み出す。
【0027】
本実施の形態では、
図7に示す基礎方程式(1)(2)があらかじめ定められている。
基礎方程式(1)は「Eid(i,j)」を求める方程式であり、「Eid(i,j)」は、秘密情報S
i
の識別情報id
i
を、暗号化されたユーザIDで暗号化したときの暗号値である。基礎方程式(2)は「W(i,d)」を求める方程式であり、「W(i,d)」は、秘密情報S
i
をデータサーバ16
d
に保存するときの分散値である。
これらの基礎方程式(1)(2)は、秘密情報S
iを含む項と、
定数と変数とを含む複数の項とを有し、k-1個の
係数a
i(1)
~a
i(k-1)
が未知定数、
鍵サーバ14の識別情報X
j又は
データサーバ16
d
の識別情報D
dが変数として定められ
ている。
上記方程式(1)(2)は、これらの項に基づいて計算目標値であるEid(i、j)又はW(i、d)を求める方程式である。
【0028】
情報提供端末12は、ステップ58で、k-1個の未知数である上記定数a
i(1)
~a
i(k-1)
を求めるための方程式を、上記基礎方程式(1)に基づいて作成する。その際、変数X
j
には、ステップ56で読み出した鍵サーバ14
j
の識別情報X
j
を代入する。
【0029】
情報提供端末12は、ステップ60で、変数jが鍵サーバ
14の総数(k-1)か否かを判断する。変数jが総数(k-1)でない場合には、未だ上記方程式を作成していない鍵サーバ
14があるので、ステップ52に戻って、上記処理(ステップ52~60)を実行する。ステップ60で、
変数jが総数(k-1)と等しいと判断された場合には、
各鍵サーバ14について上記基礎方程式(1)を作成したので、すなわち、上記k-1個の未知数を求めるためのk-1個の方程式(
図7の式(3)、(4))が作成されたので、情報提供端末12は、
秘密情報S
i
毎にk-1個の未知数
a
i(1)
~a
i(k-1)
を上記作成した方程式から算出する。
【0030】
以上により、変数iで識別される秘密情報S
iに対応してk-1個の未知数
a
i(1)
~a
i(k-1)
が算出されたので、ステップ64で、情報提供端末12は、変数iが秘密情報の総数Iに等しいか否かを判断する。変数iが総数Iに等しくない場合には、未だ未知数が算出されていない秘密情報があるので、ステップ50に戻って、以上の処理(ステップ50~64)を実行する。ステップ64で変数iが総数Iに等しいと判断された場合には、
図7の式(5)、(6)が作成され、これらから未知数が求められ、全ての秘密情報について未知数が求められたので、
図4のステップ66で、情報提供端末12は、
複数のデータサーバ16を識別する変数dを0に初期化し、ステップ68で変数dを1インクリメントし、ステップ70で、変数dにより識別されるデータサーバ
16
d
の識別情報D
d
を、メモリ28のテーブル100から読み出す。
【0031】
情報提供端末12は、ステップ72で、変数iを再度初期化し、ステップ74で、変数iを1インクリメントし、ステップ76で、変数iにより識別される秘密情報S
iのデータサーバ
16
d
への分散値
W(i,d)を上記基礎方程式(2)(
図7参照)に基づいて、具体的には、
図7の式(9)~(11)に基づいて計算する。ステップ78で変数iが
総数Iに等しいと判断されない場合には、未だ、全ての秘密情報に対応して分散値が計算されていないので、ステップ74に戻って、以上の処理(ステップ74~78)を実行する。
ステップ78で変数iが
総数Iに等しいと判断された場合には、
図7の式(2)~(14)、式(15)~(17)により分散値が計算され、全ての秘密情報に対して変数dにより識別されるデータサーバ
16
d
への分散値が計算されたので、情報提供端末12は、ステップ80で、変数dにより識別されるデータサーバ
16
d
に、各秘密情報の分散値W(i,d)、
秘密情報の識別情報id
i
、及びユーザIDを送信する。情報提供端末12は、ステップ82で、変数dがデータサーバ
16の
総数(n-k+1)に等しいか否かを判断し、
変数dが総数(n-k+1)に等しくないと判断した場合には、ステップ68に戻って、以上の処理(ステップ68から82)を実行し、ステップ82で、
変数dが総数(n-k+1)に等しいと判断した場合には、情報提供端末12は、全てのデータサーバ
16に各秘密情報の分散値
W(i,d)を送信したので、本処理を終了する。
【0032】
以上の処理を、
図6及び
図7を参照して、鍵サーバ
14が2個、データサーバ
16が3個ある場合を説明する。
情報提供端末12のメモリ28には、各秘密情報
S
i
に対応して、その秘密情報の
識別情報id
i
が記憶されているテーブル92が設けられている。また、メモリ28には、秘密情報の
識別情報id
i
と各
鍵サーバ14からの暗号値
Eid(i,j)とを対応して記憶するテーブル94が設けられている。即ち、情報提供端末12からユーザIDが鍵サーバ
14
1
、14
2
にそれぞれ送信されると、各鍵サーバ
14
1
、14
2
で、ユーザIDを、鍵サーバ
14
1
、14
2
のそれぞれが有する固有鍵
K
1
、K
2
で、それぞれ暗号化して、暗号値EID
1、EID
2をそれぞれ情報提供端末12に送信する。暗号値EID
1、EID
2を受信した情報提供端末12は、
暗号値EID
1、EID
2のそれぞれで秘密情報の
識別情報id
1
~id
3
を暗号化して暗号値Eid(1,1)~Eid(3,2)を算出して、テーブル94に格納する。
【0033】
そして、上記のように、情報提供端末12は、各秘密情報について、k-1個の未知数を求めるための方程式を作成する。これを秘密情報がS1の場合を例として説明する。上記のように、k-1個、すなわち、この例では2個の未知数であるa
1(1)
、a
1(2)
を求めるための方程式((3)、(4))を作成し、これらの方程式(3)、(4)から、未知数a
1(1)
、a
1(2)
を算出する。次に、データサーバ16
1
~16
3
への分散値W(1,1)~W(3,1)を、上記基礎方程式(2)、(9)~(11)に基づいて算出し、算出した分散値W(1,1)~W(3,1)をデータサーバ16
1
~16
3
に送信する。分散値を受信したデータサーバ16
1
~16
3
は、メモリ28に設けられたテーブル102に、ユーザID及び各秘密情報の識別情報id
1
~id
3
に対応して分散値W(1,1)、W(2,1)、W(3,1)を格納する。なお、秘密情報がS1の場合以外のS2、S3についても同様に処理される。
【0034】
次に、復元端末18が実行する復元処理を
図8を参照して説明する。復元端末18は、すべての秘密情報を復元する場合、ステップ112で、秘密情報を識別する変数iを0に初期化し、ステップ114で変数iを1インクリメントし、ステップ116で、ユーザID及び秘密情報S
iの
識別情報id
i
をL個の鍵サーバ
14及びM個のデータサーバ
16に送信する(
図11参照)。なお、L+M=kである。
【0035】
ステップ116が実行されると、
図9における鍵サーバ14が実行する暗号化データ送信処理におけるステップ132の、ユーザID及び
秘密情報の識別情報id
i
を受信したか否かの判断が肯定される。ステップ132の判断が肯定されると、鍵サーバ
14
j
は、ステップ134で、鍵サーバ
14
j
の有する固有鍵K
jを読み出し、ステップ136で、ユーザIDを固有鍵K
jで暗号化して、暗号値EID
jを作成する。鍵サーバ
14
j
は、ステップ138で、暗号値EID
jで、
秘密情報の識別情報id
i
を暗号化して、暗号値Eid(i,j)を作成し、ステップ140で、暗号値Eid(i,j)を復元端末18に送信する(
図11参照)。
【0036】
また、
図8のステップ116が実行されると、データサーバ16が実行する分散値送信処理ルーチンにおける
図10に示すステップ142の、ユーザID及び
秘密情報の識別情報id
i
を受信したか否かの判断が肯定され、データサーバ16は、ステップ144で、ユーザID及び
秘密情報の識別情報id
i
とテーブル102(
図6)とから、分散値
W(i,d)を検索し、ステップ146で、検索された分散値
W(i,d)を復元端末18に送信する(
図11参照)。
【0037】
上記L個の鍵サーバ
14で
図9のステップ140が、上記M個のデータサーバで
図10のステップ146が実行されると、
図8のステップ118における、暗号値Eid(i、j)及び分散値W(i、d)を受信したか否かの判断が肯定される。ステップ118の判断が肯定されると、復元端末18は、ステップ120で、
図12に示すように、秘密情報
S
1
、未知数
a
1(1)
、a
1(2)
求めるための方程式(18)、(19)、(20)を作成して、作成した方程式(18)、(19)、(20)から未知数
a
1(1)
、a
1(2)
、及び秘密情報S
1を算出する。復元端末12は、ステップ124で、変数iが総数Iに等しいか否かを判断し、変数iが総数Iに等しくないと判断された場合には、未だ算出されていない秘密情報があるので、ステップ114に戻って、以上の処理(114~124)を実行する。ステップ124で、変数iが総数Iに等しい場合には、全ての秘密情報が算出されたので、本処理を終了する。
【0038】
次に、本実施の形態の効果を説明する。
上記の処理により、分散値を記憶するのはデータサーバ16のみであり、鍵サーバ14はユーザや秘密情報がどんなに増えても自分の鍵を管理するだけでよいので、全体の記憶容量は大きく削減される。
即ち、n個のサーバの内のk-1個の鍵サーバ14に保持された鍵データに基づいて得られた暗号値、k-1個の未知数、及び鍵サーバ14の識別情報の値から、上記基礎方程式(1)に基づいて、k-1個の未知数を求めるためのk-1個の方程式を作成し、作成された当該方程式からk-1個の未知数を求める。そして、求めたk-1個の未知数、及びn個のサーバの内の残りのn-(k-1)個のデータサーバ16に対応して定められた識別情報の値、上記基礎方程式(2)に基づいて、n-(k-1)個のデータサーバ16各々に分散する分散値を計算して、各データサーバ16が分散値を保持している。
よって、分散値をn個のデータサーバ16に保存させる必要はないので、メモリ容量を抑えることができ、上記(II)の課題を達成することができる。そして、上記鍵サーバ14に保持された鍵データから得られた暗号値、データサーバ16から得られた分散値、及び各サーバの識別情報の値から秘密情報を計算することができる。
この場合、分散値を保存するデータサーバ16のうちいくつか(n-k個以下)が破損しても、上記のように鍵サーバ14の鍵データを用いて、秘密情報及びk-1個の未知数を求めるための方程式を作成でき、この作成した方程式から秘密情報を計算(復元)することができる。よって、課題(I)を達成することができる。
【0039】
また、秘密情報及びk-1個の未知数を求めるための合計k個の方程式を作成できて初めて、秘密情報を計算(復元)することができるので、k個未満のサーバから分散値が集まっても、秘密情報及びk-1個の未知数を求めることができず、秘密情報の部分的漏えいが生じず、上記課題(III)も達成することができる。
【0040】
また、固有鍵Kjは鍵サーバ14
j
だけが知るため、用いる暗号化手段が計算量的に安全であるとすると、秘密情報に対応する識別情報の暗号化結果も計算量的に安全であり、それがわからない限り秘密情報Sは復元できない。たとえあるユーザの1つの秘密情報S
1
に関する平文の識別情報id
1
とその暗号値Eid(1,j)がわかったとしても、他の秘密情報S
2
またはS
3
に関する平文の識別情報に対する暗号値Eid(2,j)、Eid(3,j)はわからない。よって、秘密情報S
2
、S
3
の復元はできない。以上より、本実施の形態は用いる暗号化手段が安全ならば安全である。
【0041】
(第2の実施の形態)
次に、本発明の第2の実施の形態を説明する。
第2の実施の形態の構成は第1の実施の形態と同様であるのでその説明を省略する。
次に本実施の形態の作用を説明する。本実施の形態の作用は、第1の実施の形態の作用と同様の部分があるので、異なる部分のみを説明する。
ユーザが独立した複数のクラウドシステムを用い、クラウド側が自分に分散された分散情報にはアクセスできるが、k個以上の分散情報に同時にアクセスできないとき、このシステムはクラウド側にもユーザの秘密情報が漏えいしないため、安全なシステムが構築できる。しかし一般に、ユーザは1つのクラウドベンダーと契約することが多い。その場合、上記の手順では、全クラウドを管理するクラウドベンダー(サーバ側)はk個の分散情報を容易に集めることが可能であるため、ユーザの秘密情報が復元できる危険性がある。第2の実施の形態は、以上の事実に鑑み、クラウドベンダー(サーバ側)で秘密情報を復元できないようにするため、次のようにしている。
【0042】
第1の実施の形態では、
図3の分散値の作成及び送信処理のステップ44以降で、ユーザIDを全ての鍵サーバ
14へ送信し、鍵サーバ
14では、
図5に示すように、各鍵サーバ
14が、暗号化処理を実行するようにしていた。しかし、本実施の形態では、k-1個の鍵サーバ
14のうちの一部(M個)の鍵サーバ
14へユーザIDを送信して、当該一部(M個)の鍵サーバ
14で、上記暗号処理を実行し、情報提供端末12において有する鍵U
rで、
秘密情報の識別情報id
i
を暗号化するようにしている。
鍵U
r
は、添字rで区別される。rは、情報提供端末12に保持された鍵を識別する変数であり、1~Rまでの整数を表す。Rは情報提供端末12に保持された鍵の総数を表す。以下、
第2の実施形態について詳述する。
【0043】
すなわち、情報提供端末12は、
図13に示すように、上記ステップ42を実行した後、ステップ44Aで、ユーザIDを、k-1個のうちの一部(M個)の鍵サーバ
14へ送信する。例えば、
図14に示すように、2個の鍵サーバ
14
1
、14
2
の内の1つにユーザIDを送信する。ステップ46Aで、ユーザIDを送信した全ての
鍵サーバ14から暗号値EID
mを受信したか否かを判断
する。M個の鍵サーバ14は、添字mで区別される。mは、鍵サーバ14を識別する変数であり、1~Mまでの整数を表す。
そして、
暗号値EID
m
を受信したと判断した場合(テーブル94N(
図14参照)に暗号値
EID
m
を格納)には、ステップ48Aで、
秘密情報Sを識別する変数i、上記M個の鍵サーバ
14を識別する変数m、情報提供端末12に保持された鍵を識別する変数rを0に初期化し、ステップ50Aで、変数iを1インクリメントとし、ステップ52Aで、
変数mを1インクリメントする。
【0044】
情報提供端末12は、ステップ54Aで、秘密情報S
iの
識別情報id
i
を、変数mで識別される鍵サーバ
14
m
から受信した暗号値EID
mで暗号化して、暗号値Eid(i,m)を作成し、テーブル94N(
図14参照)に格納し、ステップ56で、変数mで識別される鍵サーバ
14
m
の識別情報X
m
を読み出し、ステップ58Aで上記と同様に
k-1個の未知数
a
i(1)
~a
i(k-1)
を求めるための方程式(
図15の式(3)参照)を作成する。
なお、基本方程式(1)A1の変数jは、変数mに読み替える。
【0045】
情報提供端末12は、ステップ60A1で、変数mがユーザIDを送信した鍵サーバ
14の総数Mに等しいか否かを判断し、変数mが総数Mに等しくない場合には、未だ上記方程式が作成されていない鍵サーバが存在するので、ステップ52Aに戻って、以上の処理(ステップ52A~60A1)を実行する。ステップ60A1で、mが総数Mに等しいと判断された場合には、情報提供端末12は、ステップ60A2で、変数rを1インクリメントし、ステップ60A3で、変数rで識別される鍵U
rを読み出し、ステップ60A4で、
秘密情報の識別情報id
i
を、読み出した鍵U
rで暗号化して、
暗号値Eid(i、r)を作成して、テーブル94N(
図14参照)に格納する。
【0046】
情報提供端末12は、ステップ60A5で、上記のように方程式(
図15の式(4)参照)を作成し(ステップ58A参照)
する。なお、基本方程式(1)A2の変数jは、変数rに読み替える。ステップ60A6で、
変数rが情報提供端末12が有する鍵の総数Rに等しいか否かを判断し、変数rが総数Rに等しくない場合には、未だ上記の方程式を作成されていない鍵があるので、ステップ60Aに戻って、以上の処理(ステップ60A2~ステップ60A6)を実行し、変数rが総数Rに等しい場合には、ステップ62で、以上の処理(ステップ52A~60A6)によって作成された上記方程式から、秘密情報S
iについての未知数
a
i(1)
~a
i(k-1)
を算出する。
【0047】
情報提供端末12は、ステップ64で、変数iが総数Iに等しいか否かを判断し、変数iが総数Iに等しくない場合には、ステップ50Aに戻って、以上の処理(50Aから64)を実行し、ステップ64で、変数iが総数Iに等しいと判断された場合には、
図4のステップ66に進む。本実施の形態でも、
図4のステップ76で分散値
W(i,d)が計算され(
図15の式(9)~(11)参照)、
図14に示すように、上記データサーバ
16
1
~16
3
に分散値
W(i,d)を送信することができる。なお、S
i=S
2、S
3についても同様に処理される。
【0048】
なお、復元する際には、情報提供端末12が保持する上記鍵Urを復元端末18においても保持し、上記鍵Urを用いてEid(i,r)を作成(ステップ60A2~60A6参照)すると共に、作成したEid(i,r)と、鍵サーバ14
m
から受信したEid(i,m)と、データサーバ16
d
から受信した分散値W(i,d)とから、秘密情報を復元する。
【0049】
以上説明したように、情報提供端末12が保持する鍵はユーザが決めることができる。これによって、ユーザの秘密情報はクラウド側に対しても秘匿できる。また、万が一システムがハッキングされて、鍵サーバ14の固有鍵やデータサーバ16の分散情報が漏えいしても、ユーザ端末である情報提供端末12の鍵さえ安全であれば、ユーザの秘密情報は漏えいしない。
【0050】
(第3の実施の形態)
次に、本発明の第3の実施の形態を説明する。
本実施の形態の構成は、第1及び第2の実施の形態と同様であるので、その説明を省略する。
本実施の形態の作用は、前述した第1の実施の形態の作用と同様の部分があるので、異なる部分のみを説明する。
前述した第1の実施の形態では、情報提供端末12が、
図3のステップ54で、秘密情報の
識別情報id
i
を暗号値EID
jで暗号化
する処理を実行しているが、情報提供端末12が分散する秘密情報が大量である場合、情報提供端末12の処理能力が低ければ分散処理における暗号化処理(ステップ54)の負荷が重い。そこで、本実施の形態では情報提供端末12の負荷を軽減するため、鍵サーバ14が
暗号化処理を実行するようにしている。
【0051】
すなわち、情報提供端末12は、ステップ42を実行した後、ステップ44Bで、ユーザID及び秘密情報の
識別情報id
i
を各鍵サーバ
14へ送信する(
図18参照)。これにより、鍵サーバ14が実行する
図17に示す暗号化処理おけるステップ84Bが肯定され、ステップ86で、上記のように、鍵サーバの有する固有鍵K
jが読み出され、ステップ88で、ユーザIDが固有鍵Kjで暗号化され、暗号値EID
jが作成される。ステップ89で、秘密情報の
識別情報id
i
を暗号値EID
jで暗号化して、暗号値Eid(i,j)を作成し、ステップ90Bで、暗号値Eid(i,j)を情報提供端末12に送信する(
図18参照)。これにより、
図16におけるステップ46Bが肯定され、ステップ48以降が実行される。
【0052】
これによって、鍵サーバ14が全部の秘密情報Sの識別情報の暗号化処理も行うため、情報提供端末12は秘密分散のみを行えばよく、暗号化処理を行わないため、情報提供端末12の負荷が小さくなる。なお、第3の実施の形態では、第2の実施の形態も同様も適用できる。
【0053】
(第4の実施の形態)
次に、本発明の第4の実施の形態を説明する。第4の実施の形態の構成は、第1の実施の形態の構成と同様であるのでその説明を省略する。次に、本実施の形態の作用を説明する。前述した第1から第3の実施の形態では、各ユーザ毎に秘密情報をデータサーバ16に分散するようにしていたが、本実施の形態では、各秘密情報を、複数のユーザが属するグループ毎に分散及び秘密情報の更新をする点で相違する。第1の実施の形態では、ユーザIDは、ユーザ個々を識別するのに対し、本実施の形態では、ユーザIDは、複数のユーザが属するグループを識別する点で相違するが、ユーザIDに対応して、第1の実施の形態と同様に、データサーバ16には、上記分散値が、ユーザID、秘密情報の識別情報に対応して記憶されている。
【0054】
詳細には後述するが、秘密情報を更新した場合、更新前の古いデータを削除可能であるが、本実施の形態では、更新したものを古いデータとともに記憶している。
本実施の形態では、データサーバ
16に記憶された分散値から秘密情報を計算(復元)し、計算した秘密情報を更新し、更新した秘密情報に基づいて、分散値を再度算出して、データサーバに分散するようにしている。
すなわち、
図19には、情報提供端末12が実行する復元更新処理ルーチンを示すフローチャートが示されている。情報提供端末12は、
図19のステップ202で、ユーザID
u及び秘密情報
S(u、i、v)の
識別情報id(u、i、v)を、L個の鍵サーバ
14及びM個のデータサーバ
16に送信する(
図25参照)。
添字uは、ユーザが属するグループを識別する変数である。
なお、上記のようにL+M=kである。本ステップ202が実行されると、鍵サーバ14が実行する暗号化処理ルーチンを示すフローチャートの
図22のステップ252における、鍵サーバ14は、ユーザID
u及び
秘密情報S(u、i、v)の識別情報id(u、i、v)を受信したか否かの判断が肯定され
る。鍵サーバ14は、
続くステップ254で、鍵サーバの有する固有鍵K
jを読み出し、ステップ256で、ユーザID
uを固有鍵K
jで暗号化して、暗号値EID(u、j)を作成する。
【0055】
鍵サーバ14は、ステップ258で、暗号値EID(u、j)を用いて秘密情報S(u、i、v)の識別情報id(u、i、v)を暗号化して暗号値Eid(u、i、j、v)を作成し、ステップ260で、暗号値Eid(u、i、j、v)を情報提供端末12に送信する。
【0056】
また、上記と同様に、
図19ステップ202が実行されると、データサーバ16が実行する検索処理ルーチンを示すフローチャートの
図24のステップ272における、ユーザID
u及び
秘密情報S(u、i、v)の識別情報id(u、i、v)を受信したか否かの判断が肯定される。ステップ272が肯定されると、データサーバ16は、ステップ274で、ユーザID
u及び
識別情報id(u、i、v)から、分散値W(u、i、t、v)を検索し、ステップ276で、分散値W(u、i、d、v)を情報提供端末12に送信する。
【0057】
上記L個の鍵サーバ
14で
図22のステップ260が及び上記M個のデータサーバ
16で
図24のステップ276が実行されると、
図19のステップ204における、暗号値Eid(u、i、j、v)及び分散値W(u、i、j、v)を受信したか否かの判断が肯定される。
【0058】
情報提供端末12は、ステップ206で、暗号値Eid(u、i、j、v)と分散値W(u、i、d、v)から前述したように未知数a
ui(1)
~a
ui(k-1)
、及び秘密情報S(u、i、v)を算出し、ステップ210で、ユーザの入力に従って、秘密情報S(u、i、v)を更新する、秘密情報S(u、i、v+1)とする。すなわち、vは、バージョン情報の基準となる値である。秘密情報が更新されると1だけ増加してバージョン情報は(v+1)となる。
【0059】
ステップ210が実行されると、情報提供端末12は、
図20のステップ212で、ユーザID
u、秘密情報S(u、i、v+1)の
識別情報id(u、i、v+1)、及びバージョン情報v+1を各鍵サーバへ送信する(
図26参照)。
【0060】
ステップ212が実行されると、
図23におけるステップ262における、ユーザID
u、
秘密情報S(u、i、v+1)の識別情報id(u、i、v+1)、及びバージョン情報
v+1を受信したか否かの判断が肯定される。
【0061】
鍵サーバ14は、ステップ264で、鍵サーバ
14の有する固有鍵K
jを読み出し、ステップ266で、ユーザID
uを固有鍵K
jで暗号化して、暗号値EID(u、j)を作成し、ステップ268で、id(u、i、v+1)を暗号値EID(u、j)で暗号化して、暗号値Eid(u、i、j、v+1)を作成し、ステップ270で、暗号値Eid(u、i、j、v+1)を送信する(
図26参照)。
【0062】
ステップ270が実行されると、
図20のステップ214における全ての鍵サーバ
14から暗号値Eid(u、i、j、v+1)を受信したか否かの判断が肯定される。
【0063】
情報提供端末12は、ステップ216で、鍵サーバ14を識別する変数jを初期化し、ステップ220で、変数jを1インクリメントして、ステップ222で、鍵サーバ14
j
の識別情報X
j
を読み出し、ステップ224で、上記のように、未知数a
ui(1)
~a
ui(k-1)
を算出するための方程式を算出する。
情報提供端末12は、ステップ226で、変数jが総数(k-1)に等しいか否かを判断し、変数jが総数(k-1)に等しくない場合には、上記方程式を作成していない鍵サーバ14が存在するので、ステップ220に戻って、以上の処理(ステップ220~226)を実行する。一方、情報提供端末12は、ステップ226で変数jが総数(k-1)に等しいと判断された場合には、情報提供端末12は、ステップ228で、上記のように、秘密情報S(u、i、v+1)について、未知数a
ui(1)
~a
ui(k-1)
を算出する。
【0064】
情報提供端末12は、
図21のステップ232で、データサーバ
16を識別する変数dを0に初期化し、ステップ234で、変数dを1インクリメントし、ステップ236で、変数dで識別されるデータサーバ
16
d
の
識別情報D
d
を読み出す。情報提供端末12は、ステップ242で、上記のように、秘密情報
S(u、i、v+1)のデータサーバ
16
d
への分散値W(u、i、d、v+1)を計算する。
【0065】
情報提供端末12は、ステップ246で、変数dにより識別されるデータサーバ16
d
に各秘密情報の分散値W(u、i、j、v+1)及びユーザIDuを送信し、ステップ248で、変数dが総数(n-k+1)に等しいか否かを判断する。
【0066】
ステップ248で変数dが総数(n-k+1)に等しいと判断されなかった場合には、情報提供端末12は、ステップ234に戻って、以上の処理(ステップ234~248)を実行する。
【0067】
ステップ248で変数dが
総数(n-k+1)に等しいと判断された場合には、本処理を終了する。これにより、各データサーバ
16のテーブル302~306(
図26参照)に、バージョンv+1についての分散値が格納される。
【0068】
(変形例)
次に、本発明の種々の変形例を説明する。
各実施の形態では、複数の未知数を求めるために多項式を用いているが、単項式の場合も同様に適用できる。なお、複数の未知数を単項式で求める例については、以下の発表論文に記載されている。
「永井 良英, 高荒 亮, 岩村 惠市:”XORを用いた高速な秘密分散法のデータ容量削減に関する一手法 ”コンピュータセキュリティシンポジウム2012,1C2-3,Oct.2012.」
【0069】
各実施の形態では、情報提供端末12と復元端末18は別々の装置としているが、これらは同一の装置としてもよい。
【0070】
第1の実施の形態では、情報提供端末が分散値を具体的に計算しているが、本発明はこれに限定されるものではなく、鍵サーバが分散値を計算し、計算した分散値を情報提供端末に送信し、情報提供端末が受信した分散値を、データサーバに送信して保持させるようにしてもよい。
【0071】
第1~第3の実施の形態では、全ての秘密情報を復元しているが、所望の秘密情報を選択的に復元するようにしてもよい。
【0072】
各実施の形態では、情報を分散する情報提供端末は、まず各鍵サーバに自分のユーザIDを送り、各鍵サーバは自分が管理する鍵で暗号化したユーザIDの暗号値EIDをユーザに送り返す処理を行った。しかし、ユーザIDはユーザに固有であるので、ユーザが複数回に分けて秘密を分散する場合などは、ユーザが自分の暗号値EIDを保存しておけば、以降その処理を省略することができる。また、情報提供者に予め暗号値EIDを設定しておくとしてもよい。
【0073】
例えば、以下のような応用が可能である。
次世代電力網と呼ばれるスマートグリッドでは、既存の電力網の監視制御や計測に情報通信技術(ICT) を用いる。スマートグリッドにおいて企業や工場、家庭などの電力需要家の電力利用情報は、通信機能を有する電力計(スマートメータ)で計測される。スマートメータで計測された電力利用情報は、通信を用いて定期的にメータデータ管理システムMDMS(Meter Data Management System) に伝達され蓄積される。蓄積された電力利用情報は、電力系統制御や課金のために利用されるが、一方で定期的に計測された電力利用情報には、需要家のプライバシ情報も含まれている。例えば、家庭内でいつどのような行動がなされたか、あるいはどのような電化製品を保有しているか、さらには生活パタンまでも類推できる可能性も排除できない。そのため秘密分散法を用いることで、電力利用情報に含まれるプライバシ情報を保護しつつ、電力系統制御や課金に関する利用の利便性を損なわない方式が実現できる。
【0074】
まず、上記を従来の秘密分散によって実現することを考える。この場合、スマートメータがディーラとなり、電力利用情報を秘密分散して複数のデータサーバに当たるMDMSに分散させる。この場合、MDMSは複数台必要であるため、n=kとしても攻撃耐性を示すkを大きくすればするだけコストがかかり、かつ、各スマートメータは少なくともk個のMDMSと回線を結ぶ必要があるため、大きくそのシステム仕様を変更する必要がある。
【0075】
それに対して、本発明を以下のように用いることを考える。まず、各スマートメータは自分のIDを持ち、鍵サーバの鍵でそれを暗号化した暗号値EIDjを保存しているとする。各スマートメータは発生した電力利用情報の識別情報idi(電力利用情報発生の日付など)を暗号値EIDjで暗号化して、その値を基に多項式の係数を定め、MDMS(データサーバ)に保存する分散値を生成し、MDMSに送信する。n=kとすれば、MDMSは1台でよく、かつ各スマートメータはそのMDMSとの回線を持てばよいので、システム変更はほとんど必要ない。また、暗号値EIDjは予めスマートメータに保存されているため、事前の通信を必要とせず、その通信手順などもほとんど変更する必要がない。さらに、kは任意に大きくできるので、必要な攻撃耐性を簡単に実現できる。データ復元時に需要家は、MDMSと鍵サーバから必要な分散値を受信して必要な情報を得る。
【0076】
また、各実施の形態では、鍵サーバは独立に設定したが、1つの鍵サーバが複数の鍵を管理するようにしてもよい。
【0077】
また、スマートメータを設置されたユーザが自分で鍵をスマートメータに設定できる場合、ユーザの同意なく復元できないシステムとすることもできる。
【0078】
このような形態は、前記スマートグリッドをはじめとして、次世代のインフラと呼ばれるセンサネットワーク等種々の応用が可能である。
【0079】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【0080】
各実施の形態ではk-1個の鍵サーバを有するとしたが、b-1個(b≦k)でも可能である。この場合、情報提供端末(ディーラ)が基礎方程式中k-b個の係数に情報提供端末(ディーラ)が定めた値を設定することにより、未知数の数(未定の係数の数)をb-1個とすることができる。よって、b-1個の方程式で解くことができる。
【0081】
以上の実施の形態において、以下の発明も提案できる。
【0082】
(態様1)
秘密情報を含む項、及び定数と変数とを含む項を有しかつこれらの項に基づいて計算目標値を求める、多項式で構成される基礎方程式が予め定められ、
nを2以上の整数、kを2以上かつnを超えない整数、bをk以下の整数とし、
n個のサーバの内のb-1個の第1のサーバ(鍵サーバ)に保持されたデータに基づいて得られた値(Eid(i,j))を前記計算目標値、k-1個の未知数を前記定数、及び前記第1のサーバに対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記k-1個の未知数中未定のb-1個の未知数を求めるためのb-1個の方程式を作成し、作成された当該方程式から前記b-1個の未知数を求め、当該求めた前記b-1個の未知数を前記定数とし、n個のサーバの内の残りのn-(b-1)個の第2のサーバ(データサーバ)に対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記計算目標値を、前記n-(b-1)個の第2のサーバ各々に分散する分散値(W(i,j))として計算する計算手段と、
前記計算手段により計算された前記n-(b-1)個の分散値各々を、当該分散値に対応する第2のサーバに送信する送信手段と、
を備えた秘密情報分散装置(ディーラ)。
【0083】
(態様2)
L、Mを1以上でnより小さい整数、L+Mがkとし、
請求項1の前記b-1個の第1のサーバ(鍵サーバ)の内のL個の第1のサーバ各々に前記保持されたデータから得られた値を前記計算目標値、(前記第1のサーバに対応して定められた値を前記変数、前記秘密情報を示す値及びb-1個の前記定数を未知数として、前記基礎方程式に基づいて、前記未知数を求めるためのL個の方程式を作成すると共に、)前記n-(b-1)個の第2のサーバ(データサーバ)の内のM個の第2のサーバ各々に前記保持されたデータから得られた値を前記計算目標値、前記第1、第2のサーバに対応して定められた値を前記変数、前記秘密情報を示す値及びk-1個の前記定数を未知数として、前記基礎方程式に基づいて、前記未知数を求めるためのk個の方程式を作成し、作成されたk個の方程式から前記未知数であるk-1個の前記定数及び前記秘密情報を示す値を計算する計算手段を備えた秘密情報計算装置(復元端末)。即ち、復元はL+M=k個の計算目標値から、k個の未知数を解く。
【0084】
(態様3)
秘密情報を含む項、及び定数と変数とを含む項を有しかつこれらの項に基づいて計算目標値を求める、多項式で構成される基礎方程式が予め定められ、
nを2以上の整数、kを2以上かつnを超えない整数、bをk以下の整数、mを1以上かつb-1より小さい整数、rをk-1-mでありかつ1以上の整数とし、
n個のサーバの内のb-1個の第1のサーバ(鍵サーバ)の内のm個の第1のサーバに保持されたデータに基づいて得られた値を前記計算目標値、r個のデータに基づいて得られた値(ディーラが有する鍵を用いる場合)を前記計算目標値(ただし、m+r=b-1)、b-1個の未知数を前記定数、及び前記第1のサーバ及びディーラに対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記b-1個の未知数を求めるためのb-1個の方程式を作成すると共に、b-1個の未知数を前記定数、及び前記第1のサーバに対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記b-1個の未知数を求めるためのb-1個の方程式を作成し、作成されたb-1個の方程式前記b-1個の未知数を求め、当該求めた前記b-1個の未知数を前記定数とし、n個のサーバの内の残りのn-(b-1)個の第2のサーバに対応して定められた値を前記変数として、前記方程式に基づいて、前記計算目標値を、前記n-(b-1)個の第2のサーバ各々に分散する分散値として計算する計算手段と、
前記計算手段により計算された前記n-(b-1)個の分散値各々を、当該分散値に対応する第2のサーバに送信する送信手段と、
を備えた秘密情報分散装置。
【0085】
(態様4)
f、g、及びhを1以上でnより小さい整数、fはm以下、gはr以下、hはb=f+g+hとなる数とし、
請求項3の前記mの第1のサーバの内のf個の第1のサーバ各々に前記保持されたデータから得られた値、及びディーラが持つr個のデータの内のg個のデータに基づいて得られた値、前記計算目標値、前記第1のサーバ及びディーラが持つ各値に対応して定められた値を前記変数、(前記秘密情報を示す値及びk-1個の前記定数を未知数として、前記基礎方程式に基づいて、第1の方程式を作成すると共に、)前記n-(b-1)個の第2のサーバの内のh個の第2のサーバ各々に前記保持されたデータから得られた値を前記計算目標値、前記第2のサーバに対応して定められた値を前記変数、前記秘密情報を示す値及びb-1個の前記定数を未知数として、前記基礎方程式に基づいて、前記未知数を求めるために合計b個の方程式を作成し、前記未知数であるb個の前記定数を計算し、b-1個の前記定数と前記秘密情報を示す値を計算する計算手段を備えた秘密情報計算装置。