JP2020016739A - Security calculation conversion system, security calculation conversion method, and security calculation conversion program - Google Patents

Security calculation conversion system, security calculation conversion method, and security calculation conversion program Download PDF

Info

Publication number
JP2020016739A
JP2020016739A JP2018139191A JP2018139191A JP2020016739A JP 2020016739 A JP2020016739 A JP 2020016739A JP 2018139191 A JP2018139191 A JP 2018139191A JP 2018139191 A JP2018139191 A JP 2018139191A JP 2020016739 A JP2020016739 A JP 2020016739A
Authority
JP
Japan
Prior art keywords
conversion
secret
data
negotiation
multiplication
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.)
Granted
Application number
JP2018139191A
Other languages
Japanese (ja)
Other versions
JP7219437B2 (en
Inventor
陽子 上土井
Yoko Jodoi
陽子 上土井
真一 若林
Shinichi Wakabayashi
真一 若林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hiroshima City University
Original Assignee
Hiroshima City University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hiroshima City University filed Critical Hiroshima City University
Priority to JP2018139191A priority Critical patent/JP7219437B2/en
Publication of JP2020016739A publication Critical patent/JP2020016739A/en
Application granted granted Critical
Publication of JP7219437B2 publication Critical patent/JP7219437B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

To provide a security calculation conversion system that performs a predetermined operation while keeping contents of the input data concealed using data from multiple institutions as input without requiring large computational costs such as exponentiation, and uses the obtained operation result.SOLUTION: In a security calculation conversion system 1, a data processing unit acquires impartially a piece of secret information by confidentially performing an operation that is guaranteed to produce the same result as when another operation is performed using data from multiple institutions as input. The data processing unit further performs confidential calculations at low computational costs on the basis of the confidentiality of the acquired secret information while keeping the confidentiality of both secret data completely.SELECTED DRAWING: Figure 1

Description

本発明は複数の機関がそれぞれ保持している秘密データを入力として演算Aを行ったときの結果と同じ結果を得ることができる別の演算Bに対する複数の入力を秘匿に計算し、各々の機関に秘密出力として返す秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラムに関する。   The present invention confidentially calculates a plurality of inputs to another operation B that can obtain the same result as the result of performing the operation A using the secret data held by a plurality of institutions as inputs, and each of the institutions Confidential operation conversion system, confidential operation conversion method, and confidential operation conversion program.

複数の機関がもつデータを入力として入力データの内容を秘匿したまま所定の演算を行い、得られた演算結果を利用する方法が知られている。例えば、2つの機関がもつデータをn個のデータブロックからなるデータベクトルX=(X1,X2,…,Xn)、Y=(Y1,Y2,…,Yn)とし、各ベクトル位置i (1≦i≦n) のベクトル要素どうしを乗算した結果XiYiを全て加算した結果Σ1≦i≦n XiYi(以下、内積値と略記することがある。)を求めることで相関ルールを導出する方法が非特許文献1に示されている。 2. Description of the Related Art There is known a method of performing a predetermined operation while inputting data held by a plurality of organizations while concealing the contents of the input data, and using the obtained operation result. For example, the data vector becomes the data having two engine from n data blocks X = (X 1, X 2 , ..., X n), Y = (Y 1, Y 2, ..., Y n) and each The result of multiplying the vector elements at the vector position i (1 ≦ i ≦ n) by adding all the results X i Y i Σ 1 ≦ i ≦ n X i Y i (hereinafter sometimes abbreviated as the inner product value) Non-Patent Document 1 discloses a method of deriving an association rule by obtaining the following.

以下、図26を用いて、非特許文献1に示された、オンラインショップP1(以下、機関P1と略記することがある。)とオンラインショップP2(以下、機関P2と略記することがある。)が顧客の物品購入の相関関係を顧客とのプライバシー同意契約に違反することなく、導出する方法について説明する。   Hereinafter, with reference to FIG. 26, an online shop P1 (hereinafter sometimes abbreviated as an institution P1) and an online shop P2 (hereinafter sometimes abbreviated as an institution P2) shown in Non-Patent Document 1. Describes how to derive a correlation between a customer's purchase of goods without violating a privacy agreement with the customer.

最初に機関P1と機関P2は図2と図3に示すような「クレジットカード番号表」を用意し、同じクレジット番号の顧客の利用金額を同じ位置に記録する2つのベクトル、「ベクトルX」と「ベクトルY」を用意する。
以降ではベクトルX、Yの長さnをベクトル次数と呼ぶ。
First, the institutions P1 and P2 prepare a "credit card number table" as shown in FIG. 2 and FIG. 3, and use two vectors "vector X" to record the usage amount of the customer with the same credit number at the same position. "Vector Y" is prepared.
Hereinafter, the length n of the vectors X and Y is referred to as a vector order.

上記のベクトルXとベクトルYを入力とした内積値がある閾値より大きい場合には機関P1と機関P2の顧客の購買行動には正の相関関係があると判断することができ、顧客の嗜好性が似ている可能性が高く、共同で商品開発することで、より顧客のニーズにあう商品を開発できる可能性がある。 If the inner product value obtained by inputting the vector X and the vector Y is larger than a certain threshold value, it can be determined that there is a positive correlation between the purchase behaviors of the customers of the institutions P1 and P2, and the customer preference Are likely to be similar, and by jointly developing products, there is a possibility that products that better meet customer needs may be developed.

このとき、機関P1と機関P2がそれぞれ、多くの人数の購買情報からなるベクトルX、ベクトルYを作成した上で、ベクトルX、ベクトルYの内容を相互に明らかにせず、各々が内積値のみを計算できれば顧客と機関間にあるプライバシー合意契約に抵触しない。 At this time, the institution P1 and the institution P2 respectively create a vector X and a vector Y composed of a large number of purchase information, and do not clarify the contents of the vector X and the vector Y mutually. If it can be calculated, it does not violate the privacy agreement between the customer and the institution.

図26において、機関P1と機関P2の双方が共通情報として、n×nの係数行列Cと、ベクトルX及びベクトルYをベクトル次数がnより小さいr個のベクトルに分割する分割個数rを予め知っているとする。機関P1ではベクトルXの各要素Xi(i=1,2,・・・,n)に係数行列Cと機関P1がランダムに定めたn個の乱数Ri(i=1,2,・・・,n)を用いて計算した値を加算することによりベクトルXを秘匿した形に変形したベクトルCA=(CA1,CA2,…,CAn)、CAi=Xi+Ci,1×R1+Ci,2×R2+・・・+Ci,n×Rnを機関P2に渡す。機関P2では、Cの転置行列であるCT を用いて、CTYなるn次元のベクトルに同じ値がn/r個ずつ連続するn次元のベクトル<R1’, R1’,…,R1’, R2’,…,R2’,…,Rr’,…Rr’>を加算して作成したベクトルCB=(CB1,CB2,…,CBn)、CBi=C1,i×Y1+C2,i×Y+…+Cn,i×Yn+R1’、・・・、CBn/r=C1,n/r×Y1+C2,n/r×Y+…+Cn,n/r×Yn+R1’、 CBn/r+1=C1,(n/r+1)×Y1+C2,(n/r+1)×Y+…+Cn,(n/r+1)×Yn+R2’、・・・、CB2n/r=C1,2n/r×Y1+C2,2n/r×Y+…+Cn,2n/r×Yn+R2’、・・・, CB(r−1)n/r+1=C1, ((r−1)n/r+1)×Y1+C2, ((r−1)n/r+1)×Y+…+Cn, ((r−1)n/r+1)×Yn+Rr’、・・・、CBn=C1,n×Y1+C2,n×Y+…+Cn,n×Yn+Rr’、を求めて、機関P1に送信する。また、機関P2は、ベクトルCAと自身のもつベクトルYの内積CA・Yを計算する。機関P1は自己の乱数ベクトルR=<R1,R2,…,Rn>と受信したベクトルCBの内積R・CBを計算し、マイナス1を乗算してΦ=−R・CBを計算する。次に、機関P1は自己の乱数ベクトルRをn/r個ずつ加算し、r次元のベクトルDA=(DA1、DA2、・・・、DAr) 、DA1=R1+R2+・・・+Rn/r、DA2=Rn/r+1+Rn/r+2+・・・+R2n/r、・・・、DAr=R(r-1)n/r+1+R(r-1)n/r+2+・・・+Rnを計算し、機関P2へ送信する。機関P2は先に計算した内積値CA・Yと自己のもつr次元のベクトルR’=<R1’,R2’,…,Rr’>と機関P1より受信したr次元ベクトルDAとの内積の値DA・R’を加算することで値Ψ=CA・Y+DA・R’を計算する。機関P1と機関P2は値ΦとΨを交換してΦ+Ψを求めることで内積値を求めることができる。 In FIG. 26, both the institution P1 and the institution P2 previously know, as common information, an n × n coefficient matrix C and a division number r for dividing the vector X and the vector Y into r vectors having a vector order smaller than n. Suppose In the institution P1, each element Xi (i = 1, 2,..., N) of the vector X has a coefficient matrix C and n random numbers Ri (i = 1, 2,. vector CA = (CA 1, CA 2 ,..., CA n ) obtained by adding the values calculated using n) and concealing the vector X, CAi = Xi + C i, 1 × R 1 + Pass C i, 2 × R 2 + ... + C i, n × R n to the engine P2. In institutions P2, using the C T is a transposed matrix of C, n-dimensional vector equal to C T Y becomes n-dimensional vectors are consecutive n / r or by <R 1 ', R 1' , ..., R 1 ', R 2 ',…, R 2 ',…, R r ',… R r '> vector CB = (CB 1 , CB 2 ,…, CB n ), CB i = C 1, i × Y 1 + C 2, i × Y 2 + ... + C n, i × Y n + R 1 ', ..., CB n / r = C 1, n / r × Y 1 + C 2, n / r × Y 2 +… + C n, n / r × Y n + R 1 ', CB n / r + 1 = C 1, (n / r + 1) × Y 1 + C 2, ( n / r + 1) × Y 2 + ... + C n, (n / r + 1) × Y n + R 2 ', ..., CB 2 n / r = C 1,2n / r × Y 1 + C 2,2n / r × Y 2 + ... + C n, 2n / r × Y n + R 2 ', ..., CB (r−1) n / r + 1 = C 1, ((r−1 ) n / r + 1) × Y 1 + C 2, ((r−1) n / r + 1) × Y 2 +… + C n, ((r−1) n / r + 1) × Y n + R r ', ..., CB n = C 1, n × Y 1 + C 2, n × Y 2 + ... + C n, n × Y n + R r ' I do. Further, the institution P2 calculates an inner product CA · Y of the vector CA and the vector Y of the institution P2. The institution P1 calculates an inner product R · CB of its own random number vector R = <R 1 , R 2 ,..., R n > and the received vector CB, and calculates Φ = −R · CB by multiplying by minus one. . Then, the engine P1 adds its own random vector R n / r pieces each, r-dimensional vector DA = (DA 1, DA 2 , ···, DA r), DA 1 = R 1 + R 2 + ... + R n / r , DA 2 = R n / r + 1 + Rn / r + 2 + ... + R 2n / r , ..., DA r = R (r-1) n / r + 1 + R (r-1) calculates the n / r + 2 + ··· + R n, and transmits to the engine P2. The institution P2 calculates the inner product value CA · Y calculated earlier, the r-dimensional vector R ′ = <R 1 ′, R 2 ′,..., R r ′> of its own and the r-dimensional vector DA received from the institution P1. The value Ψ = CA ・ Y + DA ・ R 'is calculated by adding the value of the inner product DA ・ R'. The engine P1 and the engine P2 can obtain the inner product value by exchanging the values Φ and Ψ to obtain Φ + Ψ.

上記の手法では複数の秘匿データの加算後の結果のみを知らせることで加算前の値を復元できない状態に保ち、各ベクトルの値の安全性を保証できるように見えるが、問題がある。すなわち、機関P1は機関P2より受信した情報を用いて、ベクトルYに関して成り立つ情報を得ることができ、少なくともベクトルYに関して成り立つ半分の情報を明らかにできてしまう。例えば、機関P1は機関P2がCB1からCBn/rの情報を作成するのに同じR1’という乱数を利用していることを知っている。そこで、CB1−CB2=(C1,1-C2,1)Y1+(C1,2-C2,2)Y2+・・・+(C1,n−C2,n)Yn の関係式が成り立つことが分かる。このような異なるn個の関係式があれば、機関P1はベクトルYの情報全てを明らかにできてしまう。図26の方法では、機関P1は少なくとのn/2個の関係式を作成することができる。
また、ベクトルXを機関P1が繰り返し用いた場合、機関P2がベクトルXに関する情報を引き出すことができるという安全上の問題がある。また、n/r回のn次元のベクトルの送受信を必要としており、安全性を向上させようとすると大量の情報を送受信することとなり効率上の問題もある。
In the above method, it seems that the value before addition cannot be restored by notifying only the result after addition of a plurality of confidential data, and the security of the value of each vector can be guaranteed, but there is a problem. That is, the institution P1 can use the information received from the institution P2 to obtain information that holds for the vector Y, and can clarify at least half of the information that holds for the vector Y. For example, institution P1 knows that institution P2 uses the same random number R 1 ′ to create CB n / r information from CB 1 . Therefore, CB 1 −CB 2 = (C 1,1 −C 2,1 ) Y 1 + (C 1,2 −C 2,2 ) Y 2 + ・ ・ ・ + (C 1, n −C 2, n It can be seen that the relational expression of) Y n holds. If there are n different relational expressions, the institution P1 can clarify all the information of the vector Y. In the method of FIG. 26, the institution P1 can create at least n / 2 relational expressions.
Further, when the institution P1 repeatedly uses the vector X, there is a safety problem that the institution P2 can extract information on the vector X. In addition, since n / r times of transmission and reception of n-dimensional vectors are required, a large amount of information is transmitted and received in an attempt to improve security, and there is a problem in efficiency.

上記の問題を解決するため、非特許文献2では公開鍵暗号方式を用いた秘匿計算プロトコルが提案されている。この方法では1つの平文を複数の異なる暗号文に暗号化可能な確率暗号で、かつ、暗号文に対し演算を実施することで平文に対する演算も実行できる準同型性をもつ確率公開鍵暗号方式を用いている。   To solve the above problem, Non-Patent Document 2 proposes a secure calculation protocol using a public key cryptosystem. In this method, a probabilistic public key cryptosystem that is a probabilistic cipher that can encrypt one plaintext into a plurality of different ciphertexts and has homomorphism that can also perform an operation on a plaintext by performing an operation on the ciphertext. Used.

ここで、公開鍵暗号方式とは暗号化するときに使う鍵と復号するときに使う鍵が異なるため、暗号化に利用する鍵を公開することで、誰でも暗号文を作成できるが、復号は復号するための鍵(秘密鍵)を知っている人以外には困難となる非対称な鍵を用いる暗号方式である。また、確率暗号とは、同一の平文を同一の鍵で暗号化すると必ず同一の暗号文を生成するRSA暗号方式のような確定暗号とは異なり、暗号化ごとに異なる乱数を利用可能なため、同じ平文であっても鍵の種類と同程度の数の暗号文に変換可能な暗号方式である。上記の性質を満たす公開鍵暗号方式の1つにElGamal暗号方式(以下、ElGamal方式と略記することがある。)がある。確率公開鍵暗号方式を使った秘匿ベクトル内積計算方法では、暗号文に対して、演算を適用することで平文に演算を施せるという準同型性を利用し、かつ、確率的に暗号文を変化させることで、暗号文に対してどのような計算が行われたかを特定することを困難にしながら、平文に対して演算を施して、秘匿ベクトルの内積を計算する。   Here, since the public key encryption method uses a different key for encryption and a different key for decryption, anyone can create a ciphertext by disclosing the key used for encryption, but decryption is not possible. This is an encryption method that uses an asymmetric key that is difficult for anyone except the person who knows the key (secret key) for decryption. Also, unlike probabilistic encryption, such as RSA encryption, which always generates the same ciphertext when the same plaintext is encrypted with the same key, the same random text can use different random numbers for each encryption, This is an encryption method that can convert the same plaintext into ciphertexts of the same number as the key type. One of the public key cryptosystems satisfying the above properties is the ElGamal cryptosystem (hereinafter sometimes abbreviated as ElGamal system). The secret vector inner product calculation method using the probabilistic public key cryptosystem uses homomorphism, in which an operation is applied to a plaintext by applying an operation to the ciphertext, and changes the ciphertext stochastically. Thus, while making it difficult to specify what calculation has been performed on the ciphertext, the arithmetic is performed on the plaintext to calculate the inner product of the secret vector.

以下、先の例と同じように機関P1と機関P2は図2、図3に示すような各顧客の利用金額を秘密データXi,Yi(i=1,2,・・・,n)として保持しているとする。
機関P1は自分の公開鍵K=g S (mod P) (ここで、gは原始元、Pは素数、Sは秘密鍵であり、以降、暗号文の計算では (mod P)を省略することがある。)を公開した上で、各顧客の利用金額Xiの暗号値(2X iKr i, gr i) (ここで、riは乱数とする)からなる暗号文ベクトルを作成し、機関P2に送信する。
Hereinafter, as in the previous example, the institutions P1 and P2 determine the amount of use of each customer as shown in FIGS. 2 and 3 by using secret data X i , Y i (i = 1, 2,..., N). It is assumed that it is held as
The institution P1 has its own public key K = g S (mod P) (where g is a primitive element, P is a prime number, and S is a secret key. Hereinafter, (mod P) shall be omitted in the calculation of ciphertext. is.) on which to publish, encryption value of spending X i of each customer (2 X i K r i, g r i) ( here, r i create the ciphertext vector composed of a random number) And sends it to the institution P2.

機関P1より暗号文ベクトルを受け取った機関P2は暗号ベクトルの各i番目の暗号文の1項目、2項目ともにベクトル要素Yiを指数乗したのち、各暗号文の1項目の要素をすべて乗算し、2項目の要素同志を全て乗算した1つの暗号文(2X 1 Y 1 +X 2 Y 2 +・・・+X n Y n Kr 1 Y 1 +r 2 Y 2 +・・・+r N Y N, gr 1 Y 1 +r 2 Y 2 +・・・+r n Y n)を作成し、最後に乱数Ψとrで撹乱した暗号文(2X 1 Y 1 +X 2 Y 2 +・・・+X N Y N Kr 1 Y 1 +r 2 Y 2 +・・・+r N Y N +r, gr 1 Y 1 +r 2 Y 2 +・・・+r n Y n +r)に変換して、変換後の暗号文を機関P1へ送信する。
暗号文を受け取った機関P1は暗号文2項組を自身の秘密鍵を用いて復号し、得られた平文の2の対数を求めることにより値Φ=Σ1≦i≦n XiYi + Rを得る。値Φと値Ψを機関P1、機関P2で交換することにより、互いに内積値を求めることができる。
Each i-th 1 Attribute ciphertext engine P2 that has received the ciphertext vector than the engine P1 encryption vector, after multiplication index vector elements Y i to two items both multiplies all the elements of one item of each ciphertext , One ciphertext (2 X 1 Y 1 + X 2 Y 2 + ... + X n Y n K r 1 Y 1 + r 2 Y 2 + ... + R N Y N , g r 1 Y 1 + r 2 Y 2 + ... + r n Y n ), and finally a ciphertext (2 X 1 Y 1 + X 2 Y 2 ) that has been disturbed by random numbers Ψ and r +・ ・ ・+ X N Y N + Ψ K r 1 Y 1 + r 2 Y 2 +・ ・ ・+ r N Y N + r , g r 1 Y 1 + r 2 Y 2 +・ ・ ・+ r n It is converted to Y n + r), and transmits the ciphertext converted into engine P1.
Engine P1 that received the ciphertext is decrypted using the private key of its own two-tuple ciphertext obtained to obtain the second log by the value Φ = Σ 1 ≦ i ≦ plaintext n X i Y i + Get R. By exchanging the value Φ and the value Ψ between the engine P1 and the engine P2, the inner product value can be obtained from each other.

しかしながら、非特許文献2の方法にも問題がある。機関P1はベクトル情報ごとにデータを暗号化する必要があり、その暗号化は指数乗の計算のような大きな計算コストを必要とする。また、機関P2もベクトル次数個の自己のもつ情報を乗算するために、暗号文を指数乗するという大きな計算コストを費やし、入力ベクトルの値に依存した大きなコストの計算が必要となる。さらに、乗算を指数乗にて計算しているため、値Φの上限はlog2Pとなり、例えば、Pが2048ビットの素数であるとすると値Φの上限は2048ビットとなり、正確な結果を得られる範囲が小さな値域の計算に限られる。 However, the method of Non-Patent Document 2 also has a problem. The institution P1 needs to encrypt data for each vector information, and the encryption requires a large calculation cost such as calculation of exponentiation. In addition, in order to multiply the information of its own by the degree of the vector, the institution P2 also consumes a large calculation cost of raising the ciphertext to the power of an exponent, and needs to calculate a large cost depending on the value of the input vector. Furthermore, since the multiplication is calculated by exponentiation, the upper limit of the value Φ is log 2 P. For example, if P is a prime number of 2048 bits, the upper limit of the value Φ is 2048 bits, and an accurate result is obtained. Is limited to the calculation of a small range.

近年、非特許文献3の準同型性公開鍵暗号の一種であるPaillier暗号方式(以下、Paillier方式と略記することがある。)を用いて、秘匿計算を行う方法が一般的に用いられている。
Paillier方式では公開鍵を提供する公開者が秘密鍵となる2つの大きな素数p、qを選定し、N=p×qを満たすNと乱数kを選び、g=(1+kN)modNを満たすgを求めることにより公開鍵Pk=(N,g)を作成する。
平文mを暗号化するには乱数rを用いて、C=gmodNを計算することで暗号文Cを作成する。一方、復号はm=(L(CλmodN)/L(gλmodN))modNを計算することで実行される。ここで、関数L(U)はL(U)=(U−1)/Nと定義され、λはp−1とq−1の最小公倍数lcm(p−1、q−1)と等しいとする。λはユークリッドの互除法により効率よく求めることができる。
In recent years, a method of performing confidential calculation using the Paillier encryption method (hereinafter, sometimes abbreviated as Paillier method), which is a kind of homomorphic public key encryption in Non-Patent Document 3, has been generally used. .
In the Paillier scheme, a public key provider selects two large prime numbers p and q serving as secret keys, selects N and a random number k that satisfy N = p × q, and g that satisfies g = (1 + kN) modN 2 To generate a public key Pk = (N, g).
To encrypt the plaintext m by using a random number r, creating a cipher text C by calculating C = g m r N modN. Meanwhile, decoding is performed by calculating the m = (L (C λ modN 2) / L (g λ modN 2)) modN. Here, the function L (U) is defined as L (U) = (U−1) / N, and λ is equal to the least common multiple 1cm (p−1, q−1) of p−1 and q−1. I do. λ can be efficiently obtained by the Euclidean algorithm.

Paillier方式で平文mを乱数r、公開鍵Pにより暗号化し暗号文Cを作成することをC=EPk(m、r)と示すとする。暗号文Cを用いて、C=C×gm2 modNを計算するとCはC=gm1+m2 modN=EPk(m+m、r)となり、加法準同型性を満たすことにより、暗号文Cを利用してmにmを加算した暗号文Cを作成できる。
同様に、暗号文Cを用いて、C=C m2 modNを計算すると、CはC=gm1m2(r m2mod N=EPk(m、r m2)を満たし、乗法準同型性を満たすことより、Cを利用してmにmを乗算した暗号文Cを作成できる。
Random number r 1 plaintext m 1 in Paillier method for creating ciphertext C 1 encrypts and indicated as C 1 = E Pk (m 1, r 1) by the public key P k. When C 2 = C 1 × g m2 modN is calculated using the ciphertext C 1 , C 2 becomes C 2 = g m1 + m2 r 1 N mod N = E Pk (m 1 + m 2 , r 1 ), and is additive homomorphism. the by meeting, you can create a ciphertext C 2 obtained by adding m 2 to m 1 by using the ciphertext C 1.
Similarly, by using the ciphertext C 1, C 3 = Calculating the C 1 m2 modN, C 3 is C 3 = g m1m2 (r 1 m2) N mod N = E Pk (m 1 m 2, r 1 m2 ) was filled, from satisfying the multiplicative homomorphism, can create a ciphertext C 3 multiplied by m 2 to m 1 by using the C 1.

上記のようにPaillier方式ではElGamal方式と同様に、暗号文に乗算、累乗演算を適用することにより秘匿計算を実行することができる。暗号化においては乱数rを用いた計算r、復号においてはL(gλ modN)は平文が決定する以前に計算可能であるため、暗号化、復号ともに平文、暗号文に依存したべき乗計算1回を必要とし、復号では追加で除算を必要とする。指数部に平文mを表現するが、Paillier方式ではElGamal方式とは異なり、mがとり得る値域はNの定数倍と大きな範囲である。 As described above, in the Paillier scheme, similar to the ElGamal scheme, confidential calculation can be executed by applying multiplication and exponentiation to ciphertext. In encryption, calculation r N using random number r, and in decryption, L (g λ modN 2 ) can be calculated before the plaintext is determined. Therefore, exponentiation calculation that depends on plaintext and ciphertext for both encryption and decryption One time is required, and decoding requires an additional division. Although the plaintext m is expressed in the exponent part, the value range that m can take in the Paillier method is a large multiple of a constant multiple of N unlike the ElGamal method.

しかしながら、非特許文献3の方法にも問題がある。公開鍵暗号方式に基づくこの方法では、乗算を行う場合には入力決定後にべき乗演算を必要とし、さらにビット長の大きな除算を必要とすることより秘匿計算を実現するためには大きな計算コストを必要とする。 However, the method of Non-Patent Document 3 also has a problem. In this method based on public key cryptography, when performing multiplication, exponentiation is required after the input is determined, and furthermore, large division requires a large bit length. And

さらに、非特許文献2、非特許文献3の方法のような公開鍵暗号方式を用いる方法はそれぞれの仮定に基づいた相対的な機密性の保証しか行われていない。すなわち、非特許文献2で提案されている方法に用いられる可能性が高いElGamal方式はDiffie−Hellman問題と呼ばれる難しいと思われている問題が効率良く解けない限り安全だと証明されているが、Diffie−Hellman問題が本当に効率良く解くことができないかは現在までに証明されていない。同様に、非特許文献3で提案されている方法も、合成数剰余問題と呼ばれる難しいと思われている問題が効率良く解けない限り安全だと証明されているが、合成数剰余問題が効率良く解くことができないことは証明されていない。現在の計算機環境で合成数剰余問題の安全性を保証するには4096ビット長の鍵を用意する必要があり、将来的にも必要となる鍵長は指数関数的に大きくなり、計算コストが増大する可能性がある。また、量子コンピュータ等の新世代の計算機が開発された場合には、これらの仮定は維持できなくなると予測されている。 Further, methods using public key cryptosystems such as the methods of Non-Patent Documents 2 and 3 guarantee only relative confidentiality based on their respective assumptions. That is, the ElGamal scheme, which is highly likely to be used in the method proposed in Non-Patent Document 2, has been proved to be safe unless a problem considered to be difficult called the Diffie-Hellman problem is efficiently solved, It has not been proven to date whether the Diffie-Hellman problem can be solved really efficiently. Similarly, the method proposed in Non-Patent Document 3 has been proved to be safe unless a problem that is considered to be difficult called a composite number remainder problem is efficiently solved. It has not been proven that it cannot be solved. In the current computer environment, it is necessary to prepare a key having a length of 4096 bits in order to guarantee the security of the modular remainder problem, and the key length required in the future will increase exponentially, increasing the calculation cost. there's a possibility that. It is predicted that if a new generation of computer such as a quantum computer is developed, these assumptions cannot be maintained.

Jaideep Vaidya and Chris Clifton, “Privacy preserving association rule mining in vertically partitioned data,” Proceeding of the 8th ACM SIGMOD International Conference on Knowledge Discovery and Data Mining (KDD2002), pp.639-644, 2002.Jaideep Vaidya and Chris Clifton, “Privacy preserving association rule mining in vertically partitioned data,” Proceeding of the 8th ACM SIGMOD International Conference on Knowledge Discovery and Data Mining (KDD2002), pp.639-644, 2002. Bart Goethals, Sven Laur, Helger Lipman and Taneli Mielikainen, “On privacy scalar product computation for privacy-preserving data mining,” Proceeding of the 7th Annual Information Security and Cryptology (ICISC2004), pp.104-120, 2004.Bart Goethals, Sven Laur, Helger Lipman and Taneli Mielikainen, “On privacy scalar product computation for privacy-preserving data mining,” Proceeding of the 7th Annual Information Security and Cryptology (ICISC2004), pp.104-120, 2004. Pascal Paillier, “Public-key cryptosystems based on composite degree residuosity classes,” Proceeding of International Conference on the Theory and Applications of Cryptographic Techniques (EURO CRYPT’99), pp.223-238, 1999.Pascal Paillier, “Public-key cryptosystems based on composite degree residuosity classes,” Proceeding of International Conference on the Theory and Applications of Cryptographic Techniques (EURO CRYPT'99), pp.223-238, 1999.

本発明はこれらの背景技術の問題点に鑑みてなされたものであり、従来の準同型性公開鍵暗号を利用した秘匿計算とは機密性の根拠が異なり、ある秘匿演算を別の秘匿演算に変換することにより、双方が同意した意味のある秘密情報(以下、交渉秘密情報と記すことがある。)を公平に得ることを可能とする。さらに、得られた交渉秘密情報の機密性を根拠として、秘密データの機密性を完全に守りながら、交渉秘密情報と秘密データを用いた安価なコストの計算により秘匿計算を行うことができる秘匿演算変換システムおよび秘匿演算変換方法を提供することを目的とする。 The present invention has been made in view of these problems of the background art, and the basis of confidentiality is different from confidential calculation using conventional homomorphic public key cryptography. By performing the conversion, it is possible to obtain fairly secret information meaningful to both parties (hereinafter, sometimes referred to as negotiation secret information). In addition, based on the confidentiality of the obtained negotiation secret information, a confidential calculation that can perform confidential calculations by calculating inexpensive costs using negotiation secret information and secret data while completely protecting the confidentiality of secret data It is an object to provide a conversion system and a confidential operation conversion method.

係る目的を解決するため、本発明の秘匿演算変換システムは、2以上のデータ処理装置で構成され、前記データ処理装置はそれぞれの秘密データを記憶する秘密データ記憶手段と、それぞれの出力データを記憶する出力データ記憶手段と、前記秘密データ、前記出力データ、前記秘密データに対して適用したい変換前演算型Aと前記出力データに対して適用したい変換後演算型Bの組み合わせを指定する演算変換方式型を交渉秘密情報として記憶する交渉秘密情報記憶手段と、前記秘密データを入力として、他の前記データ処理装置と連携して、前記出力データを秘匿に計算する演算処理手段と、を有し、
前記演算処理手段は、前記秘密データと他の前記データ処理装置が記憶する秘密データを入力として前記変換前演算型Aの演算を行ったときの結果と、前記出力データと前記他のデータ処理装置の出力データを入力として前記変換後演算型Bを行ったときの結果が同じであることを保証する、
ことを特徴とする。
In order to solve the above-mentioned object, a confidential operation conversion system according to the present invention includes two or more data processing devices, wherein the data processing device stores secret data storage means for storing respective secret data, and stores respective output data. Output data storage means, and an operation conversion method for specifying a combination of the secret data, the output data, a pre-conversion operation type A to be applied to the secret data and a post-conversion operation type B to be applied to the output data A negotiation secret information storage unit that stores a type as negotiation secret information, and an arithmetic processing unit that receives the secret data as input, calculates the output data in a secret manner in cooperation with another data processing device,
The arithmetic processing unit is configured to execute the operation of the pre-conversion operation type A by using the secret data and the secret data stored in the other data processing device as an input, the output data, and the other data processing device. Guarantees that the result when the post-conversion operation type B is performed with the output data of the input as the same,
It is characterized by the following.

前記変換前演算型Aは加算であり、前記変換後演算型Bは乗算であるとしてもよい。   The pre-conversion operation type A may be addition, and the post-conversion operation type B may be multiplication.

前記変換前演算型Aは乗算であり、前記変換後演算型Bは加算であるとしてもよい。   The pre-conversion operation type A may be a multiplication, and the post-conversion operation type B may be an addition.

前記演算処理手段は、実際の演算処理に先だって、一部の演算処理を事前に実施することとしてもよい。   The arithmetic processing means may perform a part of the arithmetic processing before the actual arithmetic processing.

前記演算処理手段は、前記秘密データと、当該演算処理に先だってなされた演算処理の結果として前記交渉秘密情報記憶部に記憶されている前記交渉秘密情報を用いて、出力データを計算することとしてもよい。   The arithmetic processing means may calculate output data using the secret data and the negotiation secret information stored in the negotiation secret information storage unit as a result of the arithmetic processing performed prior to the arithmetic processing. Good.

前記交渉秘密情報記憶手段は、前記秘密データと前記交渉秘密情報を用いて得られた出力データを新たな交渉秘密情報として記憶することとしてもよい。   The negotiation secret information storage means may store output data obtained by using the secret data and the negotiation secret information as new negotiation secret information.

前記演算処理手段は、前記変換前演算型Aが加算であり前記変換後演算型Bが乗算である演算処理と、前記変換前演算型Aが乗算であり前記変換後演算型Bが加算である演算処理とを組み合わせて、底とべき指数の両方を秘密データとし、前記変換前演算型Aがべき乗算であり前記変換後演算型Bが乗算または加算である演算変換処理を行うこととしてもよい。   The arithmetic processing means is an arithmetic processing in which the pre-conversion operation type A is addition and the post-conversion operation type B is multiplication, and the pre-conversion operation type A is multiplication and the post-conversion operation type B is addition. In combination with the arithmetic processing, both the base and the exponent may be used as secret data, and the arithmetic conversion processing before conversion A may be exponentiation and the arithmetic processing after conversion B may be multiplication or addition. .

係る目的を解決するため、本発明の秘匿演算変換方法は、前記データ処理装置はそれぞれの秘密データを記憶する秘密データ記憶ステップと、それぞれの出力データを記憶する出力データ記憶ステップと、前記交渉秘密情報を記憶する交渉秘密情報記憶ステップと、前記秘密データを入力として、他の前記データ処理装置と連携して、前記演算変換方式型に従って、前記出力データを秘匿に計算する演算処理ステップを有し、
前記演算処理ステップは、前記秘密データと他のデータ処理装置の秘密データを入力として前記変換前演算型Aの演算を行った時の結果と前記出力データと他のデータ処理装置のもつ出力データを入力として前記変換後演算型Bの演算を行った時の結果が同じ値であることを保証する、
ことを特徴とする。
In order to solve the above object, in the confidential operation conversion method according to the present invention, the data processing device includes: a secret data storage step of storing respective secret data; an output data storage step of storing respective output data; A negotiation secret information storing step of storing information; and an arithmetic processing step of receiving the secret data as input and calculating the output data in secret in accordance with the arithmetic conversion scheme in cooperation with the other data processing apparatus. ,
The operation processing step is a step of performing the operation of the pre-conversion operation type A by using the secret data and the secret data of another data processing device as inputs, the output data, and the output data of the other data processing device. Ensure that the result of performing the operation of the post-conversion operation type B as an input is the same value,
It is characterized by the following.

前記変換前演算型Aは加算であり、前記変換後演算型Bは乗算であるとしてもよい。   The pre-conversion operation type A may be addition, and the post-conversion operation type B may be multiplication.

前記変換前演算型Aは乗算であり、前記変換後演算型Bは加算であるとしてもよい。   The pre-conversion operation type A may be a multiplication, and the post-conversion operation type B may be an addition.

前記演算処理ステップは、実際の演算処理に先だって、一部の演算処理を事前に実施することとしてもよい。   In the arithmetic processing step, a part of the arithmetic processing may be performed before the actual arithmetic processing.

前記演算処理ステップは、前記秘密データと、当該演算処理に先だってなされた演算処理の結果として前記交渉秘密情報記憶部に記憶されている前記交渉秘密情報を用いて、出力データを計算することとしてもよい。   The arithmetic processing step may calculate output data using the secret data and the negotiation secret information stored in the negotiation secret information storage unit as a result of the arithmetic processing performed prior to the arithmetic processing. Good.

前記交渉秘密情報記憶ステップは、前記秘密データと前記交渉秘密情報を用いて得られた出力データを新たな交渉秘密情報として記憶することとしてもよい。   The negotiation secret information storing step may store the secret data and output data obtained using the negotiation secret information as new negotiation secret information.

前記演算処理ステップは、前記変換前演算型Aが加算であり前記変換後演算型Bが乗算である演算処理と、前記変換前演算型Aが乗算であり前記変換後演算型Bが加算である演算処理とを組み合わせて、底とべき指数の両方を秘密データとし、前記変換前演算型Aがべき乗算であり前記変換後演算型Bが乗算または加算である演算変換処理を行うこととしてもよい。   The operation processing step is an operation in which the pre-conversion operation type A is addition and the post-conversion operation type B is multiplication, and the pre-conversion operation type A is multiplication and the post-conversion operation type B is addition. In combination with the arithmetic processing, both the base and the exponent may be used as secret data, and the arithmetic conversion processing before conversion A may be exponentiation and the arithmetic processing after conversion B may be multiplication or addition. .

係る目的を達成するため、本発明の秘匿演算変換プログラムは、他のコンピュータと連携してデータを処理するコンピュータによって使用されるプログラムであって、
前記データ処理装置はそれぞれの秘密データを記憶する秘密データ記憶ステップと、それぞれの出力データを記憶する出力データ記憶ステップと、前記交渉秘密情報を記憶する交渉秘密情報記憶ステップと、前記秘密データを入力として、他の前記データ処理装置と連携して、演算変換方式型に従って、前記出力データを秘匿に計算する演算処理ステップを有し、
前記演算処理ステップは、前記秘密データと他のデータ処理装置の秘密データを入力として前記変換前演算型Aの演算を行った時の結果と前記出力データとたのデータ処理装置のもつ出力データを入力として前記変換後演算型Bの演算を行った時の結果が同じ値であることを保証する、
ことを特徴とする。
In order to achieve the object, the confidential operation conversion program of the present invention is a program used by a computer that processes data in cooperation with another computer,
The data processing device stores a secret data storing step of storing respective secret data, an output data storing step of storing respective output data, a negotiation secret information storing step of storing the negotiation secret information, and inputs the secret data. As, in cooperation with the other data processing device, according to an arithmetic conversion method type, having an arithmetic processing step of calculating the output data confidentially,
The arithmetic processing step includes, when the secret data and the secret data of another data processing device are input, the result of performing the operation of the pre-conversion operation type A and the output data and the output data of the data processing device. Ensure that the result of performing the operation of the post-conversion operation type B as an input is the same value,
It is characterized by the following.

前記変換前演算型Aは加算であり、前記変換後演算型Bは乗算であるとしてもよい。   The pre-conversion operation type A may be addition, and the post-conversion operation type B may be multiplication.

前記変換前演算型Aは乗算であり、前記変換後演算型Bは加算であるとしてもよい。   The pre-conversion operation type A may be a multiplication, and the post-conversion operation type B may be an addition.

前記演算処理ステップは、実際の演算処理に先だって、一部の演算処理を事前に実施することとしてもよい。   In the arithmetic processing step, a part of the arithmetic processing may be performed before the actual arithmetic processing.

前記演算処理ステップは、前記秘密データと、当該演算処理に先だってなされた演算処理の結果として前記交渉秘密情報記憶部に記憶されている前記交渉秘密情報を用いて、出力データを計算することとしてもよい。   The arithmetic processing step may calculate output data using the secret data and the negotiation secret information stored in the negotiation secret information storage unit as a result of the arithmetic processing performed prior to the arithmetic processing. Good.

前記交渉秘密情報記憶ステップは、前記秘密データと前記交渉秘密情報を用いて得られた出力データを新たな交渉秘密情報として記憶することとしてもよい。   The negotiation secret information storing step may store the secret data and output data obtained using the negotiation secret information as new negotiation secret information.

前記演算処理ステップは、前記変換前演算型Aが加算であり前記変換後演算型Bが乗算である演算処理と、前記変換前演算型Aが乗算であり前記変換後演算型Bが加算である演算処理とを組み合わせて、底とべき指数の両方を秘密データとし、前記変換前演算型Aがべき乗算であり前記変換後演算型Bが乗算または加算である演算変換処理を行うこととしてもよい。   The operation processing step is an operation in which the pre-conversion operation type A is addition and the post-conversion operation type B is multiplication, and the pre-conversion operation type A is multiplication and the post-conversion operation type B is addition. In combination with the arithmetic processing, both the base and the exponent may be used as secret data, and the arithmetic conversion processing before conversion A may be exponentiation and the arithmetic processing after conversion B may be multiplication or addition. .

本発明によれば、双方が同意した関係を満たす交渉秘密情報を公平に得ることを可能とする。さらに、得られた交渉秘密情報の機密性を根拠として、秘密データの機密性を完全に守りながら、秘密データと交渉秘密情報を用いた加算・乗算等の安価なコストの計算により秘匿計算を行う秘匿演算交換システムを実現することができる。 ADVANTAGE OF THE INVENTION According to this invention, it becomes possible to obtain negotiation secret information which satisfies the relationship mutually agreed fairly. Further, based on the confidentiality of the obtained negotiation secret information, the confidential calculation is performed by calculating inexpensive costs such as addition and multiplication using the secret data and the negotiation secret information while completely protecting the confidentiality of the secret data. It is possible to realize a secret arithmetic exchange system.

本発明の秘匿演算変換システムの構成を示すブロック図である。1 is a block diagram illustrating a configuration of a confidential operation conversion system according to the present invention. 複数の機関による事前の取り決めに基づいて決定されている顧客のカード番号の順序付けにより、機関P1がもつ顧客ごとの利用金額を列状に並べた表である。9 is a table in which the usage amounts of each customer of the institution P1 are arranged in a row by ordering the card numbers of the customers determined based on a prior agreement by a plurality of institutions. 複数の機関による事前の取り決めに基づいて決定されている顧客のカード番号の順序付けにより、機関P2がもつ顧客ごとの利用金額を列状に並べた表である。It is a table in which the usage amounts for each customer of the institution P2 are arranged in a row by ordering the card numbers of the customers determined based on a prior agreement by a plurality of institutions. 本発明の秘匿演算変換システムの構成要素の機能を示す機能ブロック図である。It is a functional block diagram showing the function of the component of the confidential operation conversion system of the present invention. 「演算変換処理(交渉秘密情報無加算乗算変換処理)」の手順の概要を説明するための処理概要図である。It is a process outline figure for demonstrating the outline | summary of the procedure of "operation conversion processing (negotiation secret information non-addition multiplication conversion processing)". ElGamal方式を利用した「演算変換処理(交渉秘密情報無加算乗算変換処理)」の手順の概要を説明する処理概要図である。It is a process outline figure explaining the outline of the procedure of "operation conversion processing (negotiation secret information non-addition multiplication conversion processing)" using the ElGamal method. Paillier方式を利用した「演算変換処理(交渉秘密情報無加算乗算変換処理)」の手順の概要を説明する処理概要図である。It is a process outline figure explaining the outline of the procedure of “operation conversion processing (negotiation secret information non-addition multiplication conversion processing)” using the Paillier method. 「演算変換処理(交渉秘密情報無乗算加算変換処理)」の手順の概要を説明するための処理概要図である。It is a process outline figure for demonstrating the outline | summary of the procedure of "operation conversion processing (negotiation secret information no multiplication addition conversion processing)". ElGamal方式を利用した「演算変換処理(交渉秘密情報無乗算加算変換処理)」の手順の概要を説明する処理概要図である。It is a process outline figure explaining the outline of the procedure of “operation conversion processing (negotiation secret information non-multiplication addition conversion processing)” using the ElGamal method. Paillier方式を利用した「演算変換処理(交渉秘密情報無乗算加算変換処理)」の手順の概要を説明する処理概要図である。It is a process outline figure explaining the outline of the procedure of "operation conversion processing (negotiation secret information non-multiplication addition conversion processing)" using the Paillier method. 「演算変換処理(交渉秘密情報有変換処理)」の手順の概要を説明するための処理概略図である。It is a process schematic diagram for demonstrating the outline | summary of the procedure of "calculation conversion process (conversion process with negotiation secret information)". 「秘匿演算変換処理」の手順を説明するためのフローチャートである。It is a flowchart for demonstrating the procedure of "confidential operation conversion processing." 「交渉秘密情報利用指定処理」の手順を説明するためのフローチャートである。It is a flowchart for demonstrating the procedure of a "negotiation secret information use designation | designated process." 「交渉秘密情報有演算変換処理」の手順を説明するためのフローチャートである。It is a flowchart for demonstrating the procedure of "negotiation conversion processing with confidential information". 「交渉秘密情報有乗算加算変換処理」の手順を説明する処理概要図である。It is a processing outline figure explaining the procedure of “negotiation secret information multiplication addition conversion processing”. 「交渉秘密情報有加算乗算変換処理」の手順を説明する処理概要図である。It is a process outline figure explaining the procedure of “negotiation multiplication conversion processing with secret information”. 「交渉秘密情報無演算変換処理」の手順を説明するためのフローチャートである。It is a flowchart for demonstrating the procedure of a "negotiation secret information no-operation conversion process." 「交渉秘密情報無乗算加算変換処理」で実施する演算方式の選定手順を説明するためのフローチャートである。It is a flowchart for demonstrating the selection procedure of the calculation method implemented in "negotiation private information non-multiplication addition conversion processing." 「交渉秘密情報無加算乗算変換処理」で実施する演算方式の選定手順を説明するためのフローチャートである。It is a flowchart for demonstrating the selection procedure of the calculation method implemented in "negotiation secret information no addition multiplication conversion processing." 「交渉秘密情報取得処理」の手順を説明するためのフローチャートである。It is a flowchart for demonstrating the procedure of "negotiation secret information acquisition processing." 「交渉秘密情報更新処理」の手順を説明するフローチャートである。It is a flowchart explaining the procedure of a "negotiation secret information update process." 図13に示す「交渉秘密情報無演算変換処理」で実行される「二段階交渉秘密情報無加算乗算変換処理」の一例である入力前計算と分割を利用した処理を説明する処理概要図である。FIG. 14 is a schematic processing diagram illustrating processing using input pre-calculation and division, which is an example of “two-step negotiation secret information no-addition multiplication conversion processing” executed in “negotiation secret information no-operation conversion processing” shown in FIG. 13. . 図13に示す「交渉秘密情報無演算変換処理」で実行される「二段階交渉秘密情報無乗算加算変換処理」の一例である入力前計算と分割を利用した処理を説明する処理概要図である。FIG. 14 is a process outline diagram illustrating a process using input pre-calculation and division, which is an example of “two-stage negotiation secret information no-multiplication addition conversion process” executed in “negotiation secret information no-operation conversion process” shown in FIG. 13. . 「秘匿べき乗算加算演算変換処理(指数部乗算)」を説明する処理概要図である。It is a process outline figure explaining "secret multiplication addition operation conversion processing (exponential part multiplication)." 「秘匿べき乗算加算演算変換処理(指数部加算)」を説明する処理概要図である。It is a process outline figure explaining "the secret multiplication addition operation conversion processing (exponent part addition)." 非特許文献1に示された秘匿内積計算方法の手順の概要を説明するための処理概念図である。It is a processing conceptual diagram for demonstrating the outline | summary of the procedure of the secret inner product calculation method shown by the nonpatent literature 1.

(本発明の構成)
本発明の秘匿演算変換システムは、機関P1もしくは機関P2のもつ秘密データX、秘密データYについて、第三者の助けなしにある演算Aを秘密データXと秘密データYに対して適用したときと同じ結果を得ることができる別の演算Bに対する入力の組合せOutputX、OutputYを秘匿に計算することで、機関P1、機関P2の双方が同意した意味のある秘匿情報を公平に得るための情報交換システムである。以下、秘匿演算変換システムの基本構成について図面を参照しながら説明する。
(Configuration of the present invention)
The confidential operation conversion system of the present invention is applied to a case where the operation A is applied to the confidential data X and the confidential data Y without the help of a third party for the confidential data X and the confidential data Y of the institution P1 or the institution P2. An information exchange system for fairly obtaining meaningful confidential information that both institutions P1 and P2 have agreed on by calculating secretly the combination of inputs OutputX and OutputY for another operation B that can obtain the same result. It is. Hereinafter, the basic configuration of the confidential operation conversion system will be described with reference to the drawings.

図1に示すように、本発明の秘匿演算変換システム1は、機関P1と機関P2それぞれに設置された2台のデータ処理装置100と、それらを接続する通信線200とで構成される。2台のデータ処理装置100は通信線200を通じて互いにデータを送受信することで連携して秘匿演算変換処理を実行する。 As shown in FIG. 1, the confidential operation conversion system 1 of the present invention includes two data processing devices 100 installed in each of an institution P1 and an institution P2, and a communication line 200 connecting them. The two data processing apparatuses 100 cooperate with each other by transmitting and receiving data to and from each other through the communication line 200 to execute a confidential operation conversion process.

データ処理装置100は、例えばPCサーバやメインフレームなどの中に構築され、制御部110、通信部120、記憶部130、操作部140、インタフェース部150、演算処理部160から構成される。 The data processing device 100 is built in, for example, a PC server or a mainframe, and includes a control unit 110, a communication unit 120, a storage unit 130, an operation unit 140, an interface unit 150, and an arithmetic processing unit 160.

制御部110はCPU(Central Processing Unit) などで構成され、データ処理装置100の各部を制御・統制する。すなわち、操作部140からの「秘匿演算変換処理開始信号」を受けて、前記演算Aと前記演算Bに対応して規定されている演算変換方式型(以下、Typeと略記することがある。)を指定し、記憶部130に予め格納されている演算処理に必要な情報を読み出して演算処理部160での演算処理を実行させ、必要に応じて演算処理部160での演算処理結果を記憶部130に格納する、秘匿演算変換に必要な情報を通信部120を介して相手機関に送出する、演算処理部160での演算結果をI/F部150を介して表示・出力する等の機能を担う。 The control unit 110 includes a CPU (Central Processing Unit) and controls and controls each unit of the data processing device 100. That is, in response to the “confidential operation conversion process start signal” from the operation unit 140, the operation conversion method type (hereinafter, may be abbreviated as Type) defined corresponding to the operations A and B. Is specified, information necessary for the arithmetic processing stored in the storage unit 130 is read in advance, and the arithmetic processing in the arithmetic processing unit 160 is executed. If necessary, the result of the arithmetic processing in the arithmetic processing unit 160 is stored in the storage unit 130. 130, the information necessary for the confidential operation conversion is transmitted to the partner organization via the communication unit 120, and the operation result of the operation processing unit 160 is displayed and output via the I / F unit 150. Carry.

通信部120はLANコネクタや送受信処理用のプロセッサなどから構成され、制御部110からの制御によって、通信線200を通じて相手機関のデータ処理装置100との通信を行う。 The communication unit 120 includes a LAN connector, a processor for transmission / reception processing, and the like, and communicates with the data processing device 100 of the partner organization through the communication line 200 under the control of the control unit 110.

記憶部130はハードディスクやRAM(Random Access Memory)などの記憶装置から構成され、演算処理部160での演算処理に必要な、自己の秘密データ、演算変換処理方式データ等のデータが予め格納されており、必要に応じて演算処理部160での演算結果等も交渉秘密情報として格納する。 The storage unit 130 is configured by a storage device such as a hard disk or a RAM (Random Access Memory), and stores data such as its own secret data and operation conversion processing data necessary for the operation processing in the operation processing unit 160 in advance. Also, the calculation result in the calculation processing unit 160 is stored as negotiation secret information as needed.

ここで「秘密データ」とは「顧客情報」や「秘密ベクトル」などの非公開の情報をいう。また、「顧客情報」とは各機関を利用した顧客の情報であり、「秘密ベクトル」とは、複数の機関が共通して知っているIDによって、顧客情報を並び替え、ある機関が持っている秘密ベクトルの各ベクトル位置の情報を提供顧客と別の機関が持っている秘密ベクトルの同じベクトル位置の情報を提供した顧客が同一となるように、双方の機関で共通した認識を得て整列された情報とする。 Here, “secret data” refers to non-public information such as “customer information” and “secret vector”. Further, "customer information" is information of a customer who has used each institution, and "secret vector" is that customer information is rearranged according to an ID commonly known by a plurality of organizations, and a certain organization has Provide information on each vector position of the secret vector that is present and arrange with the common recognition of both institutions so that the customer who provided the information on the same vector position of the secret vector held by another institution is the same And the information that was given.

ここで「演算変換処理方式データ」とは、演算処理部160で実行される各種の秘匿演算処理方式を決定するためのデータであり、演算変換方式型Typeを指定する情報や交渉秘密情報利用有無を指定する情報等がある。   Here, the “operation conversion processing method data” is data for determining various confidential operation processing methods to be executed by the operation processing unit 160, and includes information for designating the operation conversion method type Type and whether or not negotiation secret information is used. There is information for designating, for example.

また、「交渉秘密情報」とは演算処理部160で演算処理を行うことにより得られた、双方が同意して作成された秘密情報であり、機関P1、機関P2が秘密データX,秘密データYと出力データOutputX、OutputYを含む情報を、機関P1,機関P2双方が同じ索引Idを付けてそれぞれ記憶部130に記憶する秘密データSecretX[Id]、SecretY[Id]をいう。後に説明する「秘匿演算変換処理」では、記憶部130に記憶されている以前に作成された交渉秘密情報を利用して演算変換処理を行う場合もあるが、詳細は後述する。 The "negotiation confidential information" is confidential information obtained by performing arithmetic processing in the arithmetic processing unit 160 and created by mutual agreement. The institutions P1 and P2 transmit the secret data X and the secret data Y The secret data SecretX [Id] and SecretY [Id] stored in the storage unit 130 by the institution P1 and the institution P2 with the same index Id on the information including the output data OutputX and OutputY. In the “confidential operation conversion process” described later, the operation conversion process may be performed using previously created negotiation secret information stored in the storage unit 130, but the details will be described later.

操作部140はデータ処理装置100の外面上に構成されている各種ボタンなどによって構成される。ユーザにより所定のボタンが押されると、制御部110に対し「秘匿演算変換処理開始通知」を送信する。秘匿演算変換処理開始通知は、秘匿演算変換処理を開始するためのトリガーとなる信号である。 The operation unit 140 includes various buttons and the like configured on the outer surface of the data processing device 100. When a predetermined button is pressed by the user, a “secret calculation conversion process start notification” is transmitted to control unit 110. The secret calculation conversion process start notification is a signal that serves as a trigger for starting the secret calculation conversion process.

I/F部150は例えばUSB(Universal Serial Bus)コネクタやビデオ出力端子などから構成され、外部の装置(例えばPCやモニタなど)へ処理結果を送信する。 The I / F unit 150 includes, for example, a USB (Universal Serial Bus) connector and a video output terminal, and transmits a processing result to an external device (for example, a PC or a monitor).

(本発明の実施形態1)
以上、秘匿演算変換システム1の構成と各部の機能について説明したが、次に、図4を用いて、本発明の実施形態1に係る演算処理部160での「秘匿演算変換処理」と「交渉秘密情報取得処理」の概要について説明する。
なお、簡略化の為、図4では制御部110を割愛したが、各構成要素間の情報の授受、機関P1、機関P2間の送受信は、制御部110によって制御・統制されていることは勿論である。
(Embodiment 1 of the present invention)
The configuration of the confidential operation conversion system 1 and the function of each unit have been described above. Next, referring to FIG. 4, the “confidential operation conversion process” and “negotiation” in the operation processing unit 160 according to the first embodiment of the present invention will be described. An outline of the “secret information acquisition process” will be described.
Although the control unit 110 is omitted in FIG. 4 for simplification, it is needless to say that the transmission and reception of information between the components and the transmission and reception between the institutions P1 and P2 are controlled and controlled by the control unit 110. It is.

演算処理部160での「秘匿演算変換処理」は操作部140からの「秘匿演算変換処理開始通知」により開始される。
機関P1及び機関P2の秘匿演算変換処理部161は連携して、自己の秘密データと相手機関の秘密データに演算Aを適用して得られる結果と同じ結果を得られるような演算Bの入力の組OutputX、OutputYをそれぞれ秘匿に計算し、機関P1は自己の秘密出力データOutputXのみを、機関P2は自己の秘密データ出力OutputYのみを取得する。
The “confidential calculation conversion process” in the calculation processing unit 160 is started by a “notification of start of the confidential calculation conversion process” from the operation unit 140.
The confidential operation conversion processing units 161 of the institution P1 and the institution P2 cooperate to input the operation B to obtain the same result as the result obtained by applying the operation A to its own secret data and the secret data of the partner institution. The pair OutputX and OutputY are each calculated secretly, and the institution P1 acquires only its own secret output data OutputX, and the institution P2 acquires only its own secret data output OutputY.

機関P1の交渉秘密情報取得処理部162は、秘匿演算変換処理部161で取得した秘密出力データOutputX、秘密データX,演算変換方式型Typeを明記する情報(例えば、Type=1なら乗算から加算への変換を、Type≠1なら加算から乗算への変換を示す情報)をObjectXとしてまとめる。
同様に、機関P2の交渉秘密情報取得処理部162も秘密出力データOutputY、秘密データY、演算変換方式型TypeをObjectYとしてまとめる。
さらに、機関P1及び機関P2は連携して、ObjectXとObjectYに付ける、両機関で同一の索引Idを決定し、交渉秘密情報SecretX[Id]として、それぞれの記憶部130に格納する。
以下、秘匿演算変換処理部161での演算変換処理に使用された秘密データX、秘密データYと交渉秘密情報取得処理部162で記憶部130に格納された秘密データX、秘密データYを弁別する目的で、交渉秘密情報として記憶部130に格納された秘密データX、秘密データYを、それぞれ、演算変換入力InputX、演算変換入力InputYと記すことがある。
また、機関P1、機関P2で求められた秘密出力データOutputX、秘密出力データOutputYと交渉秘密情報取得処理部162で記憶部130に格納された秘密出力データOutputX、秘密出力データOutputYを弁別する目的で、交渉秘密情報として記憶部130に格納された秘密出力データOutputX、秘密出力データOutputYを、それぞれ演算変換出力OutputX、演算変換出力OutputYと記すことがある。
The negotiation secret information acquisition processing unit 162 of the institution P1 specifies the secret output data OutputX and the secret data X acquired by the secret operation conversion processing unit 161 and information specifying the operation conversion method type (for example, if Type = 1, multiplication to addition is performed). , And if Type ≠ 1, information indicating conversion from addition to multiplication) is collected as ObjectX.
Similarly, the negotiation secret information acquisition processing unit 162 of the institution P2 collects the secret output data OutputY, the secret data Y, and the operation conversion method type Type as ObjectY.
Further, the institution P1 and the institution P2 cooperate to determine the same index Id to be attached to ObjectX and ObjectY, and store the same in each storage unit 130 as negotiation secret information SecretX [Id].
Hereinafter, the secret data X and the secret data Y used in the operation conversion process in the secret operation conversion processing unit 161 are distinguished from the secret data X and the secret data Y stored in the storage unit 130 in the negotiation secret information acquisition processing unit 162. For the purpose, the secret data X and the secret data Y stored in the storage unit 130 as the negotiation secret information may be referred to as an operation conversion input InputX and an operation conversion input InputY, respectively.
Also, the purpose of discriminating the secret output data OutputX and secret output data OutputY obtained by the institutions P1 and P2 and the secret output data OutputX and secret output data OutputY stored in the storage unit 130 by the negotiation secret information acquisition processing unit 162. The secret output data OutputX and the secret output data OutputY stored in the storage unit 130 as negotiation secret information may be referred to as an operation conversion output OutputX and an operation conversion output OutputY, respectively.

図5は秘匿演算変換処理部161での秘匿演算変換処理と交渉秘密情報取得処理部162での交渉秘密情報取得処理の一例を具体的に示したものであり、機関P1が保有する秘密データX、機関P2が保有する秘密データYについて、X+Yを求めるための演算Aを別の演算Bに変えて実施する手順を示している。
機関P1の秘匿演算変換処理部161は(式1)、(式2)で示される、自己の秘密データXを含んだ値CA1,CA2,CA3,DA1,DA2,DA3を計算して機関P2に送信する。
(CA1、CA2、CA3)=(α1KA1、α3KA1、gγ1) (1)
(DA1、DA2、DA3)=(α2KA、α4KA2、gγ2) (2)
ここに、α1、α2、α3、α4 は秘密データXをX = X1/X2 と表した時、X112、X2 = α34の関係を満たす機関P1のみが知る乱数、KA1,KA2は機関P1及び機関P2が知る公開鍵Z(=gx)と原始元g、機関P1のみが知る乱数γ1、γ2とを用いて、KA1=Zγ1、KA2=Zγ2と表せる値、xは機関P1の秘密鍵であり、予め機関P1の記憶部130に格納されている。
機関P2の秘匿演算変換処理部161は、機関P1からのCA1、CA2、CA3、DA1、DA2、DA3を受信して、(式3)、(式4)で示される、予め機関P2の記憶部130に格納されている秘密データY、自己の乱数Ψ、λ、λ2、λ3、λ4、λ5、λ6、λ7、λ8、を含んだ値CB1、CB2、CB、CB、CB、CB、CB、CB、DB1、DB、DB、DB、DB、DB、DB、DBを計算して機関P1に送信する。
(CB1、CB2、CB、CB、CB、CB、CB、CB
=(θ1Zλ1、θ2Zλ2、β1Zλ3、θ3Zλ4、β2Zλ5、β3Zλ6、θ4Zλ7、β4Zλ8) (3)
(DB1、DB、DB、DB、DB、DB、DB、DB
=(gλ1DA3、gλ2DA3、gλ3CA3、gλ4DA3、gλ5CA3、gλ6CA3、gλ7DA3、gλ8CA3、)
(4)
ここに、θ1、θ2、θ3、θ4、β1、β2、β3、β4は、秘密データYをY = Y2/Y1と表した時CA1Y1+CA2Y21234、DA1Y1+DA2Y2=θ1234満たす値である。
機関P1では、機関P2からのデータCBi、DBiを受信して、(式5)で示される値OutputXを求める。
OutputX = Σ1≦i≦8 CBiDBi -x/X2
(=(Σ1≦i≦4βiCA3 -11≦i≦4θiDA3 -1)/X2))
(=(ΓB1CA3 -1+ΓB2DA3 -1 )/X2))
(=((α1Y1+α3Y2)+ (α2Y1+α4Y2))/X2))
(=((α12) Y1+(α34) Y2))/X2))
≡ (X1Y1+X2Y2)/X2 (5)
機関P2では、(式6)で示される値OutputYを求める。
OutputY = 1/Y1 (6)
(式5)、(式6)から判るように、それぞれの機関で計算したOutputX、OutputYを交換し合うことで、(式7)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OutputX×OutputY = (X1Y1+X2Y2)/(X2Y1
(=X1/X2+Y2/Y1
= X+Y (7)
(式7)から判るように、図5に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式1)から(式7)に示した演算変換方式を分割加算乗算演算変換法と略記することがある。
図5は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i,CA2i, CA3i, DA1i,DA2i,DA3i,CB1i,CB2i,CB3i,CB4i,CB5i,CB6i,CB7i,CB8i,
DB1i,DB2i,DB3i,DB4i,DB5i,DB6i,DB7i,DB8i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことでΣ1≦i≦n( Xi+Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図5では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、演算変換処理の型Type(図5では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
FIG. 5 specifically shows an example of the confidential operation conversion process in the confidential operation conversion processing unit 161 and the negotiation secret information acquisition process in the negotiation secret information acquisition processing unit 162. The secret data X held by the institution P1 is shown. The figure shows the procedure for changing the operation A for obtaining X + Y to another operation B for the secret data Y held by the institution P2.
The confidential calculation conversion processing unit 161 of the institution P1 converts the values CA 1 , CA 2 , CA 3 , DA 1 , DA 2 , and DA 3 shown in (Equation 1) and (Equation 2) that include the own secret data X. Calculate and send to institution P2.
(CA 1 , CA 2 , CA 3 ) = (α 1 KA 1 , α 3 KA 1 , g γ1 ) (1)
(DA 1 , DA 2 , DA 3 ) = (α 2 KA 2 , α 4 KA 2 , g γ 2) (2)
Here, α 1 , α 2, α 3 , and α 4 are the relations of X 1 = α 1 + α 2 and X 2 = α 3 + α 4 when secret data X is expressed as X = X 1 / X 2. KA 1 and KA 2 are determined by using the public key Z (= g x ) and the primitive element g known by the institution P1 and the organization P2, and the random numbers γ 1 and γ 2 known only by the organization P1. , KA 1 = Z γ1 , KA 2 = Z γ2 , x is a secret key of the institution P1 and is stored in advance in the storage unit 130 of the institution P1.
Security operation conversion processing unit 161 of the engine P2 receives the CA 1, CA 2, CA 3 , DA 1, DA 2, DA 3 from the engine P1, (Equation 3), represented by (Equation 4), secret data Y stored in the storage unit 130 in advance engine P2, its random number Ψ, λ 1, λ 2, λ 3, λ 4, λ 5, λ 6, λ 7, λ 8, containing the values CB calculate the 1, CB 2, CB 3, CB 4, CB 5, CB 6, CB 7, CB 8, DB 1, DB 2, DB 3, DB 4, DB 5, DB 6, DB 7, DB 8 Send to institution P1.
(CB 1, CB 2, CB 3, CB 4, CB 5, CB 6, CB 7, CB 8)
= (Θ 1 Z λ1, θ 2 Z λ2, β 1 Z λ3, θ 3 Z λ4, β 2 Z λ5, β 3 Z λ6, θ 4 Z λ7, β 4 Z λ8) (3)
(DB 1, DB 2, DB 3, DB 4, DB 5, DB 6, DB 7, DB 8)
= (G λ1 DA 3, g λ2 DA 3, g λ3 CA 3, g λ4 DA 3, g λ5 CA 3, g λ6 CA 3, g λ7 DA 3, g λ8 CA 3,)
(4)
Here, θ 1 , θ 2 , θ 3 , θ 4 , β 1 , β 2 , β 3 , β 4 are represented by CA 1 Y 1 + CA 2 when secret data Y is represented as Y = Y 2 / Y 1 These values satisfy Y 2 = β 1 + β 2 + β 3 + β 4 and DA 1 Y 1 + DA 2 Y 2 = θ 1 + θ 2 + θ 3 + θ 4 .
The institution P1 receives the data CB i and DB i from the institution P2, and obtains a value OutputX represented by (Equation 5).
OutputX = Σ 1 ≦ i ≦ 8 CB i DB i -x / X 2
(= (Σ 1 ≦ i ≦ 4 β i CA 3 -1 + Σ 1 ≦ i ≦ 4 θ i DA 3 -1 ) / X 2 ))
(= (ΓB 1 CA 3 -1 + ΓB 2 DA 3 -1 ) / X 2 ))
(= ((Α 1 Y1 + α 3 Y2) + (α 2 Y1 + α 4 Y2)) / X 2 ))
(= ((Α 1 + α 2 ) Y1 + (α 3 + α 4 ) Y2)) / X 2 ))
≡ (X 1 Y 1 + X 2 Y 2 ) / X 2 (5)
Institution P2 obtains a value OutputY represented by (Equation 6).
OutputY = 1 / Y 1 (6 )
As can be seen from (Expression 5) and (Expression 6), by exchanging OutputX and OutputY calculated by the respective institutions, a value X + Y obtained by adding the secret data X and the secret data Y by (Expression 7) Is found.
OutputX × OutputY = (X 1 Y 1 + X 2 Y 2) / (X 2 Y 1)
(= X 1 / X 2 + Y 2 / Y 1 )
= X + Y (7)
As can be seen from (Equation 7), the operation conversion process shown in FIG. 5 is the same as when the operation A (X + Y) is performed with the secret data X and the secret data Y held by the institutions P1 and P2 as inputs. A plurality of inputs OutputX and OutputY for the operation B (OutputX × OutputY) from which a result can be obtained can be calculated confidentially.
Hereinafter, the operation conversion schemes shown in (Equation 1) to (Equation 7) may be abbreviated as a division addition multiplication operation conversion method.
FIG. 5 shows a case where the secret data X of the institution P1 and the secret data Y of the institution P2 are one-dimensional (when the number of data of X or Y is one) for the sake of simplicity. Is CA 1i , CA 2i , CA 3i , DA 1i , DA 2i , DA 3i , CB 1i , CB 2i , CB 3i , CB 4i , CB 5i , CB 6i , CB 7i , CB 8i ,
By performing similar calculations and exchanging information for DB 1i , DB 2i , DB 3i , DB 4i , DB 5i , DB 6i , DB 7i , DB 8i (i = 1,2,3,... N), 1 ≦ i ≦ n (X i + Y i ) can be obtained.
The negotiation secret information acquisition processing unit 162 of the institution P1 obtains ObjectX including the operation conversion input InputX, the operation conversion output OutputX, and Type (in FIG. 5, information indicating that the addition which is operation A is converted to the multiplication which is operation B). The negotiation secret information is set as SecretX [Id] and stored in the storage unit 130.
Similarly, in the negotiation secret information acquisition processing unit 162 of the institution P2, the operation conversion input InputY, the operation conversion output OutputY, and the type of the operation conversion process (in FIG. 5, the addition of operation A is converted to the multiplication of operation B) InformationY) is obtained, set as negotiation secret information SecretY [Id], and stored in the storage unit 130.
Note that Id in the negotiation secret information SecretX [Id] and the negotiation secret information SecretY [Id] have the same number.

図5では機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができることを示した。
同様の演算変換は良く知られた、秘匿性に優れるElGamal方式を利用することでも実現可能であり、図6を用いて説明する。
図6において、機関P1の秘匿演算変換処理部161は(式8)、(式9)で示される、自己の秘密データXを含んだ値CA1、CA2を計算して機関P2に送信する。
CA1 = 2XPKγ1 (8)
CA2 = gγ1 (9)
ここに、gは機関P1、機関P2が共有する原始元、PK(=gSK)は公開鍵、SKは機関P1の秘密鍵、γ1は機関P1のみが知る乱数であり、予め機関P1の記憶部130に格納されている。
機関P2の秘匿演算変換処理部161は機関P1からのCA1、CA2を受信して(式10)、(式11)で示される自己の秘密データYを含んだ値CB1、CB2を計算して機関P1に送る。
CB=(2YCA11/ΨPKγ2 (10)
CB2 =(CA21/Ψgγ2 (11)
ここに、Ψ、γ2は機関P2のみが知る乱数であり、予め、機関P2の記憶部130に格納されている。
機関P1では、機関P2からのデータCB1、CB2を受信して、(式12)で示される値OutputXを求める。
OutputX = log2(CB1/(CB2)SK)
(= log2(2(X+Y)/ΨPK(γ1+γ2)/Ψ/(g(γ1+γ2)/Ψ)SK)
(= Log2(2(X+Y)/Ψ) )
(=(X+Y)/Ψ)
≡ Φ (12)
機関P2では、(式13)で示される値OutputYを求める。
OutputY=Ψ (13)
(式12)、(式13)から判るように、機関P1で計算したOutputXと機関P2のOutputYを交換し合うことで、(式14)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OutputX×OutputY = Φ×Ψ
= X+Y (14)
(式14)から判るように、図6に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式8)から(式14)に示した演算変換方式をElGamal加算乗算演算変換法と略記することがある。
図6は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i,CA2i,CB1i,CB2i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことで
Σ1≦i≦n( Xi+Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図6では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、Type(図6では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
In FIG. 5, a plurality of operations B (OutputX × OutputY) that can obtain the same result as when the operation A (X + Y) is performed with the secret data X and the secret data Y held by the institutions P1 and P2 as inputs are obtained. It was shown that input OutputX and OutputY can be calculated secretly.
The same arithmetic conversion can be realized by using the well-known ElGamal method which is excellent in confidentiality, and will be described with reference to FIG.
In FIG. 6, the confidential operation conversion processing unit 161 of the institution P1 calculates values CA 1 and CA 2 including its own secret data X shown in (Equation 8) and (Equation 9) and transmits the calculated values to the institution P2. .
CA 1 = 2 X PK γ1 (8)
CA 2 = g γ1 (9)
Here, g is a primitive element shared by the institution P1 and the institution P2, PK (= g SK ) is a public key, SK is a secret key of the institution P1, and γ1 is a random number known only to the institution P1. It is stored in the unit 130.
The confidential operation conversion processing unit 161 of the institution P2 receives CA 1 and CA 2 from the institution P1, and converts the values CB 1 and CB 2 including the own secret data Y shown in (Equation 10) and (Equation 11). Calculate and send to agency P1.
CB 1 = (2 Y CA 1 ) 1 / Ψ PK γ2 (10)
CB 2 = (CA 2 ) 1 / Ψ g γ2 (11)
Here, Ψ and γ2 are random numbers known only to the institution P2, and are stored in advance in the storage unit 130 of the institution P2.
In the engine P1, it receives data CB 1, CB 2 from engine P2, determines the value OutputX represented by (Equation 12).
OutputX = log 2 (CB 1 / (CB 2 ) SK )
(= Log 2 (2 (X + Y) / Ψ ) PK (γ1 + γ2) / Ψ / (g (γ1 + γ2) / Ψ) SK )
(= Log 2 (2 ( X + Y) / Ψ))
(= (X + Y) / Ψ)
≡ Φ (12)
Institution P2 obtains a value OutputY represented by (Equation 13).
OutputY = Ψ (13)
As can be seen from (Equation 12) and (Equation 13), by exchanging OutputX calculated by the institution P1 and OutputY of the institution P2, the value X obtained by adding the secret data X and the secret data Y is obtained by (Equation 14). + Y is obtained.
OutputX × OutputY = Φ × Ψ
= X + Y (14)
As can be seen from (Equation 14), the operation conversion process shown in FIG. 6 is the same as the operation A (X + Y) with the secret data X and the secret data Y held by the institutions P1 and P2 as inputs. A plurality of inputs OutputX and OutputY for the operation B (OutputX × OutputY) from which a result can be obtained can be calculated confidentially.
Hereinafter, the operation conversion schemes shown in (Equation 8) to (Equation 14) may be abbreviated as ElGamal addition multiplication operation conversion method.
FIG. 6 shows a case where the secret data X of the institution P1 and the secret data Y of the institution P2 are one-dimensional (when the number of data of X or Y is one) for simplicity. By performing similar calculations and exchanging information for CA 1i , CA 2i , CB 1i , and CB 2i (i = 1, 2, 3,... N), Σ 1 ≦ i ≦ n (X i + Y i ) Can be requested.
The negotiation secret information acquisition processing unit 162 of the institution P1 obtains ObjectX including the operation conversion input InputX, the operation conversion output OutputX, and Type (in FIG. 6, information indicating that the addition of operation A is converted to the multiplication of operation B), It is set as negotiation secret information SecretX [Id] and stored in the storage unit 130.
Similarly, in the negotiation secret information acquisition processing unit 162 of the institution P2, ObjectY including the operation conversion input InputY, operation conversion output OutputY, and Type (in FIG. 6, information indicating that the addition which is operation A is converted into the multiplication which is operation B). Is set as negotiation secret information SecretY [Id] and stored in the storage unit 130.
Note that Id in the negotiation secret information SecretX [Id] and the negotiation secret information SecretY [Id] are set to the same number.

図6では機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿性に優れるElGamal方式を用いて計算できることを示した。
同様の演算変換は良く知られた、秘匿性に優れるPaillier方式を利用することでも実現可能であり、図7を用いて説明する。
図7において、機関P1の秘匿演算変換処理部161は(式15)で示される、自己の秘密データXを含んだ値CA1を計算して機関P2に送信する。
CA1 = gXγ1NmodN (15)
ここに、γ1は機関P1のみが知る乱数、N、gは、N=p×q、g=(1+kN)modN2の関係を満たす公開鍵であり、予め、機関P1及び機関P2の記憶部130に格納されている。
なお、p,qは大きな素数であり、秘密鍵として、予め機関P1の記憶部130に格納されており、kは機関P1のみが知る乱数である。
機関P2の秘匿演算変換処理部161は機関P1からのCA1を受信して(式16)で示される自己の秘密データYを含んだ値CB1を計算して機関P1に送る。
CB= (gYCA)1/ΨmodN (16)
ここに、Ψは機関P2のみが知る乱数であり、予め、機関P2の記憶部130に格納されている。
機関P1では、機関P2からのデータCB1を受信して、(式17)で示される値OutputXを求める。
OutputX = (L(CB1modN2/L(gλmodN2))modN
(= (X+Y)/Ψ)
≡ Φ (17)
ここに、λは機関P1のみが知る秘密鍵であり、大きな素数p,qについて(p-1)と(q-1)の最小公倍数であり、予め、機関P1の記憶部130に格納されている。
また、L(U)は、L(U)=(U−1)/Nを満たす関数である。
機関P2では、(式18)で示される値OutputYを求める。
OutputY=Ψ (18)
(式17)、(式18)から判るように、機関P1で計算したOutputXと機関P2のOutputYを交換し合うことで、(式19)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OutputX×OutputY = Φ×Ψ
= X+Y (19)
(式19)から判るように、図7に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式15)から(式19)に示した演算変換方式をPaillier加算乗算演算変換法と略記することがある。
図7は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i、CB1i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことでΣ1≦i≦n( Xi+Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図7では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、Type(図7では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
In FIG. 6, a plurality of operations B (OutputX × OutputY) that can obtain the same result as when the operation A (X + Y) is performed by using the secret data X and the secret data Y held by the institutions P1 and P2 as inputs. It was shown that input OutputX and OutputY can be calculated using ElGamal method which is excellent in secrecy.
The same arithmetic conversion can be realized by using the well-known Paillier method which is excellent in confidentiality, and will be described with reference to FIG.
7, security operation conversion processing unit 161 of the engine P1 sends indicated by, the engine P2 to calculate the value CA 1 including the own secret data X (Equation 15).
CA 1 = g X γ1 N modN (15)
Here, .gamma.1 random number, N, g to know only the engine P1 is a public key that satisfies N = p × q, g = (1 + kN) modN 2 relations, pre-stored in the engine P1 and engine P2 It is stored in the unit 130.
Here, p and q are large prime numbers, which are stored in advance in the storage unit 130 of the institution P1 as secret keys, and k is a random number known only to the institution P1.
Security operation conversion processing unit 161 of the engine P2 sends the engine P1 to calculate the value CB 1 including the own secret data Y represented by receives CA 1 from the engine P1 (Equation 16).
CB 1 = (g Y CA 1 ) 1 / Ψ modN (16)
Here, Ψ is a random number known only to the institution P2, and is previously stored in the storage unit 130 of the institution P2.
In the engine P1, it receives data CB 1 from engine P2, determines the value OutputX represented by (Equation 17).
OutputX = (L (CB 1 modN 2 / L (g λ modN 2 )) modN
(= (X + Y) / Ψ)
≡ Φ (17)
Here, λ is a secret key known only to the institution P1, and is the least common multiple of (p-1) and (q-1) for large prime numbers p and q, and is stored in advance in the storage unit 130 of the institution P1. I have.
L (U) is a function that satisfies L (U) = (U−1) / N.
Institution P2 obtains a value OutputY represented by (Equation 18).
OutputY = Ψ (18)
As can be seen from (Equation 17) and (Equation 18), by exchanging OutputX calculated by the institution P1 and OutputY of the institution P2, the value X obtained by adding the secret data X and the secret data Y is obtained by (Equation 19). + Y is obtained.
OutputX × OutputY = Φ × Ψ
= X + Y (19)
As can be seen from (Equation 19), the operation conversion process shown in FIG. 7 is the same as when the operation A (X + Y) is performed with the secret data X and the secret data Y held by the institutions P1 and P2 as inputs. A plurality of inputs OutputX and OutputY for the operation B (OutputX × OutputY) from which a result can be obtained can be calculated confidentially.
Hereinafter, the operation conversion schemes shown in (Equation 15) to (Equation 19) may be abbreviated as Paillier addition multiplication operation conversion method.
FIG. 7 shows a case where the secret data X of the institution P1 and the secret data Y of the institution P2 are one-dimensional (when the number of data of X or Y is one) for simplicity. CA 1 ≦ i ≦ n (X i + Y i ) can be obtained by performing similar calculations and exchanging information on CA 1i and CB 1i (i = 1, 2, 3,... N). .
The negotiation secret information acquisition processing unit 162 of the institution P1 obtains ObjectX including the operation conversion input InputX, the operation conversion output OutputX, and Type (in FIG. 7, information indicating that the addition as the operation A is converted into the multiplication as the operation B). It is set as negotiation secret information SecretX [Id] and stored in the storage unit 130.
Similarly, the negotiation secret information acquisition processing unit 162 of the institution P2 obtains ObjectY including the operation conversion input InputY, operation conversion output OutputY, and Type (in FIG. 7, information indicating that the addition, which is operation A, is converted into the multiplication, which is operation B). Is set as negotiation secret information SecretY [Id] and stored in the storage unit 130.
Note that Id in the negotiation secret information SecretX [Id] and the negotiation secret information SecretY [Id] are set to the same number.

以上、分割加算乗算演算変換法、ElGamal加算乗算演算変換法、Paillier加算乗算演算変換法による、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算する方法について説明したが、これらの方式を組み合わせた演算変換の実行も可能であることは勿論である。
すなわち、例えば、秘密データX1と秘密データY1に関する演算時にはPaillier加算乗算演算変換法による演算変換を行い、秘密データX2,X3,X4,・・・と、秘密データY2,Y3,Y4,・・・に関する演算時には、分割加算乗算演算変換法による演算変換を行う等の任意の組み合わせも可能である。
As described above, the operation A (X + Y) using the secret data X and the secret data Y held by the institution P1 and the institution P2 by the division addition multiplication operation conversion method, the ElGamal addition multiplication operation conversion method, and the Paillier addition multiplication operation conversion method A method has been described in which a plurality of inputs OutputX and OutputY for a calculation B (OutputX × OutputY) that can obtain the same result as when the calculation is performed are concealed. However, it is also possible to execute a calculation conversion combining these methods. Of course.
That is, for example, at the time of the operation on the secret data X 1 and the secret data Y 1, the operation conversion by the Paillier addition multiplication operation conversion method is performed, and the secret data X 2 , X 3 , X 4 ,... And the secret data Y 2 , Y At the time of the operation relating to 3 , Y 4 ,..., Any combination such as performing operation conversion by a division addition multiplication operation conversion method is possible.

図5では機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができることを示した。
次に、図8によって、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができることを示す。
In FIG. 5, a plurality of operations B (OutputX × OutputY) that can obtain the same result as when the operation A (X + Y) is performed with the secret data X and the secret data Y held by the institutions P1 and P2 as inputs are obtained. It was shown that input OutputX and OutputY can be calculated secretly.
Next, referring to FIG. 8, an operation B (OutputX + OutputY) that can obtain the same result as when the operation A (X × Y) is performed using the secret data X and the secret data Y held by the institutions P1 and P2 as inputs. ) Indicates that multiple inputs OutputX and OutputY can be calculated confidentially.

機関P1の秘匿演算変換処理部161は(式20)、(式21)で示される、自己の秘密データXを含んだ値CA1、CA2、CA3、DA1、DA2、DA3を計算して機関P2に送信する。
(CA1、CA2、CA3)=(α1KA1、α3KA1、gγ1) (20)
(DA1、DA2、DA3)=(α2KA、α4KA2、gγ2) (21)
ここに、α1、α2はX=α12の関係を満たす機関P1のみが知る乱数、α3、α4はα34=1の関係を満たす機関P1のみが知る乱数、KA1,KA2は機関P1及び機関P2が知る公開鍵Z(=gx)と原始元g、機関P1のみが知る乱数γ1、γ2とを用いて、KA1=Zγ1、KA2=Zγ2と表せる値、xは機関P1の秘密鍵であり、予め機関P1の記憶部130に格納されている。
機関P2の秘匿演算変換処理部161は、機関P1からのCA1、CA2、CA3、DA1、DA2、DA3を受信して、(式22)、(式23)で示される、予め機関P2の記憶部130に格納されている秘密データY、自己の乱数Ψ、λ、λ2、λ3、λ4、λ5、λ6、λ7、λ8、を含んだ値CB1,CB2,CB,CB,CB,CB,CB,CB,DB1,DB,DB,DB,DB,DB,DB,DBを計算して機関P1に送信する。
(CB1、CB2、CB、CB、CB、CB、CB、CB
=(θ1Zλ1、θ2Zλ2、β1Zλ3、θ3Zλ4、β2Zλ5、β3Zλ6、θ4Zλ7、β4Zλ8) (22)
(DB1、DB、DB、DB、DB、DB、DB、DB
=(gλ1DA3、gλ2DA3、gλ3CA3、gλ4DA3、gλ5CA3、gλ6CA3、gλ7DA3、gλ8CA3、)
(23)
ここに、θ1、θ2、θ3、θ4、β1、β2、β3、β4は、CA1Y+CA2Ψ=β1234、DA1Y+DA2Ψ=θ1234満たす値である。
機関P1では、機関P2からのデータCBi、DBiを受信して、(式24)で示される値OutputXを求める。
OutputX = Σ1≦i≦8 CBiDBi -x
(= Σ1≦i≦8 CBiDBi -x 1≦i≦4βiCA3 -11≦i≦4θiDA3 -1=ΓB1CA3 -1+ΓB2DA3 -1 =(α1Y&#8722;α3ψ)+ (α2Y&#8722;α4ψ)=(α12) Y&#8722;(α34) ψ)
(=X×Y&#8722;ψ)
≡ Φ (24)
機関P2では、(式25)で示される値OutputYを求める。
OutputY = Ψ (25)
(式24)、(式25)から判るように、それぞれの機関で計算したOutputX、OutputYを交換し合うことで、(式26)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OutputX+OutputY = Φ+Ψ
= X×Y (26)
(式26)から判るように、図8に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式20)から(式26)に示した演算変換方式を分割乗算加算演算変換法と略記することがある。
図8は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、
CA1i,CA2i, CA3i, DA1i,DA2i,DA3i,CB1i,CB2i,CB3i,CB4i,CB5i,CB6i,CB7i,CB8i,
DB1i,DB2i,DB3i,DB4i,DB5i,DB6i,DB7i,DB8i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことでΣ1≦i≦n( Xi×Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、演算変換処理の型Type(図8では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、Type(図8では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
The confidential calculation conversion processing unit 161 of the institution P1 converts the values CA 1 , CA 2 , CA 3 , DA 1 , DA 2 , and DA 3 including the own secret data X shown in (Equation 20) and (Equation 21). Calculate and send to institution P2.
(CA 1 , CA 2 , CA 3 ) = (α 1 KA 1 , α 3 KA 1 , g γ1 ) (20)
(DA 1, DA 2, DA 3) = (α 2 KA 2, α 4 KA 2, g γ2) (21)
Here, α 1 and α 2 are random numbers known only to the institution P1 satisfying the relationship of X = α 1 + α 2 , and α 3 and α 4 are random numbers known only to the institution P1 satisfying the relationship of α 3 + α 4 = 1 , KA 1 , KA 2 are obtained by using a public key Z (= g x ) known to the institution P1 and the institution P2, a primitive element g, and random numbers γ 1 , γ 2 known only to the institution P1 to obtain KA 1 = Z γ1 , KA 2 = Zγ2 , x is a secret key of the institution P1, and is stored in the storage unit 130 of the institution P1 in advance.
The confidential calculation conversion processing unit 161 of the institution P2 receives CA 1 , CA 2 , CA 3 , DA 1 , DA 2 , and DA 3 from the institution P1, and is represented by (Expression 22) and (Expression 23). secret data Y stored in the storage unit 130 in advance engine P2, its random number Ψ, λ 1, λ 2, λ 3, λ 4, λ 5, λ 6, λ 7, λ 8, containing the values CB calculate the 1, CB 2, CB 3, CB 4, CB 5, CB 6, CB 7, CB 8, DB 1, DB 2, DB 3, DB 4, DB 5, DB 6, DB 7, DB 8 Send to institution P1.
(CB 1, CB 2, CB 3, CB 4, CB 5, CB 6, CB 7, CB 8)
= (Θ 1 Z λ1, θ 2 Z λ2, β 1 Z λ3, θ 3 Z λ4, β 2 Z λ5, β 3 Z λ6, θ 4 Z λ7, β 4 Z λ8) (22)
(DB 1, DB 2, DB 3, DB 4, DB 5, DB 6, DB 7, DB 8)
= (G λ1 DA 3, g λ2 DA 3, g λ3 CA 3, g λ4 DA 3, g λ5 CA 3, g λ6 CA 3, g λ7 DA 3, g λ8 CA 3,)
(23)
Here, θ 1 , θ 2 , θ 3 , θ 4 , β 1 , β 2 , β 3 , β 4 are CA 1 Y + CA 2 Ψ = β 1 + β 2 + β 3 + β 4 , DA 1 Y + DA 2 Ψ = θ 1 + θ 2 + θ 3 + θ 4
The institution P1 receives the data CB i and DB i from the institution P2 and obtains a value OutputX represented by (Equation 24).
OutputX = Σ 1 ≦ i ≦ 8 CB i DB i -x
(= Σ 1 ≦ i ≦ 8 CB i DB i -x = Σ 1 ≦ i ≦ 4 β i CA 3 -1 + Σ 1 ≦ i ≦ 4 θ i DA 3 -1 = ΓB 1 CA 3 -1 + ΓB 2 DA 3 -1 = (α 1 Y &#8722; α 3 ψ) + (α 2 Y &#8722; α 4 ψ) = (α 1 + α 2 ) Y &#8722; (α 3 + α 4 ) ψ)
(= X × Y &#8722; ψ)
≡ Φ (24)
Institution P2 obtains a value OutputY represented by (Equation 25).
OutputY = Ψ (25)
As can be seen from (Expression 24) and (Expression 25), by exchanging OutputX and OutputY calculated by the respective institutions, a value X + Y obtained by adding the secret data X and the secret data Y by (Expression 26) Is found.
OutputX + OutputY = Φ + Ψ
= X x Y (26)
As can be seen from (Equation 26), in the operation conversion process shown in FIG. 8, when the operation A (X × Y) is performed with the secret data X and the secret data Y held by the institutions P1 and P2 as inputs. A plurality of inputs OutputX and OutputY for the operation B (OutputX + OutputY) that can obtain the same result as the above can be confidentially calculated.
Hereinafter, the operation conversion method shown in (Equation 20) to (Equation 26) may be abbreviated as a division multiplication addition operation conversion method.
FIG. 8 shows a case where the secret data X of the institution P1 and the secret data Y of the institution P2 are one-dimensional (when the number of data of X or Y is one) for simplicity. Is
CA 1i , CA 2i , CA 3i , DA 1i , DA 2i , DA 3i , CB 1i , CB 2i , CB 3i , CB 4i , CB 5i , CB 6i , CB 7i , CB 8i ,
DB 1i, DB 2i, DB 3i , DB 4i, DB 5i, DB 6i, DB 7i, DB 8i (i = 1,2,3, ··· n) Σ by the exchange of similar calculation and information about 1 ≦ i ≦ n (X i × Y i ) can be obtained.
In the negotiation secret information acquisition processing unit 162 of the institution P1, the operation conversion input InputX, the operation conversion output OutputX, and the type of the operation conversion process (in FIG. 8, information indicating that the multiplication that is the operation A is converted to the addition that is the operation B) Is obtained, set as negotiation secret information SecretX [Id], and stored in the storage unit 130.
Similarly, the negotiation secret information acquisition processing unit 162 of the institution P2 includes the operation conversion input InputY, the operation conversion output OutputY, and the type (in FIG. 8, information that the multiplication that is the operation A is converted to the addition that is the operation B). ObjectY is obtained, set as negotiation secret information SecretY [Id], and stored in the storage unit 130.
Note that Id in the negotiation secret information SecretX [Id] and the negotiation secret information SecretY [Id] are set to the same number.

図8では機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができることを示した。
同様の演算変換は良く知られた、秘匿性に優れるElGamal方式を利用することでも実現可能であり、図9を用いて説明する。
In FIG. 8, a plurality of operations B (OutputX + OutputY) that can obtain the same result as when the operation A (X × Y) is performed using the secret data X and the secret data Y held by the institutions P1 and P2 as inputs are obtained. It was shown that input OutputX and OutputY can be calculated secretly.
The same operation conversion can be realized by using the well-known ElGamal method which is excellent in confidentiality, and will be described with reference to FIG.

図9は秘匿演算変換処理部161での秘匿演算変換処理と交渉秘密情報取得処理部162での交渉秘密情報取得処理の他の一例としてElGamal方式を利用した演算方法を示したものであり、機関P1が保有する秘密データX、機関P2が保有する秘密データYについて、演算A(X×Y)を別の演算B(OutputX+OutputY)に変えて実施する手順を示している。
機関P1の秘匿演算変換処理部161は(式27)、(式28)で示される、自己の秘密データXを含んだ値CA1,CA2を計算して機関P2に送信する。
CA1 = 2XPKγ1 (27)
CA2 = gγ1 (28)
ここに、gは機関P1、機関P2が共有する原始元、PK(=gSK)は公開鍵、SKは機関P1の秘密鍵、γ1は機関P1のみが知る乱数であり、予め機関P1の記憶部130に格納されている。
機関P2の秘匿演算変換処理部161は、機関P1からのCA1、CA2を受信して(式29)、(式30)で示される自己の秘密データYを含んだ値CB1,CB2を計算して機関P1に送信する。
CB1 = 2(CA1)YPKγ2 (29)
CB2 = (CA2)Ygγ2 (30)
ここに、Ψ、γ2は機関P2のみが知る乱数であり、予め機関P2の記憶部130に格納されている。
機関P1では、機関P2からのデータCB1,CB2を受信して、(式31)で示される値OutputXを求める。
OutputX = log2(CB1/(CB2)SK)
(= log2(2(X×Y−Ψ)PK(γ1+γ2)Y/(g(γ1+γ2)Y)SK))
(= log2(2(X×Y−Ψ)) )
= X×Y−Ψ (31)
機関P2では、(式32)で示される値OutputYを求める。
OutputY=Ψ (32)
(式31)、(式32)から判るように、機関P1で計算したOutputXと機関P2で計算したOutputYを交換し合うことで、(式33)によって、秘密データXと秘密データYを乗算した値X×Yが求まる。
OutputX+OutputY = X×Y (33)
(式33)から判るように、図9に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式27)から(式33)に示した演算変換方式をElGamal乗算加算演算変換法と略記することがある。
図9は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i,
CA2i,CB1i,CB2i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことで
Σ1≦i≦n XiYiを求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図9では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、演算変換処理の型Type(図9では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
FIG. 9 shows a calculation method using the ElGamal method as another example of the confidential calculation conversion processing in the confidential calculation conversion processing section 161 and the negotiation secret information acquisition processing in the negotiation secret information acquisition processing section 162. A procedure is shown in which the operation A (X × Y) is changed to another operation B (OutputX + OutputY) for the secret data X held by P1 and the secret data Y held by the institution P2.
Security operation conversion processing unit 161 of the engine P1 is (formula 27), and transmits represented by (Equation 28), the values including its own secret data X CA 1, CA 2 and calculated by the engine P2.
CA 1 = 2 X PK γ1 (27)
CA 2 = g γ1 (28)
Here, g is a primitive element shared by the institution P1 and the institution P2, PK (= g SK ) is a public key, SK is a secret key of the institution P1, and γ1 is a random number known only to the institution P1. It is stored in the unit 130.
The confidential operation conversion processing unit 161 of the institution P2 receives the CA 1 and CA 2 from the institution P1 (Equation 29), and receives the values CB 1 and CB 2 including its own secret data Y shown in (Equation 30). Is calculated and transmitted to the institution P1.
CB 1 = 2 (CA 1 ) Y PK γ2 (29)
CB 2 = (CA 2 ) Y g γ2 (30)
Here, Ψ and γ2 are random numbers known only to the institution P2, and are stored in advance in the storage unit 130 of the institution P2.
The institution P1 receives the data CB 1 and CB 2 from the institution P2 and obtains a value OutputX represented by (Equation 31).
OutputX = log 2 (CB 1 / (CB 2 ) SK )
(= Log 2 (2 (X × Y−Ψ) PK (γ1 + γ2) Y / (g (γ1 + γ2) Y ) SK ))
(= Log 2 (2 (X × Y−Ψ) ))
= X × Y-Ψ (31)
Institution P2 obtains a value OutputY represented by (Equation 32).
OutputY = Ψ (32)
As can be seen from (Equation 31) and (Equation 32), the secret data X and the secret data Y were multiplied by (Equation 33) by exchanging OutputX calculated by the institution P1 and OutputY calculated by the institution P2. The value X × Y is obtained.
OutputX + OutputY = X × Y (33)
As can be seen from (Equation 33), in the operation conversion process shown in FIG. 9, when the operation A (X × Y) is performed with the secret data X and the secret data Y held by the institutions P1 and P2 as inputs. A plurality of inputs OutputX and OutputY for the operation B (OutputX + OutputY) that can obtain the same result as the above can be confidentially calculated.
Hereinafter, the operation conversion schemes shown in (Equation 27) to (Equation 33) may be abbreviated as ElGamal multiplication-addition operation conversion method.
FIG. 9 shows a case where the secret data X of the institution P1 and the secret data Y of the institution P2 are one-dimensional (when the number of data of X or Y is one) for simplicity. Is CA 1i ,
By performing similar calculations and exchanging information on CA 2i , CB 1i , and CB 2i (i = 1, 2, 3,... N), Σ1 ≦ i ≦ n X i Y i can be obtained.
The negotiation secret information acquisition processing unit 162 of the institution P1 obtains ObjectX including the operation conversion input InputX, the operation conversion output OutputX, and Type (in FIG. 9, information indicating that the multiplication that is operation A is converted to the addition that is operation B). , Is set as negotiation secret information SecretX [Id] and stored in the storage unit 130.
Similarly, in the negotiation secret information acquisition processing unit 162 of the institution P2, the operation conversion input InputY, the operation conversion output OutputY, and the type of the operation conversion process (in FIG. 9, the multiplication that is the operation A is converted to the addition that is the operation B) ObjectY including the information to be processed is set as negotiation secret information SecretY [Id] and stored in the storage unit 130.
Note that Id in the negotiation secret information SecretX [Id] and the negotiation secret information SecretY [Id] are set to the same number.

図9では機関P1、機関P2が保持している秘密データX,Yを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿性に優れるElGamal方式を用いて計算できることを示した。
同様の演算変換は良く知られた、秘匿性に優れるPaillier方式を利用することでも実現可能であり、図10を用いて説明する。
図10において、機関P1の秘匿演算変換処理部161は(式34)で示される、自己の秘密データXを含んだ値CA1を計算して機関P2に送信する。
CA1 = gXγ1NmodN (34)
ここに、N、gは、N=p×q、g=(1+kN)modN2の関係を満たす公開鍵であり、予め、機関P1及び機関P2の記憶部130に格納されている。
なお、p,qは大きな素数であり、秘密鍵として、予め、機関P1の記憶部130に格納されており、kは機関P1のみが知る乱数である。
機関P2の秘匿演算変換処理部161は機関P1からのCA1を受信して(式35)で示される自己の秘密データYを含んだ値CB1を計算して機関P1に送る。
CB= (g−ΨCA)YmodN (35)
ここに、Ψは機関P2のみが知る乱数であり、予め、機関P2の記憶部130に格納されている。
機関P1では、機関P2からのデータCB1を受信して、(式36)で示される値OutputXを求める。
OutputX = (L(CB1modN2/L(gλmodN2))modN
= (X×Y)−Ψ (36)
ここに、λは機関P1のみが知る秘密鍵であり、予め、機関P1の記憶部130に格納されている。
またL(U)は、L(U)=(U−1)/Nを満たす関数である。
機関P2では、(式37)で示される値OutputYを求める。
OutputY=Ψ (37)
(式36)、(式37)から判るよに、機関P1で計算したOutputXと機関P2で計算したOutputYを交換し合うことで、(式38)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OtputX+OutputY = X×Y (38)
(式38)から判るように、図10に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式34)から(式38)に示した演算変換方式をPaillier乗算加算演算変換法と略記することがある。
図10は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i,CB1i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことでΣ1≦i≦n( Xi×Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図10では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、演算変換処理の型Type(図10では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
In FIG. 9, a plurality of inputs OutputX to the operation B (OutputX + OutputY) that can obtain the same result as when the operation A (X × Y) is performed using the secret data X and Y held by the institutions P1 and P2 as inputs. It was shown that OutputY can be calculated using the ElGamal method which is excellent in secrecy.
The same arithmetic conversion can be realized by using the well-known Paillier method which is excellent in confidentiality, and will be described with reference to FIG.
10, security operation conversion processing unit 161 of the engine P1 sends indicated by, the engine P2 to calculate the value CA 1 including the own secret data X (Equation 34).
CA 1 = g X γ1 N modN (34)
Here, N, g is a public key that satisfies N = p × q, g = (1 + kN) modN 2 relations, pre-stored in the storage unit 130 of the engine P1 and engine P2.
Note that p and q are large prime numbers, which are stored in advance in the storage unit 130 of the institution P1 as secret keys, and k is a random number known only to the institution P1.
Security operation conversion processing unit 161 of the engine P2 sends the engine P1 to calculate the value CB 1 including the own secret data Y represented by receives CA 1 from the engine P1 (Formula 35).
CB 1 = (g −Ψ CA 1 ) Y modN (35)
Here, Ψ is a random number known only to the institution P2, and is previously stored in the storage unit 130 of the institution P2.
In the engine P1, it receives data CB 1 from engine P2, determines the value OutputX represented by (Equation 36).
OutputX = (L (CB 1 modN 2 / L (g λ modN 2 )) modN
= (X × Y) -Ψ (36)
Here, λ is a secret key known only to the institution P1, and is stored in advance in the storage unit 130 of the institution P1.
L (U) is a function that satisfies L (U) = (U−1) / N.
Institution P2 obtains a value OutputY represented by (Equation 37).
OutputY = Ψ (37)
As can be seen from (Equation 36) and (Equation 37), by exchanging OutputX calculated by the institution P1 and OutputY calculated by the institution P2, the secret data X and the secret data Y are added by (Equation 38). The value X + Y is obtained.
OtputX + OutputY = X × Y (38)
As can be seen from (Equation 38), in the operation conversion processing shown in FIG. 10, when the operation A (X × Y) is performed with the secret data X and the secret data Y held by the institutions P1 and P2 as inputs. A plurality of inputs OutputX and OutputY for the operation B (OutputX + OutputY) that can obtain the same result as the above can be confidentially calculated.
Hereinafter, the operation conversion schemes shown in (Equation 34) to (Equation 38) may be abbreviated as Paillier multiplication-addition operation conversion method.
FIG. 10 shows a case where the secret data X of the institution P1 and the secret data Y of the institution P2 are one-dimensional (when the number of data of X or Y is one) for simplicity. こ と が 1 ≦ i ≦ n (X i × Y i ) can be obtained by performing the same calculation and information exchange for CA 1i and CB 1i (i = 1, 2, 3,... N). it can.
The negotiation secret information acquisition processing unit 162 of the institution P1 obtains ObjectX including the operation conversion input InputX, the operation conversion output OutputX, and Type (in FIG. 10, information indicating that the multiplication that is operation A is converted to the addition that is operation B). , Is set as negotiation secret information SecretX [Id] and stored in the storage unit 130.
Similarly, in the negotiation secret information acquisition processing unit 162 of the institution P2, the operation conversion input InputY, the operation conversion output OutputY, and the type of the operation conversion process (in FIG. 10, the multiplication that is the operation A is converted to the addition that is the operation B) ObjectY including the information to be processed is set as negotiation secret information SecretY [Id] and stored in the storage unit 130.
Note that Id in the negotiation secret information SecretX [Id] and the negotiation secret information SecretY [Id] are set to the same number.

以上、分割乗算加算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法による、機関P1、機関P2が保持している秘密データX,Yを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算する方法について説明したが、これらの方式を組み合わせた演算変換の実行も可能であることは勿論である。
すなわち、例えば、秘密データX1と秘密データY1に関する演算時にはPaillier乗算加算演算変換法による演算変換を行い、秘密データX2,X3,X4,・・・と、秘密データY2,Y3,Y4,・・・に関する演算時には、分割乗算加算演算変換法による演算変換を行う等の任意の組み合わせも可能である。
As described above, the operation A (X × Y) using the secret data X and Y held by the institution P1 and the institution P2 by the division multiplication addition operation conversion method, the ElGamal multiplication addition operation conversion method, and the Paillier multiplication addition operation conversion method A method has been described in which a plurality of inputs OutputX and OutputY for the operation B (OutputX + OutputY) that can obtain the same result as when they are performed are concealed. However, it is also possible to execute an operation conversion combining these methods. Of course.
That is, for example, at the time of operations on secret data X 1 and secret data Y 1 performs arithmetic conversion by Paillier multiply-add arithmetic transformation method, the secret data X 2, X 3, X 4 , and ..., secret data Y 2, Y At the time of the operation relating to 3 , Y 4 ,..., Any combination such as performing operation conversion by a division multiplication addition operation conversion method is possible.

以上、実施形態1では、図5、図6、図7、図8、図9、図10で説明した、分割加算乗算演算変換法、ElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、分割乗算加算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法(以下、これらをプロトコル型PType、あるいはPTypeと略記することがある。)によって、機関P1、機関P2がそれぞれ保持している秘密データX、秘密データYを入力として演算A(X+YあるいはX×Y)を行ったときの結果と同じ結果を得ることができる別の演算B(OutputX×OutputYあるいはOutputX+OutputY)に対する入力OutputX、OutputYを秘匿に計算し、各々の機関に秘密出力として返すことで、秘密データX、秘密データYを秘匿した状態で目的とする演算結果が取得できることが判ったが、一つの問題がある。
すなわち、それぞれの演算変換法では、機関P1、機関P2での秘匿演算変換部161での演算処理において、演算負荷の大きな「べき乗計算」を行っており、演算対象の秘密ベクトルX、秘密ベクトルYの次元nが大きくなると計算負荷の増大を招くことになり、システム全体の動作速度を低下させてしまう。
As described above, in the first embodiment, the division addition multiplication operation conversion method, the ElGamal addition multiplication operation conversion method, the Paillier addition multiplication operation conversion method, and the division described in FIG. 5, FIG. 6, FIG. 7, FIG. The institution P1 and the institution P2 respectively hold by a multiplication addition operation conversion method, an ElGamal multiplication addition operation conversion method, and a Paillier multiplication addition operation conversion method (hereinafter, these may be abbreviated as a protocol type PType or PType). OutputX to another operation B (OutputX × OutputY or OutputX + OutputY) that can obtain the same result as the result of performing operation A (X + Y or X × Y) with the input secret data X and secret data Y , And OutputY are confidentially calculated and returned to the respective organizations as confidential outputs, so that it is possible to obtain the desired operation result in a state where the confidential data X and the confidential data Y are concealed, but there is one problem.
That is, in each of the operation conversion methods, in the operation processing in the confidential operation conversion unit 161 in the institution P1 and the institution P2, “power calculation” with a large operation load is performed, and the secret vector X and the secret vector Y to be operated are used. When the dimension n of becomes large, the calculation load increases, and the operation speed of the entire system decreases.

(本発明の実施形態2)
上記の問題点を解消するため、本発明の実施形態2では、図5、図6、図7、図8、図9、図10で説明した、分割加算乗算演算変換法、ElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、分割乗算加算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法のような、秘匿性に優れるが計算負荷の大きい演算法と、後述する、これらの演算時に記憶部130に格納された秘匿性の高い交渉秘密情報を用いて計算負荷の小さい演算行う演算法を組み合わせて、システム全体としての秘匿性と計算負荷のバランスの取れた秘匿演算変換処理を実行する。
(Embodiment 2 of the present invention)
In order to solve the above problems, in the second embodiment of the present invention, the division addition multiplication operation conversion method and the ElGamal addition multiplication operation conversion described in FIGS. 5, 6, 7, 8, 9, and 10 are described. , A Paillier addition multiplication operation conversion method, a division multiplication addition operation conversion method, an ElGamal multiplication addition operation conversion method, and a Paillier multiplication addition operation conversion method, which are excellent in confidentiality but have a large calculation load. , A secret calculation conversion process that balances the confidentiality of the whole system and the calculation load by combining the calculation method of performing a calculation with a small calculation load using the highly confidential negotiation secret information stored in the storage unit 130 during the calculation of Execute

図11は実施形態2に係る演算処理部160でのデータ処理手続きの概略を示したものであり、大きく、秘匿演算変換処理部161での秘匿演算変換処理(以下、S1000と略記することがある。)と、それに続く、交渉秘密情報取得処理部162での交渉情報取得処理(以下、S2000と略記することがある。)に分けられる。   FIG. 11 shows an outline of a data processing procedure in the arithmetic processing unit 160 according to the second embodiment, which is largely described as a confidential operation conversion process (hereinafter sometimes abbreviated as S1000) in the confidential operation conversion processing unit 161. ), And subsequent negotiation information acquisition processing (hereinafter sometimes abbreviated as S2000) in the negotiation secret information acquisition processing unit 162.

図12は秘匿演算変換部処理161での処理手続きS1000の概略をフローチャートで示したものであり、秘匿演算変換処理部161は操作部140からの「秘匿演算変換処理開始通知」を受けて、S1100およびS1200で、記憶部130に予め蓄えられている変数Negotiationの値に基づいて、交渉秘密情報を利用した演算処理を行うか否かの判定を行い、後述する交渉秘密情報有演算変換処理(S1300)あるいは後述する交渉秘密情報無演算変換処理(S1400)に振り分ける。 FIG. 12 is a flowchart showing an outline of the processing procedure S1000 in the concealment operation conversion unit processing 161. The concealment operation conversion processing unit 161 receives the “notification of start of concealment operation conversion processing” from the operation unit 140 and returns to S1100. In S1200, based on the value of the variable Negotiation previously stored in the storage unit 130, it is determined whether or not to perform an arithmetic process using the negotiation secret information. ) Or negotiation secret information no-operation conversion processing (S1400) to be described later.

図13はS1100での交渉秘密情報使用指定処理の詳細を示したものである。
以下、簡略化の為、機関P1での処理動作についてのみ説明し、機関P2での機関P1と同様の処理動作の説明は割愛することがある。
また、以降の説明では、記憶部130に蓄えられている演算変換入力InputX、演算変換入力InputYを、それぞれ、InputX、InputYと略記することがある。
S1110では、演算の対象となる秘密データX、Type、交渉秘密情報を利用するか否かを示す変数Negotiationの値、PTypeの値(PTypeの値は、予め、分割加算乗算演算変換法あるいは分割乗算加算演算変換法の場合はPType=1、ElGamal加算乗算演算変換法あるいはElGamal乗算加算演算変換法の場合はPType=2、Paillier加算乗算演算変換法あるいはPaillier乗算加算演算変換法の場合はPType=3、と設定されている。)を記憶部130から読み出し、S1120でNegotiationの値が1か否かの判定を行う。Negotiationが1であれば、交渉秘密情報を利用する演算と判断し、交渉秘密情報Idを記憶部130より読み出し、Idを索引としてもつ交渉秘密情報SecretX[Id](=(演算変換入力InputX、演算変換出力OutputX、Type))も読み出し、そのTypeをS_typeとする。S1140でSecretX[Id]中の交渉秘密情報のType(即ち、S_type)と当該演算で利用したい交渉秘密情報の型であるTypeが一致しているか否かの判定を行い、両者が一致している場合には、S1150で第1交渉情報Secret_In_XにInputX、第2交渉情報Secret_Out_XにOutputXを代入する。両者が一致していない場合には、S1160で、第1交渉情報Secret_In_XにOutputXを、第2交渉情報Secret_Out_XにInputXを代入する。
S1120でNegotiationが1でなければ、交渉秘密情報を利用しない演算と判断し、(図12の)S1200にもどり、S1400で交渉秘密情報無演算変換処理を行う。
FIG. 13 shows details of the negotiation secret information use designation process in S1100.
Hereinafter, for the sake of simplicity, only the processing operation of the engine P1 will be described, and the description of the same processing operation of the engine P2 as the engine P1 may be omitted.
In the following description, the operation conversion input InputX and the operation conversion input InputY stored in the storage unit 130 may be abbreviated as InputX and InputY, respectively.
In S1110, the secret data X, Type, the value of the variable Negotiation indicating whether or not to use negotiation secret information, and the value of PType (the value of PType is determined in advance by the division addition multiplication operation conversion method or the division multiplication method). PType = 1 for addition operation conversion method, PType = 2 for ElGamal addition / multiplication operation conversion method or ElGamal multiplication / addition operation conversion method, PType = 3 for Paillier addition / multiplication operation conversion method Is set from the storage unit 130, and it is determined in S1120 whether the value of Negotiation is 1 or not. If Negotiation is 1, it is determined that the operation uses the negotiation secret information, the negotiation secret information Id is read from the storage unit 130, and the negotiation secret information SecretX [Id] (= (operation conversion input InputX, operation Conversion output (OutputX, Type)) is also read, and the Type is set to S_type. In S1140, it is determined whether or not the Type (that is, S_type) of the negotiation secret information in SecretX [Id] and the Type, which is the type of the negotiation secret information to be used in the operation, match, and the two match. In this case, InputX is substituted for the first negotiation information Secret_In_X and OutputX is substituted for the second negotiation information Secret_Out_X in S1150. If they do not match, in S1160, OutputX is substituted for the first negotiation information Secret_In_X and InputX is substituted for the second negotiation information Secret_Out_X.
If the negotiation is not 1 in S1120, it is determined that the calculation does not use the negotiation secret information, and the process returns to S1200 (FIG. 12), and the negotiation secret information no-operation conversion process is performed in S1400.

図14はS1200で変数Negotiationが1であった場合の、S1300での交渉秘密情報有演算変換処理の前処理手順を示したものである。
S1300では秘密データX,第1交渉秘密情報Secret_In_X,第2交渉秘密情報Scret_Out_X,演算変換型Typeを入力として、演算変換結果OutputXを計算するが、S1310で演算変換が乗算から加算への変換か、加算から乗算への変換かを示すType値の判定を行い、Typeの値が1の場合には交渉秘密情報有乗算加算変換処理(S1320)に、そうでない場合には交渉秘密情報有加算乗算変換処理(S1330)に進む。
S1320あるいはS1330での演算処理の後、S1340に進む。
FIG. 14 shows a pre-processing procedure of the negotiation secret information existence operation conversion processing in S1300 when the variable Negotiation is 1 in S1200.
In S1300, the secret data X, the first negotiation secret information Secret_In_X, the second negotiation secret information Scret_Out_X, and the operation conversion type are input, and the operation conversion result OutputX is calculated. In S1310, the operation conversion is conversion from multiplication to addition, A Type value indicating whether the conversion is from addition to multiplication is determined. If the value of Type is 1, the negotiation secret multiplication addition multiplication processing (S1320) is performed. If not, the negotiation secret multiplication addition multiplication conversion is performed. Proceed to processing (S1330).
After the calculation processing in S1320 or S1330, the process proceeds to S1340.

図15を用いて、一例として、Type値が1である、演算Aが(X×Y)、演算Bが(OutputX+OutputY)である場合に取得した交渉秘密情報を用いて、それと同じ演算変換方式である演算Aが(X×Y)、演算Bが(OutputX+OutputY)である交渉秘密情報有乗算加算変換処を行うS1320での演算処理の手順を示す。
機関P1の秘匿演算変換部161は、自身の秘密データXと記憶部130に格納されている第1交渉秘密情報Secret_In_Xを用いて、(式39)で示されるCAを作成し、機関P2に送る。
CA = X+Secret_In_X (39)
同様に、機関P2の秘匿演算変換部161は、自身の秘密データYと記憶部130に格納されている第1交渉秘密情報Secret_In_Yを用いて、(式40)で示されるCBを作成し、機関P1に送る。
CB = Y+Secret_In_Y (40)
その後、機関P1、機関P2はそれぞれ、(式41)、(式42)で示される秘密出力OutputX、OutputYを計算する。
OutputX = CB・X+Secret_Out_X
(= (Y+Secret_In_Y)×X+Secret_Out_X)
(= X・Y+X・Secret_In_Y+Secret_Out_X)
≡ Φ (41)
OutputY = −CA×Secret_In_Y+Secret_Out_Y
(=−(X+Secret_In_X)×Secret_In_Y+Secret_Out_Y)
(=−X・Secret_In_Y−Secret_In_X・Secret_In_Y+Secret_Out_Y)
≡ Ψ (42)
(式39)、(式40)、(式41)、(式42)において、Secret_In_X、Secret_Out_Xは機関P1の秘密情報、Secret_In_Y、Secret_Out_Yは機関P2の秘密情報であり、これらには、例えば(式26)から判るように、(式43)の関係が成立している。
Secret_In_X・Secret_In_Y=Secret_Out_X+Secret_Out_Y (43)
(式41)、(式42)、(式43)から判るように、秘密出力OutputX、秘密出力OutputY、秘密データX、秘密データYには(式44)に示される関係が成立しており、乗算から加算への変換が、交渉秘密情報を用いて簡便に実行されていることが判る。
X×Y = OutputX+OutputY (44)
Referring to FIG. 15, as an example, using the negotiation secret information obtained when the operation A is (X × Y) and the operation B is (OutputX + OutputY), the Type value is 1, and the same operation conversion method is used. The procedure of the arithmetic processing in S1320 for performing the multiplication-addition conversion processing of the negotiation secret information in which a certain arithmetic A is (X × Y) and an arithmetic B is (OutputX + OutputY) is shown.
Using the secret data X of the institution P1 and the first negotiation secret information Secret_In_X stored in the storage unit 130, the confidential operation conversion unit 161 creates a CA represented by (Equation 39) and sends it to the institution P2. .
CA = X + Secret_In_X (39)
Similarly, the concealment operation conversion unit 161 of the institution P2 creates a CB represented by (Equation 40) using its own secret data Y and the first negotiation secret information Secret_In_Y stored in the storage unit 130, and Send to P1.
CB = Y + Secret_In_Y (40)
Thereafter, the institution P1 and the institution P2 calculate the secret outputs OutputX and OutputY represented by (Equation 41) and (Equation 42), respectively.
OutputX = CB ・ X + Secret_Out_X
(= (Y + Secret_In_Y) × X + Secret_Out_X)
(= X ・ Y + X ・ Secret_In_Y + Secret_Out_X)
≡ Φ (41)
OutputY = −CA × Secret_In_Y + Secret_Out_Y
(= − (X + Secret_In_X) × Secret_In_Y + Secret_Out_Y)
(= −X ・ Secret_In_Y−Secret_In_X ・ Secret_In_Y + Secret_Out_Y)
≡ Ψ (42)
In (Equation 39), (Equation 40), (Equation 41), and (Equation 42), Secret_In_X and Secret_Out_X are secret information of the institution P1, and Secret_In_Y and Secret_Out_Y are secret information of the institution P2. 26), the relationship of (Expression 43) holds.
Secret_In_X ・ Secret_In_Y = Secret_Out_X + Secret_Out_Y (43)
As can be seen from (Equation 41), (Equation 42), and (Equation 43), the relationship shown in (Equation 44) holds for the secret output OutputX, the secret output OutputY, the secret data X, and the secret data Y, It can be seen that the conversion from multiplication to addition is simply performed using the negotiation secret information.
X x Y = OutputX + OutputY (44)

図15は、一例として、演算Aが(X×Y)、演算Bが(OutputX+OutputY)である場合に取得した交渉秘密情報を用いて、それと同じ演算変換方式である演算Aが(X×Y)、演算Bが(OutputX+OutputY)である交渉秘密情報有乗算加算変換処理を行う場合について説明したが、Typeの値が≠1である、演算Aが(X+Y)、演算Bが(OutputX×OutputY)である場合に取得した交渉秘密情報を用いて、それとは演算変換方式が異なる演算Aが(X×Y)、演算Bが(OutputX+OutputY)である交渉秘密情報有乗算加算変換処理を行うことも可能である。
この場合は、前述したようにSecret_In_X=OutputX、Secret_Out_X=X、Secret_In_Y=OutputY、Secret_Out_Y=Y、として(式39)から(式42)に相当する演算を行うことで、演算Aが(X+Y)、演算Bが(OutputX×OutputY)である場合にはSecret_In_X+Secret_In_Y=Secret_Out_X×Secret_Out_Y という関係が成り立っていることから、同様に(式44)が得られる。
FIG. 15 shows, as an example, the case where operation A is (X × Y) and operation B is (OutputX + OutputY). In the description above, the multiplication-addition conversion process with the negotiation secret information in which the operation B is (OutputX + OutputY) is performed, but the value of Type is ≠ 1, the operation A is (X + Y), and the operation B is (OutputX × OutputY). It is also possible to use the negotiation secret information acquired in a certain case and perform a multiplication-addition conversion process of the negotiation secret information in which the operation A, which is different from the operation conversion method, is (X × Y) and the operation B is (OutputX + OutputY). is there.
In this case, as described above, assuming that Secret_In_X = OutputX, Secret_Out_X = X, Secret_In_Y = OutputY, Secret_Out_Y = Y, and performing the operations corresponding to (Expression 39) to (Expression 42), the operation A becomes (X + Y), When the operation B is (OutputX × OutputY), the relation of Secret_In_X + Secret_In_Y = Secret_Out_X × Secret_Out_Y is satisfied, and thus (Equation 44) is similarly obtained.

図16を用いて、一例として、Type値が≠1である、演算Aが(X+Y)、演算Bが(OutputX×OutputY)である場合に取得した交渉秘密情報を用いて、それと同じ演算変換方式である演算Aが(X+Y)、演算Bが(OutputX×OutputY)である交渉秘密情報有加算乗算変換処理を行うS1330での演算処理の手順を示す。
機関P1の秘匿演算変換部161は、自身の秘密データXと記憶部130に格納されている第1交渉秘密情報Secret_In_XとSecret_Out_Xを用いて、(式45)で示されるCAを作成し、機関P2に送る。
CA =(X−Secret_In_X )/(Secrt_Out_X) (45)
同様に、機関P2の秘匿演算変換部161は、自身の秘密データYと記憶部130に格納されている第1交渉秘密情報Secret_In_YとSecret_Out_Yを用いて、(式46)で示されるCBを作成し、機関P1に送る。
CB =(Y−Secret_In_Y)/(CA+Secret_Out_Y) (46)
その後、機関P1、機関P2はそれぞれ、(式47)、(式48)で示される秘密出力OutputX、秘密出力OutputYを計算する。
OutputX = CB+Secret_Out_X
(= (Y−Secret_In_Y)/Ψ+Secret_Out_X)
≡ Φ (47)
OutputY = CA+Secret_Out_Y
( =−(X+Secret_In_X)×Secret_In_Y+Secret_Out_Y)
( =(X−Secret_In_X)/Secret_Out_X+Secret_Out_Y)
≡ Ψ (48)
(式45)、(式46)、(式47)、(式48)において、Secret_In_X、Secret_Out_Xは機関P1の秘密情報、Secret_In_Y、Secret_Out_Yは機関P2の秘密情報であり、これらには、例えば(式7)から判るように、(式49)の関係が成立している。
Secret_In_X+Secret_In_Y = Scret_Out_X・Secret_Out_Y (49)
(式47)、(式48)、(式49)から判るように、秘密出力OutputX、OutputY、秘密データX、秘密データYには(式50)に示される関係が成立しており、加算から乗算への変換が、交渉秘密情報を用いて簡便に実行されていることが判る。
X+Y=OutputX×OtputY (50)
Referring to FIG. 16, as an example, the same operation conversion method is performed using the negotiation secret information acquired when Operation A is (X + Y) and Operation B is (OutputX × OutputY) where the Type value is ≠ 1. This shows the procedure of the arithmetic processing in S1330 which performs the negotiation secret information addition multiplication conversion processing in which the arithmetic A is (X + Y) and the arithmetic B is (OutputX × OutputY).
Using the secret data X of the institution P1 and the first negotiation secret information Secret_In_X and Secret_Out_X stored in the storage unit 130, the confidential operation conversion unit 161 creates a CA represented by (Equation 45) and uses the institution P2. Send to
CA = (X-Secret_In_X) / (Secrt_Out_X) (45)
Similarly, the concealment operation conversion unit 161 of the institution P2 creates a CB represented by (Equation 46) using its own secret data Y and the first negotiation secret information Secret_In_Y and Secret_Out_Y stored in the storage unit 130. , Sent to institution P1.
CB = (Y-Secret_In_Y) / (CA + Secret_Out_Y) (46)
Thereafter, the institution P1 and the institution P2 calculate the secret output OutputX and the secret output OutputY represented by (Equation 47) and (Equation 48), respectively.
OutputX = CB + Secret_Out_X
(= (Y−Secret_In_Y) / Ψ + Secret_Out_X)
≡ Φ (47)
OutputY = CA + Secret_Out_Y
(= − (X + Secret_In_X) × Secret_In_Y + Secret_Out_Y)
(= (X-Secret_In_X) / Secret_Out_X + Secret_Out_Y)
≡ 48 (48)
In (Equation 45), (Equation 46), (Equation 47), and (Equation 48), Secret_In_X and Secret_Out_X are secret information of the institution P1, and Secret_In_Y and Secret_Out_Y are secret information of the institution P2. As can be seen from 7), the relationship of (Equation 49) holds.
Secret_In_X + Secret_In_Y = Scret_Out_X ・ Secret_Out_Y (49)
As can be seen from (Equation 47), (Equation 48), and (Equation 49), the secret output OutputX, OutputY, secret data X, and secret data Y have the relationship shown in (Equation 50). It can be seen that the conversion to multiplication is performed simply using the negotiation secret information.
X + Y = OutputX x OtputY (50)

図16は、一例として、演算Aが(X+Y)、演算Bが(OutputX×OutputY)である場合に取得した交渉秘密情報を用いて、それと同じ演算変換方式である演算Aが(X+Y)、演算Bが(OutputX×OutputY)である演算変換を行う場合について説明したが、Typeの値が1である、演算Aが(X×Y)、演算Bが(OutputX+OutputY)である場合に取得した交渉秘密情報を用いて、それとは演算変換方式が異なる演算Aが(X+Y)、演算Bが(OutputX×OutputY)である交渉秘密情報有加算乗算変換処理を行うことも可能である。
この場合は、前述したようにSecret_In_X=OutputX、Secret_Out_X=X、Secret_In_Y=OutputY、Secret_Out_Y=Y、として(式45)から(式48)に相当する演算を行うことで、演算Aが(X×Y)、演算Bが(OutputX+OutputY)である場合にはSecret_In_X×Secret_In_Y=Secret_Out_X+Secret_Out_Y という関係が成り立っていることから、同様に(式50)が得られる。
FIG. 16 shows an example in which, when the operation A is (X + Y) and the operation B is (OutputX × OutputY), the obtained negotiation secret information is used, and the operation A, which is the same operation conversion system as the operation, is (X + Y). The case where the operation conversion in which B is (OutputX × OutputY) is performed has been described, but the negotiation secret obtained when the operation A is (X × Y) and the operation B is (OutputX + OutputY) in which the value of Type is 1 is Using the information, it is also possible to perform the negotiation secret information addition-addition multiplication conversion processing in which the operation A, which is different from the operation conversion method, is (X + Y) and the operation B is (OutputX × OutputY).
In this case, as described above, assuming that Secret_In_X = OutputX, Secret_Out_X = X, Secret_In_Y = OutputY, and Secret_Out_Y = Y, the operations corresponding to (Expression 45) to (Expression 48) are performed, whereby the operation A becomes (X × Y ), And when the operation B is (OutputX + OutputY), the relation (Secret_In_X × Secret_In_Y = Secret_Out_X + Secret_Out_Y) holds, so that (Equation 50) is similarly obtained.

S1340で、機関P1の秘匿演算変換部161、機関P2の秘匿演算変換部161は、それぞれ、当該演算に使用した秘密データX、秘密データY、S1320あるいはS1330で計算した秘密出力OutputX、秘密出力OutpuYを、それぞれ、演算変換入力InputX、演算変換入力InputY、演算変換出力OutputX、演算変換出力OutputYとして自身の記憶部130に格納して、交渉秘密情報有演算変換処理を完了する。 In S1340, the confidential calculation conversion unit 161 of the institution P1 and the confidential calculation conversion unit 161 of the institution P2 respectively use the secret data X and the secret data Y used for the calculation, the secret output OutputX calculated in S1320 or S1330, and the secret output OutpuY. Are stored in its own storage unit 130 as an operation conversion input InputX, an operation conversion input InputY, an operation conversion output OutputX, and an operation conversion output OutputY, respectively, and the operation conversion processing with negotiation secret information is completed.

以上の説明から判るように、交渉秘密情報有演算変換処理では、記憶部130に蓄えられている交渉秘密情報を用いることで、べき乗の演算を必要とする計算負荷の大きい分割加算乗算演算変換法、ElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、分割乗算加算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法に比べて、計算負荷の小さい簡単な加減乗除演算によって、秘密データX、秘密データYに関する演算A(X×Y、X+Y)の結果が得られる。   As can be understood from the above description, in the conversion process with negotiation secret information, the negotiation secret information stored in the storage unit 130 is used to perform the divisional addition multiplication operation conversion method requiring a power operation and having a large calculation load. Compared with the ElGamal addition multiplication operation conversion method, the Paillier addition multiplication operation conversion method, the division multiplication addition operation conversion method, the ElGamal multiplication addition operation conversion method, and the simple addition / subtraction multiplication / division operation with a small calculation load compared to the Paillier multiplication addition operation conversion method, The result of the operation A (X × Y, X + Y) on the secret data X and the secret data Y is obtained.

上記の説明より、交渉秘密情報有乗算加算変換処理あるいは交渉秘密情報有加算乗算変換処理に用いられる交渉秘密情報である第1交渉秘密情報Secret_In_X、第1交渉秘密情報 Secret_In_Y、第2交渉秘密情報Secret_Out_X、第2交渉秘密情報 Secret_Out_Yは演算の秘匿性を保つためのダミーデータとも言えるものであり、実際の演算結果には影響を及ぼさない。
したがって、交渉秘密情報有乗算加算変換処理あるいは交渉秘密情報有加算乗算変換処理で用いる交渉秘密情報である第1交渉秘密情報Secret_In_X、第1交渉秘密情報 Secret_In_Y、第2交渉秘密情報Secret_Out_X、第2交渉秘密情報 Secret_Out_Yの取得は、機関P1、機関P2が保有する実際の秘密データX、秘密データYを用いて実施される必要はなく、Secret_Out_X+Secret_Out_Y=Secret_In_X×Secret_In_Y、あるいはSecret_Out_X×Secret_Out_Y=Secret_In_X+Secret_In_Yを満たすように、分割加算乗算演算変換法、ElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、分割乗算加算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法等によって、実際の演算に先だってダミーデータを用いて取得しておくことも可能である。
From the above description, the first negotiation secret information Secret_In_X, the first negotiation secret information Secret_In_Y, and the second negotiation secret information Secret_Out_X, which are negotiation secret information used in the negotiation secret information addition / multiplication addition conversion process or the negotiation secret information addition / multiplication conversion process. The second negotiation secret information Secret_Out_Y can be said to be dummy data for maintaining the confidentiality of the operation, and does not affect the actual operation result.
Therefore, the first negotiation secret information Secret_In_X, the first negotiation secret information Secret_In_Y, the second negotiation secret information Secret_Out_X, and the second negotiation are negotiation secret information used in the negotiation secret information multiplication-addition conversion process or the negotiation secret information addition-multiplication conversion process. Acquisition of secret information Secret_Out_Y does not need to be performed using the actual secret data X and secret data Y held by the institution P1 and the institution P2. Prior to the actual operation, the division addition multiplication operation conversion method, ElGamal addition multiplication operation conversion method, Paillier addition multiplication operation conversion method, division multiplication addition operation conversion method, ElGamal multiplication addition operation conversion method, Paillier multiplication addition operation conversion method, etc. It is also possible to acquire using dummy data.

図17はS1200で変数Negotiationが1でなかった場合の、S1400での交渉秘密情報無演算変換処理の詳細を示したものである。
機関P1、機関P2の秘匿演算変換部161は、それぞれの記憶部130に格納された演算変換型変数Typeの値が1であるなら、S1420に進み交渉秘密情報無乗算加算変換処理を相手機関と協力し実行する。Typeの値が1でなければ、双方の秘匿演算変換部161はS1430に進み交渉秘密情報無加算乗算変換処理に進む。
S1420あるいはS1430での演算処理の後、S1440に進む。
FIG. 17 shows details of the negotiation secret information no-operation conversion processing in S1400 when the variable Negotiation is not 1 in S1200.
If the value of the operation conversion type variable Type stored in each storage unit 130 is 1, the confidential operation conversion units 161 of the institutions P1 and P2 proceed to S1420 and perform negotiation secret information non-multiplication addition conversion processing with the partner organization. Cooperate and execute. If the value of Type is not 1, both confidential operation conversion units 161 proceed to S1430 and proceed to negotiation secret information non-addition multiplication conversion processing.
After the calculation processing in S1420 or S1430, the process proceeds to S1440.

図18はS1420での処理手順の概要を示したものであり、交渉秘密情報無乗算加算変換処理を実施する際にどのPTypeを用いるかを決定する手順を示したものである。S1421でPTypeの値を判定し、PType=1であれば分割乗算加算演算変換法を、PType=2であればElGamal乗算加算演算変換法を、、PType=3であればPaillier乗算加算演算変換法を用いる。
機関P1、機関P2は連携して、指定された演算変換法によって、(式51)を満たす秘密出力OutputX、OutputYを求める。
OuputX+OutputY=X×Y (51)
FIG. 18 shows an outline of the processing procedure in S1420, and shows a procedure for determining which PType is used when performing the negotiation secret information no-multiplication addition conversion processing. In step S1421, the value of PType is determined. If PType = 1, the division multiplication addition operation conversion method is used.If PType = 2, the ElGamal multiplication addition operation conversion method is used.If PType = 3, the Paillier multiplication addition operation conversion method is used. Is used.
The institution P1 and the institution P2 cooperate to obtain the secret outputs OutputX and OutputY satisfying (Equation 51) by the designated arithmetic conversion method.
OuputX + OutputY = X × Y (51)

図19はS1430での処理手順の概要を示したものであり、交渉秘密情報無加算乗算変換処理を実施する際にどのPTypeを用いるかを決定する手順を示したものである。S1421でPTypeの値を判定し、PType=1であれば分割加算乗算演算変換法を、PType=2であればElGamal加算乗算演算変換法を、PType=3であればPaillier加算乗算演算変換法を用いる。
機関P1、機関P2は連携して、指定された演算変換法によって、(式52)を満たす秘密出力OutputX、OutputYを求める。
OutputX×OutputY=X+Y (52)
FIG. 19 shows an outline of the processing procedure in S1430, and shows a procedure for determining which PType to use when performing the negotiation secret information non-addition multiplication conversion processing. In S1421, the value of PType is determined.If PType = 1, the division addition multiplication operation conversion method is used.If PType = 2, the ElGamal addition multiplication operation conversion method is used.If PType = 3, the Paillier addition multiplication operation conversion method is used. Used.
The institution P1 and the institution P2 cooperate to obtain secret outputs OutputX and OutputY satisfying (Equation 52) by a designated operation conversion method.
OutputX × OutputY = X + Y (52)

S1440で、機関P1の秘匿演算変換部161、機関P2の秘匿演算変換部161は、S1420あるいはS1430での演算に用いた秘密データX、秘密データY、S1420あるいはS1430で計算したOutputX、OutoutYを、それぞれ、演算変換入力InputX、演算変換入力InputY、演算変換出力OutputX、演算変換出力OutputYとして自身の記憶部130に格納して、Negotiation値が≠1である、交渉秘密情報無演算変換処理を完了する。 In S1440, the confidential calculation conversion unit 161 of the institution P1 and the confidential calculation conversion unit 161 of the institution P2 output the secret data X, the secret data Y, and the OutputX and OutoutY calculated in S1420 or S1430 used in the calculation in S1420 or S1430, respectively. They are stored in their own storage unit 130 as the operation conversion input InputX, the operation conversion input InputY, the operation conversion output OutputX, and the operation conversion output OutputY, respectively, and complete the negotiation secret information no operation conversion process in which the negotiation value is ≠ 1. .

ここで、交渉秘密情報有演算変換処理と交渉秘密情報無演算変換処理の2つの種類の処理を用意する理由を述べる。図15、図16に示す交渉秘密情報有演算変換プロトコルでは秘匿演算変換処理が加算、乗算、除算の計算コストの小さい演算のみを適用することで秘密出力OupyX、OutputYを計算することができている。交渉秘密情報有演算変換プロトコルの計算の機密性は交渉秘密情報の機密性に依存し、機密性の高い交渉秘密情報を用いることができれば、計算の機密性を保証することができる。
図6、図7、図9、図10に示したElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法等の交渉秘密情報無演算変換プロトコルでは秘匿演算変換処理を公開鍵により行い、かつ、秘密入力を用いたべき乗計算を必要としており、計算コストは大きいが、気密性の高い交渉秘密情報を取得することができる。
したがって、2つの種類の処理を組み合せることにより、すなわち、交渉秘密情報無演算変換により高い機密性をもつ交渉秘密情報を作成し、その情報を利用して交渉秘密情報有演算変換を行うことで、秘密入力を用いた演算変換を高速に、かつ、高機密に行うことが可能となる。
Here, the reason for preparing two types of processing, ie, the negotiation secret information operation conversion processing and the negotiation secret information non-operation conversion processing will be described. In the negotiation confidential information operation conversion protocol shown in FIGS. 15 and 16, the confidential operation conversion process can calculate the secret outputs OupyX and OutputY by applying only the operations with small calculation costs of addition, multiplication, and division. . The confidentiality of the calculation of the negotiation secret information operation conversion protocol depends on the confidentiality of the negotiation secret information, and if negotiation secret information with high confidentiality can be used, the confidentiality of the calculation can be guaranteed.
Negotiation secret information no-operation conversion protocol such as ElGamal addition / multiplication operation conversion method, Paillier addition / multiplication operation conversion method, Paillier multiplication / addition operation conversion method shown in FIGS. 6, 7, 9 and 10 In this method, confidential calculation conversion processing is performed using a public key, and a power calculation using a secret input is required. Thus, it is possible to obtain highly airtight negotiation secret information with high calculation cost.
Therefore, by combining the two types of processing, that is, creating negotiation secret information with high confidentiality by negotiation secret information no operation conversion, and performing negotiation secret information operation conversion using the information. In addition, it is possible to perform arithmetic conversion using a secret input at high speed and with high secrecy.

次に、図20によって、交渉秘密情報取得部162での交渉秘密情報の取得と更新の手順であるS2000について詳細に説明する。
秘匿演算変換部161でのS1000の処理が完了すると、交渉秘密情報取得部162はS2000の交渉秘密情報取得処理を開始する。
S2100で、相手機関のデータ処理装置100と連携し、S1000で作成した秘密出力の組(演算変換入力InputX、演算変換出力OutputX、Type)を後に索引により選別し秘密情報として利用するため、共通変数Idに索引を設定する。また、新しい交渉秘密情報を古い交渉秘密情報と組み合わせるか否かを決定し、変数Combineに設定する。
ここで、作成された秘密情報を他の交渉秘密情報と組み合わせる場合にはCombine=1、そうでない場合には、Combine=0とする。
Next, S2000, which is a procedure for acquiring and updating negotiation secret information in the negotiation secret information acquisition unit 162, will be described in detail with reference to FIG.
When the process of S1000 in the confidential operation conversion unit 161 is completed, the negotiation secret information acquisition unit 162 starts the negotiation secret information acquisition process of S2000.
In step S2100, in cooperation with the data processing apparatus 100 of the partner organization, the secret output set (operation conversion input InputX, operation conversion output OutputX, Type) created in step S1000 is later sorted by index and used as secret information. Set an index on Id. Also, it is determined whether to combine the new negotiation secret information with the old negotiation secret information, and set the variable Combine.
Here, Combine = 1 if the created secret information is combined with other negotiation secret information, and Combine = 0 otherwise.

次に、S2200で、S1000での秘匿演算変換処理の入力である演算変換入力InputX、出力である演算変換出力OutputX、演算変換の型Typeからなる情報を共通索引Idとして持つ交渉秘密情報SecretX[Id]を記憶部130に格納する。同様に機関P2では秘匿演算変換処理の入力である演算変換入力InputY、出力である演算変換出力OutputY、演算変換の型Typeからなる情報を共通索引Idとして持つ交渉秘密情報SecretY[Id]を記憶部130に格納する。 Next, in S2200, the negotiation secret information SecretX [Id having information including an operation conversion input InputX which is an input of the confidential operation conversion process in S1000, an operation conversion output OutputX which is an output, and an operation conversion type Type as a common index Id is provided. ] Is stored in the storage unit 130. Similarly, the institution P2 stores the operation conversion input InputY, which is an input of the confidential operation conversion process, the operation conversion output OutputY, which is the output, and the negotiation secret information SecretY [Id] having, as a common index Id, information including the operation conversion type Type. 130.

次に、S2300で、変数Combineが0か否かを判定し、0であれば交渉秘密情報取得処理を終了し、Combineが1であれば、S2400に進む。 Next, in S2300, it is determined whether or not the variable Combine is 0. If the variable is 0, the negotiation secret information acquisition process is ended. If the combine is 1, the process proceeds to S2400.

次に、S2400で、機関P2と通信することで、他の情報と組み合わせる索引Id_Oldを決定する。
さらに、S2500で、機関P1の交渉秘密取得部162は索引Id_Oldをもつ古い交渉秘密情報SecretX[Id_Old]を記憶部130より読み出し、機関P2の交渉秘密取得部162は古い交渉秘密情報SecretY[Id_Old]を記憶部130より読み出す。
Next, in S2400, an index Id_Old to be combined with other information is determined by communicating with the institution P2.
Further, in S2500, the negotiation secret acquisition unit 162 of the institution P1 reads the old negotiation secret information SecretX [Id_Old] having the index Id_Old from the storage unit 130, and the negotiation secret acquisition unit 162 of the institution P2 uses the old negotiation secret information SecretY [Id_Old]. From the storage unit 130.

次に、S2600で、SecretX[Id]とSecretX[Id_Old]を入力として新しい交渉秘密情報を作成する。交渉秘密情報更新処理を実行し出力としてInputX、OutputX、Typeを受け取り、S2100へ戻る。 Next, in S2600, new negotiation secret information is created using SecretX [Id] and SecretX [Id_Old] as inputs. Execute the negotiation secret information update process, receive InputX, OutputX, and Type as outputs, and return to S2100.

図21はS2600の交渉秘密情報交換処理の詳細を示したものである。
S2600では、最初にS2610で秘密情報のTypeが乗算から加算への変換を示す1かどうか判定し、Typeが1であれば、S2620で、機関P1では、InputX、OutputXに、それぞれ、SecretX[Id].InputX、SecretX[Id].OutputXを設定する。そうでなければ、S2630で、InputX、OutputXに、それぞれ、SecretX「Id」.Output、SecretX[Id].InputXを設定する。機関P2の場合も同様にInputY、OutputYを設定する。
FIG. 21 shows details of the negotiation secret information exchange processing in S2600.
In S2600, it is first determined in S2610 whether the Type of the secret information is 1 indicating conversion from multiplication to addition. If Type is 1, in S2620, the institution P1 inputs SecretX [Id to InputX and OutputX, respectively. ] .InputX, SecretX [Id] .OutputX are set. Otherwise, in Step S2630, SecretX “Id” .Output and SecretX [Id] .InputX are set in InputX and OutputX, respectively. In the case of the institution P2, InputY and OutputY are similarly set.

S2640、S2650、S2660では、S2610、S2620、S2630と同様に、既に存在する交渉秘密情報SecretX[Id_Old]、SecretY[Id_Old]から値を読み出し、O_InputX、O_OutputX、O_InputY、O_OutputYに値を設定する。
機関P2も同様に、O_InputX、O_OutputX、O_InputY、O_OutputYに値を設定する。
In S2640, S2650, and S2660, as in S2610, S2620, and S2630, values are read from the existing negotiation secret information SecretX [Id_Old] and SecretY [Id_Old], and values are set in O_InputX, O_OutputX, O_InputY, and O_OutputY.
The institution P2 similarly sets values in O_InputX, O_OutputX, O_InputY, and O_OutputY.

次に、機関P1の交渉秘密情報取得部162は、S2670で、InputXとO_InputXが等しいかを判定し、等しければCombineXに1を設定し、そうでなければ0を設定する。同様に、機関P2の交渉秘密情報取得部162はInputYとO_InputYが等しいかを判定し、等しければCombineに1を設定し、そうでなければ0を設定する。 Next, in S2670, the negotiation secret information acquisition unit 162 of the institution P1 determines whether InputX and O_InputX are equal, and sets 1 to CombineX if they are equal, and otherwise sets 0. Similarly, the negotiation secret information acquisition unit 162 of the institution P2 determines whether InputY and O_InputY are equal, and sets Combine to 1 if they are equal, and 0 otherwise.

二つの交渉秘密情報の乗算変換の入力InputXとO_InputXが等しい場合、InputX×InputY=OutputX+OutputY、O_InputX×O_InputY=O_OutputX+O_OutputYの2つ条件が成り立つことより、(式53)が成り立つ。
InputX×(InputY+O_IputY)=OutputX+OutputY+O_OutputX+O_OutputY(53)よって、機関P1ではInputX、OutputX+O_OutputX、Type=1を新しい秘密情報として、機関P2ではInputY+O_InpuY、OutputY+O_OutputY、Type=1を新しい秘密情報として利用することができる。
When the inputs InputX and O_InputX of the multiplication transform of the two negotiation secret information are equal, the two conditions of InputX × InputY = OutputX + OutputY and O_InputX × O_InputY = O_OutputX + O_OutputY hold, and (Equation 53) holds.
Since InputX × (InputY + O_IputY) = OutputX + OutputY + O_OutputX + O_OutputY (53), the institution P1 can use InputX, OutputX + O_OutputX, Type = 1 as new secret information, and the institution P2 can use InputY + O_InpuY, OutputY + O_OutputY, Type = 1 as new secret information.

上記のような新しい秘密情報の作成を、S2690のCombineXとCombineYの組合せにより場合分けした上でS2691かS2692のどちらかにより行う。上記の作成例はS2691に対応する。 The creation of the new secret information as described above is performed by either S2691 or S2692 after being classified according to the combination of CombineX and CombineY of S2690. The above creation example corresponds to S2691.

交渉秘密情報更新処理を終えた、交渉秘密情報取得部162は新しい秘密情報を格納するため、交渉秘密情報取得処理のS2100に戻り、秘密情報の交渉秘密情報としての格納、および、さらなる更新処理を実行する。 After the negotiation secret information update process is completed, the negotiation secret information acquisition unit 162 returns to S2100 of the negotiation secret information acquisition process to store new secret information, and stores the secret information as negotiation secret information and further updates the negotiation secret information. Execute.

本実施の形態によれば、2種類の演算変換処理を組み合せることにより、対象とする秘密データX、秘密データYについて、四則演算などの安価なコストの演算を適用することで、機密性の高い演算変換を行うことが可能になり、公平に意味のある秘密情報を作成することが可能となる。 According to the present embodiment, by combining two types of operation conversion processing, the secret data X and the secret data Y can be subjected to low-cost operations, such as four arithmetic operations, to achieve confidentiality. It is possible to perform high operation conversion, and to create fairly meaningful secret information.

さらに、乗算から加算、加算から乗算という基本的な演算の変換を行うことにより、得られた秘密情報を加算により組み合せることで、秘匿性に優れる新しい秘密情報を作成することが可能となり、秘密情報の機密性を向上させることも可能となる。 Furthermore, by performing the conversion of the basic operations of multiplication and addition and addition and multiplication, it is possible to create new secret information with excellent confidentiality by combining the obtained secret information by addition. It is also possible to improve the confidentiality of information.

このように本実施の形態の方法は、従来の秘匿計算方法とは異なり、双方が合意した意味のある情報を交渉秘密情報として、公平に作成し、かつ、公開鍵暗号方式と同様の機密性を保ちながら、べき乗演算を用いることなく作成する効率的な方法となっている。 Thus, the method of the present embodiment differs from the conventional confidential calculation method in that information having meaning agreed by both parties is fairly created as negotiation secret information, and confidentiality similar to that of the public key cryptosystem is used. This is an efficient method of creating the data without using exponentiation while maintaining

(本発明の実施形態3)
実施形態1での演算変換法では機関P1、P2での秘匿演算変換部161での演算処理において、演算負荷の大きな「べき乗計算」を行っていた。また、それらのべき乗計算は秘密データX,Yが決定しなければ、実行できないという問題があった。本発明の実施形態3では図5、図8の分割加算乗算演算変換法、分割乗算加算演算変換法において、秘密データX、Yが決定されてから実行する全ての演算を、計算負荷の小さい「加減乗除算」とする二段階交渉秘密情報無演算変換処理を実行する。
(Embodiment 3 of the present invention)
In the arithmetic conversion method according to the first embodiment, “exponentiation calculation” with a large arithmetic load is performed in the arithmetic processing in the confidential arithmetic conversion unit 161 in the engines P1 and P2. Further, there is a problem that the exponentiation calculation cannot be executed unless the secret data X and Y are determined. In the third embodiment of the present invention, in the division addition multiplication operation conversion method and the division multiplication addition operation conversion method shown in FIGS. 5 and 8, all the operations to be executed after the secret data X and Y are determined are performed with a small calculation load. A two-stage negotiation secret information no-operation conversion process of "addition, subtraction, multiplication and division" is executed.

分割加算乗算変換法における二段階交渉秘密情報無演算変換処理の概要を図22に示す。二段階交渉秘密情報無演算変換処理では、各機関は秘密データX, Yが決定する前に交換できる情報を入力決定前処理として計算、交換し、秘密データX,Yに依存した計算、情報の交換は秘密データX、Y決定後に実施する。上記の二段階の方式を採用することにより、図5で説明した分割加算乗算演算変換法でのべき乗演算は全て入力前計算として実施でき、入力後計算は加減乗除算の演算のみとなる。入力前計算をオフライン処理とすることで、入力決定後に行うオンライン処理時間を大幅に削減することができる。 FIG. 22 shows an outline of the two-stage negotiation secret information no-operation conversion process in the division addition multiplication conversion method. In the two-step negotiation secret information no-operation conversion process, each institution calculates and exchanges information that can be exchanged before the secret data X and Y are determined as input pre-processing, and calculates and exchanges information that depends on the secret data X and Y. Exchange is performed after secret data X and Y are determined. By employing the above two-stage method, all exponentiation operations in the division addition multiplication operation conversion method described with reference to FIG. 5 can be performed as pre-input calculations, and post-input calculations are only addition, subtraction, multiplication and division operations. By making the pre-input calculation offline processing, the online processing time performed after the input determination can be significantly reduced.

二段階交渉秘密情報無加算乗算演算変換処理では入力前計算と入力後計算の二段階に分けて演算変換処理を行う。図22において、機関P1は、秘密データXが決定する以前の前処理として、(式53)、(式54)で示されるCA1,CA2,CA3,DA3を計算し、機関P2へ送信する。ここで、図5で説明した分割加算乗算演算変換法とは異なり、この段階ではDA1,DA2の送信は行わない。
(CA1、CA2、CA3)=(α1KA1、α3KA1、gγ1) (53)
DA3 = gγ2 (54)
ここに、α1、α3、γ1、γ2は機関P1のみが知る乱数、gは機関P1及び機関P2が知る原始元、xは機関P1のみが知る秘密鍵であり、KA1,KA2は公開鍵Z(=gx)と乱数γ1、γ2とを用いて、KA1=Zγ1、KA2=Zγ2と表せる値であり、予め機関P1の記憶部130に格納されている。
CA1,CA2,CA3,DA3を受信した機関P2はCA3,DA3と自身が決定したランダムな2分割(N1,N2), 乱数パラメータβ1,・・・β(|N1|-1), θ1,・・・,θ(|N2|-1)1, ・・・,λnを用いて、(式55)、(式56)で示されるCB1,…,CB(n-2)とDB1,…,DBnを計算し、機関P1へ送信する。ここで、図5で説明した分割加算乗算演算変換法とは異なり、この段階ではCB(n-1), CBnの送信は行わない。
CBi = β#1(i) Zλi (if i∈N1-{n-1,n})、 θ#2(i) Zλi (if i∈N2) (55)
DBi = ZλiCA3 (if i∈N1)、 ZλiDA3 (if i∈N2) (56)
ここで、#1( i )は番号iが集合N1の要素を増加順に列挙したときに出現する順番を示し、#2( i )についても集合N2に関して同様の定義を持つ順番とする。また、パラメータβ1,・・・β(|N1|-1), θ1,・・・,θ(|N2|-1)は完全に機関P2が独自に選択した乱数で良い。
機関P2より暗号文の列(CB1,…,CB(n-2))と(DB1,…,DBn)を受信した機関P1は、(式57)、(式58)、(式59)で示される3つのパラメータEA1,FA1,FA2を計算する。
EA11≦i≦n-2 CBi DBi-x (57)
FA1=DB(n-1) -x (58)
FA2=DBn -x (59)
上記の機関P1,P2で行われる計算、および、情報交換を入力前計算とする。
In the two-step negotiation secret information non-addition multiplication operation conversion process, the operation conversion process is performed in two stages of pre-input calculation and post-input calculation. In FIG. 22, the institution P1 calculates CA 1 , CA 2 , CA 3 , and DA 3 shown in (Equation 53) and (Equation 54) as preprocessing before the secret data X is determined, and sends it to the institution P2. Send. Here, unlike the division addition multiplication operation conversion method described with reference to FIG. 5, transmission of DA 1 and DA 2 is not performed at this stage.
(CA 1 , CA 2 , CA 3 ) = (α 1 KA 1 , α 3 KA 1 , g γ1 ) (53)
DA 3 = g γ2 (54)
Here, α 1 , α 3 , γ 1 , γ 2 are random numbers known only to the institution P1, g is a primitive element known to the institution P1 and the institution P2, x is a secret key known only to the institution P1, and KA 1 , KA 2 is a value that can be expressed as KA 1 = Z γ1 and KA 2 = Z γ2 using the public key Z (= g x ) and the random numbers γ 1 and γ 2, and is stored in the storage unit 130 of the institution P 1 in advance. I have.
CA 1, CA 2, CA 3 , DA 3 institutions receiving the P2 is CA 3, two random division DA 3 and itself has been determined (N 1, N 2), a random number parameter β 1, ··· β (| N1 | -1), θ 1, ···, θ (| N2 | -1), λ 1, ···, using lambda] n, (wherein 55), CB 1 represented by the formula (56), ... , CB (n-2) and DB 1 ,..., DB n and transmit them to the institution P1. Here, unlike the division addition multiplication operation conversion method described with reference to FIG. 5, at this stage, CB (n-1) and CB n are not transmitted.
CBi = β # 1 (i) Z λi (if i∈N 1- {n-1, n}), θ # 2 (i) Z λi (if i∈N 2 ) (55)
DBi = Z λi CA 3 (if i∈N 1 ), Z λi DA 3 (if i∈N 2 ) (56)
Here, # 1 (i) denotes the order of appearance when the number i is listed increasing order of elements in the set N 1, and the order having the same defined for the set N 2 also # 2 (i). The parameters β 1 ,..., Β (| N1 | -1) , θ 1 ,..., Θ (| N2 | -1) may be random numbers completely selected by the institution P2.
The institution P1 that has received the ciphertext sequence (CB 1 ,..., CB (n−2) ) and (DB 1 ,..., DB n ) from the institution P2 becomes (Equation 57), (Equation 58), and (Equation 59). ), Three parameters EA 1 , FA 1 and FA 2 are calculated.
EA 1 = Σ 1 ≦ i ≦ n-2 CBi DBi -x (57)
FA 1 = DB (n-1) -x (58)
FA 2 = DB n -x (59)
The calculations performed by the institutions P1 and P2 and the information exchange are referred to as pre-input calculations.

秘密入力データXが機関P1において決定したら、機関P1はその秘密入力データより決定した乱数X1,X2(ここで、X1/X2=X)、先の入力前計算で利用した乱数パラメータα1, α3を用いて、α2=X1−α1、α4=X2−α2として計算し、DA1=α2KA2, DA2=α4KA2として、暗号文DA1,DA2を計算し、DA1,DA2を機関P2へ送信する。
機関P1より暗号文DA1,DA2を受信し、自身の秘密入力データYが決定した機関P2はYより選択した乱数Y1,Y2(ここで、Y2/Y1=Y)より、ΓB1=CA1Y1+CA2Y2、ΓB2= DA1Y1+DA2Y2という内部計算を行い、パラメータΓB1, ΓB2の値を求める。さらに、ΓB1, ΓB2の値を用いて、β|N1|=ΓB1−Σ1≦i≦|N1|-1βiによりパラメータβ|N1|の値を、θ|N2|=ΓB2−Σ1≦i≦|N2|-1θiによりパラメータθ|N2|の値を計算する。パラメータβ|N1|、θ|N2|より暗号文CBn-1 をCBn-1=β|N1|CB(n-1)’により、暗号文CBnをCBn=θ|N2|CBn’として計算し、(CBn-1,CBn)を機関P2に送信する。
機関P2より(CBn-1,CBn)を受信した機関P1は入力前計算にて得ていた値EA1,FA1,FA2を用いて、秘密出力Φを(式60)によって計算する。
Φ=(EA1+CB(n-1)FA1+CB2FA2)/X2 (60)
機関P2では(式61)で示される秘密出力Ψを計算しており、機関P1、P2が秘密出力Φと秘密出力Ψを交換することで、(式62)から判るように、双方が演算結果(X+Y)を得ることができる。
Ψ=1/Y1 (61)
Φ×Ψ=(X1Y1+X2Y2)/(X2Y1
= X1/X2 + Y2/Y1
= X + Y (62)
When the secret input data X is determined at the institution P1, the institution P1 determines the random numbers X 1 and X 2 (here, X 1 / X 2 = X) determined from the secret input data, and the random number parameters used in the previous pre-input calculation. Using α 1 and α 3 , calculation is performed as α 2 = X 1 −α 1 , α 4 = X 2 −α 2 , and DA 1 = α 2 KA 2 , DA 2 = α 4 KA 2 and ciphertext DA 1, the DA 2 calculates and transmits the DA 1, DA 2 institutional P2.
Received from engine P1 ciphertext DA 1, DA 2, engine P2 secret input data Y has determined its own random number Y 1, Y 2 (where, Y 2 / Y 1 = Y) selected from Y from, An internal calculation of と い う B 1 = CA 1 Y 1 + CA 2 Y 2 , ΓB 2 = DA 1 Y 1 + DA 2 Y 2 is performed, and values of the parameters ΓB 1 , ΓB 2 are obtained. Further, using the values of ΓB 1 and ΓB 2, the value of the parameter β | N1 | is calculated by β | N1 | = ΓB 1 −Σ 1 ≦ i ≦ | N1 | -1 βi, and θ | N2 | = ΓB 2 −値1 ≦ i ≦ | N2 | −1 The value of the parameter θ | N2 | is calculated based on θi. Parameter β | N1 |, θ | N2 | CB (n-1) from the ciphertext CB n-1 CB n-1 = β | | N1 ' , the ciphertext CB n CB n = θ | N2 | CBn' And transmits (CB n−1 , CB n ) to the institution P2.
The institution P1 that has received (CB n−1 , CB n ) from the institution P2 calculates the secret output Φ by (Equation 60) using the values EA 1 , FA 1 and FA 2 obtained in the input pre-calculation. .
Φ = (EA 1 + CB (n-1) FA 1 + CB 2 FA 2 ) / X 2 (60)
The institution P2 calculates the secret output Ψ represented by (Equation 61), and the institutions P1 and P2 exchange the secret output Φ and the secret output Ψ. (X + Y) can be obtained.
Ψ = 1 / Y 1 (61)
Φ × Ψ = (X 1 Y 1 + X 2 Y 2 ) / (X 2 Y 1 )
= X1 / X2 + Y2 / Y1
= X + Y (62)

分割乗算加算変換法における二段階交渉秘密情報無演算変換処理の概要を図23に示す。入力前計算は図22の二段階交渉秘密情報無加算乗算変換処理と同じである。
以下では秘密入力データ決定後の処理について説明する。
FIG. 23 shows an outline of the two-stage negotiation secret information no-operation conversion process in the division multiplication addition conversion method. The pre-input calculation is the same as the two-stage negotiation secret information non-addition multiplication conversion processing of FIG.
Hereinafter, the processing after the secret input data is determined will be described.

秘密入力データXが機関P1において決定したら、機関P1はその秘密入力データと先の入力前計算で利用した乱数パラメータα1, α3を用いて、α2=X−α1、α4=&#8722;1−α2として計算し、DA1=α2KA2, DA2=α4KA2として、暗号文DA1,DA2を計算し、DA1,DA2を機関P2へ送信する。
機関P1より暗号文DA1,DA2を受信し、自身の秘密入力データYが決定した機関P2は選択した乱数Ψより、ΓB1=CA1Y+CA2Ψ、ΓB2= DA1Y+DA2Ψという内部計算を行い、パラメータΓB1, ΓB2の値を求める。さらに、ΓB1, ΓB2の値を用いて、β|N1|=ΓB1−Σ1≦i≦|N1|-1βiによりパラメータβ|N1|の値を、θ|N2|=ΓB2−Σ1≦i≦|N2|-1θiによりパラメータθ|N2|の値を計算する。パラメータβ|N1|、θ|N2|より暗号文CBn-1 をCBn-1=β|N1|CB(n-1)’により、暗号文CBnをCBn=θ|N2|CBn’として計算し、(CBn-1,CBn)を機関P2に送信する。
機関P2より(CBn-1,CBn)を受信した機関P1は入力前計算にて得ていた値EA1,FA1,FA2を用いて、秘密出力Φを(式63)によって計算する。
Φ=(EA1+CB(n-1)FA1+CB2FA2) (63)
機関P2では秘密出力Ψを乱数として選択しており、機関P1、P2が秘密出力Φと秘密出力Ψを交換することで、(式64)から判るように、双方が演算結果(X×Y)を得ることができる。
Φ+Ψ=(X×Y &#8212; 1×Ψ)+ Ψ
= X×Y (64)
When the secret input data X is determined by the institution P1, the institution P1 uses the secret input data and the random number parameters α 1 and α 3 used in the previous input pre-calculation to obtain α 2 = X−α 1 , α 4 = &#8722; 1−α 2 , calculate DA 1 = α 2 KA 2 , DA 2 = α 4 KA 2 , calculate ciphertexts DA 1 , DA 2 , and transmit DA 1 , DA 2 to agency P 2 .
Received from engine P1 ciphertext DA 1, DA 2, engine P2 secret input data Y has determined itself than the random number [psi selected, ΓB 1 = CA 1 Y + CA 2 Ψ, ΓB 2 = DA 1 Y + An internal calculation called DA 2行 い is performed to obtain values of parameters ΓB 1 and ΓB 2 . Further, using the values of ΓB 1 and ΓB 2, the value of the parameter β | N1 | is calculated by β | N1 | = ΓB 1 −Σ 1 ≦ i ≦ | N1 | -1 βi, and θ | N2 | = ΓB 2 −値1 ≦ i ≦ | N2 | −1 The value of the parameter θ | N2 | is calculated based on θi. Parameter β | N1 |, θ | N2 | CB (n-1) from the ciphertext CB n-1 CB n-1 = β | | N1 ' , the ciphertext CB n CB n = θ | N2 | CBn' And transmits (CB n−1 , CB n ) to the institution P2.
The institution P1 that has received (CB n−1 , CB n ) from the institution P2 calculates the secret output Φ by (Equation 63) using the values EA 1 , FA 1 and FA 2 obtained in the input pre-calculation. .
Φ = (EA 1 + CB (n-1) FA 1 + CB 2 FA 2 ) (63)
The institution P2 selects the secret output と し て as a random number, and the institutions P1 and P2 exchange the secret output Φ and the secret output Ψ to obtain the calculation result (X × Y) as can be seen from (Equation 64). Can be obtained.
Φ + Ψ = (X × Y &#8212; 1 × Ψ) + Ψ
= X x Y (64)

上記の、機関P1, P2によって秘密入力データX,Yが決定したのちに行う入力後計算は加減乗除算のみであり、べき乗計算を必要としないため、オンラインでの計算を高速に実行することができる。上記の二段階交渉秘密情報無演算変換処理により、べき乗計算を入力決定前に全て終えるという特徴は実施形態1での分割加算乗算演算変換法、分割乗算加算演算変換法以外のElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法では活かすことができない。なぜなら、ElGamal暗号方式、Paillier暗号方式とも秘密入力X,Yを指数とするべき乗計算を必要とするからである。一方、分割による演算変換方法ではべき乗計算の指数部は乱数や秘密鍵など秘密入力に依存しない値であり、このような入力決定前の計算処理が可能となる。 The above-mentioned post-input calculations performed after the secret input data X and Y are determined by the institutions P1 and P2 are only addition, subtraction, multiplication and division, and do not require exponentiation, so that online calculations can be performed at high speed. it can. The feature that all the exponentiation calculations are completed before the input is determined by the above-described two-step negotiation secret information no-operation conversion processing is characterized by the ElGamal addition / multiplication operation conversion method other than the division addition / multiplication operation conversion method in the first embodiment. Method, Paillier addition multiplication operation conversion method, ElGamal multiplication addition operation conversion method, and Paillier multiplication addition operation conversion method cannot be utilized. This is because both the ElGamal encryption method and the Paillier encryption method require exponentiation using the secret inputs X and Y as exponents. On the other hand, in the operation conversion method by division, the exponent part of the exponentiation calculation is a value that does not depend on a secret input such as a random number or a secret key, and such a calculation process before input determination is possible.

ここで、二段階交渉秘密情報無演算変換法の機密性について考える。機関P1の機密性は公開鍵暗号方式でCA3,DA3を公開していない場合、与えられたCA1,CA2,DA1,DA2の暗号文を得ることができるように、任意の秘密入力Xの値に対してKA1,KA2を選択することが可能である。よって、CA1,CA2,DA1,DA2だけであれば、機関P1の秘密入力Xの情報は何も洩れていないので、CA3,DA3によるKA1,KA2に関する情報が機関P2に明かされた機関P1の情報となる。CA3,DA3からKA1,KA2を推測する問題は、離散対数問題よりも簡単と推測されているDiffie-Hellman計算問題が解けないと仮定したときに、解けない。上記の仮定が成り立つなら、X1とX2の比である秘密入力データXの情報の機密性は守られる。 Here, the confidentiality of the two-step negotiation secret information no-operation conversion method will be considered. The confidentiality of the institution P1 is set to any value so that if the CA 3 and DA 3 are not disclosed in public key cryptography, the ciphertext of the given CA 1 , CA 2 , DA 1 and DA 2 can be obtained. KA 1 and KA 2 can be selected for the value of the secret input X. Therefore, if only CA 1 , CA 2 , DA 1 , and DA 2 , no information on the secret input X of the institution P 1 is leaked, and information on KA 1 , KA 2 by CA 3 , DA 3 is transmitted to the institution P 2 It is the information of the institution P1 disclosed in. The problem of estimating KA 1 and KA 2 from CA 3 and DA 3 cannot be solved when it is assumed that the Diffie-Hellman calculation problem which is estimated to be simpler than the discrete logarithm problem cannot be solved. If the above assumption is true, confidentiality of secret information input data X is the ratio of X 1 and X 2 are protected.

一方、機関P2に関してはΓB1,ΓB2が判明すれば連立方程式の解を得ることで機関P1にY1,Y2の値を導出でき、Yも明らかとなってしまう。しかし、分割による方法ではΓB1、ΓB2は|N1|+|N2|個に分割され、かつ、乱数λiによって曖昧化されているので、それぞれの値を正確に推測するには各DBi(1≦i≦n)がCA3,DA3のどちらを用いて作成されたかという2n-1通りの異なる組合せの中から本物の組合せを選ばなければならない。よって、機関P1に機関P2のYの情報を正確に推測できる確率は2-(n+1)か剰余演算に利用している素数pの逆数p-1のどちらか大きな方の値となる。 On the other hand, if ΓB 1 and ΓB 2 are known for the engine P2, the values of Y 1 and Y 2 can be derived to the engine P1 by obtaining the solution of the simultaneous equations, and Y becomes clear. However, in the division method, ΓB 1 and ΓB 2 are divided into | N 1 | + | N 2 | and are ambiguous by the random number λi. A real combination must be selected from 2 n -1 different combinations of i (1 ≦ i ≦ n) created using CA 3 or DA 3 . Therefore, the probability that the institution P1 can accurately infer the information of Y of the institution P2 is a larger value of 2− (n + 1) or the reciprocal p− 1 of the prime number p used in the remainder operation.

(本発明の実施形態4)
実施形態1,2,3では乗算から加算、加算から乗算に変化させる演算変換について説明した。実施形態4では、乗算から加算、加算から乗算に変化させる演算変換を組み合わせることで、底とべき指数の両方を機関P1,P2双方で変化させる秘密べき乗算演算変換法を実現する。本実施の形態では、機関P1の秘密入力は底に関する秘密入力Xとべき指数に関する秘密入力A、機関P2の秘密入力は底に関する秘密入力Yとべき指数に関する秘密入力Bとするとき、(X+Y)AB、(X+Y)(A+B)、(X×Y)AB、(X×Y)(A+B)の形で表せるべき乗計算と等しい値を求めることができる秘密出力OutputX, OutputYをそれぞれの機関P1,P2の出力として交換することで、秘密べき乗演算変換を実現する。
(Embodiment 4 of the present invention)
In the first, second, and third embodiments, the arithmetic conversion for changing from multiplication to addition and from addition to multiplication has been described. In the fourth embodiment, a secret multiplication operation conversion method in which both the base and the exponent are changed by both the institutions P1 and P2 is realized by combining operation conversions that change from multiplication to addition and addition to multiplication. In the present embodiment, when the secret input of the institution P1 is a secret input X for the base and a secret input A for the exponent, and the secret input of the institution P2 is a secret input Y for the base and a secret input B for the exponent, (X + Y) AB , (X + Y) (A + B) , (X × Y) AB , (X × Y) A secret output OutputX, OutputY that can be calculated as a value equivalent to a power calculation that can be expressed in the form (A + B) By exchanging the outputs as the outputs of the respective institutions P1 and P2, secret exponentiation operation conversion is realized.

はじめに、(X+Y)ABの形で表せるべき乗演算を例に、秘密べき乗演算変換法の概要を図23を用いて説明する。
まず、底を秘匿しながら計算するため、機関P1とP2が協力し、図5を用いて説明した交渉秘密情報無加算乗算演算変換法、あるいは図16で説明した交渉秘密情報有加算乗算演算変換法によって加算乗算変換を行い、X+Y=Φ×Ψとなるような中間の秘密出力Φ、Ψを機関P1,P2双方で得る。その後、機関P1、機関P2それぞれで、中間秘密出力Φ、Ψにそれぞれの秘密べき指数A, Bをべき乗し、FA=ΦA, FB=ΨBなる暗号文FA, FBをそれぞれ得る。次に、機関P1, P2は暗号文FA,FBを交換し、機関P1はFBに秘密べき指数Aを、機関P2はFAに秘密べき指数Bをべき乗して得られた値をそれぞれの秘密入力として、図8を用いて説明した交渉秘密情報無乗算加算演算変換法、あるいは図16を用いて説明した交渉秘密情報有乗算加算変換法によって乗算加算変換を行うことで、秘密出力OutputX, OutputYをそれぞれ得る。
機関P1,P2が秘密出OutputX、OutputYを交換することで、(式63)から、(X+Y)ABを求めることができる。
OutputX+OutputY=FBA×FABBA×ΦAB=(Ψ×Φ)AB=(X+Y)AB (63)
なお、図23は交渉秘密情報有の場合の(即ち、交渉秘密情報を利用する場合の)プロトコルの概要を示したものである。
First, an outline of a secret exponentiation operation conversion method will be described with reference to FIG. 23, taking a multiplication operation that can be expressed in the form of (X + Y) AB as an example.
First, in order to calculate while keeping the base secret, the institutions P1 and P2 cooperate to convert the negotiation secret information no addition multiplication operation conversion method described with reference to FIG. 5 or the negotiation secret information addition multiplication operation conversion described in FIG. The addition and multiplication conversion is performed by the method, and intermediate secret outputs Φ and よ う な such that X + Y = Φ × Ψ are obtained by both the institutions P1 and P2. Thereafter, at each engine P1, engine P2, obtained intermediate secret output [Phi, each secret exponent A in [psi, to power the B, FA = Φ A, FB = Ψ B becomes ciphertext FA, FB respectively. Next, the institutions P1 and P2 exchange ciphertexts FA and FB, and the agency P1 inputs the secret exponent A to the FB and the agency P2 inputs the value obtained by exponentiating the FA to the secret exponent B. The secret outputs OutputX and OutputY are obtained by performing multiplication and addition conversion by the negotiation secret information non-multiplication addition operation conversion method described with reference to FIG. 8 or the negotiation secret information multiplication addition conversion method described with reference to FIG. Get each.
By exchanging the secret outputs OutputX and OutputY between the institutions P1 and P2, (X + Y) AB can be obtained from (Equation 63).
OutputX + OutputY = FB A × FA B = Ψ BA × Φ AB = (Ψ × Φ) AB = (X + Y) AB (63)
FIG. 23 shows an outline of a protocol when negotiation secret information is present (that is, when negotiation secret information is used).

ElGamal公開鍵暗号方式やPaillier公開鍵暗号方式を用いて秘匿計算を行う場合、平文への加減算は暗号文に関する乗算に、平文への乗算は暗号文に関するべき乗算に対応している。よって、平文のべき乗算は底を秘匿にしたままではべき乗算に変換できないため、暗号文に対する演算では実現できない。よって、秘匿演算中の底を一旦復号する必要がある。このとき、底の(X+Y)をどちらか一方の機関、例えば、公開鍵を提供している機関P1が知ることになれば、機関P1のみが機関P2の底に関する秘密入力データYの値を知ることとなり、機関P1とP2間の機密性を公平に保つことができない。 When confidential calculation is performed using the ElGamal public key cryptosystem or the Paillier public key cryptosystem, addition and subtraction to plaintext corresponds to multiplication relating to ciphertext, and multiplication to plaintext corresponds to multiplication relating to ciphertext. Therefore, the exponentiation of the plaintext cannot be converted into the exponentiation with the base kept secret, and thus cannot be realized by the operation on the ciphertext. Therefore, it is necessary to temporarily decrypt the base during the confidential operation. At this time, if one of the organizations, for example, the organization P1 that provides the public key, knows the bottom (X + Y), only the organization P1 has the value of the secret input data Y related to the bottom of the organization P2. And the confidentiality between the institutions P1 and P2 cannot be kept fair.

図23に示した例では上記の問題を解決するため、まず、機関P1,P2の秘密の底X、Yについて、分割加算乗算変換を行うことにより、公平な秘密情報Φ、Ψを得、ついで、秘密情報Φ、Ψを機関P1、P2の秘密べき指数A、Bでべき乗した値ΦA、ΨBを機関P1、P2で交換し、最後に、値ΦA、ΨBを機関P1,P2でB乗あるいはA乗した値ΦAB、ΨBAについて分割乗算加算変換を行っており、底とべき指数ともに秘匿したまま、機密性の高い秘密べき乗演算が可能となる。 In the example shown in FIG. 23, in order to solve the above problem, first, by performing division addition multiplication conversion on the secret bases X and Y of the institutions P1 and P2, fair secret information Φ and Ψ are obtained. , Secret information Φ, Ψ raised to the powers A , B of the institutions P1, P2 by powers Φ A , Ψ B are exchanged by the institutions P1, P2, and finally the values Φ A , Ψ B are exchanged by the institutions P1, P2. Performs the division multiplication and addition conversion on the values Φ AB and Ψ BA raised to the B or A power, so that the secret exponentiation operation with high confidentiality can be performed while keeping the base and the exponent concealed.

(X+Y)(A+B)の形で表されるべき乗演算については、図25に示すように第一段階で、(X+Y)について加算乗算演算変換によってΦ×Ψ=X+Yの関係を満たす第一の中間出力Φ、Ψを得、第二段階で(A+B)についての加算乗算演算変換によってφ×ψ=A+Bを満たす第二の中間中間出力φ、ψを得、機関P1,P2で第一および第二の中間出力からΦφ、Ψψを作成して交換し、交換したΦφ、Ψψを基に機関P1,P2で作成したΨψφ、ΦφΨから、乗算加算演算変換によって(式64)の関係を満たすOutputX、OutputYを求めることで、(式65)から(X+Y)(A+B)を求めることができる。
OutputX+OutputY = Ψψφ×ΦφΨ (64)
OutputX+OutputY = Ψψφ×ΦφΨ=(Ψ×Φ)φψ=(X+Y)(A+B) (65)
ただし、素数pを法とする剰余環上で演算を行う場合、第二段階で行う指数部の秘密入力の交渉情報有加算乗算変換ではp&#8722;1を法とする剰余環上で計算しなければならない(フェルマーの小定理よりap-1≡1(mod p)のため, ここでaはpの倍数でない整数)。よって、第二段階で用いる交渉秘密情報SecretX[ID2], SecretY[ID2]もp-1を法とする剰余環上で計算された情報でなければならない。このとき、p-1が素数でないため、除算を正確に計算できない場合が存在することに注意する必要がある。
As for the exponentiation operation expressed in the form of (X + Y) (A + B) , as shown in FIG. 25, in the first stage, the relation of Φ × Ψ = X + Y is obtained by the addition multiplication operation conversion for (X + Y). In a second stage, a second intermediate intermediate output φ, を 満 た す satisfying φ × ψ = A + B is obtained by an addition-multiplication operation conversion on (A + B), Φ φ , Ψ 作成 is created and exchanged from the first and second intermediate outputs in the engines P1, P2, and 、 ψφ , Φ φΨ created in the engines P1, P2 based on the exchanged Φ φ , ψ 、, (X + Y) (A + B) can be obtained from (Equation 65) by obtaining OutputX and OutputY satisfying the relationship of (Equation 64) by multiplication and addition operation conversion.
OutputX + OutputY = Ψ ψφ × Φ φΨ (64)
OutputX + OutputY = Ψ ψφ × Φ φΨ = (Ψ × Φ) φψ = (X + Y) (A + B) (65)
However, when the operation is performed on the remainder ring modulo the prime number p, the negotiation information addition multiplication conversion of the secret input of the exponent part performed in the second stage is performed on the remainder ring modulo p &#8722; 1. (A is an integer that is not a multiple of p because a p-1 ≡ 1 (mod p) according to Fermat's little theorem). Therefore, the secret negotiation information SecretX [ID2] and SecretY [ID2] used in the second step must also be information calculated on the remainder ring modulo p-1. At this time, it should be noted that division may not be accurately calculated because p-1 is not a prime number.

(X×Y)ABの形で表されるべき乗演算については、機関P1,P2でXA、YBを作成して交換し、交換したXA、YBを基に機関P1,P2でYBA、XABを作成し、YBA、XABから乗算加算演算変換によって(式66)の関係を満たすOutputX、OutputYを求めることで、(式67)から(X×Y)ABを求めることができる。
OutputX+OutputY = YBA×XAB (66)
OutputX+OutputY = YBA×XAB=(X×Y)AB (67)
(X × Y) for exponentiation represented by the form of AB, the engine P1, P2 in X A, and replace by creating a Y B, exchanged X A, the engine based on Y B P1, P2 in Y BA, to create the X AB, Y BA, met by multiply-add arithmetic conversion from X AB the relation (equation 66) OutputX, by obtaining the outputY, be obtained (X × Y) AB from equation (67) it can.
OutputX + OutputY = Y BA × X AB (66)
OutputX + OutputY = Y BA x X AB = (X x Y) AB (67)

(X×Y)(A+B)の形で表されるべき乗演算については、第一段階で(A+B)についての加算乗算演算変換によってφ×ψ=A+Bを満たす第二の中間中間出力φ、ψを得、機関P1,P2で自身の秘密入力と第一の中間出力からXφ、Yψを作成して交換し、交換したXφ、Yψを基に機関P1,P2で作成したYψφ、XφΨから乗算加算演算変換によって(式68)の関係を満たすOutputX、OutputYを求めることで、(式69)から(X×Y)(A+B)を求めることができる。
OutputX+OutputY = Xψφ×Yφψ (68)
OutputX+OutputY = Yψφ×Xφψ=(X×Y)ψφ=(X×Y)(A+B) (69)
For the exponentiation operation expressed in the form of (X × Y) (A + B) , the second step satisfies φ × ψ = A + B by the addition multiplication operation conversion for (A + B) in the first stage. Intermediate outputs φ and ψ are obtained, and the institutions P1 and P2 create and exchange X φ and Y か ら from their secret inputs and the first intermediate output, and based on the exchanged X φ and Y 機関 , the institutions P1 and P2 in created Y ψφ, OutputX met by multiply-add arithmetic conversion from X Faipusai the relation (equation 68), by obtaining the outputY, can be determined from (equation 69) (X × Y) ( a + B) .
OutputX + OutputY = X ψφ × Y φψ (68)
OutputX + OutputY = Y ψφ × X φψ = (X × Y) ψφ = (X × Y) (A + B) (69)

上記ではべき乗算を加算に変換する処理について説明したが、OutputX, OutputYを得るための乗算加算変換処理の入力をそのままOutputX, OutputYとすることでべき乗算を乗算に変換できる。   Although the process of converting exponentiation into addition has been described above, exponentiation can be converted into multiplication by setting the input of the multiplication-addition conversion process for obtaining OutputX and OutputY as OutputX and OutputY.

また、ここでは交渉秘密情報を用いる演算変換方法(すなわち、交渉秘密情報有の演算変換方式)について説明したが、図5から図10で説明した、べき乗計算を用いて入力情報を秘匿しながら所望の値を得る方式である交渉秘密情報無の演算変換方式が適用可能であることは勿論である。   Further, here, the operation conversion method using the negotiation secret information (that is, the operation conversion method with the negotiation secret information) has been described. However, the input conversion information using the exponentiation calculation described with reference to FIGS. It is needless to say that an operation conversion method without negotiation secret information, which is a method for obtaining the value of?

本発明によれば、複数の機関がそれぞれ保持している秘密データを入力として演算Aを行ったときの結果と同じ結果を得ることができる別の演算Bに対する複数の入力を安価な計算コストで秘匿に計算し、各々の機関に秘密出力として返すことで、各々の機関の秘密データを秘匿した状態で、各々の機関が希望する演算結果を得ることができる。   According to the present invention, a plurality of inputs to another operation B that can obtain the same result as the result of performing the operation A with the secret data held by a plurality of institutions as inputs are provided at a low calculation cost. By performing the calculation confidentially and returning it as a secret output to each institution, it is possible to obtain the calculation result desired by each institution with the secret data of each institution kept secret.

1 秘匿演算変換システム、100 データ処理装置、110 制御部、120 通信部、
130 記憶部、140 操作部、150 インタフェース部、160 演算処理部、
161 秘匿演算変換処理部、162 交渉秘密情報取得処理部、200 通信線






1 confidential operation conversion system, 100 data processing device, 110 control unit, 120 communication unit,
130 storage unit, 140 operation unit, 150 interface unit, 160 arithmetic processing unit,
161 confidential operation conversion processing unit, 162 negotiation secret information acquisition processing unit, 200 communication line






Claims (21)

2以上のデータ処理装置で構成され、前記データ処理装置はそれぞれの秘密データを記憶する秘密データ記憶手段と、それぞれの出力データを記憶する出力データ記憶手段と、前記秘密データ、前記出力データ、前記秘密データに対して適用したい変換前演算型Aと前記出力データに対して適用したい変換後演算型Bの組み合わせを指定する演算変換方式型をそれぞれの交渉秘密情報として記憶する交渉秘密情報記憶手段と、前記秘密データを入力として、他の前記データ処理装置と連携して、前記出力データを秘匿に計算する演算処理手段と、を有し、
前記演算処理手段は、前記秘密データと他の前記データ処理装置が記憶する秘密データを入力として前記変換前演算型Aの演算を行ったときの結果と、前記出力データと前記他のデータ
処理装置の出力データを入力として前記変換後演算型Bを行ったときの結果が同じであることを保証する、
ことを特徴とする秘匿演算変換システム。
The data processing device includes two or more data processing devices, wherein the data processing device includes a secret data storage unit that stores respective secret data, an output data storage unit that stores respective output data, the secret data, the output data, Negotiation secret information storage means for storing, as respective negotiation secret information, an operation conversion method type that specifies a combination of a pre-conversion operation type A to be applied to secret data and a post-conversion operation type B to be applied to the output data. An arithmetic processing unit that receives the secret data as input, cooperates with the other data processing device, and calculates the output data in secret.
The arithmetic processing unit is configured to execute the operation of the pre-conversion operation type A by using the secret data and the secret data stored in the other data processing device as an input, the output data, and the other data processing device. Guarantees that the result when the post-conversion operation type B is performed with the output data of the input as the same,
A confidential operation conversion system, characterized in that:
前記変換前演算型Aが加算であり、前記変換後演算型Bが乗算である、請求項1に記載の秘匿演算変換システム。   The confidential operation conversion system according to claim 1, wherein the operation type A before conversion is addition, and the operation type B after conversion is multiplication. 前記変換前演算型Aが乗算であり、前記変換後演算型Bが加算である、請求項1に記載の秘匿演算変換システム。   The secret operation conversion system according to claim 1, wherein the operation type A before conversion is multiplication, and the operation type B after conversion is addition. 前期演算処理手段は、実際の演算処理に先だって一部の演算処理を事前に実施する、請求項1に記載の秘匿演算変換システム。   The confidential calculation conversion system according to claim 1, wherein the first calculation processing means performs a part of the calculation processing in advance before the actual calculation processing. 前記演算処理手段が、前記秘密データと、当該演算処理に先だってなされた演算処理の結果として前記交渉秘密情報記憶部に記憶されている前記交渉秘密情報を用いて、出力データを計算する、請求項1〜3のいずれか一項に記載の秘匿演算変換システム。   The arithmetic processing means calculates output data using the secret data and the negotiation secret information stored in the negotiation secret information storage unit as a result of the arithmetic processing performed prior to the arithmetic processing. The confidential operation conversion system according to any one of claims 1 to 3. 前記交渉秘密情報記憶手段が、前記秘密データと前記交渉秘密情報を用いて得られた出力データを新たな交渉秘密情報として記憶する、請求項5に記載の秘匿演算経変換システム。   6. The confidential operation transcoding system according to claim 5, wherein said negotiation secret information storage means stores the secret data and output data obtained using the negotiation secret information as new negotiation secret information. 前期演算処理手段は、前記変換前演算型Aが加算であり前記変換後演算型Bが乗算である演算処理と、前記変換前演算型Aが乗算であり前記変換後演算型Bが加算である演算処理とを組み合わせて、底とべき指数の両方を秘密データとし前記変換前演算型Aがべき乗算であり前記変換後演算型Bが乗算または加算である演算変換処理を行う、請求項1〜6のいずれか一項に記載の秘匿演算変換システム。   The first-stage operation processing means includes an operation process in which the pre-conversion operation type A is addition and the post-conversion operation type B is multiplication, and an operation in which the pre-conversion operation type A is multiplication and the post-conversion operation type B is addition A combination of arithmetic processing and an arithmetic conversion processing in which both the base and exponent are secret data and the pre-conversion operation type A is exponentiation and the post-conversion operation type B is multiplication or addition. 7. The confidential operation conversion system according to any one of 6. それぞれの秘密データを記憶する秘密データ記憶ステップと、それぞれの出力データを記憶する出力データ記憶ステップと、前記交渉秘密情報をそれぞれ記憶する交渉秘密情報記憶ステップと、前記秘密データを入力として、他の前記データ処理装置と連携して、前記演算変換方式型に従って、前記出力データを秘匿に計算する演算処理ステップを有し、
前記演算処理ステップは、前記秘密データと他のデータ処理装置の秘密データを入力として前記変換前演算型Aの演算を行った時の結果と前記出力データと他のデータ処理装置のもつ出力データを入力として前記変換後演算型Bの演算を行った時の結果が同じ値であることを保証する、
ことを特徴とする秘匿演算変換方法。
A secret data storing step of storing respective secret data; an output data storing step of storing respective output data; a negotiation secret information storing step of storing the negotiation secret information; and In cooperation with the data processing device, according to the operation conversion method type, having an operation processing step of calculating the output data secretly,
The operation processing step is a step of performing the operation of the pre-conversion operation type A by using the secret data and the secret data of another data processing device as inputs, the output data, and the output data of the other data processing device. Ensure that the result of performing the operation of the post-conversion operation type B as an input is the same value,
A confidential operation conversion method, characterized in that:
前記変換前演算型Aが加算であり、前記変換後演算型Bが乗算である、請求項8に記載の秘匿演算変換方法。   9. The confidential operation conversion method according to claim 8, wherein the operation type A before conversion is addition, and the operation type B after conversion is multiplication. 前記変換前演算型Aが乗算であり、前記変換後演算型Bが加算である、請求項8に記載の秘匿演算変換方法。   The confidential operation conversion method according to claim 8, wherein the operation type A before conversion is multiplication, and the operation type B after conversion is addition. 前記演算処理ステップは、実際の演算処理に先だって、一部の演算処理を事前に実施する、請求項8に記載の秘匿演算変換方法。   9. The confidential operation conversion method according to claim 8, wherein in the operation processing step, a part of the operation processing is performed in advance before the actual operation processing. 前記演算処理ステップが、前記秘密データと、当該演算処理に先だってなされた演算処理の結果として前記交渉秘密情報記憶部に記憶されている前記交渉秘密情報を用いて、出力データを計算する、請求項8〜10のいずれか一項に記載の秘匿演算変換方法。   The arithmetic processing step calculates output data using the secret data and the negotiation secret information stored in the negotiation secret information storage unit as a result of the arithmetic processing performed prior to the arithmetic processing. 11. The method according to claim 8. 前記交渉秘密情報記憶ステップが、前記秘密データと前記交渉秘密情報を用いて得られた出力データを新たな交渉秘密情報として記憶する、請求項12に記載の秘匿演算変換方法。   The confidential operation conversion method according to claim 12, wherein the negotiation secret information storing step stores the secret data and output data obtained by using the negotiation secret information as new negotiation secret information. 前記演算処理ステップは、前記変換前演算型Aが加算であり前記変換後演算型Bが乗算である演算処理と、前記変換前演算型Aが乗算であり前記変換後演算型Bが加算である演算処理とを組み合わせて、底とべき指数の両方を秘密データとし前記変換前演算型Aがべき乗算であり前記変換後演算型Bが乗算または加算である演算変換処理を行う請求項8〜13のいずれか一項に記載の秘匿演算変換方法。   The operation processing step is an operation in which the pre-conversion operation type A is addition and the post-conversion operation type B is multiplication, and the pre-conversion operation type A is multiplication and the post-conversion operation type B is addition. 14. An arithmetic conversion process in which both the base and the exponent are used as secret data in combination with arithmetic processing, wherein the arithmetic type A before conversion is exponentiation and the arithmetic type B after conversion is multiplication or addition. The confidential operation conversion method according to any one of the above. 他のコンピュータと連携してデータを処理するコンピュータによって使用されるプログラムであって、それぞれの秘密データを記憶する秘密データ記憶ステップと、それぞれの出力データを記憶する出力データ記憶ステップと、前記交渉秘密情報をそれぞれ記憶する交渉秘密情報記憶ステップと、前記秘密データを入力として、他の前記データ処理装置と連携して、前記演算変換方式型に従って、前記出力データを秘匿に計算する演算処理ステップを有し、
前記演算処理ステップは、前記秘密データと他のデータ処理装置の秘密データを入力として前記変換前演算型Aの演算を行った時の結果と前記出力データとたのデータ処理装置のもつ出力データを入力として前記変換後演算型Bの演算を行った時の結果が同じ値であることを保証する、
ことを特徴とする秘匿演算変換プログラム。
A program used by a computer for processing data in cooperation with another computer, the program comprising: a secret data storing step of storing respective secret data; an output data storing step of storing respective output data; A negotiation secret information storage step of storing information; and an operation processing step of receiving the secret data as input and calculating the output data in secret in accordance with the operation conversion method type in cooperation with another data processing device. And
The arithmetic processing step includes, when the secret data and the secret data of another data processing device are input, the result of performing the operation of the pre-conversion operation type A and the output data and the output data of the data processing device. Ensure that the result of performing the operation of the post-conversion operation type B as an input is the same value,
A confidential operation conversion program, characterized in that:
前記変換前演算型Aが加算であり、前記変換後演算型Bが乗算である、請求項15に記載の秘匿演算変換プログラム。   The confidential operation conversion program according to claim 15, wherein the pre-conversion operation type A is an addition, and the post-conversion operation type B is a multiplication. 前記変換前演算型Aが乗算であり、前記変換後演算型Bが加算である、請求項15に記載の秘匿演算変換プログラム。   The confidential operation conversion program according to claim 15, wherein the pre-conversion operation type A is a multiplication, and the post-conversion operation type B is an addition. 前記演算処理ステップは、実際の演算処理に先だって、一部の演算処理を事前に実施する、請求項15に記載の秘匿演算変換プログラム。   The confidential calculation conversion program according to claim 15, wherein the calculation processing step performs a part of the calculation processing in advance before the actual calculation processing. 前記演算処理ステップが、前記秘密データと、当該演算処理に先だってなされた演算処理の結果として前記交渉秘密情報記憶部に記憶されている前記交渉秘密情報を用いて、出力データを秘匿に計算する、請求項15〜17のいずれか一項に記載の秘匿演算変換プログラム。   The arithmetic processing step, the secret data, using the negotiation secret information stored in the negotiation secret information storage unit as a result of the arithmetic processing performed prior to the arithmetic processing, to calculate the output data confidential, The confidential operation conversion program according to any one of claims 15 to 17. 前記交渉秘密情報記憶ステップが、前記秘密データと前記交渉秘密情報を用いて得られた出力データを新たな交渉秘密情報として記憶する、請求項21に記載の秘匿演算変換プログラム。   22. The confidential operation conversion program according to claim 21, wherein the negotiation secret information storing step stores the secret data and output data obtained using the negotiation secret information as new negotiation secret information. 前記演算処理ステップは、前記変換前演算型Aが加算であり前記変換後演算型Bが乗算である演算処理と、前記変換前演算型Aが乗算であり前記変換後演算型Bが加算である演算処理とを組み合わせて、底とべき指数の両方を秘密データとし前記変換前演算型Aがべき乗算であり前記変換後演算型Bが乗算または加算である演算変換処理を行う請求項15〜20のいずれか一項に記載の秘匿演算変換プログラム。






The operation processing step is an operation in which the pre-conversion operation type A is addition and the post-conversion operation type B is multiplication, and the pre-conversion operation type A is multiplication and the post-conversion operation type B is addition. 21. An arithmetic conversion process in which both the base and the exponent are used as secret data and the arithmetic type A before conversion is exponentiation and the arithmetic type B after conversion is multiplication or addition in combination with arithmetic processing. The confidential operation conversion program according to any one of the above.






JP2018139191A 2018-07-25 2018-07-25 Secure operation conversion system, secure operation conversion method, and secure operation conversion program Active JP7219437B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018139191A JP7219437B2 (en) 2018-07-25 2018-07-25 Secure operation conversion system, secure operation conversion method, and secure operation conversion program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018139191A JP7219437B2 (en) 2018-07-25 2018-07-25 Secure operation conversion system, secure operation conversion method, and secure operation conversion program

Publications (2)

Publication Number Publication Date
JP2020016739A true JP2020016739A (en) 2020-01-30
JP7219437B2 JP7219437B2 (en) 2023-02-08

Family

ID=69580978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018139191A Active JP7219437B2 (en) 2018-07-25 2018-07-25 Secure operation conversion system, secure operation conversion method, and secure operation conversion program

Country Status (1)

Country Link
JP (1) JP7219437B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016027391A (en) * 2014-06-25 2016-02-18 公立大学法人広島市立大学 Secret vector inner product calculation system, data processing apparatus, secret vector inner product calculation method, secret vector inner product calculation program, and recording medium
JP2016109891A (en) * 2014-12-08 2016-06-20 公立大学法人広島市立大学 Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium
JP2017129644A (en) * 2016-01-19 2017-07-27 公立大学法人広島市立大学 Secret calculation information exchanging system, data processor, secret calculation information exchanging method, secret calculation information exchanging program and recording medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016027391A (en) * 2014-06-25 2016-02-18 公立大学法人広島市立大学 Secret vector inner product calculation system, data processing apparatus, secret vector inner product calculation method, secret vector inner product calculation program, and recording medium
JP2016109891A (en) * 2014-12-08 2016-06-20 公立大学法人広島市立大学 Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium
JP2017129644A (en) * 2016-01-19 2017-07-27 公立大学法人広島市立大学 Secret calculation information exchanging system, data processor, secret calculation information exchanging method, secret calculation information exchanging program and recording medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YU CHING-HUA, ET AL.: "Efficient Secure Two-Party Exponentiation", LECTURE NOTES IN COMPUTER SCIENCE, vol. 6558, JPN6022017939, 2011, pages 17 - 32, XP019160303, ISSN: 0004886622, DOI: 10.1007/978-3-642-19074-2_2 *

Also Published As

Publication number Publication date
JP7219437B2 (en) 2023-02-08

Similar Documents

Publication Publication Date Title
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
Paulet et al. Privacy-preserving and content-protecting location based queries
JP5300983B2 (en) Data processing device
CN112367169A (en) Data encryption and decryption method, device, equipment and storage medium
JP5001176B2 (en) Signature generation apparatus, signature generation method, and signature generation program
CN111162906B (en) Collaborative secret sharing method, device, system and medium based on vast transmission algorithm
US20190044697A1 (en) Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra
CN107005408A (en) Public key encryption system
JP6974461B2 (en) Methods and systems for advanced data-centric cryptographic systems using geometric algebra
CN108718231A (en) A kind of full homomorphic cryptography method, apparatus and computer readable storage medium
EP2742644B1 (en) Encryption and decryption method
US9037846B2 (en) Encoded database management system, client and server, natural joining method and program
Natanael et al. Text encryption in android chat applications using elliptical curve cryptography (ECC)
JP4869824B2 (en) Receiver device, sender device, cryptographic communication system, and program
CN114039785B (en) Data encryption, decryption and processing methods, devices, equipment and storage medium
CN110826089A (en) Verifiable outsourcing computing method, client and cloud computing system for realizing safety and high efficiency of large-scale matrix multiplication
US20180294951A1 (en) Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
CN111639345A (en) Secure multi-party cloud computing method and system based on homomorphic encryption
Saarinen The BlueJay ultra-lightweight hybrid cryptosystem
CN109040041B (en) Data layered encryption device and related electronic device and storage medium
Mittal et al. A quantum secure ID-based cryptographic encryption based on group rings
Datta et al. Strongly full-hiding inner product encryption
JP7219437B2 (en) Secure operation conversion system, secure operation conversion method, and secure operation conversion program
Lee et al. Provably secure extended chaotic map-based three-party key agreement protocols using password authentication
JP2016027391A (en) Secret vector inner product calculation system, data processing apparatus, secret vector inner product calculation method, secret vector inner product calculation program, and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210129

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221128

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20221128

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20221208

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20221213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230120

R150 Certificate of patent or registration of utility model

Ref document number: 7219437

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150