JP6447870B2 - 秘密情報分散システム、情報処理装置および情報処理プログラム - Google Patents

秘密情報分散システム、情報処理装置および情報処理プログラム Download PDF

Info

Publication number
JP6447870B2
JP6447870B2 JP2015058577A JP2015058577A JP6447870B2 JP 6447870 B2 JP6447870 B2 JP 6447870B2 JP 2015058577 A JP2015058577 A JP 2015058577A JP 2015058577 A JP2015058577 A JP 2015058577A JP 6447870 B2 JP6447870 B2 JP 6447870B2
Authority
JP
Japan
Prior art keywords
information
secret
distributed
secret information
random number
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
Application number
JP2015058577A
Other languages
English (en)
Other versions
JP2016178550A (ja
Inventor
俊則 荒木
俊則 荒木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015058577A priority Critical patent/JP6447870B2/ja
Publication of JP2016178550A publication Critical patent/JP2016178550A/ja
Application granted granted Critical
Publication of JP6447870B2 publication Critical patent/JP6447870B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、秘密情報分散システム、情報処理装置および情報処理プログラムに関する。
秘密計算法は、データを保管する主体に対して計算過程と結果を秘匿することができる技術である。クラウドのような第3者が管理するサーバにデータを保管し、その保管しているデータに対するあらゆる演算を実行することができる。第3者には、入力データ、計算過程、計算結果を知られることがないため、個人情報のような機微な情報に対する分析処理をアウトソースすることができる。
上記技術分野において、非特許文献1には、分散情報の数がnであり、しきい値がkのしきい値型アクセス構造の秘密分散法を(k,n)法の実現方法の1つであるShamir(k,n)法が開示されている。そして、非特許文献2には、Shamir(k,n)法を用いて分散されたデータに関する計算をデータの復元を伴うことなく実行することができる秘密計算法が提案されている。また、非特許文献3には、有限体上の加減算処理を主として構成された秘密分散法である(n,n)しきい値法(加算型(n,n)法と呼ぶ)が開示されている。そして、非特許文献4には、データが加算型(n,n)法によって分散されていることを前提とした秘密計算法が提案されている。
ところで、Shamir(k,n)法や加算型(n,n)法において、各分散情報を記憶するには分散される秘密情報と同程度の記憶容量が必要となる。クラウドサーバの課金方法に従量制が採られることも多く、データの記憶に要する容量は可能な限り小さい方がよい。このような要求に答える手法として、非特許文献5に記載の方法が知られている。非特許文献5では、複製型秘密分散法(Replicated Secret sharing:以降、RSSと略する)と、擬似乱数生成関数と、情報分散アルゴリズム(Information Dispersal Algorithm:IDA)とを用いて、秘密情報をデータの記憶容量の面で効率のよい方法で分散し、秘密計算を行う場合には、Shamirの(k,n)法に変換する方法を提案している。上記非特許文献5に記載の技術では、Shamirの(k,n)法に比べて少ない記憶容量の分散情報を生成することができ、秘密計算法に利用できるようにShamirの(k,n)法の分散情報に変換することも可能である。なお、情報分散アルゴリズム(IDA)の具体的なアルゴリズムに関しては、非特許文献6に記載されている。
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
しかしながら、上記非特許文献5に記載の技術では、秘密計算法に利用できるようにShamirの(k,n)法の分散情報に変換する変換処理過程で大量の通信を行わなければならない。通信量に関して従量の課金が発生することは多々あり、可能な限り少ない方がよい。
本発明の目的は、上述の課題を解決する技術を提供することにある。
上記目的を達成するため、本発明に係る情報処理装置は、
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散手段と、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成手段と、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスク手段と、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散手段と、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力手段と、
を備える。
上記目的を達成するため、本発明に係る情報処理装置は、
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得手段と、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換手段と、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整手段と、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力手段と、
を備える。
上記目的を達成するため、本発明に係る情報処理装置は、
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と複数のマスク済み秘密情報の分散情報とを取得する分散情報取得手段と、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元手段と、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成手段と、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去手段と、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力手段と、
を備える。
上記目的を達成するため、本発明に係る秘密情報分散システムは、
上記3つの情報処理装置を備える。
上記目的を達成するため、本発明に係る情報処理プログラムは、
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスクステップと、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力ステップと、
をコンピュータに実行させる。
上記目的を達成するため、本発明に係る情報処理プログラムは、
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得ステップと、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換ステップと、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整ステップと、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力ステップと、
をコンピュータに実行させる。
上記目的を達成するため、本発明に係る情報処理プログラムは、
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と、複数のマスク済み秘密情報の分散情報とを取得する分散情報取得ステップと、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去ステップと、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力ステップと、
をコンピュータに実行させる。
本発明によれば、秘密計算法に適用可能であって記憶量と通信量との効率がよい秘密情報の分散をすることができる。
本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2実施形態に係る秘密情報分散システムの構成を示すブロック図である。 本発明の第2実施形態に係る秘密情報分散システムにおける秘密情報分散方法の手順を示すフローチャートである。 本発明の第2実施形態に係る分散情報生成装置としての情報処理装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る分散情報記憶装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る分散情報生成装置としての情報処理装置のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る分散情報生成装置としての情報処理装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係る分散情報変換装置としての情報処理装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る分散情報変換装置としての情報処理装置のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る分散情報変換装置としての情報処理装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係る分散情報復元装置としての情報処理装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る分散情報復元装置としての情報処理装置のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る分散情報復元装置としての情報処理装置の処理手順を示すフローチャートである。 本発明の第3実施形態に係る分散情報生成装置としての情報処理装置の機能構成を示すブロック図である。 本発明の第3実施形態に係る分散情報復元装置としての情報処理装置の機能構成を示すブロック図である。 本発明の第4実施形態に係る秘密情報分散システムの構成を示すブロック図である。
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、秘密情報から分散情報を生成する装置である。
図1に示すように、情報処理装置100は、マスク用乱数分散部101と、マスク用擬似乱数生成部102と、秘密情報マスク部103と、固定値型秘密情報分散部104と、分散情報出力部105と、を含む。マスク用乱数分散部101は、乱数を生成し、生成した乱数を複製型秘密分散法を用いて分散して、乱数の分散情報を生成する。マスク用擬似乱数生成部102は、秘密情報に対応して、乱数の分散情報から擬似乱数を生成する。秘密情報マスク部103は、秘密情報を擬似乱数によりマスクする。固定値型秘密情報分散部104は、擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、マスク済み秘密情報の分散情報を生成する。分散情報出力部105は、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する。
本実施形態によれば、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶することにより、秘密計算法に適用可能であって記憶量と通信量との効率がよい秘密情報の分散をすることができる。
[第2実施形態]
次に、本発明の第2実施形態に係る秘密情報分散システムについて説明する。本実施形態に係る秘密情報分散システムにおいては、秘密情報から分散情報生成装置により乱数の分散情報とマスク済み秘密情報の分散情報との複数の組を生成して、複数の分散情報記憶装置に分散記憶する。また、各分散情報記憶装置に分散記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組から、分散情報変換装置は、秘匿性を維持したまま装置間の少ない情報伝送により変換済み秘密情報を生成する。また、複数の分散情報記憶装置に分散記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との複数の組から、分散情報復元装置により秘密情報を復元する。
《前提技術》
本実施形態の前提技術として、秘密計算法が基礎技術として用いる秘密分散法、秘密計算法、[非特許文献5]の技術、およびこれらに関連する技術について説明する。
《秘密分散法》
秘密分散法とは、秘密情報から複数の分散情報を生成する技術である。分散情報はあらかじめ定められた組み合わせからは秘密情報を復元できるが、それ以外の組み合わせからは秘密情報が復元できないように作られる。定められた組み合わせには様々な構造をとることができ、その構造はアクセス構造などと呼ばれる。
代表的なアクセス構造として、しきい値型アクセス構造について説明する。しきい値型アクセス構造は、生成される分散情報の数nと、しきい値kとの2つのパラメータで表すことができる。k個以上の分散情報からは秘密情報が復元できるが、k個未満の分散情報からは秘密情報が復元できないというものである。以降、分散情報の数がnであり、しきい値がkのしきい値型アクセス構造の秘密分散法を(k,n)法と呼ぶ。
(k,n)法の実現方法は様々知られているが、[非特許文献1]に記載のShamir(k,n)法と、[非特許文献3]などに記載の有限体上の加減算処理を主として構成された(n,n)しきい値法(加算型(n,n)法と呼ぶ)との2方式に関して、秘密情報を分散する処理、復元する処理、およびその特徴を説明する。
(Shamir(k,n)法)
Shamir(k,n)しきい値法は,有限体Zの要素である秘密情報を入力としてn個の分散情報を生成するための分散処理(以降、Shamir_Distと呼ぶ)と、k個以上の分散情報から秘密情報を復元する復元処理(以降、Shamir_Recと呼ぶ)とを有する。なお、+は有限体上の加算を表し、*は乗算を表す。
・分散処理(Shamir_Dist)
入力:秘密情報s、しきい値k、分散情報数n
処理:
(分散処理1) 定数項がsに等しい有限体Z上の、(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はj個目のviであり、各iは異なる値である。すなわち、しきい値であるk個以上の分散情報が入力される)、しきい値k
処理:
(復元処理1) ((i,1),vi,1),…,((i,j),vi,j)を通る有限体Z上の、(k-1)次多項式f'(x)を計算する。
(復元処理2) f(0)を計算する。
出力:f(0)
ここで、Shamir(k,n)法の持つ4つの特徴と、その記憶容量とについて説明する。
第1の特徴:k個未満の分散情報からは秘密情報を復元することができない。これは、(k-1)次多項式はk個の点によって一意に定まる。k個未満の分散情報からは分散処理で用いられた(k-1)次多項式を定めることができない。そのため、多項式の定数項である秘密情報を得ることもできない。
第2の特徴:k個以上の分散情報から秘密情報を復元することができる。(k-1)次多項式はk個の点によって定まるので、k個以上の分散情報から分散処理で用いられた(k-1)次多項式が一意に定まる。そのため、多項式の定数項である秘密情報も得ることができる。なお、多項式の定数項は、(k-1)次多項式の変数に“0”を代入した値と同じである。これは、(n-k)個までの分散情報が紛失しても秘密情報が失われないことを表している。
第3の特徴:秘密情報sをShamir(k,n)法によって分散したv1,…,vnにおいて、全ての分散情報にxを加算したv1+x,…,vn+xは、(s+x)の分散情報となる。これは、Shamir(k,n)法において、秘密情報は(k-1)次の多項式の定数項に埋め込まれているためである。これは、有限体上の減算に関しても同様である。
第4の特徴:秘密情報sに関して生成された分散情報がv1,…,vn、秘密情報s'に関する分散情報がv1',…,vn'であるとき、v1+v1',…,vn+vn'が(s+s')の分散情報となる。これは有限体上の減算に関しても同様である。
なお、Shamir_Distの処理において、viを、多項式にiを代入した値としているが、全ての分散情報が多項式に異なる0以外の値を入力した値であれば動作する。
Shamirの(k,n)法における各分散情報を記憶するために要する容量は、有限体の要素1つを記憶するためのビット長と等しい。秘密情報を表すのに必要十分なサイズの有限体が用いられている場合、秘密情報を記憶するために要するビット長と分散情報1つを記憶するために要するビット長は同程度となる。
(加算型(n,n)法)
加算型(n,n)法は,有限体Zの要素である秘密情報sを入力としてn個の分散情報を生成するための分散処理(以降、Add_Distと呼ぶ)と、nの分散情報から秘密情報を復元する復元処理(以降、Add_Recと呼ぶ)とを有する。なお、+は有限体上の加算を表し、-は有限体上の減算を表す。
・分散処理(Add_Dist)
入力:秘密情報s(有限体Zの要素)、分散情報数n
処理:
(分散処理1) v2,…,vnを有限体Zの要素から一様ランダムに選択する。
(分散処理2) v1 = s+r1+…+rnを計算する。
出力:v1,…,vnを分散情報として出力する。
各分散情報の記憶容量は、有限体の要素1つを表すために必要なビット長となる。秘密情報を表すのに必要十分なサイズの有限体が用いられている場合、秘密情報を記憶するために要するビット長と分散情報1つを記憶するために要するビット長は同程度となる。
・復元処理(Add_Rec)
入力:n個の分散情報v1,…,vn
処理:
(復元処理1) s' = v1-(v2+…+vn)を計算する。
出力:s'
ここで、加算型(n,n)法の持つ3つの特徴と、分散情報の記憶容量とついて説明する。
第1の特徴:n個未満の分散情報からは秘密情報を復元することができない。
第2の特徴:n個の分散情報からは秘密情報を復元することができる。
第3の特徴:秘密情報sに関して生成された分散情報がv1,…,vn、秘密情報s'に関する分散情報がv1',…,vn'であるとき、v1+v1',…,vn+vn'が(s+s')の分散情報となっている。これは有限体上の減算に関しても同様である。この第3の特徴は、Shamir(k,n)法の第4の特徴に相当する。
((k,n)法の利用方法)
前述したような(k,n)しきい値法は、秘密情報の分散管理に用い、秘匿性を高めることができる。例えば、秘密情報sに(2,3)しきい値法の分散処理を適用し、3つの分散情報v1,v2,v3を計算する。v1,v2,v3をそれぞれ異なるサーバに保管する。この時、1台のサーバに保管されている分散情報が漏えいしても、秘密情報の漏えいを防ぐことができる。例えば。クラウド等のサーバに秘密情報を保管する際、預けたデータをクラウドの管理者に知られないようにするために用いることができる。
・データ保管の際の処理
あるクライアントCが秘密情報sをサーバS1,S2,S3に保管する場合を想定すると、以下のような手順となる。
(保管処理1) クライアントCは、sを(2,3)しきい値法で分散する。その出力である3つの分散情報をd1,d2,d3とする。
(保管処理2) クライアントCは、サーバS1にd1を、サーバS2にd2を、サーバS3にd3を送付し、保管を依頼する。
・データ復元の際の処理
(復元処理1) クライアントCは、サーバS1とサーバS2のそれぞれに対し、それぞれが保管している情報を送付するように依頼する。
(復元処理2) サーバS1はd1を、サーバS2はd2をクライアントCに送付する。
(復元処理3) クライアントCは、d1とd2とを(2,3)しきい値法の復元処理に入力し、その出力である秘密情報を得る。
以上のような方法をとれば、(2,3)しきい値法の性質より、それぞれのサーバは秘密情報の内容について知ることができない。このように秘密分散法を利用すれば、秘密情報をサーバに知られることなく保管することができる。秘密分散法は、秘密情報を複数台のサーバに分散して保管することでデータの秘匿性を高めることができる。ここで、サーバに保管したデータに関する計算を実行するためには秘密計算法と呼ばれる技術が用いられる。
《秘密計算法》
上記秘密分散法によって分散されたデータに関する計算を実行することができる技術は、秘密計算法と呼ばれている。秘密計算法は[非特許文献2]で提案されて以来、様々な方法が提案されている。秘密計算法によれば、秘密分散法によって複数のサーバに分散して保管されたデータ群に対する任意の演算をデータの復元を伴うことなく実行することができる。秘密計算法には様々な方法があるが、データがShamir(k,n)法を用いて分散されていることを前提とした手法([非特許文献2]等に記載)が多く提案されている。近年は、データが加算型(n,n)法によって分散されていることを前提とした手法([非特許文献4]等に記載)も多く提案されている。
このような秘密計算法は、複数のサーバにデータを分散して登録し、登録したデータに関する任意の演算が実行可能である。計算対象のデータを複数台のサーバに分散して保管し、その解析を秘密計算法で行うことによってサーバにも解析対象とデータと解析結果とを知られることなく様々な分析を実行することができる。
《[非特許文献5]に記載の方法》
前述したが、Shamir(k,n)法や加算型(n,n)法において、各分散情報を記憶するには分散される秘密情報と同程度の記憶容量が必要となる。クラウドサーバの課金方法に従量制が採られることも多く、データの記憶に要する容量は可能な限り小さい方がよい。このような要求に答える手法として、[非特許文献5]に記載の方法が知られている。[非特許文献5]に記載の方法は、複製型秘密分散法(Replicated Secret sharing:以降、RSSと略する)と、擬似乱数生成関数と、情報分散アルゴリズム(Information Dispersal Algorithm:IDA)とを用いており、それぞれについて説明する。
(RSSについての説明)
RSSについては[非特許文献3]に記載されている。RSSは、任意のアクセス構造を実現可能な秘密分散法であり、有限体の要素を(k,n)しきい値型のアクセス構造で分散することができる。
RSSの基本とする処理は、有限体Zの要素である秘密情報sを入力としてn個の分散情報を生成するための分散処理(以降、RSS_Distと呼ぶ)と、k個以上の分散情報から秘密情報を復元する復元処理(以降、RSS_Recと呼ぶ)とを有し、これらを以下で説明する。なお、+は有限体上の加算を表す。
・分散処理(RSS_Dist)
入力:s(有限体Zの要素をする)、しきい値k、分散情報数n
処理:
(分散処理1) 集合(1,…,n)の要素から(k-1)個の要素を選択した集合それぞれについて、有限体Z上の要素をランダムに選択する。ただし、最後の1つは全ての和がsと等しくなるように選択する。
(分散処理2) viを、(分散1)の処理でiを含まない組み合わせについて選択した乱数の集合とする。
出力:v1,…,vnを出力する。
・復元処理(RSS_Rec)
入力:j≧k個の分散情報vi,1,…,vi,j(1≦i≦n:vi,jはj個目のviであり、各iは異なる値である。すなわち、しきい値であるk個以上の分散情報が入力される)、しきい値k
処理:
(復元処理1) RSS_Distの(分散処理1)の処理において生成された全ての乱数が揃うので、これらを加算した値を計算する。
出力:(復元処理1)の処理の計算結果
以上のような方法は、任意のアクセス構造に対する秘密分散法が実現できる一方で、Shamirの(k,n)法などと比較すると記憶容量に関する効率が悪い。例えば、(2,3)しきい値型のアクセス構造を実現する場合、秘密情報sに対し、r1+r2+r3 = Sとなる3つの乱数が生成される。このとき3つの分散情報v1,v2,v3は、それぞれv1=(r2,r3),v2=(r1,r3),v3=(r1,r2)となる。どの1つからも秘密情報は復元できず、どの2つからもr1,r2,r3がそろうため、秘密情報が復元できる。したがって(2,3)しきい値型のアクセス構造が実現されていることが確認できる。
一方で、それぞれの分散情報は2つの乱数から構成されており、それぞれに対して秘密情報と同程度の記憶容量を要する。したがって、Shamir(k,n)法に比べて効率が悪いことが確認できる。(k,n)しきい値型一般に対しては、a個からb個選ぶ組み合わせの総数をabと表して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)が3人の異なる管理者に分散されているものとする。すなわち、(r1+r2+r3)がRSSを用いた(2,3)しきい値法によって分散されている。このとき、任意のiに対して、Rand(r1,i)+Rand(r2,i)+Rand(r3,i)も分散されていることになる。Rand(r1,i)+Rand(r2,i)+Rand(r3,i)の値はr1,r2,r3によって決定されてしまうため、自由に設定することはできないが、暗号に用いる秘密鍵などを共有するために有用である。
[非特許文献3]では、RSSによって(k,n)しきい値構造を持つように生成された分散情報を、同じ値に対するShamirの(k,n)法の分散情報に変換する方法が記載されている。この変換は、分散情報の管理者間で通信することなく実行することができる。つまり、v1=(r1,r2),v2=(r2,r3),v3=(r1,r3)が分散されているとき、任意のiに対して、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倍程度で済むことが知られている。具体的なアルゴリズムに関しては、[非特許文献6]に記載されている。
一般に、秘密分散法で生成される分散情報の記憶容量よりも少ないサイズの分散情報を生成することができる。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]に記載の方法が知られている。
([非特許文献5]による秘密計算例)
[非特許文献5]では、秘密情報をデータの記憶容量の面で効率のよい方法で分散し、秘密計算を行う場合には、Shamirの(k,n)法に変換する方法を提案している。以下では、Shamirの(k,n)法に適用する場合を例にとって説明を記載しているが、線形秘密分散法と呼ばれる秘密分散法に対しては同様の手法が適用できる。[非特許文献5]に記載の方法をCSSと呼ぶことにする。CSSは、複数の有限体の要素を分散することを前提とし、分散処理(以降、CSS_Distと呼ぶ)と、復元処理(以降、CSS_Recと呼ぶ)と、変換処理(以降,CSS_Convと呼ぶ)と、からなる。CSS_Distにおいては、有限体Zの要素の集合から成る秘密情報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のうち2つが揃うように情報を送受信し、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)法の性質3よりr{i,j}’はsiのj個目の分散情報となる。
出力:r{i,j}’をsiのj個目の分散情報として出力する。
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の分散情報の変換処理の概要は以下の通りである。i個目の分散情報に関する変換処理を実行する方法について述べる。変換後は、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)法の第3の特徴によってxjはsiの分散情報となる。
ここで、(変換処理1)の手順でどの程度の通信が発生するかを考える。例えば、1ギガビットのデータを(2,3)法で分散する場合を考える。Shamir(2,3)法を用いる場合、それぞれの分散情報が1ギガビットであり、3つの分散情報の合計は3ギガビットとなる。
CSSを(2,3)しきい値型のアクセス構造で用いる場合、擬似乱数生成関数の鍵として128ビットの乱数を用いる前提で、r1,r2,r3の分散に各256ビット、IDAの分散情報がそれぞれ0.5ギガビットであるので、3つの分散情報の合計は1.5ギガビットと256ビットである。記憶容量がほぼ半分となっていることがわかる。ただし、CSS_Convの(変換処理1)の処理において、t1,t2,t3を復元する処理がある。i=1,2,3についてuiを持つ管理者はj≠iであるujを他の管理者から入手しなくてはならない。この通信量が1.5ギガビットかかる。つまり、Convを実行するには、削減されたはずの記憶容量に相当するデータを送受信しなくてはならない。
この通信は、si+Rand(r,i)に関する分散情報を全ての分散情報を管理する参加者が復元できなければならないために起こっている。これはShamir(k,n)法の持つ第3の特徴を利用するためである。全てのシェアに同じ値を減ずるためには、全ての分散情報を管理する参加者が同じ値を取得する必要がある。
[非特許文献5]に記載の方法によれば、Shamirの(k,n)法に比べて少ない記憶容量の分散情報を生成することができる。また、秘密計算法に利用できるようにShamirの(k,n)法の分散情報に変換することも可能である。しかし、このように、変換処理過程で大量の通信を行わなければならない。通信量に関して従量の課金が発生することは多々あり、可能な限り少ない方がよい。
《本実施形態の秘密情報分散システム》
本実施形態の秘密情報分散システムについて、図面を参照して詳細に説明する。本実施形態の秘密情報分散方法は、Shamirの(k,n)法に比べて少ない記憶容量の分散情報を生成する方法であって、さらに分散情報を保持する主体間が通信を行うことなくShamir(k,n)法の分散情報に変換可能な方法を提供する。本実施形態の秘密情報分散方法は、Shamirの(k,n)法だけでなく、加法型(n,n)法に対しても同様に適用可能である。
《秘密情報分散システム》
図2Aは、本実施形態に係る秘密情報分散システム200の構成を示すブロック図である。
本実施形態に係る秘密情報分散システム200は、分散情報生成装置210と、複数台の分散情報記憶装置2201〜220nと、分散情報変換装置230と、分散情報復元装置240を備える。分散情報生成装置210は、秘密情報から分散情報を生成する処理を実行する。分散情報記憶装置2201〜220nは、分散情報生成装置210が生成した分散情報を記憶する。分散情報変換装置230は、各分散情報記憶装置220の分散情報を変換する処理を実行する。分散情報復元装置240は、分散情報記憶装置2201〜220nに記憶された分散情報から秘密情報を復元する処理を実行する。なお、分散情報記憶装置220の台数はnとし、i台目を分散情報記憶装置220iとする。分散情報変換装置230は、各分散情報記憶装置220がそれぞれ1台の分散情報変換装置230を備えて分散情報を変換するために用いてもよいし、複数の分散情報記憶装置220が1台の分散情報変換装置230を共有してもよい。
分散情報生成装置210は、マスク用乱数分散部211と、マスク用擬似乱数生成部212と、秘密情報マスク部213と、固定値型秘密情報分散部214と、分散情報出力部215と、を備える。分散情報記憶装置2201〜220nは、それぞれ、マスク用乱数分散情報記憶部2211〜221nと、マスク済み秘密情報分散情報記憶部2221〜222nと、を備える。分散情報変換装置230は、分散情報取得部231と、マスク用乱数分散情報変換部232と、調整部233と、変換済み分散情報出力部234と、を備える。分散情報復元装置240は、分散情報取得部241と、マスク済み秘密情報復元部242と、マスク用擬似乱数生成部243と、マスク除去部244と、秘密情報出力部245と、を備える。
《秘密情報分散方法》
図2Bは、本実施形態に係る秘密情報分散システム200における秘密情報分散方法の手順を示すフローチャートである。
秘密情報分散システム200においては、秘密情報から分散情報を生成する分散情報生成処理と、分散情報を変換する分散情報変換処理と、分散情報から秘密情報を復元する分散情報復元処理と、を含む。なお、それぞれの処理は、単独で行なわれても複数の処理を組み合わせて行なわれてもよい。
秘密情報分散システム200は、ステップS211において、マスク用乱数分散処理として、乱数を複製型秘密分散法を用いて分散して、乱数の分散情報を生成する。次に、秘密情報分散システム200は、ステップS213において、固定値型秘密情報分散処理として、秘密情報を、乱数の分散情報から生成された擬似乱数でマスクしたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、マスク済み秘密情報の分散情報を生成する。そして、秘密情報分散システム200は、ステップS215において、分散情報記憶処理として、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶する。かかるステップS211〜S215の処理が分散情報生成処理となる。
秘密情報分散システム200は、ステップS221において、マスク用乱数分散情報変換処理として、外部記憶装置に記憶された乱数の分散情報から、擬似乱数の分散情報を生成する。そして、秘密情報分散システム200は、ステップS223において、調整処理として、外部記憶装置に記憶されたマスク済み秘密情報の分散情報を擬似乱数の分散情報で調整して、変換済み分散情報とする。かかるステップS221およびS223の処理が分散情報変換処理となる。
秘密情報分散システム200は、ステップS231において、マスク済み秘密情報復元処理として、複数の外部記憶装置に分散して記憶された複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元する。そして、秘密情報分散システム200は、ステップS233において、マスク除去処理として、復元されたマスク済み秘密情報から、複数の外部記憶装置に分散して記憶された複数の乱数の分散情報から生成した擬似乱数によりマスクを除去した秘密情報を、復元された秘密情報とする。かかるステップS231およびS233の処理が分散情報変換処理となる。
《分散情報生成処理》
以下、分散情報生成処理とそれを実現する構成について、図3〜図6を参照して詳細に説明する。
(分散情報生成装置の機能構成)
図3は、本実施形態に係る分散情報生成装置210としての情報処理装置の機能構成を示すブロック図である。
なお、分散情報生成装置210には、秘密情報s1,…,smが入力され、マスク用乱数分散部211の出力である複数のマスク用乱数分散情報を、分散情報記憶装置220のマスク用乱数分散情報記憶部221に記憶させ、固定値型秘密情報分散部214の出力である複数のマスク済み秘密情報分散情報を、複数の分散情報記憶装置220のマスク済み秘密情報分散情報記憶部222に記憶させる。
マスク用乱数分散部211は、アクセス構造データを入力とし、乱数rを生成し、RSSを用いて分散した乱数の分散情報(r1,…,rn)を、マスク用擬似乱数生成部212および分散情報出力部215に出力する。マスク用擬似乱数生成部212は、マスク用乱数分散部211の出力である乱数(r1,…,rn)を入力とし、マスク用擬似乱数(Rand[r,1],…,Rand[r,m])を秘密情報マスク部213に出力する。
秘密情報マスク部213は、アクセス構造データを入力とし、秘密情報(s1,…,sm)と、マスク用擬似乱数生成部212の出力であるマスク用擬似乱数(Rand[r,1],…,Rand[r,m])とを入力して、マスク済み秘密情報(s1+Rand[r,1],…,sm+Rand[r,m])を固定値型秘密情報分散部214に出力する。固定値型秘密情報分散部214は、秘密情報マスク部213の出力であるマスク済み秘密情報(s1+Rand[r,1],…,sm+Rand[r,m])を入力とし、マスク済み秘密情報(s1+Rand[r,1],…,sm+Rand[r,m])に関する分散情報(v1,…,vn)を、いくつかの値が固定されるような方法で生成して、分散情報出力部215に出力する。
分散情報出力部215は、マスク用乱数分散部211からの乱数の分散情報(r1,…,rn)と、固定値型秘密情報分散部214からの秘密情報の分散情報(v1,…,vn)とを組として、分散情報記憶装置2201〜220nのそれぞれに出力する。
なお、固定値型秘密情報分散部214、分散情報記憶装置2201〜220nは、マスク済み秘密情報分散情報のどの値を固定値とするのかを共有しているものとする。対応がとれる方法であればどのような方法でもよい。
《分散情報記憶装置の機能構成》
図4は、本実施形態に係る分散情報記憶装置220の機能構成を示すブロック図である。本実施形態においては、n台の分散情報記憶装置2201〜220nがあるものとする。
分散情報記憶装置2201は、分散情報生成装置210から乱数の分散情報と秘密情報の分散情報の1つの組(r1,v1)を受信する。そして、乱数の分散情報r1をマスク用乱数分散情報記憶部2211に記憶する。また、秘密情報の分散情報v1をマスク済み秘密情報分散情報記憶部2221に記憶する。
分散情報記憶装置220nは、分散情報生成装置210から乱数の分散情報と秘密情報の分散情報の1つの組(rn,vn)を受信する。そして、乱数の分散情報rnをマスク用乱数分散情報記憶部221nに記憶する。また、秘密情報の分散情報vnをマスク済み秘密情報分散情報記憶部222nに記憶する。
(分散情報生成装置のハードウェア構成)
図5は、本実施形態に係る分散情報生成装置210としての情報処理装置のハードウェア構成を示すブロック図である。
図5で、CPU(Central Processing Unit)510は演算制御用のプロセッサであり、プログラムを実行することで図3の分散情報生成装置210の機能構成部を実現する。ROM(Read Only Memory)520は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部530は、ネットワークを介して他の装置と通信する。なお、CPU510は1つに限定されず、複数のCPUであってもよい。また、通信制御部530は、CPU510とは独立したCPUを有して、RAM(Random Access Memory)540の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM540とストレージ550との間でデータを転送するDMAC(Direct Memory Access Controller)を設けるのが望ましい(図示なし)。さらに、入出力インタフェース560は、CPU510とは独立したCPUを有して、RAM540の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU510は、RAM540にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU510は、処理結果をRAM540に準備し、後の送信あるいは転送は通信制御部530やDMAC、あるいは入出力インタフェース560に任せる。
RAM540は、CPU510が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM540には、本実施形態の実現に必要なデータを記憶する領域が確保されている。秘密情報(s1,…,Sm)541は、分散記憶される対象の情報である。マスク用乱数(r1,…,rn)542は、生成した乱数rを秘密情報のマスク用に分散した乱数の分散情報である。マスク用擬似乱数(Rand[r,1],…,Rand[r,m])543は、マスク用乱数(r1,…,rn)542から生成された秘密情報のマスク用の擬似乱数である。マスク済み秘密情報(s1+Rand[r,1],…,sm+Rand[r,m])544は、秘密情報(s1,…,Sm)541をマスク用擬似乱数(Rand[r,1],…,Rand[r,m])543でマスクした秘密情報である。秘密分散情報(v1,…,vn)545は、マスク済み秘密情報(s1+Rand[r,1],…,sm+Rand[r,m])544を、あらかじめ定められた値を固定した秘密分散法によって分散して生成された、マスク済み秘密情報の分散情報である。出力分散情報[(v1,r1),…,(vn,rn)]546は、マスク用乱数(r1,…,rn)542と秘密分散情報(v1,…,vn)545との対応する組で、複数の分散情報記憶装置2201〜220nに出力する情報である。入出力データ547は、入出力インタフェース560を介して入出力デバイスにより入出力するデータである。送受信データ548は、通信制御部530を介して送受信するデータである。
ストレージ550には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。マスク用乱数分散アルゴリズム551は、生成した乱数を分散するためのアルゴリズムである。マスク用擬似乱数発生アルゴリズム552は、分散したマスク用乱数からマスク用擬似乱数を生成するアルゴリズムである。固定値型秘密情報分散/復元アルゴリズム553は、あらかじめ定められた値を固定した秘密分散法によって分散して分散情報を生成すると共に、分散情報から秘密情報を復元するアルゴリズムである。
ストレージ550には、以下のプログラムが格納される。分散情報生成装置制御プログラム554は、分散情報生成装置210の全体を制御するプログラムである。マスク用乱数分散モジュール555は、マスク用乱数分散アルゴリズム551に従って、生成した乱数を分散するためのモジュールである。秘密情報マスクモジュール556は、マスク用擬似乱数発生アルゴリズム552に従って生成したマスク用擬似乱数で、秘密情報をマスクするモジュールである。固定値型秘密情報分散モジュール558は、固定値型秘密情報分散/復元アルゴリズム553に従って、マスク済み秘密情報をあらかじめ定められた値を固定した秘密分散法によって分散してマスク済み秘密情報の分散情報を生成するアルゴリズムである。
入出力インタフェース560は、入出力機器との入出力データをインタフェースする。入出力インタフェース560には、表示部561、操作部562、が接続される。また、入出力インタフェース560には、必要であれば、音声入出力部やGPS(Global Positioning System)位置判定部などが接続されてもよい。
なお、図5のRAM540やストレージ550には、分散情報生成装置210が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
(分散情報生成装置の処理手順)
図6は、本実施形態に係る分散情報生成装置210としての情報処理装置の処理手順を示すフローチャートである。このフローチャートは、図5のCPU510がRAM540を使用して実行し、図3の分散情報生成装置210の機能構成部を実現する。
まず、秘密情報s1,…,smが分散情報生成装置210に入力される(ステップS601)。次に、分散情報生成装置210は、マスク用乱数分散部211を動作させる。マスク用乱数分散部211は、乱数rを生成し、rをRSSを用いて分散し、その分散情報をr1,…,rnを出力する(ステップS603)。次に、分散情報生成装置210は、マスク用乱数分散部211の出力であるr1,…,rnをマスク用擬似乱数生成部212に入力する。マスク用擬似乱数生成部212は、r1,…,rnを入力として、Rand[r,1],…,Rand[r,m]を計算し、出力する(ステップS605)。
次に、分散情報生成装置210は、秘密情報s1,…,smと、マスク用擬似乱数Rand[r,1],…,Rand[r,m]とを、秘密情報マスク部213に入力する。秘密情報マスク部213はs1+Rand[r,1],…,sm+Rand[r,m]を計算し、マスク済み秘密情報として出力する(ステップS607)。次に、分散情報生成装置210は、マスク済み秘密情報s1+Rand[r,1],…,sm+Rand[r,m]を固定値型秘密情報分散部214に入力する。固定値型秘密情報分散部214は、マスク済み秘密情報s1+Rand[r,1],…,sm+Rand[r,m]を、いくつかの分散情報が固定された値になる方法で分散する(ステップS609)。
次に、分散情報生成装置210は、固定値型秘密情報分散部214の出力を、分散情報記憶装置2201〜220nのマスク済み秘密情報分散情報記憶部2221〜222nに記憶させ、マスク用乱数分散部211の出力を、分散情報記憶装置2201〜220nのマスク用乱数分散情報記憶部2211〜221nに記憶させるように、出力する(ステップS611)。
《分散情報変換処理》
以下、分散情報変換処理とそれを実現する構成について、図7〜図9を参照して詳細に説明する。
(分散情報変換装置の機能構成)
図7は、本実施形態に係る分散情報変換装置230としての情報処理装置の機能構成を示すブロック図である。図7には、参照のため、1つの分散情報記憶装置220iを図示している。
分散情報変換装置230は、分散情報記憶装置220iの記憶する値を分散情報取得部231で取得し、変換済み分散情報を出力する。マスク用乱数分散情報変換部232は、マスク用乱数分散情報記憶部221iからのマスク用乱数分散情報(ri)を入力とし、変換済みマスク分散情報を出力する。調整部233は、マスク済み秘密情報分散情報記憶部222iからのマスク済み秘密情報分散情報と、マスク用乱数分散情報変換部232からのマスク値の変換済み分散情報とを入力とし、マスク済み秘密情報分散情報からマスク値の変換済み分散情報を減じた値を、変換済み分散情報として出力する。変換済み分散情報出力部234は、調整部233からの変換済み分散情報を出力する。
(分散情報変換装置のハードウェア構成)
図8は、本実施形態に係る分散情報変換装置230としての情報処理装置のハードウェア構成を示すブロック図である。
図8で、CPU810は演算制御用のプロセッサであり、プログラムを実行することで図7の分散情報変換装置230の機能構成部を実現する。ROM820は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部830は、ネットワークを介して他の装置と通信する。なお、CPU810は1つに限定されず、複数のCPUであってもよい。また、通信制御部830は、CPU810とは独立したCPUを有して、RAM840の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM840とストレージ850との間でデータを転送するDMACを設けるのが望ましい(図示なし)。さらに、入出力インタフェース860は、CPU810とは独立したCPUを有して、RAM840の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU810は、RAM840にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU810は、処理結果をRAM840に準備し、後の送信あるいは転送は通信制御部830やDMAC、あるいは入出力インタフェース860に任せる。
RAM840は、CPU810が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM840には、本実施形態の実現に必要なデータを記憶する領域が確保されている。取得分散情報(vi,ri)841は、分散情報記憶装置220iから取得した分散情報である。マスク用乱数分散情報(ri)842は、マスク用乱数分散情報記憶部221iに記憶されていた乱数の分散情報である。マスク用乱数分散情報変換値843は、マスク用乱数分散情報(ri)842を変換した値である。マスク済み秘密情報分散情報(vi)844は、マスク済み秘密情報分散情報記憶部222iに記憶されていたマスク済み秘密情報の分散情報である。マスク済み秘密情報分散情報調整値845は、マスク済み秘密情報分散情報(vi)844をマスク用乱数分散情報変換値843で変換したマスク済み秘密情報分散情報の調整値である。入出力データ847は、入出力インタフェース860を介して入出力デバイスにより入出力するデータである。送受信データ848は、通信制御部830を介して送受信するデータである。
ストレージ850には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。マスク用乱数分散情報変換アルゴリズム851は、マスク用乱数分散情報を変換するためのアルゴリズムである。マスク済み秘密情報分散情報調整アルゴリズム852は、マスク済み秘密情報分散情報を調整するためのアルゴリズムである。
ストレージ850には、以下のプログラムが格納される。分散情報変換装置制御プログラム854は、分散情報変換装置230の全体を制御するプログラムである。マスク用乱数分散情報変換モジュール855は、マスク用乱数分散情報変換アルゴリズム851に従って、マスク用乱数分散情報を変換するためのモジュールである。マスク済み秘密情報分散情報調整モジュール856は、マスク済み秘密情報分散情報調整アルゴリズム852に従って、マスク済み秘密情報分散情報を調整するためのモジュールである。
入出力インタフェース860は、入出力機器との入出力データをインタフェースする。入出力インタフェース860には、表示部861、操作部862、が接続される。また、入出力インタフェース860には、必要であれば、音声入出力部やGPS位置判定部などが接続されてもよい。
なお、図8のRAM840やストレージ850には、分散情報変換装置230が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
(分散情報変換装置の処理手順)
図9は、本実施形態に係る分散情報変換装置230としての情報処理装置の処理手順を示すフローチャートである。このフローチャートは、図8のCPU810がRAM840を使用して実行し、図7の分散情報変換装置230の機能構成部を実現する。
まず、分散情報変換装置230は、分散情報取得部231により、分散情報記憶装置220のマスク用乱数分散情報記憶部221に記憶する値と、マスク済み秘密情報分散情報記憶部222に記憶する値と、を読み出す(ステップS901)。次に、分散情報変換装置230は、マスク用乱数分散情報変換部232において、マスク済み秘密情報分散情報を分散するために用いた方法と同じ方法で、分散した分散情報に変換して出力する。これをマスク用乱数分散情報とする(ステップS903)。
次に、分散情報変換装置230は、分散情報記憶装置220のマスク済み秘密情報分散情報記憶部222が記憶していたマスク済秘密情報分散情報と、マスク用乱数分散情報変換部232の出力を、調整部233に入力する。そして、調整部233は、マスク済み秘密情報分散情報からマスク用乱数分散情報を減じた値を出力し、変換済み分散情報出力部234は、その値を変換済み分散情報としてする(ステップS905)。
《分散情報復元処理》
以下、分散情報復元処理とそれを実現する構成について、図10〜図12を参照して詳細に説明する。
(分散情報復元装置の機能構成)
図10は、本実施形態に係る分散情報復元装置240としての情報処理装置の機能構成を示すブロック図である。
図10を参照すると、分散情報復元装置240は、複数の分散情報記憶装置2201〜220nの記憶する分散情報(v1,r1),…,(vn,rn)を入力として、復元した秘密情報(s1,…,sm)を出力する。
分散情報取得部241は、分散情報(v1,r1),…,(vn,rn)を取得し、マスク済み秘密情報復元部242にマスク済み秘密情報の分散情報v1,…,vnを渡し、マスク用擬似乱数生成部423にマスク用乱数の分散情報r1,…,rnを渡す。
マスク済み秘密情報復元部242は、複数のマスク済み秘密情報分散情報v1,…,vnを入力として、マスク済み秘密情報s1+Rand[r,1],…,sm+Rand[r,m]を、マスク除去部244に出力する。マスク用擬似乱数生成部243は、マスク用擬似乱数生成部212と同一であり、マスク用乱数の分散情報r1,…,rnから、マスク用擬似乱数Rand[r,1],…,Rand[r,m]を生成して、マスク除去部244に出力する。
マスク除去部244は、マスク済み秘密情報復元部242の出力であるマスク済み秘密情報s1+Rand[r,1],…,sm+Rand[r,m]と、マスク用擬似乱数生成部243の出力であるマスク用擬似乱数Rand[r,1],…,Rand[r,m]を入力とし、マスク済み秘密情報からマスク用擬似乱数を減じた値を出力する。秘密情報出力部245は、マスク済み秘密情報からマスク用擬似乱数を減じた値を、復元した秘密情報(s1,…,sm)として出力する。
(分散情報復元装置のハードウェア構成)
図11は、本実施形態に係る分散情報復元装置240としての情報処理装置のハードウェア構成を示すブロック図である。
図11で、CPU1110は演算制御用のプロセッサであり、プログラムを実行することで図10の分散情報復元装置240の機能構成部を実現する。ROM1120は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部1130は、ネットワークを介して他の装置と通信する。なお、CPU1110は1つに限定されず、複数のCPUであってもよい。また、通信制御部1130は、CPU1110とは独立したCPUを有して、RAM1140の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM1140とストレージ1150との間でデータを転送するDMACを設けるのが望ましい(図示なし)。さらに、入出力インタフェース1160は、CPU1110とは独立したCPUを有して、RAM1140の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU1110は、RAM1140にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU1110は、処理結果をRAM1140に準備し、後の送信あるいは転送は通信制御部1130やDMAC、あるいは入出力インタフェース1160に任せる。
RAM1140は、CPU1110が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1140には、本実施形態の実現に必要なデータを記憶する領域が確保されている。取得分散情報[(v1,r1),…,(vn,rn)]1141は、マスク用乱数(r1,…,rn)542と秘密分散情報(v1,…,vn)545との対応する組で、複数の分散情報記憶装置2201〜220nから取得した情報である。秘密分散情報(v1,…,vn)1142は、取得分散情報[(v1,r1),…,(vn,rn)]1141から分離された秘密情報の分散情報である。復元したマスク済み秘密情報(s1+Rand[r,1],…,sm+Rand[r,m])1143は、秘密分散情報(v1,…,vn)1142を、あらかじめ定められた値を固定した秘密分散法によって復元した、マスク済み秘密情報である。乱数分散情報(r1,…,rn)1144は、取得分散情報[(v1,r1),…,(vn,rn)]1141から分離された乱数の分散情報である。擬似乱数(Rand[r,1],…,Rand[r,m])1145は、乱数分散情報(r1,…,rn)1144から生成された擬似乱数である。復元した秘密情報(s1,…,Sm)1146は、復元したマスク済み秘密情報(s1+Rand[r,1],…,sm+Rand[r,m])1143から、擬似乱数(Rand[r,1],…,Rand[r,m])1145によりマスク除去した秘密情報である。入出力データ1147は、入出力インタフェース1160を介して入出力デバイスにより入出力するデータである。送受信データ1148は、通信制御部1130を介して送受信するデータである。
ストレージ1150には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。マスク用擬似乱数発生アルゴリズム552は、分散情報生成装置210と同様の、分散したマスク用乱数からマスク用擬似乱数を生成するアルゴリズムである。固定値型秘密情報分散/復元アルゴリズム553も、分散情報生成装置210と同様の、あらかじめ定められた値を固定した秘密分散法によって分散して分散情報を生成すると共に、分散情報から秘密情報を復元するアルゴリズムである。
ストレージ1150には、以下のプログラムが格納される。分散情報復元装置制御プログラム1154は、分散情報復元装置240の全体を制御するプログラムである。マスク済み秘密情報復元モジュール1155は、固定値型秘密情報分散/復元アルゴリズム553に従って、取得したマスク済み秘密情報の分散情報をあらかじめ定められた値を固定した秘密分散法によって復元して、マスク済み秘密情報を生成するアルゴリズムである。マスク用擬似乱数生成モジュール1156は、マスク用擬似乱数発生アルゴリズム552に従って、取得した乱数の分散情報からマスク用擬似乱数を生成するモジュールである。マスク除去モジュール1157は、マスク済み秘密情報からマスク用擬似乱数を減じて、元の秘密情報を復元するモジュールである。
入出力インタフェース1160は、入出力機器との入出力データをインタフェースする。入出力インタフェース1160には、表示部1161、操作部1162、が接続される。また、入出力インタフェース1160には、必要であれば、音声入出力部やGPS位置判定部などが接続されてもよい。
なお、図11のRAM1140やストレージ1150には、分散情報復元装置240が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
(分散情報復元装置としての情報処理装置の処理手順)
図12は、本実施形態に係る分散情報復元装置240としての情報処理装置の処理手順を示すフローチャートである。このフローチャートは、図11のCPU1110がRAM1140を使用して実行し、図10の分散情報復元装置240の機能構成部を実現する。
まず、分散情報復元装置240は、分散情報取得部241により、複数の分散情報記憶装置220i〜200nに記憶する値を読みだす。(k,n)しきい値型で分散されている場合ならば、k個以上の装置から読み出す(ステップS1201)。
次に、分散情報復元装置240は、マスク済み秘密情報分散情報記憶部222i〜222nから読み出したマスク済み秘密情報分散情報v1,…,vnをマスク済み秘密情報復元部242に入力する。マスク済み秘密情報復元部242は、マスク済み秘密情報を復元して、マスク除去部244に出力する(ステップS1203)。次に、分散情報復元装置240は、マスク用擬似乱数生成部243にマスク用乱数分散情報記憶部2211〜221nから読み出したマスク用乱数分散情報を入力する。マスク用擬似乱数生成部243は、マスク用乱数分散情報より、マスク用擬似乱数を計算し、マスク除去部244に出力する(ステップS1205)。
次に、分散情報復元装置240は、マスク済み秘密情報とマスク用乱数とをマスク除去部244に入力する。マスク除去部244は、マスク済み秘密情報からマスク用擬似乱数を除去し、秘密情報を復元して出力する(ステップS1207)。
《本実施形態の秘密情報分散処理の適用例》
本適用例は、変換処理の結果、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)の処理が、マスク用乱数分散部211の実行する処理に相当する。
(分散処理3) rss[s]1,…,rss[s]nより、Rand[r,1],…,Rand[r,m]を計算する。この(分散処理3)の処理が、マスク用擬似乱数生成部212の実行する処理に相当する。
(分散処理4) ms1 = s1+Rand[r,1],…,msm = sm+Rand[r,m]を計算する。この(分散処理4)の処理が、秘密情報マスク部213の実行する処理に相当する。
(分散処理5) ms1,…,msmを(k-1)点を固定したShamir(k,n)法で分散する。msjのn個の分散情報をv{j,1},…,v{j,n}とする。この(分散処理5)の処理が、固定値型秘密情報分散部214の実行する処理に相当する。
(分散処理6):xi =(v{1,i},…,v{m,i},rssi)をi個目の分散情報として出力する。v{h,i}はh番目の秘密情報に対応している。このような例では、固定値は明示的に分けて記憶せずに、マスク済み秘密情報分散情報として記憶されることになる。この(分散処理6)の処理が、分散情報出力部215により、複数の分散情報記憶装置220に生成した情報を記憶させる処理に相当する。
《変換処理》
次に、本例の変換処理について説明する。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)の処理は、マスク用乱数分散情報変換部232の実行する処理に相当する。
(変換処理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)の処理は、調整部233の実行する処理に相当する。
(変換処理3) v{h,i}を変換済みの分散情報として出力する。この(変換処理3)の処理は、変換済み分散情報出力部234の実行する処理に相当する。
《復元処理》
次に、本発明の復元処理について説明する。以下では、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)の処理が、マスク済み秘密情報復元部242の実行する処理に相当する。
(復元処理2) rss1,…,rssbより、Rand_rss[s,1],…,Rand_rss[s,c]を計算する。この(復元処理2)の処理が、マスク用擬似乱数生成部243の実行する処理に相当する。
(復元処理3) c=1,…,mについて、ms1-Rand_rss[r,1],…,msm-Rand_rss[r,m]を計算する。この(復元処理3)の処理が、マスク除去部244の実行する処理に相当する。
(復元処理4) 復元された秘密情報として、ms1-Rand_rss[r,1],…,msm-Rand_rss[r,m]を出力する。これらは、分散記憶された元の秘密情報s1,…,smとなる。
以上の実施例において、Shamir(k,n)法の代わりに加法型(n,n)法や、線形秘密分散法を用いても、それらの秘密分散法を使う場合に比べて通信量と記憶容量を削減できる。例えば、(2,3)しきい値型で1ギガバイトの秘密情報を分散する場合に、本実施形態の方法を適用すると、マスク済み秘密情報は、ひとつの分散情報の値を固定することができて2ギガバイトの分散情報として分散される。乱数の分散情報は擬似乱数生成関数の鍵として16バイトのデータを用いるならば各分散情報が32バイト程度となり、全体でも2ギガ+96バイト程度の記憶容量となる。Shamir(k,n)法を用いる場合、3ギガバイトになるので1ギガバイト程度のデータ容量を節約できる。
これに対して、先行技術文献の[非特許文献5]に記載の方法を用いる場合、分散情報自体は1.5ギガバイト程度に抑えられるが、秘密計算法の技術を適用できるようにShamir(k,n)法の分散情報に変換する際に1.5ギガバイトの通信が必要となる。
本実施形態では、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個集まらないとsが復元できないようにするためである。つまり秘密情報の秘匿性の為である。f(1),…,f(k)を分散情報とする場合に、f(1)からf(k-1)を全て固定にし,f(0)=sとなるようにfを定めてもShamirの(k,n)法の分散情報としての第4の特徴は維持されていることに注意する。
加法型(n,n)法の分散情報を生成する過程において、n-1個の値を固定するとは、分散処理(Add_Dist)の(分散処理1)において選択する乱数を固定することである。例えば、v2,…,vnを全て0にする場合、これらを記憶する必要はなくなる。つまりs自体がv1として記憶される。このような場合でも加法型(n,n)法の第3の特徴は維持されていることに注意する。
次に、本実施形態において秘密情報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)法の第4の特徴か加法型(n,n)法の第3の特徴によって、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)法の分散情報に変換可能であるため、効率的な秘密計算法のアルゴリズムを使って種々の計算を行うことができる。[非特許文献5]に記載されているような従来方法では、変換処理において大量の通信が発生していた。一方、本発明の変換処理は一切の通信を伴わない。
本実施形態においては、秘密情報を入力として複数の分散情報を生成する分散処理と、分散情報を入力としてShamirの(k,n)法の分散情報を出力する変換処理と、分散処理によって生成された分散情報から秘密情報を復元する復元処理を含む。また、本実施形態の分散処理は、秘密情報は擬似乱数を加算してから(k-1)個の分散情報を固定したShamir(k,n)法で分散し、擬似乱数の鍵はRSSを用いて分散する。以上の方法を用いる場合、(k-1)個分の分散情報が固定値であるために記憶容量を消費しない。この削減された分と擬似乱数の鍵をRSSで分散した分で消費している記憶容量の差が、本実施形態による記憶容量削減量となる。
次に変換処理について説明する。秘密情報に加算されている擬似乱数に関する分散情報は、擬似乱数の鍵がRSSを用いて分散されているために通信を伴う処理無しShamir(k,n)法の分散情報に変換できる。秘密情報と擬似乱数の和の分散情報と擬似乱数の分散情報のそれぞれがShamir(k,n)法で分散された値が揃うので、Shamir(k,n)法の持つ第4の性質を用いて秘密情報がShamir(k,n)法で分散された値を計算することができる。この過程には一切の通信を必要としない。
復元処理に関しては、秘密情報と擬似乱数の和と擬似乱数の鍵をそれぞれ復元したのちに減算すればよい。
以上に記載のShamir(k,n)法を加法型(n,n)法に置換すれば、加法型(n,n)法に変換する方法となる。なお、(k-1)は(n-1)に置換する。
[第3実施形態]
次に、本発明の第3実施形態に係る秘密情報分散システムについて説明する。本実施形態に係る秘密情報分散システムは、上記第2実施形態と比べると、秘密情報の分散および復元に、加法型(n,n)法を使用する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
《分散情報生成装置》
図13は、本実施形態に係る分散情報生成装置1310としての情報処理装置の機能構成を示すブロック図である。なお、図13において、図3と同様の機能構成部には同じ参照番号を付して、説明は省略する。
分散情報生成装置1310においては、固定値型秘密情報分散部1314が加算型(n,n)法でマスク済み秘密情報を分散する点で、図3と異なる。他の処理は同様である。
《分散情報復元装置》
図14は、本実施形態に係る分散情報復元装置1340としての情報処理装置の機能構成を示すブロック図である。なお、図14において、図10と同様の機能構成部には同じ参照番号を付して、説明は省略する。
分散情報復元装置1340においては、マスク済み秘密情報復元部1441が加算型(n,n)法でマスク済み秘密情報を復元する点で、図10と異なる。他の処理は同様である。
本実施形態によれば、Shamir(k,n)法と同様の構成により加算型(n,n)法を使用して、乱数の分散情報とマスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶することにより、秘密計算法に適用可能であって記憶量と通信量との効率がよい秘密情報の分散をすることができる。
[第4実施形態]
次に、本発明の第4実施形態に係る秘密情報分散システムについて説明する。本実施形態に係る秘密情報分散システムは、上記第2実施形態および第3実施形態と比べると、情報処理装置が分散情報生成機能、分散情報変換機能および分散情報復元機能を有する点で異なる。その他の構成および動作は、第2実施形態と第3実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
《秘密情報分散システム》
図15は、本実施形態に係る秘密情報分散システム1500の構成を示すブロック図である。なお、図15において、図2Aと同様の機能構成部には同じ参照番号を付して、説明は省略する。
本実施形態の情報処理装置1510は、分散情報生成部1520と、分散情報変換部1530と、分散情報復元部1540と、を備える。分散情報生成部1520と、分散情報変換部1530と、分散情報復元部1540とのそれぞれの構成要素は、図2Aの分散情報生成装置210と、分散情報変換装置230と、分散情報復元装置240と同様である。
なお、情報処理装置が、分散情報生成部1520と、分散情報変換部1530と、分散情報復元部1540と、の少なくとも1つを備える種々の組み合わせも可能であり、本実施形態と同様の効果を奏する。
本実施形態によれば、少ない情報処理装置によって本実施形態の秘密情報分散システムを構成できる。
[他の実施形態]
なお、前述した内容では、秘密分散法をShamir(k,n)法と加法型(n,n)法について説明したが、Shamir(k,n)法における第4の性質、加法型(n,n)法における第3の性質に相当する性質を有する秘密分散法に対してならば、本発明の工夫がそのまま適用できる。
また、本発明は、大量の秘密データをクラウドサーバに保管し、その秘密情報に関する種々の処理を実行する場合に特に有効である。多くのデータを効率的に保管でき、データの内容や処理結果をクラウドに知られることもない。個人情報のような外部に保管することに抵抗のあるデータを集積して統計演算を行いたい際に、サーバが記憶しなければならない記憶容量とサーバ間で行う通信量を大きく削減できる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
[実施形態の他の表現]
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散手段と、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成手段と、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスク手段と、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散手段と、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力手段と、
を備える情報処理装置。
(付記2)
前記マスク用乱数分散手段は、前記複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成した前記乱数を分散し、前記固定値型秘密情報分散手段は、前記秘密情報を前記擬似乱数でマスクした前記マスク済み秘密情報を、(k-1)以下の値が固定されたShamir(k,n)法によって分散する、あるいは、
前記マスク用乱数分散手段は、前記複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成した前記乱数を分散し、前記固定値型秘密情報分散手段は、前記秘密情報を前記擬似乱数でマスクした前記マスク済み秘密情報を、(n-1)以下の値が固定された加法型(n,n)法によって分散する、付記1に記載の情報処理装置。
(付記3)
前記秘密情報マスク手段は、前記秘密情報に前記擬似乱数を加算することによりマスクする、付記1または2に記載の情報処理装置。
(付記4)
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得手段と、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換手段と、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整手段と、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力手段と、
を備える情報処理装置。
(付記5)
前記乱数の分散情報は、複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記マスク済み秘密情報の分散情報は、(k-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、あるいは
前記乱数の分散情報は、前記複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記マスク済み秘密情報の分散情報は、(n-1)以下の値が固定された加法型(n,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成される、付記4に記載の情報処理装置。
(付記6)
前記調整手段は、前記マスク済み秘密情報の分散情報から、前記擬似乱数の分散情報を減じることにより調整する、付記4または5に記載の情報処理装置。
(付記7)
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と複数のマスク済み秘密情報の分散情報とを取得する分散情報取得手段と、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元手段と、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成手段と、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去手段と、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力手段と、
を備える情報処理装置。
(付記8)
前記複数の乱数の分散情報は、複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記複数のマスク済み秘密情報の分散情報は、(k-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、前記マスク済み秘密情報復元手段は、前記(k-1)以下の値が固定されたShamir(k,n)法によって、前記複数のマスク済み秘密情報の分散情報から前記マスク済み秘密情報を復元し、あるいは
前記複数の乱数の分散情報は、複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記複数のマスク済み秘密情報の分散情報は、(n-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、前記マスク済み秘密情報復元手段は、前記(k-1)以下の値が固定された加法型(n,n)法によって、前記複数のマスク済み秘密情報の分散情報から前記マスク済み秘密情報を復元する、付記7に記載の情報処理装置。
(付記9)
前記マスク除去手段は、前記マスク済み秘密情報から前記擬似乱数を減じることによりマスクを除去する、付記7または8に記載の情報処理装置。
(付記10)
付記1乃至3のいずれか1項に記載の情報処理装置と、付記4乃至6のいずれか1項に記載の情報処理装置と、付記7乃至9のいずれか1項に記載の情報処理装置と、を備える秘密情報分散システム。
(付記11)
乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報を、前記乱数の分散情報から生成された擬似乱数でマスクしたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して記憶する分散情報記憶ステップと、
を含む秘密情報分散方法である。
(付記12)
前記外部記憶装置に記憶された前記乱数の分散情報から、擬似乱数の分散情報を生成するマスク用乱数分散情報変換ステップと、
前記外部記憶装置に記憶された前記マスク済み秘密情報の分散情報を前記擬似乱数の分散情報で調整して、変換済み分散情報とする調整ステップと、
をさらに含む付記11に記載の秘密情報分散方法。
(付記13)
前記複数の外部記憶装置に分散して記憶された前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
復元された前記マスク済み秘密情報から、前記複数の外部記憶装置に分散して記憶された前記複数の乱数の分散情報から生成した擬似乱数によりマスクを除去した秘密情報を、復元された秘密情報とするマスク除去ステップと、
をさらに含む付記8または9に記載の秘密情報分散方法。
(付記14)
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスクステップと、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力ステップと、
を含む情報処理方法。
(付記15)
乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記秘密情報を前記擬似乱数によりマスクする秘密情報マスクステップと、
前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。
(付記16)
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得ステップと、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換ステップと、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整ステップと、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力ステップと、
を含む情報処理方法。
(付記17)
外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得ステップと、
前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換ステップと、
前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整ステップと、
前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。
(付記18)
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と、複数のマスク済み秘密情報の分散情報とを取得する分散情報取得ステップと、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去ステップと、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力ステップと、
を含む情報処理方法。
(付記19)
複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と、複数のマスク済み秘密情報の分散情報とを取得する分散情報取得ステップと、
前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成ステップと、
前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去ステップと、
前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力ステップと、
をコンピュータに実行させる情報処理プログラム。

Claims (10)

  1. 乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散手段と、
    秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成手段と、
    前記秘密情報を前記擬似乱数によりマスクする秘密情報マスク手段と、
    前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散手段と、
    前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力手段と、
    を備える情報処理装置。
  2. 前記マスク用乱数分散手段は、前記複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成した前記乱数を分散し、前記固定値型秘密情報分散手段は、前記秘密情報を前記擬似乱数でマスクした前記マスク済み秘密情報を、(k-1)以下の値が固定されたShamir(k,n)法によって分散する、あるいは、
    前記マスク用乱数分散手段は、前記複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成した前記乱数を分散し、前記固定値型秘密情報分散手段は、前記秘密情報を前記擬似乱数でマスクした前記マスク済み秘密情報を、(n-1)以下の値が固定された加法型(n,n)法によって分散する、請求項1に記載の情報処理装置。
  3. 外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得手段と、
    前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換手段と、
    前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整手段と、
    前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力手段と、
    を備える情報処理装置。
  4. 前記乱数の分散情報は、複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記マスク済み秘密情報の分散情報は、(k-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、あるいは
    前記乱数の分散情報は、前記複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記マスク済み秘密情報の分散情報は、(n-1)以下の値が固定された加法型(n,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成される、請求項3に記載の情報処理装置。
  5. 複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と複数のマスク済み秘密情報の分散情報とを取得する分散情報取得手段と、
    前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元手段と、
    前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成手段と、
    前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去手段と、
    前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力手段と、
    を備える情報処理装置。
  6. 前記複数の乱数の分散情報は、複製型秘密分散法を用いて(k,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記複数のマスク済み秘密情報の分散情報は、(k-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、前記マスク済み秘密情報復元手段は、前記(k-1)以下の値が固定されたShamir(k,n)法によって、前記複数のマスク済み秘密情報の分散情報から前記マスク済み秘密情報を復元し、あるいは
    前記複数の乱数の分散情報は、複製型秘密分散法を用いて(n,n)しきい値型のアクセス構造で、生成された乱数から分散されることによって生成されて、前記複数のマスク済み秘密情報の分散情報は、(n-1)以下の値が固定されたShamir(k,n)法によって、前記秘密情報を擬似乱数でマスクした前記マスク済み秘密情報を分散することによって生成され、前記マスク済み秘密情報復元手段は、前記(k-1)以下の値が固定された加法型(n,n)法によって、前記複数のマスク済み秘密情報の分散情報から前記マスク済み秘密情報を復元する、請求項5に記載の情報処理装置。
  7. 請求項1または2に記載の情報処理装置と、請求項3または4に記載の情報処理装置と、請求項5または6に記載の情報処理装置と、を備える秘密情報分散システム。
  8. 乱数を生成し、生成した前記乱数を複製型秘密分散法を用いて分散して、前記乱数の分散情報を生成するマスク用乱数分散ステップと、
    秘密情報に対応して、前記乱数の分散情報から擬似乱数を生成するマスク用擬似乱数生成ステップと、
    前記秘密情報を前記擬似乱数によりマスクする秘密情報マスクステップと、
    前記擬似乱数によりマスクされたマスク済み秘密情報を、あらかじめ定められた値を固定した秘密分散法によって分散して、前記マスク済み秘密情報の分散情報を生成する固定値型秘密情報分散ステップと、
    前記乱数の分散情報と前記マスク済み秘密情報の分散情報との組を、複数の外部記憶装置に分散して出力する分散情報出力ステップと、
    をコンピュータに実行させる情報処理プログラム。
  9. 外部記憶装置に記憶された、乱数の分散情報とマスク済み秘密情報の分散情報との組を取得する分散情報取得ステップと、
    前記乱数の分散情報から擬似乱数の分散情報に変換するマスク用乱数分散情報変換ステップと、
    前記マスク済み秘密情報の分散情報を、前記擬似乱数の分散情報により調整する調整ステップと、
    前記調整された秘密情報の分散情報を、前記秘密情報の変換済み分散情報として出力する変換済み分散情報出力ステップと、
    をコンピュータに実行させる情報処理プログラム。
  10. 複数の外部記憶装置に分散して記憶された、複数の乱数の分散情報と、複数のマスク済み秘密情報の分散情報とを取得する分散情報取得ステップと、
    前記複数のマスク済み秘密情報の分散情報から、マスク済み秘密情報を復元するマスク済み秘密情報復元ステップと、
    前記複数の乱数の分散情報から、擬似乱数を生成するマスク用擬似乱数生成ステップと、
    前記マスク済み秘密情報から、前記擬似乱数によりマスクを除去するマスク除去ステップと、
    前記マスクを除去された秘密情報を、前記復元した秘密情報として出力する秘密情報出力ステップと、
    をコンピュータに実行させる情報処理プログラム。
JP2015058577A 2015-03-20 2015-03-20 秘密情報分散システム、情報処理装置および情報処理プログラム Active JP6447870B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015058577A JP6447870B2 (ja) 2015-03-20 2015-03-20 秘密情報分散システム、情報処理装置および情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015058577A JP6447870B2 (ja) 2015-03-20 2015-03-20 秘密情報分散システム、情報処理装置および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2016178550A JP2016178550A (ja) 2016-10-06
JP6447870B2 true JP6447870B2 (ja) 2019-01-09

Family

ID=57070709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015058577A Active JP6447870B2 (ja) 2015-03-20 2015-03-20 秘密情報分散システム、情報処理装置および情報処理プログラム

Country Status (1)

Country Link
JP (1) JP6447870B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106888053B (zh) * 2017-03-14 2023-05-02 中国科学院西安光学精密机械研究所 基于复合逻辑的超高速全光数据实时加/解密系统及方法
WO2019039383A1 (ja) * 2017-08-22 2019-02-28 日本電信電話株式会社 シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体
CN111052204B (zh) * 2017-08-22 2023-05-02 日本电信电话株式会社 份额生成装置、份额变换装置、秘密计算系统、它们的方法及记录介质
US11201734B2 (en) * 2018-06-04 2021-12-14 Robert Bosch Gmbh Method and system for fault tolerant and secure multiparty computation with SPDZ
CN117397197A (zh) * 2021-05-25 2024-01-12 维萨国际服务协会 多台计算机的多方计算
WO2024034124A1 (ja) * 2022-08-12 2024-02-15 日本電気株式会社 端末装置、計算システム、計算方法、およびコンピュータ可読媒体
JP7171113B1 (ja) 2022-08-31 2022-11-15 株式会社ZenmuTech 秘匿計算システム、サーバー、情報処理装置、コンピュータプログラムおよび秘匿計算方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010186232A (ja) * 2009-02-10 2010-08-26 Kddi Corp 管理者追加処理システム、管理者追加処理方法およびプログラム
JP6059160B2 (ja) * 2014-01-16 2017-01-11 日本電信電話株式会社 シェア変換システム、シェア変換方法、プログラム
JP5872085B1 (ja) * 2015-03-18 2016-03-01 日本電信電話株式会社 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
JP5872084B1 (ja) * 2015-03-18 2016-03-01 日本電信電話株式会社 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム

Also Published As

Publication number Publication date
JP2016178550A (ja) 2016-10-06

Similar Documents

Publication Publication Date Title
JP6447870B2 (ja) 秘密情報分散システム、情報処理装置および情報処理プログラム
Li et al. Secure deduplication with efficient and reliable convergent key management
JP5885840B2 (ja) 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
JP5826934B2 (ja) 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
JP5860556B1 (ja) 不整合検知方法、不整合検知システム、不整合検知装置、およびプログラム
CA3166915A1 (en) Deanonymization method and system using blockchain-based and secret sha ring technologies
JP6095792B2 (ja) 秘密ビット分解装置、秘密モジュラス変換装置、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
JP5860557B1 (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
JP5872085B1 (ja) 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
JP5864004B1 (ja) 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
Wang et al. Effect of quantum noise on deterministic joint remote state preparation of a qubit state via a GHZ channel
JP5872084B1 (ja) 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
CA2949020A1 (en) Methods and devices for key management in an as-a-service context
JPWO2018135511A1 (ja) 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム
Pal et al. Multilevel threshold secret sharing in distributed cloud
KR101428649B1 (ko) 맵 리듀스 기반의 대용량 개인정보 암호화 시스템 및 그의 동작 방법
JP6781397B2 (ja) 秘密分散システム
JP5889454B1 (ja) 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
Dharani et al. Survey on secret sharing scheme with deduplication in cloud computing
JP6693503B2 (ja) 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、およびプログラム
WO2019111318A1 (ja) サーバ装置、秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体
CN114830210A (zh) 秘密随机数生成系统、秘密计算装置、秘密随机数生成方法以及程序
Mishra et al. Improved cloud security approach with threshold cryptography
Harnal et al. Comparison for Confidential Cryptography in Multimedia Cloud Environment
WO2023188259A1 (ja) 秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181029

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181121

R150 Certificate of patent or registration of utility model

Ref document number: 6447870

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150