JP4300838B2 - 分散計算装置及び分散計算システム - Google Patents

分散計算装置及び分散計算システム Download PDF

Info

Publication number
JP4300838B2
JP4300838B2 JP2003082214A JP2003082214A JP4300838B2 JP 4300838 B2 JP4300838 B2 JP 4300838B2 JP 2003082214 A JP2003082214 A JP 2003082214A JP 2003082214 A JP2003082214 A JP 2003082214A JP 4300838 B2 JP4300838 B2 JP 4300838B2
Authority
JP
Japan
Prior art keywords
distributed
calculation
information
secret
unit
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.)
Expired - Fee Related
Application number
JP2003082214A
Other languages
English (en)
Other versions
JP2004287333A (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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2003082214A priority Critical patent/JP4300838B2/ja
Publication of JP2004287333A publication Critical patent/JP2004287333A/ja
Application granted granted Critical
Publication of JP4300838B2 publication Critical patent/JP4300838B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、例えば、複数の分散計算装置が保持する秘密情報から生成された分散情報を用いる分散計算方法を実施する分散計算システム、及び、この分散計算システムの一部を構成する分散計算装置に関するものである。
【0002】
【従来の技術】
現在、暗号の技術分野では、マルチパーティ・プロトコルと呼ばれる、分散計算方法が実現されている。ここで、一般的なマルチパーティ・プロトコルについて説明する。今、n人のメンバ(n個の演算装置としてもよい)より構成されるネットワークがあるとして、メンバID_m(i=1,2,…,n)を持つそれぞれのメンバが、他のメンバには知られたくない秘密情報X(i=1,2,…,n)を保持しているものとする。ある関数fが与えられたときに、各メンバは各自の秘密情報Xを秘密にしたまま、その関数Z=f(X,X,…,X)を計算して、求めるべき値Zを算出しようとする。なお、関数fは、例えば、すべての秘密情報Xを足し合わせる関数Z=X+X+…+Xであったり、すべての秘密情報Xのうち最大の値を出力する関数Z=max{X,X,…,X}であったりする。
【0003】
このように、各メンバが、ネットワーク上で、各自の秘密情報X自体を一切漏らさないで、お互いになんらかの通信を行い、最終的に値Zを計算し得る機能を実現するプロトコルを、関数fに関するマルチパーティ・プロトコルと呼ぶ。上記機能は、関数fの計算を行う信頼できる第三者のセンターを設け、各メンバが各自の秘密情報をこのセンターへ秘密に送信することにより実現できるが、ここでは、そのようなセンターがない場合を説明する。
【0004】
図2は、マルチパーティ・プロトコルの概念説明図である。図2の例においては、メンバ(参加者)人数を3人とし、それぞれのメンバID(ID情報)をA,B,Cとし、それぞれが保持する秘密情報をX,X,Xとする。メンバID_A,B,C、及び、秘密情報X,X,Xなどの値は、ある有限体GF(q)(qは、素数又は素数のべき乗の値)上の値とし、マルチパーティ・プロトコルで分散計算しようとする関数f(X,X,X)内の演算(加算及び乗算)は、有限体GF(q)上の演算とする。以降、特に断りがない限り、演算は、有限体GF(q)上で行うものとする。
【0005】
関数f(X,X,X)のマルチパーティ・プロトコルによる分散計算を行う際に、まず、各メンバは、自分の保持する秘密情報を(k,n)しきい値秘密分散法で分散する(図2に符号▲1▼で示される処理)。(k,n)しきい値秘密分散法は、情報Xをn個に分散させ、そのn個の分散情報のうちk個(k≦n)の分散情報が集まれば、情報Xを復元することができ、k−1個以下の分散情報しか集まらないときには、情報Xについてなんら知ることができない、といった秘密分散法である。図2の場合には、nは3であり、kは2又は3である。
【0006】
次に、各メンバは、自分の秘密情報を分散した分散情報をそれぞれ他のメンバに配布する(図2に符号▲2▼で示される処理)。これらの分散情報を配布する際には、どの2人のメンバ間にも、その2人のメンバ以外には通信内容を秘密とすることができる秘密通信路が確立されているものとする。次に、それら配布された分散情報を用いて、関数f(X,X,X)で定められる計算方法で、各メンバが分散計算を行う(図2に符号▲3▼で示される処理)。この分散計算の際には、各メンバ同士が情報交換を行うこともある。この各メンバが保持する分散計算の計算結果Z',Z',Z'はそれぞれ、最終的な計算結果Z=f(X,X,X)を秘密分散した分散情報となっている。したがって、最終的に、各メンバが持っている分散計算の計算結果Z',Z',Z'を集め、(k,n)しきい値秘密分散法の秘密再構成を行うと、最終的な計算結果Zを得ることができる(図2の符号▲4▼で示される処理)。
【0007】
次に、図2に示されるマルチパーティ・プロトコルを、n人のメンバに拡張した場合について説明する。各メンバのメンバIDをm(i=1,2,…,n)、メンバIDがmであるメンバの保持する秘密情報をX(i=1,2,…,n)とする。各メンバは、各自が保持する秘密情報を(k,n)しきい値秘密分散法で分散する。ここでの(k,n)しきい値秘密分散法は、Shamir法(シャミア法:Shamir's method)(例えば、非特許文献1参照)を用いるものとする。
【0008】
メンバIDがmであるメンバは、次式(1)のようなk−1次多項式hxi(x)を生成し、この式を用いて秘密情報を分散する。
【数7】
Figure 0004300838
上記式(1)において、Rxi,1,Rxi,2,…,Rxi,k−1は、メンバIDがmであるメンバが決める乱数であり、有限体GF(q)上の値からk−1個選択されたものである。
【0009】
メンバIDがmであるメンバで計算され、メンバIDがm(p=1,2,…,n)であるメンバに配布される分散情報を、Yi,pと表わす場合に、分散情報Yi,pは、上記式(1)の関数を用いて、次式(2)のように計算することができる。
【数8】
Figure 0004300838
【0010】
各メンバが他のメンバから分散情報を受け取ると、結果として、メンバIDがmであるメンバは、n個の分散情報Y1,i,Y2,i,…,Yn,iを保持することになる。これら各メンバが保持する分散情報Y1,i,Y2,i,…,Yn,iを用いて、すなわち、各メンバが協力して、所望の分散計算Z=f(X,X,…,X)を行う。
【0011】
ここでは、各メンバが行う分散計算として、分散加算の場合と分散乗算の場合を説明する。上記式(1)に示されるような多項式を用いて、秘密情報A及びBを秘密分散させ、メンバIDがmであるメンバが、分散情報a及びbを既に持っている状態を考える。この場合、秘密情報A及びBと分散情報a及びbとの関係は、次式(3)及び(4)のようになる。
【数9】
Figure 0004300838
ここで、RA,j(j=1,2,…,k−1)及びRB,j(j=1,2,…,k−1)は乱数である。
【0012】
各メンバが分散情報a及びbから計算を行って、秘密情報C(=A+B)を秘密分散させた値cをメンバIDがmであるメンバが持つようにする計算処理を「分散加算」と呼ぶ。また、各メンバが分散情報a及びbから計算を行って、秘密情報C(=A×B)を秘密分散させた値cをメンバIDがmであるメンバが持つようにする計算処理を「分散乗算」と呼ぶ。さらに、ある定数Dと秘密情報Aとの乗算結果C(=D×A)を秘密分散させた値cをメンバIDがmであるメンバが持つようにする計算処理を「分散定数乗算」と呼ぶ。上記のような、任意の分散情報の分散加算、分散定数乗算、及び、分散乗算が可能になると、加算、定数乗算、及び、乗算を含む任意の関数Z=f(X,X,…,X)は、分散計算が可能となる。以降では、上記式(1)のような多項式により秘密情報A及びBを秘密分散させ、各メンバが、分散情報a及びbを既に持っている状態を考え、各メンバが分散情報a及びbから計算を行って、C=f(A,B)を秘密分散させた値cを求める処理を説明する。
【0013】
まず、マルチパーティ・プロトコルにおける分散加算(加算計算)を次式(5)を用いて説明する。
C=f(A,B)=A+B …(5)
メンバIDがmであるメンバは、すでに秘密情報A及びBの分散情報a及びbを持っているものとする。これら分散情報a及びbは、任意のメンバの秘密情報の分散情報(Y1,i,Y2,i,…,Yn,i)のいずれかでもよいし、分散計算した途中結果の値でもよい。分散加算においては、分散情報同士の足し算を行うことで、計算結果Cの分散情報c(i=1,2,…,n)を得ることができる。例えば、メンバIDがmであるメンバは、次式(6)のような計算を行い、計算結果cを得る。
=a+b …(6)
【0014】
次に、マルチパーティ・プロトコルにおける分散定数乗算(定数乗算計算)を次式(7)を用いて説明する。
C=f(A)=D×A …(7)
ここで、Dは、有限体GF(q)上の定数であり、どのメンバにも既知な値とする。例えば、メンバIDがmであるメンバは、次式(8)のような計算を行い、計算結果cを得る。
=D×a …(8)
【0015】
次に、マルチパーティ・プロトコルにおける分散乗算(乗算計算)を次式(9)を用いて説明する。
C=f(A,B)=A×B …(9)
分散乗算においては、次の2通りの方法があり、ここでの説明では、それらの方式をそれぞれ方式▲1▼、方式▲2▼と記述することにする。方式▲1▼では、各メンバは、次のようなステップS101〜S103を行う。ここでは、メンバIDがmであるメンバが実行する処理を記述する。ステップS101において、分散情報同士の乗算ci,i=a×bを行う。
【0016】
次のステップS102において、メンバIDがm(p=1,2,…,nであり、p≠iであるもの。)である他のメンバの値との乗算a×b及びa×bの結果に相当するものが得られるように通信及び計算処理をする。すなわち、次式(10)となるような、メンバIDがmであるメンバが乗算結果ci,pを持つことができ、メンバIDがmであるメンバが乗算結果cp,iを持つことができるように、計算と通信を行う。
×b+a×b=ci,p+cp,i …(10)
このように、他のメンバとの情報のやりとりを行うことにより、他のメンバの値との乗算a×b及びa×bの結果に相当する式(10)が得られるようにするが、他のメンバの値a及びbが分からないように、また、自分の値a及びbが、他のメンバに分からないように、紛失通信を行う。「紛失通信」とは、送信側が、M個の情報を符号化(暗号化)して送信するが、受信側においては、そのうち一つしか受け取る(意味のあるように復号が可能となる)ことができず、また、送信側においては、受信側がどの情報を受け取った(意味のあるように復号が可能となった)かを知ることができない通信方法をいう。
【0017】
次の、ステップS103においては、ステップS102の結果に、メンバIDから計算される係数rを乗算して足し合わせることにより、次式(11)及び(12)で示される、乗算結果Cの分散情報c(i=1,2,…,n)を得る。
【数10】
Figure 0004300838
【0018】
また、方式▲2▼では、各メンバは、次のようなステップS201〜S205を行う。ここでは、メンバIDがmであるメンバが実行する処理を記述する。ステップS201において、分散情報同士の乗算c'=a×bを行う。
【0019】
次のステップS202において、ステップS201で求めたc'を(k',n)しきい値秘密分散法を用いて分散し、分散情報c'i,p(p=1,2,…,nでp≠iであるもの)をメンバIDがmである他のメンバへ配布する。また、他のメンバから、分散情報c'p,i(p=1,2,…,nでp≠iであるもの)を受け取る。
【0020】
次のステップS203において、C'=(c'1,i、c'2,i、…、c'n,i)に変換行列EPE−1を掛け合わせることにより、D=(d1,i、d2,i、…、dn,i)に変換する。行列Eは、メンバIDから計算される行列であり、
E=(eij)=(m j−1) (i,j=1、2、…、n)
となるようなn×n行列であり、その逆行列をE−1とする。また、行列Pは、次式のようにベクトルのk+1番目以降の値を0とするような変換を行うn×n行列である。
P(x、x、…、x
=(x、x、…、x、0、…、0) …(80)
【0021】
次のステップS204において、ステップS203で求めたdp,i(p=1,2,…,nでp≠iであるもの)を、メンバIDがmである他のメンバへ配布する。また、他のメンバから、計算結果di,p(p=1,2,…,nでp≠iであるもの)を受け取る。
【0022】
次のステップS205において、ステップS203、S204で得たdi,p(p=1,2,…,n)を分散情報として、(k'、n)しきい値秘密分散法の秘密再構成を行うことにより、乗算結果Cの分散情報c(i=1、2、…、n)を得る。
【0023】
このように分散乗算においては、分散加算の場合のように簡単には計算できないが、紛失通信を用いると計算可能となる。上記のように、各メンバ同士が秘密通信、紛失通信を行って計算処理をすると、入力値を公開せずに、与えられた関数f(加算と乗算で構成される関数)の計算を行うことができる。
【0024】
Shamir法に代表される通常の(k,n)しきい値秘密分散法においては、秘密情報をn個の分散情報に符号化し、k(≦n)個以上の分散情報が集まれば、もとの秘密情報を復元することができるが、k−1個以下であると、その秘密情報については全く知ることができないという性質を、多項式補間を用いることにより実現している。
【0025】
具体的には、次式(13)のようなk−1次多項式h(x)を用いてもとの秘密情報を分散する。
【数11】
Figure 0004300838
ここで、Sは、もとの秘密情報であり、RS,1,RS,2,…,RS,k−1は、分配者が決める乱数である。
【0026】
分配するn人の各メンバには、メンバIDとして、m,m,…,mが付与されているものとし、メンバID_m(i=1,2,…,n)に対する分散情報Sは、上記式(13)を用いて、次式(14)のように計算することができる。
【数12】
Figure 0004300838
【0027】
ここでは、メンバID_m(i=1,2,…,n)、秘密情報S、分散情報S(i=1,2,…,n)、乱数RS,1,RS,2,…,RS,k−1などの値は、それぞれ、ある有限体GF(q)(qは、素数又は素数のべき乗の値)上の値とし、演算(加算及び乗算)は、それぞれ、有限体GF(q)上の演算とする。また、上記式(13)より、次式(15)という関係式が成り立つ。
(0)=S …(15)
【0028】
もとの秘密情報Sを、各メンバに配布した分散情報から再構成する場合には、分散情報を分配したメンバのうち、t人(k≦t)を集めてきて、そのメンバIDと分散情報を持ち寄り、次式(16)及び(17)で計算することで達成できる。
【数13】
Figure 0004300838
ここで、m',m',…,m'は、集まったメンバのメンバIDであり、S',S',…,S'は、集まったメンバが保持する分散情報である。
【0029】
このShamir法に代表される通常の(k,n)しきい値秘密分散法においては、もとの秘密情報Sとその分散情報S(i=1,2,…,n)は、ともに有限体GF(q)上の値であり、分散情報S(i=1,2,…,n)の情報量は、もとの秘密情報Sの情報量よりも小さくすることができない性質がある。
【0030】
【非特許文献1】
岡本龍明他、「現代暗号」(産業図書)、第214−216ページ及び第227−236ページ
【非特許文献2】
ジー・アール・ブラクレイ及びキャサリン・メドウズ、「セキュリティ・オブ・ランプ・スキームズ」、プロスィージャ・オブ・クリプト’88、レクチャー・ノーツ・イン・コンピュータ・サイエンス403、スプリンガー・ベルラグ、、第242−268ページ、1990年(G.R.BLAKLEY AND CATHERINE MEADOWS,“SECURITY OF RAMP SCHEMES”, PROC. OF CRYPTO ’88, LECTURE NOTES IN COMPUTER SCIENCE 403, SPRINGER-VERLAG, pp. 242-268 (1990)
【0031】
【発明が解決しようとする課題】
しかしながら、上記した従来のマルチパーティ・プロトコルによる分散計算においては、通常の(k,n)しきい値秘密分散法を用いて、それぞれの秘密情報の秘密分散を行っているため、各メンバにおける分散計算においては、その秘密情報と同じ情報量、すなわち、同じ大きさの有限体上における演算を行う必要がある。このため、秘密情報をn人に分散して演算しているにもかかわらず、メンバそれぞれの分散演算処理における、演算量、演算回路に必要な回路規模、演算に必要な記憶容量、演算時間等の演算コストを下げることができないといった問題があった。
【0032】
そこで、本発明は上記したような従来技術の課題を解決するためになされたものであり、その目的は、分散計算における演算量を低減することができる分散計算装置及び分散計算システムを提供することである。
【0033】
【課題を解決するための手段】
本発明に係る分散計算装置は、ランプ型(L,k,n)しきい値秘密分散法により1又は複数個(通常は2個以上であるが、1個の場合も有りうる。)の秘密情報から生成された分散情報を用いて、分散計算する分散計算手段を有し、この分散計算装置が保持するメンバIDをm(p≦n)とし、上記分散計算手段が分散計算に用いる分散情報をYとしたときに、上記分散情報は、有限体GF(q)をL次拡大した拡大体で生成元がαである拡大体GF(q)上の値を次式X=ΣXα;0≦j≦L−1を満たすXとするときに、次式h(I)=X;0≦j≦L−1を満たすk−1次の有限体GF(q)上の多項式h(x)を生成し、上記多項式h(x)から、Y=h(m)なる有限体GF(q)上の値を計算することによって生成された情報であり、
上記分散計算手段の計算結果、及び、他の分散計算装置の分散計算手段からの計算結果Z’ から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行って、拡大体GF(q )上の値
Z=ΣZ α (jは、0≦j≦L−1である整数)を得る秘密再構成手段をさらに有し、
上記秘密再構成手段は、次式
【数107
Figure 0004300838
のような線形結合を行う線形結合手段を有することを特徴としている。
【0034】
また、本発明に係る他の分散計算装置は、ランプ型(L,k,n)しきい値秘密分散法により、秘密情報から分散情報を生成する秘密分散計算手段を有し、上記秘密分散計算手段が、上記分散情報が配布される他の分散計算装置が保持するメンバIDをm(p≦n)とし、メンバIDがmである上記分散情報をYとし、有限体GF(q)をL次拡大した拡大体で生成元がαである拡大体GF(q)上の値を次式X=ΣXα;0≦j≦L−1を満たすXとするときに、次式h(I)=X;0≦j≦L−1を満たすk−1次の有限体GF(q)上の多項式h(x)を生成する多項式生成手段と、上記多項式h(x)から、Y=h(m)なる有限体GF(q)上の値を計算することによって生成する分散情報生成手段とを有し、
他の分散計算装置からの分散情報を受信する受信手段と、
上記秘密分散計算手段で生成したこの分散計算装置自身に対する分散情報、及び、ランプ型(L,k,n)しきい値秘密分散法により他の分散計算装置で生成され上記受信手段で受信された分散情報を用いて、分散計算する分散計算手段と、
上記分散計算手段の計算結果、及び、他の分散計算装置の分散計算手段からの計算結果Z’ から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行って、拡大体GF(q )上の値Z=ΣZ α (jは、0≦j≦L−1である整数)を得る秘密再構成手段とをさらに有し、上記秘密再構成手段は、次式
【数108】
Figure 0004300838
のような線形結合を行う線形結合手段を有することを特徴としている。
【0035】
また、本発明に係る他の分散計算装置は、ランプ型(L,k,n)しきい値秘密分散法により1又は複数個(通常は2個以上であるが、1個の場合も有りうる。)の秘密情報から生成された分散情報を用いて、分散計算する分散計算手段を有し、この分散計算装置が保持するメンバIDをm(p≦n)とし、上記分散計算手段が分散計算に用いる分散情報をYとしたときに、上記分散情報は、
有限体GF(q)をL次拡大した拡大体で生成元がαで生成多項式がg(x)である拡大体GF(q)上の値を次式
X=ΣX α;0≦j≦L−1
で表されるXとし、RX,j(0≦j≦k−L−1)を乱数とするときに、次式
【数14】
Figure 0004300838
で表されるk−1次の有限体GF(q)上の多項式h(x)を生成し、
上記多項式h(x)から、
=h(m
なる有限体GF(q)上の値を計算することによって生成された情報であることを特徴としている。
【0036】
また、本発明に係る他の分散計算装置は、ランプ型(L、k、n)しきい値秘密分散法により、秘密情報から分散情報を生成する秘密分散計算手段を有し、上記秘密分散計算手段が、上記分散情報が配布される補記あの分散計算装置が保持するメンバIDをm(p≦n)とし、メンバIDがmである上記分散情報をYとし、有限体GF(q)をL次拡大した拡大体で生成元がαで生成多項式がg(x)である拡大体GF(q)上の値を次式
X=ΣX α;0≦j≦L−1
で表されるXとし、RX,j(0≦j≦k−L−1)を乱数とするときに、次式
【数15】
Figure 0004300838
で表されるk−1次の有限体GF(q)上の多項式h(x)を生成する多項式生成手段と、上記多項式h(x)から、Y=h(m)なる有限体GF(q)上の値を計算することによって生成する分散情報生成手段とを有することを特徴としている。
【0037】
【発明の実施の形態】
本発明においては、従来技術のマルチパーティ・プロトコルによる分散計算において用いていた、Shamir法に代表される通常の(k,n)しきい値秘密分散法に代えて、ランプ型(L,k,n)しきい値秘密分散法を用いる。それにより、各メンバに必要な演算は、もとの秘密情報の有限体の大きさよりも小さい有限体上で行うことができ、演算コストを下げることができる。
【0038】
先ず、ランプ型(L,k,n)しきい値秘密分散法について説明する。Shamir法に代表される通常の(k,n)しきい値秘密分散法は、n個の分散情報の内のk−1個の分散情報しか集まらない場合には、その分散情報のもとの秘密情報については、全く知ることができない方法である。これに対し、ランプ型(L,k,n)しきい値秘密分散法は、あるパラメータL(1≦L≦k≦n)を導入し、各分散情報S(i=1,2,…,n)の情報量を、もとの秘密情報Sの1/Lに減らすことにより、n個の分散情報の内のk−d(1≦d≦L−1)個の分散情報が集まったときには、k個の分散情報が集まっていなくても、もとの秘密情報についての何らかの情報が漏れる性質を持つ。
【0039】
Shamir法をランプ型に拡張した方式は、例えば、上記非特許文献2に記載されている。その方式においては、まず、もとの秘密情報Sは、次式(18)で示されるようなベクトル値とする。
S=(S,S,…,SL−1) …(18)
また、S,S,…,SL−1はそれぞれ、有限体GF(q)上の値とし、RS2,0,RS2,1,…,RS2,k−L−1はそれぞれ、分配者が決める乱数で有限体GF(q)上の値である。また、予め、I,I,…,Ik−1のk個の有限体GF(q)上の値を決めておく。そして、次式(19)及び(20)のようなk−1次多項式hS2(x)を用いて秘密情報を秘密分散する。
【0040】
【数16】
Figure 0004300838
【0041】
分散情報が配布されるn人の各メンバには、メンバIDとして、m,m,…,mが付与されているものとし、メンバID_m(i=1,2,…,n)に対する分散情報Xは、次式(21)のように計算する。
=hS2(m) …(21)
【0042】
ここでは、演算(加算及び乗算)は、それぞれ、有限体GF(q)上の演算とする。したがって、分散情報Xは、有限体GF(q)上の値である。以降、特に断りがない限り、演算は、有限体GF(q)上で行うものとする。また、上記式(19)より、次式(22)の関係式が成り立つ。
S2(I)=S
S2(I)=S

S2(IL−1)=SL−1 …(22)
【0043】
各メンバに配布した分散情報Xから、もとの秘密情報S=(S,S,…,SL−1)を再構成する場合には、分散情報を分配したメンバのうち、k人以上のt人(k≦t)のメンバを集めてきて、そのメンバIDと分散情報を持ち寄り、次式(23)及び(24)で計算すると、もとの秘密情報S=(S,S,…,SL−1)を求めることができる。なお、次式(23)及び(24)において、m',m',…,m'は、集まったメンバのメンバIDであり、X',X',…,X'は、メンバIDがm',m',…,m'であるメンバの保持する分散情報である。
【0044】
【数17】
Figure 0004300838
【0045】
【数18】
Figure 0004300838
【0046】
このランプ型(L,k,n)しきい値秘密分散法においては、もとの秘密情報S=(S,S,…,SL−1)は、その分散情報X(i=1,2,…,n)のL倍の情報量を持つことができる。すなわち、ランプ型(L,k,n)しきい値秘密分散法には、分散情報X(i=1,2,…,n)の情報量を、もとの秘密情報Sの情報量の1/Lとすることができる性質がある。
【0047】
≪第1の実施形態≫
[第1の実施形態の構成]
本発明の第1の実施形態においては、n人のメンバ(n個の分散計算装置としてもよい)が、それぞれ秘密情報を持ち、それらの秘密情報を引数とした関数fの計算結果を求めるため、分散計算を行う場合を説明する。n人のメンバには、メンバを識別するための情報であるメンバIDとして、m,m,…,mが割り当てられている。メンバID_m(i=1,2,…,n)は、それぞれ有限体GF(q)(qは、素数又は素数のべき乗)上の値である。
【0048】
また、メンバIDがm(i=1,2,…,n)であるメンバは、秘密情報X(i=1,2,…,n)を持っているものとする。ここで、メンバが保持する秘密情報X(i=1,2,…,n)は、有限体GF(q)のL次拡大体GF(q)上の値であり、有限体GF(q)上の値Xi,0,Xi,1,…,Xi,L−1で表すことができる。有限体GF(q)をL次拡大して拡大体GF(q)を生成したときの生成多項式(既約多項式)をg(x)とし、g(x)=0の解の一つをαとすると、秘密情報Xは、次式(25)で記述することができる。
=Xi,0+Xi,1α+…+Xi,L−1αL−1 …(25)
また、秘密情報Xは、ベクトル表現を用いて、次式(26)のように記述することができる。
=(Xi,0,Xi,1,…,Xi,L−1) …(26)
【0049】
図1は、第1の実施形態に係る分散計算方法を実施する構成(分散計算システム)を示すブロック図である。第1の実施形態においては、加算のみから構成されている関数を用いた分散計算を行う。図1に示されるように、第1の実施形態の分散計算方法(マルチパーティ・プロトコル)を実施する構成は、n個(2≦n)の分散処理部(分散計算装置)101−i(i=1,2,…,n)と、秘密再構成計算部102と、個々の分散処理部101−i(i=1,2,…,n)の秘密通信路103とを有する。各分散処理部101−i(i=1,2,…,n)は、メンバIDがmであるメンバが担当する演算を実行する。n個の分散処理部101−i(i=1,2,…,n)からの出力が、秘密再構成計算部102への入力となる。
【0050】
分散処理部101−i(i=1,2,…,n)(分散処理部の全体を示す場合には、符号101を用いる。)は、各メンバが分散計算する部分である。分散処理部101は、図2に符号▲1▼で示される秘密情報の分散を行ったり、図2に符号▲3▼で示される分散計算を行う。各分散処理部101−i(i=1、2,…,n)は、他の分散処理部101−p(p=1,2,…,nであり、p≠iであるもの)と秘密通信路103で接続されている。この秘密通信路103は、通信している2人のメンバ以外には通信内容を秘密とすることができるような通信路である。また、各分散処理部101−i(i=1、2,…,n)からの出力は、秘密再構成計算部102へ入力される。
【0051】
秘密再構成計算部102は、各メンバの分散処理部101−i(i=1,2,…,n)からの出力を受け取り、受け取ったn個の値を、n個の分散情報としたときの秘密の再構成を行う計算をし、その再構成されたもとの秘密を出力する。秘密再構成計算部102に入力されるn個の分散情報は、ランプ型(L,k,n)しきい値秘密分散法で分散されている情報である。
【0052】
図3は、図1の秘密再構成計算部102の構成を示すブロック図である。図3に示されるように、秘密再構成計算部102は、線形結合部201を有する。線形結合部201は、秘密再構成計算部102への入力を受け取り、メンバID_mから計算される係数を用いて、それらの入力の線形結合計算を行い、その計算結果を出力する。線形結合部201からの出力が、秘密再構成計算部102の出力となる。ここで、各メンバの分散処理部101−i(i=1,2,…,n)から出力される値(すなわち、秘密再構成計算部102へ入力される値)をZ'(i=1,2,…,n)とし、メンバID_mから計算される係数をr0,i,r1,i,…,rL−1,i(i=1,2,…,n)とする。このとき、秘密再構成計算部102は、次式(27)及び(28)の計算を行い、その結果Z=(Z,Z,…,ZL−1)を出力する。
【0053】
【数19】
Figure 0004300838
【0054】
【数20】
Figure 0004300838
【0055】
上記式(27)及び(28)における各演算は、有限体GF(q)上で行う。なお、以降の説明においては、断りがない限り、演算は、有限体GF(q)上で行うものとする。
【0056】
各メンバの分散処理部101−i(i=1,2,…,n)における処理は、各メンバがそれぞれ他のメンバにはその処理の内容が分からないように行う。秘密再構成計算部102における処理は、処理を統合するセンター(すなわち、センターが管理する演算装置)のようなものが行ってもよいし、集まったメンバのうち、だれか1人、又は、複数人(すなわち、集まったメンバのいずれかが管理する演算装置)で行ってもよい。ただし、計算結果Zを必要としているメンバが行うのが望ましい。
【0057】
図4は、図1の分散処理部101−i(i=1,2,…,n)の構成を示すブロック図である。図4に示されるように、分散処理部101−iは、秘密情報記憶部301−iと、秘密分散計算部302−iと、送信部303−iと、受信部304−iと、分散計算部305−iとを有する。秘密情報記憶部301−iからの出力が秘密分散計算部302−iへ入力され、秘密分散計算部302−iからの出力が送信部303−i及び分散計算部305−iへ入力される。送信部303−iは、秘密通信路103へ情報を送信する。また、秘密通信路103から受け取る情報は、受信部304−iへ入力され、受信部304−iからの出力が分散計算部305−iへ入力される。分散計算部305−iからの出力が、分散処理部101−iの出力となる。
【0058】
秘密情報記憶部301−iは、メンバIDがmであるメンバが保持する秘密情報Xを保持しており、この秘密情報Xを秘密分散計算部302−iへ出力する。メンバが保持する秘密情報(すなわち、秘密情報記憶部301−iに保持されている秘密情報)Xは有限体GF(q)のL次拡大体GF(q)上の値であり、生成元α及び有限体GF(q)上の値Xi,0,Xi,1,…,Xi,L−1を用いて、次式のように記述することができる。
=Xi,0+Xi,1α+…+Xi,L−1αL−1
【0059】
秘密分散計算部302−iへは、メンバIDがmであるメンバが保持する秘密情報Xが入力される。秘密分散計算部302−iは、入力された秘密情報Xをランプ型(L,k,n)しきい値秘密分散法(L≦k≦n)を用いて分散し、送信部303−i、及び、秘密通信路103を経由して他のメンバに配布する。メンバが保持する秘密情報Xは拡大体GF(q)上の値である。秘密分散計算部302−iで生成される分散情報をYi,p(p=1,2,…,n)とすると、自分自身に対する分散情報Yi,iは、分散計算部305−iへ出力され、その他の分散情報Yi,p(p=1,2,…,nであり、p≠iであるもの)は送信部303−iへ出力される。メンバが保持する秘密情報Xは拡大体GF(q)上の値であり、その分散情報Yi,pは、その有限体GF(q)上の値である。
【0060】
送信部303−iは、秘密分散計算部302−iからの出力Yi,p(p=1,2,…,nであり、p≠iであるもの)を受け取り、それを秘密通信路103を通して他の各メンバ(メンバIDがm(p=1,2,…,nであり、p≠iであるもの)であるメンバ)に送信する。なお、Yi,pは、メンバIDがmであるメンバからメンバIDがmであるメンバに送信される分散情報である。
【0061】
受信部304−iは、他の各メンバの送信部303−p(p=1,2,…,nであり、p≠iであるもの)から送信される情報Yp,i(p=1,2,…,nであり、p≠iであるもの)を受け取り、それを分散計算部305−iへ出力する。なお、Yp,iは、メンバIDがmであるメンバからメンバIDがmであるメンバに送信される分散情報である。
【0062】
分散計算部305−iは、秘密分散計算部302−iから、秘密情報Xの分散情報であるYi,iを受け取る。さらに、受信部304−iから、他のメンバから配布された、秘密情報X(p=1,2,…,nであり、p≠iであるもの)の分散情報Y1,i,Y2,i,…,Yn,i(分散情報Yi,i以外のもの)を受け取る。分散計算部305−iは、受け取ったn個の分散情報Yp,i(p=1,2,…,n)を用いて分散計算を行い、求めるべき計算結果(最終の計算結果)Zの分散情報(中間の計算結果)Z'を出力する。
【0063】
分散計算部305−iは、関数Z=f(X,X,…,X)に従った演算をするために、一つ若しくは複数の分散加算部を有する。例えば、
Z=f(X,X,…,X)=X+X+…+X
(すなわち、秘密情報の総和)を計算させようとする場合には、分散計算部305−iは、図6に示されるような構成(n−1個の分散加算部501−1,501−2,…,501−(n−1)からなる)になる。また、
Z=f(X,X,…,X)=X+X
(すなわち、ある特定の秘密情報の和)を計算させようとする場合には、分散計算部305−iは、図7に示されるような構成(1個の分散加算部601からなる)になる。
【0064】
図5は、第1の実施形態における秘密分散計算部302−i(i=1,2,…,n)の構成を示すブロック図である。図5に示されるように、秘密分散計算部302−iは、多項式生成部401−iと、分散情報生成部402−iとを有する。また、多項式生成部401−iは、乱数生成部403−iと、(k−1)次多項式生成部404−iとを有する。秘密分散計算部302−iへの入力は、多項式生成部401−iへ入力され、多項式生成部401−iからの出力が、分散情報生成部402−iへ入力される。分散情報生成部402−iからの出力が、秘密分散計算部302−iからの出力となる。また、多項式生成部401−iへの入力は、(k−1)次多項式生成部404−iへ入力され、乱数生成部403−iからの出力も(k−1)次多項式生成部404−iへ入力される。(k−1)次多項式生成部404−iからの出力が、多項式生成部401−iからの出力となる。
【0065】
多項式生成部401−iは、L個の有限体GF(q)上の値Xi,0,Xi,1,…,Xi,L−1を受け取り、それらの値から、次式(29)を満たすk−1次多項式hXi(x)を生成し、その生成した多項式hXi(x)を表現する情報を出力する。
Xi(I)=Xi,0
Xi(I)=Xi,1

Xi(IL−1)=Xi,L−1 …(29)
ただし、I,I,…,IL−1は、メンバIDと重複しない値で、予め決められている有限体GF(q)上の値とする。
【0066】
分散情報生成部402−iは、多項式hXi(x)を受け取り、次式(30)で示す有限体GF(q)上のn個の値Yi,p(p=1,2,…,n)を生成して出力する。
i,p=hXi(m) …(30)
ここで、p=1,2,…,nであり、Yi,pは、メンバIDがmであるメンバからメンバIDがmであるメンバに対して配布される分散情報を示す。
【0067】
乱数生成部403−iは、有限体GF(q)上のk−L個の乱数RXi,0,RXi,1,…,RXi,k−L−1を生成して出力する。
【0068】
(k−1)次多項式生成部404−iは、秘密分散計算部302−iへの入力であるメンバが保持する秘密情報X、及び、乱数生成部403−iからの乱数RXi,0,RXi,1,…,RXi,k−L−1を受け取り、次式(31)及び(32)で示されるようなk−1次多項式h(x)を生成し、その生成した多項式h(x)を表現する情報を出力する。
【0069】
【数21】
Figure 0004300838
【0070】
なお、メンバが保持する秘密情報Xは拡大体GF(q)上の値であり、前述したように、生成元α及び有限体GF(q)上の値Xi,0,Xi,1,…,Xi,L−1を用いて
=Xi,0+Xi,1α+…+Xi,L−1αL−1
の形で記述することができる。また、上記式(31)及び(32)は、メンバIDがmであるメンバの(k−1)次多項式生成部404−iが生成する多項式h(x)である。
【0071】
図8は、図6又は図7の分散加算部501又は601の構成を示すブロック図である。図8を用いて、分散計算部305−iの構成要素となる、分散加算部501又は601の構成を説明する。図8に示されるように、分散加算部501又は601は、加算部701を有する。加算部701は、2つの入力(有限体GF(q)上の値)を受け取り、それらの有限体GF(q)上の加算をした値を出力する。入力値をa及びbとすると、その出力cは、次式(33)のようになる。c=a+b …(33)
上記式(33)は、有限体GF(q)上の演算(加算)である。
【0072】
分散情報a及びbは、それぞれ、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成式(上記式(27)及び(28))を行うと、拡大体GF(q)上の値
A=(A,A,…,AL−1
B=(B,B,…,BL−1
になる。ここで、A,A,…,AL−1,B,B,…,BL−1はそれぞれ、有限体GF(q)上の値である。分散加算部501又は601から出力される分散情報cは、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行うと、
C=A+B …(34)
となる拡大体GF(q)上の値C=(C,C,…,CL−1)となる。ここで、C,C,…,CL−1はそれぞれ、有限体GF(q)上の値である。上記式(34)は、拡大体GF(q)上の演算(加算)である。
【0073】
[第1の実施形態の動作]
図9は、第1の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作を示すフローチャートである。分散計算を行うための各メンバはn人であり、メンバIDがm(i=1,2,…,n)であるメンバは、秘密情報Xを持っている。メンバID_mは有限体GF(q)上の値であり、秘密情報Xは拡大体GF(q)上の値である。また、メンバID_m(i=1,2,…,n)は、メンバ全員に公開されている。分散計算に用いる有限体GF(q)、ランプ型秘密分散法のパラメータL、有限体GF(q)から拡大体GF(q)へ拡大するのに用いる既約多項式g(x)、その生成元α、及び、分散計算させたい関数f(X,X,…,X)は、予め決められているものとする。関数f(X,X,…,X)は、拡大体GF(q)上の演算で、第1の実施形態においては、拡大体GF(q)上の加算(例えば、X+X)のみで構成されているものとする。
【0074】
図9に示されるように、まず、各メンバが保持する秘密情報を、ランプ型(L,k,h)秘密分散法を用いて分散し、他のメンバに配布する(ステップS801)。ステップS801は、図4の秘密分散計算部302−iにおける動作を示しており、メンバIDがm(i=1,2,…,n)である各メンバの保持する秘密情報Xから、上記式(30)を用いて、分散情報Yi,p(p=1,2,…,n)を計算し、メンバIDがmであるメンバに対して配布する。
【0075】
次に、各メンバは、自分自身の秘密情報の分散情報、及び、他のメンバから配布された分散情報を用いて、関数fの分散計算を行う(ステップS802)。ステップS802は、図4の分散計算部305−iにおける動作を示しており、メンバIDがm(i=1,2,…,n)である各メンバは、関数f(X,X,…,X)で指示される通りの分散計算を行う。例えば、
f(X,X,…,X)=X+X
である場合には、メンバIDがmであるメンバは、配布された結果自分が保持する分散情報YA,i及びYB,iから、次の分散加算計算
Z'=YA,i+YB,i
を実行する。この分散加算計算の計算結果(中間の計算結果)Z'は、拡大体GF(q)上の計算結果(最終の計算結果)Z(ここで、Z=f(X,X,…,X)=X+Xである。)の分散情報(すなわち、ランプ型(L,k,n)秘密分散法で分散された分散情報)となっている。
【0076】
次の、ステップS803において、各メンバが計算した計算結果Z'から、関数fの計算結果Z=f(X,X,…,X)を、ランプ型(L,k,n)秘密分散法に基づいて秘密再構成する。ステップS803は、図1の秘密再構成計算部102における動作を示しており、メンバIDがmであるメンバがステップS802で計算した結果Z'(i=1,2,…,n)から、上記式(27)を用いて計算し、関数fの計算結果Z=f(X,X,…,X)を得ることができる。
【0077】
図10は、分散加算における動作を示すフローチャートである。例えば、拡大体GF(q)上の値A及びBの加算を行う場合を考える。図10に示されるように、メンバIDがm(i=1,2,…,n)である各メンバは、自身が保持する情報A及びBの分散情報a及びbより、その和c=a+bを計算して出力する(ステップS901)。
【0078】
[第1の実施形態の効果]
以上に説明したように、第1の実施形態によれば、関数f(ただし、関数fは、加算のみの関数)に対するマルチパーティ・プロトコル(各メンバの保持する秘密情報を公開しないまま、各メンバが分散計算を行うことにより、関数fの計算結果を得るプロトコル)において、関数fにおける拡大体GF(q)上の計算を、各メンバの分散演算処理においては、その拡大体よりも小さな有限体GF(q)上の計算のみを行うことで、達成することができる。このため、メンバそれぞれの分散演算処理における、演算量、演算回路に必要な回路規模、演算に必要な記憶容量、演算時間等の演算コストを削減することができる。
【0079】
≪第2の実施形態≫
第1の実施形態においては、ランプ型(L,k,n)しきい値秘密分散法を用いた、マルチパーティ・プロトコルによる分散計算の、分散加算方法について説明したが、第2の実施形態においては、マルチパーティ・プロトコルによる分散計算の、分散定数乗算方法を説明する。第1の実施形態と同様に、ランプ型(L,k,n)しきい値秘密分散法を用いていることから、従来のマルチパーティ・プロトコルによる分散計算と比較すると、各メンバに必要な演算は、もとの秘密情報の有限体の大きさよりも小さい有限体上で行うことができ、演算コストを下げることができる。
【0080】
[第2の実施形態の構成]
第1の実施形態と同様に、第2の実施形態においては、n人のメンバ(n個の分散計算装置でもよい)が、それぞれ秘密情報を持ち、それらの秘密情報を引数とした関数fの計算結果を求めるため、分散計算を行う場合を説明する。n人のメンバには、メンバIDとして、m,m,…,mが割り当てられている。メンバID_m(i=1,2,…,n)は、それぞれ有限体GF(q)(qは素数又は素数のべき乗)上の値である。
【0081】
また、メンバIDがmであるメンバは、秘密情報Xを持っているものとする。ここで、メンバが保持する秘密情報X(i=1,2,…,n)は、有限体GF(q)のL次拡大体GF(q)上の値であり、有限体GF(q)上の値Xi,0,Xi,1,…、Xi,L−1で表すことができる。有限体GF(q)をL次拡大して拡大体GF(q)を生成したときの生成多項式(既約多項式)をg(x)とし、生成元をαとする。
【0082】
第2の実施形態に係る分散計算方法を実施する構成(分散計算システム)は、第1の実施形態のものと同様に、図1のようになる。第2の実施形態に係る分散計算方法を実施する構成(分散計算システム)が第1の実施形態のものと異なる点は、分散処理部101−iの構成及び動作である。
【0083】
図11は、第2の実施形態における分散処理部(分散計算装置)101−i(i=1,2,…,n)の構成を示すブロック図である。図11に示されるように、第2の実施形態における分散処理部101−iは、秘密情報記憶部1001−iと、秘密分散計算部1002−iと、送信部1003−iと、受信部1004−iと、分散計算部1005−iとを有する。秘密情報記憶部1001−iからの出力が秘密分散計算部1002−iへ入力され、秘密分散計算部1002−iからの出力が送信部1003−i及び分散計算部1005−iへ入力される。送信部1003−iは、秘密通信路103へ情報を送信する。また、秘密通信路103から受け取る情報は、受信部1004−iへ入力され、受信部1004−iからの出力が分散計算部1005−iへ入力される。分散計算部1005−iからの出力が、第2の実施形態における分散処理部101−iの出力となる。
【0084】
第2の実施形態における秘密情報記憶部1001−i、秘密分散計算部1002−i、送信部1003−i、及び受信部1004−iは、第1の実施形態における秘密情報記憶部301−i、秘密分散計算部302−i、送信部303−i、及び受信部304−iと、構成及び動作が同じである。しかし、第2の実施形態における分散計算部1005−iは、第1の実施形態における分散計算部305−iと、構成及び動作が異なる。
【0085】
第2の実施形態における分散計算部1005−iは、分散加算に加えて、分散定数乗算を行うので、秘密通信路103を介して他のメンバの分散処理部101−p(p=1,2,…,nであり、p≠iであるもの)との通信を行う手段を有している。分散計算部1005−iは、秘密分散計算部1002−iから、秘密情報Xの分散情報Yi,iを受け取る。さらに、受信部1004−iから、他のメンバから配布された、秘密情報X(p=1,2,…,nであり、p≠iであるもの)の分散情報Y1,i,Y2,i,…,Yn,iを受け取る。これらn個の分散情報Yp,i(p=1,2,…n)を用いて分散計算を行い、計算結果(最終の計算結果)Zの分散情報(中間の計算結果)Z'を出力する。分散計算部1005−iは、関数Z=f(X,X,…,X)に従って、一つ若しくは複数の分散定数乗算部と0以上若しくは複数の分散加算部とを有する。例えば、
Z=f(X,X,…,X)=t+t+…+t
(秘密情報の線形結合計算)を計算させようとする場合には、分散計算部1005−iは、図12に示されるような構成(n個の分散定数乗算部1101(1101−1,1101−2,…,1101−n)と、n−1個の分散加算部1102(1102−1,1102−2,…,1102−(n−1))からなる)になる。
【0086】
図13は、図12の分散定数乗算部1101の構成を示すブロック図である。図13を用いて、分散計算部1005−iの構成要素となる、分散定数乗算部1101の構成を説明する。図13に示されるように、分散定数乗算部1101は、拡大体乗算部1201と、秘密分散計算部1202と、送信部1203と、受信部1204と、加算部1205とを有する。拡大体乗算部1201は、分散定数乗算部1101への入力を受け取る。拡大体乗算部1201からの出力は秘密分散計算部1202へ入力され、秘密分散計算部1202からの出力が送信部1203及び加算部1205へ入力される。送信部1203は、秘密通信路103へ情報を送信する。また、秘密通信路103から受け取る情報は、受信部1204へ入力され、受信部1204からの出力が加算部1205へ入力される。加算部1205からの出力が、分散定数乗算部1101の出力となる。
【0087】
分散定数乗算部1101は、2つの入力(有限体GF(q)上の値及び拡大体GF(q)上の定数)を受け取る。ここで、拡大体GF(q)上の値
A=(A,A,…,AL−1
及び、拡大体GF(q)上の定数
D=(D,D,…,DL−1
の乗算C=D×Aを分散計算する場合を考える。ここで、A,A,…,AL−1,D,D,…,DL−1はそれぞれ、有限体GF(q)上の値である。このとき、分散定数乗算部1101への入力は、値Aの(メンバIDがm(i=1,2,…,n)であるメンバの保持する)分散情報a及び拡大体GF(q)上の定数Dである。以降、分散定数乗算部1101は、メンバIDがm(i=1,2,…,n)であるメンバの分散計算部1005−iに含まれているものとして説明する。
【0088】
拡大体乗算部1201は、分散定数乗算部1101への入力である、分散情報a及び拡大体GF(q)上の定数D=(D,D,…,DL−1)を受け取り、まず、次式(35)で示される2L−1個の値E'i,0,E'i,1,…,E'i,2(L−1)を計算する。
【0089】
【数22】
Figure 0004300838
ここで、rj,i(j=0,1,…,L−1)は、上記式(28)で表される、メンバIDから計算される係数である。
【0090】
一方、拡大体GF(q)上における乗算を可能とするために、下記の式(37)で示す有限体GF(q)上の値gj,h(j=0,1,…,L−1; h=0,1,…,L−1)は、拡大体演算用に予め計算し保持しておくようにしておく。拡大体GF(q)を生成するときの生成多項式g(x)を下記の式(36)で示す。
【0091】
【数23】
Figure 0004300838
【0092】
【数24】
Figure 0004300838
【0093】
これら保持しておいたgj,h(j=0,1,…,L−1; h=0,1,…,L−1)、はじめに計算した上記式(35)のE'i,h(h=0,1,…,L−1)、及び、上記式(28)で表されるメンバIDから計算される係数rj,i(j=0,1,…,L−1)を用いて、次式(38)を計算する。
【0094】
【数25】
Figure 0004300838
【0095】
ここで、E=(Ei,0,Ei,1,…,Ei,L−1)は、拡大体乗算部1201からの出力である。拡大体乗算部1201からの出力E=(Ei,0,Ei,1,…,Ei,L−1)は、秘密分散計算部1202へ入力される。
【0096】
例えば、L=2、g(x)=x+x+1の場合には、上記式(37)から、gj,h(j=0,1,…,L−1; h=0,1,…,L−1)は、
0,0=1
0,1=1
1,0=−1
1,1=−1 …(39)
となり、拡大体乗算部1001(メンバIDがmであるメンバのもの)は、下記の式(40)によりE=(Ei,0,Ei,1)を計算し、出力する。
【0097】
【数26】
Figure 0004300838
【0098】
秘密分散計算部1202は、拡大体乗算部1201からの出力E=(Ei,0,Ei,1,…,Ei,L−1)を受け取る。この拡大体乗算部1201からの出力Eは、拡大体GF(q)上の値である。秘密分散計算部1202は、受け取った値Eを、ランプ型(L,k,n)しきい値秘密分散法(k≦n)を用いて分散し、送信部1203、及び、秘密通信路103を経由して他のメンバに配布する。秘密分散計算部1202は、図5に示される秘密分散計算部302−iと同様な構成をしており、入力される値が秘密情報X=(Xi,0,Xi,1,…,Xi,L−1)に代えて、値E=(Ei,0,Ei,1,…,Ei,L−1)が入力される。このとき、(k−1)次多項式生成部404−iで生成される多項式は、次式(41)になる。
【0099】
【数27】
Figure 0004300838
【0100】
ここで、H(x)は上記式(32)のものである。同様に、分散情報生成部402−iで生成される、メンバIDがm(p=1,2,…,n)であるメンバに対して配布する分散情報Fi,pは、上記式(41)を用いて、次式(42)で算出する。
i,p=hEi(m) …(42)
分散情報Fi,pは、その有限体GF(q)上の値である。
【0101】
自分自身に対する分散情報Fi,iは、加算部1205へ出力し、その他の分散情報Fi,p(p=1,2,…,nであり、p≠iであるもの)を送信部1203及び秘密通信路103を経由して各メンバに配布する。
【0102】
送信部1203は、秘密分散計算部1202からの出力Fi,p(p=1,2,…,nであり、p≠iであるもの)を受け取り、それを秘密通信路103を通して他の各メンバに送信する。
【0103】
受信部1204は、他の各メンバ(メンバIDがm(p=1,2,…,nであり、p≠iであるもの)であるメンバ)の送信部1203から送信される情報Fp,i(p=1,2,…,nであり、p≠iであるもの)を受け取り、それを加算部1205へ出力する。
【0104】
送信部1203及び受信部1204は、他のメンバの分散処理部101−pとの送受信する機能を持っており、分散処理部101−iにおける送信部1003−i及び受信部1004−iと共通化した構成にしてもよい。
【0105】
加算部1205は、秘密分散計算部1202からの出力Fi,iを受け取る。さらに、加算部1205は、受信部1204から、他のメンバの秘密分散計算部1202からの出力F1,i,F2,i,…,Fn,iを受け取る。これらn個の分散情報Fp,i(p=1,2,…,n)を、次式(43)のようにすべて加算(有限体GF(q)上の加算)し、その計算結果cを出力する。
=F1,i+F2,i+…+Fn,i …(43)
【0106】
この加算部1205からの出力cが、分散定数乗算部1101の出力となる。分散定数乗算部1101への入力を分散情報a(ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行うと、拡大体GF(q)上の値A=(A,A,…,AL−1)になる)、及び、定数D=(D,D,…,DL−1)とすると、そのとき分散定数乗算部1101から出力される分散情報cは、メンバでランプ型(L,k,n)しきい値秘密分散法の秘密再構成行うと、
C=D×A …(44)
となる拡大体GF(q)上の値C=(C,C,…,CL−1)となる。ここで、C,C,…,CL−1は、有限体GF(q)上の値である。また、上記式(44)は、拡大体GF(q)上の演算(乗算)である。
【0107】
[第2の実施形態の動作]
図14は、第2の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作を示すフローチャートである。図14に示されるように、第2の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作は、上記した第1の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作と類似している。しかし、第1の実施形態のステップS802(図9)において分散加算のみしか行わなかったが、第2の実施形態のステップS1302(図14)おいては、分散定数乗算をも行う点が相違する。
【0108】
図14を用いて、第2の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作を説明する。なお、第1の実施形態と異なるステップS1302のみを説明する。図14に示されるように、ステップS1302においては、各メンバは、自分自身の秘密情報の分散情報、及び、他のメンバから配布された分散情報を用いて、関数fの分散計算を行う。ステップS1302は、図11の分散計算部1005−iにおける動作を示しており、メンバIDがm(i=1,2,…,n)である各メンバは、関数f(X,X,…,X)で指示される通りの分散計算を行う。この関数fは、第1の実施形態においては、加算のみしか扱わなかったが、第2の実施形態においては、定数乗算も扱う。例えば、f(X,X,…,X)=t+t
(t,tは、拡大体GF(q)上の定数)である場合には、メンバIDがmであるメンバは、配布された結果自分が保持する分散情報YA,i及びYB,iから、t及びYA,iを入力とする分散定数乗算計算(分散定数乗算部1101の動作)、及び、t及びYB,iを入力とする分散定数乗算計算(分散定数乗算部1101の動作)を行って、その2つの出力の加算を行って計算結果(中間の計算結果)Z'を求める。その計算結果Z'は、拡大体GF(q)上の計算結果(最終の計算結果)
Z=f(X,X,…,X)=t+t
の分散情報(すなわち、ランプ型(L,k,n)秘密分散法で分散された分散情報)となっている。
【0109】
図15は、第2の実施形態における分散定数乗算の動作を示すフローチャートである。例えば、拡大体GF(q)上の値A=(A,A,…,AL−1)、及び、定数D=(D,D,…,DL−1)の乗算を行う場合を考える。
【0110】
まず、メンバIDがm(i=1,2,…,n)である各メンバは、自身が保持する情報Aの分散情報a、及び、定数Dより、上記式(38)を用いて、E=(Ei,0、Ei,1,…,Ei,L−1)を求める(ステップS1401)。ステップS1401は、図13の拡大体乗算部1201における動作を表している。
【0111】
次に、メンバIDがm(i=1,2,…,n)である各メンバは、ステップS1401で計算した値E=(Ei,0,Ei,1,…,Ei,L−1)をランプ型(L,k,n)秘密分散法を用いて分散情報Fi,p(p=1,2,…,n)を作り、メンバIDがm(p=1,2,…,nであり、p≠iであるもの)である他のメンバに分散情報Fi,pを配布する(ステップS1402)。ステップS1402は、図13の秘密分散計算部1202及び送信部1203における動作を示している。
【0112】
次に、メンバIDがm(i=1,2,…,n)である各メンバは、ステップS1402の動作により受け取った分散情報Fp,i(p=1,2,…,n)をすべて加算し(上記式(43))、値cを求めて出力する(ステップS1403)。ステップS1403は、図13の受信部1204及び加算部1205における動作を示している。
【0113】
[第2の実施形態の効果]
以上に説明したように、第2の実施形態によれば、第1の実施形態と同様に、関数f(ただし、関数fは、加算及び定数乗算のみからなる関数)に対するマルチパーティ・プロトコル(各メンバの保持する秘密情報を公開しないまま、各メンバが分散計算を行うことにより、関数fの計算結果を得るプロトコル)において、関数fにおける拡大体GF(q)上の計算を、各メンバの分散演算処理においては、その拡大体よりも小さな有限体GF(q)上の計算のみを行うことで、達成することができる。このため、メンバそれぞれの分散演算処理における、演算量、演算回路に必要な回路規模、演算に必要な記憶容量、演算時間等の演算コストを削減することができる。
【0114】
また、第1の実施形態とは異なり、第2の実施形態においては、分散加算計算だけでなく、分散定数乗算計算も可能となる。
【0115】
≪第3の実施形態≫
第1の実施形態においては、ランプ型(L,k,n)しきい値秘密分散法を用いた、マルチパーティ・プロトコルによる分散計算の、分散加算方法についてついて説明したが、第3の実施形態においては、マルチパーティ・プロトコルによる分散計算の、分散乗算方法を説明する。第1及び第2の実施形態と同様に、ランプ型(L,k,n)しきい値秘密分散法を用いていることから、従来のマルチパーティ・プロトコルによる分散計算と比較すると、各メンバに必要な演算は、もとの秘密情報の有限体の大きさよりも小さい有限体上で行うことができ、演算コストを下げることができる。
【0116】
[第3の実施形態の構成]
第1及び第2の実施形態と同様に、第3の実施形態においては、n人のメンバ(n個の分散計算装置でもよい)が、それぞれ秘密情報を持ち、それらの秘密情報を引数とした関数fの計算結果を求めるため、分散計算を行う場合を説明する。n人のメンバには、メンバIDとして、m,m,…,mが割り当てられている。メンバID_m(i=1,2,…,n)は、それぞれ有限体GF(q)(qは、素数又は素数のべき乗)上の値である。
【0117】
また、メンバIDがmであるメンバは、秘密情報Xを持っているものとする。ここで、メンバが保持する秘密情報X(i=1,2,…,n)は、有限体GF(q)のL次拡大体GF(q)上の値であり、有限体GF(q)上の値であるXi,0,Xi,1,…,Xi,L−1で表すことができる。有限体GF(q)をL次拡大して拡大体GF(q)を生成したときの生成多項式(既約多項式)をg(x)とし、生成元をαとする。
【0118】
第3の実施形態に係る分散計算方法を実施する構成(分散計算システム)は、第1及び第2の実施形態のものと同様に、図1のようになる。第3の実施形態に係る分散計算方法を実施する構成(分散計算システム)が第1の実施形態のものと異なる点は、分散処理部101−iの構成及び動作である。
【0119】
第3の実施形態における分散処理部(分散計算装置)101−i(i=1,2,…,n)の構成は、第2の実施形態のものと同様に図11のようになる。第3の実施形態における分散処理部101−iが、第2の実施形態のものと異なる点は、分散計算部1005−iの構成及び動作である。
【0120】
第3の実施形態における分散計算部1005−iは、分散加算(第1の実施形態)及び分散定数乗算(第2の実施形態)に加えて、分散乗算を行うので、第2の実施形態のものと同様に、秘密通信路103を介して他のメンバの分散処理部101−p(p=1,2,…,nであり、p≠iであるもの)との通信を行う手段を有している。分散計算部1005−iは、秘密分散計算部1002−iから、秘密情報Xの分散情報Yi,iを受け取る。さらに、受信部1004−iから、他のメンバから配布された、秘密情報X(p=1,2,…,nであり、p≠iであるもの)の分散情報Y1,i,Y2,i,…,Yn,iを受け取る。これらn個の分散情報Yp,i(p=1,2,…,n)を用いて、分散計算を行い、計算結果(最終の計算結果)Zの分散情報(中間の計算結果)Z'を出力する。分散計算部1005−iは、関数Z=f(X,X,…,X)に従って、一つ若しくは複数の分散乗算部、0以上若しくは複数の分散加算部、及び、0以上若しくは複数の分散定数乗算部からなる。例えば、
Z=f(X、X,…,X
=(t+t+…+t)×X
(秘密情報の線形結合計算とメンバIDがmであるメンバの保持する秘密情報との乗算)を計算させようとする場合には、分散計算部1005−iは、図16のような構成(n個の分散定数乗算部1501、n−1個の分散加算部1502、1個の分散乗算部1503からなる)になる。また、
Z=f(X,X,…,X)=X×X
(メンバIDがm、mであるメンバの保持する秘密情報同士の乗算)を計算させようとする場合には、分散計算部1005−iは、図17のような構成(1個の分散乗算部1601からなる)になる。
【0121】
図18は、図16の分散乗算部1503又は図17の分散乗算部1601の構成を示すブロック図である。図18を用いて、第3の実施形態における分散計算部1005−iの構成要素となる、分散乗算部1503,1601の構成を説明する。図18に示されるように、分散乗算部1503,1601は、乗算部1701と、紛失通信計算部1702と、分散情報計算部1703と、秘密分散計算部1704と、送信部1705と、受信部1706と、加算部1707とを有する。分散乗算部1503,1601への入力は、乗算部1701、及び、紛失通信計算部1702へ入力される。乗算部1701は、分散乗算部1503,1601への入力を受け取り、分散情報計算部1703へ出力する。また、紛失通信計算部1702は、分散乗算部1503,1601への入力を受け取り、分散情報計算部1703へ出力する。分散情報計算部1703は、乗算部1701、及び、紛失通信計算部1702からの出力を受け取り、分散情報計算部1703からの出力が秘密分散計算部1704へ入力される。秘密分散計算部1704からの出力は送信部1705及び加算部1707へ入力される。送信部1705は、秘密通信路103へ情報を送信する。また、秘密通信路103から受け取る情報は、受信部1706へ入力され、受信部1706からの出力が加算部1707へ入力される。加算部1707からの出力が、分散乗算部1503,1601の出力となる。
【0122】
分散乗算部1503,1601は、2つの入力(有限体GF(q)上の値)を受け取る。拡大体GF(q)上の値A=(A,A,…,AL−1)、及び、B=(B,B,…,BL−1)の乗算C=A×Bを分散計算しようとする場合を考える。ここで、A,A,…,AL−1,B,B,…,BL−1は、有限体GF(q)上の値である。このとき、分散乗算部1503,1601への入力は、値A及びBの(メンバIDがm(i=1,2,…,n)であるメンバの保持する)分散情報a及びbである。分散情報a及びbは、有限体GF(q)上の値である。以降、分散乗算部1503,1601は、メンバIDがm(i=1,2,…,n)であるメンバの分散計算部1005−iに含まれるものとして説明する。乗算部1701は、分散乗算部1503,1601への入力である分散情報a及びbを受け取り、それらの乗算c'=a×b(有限体GF(q)上の乗算)を行い、乗算結果c'を、分散情報計算部1703へ出力する。
【0123】
紛失通信計算部1702は、分散乗算部1503,1601への入力a及びbを受け取り、メンバIDがmp(p=1,2,…,nであり、p≠iであるもの)である他のメンバの紛失通信計算部1702への入力値との乗算、すなわち、a×b及びa×bの結果に相当するもの(乗算結果そのものではない)が得られるように通信及び計算処理をする。すなわち、
×b=di,p,+dp,i …(45)
×b=ei,p,+ep,i …(46)
となるような、di,p及びei,pをメンバIDがmであるメンバが保持することができ、dp,i及びep,iをメンバIDがmであるメンバが、それぞれ保持することができるように、計算及び通信を行う。紛失通信計算部1702は、それぞれn−1個の値di,p(p=1,2,…nであり、p≠iであるもの)及びei,p(p=1,2,…nであり、p≠iであるもの)を算出し、分散情報計算部1703へ出力する。
【0124】
分散情報計算部1703は、乗算部1701からの出力c'と、紛失通信計算部1702からの出力di,p(p=1,2,…,nであり、p≠iであるもの)及びei,p(p=1,2,…,nであり、p≠iであるもの)を受け取り、それらを用いて、まず、次式(47)により、値Gu,v(u=1,2,…,L−1;v=1,2,…,L−1)を計算する。
【0125】
【数28】
Figure 0004300838
【0126】
ただし、上記式(47)において、ru,i(u=0,1,…,L−1)は、上記式(28)で表される、メンバIDから計算される係数である。
【0127】
次に、次式(48)のような2L−1個の値E'i,0,E'i,1,…,E'i,2(L−1)を計算する。
【数29】
Figure 0004300838
【0128】
次に、次式(49)により、分散情報計算部1703からの出力E=(Ei,0,Ei,1,…,Ei,L−1)を計算する。
【数30】
Figure 0004300838
【0129】
ただし、gj,h(j=0,1,…,L−1; h=0,1,…,L−1)は、上記式(37)で表される、拡大体GF(q)の生成多項式g(x)の係数から計算される値である。分散情報計算部1703からの出力E=(Ei,0,Ei,1,…,Ei,L−1)は、秘密分散計算部1704へ入力される。
【0130】
例えば、L=2、g(x)=x+x+1の場合には、出力E=(Ei,0,Ei,1)は、次式(50)により、計算される。
【数31】
Figure 0004300838
【0131】
第3の実施形態における秘密分散計算部1704、送信部1705、受信部1706、及び、加算部1707は、分散定数乗算部1101(第2の実施形態)の秘密分散計算部1202、送信部1203、受信部1204、及び、加算部1205とそれぞれ同様なものである。
【0132】
秘密分散計算部1704からの出力Fi,i(秘密分散計算部1704へ入力されるE=(Ei,0,Ei,1,…,Ei,L−1)の自分自身への分散情報)は、加算部1707へ出力され、さらに、秘密分散計算部1704からの出力Fi,p(秘密分散計算部1704へ入力されるE=(Ei,0,Ei,1,…,Ei,L−1)のメンバIDがm(p=1,2,…,nであり、p≠iであるもの)であるメンバへの分散情報)は送信部1705へ出力される。
【0133】
送信部1705は、秘密分散計算部1704からの出力を秘密通信路103を通して他のメンバの受信部1706へ送信する。また、受信部1706は、他のメンバの送信部1705から出力Fp,i(p=1,2,…,nであり、p≠iであるもの)を秘密通信路103を通して受信し、その受信した値を加算部1707へ出力する。加算部1707は、秘密分散計算部1704からの出力Fi,i、及び、受信部1706からの出力Fp,i(p=1,2,…,nであり、p≠iであるもの)を受け取り、それらの加算を行い、その計算結果cを出力する。加算部1707からの出力が、分散乗算部1503,1601からの出力となる。送信部1705及び受信部1706は、他のメンバの分散処理部101−pとの送受信する機能を持っており、分散処理部101−iにおける送信部1003−i及び受信部1004−iと共通化した構成にしてもよい。
【0134】
図19は、図18の紛失通信計算部1702の構成を示すブロック図である。図19を用いて、紛失通信計算部1702の構成を説明する。紛失通信計算部1702は、メンバIDがm(i=1,2,…,n)であるメンバの分散計算部1005−iに含まれるものとして説明する。
【0135】
図19に示されるように、紛失通信計算部1702は、i−1個の通信計算受信部1801−p(p=1,2,…,i−1)と、i−1個の通信計算受信部1802−p(p=1,2,…,i−1)、n−i個の通信計算送信部1803−p(p=i+1,i+2,…,n)と、n−i個の通信計算送信部1804−p(p=i+1,i+2,…,n)とを有する。紛失通信計算部1702へ入力される2つの入力のうち、一つは、通信算受信部1801−p(p=1,2,…,i−1)及び通信計算送信部1803−p(p=i+1,i+2,…,n)へ、他の一つは、通信計算受信部1802−p(p=1,2,…,i−1)及び通信算送信部1804−p(p=i+1,i+2,…,n)へ入力される。通信計算受信部1801−p,1802−p(p=1,2,…,i−1)、及び、通信計算送信部1803−p,1804−p(p=i+1,i+2,…,n)からの出力が、紛失通信計算部1702からの出力となる。通信計算受信部1801−p,1802−p(p=1,2,…,i−1)、及び通信計算送信部1803−p,1804−p(p=i+1,i+2,…,n)は、秘密通信路103を通して、他のメンバとの情報のやりとりを行うことにより、前述の通り、メンバIDがm(p=1,2,…,nであり、p≠iであるもの)である他のメンバの値との乗算、すなわち、a×b及びa×bの結果に相当するもの(乗算結果そのものではない)が得られるようにするが、他のメンバの値a及びbが分からないように、また、自分の値a及びbが、他のメンバに分からないように、紛失通信というものを行う。前述した通り、紛失通信とは、送信側が、M個の情報を符号化(暗号化)して送信するが、受信側においては、そのうち一つしか受け取る(意味のあるように復号が可能となる)ことができず、また、送信側においては、受信側がどの情報を受け取った(意味のあるように復号が可能となった)かを知ることができない通信方法をいうことにする。この実施形態においては、法qのもとでの離散対数を計算することが困難であることを利用して、紛失通信を構成する。
【0136】
通信計算受信部1801−p,1802−p(p=1,2,…,i−1)、及び、通信計算送信部1803−p,1804−p(p=i+1,i+2,…,n)は、iの値によって、通信計算受信部又は通信計算送信部を持たなかったりする。例えば、i=1の場合には、通信計算受信部を持たず、2×(n−1)個の通信計算送信部を持つ。また、i=nの場合には、通信計算送信部を持たず、2×(n−1)個の通信計算受信部を持つことになる。また、他のメンバとの送受信の関係は、メンバIDがmであるメンバの通信計算送信部1803−p,1804−p(p=i+1,i+2,…,n)からは、それぞれ、秘密通信路103を通して、メンバIDがmであるメンバの通信計算受信部1801−i,1802−iのそれぞれへ情報が渡される。図20及び図21で詳細を説明する。
【0137】
図20は、図19の通信計算受信部1801−p,1802−p(p=1,2,…,i−1)の構成を示すブロック図である。図20を用いて、通信計算受信部1801−p,1802−p(p=1,2,…,i−1)の構成を説明する。図20に示されるように、通信計算受信部1801−p,1802−p(p=1,2,…,i−1)は、インデックス計算送信部1901と、受信復元部1902とを有する。通信計算受信部1801−pは、紛失通信計算部1702への2つの入力のうち一つの入力を受け取り、通信計算受信部1802−pは、他の一つの入力を受け取る。ここでは、通信計算受信部1801−pへの入力をaとし、通信計算受信部1802−pへの入力をbとする。通信計算受信部1801−pと1802−pは、内部的に同じ構造なので、ここでは、通信計算受信部1801−pについて説明し、通信算受信部1802−pに相当する説明は、括弧〔 〕内に記述する。通信計算受信部1801−p 〔1802−p〕 への入力は、インデックス計算送信部1901へ入力される。インデックス計算送信部1901からの出力は、受信復元部1902へ入力される。受信復元部1902からの出力が通信計算受信部1801−p 〔1802−p〕 からの出力となる。
【0138】
インデックス計算送信部1901は、通信計算受信部1801−p 〔1802−p〕 への入力a 〔b〕 を受け取り、次式(51)で示す計算を施して、a'i,p 〔b'i,p〕 を計算し、秘密通信路103を通して、メンバIDがmであるメンバへ送信する(p=1,2,…,i−1)。
【数32】
Figure 0004300838
【0139】
上記式(51)において、h及びgは、有限体GF(q)の2つの生成元とし、rAi,p 〔rBi,p〕 は、乱数として有限体GF(q)上の値を選ぶ。また、インデックス計算送信部1901は、上記式(51)で用いた乱数rAi,p 〔rBi,p〕 を受信復元部1902へ出力する。
【0140】
受信復元部1902は、メンバIDがm(p=1,2,…,i−1)であるメンバからq個(qは有限体GF(q)の要素数)の情報を受け取り、a番目の情報d'i,p 〔b番目の情報e'i,p〕 を、次式(52)で計算することにより、目的とする値di,p 〔ei,p〕 を計算する。受信復元部1902は、それ以外の受け取った情報は、メンバIDがmであるメンバにとっては、乱数に見える。
【0141】
【数33】
Figure 0004300838
【0142】
値d'i,p 〔e'i,p〕 は、2つの情報d'1,i,p及びd'2,i,p〔e'1,j,p及びe'2,i,p〕 から成っているものとする。計算される値di,p 〔ei,p〕 が、受信復元部1902の出力となり、通信計算受信部1801−p 〔1802−p〕 からの出力となる。
【0143】
図21は、図19の通信計算送信部1803−p,1804−p(p=i+1,i+2,…,n)の構成を示すブロック図である。図21を用いて、通信計算送信部1803−p,1804−pの構成を説明する。図21に示されるように、通信計算送信部1803−p,1804−p(p=i+1,i+2,…,n)は、乱数生成部2001と、有限体要素生成部2002と、乗数計算送信部2003−a(a=1,2,…,q)とを有する。
【0144】
通信計算送信部1803−p,1804−p(p=i+1,i+2,…,t)への入力は、乱数生成部2001及び有限体要素生成部2002からの出力とともに、乗数計算送信部2003−a(a=1,2,…,q)へ入力される。乱数生成部2001からの出力が、通信計算送信部1803−p,1804−p(p=i+1,i+2,…,n)からの出力となる。通信計算送信部1803−pは、紛失通信計算部1702の2つの入力のうち一つの入力を受け取り、通信計算送信部1804−pは、他の一つの入力を受け取る。ここでは、通信計算送信部1803−pへの入力をa、通信計算送信部1804−pへの入力をbとおく。通信計算送信部1803−p,1804−pは、内部的に同じ構造なので、ここでは、通信計算送信部1803−pについて説明し、通信計算送信部1804−pに相当する説明は、括弧〔 〕内に記述する。
【0145】
図21に示される乱数生成部2001は、有限体GF(q)上の値の乱数を生成して出力する。乗数計算送信部2003−a(a=1,2,…,q)へは、同じ乱数が出力される。乱数生成部2001からの出力が通信計算送信部1803−p 〔1804−p〕 (p=i+1,i+2,…,n)からの出力となる。
【0146】
図21に示される有限体要素生成部2002は、有限体GF(q)上の値を0,1,…,q−1と、順次生成し、それぞれ、乗数計算送信部2003−a(a=1,2,…,q)へ出力する。すなわち、乗数計算送信部2003−1へは0を、乗数計算送信部2003−2へは1を、乗数計算送信部2003−jへはj−1を、乗数計算送信部2003−qへはq−1を、出力する。
【0147】
図21に示される乗数計算送信部2003−a(a=1,2,…,q)は、通信計算送信部1803−p 〔1804−p〕 (p=i+1,i+2,…,n)から入力される値a 〔b〕 、乱数生成部2001から乱数を、有限体要素生成部2002から対応する有限体要素a−1を、秘密通信路103を通してメンバIDがm(p=i+1,i+2,…,n)であるメンバからの情報(他のメンバの通信計算受信部1801−i 〔1802−i〕 のインデックス計算送信部1901から出力)a'p,i 〔b'p,i〕 を、受け取り、それらの入力から計算をして、計算結果を出力する。乗数計算送信部2003−a(a=1,2,…,q)からの出力、合計q個の出力は、秘密通信103を通して、aの値の小さい順に、メンバIDがm(p=i+1、i+2,…,n)であるメンバへ送信する。今、乱数生成部2001からの出力をdi,p 〔ei,p〕 とする。また、秘密通信路103を通して受信する値を、a'p,i(通信計算送信部1803−pに相当) 〔b'p,i(通信計算送信部1804−pに相当)〕とする。有限体要素生成部2002から乗数計算送信部2003−a(a=1,2,…,q)へは、a−1が入力される。乗数計算送信部2003−a(a=1,2,…,q)は、次式(53)〜(55)の計算を行い、d'p,i,a 〔e'p,i,a〕 をそれぞれ計算し(d'p,i,a〔e'p,i,a〕 は式(52)の説明で述べたように2つの値からなる)、秘密通信路103を通してナンバIDがm(p=i+1,i+2,…,n)であるメンバへ、a=1,2,…,qの順に送信する。
【0148】
【数34】
Figure 0004300838
【0149】
ここで、kA 〔kB(a=1,2,…,q)〕 は、それぞれ、q個の有限体GF(q)上の値の乱数である。これらの出力d'p,i,a又はe'p,i,aを秘密通信路103を通して、メンバIDがm(p=i+1,i+2,…,n)であるメンバの通信計算受信部1801−i 〔通信計算受信部1802−i〕 が受け取ると、受け取ったメンバは、a=a 〔b〕 に相当するa番目の情報d'p,i=d'p,i,a〔e'p,i=e'p,i,a〕 を式(52)で復号することができる(それ以外の受け取った情報は、メンバIDがmであるメンバにとっては、乱数に見える)。
【0150】
図21で示される乱数生成部2001からの出力di,p 〔ei,p〕 が通信計算送信部1803−p 〔1804−p〕 (p=i+1,i+2,…,n)からの出力となる。
【0151】
図18のような構成の分散乗算部1503,1601への入力を分散情報a及びb(ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行うと、それぞれ、拡大体GF(q)上の値A=(A,A,…,AL−1)及びB=(B,B,…,BL−1)になる)とすると、そのとき分散乗算部1503,1601から出力される分散情報cは、メンバでランプ型(L,k,n)しきい値秘密分散法の秘密再構成行うと、
C=A×B …(56)
となる拡大体GF(q)上の値C=(C,C,…,CL−1)となる。ここで、C,C,…,CL−1は、有限体GF(q)上の値である。式(56)は、拡大体GF(q)上の演算(乗算)である。
【0152】
[第3の実施形態の動作]
図22は、第3の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作を示すフローチャートである。第3の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作は、図22に示されるように、上記した第1及び第2の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作と類似している。しかし、第1の実施形態のステップS802(図9)において分散加算のみ、第2の実施形態のステップS1302(図14)においては分散加算と分散定数乗算のみしか行わなかったが、第3の実施形態のステップS2102(図22)おいては、分散乗算をも行う点が相違する。
【0153】
図22を用いて、第3の実施形態の分散計算法を実施する構成(分散計算システム)の動作を説明する。なお、第1及び第2の実施形態と異なるステップS2102のみを説明する。図22に示されるように、ステップS2102においては、各メンバは、自分自身の秘密情報の分散情報、及び、他のメンバから配布された分散情報を用いて、関数fの分散計算を行う。ステップS2102は、図11の分散計算部1005−iにおける動作を示しており、メンバIDがm(i=1,2,…,n)である各メンバは、関数f(X,X,…,X)で指示される通りの分散計算を行う。この関数fは、第1の実施形態においては加算のみ、第2の実施形態においては、加算と定数乗算しか扱わなかったが、第3の実施形態においては、乗算も取り扱う。例えば、
f(X,X,…,X)=(t+t)×X
(t及びtは、拡大体GF(q)上の定数)である場合には、メンバIDがmであるメンバは、配布された結果自分が保持する分散情報YA,i、YB,i、及び、Yc,iから、t及びYA,iを入力とする分散定数乗算計算(分散定数乗算部1101の動作)、t及びYB,iを入力とする分散定数乗算計算(分散定数乗算部1101の動作)を行って、その2つの出力の分散加算(分散加算部501,601の動作)を行い、さらに、その加算結果とYc,iとの分散乗算計算(分散乗算部1503,1601の動作)を行ってZ'を求める。その計算結果Z'は、拡大体GF(q)上の計算結果
Z=f(X,X,…,X)=(t+t)×X
の(ランプ型(L,k,n)秘密分散法で分散された)分散情報となっている。
【0154】
図23は、第3の実施形態における分散乗算における動作を示すフローチャートである。例えば、拡大体GF(q)上の値A=(A,A,…,AL−1)、B=(B、B,…,BL−1)の乗算を行う場合を考える。まず、メンバIDがm(i=1,2,…,n)である各メンバは、自身が保持する値A及びBの分散情報a及びbより、その積c'=a×b、及び、紛失通信を用いて、上記式(45)及び(46)にあるような値di,p及びei,p(p=1,2,…,nであり、p≠iであるもの)を求める(ステップS2201)。ステップS2201は、図18における乗算部1701(値c'を求める)、及び、紛失通信計算部1702(値di,p及びei,p(p=1,2,…,nであり、p≠iであるもの)を求める)における動作を表している。
【0155】
次に、メンバIDがm(i=1,2,…,n)である各メンバは、ステップS2201で計算した値c'及びdi,p,ei,p(p=1,2,…,nであり、p≠iであるもの)から、式(49)を用いて、E=(Ei,0,Ei,1,…,Ei,L−1)を求める(ステップS2202)。ステップS2202は、図18の分散情報計算部1703における動作を示している。
【0156】
次に、メンバIDがm(i=1,2,…,n)である各メンバは、ステップS2202で計算した値E=(Ei,0,Ei,1,…,Ei,L−1)をランプ型(L,k,n)秘密分散法を用いて分散情報Fi,p(p=1,2,…,n)を作り、メンバIDがm(p=1,2,…,nであり、p≠iであるもの)である他のメンバに分散情報Fi,pを配布する(ステップS2203)。ステップS2203は、図18の秘密分散計算部1704及び送信部1705における動作を示している。
【0157】
次に、メンバIDがm(i=1,2,…,n)である各メンバは、ステップS2203の動作により受け取った分散情報Fi,p(p=1,2,…,n)をすべて加算し(上記式(43))、値cを求めて出力する(ステップS2204)。ステップS2204は、図18の受信部1706及び加算部1707における動作を示している。
【0158】
[第3の実施形態の効果]
以上に説明したように、第3の実施形態によれば、第1及び第2の実施形態と同様に、関数f(ただし、関数fは、加算、定数乗算、及び、乗算からなる関数)に対するマルチパーティ・プロトコル(各メンバの保持する秘密情報を公開しないまま、各メンバが分散計算を行うことにより、関数fの計算結果を得るプロトコル)において、関数fにおける拡大体GF(q)上の計算を、各メンバの分散演算処理においては、その拡大体よりも小さな有限体GF(q)上の計算のみを行うことで、達成することができる。このため、メンバそれぞれの分散演算処理における、演算量、演算回路に必要な回路規模、演算に必要な記憶容量、演算時間等の演算コストを削減することができる。
【0159】
また、第1及び第2の実施形態とは異なり、第3の実施形態においては、分散加算計算、分散定数乗算計算だけでなく、分散乗算計算も可能となる。
【0160】
なお、第1〜第3の実施形態においての「メンバ」は、必ずしも1人の人間である必要はなく、秘密情報を保持し、計算手段(分散秘密再構成計算部)を構成要素として持つ装置とすることもできる。すなわち、1人の人間が、上記装置を複数個持って処理を進めることができる。この場合には、1人の人間が、複数のメンバとなる。また、1台の上記装置を複数の人間が管理して処理を進めることもできる。この場合は、複数の人間が、1人のメンバとなる。
【0161】
≪第4の実施形態≫
第1〜3の実施形態において、各メンバにおける分散計算部305−i、又は、1005−iにおける分散計算に用いる分散情報は、必ずしもメンバの保有する秘密Xの分散情報でなくとも分散計算は可能である。すなわち、外部(センタのようなものを仮定してもよい)から、ランプ型(L,k,n)しきい値秘密分散法で分散された分散情報を、目的とする関数fの計算に必要な分だけいくつか(メンバの数nよりも多くてもよい)与えられ、それを用いて分散計算するような分散処理部を構成することが可能である。そのような分散処理部を用いた分散計算方法を実施する構成(分散計算システム)の構成を図24に示し、その分散処理部(分散計算装置)の構成を図25(a)及び(b)に示す。
【0162】
図24に示されるように、第4の実施形態の秘密計算方法を実施する構成(分散計算システム)は、秘密分散送信部2301と、n個の分散処理部2302−i(i=1,2,…,n)と、秘密再構成計算部2303とを有する。
【0163】
秘密分散送信部2301は、関数fへ入力する拡大体GF(q)上の値の、ランプ型(L,k,n)しきい値秘密分散法で分散した分散情報を求め、各分散処理部2302−i(i=1,2,…,n)へ出力する。例えば、D=f(A,B,C)(A,B,C,Dは、拡大体GF(q)上の値)を分散計算させる場合には、秘密分散送信部2301は、A,B,Cをランプ型(L,k,n)しきい値秘密分散法で分散し、その分散情報a,b,c(i=1,2,…,n)を、各分散処理部2302−iへ出力する。
【0164】
図25(a)及び(b)に示されるように、各分散処理部2302−iは、秘密分散送信部2301からの出力を受信する分散情報受信部2406−iを持ち、その分散情報受信部2406−iで受信した分散情報を分散計算部2405−iへ出力する。
【0165】
分散計算部2405−iは、所望の関数fに、定数乗算及び乗算が含まれている場合には、他の分散処理部2302−iと秘密通信を行う秘密通信路103が備わっており、分散情報受信部2406−iから受け取った値、及び、受信部2404−iから受け取った値(図25(a)の場合)を用いて、関数fの分散計算を行う。分散計算部2405−iの構成は、第1〜第3の実施形態のものと同様であり、分散計算結果を出力する。この分散計算部2405−iからの出力は、秘密再構成計算部2303へ入力される。秘密情報記憶部2401−i、秘密分散計算部2402−i、送信部2403−i、及び、受信部2404−iは、第1〜第3の実施形態のものと同様である。また、分散情報受信部2406−iは、受信部2404−iと同等な機能を持つため、分散情報受信部2406−iの機能を受信部2404−iに持たせ、受信機能を一つのみ持つ構成とすることも可能である。
【0166】
図24に示される秘密再構成計算部2303は、第1〜第3の実施形態の秘密再構成計算部と同様なものであり、最終的な関数fの計算結果を出力する。第1〜第3の実施形態のものと同様に、秘密再構成計算部2303における処理は、処理を統合するセンターのようなものが行ってもよいし、集まったメンバのうち、だれか1人、又は、複数人で行ってもよい。ただし、計算結果Zを必要としているメンバが行うのが望ましい。また、最終的な秘密再構成の処理(秘密再構成計算部2303の動作)は、誰か1以上の複数のメンバの分散処理部が行ってもよいので、そのような構成の分散処理部の構成を、図26及び図27(a)及び(b)に示す。これは、第1〜第3の実施形態の分散処理部、及び、図25(a)及び(b)に示す分散処理部に、秘密再構成計算部が追加された形になる。図26及び図27(a)及び(b)の構成においては、分散処理部自身で最終的な計算結果Zを再構成することができるので、分散計算部2505−iからの出力Z'は、必要に応じて、分散処理部から外への出力として、出力するか否かを選択することができる。そのため、図26及び図27(a)及び(b)においては、分散計算部2505−iからの出力を、破線の矢印で描いている。図26及び図27(a)及び(b)の構成を持つ分散処理部が1以上の複数個含まれていれば、図1及び図24の構成を持つ分散計算システムにおける、秘密再構成計算部102及び2303を備えなくても、最終の計算結果Zを得ることが可能となる。
【0167】
また、第2の実施形態において、図13の拡大体乗算部1201の構成の説明において、式(35)でE'i,0,E'i,1,…,E'i,2(L−1)を計算した後、式(38)のE=(Ei,0,Ei,1,…,Ei,L−1)を計算するようにしていたが、L=2等の例を挙げている通り、式(40)のように、E'i,0,E'i,1,…,E'i,2(L−1)を求めずに、直接E=(Ei,0,Ei,1,…,Ei,L−1)を求めるようにしてもよい。
【0168】
また、同様に、第3の実施形態において、図18の分散情報計算部1703の構成の説明で、式(47)でGu,v(u=0,1,2,…,L−1; v=0,1,2,…,L−1)、さらに、式(48)でE'i,0,E'i,1,…,E'i,2(L−1)を計算した後、式(49)のE=(Ei,0、Ei,1,…,Ei,L−1)を計算するようにしていたが、L=2の例を挙げている通り、式(50)のようにGu,v(u=0,1,2,…,L−1; v=0,1,2,…,L−1)、及び、E'i,0,E'i,1,…,E'i,2(L−1)を求めずに、直接E=(Ei,0,Ei,1,…,Ei,L−1)を求めるようにしてもよい。
【0169】
第3の実施形態における、紛失通信計算部1702において、▲1▼通信計算受信部1801−p(p=1,2,…,i−1)を通信計算送信部に置き換え、さらに、通信計算送信部1803−p(p=i+1,i+2,…,n)を通信計算受信部に置き換えた構成、又は、▲2▼通信計算受信部1802−p(p=1,2,…,i−1)を通信計算送信部に置き換え、さらに、通信計算送信部1804−p(p=i+1,i+2,…,n)を通信計算受信部に置き換えた構成、又は、▲3▼通信計算受信部をすべて通信計算送信部に、さらに、通信計算送信部をすべて通信計算受信部に置き換えた構成、などの構成でも、同じ動作や効果を得ることができる。
【0170】
第3の実施形態における、紛失通信計算部1702において、通信計算送信部1801−p(又は1802−p)と通信計算受信部1803−j(又は1804−j)との間の秘密通信路103における情報のやり取りは、式(51)や式(53)〜(55)のように、暗号化されたような情報、すなわち、法qのもとにおける離散対数を計算することが困難であること利用して送りたい情報を隠蔽している情報なので、とくに秘密に通信しなくても、メンバの秘密情報や分散計算の途中結果などが露呈されることはない。式(51)においては、送りたい情報a(又はb)を有限体GF(q)の生成元hのべき数として隠蔽し、式(53)〜(55)で得られる情報から得るべき必要な情報a(a−1)−di,p(又はb(a−1)−ei,p)は、式(51)で用いた乱数rAp,i(又はrBp,i)を知らないと算出できないようになっている。したがって、上記における通信においては、秘密通信路ではなく、放送型の通信路や盗聴される可能性のある通信路で通信してもよい。
【0171】
≪第5の実施形態≫
本発明の第5〜第7の実施形態に係る分散計算においては、第1〜第4の実施形態と同様に、従来用いられている(k,n)しきい値秘密分散法に代えて、ランプ型秘密分散法(すなわち、ランプ型(L,k,n)しきい値秘密分散法)を用いる。以下の説明においては、秘密情報や乱数などの変数はすべてある有限体GF(q)上の元であるとする。第1〜第4の実施形態では、しきい値kと分散情報の個数nとの間にはk≦nと言う関係が成り立っていたが、第5〜第7の実施形態では、2k−1≦nという関係が成り立っているものとする。
【0172】
第1〜第4の実施形態においては、式(19)のようなk−1次多項式を利用して分散情報を計算していたが、第5〜第7の実施形態においては、次式(57)のような(k−1)次多項式を利用して分散情報を計算する。
【数35】
Figure 0004300838
【0173】
ここで、S,S,…,SL−1はそれぞれ、秘密情報であり、R,…,Rk−L−1はそれぞれ、ランダムな値である。また、g(x)は、L次の既約多項式であり、第1〜第4の実施形態における、式(36)の生成多項式g(x)に相当するものである。この既約多項式は予め与えられるものとする。メンバID(すなわち、ID情報)wをもっているメンバ(すなわち、参加者)に渡す分散情報はf(w)となる。各メンバが持っているメンバID_wは公開されているものとする。第1〜第4の実施形態では、メンバIDをm(i=1,2,…,n)と表記していたが、第5〜第7の実施形態では、メンバIDをw(i=0,1,…,n−1)と表記し、メンバIDがwであるメンバのことを、メンバPと呼ぶことにする。
【0174】
第5〜第7の実施形態においては、秘密情報(S,…,SL−1)を既約多項式g(x)を利用して有限体GF(q)のL次拡大体GF(q)の値として扱う。つまり、方程式g(x)=0の解をαとしたときに、
S=SL−1αL−1+…+Sα+S
と表す。これより、秘密情報に関する計算は、有限体GF(q)上の演算で表すことができ、これはg(x)を法とする多項式の加算や乗算で実現することができる。
【0175】
メンバIDがwであるメンバP(i=0,…,n−1)に、それぞれf(w)を分散情報として渡す。このときの分散情報のサイズは、秘密情報の1/Lとなっている。秘密情報の復元は、(k,n)しきい値法と同様に、多項式を復元し、さらにその後、mod g(x)を計算する。
【0176】
[第5の実施形態の構成]
以下、第5の実施形態においてはランプ型秘密分散を利用した分散計算について説明する。特に、分散計算の具体例として、分散加算を行うものとする。この点から、第5の実施形態は、上記第1の実施形態と類似した内容となるが、分散情報の生成方法が異なる。
【0177】
第5の実施形態は、秘密分散及び秘密復元(再構成)、また分散計算を行うシステムについて説明する。特に、分散計算の具体例として、分散加算を行うものとする。以下、分散計算において、秘密情報をA=(A,…,AL−1)及びB=(B,…,BL−1)とする。そして、メンバIDがwであるメンバがもつ分散情報は、次式(58)を用いて、それぞれa(w)及びb(w)とする。
【数36】
Figure 0004300838
【0178】
このとき、分散情報の和を表す多項式は次式(59)のようになる。
【数37】
Figure 0004300838
【0179】
これより、次式(60)が得られる。
【数38】
Figure 0004300838
【0180】
この式に、x=αを代入すると、右辺は拡大体GF(q)における加算を表している。したがって、
=a(w)+b(w
は秘密情報A及びBの和である値C(=A+B)の分散情報を表している。したがって、分散加算においては、メンバPは、持っている分散情報の和を計算すればよい。
【0181】
第5の実施形態に係る分散計算システムの構成は、図1、又は、図24にある、第1〜第4の実施形態に係る分散計算システムと同様なものになる。第5の実施形態は、第1〜第4の実施形態とは、分散情報を生成するランプ型秘密分散法が異なることから、それぞれの構成要素、秘密分散送信部2301、分散処理部101,2302、及び秘密再構成計算部102,2303の内部の構成や動作が異なる。図28は、第5の実施形態に係る分散計算装置(図1、図24の分散計算処理部101,2302に相当する)の構成を示すブロック図である。図28に示されるように、第5の実施形態に係る分散計算装置は、秘密分散部分3001と、分散計算部分3002と、秘密復元部分3003と、秘密通信路103とを有する。図28に示される秘密分散部分3001は、秘密分散部3101と、送信部3102とを有する。また、図28に示される分散計算部分3002は、受信部3103と、記憶部3104と、分散計算部3105と、送信部3106とを有する。さらに、図28に示される秘密復元部分3003は、受信部3107と、秘密復元部3108とを有する。分散計算装置は、秘密分散部分3001、分散計算部分3002、及び、秘密復元部分3003のうち、いずれか1つ又は2つしか持たない場合もありうる(後の図31〜図33で説明する)。
【0182】
秘密分散部3101は、秘密情報についてランプ型秘密分散を実行して分散情報を計算する。送信部3102は、他のメンバとそれぞれ秘密通信路103でつながっており、一対一の秘密通信を行う。そして、計算結果を他のメンバに配布する。その結果、各メンバは分散情報を得る。
【0183】
受信部3103は、他のメンバ若しくはメンバとは別に設けられたセンターから上記分散情報を受け取る。この結果、メンバは分散情報を保持する。記憶部3104は、秘密分散で得られた分散情報及び分散計算の結果を保持する。分散計算部3105は、記憶部3104で保持されている分散情報について計算を行う。そして、秘密情報についての任意の演算結果の分散情報を得る。
【0184】
第5の実施形態においては、分散計算部3105は、秘密情報の和の分散情報を求める場合について示す。一般に、分散計算部3105は、第5の実施形態で示す分散加算、後述する第6の実施形態で示す分散乗算、及び、後述する第7の実施形態で示す分散定数乗算の組み合わせで構成される。送信部3106は、分散計算の結果を配布する。ここで、送信部3106についても、秘密通信路103を介して、分散情報の配布を行う。ここで、受信部3103、記憶部3104、分散計算部3105、送信部3106は、各メンバが持っている。
【0185】
受信部3107は、他のメンバから分散計算結果を受け取る。秘密復元部3108は、全てのメンバから受け取った分散情報を用いて秘密情報の復元(再構成)をする。送信部3102と送信部3106、及び受信部3103と受信部3107は、メンバが同時に持つ際は、共通化した構成にしてもよい。
【0186】
図29は、図28の秘密分散部3101の構成を示すブロック図である。図29に示されるように、秘密分散部3101は、乱数生成部3111と、有限体演算部3112とを有する。乱数生成部3101は、秘密分散計算を行う際に利用する乱数を生成する。有限体演算部3112は、秘密情報、メンバのメンバID、上記生成された乱数、及び既約多項式から分散情報を生成する。
【0187】
図30は、図28の秘密復元部3108の構成を示すブロック図である。図30に示されるように、秘密復元部3108は、復元情報生成部3121と、有限体演算部3122とを有する。復元情報生成部3121は、メンバID及び既約多項式から秘密復元に利用する情報を生成する。有限体演算部3122は、上記生成した情報及び分散情報から秘密情報の復元計算を行う。
【0188】
図28に示される秘密分散部分3001は、秘密分散を行う部分である。図28に示される分散計算部分3002は、分散情報を受け取って、分散計算を実行する部分である。図28に示される秘密復元部分3003は、最後に、分散計算結果を集めて、もとの秘密情報の計算結果を復元する部分である。図28に示される秘密分散部分3001である秘密分散部3101及び送信部3102は、各メンバが持っていてもよいし、メンバとは独立したセンターが持っていてもよい。図28に示される秘密復元部分3003である受信部3107及び秘密復元部3108は、少なくとも1人のメンバが持っていてもよいし、メンバとは独立したセンターが行ってもよい。
【0189】
以下、メンバが保持する秘密情報について分散計算を行い、計算結果をメンバが得る場合についての分散計算システムの構成を図31に示す。「参加者」で示しているブロックが、各メンバの分散計算装置であり、図では2つしか描かれていないが、実際にはn個存在する。各参加者はそれぞれ、秘密分散部分3001、分散計算部分3002、及び、秘密復元部分3003を有している。また、メンバが保持する秘密情報についての分散計算を行い、センターが計算結果を得る場合についての分散計算システムの構成を図32に示す。図32は、図1の分散計算システムと同様な構成図である。「参加者」で示しているブロックが、各メンバの分散計算装置であり、図では2つしか描かれていないが、実際にはn個存在する。また、「センター」で示しているブロックが、最終的に計算結果を復元する部分であり、図1の秘密再構成計算部102に相当する部分である。各参加者はそれぞれ、秘密分散部分3001、及び、分散計算部分3002を有している。また、センターが持っている秘密情報についての分散計算を行い、センターが計算結果を得る場合についての分散計算システムの構成を図33に示す。図33は、図24の分散計算システムと同様な構成図である。「参加者」で示しているブロックは、各メンバの分散計算装置であり、図では2つしか描かれていないが、実際にはn個存在する。また、上部の「センター」で示しているブロック(秘密分散部3101、及び、送信部3102からなる部分)は、秘密情報を分散する部分であり、図24の秘密分散送信部2301に相当する部分である。また、下部の「センター」で示しているブロック(秘密復元部3108、及び、受信部3107からなる部分)は、最終的に計算結果を復元する部分であり、図24の秘密再構成計算部2303に相当する部分である。各参加者はそれぞれ、分散計算部分3002を有している。
【0190】
[第5の実施形態の動作]
第5の実施形態においては、ランプ型秘密分散法を利用した分散計算について手順を示す。分散計算の具体例として、各メンバが保持する秘密情報から秘密分散を行って分散情報を得て、分散情報から元の秘密情報の和を求める手順を示す。
【0191】
最初に秘密分散における動作を示す。秘密情報をS=(S,S,…,SL−1)とする。秘密情報S=(S,S,…,SL−1)及びランダムに生成した値R,…,Rk−L−1と、次式(61)
【数39】
Figure 0004300838
のような多項式を用いて、次式(62)に示される、メンバP向けの分散情報sを生成する。
【数40】
Figure 0004300838
【0192】
この計算は、次のようなn×n行列
E=(eij
ij=w (i=0,…,n−1; j=0,…,n−1)
を用いて、
(s,…,sn−1
=E(f,f,…,fk−1,0,…,0)
のように表すことができる。そして、分散情報sをメンバPに渡す。
【0193】
秘密復元のために集まった分散情報をt個(t≧k)とする。まず、秘密復元の各メンバP'から分散情報s'及び各メンバのメンバID w'(j=0,…,t−1)を受け取っておく。そして、次式(63)の連立方程式から、多項式の係数f,f,…,fk−1を求める。
s'=fk−1w' k−1+…+fw'+f …(63)
ここで、j=0,…,t−1である。
【0194】
そして、得られた多項式について、既約多項式g(x)による剰余(次式(64)を計算する。
【数41】
Figure 0004300838
得られた多項式の係数が復元された秘密情報にあたる。
【0195】
この計算は、以下に示すような行列を利用した計算と等価である。既約多項式g(x)を法とする多項式の剰余算を表す行列をGとしておく。そして、メンバのメンバID_w'から、t×t行列
E'=(e'ij
e'ij=w' (i=0,…,t−1; j=0,…,t−1)を生成する。行列G、及び、行列E'の逆行列E'−1より、行列R=GE'−1=(rij)を計算する。このようにして得られたrijを用いて、次式(65)の計算を実行する。
【数42】
Figure 0004300838
その結果得られるS,…,SL−1が復元された秘密情報である。
【0196】
ここで、行列Gの生成方法について説明する。行列Gは、(t−1)次多項式h(x)=ht−1t−1+…+hx+h
を既約多項式
g(x)=x+…+gx+g
で割った余りである、次式(66)
【数43】
Figure 0004300838
より、次式(67)のようにして行列Gを得る。
【0197】
【数44】
Figure 0004300838
【0198】
例えば、GF(31)、t=16、既約多項式g(x)=x+x+3の場合において、行列Gを計算した結果は以下のようになる。15次多項式(式(68)を以下のように定義する。
【数45】
Figure 0004300838
【0199】
既約多項式g(x)を法とした剰余算の結果は次式(69)のようになる。
【数46】
Figure 0004300838
【0200】
これより、行列Gは次式(70)のようになる。
【数47】
Figure 0004300838
【0201】
次に、分散計算における動作を説明する。第5の実施形態においては具体例として分散加算について説明する。メンバPは秘密情報A及びBの分散情報a及びbを持っているものとする。分散加算においては、各メンバが保持する分散情報の和を計算すればよい。つまり、各メンバが保持する秘密情報の和A+Bの分散情報を求めるためには、メンバPは分散情報の和a+bを計算すればよい。
【0202】
[第5の実施形態の効果]
以上に説明したように、各メンバの行う演算は、もとの秘密情報が定義される有限体(上記説明においてはL次拡大体)より小さな有限体で行うことができる。これより、各メンバはより少ない計算資源で秘密情報に関する加算を実行することが可能となる。
【0203】
≪第6の実施形態≫
本発明の第6の実施形態においては、具体例として分散乗算散について説明する。秘密情報をA=(A,…,AL−1)及びB=(B,…,BL−1)とする。分散情報は以下の多項式(式(71))から計算する。
【数48】
Figure 0004300838
【0204】
このとき、分散情報の積を表す多項式は次式(72)のようになる。
【数49】
Figure 0004300838
【0205】
これより、次式(73)が成り立つ。
【数50】
Figure 0004300838
【0206】
これに、x=αを代入すると、これは拡大体GF(q)上における乗算となっている。したがって、a(w)b(w)は、2(k−1)次多項式による値ABの分散情報を表している。ただし、従来と同様に、秘密情報を変えないように、多項式の次数を下げる変換操作(BPB−1)C=Dが必要となる(従来技術の説明の分散乗算(方式▲2▼)におけるステップS203の処理に相当し、C=(a(w)b(w),a(w)b(w),…,a(wn−1)b(wn−1))である)。従来のShamir法による(k,n)しきい値秘密分散法においては、秘密情報は多項式の定数項であった。したがって、行列Pは単にk次以上の項の係数を0とする演算(式(80)を満たす行列P)でよい。
P(x、x、…、x
=(x、x、…、x、0、…、0) …(80)
【0207】
一方、ランプ型秘密分散法においては、秘密情報は式(61)の多項式f(x)の
L−1L−1+…+Sx+S
の部分、つまりg(x)で割った余りである。これより、行列Pは、mod g(x)において合同となるように多項式の次数を2(k−1)次から(k−1)次に下げる演算とすればよい。
【0208】
[第6の実施形態の構成]
第6の実施形態においては、第5の実施形態における分散計算について、秘密情報の積を計算する分散乗算を実現する装置について示す。しかし、同じように秘密情報の積を計算する分散乗算を実現する第3の実施形態とは、分散情報の生成方法が異なる(第3の実施形態では、式(19)にあるようなk−1次多項式から分散情報を生成し、第6の実施形態では、式(57)にあるようなk−1次多項式から分散情報を生成する)ことから、構成や動作は、全く異なったものとなっている。第6の実施形態においては、ある秘密情報A,Bについての分散情報(a,…,an−1),(b,…,bn−1)が与えられており、分散情報(a,…,an−1),(b,…,bn−1)から秘密情報の積D(=AB)の分散情報(d,…,dn−1)を計算する。
【0209】
図34は、分散乗算を行う場合における、分散計算部の構成を示すブロック図である。図34に示されるように、分散乗算計算部3200は、乗算部3201と、秘密分散処理部3202と、分散情報変換部3203と、秘密復元処理部3204とを有する。乗算部3201においては、メンバが保持する分散情報の積を計算する。秘密分散処理部3202においては、乗算部で計算した値について秘密分散を行う。ここでは、ランプ型秘密分散法ではなく、(k,n)しきい値秘密分散を用いて分散情報を生成する(このときのしきい値は、秘密分散部3101におけるランプ型(L,k,n)秘密分散法におけるしきい値kとは異なる値k'(k'≦n)でもよい)。分散情報変換部3203においては、秘密分散処理部3202で得られた第2の分散情報について、変換を行う。秘密復元処理部3204においては、分散情報変換部3203で計算した結果について秘密復元処理を行う。乗算結果を他のメンバと交換し、その結果得られた分散情報を復元する。ここでは、秘密分散処理部3202と同様に、(k,n)しきい値法を用いて秘密復元の計算を行う(このときのしきい値は、秘密分散処理部3202におけるしきい値と同じ値を用いる)。
【0210】
[第6の実施形態の動作]
第6の実施形態においては、分散計算によって、秘密情報A,Bの分散情報a(i=0,…,n−1)及びb(i=0,…,n−1)から、秘密情報の積ABの分散情報を計算する手順を示す。分散乗算においては、各メンバの保持する分散情報の積を変換しなければならない。そして、変換の際にはメンバ間で分散情報に関するやり取りが必要である。
【0211】
処理の手順は図35のようになる。ここで、メンバP(j=0,…,n−1)は、各メンバのメンバID_w(i=0,…,n−1)及び、分散情報a及びbを受け取っているものとする。以下においては、便宜上行列を利用して説明する。
【0212】
図35に示されるように、ステップ1において、メンバPは分散情報の積c=aを計算する。この分散情報の積cは秘密情報A及びBの積ABの分散情報となるが、秘密分散を行う多項式の次数が2(k−1)であり、都合が悪い。そこで、以下のステップにおいては、秘密分散、配布(ステップ2、3)、変換処理(ステップ4)、計算結果の分散情報の交換、及び、計算結果の復元(ステップ5、6)の処理を行うことによって、得られた分散情報を、しきい値がkとなるように変換を行う。
【0213】
ステップ2において、メンバPは分散情報の積cについて秘密分散を行う。ここにおける秘密分散は(k',n)しきい値法(k'≦n)を利用する。メンバPは、分散情報の積c及び乱数からランダムなk'−1次の多項式(式(74))を生成し、分散情報ci,j(j=0,…,n−1)を計算する。
【数51】
Figure 0004300838
ここで、Ri,m(m=1,…,k'−1)はメンバPがランダムに生成する数値である。
【0214】
これは、次のようなn×n行列E=(eij)を用いて、次式(75)のように表すことができる。
【数52】
Figure 0004300838
【0215】
ステップ3において、他のメンバと通信を行って、分散情報ci,jを交換する。メンバPは、上記計算した(ci,0,…,ci,n−1)について、ci,j(j=0,…,n−1であり、j≠iであるもの)を、メンバPに配布する。この結果、メンバPは(c0,j,…,cn−1,j)を受け取る。
【0216】
ステップ4において、PはC=(c0,j,…,cn−1,j)(2(k−1)次多項式由来)を、D=(d0,j,…,dn−1,j)((k−1)次多項式由来)に変換する。変換は、例えば、以下のように生成される行列P及び行列Eを用いた際の、D=(EPE−1)Cと等価な計算である。つまり、EPE−1=(pij)について、dij=Σikkj(i=0,…,n−1)を計算する。
【0217】
ここで、行列Pは、秘密分散における多項式を2(k−1)次から(k−1)次に下げるような変換であり、mod g(x)において合同となるように多項式の次数を下げる演算である。図36に、変換行列Pの生成方法の一例を示す。そして、具体的に、GF(31)、k=8(これは、秘密分散部3101におけるランプ型秘密分散のしきい値である)、n=16、既約多項式g(x)=x+x+3の場合において、行列Pを計算した結果は以下のようになる。14次(2(k−1)次に相当)多項式を次式(76)のように定義する。
【数53】
Figure 0004300838
【0218】
上記演算の結果、7次に次数を下げたmod g(x)において合同な多項式は次式(77)のようになる。
【数54】
Figure 0004300838
【0219】
これより、行列Pは次式(78)のようになる。
【0220】
【数55】
Figure 0004300838
【0221】
ステップ5において、他のメンバと通信を行って、情報di,jを交換する。メンバPは情報di,j(i=0,…,n−1; i≠j)をPに配布する。この結果、メンバPは(di,0,…,di,n−1)を受け取る。
【0222】
ステップ6において、メンバPは秘密復元の計算を行う。メンバPは(di,0,…,di,n−1)から情報A,Bの積ABの分散情報であるdを式(79)により計算する。ここでの復元操作は(k',n)しきい値法における秘密復元を行う。
【数56】
Figure 0004300838
【0223】
以上の計算を行うことで、しきい値がkであるような、秘密情報の積ABの分散情報dを得ることができる。
【0224】
[第6の実施形態の効果]
以上に説明したように、各メンバの行う演算は、もとの秘密情報が定義される有限体(上記説明においてはL次拡大体)より小さな有限体で行うことができる。これより、第5の実施形態の加算に加えて、乗算についても同様に、各メンバはより少ない計算資源で実行することが可能となる。
【0225】
≪第7の実施形態≫
[第7の実施形態の構成]
本発明の第7の実施形態においては、メンバ間で共有している定数Cと、秘密情報Sとの定数倍CSの分散情報を計算する。しかし、同じように秘密情報の定数の積を計算する分散定数乗算を実現する第2の実施形態とは、分散情報の生成方法が異なる(第2の実施形態では、式(19)にあるようなk−1次多項式から分散情報を生成し、第7の実施形態では、式(57)にあるようなk−1次多項式から分散情報を生成する)ことから、構成や動作は、全く異なったものとなっている。(k,n)しきい値法を利用した定数倍については、自分の保持する分散情報を定数倍することで得られるが、本発明においては、定数は拡大体GF(q)の元となりうる。このとき、定数倍の結果の分散情報が基礎体の元となるように分散計算を行う必要がある。
【0226】
第7の実施形態の分散定数乗算を行う場合における、分散計算部の構成を示すブロック図は、図37のようになる。図37において、分散定数算乗算部は、分散乗算装置3200(図34)及び定数情報生成部3301とを有する。定数情報生成部3301は、拡大体GF(q)で定義された、メンバ間で共通の定数とメンバIDから定数の分散情報を生成する。そして、分散乗算装置は、秘密情報Sの分散情報と、上記定数情報生成部3301で生成された定数Cの分散情報との積を分散乗算計算部3200で計算する。
【0227】
[第7の実施形態の動作]
秘密情報Sに対する、メンバPの保持する分散情報をsとする。拡大体GF(q)で表される定数C=(C,…,CL−1)から、以下のようにして情報cを計算する。
=C+C+…+CL−1 L−1
定数Cはメンバ間で共有しているので、メンバPは、自分の持つべき情報cを生成することができる。
【0228】
以下、分散乗算と同様の手順によって、情報cと分散情報sとをもとに、定数乗算CSの分散情報を計算することができる。
【0229】
このとき、次数の変換は(k+L−2)次から(k−1)次への変換となるので、図36における行列Pの生成において、2(k−1)の部分をk+L−2と置き換えた図38のようになる。この分散乗算における行列Pにおける非ゼロ部分をより少なくすることができ、演算量を少なくすることができる。
【0230】
[第7の実施形態の効果]
以上に説明したように、第5及び第6の実施形態の加算及び乗算に加えて、メンバ間で共有している、拡大体GF(q)で表される定数についての定数倍についても同様に、各メンバはより少ない計算資源で実行することが可能となる。
【0231】
【発明の効果】
以上に説明したように、本発明によれば、関数fにおける拡大体GF(q)上の計算を、各メンバの分散演算処理においては、その拡大体GF(q)よりも小さな有限体GF(q)上の計算のみを行うことで、達成することができるので、メンバそれぞれの分散演算処理における、演算量、演算回路に必要な回路規模、演算に必要な記憶容量、演算時間等の演算コストを削減することができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係る分散計算方法を実施する構成(分散計算システム)を示すブロック図である。
【図2】 マルチパーティ・プロトコルの概念説明図である。
【図3】 図1の秘密再構成計算部の構成を示すブロック図である。
【図4】 図1の分散処理部(分散計算装置)の構成を示すブロック図である。
【図5】 図4の秘密分散計算部の構成を示すブロック図である。
【図6】 図4の分散計算部の例(その1)の構成を示すブロック図である。
【図7】 図4の分散計算部の例(その2)の構成を示すブロック図である。
【図8】 図6又は図7の分散加算部の構成を示すブロック図である。
【図9】 本発明の第1の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作を示すフローチャートである。
【図10】 本発明の第1の実施形態おける分散加算の動作を示すフローチャートである。
【図11】 本発明の第2の実施形態に係る分散処理部(分散計算装置)の構成を示すブロック図である。
【図12】 図11の分散計算部の構成を示すブロック図である。
【図13】 図12の分散定数乗算部の構成を示すブロック図である。
【図14】 本発明の第2の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作を示すフローチャートである。
【図15】 本発明の第2の実施形態における分散定数乗算の動作を示すフローチャートである。
【図16】 本発明の第3の実施形態における分散計算部(その1)の構成を示すブロック図である。
【図17】 本発明の第3の実施形態における分散計算部(その2)の構成を示すブロック図である。
【図18】 図16及び図17の分散乗算部の構成を示すブロック図である。
【図19】 図18の紛失通信計算部の構成を示すブロック図である。
【図20】 図19の通信計算受信部の構成を示すブロック図である。
【図21】 図19の通信計算送信部の構成を示すブロック図である。
【図22】 本発明の第3の実施形態に係る分散計算方法を実施する構成(分散計算システム)の動作を示すフローチャートである。
【図23】 本発明の第3の実施形態における分散乗算の動作を示すフローチャートである。
【図24】 本発明の第4の実施形態に係る分散計算方法を実施する構成(分散計算システム)を示すブロック図である。
【図25】 (a)及び(b)のそれぞれは、図24の分散処理部(分散計算装置)の構成を示すブロック図である。
【図26】 図25の分散処理部(分散計算装置)の変形例(その1)の構成を示すブロック図である。
【図27】 (a)及び(b)のそれぞれは、図25の分散処理部(分散計算装置)の変形例(その2)の構成を示すブロック図である。
【図28】 本発明の第5の実施形態に係る分散計算装置の構成を示すブロック図である。
【図29】 図28の秘密分散部の構成を示すブロック図である。
【図30】 図28の秘密復元部の構成を示すブロック図である。
【図31】 本発明の第5の実施形態に係る分散計算システム(その1)の構成を示すブロック図である。
【図32】 本発明の第5の実施形態に係る分散計算システム(その2)の構成を示すブロック図である。
【図33】 本発明の第5の実施形態に係る分散計算システム(その3)の構成を示すブロック図である。
【図34】 第5〜第7の実施形態の分散計算部が分散乗算を行う場合の構成を示すブロック図である。
【図35】 第5〜第7の実施形態の分散計算部が分散乗算を行う場合の処理手順を示すフローチャートである。
【図36】 第5〜第7の実施形態における変換行列の生成手順の説明図である。
【図37】 本発明の第7の実施形態における分散定数乗算部の構成を示すブロック図である。
【図38】 第7の実施形態における変換行列の生成手順の説明図である。
【符号の説明】
101(101−1,…,101−n) 分散処理部(分散計算装置)、
102 秘密再構成計算部、
103 秘密通信路、
201 線形結合部、
301−i 秘密情報記憶部、
302−i 秘密分散計算部、
303−i 送信部、
304−i 受信部、
305−i 分散計算部、
401−i 多項式生成部、
402−i 分散情報生成部、
403−i 乱数生成部、
404−i (k−1)次多項式生成部、
501−1,…,501−(n−1) 分散加算部、
601 分散加算部、
701 加算部、
1001−i 秘密情報記憶部、
1002−i 秘密分散計算部、
1003−i 送信部、
1004−i 受信部、
1005−i 分散計算部、
1101−1,…,1101−n 分散定数乗算部、
1102−1,…,1102−(n−1) 分散加算部、
1201 拡大体乗算部、
1202 秘密分散計算部、
1203 送信部、
1204 受信部、
1205 加算部、
1501−1,…,1501−n 分散定数乗算部、
1502−1,…,1502−(n−1) 分散加算部、
1503 分散乗算部、
1601 分散乗算部、
1701 乗算部、
1702 紛失通信計算部、
1703 分散情報計算部、
1704 秘密分散計算部、
1705 送信部、
1706 受信部、
1707 加算部、
1801−1,…,1801−(i−1) 通信計算受信部、
1802−1,…,1802−(i−1) 通信計算受信部、
1803−(i+1),…,1803−n 通信計算送信部、
1804−(i+1),…,1804−n 通信計算送信部、
1901 インデックス計算送信部、
1902 受信復元部、
2001 乱数生成部、
2002 有限体要素生成部、
2003−1,…,2003−q 乗数計算送信部、
2301 秘密分散送信部、
2302(2302−1,…,2302−n) 分散処理部(分散計算装置)、
2303 秘密再構成計算部、
2401−i 秘密情報記憶部、
2402−i 秘密分散計算部、
2403−i 送信部、
2404−i 受信部、
2405−i 分散計算部、
2406−i 分散情報受信部、
2501−i 秘密情報記憶部、
2502−i 秘密分散計算部、
2503−i 送信部、
2504−i 受信部、
2505−i 分散計算部、
2506−i 分散情報受信部、
2507−i 秘密再構成計算部、
3101 秘密分散部、
3102 送信部、
3103 受信部、
3104 記憶部、
3105 分散計算部、
3106 送信部、
3107 受信部、
3108 秘密復元部、
3111 乱数生成部、
3112 有限体演算部、
3121 復元情報生成部、
3122 有限体演算部、
3200 分散乗算計算部、
3201 乗算部、
3202 秘密分散処理部、
3203 分散情報変換部、
3204 秘密復元処理部、
3301 定数情報生成部、
分散計算装置が保持する秘密情報、
i,j 秘密情報Xから生成された分散情報、
Z' 分散情報Yi,jから生成された情報(秘密Zの分散情報)、
Z もとの秘密、
Xi(x) 分散計算装置が生成する多項式、
,m,…,m メンバID。

Claims (23)

  1. 分散計算を行う分散計算装置であって、
    ランプ型(L,k,n)しきい値秘密分散法により1又は複数個の秘密情報から生成された分散情報を用いて、分散計算する分散計算手段を有し、
    この分散計算装置が保持するメンバIDをm(p≦n)とし、上記分散計算手段が分散計算に用いる分散情報をYとしたときに、上記分散情報は、
    有限体GF(q)をL次拡大した拡大体で生成元がαである拡大体GF(q)上の値を次式
    X=ΣXα;0≦j≦L−1
    で表されるXとするときに、次式
    (I)=X;0≦j≦L−1
    を満たすk−1次の有限体GF(q)上の多項式h(x)を生成し、
    上記多項式h(x)から、
    =h(m
    なる有限体GF(q)上の値を計算することによって生成された情報であり、
    上記分散計算手段の計算結果、及び、他の分散計算装置の分散計算手段からの計算結果Z’ から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行って、拡大体GF(q )上の値
    Z=ΣZ α (jは、0≦j≦L−1である整数)を得る秘密再構成手段をさらに有し、
    上記秘密再構成手段は、次式
    Figure 0004300838
    のような線形結合を行う線形結合手段を有する
    ことを特徴とする分散計算装置。
  2. 分散計算を行う分散計算装置であって、
    ランプ型(L,k,n)しきい値秘密分散法により1又は複数個の秘密情報から生成された分散情報を用いて、分散計算する分散計算手段を有し、
    この分散計算装置が保持するメンバIDをm (p≦n)とし、上記分散計算手段が分散計算に用いる分散情報をY としたときに、上記分散情報は、
    有限体GF(q)をL次拡大した拡大体で生成元がαである拡大体GF(q )上の値を次式
    X=ΣX α ;0≦j≦L−1
    で表されるXとするときに、次式
    (I )=X ;0≦j≦L−1
    を満たすk−1次の有限体GF(q)上の多項式h (x)を生成し、
    上記多項式h (x)から、
    =h (m
    なる有限体GF(q)上の値を計算することによって生成された情報であり、
    上記分散計算手段が、有限体GF(q)をL次拡大した拡大体GF(q)上の2つの値であるA及びBの加算の分散加算を実行する場合に、この分散計算装置自身が保持する上記A及びBに対する分散情報の加算を行う加算手段を有する
    ことを特徴とする分散計算装置。
  3. ランプ型(L,k,n)しきい値秘密分散法を用いて秘密情報から生成された分散情報を受信する分散情報受信手段をさらに有し、
    上記分散計算手段が分散計算に用いる分散情報が、上記分散情報受信手段で受信された分散情報を含む
    ことを特徴とする請求項1又は2に記載の分散計算装置。
  4. 分散計算を行う分散計算装置であって、
    ランプ型(L,k,n)しきい値秘密分散法により、秘密情報から分散情報を生成する秘密分散計算手段を有し、
    上記秘密分散計算手段が、
    上記分散情報が配布される他の分散計算装置が保持するメンバIDをm(p≦n)とし、メンバIDがmである上記分散情報をYとし、有限体GF(q)をL次拡大した拡大体で生成元がαである拡大体GF(q)上の値を次式
    X=ΣXα;0≦j≦L−1
    で表されるXとするときに、次式
    (I)=X;0≦j≦L−1
    を満たすk−1次の有限体GF(q)上の多項式h(x)を生成する多項式生成手段と、
    上記多項式h(x)から、
    =h(m
    なる有限体GF(q)上の値を計算することによって生成する分散情報生成手段とを有し、
    他の分散計算装置からの分散情報を受信する受信手段と、
    上記秘密分散計算手段で生成したこの分散計算装置自身に対する分散情報、及び、ランプ型(L,k,n)しきい値秘密分散法により他の分散計算装置で生成され上記受信手段で受信された分散情報を用いて、分散計算する分散計算手段と、
    上記分散計算手段の計算結果、及び、他の分散計算装置の分散計算手段からの計算結果Z’ から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行って、拡大体GF(q )上の値
    Z=ΣZ α (jは、0≦j≦L−1である整数)を得る秘密再構成手段とをさらに有し、
    上記秘密再構成手段は、次式
    Figure 0004300838
    のような線形結合を行う線形結合手段を有する
    ことを特徴とする分散計算装置。
  5. 分散計算を行う分散計算装置であって、
    ランプ型(L,k,n)しきい値秘密分散法により、秘密情報から分散情報を生成する秘密分散計算手段を有し、
    上記秘密分散計算手段が、
    上記分散情報が配布される他の分散計算装置が保持するメンバIDをm(p≦n)とし、メンバIDがmである上記分散情報をYとし、有限体GF(q)をL次拡大した拡大体で生成元がαである拡大体GF(q)上の値を次式
    X=ΣXα;0≦j≦L−1
    で表されるXとするときに、次式
    (I)=X;0≦j≦L−1
    を満たすk−1次の有限体GF(q)上の多項式h(x)を生成する多項式生成手段と、
    上記多項式h(x)から、
    =h(m
    なる有限体GF(q)上の値を計算することによって生成する分散情報生成手段とを有し、
    他の分散計算装置からの分散情報を受信する受信手段と、
    上記秘密分散計算手段で生成したこの分散計算装置自身に対する分散情報、及び、ランプ型(L,k,n)しきい値秘密分散法により他の分散計算装置で生成され上記受信手段で受信された分散情報を用いて、分散計算する分散計算手段とを有し、
    上記分散計算手段が、有限体GF(q)をL次拡大した拡大体GF(q )上の2つの値であるA及びBの加算の分散加算を実行する場合に、この分散計算装置自身が保持する上記A及びBに対する分散情報の加算を行う加算手段を有する
    ことを特徴とする分散計算装置。
  6. 上記請求項1からまでのいずれかに記載の分散計算装置と同じ構成を持つ複数個の分散計算装置と、
    上記複数個の分散計算装置から出力される計算結果を受け取って、受け取った計算結果から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行う秘密再構成装置と
    を有することを特徴とする分散計算システム。
  7. 上記請求項1からまでのいずれかに記載の分散計算装置と同じ構成を持つ複数個の分散計算装置を有し、
    上記複数個の分散計算装置のうち、少なくとも1以上は、
    他の分散計算装置の分散計算手段からの計算結果を受け取り、この装置自身の分散計算手段の計算結果と、他の分散計算装置の分散計算手段から受け取った計算結果から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行って、拡大体GF(q)上の値
    Z=ΣZα;0≦j≦L−1
    を得る秘密再構成手段を有する
    ことを特徴とする分散計算システム。
  8. ランプ型(L,k,n)しきい値秘密分散法を用いて、分散計算に用いる分散情報を生成する秘密分散計算装置をさらに有し、
    分散計算手段を持つ上記分散計算装置のうちすべては、その秘密分散計算装置からの分散情報を受信する分散情報受信手段を有する
    ことを特徴とする請求項又はのいずれかに記載の分散計算システム。
  9. 分散計算を行う分散計算装置であって、
    ランプ型(L,k,n)しきい値秘密分散法により1又は複数個の秘密情報から生成された分散情報を用いて、分散計算する分散計算手段を有し、
    この分散計算装置が保持するメンバIDをm(p≦n)とし、上記分散計算手段が分散計算に用いる分散情報をYとしたときに、上記分散情報は、
    有限体GF(q)をL次拡大した拡大体で生成元がαで生成多項式がg(x)である拡大体GF(q)上の値を次式
    X=ΣX α;0≦j≦L−1
    で表されるXとし、RX,j(0≦j≦k−L−1)を乱数とするときに、次式
    Figure 0004300838
    で表されるk−1次の有限体GF(q)上の多項式h(x)を生成し、
    上記多項式h(x)から、
    =h(m
    なる有限体GF(q)上の値を計算することによって生成された情報である
    ことを特徴とする分散計算装置。
  10. ランプ型(L,k,n)しきい値秘密分散法を用いて秘密情報から生成された分散情報を受信する分散情報受信手段をさらに有し、
    上記分散計算手段が分散計算に用いる分散情報が、上記分散情報受信手段で受信された分散情報を含む
    ことを特徴とする請求項に記載の分散計算装置。
  11. 分散計算を行う分散計算装置であって、ランプ型(L、k、n)しきい値秘密分散法により、秘密情報から分散情報を生成する秘密分散計算手段を有し、
    上記秘密分散計算手段が、
    上記分散情報が配布される補記あの分散計算装置が保持するメンバIDをm(p≦n)とし、メンバIDがmである上記分散情報をYとし、有限体GF(q)をL次拡大した拡大体で生成元がαで生成多項式がg(x)である拡大体GF(q)上の値を次式
    X=ΣX α;0≦j≦L−1
    で表されるXとし、RX,j(0≦j≦k−L−1)を乱数とするときに、次式
    Figure 0004300838
    で表されるk−1次の有限体GF(q)上の多項式h(x)を生成する多項式生成手段と、
    上記多項式h(x)から、
    =h(m
    なる有限体GF(q)上の値を計算することによって生成する分散情報生成手段とを有する
    ことを特徴とする分散計算装置。
  12. 上記秘密情報を保持する秘密情報記憶手段をさらに有することを特徴とする請求項11に記載の分散計算装置。
  13. 上記秘密分散計算手段で生成された分散情報を他の分散計算装置へ送信する送信手段をさらに有することを特徴とする請求項11又は12のいずれかに記載の分散計算装置。
  14. 他の分散計算装置からの分散情報を受信する受信手段をさらに有することを特徴とする請求項11から13までのいずれかに記載の分散計算装置。
  15. 上記秘密分散計算手段で生成したこの分散計算装置自身に対する分散情報、及び、ランプ型(L,k,n)しきい値秘密分散法により他の分散計算装置で生成され上記受信手段で受信された分散情報を用いて、分散計算する分散計算手段をさらに有する特徴とする請求項14に記載の分散計算装置。
  16. 上記分散計算手段の計算結果、及び、他の分散計算装置の分散計算手段からの計算結果Z’から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行って、拡大体GF(q)上の値
    Z=ΣZ α(jは、0≦j≦L−1である整数)
    を得る秘密再構成手段をさらに有し、
    上記秘密再構成手段は、メンバIDより生成した行列
    E=(eji)、eji=m i−1(i、j=1,2,…,n)
    の逆行列E−1と、t次の多項式の係数を表すベクトルに対して、拡大体GF(q)の生成多項式g(x)の剰余を与えるような行列Gより、次式のような行列
    G E−1=(rji
    を満たすrjiを計算する復元情報生成手段と、
    その復元情報生成手段で生成したrji、及び、Z’から、
    Figure 0004300838
    のような計算を行う有限体演算手段と、
    を有することを特徴とする請求項9、10、15のいずれかに記載の分散計算装置。
  17. 上記分散計算手段が、
    有限体GF(q)をL次拡大した拡大体GF(q)上の2つの値であるA及びBの加算の分散加算を実行する場合に、この分散計算装置自身が保持する上記A及びBに対する分散情報の加算を行う加算手段を有する
    ことを特徴とする請求項9、10、15のいずれかに記載の分散計算装置。
  18. 上記分散計算手段で、有限体GF(q)をL次拡大した拡大体GF(q)上の値A及びBの乗算の分散乗算をする場合には、
    この分散計算装置自身が保持する値A及びBに対する分散情報a及びbの有限体GF(q)上の乗算
    =a×b
    を行う乗算手段と、
    上記乗算手段の結果であるcを、さらに(k’,n)しきい値秘密分散法で分散して分散情報であるci,pを生成する第2の秘密分散計算手段と、
    上記第2の秘密分散計算手段で生成した分散情報であるci,pを送信する第2の送信手段と、
    他の分散計算装置の第2の送信手段からの分散情報であるcp,iを受信する第2の受信手段と、
    第2の秘密分散計算手段から生成したこの分散計算装置自身に対する分散情報であるci,i、及び、その第2の受信手段で受信した分散情報であるcp,iを、しきい値がkで、同じ秘密情報を復元するような分散情報に変換する中間情報変換手段と、
    その中間情報変換手段の計算結果を送信する第3の送信手段と、
    他の分散装置の第3の送信手段からの計算結果を受信する第3の受信手段と、
    その中間情報変換手段のこの分散計算装置自身に対する計算結果と、第3の受信手段で受信した計算結果を(k’,n)しきい値秘密分散法の秘密再構成を行う秘密復元処理手段と、
    を有することを特徴とする請求項9、10、15のいずれかに記載の分散計算装置。
  19. 上記中間情報変換手段は、
    メンバIDから生成される、秘密分散に利用される第1の行列と、
    ランダムな2(k−1)次多項式を初期値とする多項式
    h(x)=Σh;0≦j≦2(k−1)
    と、
    拡大体GF(qL)の生成多項式g(x)を多項式h(x)の最高次数の係数倍した多項式と、の差分多項式を計算することを繰り返すことを、次数が(k−1)次になるまで続け、得られた(k−1)次多項式の係数を元の多項式の係数hの線形結合で表すという方法で生成した第2の行列と、
    メンバIDから生成される、秘密復元に利用される第3の行列と、
    の3つの行列の積で表される変換行列により変換する
    ことを特徴とする請求項18に記載の分散計算装置。
  20. 上記分散計算手段で、
    有限体GF(q)をL次拡大した拡大体GF(q)上の定数Dが、次式
    D=ΣD α;0≦j≦L−1
    で表されるとし、この定数Dと、拡大体GF(q)上の値Aとの乗算の分散定数乗算をする場合には、
    あらかじめ決められた値RD,j(0≦j≦k−L−1)を用いて、次式
    Figure 0004300838
    で表されるk−1次の有限体GF(q)上の多項式h(x)を生成し、
    上記多項式h(x)から、
    =h(m
    なる有限体GF(q)上の値を計算することによって、この分散計算装置自身に対する定数Dの分散情報dを生成する定数情報生成手段と、
    その定数情報生成手段で生成した分散情報dとこの分散計算装置自身が保持する値Aに対する分散情報aを用いた分散乗算を実行する分散乗算手段と、
    を有することを特徴とする請求項9、10、15のいずれかに記載の分散計算装置。
  21. 上記請求項から20までのいずれかに記載の分散計算装置と同じ構成を持つ複数個の分散計算装置と、
    上記複数個の分散計算装置から出力される計算結果を受け取って、受け取った計算結果から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行う秘密再構成装置と
    を有することを特徴とする分散計算システム。
  22. 上記請求項から20までのいずれかに記載の分散計算装置と同じ構成を持つ複数個の分散計算装置を有し、
    上記複数個の分散計算装置のうち、少なくとも1以上は、
    他の分散計算装置の分散計算手段からの計算結果を受け取り、この装置自身の分散計算手段の計算結果と、他の分散計算装置の分散計算手段から受け取った計算結果から、ランプ型(L,k,n)しきい値秘密分散法の秘密再構成を行って、拡大体GF(q)上の値
    Z=ΣZ α;0≦j≦L−1
    を得る秘密再構成手段を有する
    ことを特徴とする分散計算システム。
  23. ランプ型(L,k,n)しきい値秘密分散法を用いて、分散計算に用いる分散情報を生成する秘密分散計算装置をさらに有し、
    分散計算手段を持つ上記分散計算装置のうちすべては、その秘密分散計算装置からの分散情報を受信する分散情報受信手段を有する
    ことを特徴とする請求項21又は22のいずれかに記載の分散計算システム。
JP2003082214A 2003-03-25 2003-03-25 分散計算装置及び分散計算システム Expired - Fee Related JP4300838B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003082214A JP4300838B2 (ja) 2003-03-25 2003-03-25 分散計算装置及び分散計算システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003082214A JP4300838B2 (ja) 2003-03-25 2003-03-25 分散計算装置及び分散計算システム

Publications (2)

Publication Number Publication Date
JP2004287333A JP2004287333A (ja) 2004-10-14
JP4300838B2 true JP4300838B2 (ja) 2009-07-22

Family

ID=33295564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003082214A Expired - Fee Related JP4300838B2 (ja) 2003-03-25 2003-03-25 分散計算装置及び分散計算システム

Country Status (1)

Country Link
JP (1) JP4300838B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7718160B2 (en) 2002-07-02 2010-05-18 The Board Of Regents Of The University Of Texas System Radiolabeled compounds and liposomes and their method of making and using same
CN104412539A (zh) * 2012-07-05 2015-03-11 日本电信电话株式会社 秘密分散系统、数据分散装置、分散数据变换装置、秘密分散方法、以及程序

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005328123A (ja) * 2004-05-12 2005-11-24 Oki Electric Ind Co Ltd 公開鍵の正当性判断方法及び通信端末装置
US8214647B2 (en) 2006-06-30 2012-07-03 Nec Corporation Distributed information generator and restoring device
JP4883619B2 (ja) * 2006-07-14 2012-02-22 株式会社日立ソリューションズ 秘密分散情報処理システム
WO2010123114A1 (ja) * 2009-04-24 2010-10-28 日本電信電話株式会社 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体
JP5433297B2 (ja) * 2009-05-14 2014-03-05 Kddi株式会社 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP5727353B2 (ja) * 2011-11-17 2015-06-03 Kddi株式会社 情報収集システム、通信装置及びプログラム
JP5689845B2 (ja) * 2012-03-26 2015-03-25 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
JP5858938B2 (ja) * 2013-01-17 2016-02-10 日本電信電話株式会社 計算装置、計算システム、計算方法
WO2014112548A1 (ja) * 2013-01-17 2014-07-24 日本電信電話株式会社 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
JPWO2016129363A1 (ja) * 2015-02-12 2018-01-11 学校法人東京理科大学 分散装置、演算・復元装置、及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7718160B2 (en) 2002-07-02 2010-05-18 The Board Of Regents Of The University Of Texas System Radiolabeled compounds and liposomes and their method of making and using same
CN104412539A (zh) * 2012-07-05 2015-03-11 日本电信电话株式会社 秘密分散系统、数据分散装置、分散数据变换装置、秘密分散方法、以及程序
CN104412539B (zh) * 2012-07-05 2017-05-24 日本电信电话株式会社 秘密分散系统、数据分散装置、分散数据变换装置、以及秘密分散方法

Also Published As

Publication number Publication date
JP2004287333A (ja) 2004-10-14

Similar Documents

Publication Publication Date Title
US10033708B2 (en) Secure computation using a server module
US7421080B2 (en) Method of reconstructing a secret, shared secret reconstruction apparatus, and secret reconstruction system
JP4300838B2 (ja) 分散計算装置及び分散計算システム
CN109067538B (zh) 安全协议方法、计算机设备及存储介质
CN113906712A (zh) 应用于私有信息检索的同态加密
Chen et al. Period distribution of the generalized discrete Arnold Cat map for $ N= 2^{e} $
CN112926064B (zh) 一种模型训练方法及装置、数据处理系统和电子设备
WO2023094453A1 (en) Secure multi-party computations
CN115694777A (zh) 基于同态加密的隐私集合求交方法、装置、设备及介质
CN114866225A (zh) 一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法
Tentu et al. CRT based multi-secret sharing schemes: revisited
Mahdavi et al. Practical over-threshold multi-party private set intersection
Coron et al. On Kilian’s randomization of multilinear map encodings
CN113992325A (zh) 一种隐私数据共享方法及装置
JP4305049B2 (ja) 秘密分散方法、秘密分散システム、及び分散演算装置
Nayak et al. SEMKC: secure and efficient computation over outsourced data encrypted under multiple keys
Kaya et al. Sharing DSS by the Chinese remainder theorem
Tu Survey on homomorphic encryption technology
Aly et al. Practically efficient secure distributed exponentiation without bit-decomposition
JP2004274320A (ja) 秘密分散装置、秘密再構成装置、秘密分散再構成システム、秘密分散方法、及び秘密再構成方法
Sun et al. MK-FLFHNN: A Privacy-Preserving Vertical Federated Learning Framework For Heterogeneous Neural Network Via Multi-Key Homomorphic Encryption
JP4305050B2 (ja) 分散乗算装置及び分散乗算システム
WO2024004116A1 (ja) 鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体
Xia et al. Verifiable secret sharing based on hyperplane geometry with its applications to optimal resilient proactive cryptosystems
Liu MPC-enabled privacy-preserving machine learning

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090305

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4300838

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090413

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130501

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140501

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees