JP6916596B2 - Arithmetic system, arithmetic method and arithmetic program - Google Patents
Arithmetic system, arithmetic method and arithmetic program Download PDFInfo
- Publication number
- JP6916596B2 JP6916596B2 JP2016094887A JP2016094887A JP6916596B2 JP 6916596 B2 JP6916596 B2 JP 6916596B2 JP 2016094887 A JP2016094887 A JP 2016094887A JP 2016094887 A JP2016094887 A JP 2016094887A JP 6916596 B2 JP6916596 B2 JP 6916596B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- matrix
- value
- arithmetic
- parameter group
- 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
本発明は、秘匿した2値を演算する演算システム、演算方法及び演算プログラムに関する。 The present invention relates to an arithmetic system, an arithmetic method, and an arithmetic program for calculating a secret binary value.
従来、秘匿した情報を演算する手段として、値を暗号化したまま加法又は乗法の演算が可能なPaillier暗号(例えば、非特許文献1参照)又はmodified−Elgamal暗号などの準同型暗号と呼ばれる暗号方式が用いられている。 Conventionally, as a means for calculating confidential information, a cryptographic method called homomorphic encryption such as Paillier encryption (see, for example, Non-Patent Document 1) or modified-Elgamal encryption, which enables addition or multiplication operations while the value is encrypted. Is used.
位置情報を秘匿した上で2点間の距離を求める際には、前述の準同型暗号を利用できる。しかしながら、準同型暗号による演算は処理負荷が大きいため、大規模なデータセットを対象にした場合、処理時間が膨大となっていた。 The above-mentioned homomorphic encryption can be used to obtain the distance between two points while concealing the position information. However, since the processing load of the operation by homomorphic encryption is large, the processing time is enormous when targeting a large-scale data set.
本発明は、秘匿した2値の加減算を高速に行える演算システム、演算方法及び演算プログラムを提供することを目的とする。 An object of the present invention is to provide an arithmetic system, an arithmetic method, and an arithmetic program capable of performing concealed binary addition / subtraction at high speed.
本発明に係る演算システムは、第1の値を保持する第1ノードと、第2の値を保持する第2ノードと、前記第1の値及び前記第2の値の演算を行う第3ノードとを備え、前記第1ノードは、前記第1の値に対してパラメータ群を用いた演算値を要素とする少なくとも1つの行列を生成し、前記第2ノードは、前記第2の値に対して、前記パラメータ群との積が定数になるパラメータ群を用いた演算値を要素とする少なくとも1つの行列を生成し、前記第3ノードは、前記第1ノード及び前記第2ノードのそれぞれが生成した行列を掛け合わせて得られた結果の一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む演算式の値を出力する。 The arithmetic system according to the present invention includes a first node that holds a first value, a second node that holds a second value, and a third node that calculates the first value and the second value. The first node generates at least one matrix having an calculated value using a parameter group as an element with respect to the first value, and the second node with respect to the second value. Therefore, at least one matrix whose elements are the calculated values using the parameter group whose product with the parameter group is constant is generated, and the third node is generated by each of the first node and the second node. Based on some elements of the result obtained by multiplying the obtained matrices, the value of the arithmetic expression including the sum or difference of the first value and the second value is output.
前記第3ノードは、前記第1の値及び前記第2の値の和又は差の2乗と前記定数との積を出力してもよい。 The third node may output the product of the sum or difference squared of the first value and the second value and the constant.
前記第1ノードは、第1のパラメータ群及び第2のパラメータ群を用いた演算値を要素とする第1の行列及び第2の行列を生成し、前記第2ノードは、前記第1のパラメータ群との積が第1の定数になる第3のパラメータ群、及び前記第2のパラメータ群との積が第2の定数になる第4のパラメータ群を用いた演算値を要素とする第3の行列及び第4の行列を生成し、前記第3ノードは、前記第1の行列と前記第3の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む2つの演算式のそれぞれ一部を合計した値を出力した後、前記第2の行列と前記第4の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記2つの演算式のうち、残りの部分を合計した値を出力してもよい。 The first node generates a first matrix and a second matrix whose elements are calculated values using the first parameter group and the second parameter group, and the second node generates the first parameter. A third element having a calculated value using a third parameter group in which the product with the group is the first constant and a fourth parameter group in which the product with the second parameter group is the second constant. And the fourth matrix are generated, and the third node is based on some elements of the matrix obtained by multiplying the first matrix and the third matrix. And one of the matrices obtained by multiplying the second matrix and the fourth matrix after outputting the sum of a part of each of the two arithmetic expressions including the sum or difference of the second values. A value obtained by summing up the remaining parts of the two arithmetic expressions may be output based on the elements of the parts.
前記第1ノードは、第1のパラメータ群及び第2のパラメータ群を用いた演算値を要素とする第1の行列及び第2の行列を生成し、前記第2ノードは、前記第1のパラメータ群との積が第1の定数になる第3のパラメータ群、及び前記第2のパラメータ群との積が第2の定数になる第4のパラメータ群を用いた演算値を要素とする第3の行列及び第4の行列を生成し、前記第3ノードは、前記第1の行列と前記第3の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む2つの演算式のそれぞれ一部を合計した値を出力するノードと、前記第2の行列と前記第4の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記2つの演算式のうち、残りの部分を合計した値を出力するノードと、に分離されていてもよい。 The first node generates a first matrix and a second matrix whose elements are calculated values using the first parameter group and the second parameter group, and the second node generates the first parameter. A third element having a calculated value using a third parameter group in which the product with the group is the first constant and a fourth parameter group in which the product with the second parameter group is the second constant. And the fourth matrix are generated, and the third node is based on some elements of the matrix obtained by multiplying the first matrix and the third matrix. And a matrix obtained by multiplying the second matrix and the fourth matrix with a node that outputs a value obtained by summing a part of each of the two arithmetic expressions including the sum or difference of the second value. Based on some elements, it may be separated into a node that outputs a value obtained by summing the remaining parts of the two arithmetic expressions.
前記第1ノードは、生成した行列とランダム行列とを乗じて前記第3ノードに提供し、前記第2ノードは、前記ランダム行列の逆行列と生成した行列とを乗じて前記第3ノードに提供してもよい。 The first node multiplies the generated matrix and the random matrix and provides them to the third node, and the second node multiplies the inverse matrix of the random matrix and the generated matrix and provides them to the third node. You may.
本発明に係る演算方法は、第1の値を保持する第1ノードと、第2の値を保持する第2ノードと、前記第1の値及び前記第2の値の演算を行う第3ノードとを備えた演算システムにおいて、前記第1ノードが、前記第1の値に対してパラメータ群を用いた演算値を要素とする少なくとも1つの行列を生成し、前記第2ノードが、前記第2の値に対して、前記パラメータ群との積が定数になるパラメータ群を用いた演算値を要素とする少なくとも1つの行列を生成し、前記第3ノードが、前記第1ノード及び前記第2ノードのそれぞれが生成した行列を掛け合わせて得られた結果の一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む演算式の値を出力する。 The calculation method according to the present invention includes a first node that holds a first value, a second node that holds a second value, and a third node that calculates the first value and the second value. In an arithmetic system including, the first node generates at least one matrix having an arithmetic value using a parameter group as an element for the first value, and the second node is the second. For the value of, at least one matrix whose elements are the calculated values using the parameter group whose product with the parameter group is constant is generated, and the third node is the first node and the second node. Based on some elements of the result obtained by multiplying the matrices generated by each of the above, the value of the arithmetic expression including the sum or difference of the first value and the second value is output.
本発明に係る演算プログラムは、コンピュータを、前記第1ノード、前記第2ノード又は前記第3ノードとして機能させる。 The arithmetic program according to the present invention causes a computer to function as the first node, the second node, or the third node.
本発明によれば、秘匿した2値の加減算を高速に行える。 According to the present invention, concealed binary addition / subtraction can be performed at high speed.
[第1実施形態]
以下、本発明の第1実施形態について説明する。
図1は、本実施形態に係る演算システム1の構成を示す図である。
[First Embodiment]
Hereinafter, the first embodiment of the present invention will be described.
FIG. 1 is a diagram showing a configuration of an
演算システム1は、演算対象である第1の値p及び第2の値qの一方をそれぞれ保持するノードX(第1ノード)及びノードY(第2ノード)と、2値の演算を行うノードZ(第3ノード)とを備える。
ノードX及びノードYは、値p及びqを定数rに基づくパラメータで秘匿化した行列を、ノードZに提供する。
ノードZは、演算結果をノードX又はノードY、あるいは他のノードへ提供し、演算結果を受信したノードは、与えられた情報(定数r)に基づいて、2値の和又は差を算出する。
The
Node X and node Y provide node Z with a matrix in which the values p and q are concealed by parameters based on the constant r.
Node Z provides the calculation result to node X, node Y, or another node, and the node that receives the calculation result calculates the sum or difference of the two values based on the given information (constant r). ..
ここで、各ノードX、Y及びZは、サーバ又はPCなどの情報処理装置(コンピュータ)により構成され、各ノードの記憶部に格納された所定のプログラム(演算プログラム)を各ノードの制御部が実行することにより、本実施形態の機能を実現する。 Here, each node X, Y, and Z is composed of an information processing device (computer) such as a server or a PC, and the control unit of each node executes a predetermined program (calculation program) stored in the storage unit of each node. By executing it, the function of this embodiment is realized.
図2は、本実施形態に係る演算方法を示すフローチャートである。
ここでは、ノードXが保持する数値pと、ノードYが保持する数値qとの和又は差を、ノードZの演算結果を用いてノードXが取得する。
FIG. 2 is a flowchart showing a calculation method according to the present embodiment.
Here, the node X acquires the sum or difference between the numerical value p held by the node X and the numerical value q held by the node Y by using the calculation result of the node Z.
ステップS1において、ノードXとノードYとの間で、次式を満たすランダムな定数r及びパラメータ群a1,a2,b1,b2,c1,c2,d1,d2、並びにランダムな2×2の行列Rを取り決める。
a1a2=b1c2=c1b2=d1d2=r
In step S1, between node X and node Y, a random constant r and a parameter group a 1 , a 2 , b 1 , b 2 , c 1 , c 2 , d 1 , d 2 , and a random constant r satisfying the following equation, and Arrange a random 2x2 matrix R.
a 1 a 2 = b 1 c 2 = c 1 b 2 = d 1 d 2 = r
ステップS2において、ノードXは、数値pに対してパラメータ群を用いた演算値を要素とする行列Aを生成し、ランダム行列Rとの積ARを保持する。行列Aは、例えば次式のように生成される。
ステップS3において、ノードYは、数値qに対してパラメータ群を用いた演算値を要素とする行列Bを生成し、ランダム行列Rの逆行列R−1との積R−1Bを保持する。行列Bは、例えば次式のように生成される。
ステップS4において、ノードXは、行列ARをノードZへ送信する。
ステップS5において、ノードYは、行列R−1BをノードZへ送信する。
ステップS6において、ノードZは、ノードX及びノードYから受信した行列を掛け合わせ、行列ARR−1B=ABを生成する。
a1a2p2+b1c2q2±2c1b2pq=r(p±q)2
ステップS7において、ノードZは、計算結果r(p±q)2を、ノードXへ送信する。
In step S4, node X transmits the matrix AR to node Z.
In step S5, node Y transmits the matrix R -1 B to node Z.
In step S6, node Z multiplies the matrices received from node X and node Y to generate matrix ARR -1 B = AB.
a 1 a 2 p 2 + b 1 c 2 q 2 ± 2c 1 b 2 pq = r (p ± q) 2
In step S7, the node Z transmits the calculation result r (p ± q) 2 to the node X.
ステップS8において、ノードXは、受信した計算結果r(p±q)2を定数rで割り2値の和又は差の2乗を、あるいは、さらに平方根を求めて2値の和又は差を算出する。
なお、計算結果をノードX又はノードYとは異なる別のノードに提供する場合、このノードへは、定数rも提供される。
In step S8, the node X divides the received calculation result r (p ± q) 2 by the constant r to calculate the sum or difference of the two values, or further obtains the square root and calculates the sum or difference of the two values. do.
When the calculation result is provided to a node different from the node X or the node Y, the constant r is also provided to this node.
また、行列A、Bの各要素は、前述の例には限られない。例えば、
また、例えば、
このように、積ABの要素のいずれかを組み合わせることにより、例えば(p±q)2の展開式と定数rとの積が構成されるように、行列A及びBが設定されればよい。
Moreover, each element of the matrix A and B is not limited to the above-mentioned example. for example,
Also, for example
In this way, the matrices A and B may be set so that, for example, the product of the expansion equation of (p ± q) 2 and the constant r is constructed by combining any of the elements of the product AB.
本実施形態によれば、演算システム1は、値p及びqをランダムなパラメータを用いて演算し、行列によって秘匿した状態で保持する。そして、演算システム1は、行列演算の結果の一部から、値pとqとの和又は差がパラメータにより秘匿された計算結果を出力する。したがって、演算システム1は、簡便な行列の乗算及び数値計算のみにより加減算を実施できるので、データが多量であっても、秘匿した2値の加減算を高速に行える。
According to the present embodiment, the
また、演算システム1は、行列の一部の要素から値pとqとの和又は差の2乗と定数rとの積を抽出する。これにより、演算システム1は、例えば2点間のユークリッド距離など、差の2乗を用いた計算を効率的に行える。
Further, the
また、演算システム1は、値p及びqから生成した行列に対して、ランダム行列を乗じて保持するので、行列及びパラメータの漏洩に対して安全性が向上する。
Further, since the
[第2実施形態]
以下、本発明の第2実施形態について説明する。
本実施形態では、ノードX及びノードYは、値p及びqを、第1の定数r及び第2の定数r’に基づく2セットのパラメータ群で秘匿化した2つの行列を、それぞれノードZに提供する。
ノードZは、演算結果をノードX又はノードY、あるいは他のノードへ提供し、演算結果を受信したノードは、与えられた情報(r+r’)に基づいて、2値の和又は差を算出する。
[Second Embodiment]
Hereinafter, the second embodiment of the present invention will be described.
In this embodiment, node X and node Y conceal two matrices whose values p and q are concealed by two sets of parameter groups based on the first constant r and the second constant r'to node Z, respectively. offer.
Node Z provides the calculation result to node X, node Y, or another node, and the node that receives the calculation result calculates the sum or difference of the two values based on the given information (r + r'). ..
図3は、本実施形態に係る演算方法を示すフローチャートである。
ここでは、ノードXが保持する数値pと、ノードYが保持する数値qとの和又は差を、ノードZの演算結果を用いてノードXが取得する。
FIG. 3 is a flowchart showing a calculation method according to the present embodiment.
Here, the node X acquires the sum or difference between the numerical value p held by the node X and the numerical value q held by the node Y by using the calculation result of the node Z.
ステップS11において、ノードXとノードYとの間で、ランダムな定数rに対応して、第1のパラメータ群a1,b1,c1,d1と第3のパラメータ群a2,b2,c2,d2とを、また、ランダムな定数r’に対応して、第2のパラメータ群a’1,b’1,c’1,d’1と第4のパラメータ群a’2,b’2,c’2,d’2とを、次式を満たすように取り決める。また、ランダムな2×2の行列R及びR’がノードXとノードYとの間で取り決められる。
a1a2=b1c2=c1b2=d1d2=r
a’1a’2=b’1c’2=c’1b’2=d’1d’2=r’
In step S11, the first parameter group a 1 , b 1 , c 1 , d 1 and the third parameter group a 2 , b 2 correspond to a random constant r between the node X and the node Y. , and c 2, d 2, also 'in response to the second parameter group a' random constant r 1, b '1, c ' 1, d '1 and the fourth set of parameters a' 2 , b '2, c' 2 , d ' and a 2, arrange so as to satisfy the following equation. Also, random 2x2 matrices R and R'are negotiated between node X and node Y.
a 1 a 2 = b 1 c 2 = c 1 b 2 = d 1 d 2 = r
a '1 a' 2 = b '1 c' 2 = c '1 b' 2 = d '1 d' 2 = r '
ステップS12において、ノードXは、数値pに対して第1のパラメータ群及び第2のパラメータ群を用いた演算値を要素とする第1の行列A及び第2の行列A’を生成し、それぞれランダム行列R及びR’を乗じてAR及びA’R’を保持する。行列A及びA’は、例えば次式のように生成される。
ステップS13において、ノードYは、数値qに対して第3のパラメータ群及び第4のパラメータ群を用いた演算値を要素とする第3の行列B及び第4の行列B’を生成し、それぞれランダム行列Rの逆行列R−1及びR’の逆行列R’−1を乗じてR−1B及びR’−1B’を保持する。行列B及びB’は、例えば次式のように生成される。
ステップS14において、ノードXは、行列ARをノードZへ送信する。
ステップS15において、ノードYは、行列R−1BをノードZへ送信する。
ステップS16において、ノードZは、ノードX及びノードYから受信した行列を掛け合わせ、行列ARR−1B=ABを生成する。
a1a2p2+b1c2q2±2c’1b’2pq=r(p2+q2)±2r’pq
ステップS17において、ノードZは、計算結果を、ノードXへ送信する。
ステップS18において、ノードZは、受信データ及び計算結果を削除する。
In step S14, node X transmits the matrix AR to node Z.
In step S15, node Y transmits the matrix R -1 B to node Z.
In step S16, node Z multiplies the matrices received from node X and node Y to generate matrix ARR -1 B = AB.
a 1 a 2 p 2 + b 1 c 2 q 2 ± 2c '1 b' 2 pq = r (p 2 + q 2) ± 2r'pq
In step S17, the node Z transmits the calculation result to the node X.
In step S18, the node Z deletes the received data and the calculation result.
ステップS19において、ノードXは、行列A’R’をノードZへ送信する。
ステップS20において、ノードYは、行列R’−1B’をノードZへ送信する。
ステップS21において、ノードZは、ノードX及びノードYから受信した行列を掛け合わせ、行列A’R’R’−1B’=A’B’を生成する。
a’1a’2p2+b’1c’2q2±2c1b2pq
=r’(p2+q2)±2rpq
ステップS22において、ノードZは、計算結果を、ノードXへ送信する。
ステップS23において、ノードZは、受信データ及び計算結果を削除する。
In step S19, node X transmits the matrix A'R'to node Z.
In step S20, node Y transmits the matrix R'-1 B'to node Z.
In step S21, node Z multiplies the matrices received from node X and node Y to generate the matrix A'R'R'-1 B'= A'B'.
a '1 a' 2 p 2 + b '1 c' 2 q 2 ± 2c 1 b 2 pq
= R'(p 2 + q 2 ) ± 2 rpq
In step S22, the node Z transmits the calculation result to the node X.
In step S23, the node Z deletes the received data and the calculation result.
ステップS24において、ノードXは、受信した計算結果r(p2+q2)±2r’pqとr’(p2+q2)±2rpqとを足し、定数(r+r’)で割って2値の和又は差の2乗を、あるいは、さらに平方根を求めて2値の和又は差を算出する。
なお、計算結果をノードX又はノードYとは異なる別のノードに提供する場合、このノードへは、定数(r+r’)も提供される。
In step S24, the node X adds the received calculation result r (p 2 + q 2 ) ± 2 r'pq and r'(p 2 + q 2 ) ± 2 rpq, divides by the constant (r + r'), and is the sum of the two values. Alternatively, the square of the difference, or the square root, is calculated to calculate the sum or difference of the two values.
When the calculation result is provided to a node different from the node X or the node Y, a constant (r + r') is also provided to this node.
本実施形態によれば、演算システム1は、行列AとBとの組による計算結果、及び行列A’とB’との組による計算結果の両方を用いて値p及びqの加減算を行う。したがって、演算システム1は、より秘匿性を高めて、各行列の要素又はパラメータなどの漏洩に対して安全性を向上できる。
また、ノードZにおいて、計算結果を送信したあとにデータを削除することにより、複数のデータを組み合わせて値p又はqが求められるリスクが低減される。
According to the present embodiment, the
Further, in the node Z, by deleting the data after transmitting the calculation result, the risk that the value p or q is obtained by combining the plurality of data is reduced.
なお、本実施形態における前述の行列A,A’,B,B’の要素は一例であり、積ABのいずれかの要素、及び積A’B’のいずれかの要素を組み合わせることにより、例えば(p±q)2の展開式と定数(r+r’)との積が構成されるように設定されればよい。 The elements of the above-mentioned matrices A, A', B, B'in the present embodiment are examples, and by combining any element of the product AB and any element of the product A'B', for example. (P ± q) It may be set so that the product of the expansion formula of 2 and the constant (r + r') is constructed.
[第3実施形態]
以下、本発明の第3実施形態について説明する。
本実施形態では、ノードX及びノードYは、値p及びqを、第1の定数r及び第2の定数r’に基づく2セットのパラメータ群で秘匿化した2つの行列を、ノードZ1及びノードZ2に提供する。
ノードZ1及びノードZ2は、演算結果をノードX又はノードY、あるいは他のノードへ提供し、演算結果を受信したノードは、与えられた情報(r+r’)に基づいて、2値の和又は差を算出する。
[Third Embodiment]
Hereinafter, a third embodiment of the present invention will be described.
In the present embodiment, node X and node Y, the value p and q, the two matrices were concealed parameter group 2 set based on the first constant r and the second constant r ', the node Z 1 and Provided to node Z 2.
Node Z 1 and Node Z 2 provide the operation result to node X or node Y, or another node, and the node receiving the operation result is the sum of the two values based on the given information (r + r'). Or calculate the difference.
図4は、本実施形態に係る演算方法を示すフローチャートである。
ここでは、ノードXが保持する数値pと、ノードYが保持する数値qとの和又は差を、ノードZ1及びノードZ2の演算結果を用いてノードXが取得する。
FIG. 4 is a flowchart showing a calculation method according to the present embodiment.
Here, the node X acquires the sum or difference between the numerical value p held by the node X and the numerical value q held by the node Y by using the calculation results of the node Z 1 and the node Z 2.
ステップS31〜S33は、第2実施形態(図3)のステップS11〜S13と共通である。
ステップS34〜S41では、第2実施形態(図3)のステップS14〜S18と、ステップS19〜S23とが、それぞれノードZ1及びノードZ2で並列に処理される。
ステップS42は、第2実施形態(図3)のステップS24と共通である。
Steps S31 to S33 are common to steps S11 to S13 of the second embodiment (FIG. 3).
In steps S34 to S41, steps S14 to S18 and steps S19 to S23 of the second embodiment (FIG. 3) are processed in parallel by the node Z 1 and the node Z 2, respectively.
Step S42 is common to step S24 of the second embodiment (FIG. 3).
本実施形態によれば、演算システム1は、行列AとBとの組による計算結果、及び行列A’とB’との組による計算結果の両方を用いて値p及びqの加減算を行う。さらに、ノードZが2つに分離され、それぞれで行列計算を分担するので、ノードZ1及びノードZ2のそれぞれが取得できるデータが制限され、安全性が向上する。
また、ノードZ1及びノードZ2で並列処理されることにより、処理が高速化される。
According to the present embodiment, the
Further, the processing is speeded up by performing parallel processing on the node Z 1 and the node Z 2.
[応用例1]
前述のいずれかの実施形態により、n次元のユークリッド距離を計算する応用例1を説明する。
[Application Example 1]
An application example 1 for calculating an n-dimensional Euclidean distance will be described according to any of the above embodiments.
n次元のユークリッド距離の計算では、直交座標系における点P(p1,p2,・・・,Pn)及び点Q(q1,q2,・・・,qn)に対して、それぞれの成分を、
これらの行列の積は、
したがって、各次元(k)の成分を加算して、平方根を求めることにより、n次元のユークリッド距離d(P,Q)が算出される。
Therefore, the n-dimensional Euclidean distance d (P, Q) is calculated by adding the components of each dimension (k) to obtain the square root.
[応用例2]
前述のいずれかの実施形態により、緯度経度情報から距離を計算する応用例2を説明する。
[Application example 2]
An application example 2 for calculating a distance from latitude / longitude information will be described according to any of the above embodiments.
ヒュベニの公式によれば、緯度p1で経度p2の地点と、緯度q1で経度q2の地点との距離dは、
したがって、前述の実施形態により(p1−q1)2、(p2−q2)2、p1+q1を求め、この式に代入することで、地点間の距離が算出される。
According to official Hyubeni, and the point of longitude p 2 latitude p 1, the distance d between point longitude q 2 latitude q 1 is
Therefore, the distance between the points is calculated by obtaining (p 1 − q 1 ) 2 , (p 2 −q 2 ) 2 , and p 1 + q 1 according to the above-described embodiment and substituting them into this equation.
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. In addition, the effects described in the present embodiment merely list the most preferable effects arising from the present invention, and the effects according to the present invention are not limited to those described in the present embodiment.
演算システム1による演算方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
The calculation method by the
1 演算システム
X 第1ノード
Y 第2ノード
Z 第3ノード
r 第1の定数
r’ 第2の定数
a1、b1、c1、d1 第1のパラメータ群
a’1、b’1、c’1、d’1 第2のパラメータ群
a2、b2、c2、d2 第3のパラメータ群
a’2、b’2、c’2、d’2 第4のパラメータ群
p 第1の値
q 第2の値
A 第1の行列
A’ 第2の行列
B 第3の行列
B’ 第4の行列
R、R’ ランダム行列
1 computing system X first node Y second node Z third node r first constant r 'second constant a 1, b 1, c 1 ,
Claims (6)
前記第1ノードは、前記第1の値に対してランダムなパラメータ群を用いた所定の演算式により秘匿化した値を要素とする少なくとも1つの行列を生成し、
前記第2ノードは、前記第2の値に対して、前記パラメータ群との積が前記第1ノード及び前記第2ノードの間で取り決めたランダムな定数になるパラメータ群を用いた所定の演算式により秘匿化した値を要素とする少なくとも1つの行列を生成し、
前記第1ノード及び前記第2ノードが用いる所定の演算式のそれぞれは、前記第1ノード及び前記第2ノードのそれぞれが生成した行列を掛け合わせて得られる行列の一部の要素により前記第1の値及び前記第2の値の和又は差を含む演算式を構成可能に設定され、
前記第3ノードは、前記第1ノード及び前記第2ノードのそれぞれが生成した行列を掛け合わせ、前記一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む演算式の値を出力する演算システム。 It includes a first node that holds a first value, a second node that holds a second value, and a third node that performs operations on the first value and the second value.
The first node generates at least one matrix whose elements are values concealed by a predetermined arithmetic expression using a random parameter group with respect to the first value.
The second node is a predetermined arithmetic expression using a parameter group in which the product of the second value and the parameter group is a random constant agreed between the first node and the second node. Generate at least one matrix whose elements are the values concealed by
Each of the predetermined arithmetic expressions used by the first node and the second node is based on a part of the matrix elements obtained by multiplying the matrices generated by the first node and the second node. And the arithmetic expression including the sum or difference of the second value is set to be configurable.
The third node multiplies the matrices generated by each of the first node and the second node, and based on some of the elements, adds or differs the first value and the second value. An arithmetic system that outputs the value of an arithmetic expression that includes it.
前記第2ノードは、前記第1のパラメータ群との積が前記第1ノード及び前記第2ノードの間で取り決めたランダムな第1の定数になる第3のパラメータ群、及び前記第2のパラメータ群との積が前記第1ノード及び前記第2ノードの間で取り決めたランダムな第2の定数になる第4のパラメータ群を用いた所定の演算式により秘匿化した値を要素とする第3の行列及び第4の行列を生成し、
前記第1ノード及び前記第2ノードにおいて前記第1の行列及び前記第3の行列を生成するための所定の演算式のそれぞれは、前記第1の行列と前記第3の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む2つの演算式のそれぞれ一部を合計した式を構成可能に設定され、
前記第1ノード及び前記第2ノードにおいて前記第2の行列及び前記第4の行列を生成するための所定の演算式のそれぞれは、前記第2の行列と前記第4の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む前記2つの演算式のうち、残りの部分を合計した式を構成可能に設定され、
前記第3ノードは、
前記第1の行列と前記第3の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記2つの演算式のそれぞれ一部を合計した値を出力した後、
前記第2の行列と前記第4の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記2つの演算式のうち、残りの部分を合計した値を出力する請求項1又は請求項2に記載の演算システム。 The first node generates a first matrix and a second matrix whose elements are values concealed by a predetermined arithmetic expression using a random first parameter group and a second parameter group.
The second node is a third parameter group in which the product with the first parameter group is a random first constant negotiated between the first node and the second node, and the second parameter. A third element whose element is a value concealed by a predetermined arithmetic expression using a fourth parameter group in which the product with the group becomes a random second constant agreed between the first node and the second node. And a fourth matrix,
Each of the predetermined arithmetic expressions for generating the first matrix and the third matrix in the first node and the second node is obtained by multiplying the first matrix and the third matrix. Based on a part of the elements of the obtained matrix, an expression obtained by summing a part of each of two arithmetic expressions including the sum or difference of the first value and the second value is set to be configurable.
Each of the predetermined arithmetic expressions for generating the second matrix and the fourth matrix in the first node and the second node is obtained by multiplying the second matrix and the fourth matrix. Based on a part of the elements of the obtained matrix, an expression obtained by summing the remaining parts of the two arithmetic expressions including the sum or difference of the first value and the second value is set to be configurable. ,
The third node is
After outputting the said first matrix based on some elements of the third matrix and the multiplying was obtained matrix, the value which is the sum of some respective front SL two arithmetic expressions,
Claim 1 or claim 1 or which outputs a value obtained by summing up the remaining parts of the two arithmetic expressions based on a part of the elements of the matrix obtained by multiplying the second matrix and the fourth matrix. The arithmetic system according to claim 2.
前記第2ノードは、前記第1のパラメータ群との積が前記第1ノード及び前記第2ノードの間で取り決めたランダムな第1の定数になる第3のパラメータ群、及び前記第2のパラメータ群との積が前記第1ノード及び前記第2ノードの間で取り決めたランダムな第2の定数になる第4のパラメータ群を用いた所定の演算式により秘匿化した値を要素とする第3の行列及び第4の行列を生成し、
前記第1ノード及び前記第2ノードにおいて前記第1の行列及び前記第3の行列を生成するための所定の演算式のそれぞれは、前記第1の行列と前記第3の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む2つの演算式のそれぞれ一部を合計した式を構成可能に設定され、
前記第1ノード及び前記第2ノードにおいて前記第2の行列及び前記第4の行列を生成するための所定の演算式のそれぞれは、前記第2の行列と前記第4の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む前記2つの演算式のうち、残りの部分を合計した式を構成可能に設定され、
前記第3ノードは、
前記第1の行列と前記第3の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記2つの演算式のそれぞれ一部を合計した値を出力するノードと、
前記第2の行列と前記第4の行列とを掛け合わせて得られる行列の一部の要素に基づいて、前記2つの演算式のうち、残りの部分を合計した値を出力するノードと、に分離されている請求項1又は請求項2に記載の演算システム。 The first node generates a first matrix and a second matrix whose elements are values concealed by a predetermined arithmetic expression using a random first parameter group and a second parameter group.
The second node is a third parameter group in which the product with the first parameter group is a random first constant negotiated between the first node and the second node, and the second parameter. A third element whose element is a value concealed by a predetermined arithmetic expression using a fourth parameter group in which the product with the group becomes a random second constant agreed between the first node and the second node. And a fourth matrix,
Each of the predetermined arithmetic expressions for generating the first matrix and the third matrix in the first node and the second node is obtained by multiplying the first matrix and the third matrix. Based on a part of the elements of the obtained matrix, an expression obtained by summing a part of each of two arithmetic expressions including the sum or difference of the first value and the second value is set to be configurable.
Each of the predetermined arithmetic expressions for generating the second matrix and the fourth matrix in the first node and the second node is obtained by multiplying the second matrix and the fourth matrix. Based on a part of the elements of the obtained matrix, an expression obtained by summing the remaining parts of the two arithmetic expressions including the sum or difference of the first value and the second value is set to be configurable. ,
The third node is
A node for outputting said first matrix based on some elements of the third matrix and the multiplying was obtained matrix, the value which is the sum of some respective front SL two arithmetic expressions,
Based on a part of the elements of the matrix obtained by multiplying the second matrix and the fourth matrix, the node that outputs the sum of the remaining parts of the two arithmetic expressions is added to the node. The arithmetic system according to claim 1 or 2, which is separated.
前記第2ノードは、前記ランダム行列の逆行列と生成した行列とを乗じて前記第3ノードに提供する請求項1から請求項4のいずれかに記載の演算システム。 The first node multiplies the generated matrix and the random matrix and provides them to the third node.
The arithmetic system according to any one of claims 1 to 4, wherein the second node is provided to the third node by multiplying the inverse matrix of the random matrix and the generated matrix.
前記第1ノードが、前記第1の値に対してランダムなパラメータ群を用いた所定の演算式により秘匿化した値を要素とする少なくとも1つの行列を生成し、
前記第2ノードが、前記第2の値に対して、前記パラメータ群との積が前記第1ノード及び前記第2ノードの間で取り決めたランダムな定数になるパラメータ群を用いた所定の演算式により秘匿化した値を要素とする少なくとも1つの行列を生成し、
前記第1ノード及び前記第2ノードが用いる所定の演算式のそれぞれは、前記第1ノード及び前記第2ノードのそれぞれが生成した行列を掛け合わせて得られる行列の一部の要素により前記第1の値及び前記第2の値の和又は差を含む演算式を構成可能に設定され、
前記第3ノードが、前記第1ノード及び前記第2ノードのそれぞれが生成した行列を掛け合わせ、前記一部の要素に基づいて、前記第1の値及び前記第2の値の和又は差を含む演算式の値を出力する演算方法。 In an arithmetic system including a first node holding a first value, a second node holding a second value, and a third node performing operations on the first value and the second value.
The first node generates at least one matrix whose elements are values concealed by a predetermined arithmetic expression using a random parameter group with respect to the first value.
A predetermined arithmetic expression using a parameter group in which the product of the parameter group with respect to the second value is a random constant agreed between the first node and the second node. Generate at least one matrix whose elements are the values concealed by
Each of the predetermined arithmetic expressions used by the first node and the second node is based on a part of the matrix elements obtained by multiplying the matrices generated by the first node and the second node. And the arithmetic expression including the sum or difference of the second value is set to be configurable.
The third node multiplies the matrices generated by each of the first node and the second node, and based on some of the elements, adds or differs the first value and the second value. An arithmetic method that outputs the value of an arithmetic expression that includes it.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016094887A JP6916596B2 (en) | 2016-05-10 | 2016-05-10 | Arithmetic system, arithmetic method and arithmetic program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016094887A JP6916596B2 (en) | 2016-05-10 | 2016-05-10 | Arithmetic system, arithmetic method and arithmetic program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017203855A JP2017203855A (en) | 2017-11-16 |
JP6916596B2 true JP6916596B2 (en) | 2021-08-11 |
Family
ID=60323258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016094887A Active JP6916596B2 (en) | 2016-05-10 | 2016-05-10 | Arithmetic system, arithmetic method and arithmetic program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6916596B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008228261A (en) * | 2007-03-12 | 2008-09-25 | Kazuhiro Nakagawa | Method and apparatus for sharing common data in cryptographic manner and transmitting the same |
US8539220B2 (en) * | 2010-02-26 | 2013-09-17 | Microsoft Corporation | Secure computation using a server module |
JP5492241B2 (en) * | 2012-03-28 | 2014-05-14 | 株式会社東芝 | Secret calculation system, aggregation device, and aggregation result decoding program |
JP2014126865A (en) * | 2012-12-27 | 2014-07-07 | Fujitsu Ltd | Device and method for encryption processing |
JP2015194959A (en) * | 2014-03-31 | 2015-11-05 | ソニー株式会社 | Information processor, information processing method and program |
-
2016
- 2016-05-10 JP JP2016094887A patent/JP6916596B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017203855A (en) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gai et al. | Blend arithmetic operations on tensor-based fully homomorphic encryption over real numbers | |
US11902413B2 (en) | Secure machine learning analytics using homomorphic encryption | |
JP2014044264A (en) | Secret distribution device and secret distribution program | |
Hussain et al. | A novel image encryption algorithm based on chaotic maps and GF (2 8) exponent transformation | |
JP6730741B2 (en) | Processing device, processing method, processing program, and cryptographic processing system | |
JP6832013B2 (en) | Processing device, inference device, learning device, processing system, processing method, and processing program | |
JP2021064008A (en) | Processing device, inference device, learning device, processing system, processing method, and processing program | |
Das et al. | A new modified version of standard RSA cryptography algorithm | |
Haenni et al. | Pseudo-code algorithms for verifiable re-encryption mix-nets | |
JP6585846B2 (en) | Secret calculation system, secret calculation device, secret calculation method, and program | |
WO2018216512A1 (en) | Secret tamper detection system, secret tamper detection device, method for detecting secret tamper, and program | |
JP6916596B2 (en) | Arithmetic system, arithmetic method and arithmetic program | |
Aly et al. | Practically efficient secure distributed exponentiation without bit-decomposition | |
Diallo et al. | Callforfire: A mission-critical cloud-based application built using the nomad framework | |
WO2019163636A1 (en) | Secret calculation device, secret calculation authentication system, secret calculation method, and program | |
Muhammed et al. | Improved cloud-based N-primes model for symmetric-based fully homomorphic encryption using residue number system | |
Dasgupta et al. | Colour image encryption based on multiple fractional order chaotic systems | |
CN113626841A (en) | Selection problem processing method based on multi-party security calculation | |
JP6370230B2 (en) | Secret calculation control device, secret calculation control method, and secret calculation control program | |
Lupascu et al. | Acceleration techniques for fully-homomorphic encryption schemes | |
EP3391264B1 (en) | Calculating device and method | |
US20200218833A1 (en) | Secure reading apparatus, secure writing apparatus, method thereof, and program | |
Karolin et al. | Visual Cryptography Secret Share Creation Techniques with Multiple Image Encryption and Decryption Using Elliptic Curve Cryptography | |
Obimbo et al. | A Parallel Algorithm for determining the inverse of a matrix for use in blockcipher encryption/decryption | |
Janratchakool et al. | Finding the optimal value for threshold cryptography on cloud computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180830 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190918 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191001 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200407 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200514 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20200714 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200929 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20200929 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20201007 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20201013 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20201106 |
|
C211 | Notice of termination of reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C211 Effective date: 20201110 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20210302 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20210406 |
|
C23 | Notice of termination of proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C23 Effective date: 20210525 |
|
C03 | Trial/appeal decision taken |
Free format text: JAPANESE INTERMEDIATE CODE: C03 Effective date: 20210629 |
|
C30A | Notification sent |
Free format text: JAPANESE INTERMEDIATE CODE: C3012 Effective date: 20210629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210716 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6916596 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |