代理計算システム、方法、依頼装置、計算装置、プログラム
【課題】1回の代理計算でf(x1,x2)を計算することができる。
【解決手段】H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、元x1及び元x2に対応する第一入力情報τ1を生成する。元x1及び元x2に対応する第二入力情報τ2を生成する。第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする。第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする。計算結果u及びvがu=vaを満たす場合に、そのvを出力する。
【解決手段】H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、元x1及び元x2に対応する第一入力情報τ1を生成する。元x1及び元x2に対応する第二入力情報τ2を生成する。第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする。第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする。計算結果u及びvがu=vaを満たす場合に、そのvを出力する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、コンピュータによる計算技術に関する。特に、他の計算機に行わせた計算結果を用いて計算を行う技術に関する。
【背景技術】
【0002】
非特許文献1に、関数fを群H1及び群H2の元を群Gに写す双準同型写像として、乱数化可能標本器を用いて、2つの入力x1,x2に対するf(x1,x2)を計算する技術が発明者により提案されている。以下、この技術を簡単に説明する。
【0003】
群H1の生成元をh1,群H2の生成元をh2とする。この技術では、まず、f(x1,h1)についての乱数化可能標本器を用いた第一の代理計算により、f(x1,h1)を計算する。次に、f(x1,x2)についての乱数化可能標本器及びその計算結果f(x1,h1)を用いた第二の代理計算により、f(x1,x2)を計算する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】山本剛,小林鉄太郎,「準同型写像に対する自己訂正について」,SCIS 2010,p.5−6
【発明の概要】
【発明が解決しようとする課題】
【0005】
背景技術の欄に記載した技術では、f(x1,x2)を計算するために、2回の代理計算を行う必要があった。
【0006】
この発明は、1回の代理計算でf(x1,x2)を計算する技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明の1つの観点による代理計算システムでは、H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、KH1及びKH2をそれぞれH1及びH2の位数、h1及びh2をそれぞれH1及びH2の生成元、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、元x1及び元x2に対応する第一入力情報τ1を生成する第一入力情報生成部と、元x1及び元x2に対応する第二入力情報τ2を生成する第二入力情報生成部と、第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする乱数化可能標本器と、第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする標本器と、計算結果u及びvがu=vaを満たす場合に、そのvを出力する最終出力部と、を含む。
【発明の効果】
【0008】
1回の代理計算でf(x1,x2)を計算することができる。
【図面の簡単な説明】
【0009】
【図1】代理計算システムの構成を説明するためのブロック図。
【図2】依頼装置及び計算装置の構成を説明するためのブロック図。
【図3】第一入力情報生成部の構成を説明するためのブロック図。
【図4】第二入力情報生成部の構成を説明するためのブロック図。
【図5】代理計算方法の処理を説明するためのフローチャート。
【図6】ステップS1の処理を説明するためのフローチャート。
【図7】ステップS2の処理を説明するためのフローチャート。
【図8】ステップS3の処理を説明するためのフローチャート。
【図9】ステップS4の処理を説明するためのフローチャート。
【図10】乱数化可能標本器の変形例の構成を説明するためのブロック図。
【図11】第一入力情報生成部の変形例の構成を説明するためのブロック図。
【図12】ステップS1の変形例の構成を説明するためのフローチャート。
【図13】ステップS2の変形例の構成を説明するためのフローチャート。
【発明を実施するための形態】
【0010】
以下、図面を参照してこの発明の一実施形態を説明する。
【0011】
代理計算システムは、図1に示すように、依頼装置1及び計算装置2を例えば含む。
【0012】
依頼装置1は、図2に示すように、第一入力情報生成部11、第二入力情報生成部12、制御部13、第一記憶部14、第一計算部15、第二計算部16、判定部17、第二記憶部18、最終出力部19を例えば含む。
【0013】
計算装置2は、図2に示すように、第一出力情報生成部21、第二出力情報生成部22、第三出力情報生成部23を例えば含む。
【0014】
まず、記号の定義を行う。H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、KH1及びKH2をそれぞれH1及びH2の位数、h1,h2及びgをそれぞれH1,H2及びGの生成元、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数とする。aは、例えば0以上の整数からランダムに選ばれた数である。ここで、確率変数E1の分布は、aに依存しないとする。
【0015】
双準同型写像とは、2つの入力のそれぞれに対して準同型である写像を意味する。この例では、写像f(x1,x2)は、群H1の元x1に対して準同型であり、かつ、群H2の元x2に対して準同型である。
【0016】
依頼装置1及び計算装置2は協同して、ある入力(x1,x2)に対応するf(x1,x2)の値を計算するか、計算をすることができなかった旨の情報を出力する。
【0017】
制御部13は、tを1とする(ステップS0、図5)。
【0018】
第一入力情報生成部11は、元x1及び元x2に対応する第一入力情報τ1を生成する(ステップS1)。生成された第一入力情報τ1は、計算装置2に送信される。この例では、第一入力情報τ1は、図6に例示するステップS11からステップS16により生成されるx1r1、x2ah2r2r4、x1−r2h1r3及びh2r4である。
【0019】
第一乱数生成部111は、0以上KH1未満の一様乱数r1,r3を生成する(ステップS11)。生成された乱数r1は第一入力計算部113に送信され、生成された乱数r3は第三入力計算部115に送信される。
【0020】
第二乱数生成部112は、0以上KH2未満の一様乱数r2,r4を生成する(ステップS12)。生成された乱数r2は第二入力計算部114及び第三入力計算部115に送信され、生成された乱数r4は第二入力計算部114及び第四入力計算部116に送信される。
【0021】
第一入力計算部113は、生成された乱数r1及び元x1を用いて、x1r1を計算する(ステップS13)。x1の右肩のr1は、r1のことである。このように、この出願において、αを第一の文字、βを第二の文字、γを数字として、αβγと表記した場合には、そのβγはβγ、すなわちβの下付きγを意味する。
【0022】
第二入力計算部114は、生成された乱数r2,r4、元x2及び生成元h2を用いて、x2ah2r2r4を計算する(ステップS14)。
【0023】
第三入力計算部115は、生成された乱数r2,r3、元x1及び生成元h1を用いて、x1−r2h1r3を計算する(ステップS15)。
【0024】
第四入力計算部116は、生成された乱数r4及び生成元h2を用いて、h2r4を計算する(ステップS16)。
【0025】
このように、乱数r1,r2,r3及びr4を用いて入力x1及びx2を撹乱した情報を第一入力情報τ1として計算装置2に送信することにより、入力x1及びx2を計算装置2及び依頼装置1以外の装置に対して秘密にすることができる。
【0026】
乱数化可能標本器3は、第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする(ステップS2)。計算結果uは、第一記憶部14に記憶される。この例では、図7に例示するステップS21からステップS23により計算結果uが生成される。
【0027】
第一出力情報生成部21は、第一入力情報τ1のx1r1及びx2ah2r2r4を用いて、ある確率より大きな確率でf(x1r1,x2ah2r2r4)を正しく計算し、得られた計算結果を第一出力情報z1とする(ステップS21)。第一出力情報z1は、依頼装置1に送信される。
【0028】
群H1の元y1,群H2の元y2を入力したときにある確率δより大きな確率でf(y1,y2)を正しく計算する関数をブラックボックス関数Fとする。第一出力情報生成部21は、例えばブラックボックス関数Fにx1r1及びx2ah2r2r4を入力することにより得た出力値F(x1r1,x2ah2r2r4)を第一出力情報z1とする。すなわち、第一出力情報z1=F(x1r1,x2ah2r2r4)とする。
【0029】
第二出力情報生成部22は、第一入力情報τ1のx1−r2h1r3及びh2r4を用いて、ある確率より大きな確率でf(x1−r2h1r3,h2r4)を正しく計算し、得られた計算結果を第二出力情報z2とする(ステップS22)。第二出力情報z2は、依頼装置1に送信される。第二出力情報生成部22は、例えばブラックボックス関数Fにx1−r2h1r3及びh2r4を入力することにより得た出力値F(x1−r2h1r3,h2r4)を第二出力情報z2とする。すなわち、第二出力情報z2=F(x1−r2h1r3,h2r4)とする。
【0030】
「ある確率」は100%未満の確率である。「ある確率」の例は無視することができない確率であり、「無視することができない確率」の例は、セキュリティパラメータkについての広義単調増加関数である多項式を多項式ψ(k)とした場合の1/ψ(k)以上の確率である。すなわち、第一出力情報生成部21や第二出力情報生成部22は、意図的又は意図的ではない誤差を含んだ計算結果を出力する。言い換えると、第一出力情報生成部21での計算結果がf(x1r1,x2ah2r2r4)の場合もあればf(x1r1,x2ah2r2r4)でない場合もあり、第二出力情報生成部22での計算結果がf(x1−r2h1r3,h2r4)の場合もあればf(x1−r2h1r3,h2r4)でない場合もある。
【0031】
第一計算部15は、第一出力情報z1及び第二出力情報z2を用いて、z11/r1z2y−r3r4を計算してその計算結果を上記uとする(ステップS23)。
【0032】
第二入力情報生成部12は、元x1及び元x2に対応する第二入力情報τ2を生成する(ステップS3)。生成された第二入力情報τ2は、計算装置2に送信される。この例では、第二入力情報τ2は、図8に例示するステップS31からステップS34により生成されるx1r5、x2r6である。
【0033】
第三乱数生成部121は、0以上KH1未満の一様乱数r5を生成する(ステップS31)生成された乱数r5は、第五入力計算部123に送信される
第四乱数生成部122は、0以上KH2未満の乱数r6を生成する(ステップS32)。生成された乱数r6は、第六入力計算部124に送信される。
【0034】
第五入力計算部123は、元x1及び乱数r5を用いて、x1r5を計算する(ステップS33)。
【0035】
第六入力計算部124は、元x2及び乱数r6を用いて、x2r6を計算する(ステップS34)。
【0036】
このように、乱数r5及びr6を用いて、入力x1及びx2を撹乱した情報を第二入力情報τ2として計算装置2に送信することにより、入力x1及びx2を計算装置2及び依頼装置1以外の装置に対して秘密にすることができる。
【0037】
標本器4は、第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする(ステップS4)。計算結果vは、第二記憶部18に記憶される。
【0038】
この例では、図9に例示するステップS41及びステップS42において、計算装置2に設けられた第三出力情報生成部23と、依頼装置1に設けられた第二計算部16とが計算結果vを生成する。
【0039】
第三出力情報生成部23は、第二入力情報τ2を用いて、ある確率より大きな確率でf(x1r5,x2r6)を正しく計算し、得られた計算結果を第三出力情報z3とする(ステップS41)。第三出力情報z3は、依頼装置1に送信される。例えば、ブラックボックス関数Fにx1r5及びx2r6を入力することにより得た出力値F(x1r5,x2r6)を第三出力情報z3とする。すなわち、第三出力情報z3=F(x1r5,x2r6)である。
【0040】
第二計算部16は、第三出力情報z3及び乱数r5及びr6を用いて、z31/r5r6を計算してその計算結果をvとする(ステップS42)。なお、z31/r5r6は、z31/(r5r6)である。
【0041】
判定部17は、第一記憶部14に記憶された計算結果u及び第二記憶部18に記憶された計算結果vの中で、u=vaとなるものがあるか判定する(ステップS5)。第一記憶部14に記憶された複数の計算結果uから選択された1つの計算結果uと、第二記憶部18から選択された1つの計算結果vとから構成される計算結果の組は、第一記憶部14に記憶された計算結果uの数U個と第二記憶部18に記憶された計算結果vの数V個とを乗算した数U×V個存在する。判定部17は、U×V個の計算結果の組のそれぞれについて、その計算結果の組を構成する計算結果uと計算結果vとが、u=vaという関係を満たすか判定する。
【0042】
なお、判定部17は、前回のステップS5において判定を行った計算結果の組については、その判定を省略してもよい。換言すれば、判定部17は、例えば新たに追加された計算結果u又は計算結果vから少なくとも一方が構成される計算結果の組についてのみ判定を行ってもよい。既に判定を行った計算結果の組についての判定を省略することにより、処理を高速に行うことができ、必要なハードウェア資源の量を小さくすることができる。
【0043】
最終出力部19は、判定部17においてu=vaとなるものがあると判定された場合には、このu=vaという関係を満たすvを出力する(ステップS6)。このu=vaという関係を満たすvが、高い確率でf(x1,x2)の値と一致する。その理由については、後述する。
【0044】
制御部13は、t=Tであるか判定する(ステップS7)。Tは予め定められた正の整数である。t=Tであれば、制御部13は、計算をすることができなかった旨の情報、例えば記号「⊥」を出力して(ステップS8)、処理を終える。t=Tでない場合には、制御部13は、tを1だけインクリメント、すなわちtにt+1を代入して(ステップS9)、ステップS1に戻る。
【0045】
≪高い確率でu=vaという関係を満たすvがf(x1,x2)となる理由について≫
Xを群Gに値を持つ確率変数とする。w∈Gについて、要求を受けるたびに確率変数Xに従った標本x’に対応するwx’を返すものを、wについて誤差Xを持つ標本器(sampler)と呼ぶ。
【0046】
与えられた自然数aに確率変数Xの分布が依存せず、w∈Gについて、要求を受けるたびに確率変数Xに従った標本x’に対応するwax’を返すものを、wについて誤差Xを持つ乱数化可能標本器(randomizable sampler)と呼ぶ。乱数化可能標本器はa=1として用いられれば標本器として機能する。
【0047】
上記の実施形態においては、乱数化可能標本器3がf(x1,x2)についての誤差E1を持つ乱数化可能標本器であり、標本器4がf(x1,x2)についての誤差E2を持つ標本器である。
【0048】
乱数化可能標本器3により計算されるu=f(x1,x2)ae1、及び、標本器4により計算されるv=f(x1,x2)e2が、u=vaという関係を満たす場合、e1及びe2が群Gの単位元egである可能性が非常に高いことを発明者は見出した。ここでは、その証明を省略する。e2が群Gの単位元egであるとき、v=f(x1,x2)e2=f(x1,x2)eg=f(x1,x2)となる。
【0049】
入力x1,x2に対してブラックボックス関数Fを用いて計算を行う、w=f(x1,x2)についての標本器をΣ’F(x1,x2)と表記する。また、入力x1,x2及び与えられた自然数aに対してブラックボックス関数Fを用いて計算を行う、w=f(x1,x2)についての乱数化可能標本器をΣF(x1,x2,a)と表記する。
【0050】
確率変数E1=F(x1r1,x2ah2r2r4)1/r1f(x1r1,x2ah2r2r4)−1/r1F(x1−r2h1r3,h2r4)f(x1−r2h1r3,h2r4)−1とすると、第一計算部15により計算されるz11/r1z2y−r3r4は、f(x1,x2)についての誤差E1を持つ乱数化可能標本器ΣF(x1,x2,a)となる。すなわち、ΣF(x1,x2,a)=z11/r1z2y−r3r4=f(x1,x2)aE1となる。換言すれば、E1=z11/r1z2y−r3r4f(x1,x2)−aとなる。
【0051】
定義より、z1=F(x1r1,x2ah2r2r4)、z2=F(x1−r2h1r3,h2r4)であり、これらをE1=z11/r1z2y−r3r4f(x1,x2)−aに代入すると以下のように式展開でき、E1=F(x1r1,x2ah2r2r4)1/r1f(x1r1,x2ah2r2r4)−1/r1F(x1−r2h1r3,h2r4)f(x1−r2h1r3,h2r4)−1であることがわかる。また、関数f及びブラックボックス関数Fの入力の1つであるx2ah2r2r4は乱数r2及びr4により撹乱されておりaに依存しない。このため、確率変数E1もaに依存しない。
【0052】
E1=z11/r1z2y−r3r4f(x1,x2)−a
=F(x1r1,x2ah2r2r4)1/r1F(x1−r2h1r3,h2r4)f(x1,x2)−ay−r3r4
=F(x1r1,x2ah2r2r4)1/r1F(x1−r2h1r3,h2r4)f(x1,x2)−ay−r3r4f(x1r1,x2ah2r2r4)1/r1f(x1−r2h1r3,h2r4)f(x1r1,x2ah2r2r4)−1/r1f(x1−r2h1r3,h2r4)−1 …(1)
A=f(x1,x2)−af(x1r1,x2ah2r2r4)1/r1f(x1−r2h1r3,h2r4),B=F(x1r1,x2ah2r2r4)1/r1f(x1r1,x2ah2r2r4)−1/r1,C=F(x1−r2h1r3,h2r4)f(x1−r2h1r3,h2r4)−1とすると、上記(1)式=ABCy−r3r4と書ける。
【0053】
ここで、関数fの準同型性により、A=f(x1,x2)−af(x1r1,x2ah2r2r4)1/r1f(x1−r2h1r3,h2r4)=f(x1,x2)−af(x1,x2)af(x1,h2)r2r4f(x1,h2)−r2r4f(h1,h2)r3r4=yr3r4である。
【0054】
このため、上記(1)式=ABCy−r3r4=yr3r4BCy−r3r4=BCである。よって、E1=z11/r1z2y−r3r4f(x1,x2)−a=BC=F(x1r1,x2ah2r2r4)1/r1f(x1r1,x2ah2r2r4)−1/r1F(x1−r2h1r3,h2r4)f(x1−r2h1r3,h2r4)−1となるのである。換言すれば、z11/r1z2y−r3r4=f(x1,x2)aE1である。
【0055】
また、確率変数E2=F(x1r5,x2r6)1/r5r6f(x1,x2)−1とすると、第二計算部16により計算されるz31/r5r6は、f(x1,x2)についての誤差E2を持つ標本器Σ’F(x1,x2)となる。すなわち、Σ’F(x1,x2)=z31/r5r6=f(x1,x2)E2となる。
【0056】
[変形例等]
図10に例示するように、乱数化可能標本器3を構成してもよい。図10の乱数化可能標本器3は、第一計算部15、第一出力情報生成部21、第二出力情報生成部22、第四出力情報生成部24を備える。第一計算部15は、依頼装置1に設けられ、3つの出力情報z1,z2,z4からuを計算する。第一出力情報生成部21、第二出力情報生成部22、第四出力情報生成部24は、計算装置2に設けられる。
【0057】
この場合の第一入力情報生成部11は、図11に示すように、乱数生成部119、第一入力計算部113、第二入力計算部114、第三入力計算部115、第四入力計算部116、第五入力計算部117、第六入力計算部118を例えば備える。
【0058】
乱数生成部119は、乱数s1,s2,s3,s4,s5,s6を生成する(ステップS11、図12)。乱数s1,s2,s3,s4,s5,s6は、例えば0以上所定の数以下の一様乱数である。ここで、所定の数は、例えばn(k)を群H1又は群H2を表現するビット長として、2n(k)+kである。乱数s1,s2は、第一入力計算部113に送信される。乱数s3,s4は、第二入力計算部114に送信される。乱数s1は、第三入力計算部115に送信される。乱数s2,s5は、第四入力計算部116に送信される。乱数s4,s6は、第五入力計算部117に送信される。乱数s3は、第六入力計算部118に送信される。
【0059】
第一入力計算部113は、x1h1s1s2を計算する(ステップS13)。
【0060】
第二入力計算部114は、x2ah2s3s4を計算する(ステップS14)。
【0061】
第三入力計算部115は、h1s1を計算する(ステップS15)。
【0062】
第四入力計算部116は、x2−as2h2s5を計算する(ステップS16)。
【0063】
第五入力計算部117は、x1−s4h1s6を計算する(ステップS17)。
【0064】
第六入力計算部118は、h2s3を計算する(ステップS18)。
【0065】
この変形例では、これらの計算されたx1h1s1s2,x2ah2s3s4,h1s1,x2−as2h2s5,x1−s4h1s6,h2s3が、第一入力情報τ1となる。第一入力情報τ1は、計算装置2に送信される。
【0066】
第一出力情報生成部21は、第一入力情報τ1のx1h1s1s2,x2ah2s3s4を用いて、ある確率より大きな確率でf(x1h1s1s2,x2ah2s3s4)を正しく計算し、得られた計算結果を第一出力情報z1とする(ステップS21、図13)。第一出力情報z1は、依頼装置1に送信される。第一出力情報生成部21は、例えばブラックボックス関数Fにx1h1s1s2及びx2ah2s3s4を入力することにより得た出力値F(x1h1s1s2,x2ah2s3s4)を第一出力情報z1とする。すなわち、第一出力情報z1=F(x1h1s1s2,x2ah2s3s4)とする。
【0067】
第二出力情報生成部22は、第一入力情報τ1のh1s1及びx2−as2h2s5を用いて、ある確率より大きな確率でf(h1s1,x2−as2h2s5)を正しく計算し、得られた計算結果を第二出力情報z2とする(ステップS22)。第二出力情報z2は、依頼装置1に送信される。第二出力情報生成部22は、例えばブラックボックス関数Fにh1s1,x2−as2h2s5を入力することにより得た出力値F(h1s1,x2−as2h2s5)を第二出力情報z2とする。すなわち、第二出力情報z2=F(h1s1,x2−as2h2s5)とする。
【0068】
第四出力情報生成部24は、第一入力情報τ1のx1−s4h1s6及びh2s3を用いて、ある確率より大きな確率でf(x1−s4h1s6,h2s3)を正しく計算し、得られた計算結果を第四出力情報z4とする(ステップS24)。第四出力情報z4は、依頼装置1に送信される。第四出力情報生成部24は、例えばブラックボックス関数Fにx1−s4h1s6,h2s3を入力することにより得た出力値F(x1−s4h1s6,h2s3)を第四出力情報z4とする。すなわち、第四出力情報z4=F(x1−s4h1s6,h2s3)とする。
【0069】
第一計算部15は、第一出力情報z1、第二出力情報z2及び第四出力情報z4を用いて、z1z2z4y−s1s2s3s4−s1s5−s3s6を計算してその計算結果をuとする(ステップS23)。その他の処理は、上記実施形態と同じである。
【0070】
このように、uを計算することにより、上記実施形態の第一計算部15が行っていた逆元の計算が不必要となり、演算をより効率的に行うことができる。このばあい、E1=F(x1h1s1s2,x2ah2s3s4)f(x1h1s1s2,x2ah2s3s4)−1F(h1s1,x2−as2h2s5)f(h1s1,x2−as2h2s5)−1F(x1−s4h1s6,h2s3)f(x1−s4h1s6,h2s3)−1である。s1,s2,s3,s4,s5,s6は乱数であるから、E1はaに依存しない確率変数である。
【0071】
確率変数E1,E2は、同じでも異なっていてもよい。したがって、標本器4は、乱数化可能標本器3またはその変形例に示した乱数化可能標本器で、aを1で置き換えたもので代替することができる。
第一乱数生成部111、第二乱数生成部112、第三乱数生成部121、第四乱数生成部122、乱数生成部119は、一様乱数を生成することにより、代理計算システムの安全性が最も高くなる。しかし、求める安全性のレベルがそれほど高くない場合には、第一乱数生成部111、第二乱数生成部112、第三乱数生成部121、第四乱数生成部122、乱数生成部119は、一様乱数ではない乱数を生成してもよい。
【0072】
また、第一乱数生成部111、第二乱数生成部112、第三乱数生成部121、第四乱数生成部122は、0以上所定の数以下の乱数を生成してもよい。ここで、例えばn(k)を群H1又は群H2を表現するビット長として、所定の数は2n(k)+kである。
【0073】
また、依頼装置1が複数の第一入力情報及び第二入力情報を計算装置2にまとめて提供し、対応する計算結果を複数個まとめて取得してもよい。これにより、依頼装置1と計算装置2との間のやり取り回数を減らすことができる。
【0074】
上記の実施形態では、例えばx1r1、x2ah2r2r4、x1−r2h1r3及びh2r4を第一入力情報τ1としたが、第一入力情報τ1は乱数化可能標本器3がその第一入力情報τ1に基づいてf(x1,x2)ae1を計算可能することができればどのような情報でもよい。例えば、x1及びx2自体や、x1及びx2に関する情報や、(x1,x2,r1,r2,r3,r4)の組を第一入力情報τ1としてもよい。
【0075】
同様に、上記の実施形態では、x1r5及びx2r6を上記第二入力情報τ2としたが、第二入力情報τ2は乱数化可能標本器3がその第二入力情報τ2に基づいてf(x1,x2)e2を計算可能することができればどのような情報でもよい。例えば、x1及びx2自体や、x1及びx2に関する情報や、(x1,x2,r5,r6)の組を第二入力情報τ2としてもよい。
【0076】
乱数化可能標本器3を構成する第一計算部15、第一出力情報生成部21及び第二出力情報生成部22の少なくとも1つの部が計算装置2に備えられていれば、乱数化可能標本器3を構成する他の部は依頼装置1及び計算装置2の何れに備えられていてもよい。例えば、第一計算部15、第一出力情報生成部21及び第二出力情報生成部22のすべてが計算装置2に備えられていてもよい。
【0077】
同様に、標本器4を構成する第二計算部16及び第三出力情報生成部23の少なくとも1つの部が計算装置2に備えられていれば、標本器4を構成する他の部は依頼装置1及び計算装置2の何れに備えられていてもよい。例えば、第二計算部16及び第三出力情報生成部23のすべてが計算装置2に備えられていてもよい。
【0078】
依頼装置1及び計算装置2の各部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
【0079】
その他、この発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。例えば、図5に破線で示すように、ステップS2とステップS3の間に、ステップS5の処理を行ってもよい。
【0080】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0081】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0082】
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【符号の説明】
【0083】
1 依頼装置
11 第一入力情報生成部
111 第一乱数生成部
112 第二乱数生成部
113 第一入力計算部
114 第二入力計算部
115 第三入力計算部
116 第四入力計算部
117 第五入力計算部
118 第六入力計算部
119 乱数生成部119
12 第二入力情報生成部
121 第三乱数生成部
122 第四乱数生成部
123 第五入力計算部
124 第六入力計算部
13 制御部
14 第一記憶部
15 第一計算部
16 第二計算部
17 判定部
18 第二記憶部
19 最終出力部
2 計算装置
21 第一出力情報生成部
22 第二出力情報生成部
23 第三出力情報生成部
24 第四出力情報生成部
3 乱数化可能標本器
4 標本器
【技術分野】
【0001】
この発明は、コンピュータによる計算技術に関する。特に、他の計算機に行わせた計算結果を用いて計算を行う技術に関する。
【背景技術】
【0002】
非特許文献1に、関数fを群H1及び群H2の元を群Gに写す双準同型写像として、乱数化可能標本器を用いて、2つの入力x1,x2に対するf(x1,x2)を計算する技術が発明者により提案されている。以下、この技術を簡単に説明する。
【0003】
群H1の生成元をh1,群H2の生成元をh2とする。この技術では、まず、f(x1,h1)についての乱数化可能標本器を用いた第一の代理計算により、f(x1,h1)を計算する。次に、f(x1,x2)についての乱数化可能標本器及びその計算結果f(x1,h1)を用いた第二の代理計算により、f(x1,x2)を計算する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】山本剛,小林鉄太郎,「準同型写像に対する自己訂正について」,SCIS 2010,p.5−6
【発明の概要】
【発明が解決しようとする課題】
【0005】
背景技術の欄に記載した技術では、f(x1,x2)を計算するために、2回の代理計算を行う必要があった。
【0006】
この発明は、1回の代理計算でf(x1,x2)を計算する技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明の1つの観点による代理計算システムでは、H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、KH1及びKH2をそれぞれH1及びH2の位数、h1及びh2をそれぞれH1及びH2の生成元、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、元x1及び元x2に対応する第一入力情報τ1を生成する第一入力情報生成部と、元x1及び元x2に対応する第二入力情報τ2を生成する第二入力情報生成部と、第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする乱数化可能標本器と、第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする標本器と、計算結果u及びvがu=vaを満たす場合に、そのvを出力する最終出力部と、を含む。
【発明の効果】
【0008】
1回の代理計算でf(x1,x2)を計算することができる。
【図面の簡単な説明】
【0009】
【図1】代理計算システムの構成を説明するためのブロック図。
【図2】依頼装置及び計算装置の構成を説明するためのブロック図。
【図3】第一入力情報生成部の構成を説明するためのブロック図。
【図4】第二入力情報生成部の構成を説明するためのブロック図。
【図5】代理計算方法の処理を説明するためのフローチャート。
【図6】ステップS1の処理を説明するためのフローチャート。
【図7】ステップS2の処理を説明するためのフローチャート。
【図8】ステップS3の処理を説明するためのフローチャート。
【図9】ステップS4の処理を説明するためのフローチャート。
【図10】乱数化可能標本器の変形例の構成を説明するためのブロック図。
【図11】第一入力情報生成部の変形例の構成を説明するためのブロック図。
【図12】ステップS1の変形例の構成を説明するためのフローチャート。
【図13】ステップS2の変形例の構成を説明するためのフローチャート。
【発明を実施するための形態】
【0010】
以下、図面を参照してこの発明の一実施形態を説明する。
【0011】
代理計算システムは、図1に示すように、依頼装置1及び計算装置2を例えば含む。
【0012】
依頼装置1は、図2に示すように、第一入力情報生成部11、第二入力情報生成部12、制御部13、第一記憶部14、第一計算部15、第二計算部16、判定部17、第二記憶部18、最終出力部19を例えば含む。
【0013】
計算装置2は、図2に示すように、第一出力情報生成部21、第二出力情報生成部22、第三出力情報生成部23を例えば含む。
【0014】
まず、記号の定義を行う。H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、KH1及びKH2をそれぞれH1及びH2の位数、h1,h2及びgをそれぞれH1,H2及びGの生成元、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数とする。aは、例えば0以上の整数からランダムに選ばれた数である。ここで、確率変数E1の分布は、aに依存しないとする。
【0015】
双準同型写像とは、2つの入力のそれぞれに対して準同型である写像を意味する。この例では、写像f(x1,x2)は、群H1の元x1に対して準同型であり、かつ、群H2の元x2に対して準同型である。
【0016】
依頼装置1及び計算装置2は協同して、ある入力(x1,x2)に対応するf(x1,x2)の値を計算するか、計算をすることができなかった旨の情報を出力する。
【0017】
制御部13は、tを1とする(ステップS0、図5)。
【0018】
第一入力情報生成部11は、元x1及び元x2に対応する第一入力情報τ1を生成する(ステップS1)。生成された第一入力情報τ1は、計算装置2に送信される。この例では、第一入力情報τ1は、図6に例示するステップS11からステップS16により生成されるx1r1、x2ah2r2r4、x1−r2h1r3及びh2r4である。
【0019】
第一乱数生成部111は、0以上KH1未満の一様乱数r1,r3を生成する(ステップS11)。生成された乱数r1は第一入力計算部113に送信され、生成された乱数r3は第三入力計算部115に送信される。
【0020】
第二乱数生成部112は、0以上KH2未満の一様乱数r2,r4を生成する(ステップS12)。生成された乱数r2は第二入力計算部114及び第三入力計算部115に送信され、生成された乱数r4は第二入力計算部114及び第四入力計算部116に送信される。
【0021】
第一入力計算部113は、生成された乱数r1及び元x1を用いて、x1r1を計算する(ステップS13)。x1の右肩のr1は、r1のことである。このように、この出願において、αを第一の文字、βを第二の文字、γを数字として、αβγと表記した場合には、そのβγはβγ、すなわちβの下付きγを意味する。
【0022】
第二入力計算部114は、生成された乱数r2,r4、元x2及び生成元h2を用いて、x2ah2r2r4を計算する(ステップS14)。
【0023】
第三入力計算部115は、生成された乱数r2,r3、元x1及び生成元h1を用いて、x1−r2h1r3を計算する(ステップS15)。
【0024】
第四入力計算部116は、生成された乱数r4及び生成元h2を用いて、h2r4を計算する(ステップS16)。
【0025】
このように、乱数r1,r2,r3及びr4を用いて入力x1及びx2を撹乱した情報を第一入力情報τ1として計算装置2に送信することにより、入力x1及びx2を計算装置2及び依頼装置1以外の装置に対して秘密にすることができる。
【0026】
乱数化可能標本器3は、第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする(ステップS2)。計算結果uは、第一記憶部14に記憶される。この例では、図7に例示するステップS21からステップS23により計算結果uが生成される。
【0027】
第一出力情報生成部21は、第一入力情報τ1のx1r1及びx2ah2r2r4を用いて、ある確率より大きな確率でf(x1r1,x2ah2r2r4)を正しく計算し、得られた計算結果を第一出力情報z1とする(ステップS21)。第一出力情報z1は、依頼装置1に送信される。
【0028】
群H1の元y1,群H2の元y2を入力したときにある確率δより大きな確率でf(y1,y2)を正しく計算する関数をブラックボックス関数Fとする。第一出力情報生成部21は、例えばブラックボックス関数Fにx1r1及びx2ah2r2r4を入力することにより得た出力値F(x1r1,x2ah2r2r4)を第一出力情報z1とする。すなわち、第一出力情報z1=F(x1r1,x2ah2r2r4)とする。
【0029】
第二出力情報生成部22は、第一入力情報τ1のx1−r2h1r3及びh2r4を用いて、ある確率より大きな確率でf(x1−r2h1r3,h2r4)を正しく計算し、得られた計算結果を第二出力情報z2とする(ステップS22)。第二出力情報z2は、依頼装置1に送信される。第二出力情報生成部22は、例えばブラックボックス関数Fにx1−r2h1r3及びh2r4を入力することにより得た出力値F(x1−r2h1r3,h2r4)を第二出力情報z2とする。すなわち、第二出力情報z2=F(x1−r2h1r3,h2r4)とする。
【0030】
「ある確率」は100%未満の確率である。「ある確率」の例は無視することができない確率であり、「無視することができない確率」の例は、セキュリティパラメータkについての広義単調増加関数である多項式を多項式ψ(k)とした場合の1/ψ(k)以上の確率である。すなわち、第一出力情報生成部21や第二出力情報生成部22は、意図的又は意図的ではない誤差を含んだ計算結果を出力する。言い換えると、第一出力情報生成部21での計算結果がf(x1r1,x2ah2r2r4)の場合もあればf(x1r1,x2ah2r2r4)でない場合もあり、第二出力情報生成部22での計算結果がf(x1−r2h1r3,h2r4)の場合もあればf(x1−r2h1r3,h2r4)でない場合もある。
【0031】
第一計算部15は、第一出力情報z1及び第二出力情報z2を用いて、z11/r1z2y−r3r4を計算してその計算結果を上記uとする(ステップS23)。
【0032】
第二入力情報生成部12は、元x1及び元x2に対応する第二入力情報τ2を生成する(ステップS3)。生成された第二入力情報τ2は、計算装置2に送信される。この例では、第二入力情報τ2は、図8に例示するステップS31からステップS34により生成されるx1r5、x2r6である。
【0033】
第三乱数生成部121は、0以上KH1未満の一様乱数r5を生成する(ステップS31)生成された乱数r5は、第五入力計算部123に送信される
第四乱数生成部122は、0以上KH2未満の乱数r6を生成する(ステップS32)。生成された乱数r6は、第六入力計算部124に送信される。
【0034】
第五入力計算部123は、元x1及び乱数r5を用いて、x1r5を計算する(ステップS33)。
【0035】
第六入力計算部124は、元x2及び乱数r6を用いて、x2r6を計算する(ステップS34)。
【0036】
このように、乱数r5及びr6を用いて、入力x1及びx2を撹乱した情報を第二入力情報τ2として計算装置2に送信することにより、入力x1及びx2を計算装置2及び依頼装置1以外の装置に対して秘密にすることができる。
【0037】
標本器4は、第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする(ステップS4)。計算結果vは、第二記憶部18に記憶される。
【0038】
この例では、図9に例示するステップS41及びステップS42において、計算装置2に設けられた第三出力情報生成部23と、依頼装置1に設けられた第二計算部16とが計算結果vを生成する。
【0039】
第三出力情報生成部23は、第二入力情報τ2を用いて、ある確率より大きな確率でf(x1r5,x2r6)を正しく計算し、得られた計算結果を第三出力情報z3とする(ステップS41)。第三出力情報z3は、依頼装置1に送信される。例えば、ブラックボックス関数Fにx1r5及びx2r6を入力することにより得た出力値F(x1r5,x2r6)を第三出力情報z3とする。すなわち、第三出力情報z3=F(x1r5,x2r6)である。
【0040】
第二計算部16は、第三出力情報z3及び乱数r5及びr6を用いて、z31/r5r6を計算してその計算結果をvとする(ステップS42)。なお、z31/r5r6は、z31/(r5r6)である。
【0041】
判定部17は、第一記憶部14に記憶された計算結果u及び第二記憶部18に記憶された計算結果vの中で、u=vaとなるものがあるか判定する(ステップS5)。第一記憶部14に記憶された複数の計算結果uから選択された1つの計算結果uと、第二記憶部18から選択された1つの計算結果vとから構成される計算結果の組は、第一記憶部14に記憶された計算結果uの数U個と第二記憶部18に記憶された計算結果vの数V個とを乗算した数U×V個存在する。判定部17は、U×V個の計算結果の組のそれぞれについて、その計算結果の組を構成する計算結果uと計算結果vとが、u=vaという関係を満たすか判定する。
【0042】
なお、判定部17は、前回のステップS5において判定を行った計算結果の組については、その判定を省略してもよい。換言すれば、判定部17は、例えば新たに追加された計算結果u又は計算結果vから少なくとも一方が構成される計算結果の組についてのみ判定を行ってもよい。既に判定を行った計算結果の組についての判定を省略することにより、処理を高速に行うことができ、必要なハードウェア資源の量を小さくすることができる。
【0043】
最終出力部19は、判定部17においてu=vaとなるものがあると判定された場合には、このu=vaという関係を満たすvを出力する(ステップS6)。このu=vaという関係を満たすvが、高い確率でf(x1,x2)の値と一致する。その理由については、後述する。
【0044】
制御部13は、t=Tであるか判定する(ステップS7)。Tは予め定められた正の整数である。t=Tであれば、制御部13は、計算をすることができなかった旨の情報、例えば記号「⊥」を出力して(ステップS8)、処理を終える。t=Tでない場合には、制御部13は、tを1だけインクリメント、すなわちtにt+1を代入して(ステップS9)、ステップS1に戻る。
【0045】
≪高い確率でu=vaという関係を満たすvがf(x1,x2)となる理由について≫
Xを群Gに値を持つ確率変数とする。w∈Gについて、要求を受けるたびに確率変数Xに従った標本x’に対応するwx’を返すものを、wについて誤差Xを持つ標本器(sampler)と呼ぶ。
【0046】
与えられた自然数aに確率変数Xの分布が依存せず、w∈Gについて、要求を受けるたびに確率変数Xに従った標本x’に対応するwax’を返すものを、wについて誤差Xを持つ乱数化可能標本器(randomizable sampler)と呼ぶ。乱数化可能標本器はa=1として用いられれば標本器として機能する。
【0047】
上記の実施形態においては、乱数化可能標本器3がf(x1,x2)についての誤差E1を持つ乱数化可能標本器であり、標本器4がf(x1,x2)についての誤差E2を持つ標本器である。
【0048】
乱数化可能標本器3により計算されるu=f(x1,x2)ae1、及び、標本器4により計算されるv=f(x1,x2)e2が、u=vaという関係を満たす場合、e1及びe2が群Gの単位元egである可能性が非常に高いことを発明者は見出した。ここでは、その証明を省略する。e2が群Gの単位元egであるとき、v=f(x1,x2)e2=f(x1,x2)eg=f(x1,x2)となる。
【0049】
入力x1,x2に対してブラックボックス関数Fを用いて計算を行う、w=f(x1,x2)についての標本器をΣ’F(x1,x2)と表記する。また、入力x1,x2及び与えられた自然数aに対してブラックボックス関数Fを用いて計算を行う、w=f(x1,x2)についての乱数化可能標本器をΣF(x1,x2,a)と表記する。
【0050】
確率変数E1=F(x1r1,x2ah2r2r4)1/r1f(x1r1,x2ah2r2r4)−1/r1F(x1−r2h1r3,h2r4)f(x1−r2h1r3,h2r4)−1とすると、第一計算部15により計算されるz11/r1z2y−r3r4は、f(x1,x2)についての誤差E1を持つ乱数化可能標本器ΣF(x1,x2,a)となる。すなわち、ΣF(x1,x2,a)=z11/r1z2y−r3r4=f(x1,x2)aE1となる。換言すれば、E1=z11/r1z2y−r3r4f(x1,x2)−aとなる。
【0051】
定義より、z1=F(x1r1,x2ah2r2r4)、z2=F(x1−r2h1r3,h2r4)であり、これらをE1=z11/r1z2y−r3r4f(x1,x2)−aに代入すると以下のように式展開でき、E1=F(x1r1,x2ah2r2r4)1/r1f(x1r1,x2ah2r2r4)−1/r1F(x1−r2h1r3,h2r4)f(x1−r2h1r3,h2r4)−1であることがわかる。また、関数f及びブラックボックス関数Fの入力の1つであるx2ah2r2r4は乱数r2及びr4により撹乱されておりaに依存しない。このため、確率変数E1もaに依存しない。
【0052】
E1=z11/r1z2y−r3r4f(x1,x2)−a
=F(x1r1,x2ah2r2r4)1/r1F(x1−r2h1r3,h2r4)f(x1,x2)−ay−r3r4
=F(x1r1,x2ah2r2r4)1/r1F(x1−r2h1r3,h2r4)f(x1,x2)−ay−r3r4f(x1r1,x2ah2r2r4)1/r1f(x1−r2h1r3,h2r4)f(x1r1,x2ah2r2r4)−1/r1f(x1−r2h1r3,h2r4)−1 …(1)
A=f(x1,x2)−af(x1r1,x2ah2r2r4)1/r1f(x1−r2h1r3,h2r4),B=F(x1r1,x2ah2r2r4)1/r1f(x1r1,x2ah2r2r4)−1/r1,C=F(x1−r2h1r3,h2r4)f(x1−r2h1r3,h2r4)−1とすると、上記(1)式=ABCy−r3r4と書ける。
【0053】
ここで、関数fの準同型性により、A=f(x1,x2)−af(x1r1,x2ah2r2r4)1/r1f(x1−r2h1r3,h2r4)=f(x1,x2)−af(x1,x2)af(x1,h2)r2r4f(x1,h2)−r2r4f(h1,h2)r3r4=yr3r4である。
【0054】
このため、上記(1)式=ABCy−r3r4=yr3r4BCy−r3r4=BCである。よって、E1=z11/r1z2y−r3r4f(x1,x2)−a=BC=F(x1r1,x2ah2r2r4)1/r1f(x1r1,x2ah2r2r4)−1/r1F(x1−r2h1r3,h2r4)f(x1−r2h1r3,h2r4)−1となるのである。換言すれば、z11/r1z2y−r3r4=f(x1,x2)aE1である。
【0055】
また、確率変数E2=F(x1r5,x2r6)1/r5r6f(x1,x2)−1とすると、第二計算部16により計算されるz31/r5r6は、f(x1,x2)についての誤差E2を持つ標本器Σ’F(x1,x2)となる。すなわち、Σ’F(x1,x2)=z31/r5r6=f(x1,x2)E2となる。
【0056】
[変形例等]
図10に例示するように、乱数化可能標本器3を構成してもよい。図10の乱数化可能標本器3は、第一計算部15、第一出力情報生成部21、第二出力情報生成部22、第四出力情報生成部24を備える。第一計算部15は、依頼装置1に設けられ、3つの出力情報z1,z2,z4からuを計算する。第一出力情報生成部21、第二出力情報生成部22、第四出力情報生成部24は、計算装置2に設けられる。
【0057】
この場合の第一入力情報生成部11は、図11に示すように、乱数生成部119、第一入力計算部113、第二入力計算部114、第三入力計算部115、第四入力計算部116、第五入力計算部117、第六入力計算部118を例えば備える。
【0058】
乱数生成部119は、乱数s1,s2,s3,s4,s5,s6を生成する(ステップS11、図12)。乱数s1,s2,s3,s4,s5,s6は、例えば0以上所定の数以下の一様乱数である。ここで、所定の数は、例えばn(k)を群H1又は群H2を表現するビット長として、2n(k)+kである。乱数s1,s2は、第一入力計算部113に送信される。乱数s3,s4は、第二入力計算部114に送信される。乱数s1は、第三入力計算部115に送信される。乱数s2,s5は、第四入力計算部116に送信される。乱数s4,s6は、第五入力計算部117に送信される。乱数s3は、第六入力計算部118に送信される。
【0059】
第一入力計算部113は、x1h1s1s2を計算する(ステップS13)。
【0060】
第二入力計算部114は、x2ah2s3s4を計算する(ステップS14)。
【0061】
第三入力計算部115は、h1s1を計算する(ステップS15)。
【0062】
第四入力計算部116は、x2−as2h2s5を計算する(ステップS16)。
【0063】
第五入力計算部117は、x1−s4h1s6を計算する(ステップS17)。
【0064】
第六入力計算部118は、h2s3を計算する(ステップS18)。
【0065】
この変形例では、これらの計算されたx1h1s1s2,x2ah2s3s4,h1s1,x2−as2h2s5,x1−s4h1s6,h2s3が、第一入力情報τ1となる。第一入力情報τ1は、計算装置2に送信される。
【0066】
第一出力情報生成部21は、第一入力情報τ1のx1h1s1s2,x2ah2s3s4を用いて、ある確率より大きな確率でf(x1h1s1s2,x2ah2s3s4)を正しく計算し、得られた計算結果を第一出力情報z1とする(ステップS21、図13)。第一出力情報z1は、依頼装置1に送信される。第一出力情報生成部21は、例えばブラックボックス関数Fにx1h1s1s2及びx2ah2s3s4を入力することにより得た出力値F(x1h1s1s2,x2ah2s3s4)を第一出力情報z1とする。すなわち、第一出力情報z1=F(x1h1s1s2,x2ah2s3s4)とする。
【0067】
第二出力情報生成部22は、第一入力情報τ1のh1s1及びx2−as2h2s5を用いて、ある確率より大きな確率でf(h1s1,x2−as2h2s5)を正しく計算し、得られた計算結果を第二出力情報z2とする(ステップS22)。第二出力情報z2は、依頼装置1に送信される。第二出力情報生成部22は、例えばブラックボックス関数Fにh1s1,x2−as2h2s5を入力することにより得た出力値F(h1s1,x2−as2h2s5)を第二出力情報z2とする。すなわち、第二出力情報z2=F(h1s1,x2−as2h2s5)とする。
【0068】
第四出力情報生成部24は、第一入力情報τ1のx1−s4h1s6及びh2s3を用いて、ある確率より大きな確率でf(x1−s4h1s6,h2s3)を正しく計算し、得られた計算結果を第四出力情報z4とする(ステップS24)。第四出力情報z4は、依頼装置1に送信される。第四出力情報生成部24は、例えばブラックボックス関数Fにx1−s4h1s6,h2s3を入力することにより得た出力値F(x1−s4h1s6,h2s3)を第四出力情報z4とする。すなわち、第四出力情報z4=F(x1−s4h1s6,h2s3)とする。
【0069】
第一計算部15は、第一出力情報z1、第二出力情報z2及び第四出力情報z4を用いて、z1z2z4y−s1s2s3s4−s1s5−s3s6を計算してその計算結果をuとする(ステップS23)。その他の処理は、上記実施形態と同じである。
【0070】
このように、uを計算することにより、上記実施形態の第一計算部15が行っていた逆元の計算が不必要となり、演算をより効率的に行うことができる。このばあい、E1=F(x1h1s1s2,x2ah2s3s4)f(x1h1s1s2,x2ah2s3s4)−1F(h1s1,x2−as2h2s5)f(h1s1,x2−as2h2s5)−1F(x1−s4h1s6,h2s3)f(x1−s4h1s6,h2s3)−1である。s1,s2,s3,s4,s5,s6は乱数であるから、E1はaに依存しない確率変数である。
【0071】
確率変数E1,E2は、同じでも異なっていてもよい。したがって、標本器4は、乱数化可能標本器3またはその変形例に示した乱数化可能標本器で、aを1で置き換えたもので代替することができる。
第一乱数生成部111、第二乱数生成部112、第三乱数生成部121、第四乱数生成部122、乱数生成部119は、一様乱数を生成することにより、代理計算システムの安全性が最も高くなる。しかし、求める安全性のレベルがそれほど高くない場合には、第一乱数生成部111、第二乱数生成部112、第三乱数生成部121、第四乱数生成部122、乱数生成部119は、一様乱数ではない乱数を生成してもよい。
【0072】
また、第一乱数生成部111、第二乱数生成部112、第三乱数生成部121、第四乱数生成部122は、0以上所定の数以下の乱数を生成してもよい。ここで、例えばn(k)を群H1又は群H2を表現するビット長として、所定の数は2n(k)+kである。
【0073】
また、依頼装置1が複数の第一入力情報及び第二入力情報を計算装置2にまとめて提供し、対応する計算結果を複数個まとめて取得してもよい。これにより、依頼装置1と計算装置2との間のやり取り回数を減らすことができる。
【0074】
上記の実施形態では、例えばx1r1、x2ah2r2r4、x1−r2h1r3及びh2r4を第一入力情報τ1としたが、第一入力情報τ1は乱数化可能標本器3がその第一入力情報τ1に基づいてf(x1,x2)ae1を計算可能することができればどのような情報でもよい。例えば、x1及びx2自体や、x1及びx2に関する情報や、(x1,x2,r1,r2,r3,r4)の組を第一入力情報τ1としてもよい。
【0075】
同様に、上記の実施形態では、x1r5及びx2r6を上記第二入力情報τ2としたが、第二入力情報τ2は乱数化可能標本器3がその第二入力情報τ2に基づいてf(x1,x2)e2を計算可能することができればどのような情報でもよい。例えば、x1及びx2自体や、x1及びx2に関する情報や、(x1,x2,r5,r6)の組を第二入力情報τ2としてもよい。
【0076】
乱数化可能標本器3を構成する第一計算部15、第一出力情報生成部21及び第二出力情報生成部22の少なくとも1つの部が計算装置2に備えられていれば、乱数化可能標本器3を構成する他の部は依頼装置1及び計算装置2の何れに備えられていてもよい。例えば、第一計算部15、第一出力情報生成部21及び第二出力情報生成部22のすべてが計算装置2に備えられていてもよい。
【0077】
同様に、標本器4を構成する第二計算部16及び第三出力情報生成部23の少なくとも1つの部が計算装置2に備えられていれば、標本器4を構成する他の部は依頼装置1及び計算装置2の何れに備えられていてもよい。例えば、第二計算部16及び第三出力情報生成部23のすべてが計算装置2に備えられていてもよい。
【0078】
依頼装置1及び計算装置2の各部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
【0079】
その他、この発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。例えば、図5に破線で示すように、ステップS2とステップS3の間に、ステップS5の処理を行ってもよい。
【0080】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0081】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0082】
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【符号の説明】
【0083】
1 依頼装置
11 第一入力情報生成部
111 第一乱数生成部
112 第二乱数生成部
113 第一入力計算部
114 第二入力計算部
115 第三入力計算部
116 第四入力計算部
117 第五入力計算部
118 第六入力計算部
119 乱数生成部119
12 第二入力情報生成部
121 第三乱数生成部
122 第四乱数生成部
123 第五入力計算部
124 第六入力計算部
13 制御部
14 第一記憶部
15 第一計算部
16 第二計算部
17 判定部
18 第二記憶部
19 最終出力部
2 計算装置
21 第一出力情報生成部
22 第二出力情報生成部
23 第三出力情報生成部
24 第四出力情報生成部
3 乱数化可能標本器
4 標本器
【特許請求の範囲】
【請求項1】
H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、
上記元x1及び元x2に対応する第一入力情報τ1を生成する第一入力情報生成部と、
上記元x1及び元x2に対応する第二入力情報τ2を生成する第二入力情報生成部と、
上記第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする乱数化可能標本器と、
上記第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする標本器と、
上記計算結果u及びvがu=vaを満たす場合に、そのvを出力する最終出力部と、
を含む代理計算システム。
【請求項2】
請求項1の代理計算システムにおいて、
h1及びh2をそれぞれH1及びH2の生成元として、
上記第一入力情報生成部は、0以上所定の数以下の乱数r1,r3を生成する第一乱数生成部と、0以上所定の数以下の乱数r2,r4を生成する第二乱数生成部と、x1r1を計算する第一入力計算部と、x2ah2r2r4を計算する第二入力計算部と、x1−r2h1r3を計算する第三入力計算部と、h2r4を計算する第四入力計算部と、を含み、これらの計算されたx1r1、x2ah2r2r4、x1−r2h1r3及びh2r4を上記第一入力情報τ1とし、
y=f(h1,h2)として、上記乱数化可能標本器は、上記第一入力情報τ1のx1r1及びx2ah2r2r4を用いて、ある確率より大きな確率でf(x1r1,x2ah2r2r4)を正しく計算し、得られた計算結果を第一出力情報z1とする第一出力情報生成部と、上記第一入力情報τ1のx1−r2h1r3、h2r4を用いて、ある確率より大きな確率でf(x1−r2h1r3,h2r4)を正しく計算し、得られた計算結果を第二出力情報z2とする第二出力情報生成部と、z11/r1z2y−r3r4を計算してその計算結果を上記uとする第一計算部と、を含み、
上記第二入力情報生成部は、0以上所定の数以下の乱数r5を生成する第三乱数生成部と、0以上所定の数以下の乱数r6を生成する第四乱数生成部と、x1r5を計算する第五入力計算部と、x2r6を計算する第六入力計算部と、を含み、これらの計算されたx1r5、x2r6を上記第二入力情報τ2とし、
上記標本器は、上記第二入力情報τ2を用いて、ある確率より大きな確率でf(x1r5,x2r6)を正しく計算し、得られた計算結果を第三出力情報z3とする第三出力情報生成部と、z31/r5r6を計算してその計算結果を上記vとする第二計算部と、を含む、
代理計算システム。
【請求項3】
H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、
上記元x1及び元x2に対応する第一入力情報τ1を生成する第一入力情報生成部と、
上記元x1及び元x2に対応する第二入力情報τ2を生成する第二入力情報生成部と、
上記第一入力情報τ1を用いてf(x1,x2)ae1を計算可能な乱数化可能標本器による計算結果uと、上記第二入力情報τ2を用いてf(x1,x2)e2を計算可能な標本器による計算結果vとが、u=vaを満たす場合に、そのvを出力する最終出力部と、
を含む依頼装置。
【請求項4】
H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、
上記元x1及び元x2に対応する第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする乱数化可能標本器と、
上記元x1及び元x2に対応する第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする標本器と、
を含む計算装置。
【請求項5】
H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、
第一入力情報生成部が、上記元x1及び元x2に対応する第一入力情報τ1を生成する第一入力情報生成ステップと、
第二入力情報生成部が、上記元x1及び元x2に対応する第二入力情報τ2を生成する第二入力情報生成ステップと、
乱数化可能標本器が、上記第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとするステップと、
標本器が、上記第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとするステップと、
最終出力部が、上記計算結果u及びvがu=vaを満たす場合に、そのvを出力する最終出力ステップと、
を含む代理計算方法。
【請求項6】
請求項1の代理計算システムにおいて、
h1及びh2をそれぞれH1及びH2の生成元として、
上記第一入力情報生成部は、0以上所定の数以下の乱数s1,s2,s3,s4,s5,s6を生成する乱数生成部と、x1h1s1s2を計算する第一入力計算部と、x2ah2s3s4を計算する第二入力計算部と、h1s1を計算する第三入力計算部と、x2−as2h2s5を計算する第四入力計算部と、x1−s4h1s6を計算する第五入力計算部と、h2s3を計算する第六入力計算部と、を含み、これらの計算されたx1h1s1s2,x2ah2s3s4,h1s1,x2−as2h2s5,x1−s4h1s6及びh2s3を上記第一入力情報τ1とし、
y=f(h1,h2)として、上記乱数化可能標本器は、上記第一入力情報τ1のx1h1s1s2,x2ah2s3s4を用いて、ある確率より大きな確率でf(x1h1s1s2,x2ah2s3s4)を正しく計算し、得られた計算結果を第一出力情報z1とする第一出力情報生成部と、上記第一入力情報τ1のh1s1及びx2−as2h2s5を用いて、ある確率より大きな確率でf(h1s1,x2−as2h2s5)を正しく計算し、得られた計算結果を第二出力情報z2とする第二出力情報生成部と、上記第一入力情報τ1のx1−s4h1s6及びh2s3を用いて、ある確率より大きな確率でf(x1−s4h1s6,h2s3)を正しく計算し、得られた計算結果を第四出力情報z4とする第四出力情報生成部と、z1z2z4y−s1s2s3s4−s1s5−s3s6を計算してその計算結果を上記uとする第一計算部と、を含み、
上記第二入力情報生成部は、0以上所定の数以下の乱数r5を生成する第三乱数生成部と、0以上所定の数以下の乱数r6を生成する第四乱数生成部と、x1r5を計算する第五入力計算部と、x2r6を計算する第六入力計算部と、を含み、これらの計算されたx1r5、x2r6を上記第二入力情報τ2とし、
上記標本器は、上記第二入力情報τ2を用いて、ある確率より大きな確率でf(x1r5,x2r6)を正しく計算し、得られた計算結果を第三出力情報z3とする第三出力情報生成部と、z31/r5r6を計算してその計算結果を上記vとする第二計算部と、を含む、
代理計算システム。
【請求項7】
請求項3の依頼装置の各部としてコンピュータを機能させるためのプログラム。
【請求項8】
請求項4の計算装置の各部としてコンピュータを機能させるためのプログラム。
【請求項1】
H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、
上記元x1及び元x2に対応する第一入力情報τ1を生成する第一入力情報生成部と、
上記元x1及び元x2に対応する第二入力情報τ2を生成する第二入力情報生成部と、
上記第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする乱数化可能標本器と、
上記第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする標本器と、
上記計算結果u及びvがu=vaを満たす場合に、そのvを出力する最終出力部と、
を含む代理計算システム。
【請求項2】
請求項1の代理計算システムにおいて、
h1及びh2をそれぞれH1及びH2の生成元として、
上記第一入力情報生成部は、0以上所定の数以下の乱数r1,r3を生成する第一乱数生成部と、0以上所定の数以下の乱数r2,r4を生成する第二乱数生成部と、x1r1を計算する第一入力計算部と、x2ah2r2r4を計算する第二入力計算部と、x1−r2h1r3を計算する第三入力計算部と、h2r4を計算する第四入力計算部と、を含み、これらの計算されたx1r1、x2ah2r2r4、x1−r2h1r3及びh2r4を上記第一入力情報τ1とし、
y=f(h1,h2)として、上記乱数化可能標本器は、上記第一入力情報τ1のx1r1及びx2ah2r2r4を用いて、ある確率より大きな確率でf(x1r1,x2ah2r2r4)を正しく計算し、得られた計算結果を第一出力情報z1とする第一出力情報生成部と、上記第一入力情報τ1のx1−r2h1r3、h2r4を用いて、ある確率より大きな確率でf(x1−r2h1r3,h2r4)を正しく計算し、得られた計算結果を第二出力情報z2とする第二出力情報生成部と、z11/r1z2y−r3r4を計算してその計算結果を上記uとする第一計算部と、を含み、
上記第二入力情報生成部は、0以上所定の数以下の乱数r5を生成する第三乱数生成部と、0以上所定の数以下の乱数r6を生成する第四乱数生成部と、x1r5を計算する第五入力計算部と、x2r6を計算する第六入力計算部と、を含み、これらの計算されたx1r5、x2r6を上記第二入力情報τ2とし、
上記標本器は、上記第二入力情報τ2を用いて、ある確率より大きな確率でf(x1r5,x2r6)を正しく計算し、得られた計算結果を第三出力情報z3とする第三出力情報生成部と、z31/r5r6を計算してその計算結果を上記vとする第二計算部と、を含む、
代理計算システム。
【請求項3】
H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、
上記元x1及び元x2に対応する第一入力情報τ1を生成する第一入力情報生成部と、
上記元x1及び元x2に対応する第二入力情報τ2を生成する第二入力情報生成部と、
上記第一入力情報τ1を用いてf(x1,x2)ae1を計算可能な乱数化可能標本器による計算結果uと、上記第二入力情報τ2を用いてf(x1,x2)e2を計算可能な標本器による計算結果vとが、u=vaを満たす場合に、そのvを出力する最終出力部と、
を含む依頼装置。
【請求項4】
H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、
上記元x1及び元x2に対応する第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとする乱数化可能標本器と、
上記元x1及び元x2に対応する第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとする標本器と、
を含む計算装置。
【請求項5】
H1,H2及びGを巡回群、h1,h2及びgをそれぞれH1,H2及びGの生成元、f(x1,x2)を群H1の元x1及び群H2の元x2の組を群Gへ写す双準同型写像、E1及びE2を群Gに値を持つ確率変数、e1及びe2をそれぞれ確率変数E1及びE2の実現値、aを0以上の整数として、
第一入力情報生成部が、上記元x1及び元x2に対応する第一入力情報τ1を生成する第一入力情報生成ステップと、
第二入力情報生成部が、上記元x1及び元x2に対応する第二入力情報τ2を生成する第二入力情報生成ステップと、
乱数化可能標本器が、上記第一入力情報τ1を用いて、f(x1,x2)ae1を計算可能であり、その計算結果をuとするステップと、
標本器が、上記第二入力情報τ2を用いて、f(x1,x2)e2を計算可能であり、その計算結果をvとするステップと、
最終出力部が、上記計算結果u及びvがu=vaを満たす場合に、そのvを出力する最終出力ステップと、
を含む代理計算方法。
【請求項6】
請求項1の代理計算システムにおいて、
h1及びh2をそれぞれH1及びH2の生成元として、
上記第一入力情報生成部は、0以上所定の数以下の乱数s1,s2,s3,s4,s5,s6を生成する乱数生成部と、x1h1s1s2を計算する第一入力計算部と、x2ah2s3s4を計算する第二入力計算部と、h1s1を計算する第三入力計算部と、x2−as2h2s5を計算する第四入力計算部と、x1−s4h1s6を計算する第五入力計算部と、h2s3を計算する第六入力計算部と、を含み、これらの計算されたx1h1s1s2,x2ah2s3s4,h1s1,x2−as2h2s5,x1−s4h1s6及びh2s3を上記第一入力情報τ1とし、
y=f(h1,h2)として、上記乱数化可能標本器は、上記第一入力情報τ1のx1h1s1s2,x2ah2s3s4を用いて、ある確率より大きな確率でf(x1h1s1s2,x2ah2s3s4)を正しく計算し、得られた計算結果を第一出力情報z1とする第一出力情報生成部と、上記第一入力情報τ1のh1s1及びx2−as2h2s5を用いて、ある確率より大きな確率でf(h1s1,x2−as2h2s5)を正しく計算し、得られた計算結果を第二出力情報z2とする第二出力情報生成部と、上記第一入力情報τ1のx1−s4h1s6及びh2s3を用いて、ある確率より大きな確率でf(x1−s4h1s6,h2s3)を正しく計算し、得られた計算結果を第四出力情報z4とする第四出力情報生成部と、z1z2z4y−s1s2s3s4−s1s5−s3s6を計算してその計算結果を上記uとする第一計算部と、を含み、
上記第二入力情報生成部は、0以上所定の数以下の乱数r5を生成する第三乱数生成部と、0以上所定の数以下の乱数r6を生成する第四乱数生成部と、x1r5を計算する第五入力計算部と、x2r6を計算する第六入力計算部と、を含み、これらの計算されたx1r5、x2r6を上記第二入力情報τ2とし、
上記標本器は、上記第二入力情報τ2を用いて、ある確率より大きな確率でf(x1r5,x2r6)を正しく計算し、得られた計算結果を第三出力情報z3とする第三出力情報生成部と、z31/r5r6を計算してその計算結果を上記vとする第二計算部と、を含む、
代理計算システム。
【請求項7】
請求項3の依頼装置の各部としてコンピュータを機能させるためのプログラム。
【請求項8】
請求項4の計算装置の各部としてコンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−145891(P2012−145891A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2011−6165(P2011−6165)
【出願日】平成23年1月14日(2011.1.14)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願日】平成23年1月14日(2011.1.14)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]