JP5858938B2 - 計算装置、計算システム、計算方法 - Google Patents
計算装置、計算システム、計算方法 Download PDFInfo
- Publication number
- JP5858938B2 JP5858938B2 JP2013006444A JP2013006444A JP5858938B2 JP 5858938 B2 JP5858938 B2 JP 5858938B2 JP 2013006444 A JP2013006444 A JP 2013006444A JP 2013006444 A JP2013006444 A JP 2013006444A JP 5858938 B2 JP5858938 B2 JP 5858938B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- carry
- operator
- log
- carry operator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
本発明の計算装置は、キャリー演算子算出部、Log分岐木作成部、ノード演算実行部、キャリー伝搬処理部、ルート演算実行部、出力部を備える。キャリー演算子算出部は、他の計算装置と協調して[a]qと[b]qに対して、ビット表現された桁ごとに、両方とも1であることを示す秘匿された演算子S、一方だけ1であることを示す秘匿された演算子P、両方とも0であることを示す秘匿された演算子Kのいずれか1つを求め、各桁のキャリー演算子とする。Log分岐木作成部は、キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log分岐木を作成する。ノード演算実行部は、Log分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする。
(1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成する。
(2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする。
(3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする。
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする。出力部は、ルート演算実行部の処理の結果、ノードキャリー演算子がSとなった桁から1つ上の桁へのキャリービットが1であることを示す秘匿された情報を出力し、その他の結果の桁はキャリービットが0であることを示す秘匿された情報を出力する。
<予備的説明>
まず、秘匿計算について説明する。N台の計算装置で有限体Zqに属する整数aを秘密分散する方法として、K−1次多項式f_a(x)を用いる方法などがある(ただし、K<N/2)。この方法では、例えば、f_a(0)=aとし、計算装置100nにはf_a(n)を配る。配られる情報f_a(n)を整数aの断片と呼ぶことにする。このとき、K台の計算装置が協力すればK−1次多項式f_a(x)を解くことができるので、f_a(0)を求めることができる。
f_a+b(n)=f_a(n)+f_b(n) mod q
を計算する(S910n)。各計算装置が個別に計算すればよいので、計算装置間での通信は不要である。
f_ab(n)=f_a(n)×f_b(n) mod q
を計算する(S921n)。しかし、f_ab(x)は2(K−1)次の多項式になってしまう。そこで、計算装置100nは、K−1次多項式F_(f_ab(n))(x)を用いて、f_ab(n)の断片F_(f_ab(n))(1),…,F_(f_ab(n))(N)を計算し、計算装置100mに断片F_(f_ab(n))(m)を配る(S922n)。したがって、N(N−1)回の通信、つまり通信量がO(N2)の通信が必要になる。次に、計算装置100nは、断片F_(f_ab(1))(n),…,F_(f_ab(N))(n)から、個別に、ラグランジェ多項式補間によって断片F_ab(n)を求める(S923n)。
f_ka(n)=k×f_a(n) mod q
を計算する(S930n)。各計算装置が個別に計算すればよいので、計算装置間での通信は不要である。したがって、秘匿された値同士の乗算の場合に通信が必要になることが分かる。
[si]q=[ai]q×[bi]q
の秘匿計算によって求める(S811n)。この計算では、秘匿されたビット同士の乗算なので計算装置間での通信が必要である。そして、計算装置1001,…,100Nは、[pi]qを
[pi]q=[ai]q+[bi]q−2[si]q
のように秘匿計算によって求め(S812n)、[ki]qを
[ki]q=1−[si]q−[pi]q
のように秘匿計算によって求める(S813n)。そして、[si]q,[pi]q,[ki]qの組[ei]qを出力する(S814n)。ステップS812n〜S814nの処理では計算装置間で通信の必要はない。
図7に2分岐木を用いた計算装置の構成例を示す。この構成は、非特許文献2に示された方式に基づいた計算装置800nであり、計算システムは図1のようにネットワーク900に接続されたN台の計算装置8001,…,800Nで構成されている。計算装置800nは、キャリー演算子算出部810n、2分岐木作成部820n、ノード演算実行部830n、2分岐ルート演算実行部850n、出力部880n、記録部890nを備える。記録部890nは、整数a,bの断片などを記録しておく。図8に図7の計算装置で構成した計算システムの処理フローを示す。また、図9に、a=“11011011”,b=“01100001”の場合のキャリー演算子と演算結果とキャリーの関係を例示する。図9では、2分岐木を用いたキャリーの計算を説明しやすいように、L=8の例を示している。以下では、一連の処理によって演算結果の行に示されたキャリー演算子の列が得られることを示す。
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする。図11は、図9の例のときに得られるノードキャリー演算子を示す図である。1回のキャリー演算子同士の演算では、1回の秘匿されたビット同士の乗算だから、1回のO(N2)のオーダの通信が必要である。よって、1つのノードに割り当てられたキャリー演算子が1つになるまで演算を行うには(ノードに割り当てられた数−1)回のO(N2)のオーダの通信が必要である(つまり、O(ノードに割り当てられた数)のオーダの通信量となる)。そして、分岐木の深さがlogLであることから、2分岐木全体に対してステップS830nの処理を行うには、O(L・logL)のオーダの通信量が必要となる。
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(S850n)。図12に、図9の例のときの2分岐ルート演算実行部850nの処理のイメージを示す。例えば、点線で丸印を付したノード821−3−6の場合、このノードよりも下の桁のキャリー演算子が割り当てられたノードは、ノード821−3−1〜5なので、ノード821−3−1〜6に割り当てられたキャリー演算子の列の演算を行えばよい。例えば、ノード821−3−1〜4に割り当てられたキャリー演算子を演算した結果はノード821−1−1に割り当てられているので、ノード821−3−6,821−3−5,821−1−1に割り当てられたキャリー演算子の列“PPK”を演算し、演算結果“K”を得る。もしくは、ノード821−3−1〜4の結果はノード821−1−1に割り当てられ、ノード821−3−6,821−3−5の結果はノード821−2−3に割り当てられているので、“PK”を演算し、演算結果“K”を得てもよい。この処理でも、整数a,bのビット長Lと分岐木の深さlogLを考慮すると、O(L・logL)のオーダの通信量が必要である。
本実施例の計算システムの構成例は、図1に示したとおりである。図13に、実施例1の計算装置の機能構成例を示す。図14に、実施例1の計算装置を用いた計算システムの処理フローを示す。計算装置100nは、キャリー演算子算出部810n、Log分岐木作成部120n、ノード演算実行部830n、キャリー伝搬処理部140n、ルート演算実行部150n、出力部180n、記録部190nを備える。記録部190nは、整数a,bの断片などを記録しておく。本実施例では、図15に示したLog分岐木を作成する。Log分岐木は、1つの子ノードに割り当てるキャリー演算子の数がlog(親ノードに割り当てられたキャリー演算子の数)となるようにキャリー演算子の列を分割する。したがって、子ノードの数は(親ノードに割り当てられたキャリー演算子の数)/log(親ノードに割り当てられたキャリー演算子の数)となる。図16は、a=“0010110011011011”,b=“0001100001100001”の場合のキャリー演算子と演算結果とキャリーの関係を例示する。図16では、Log分岐木を用いたキャリーの計算を説明しやすいように、L=16の例を示している。以下では、一連の処理によって演算結果の行に示されたキャリー演算子の列が得られることを示す。
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする。なお、“規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め”とは、規則にしたがった演算を忠実に実行するという意味に限定するものではなく、忠実に実行したのと同じ結果が得られるように演算することを意味している。例えば、SとKは、その演算子よりも下位の桁の演算子に関わらず、演算結果が決まっている。つまり、上位側から演算し、SまたはKが出現すれば、それよりも下位の桁については演算しなくても、忠実に演算したのと同じ結果が得られるので、それより下位側の演算は省略してもよい。図18は、図16の例のときに得られるノードキャリー演算子を示す図である。1回のキャリー演算子同士の演算では、1回の秘匿されたビット同士の乗算だから、1回のO(N2)のオーダの通信が必要である。よって、1つのノードに割り当てられたキャリー演算子が1つになるまで演算を行うには(ノードに割り当てられた数−1)回のO(N2)のオーダの通信が必要である(つまり、O(ノードに割り当てられた数)のオーダの通信量となる)。そして、分岐木の深さがlog*(1)Lであることから、Log分岐木全体に対してステップS830nの処理を行うには、O(L・log*(1)L)のオーダの通信量が必要となる。
(1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成する(2分岐木作成部820nの処理に相当する。)。
(2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(ノード演算実行部830nの処理に相当する。)。
(3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(2分岐ルート演算実行部850nの処理に相当する。)。これらの処理によって、兄弟ノード内の下位の桁側のキャリー演算子の影響を含んだキャリー演算子が、各ノードのノードキャリー演算子として設定される。
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(S150n)。図21に、図16の例のときのルート演算実行部150nの処理を示す。例えば、点線で丸印を付したノード121−3−7の場合、このノードよりも下の桁のキャリー演算子が割り当てられたノードは、ノード121−3−1〜6なので、ノード121−3−1〜7に割り当てられたキャリー演算子の列の演算を行えばよい。例えば、ノード121−3−1〜4に割り当てられたキャリー演算子を演算した結果はノード121−1−1に割り当てられ、ノード121−3−5,6に割り当てられたキャリー演算子を演算した結果はノード121−2−3に割り当てられているので、ノード121−3−7,121−2−2,121−1−1に割り当てられたキャリー演算子の列“SPK”を演算し、演算結果“S”を得る。この処理でも、整数a,bのビット長Lと分岐木の深さlog*(1)Lを考慮すると、O(L・log*(1)L)のオーダの通信量が必要である。
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(S830n)。ノード演算実行部830nは、計算装置100nと同じである。よって、1つのノードに割り当てられたキャリー演算子が1つになるまで演算を行うには、O(ノードに割り当てられた数)のオーダの通信量が必要である。そして、分岐木の深さがlog*(C−1)Lなので、通信量はO(L・log*(C−1)L)のオーダである。
(1−1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog*(c−2)(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log*(c−2)分岐木を作成する(Log*(c−2)分岐木作成部120(c−1) nの処理に相当する。)。
(1−2)Log*(c−2)分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(ノード演算実行部830nの処理に相当する。)。
(1−3)プレフィックスLog*(c−2)演算手段を有し、(1−1)の処理で同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、プレフィックスLog*(c−2)演算手段の処理を実行し、その結果を各ノードのノードキャリー演算子にする(キャリー伝搬処理部140(c−1) nの処理に相当する。)。
(1−4)(1−1)の処理で1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(ルート演算実行部150(c−1) nの処理に相当する。)。
(2−1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成する(2分岐木作成部820nの処理に相当する。)。
(2−2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(ノード演算実行部830nの処理に相当する。)。
(2−3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(2分岐ルート演算実行部850nの処理に相当する。)。
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする(S150(C) n)。この処理も実施例1のルート演算実行部150nの処理(S150n)と同様の処理であり、整数a,bのビット長Lと分岐木の深さlog*(C)Lを考慮すると、O(L・log*(C)L)のオーダの通信量が必要である。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
121,141,821 ノード 140n キャリー伝搬処理部
150n ルート演算実行部 160(0) n プレフィックスLog演算手段
180n,880n 出力部 190n,890n 記録部
810n キャリー演算子算出部 820n 2分岐木作成部
830n ノード演算実行部 850n 2分岐ルート演算実行部
900 ネットワーク
Claims (7)
- ビット表現された2つの整数をビット加算したときに発生するキャリービットを秘匿計算で求める計算システムを構成するN台の計算装置の中の1つの計算装置であって、
Nは2以上の整数、nは1以上N以下の整数、^はべき乗を示す記号、Lは((2^2)^・・・)^2のように2に対して2乗を0回以上繰り返した整数、qはLビットの素数、Zqは0以上q−1以下の整数の集合、aとbはL桁でビット表現された有限体上の整数、[a]qは整数aがN台の前記計算装置で秘匿された状態であることを示す記号、logは底が2の対数、log*(1)xを、
とし、
[a]qと[b]qに対して、ビット表現された桁ごとに、両方とも1であることを示す秘匿された演算子S、一方だけ1であることを示す秘匿された演算子P、両方とも0であることを示す秘匿された演算子Kのいずれか1つを求め、各桁のキャリー演算子とするキャリー演算子算出部と、
前記キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log分岐木を作成するLog分岐木作成部と、
前記Log分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするノード演算実行部と、
プレフィックスLog演算手段を有し、同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog演算手段の処理を実行し、その結果を各ノードのノードキャリー演算子にするキャリー伝搬処理部と、
前記Log分岐木作成部の処理で1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするルート演算実行部と、
前記ルート演算実行部の処理の結果、ノードキャリー演算子がSの桁から1つ上の桁へのキャリービットが1であることを示す秘匿された情報を出力し、その他の結果の桁はキャリービットが0であることを示す秘匿された情報を出力する出力部と
を備え、
前記プレフィックスLog演算手段は、
(1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成し、
(2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする
ことを特徴とする計算装置。 - ビット表現された2つの整数をビット加算したときに発生するキャリービットを秘匿計算で求める計算システムを構成するN台の計算装置の中の1つの計算装置であって、
Nは2以上の整数、nは1以上N以下の整数、Lはlog*(C−1)の演算を演算結果が1になるまで繰り返したときにすべての計算結果が整数となる1以上の整数、qはLビットの素数、Zqは0以上q−1以下の整数の集合、aとbはL桁でビット表現された有限体上の整数、[a]qは整数aがN台の前記計算装置で秘匿された状態であることを示す記号、Cは1以上の整数、cは1以上C以下の整数、logは底が2の対数、log*(c)xを、
とし、
[a]qと[b]qに対して、ビット表現された桁ごとに、両方とも1であることを示す秘匿された演算子S、一方だけ1であることを示す秘匿された演算子P、両方とも0であることを示す秘匿された演算子Kのいずれか1つを求め、各桁のキャリー演算子とするキャリー演算子算出部と、
前記キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog*(C−1)(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log*(C−1)分岐木を作成するLog*(C−1)分岐木作成部と、
前記Log*(C−1)分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするノード演算実行部と、
プレフィックスLog*(C−1)演算手段を有し、同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog*(C−1)演算手段の処理を実行し、その結果を各ノードのノードキャリー演算子にするキャリー伝搬処理部と、
前記Log*(C−1)分岐木作成部の処理で1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするルート演算実行部と、
前記ルート演算実行部の処理の結果、ノードキャリー演算子がSの桁から1つ上の桁へのキャリービットが1であることを示す秘匿された情報を出力し、その他の結果の桁はキャリービットが0であることを示す秘匿された情報を出力する出力部と、
を備え、
cが2以上のときは、プレフィックスLog*(c−1)演算手段は、
(1−1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog*(c−2)(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log*(c−2)分岐木を作成し、
(1−2)前記Log*(c−2)分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(1−3)プレフィックスLog*(c−2)演算手段を有し、(1−1)の処理で同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog*(c−2)演算手段の処理を実行し、その結果を各ノードのノードキャリー演算子にし、
(1−4)(1−1)の処理で1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
プレフィックスLog*(0)演算手段は、
(2−1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成し、
(2−2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(2−3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする
ことを特徴とする計算装置。 - 請求項1または2記載の計算装置であって、
前記のキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求める処理は、
P以外のキャリー演算子の中で最も上位の桁のキャリー演算子を求める処理である
ことを特徴とする計算装置。 - ネットワークで接続されたN台の計算装置で構成され、ビット表現された2つの整数をビット加算したときに発生するキャリービットを秘匿計算で求める計算システムであって、
Nは2以上の整数、nは1以上N以下の整数、^はべき乗を示す記号、Lは((2^2)^・・・)^2のように2に対して2乗を0回以上繰り返した整数、qはLビットの素数、Zqは0以上q−1以下の整数の集合、aとbはL桁でビット表現された有限体上の整数、[a]qは整数aがN台の前記計算装置で秘匿された状態であることを示す記号、logは底が2の対数、log*(1)xを、
とし、
各計算装置は、
[a]qと[b]qに対して、ビット表現された桁ごとに、両方とも1であることを示す秘匿された演算子S、一方だけ1であることを示す秘匿された演算子P、両方とも0であることを示す秘匿された演算子Kのいずれか1つを求め、各桁のキャリー演算子とするキャリー演算子算出部と、
前記キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log分岐木を作成するLog分岐木作成部と、
前記Log分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするノード演算実行部と、
プレフィックスLog演算手段を有し、同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog演算手段の処理を実行し、その結果を各ノードのノードキャリー演算子にするキャリー伝搬処理部と、
前記Log分岐木作成部の処理で1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするルート演算実行部と、
前記ルート演算実行部の処理の結果、ノードキャリー演算子がSの桁から1つ上の桁へのキャリービットが1であることを示す秘匿された情報を出力し、その他の結果の桁はキャリービットが0であることを示す秘匿された情報を出力する出力部と
を備え、
前記プレフィックスLog演算手段は、
(1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成し、
(2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする
ことを特徴とする計算システム。 - ネットワークで接続されたN台の計算装置で構成され、ビット表現された2つの整数をビット加算したときに発生するキャリービットを秘匿計算で求める計算システムであって、
Nは2以上の整数、nは1以上N以下の整数、Lはlog*(C−1)の演算を演算結果が1になるまで繰り返したときにすべての計算結果が整数となる1以上の整数、qはLビットの素数、Zqは0以上q−1以下の整数の集合、aとbはL桁でビット表現された有限体上の整数、[a]qは整数aがN台の前記計算装置で秘匿された状態であることを示す記号、Cは1以上の整数、cは1以上C以下の整数、logは底が2の対数、log*(c)xを、
とし、
各計算装置は、
[a]qと[b]qに対して、ビット表現された桁ごとに、両方とも1であることを示す秘匿された演算子S、一方だけ1であることを示す秘匿された演算子P、両方とも0であることを示す秘匿された演算子Kのいずれか1つを求め、各桁のキャリー演算子とするキャリー演算子算出部と、
前記キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog*(C−1)(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log*(C−1)分岐木を作成するLog*(C−1)分岐木作成部と、
前記Log*(C−1)分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするノード演算実行部と、
プレフィックスLog*(C−1)演算手段を有し、同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog*(C−1)演算手段の処理を実行し、その結果を各ノードのノードキャリー演算子にするキャリー伝搬処理部と、
前記Log*(C−1)分岐木作成部の処理で1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするルート演算実行部と、
前記ルート演算実行部の処理の結果、ノードキャリー演算子がSの桁から1つ上の桁へのキャリービットが1であることを示す秘匿された情報を出力し、その他の結果の桁はキャリービットが0であることを示す秘匿された情報を出力する出力部と、
を備え、
cが2以上のときは、プレフィックスLog*(c−1)演算手段は、
(1−1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog*(c−2)(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log*(c−2)分岐木を作成し、
(1−2)前記Log*(c−2)分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(1−3)プレフィックスLog*(c−2)演算手段を有し、(1−1)の処理で同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog*(c−2)演算手段の処理を実行し、その結果を各ノードのノードキャリー演算子にし、
(1−4)(1−1)の処理で1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
プレフィックスLog*(0)演算手段は、
(2−1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成し、
(2−2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(2−3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする
ことを特徴とする計算システム。 - ネットワークで接続されたN台の計算装置を用いて、ビット表現された2つの整数をビット加算したときに発生するキャリービットを秘匿計算で求める計算方法であって、
Nは2以上の整数、nは1以上N以下の整数、^はべき乗を示す記号、Lは((2^2)^・・・)^2のように2に対して2乗を0回以上繰り返した整数、qはLビットの素数、Zqは0以上q−1以下の整数の集合、aとbはL桁でビット表現された有限体上の整数、[a]qは整数aがN台の前記計算装置で秘匿された状態であることを示す記号、logは底が2の対数、log*(1)xを、
とし、
N台の前記計算装置が、[a]qと[b]qに対して、ビット表現された桁ごとに、両方とも1であることを示す秘匿された演算子S、一方だけ1であることを示す秘匿された演算子P、両方とも0であることを示す秘匿された演算子Kのいずれか1つを求め、各桁のキャリー演算子とするキャリー演算子算出ステップと、
N台の前記計算装置が、前記キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log分岐木を作成するLog分岐木作成ステップと、
N台の前記計算装置が、前記Log分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするノード演算実行ステップと、
N台の前記計算装置が、プレフィックスLog演算サブステップを有し、同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog演算サブステップの処理を実行し、その結果を各ノードのノードキャリー演算子にするキャリー伝搬処理ステップと、
N台の前記計算装置が、前記Log分岐木作成ステップで1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするルート演算実行ステップと、
N台の前記計算装置が、前記ルート演算実行ステップの結果、ノードキャリー演算子がSの桁から1つ上の桁へのキャリービットが1であることを示す秘匿された情報を出力し、その他の結果の桁はキャリービットが0であることを示す秘匿された情報を出力する出力ステップと
を備え、
前記プレフィックスLog演算サブステップは、
(1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成し、
(2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする
ことを特徴とする計算方法。 - ネットワークで接続されたN台の計算装置を用いて、ビット表現された2つの整数をビット加算したときに発生するキャリービットを秘匿計算で求める計算方法であって、
Nは2以上の整数、nは1以上N以下の整数、Lはlog*(C−1)の演算を演算結果が1になるまで繰り返したときにすべての計算結果が整数となる1以上の整数、qはLビットの素数、Zqは0以上q−1以下の整数の集合、aとbはL桁でビット表現された有限体上の整数、[a]qは整数aがN台の前記計算装置で秘匿された状態であることを示す記号、Cは1以上の整数、cは1以上C以下の整数、logは底が2の対数、log*(c)xを、
とし、
N台の前記計算装置が、[a]qと[b]qに対して、ビット表現された桁ごとに、両方とも1であることを示す秘匿された演算子S、一方だけ1であることを示す秘匿された演算子P、両方とも0であることを示す秘匿された演算子Kのいずれか1つを求め、各桁のキャリー演算子とするキャリー演算子算出ステップと、
N台の前記計算装置が、前記キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog*(C−1)(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log*(C−1)分岐木を作成するLog*(C−1)分岐木作成ステップと、
N台の前記計算装置が、前記Log*(C−1)分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするノード演算実行ステップと、
N台の前記計算装置が、プレフィックスLog*(C−1)演算サブステップを有し、同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog*(C−1)演算サブステップを実行し、その結果を各ノードのノードキャリー演算子にするキャリー伝搬処理ステップと、
N台の前記計算装置が、前記Log*(C−1)分岐木作成ステップで1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とするルート演算実行ステップと、
N台の前記計算装置が、前記ルート演算実行ステップの結果、ノードキャリー演算子がSの桁から1つ上の桁へのキャリービットが1であることを示す秘匿された情報を出力し、その他の結果の桁はキャリービットが0であることを示す秘匿された情報を出力する出力ステップと、
を備え、
cが2以上のときは、プレフィックスLog*(c−1)演算サブステップは、
(1−1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列をlog*(c−2)(ノードに割り当てられたキャリー演算子の数)個ごとに分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、Log*(c−2)分岐木を作成し、
(1−2)前記Log*(c−2)分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(1−3)プレフィックスLog*(c−2)演算サブステップを有し、(1−1)の処理で同じキャリー演算子の列から分割されたキャリー演算子の列が割り当てられたノード同士の間で、そのノードのノードキャリー演算子とそのノードよりも下の桁のキャリー演算子が割り当てられたノードのノードキャリー演算子で構成されるキャリー演算子の列に対して、前記プレフィックスLog*(c−2)演算サブステップの処理を実行し、その結果を各ノードのノードキャリー演算子にし、
(1−4)(1−1)の処理で1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
プレフィックスLog*(0)演算サブステップは、
(2−1)キャリー演算子の列を1つのノードに割り当て、キャリー演算子の列を2分割してそれぞれ別のノードに割り当てる処理をキャリー演算子の数が1になるまで繰り返すことで、2分岐木を作成し、
(2−2)前記2分岐木のノードごとに、割り当てられたキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とし、
(2−3)前記2分岐木の作成のときに1つのキャリー演算子が割り当てられたノードと、そのノードよりも下の桁のキャリー演算子が割り当てられたノードが属する部分木のルートノードのノードキャリー演算子とで構成されるキャリー演算子の列に対して、
xをS,P,Kのいずれかとするときに、
S=Sx,K=Kx,x=Px
の規則にしたがった演算を繰り返すと得られる1つのキャリー演算子を求め、ノードキャリー演算子とする
ことを特徴とする計算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013006444A JP5858938B2 (ja) | 2013-01-17 | 2013-01-17 | 計算装置、計算システム、計算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013006444A JP5858938B2 (ja) | 2013-01-17 | 2013-01-17 | 計算装置、計算システム、計算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014137740A JP2014137740A (ja) | 2014-07-28 |
JP5858938B2 true JP5858938B2 (ja) | 2016-02-10 |
Family
ID=51415192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013006444A Active JP5858938B2 (ja) | 2013-01-17 | 2013-01-17 | 計算装置、計算システム、計算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5858938B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6474741B2 (ja) * | 2016-01-18 | 2019-02-27 | 日本電信電話株式会社 | 秘匿決定木計算システム、装置、方法及びプログラム |
US11468796B2 (en) | 2017-05-18 | 2022-10-11 | Nec Corporation | Numerical splitting device, transmission information generating device, secure computation device, method, program recording medium, and secure computation system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6055557A (en) * | 1997-01-08 | 2000-04-25 | International Business Machines Corp. | Adder circuit and method therefor |
JP4300838B2 (ja) * | 2003-03-25 | 2009-07-22 | 沖電気工業株式会社 | 分散計算装置及び分散計算システム |
-
2013
- 2013-01-17 JP JP2013006444A patent/JP5858938B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014137740A (ja) | 2014-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5957126B1 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
JP2017515195A (ja) | 断熱量子計算を介してデジタル論理制約問題を解く | |
US10003460B2 (en) | Secret quotient transfer device, secret bit decomposition device, secret modulus conversion device, secret quotient transfer method, secret bit decomposition method, secret modulus conversion method, and programs therefor | |
CN111783130A (zh) | 隐私保护的数据处理方法、装置及服务器 | |
JPWO2018034079A1 (ja) | 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム | |
JP6732959B2 (ja) | 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム | |
JP7031682B2 (ja) | 秘密計算装置、システム、方法、プログラム | |
CN102393812A (zh) | 椭圆曲线密码体制中的快速点乘算法的实现方法 | |
JP5858938B2 (ja) | 計算装置、計算システム、計算方法 | |
Pedersen et al. | Network coding over the 2 32− 5 prime field | |
WO2018211675A1 (en) | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program | |
JP6253803B2 (ja) | ペアワイズ距離計算のためのシステム及び方法 | |
KR101925614B1 (ko) | 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법 및 타원곡선 암호화 시스템 | |
CN117254902A (zh) | 数据处理方法、装置、设备及存储介质 | |
KR20190022023A (ko) | 하드웨어 구현된 모듈러 역원 모듈 | |
JP2015068999A (ja) | 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム | |
JP5980178B2 (ja) | プログラム変換装置、プログラム変換方法及びプログラム | |
CN110275693B (zh) | 用于随机计算的多加数加法电路 | |
JP5636078B1 (ja) | 仮想ネットワークの物理ネットワークへの配置装置及び方法 | |
JP7380843B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
JP2016157053A (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法 | |
JP4861369B2 (ja) | リカバリ署名システム、署名生成装置、署名検証装置、それらの方法、及びプログラム | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
JP5554357B2 (ja) | 演算装置 | |
TWI776416B (zh) | 分層確定性錢包的門檻式簽章系統及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150114 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151126 |
|
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: 20151208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151215 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5858938 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |