(57)【要約】【課題】メモリ容量を抑えることを目的とする。【解決手段】ｎ個のサーバの内のｋ−１個の鍵サーバに保持された鍵データに基づいて得られた値、ｋ−１個の未知数、及び鍵サーバのＩＤから、基礎方程式に基づいて、ｋ−１個の未知数を求めるためのｋ−１個の方程式を作成し、作成された当該方程式からｋ−１個の未知数を求め、当該求めたｋ−１個の未知数、及びｎ個のサーバの内の残りのｎ−（ｋ−１）個のデータサーバに対応して定められた値、上記基礎方程式に基づいて、ｎ−（ｋ−１）個のデータサーバ各々に分散する分散値を計算して、各データサーバに保持させる。よって、分散値をｎ個のデータサーバに保存させる必要はないので、メモリ容量を抑えることができる。【選択図】図６
2020173482.tif 000002
【特許請求の範囲】
【請求項１】
秘密情報を含む項、及び定数と変数とを含む項を有しかつこれらの項に基づいて計算目標値を求める、多項式で構成される基礎方程式が予め定められ、
ｎを２以上の整数、ｋを２以上かつｎを超えない整数、ｂをｋ以下の整数、ｍを１以上かつｂ−１より小さい整数、ｒをｋ−１−ｍでありかつ１以上の整数とし、
ｎ個のサーバの内のｂ−１個の第１のサーバ（鍵サーバ）の内のｍ個の第１のサーバに保持されたデータに基づいて得られた値を前記計算目標値、ｒ個のデータに基づいて得られた値（ディーラが有する鍵を用いる場合）を前記計算目標値（ただし、ｍ＋ｒ＝ｂ−１）、ｂ−１個の未知数を前記定数、及び前記第１のサーバ及びディーラに対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記ｂ−１個の未知数を求めるためのｂ−１個の方程式を作成すると共に、ｂ−１個の未知数を前記定数、及び前記第１のサーバに対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記ｂ−１個の未知数を求めるためのｂ−１個の方程式を作成し、作成されたｂ−１個の方程式前記ｂ−１個の未知数を求め、当該求めた前記ｂ−１個の未知数を前記定数とし、ｎ個のサーバの内の残りのｎ−（ｂ−１）個の第２のサーバに対応して定められた値を前記変数として、前記方程式に基づいて、前記計算目標値を、前記ｎ−（ｂ−１）個の第２のサーバ各々に分散する分散値として計算する計算手段と、
前記計算手段により計算された前記ｎ−（ｂ−１）個の分散値各々を、当該分散値に対応する第２のサーバに送信する送信手段と、
を備えた秘密情報分散装置。
【請求項２】
ｆ、ｇ、及びｈを１以上でｎより小さい整数、ｆはｍ以下、ｇはｒ以下、ｈはｂ＝ｆ＋ｇ＋ｈとなる数とし、
請求項２の前記ｍの第１のサーバの内のｆ個の第１のサーバ各々に前記保持されたデータから得られた値、及びディーラが持つｒ個のデータの内のｇ個のデータに基づいて得られた値、前記計算目標値、前記第１のサーバ及びディーラが持つ各値に対応して定められた値を前記変数、（前記秘密情報を示す値及びｋ−１個の前記定数を未知数として、前記基礎方程式に基づいて、第１の方程式を作成すると共に、）前記ｎ−（ｂ−１）個の第２のサーバの内のｈ個の第２のサーバ各々に前記保持されたデータから得られた値を前記計算目標値、前記第２のサーバに対応して定められた値を前記変数、前記秘密情報を示す値及びｂ−１個の前記定数を未知数として、前記基礎方程式に基づいて、前記未知数を求めるために合計ｂ個の方程式を作成し、前記未知数であるｂ個の前記定数を計算し、ｂ−１個の前記定数と前記秘密情報を示す値を計算する計算手段を備えた秘密情報計算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報を安全に分散管理する分散管理技術に関する。
【背景技術】
【０００２】
近年，新たなネットワーク技術としてクラウドコンピューティングが注目されている。クラウドコンピューティングとはユーザの持つデータをクラウドと呼ばれるネットワーク上の複数のサーバにより構成される仮想の大容量ストレージに分散・保管し，そのデータをどこからでもネットワーク経由でユーザが必要に応じてアクセスすることを可能にする技術である。また，秘匿計算を実現することで単にデータをストレージするだけでなく，クラウド上に分散・保管されたデータを用いて個々のデータを秘匿しながら任意の計算を行うことが望まれる。
【０００３】
この様な秘匿計算を実現するために秘密分散の利用が注目されている。秘密分散法とは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個未満のサーバから分散値が集まっても、秘密情報の部分的漏えいが生じず，少なくとも計算量的安全性を持つ。
【０００８】
まず，(I) の要件について考える。クラウドコンピューティングは複数のサーバにより構成されており，顧客からの情報を預かっていることから、これらのサーバのうちのいくつかが災害による停電やヒューマンエラー等によりダウンしても影響がないことが求められる。この要件は、従来法である(k,n)秘密分散法によって実現できる。
【０００９】
次に、(II) の要件は，これからよりクラウドシステムが普及していくために重要である。特に，クラウドコンピューティングでは膨大なデータを扱うため，少しのデータ増加が大量のデータ増加になる分散手法は記憶容量的に問題がある。しかし， (k,n) 秘密分散法は，１つの分散情報のデータサイズを元の秘密情報よりも小さくすることができないため，１個のデータ増加が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)の要件全てを満たさず，そのままクラウドシステムに適用することは不適である。
【先行技術文献】
【非特許文献】
【００１１】
【特許文献１】永井 良英, 高荒 亮, 岩村 惠市：”XORを用いた高速な秘密分散法のデータ容量削減に関する一手法 ”コンピュータセキュリティシンポジウム2012，1C2-3，Oct.2012.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、上述の問題に鑑み、クラウドのような大容量データを扱うシステムにおいて、上記要件を満足する方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため請求項１に記載の発明の鍵サーバは、秘密情報をｎ個に分散し、そのうちｋ個の分散値を集めれば秘密情報を復元でき、ｋ−１個以下では秘密情報を復元できないシステムにおいて、分散値を得るために予め設定された鍵を用いてディーラからの情報を暗号化する。
【００１４】
請求項２に記載の発明のディーラは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、ｋ−１個以下では秘密情報を復元できないシステムにおいて、分散値を得るために予め設定された鍵を用いて自分の持つ情報を暗号化する。
【００１５】
請求項３に記載の発明のディーラは、秘密情報をｎ個に分散し、そのうちｋ個の分散値を集めれば秘密情報を復元でき、ｋ−１個以下では秘密情報を復元できないシステムにおいて、鍵サーバが計算した暗号化結果から得られる値と秘密情報とあらかじめ定められた値からデータサーバが保存する分散値を計算する。
【００１６】
請求項４に記載の発明のディーラは、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバおよびディーラが計算した暗号化結果から得られる値と秘密情報とあらかじめ定められた値からデータサーバが保存する分散値を計算する。 
【００１７】
請求項５に記載の発明の復元装置は、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバが計算した暗号化結果から得られる値とデータサーバが保存している値から秘密情報を復元する。
【００１８】
請求項６に記載の発明の復元装置は、秘密情報をn個に分散し、そのうちk個の分散値を集めれば秘密情報を復元でき、k-1個以下では秘密情報を復元できないシステムにおいて、鍵サーバおよびディーラが計算した暗号化結果から得られる値とデータサーバが保存している値から秘密情報を復元する。
【発明の効果】
【００１９】
本発明は、上記要件を達成することができる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施の形態の秘密情報分散復元システムの構成図である。
【図２】第１の実施の形態の情報提供端末１２のブロック図である。
【図３】第１の実施の形態の情報提供端末１２が実行する分散値の作成及び送信処理ルーチンの一部を示したフローチャートである。
【図４】第１の実施の形態の情報提供端末１２が実行する分散値の作成及び送信処理ルーチンの残りを示したフローチャートである。
【図５】第１の実施の形態の鍵サーバ１４が実行する暗号化処理ルーチンを示したフローチャートである。
【図６】第１の実施の形態の分散値の作成及び分散の処理を示した図である。
【図７】第１の実施の形態の基礎方程式を示した図である。
【図８】第１の実施の形態の情報提供端末１２が実行する復元処理ルーチンを示したフローチャートである。
【図９】第１の実施の形態の鍵サーバ１４が実行する暗号化データ送信処理ルーチンを示したフローチャートである。
【図１０】第１の実施の形態のデータサーバ１６が実行する分散値送信処理ルーチンを示したフローチャートである。
【図１１】秘第１の実施の形態の密情報の復元の処理を説明する図である。
【図１２】基礎方程式を示した図である。
【図１３】第２の実施の形態の情報提供端末１２が実行する分散値の作成及び送信処理ルーチンの一部を示したフローチャートである。
【図１４】第２の実施の形態の分散値の作成及び分散の処理を示した図である。
【図１５】第２の実施の形態の基礎方程式を示した図である。
【図１６】第３の実施の形態の情報提供端末１２が実行する分散値の作成及び送信処理ルーチンの一部を示したフローチャートである。
【図１７】第３の実施の形態の鍵サーバ１４が実行する暗号化処理ルーチンを示したフローチャートである。
【図１８】第３の実施の形態の分散値の作成及び分散の処理を示した図である。
【図１９】第４の実施の形態の情報提供端末１２が実行する秘密情報の復元及び更新処理ルーチンの一部を示したフローチャートである。
【図２０】第４の実施の形態の情報提供端末１２が実行する秘密情報の復元及び更新処理ルーチンの他の一部を示したフローチャートである。
【図２１】第４の実施の形態の情報提供端末１２が実行する秘密情報の復元及び更新処理ルーチンの残りを示したフローチャートである。
【図２２】第４の実施の形態の鍵サーバ１４が実行する暗号化データ送信処理ルーチンの一部を示したフローチャートである。
【図２３】第４の実施の形態の鍵サーバ１４が実行する暗号化データ送信処理ルーチンの残りを示したフローチャートである。
【図２４】第４の実施の形態のデータサーバ１６が実行する検索処理ルーチンを示したフローチャートである。
【図２５】第４の実施の形態の秘密情報の復元の処理を説明する図である。
【図２６】第４の実施の形態の分散値の作成及び分散の処理を示した図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
【００２２】
（第１の実施の形態）
まず、第１の実施の形態の構成を説明する。
図１に示すように、第１の実施の形態の秘密情報分散復元システムは、ネットワーク１０を介して相互に接続された、情報提供端末（ディーラ）１２、複数（ｂ‐１）の鍵サーバ１４Ｎ１、１４Ｎ２、・・・と、複数のデータサーバ１６Ｎ１、１６Ｎ２、１６Ｎ３、・・・及び復元端末１８を備えている。なお、ｂはｋ以下の数であるが、以降では簡単のためｋとして説明する。また、鍵サーバとデータサーバの総個数はｎ個である。
【００２３】
上記情報提供端末１２、鍵サーバ１４Ｎ１、１４Ｎ２、・・・データサーバ１６Ｎ１、１６Ｎ２、１６Ｎ３、・・・及び復元端末１８は、同様の構成になっているので、情報提供端末１２のみの構成を、図２を参照して説明する。図２に示すように、情報提供端末１２は、ＣＰＵ２２、ＲＯＭ２４、ＲＡＭ２６、メモリ２８、入力装置３０、送受信装置３２、表示装置３４がバス３６を介して相互に接続されて、構成されている。なお、メモリ２８には後述する種々のテーブルが設けられている。
【００２４】
次に、本実施の形態の作用を説明する。
図３及び図４には、分散値の作成及び送信処理ルーチンが示されている。図３に示すように、ステップ４２で、秘密情報を分散させたいユーザの操作に従って、入力装置３０が、複数の秘密情報Ｓｉ、秘密情報の識別データＩＤ（ｉｄｉ）、ユーザのＩＤを入力する。これらは、メモリ２８（図６参照）に格納される。特に、複数の秘密情報Ｓｉ、秘密情報の識別データＩＤ（ｉｄｉ）はテーブル９２に格納される。ステップ４４で、送受信装置３２が、ユーザＩＤ（ｉｄｉ）を各サーバ１４Ｎ１、１４Ｎ２、・・・に送信する（図６参照）。
【００２５】
図５には、鍵サーバ１４（１４Ｎ１、１４Ｎ２、・・・）が実行する暗号化処理ルーチンが示されている。
上記の図３のステップ４４が実行されると、図５のステップ８４の、鍵サーバ１４が行うユーザＩＤを受信したか否かの判断が肯定される。ステップ８４の判断が肯定されると、ステップ８６で、鍵サーバ１４は、鍵サーバ１４のメモリ２８に記憶された当該鍵サーバ１４が有する固有鍵Ｋｊ（なお、ｊは鍵サーバ１４を識別する変数である）を読み出し、ステップ８８で、鍵サーバ１４は、受信したユーザＩＤ（ｉｄｉ）を、読み出した固有鍵Ｋｊで暗号化して、暗号値ＥＩＤｊを作成し、ステップ９０で、鍵サーバ１４は、暗号化されたユーザＩＤ（暗号値ＥＩＤｊ）を、情報提供端末１２に送信する。
【００２６】
上記ステップ９０が全ての鍵サーバで実行されると、図３におけるステップ４６の、全ての鍵サーバ１４から暗号値ＥＩＤｊを受信したか否かの判断が肯定されて、本ルーチンは、ステップ４８に移行される。暗号値ＥＩＤｊは、テーブル９４（図６）に記憶される。
情報提供端末１２は、ステップ４８で、秘密情報を識別する変数ｉ、鍵サーバを識別する変数ｊを０に初期化し、ステップ５０で、変数Ｉの変数ｉを１インクリメントし、ステップ５２で変数ｊを１インクリメントする。情報提供端末１２は、ステップ５４で、秘密情報ＳｉのＩＤ（ｉｄｉ）を、受信した暗号値ＥＩＤｊで暗号化して、暗号値Ｅｉｄ（ｉ，ｊ）を作成し、テーブル９４に格納する。情報提供端末１２は、ステップ５６で、情報提供端末１２のメモリ２８におけるテーブル１００（図６参照）から、変数ｊで識別される鍵サーバｊのＩＤ（ｘｊ）を読み出す。
【００２７】
本実施の形態では、図７に示す基礎方程式（１）（２）があらかじめ定められている。即ち、これらの基礎方程式（１）（２）は、秘密情報Ｓｉを含む項と、ｋ−１個の変数ａｉ１〜ａｉｋ−１が未知定数、Ｘｊ又はＤｄが変数として定められ、定数と変数とを含む複数の項を有し、これらの項に基づいて計算目標値であるＥｉｄ（ｉ、ｊ）又はＷ（ｉ、ｄ）を求める方程式である。
【００２８】
情報提供端末１２は、ステップ５８で、ｋ−１個の未知数である上記定数ａｉ１〜ａｉｋ−１を求めるための方程式を、上記基礎方程式（１）に基づいて作成する。その際、変数ＸＪには、ステップ５６で読み出した鍵サーバＪのＩＤ（Ｘｊ）を代入する。
【００２９】
情報提供端末１２は、ステップ６０で、変数ｊが鍵サーバの総数Ｊ（＝ｋ−１）か否かを判断する。変数ｊが総数Ｊでない場合には、未だ上記方程式を作成していない鍵サーバがあるので、ステップ５２に戻って、上記処理（ステップ５２〜６０）を実行する。ステップ６０で、変数ｊが総数Ｊと等しいと判断された場合には、各サーバについて上記基礎方程式（１）を作成したので、すなわち、上記ｋ−１個の未知数を求めるためのｋ−１個の方程式（図７の式（３）、（４））が作成されたので、情報提供端末１２は、ｋ−１個の未知数を上記作成した方程式から算出する。
【００３０】
以上により、変数ｉで識別される秘密情報Ｓｉに対応してｋ−１個の未知数が算出されたので、ステップ６４で、情報提供端末１２は、変数ｉが秘密情報の総数Ｉに等しいか否かを判断する。変数ｉが総数Ｉに等しくない場合には、未だ未知数が算出されていない秘密情報があるので、ステップ５０に戻って、以上の処理（ステップ５０〜６４）を実行する。ステップ６４で変数ｉが総数Ｉに等しいと判断された場合には、図７の式（５）、（６）が作成され、これらから未知数が求められ、全ての秘密情報について未知数が求められたので、図４のステップ６６で、情報提供端末１２は、データサーバ１６Ｎ１、１６Ｎ２、１６Ｎ３を識別する変数ｄを０に初期化し、ステップ６８で変数ｄを１インクリメントし、ステップ７０で、変数ｄにより識別されるデータサーバｄのＩＤ（Ｄｄ）を、メモリ２８のテーブル１００から読み出す。
【００３１】
情報提供端末１２は、ステップ７２で、変数ｉを再度初期化し、ステップ７４で、変数ｉを１インクリメントし、ステップ７６で、変数ｉにより識別される秘密情報Ｓｉのデータサーバｄへの分散値Ｗｉｄを上記基礎方程式（２）（図７参照）に基づいて、具体的には、図７の式（９）〜（１１）に基づいて計算する。ステップ７８で変数ｉが総数ｉに等しいと判断されない場合には、未だ、全ての秘密情報に対応して分散値が計算されていないので、ステップ７４に戻って、以上の処理（ステップ７４〜７８）を実行する。ステップ７８で変数ｉが総数ｉに等しいと判断された場合には、図７の式（２）〜（１４）、式（１５）〜（１７）により分散値が計算され、全ての秘密情報に対して変数ｄにより識別されるデータサーバへの分散値が計算されたので、情報提供端末１２は、ステップ８０で、変数ｄにより識別されるデータサーバｄに、各秘密情報の分散値Ｗ（ｉ、ｄ）、ｉｄｉ、及びユーザＩＤを送信する。情報提供端末１２は、ステップ８２で、変数ｄがデータサーバの総数Ｄに等しいか否かを判断し、変数ｄ総数Ｄに等しくないと判断した場合には、ステップ６８に戻って、以上の処理（ステップ６８から８２）を実行し、ステップ８２で、変数ｄが総数Ｄに等しいと判断した場合には、情報提供端末１２は、全てのデータサーバに各秘密情報の分散値を送信したので、本処理を終了する。
【００３２】
以上の処理を、図６及び図７を参照して、鍵サーバが２個、データサーバが３個ある場合を説明する。
情報提供端末１２のメモリ２８には、各秘密情報に対応して、その秘密情報のＩＤ（ｉｄｉ）が記憶されているテーブル９２が設けられている。また、メモリ２８には、秘密情報のＩＤと各サーバからの暗号値とを対応して記憶するテーブル９４が設けられている。即ち、情報提供端末１２からユーザＩＤが鍵サーバ１４Ｎ１、１４Ｎ２にそれぞれ送信されると、各鍵サーバ１４Ｎ１、１４Ｎ２で、ユーザＩＤを、鍵サーバ１４Ｎ１、１４Ｎ２のそれぞれが有する固有鍵ｋ１、ｋ２で、それぞれ暗号化して、暗号値ＥＩＤ１、ＥＩＤ２をそれぞれ情報提供端末１２に送信する。暗号値ＥＩＤ１、ＥＩＤ２を受信した情報提供端末１２は、ＥＩＤ１、ＥＩＤ２のそれぞれで秘密情報のＩＤ（ｉｄ１〜ｉｄ３）を暗号値ＥＩＤ１、ＥＩＤ２で暗号化して暗号値Ｅｉｄ（１、１）〜Ｅｉｄ（３、２）を算出して、テーブル９４に格納する。
【００３３】
そして、上記のように、情報提供端末１２は、各秘密情報について、ｋ−１個の未知数を求めるための方程式を作成する。これを秘密情報がＳ１の場合を例として説明する。上記のように、ｋ−１個、すなわち、この例では２個の未知数であるａ１１、ａ１２を求めるための方程式（（３）、（４））を作成し、これらの方程式（３）、（４）から、未知数ａ１１、ａ１２を算出する。次に、データサーバ１６Ｎ１〜１６Ｎ３への分散値Ｗ（１、１）〜Ｗ（３、１）を、上記基礎方程式（２）、（９）〜（１１）に基づいて算出し、算出した分散値Ｗ（１、１）〜Ｗ（３、１）をデータサーバ１６Ｎ１〜１６Ｎ３に送信する。分散値を受信したデータサーバ１６Ｎ１〜１６Ｎ３は、メモリ２８に設けられたテーブル１０２に、ユーザＩＤ及び各秘密情報のＩＤに対応して分散値を格納する。なお、秘密情報がＳ１の場合以外のＳ２、Ｓ３についても同様に処理される。
【００３４】
次に、復元端末１８が実行する復元処理を図８を参照して説明する。復元端末１８は、すべての秘密情報を復元する場合、ステップ１１２で、秘密情報を識別する変数ｉを０に初期化し、ステップ１１４で変数ｉを１インクリメントし、ステップ１１６で、ユーザＩＤ及び秘密情報ＳｉのＩＤ（ｉｄｉ）をＬ個の鍵サーバ及びＭ個のデータサーバに送信する（図１１参照）。なお、Ｌ＋Ｍ＝ｋである。
【００３５】
ステップ１１６が実行されると、図９における鍵サーバ１４が実行する暗号化データ送信処理におけるステップ１３２の、ユーザＩＤ及びｉｄｉを受信したか否かの判断が肯定される。ステップ１３２の判断が肯定されると、鍵サーバ１４は、ステップ１３４で、鍵サーバの有する固有鍵Ｋｊを読み出し、ステップ１３６で、ユーザＩＤを固有鍵Ｋｊで暗号化して、暗号値ＥＩＤｊを作成する。鍵サーバ１４は、ステップ１３８で、暗号値ＥＩＤｊで、ｉｄｉを暗号化して、暗号値Ｅｉｄ（ｉ、ｊ）を作成し、ステップ１４０で、暗号値Ｅｉｄ（ｉｊ）を復元端末１８に送信する（図１１参照）。
【００３６】
また、図８のステップ１１６が実行されると、データサーバ１６が実行する分散値送信処理ルーチンにおける図１０に示すステップ１４２の、ユーザＩＤ及びｉｄｉを受信したか否かの判断が肯定され、データサーバ１６は、ステップ１４４で、ユーザＩＤ及びｉｄｉとテーブル１０２（図６）とから、分散値Ｗ（ｉ、ｊ）を検索し、ステップ１４６で、検索された分散値Ｗ（ｉ、ｊ）を復元端末１８に送信する（図１１参照）。
【００３７】
上記Ｌ個の鍵サーバで図９のステップ１４０が、上記Ｍ個のデータサーバで図１０のステップ１４６が実行されると、図８のステップ１１８における、暗号値Ｅｉｄ（ｉ、ｊ）及び分散値Ｗ（ｉ、ｄ）を受信したか否かの判断が肯定される。ステップ１１８の判断が肯定されると、復元端末１８は、ステップ１２０で、図１２に示すように、秘密情報Ｓ１、未知数ａ１１、ａ１２求めるための方程式（１８）、（１９）、（２０）を作成して、作成した方程式（１８）、（１９）、（２０）から未知数ａ１１、ａ１２、及び秘密情報Ｓ１を算出する。復元端末１２は、ステップ１２４で、変数ｉが総数Ｉに等しいか否かを判断し、変数ｉが総数Ｉに等しくないと判断された場合には、未だ算出されていない秘密情報があるので、ステップ１１４に戻って、以上の処理（１１４〜１２４）を実行する。ステップ１２４で、変数ｉが総数Ｉに等しい場合には、全ての秘密情報が算出されたので、本処理を終了する。
【００３８】
次に、本実施の形態の効果を説明する。
上記の処理により，分散値を記憶するのはデータサーバのみであり，鍵サーバはユーザや秘密情報がどんなに増えても自分の鍵を管理するだけでよいので、全体の記憶容量は大きく削減される。即ち、ｎ個のサーバの内のｋ−１個の鍵サーバに保持された鍵データに基づいて得られた値、ｋ−１個の未知数、及び鍵サーバのＩＤから、上記基礎方程式に基づいて、ｋ−１個の未知数を求めるためのｋ−１個の方程式を作成し、作成された当該方程式からｋ−１個の未知数を求め、当該求めたｋ−１個の未知数、及びｎ個のサーバの内の残りのｎ−（ｋ−１）個のデータサーバに対応して定められた値、上記基礎方程式に基づいて、ｎ−（ｋ−１）個のデータサーバ各々に分散する分散値を計算して、各データサーバが保持している。よって、分散値をＮ個のデータサーバに保存させる必要はないので、メモリ容量を抑えることができ、上記(II)の課題を達成することができる。
そして、上記鍵サーバに保持された鍵データから得られた値とデータサーバから得られた値、各サーバのＩＤから秘密情報を計算することができる。
この場合、 分散値を保存するデータサーバのうちいくつか（n-k以下）が破損しても、上記のように鍵サーバの鍵データを用いて、秘密情報及びｋ−１個の未知数を求めるための方程式を作成でき、この作成した方程式から秘密情報を計算（復元）することができる。よって、課題(I)を達成することができる。
【００３９】
また、秘密情報及びｋ−１個の未知数を求めるための合計ｋ個の方程式を作成できて初めて、秘密情報を計算（復元）することができるので、k個未満のサーバから分散値が集まっても、秘密情報及びｋ−１個の未知数を求めることができず、秘密情報の部分的漏えいが生じず，上記課題(III)も達成することができる。
【００４０】
また、鍵Ｋｊは鍵サーバだけが知るため、用いる暗号化手段が計算量的に安全であるとすると、秘密情報に対応するidの暗号化結果も計算量的に安全であり，それがわからない限り秘密情報ｓ１は復元できない。例え、あるユーザの１つの秘密情報s１に関する平文idと暗号値Ｅｉｄがわかったとしても、他の秘密情報ｓ２またはｓ３に関する平文idに対する暗号文Ｅｉｄはわからない。よって、s２、ｓ３の復元はできない。以上より、本実施の形態は用いる暗号化手段が安全ならば安全である。
【００４１】
（第２の実施の形態）
次に、本発明の第２の実施の形態を説明する。
第２の実施の形態の構成は第１の実施の形態と同様であるのでその説明を省略する。
次に本実施の形態の作用を説明する。本実施の形態の作用は、第１の実施の形態の作用と同様の部分があるので、異なる部分のみを説明する。
ユーザが独立した複数のクラウドシステムを用い、クラウド側が自分に分散された分散情報にはアクセスできるが、k個以上の分散情報に同時にアクセスできないとき、このシステムはクラウド側にもユーザの秘密情報が漏えいしないため、安全なシステムが構築できる。しかし一般に、ユーザは１つのクラウドベンダーと契約することが多い。その場合、上記の手順では、全クラウドを管理するクラウドベンダー（データサーバ側）はk個の分散情報を容易に集めることが可能であるため、ユーザの秘密情報が復元できる危険性がある。第２の実施の形態は、以上の事実に鑑み、クラウドベンダー（データサーバ側）で秘密情報を復元できないようにするため、次のようにしている。
【００４２】
第１の実施の形態では、図３の分散値の作成及び送信処理のステップ４４以降で、ユーザＩＤを全ての鍵サーバへ送信し、鍵サーバでは、図５に示すように、各鍵サーバが、暗号化処理を実行するようにしていた。しかし、本実施の形態では、ｋ−１個の鍵サーバのうちの一部（Ｍ個）の鍵サーバへユーザＩＤを送信して、当該一部（Ｍ個）の鍵サーバで、上記暗号処理を実行し、情報提供端末１２において有する鍵Ｕｒで、秘密情報のＩＤ（ｉｄ）を暗号化するようにしている。以下、これを詳述する。
【００４３】
すなわち、情報提供端末１２は、図１３に示すように、上記ステップ４２を実行した後、ステップ４４Ａで、ユーザＩＤを、ｋ−１個のうちの一部（Ｍ個）の鍵サーバへ送信する。例えば、図１４に示すように、２個の鍵サーバの内の１つにユーザＩＤを送信する。ステップ４６Ａで、ユーザＩＤを送信した全ての鍵サーバから暗号値ＥＩＤｍを受信したか否かを判断し、受信したと判断した場合（テーブル９４Ｎ（図１４参照）に暗号値ＥＩＤｍを格納）には、ステップ４８Ａで、変数ｉ、上記Ｍ個の鍵サーバを識別する変数ｍ、情報提供端末１２に保持された鍵を識別する変数ｒを０に初期化し、ステップ５０Ａで、変数ｉを１インクリメントとし、ステップ５２Ａで、変数ｒを１インクリメントする。
【００４４】
情報提供端末１２は、ステップ５４Ａで、秘密情報ＳｉのＩＤ（ｉｄｉ）を、変数ｍで識別される鍵サーバから受信した暗号値ＥＩＤｍで暗号化して、暗号値Ｅｉｄ（ｉ、ｍ）を作成し、テーブル９４Ｎ（図１４参照）に格納し、ステップ５６で、変数ｍで識別される鍵サーバｍのＩＤ（Ｘｊ）を読み出し、ステップ５８Ａで上記と同様に未知数ａｉを求めるための方程式（図１５の式（３）参照）を作成する。
【００４５】
情報提供端末１２は、ステップ６０Ａ１で、変数ｍがユーザＩＤを送信した鍵サーバの総数Ｍに等しいか否かを判断し、変数ｍが総数Ｍに等しくない場合には、未だ上記方程式が作成されていない鍵サーバが存在するので、ステップ５２Ａに戻って、以上の処理（ステップ５２Ａ〜６０Ａ１）を実行する。ステップ６０Ａ１で、ｍが総数Ｍに等しいと判断された場合には、情報提供端末１２は、ステップ６０Ａ２で、変数ｒを１インクリメントし、ステップ６０Ａ３で、変数ｒで識別される鍵Ｕｒを読み出し、ステップ６０Ａ４で、ｉｄｉを、読み出した鍵Ｕｒで暗号化して、暗号値Ｅｉｄ（ｉ、M+ｒ）を作成して、テーブル９４Ｎ（図１４参照）に格納する。
【００４６】
情報提供端末１２は、ステップ６０Ａ５で、上記のように方程式（図１５の式（４）参照）を作成し（ステップ５８Ａ参照）、ステップ６０Ａ６で、変数Ｒが情報提供端末１２が有する鍵の総数Ｒに等しいか否かを判断し、変数ｒが総数Ｒに等しくない場合には、未だ上記の方程式を作成されていない鍵があるので、ステップ６０Ａに戻って、以上の処理（ステップ６０Ａ２〜ステップ６０Ａ６）を実行し、変数ｒが総数Ｒに等しい場合には、ステップ６２で、以上の処理（ステップ５２Ａ〜６０Ａ６）によって作成された上記方程式から、秘密情報Ｓｉについての未知数ａｉを算出する。
【００４７】
情報提供端末１２は、ステップ６４で、変数ｉが総数Ｉに等しいか否かを判断し、変数ｉが総数Ｉに等しくない場合には、ステップ５０Ａに戻って、以上の処理（５０Ａから６４）を実行し、ステップ６４で、変数ｉが総数Ｉに等しいと判断された場合には、図４のステップ６６に進む。本実施の形態でも、図４のステップ７６で分散値が計算され（図１５の式（９）〜（１１）参照）、図１４に示すように、上記データサーバ１６Ｎ１〜１６Ｎ３に分散値Ｗを送信することができる。なお、Ｓｉ＝Ｓ２、Ｓ３についても同様に処理される。
【００４８】
なお、復元する際には、情報提供端末が保持する上記鍵Ｕｒを復元端末においても保持し、上記鍵Ｕｒを用いてＥｉｄを作成（ステップ６０Ａ２〜６０Ａ６参照）すると共に、当該作成したＥｉｄと、鍵サーバｍから受信したＥｉｄとから、秘密情報を復元する。
【００４９】
以上説明したように、情報提供端末が保持する鍵はユーザが決めることができる。これによって、ユーザの秘密情報はクラウド側に対しても秘匿できる。また、万が一システムがハッキングされて、鍵サーバの鍵やデータサーバの分散情報が漏えいしても、ユーザ端末の鍵さえ安全であれば、ユーザの秘密情報は漏えいしない。
【００５０】
（第３の実施の形態）
次に、本発明の第３の実施の形態を説明する。
本実施の形態の構成は、第１及び第２の実施の形態と同様であるので、その説明を省略する。
本実施の形態の作用は、前述した第１の実施の形態の作用と同様の部分があるので、異なる部分のみを説明する。
前述した第１の実施の形態では、情報提供端末１２が、図３のステップ５４で、秘密情報のＩＤを暗号値ＥＩＤｊで暗号化処理を実行しているが、情報提供端末１２が分散する秘密情報が大量である場合、情報提供端末１２の処理能力が低ければ分散処理における暗号化処理（ステップ５４）の負荷が重い。そこで、本実施の形態では情報提供端末１２の負荷を軽減するため、鍵サーバ１４が実行するようにしている。
【００５１】
すなわち、情報提供端末１２は、ステップ４２を実行した後、ステップ４４Ｂで、ユーザＩＤ及び秘密情報のＩＤ（ｉｄｉ）を各鍵サーバへ送信する（図１８参照）。これにより、鍵サーバ１４が実行する図１７に示す暗号化処理おけるステップ８４Ｂが肯定され、ステップ８６で、上記のように、鍵サーバの有する固有鍵Ｋｊが読み出され、ステップ８８で、ユーザＩＤが固有鍵Ｋｊで暗号化され、暗号値ＥＩＤｊが作成される。ステップ８９で、秘密情報のＩＤ（ｉｄｉ）を暗号値ＥＩＤｊで暗号化して、暗号値Ｅｉｄ（ｉ、ｊ）を作成し、ステップ９０Ｂで、暗号値Ｅｉｄ（ｉ，ｊ）を情報提供端末１２に送信する（図１８参照）。これにより、図１６におけるステップ４６Ｂが肯定され、ステップ４８以降が実行される。
【００５２】
これによって、鍵サーバが全秘密情報のＩＤの暗号化処理も行うため、情報提供端末は秘密分散のみを行えばよく、暗号化処理をしないため、情報提供端末の負荷が小さくなる。なお、第３の実施の形態では、第２の実施の形態も同様も適用できる。
【００５３】
（第４の実施の形態）
次に、本発明の第４の実施の形態を説明する。第４の実施の形態の構成は、第１の実施の形態の構成と同様であるのでその説明を省略する。次に、本実施の形態の作用を説明する。前述した第１から第３の実施の形態では、各ユーザ毎に秘密情報をデータサーバに分散するようにしていたが、本実施の形態では、各秘密情報を、複数のユーザが属するグループ毎に分散及び秘密情報の更新をする点で相違する。第１の実施の形態では、ユーザＩＤは、ユーザ個々を識別するのに対し、本実施の形態では、ユーザＩＤは、複数のユーザが属するグループを識別する点で相違するが、ユーザＩＤに対応して、第１の実施の形態と同様に、データサーバには、上記分散値が、ユーザＩＤ、秘密情報の識別情報に対応して記憶されている。
【００５４】
詳細には後述するが、秘密情報を更新した場合、更新前の古いデータを削除可能であるが、本実施の形態では、更新したものを古いデータとともに記憶している。
本実施の形態では、データサーバに記憶された分散値から秘密情報を計算（復元）し、計算した秘密情報を更新し、更新した秘密情報に基づいて、分散値を再度算出して、データサーバに分散するようにしている。すなわち、図１９には、情報提供端末１２が実行する復元更新処理ルーチンを示すフローチャートが示されている。情報提供端末１２は、図１９のステップ２０２で、ユーザＩＤｕ及び秘密情報ＳｉのＩＤ（ｉｄ（ｕ、ｉ、ｖ））を、Ｌ個の鍵サーバ及びＭ個のデータサーバに送信する（図２５参照）。なお、上記のようにＬ＋Ｍ＝ｋである。本ステップ２０２が実行されると、鍵サーバ１４が実行する暗号化処理ルーチンを示すフローチャートの図２２のステップ２５２における、鍵サーバ１４は、ユーザＩＤｕ及びｉｄ（ｕ、ｉ、ｖ）を受信したか否かの判断が肯定され、鍵サーバ１４は、ステップ２５４で、鍵サーバの有する固有鍵Ｋｊを読み出し、ステップ２５６で、ユーザＩＤｕを固有鍵Ｋｊで暗号化して、暗号値ＥＩＤ（ｕ、ｊ）を作成する。
【００５５】
鍵サーバ１４は、ステップ２５８で、暗号値ＥＩＤ（ｕ、ｊ）で、ｉｄ（ｕ、ｉ、ｖ）を暗号化して暗号値Ｅｉｄ（ｕ、ｉ、ｊ、ｖ）を作成し、２６０で、暗号値Ｅｉｄ（ｕ、ｉ、ｊ、ｖ）を情報提供端末１２に送信する。
【００５６】
また、上記と同様に、図１９ステップ２０２が実行されると、データサーバ１６が実行する検索処理ルーチンを示すフローチャートの図２４のステップ２７２における、ユーザＩＤｕ及びｉｄ（ｕ、ｉ、ｖ）を受信したか否かの判断が肯定される。ステップ２７２が肯定されると、データサーバ１６は、ステップ２７４で、ユーザＩＤｕ及びｉｄ（ｕ、ｉ、ｖ）から、分散値Ｗ（ｕ、ｉ、ｔ、ｖ）を検索し、ステップ２７６で、分散値Ｗ（ｕ、ｉ、ｄ、ｖ）を情報提供端末１２に送信する。
【００５７】
上記Ｌ個の鍵サーバで図２２のステップ２６０が及び上記Ｍ個のデータサーバで図２４のステップ２７６が実行されると、図１９のステップ２０４における、暗号値Ｅｉｄ（ｕ、ｉ、ｊ、ｖ）及び分散値Ｗ（ｕ、ｉ、ｊ、ｖ）を受信したか否かの判断が肯定される。
【００５８】
情報提供端末１２は、ステップ２０６で、暗号値Ｅｉｄ（ｕ、ｉ、ｊ、ｖ）と分散値Ｗ（ｕ、ｉ、ｄ、ｖ）から前述したように未知数ａｉ、及び秘密情報Ｓｉを算出し、ステップ２１０で、ユーザの入力に従って、秘密情報Ｓ（ｕ、ｉ、ｖ）を更新する（Ｓ（ｕ、ｉ、ｖ＋１））。
【００５９】
ステップ２１０が実行されると、情報提供端末１２は、図２０のステップ２１２で、ユーザＩＤｕ、秘密情報Ｓ（ｕ、ｉ、ｖ＋１）のＩＤ（ｉｄ（ｕ、ｉ、ｖ＋１））、及びバージョン情報ｖ＋１を各鍵サーバへ送信する（図２６参照）。
【００６０】
ステップ２１２が実行されると、図２３におけるステップ２６２における、ユーザＩＤｕ、ｉｄ（ｕ、ｉ、ｖ＋１）、及びバージョン情報Ｖ＋１を受信したか否かの判断が肯定される。
【００６１】
鍵サーバ１４は、ステップ２６４で、鍵サーバの有する固有鍵Ｋｊを読み出し、ステップ２６６で、ユーザＩＤｕを固有鍵Ｋｊで暗号化して、暗号値ＥＩＤ（ｕ、ｊ）を作成し、ステップ２６８で、ｉｄ（ｕ、ｉ、ｖ＋１）を暗号値ＥＩＤ（ｕ、ｊ）で暗号化して、暗号値Ｅｉｄ（ｕ、ｉ、ｊ、ｖ＋１）を作成し、ステップ２７０で、暗号値Ｅｉｄ（ｕ、ｉ、ｊ、ｖ＋１）を送信する（図２６参照）。
【００６２】
ステップ２７０が実行されると、図２０のステップ２１４における全ての鍵サーバから暗号値Ｅｉｄ（ｕ、ｉ、ｊ、ｖ＋１）を受信したか否かの判断が肯定される。
【００６３】
情報提供端末１２は、ステップ２１６で、変数ｊを初期化し、ステップ２２０で、変数ｊを１インクリメントして、ステップ２２２で、鍵サーバｊのｉｄ（Ｘｊ）を読み出し、ステップ２２４で、上記のように、未知数を算出するための方程式を算出する。情報提供端末１２は、ステップ２２６で、変数ｊが総数ｊに等しいか否かを判断し、変数ｊが総数ｊに等しくない場合には、上記方程式を作成していない鍵サーバが存在するので、ステップ２２０に戻って、以上の処理（ステップ２２０〜２２６）を実行する。一方、情報提供端末１２は、ステップ２２６で変数ｊが総数Ｊに等しいと判断された場合には、情報提供端末１２は、ステップ２２８で、上記のように、秘密情報Ｓｉについての未知数を算出する。
【００６４】
情報提供端末１２は、図２１のステップ２３２で、データサーバを識別する変数ｄを０に初期化し、ステップ２３４で、変数ｄを１インクリメントし、ステップ２３６で、変数ｄで識別されるデータサーバｄのＩＤ（Ｄｄ）を読み出す。情報提供端末１２は、ステップ２４２で、上記のように、秘密情報ＳｉのデータサーバＤへの分散値Ｗ（ｕ、ｉ、ｄ、ｖ＋１）を計算する。
【００６５】
情報提供端末１２は、ステップ２４６で、変数ｄにより識別されるデータサーバｄに各秘密情報の分散値Ｗ（ｕ、ｉ、ｊ、ｖ＋１）及びユーザＩＤｕを送信し、ステップ２４８で、変数ｄが総数Ｄに等しいか否かを判断する。
【００６６】
ステップ２４８で変数ｄが総数Ｄに等しいと判断されなかった場合には、情報提供端末１２は、ステップ２３４に戻って、以上の処理（ステップ２３４〜２４８）を実行する。
【００６７】
ステップ２４８で変数ｄが総数Ｄに等しいと判断された場合には、本処理を終了する。これにより、各データサーバのテーブル３０２〜３０６（図２６参照）に、バージョンｖ+１についての分散値が格納される。
【００６８】
（変形例）
次に、本発明の種々の変形例を説明する。
各実施の形態では、複数の未知数を求めるために多項式を用いているが、単項式の場合も同様に適用できる。なお、複数の未知数を単項式で求める例については、以下の発表論文に記載されている。
「永井 良英, 高荒 亮, 岩村 惠市：”XORを用いた高速な秘密分散法のデータ容量削減に関する一手法 ”コンピュータセキュリティシンポジウム2012，1C2-3，Oct.2012.」
【００６９】
各実施の形態では、情報提供端末１２と復元端末１８は別々の装置としているが、これらは同一の装置としてもよい。
【００７０】
第１の実施の形態では、情報提供端末が分散値を具体的に計算しているが、本発明はこれに限定されるものではなく、鍵サーバが分散値を計算し、計算した分散値を情報提供端末に送信し、情報提供端末が受信した分散値を、データサーバに送信して保持させるようにしてもよい。
【００７１】
第１〜第３の実施の形態では、全ての秘密情報を復元しているが、所望の秘密情報を選択的に復元するようにしてもよい。
【００７２】
各実施の形態では、情報を分散する情報提供端末は、まず各鍵サーバに自分のＩＤを送り、各鍵サーバは自分が管理する鍵で暗号化したＥＩＤをユーザに送り返す処理を行った。しかし、ＩＤはユーザに固有であるので、ユーザが複数回に分けて秘密を分散する場合などは、ユーザが自分のＥＩＤを保存しておけば、以降その処理を省略することができる。また、情報提供者に予めＥＩＤを設定しておくとしてもよい。
【００７３】
例えば、以下のような応用が可能である。
次世代電力網と呼ばれるスマートグリッドでは，既存の電力網の監視制御や計測に情報通信技術(ＩＣＴ) を用いる。スマートグリッドにおいて企業や工場，家庭などの電力需要家の電力利用情報は，通信機能を有する電力計（スマートメータ）で計測される。スマートメータで計測された電力利用情報は，通信を用いて定期的にメータデータ管理システムMDMS(Meter Data Management System) に伝達され蓄積される。蓄積された電力利用情報は，電力系統制御や課金のために利用されるが，一方で定期的に計測された電力利用情報には，需要家のプライバシ情報も含まれている。例えば，家庭内でいつどのような行動がなされたか，あるいはどのような電化製品を保有しているか，さらには生活パタンまでも類推できる可能性も排除できない。そのため秘密分散法を用いることで，電力利用情報に含まれるプライバシ情報を保護しつつ，電力系統制御や課金に関する利用の利便性を損なわない方式が実現できる。
【００７４】
まず、上記を従来の秘密分散によって実現することを考える。この場合、スマートメータがディーラとなり、電力利用情報を秘密分散して複数のデータサーバに当たるMDMSに分散させる。この場合、MDMSは複数台必要であるためn=kとしても攻撃耐性を示すkを大きくすればするだけコストがかかり、かつ、各スマートメータは少なくともk個のMDMSと回線を結ぶ必要があるため、大きくそのシステム仕様を変更する必要がある。
【００７５】
それに対して、本発明を以下のように用いることを考える。まず、各スマートメータは自分のＩＤを持ち、鍵サーバの鍵でそれを暗号化したＥＩＤｊを保存しているとする。各スマートメータは発生した電力利用情報のｉｄi（電力利用情報発生の日付など）をＥＩＤｊで暗号化して、その値を基に多項式の係数を定め、ＭＤＭＳ（データサーバ）に保存する分散値を生成し、ＭＤＭＳに送信する。ｎ＝ｋとすれば、ＭＤＭＳは１台でよく、かつ各スマートメータはそのＭＤＭＳとの回線を持てばよいので、システム変更はほとんど必要ない。また、ＥＩＤｊは予めスマートメータに保存されているため、事前の通信を必要とせず、その通信手順などもほとんど変更する必要がない。さらに、ｋは任意に大きくできるので、必要な攻撃耐性を簡単に実現できる。データ復元時に需要家は、MDMSと鍵サーバから必要な分散値を受信して必要な情報を得る。
【００７６】
また、各実施の形態では、鍵サーバは独立に設定したが、１つの鍵サーバが複数の鍵を管理するようにしてもよい。
【００７７】
また、スマートメータを設置されたユーザが自分で鍵をスマートメータに設定できる場合、ユーザの同意なく復元できないシステムとすることもできる。
【００７８】
このような形態は前記スマートグリッドをはじめとして、次世代のインフラと呼ばれるセンサネットワーク等種々の応用が可能である。
【００７９】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【００８０】
各実施の形態ではｋ−１個の鍵サーバを有するとしたが、ｂ−１個（ｂ≦ｋ）でも可能である。この場合、情報提供端末（ディーラ）が基礎方程式中ｋ−ｂ個の係数に情報提供端末（ディーラ）が定めた値を設定することにより、未知数の数（未定の係数の数）をｂ−１個とすることができる。よって、ｂ−１個の方程式で解くことができる。
【００８１】
以上の実施の形態において、以下の発明も提案できる。
【００８２】
（態様１）
秘密情報を含む項、及び定数と変数とを含む項を有しかつこれらの項に基づいて計算目標値を求める、多項式で構成される基礎方程式が予め定められ、
ｎを２以上の整数、ｋを２以上かつｎを超えない整数、ｂをｋ以下の整数とし、
ｎ個のサーバの内のｂ−１個の第１のサーバ（鍵サーバ）に保持されたデータに基づいて得られた値（Eid(i,j))を前記計算目標値、ｋ−１個の未知数を前記定数、及び前記第１のサーバに対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記ｋ−１個の未知数中未定のｂ−１個の未知数を求めるためのｂ−１個の方程式を作成し、作成された当該方程式から前記ｂ−１個の未知数を求め、当該求めた前記ｂ−１個の未知数を前記定数とし、ｎ個のサーバの内の残りのｎ−（ｂ−１）個の第２のサーバ（データサーバ）に対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記計算目標値を、前記ｎ−（ｂ−１）個の第２のサーバ各々に分散する分散値(Wi,j)として計算する計算手段と、
前記計算手段により計算された前記ｎ−（ｂ−１）個の分散値各々を、当該分散値に対応する第２のサーバに送信する送信手段と、
を備えた秘密情報分散装置（ディーラ）。
【００８３】
（態様２）
Ｌ、Ｍを１以上でｎより小さい整数、Ｌ＋Ｍがｋとし、
請求項１の前記ｂ−１個の第１のサーバ（鍵サーバ）の内のＬ個の第１のサーバ各々に前記保持されたデータから得られた値を前記計算目標値、（前記第１のサーバに対応して定められた値を前記変数、前記秘密情報を示す値及びｂ−１個の前記定数を未知数として、前記基礎方程式に基づいて、前記未知数を求めるためのＬ個の方程式を作成すると共に、）前記ｎ−（ｂ−１）個の第２のサーバ（データサーバ）の内のＭ個の第２のサーバ各々に前記保持されたデータから得られた値を前記計算目標値、前記第1、第２のサーバに対応して定められた値を前記変数、前記秘密情報を示す値及びｋ−１個の前記定数を未知数として、前記基礎方程式に基づいて、前記未知数を求めるためのｋ個の方程式を作成し、作成されたｋ個の方程式から前記未知数であるｋ−１個の前記定数及び前記秘密情報を示す値を計算する計算手段を備えた秘密情報計算装置（復元端末）。即ち、復元はL+M＝ｋ個の計算目標値から、ｋ個の未知数を解く。
【００８４】
（態様３）
秘密情報を含む項、及び定数と変数とを含む項を有しかつこれらの項に基づいて計算目標値を求める、多項式で構成される基礎方程式が予め定められ、
ｎを２以上の整数、ｋを２以上かつｎを超えない整数、ｂをｋ以下の整数、ｍを１以上かつｂ−１より小さい整数、ｒをｋ−１−ｍでありかつ１以上の整数とし、
ｎ個のサーバの内のｂ−１個の第１のサーバ（鍵サーバ）の内のｍ個の第１のサーバに保持されたデータに基づいて得られた値を前記計算目標値、ｒ個のデータに基づいて得られた値（ディーラが有する鍵を用いる場合）を前記計算目標値（ただし、ｍ＋ｒ＝ｂ−１）、ｂ−１個の未知数を前記定数、及び前記第１のサーバ及びディーラに対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記ｂ−１個の未知数を求めるためのｂ−１個の方程式を作成すると共に、ｂ−１個の未知数を前記定数、及び前記第１のサーバに対応して定められた値を前記変数として、前記基礎方程式に基づいて、前記ｂ−１個の未知数を求めるためのｂ−１個の方程式を作成し、作成されたｂ−１個の方程式前記ｂ−１個の未知数を求め、当該求めた前記ｂ−１個の未知数を前記定数とし、ｎ個のサーバの内の残りのｎ−（ｂ−１）個の第２のサーバに対応して定められた値を前記変数として、前記方程式に基づいて、前記計算目標値を、前記ｎ−（ｂ−１）個の第２のサーバ各々に分散する分散値として計算する計算手段と、
前記計算手段により計算された前記ｎ−（ｂ−１）個の分散値各々を、当該分散値に対応する第２のサーバに送信する送信手段と、
を備えた秘密情報分散装置。
【００８５】
（態様４）
ｆ、ｇ、及びｈを１以上でｎより小さい整数、ｆはｍ以下、ｇはｒ以下、ｈはｂ＝ｆ＋ｇ＋ｈとなる数とし、
請求項３の前記ｍの第１のサーバの内のｆ個の第１のサーバ各々に前記保持されたデータから得られた値、及びディーラが持つｒ個のデータの内のｇ個のデータに基づいて得られた値、前記計算目標値、前記第１のサーバ及びディーラが持つ各値に対応して定められた値を前記変数、（前記秘密情報を示す値及びｋ−１個の前記定数を未知数として、前記基礎方程式に基づいて、第１の方程式を作成すると共に、）前記ｎ−（ｂ−１）個の第２のサーバの内のｈ個の第２のサーバ各々に前記保持されたデータから得られた値を前記計算目標値、前記第２のサーバに対応して定められた値を前記変数、前記秘密情報を示す値及びｂ−１個の前記定数を未知数として、前記基礎方程式に基づいて、前記未知数を求めるために合計ｂ個の方程式を作成し、前記未知数であるｂ個の前記定数を計算し、ｂ−１個の前記定数と前記秘密情報を示す値を計算する計算手段を備えた秘密情報計算装置。
【図１】
2020173482.tif 000003
【図２】
2020173482.tif 000004
【図３】
2020173482.tif 000005
【図４】
2020173482.tif 000006
【図５】
2020173482.tif 000007
【図６】
2020173482.tif 000008
【図７】
2020173482.tif 000009
【図８】
2020173482.tif 000010
【図９】
2020173482.tif 000011
【図１０】
2020173482.tif 000012
【図１１】
2020173482.tif 000013
【図１２】
2020173482.tif 000014
【図１３】
2020173482.tif 000015
【図１４】
2020173482.tif 000016
【図１５】
2020173482.tif 000017
【図１６】
2020173482.tif 000018
【図１７】
2020173482.tif 000019
【図１８】
2020173482.tif 000020
【図１９】
2020173482.tif 000021
【図２０】
2020173482.tif 000022
【図２１】
2020173482.tif 000023
【図２２】
2020173482.tif 000024
【図２３】
2020173482.tif 000025
【図２４】
2020173482.tif 000026
【図２５】
2020173482.tif 000027
【図２６】
2020173482.tif 000028