JP6893708B2 - ディーラ、鍵サーバ、及び復元装置 - Google Patents
ディーラ、鍵サーバ、及び復元装置 Download PDFInfo
- Publication number
- JP6893708B2 JP6893708B2 JP2019221024A JP2019221024A JP6893708B2 JP 6893708 B2 JP6893708 B2 JP 6893708B2 JP 2019221024 A JP2019221024 A JP 2019221024A JP 2019221024 A JP2019221024 A JP 2019221024A JP 6893708 B2 JP6893708 B2 JP 6893708B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- value
- key
- server
- data
- 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.)
- Active
Links
Images
Description
本発明は情報を安全に分散管理する分散管理技術に関する。
近年,新たなネットワーク技術としてクラウドコンピューティングが注目されている。クラウドコンピューティングとはユーザの持つデータをクラウドと呼ばれるネットワーク上の複数のサーバにより構成される仮想の大容量ストレージに分散・保管し,そのデータをどこからでもネットワーク経由でユーザが必要に応じてアクセスすることを可能にする技術である。また,秘匿計算を実現することで単にデータをストレージするだけでなく,クラウド上に分散・保管されたデータを用いて個々のデータを秘匿しながら任意の計算を行うことが望まれる。
この様な秘匿計算を実現するために秘密分散の利用が注目されている。秘密分散法とは1個の秘密情報をn個に分散し,n 個に分散した分散情報の内,k 個(k≦n) の情報を集めることで元の秘密情報が復元できるという技術である。また,k 個未満の情報からは一切秘密情報に関する情報を得ることができない。この秘密分散法として,Shamirによる(k,n)秘密分散法が良く知られている。(k,n)秘密分散法を含む従来の秘密分散システムは分散情報を保存する複数のデータサーバと、秘密情報を分散するディーラまたは秘密情報を復元する復元端末からなる。すなわち、秘密分散時にユーザは自分が所有する秘密情報の分散をディーラに依頼し、ディーラは秘密分散演算を行いn個の分散値を計算して、その値を各々n個のデータサーバに分散保管する。一般に、ディーラは秘密分散時のみ存在するとされる。一方、復元時にはユーザは復元したい秘密情報に対する分散値をk個のデータサーバから復元端末に集めて復元を行う。この復元端末も一般には、データ復元時のみ存在する。
Shamirの(k,n)秘密分散法は次式のようなk-1次の多項式を設定(sは秘密情報、a 1〜a k-1は乱数)し、n個のサーバのIDをxj(j=1,…,n)としたときのWjが各サーバが保存する分散値となる。このk-1次多項式はk個の分散値W1,…,Wkが集まれば解く(秘密情報sを求める)ことができる。
Wj=s+a1xj+a2xj2+…+ak-1xjk-1
一般に、クラウドが扱うデータは顧客から預かった情報であり、かつ大容量であることから秘密分散を用いたクラウドシステムには以下のような要件が望まれている。
(I) 分散値を保存するサーバのうちいくつか(n-k以下)が破損しても元のデータを復元することができる。
(II) 秘密分散によって増加する記憶容量をn倍以下に抑えることができる。
(III) k個未満のサーバから分散値が集まっても、秘密情報の部分的漏えいが生じず,少なくとも計算量的安全性を持つ。
(II) 秘密分散によって増加する記憶容量をn倍以下に抑えることができる。
(III) k個未満のサーバから分散値が集まっても、秘密情報の部分的漏えいが生じず,少なくとも計算量的安全性を持つ。
まず,(I) の要件について考える。クラウドコンピューティングは複数のサーバにより構成されており,顧客からの情報を預かっていることから、これらのサーバのうちのいくつかが災害による停電やヒューマンエラー等によりダウンしても影響がないことが求められる。この要件は、従来法である(k,n)秘密分散法によって実現できる。
次に、(II) の要件は,これからよりクラウドシステムが普及していくために重要である。特に,クラウドコンピューティングでは膨大なデータを扱うため,少しのデータ増加が大量のデータ増加になる分散手法は記憶容量的に問題がある。しかし, (k,n) 秘密分散法は,1つの分散情報のデータサイズを元の秘密情報よりも小さくすることができないため,1個のデータ増加がn個のデータ増加となり,容量効率が非常に悪い。よって、従来法である(k,n)秘密分散法は(I)(II)の要件を同時に満たすことができない。それに対して,秘密分散法の容量が削減可能な手法としてランプ型秘密分散法が知られている。ランプ型秘密分散法は,ユーザの記憶容量を(k,n) 秘密分散法と比べて1/L 倍(1≦L≦k)にできるので,ランプ型秘密分散を用いれば(I)(II)の要件は実現できる。
また、(III)の要件はクラウドコンピューティングの安全性を保証するために必要である。ランプ型秘密分散法は,ユーザの記憶容量を(k,n) 秘密分散法と比べて1/L 倍にできるが,ユーザの記憶容量を削減するほど,k 個未満の分散情報から秘密情報の段階的な漏えいが起こるため,安全性に問題が生じることが知られている。よって,従来の代表的な秘密分散法であるShamirの(k,n)秘密分散法,及びランプ型秘密分散法は上記(I)〜(III)の要件全てを満たさず,そのままクラウドシステムに適用することは不適である。
本発明は、上述の問題に鑑み、クラウドのような大容量データを扱うシステムにおいて、上記要件を満足する方法を提供することを目的とする。
上記目的を達成するため請求項1に記載の発明の鍵サーバは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k−1個以下では秘密情報を復元できないシステムにおいて、分散値を得るために予め設定された鍵を用いてディーラからの情報を暗号化する。
請求項2に記載の発明のディーラは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k−1個以下では秘密情報を復元できないシステムにおいて、分散値を得るために予め設定された鍵を用いて自分の持つ情報を暗号化する。
請求項3に記載の発明のディーラは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k−1個以下では秘密情報を復元できないシステムにおいて、鍵サーバが計算した暗号化結果から得られる値と秘密情報とあらかじめ定められた値からデータサーバが保存する分散値を計算する。
請求項4に記載の発明のディーラは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバおよびディーラが計算した暗号化結果から得られる値と秘密情報とあらかじめ定められた値からデータサーバが保存する分散値を計算する。
請求項5に記載の発明の復元装置は、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバが計算した暗号化結果から得られる値とデータサーバが保存している値から秘密情報を復元する。
請求項6に記載の発明の復元装置は、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバおよびディーラが計算した暗号化結果から得られる値とデータサーバが保存している値から秘密情報を復元する。
本発明は、上記要件を達成することができる。
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
(第1の実施の形態)
まず、第1の実施の形態の構成を説明する。
図1に示すように、第1の実施の形態の秘密情報分散復元システムは、ネットワーク10を介して相互に接続された、情報提供端末(ディーラ)12、複数(b‐1)の鍵サーバ14N1、14N2、・・・と、複数のデータサーバ16N1、16N2、16N3、・・・及び復元端末18を備えている。なお、bはk以下の数であるが、以降では簡単のためkとして説明する。また、鍵サーバとデータサーバの総個数はn個である。
まず、第1の実施の形態の構成を説明する。
図1に示すように、第1の実施の形態の秘密情報分散復元システムは、ネットワーク10を介して相互に接続された、情報提供端末(ディーラ)12、複数(b‐1)の鍵サーバ14N1、14N2、・・・と、複数のデータサーバ16N1、16N2、16N3、・・・及び復元端末18を備えている。なお、bはk以下の数であるが、以降では簡単のためkとして説明する。また、鍵サーバとデータサーバの総個数はn個である。
上記情報提供端末12、鍵サーバ14N1、14N2、・・・データサーバ16N1、16N2、16N3、・・・及び復元端末18は、同様の構成になっているので、情報提供端末12のみの構成を、図2を参照して説明する。図2に示すように、情報提供端末12は、CPU22、ROM24、RAM26、メモリ28、入力装置30、送受信装置32、表示装置34がバス36を介して相互に接続されて、構成されている。なお、メモリ28には後述する種々のテーブルが設けられている。
次に、本実施の形態の作用を説明する。
図3及び図4には、分散値の作成及び送信処理ルーチンが示されている。図3に示すように、ステップ42で、秘密情報を分散させたいユーザの操作に従って、入力装置30が、複数の秘密情報Si、秘密情報の識別データID(idi)、ユーザのIDを入力する。これらは、メモリ28(図6参照)に格納される。特に、複数の秘密情報Si、秘密情報の識別データID(idi)はテーブル92に格納される。ステップ44で、送受信装置32が、ユーザID(idi)を各サーバ14N1、14N2、・・・に送信する(図6参照)。
図3及び図4には、分散値の作成及び送信処理ルーチンが示されている。図3に示すように、ステップ42で、秘密情報を分散させたいユーザの操作に従って、入力装置30が、複数の秘密情報Si、秘密情報の識別データID(idi)、ユーザのIDを入力する。これらは、メモリ28(図6参照)に格納される。特に、複数の秘密情報Si、秘密情報の識別データID(idi)はテーブル92に格納される。ステップ44で、送受信装置32が、ユーザID(idi)を各サーバ14N1、14N2、・・・に送信する(図6参照)。
図5には、鍵サーバ14(14N1、14N2、・・・)が実行する暗号化処理ルーチンが示されている。
上記の図3のステップ44が実行されると、図5のステップ84の、鍵サーバ14が行うユーザIDを受信したか否かの判断が肯定される。ステップ84の判断が肯定されると、ステップ86で、鍵サーバ14は、鍵サーバ14のメモリ28に記憶された当該鍵サーバ14が有する固有鍵Kj(なお、jは鍵サーバ14を識別する変数である)を読み出し、ステップ88で、鍵サーバ14は、受信したユーザID(idi)を、読み出した固有鍵Kjで暗号化して、暗号値EIDjを作成し、ステップ90で、鍵サーバ14は、暗号化されたユーザID(暗号値EIDj)を、情報提供端末12に送信する。
上記の図3のステップ44が実行されると、図5のステップ84の、鍵サーバ14が行うユーザIDを受信したか否かの判断が肯定される。ステップ84の判断が肯定されると、ステップ86で、鍵サーバ14は、鍵サーバ14のメモリ28に記憶された当該鍵サーバ14が有する固有鍵Kj(なお、jは鍵サーバ14を識別する変数である)を読み出し、ステップ88で、鍵サーバ14は、受信したユーザID(idi)を、読み出した固有鍵Kjで暗号化して、暗号値EIDjを作成し、ステップ90で、鍵サーバ14は、暗号化されたユーザID(暗号値EIDj)を、情報提供端末12に送信する。
上記ステップ90が全ての鍵サーバで実行されると、図3におけるステップ46の、全ての鍵サーバ14から暗号値EIDjを受信したか否かの判断が肯定されて、本ルーチンは、ステップ48に移行される。暗号値EIDjは、テーブル94(図6)に記憶される。
情報提供端末12は、ステップ48で、秘密情報を識別する変数i、鍵サーバを識別する変数jを0に初期化し、ステップ50で、変数Iの変数iを1インクリメントし、ステップ52で変数jを1インクリメントする。情報提供端末12は、ステップ54で、秘密情報SiのID(idi)を、受信した暗号値EIDjで暗号化して、暗号値Eid(i,j)を作成し、テーブル94に格納する。情報提供端末12は、ステップ56で、情報提供端末12のメモリ28におけるテーブル100(図6参照)から、変数jで識別される鍵サーバjのID(xj)を読み出す。
情報提供端末12は、ステップ48で、秘密情報を識別する変数i、鍵サーバを識別する変数jを0に初期化し、ステップ50で、変数Iの変数iを1インクリメントし、ステップ52で変数jを1インクリメントする。情報提供端末12は、ステップ54で、秘密情報SiのID(idi)を、受信した暗号値EIDjで暗号化して、暗号値Eid(i,j)を作成し、テーブル94に格納する。情報提供端末12は、ステップ56で、情報提供端末12のメモリ28におけるテーブル100(図6参照)から、変数jで識別される鍵サーバjのID(xj)を読み出す。
本実施の形態では、図7に示す基礎方程式(1)(2)があらかじめ定められている。即ち、これらの基礎方程式(1)(2)は、秘密情報Siを含む項と、k−1個の変数ai1〜aik−1が未知定数、Xj又はDdが変数として定められ、定数と変数とを含む複数の項を有し、これらの項に基づいて計算目標値であるEid(i、j)又はW(i、d)を求める方程式である。
情報提供端末12は、ステップ58で、k−1個の未知数である上記定数ai1〜aik−1を求めるための方程式を、上記基礎方程式(1)に基づいて作成する。その際、変数XJには、ステップ56で読み出した鍵サーバJのID(Xj)を代入する。
情報提供端末12は、ステップ60で、変数jが鍵サーバの総数J(=k−1)か否かを判断する。変数jが総数Jでない場合には、未だ上記方程式を作成していない鍵サーバがあるので、ステップ52に戻って、上記処理(ステップ52〜60)を実行する。ステップ60で、変数jが総数Jと等しいと判断された場合には、各サーバについて上記基礎方程式(1)を作成したので、すなわち、上記k−1個の未知数を求めるためのk−1個の方程式(図7の式(3)、(4))が作成されたので、情報提供端末12は、k−1個の未知数を上記作成した方程式から算出する。
以上により、変数iで識別される秘密情報Siに対応してk−1個の未知数が算出されたので、ステップ64で、情報提供端末12は、変数iが秘密情報の総数Iに等しいか否かを判断する。変数iが総数Iに等しくない場合には、未だ未知数が算出されていない秘密情報があるので、ステップ50に戻って、以上の処理(ステップ50〜64)を実行する。ステップ64で変数iが総数Iに等しいと判断された場合には、図7の式(5)、(6)が作成され、これらから未知数が求められ、全ての秘密情報について未知数が求められたので、図4のステップ66で、情報提供端末12は、データサーバ16N1、16N2、16N3を識別する変数dを0に初期化し、ステップ68で変数dを1インクリメントし、ステップ70で、変数dにより識別されるデータサーバdのID(Dd)を、メモリ28のテーブル100から読み出す。
情報提供端末12は、ステップ72で、変数iを再度初期化し、ステップ74で、変数iを1インクリメントし、ステップ76で、変数iにより識別される秘密情報Siのデータサーバdへの分散値Widを上記基礎方程式(2)(図7参照)に基づいて、具体的には、図7の式(9)〜(11)に基づいて計算する。ステップ78で変数iが総数iに等しいと判断されない場合には、未だ、全ての秘密情報に対応して分散値が計算されていないので、ステップ74に戻って、以上の処理(ステップ74〜78)を実行する。ステップ78で変数iが総数iに等しいと判断された場合には、図7の式(2)〜(14)、式(15)〜(17)により分散値が計算され、全ての秘密情報に対して変数dにより識別されるデータサーバへの分散値が計算されたので、情報提供端末12は、ステップ80で、変数dにより識別されるデータサーバdに、各秘密情報の分散値W(i、d)、idi、及びユーザIDを送信する。情報提供端末12は、ステップ82で、変数dがデータサーバの総数Dに等しいか否かを判断し、変数d総数Dに等しくないと判断した場合には、ステップ68に戻って、以上の処理(ステップ68から82)を実行し、ステップ82で、変数dが総数Dに等しいと判断した場合には、情報提供端末12は、全てのデータサーバに各秘密情報の分散値を送信したので、本処理を終了する。
以上の処理を、図6及び図7を参照して、鍵サーバが2個、データサーバが3個ある場合を説明する。
情報提供端末12のメモリ28には、各秘密情報に対応して、その秘密情報のID(idi)が記憶されているテーブル92が設けられている。また、メモリ28には、秘密情報のIDと各サーバからの暗号値とを対応して記憶するテーブル94が設けられている。即ち、情報提供端末12からユーザIDが鍵サーバ14N1、14N2にそれぞれ送信されると、各鍵サーバ14N1、14N2で、ユーザIDを、鍵サーバ14N1、14N2のそれぞれが有する固有鍵k1、k2で、それぞれ暗号化して、暗号値EID1、EID2をそれぞれ情報提供端末12に送信する。暗号値EID1、EID2を受信した情報提供端末12は、EID1、EID2のそれぞれで秘密情報のID(id1〜id3)を暗号値EID1、EID2で暗号化して暗号値Eid(1、1)〜Eid(3、2)を算出して、テーブル94に格納する。
情報提供端末12のメモリ28には、各秘密情報に対応して、その秘密情報のID(idi)が記憶されているテーブル92が設けられている。また、メモリ28には、秘密情報のIDと各サーバからの暗号値とを対応して記憶するテーブル94が設けられている。即ち、情報提供端末12からユーザIDが鍵サーバ14N1、14N2にそれぞれ送信されると、各鍵サーバ14N1、14N2で、ユーザIDを、鍵サーバ14N1、14N2のそれぞれが有する固有鍵k1、k2で、それぞれ暗号化して、暗号値EID1、EID2をそれぞれ情報提供端末12に送信する。暗号値EID1、EID2を受信した情報提供端末12は、EID1、EID2のそれぞれで秘密情報のID(id1〜id3)を暗号値EID1、EID2で暗号化して暗号値Eid(1、1)〜Eid(3、2)を算出して、テーブル94に格納する。
そして、上記のように、情報提供端末12は、各秘密情報について、k−1個の未知数を求めるための方程式を作成する。これを秘密情報がS1の場合を例として説明する。上記のように、k−1個、すなわち、この例では2個の未知数であるa11、a12を求めるための方程式((3)、(4))を作成し、これらの方程式(3)、(4)から、未知数a11、a12を算出する。次に、データサーバ16N1〜16N3への分散値W(1、1)〜W(3、1)を、上記基礎方程式(2)、(9)〜(11)に基づいて算出し、算出した分散値W(1、1)〜W(3、1)をデータサーバ16N1〜16N3に送信する。分散値を受信したデータサーバ16N1〜16N3は、メモリ28に設けられたテーブル102に、ユーザID及び各秘密情報のIDに対応して分散値を格納する。なお、秘密情報がS1の場合以外のS2、S3についても同様に処理される。
次に、復元端末18が実行する復元処理を図8を参照して説明する。復元端末18は、すべての秘密情報を復元する場合、ステップ112で、秘密情報を識別する変数iを0に初期化し、ステップ114で変数iを1インクリメントし、ステップ116で、ユーザID及び秘密情報SiのID(idi)をL個の鍵サーバ及びM個のデータサーバに送信する(図11参照)。なお、L+M=kである。
ステップ116が実行されると、図9における鍵サーバ14が実行する暗号化データ送信処理におけるステップ132の、ユーザID及びidiを受信したか否かの判断が肯定される。ステップ132の判断が肯定されると、鍵サーバ14は、ステップ134で、鍵サーバの有する固有鍵Kjを読み出し、ステップ136で、ユーザIDを固有鍵Kjで暗号化して、暗号値EIDjを作成する。鍵サーバ14は、ステップ138で、暗号値EIDjで、idiを暗号化して、暗号値Eid(i、j)を作成し、ステップ140で、暗号値Eid(ij)を復元端末18に送信する(図11参照)。
また、図8のステップ116が実行されると、データサーバ16が実行する分散値送信処理ルーチンにおける図10に示すステップ142の、ユーザID及びidiを受信したか否かの判断が肯定され、データサーバ16は、ステップ144で、ユーザID及びidiとテーブル102(図6)とから、分散値W(i、j)を検索し、ステップ146で、検索された分散値W(i、j)を復元端末18に送信する(図11参照)。
上記L個の鍵サーバで図9のステップ140が、上記M個のデータサーバで図10のステップ146が実行されると、図8のステップ118における、暗号値Eid(i、j)及び分散値W(i、d)を受信したか否かの判断が肯定される。ステップ118の判断が肯定されると、復元端末18は、ステップ120で、図12に示すように、秘密情報S1、未知数a11、a12求めるための方程式(18)、(19)、(20)を作成して、作成した方程式(18)、(19)、(20)から未知数a11、a12、及び秘密情報S1を算出する。復元端末12は、ステップ124で、変数iが総数Iに等しいか否かを判断し、変数iが総数Iに等しくないと判断された場合には、未だ算出されていない秘密情報があるので、ステップ114に戻って、以上の処理(114〜124)を実行する。ステップ124で、変数iが総数Iに等しい場合には、全ての秘密情報が算出されたので、本処理を終了する。
次に、本実施の形態の効果を説明する。
上記の処理により,分散値を記憶するのはデータサーバのみであり,鍵サーバはユーザや秘密情報がどんなに増えても自分の鍵を管理するだけでよいので、全体の記憶容量は大きく削減される。即ち、n個のサーバの内のk−1個の鍵サーバに保持された鍵データに基づいて得られた値、k−1個の未知数、及び鍵サーバのIDから、上記基礎方程式に基づいて、k−1個の未知数を求めるためのk−1個の方程式を作成し、作成された当該方程式からk−1個の未知数を求め、当該求めたk−1個の未知数、及びn個のサーバの内の残りのn−(k−1)個のデータサーバに対応して定められた値、上記基礎方程式に基づいて、n−(k−1)個のデータサーバ各々に分散する分散値を計算して、各データサーバが保持している。よって、分散値をN個のデータサーバに保存させる必要はないので、メモリ容量を抑えることができ、上記(II)の課題を達成することができる。
そして、上記鍵サーバに保持された鍵データから得られた値とデータサーバから得られた値、各サーバのIDから秘密情報を計算することができる。
この場合、 分散値を保存するデータサーバのうちいくつか(n-k以下)が破損しても、上記のように鍵サーバの鍵データを用いて、秘密情報及びk−1個の未知数を求めるための方程式を作成でき、この作成した方程式から秘密情報を計算(復元)することができる。よって、課題(I)を達成することができる。
上記の処理により,分散値を記憶するのはデータサーバのみであり,鍵サーバはユーザや秘密情報がどんなに増えても自分の鍵を管理するだけでよいので、全体の記憶容量は大きく削減される。即ち、n個のサーバの内のk−1個の鍵サーバに保持された鍵データに基づいて得られた値、k−1個の未知数、及び鍵サーバのIDから、上記基礎方程式に基づいて、k−1個の未知数を求めるためのk−1個の方程式を作成し、作成された当該方程式からk−1個の未知数を求め、当該求めたk−1個の未知数、及びn個のサーバの内の残りのn−(k−1)個のデータサーバに対応して定められた値、上記基礎方程式に基づいて、n−(k−1)個のデータサーバ各々に分散する分散値を計算して、各データサーバが保持している。よって、分散値をN個のデータサーバに保存させる必要はないので、メモリ容量を抑えることができ、上記(II)の課題を達成することができる。
そして、上記鍵サーバに保持された鍵データから得られた値とデータサーバから得られた値、各サーバのIDから秘密情報を計算することができる。
この場合、 分散値を保存するデータサーバのうちいくつか(n-k以下)が破損しても、上記のように鍵サーバの鍵データを用いて、秘密情報及びk−1個の未知数を求めるための方程式を作成でき、この作成した方程式から秘密情報を計算(復元)することができる。よって、課題(I)を達成することができる。
また、秘密情報及びk−1個の未知数を求めるための合計k個の方程式を作成できて初めて、秘密情報を計算(復元)することができるので、k個未満のサーバから分散値が集まっても、秘密情報及びk−1個の未知数を求めることができず、秘密情報の部分的漏えいが生じず,上記課題(III)も達成することができる。
また、鍵Kjは鍵サーバだけが知るため、用いる暗号化手段が計算量的に安全であるとすると、秘密情報に対応するidの暗号化結果も計算量的に安全であり,それがわからない限り秘密情報s1は復元できない。例え、あるユーザの1つの秘密情報s1に関する平文idと暗号値Eidがわかったとしても、他の秘密情報s2またはs3に関する平文idに対する暗号文Eidはわからない。よって、s2、s3の復元はできない。以上より、本実施の形態は用いる暗号化手段が安全ならば安全である。
(第2の実施の形態)
次に、本発明の第2の実施の形態を説明する。
第2の実施の形態の構成は第1の実施の形態と同様であるのでその説明を省略する。
次に本実施の形態の作用を説明する。本実施の形態の作用は、第1の実施の形態の作用と同様の部分があるので、異なる部分のみを説明する。
ユーザが独立した複数のクラウドシステムを用い、クラウド側が自分に分散された分散情報にはアクセスできるが、k個以上の分散情報に同時にアクセスできないとき、このシステムはクラウド側にもユーザの秘密情報が漏えいしないため、安全なシステムが構築できる。しかし一般に、ユーザは1つのクラウドベンダーと契約することが多い。その場合、上記の手順では、全クラウドを管理するクラウドベンダー(データサーバ側)はk個の分散情報を容易に集めることが可能であるため、ユーザの秘密情報が復元できる危険性がある。第2の実施の形態は、以上の事実に鑑み、クラウドベンダー(データサーバ側)で秘密情報を復元できないようにするため、次のようにしている。
次に、本発明の第2の実施の形態を説明する。
第2の実施の形態の構成は第1の実施の形態と同様であるのでその説明を省略する。
次に本実施の形態の作用を説明する。本実施の形態の作用は、第1の実施の形態の作用と同様の部分があるので、異なる部分のみを説明する。
ユーザが独立した複数のクラウドシステムを用い、クラウド側が自分に分散された分散情報にはアクセスできるが、k個以上の分散情報に同時にアクセスできないとき、このシステムはクラウド側にもユーザの秘密情報が漏えいしないため、安全なシステムが構築できる。しかし一般に、ユーザは1つのクラウドベンダーと契約することが多い。その場合、上記の手順では、全クラウドを管理するクラウドベンダー(データサーバ側)はk個の分散情報を容易に集めることが可能であるため、ユーザの秘密情報が復元できる危険性がある。第2の実施の形態は、以上の事実に鑑み、クラウドベンダー(データサーバ側)で秘密情報を復元できないようにするため、次のようにしている。
第1の実施の形態では、図3の分散値の作成及び送信処理のステップ44以降で、ユーザIDを全ての鍵サーバへ送信し、鍵サーバでは、図5に示すように、各鍵サーバが、暗号化処理を実行するようにしていた。しかし、本実施の形態では、k−1個の鍵サーバのうちの一部(M個)の鍵サーバへユーザIDを送信して、当該一部(M個)の鍵サーバで、上記暗号処理を実行し、情報提供端末12において有する鍵Urで、秘密情報のID(id)を暗号化するようにしている。以下、これを詳述する。
すなわち、情報提供端末12は、図13に示すように、上記ステップ42を実行した後、ステップ44Aで、ユーザIDを、k−1個のうちの一部(M個)の鍵サーバへ送信する。例えば、図14に示すように、2個の鍵サーバの内の1つにユーザIDを送信する。ステップ46Aで、ユーザIDを送信した全ての鍵サーバから暗号値EIDmを受信したか否かを判断し、受信したと判断した場合(テーブル94N(図14参照)に暗号値EIDmを格納)には、ステップ48Aで、変数i、上記M個の鍵サーバを識別する変数m、情報提供端末12に保持された鍵を識別する変数rを0に初期化し、ステップ50Aで、変数iを1インクリメントとし、ステップ52Aで、変数rを1インクリメントする。
情報提供端末12は、ステップ54Aで、秘密情報SiのID(idi)を、変数mで識別される鍵サーバから受信した暗号値EIDmで暗号化して、暗号値Eid(i、m)を作成し、テーブル94N(図14参照)に格納し、ステップ56で、変数mで識別される鍵サーバmのID(Xj)を読み出し、ステップ58Aで上記と同様に未知数aiを求めるための方程式(図15の式(3)参照)を作成する。
情報提供端末12は、ステップ60A1で、変数mがユーザIDを送信した鍵サーバの総数Mに等しいか否かを判断し、変数mが総数Mに等しくない場合には、未だ上記方程式が作成されていない鍵サーバが存在するので、ステップ52Aに戻って、以上の処理(ステップ52A〜60A1)を実行する。ステップ60A1で、mが総数Mに等しいと判断された場合には、情報提供端末12は、ステップ60A2で、変数rを1インクリメントし、ステップ60A3で、変数rで識別される鍵Urを読み出し、ステップ60A4で、idiを、読み出した鍵Urで暗号化して、暗号値Eid(i、M+r)を作成して、テーブル94N(図14参照)に格納する。
情報提供端末12は、ステップ60A5で、上記のように方程式(図15の式(4)参照)を作成し(ステップ58A参照)、ステップ60A6で、変数Rが情報提供端末12が有する鍵の総数Rに等しいか否かを判断し、変数rが総数Rに等しくない場合には、未だ上記の方程式を作成されていない鍵があるので、ステップ60Aに戻って、以上の処理(ステップ60A2〜ステップ60A6)を実行し、変数rが総数Rに等しい場合には、ステップ62で、以上の処理(ステップ52A〜60A6)によって作成された上記方程式から、秘密情報Siについての未知数aiを算出する。
情報提供端末12は、ステップ64で、変数iが総数Iに等しいか否かを判断し、変数iが総数Iに等しくない場合には、ステップ50Aに戻って、以上の処理(50Aから64)を実行し、ステップ64で、変数iが総数Iに等しいと判断された場合には、図4のステップ66に進む。本実施の形態でも、図4のステップ76で分散値が計算され(図15の式(9)〜(11)参照)、図14に示すように、上記データサーバ16N1〜16N3に分散値Wを送信することができる。なお、Si=S2、S3についても同様に処理される。
なお、復元する際には、情報提供端末が保持する上記鍵Urを復元端末においても保持し、上記鍵Urを用いてEidを作成(ステップ60A2〜60A6参照)すると共に、当該作成したEidと、鍵サーバmから受信したEidとから、秘密情報を復元する。
以上説明したように、情報提供端末が保持する鍵はユーザが決めることができる。これによって、ユーザの秘密情報はクラウド側に対しても秘匿できる。また、万が一システムがハッキングされて、鍵サーバの鍵やデータサーバの分散情報が漏えいしても、ユーザ端末の鍵さえ安全であれば、ユーザの秘密情報は漏えいしない。
(第3の実施の形態)
次に、本発明の第3の実施の形態を説明する。
本実施の形態の構成は、第1及び第2の実施の形態と同様であるので、その説明を省略する。
本実施の形態の作用は、前述した第1の実施の形態の作用と同様の部分があるので、異なる部分のみを説明する。
前述した第1の実施の形態では、情報提供端末12が、図3のステップ54で、秘密情報のIDを暗号値EIDjで暗号化処理を実行しているが、情報提供端末12が分散する秘密情報が大量である場合、情報提供端末12の処理能力が低ければ分散処理における暗号化処理(ステップ54)の負荷が重い。そこで、本実施の形態では情報提供端末12の負荷を軽減するため、鍵サーバ14が実行するようにしている。
次に、本発明の第3の実施の形態を説明する。
本実施の形態の構成は、第1及び第2の実施の形態と同様であるので、その説明を省略する。
本実施の形態の作用は、前述した第1の実施の形態の作用と同様の部分があるので、異なる部分のみを説明する。
前述した第1の実施の形態では、情報提供端末12が、図3のステップ54で、秘密情報のIDを暗号値EIDjで暗号化処理を実行しているが、情報提供端末12が分散する秘密情報が大量である場合、情報提供端末12の処理能力が低ければ分散処理における暗号化処理(ステップ54)の負荷が重い。そこで、本実施の形態では情報提供端末12の負荷を軽減するため、鍵サーバ14が実行するようにしている。
すなわち、情報提供端末12は、ステップ42を実行した後、ステップ44Bで、ユーザID及び秘密情報のID(idi)を各鍵サーバへ送信する(図18参照)。これにより、鍵サーバ14が実行する図17に示す暗号化処理おけるステップ84Bが肯定され、ステップ86で、上記のように、鍵サーバの有する固有鍵Kjが読み出され、ステップ88で、ユーザIDが固有鍵Kjで暗号化され、暗号値EIDjが作成される。ステップ89で、秘密情報のID(idi)を暗号値EIDjで暗号化して、暗号値Eid(i、j)を作成し、ステップ90Bで、暗号値Eid(i,j)を情報提供端末12に送信する(図18参照)。これにより、図16におけるステップ46Bが肯定され、ステップ48以降が実行される。
これによって、鍵サーバが全秘密情報のIDの暗号化処理も行うため、情報提供端末は秘密分散のみを行えばよく、暗号化処理をしないため、情報提供端末の負荷が小さくなる。なお、第3の実施の形態では、第2の実施の形態も同様も適用できる。
(第4の実施の形態)
次に、本発明の第4の実施の形態を説明する。第4の実施の形態の構成は、第1の実施の形態の構成と同様であるのでその説明を省略する。次に、本実施の形態の作用を説明する。前述した第1から第3の実施の形態では、各ユーザ毎に秘密情報をデータサーバに分散するようにしていたが、本実施の形態では、各秘密情報を、複数のユーザが属するグループ毎に分散及び秘密情報の更新をする点で相違する。第1の実施の形態では、ユーザIDは、ユーザ個々を識別するのに対し、本実施の形態では、ユーザIDは、複数のユーザが属するグループを識別する点で相違するが、ユーザIDに対応して、第1の実施の形態と同様に、データサーバには、上記分散値が、ユーザID、秘密情報の識別情報に対応して記憶されている。
次に、本発明の第4の実施の形態を説明する。第4の実施の形態の構成は、第1の実施の形態の構成と同様であるのでその説明を省略する。次に、本実施の形態の作用を説明する。前述した第1から第3の実施の形態では、各ユーザ毎に秘密情報をデータサーバに分散するようにしていたが、本実施の形態では、各秘密情報を、複数のユーザが属するグループ毎に分散及び秘密情報の更新をする点で相違する。第1の実施の形態では、ユーザIDは、ユーザ個々を識別するのに対し、本実施の形態では、ユーザIDは、複数のユーザが属するグループを識別する点で相違するが、ユーザIDに対応して、第1の実施の形態と同様に、データサーバには、上記分散値が、ユーザID、秘密情報の識別情報に対応して記憶されている。
詳細には後述するが、秘密情報を更新した場合、更新前の古いデータを削除可能であるが、本実施の形態では、更新したものを古いデータとともに記憶している。
本実施の形態では、データサーバに記憶された分散値から秘密情報を計算(復元)し、計算した秘密情報を更新し、更新した秘密情報に基づいて、分散値を再度算出して、データサーバに分散するようにしている。すなわち、図19には、情報提供端末12が実行する復元更新処理ルーチンを示すフローチャートが示されている。情報提供端末12は、図19のステップ202で、ユーザIDu及び秘密情報SiのID(id(u、i、v))を、L個の鍵サーバ及びM個のデータサーバに送信する(図25参照)。なお、上記のようにL+M=kである。本ステップ202が実行されると、鍵サーバ14が実行する暗号化処理ルーチンを示すフローチャートの図22のステップ252における、鍵サーバ14は、ユーザIDu及びid(u、i、v)を受信したか否かの判断が肯定され、鍵サーバ14は、ステップ254で、鍵サーバの有する固有鍵Kjを読み出し、ステップ256で、ユーザIDuを固有鍵Kjで暗号化して、暗号値EID(u、j)を作成する。
本実施の形態では、データサーバに記憶された分散値から秘密情報を計算(復元)し、計算した秘密情報を更新し、更新した秘密情報に基づいて、分散値を再度算出して、データサーバに分散するようにしている。すなわち、図19には、情報提供端末12が実行する復元更新処理ルーチンを示すフローチャートが示されている。情報提供端末12は、図19のステップ202で、ユーザIDu及び秘密情報SiのID(id(u、i、v))を、L個の鍵サーバ及びM個のデータサーバに送信する(図25参照)。なお、上記のようにL+M=kである。本ステップ202が実行されると、鍵サーバ14が実行する暗号化処理ルーチンを示すフローチャートの図22のステップ252における、鍵サーバ14は、ユーザIDu及びid(u、i、v)を受信したか否かの判断が肯定され、鍵サーバ14は、ステップ254で、鍵サーバの有する固有鍵Kjを読み出し、ステップ256で、ユーザIDuを固有鍵Kjで暗号化して、暗号値EID(u、j)を作成する。
鍵サーバ14は、ステップ258で、暗号値EID(u、j)で、id(u、i、v)を暗号化して暗号値Eid(u、i、j、v)を作成し、260で、暗号値Eid(u、i、j、v)を情報提供端末12に送信する。
また、上記と同様に、図19ステップ202が実行されると、データサーバ16が実行する検索処理ルーチンを示すフローチャートの図24のステップ272における、ユーザIDu及びid(u、i、v)を受信したか否かの判断が肯定される。ステップ272が肯定されると、データサーバ16は、ステップ274で、ユーザIDu及びid(u、i、v)から、分散値W(u、i、t、v)を検索し、ステップ276で、分散値W(u、i、d、v)を情報提供端末12に送信する。
上記L個の鍵サーバで図22のステップ260が及び上記M個のデータサーバで図24のステップ276が実行されると、図19のステップ204における、暗号値Eid(u、i、j、v)及び分散値W(u、i、j、v)を受信したか否かの判断が肯定される。
情報提供端末12は、ステップ206で、暗号値Eid(u、i、j、v)と分散値W(u、i、d、v)から前述したように未知数ai、及び秘密情報Siを算出し、ステップ210で、ユーザの入力に従って、秘密情報S(u、i、v)を更新する(S(u、i、v+1))。
ステップ210が実行されると、情報提供端末12は、図20のステップ212で、ユーザIDu、秘密情報S(u、i、v+1)のID(id(u、i、v+1))、及びバージョン情報v+1を各鍵サーバへ送信する(図26参照)。
ステップ212が実行されると、図23におけるステップ262における、ユーザIDu、id(u、i、v+1)、及びバージョン情報V+1を受信したか否かの判断が肯定される。
鍵サーバ14は、ステップ264で、鍵サーバの有する固有鍵Kjを読み出し、ステップ266で、ユーザIDuを固有鍵Kjで暗号化して、暗号値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参照)。
ステップ270が実行されると、図20のステップ214における全ての鍵サーバから暗号値Eid(u、i、j、v+1)を受信したか否かの判断が肯定される。
情報提供端末12は、ステップ216で、変数jを初期化し、ステップ220で、変数jを1インクリメントして、ステップ222で、鍵サーバjのid(Xj)を読み出し、ステップ224で、上記のように、未知数を算出するための方程式を算出する。情報提供端末12は、ステップ226で、変数jが総数jに等しいか否かを判断し、変数jが総数jに等しくない場合には、上記方程式を作成していない鍵サーバが存在するので、ステップ220に戻って、以上の処理(ステップ220〜226)を実行する。一方、情報提供端末12は、ステップ226で変数jが総数Jに等しいと判断された場合には、情報提供端末12は、ステップ228で、上記のように、秘密情報Siについての未知数を算出する。
情報提供端末12は、図21のステップ232で、データサーバを識別する変数dを0に初期化し、ステップ234で、変数dを1インクリメントし、ステップ236で、変数dで識別されるデータサーバdのID(Dd)を読み出す。情報提供端末12は、ステップ242で、上記のように、秘密情報SiのデータサーバDへの分散値W(u、i、d、v+1)を計算する。
情報提供端末12は、ステップ246で、変数dにより識別されるデータサーバdに各秘密情報の分散値W(u、i、j、v+1)及びユーザIDuを送信し、ステップ248で、変数dが総数Dに等しいか否かを判断する。
ステップ248で変数dが総数Dに等しいと判断されなかった場合には、情報提供端末12は、ステップ234に戻って、以上の処理(ステップ234〜248)を実行する。
ステップ248で変数dが総数Dに等しいと判断された場合には、本処理を終了する。これにより、各データサーバのテーブル302〜306(図26参照)に、バージョンv+1についての分散値が格納される。
(変形例)
次に、本発明の種々の変形例を説明する。
各実施の形態では、複数の未知数を求めるために多項式を用いているが、単項式の場合も同様に適用できる。なお、複数の未知数を単項式で求める例については、以下の発表論文に記載されている。
「永井 良英, 高荒 亮, 岩村 惠市:”XORを用いた高速な秘密分散法のデータ容量削減に関する一手法 ”コンピュータセキュリティシンポジウム2012,1C2-3,Oct.2012.」
次に、本発明の種々の変形例を説明する。
各実施の形態では、複数の未知数を求めるために多項式を用いているが、単項式の場合も同様に適用できる。なお、複数の未知数を単項式で求める例については、以下の発表論文に記載されている。
「永井 良英, 高荒 亮, 岩村 惠市:”XORを用いた高速な秘密分散法のデータ容量削減に関する一手法 ”コンピュータセキュリティシンポジウム2012,1C2-3,Oct.2012.」
各実施の形態では、情報提供端末12と復元端末18は別々の装置としているが、これらは同一の装置としてもよい。
第1の実施の形態では、情報提供端末が分散値を具体的に計算しているが、本発明はこれに限定されるものではなく、鍵サーバが分散値を計算し、計算した分散値を情報提供端末に送信し、情報提供端末が受信した分散値を、データサーバに送信して保持させるようにしてもよい。
第1〜第3の実施の形態では、全ての秘密情報を復元しているが、所望の秘密情報を選択的に復元するようにしてもよい。
各実施の形態では、情報を分散する情報提供端末は、まず各鍵サーバに自分のIDを送り、各鍵サーバは自分が管理する鍵で暗号化したEIDをユーザに送り返す処理を行った。しかし、IDはユーザに固有であるので、ユーザが複数回に分けて秘密を分散する場合などは、ユーザが自分のEIDを保存しておけば、以降その処理を省略することができる。また、情報提供者に予めEIDを設定しておくとしてもよい。
例えば、以下のような応用が可能である。
次世代電力網と呼ばれるスマートグリッドでは,既存の電力網の監視制御や計測に情報通信技術(ICT) を用いる。スマートグリッドにおいて企業や工場,家庭などの電力需要家の電力利用情報は,通信機能を有する電力計(スマートメータ)で計測される。スマートメータで計測された電力利用情報は,通信を用いて定期的にメータデータ管理システムMDMS(Meter Data Management System) に伝達され蓄積される。蓄積された電力利用情報は,電力系統制御や課金のために利用されるが,一方で定期的に計測された電力利用情報には,需要家のプライバシ情報も含まれている。例えば,家庭内でいつどのような行動がなされたか,あるいはどのような電化製品を保有しているか,さらには生活パタンまでも類推できる可能性も排除できない。そのため秘密分散法を用いることで,電力利用情報に含まれるプライバシ情報を保護しつつ,電力系統制御や課金に関する利用の利便性を損なわない方式が実現できる。
次世代電力網と呼ばれるスマートグリッドでは,既存の電力網の監視制御や計測に情報通信技術(ICT) を用いる。スマートグリッドにおいて企業や工場,家庭などの電力需要家の電力利用情報は,通信機能を有する電力計(スマートメータ)で計測される。スマートメータで計測された電力利用情報は,通信を用いて定期的にメータデータ管理システムMDMS(Meter Data Management System) に伝達され蓄積される。蓄積された電力利用情報は,電力系統制御や課金のために利用されるが,一方で定期的に計測された電力利用情報には,需要家のプライバシ情報も含まれている。例えば,家庭内でいつどのような行動がなされたか,あるいはどのような電化製品を保有しているか,さらには生活パタンまでも類推できる可能性も排除できない。そのため秘密分散法を用いることで,電力利用情報に含まれるプライバシ情報を保護しつつ,電力系統制御や課金に関する利用の利便性を損なわない方式が実現できる。
まず、上記を従来の秘密分散によって実現することを考える。この場合、スマートメータがディーラとなり、電力利用情報を秘密分散して複数のデータサーバに当たるMDMSに分散させる。この場合、MDMSは複数台必要であるためn=kとしても攻撃耐性を示すkを大きくすればするだけコストがかかり、かつ、各スマートメータは少なくともk個のMDMSと回線を結ぶ必要があるため、大きくそのシステム仕様を変更する必要がある。
それに対して、本発明を以下のように用いることを考える。まず、各スマートメータは自分のIDを持ち、鍵サーバの鍵でそれを暗号化したEIDjを保存しているとする。各スマートメータは発生した電力利用情報のidi(電力利用情報発生の日付など)をEIDjで暗号化して、その値を基に多項式の係数を定め、MDMS(データサーバ)に保存する分散値を生成し、MDMSに送信する。n=kとすれば、MDMSは1台でよく、かつ各スマートメータはそのMDMSとの回線を持てばよいので、システム変更はほとんど必要ない。また、EIDjは予めスマートメータに保存されているため、事前の通信を必要とせず、その通信手順などもほとんど変更する必要がない。さらに、kは任意に大きくできるので、必要な攻撃耐性を簡単に実現できる。データ復元時に需要家は、MDMSと鍵サーバから必要な分散値を受信して必要な情報を得る。
また、各実施の形態では、鍵サーバは独立に設定したが、1つの鍵サーバが複数の鍵を管理するようにしてもよい。
また、スマートメータを設置されたユーザが自分で鍵をスマートメータに設定できる場合、ユーザの同意なく復元できないシステムとすることもできる。
このような形態は前記スマートグリッドをはじめとして、次世代のインフラと呼ばれるセンサネットワーク等種々の応用が可能である。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
各実施の形態ではk−1個の鍵サーバを有するとしたが、b−1個(b≦k)でも可能である。この場合、情報提供端末(ディーラ)が基礎方程式中k−b個の係数に情報提供端末(ディーラ)が定めた値を設定することにより、未知数の数(未定の係数の数)をb−1個とすることができる。よって、b−1個の方程式で解くことができる。
以上の実施の形態において、以下の発明も提案できる。
(態様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のサーバ各々に分散する分散値(Wi,j)として計算する計算手段と、
前記計算手段により計算された前記n−(b−1)個の分散値各々を、当該分散値に対応する第2のサーバに送信する送信手段と、
を備えた秘密情報分散装置(ディーラ)。
秘密情報を含む項、及び定数と変数とを含む項を有しかつこれらの項に基づいて計算目標値を求める、多項式で構成される基礎方程式が予め定められ、
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のサーバ各々に分散する分散値(Wi,j)として計算する計算手段と、
前記計算手段により計算された前記n−(b−1)個の分散値各々を、当該分散値に対応する第2のサーバに送信する送信手段と、
を備えた秘密情報分散装置(ディーラ)。
(態様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個の未知数を解く。
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個の未知数を解く。
(態様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のサーバに送信する送信手段と、
を備えた秘密情報分散装置。
秘密情報を含む項、及び定数と変数とを含む項を有しかつこれらの項に基づいて計算目標値を求める、多項式で構成される基礎方程式が予め定められ、
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のサーバに送信する送信手段と、
を備えた秘密情報分散装置。
(態様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個の前記定数と前記秘密情報を示す値を計算する計算手段を備えた秘密情報計算装置。
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個の前記定数と前記秘密情報を示す値を計算する計算手段を備えた秘密情報計算装置。
Claims (1)
- 秘密情報をn個に分散し、そのうちk(k≦n)個の分散値を集めれば秘密情報を復元でき、k−1個以下では秘密情報を復元できないシステムであって、
前記システムは、最大k−1(k−1<n)個の鍵サーバを有し、
前記最大k−1個の鍵サーバの内の一部のM個の鍵サーバの各々は、分散値を得るために予め設定された鍵を用いてディーラからの情報を暗号化し、
前記システムは、R個の鍵と、(M+R)個の情報とを有するディーラを備え、
前記ディーラは、
前記M個の鍵サーバによる前記暗号化により得られたM個の値のそれぞれで、自分の持つM個の情報のそれぞれを暗号化し、且つ、
自分の持つ前記R個の鍵のそれぞれで、自分の持つR個の情報のそれぞれを暗号化する、
システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019221024A JP6893708B2 (ja) | 2018-02-07 | 2019-12-06 | ディーラ、鍵サーバ、及び復元装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018020566A JP7036608B2 (ja) | 2018-02-07 | 2018-02-07 | 秘密分散システム |
JP2019221024A JP6893708B2 (ja) | 2018-02-07 | 2019-12-06 | ディーラ、鍵サーバ、及び復元装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018020566A Division JP7036608B2 (ja) | 2018-02-07 | 2018-02-07 | 秘密分散システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020042306A JP2020042306A (ja) | 2020-03-19 |
JP6893708B2 true JP6893708B2 (ja) | 2021-06-23 |
Family
ID=69798537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019221024A Active JP6893708B2 (ja) | 2018-02-07 | 2019-12-06 | ディーラ、鍵サーバ、及び復元装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6893708B2 (ja) |
-
2019
- 2019-12-06 JP JP2019221024A patent/JP6893708B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2020042306A (ja) | 2020-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Secure deduplication with efficient and reliable convergent key management | |
Barsoum et al. | Provable multicopy dynamic data possession in cloud computing systems | |
Wang et al. | A key-sharing based secure deduplication scheme in cloud storage | |
US20130230168A1 (en) | Information processing device, information processing method, and computer readable medium | |
CN109857710A (zh) | 文件存储方法及终端设备 | |
CN110086817B (zh) | 可靠的用户服务系统和方法 | |
KR20070096014A (ko) | 식별자 기반 키 생성 방법 및 장치 | |
JP6632959B2 (ja) | 検証システム、検証方法及び検証プログラム | |
JP5860557B1 (ja) | 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム | |
CN108810063A (zh) | 一种多云存储环境下数据的安全分发和修复方法、系统及介质 | |
CN108462575A (zh) | 基于无可信中心门限混合加密的上传数据加密方法 | |
Dou et al. | A distributed trust evaluation protocol with privacy protection for intercloud | |
CN110378128A (zh) | 数据加密方法、装置及终端设备 | |
CN108028751B (zh) | 用于移动主动秘密共享的系统、计算机可读介质和方法 | |
JP6893708B2 (ja) | ディーラ、鍵サーバ、及び復元装置 | |
JP6876340B2 (ja) | ディーラ、鍵サーバ、及び復元装置 | |
JP7036608B2 (ja) | 秘密分散システム | |
WO2014162539A1 (ja) | ディーラ、鍵サーバ、及び復元装置 | |
JP2020173482A (ja) | ディーラ、鍵サーバ、及び復元装置 | |
Ponnuramu et al. | Secured storage for dynamic data in cloud | |
US11888977B2 (en) | Share generating device, share converting device, secure computation system, share generation method, share conversion method, program, and recording medium | |
CN104660704B (zh) | 一种网站用户数据处理方法 | |
Andavan et al. | Cloud computing based deduplication using high-performance grade byte check and fuzzy search technique | |
CN108399099A (zh) | 文件安全存储和内容保护方法 | |
CN108388658A (zh) | 数据文件可靠存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191206 |
|
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: 20210427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210526 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6893708 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |