(57)【特許請求の範囲】
【請求項１】
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散手段と、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成手段と、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスク手段と、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散手段と、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力手段と、
を備える情報処理装置。
【請求項２】
前記マスク用乱数分散手段は、前記複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成した前記乱数を分散し、前記固定値型秘密情報分散手段は、前記秘密情報を前記擬似乱数でマスクした前記マスク済み秘密情報を、(k-1)以下の値が固定されたShamir(k,n)法によって分散する、あるいは、
前記マスク用乱数分散手段は、前記複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成した前記乱数を分散し、前記固定値型秘密情報分散手段は、前記秘密情報を前記擬似乱数でマスクした前記マスク済み秘密情報を、(n-1)以下の値が固定された加法型(n,n)法によって分散する、請求項１に記載の情報処理装置。
【請求項３】
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得手段と、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換手段と、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整手段と、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力手段と、
を備える情報処理装置。
【請求項４】
前記乱数の分散情報は、複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記マスク済み秘密情報の分散情報は、(k-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、あるいは
前記乱数の分散情報は、前記複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記マスク済み秘密情報の分散情報は、(n-1)以下の値が固定された加法型(n,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成される、請求項３に記載の情報処理装置。
【請求項５】
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と複数のマスク済み秘密情報の分散情報とを取得する分散情報取得手段と、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元手段と、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成手段と、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去手段と、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力手段と、
を備える情報処理装置。
【請求項６】
前記複数の乱数の分散情報は、複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記複数のマスク済み秘密情報の分散情報は、(k-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、前記マスク済み秘密情報復元手段は、前記(k-1)以下の値が固定されたShamir(k,n)法によって、前記複数のマスク済み秘密情報の分散情報から前記マスク済み秘密情報を復元し、あるいは
前記複数の乱数の分散情報は、複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記複数のマスク済み秘密情報の分散情報は、(n-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、前記マスク済み秘密情報復元手段は、前記(k-1)以下の値が固定された加法型(n,n)法によって、前記複数のマスク済み秘密情報の分散情報から前記マスク済み秘密情報を復元する、請求項５に記載の情報処理装置。
【請求項７】
請求項１または２に記載の情報処理装置と、請求項３または４に記載の情報処理装置と、請求項５または６に記載の情報処理装置と、を備える秘密情報分散システム。
【請求項８】
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスクステップと、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。
【請求項９】
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得ステップと、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換ステップと、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整ステップと、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。
【請求項１０】
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と、複数のマスク済み秘密情報の分散情報とを取得する分散情報取得ステップと、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去ステップと、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密情報分散システム、情報処理装置および情報処理プログラムに関する。
【背景技術】
【０００２】
秘密計算法は、データを保管する主体に対して計算過程と結果を秘匿することができる技術である。クラウドのような第３者が管理するサーバにデータを保管し、その保管しているデータに対するあらゆる演算を実行することができる。第３者には、入力データ、計算過程、計算結果を知られることがないため、個人情報のような機微な情報に対する分析処理をアウトソースすることができる。
【０００３】
上記技術分野において、非特許文献１には、分散情報の数がnであり、しきい値がkのしきい値型アクセス構造の秘密分散法を(k,n)法の実現方法の１つであるShamir(k,n)法が開示されている。そして、非特許文献２には、Shamir(k,n)法を用いて分散されたデータに関する計算をデータの復元を伴うことなく実行することができる秘密計算法が提案されている。また、非特許文献３には、有限体上の加減算処理を主として構成された秘密分散法である(n,n)しきい値法（加算型(n,n)法と呼ぶ）が開示されている。そして、非特許文献４には、データが加算型(n,n)法によって分散されていることを前提とした秘密計算法が提案されている。
【０００４】
ところで、Shamir(k,n)法や加算型(n,n)法において、各分散情報を記憶するには分散される秘密情報と同程度の記憶容量が必要となる。クラウドサーバの課金方法に従量制が採られることも多く、データの記憶に要する容量は可能な限り小さい方がよい。このような要求に答える手法として、非特許文献５に記載の方法が知られている。非特許文献５では、複製型秘密分散法（Replicated Secret sharing：以降、RSSと略する）と、擬似乱数生成関数と、情報分散アルゴリズム（Information Dispersal Algorithm：IDA)とを用いて、秘密情報をデータの記憶容量の面で効率のよい方法で分散し、秘密計算を行う場合には、Shamirの(k,n)法に変換する方法を提案している。上記非特許文献５に記載の技術では、Shamirの(k,n)法に比べて少ない記憶容量の分散情報を生成することができ、秘密計算法に利用できるようにShamirの(k,n)法の分散情報に変換することも可能である。なお、情報分散アルゴリズム（IDA)の具体的なアルゴリズムに関しては、非特許文献６に記載されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】A.Shamir. How to share a secret. Communications of the ACM,22(11):612-613,1979
【非特許文献２】Michael Ben-Or, Shafi Goldwasser and Avi Wigderson, “Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation (Extended Abstract)”, Proceedings of the 20 th Annual ACM Symposium on Theory of Computing, 1988.
【非特許文献３】Ronald Cramer, Ivan Damgard, Yuval Ishai, “Share Conversion, Pseudorandom Secret-Sharing and Applications to Secure Computation” Theory of Cryptography, Second Theory of Cryptography Conference(TCC),pp. 342-362, 2005.
【非特許文献４】Ivan Damgard, Marcel Keller, Enrique Larraia, Valerio Pastro, Peter Scholl, Nigel P. Smart: Practical Covertly Secure MPC for Dishonest Majority - Or: Breaking the SPDZ Limits. ESORICS 2013: 1-18
【非特許文献５】Ryo KIKUCHI, Koji CHIDA, Dai IKARASHI, Wakata OGATA, Koki HAMADA Katsumi TAKAHASHI, “Secret Sharing with Share-Conversion: Achieving Small Share-Size and Extendibility to Multiparty Computation” IEICE TRANS. FUNDAMENTALS, VOL E98-A No.1 JANUARY 2015
【非特許文献６】Rabin, “Efficient dispersal of information for security, load balancing and fault tolerance” J.ACM vol36 no.2, pp335-348
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記非特許文献５に記載の技術では、秘密計算法に利用できるようにShamirの(k,n)法の分散情報に変換する変換処理過程で大量の通信を行わなければならない。通信量に関して従量の課金が発生することは多々あり、可能な限り少ない方がよい。
【０００７】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係る情報処理装置は、
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散手段と、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成手段と、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスク手段と、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散手段と、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力手段と、
を備える。
【０００９】
上記目的を達成するため、本発明に係る情報処理装置は、
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得手段と、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換手段と、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整手段と、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力手段と、
を備える。
【００１０】
上記目的を達成するため、本発明に係る情報処理装置は、
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と複数のマスク済み秘密情報の分散情報とを取得する分散情報取得手段と、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元手段と、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成手段と、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去手段と、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力手段と、
を備える。
【００１１】
上記目的を達成するため、本発明に係る秘密情報分散システムは、
上記３つの情報処理装置を備える。
【００１２】
上記目的を達成するため、本発明に係る情報処理プログラムは、
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスクステップと、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力ステップと、
をコンピュータに実行させる。
【００１３】
上記目的を達成するため、本発明に係る情報処理プログラムは、
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得ステップと、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換ステップと、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整ステップと、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力ステップと、
をコンピュータに実行させる。
【００１４】
上記目的を達成するため、本発明に係る情報処理プログラムは、
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と、複数のマスク済み秘密情報の分散情報とを取得する分散情報取得ステップと、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去ステップと、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力ステップと、
をコンピュータに実行させる。
【発明の効果】
【００１５】
本発明によれば、秘密計算法に適用可能であって記憶量と通信量との効率がよい秘密情報の分散をすることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図２Ａ】本発明の第２実施形態に係る秘密情報分散システムの構成を示すブロック図である。
【図２Ｂ】本発明の第２実施形態に係る秘密情報分散システムにおける秘密情報分散方法の手順を示すフローチャートである。
【図３】本発明の第２実施形態に係る分散情報生成装置としての情報処理装置の機能構成を示すブロック図である。
【図４】本発明の第２実施形態に係る分散情報記憶装置の機能構成を示すブロック図である。
【図５】本発明の第２実施形態に係る分散情報生成装置としての情報処理装置のハードウェア構成を示すブロック図である。
【図６】本発明の第２実施形態に係る分散情報生成装置としての情報処理装置の処理手順を示すフローチャートである。
【図７】本発明の第２実施形態に係る分散情報変換装置としての情報処理装置の機能構成を示すブロック図である。
【図８】本発明の第２実施形態に係る分散情報変換装置としての情報処理装置のハードウェア構成を示すブロック図である。
【図９】本発明の第２実施形態に係る分散情報変換装置としての情報処理装置の処理手順を示すフローチャートである。
【図１０】本発明の第２実施形態に係る分散情報復元装置としての情報処理装置の機能構成を示すブロック図である。
【図１１】本発明の第２実施形態に係る分散情報復元装置としての情報処理装置のハードウェア構成を示すブロック図である。
【図１２】本発明の第２実施形態に係る分散情報復元装置としての情報処理装置の処理手順を示すフローチャートである。
【図１３】本発明の第３実施形態に係る分散情報生成装置としての情報処理装置の機能構成を示すブロック図である。
【図１４】本発明の第３実施形態に係る分散情報復元装置としての情報処理装置の機能構成を示すブロック図である。
【図１５】本発明の第４実施形態に係る秘密情報分散システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１８】
［第１実施形態］
本発明の第１実施形態としての情報処理装置１００について、図１を用いて説明する。情報処理装置１００は、秘密情報から分散情報を生成する装置である。
【００１９】
図１に示すように、情報処理装置１００は、マスク用乱数分散部１０１と、マスク用擬似乱数生成部１０２と、秘密情報マスク部１０３と、固定値型秘密情報分散部１０４と、分散情報出力部１０５と、を含む。マスク用乱数分散部１０１は、乱数を生成し、生成した乱数を複製型秘密分散法を用いて分散して、乱数の分散情報を生成する。マスク用擬似乱数生成部１０２は、秘密情報に対応して、乱数の分散情報から擬似乱数を生成する。秘密情報マスク部１０３は、秘密情報を擬似乱数によりマスクする。固定値型秘密情報分散部１０４は、擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、マスク済み秘密情報の分散情報を生成する。分散情報出力部１０５は、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する。
【００２０】
本実施形態によれば、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶することにより、秘密計算法に適用可能であって記憶量と通信量との効率がよい秘密情報の分散をすることができる。
【００２１】
［第２実施形態］
次に、本発明の第２実施形態に係る秘密情報分散システムについて説明する。本実施形態に係る秘密情報分散システムにおいては、秘密情報から分散情報生成装置により乱数の分散情報とマスク済み秘密情報の分散情報との複数の組を生成して、複数の分散情報記憶装置に分散記憶する。また、各分散情報記憶装置に分散記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組から、分散情報変換装置は、秘匿性を維持したまま装置間の少ない情報伝送により変換済み秘密情報を生成する。また、複数の分散情報記憶装置に分散記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との複数の組から、分散情報復元装置により秘密情報を復元する。
【００２２】
《前提技術》
本実施形態の前提技術として、秘密計算法が基礎技術として用いる秘密分散法、秘密計算法、［非特許文献５］の技術、およびこれらに関連する技術について説明する。
【００２３】
《秘密分散法》
秘密分散法とは、秘密情報から複数の分散情報を生成する技術である。分散情報はあらかじめ定められた組み合わせからは秘密情報を復元できるが、それ以外の組み合わせからは秘密情報が復元できないように作られる。定められた組み合わせには様々な構造をとることができ、その構造はアクセス構造などと呼ばれる。
【００２４】
代表的なアクセス構造として、しきい値型アクセス構造について説明する。しきい値型アクセス構造は、生成される分散情報の数ｎと、しきい値ｋとの２つのパラメータで表すことができる。ｋ個以上の分散情報からは秘密情報が復元できるが、ｋ個未満の分散情報からは秘密情報が復元できないというものである。以降、分散情報の数がｎであり、しきい値がｋのしきい値型アクセス構造の秘密分散法を(k,n)法と呼ぶ。
【００２５】
(k,n)法の実現方法は様々知られているが、［非特許文献１］に記載のShamir(k,n)法と、［非特許文献３］などに記載の有限体上の加減算処理を主として構成された(n,n)しきい値法（加算型(n,n)法と呼ぶ）との２方式に関して、秘密情報を分散する処理、復元する処理、およびその特徴を説明する。
【００２６】
（Shamir(k,n)法）
Shamir(k,n)しきい値法は,有限体Ｚの要素である秘密情報を入力としてn個の分散情報を生成するための分散処理（以降、Shamir_Distと呼ぶ）と、k個以上の分散情報から秘密情報を復元する復元処理(以降、Shamir_Recと呼ぶ)とを有する。なお、+は有限体上の加算を表し、*は乗算を表す。
【００２７】
・分散処理(Shamir_Dist)
入力：秘密情報s、しきい値k、分散情報数n
処理：
(分散処理1) 定数項がsに等しい有限体Ｚ上の、(k-1)次多項式f(x) = s+r1*x+r2*x2+…+rk-1*xk-1を生成する。定数項以外の係数r1,…,rk-1は、有限体の要素から一様ランダムに選択する。
(分散処理2) v1=f(1),…,vn=f(n)を計算する。
出力：v1,…,vnを分散情報として出力する。
【００２８】
・復元処理(Shamir_Rec)
入力：j≧k個の分散情報vi,1,…,vi,j(1≦i≦n：vi,jはｊ個目のviであり、各iは異なる値である。すなわち、しきい値であるk個以上の分散情報が入力される)、しきい値k
処理：
(復元処理1) ((i,1),vi,1),…,((i,j),vi,j)を通る有限体Ｚ上の、(k-1)次多項式f'(x)を計算する。
(復元処理2) f(0)を計算する。
出力：f(0)
ここで、Shamir(k,n)法の持つ４つの特徴と、その記憶容量とについて説明する。
【００２９】
第１の特徴：k個未満の分散情報からは秘密情報を復元することができない。これは、(k-1)次多項式はk個の点によって一意に定まる。k個未満の分散情報からは分散処理で用いられた(k-1)次多項式を定めることができない。そのため、多項式の定数項である秘密情報を得ることもできない。
【００３０】
第２の特徴:k個以上の分散情報から秘密情報を復元することができる。(k-1)次多項式はk個の点によって定まるので、k個以上の分散情報から分散処理で用いられた(k-1)次多項式が一意に定まる。そのため、多項式の定数項である秘密情報も得ることができる。なお、多項式の定数項は、(k-1)次多項式の変数に“０”を代入した値と同じである。これは、(n-k)個までの分散情報が紛失しても秘密情報が失われないことを表している。
【００３１】
第３の特徴：秘密情報sをShamir(k,n)法によって分散したv1,…,vnにおいて、全ての分散情報にxを加算したv1+x,…,vn+xは、(s+x)の分散情報となる。これは、Shamir(k,n)法において、秘密情報は(k-1)次の多項式の定数項に埋め込まれているためである。これは、有限体上の減算に関しても同様である。
【００３２】
第４の特徴：秘密情報sに関して生成された分散情報がv1,…,vn、秘密情報s'に関する分散情報がv1',…,vn'であるとき、v1+v1',…,vn+vn'が(s+s')の分散情報となる。これは有限体上の減算に関しても同様である。
【００３３】
なお、Shamir_Distの処理において、viを、多項式にｉを代入した値としているが、全ての分散情報が多項式に異なる０以外の値を入力した値であれば動作する。
【００３４】
Shamirの(k,n)法における各分散情報を記憶するために要する容量は、有限体の要素１つを記憶するためのビット長と等しい。秘密情報を表すのに必要十分なサイズの有限体が用いられている場合、秘密情報を記憶するために要するビット長と分散情報１つを記憶するために要するビット長は同程度となる。
【００３５】
（加算型(n,n)法）
加算型(n,n)法は,有限体Ｚの要素である秘密情報sを入力としてn個の分散情報を生成するための分散処理（以降、Add_Distと呼ぶ）と、nの分散情報から秘密情報を復元する復元処理(以降、Add_Recと呼ぶ)とを有する。なお、+は有限体上の加算を表し、-は有限体上の減算を表す。
【００３６】
・分散処理(Add_Dist)
入力：秘密情報s（有限体Ｚの要素）、分散情報数n
処理：
(分散処理1) v2,…,vnを有限体Ｚの要素から一様ランダムに選択する。
(分散処理2) v1 = s+r1+…+rnを計算する。
出力：v1,…,vnを分散情報として出力する。
【００３７】
各分散情報の記憶容量は、有限体の要素１つを表すために必要なビット長となる。秘密情報を表すのに必要十分なサイズの有限体が用いられている場合、秘密情報を記憶するために要するビット長と分散情報１つを記憶するために要するビット長は同程度となる。
【００３８】
・復元処理(Add_Rec)
入力：n個の分散情報v1,…,vn
処理：
(復元処理1) s' = v1-(v2+…+vn)を計算する。
出力：s'
ここで、加算型(n,n)法の持つ３つの特徴と、分散情報の記憶容量とついて説明する。
【００３９】
第１の特徴：n個未満の分散情報からは秘密情報を復元することができない。
【００４０】
第２の特徴：n個の分散情報からは秘密情報を復元することができる。
【００４１】
第３の特徴：秘密情報sに関して生成された分散情報がv1,…,vn、秘密情報s'に関する分散情報がv1',…,vn'であるとき、v1+v1',…,vn+vn'が(s+s')の分散情報となっている。これは有限体上の減算に関しても同様である。この第３の特徴は、Shamir(k,n)法の第４の特徴に相当する。
【００４２】
（(k,n)法の利用方法）
前述したような(k,n)しきい値法は、秘密情報の分散管理に用い、秘匿性を高めることができる。例えば、秘密情報sに(2,3)しきい値法の分散処理を適用し、３つの分散情報v1,v2,v3を計算する。v1,v2,v3をそれぞれ異なるサーバに保管する。この時、１台のサーバに保管されている分散情報が漏えいしても、秘密情報の漏えいを防ぐことができる。例えば。クラウド等のサーバに秘密情報を保管する際、預けたデータをクラウドの管理者に知られないようにするために用いることができる。
【００４３】
・データ保管の際の処理
あるクライアントＣが秘密情報sをサーバS1,S2,S3に保管する場合を想定すると、以下のような手順となる。
(保管処理1) クライアントＣは、sを(2,3)しきい値法で分散する。その出力である３つの分散情報をd1,d2,d3とする。
(保管処理2) クライアントＣは、サーバS1にd1を、サーバS2にd2を、サーバS3にd3を送付し、保管を依頼する。
【００４４】
・データ復元の際の処理
(復元処理1) クライアントＣは、サーバS1とサーバS2のそれぞれに対し、それぞれが保管している情報を送付するように依頼する。
(復元処理2) サーバS1はd1を、サーバS2はd2をクライアントＣに送付する。
(復元処理3) クライアントＣは、d1とd2とを(2,3)しきい値法の復元処理に入力し、その出力である秘密情報を得る。
【００４５】
以上のような方法をとれば、(2,3)しきい値法の性質より、それぞれのサーバは秘密情報の内容について知ることができない。このように秘密分散法を利用すれば、秘密情報をサーバに知られることなく保管することができる。秘密分散法は、秘密情報を複数台のサーバに分散して保管することでデータの秘匿性を高めることができる。ここで、サーバに保管したデータに関する計算を実行するためには秘密計算法と呼ばれる技術が用いられる。
【００４６】
《秘密計算法》
上記秘密分散法によって分散されたデータに関する計算を実行することができる技術は、秘密計算法と呼ばれている。秘密計算法は［非特許文献２］で提案されて以来、様々な方法が提案されている。秘密計算法によれば、秘密分散法によって複数のサーバに分散して保管されたデータ群に対する任意の演算をデータの復元を伴うことなく実行することができる。秘密計算法には様々な方法があるが、データがShamir(k,n)法を用いて分散されていることを前提とした手法（［非特許文献２］等に記載）が多く提案されている。近年は、データが加算型(n,n)法によって分散されていることを前提とした手法(［非特許文献４］等に記載)も多く提案されている。
【００４７】
このような秘密計算法は、複数のサーバにデータを分散して登録し、登録したデータに関する任意の演算が実行可能である。計算対象のデータを複数台のサーバに分散して保管し、その解析を秘密計算法で行うことによってサーバにも解析対象とデータと解析結果とを知られることなく様々な分析を実行することができる。
【００４８】
《［非特許文献５］に記載の方法》
前述したが、Shamir(k,n)法や加算型(n,n)法において、各分散情報を記憶するには分散される秘密情報と同程度の記憶容量が必要となる。クラウドサーバの課金方法に従量制が採られることも多く、データの記憶に要する容量は可能な限り小さい方がよい。このような要求に答える手法として、［非特許文献５］に記載の方法が知られている。［非特許文献５］に記載の方法は、複製型秘密分散法（Replicated Secret sharing：以降、RSSと略する）と、擬似乱数生成関数と、情報分散アルゴリズム（Information Dispersal Algorithm：IDA)とを用いており、それぞれについて説明する。
【００４９】
（RSSについての説明）
RSSについては［非特許文献３］に記載されている。RSSは、任意のアクセス構造を実現可能な秘密分散法であり、有限体の要素を(k,n)しきい値型のアクセス構造で分散することができる。
【００５０】
RSSの基本とする処理は、有限体Ｚの要素である秘密情報sを入力としてn個の分散情報を生成するための分散処理（以降、RSS_Distと呼ぶ）と、k個以上の分散情報から秘密情報を復元する復元処理(以降、RSS_Recと呼ぶ)とを有し、これらを以下で説明する。なお、+は有限体上の加算を表す。
【００５１】
・分散処理(RSS_Dist)
入力：s(有限体Ｚの要素をする)、しきい値k、分散情報数n
処理：
(分散処理1) 集合(1,…,n)の要素から(k-1)個の要素を選択した集合それぞれについて、有限体Ｚ上の要素をランダムに選択する。ただし、最後の１つは全ての和がsと等しくなるように選択する。
(分散処理2) viを、(分散1)の処理でiを含まない組み合わせについて選択した乱数の集合とする。
出力：v1,…,vnを出力する。
【００５２】
・復元処理(RSS_Rec)
入力：j≧k個の分散情報vi,1,…,vi,j(1≦i≦n：vi,jはｊ個目のviであり、各iは異なる値である。すなわち、しきい値であるk個以上の分散情報が入力される)、しきい値k
処理：
(復元処理1) RSS_Distの(分散処理1)の処理において生成された全ての乱数が揃うので、これらを加算した値を計算する。
出力:(復元処理1)の処理の計算結果
以上のような方法は、任意のアクセス構造に対する秘密分散法が実現できる一方で、Shamirの(k,n)法などと比較すると記憶容量に関する効率が悪い。例えば、(2,3)しきい値型のアクセス構造を実現する場合、秘密情報sに対し、r1+r2+r3 = Sとなる３つの乱数が生成される。このとき３つの分散情報v1,v2,v3は、それぞれv1=(r2,r3),v2=(r1,r3),v3=(r1,r2)となる。どの１つからも秘密情報は復元できず、どの２つからもr1,r2,r3がそろうため、秘密情報が復元できる。したがって(2,3)しきい値型のアクセス構造が実現されていることが確認できる。
【００５３】
一方で、それぞれの分散情報は２つの乱数から構成されており、それぞれに対して秘密情報と同程度の記憶容量を要する。したがって、Shamir(k,n)法に比べて効率が悪いことが確認できる。(k,n)しきい値型一般に対しては、a個からb個選ぶ組み合わせの総数をaＣbと表してnＣ(k-1)倍の記憶容量を要するために、単体で利用するためには効率が悪い。そのため、RSSは擬似乱数生成関数と組み合わせて利用されることが多い。擬似乱数生成関数について説明したのち、RSSと擬似乱数生成関数とを組み合わせた利用方法について説明する。
【００５４】
（擬似乱数生成関数の説明）
擬似乱数生成関数の表現は様々であるが、鍵と識別子とを入力として乱数を出力する関数とする。擬似乱数生成関数をRandとし、鍵をkとする。鍵がある程度の大きな空間からランダムに選択されるならば、kを知らない限りRand(k,i)は通常の乱数と区別できない。このような擬似乱数生成関数は、共通鍵暗号の秘密鍵を鍵とし、識別子を平文として暗号化した値や、ハッシュ関数に鍵と識別子を入力した値などでよい。
【００５５】
・RSSと擬似乱数生成関数との組み合わせ
RSSを擬似乱数生成関数と組み合わせて用いることで、乱数を効率的に分散するために利用できる。以下がその一例である。
【００５６】
r1,r2,r3が、擬似乱数生成関数の鍵として十分な大きさの空間からランダムに選択された値とする。次にv1=(r1,r2),v2=(r2,r3),v3=(r1,r3)が３人の異なる管理者に分散されているものとする。すなわち、(r1+r2+r3)がRSSを用いた(2,3)しきい値法によって分散されている。このとき、任意のｉに対して、Rand(r1,i)+Rand(r2,i)+Rand(r3,i)も分散されていることになる。Rand(r1,i)+Rand(r2,i)+Rand(r3,i)の値はr1,r2,r3によって決定されてしまうため、自由に設定することはできないが、暗号に用いる秘密鍵などを共有するために有用である。
【００５７】
［非特許文献３］では、RSSによって(k,n)しきい値構造を持つように生成された分散情報を、同じ値に対するShamirの(k,n)法の分散情報に変換する方法が記載されている。この変換は、分散情報の管理者間で通信することなく実行することができる。つまり、v1=(r1,r2),v2=(r2,r3),v3=(r1,r3)が分散されているとき、任意のｉに対して、Rand(r1,i)+Rand(r2,i)+Rand(r3,i)もShamirの(2,3)しきい値法によって分散されていると言える。
【００５８】
以上のようなRSSと擬似乱数生成関数との組み合わせについては、(k,n)しきい値型を含む線形型のアクセス構造一般に対して行える。以降、記述を簡潔に行うため、RSSで秘密情報sが分散されているとき、秘密情報のi番目の分散情報をrss[s]iと書く。また、sの分散情報から生成されるj番目の擬似乱数をRand[s,j]と書く。また、sから生成されるj番目の擬似乱数のi番目の分散情報をRand_rss[s,j]iと書く。また、Rand[s,j]のi番目の分散情報から変換されたShamir(k,n)法の分散情報をShamir_Rand_rss[s,j]iと書く。また、Rand[s,j]のi番目の分散情報から変換された加法型(n,n)法の分散情報をAdd_Rand_rss[s,j]iと書く。このような変換処理は、線形秘密分散法と呼ばれる分類の秘密分散法に関して一般に実行可能である。
【００５９】
（Information Dispersal  Algorithm(IDA)の説明）
IDAとは、情報から複数の分散情報を生成する技術である。分散情報は、いくつかの分散情報が紛失しても、残りの分散情報から元の情報が復元できるように作成される。情報を復元可能とする組み合わせには様々な構造をとることができ、その構造は秘密分散法と同様にアクセス構造と呼ぶ。秘密分散法との違いは、元の情報を復元する上で十分な数の分散情報が揃わなくても、元の情報の一部が復元されてもよいという点である。例えば、1234という4桁の数であれば、“12”と“34”に分散すれば、それぞれの分散情報のサイズは元情報の半分で済む。このように、情報の秘匿に関する条件が弱いことから、秘密分散法に比べて、記憶容量面での効率がよい。(k,n)しきい値型のアクセス構造を実現するIDAにおいて、各分散情報のサイズは元情報の1/k倍程度で済むことが知られている。具体的なアルゴリズムに関しては、［非特許文献６］に記載されている。
【００６０】
一般に、秘密分散法で生成される分散情報の記憶容量よりも少ないサイズの分散情報を生成することができる。IDAにおける分散情報を生成するための処理(以降IDA_Dist呼ぶ)とIDA_Distとによって分散された情報を復元するための処理（以降IDA_Recと呼ぶ）について、その入出力を説明する。なお、IDAは入力として複数の情報が入力されることを前提として設計されているものが多いので、説明上、m個の情報が入力されているように記述する。なお、IDA_Distが出力する分散情報の数はn個としている。
【００６１】
・分散処理(IDA_Dist)
入力：情報:s1,…,sm
出力：分散情報：v1,…,vn
・復元処理(IDA_Rec)
入力：情報を復元するに当たって十分な量の分散情報((k,n)しきい値型のアクセス構造であれば、k個以上の分散情報)
出力：情報:s1,…,sm
前述したように、秘密計算法を行うデータを分散するためにShamir(k,n)法や加法型(n,n)法を用いる場合、各分散情報を記憶するには分散される秘密情報と同程度の容量が必要となる。クラウドサーバの課金方法に従量制が採られることも多く、データの記憶に要する容量は可能な限り小さい方がよい。このような要求に答える手法として、［非特許文献5］に記載の方法が知られている。
【００６２】
（［非特許文献５］による秘密計算例）
［非特許文献５］では、秘密情報をデータの記憶容量の面で効率のよい方法で分散し、秘密計算を行う場合には、Shamirの(k,n)法に変換する方法を提案している。以下では、Shamirの(k,n)法に適用する場合を例にとって説明を記載しているが、線形秘密分散法と呼ばれる秘密分散法に対しては同様の手法が適用できる。［非特許文献５］に記載の方法をCSSと呼ぶことにする。CSSは、複数の有限体の要素を分散することを前提とし、分散処理（以降、CSS_Distと呼ぶ）と、復元処理(以降、CSS_Recと呼ぶ)と、変換処理(以降,CSS_Convと呼ぶ)と、からなる。CSS_Distにおいては、有限体Ｚの要素の集合から成る秘密情報s1,…,smを入力としてn個の分散情報v1,…,vnを生成する。CSS_Recにおいては、k個以上の分散情報から秘密情報を復元する。CSS_Convにおいては、CSS_Distの出力であるv1,…,vnをShamir(k,n)法の分散情報であるv1’,…,vn’に変換する。これらの処理の概要を以下で説明する。なお、＋は有限体上の加算、−は有限体上の減算を表す。
【００６３】
CSSの概要を説明する。説明を簡潔に行うため、(2,3)しきい値型のアクセス構造を対象とした場合を例にとった説明をする。
【００６４】
・分散処理(CSS_Dist)
入力：秘密情報  s1,s2,…,sm
処理：
(分散処理1) r1,r2,r3を生成。これは、(2,3)しきい値型のアクセス構造に対するRSSのシェアである。
(分散処理2) i=1,…,mに対し、ti = si+Rand(r1,i)+Rand(r2,i)+Rand(r3,i)を計算する。
(分散処理3) t1,…,tmを(2,3)しきい値型のアクセス構造を実現するIDA_Distに入力し、その出力であるu1,u2,u3を得る。
出力：v1=(u1,r2,r3),v2=(u2,r1,r3),v3=(u3,r1,r2)
・復元処理(CSS_Dist)：v1とv2が入力された場合について示すが、他の組み合わせの場合においても同様である
入力：v1=(u1,r2,r3),v2=(u2,r1,r3)
処理：
(復元処理1) u1,u2をIDA_Recに入力し、t1,…,tmを復元。
(復元処理2) i=1,…,mについて, si = ti-｛Rand(r1,i)+Rand(r2,i)+Rand(r3,i)｝を計算する。
出力：s1,…,sm
・変換処理（CSS_Conv）：これらはs1,…,smに対する分散情報とし、v1,v2,v3は分散して管理されているとき、s1,…,smに関するShamir(2,3)しきい値法の分散情報を得ることを目的とする。
入力：v1=(u1,r2,r3),v2=(u2,r1,r3),v3=(u3,r1,r2)
処理：
(変換処理1) u1,u2,u3のうち２つが揃うように情報を送受信し、t1,…,tmを復元する。
(変換処理2) i=1,…,mについて、Rand(r1,i)+Rand(r2,i)+Rand(r3,i)のShamir(2,3)法の分散情報を生成する。これは、RSSの特徴から、通信を伴うことなく実行できる。Rand(r1,i)+Rand(r2,i)+Rand(r3,i)のシェアをr{i,1},r{i,2},r{i,3}とする。
(変換処理3) i=1,…,m, j=1,2,3について、r{i,j}’= ti-r{i,j}とする。tiはsi+Rand(r1,i)+Rand(r2,i)+Rand(r3,i)であるので、Shamirの(k,n)法の性質３よりr{i,j}’はsiのj個目の分散情報となる。
出力：r{i,j}’をsiのｊ個目の分散情報として出力する。
【００６５】
CSSの分散情報は、RSSによって分散された擬似乱数の分散情報と、その擬似乱数によってマスクされた秘密情報をIDAで分散したものとなる。CSSの分散情報の生成方法の概要は以下の通りである。m個の秘密情報s1,…,smを分散する場合を例にとって説明する。
(分散処理1) 擬似乱数の鍵rを選択する。
(分散処理2) 鍵rから擬似乱数Rand(r,1),…,Rand(r,m)を生成する。
(分散処理3) s1+Rand(r,1),…,sm+Rand(r,m)を計算する。
(分散処理4) s1+Rand(r,1),…,sm+Rand(r,m)をIDAを用いて分散する。
(分散処理5) RをRSSを用いて分散する。
【００６６】
CSSの分散情報の変換処理の概要は以下の通りである。ｉ個目の分散情報に関する変換処理を実行する方法について述べる。変換後は、Shamir(k,n)法の分散情報とする場合を例にとる。
(変換処理1) 全ての分散情報を管理する主体はsi+Rand(r,i)を復元する。（この処理は,si+Rand(r,i)に関してIDAの分散情報を送受信する必要がある）
(変換処理2) 分散情報Rand(r,i)に関するShamir(k,n)法の分散情報を計算する。(rはRSSを用いて分散されているので通信を伴うことなく実行できる)。このシェアをShamir_Rand_rss[r,j]iとする。
(変換処理3) j=1,…,nについて, xj = si+Rand(r,i)-Shamir_Rand_rss[r,j]jを実行する。すると、Shamir(k,n)法の第３の特徴によってxjはsiの分散情報となる。
【００６７】
ここで、(変換処理1)の手順でどの程度の通信が発生するかを考える。例えば、１ギガビットのデータを(2,3)法で分散する場合を考える。Shamir(2,3)法を用いる場合、それぞれの分散情報が１ギガビットであり、３つの分散情報の合計は３ギガビットとなる。
【００６８】
CSSを(2,3)しきい値型のアクセス構造で用いる場合、擬似乱数生成関数の鍵として１２８ビットの乱数を用いる前提で、r1,r2,r3の分散に各２５６ビット、IDAの分散情報がそれぞれ０．５ギガビットであるので、３つの分散情報の合計は１．５ギガビットと２５６ビットである。記憶容量がほぼ半分となっていることがわかる。ただし、CSS_Convの(変換処理1)の処理において、t1,t2,t3を復元する処理がある。i=1,2,3についてuiを持つ管理者はj≠iであるujを他の管理者から入手しなくてはならない。この通信量が１．５ギガビットかかる。つまり、Convを実行するには、削減されたはずの記憶容量に相当するデータを送受信しなくてはならない。
【００６９】
この通信は、si+Rand(r,i)に関する分散情報を全ての分散情報を管理する参加者が復元できなければならないために起こっている。これはShamir(k,n)法の持つ第３の特徴を利用するためである。全てのシェアに同じ値を減ずるためには、全ての分散情報を管理する参加者が同じ値を取得する必要がある。
【００７０】
［非特許文献５］に記載の方法によれば、Shamirの(k,n)法に比べて少ない記憶容量の分散情報を生成することができる。また、秘密計算法に利用できるようにShamirの(k,n)法の分散情報に変換することも可能である。しかし、このように、変換処理過程で大量の通信を行わなければならない。通信量に関して従量の課金が発生することは多々あり、可能な限り少ない方がよい。
【００７１】
《本実施形態の秘密情報分散システム》
本実施形態の秘密情報分散システムについて、図面を参照して詳細に説明する。本実施形態の秘密情報分散方法は、Shamirの(k,n)法に比べて少ない記憶容量の分散情報を生成する方法であって、さらに分散情報を保持する主体間が通信を行うことなくShamir(k,n)法の分散情報に変換可能な方法を提供する。本実施形態の秘密情報分散方法は、Shamirの(k,n)法だけでなく、加法型(n,n)法に対しても同様に適用可能である。
【００７２】
《秘密情報分散システム》
図２Ａは、本実施形態に係る秘密情報分散システム２００の構成を示すブロック図である。
【００７３】
本実施形態に係る秘密情報分散システム２００は、分散情報生成装置２１０と、複数台の分散情報記憶装置２２０1〜２２０nと、分散情報変換装置２３０と、分散情報復元装置２４０を備える。分散情報生成装置２１０は、秘密情報から分散情報を生成する処理を実行する。分散情報記憶装置２２０1〜２２０nは、分散情報生成装置２１０が生成した分散情報を記憶する。分散情報変換装置２３０は、各分散情報記憶装置２２０の分散情報を変換する処理を実行する。分散情報復元装置２４０は、分散情報記憶装置２２０1〜２２０nに記憶された分散情報から秘密情報を復元する処理を実行する。なお、分散情報記憶装置２２０の台数はnとし、i台目を分散情報記憶装置２２０iとする。分散情報変換装置２３０は、各分散情報記憶装置２２０がそれぞれ１台の分散情報変換装置２３０を備えて分散情報を変換するために用いてもよいし、複数の分散情報記憶装置２２０が１台の分散情報変換装置２３０を共有してもよい。
【００７４】
分散情報生成装置２１０は、マスク用乱数分散部２１１と、マスク用擬似乱数生成部２１２と、秘密情報マスク部２１３と、固定値型秘密情報分散部２１４と、分散情報出力部２１５と、を備える。分散情報記憶装置２２０1〜２２０nは、それぞれ、マスク用乱数分散情報記憶部２２１1〜２２１nと、マスク済み秘密情報分散情報記憶部２２２1〜２２２nと、を備える。分散情報変換装置２３０は、分散情報取得部２３１と、マスク用乱数分散情報変換部２３２と、調整部２３３と、変換済み分散情報出力部２３４と、を備える。分散情報復元装置２４０は、分散情報取得部２４１と、マスク済み秘密情報復元部２４２と、マスク用擬似乱数生成部２４３と、マスク除去部２４４と、秘密情報出力部２４５と、を備える。
【００７５】
《秘密情報分散方法》
図２Ｂは、本実施形態に係る秘密情報分散システム２００における秘密情報分散方法の手順を示すフローチャートである。
【００７６】
秘密情報分散システム２００においては、秘密情報から分散情報を生成する分散情報生成処理と、分散情報を変換する分散情報変換処理と、分散情報から秘密情報を復元する分散情報復元処理と、を含む。なお、それぞれの処理は、単独で行なわれても複数の処理を組み合わせて行なわれてもよい。
【００７７】
秘密情報分散システム２００は、ステップＳ２１１において、マスク用乱数分散処理として、乱数を複製型秘密分散法を用いて分散して、乱数の分散情報を生成する。次に、秘密情報分散システム２００は、ステップＳ２１３において、固定値型秘密情報分散処理として、秘密情報を、乱数の分散情報から生成された擬似乱数でマスクしたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、マスク済み秘密情報の分散情報を生成する。そして、秘密情報分散システム２００は、ステップＳ２１５において、分散情報記憶処理として、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶する。かかるステップＳ２１１〜Ｓ２１５の処理が分散情報生成処理となる。
【００７８】
秘密情報分散システム２００は、ステップＳ２２１において、マスク用乱数分散情報変換処理として、外部記憶装置に記憶された乱数の分散情報から、擬似乱数の分散情報を生成する。そして、秘密情報分散システム２００は、ステップＳ２２３において、調整処理として、外部記憶装置に記憶されたマスク済み秘密情報の分散情報を擬似乱数の分散情報で調整して、変換済み分散情報とする。かかるステップＳ２２１およびＳ２２３の処理が分散情報変換処理となる。
【００７９】
秘密情報分散システム２００は、ステップＳ２３１において、マスク済み秘密情報復元処理として、複数の外部記憶装置に分散して記憶された複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元する。そして、秘密情報分散システム２００は、ステップＳ２３３において、マスク除去処理として、復元されたマスク済み秘密情報から、複数の外部記憶装置に分散して記憶された複数の乱数の分散情報から生成した擬似乱数によりマスクを除去した秘密情報を、復元された秘密情報とする。かかるステップＳ２３１およびＳ２３３の処理が分散情報変換処理となる。
【００８０】
《分散情報生成処理》
以下、分散情報生成処理とそれを実現する構成について、図３〜図６を参照して詳細に説明する。
【００８１】
（分散情報生成装置の機能構成）
図３は、本実施形態に係る分散情報生成装置２１０としての情報処理装置の機能構成を示すブロック図である。
【００８２】
なお、分散情報生成装置２１０には、秘密情報s1,…,smが入力され、マスク用乱数分散部２１１の出力である複数のマスク用乱数分散情報を、分散情報記憶装置２２０のマスク用乱数分散情報記憶部２２１に記憶させ、固定値型秘密情報分散部２１４の出力である複数のマスク済み秘密情報分散情報を、複数の分散情報記憶装置２２０のマスク済み秘密情報分散情報記憶部２２２に記憶させる。
【００８３】
マスク用乱数分散部２１１は、アクセス構造データを入力とし、乱数rを生成し、RSSを用いて分散した乱数の分散情報（r1,…,rn）を、マスク用擬似乱数生成部２１２および分散情報出力部２１５に出力する。マスク用擬似乱数生成部２１２は、マスク用乱数分散部２１１の出力である乱数（r1,…,rn）を入力とし、マスク用擬似乱数（Rand[r,1],…,Rand[r,m]）を秘密情報マスク部２１３に出力する。
【００８４】
秘密情報マスク部２１３は、アクセス構造データを入力とし、秘密情報（s1,…,sm）と、マスク用擬似乱数生成部２１２の出力であるマスク用擬似乱数（Rand[r,1],…,Rand[r,m]）とを入力して、マスク済み秘密情報（s1+Rand[r,1],…,sm+Rand[r,m]）を固定値型秘密情報分散部２１４に出力する。固定値型秘密情報分散部２１４は、秘密情報マスク部２１３の出力であるマスク済み秘密情報（s1+Rand[r,1],…,sm+Rand[r,m]）を入力とし、マスク済み秘密情報（s1+Rand[r,1],…,sm+Rand[r,m]）に関する分散情報（v1,…,vn)を、いくつかの値が固定されるような方法で生成して、分散情報出力部２１５に出力する。
【００８５】
分散情報出力部２１５は、マスク用乱数分散部２１１からの乱数の分散情報（r1,…,rn）と、固定値型秘密情報分散部２１４からの秘密情報の分散情報（v1,…,vn)とを組として、分散情報記憶装置２２０1〜２２０nのそれぞれに出力する。
【００８６】
なお、固定値型秘密情報分散部２１４、分散情報記憶装置２２０1〜２２０nは、マスク済み秘密情報分散情報のどの値を固定値とするのかを共有しているものとする。対応がとれる方法であればどのような方法でもよい。
【００８７】
《分散情報記憶装置の機能構成》
図４は、本実施形態に係る分散情報記憶装置２２０の機能構成を示すブロック図である。本実施形態においては、ｎ台の分散情報記憶装置２２０1〜２２０nがあるものとする。
【００８８】
分散情報記憶装置２２０1は、分散情報生成装置２１０から乱数の分散情報と秘密情報の分散情報の１つの組（r1,v1)を受信する。そして、乱数の分散情報r1をマスク用乱数分散情報記憶部２２１1に記憶する。また、秘密情報の分散情報v1をマスク済み秘密情報分散情報記憶部２２２1に記憶する。
【００８９】
分散情報記憶装置２２０nは、分散情報生成装置２１０から乱数の分散情報と秘密情報の分散情報の１つの組（rn,vn)を受信する。そして、乱数の分散情報rnをマスク用乱数分散情報記憶部２２１nに記憶する。また、秘密情報の分散情報vnをマスク済み秘密情報分散情報記憶部２２２nに記憶する。
【００９０】
（分散情報生成装置のハードウェア構成）
図５は、本実施形態に係る分散情報生成装置２１０としての情報処理装置のハードウェア構成を示すブロック図である。
【００９１】
図５で、ＣＰＵ(Central Processing Unit)５１０は演算制御用のプロセッサであり、プログラムを実行することで図３の分散情報生成装置２１０の機能構成部を実現する。ＲＯＭ(Read Only Memory)５２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部５３０は、ネットワークを介して他の装置と通信する。なお、ＣＰＵ５１０は１つに限定されず、複数のＣＰＵであってもよい。また、通信制御部５３０は、ＣＰＵ５１０とは独立したＣＰＵを有して、ＲＡＭ(Random Access Memory)５４０の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、ＲＡＭ５４０とストレージ５５０との間でデータを転送するＤＭＡＣ(Direct Memory Access Controller)を設けるのが望ましい（図示なし）。さらに、入出力インタフェース５６０は、ＣＰＵ５１０とは独立したＣＰＵを有して、ＲＡＭ５４０の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、ＣＰＵ５１０は、ＲＡＭ５４０にデータが受信あるいは転送されたことを認識してデータを処理する。また、ＣＰＵ５１０は、処理結果をＲＡＭ５４０に準備し、後の送信あるいは転送は通信制御部５３０やＤＭＡＣ、あるいは入出力インタフェース５６０に任せる。
【００９２】
ＲＡＭ５４０は、ＣＰＵ５１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ５４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。秘密情報(s1,…,Sm)５４１は、分散記憶される対象の情報である。マスク用乱数(r1,…,rn)５４２は、生成した乱数ｒを秘密情報のマスク用に分散した乱数の分散情報である。マスク用擬似乱数(Rand[r,1],…,Rand[r,m])５４３は、マスク用乱数(r1,…,rn)５４２から生成された秘密情報のマスク用の擬似乱数である。マスク済み秘密情報(s1+Rand［r,1］,…,sm+Rand［r,m］)５４４は、秘密情報(s1,…,Sm)５４１をマスク用擬似乱数(Rand[r,1],…,Rand[r,m])５４３でマスクした秘密情報である。秘密分散情報（v1,…,vn）５４５は、マスク済み秘密情報(s1+Rand［r,1］,…,sm+Rand［r,m］)５４４を、あらかじめ定められた値を固定した秘密分散法によって分散して生成された、マスク済み秘密情報の分散情報である。出力分散情報［(v1,r1),…,(vn,rn)］５４６は、マスク用乱数(r1,…,rn)５４２と秘密分散情報（v1,…,vn）５４５との対応する組で、複数の分散情報記憶装置２２０1〜２２０nに出力する情報である。入出力データ５４７は、入出力インタフェース５６０を介して入出力デバイスにより入出力するデータである。送受信データ５４８は、通信制御部５３０を介して送受信するデータである。
【００９３】
ストレージ５５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。マスク用乱数分散アルゴリズム５５１は、生成した乱数を分散するためのアルゴリズムである。マスク用擬似乱数発生アルゴリズム５５２は、分散したマスク用乱数からマスク用擬似乱数を生成するアルゴリズムである。固定値型秘密情報分散／復元アルゴリズム５５３は、あらかじめ定められた値を固定した秘密分散法によって分散して分散情報を生成すると共に、分散情報から秘密情報を復元するアルゴリズムである。
【００９４】
ストレージ５５０には、以下のプログラムが格納される。分散情報生成装置制御プログラム５５４は、分散情報生成装置２１０の全体を制御するプログラムである。マスク用乱数分散モジュール５５５は、マスク用乱数分散アルゴリズム５５１に従って、生成した乱数を分散するためのモジュールである。秘密情報マスクモジュール５５６は、マスク用擬似乱数発生アルゴリズム５５２に従って生成したマスク用擬似乱数で、秘密情報をマスクするモジュールである。固定値型秘密情報分散モジュール５５８は、固定値型秘密情報分散／復元アルゴリズム５５３に従って、マスク済み秘密情報をあらかじめ定められた値を固定した秘密分散法によって分散してマスク済み秘密情報の分散情報を生成するアルゴリズムである。
【００９５】
入出力インタフェース５６０は、入出力機器との入出力データをインタフェースする。入出力インタフェース５６０には、表示部５６１、操作部５６２、が接続される。また、入出力インタフェース５６０には、必要であれば、音声入出力部やＧＰＳ(Global Positioning System)位置判定部などが接続されてもよい。
【００９６】
なお、図５のＲＡＭ５４０やストレージ５５０には、分散情報生成装置２１０が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【００９７】
（分散情報生成装置の処理手順）
図６は、本実施形態に係る分散情報生成装置２１０としての情報処理装置の処理手順を示すフローチャートである。このフローチャートは、図５のＣＰＵ５１０がＲＡＭ５４０を使用して実行し、図３の分散情報生成装置２１０の機能構成部を実現する。
【００９８】
まず、秘密情報s1,…,smが分散情報生成装置２１０に入力される(ステップＳ６０１)。次に、分散情報生成装置２１０は、マスク用乱数分散部２１１を動作させる。マスク用乱数分散部２１１は、乱数rを生成し、rをRSSを用いて分散し、その分散情報をr1,…,rnを出力する（ステップＳ６０３）。次に、分散情報生成装置２１０は、マスク用乱数分散部２１１の出力であるr1,…,rnをマスク用擬似乱数生成部２１２に入力する。マスク用擬似乱数生成部２１２は、r1,…,rnを入力として、Rand[r,1],…,Rand[r,m]を計算し、出力する(ステップＳ６０５)。
【００９９】
次に、分散情報生成装置２１０は、秘密情報s1,…,smと、マスク用擬似乱数Rand[r,1],…,Rand[r,m]とを、秘密情報マスク部２１３に入力する。秘密情報マスク部２１３はs1+Rand[r,1],…,sm+Rand[r,m]を計算し、マスク済み秘密情報として出力する(ステップＳ６０７)。次に、分散情報生成装置２１０は、マスク済み秘密情報s1+Rand[r,1],…,sm+Rand[r,m]を固定値型秘密情報分散部２１４に入力する。固定値型秘密情報分散部２１４は、マスク済み秘密情報s1+Rand[r,1],…,sm+Rand[r,m]を、いくつかの分散情報が固定された値になる方法で分散する(ステップＳ６０９)。
【０１００】
次に、分散情報生成装置２１０は、固定値型秘密情報分散部２１４の出力を、分散情報記憶装置２２０1〜２２０nのマスク済み秘密情報分散情報記憶部２２２1〜２２２nに記憶させ、マスク用乱数分散部２１１の出力を、分散情報記憶装置２２０1〜２２０nのマスク用乱数分散情報記憶部２２１1〜２２１nに記憶させるように、出力する(ステップＳ６１１)。
【０１０１】
《分散情報変換処理》
以下、分散情報変換処理とそれを実現する構成について、図７〜図９を参照して詳細に説明する。
【０１０２】
（分散情報変換装置の機能構成）
図７は、本実施形態に係る分散情報変換装置２３０としての情報処理装置の機能構成を示すブロック図である。図７には、参照のため、１つの分散情報記憶装置２２０iを図示している。
【０１０３】
分散情報変換装置２３０は、分散情報記憶装置２２０iの記憶する値を分散情報取得部２３１で取得し、変換済み分散情報を出力する。マスク用乱数分散情報変換部２３２は、マスク用乱数分散情報記憶部２２１iからのマスク用乱数分散情報(ri)を入力とし、変換済みマスク分散情報を出力する。調整部２３３は、マスク済み秘密情報分散情報記憶部２２２iからのマスク済み秘密情報分散情報と、マスク用乱数分散情報変換部２３２からのマスク値の変換済み分散情報とを入力とし、マスク済み秘密情報分散情報からマスク値の変換済み分散情報を減じた値を、変換済み分散情報として出力する。変換済み分散情報出力部２３４は、調整部２３３からの変換済み分散情報を出力する。
【０１０４】
（分散情報変換装置のハードウェア構成）
図８は、本実施形態に係る分散情報変換装置２３０としての情報処理装置のハードウェア構成を示すブロック図である。
【０１０５】
図８で、ＣＰＵ８１０は演算制御用のプロセッサであり、プログラムを実行することで図７の分散情報変換装置２３０の機能構成部を実現する。ＲＯＭ８２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部８３０は、ネットワークを介して他の装置と通信する。なお、ＣＰＵ８１０は１つに限定されず、複数のＣＰＵであってもよい。また、通信制御部８３０は、ＣＰＵ８１０とは独立したＣＰＵを有して、ＲＡＭ８４０の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、ＲＡＭ８４０とストレージ８５０との間でデータを転送するＤＭＡＣを設けるのが望ましい（図示なし）。さらに、入出力インタフェース８６０は、ＣＰＵ８１０とは独立したＣＰＵを有して、ＲＡＭ８４０の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、ＣＰＵ８１０は、ＲＡＭ８４０にデータが受信あるいは転送されたことを認識してデータを処理する。また、ＣＰＵ８１０は、処理結果をＲＡＭ８４０に準備し、後の送信あるいは転送は通信制御部８３０やＤＭＡＣ、あるいは入出力インタフェース８６０に任せる。
【０１０６】
ＲＡＭ８４０は、ＣＰＵ８１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ８４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。取得分散情報(vi,ri)８４１は、分散情報記憶装置２２０iから取得した分散情報である。マスク用乱数分散情報(ri)８４２は、マスク用乱数分散情報記憶部２２１iに記憶されていた乱数の分散情報である。マスク用乱数分散情報変換値８４３は、マスク用乱数分散情報(ri)８４２を変換した値である。マスク済み秘密情報分散情報（vi）８４４は、マスク済み秘密情報分散情報記憶部２２２iに記憶されていたマスク済み秘密情報の分散情報である。マスク済み秘密情報分散情報調整値８４５は、マスク済み秘密情報分散情報（vi）８４４をマスク用乱数分散情報変換値８４３で変換したマスク済み秘密情報分散情報の調整値である。入出力データ８４７は、入出力インタフェース８６０を介して入出力デバイスにより入出力するデータである。送受信データ８４８は、通信制御部８３０を介して送受信するデータである。
【０１０７】
ストレージ８５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。マスク用乱数分散情報変換アルゴリズム８５１は、マスク用乱数分散情報を変換するためのアルゴリズムである。マスク済み秘密情報分散情報調整アルゴリズム８５２は、マスク済み秘密情報分散情報を調整するためのアルゴリズムである。
【０１０８】
ストレージ８５０には、以下のプログラムが格納される。分散情報変換装置制御プログラム８５４は、分散情報変換装置２３０の全体を制御するプログラムである。マスク用乱数分散情報変換モジュール８５５は、マスク用乱数分散情報変換アルゴリズム８５１に従って、マスク用乱数分散情報を変換するためのモジュールである。マスク済み秘密情報分散情報調整モジュール８５６は、マスク済み秘密情報分散情報調整アルゴリズム８５２に従って、マスク済み秘密情報分散情報を調整するためのモジュールである。
【０１０９】
入出力インタフェース８６０は、入出力機器との入出力データをインタフェースする。入出力インタフェース８６０には、表示部８６１、操作部８６２、が接続される。また、入出力インタフェース８６０には、必要であれば、音声入出力部やＧＰＳ位置判定部などが接続されてもよい。
【０１１０】
なお、図８のＲＡＭ８４０やストレージ８５０には、分散情報変換装置２３０が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【０１１１】
（分散情報変換装置の処理手順）
図９は、本実施形態に係る分散情報変換装置２３０としての情報処理装置の処理手順を示すフローチャートである。このフローチャートは、図８のＣＰＵ８１０がＲＡＭ８４０を使用して実行し、図７の分散情報変換装置２３０の機能構成部を実現する。
【０１１２】
まず、分散情報変換装置２３０は、分散情報取得部２３１により、分散情報記憶装置２２０のマスク用乱数分散情報記憶部２２１に記憶する値と、マスク済み秘密情報分散情報記憶部２２２に記憶する値と、を読み出す（ステップＳ９０１）。次に、分散情報変換装置２３０は、マスク用乱数分散情報変換部２３２において、マスク済み秘密情報分散情報を分散するために用いた方法と同じ方法で、分散した分散情報に変換して出力する。これをマスク用乱数分散情報とする(ステップＳ９０３)。
【０１１３】
次に、分散情報変換装置２３０は、分散情報記憶装置２２０のマスク済み秘密情報分散情報記憶部２２２が記憶していたマスク済秘密情報分散情報と、マスク用乱数分散情報変換部２３２の出力を、調整部２３３に入力する。そして、調整部２３３は、マスク済み秘密情報分散情報からマスク用乱数分散情報を減じた値を出力し、変換済み分散情報出力部２３４は、その値を変換済み分散情報としてする(ステップＳ９０５)。
【０１１４】
《分散情報復元処理》
以下、分散情報復元処理とそれを実現する構成について、図１０〜図１２を参照して詳細に説明する。
【０１１５】
（分散情報復元装置の機能構成）
図１０は、本実施形態に係る分散情報復元装置２４０としての情報処理装置の機能構成を示すブロック図である。
【０１１６】
図１０を参照すると、分散情報復元装置２４０は、複数の分散情報記憶装置２２０1〜２２０nの記憶する分散情報(v1,r1),…,(vn,rn)を入力として、復元した秘密情報（s1,…,sm)を出力する。
【０１１７】
分散情報取得部２４１は、分散情報(v1,r1),…,(vn,rn)を取得し、マスク済み秘密情報復元部２４２にマスク済み秘密情報の分散情報v1,…,vnを渡し、マスク用擬似乱数生成部４２３にマスク用乱数の分散情報r1,…,rnを渡す。
【０１１８】
マスク済み秘密情報復元部２４２は、複数のマスク済み秘密情報分散情報v1,…,vnを入力として、マスク済み秘密情報s1+Rand［r,1］,…,sm+Rand［r,m］を、マスク除去部２４４に出力する。マスク用擬似乱数生成部２４３は、マスク用擬似乱数生成部２１２と同一であり、マスク用乱数の分散情報r1,…,rnから、マスク用擬似乱数Rand［r,1］,…,Rand［r,m］を生成して、マスク除去部２４４に出力する。
【０１１９】
マスク除去部２４４は、マスク済み秘密情報復元部２４２の出力であるマスク済み秘密情報s1+Rand［r,1］,…,sm+Rand［r,m］と、マスク用擬似乱数生成部２４３の出力であるマスク用擬似乱数Rand［r,1］,…,Rand［r,m］を入力とし、マスク済み秘密情報からマスク用擬似乱数を減じた値を出力する。秘密情報出力部２４５は、マスク済み秘密情報からマスク用擬似乱数を減じた値を、復元した秘密情報（s1,…,sm)として出力する。
【０１２０】
（分散情報復元装置のハードウェア構成）
図１１は、本実施形態に係る分散情報復元装置２４０としての情報処理装置のハードウェア構成を示すブロック図である。
【０１２１】
図１１で、ＣＰＵ１１１０は演算制御用のプロセッサであり、プログラムを実行することで図１０の分散情報復元装置２４０の機能構成部を実現する。ＲＯＭ１１２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部１１３０は、ネットワークを介して他の装置と通信する。なお、ＣＰＵ１１１０は１つに限定されず、複数のＣＰＵであってもよい。また、通信制御部１１３０は、ＣＰＵ１１１０とは独立したＣＰＵを有して、ＲＡＭ１１４０の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、ＲＡＭ１１４０とストレージ１１５０との間でデータを転送するＤＭＡＣを設けるのが望ましい（図示なし）。さらに、入出力インタフェース１１６０は、ＣＰＵ１１１０とは独立したＣＰＵを有して、ＲＡＭ１１４０の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、ＣＰＵ１１１０は、ＲＡＭ１１４０にデータが受信あるいは転送されたことを認識してデータを処理する。また、ＣＰＵ１１１０は、処理結果をＲＡＭ１１４０に準備し、後の送信あるいは転送は通信制御部１１３０やＤＭＡＣ、あるいは入出力インタフェース１１６０に任せる。
【０１２２】
ＲＡＭ１１４０は、ＣＰＵ１１１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ１１４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。取得分散情報［(v1,r1),…,(vn,rn)］１１４１は、マスク用乱数(r1,…,rn)５４２と秘密分散情報（v1,…,vn）５４５との対応する組で、複数の分散情報記憶装置２２０1〜２２０nから取得した情報である。秘密分散情報（v1,…,vn）１１４２は、取得分散情報［(v1,r1),…,(vn,rn)］１１４１から分離された秘密情報の分散情報である。復元したマスク済み秘密情報(s1+Rand［r,1］,…,sm+Rand［r,m］)１１４３は、秘密分散情報（v1,…,vn）１１４２を、あらかじめ定められた値を固定した秘密分散法によって復元した、マスク済み秘密情報である。乱数分散情報(r1,…,rn)１１４４は、取得分散情報［(v1,r1),…,(vn,rn)］１１４１から分離された乱数の分散情報である。擬似乱数(Rand[r,1],…,Rand[r,m])１１４５は、乱数分散情報(r1,…,rn)１１４４から生成された擬似乱数である。復元した秘密情報(s1,…,Sm)１１４６は、復元したマスク済み秘密情報(s1+Rand［r,1］,…,sm+Rand［r,m］)１１４３から、擬似乱数(Rand[r,1],…,Rand[r,m])１１４５によりマスク除去した秘密情報である。入出力データ１１４７は、入出力インタフェース１１６０を介して入出力デバイスにより入出力するデータである。送受信データ１１４８は、通信制御部１１３０を介して送受信するデータである。
【０１２３】
ストレージ１１５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。マスク用擬似乱数発生アルゴリズム５５２は、分散情報生成装置２１０と同様の、分散したマスク用乱数からマスク用擬似乱数を生成するアルゴリズムである。固定値型秘密情報分散／復元アルゴリズム５５３も、分散情報生成装置２１０と同様の、あらかじめ定められた値を固定した秘密分散法によって分散して分散情報を生成すると共に、分散情報から秘密情報を復元するアルゴリズムである。
【０１２４】
ストレージ１１５０には、以下のプログラムが格納される。分散情報復元装置制御プログラム１１５４は、分散情報復元装置２４０の全体を制御するプログラムである。マスク済み秘密情報復元モジュール１１５５は、固定値型秘密情報分散／復元アルゴリズム５５３に従って、取得したマスク済み秘密情報の分散情報をあらかじめ定められた値を固定した秘密分散法によって復元して、マスク済み秘密情報を生成するアルゴリズムである。マスク用擬似乱数生成モジュール１１５６は、マスク用擬似乱数発生アルゴリズム５５２に従って、取得した乱数の分散情報からマスク用擬似乱数を生成するモジュールである。マスク除去モジュール１１５７は、マスク済み秘密情報からマスク用擬似乱数を減じて、元の秘密情報を復元するモジュールである。
【０１２５】
入出力インタフェース１１６０は、入出力機器との入出力データをインタフェースする。入出力インタフェース１１６０には、表示部１１６１、操作部１１６２、が接続される。また、入出力インタフェース１１６０には、必要であれば、音声入出力部やＧＰＳ位置判定部などが接続されてもよい。
【０１２６】
なお、図１１のＲＡＭ１１４０やストレージ１１５０には、分散情報復元装置２４０が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【０１２７】
（分散情報復元装置としての情報処理装置の処理手順）
図１２は、本実施形態に係る分散情報復元装置２４０としての情報処理装置の処理手順を示すフローチャートである。このフローチャートは、図１１のＣＰＵ１１１０がＲＡＭ１１４０を使用して実行し、図１０の分散情報復元装置２４０の機能構成部を実現する。
【０１２８】
まず、分散情報復元装置２４０は、分散情報取得部２４１により、複数の分散情報記憶装置２２０i〜２００nに記憶する値を読みだす。(k,n)しきい値型で分散されている場合ならば、k個以上の装置から読み出す(ステップＳ１２０１)。
【０１２９】
次に、分散情報復元装置２４０は、マスク済み秘密情報分散情報記憶部２２２i〜２２２nから読み出したマスク済み秘密情報分散情報v1,…,vnをマスク済み秘密情報復元部２４２に入力する。マスク済み秘密情報復元部２４２は、マスク済み秘密情報を復元して、マスク除去部２４４に出力する（ステップＳ１２０３）。次に、分散情報復元装置２４０は、マスク用擬似乱数生成部２４３にマスク用乱数分散情報記憶部２２１1〜２２１nから読み出したマスク用乱数分散情報を入力する。マスク用擬似乱数生成部２４３は、マスク用乱数分散情報より、マスク用擬似乱数を計算し、マスク除去部２４４に出力する(ステップＳ１２０５)。
【０１３０】
次に、分散情報復元装置２４０は、マスク済み秘密情報とマスク用乱数とをマスク除去部２４４に入力する。マスク除去部２４４は、マスク済み秘密情報からマスク用擬似乱数を除去し、秘密情報を復元して出力する(ステップＳ１２０７)。
【０１３１】
《本実施形態の秘密情報分散処理の適用例》
本適用例は、変換処理の結果、Shamir(k,n)法の分散情報に変換することができるようにするものである。
【０１３２】
《分散処理》
入力：秘密情報s1,…,sm, しきい値k、分散情報数n
処理：
(分散処理1) 乱数rを生成する。
(分散処理2) RSS_Dist(r) = (rss[s]1,…,rss[s]n)を計算する。RSS_Dist(r)のアクセス構造は(k,n)しきい値型とする。rss1 = rss[s]1,…,rssn = rss[s]nとする。(分散処理1)および(分散処理2)の処理が、マスク用乱数分散部２１１の実行する処理に相当する。
(分散処理3) rss[s]1,…,rss[s]nより、Rand[r,1],…,Rand[r,m]を計算する。この(分散処理3)の処理が、マスク用擬似乱数生成部２１２の実行する処理に相当する。
(分散処理4) ms1 = s1+Rand[r,1],…,msm = sm+Rand[r,m]を計算する。この(分散処理4)の処理が、秘密情報マスク部２１３の実行する処理に相当する。
(分散処理5) ms1,…,msmを(k-1)点を固定したShamir(k,n)法で分散する。msjのn個の分散情報をv{j,1},…,v{j,n}とする。この(分散処理5)の処理が、固定値型秘密情報分散部２１４の実行する処理に相当する。
(分散処理6)：xi =（v{1,i},…,v{m,i},rssi)をi個目の分散情報として出力する。v{h,i}はh番目の秘密情報に対応している。このような例では、固定値は明示的に分けて記憶せずに、マスク済み秘密情報分散情報として記憶されることになる。この(分散処理6)の処理が、分散情報出力部２１５により、複数の分散情報記憶装置２２０に生成した情報を記憶させる処理に相当する。
【０１３３】
《変換処理》
次に、本例の変換処理について説明する。i個目の分散情報に含まれるh番目の秘密情報に関する箇所をShamirの(k,n)法の分散情報に変換する方法を示す。
入力： i番目の分散情報のh番目の秘密情報に関する箇所v{h,i}と、i番目の分散情報の乱数に関する箇所rssi
(変換処理1) rssiからShamir_Rand_rss[s,h]iを計算する。rssi = rss[s1]であるので、RSSの性質より、計算することができる。この(変換処理1)の処理は、マスク用乱数分散情報変換部２３２の実行する処理に相当する。
(変換処理2) v{h,i}’= v{h,i} - Shamir_Rand_rss[s,h]iを計算する。v{h,i}はsh + Rand_rss[s,h]iのShamir(k,n)法の分散情報であるので、v{h,i}’はshをShamir(k,n)法を用いて分散したi番目の分散情報となる。この(変換処理2)の処理は、調整部２３３の実行する処理に相当する。
(変換処理3) v{h,i}を変換済みの分散情報として出力する。この(変換処理3)の処理は、変換済み分散情報出力部２３４の実行する処理に相当する。
【０１３４】
《復元処理》
次に、本発明の復元処理について説明する。以下では、b≧k個の分散情報から秘密情報を復元する場合について記載する。説明は、1番目からb番目の分散情報から復元を行う場合について記載するが、他の組み合わせでも同様である。
入力: b≧k個以上の分散情報、i個目の分散情報をxi =（v{1,i},…,v{m,i},rssi)とする。
(復元処理1) c=1,…,mについて、v{1,c},…,v{b,c}に対し、Shamir(k,n)法の復元処理を適用する。復元処理の出力をmscとする。この値はmsc = sc+Rand_rss[r,c]となる。この(復元処理1)の処理が、マスク済み秘密情報復元部２４２の実行する処理に相当する。
(復元処理2) rss1,…,rssbより、Rand_rss[s,1],…,Rand_rss[s,c]を計算する。この(復元処理2)の処理が、マスク用擬似乱数生成部２４３の実行する処理に相当する。
(復元処理3) c=1,…,mについて、ms1-Rand_rss[r,1],…,msm-Rand_rss[r,m]を計算する。この(復元処理3)の処理が、マスク除去部２４４の実行する処理に相当する。
(復元処理4) 復元された秘密情報として、ms1-Rand_rss[r,1],…,msm-Rand_rss[r,m]を出力する。これらは、分散記憶された元の秘密情報s1,…,smとなる。
【０１３５】
以上の実施例において、Shamir(k,n)法の代わりに加法型(n,n)法や、線形秘密分散法を用いても、それらの秘密分散法を使う場合に比べて通信量と記憶容量を削減できる。例えば、(2,3)しきい値型で１ギガバイトの秘密情報を分散する場合に、本実施形態の方法を適用すると、マスク済み秘密情報は、ひとつの分散情報の値を固定することができて２ギガバイトの分散情報として分散される。乱数の分散情報は擬似乱数生成関数の鍵として１６バイトのデータを用いるならば各分散情報が３２バイト程度となり、全体でも２ギガ＋９６バイト程度の記憶容量となる。Shamir(k,n)法を用いる場合、３ギガバイトになるので１ギガバイト程度のデータ容量を節約できる。
【０１３６】
これに対して、先行技術文献の［非特許文献５］に記載の方法を用いる場合、分散情報自体は１．５ギガバイト程度に抑えられるが、秘密計算法の技術を適用できるようにShamir(k,n)法の分散情報に変換する際に１．５ギガバイトの通信が必要となる。
【０１３７】
本実施形態では、Shamirの(k,n)法の分散情報に関して、(k-1)個以下のシェアには固定の値を用いる。このことで、k-1個分の分散情報に要する記憶容量が削減される。
【０１３８】
Shamirの(k,n)法の分散情報を生成する過程において、k-1次多項式f(x)=s+r1*x+r2*x2+…+r{k-1}*x(k-1)を生成する。このとき、r1,…,r{k-1}がランダムに選択するのは、その多項式上の点がk個集まらないとｓが復元できないようにするためである。つまり秘密情報の秘匿性の為である。f(1),…,f(k)を分散情報とする場合に、f(1)からf(k-1)を全て固定にし,f(0)=sとなるようにfを定めてもShamirの(k,n)法の分散情報としての第４の特徴は維持されていることに注意する。
【０１３９】
加法型(n,n)法の分散情報を生成する過程において、n-1個の値を固定するとは、分散処理(Add_Dist)の（分散処理1)において選択する乱数を固定することである。例えば、v2,…,vnを全て０にする場合、これらを記憶する必要はなくなる。つまりs自体がv1として記憶される。このような場合でも加法型(n,n)法の第３の特徴は維持されていることに注意する。
【０１４０】
次に、本実施形態において秘密情報sはRSSによって分散された擬似乱数rが加算された値s+rとして分散される。k個以下の分散情報からs+rが復元されたとしても、rが不明な限りsの秘匿性は保たれる。rはRSSによって(k,n)しきい値型で分散されているので、k個以下の分散情報から復元されることはない。つまり、(k,n)しきい値型のアクセス構造が実現されている。なお、乱数や擬似乱数を加算する処理をマスクするといい、この加算した値を減ずる処理をマスクを除去するなどという。マスク処理に加算を用い、マスクを除去する処理を減算としているが、これは逆でもよい。
【０１４１】
そしてrの分散情報は、RSSの持つ性質からrをShamir(k,n)法や加法型(n,n)法を用いた分散した値に変換できる。s+rとrに関して同じ方法で分散された分散情報があれば、Shamir(k,n)法の第４の特徴か加法型(n,n)法の第３の特徴によって、s+r-r=sの分散情報を計算することができる。
【０１４２】
以上説明したように、本実施形態によれば、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶することにより、秘密計算法に適用可能であって記憶量と通信量との効率がよい秘密情報の分散をすることができる。また、外部記憶装置に分散して記憶された秘密情報の分散情報に対して、記憶量と通信量との効率がよい変換をすることができる。そして、外部記憶装置に分散して記憶された秘密情報の分散情報から、記憶量と通信量との効率がよい秘密情報への復元をすることができる。
【０１４３】
本実施形態は、Shamirの(k,n)法に比べて少ない記憶容量の分散情報を生成する方法であって、さらに分散情報を保持する主体間が通信を行うことなくShamir(k,n)法の分散情報に変換可能な方法が望ましい。本発明はこのような手段・方法を提供するものである。なお、本実施形態の工夫は、Shamirの(k,n)法だけでなく、加法型(n,n)法に対しても同様に適用可能である。
【０１４４】
本実施形態は、Shamirの(k,n)法や加法型(n,n)法を用いる場合に比べて、分散情報の記憶容量が少ない秘密分散法を実現する。また、通信処理を伴うことなくShamirの(k,n)法や加法型(n,n)法の分散情報に変換可能であるため、効率的な秘密計算法のアルゴリズムを使って種々の計算を行うことができる。［非特許文献５］に記載されているような従来方法では、変換処理において大量の通信が発生していた。一方、本発明の変換処理は一切の通信を伴わない。
【０１４５】
本実施形態においては、秘密情報を入力として複数の分散情報を生成する分散処理と、分散情報を入力としてShamirの(k,n)法の分散情報を出力する変換処理と、分散処理によって生成された分散情報から秘密情報を復元する復元処理を含む。また、本実施形態の分散処理は、秘密情報は擬似乱数を加算してから(k-1)個の分散情報を固定したShamir(k,n)法で分散し、擬似乱数の鍵はRSSを用いて分散する。以上の方法を用いる場合、(k-1)個分の分散情報が固定値であるために記憶容量を消費しない。この削減された分と擬似乱数の鍵をRSSで分散した分で消費している記憶容量の差が、本実施形態による記憶容量削減量となる。
【０１４６】
次に変換処理について説明する。秘密情報に加算されている擬似乱数に関する分散情報は、擬似乱数の鍵がRSSを用いて分散されているために通信を伴う処理無しShamir(k,n)法の分散情報に変換できる。秘密情報と擬似乱数の和の分散情報と擬似乱数の分散情報のそれぞれがShamir(k,n)法で分散された値が揃うので、Shamir(k,n)法の持つ第４の性質を用いて秘密情報がShamir(k,n)法で分散された値を計算することができる。この過程には一切の通信を必要としない。
【０１４７】
復元処理に関しては、秘密情報と擬似乱数の和と擬似乱数の鍵をそれぞれ復元したのちに減算すればよい。
【０１４８】
以上に記載のShamir(k,n)法を加法型(n,n)法に置換すれば、加法型(n,n)法に変換する方法となる。なお、(k-1)は(n-1)に置換する。
【０１４９】
［第３実施形態］
次に、本発明の第３実施形態に係る秘密情報分散システムについて説明する。本実施形態に係る秘密情報分散システムは、上記第２実施形態と比べると、秘密情報の分散および復元に、加法型(n,n)法を使用する点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１５０】
《分散情報生成装置》
図１３は、本実施形態に係る分散情報生成装置１３１０としての情報処理装置の機能構成を示すブロック図である。なお、図１３において、図３と同様の機能構成部には同じ参照番号を付して、説明は省略する。
【０１５１】
分散情報生成装置１３１０においては、固定値型秘密情報分散部１３１４が加算型(n,n)法でマスク済み秘密情報を分散する点で、図３と異なる。他の処理は同様である。
【０１５２】
《分散情報復元装置》
図１４は、本実施形態に係る分散情報復元装置１３４０としての情報処理装置の機能構成を示すブロック図である。なお、図１４において、図１０と同様の機能構成部には同じ参照番号を付して、説明は省略する。
【０１５３】
分散情報復元装置１３４０においては、マスク済み秘密情報復元部１４４１が加算型(n,n)法でマスク済み秘密情報を復元する点で、図１０と異なる。他の処理は同様である。
【０１５４】
本実施形態によれば、Shamir(k,n)法と同様の構成により加算型(n,n)法を使用して、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶することにより、秘密計算法に適用可能であって記憶量と通信量との効率がよい秘密情報の分散をすることができる。
【０１５５】
［第４実施形態］
次に、本発明の第４実施形態に係る秘密情報分散システムについて説明する。本実施形態に係る秘密情報分散システムは、上記第２実施形態および第３実施形態と比べると、情報処理装置が分散情報生成機能、分散情報変換機能および分散情報復元機能を有する点で異なる。その他の構成および動作は、第２実施形態と第３実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１５６】
《秘密情報分散システム》
図１５は、本実施形態に係る秘密情報分散システム１５００の構成を示すブロック図である。なお、図１５において、図２Ａと同様の機能構成部には同じ参照番号を付して、説明は省略する。
【０１５７】
本実施形態の情報処理装置１５１０は、分散情報生成部１５２０と、分散情報変換部１５３０と、分散情報復元部１５４０と、を備える。分散情報生成部１５２０と、分散情報変換部１５３０と、分散情報復元部１５４０とのそれぞれの構成要素は、図２Ａの分散情報生成装置２１０と、分散情報変換装置２３０と、分散情報復元装置２４０と同様である。
【０１５８】
なお、情報処理装置が、分散情報生成部１５２０と、分散情報変換部１５３０と、分散情報復元部１５４０と、の少なくとも１つを備える種々の組み合わせも可能であり、本実施形態と同様の効果を奏する。
【０１５９】
本実施形態によれば、少ない情報処理装置によって本実施形態の秘密情報分散システムを構成できる。
【０１６０】
［他の実施形態］
なお、前述した内容では、秘密分散法をShamir(k,n)法と加法型(n,n)法について説明したが、Shamir(k,n)法における第４の性質、加法型(n,n)法における第３の性質に相当する性質を有する秘密分散法に対してならば、本発明の工夫がそのまま適用できる。
【０１６１】
また、本発明は、大量の秘密データをクラウドサーバに保管し、その秘密情報に関する種々の処理を実行する場合に特に有効である。多くのデータを効率的に保管でき、データの内容や処理結果をクラウドに知られることもない。個人情報のような外部に保管することに抵抗のあるデータを集積して統計演算を行いたい際に、サーバが記憶しなければならない記憶容量とサーバ間で行う通信量を大きく削減できる。
【０１６２】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１６３】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【０１６４】
［実施形態の他の表現］
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散手段と、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成手段と、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスク手段と、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散手段と、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力手段と、
を備える情報処理装置。
（付記２）
前記マスク用乱数分散手段は、前記複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成した前記乱数を分散し、前記固定値型秘密情報分散手段は、前記秘密情報を前記擬似乱数でマスクした前記マスク済み秘密情報を、(k-1)以下の値が固定されたShamir(k,n)法によって分散する、あるいは、
前記マスク用乱数分散手段は、前記複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成した前記乱数を分散し、前記固定値型秘密情報分散手段は、前記秘密情報を前記擬似乱数でマスクした前記マスク済み秘密情報を、(n-1)以下の値が固定された加法型(n,n)法によって分散する、付記１に記載の情報処理装置。
（付記３）
前記秘密情報マスク手段は、前記秘密情報に前記擬似乱数を加算することによりマスクする、付記１または２に記載の情報処理装置。
（付記４）
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得手段と、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換手段と、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整手段と、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力手段と、
を備える情報処理装置。
（付記５）
前記乱数の分散情報は、複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記マスク済み秘密情報の分散情報は、(k-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、あるいは
前記乱数の分散情報は、前記複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記マスク済み秘密情報の分散情報は、(n-1)以下の値が固定された加法型(n,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成される、付記４に記載の情報処理装置。
（付記６）
前記調整手段は、前記マスク済み秘密情報の分散情報から、前記擬似乱数の分散情報を減じることにより調整する、付記４または５に記載の情報処理装置。
（付記７）
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と複数のマスク済み秘密情報の分散情報とを取得する分散情報取得手段と、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元手段と、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成手段と、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去手段と、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力手段と、
を備える情報処理装置。
（付記８）
前記複数の乱数の分散情報は、複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記複数のマスク済み秘密情報の分散情報は、(k-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、前記マスク済み秘密情報復元手段は、前記(k-1)以下の値が固定されたShamir(k,n)法によって、前記複数のマスク済み秘密情報の分散情報から前記マスク済み秘密情報を復元し、あるいは
前記複数の乱数の分散情報は、複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記複数のマスク済み秘密情報の分散情報は、(n-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、前記マスク済み秘密情報復元手段は、前記(k-1)以下の値が固定された加法型(n,n)法によって、前記複数のマスク済み秘密情報の分散情報から前記マスク済み秘密情報を復元する、付記７に記載の情報処理装置。
（付記９）
前記マスク除去手段は、前記マスク済み秘密情報から前記擬似乱数を減じることによりマスクを除去する、付記７または８に記載の情報処理装置。
（付記１０）
付記１乃至３のいずれか１項に記載の情報処理装置と、付記４乃至６のいずれか１項に記載の情報処理装置と、付記７乃至９のいずれか１項に記載の情報処理装置と、を備える秘密情報分散システム。
（付記１１）
乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報を、前記乱数の分散情報から生成された擬似乱数でマスクしたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶する分散情報記憶ステップと、
を含む秘密情報分散方法である。
（付記１２）
前記外部記憶装置に記憶された前記乱数の分散情報から、擬似乱数の分散情報を生成するマスク用乱数分散情報変換ステップと、
前記外部記憶装置に記憶された前記マスク済み秘密情報の分散情報を前記擬似乱数の分散情報で調整して、変換済み分散情報とする調整ステップと、
をさらに含む付記１１に記載の秘密情報分散方法。
（付記１３）
前記複数の外部記憶装置に分散して記憶された前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
復元された前記マスク済み秘密情報から、前記複数の外部記憶装置に分散して記憶された前記複数の乱数の分散情報から生成した擬似乱数によりマスクを除去した秘密情報を、復元された秘密情報とするマスク除去ステップと、
をさらに含む付記８または９に記載の秘密情報分散方法。
（付記１４）
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスクステップと、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力ステップと、
を含む情報処理方法。
（付記１５）
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスクステップと、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。
（付記１６）
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得ステップと、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換ステップと、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整ステップと、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力ステップと、
を含む情報処理方法。
（付記１７）
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得ステップと、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換ステップと、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整ステップと、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。
（付記１８）
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と、複数のマスク済み秘密情報の分散情報とを取得する分散情報取得ステップと、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去ステップと、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力ステップと、
を含む情報処理方法。
（付記１９）
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と、複数のマスク済み秘密情報の分散情報とを取得する分散情報取得ステップと、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去ステップと、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。
【図１】
0006447870.tif 000002
【図２Ａ】
0006447870.tif 000003
【図２Ｂ】
0006447870.tif 000004
【図３】
0006447870.tif 000005
【図４】
0006447870.tif 000006
【図５】
0006447870.tif 000007
【図６】
0006447870.tif 000008
【図７】
0006447870.tif 000009
【図８】
0006447870.tif 000010
【図９】
0006447870.tif 000011
【図１０】
0006447870.tif 000012
【図１１】
0006447870.tif 000013
【図１２】
0006447870.tif 000014
【図１３】
0006447870.tif 000015
【図１４】
0006447870.tif 000016
【図１５】
0006447870.tif 000017