JP2016109891A - Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium - Google Patents

Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium Download PDF

Info

Publication number
JP2016109891A
JP2016109891A JP2014247667A JP2014247667A JP2016109891A JP 2016109891 A JP2016109891 A JP 2016109891A JP 2014247667 A JP2014247667 A JP 2014247667A JP 2014247667 A JP2014247667 A JP 2014247667A JP 2016109891 A JP2016109891 A JP 2016109891A
Authority
JP
Japan
Prior art keywords
result
secret
string
data
data processing
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.)
Pending
Application number
JP2014247667A
Other languages
Japanese (ja)
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 JP2014247667A priority Critical patent/JP2016109891A/en
Publication of JP2016109891A publication Critical patent/JP2016109891A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To secretly calculate a result of application of an arithmetic operation, which is performed using as an input secret data preserved by plural organizations, without transmitting or receiving a ciphertext and causing unrelated information to be learned by others.SOLUTION: Two or more data processing devices 100 are included. One of the data processing devices 100 includes a memory unit 130 that stores secret data and a fixed ciphertext string, a transmission parameter string calculation unit 111 that calculates a transmission parameter string and first result using the secret data and fixed ciphertext string, and a final result calculation unit 112 that acquires a second result produced by any other data processing device, and calculates a final result on the basis of the first result and second result. The other data processing devices 100 include a fixed ciphertext decoder 113 that uses a decoding key to decode part of the fixed ciphertext string and calculates a fixed ciphertext decoding result, and a partial result calculation unit 114 that acquires the transmission parameter string produced by any other data processing device, and produces the second result by applying an arithmetic operation together with the fixed ciphertext decoding result.SELECTED DRAWING: Figure 6

Description

本発明は、複数の機関でそれぞれがもつデータを入力として演算を適用した結果をデータの内容を秘匿したまま計算するための秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体に関する。 The present invention relates to a secret calculation information exchange system, a data processing device, a secret calculation information exchange method, and a secret calculation for calculating the result of applying calculation with data held by each of the plurality of organizations as input The present invention relates to an information exchange program and a recording medium.

複数の機関がもつデータを入力として演算を適用し得られる結果をデータの内容を秘匿したまま計算し、結果を利用する方法が示されている。各機関がもつデータを複数のデータブロックからなるデータベクトルとし、適用する演算を内積計算とした場合の秘匿ベクトル内積計算を用いた相関ルールを導出する方法が非特許文献1に示されている。 There is shown a method of calculating a result obtained by applying a calculation using data held by a plurality of institutions as input and using the result while keeping the contents of the data secret. Non-Patent Document 1 discloses a method for deriving an association rule using a secret vector inner product calculation when data of each institution is a data vector composed of a plurality of data blocks and an applied operation is an inner product calculation.

ここで、内積演算とは2つの同じ長さのベクトルを入力として、同じベクトル位置のベクトル要素2つを乗算し乗算結果を算出し、全てのベクトル位置の乗算結果の総和を求める演算とする。内積演算の入力ベクトルをX、Yとするとき内積演算結果をX・Yと表す。 Here, the inner product calculation is an operation in which two vectors having the same length are input, two vector elements at the same vector position are multiplied, a multiplication result is calculated, and a sum of multiplication results at all vector positions is obtained. When the input vector of the inner product operation is X and Y, the inner product operation result is expressed as X · Y.

以下、オンラインショップP1とオンラインショップP2が顧客の物品購入の相関関係を顧客とのプライバシー同意契約に違反することなく導出する例を図○の概略図を参照して説明する。 Hereinafter, an example in which the online shop P1 and the online shop P2 derive the customer's purchase relationship without violating the privacy agreement with the customer will be described with reference to the schematic diagram in FIG.

最初に、オンラインショップP1とP2は図2、図3に示すような「クレジットカード番号表」を用意し、同じクレジット番号の顧客の利用金額を同じ位置に記録する2つのベクトル、「ベクトルX」、「ベクトルY」を用意する。 First, online shops P1 and P2 prepare a “credit card number table” as shown in FIG. 2 and FIG. 3, and two vectors “vector X” for recording the usage amount of the customer with the same credit number at the same position. , “Vector Y” is prepared.

上記のベクトルXとベクトルYを入力として内積演算を適用し結果がある閾値より大きい場合にはオンラインショップP1とオンラインショップP2の顧客の購買行動には正の相関関係があると判断することができ、顧客の嗜好性が似ていることから、共同で商品開発することで、より顧客のニーズにあう商品を開発できる可能性があることがわかる。 When the above-mentioned vector X and vector Y are input and the inner product operation is applied and the result is larger than a certain threshold value, it can be determined that there is a positive correlation between the purchase behaviors of online shop P1 and online shop P2 customers. Since the customer's tastes are similar, it can be seen that by jointly developing products, it is possible to develop products that better meet customer needs.

このとき、多くの人数の購買情報からなる「ベクトルX」、「ベクトルY」を作成した上で、「ベクトルX」、「ベクトルY」の内容を明らかにせず、内積演算の結果のみを計算できれば、顧客と企業間にあるプライバシー合意契約に抵触しない。以降では、ベクトルX、Yの長さはnであるとし、また、その長さをベクトル次数と呼ぶ。 At this time, if “vector X” and “vector Y” consisting of purchasing information for a large number of people are created, the contents of “vector X” and “vector Y” are not clarified, and only the result of the inner product operation can be calculated. , Do not violate privacy agreements between customers and businesses. Hereinafter, the length of the vectors X and Y is assumed to be n, and the length is referred to as a vector order.

上記の秘匿計算を実行する手法が非特許文献1にて開示されている。まず、オンラインショップ1では、ベクトルXの各要素にオンラインショップ1がランダムに定めたn個の乱数によりベクトルXを秘匿した形に変形したベクトルX’をオンラインショップ2へ渡す。オンラインショップ2では、ベクトルX‘と自身のもつベクトルYの内積を計算する。CTYなるn次のベクトルに同じ値がn/r個ずつ連続するn次元のベクトル<R1’,R1’,…,R1’, R2’,…,R2’, Rr’,…Rr’>を加算して作成したベクトルVをオンラインショップ1に送信する。オンラインショップ1は自己の乱数ベクトルRと受信したベクトルVの内積を計算し、Jとする。次に機関P1は自己の乱数ベクトルをn/r個ずつ加算し、r次元のベクトルQ=<R1+R2+…+Rn/r, Rn/r+1+…+R2n/r,…,R(n-n/r+1)+…+Rn>を計算し、オンラインショップ2へ送信する。オンラインショップ2は先に計算した内積値から自己のもつr次のベクトルT=(R1’,R2’,…,Rr’)とオンラインショップ1より受信したr次ベクトルQとの内積の値を減算することで値Kを計算する。機関P1と機関P2は値JとKを交換することで内積結果X・Yを計算することができる。 Non-Patent Document 1 discloses a method for executing the above-described confidential calculation. First, in the online shop 1, the vector X ′ obtained by transforming the vector X into a concealed form with n random numbers randomly determined by the online shop 1 for each element of the vector X is delivered to the online shop 2. The online shop 2 calculates the inner product of the vector X ′ and its own vector Y. N-dimensional vector <R1 ', R1', ..., R1 ', R2', ..., R2 ', Rr', ... Rr '> with n / r consecutive values of n th order vector of C T Y The vector V created by adding is sent to the online shop 1. The online shop 1 calculates the inner product of its own random number vector R and the received vector V as J. Next, the engine P1 adds its own random number vector by n / r, and the r-dimensional vector Q = <R1 + R2 + ... + Rn / r, Rn / r + 1 + ... + R2n / r, ..., R ( nn / r + 1) +... + Rn> is calculated and transmitted to the online shop 2. Online shop 2 subtracts the inner product value of its own r-th order vector T = (R1 ', R2', ..., Rr ') and the r-th order vector Q received from online shop 1 from the inner product value calculated previously. To calculate the value K. The engine P1 and the engine P2 can calculate the inner product result X · Y by exchanging the values J and K.

上記の手法では複数の秘匿データの加算後の結果のみを知らせることで加算前の値を復元できない状態に保ち、各ベクトルの値の安全性を保証できるように見える。 In the above method, only the result after addition of a plurality of secret data is informed, so that the value before addition cannot be restored and it seems that the safety of the value of each vector can be guaranteed.

しかしながら、この方法には問題がある。オンラインショップ1は、ベクトルYの非零要素数が少ない場合、ベクトルYの半分の係数を明らかにできてしまう。また、同じベクトルXをオンラインショップ1が繰り返し用いた場合、相手が変数を指定し、ベクトルXに関する情報を引き出すことができるという安全上の問題がある。また、n/r回のn次元のベクトルの送受信を必要としており、安全性を向上させようとすると大量のベクトル情報を送受信することとなる効率上の問題もある。 However, this method has problems. When the number of non-zero elements of the vector Y is small, the online shop 1 can clarify half of the coefficients of the vector Y. Further, when the online shop 1 repeatedly uses the same vector X, there is a safety problem that the partner can specify a variable and extract information about the vector X. Further, n / r transmission / reception of n-dimensional vectors is required, and there is also an efficiency problem that a large amount of vector information is transmitted / received in order to improve safety.

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

ここで、公開鍵暗号方式とは暗号化するときに使う鍵と復号するときに使う鍵が異なるため、暗号化に利用する鍵を公開することで、誰でも暗号文を作成できるが、復号は復号するための鍵(秘密鍵)を知っている人以外には困難である非対称な暗号方式である。また、確率暗号とは、同一の平文を同一の鍵で暗号化すると必ず同一の暗号文を生成するRSA暗号方式のような確定暗号とは異なり、暗号化に毎回異なる乱数を利用可能なため、同じ平文であっても鍵の種類と同程度の数の暗号文に変換可能な暗号方式である。上記の性質を満たす公開鍵暗号方式の1つにElGamal暗号方式がある。確率公開鍵暗号方式を使った秘匿ベクトル内積方法では、暗号文に対して、演算を適用することで平文に演算を施せるという準同型性を利用し、かつ、確率的に暗号文を変化させることで、暗号文に対してどのような演算が適用されたのかを特定することを困難にしながら、平文に対して演算を施して、秘匿ベクトルの内積を計算する。 Here, since the key used for encryption and the key used for decryption are different from the public key cryptosystem, anyone can create ciphertext by publicizing the key used for encryption. This is an asymmetric encryption method that is difficult for anyone other than those who know the key (secret key) for decryption. In addition, unlike stochastic encryption such as the RSA encryption method that always generates the same ciphertext when the same plaintext is encrypted with the same key, a random number different from each other can be used for encryption. This is an encryption method that can convert the same plaintext into as many ciphertexts as the key type. One of the public key cryptosystems satisfying the above properties is the ElGamal cryptosystem. In the secret vector inner product method using the stochastic public key cryptosystem, the ciphertext is changed probabilistically by using the homomorphism that the operation can be performed on the plaintext by applying the operation to the ciphertext. Thus, while making it difficult to specify what kind of operation is applied to the ciphertext, the plaintext is operated and the inner product of the secret vectors is calculated.

以下、先の例と同じように機関P1とP2は図2、図3に示すような各顧客の利用金額を把握しているオンラインショップP1とオンラインショップP2とする。各機関は各顧客の利用金額を秘密データとして保持すると仮定する。   Hereinafter, similarly to the previous example, the institutions P1 and P2 are assumed to be an online shop P1 and an online shop P2 that know the usage amount of each customer as shown in FIGS. It is assumed that each organization holds the usage amount of each customer as secret data.

最初に、機関P1とP2は図4、図5に示すような秘密ベクトルXとYを用意する。ここで、機関P1は各顧客の利用金額、機関P2は各顧客の利用金額をベクトルの要素としてもつこととする。以降では、顧客を1からnで番号付け、ベクトルの大きさをnとし、各ベクトルの要素をXi、Yiと表す(ここでiは1以上n以下の整数とする)。 First, the institutions P1 and P2 prepare secret vectors X and Y as shown in FIGS. Here, the institution P1 has the usage amount of each customer, and the institution P2 has the usage amount of each customer as a vector element. Hereinafter, customers are numbered from 1 to n, the vector size is n, and the elements of each vector are represented as Xi and Yi (where i is an integer between 1 and n).

次に、機関P1は自分の公開鍵K=g S (mod P) (ここgは原子元、Pは素数、Sは秘密鍵とする。以降暗号の計算では(mod P)を省略する)を公開した上で、各顧客の利用金額Xiの暗号値(2X]Kri, gri)(ここで、riは乱数)からなる暗号文ベクトルを作成し、機関P2に送信する。 Next, the institution P1 has its own public key K = g S (mod P) (where g is an atomic element, P is a prime number, and S is a secret key, and (mod P) is omitted in the calculation of encryption). After publishing, a ciphertext vector composed of a cipher value (2 X] K ri , g ri ) (where ri is a random number) of the usage amount Xi of each customer is created and transmitted to the institution P2.

機関P1より暗号文ベクトルを受け取った機関P2は暗号文の1項目、2項目ともにパラメータYiを指数乗したのち、各暗号文の1項目の要素をすべて乗算し、2項目の要素同士をすべて乗算した1つの暗号文(2X1Y1+X2Y2+…+XnYn Kr1Y1+r2Y2+…+rnYn, gr1Y1+r2Y2+…+rnYn)を作成し、最後に乱数Rで撹乱した暗号文(2X1Y1+X2Y2+…+XnYn Kr1Y1+r2Y2+…+rnYn+R, gr1Y1+r2Y2+…+rnYn+R)に変換し、変換後の暗号文を機関P2へ送信する。 Upon receiving the ciphertext vector from the institution P1, the institution P2 multiplies the elements of each ciphertext by multiplying the parameters Yi exponentially by 1 and 2 of the ciphertext, and multiplies all the elements of the two items. 1 ciphertext (2 X1Y1 + X2Y2 + ... + XnYn K r1Y1 + r2Y2 + ... + rnYn , g r1Y1 + r2Y2 + ... + rnYn ), and finally the ciphertext (2 X1Y1 + X2Y2 + ... K r1Y1 + r2Y2 +... + RnYn + R , g r1Y1 + r2Y2 +... + RnYn + R ), and transmits the converted ciphertext to the institution P2.

暗号文を受け取った機関P1は暗号文2項組を復号することにより値E=Σ1≦i≦n XiYi+Rを得る。値Eと値Rを機関P1、P2で交換することにより、互いに内積結果を計算することができる。 The organization P1 that has received the ciphertext obtains the value E = Σ1 ≦ i ≦ n XiYi + R by decrypting the ciphertext binary set. By exchanging the value E and the value R between the engines P1 and P2, the inner product result can be calculated.

Jaideep Vaidya and Chris Clifton, “Privacy preserving association rule mining in vertically partitioned data,” Proceeding of the 8th ACM SIGKDD 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 SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD2002), pp.639-644, 2002. Bart Goethals, Sven Laur, Helger Lipmann ad Taneli Mielikainen, “On privacy scalar product computation for privacy-preserving data mining,” Priceeding of the 7th Annual Information Security and Cryptology (ICISC2004), pp.104-120, 2004.Bart Goethals, Sven Laur, Helger Lipmann ad Taneli Mielikainen, “On privacy scalar product computation for privacy-preserving data mining,” Priceeding of the 7th Annual Information Security and Cryptology (ICISC2004), pp.104-120, 2004.

しかしながら、非特許文献2の方法にも問題がある。機関P1はベクトル情報ごとにデータを暗号化する必要があり、その暗愚かは指数乗の計算のような大きな計算コストを必要とするという問題である。また、機関P2もベクトル次数個の自己のもつ情報を指数乗の大きな計算コストを費やし機関P2の公開鍵で暗号化した後、機関p1より受信したベクトル次数個の暗号文と乗算しなければならず、大きな計算コストを必要とする。 However, the method of Non-Patent Document 2 also has a problem. The institution P1 needs to encrypt data for each vector information, and its impatient is a problem that requires a large calculation cost such as exponentiation. Also, the institution P2 has to multiply the information of its own number of vector orders with the public key of the institution P2, spending a large computational cost, and then multiply it with the ciphertext of the vector order received from the institution p1. However, a large calculation cost is required.

さらに、非特許文献2の方法のような公開鍵暗号方式を用いる方法は相対的な機密性の保証しか持っていない。非特許文献2で提案されている方法に用いられる可能性が高いElGamal暗号方式はDiffie-Hellman問題と呼ばれる難しいと思われている問題が効率的に解けない限り安全だと証明されているが、Diffie-Hellman問題が本当に効率的に解くことができないかは、現在まで証明されていない。また、Diffie-Hellman問題よりも難しい問題である可能性の高い問題として離散対数問題が知られており、ElGamal暗号方式に依る暗号プロトコルは相対的にみても弱い機密性しか備えていない可能性がある。 Furthermore, a method using a public key cryptosystem such as the method of Non-Patent Document 2 has only a guarantee of relative confidentiality. The ElGamal cryptosystem that is likely to be used in the method proposed in Non-Patent Document 2 has been proved to be safe unless the difficult problem called Diffie-Hellman problem is solved efficiently. It has not been proved to date whether the Diffie-Hellman problem can be solved really efficiently. Also, the discrete logarithm problem is known as a problem that is likely to be a more difficult problem than the Diffie-Hellman problem, and the cryptographic protocol based on the ElGamal cryptosystem may have only weak confidentiality even in relative terms. is there.

本発明はこれらの問題を鑑みてなされたものであり、指数乗計算のような大きな計算コストを必要とせず、かつ、暗号文を通信しないことにより、一切の情報を相手に漏らすこと無く演算結果を計算することができる秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、該秘匿計算情報交換プログラムを記録した記録媒体を提供することを目的とする。 The present invention has been made in view of these problems, and does not require a large calculation cost such as exponentiation multiplication, and by not transmitting ciphertext, the calculation result is not leaked to the other party. It is an object to provide a secret calculation information exchange system, a data processing apparatus, a secret calculation information exchange method, a secret calculation information exchange program, and a recording medium on which the secret calculation information exchange program is recorded.

上記の目的を達成するため、本発明の第1の観点にかかる秘匿計算情報交換システムは、
2以上のデータ処理装置で構成される秘匿計算情報交換システムであって、
前記データ処理装置はそれぞれ、
秘密データを記憶する秘密データ記憶手段と、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶手段と、
を有し、
前記データ処理装置は,処理Aか処理Bのどちらかを一方を担当し、
前記処理Aを担当する前記データ処理装置は、さらに、
自己の保有する前記秘密データと前記固定暗号文列を入力として値の列である送信パラメータ列と第1結果を計算する送信パラメータ列計算手段と、
他のデータ処理装置が生成する第2結果を取得し、前記第1結果と前記第2結果を統合し最終結果を算出する最終結果算出手段と、
を有し、
前記処理Bを担当する前記データ処理装置は、さらに、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号手段と、
他のデータ処理装置の前記送信パラメータ列計算手段により生成された前記送信パラメータ列と前記固定暗号文復号結果を入力として第2結果を算出する部分結果算出手段と、
を有し、
前記処理Aを担当する前記データ処理装置が記憶する前記固定暗号文列は、
前記処理Bを担当する前記データ処理装置が記憶する前記固定暗号文列と同一である、
ことを特徴とする。
In order to achieve the above object, a secret calculation information exchange system according to the first aspect of the present invention is provided as follows:
A secret computation information exchange system composed of two or more data processing devices,
Each of the data processing devices is
Secret data storage means for storing secret data;
Fixed ciphertext string storage means for storing a fixed ciphertext string that can be regarded as a ciphertext string;
Have
The data processor is responsible for either process A or process B,
The data processing apparatus in charge of the processing A is further
A transmission parameter sequence that is a sequence of values and the transmission parameter sequence calculation means for calculating a first result by using the secret data held by itself and the fixed ciphertext sequence as input;
A final result calculating means for acquiring a second result generated by another data processing apparatus, integrating the first result and the second result, and calculating a final result;
Have
The data processing apparatus in charge of the processing B is further
Fixed ciphertext decryption means for decrypting a fixed ciphertext string with a decryption key from the secret data held by itself and the fixed ciphertext string, and generating a fixed ciphertext decryption result;
Partial result calculation means for calculating a second result by using the transmission parameter string generated by the transmission parameter string calculation means of the other data processing device and the fixed ciphertext decryption result as inputs;
Have
The fixed ciphertext string stored in the data processing apparatus in charge of the processing A is:
It is the same as the fixed ciphertext string stored in the data processing device in charge of the processing B.
It is characterized by that.

前記送信パラメータ列計算手段は、
前記秘密データ記憶手段により記憶される可能性のある全ての秘密データに対して、
前記固定暗号文列と前記秘密データを入力として前記送信パラメータ列となる値の列と前記第1結果となる値を計算、
できてもよい。
The transmission parameter string calculation means includes:
For all secret data that may be stored by the secret data storage means,
The fixed ciphertext string and the secret data are input, and a value string that is the transmission parameter string and a value that is the first result are calculated,
It may be possible.

前記固定暗号文復号手段は、
前記秘密データ記憶手段により記憶される可能性のある全ての秘密データに対して、
前記固定暗号文列と前記秘密データを入力として前記復号鍵となる値と前記固定暗号文復号結果となる値を計算可能で、
あってもよい。
The fixed ciphertext decryption means includes:
For all secret data that may be stored by the secret data storage means,
The fixed ciphertext string and the secret data can be input to calculate a value to be the decryption key and a value to be the fixed ciphertext decryption result,
There may be.

前記処理Aを担当する前記データ処理装置は、
乱数データを記憶する乱数データ記憶手段をさらに有し、
前記送信パラメータ列計算手段は、
自己の保有する前記秘密データと前記固定暗号文列と前記乱数データを入力として前記送信パラメータ列となる値の列と前記第1結果となる値を計算する、
としてもよい。
The data processing apparatus in charge of the processing A is
Random number data storage means for storing random number data;
The transmission parameter string calculation means includes:
The secret data held by itself, the fixed ciphertext sequence, and the random number data are input to calculate a sequence of values to be the transmission parameter sequence and a value to be the first result.
It is good.

前記固定暗号文列は、
前記処理Aを担当する前記データ処理装置が
前記送信パラメータ列計算手段で計算する前記秘密データとなる可能性のある値とともに入力することである望まれる値の列にすることのできる前記乱数データを計算することを不可能にする暗号文列である、
としてもよい。
The fixed ciphertext string is
The random number data that can be converted into a sequence of desired values to be input together with a value that may be the secret data calculated by the transmission parameter sequence calculation means by the data processing device in charge of the processing A. A ciphertext string that makes it impossible to calculate,
It is good.

前記秘密データは、
複数のデータブロックで構成されるベクトルデータである、
としてもよい。
The secret data is
Vector data composed of a plurality of data blocks,
It is good.

前記最終結果算出手段は、
自己の保有する前記秘密データに対応する前記ベクトルデータと前記処理Bを担当するデータ処理装置の保有する秘密データに対応する前記ベクトルデータの内積計算の結果を入力として適用したときの関数の出力と前記最終結果が等しいこと、
としてもよい。
The final result calculation means includes
An output of a function when the result of the inner product calculation of the vector data corresponding to the secret data held by itself and the vector data corresponding to the secret data held by the data processing apparatus in charge of the process B is applied as an input; The final results are equal;
It is good.

前記最終結果算出手段は、
前記送信パラメータ列を自己の保有する暗号鍵で暗号化した送信パラメータ暗号文列を作成し、
前記部分結果算出手段は、
前記固定暗号文復号結果を自己の保有する暗号鍵で暗号化して他のデータ処理装置へ送信し、
処理Aを担当するデータ処理装置と処理Bを担当するデータ処理装置ともに計算結果を得ること、
としてもよい。
The final result calculation means includes
Create a transmission parameter ciphertext string by encrypting the transmission parameter string with its own encryption key,
The partial result calculation means includes:
The fixed ciphertext decryption result is encrypted with its own encryption key and sent to another data processing device,
Both the data processing device in charge of processing A and the data processing device in charge of processing B obtain calculation results,
It is good.

上記目的を達成するため、本発明の第2の観点にかかるデータ処理装置は、
他のデータ処理装置と連携してデータを処理するデータ処理装置であって、
前記データ処理装置はそれぞれ、
秘密データを記憶する秘密データ記憶手段と、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶手段と、
を有し、
前記データ処理装置は,処理Aか処理Bのどちらかを一方を担当し、
前記処理Aを担当する前記データ処理装置は、さらに、
自己の保有する前記秘密データと前記固定暗号文列を入力として値の列である送信パラメータ列と第1結果を計算する送信パラメータ列計算手段と、
他のデータ処理装置が生成する第2結果を取得し、前記第1結果と前記第2結果を統合し最終結果を算出する最終結果算出手段と、
を有し、
前記処理Bを担当する前記データ処理装置は、さらに、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号手段と、
他のデータ処理装置の前記送信パラメータ列計算手段により生成された前記送信パラメータ列と前記固定暗号文復号結果を入力として第2結果を算出する部分結果算出手段と、
を有し、
前記処理Aを担当する前記データ処理装置が記憶する前記固定暗号文列は、
前記処理Bを担当する前記データ処理装置が記憶する前記固定暗号文列と同一である、
ことを特徴とする。
In order to achieve the above object, a data processing apparatus according to the second aspect of the present invention provides:
A data processing device that processes data in cooperation with other data processing devices,
Each of the data processing devices is
Secret data storage means for storing secret data;
Fixed ciphertext string storage means for storing a fixed ciphertext string that can be regarded as a ciphertext string;
Have
The data processor is responsible for either process A or process B,
The data processing apparatus in charge of the processing A is further
A transmission parameter sequence that is a sequence of values and the transmission parameter sequence calculation means for calculating a first result by using the secret data held by itself and the fixed ciphertext sequence as input;
A final result calculating means for acquiring a second result generated by another data processing apparatus, integrating the first result and the second result, and calculating a final result;
Have
The data processing apparatus in charge of the processing B is further
Fixed ciphertext decryption means for decrypting a fixed ciphertext string with a decryption key from the secret data held by itself and the fixed ciphertext string, and generating a fixed ciphertext decryption result;
Partial result calculation means for calculating a second result by using the transmission parameter string generated by the transmission parameter string calculation means of the other data processing device and the fixed ciphertext decryption result as inputs;
Have
The fixed ciphertext string stored in the data processing apparatus in charge of the processing A is:
It is the same as the fixed ciphertext string stored in the data processing device in charge of the processing B.
It is characterized by that.

上記目的を達成するため、本発明の第3の観点にかかる秘匿計算情報交換方法は、
他のデータ処理装置と連携してデータを処理するデータ処理装置によって使用される秘匿計算情報交換方法であって、
秘密データを記憶する秘密データ記憶ステップと、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶ステップと、
を有し、
前記処理Aを担当する前記データ処理装置によって使用される前記秘匿計算情報交換方法は、さらに、
自己の保有する前記秘密データと前記固定暗号文列を入力として値の列である送信パラメータ列と第1結果を計算する送信パラメータ列計算ステップと、
他のデータ処理装置が生成する第2結果を取得し、前記第1結果と前記第2結果を統合し最終結果を算出する最終結果算出ステップと、
を有し、
前記処理Bを担当する前記データ処理装置によって使用される前記秘匿情報交換方法は、さらに、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号ステップと、
他のデータ処理装置の前記送信パラメータ列計算手段により生成された前記送信パラメータ列と前記固定暗号文復号結果を入力として第2結果を算出する部分結果算出ステップと、
を有し、
前記処理Aを担当する前記データ処理装置が記憶する前記固定暗号文列は、
前記処理Bを担当する前記データ処理装置が記憶する前記固定暗号文列と同一である、
ことを特徴とする。
In order to achieve the above object, a secret calculation information exchange method according to a third aspect of the present invention includes:
A secret calculation information exchange method used by a data processing device that processes data in cooperation with another data processing device,
A secret data storage step for storing secret data;
A fixed ciphertext storage step for storing a fixed ciphertext string that can be regarded as a ciphertext string;
Have
The method for exchanging confidential calculation information used by the data processing apparatus in charge of the processing A,
A transmission parameter sequence that is a sequence of values with the secret data and the fixed ciphertext sequence held by itself as input and a transmission parameter sequence calculation step of calculating a first result;
A final result calculation step of acquiring a second result generated by another data processing apparatus, integrating the first result and the second result, and calculating a final result;
Have
The confidential information exchanging method used by the data processing device in charge of the processing B is further,
A fixed ciphertext decryption step of decrypting a fixed ciphertext string with a decryption key from the secret data held by itself and the fixed ciphertext string, and generating a fixed ciphertext decryption result;
A partial result calculation step of calculating a second result by using the transmission parameter string generated by the transmission parameter string calculation means of the other data processing apparatus and the fixed ciphertext decryption result as inputs;
Have
The fixed ciphertext string stored in the data processing apparatus in charge of the processing A is:
It is the same as the fixed ciphertext string stored in the data processing device in charge of the processing B.
It is characterized by that.

上記目的を達成するため、本発明の第4の観点にかかる秘匿計算情報交換プログラムは、
他のコンピュータと連携してデータを処理するコンピュータによって実行される秘匿計算情報交換プログラムであって、
秘密データを記憶する秘密データ記憶ステップと、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶ステップと、
を有し、
前記処理Aを担当する前記コンピュータによって使用される前記秘匿計算情報交換プログラムは、さらに、
自己の保有する前記秘密データと前記固定暗号文列を入力として値の列である送信パラメータ列と第1結果を計算する送信パラメータ列計算ステップと、
他のデータ処理装置が生成する第2結果を取得し、前記第1結果と前記第2結果を統合し最終結果を算出する最終結果算出ステップと、
を有し、
前記処理Bを担当する前記コンピュータによって使用される前記秘匿情報交換プログラムは、さらに、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号ステップと、
他のデータ処理装置の前記送信パラメータ列計算手段により生成された前記送信パラメータ列と前記固定暗号文復号結果を入力として第2結果を算出する部分結果算出ステップと、
を有し、
前記処理Aを担当する前記データ処理装置が記憶する前記固定暗号文列は、
前記処理Bを担当する前記データ処理装置が記憶する前記固定暗号文列と同一である、ことを特徴とする。
In order to achieve the above object, a secret calculation information exchange program according to the fourth aspect of the present invention is provided as follows:
A secret calculation information exchange program executed by a computer that processes data in cooperation with another computer,
A secret data storage step for storing secret data;
A fixed ciphertext storage step for storing a fixed ciphertext string that can be regarded as a ciphertext string;
Have
The secret calculation information exchange program used by the computer in charge of the processing A is further
A transmission parameter sequence that is a sequence of values with the secret data and the fixed ciphertext sequence held by itself as input and a transmission parameter sequence calculation step of calculating a first result;
A final result calculation step of acquiring a second result generated by another data processing apparatus, integrating the first result and the second result, and calculating a final result;
Have
The secret information exchange program used by the computer in charge of the processing B is further
A fixed ciphertext decryption step of decrypting a fixed ciphertext string with a decryption key from the secret data held by itself and the fixed ciphertext string, and generating a fixed ciphertext decryption result;
A partial result calculation step of calculating a second result by using the transmission parameter string generated by the transmission parameter string calculation means of the other data processing apparatus and the fixed ciphertext decryption result as inputs;
Have
The fixed ciphertext string stored in the data processing apparatus in charge of the processing A is:
It is the same as the fixed ciphertext string stored in the data processing apparatus in charge of the process B.

上記目的を達成するため、本発明の第5の観点にかかる記録媒体は、
上記秘匿計算情報交換プログラムが記録されていることを特徴とする。
In order to achieve the above object, a recording medium according to the fifth aspect of the present invention provides:
The secret calculation information exchange program is recorded.

本発明によれば、暗号文の送受信を一切行うことなく、かつ、無関係な情報を他に知られることなく、秘匿に計算を行うことができる。 According to the present invention, it is possible to perform calculation in a secret manner without performing any transmission / reception of ciphertext and without knowing other irrelevant information.

本発明の実施の形態1にかかる秘匿計算情報交換システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the secret calculation information exchange system concerning Embodiment 1 of this invention. 複数の機関による事前の取り決めに基づいて決定されている顧客のカード番号の順序付けにより、機関P1がもつ顧客ごとの利用金額を列状に並べた表である。It is a table in which the usage amounts for each customer possessed by the institution P1 are arranged in a column by ordering the customer card numbers determined based on prior arrangements by a plurality of institutions. 複数の機関による事前の取り決めに基づいて決定されている顧客のカード番号の順序付けにより、機関P2がもつ顧客ごとの利用金額を列状に並べた表である。It is the table which arranged the amount of money for every customer which organization P2 has by arranging in order by order of the customer's card number determined based on the prior arrangement by a plurality of organizations. 図2に示した表を要約し作成された機関P1がもつ秘密ベクトルXである。This is the secret vector X possessed by the institution P1 created by summarizing the table shown in FIG. 図3に示した表を要約し作成された機関P2がもつ秘密ベクトルYである。This is the secret vector Y of the institution P2 created by summarizing the table shown in FIG. 図1に示す制御部によって実現される機能を示す機能ブロック図である。It is a functional block diagram which shows the function implement | achieved by the control part shown in FIG. 本発明の実施の形態1にかかる「情報交換処理A」と「情報交換処理B」のパラメータと固定暗号文列が満たすべき条件を示す前提条件説明図である。It is a premise explanatory drawing which shows the conditions which the parameter of "information exchange process A" and "information exchange process B" concerning Embodiment 1 of this invention and a fixed ciphertext string should satisfy | fill. 本発明の実施の形態1にかかる「情報交換処理A」と「情報交換処理B」の概要を説明するための処理概要図である。It is a process outline figure for explaining an outline of "information exchange process A" and "information exchange process B" concerning Embodiment 1 of the present invention. 本発明の実施の形態1にかかる「情報交換処理A」と「情報交換処理B」を説明するためのフローチャートである。It is a flowchart for demonstrating "information exchange process A" and "information exchange process B" concerning Embodiment 1 of this invention. 図9に示す「情報交換処理A」で実行される「送信パラメータ列計算処理」と「情報交換処理B」で実行される「固定暗号文復号処理」を説明するためのフローチャートである。10 is a flowchart for explaining “transmission parameter string calculation processing” executed in “information exchange processing A” shown in FIG. 9 and “fixed ciphertext decryption processing” executed in “information exchange processing B”. 図9に示す「情報交換処理A」で実行される「最終結果算出処理」と「情報交換処理B」で実行される「部分結果算出処理」を説明するためのフローチャートである。10 is a flowchart for explaining a “final result calculation process” executed in the “information exchange process A” shown in FIG. 9 and a “partial result calculation process” executed in the “information exchange process B”. 本発明の実施の形態2にかかる秘匿計算情報交換システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the secret calculation information exchange system concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる「情報交換処理A」と「情報交換処理B」を説明するためのフローチャートである。It is a flowchart for demonstrating "information exchange process A" and "information exchange process B" concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる「送信パラメータ計算処理」と「固定暗号文復号処理」を説明するためのフローチャートである。It is a flowchart for demonstrating the "transmission parameter calculation process" and the "fixed ciphertext decoding process" concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる「部分結果1算出処理」と「部分結果2算出処理」を説明するためのフローチャートである。It is a flowchart for demonstrating the "partial result 1 calculation process" and the "partial result 2 calculation process" concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる「最終結果算出処理」を説明するためのフローチャートである。It is a flowchart for demonstrating the "final result calculation process" concerning Embodiment 2 of this invention.

(実施の形態1)
本実施の形態の秘匿計算情報交換システム1は、機関P1もしくは機関P2のもつ秘密データX、Yにおいて第三者機関の助けなしに、かつ、暗号文の送受信を一切行うことなくXとYを入力として関数を適用した結果を秘匿に計算するための情報交換システムである。以下、秘匿計算情報交換システム1について図面を参照しながら説明する。まず、図6を参照して秘匿計算情報交換システム1の構成について説明する。
(Embodiment 1)
The secret calculation information exchange system 1 according to the present embodiment uses the secret data X and Y of the institution P1 or the institution P2 without the aid of a third party and without sending and receiving ciphertext at all. It is an information exchange system for calculating secretly the result of applying a function as an input. Hereinafter, the secret calculation information exchange system 1 will be described with reference to the drawings. First, the configuration of the secret calculation information exchange system 1 will be described with reference to FIG.

秘匿計算情報交換システム1は、図6に示すように、機関P1と機関P2それぞれに設置された2台のデータ処理装置100と、それらを接続する通信線200とで構成される。2台のデータ処理装置100は、通信線200を通じて互いにデータを送受信することで連携して1つの処理を実行する。 As shown in FIG. 6, the secret calculation information exchange system 1 includes two data processing devices 100 installed in each of the institutions P1 and P2, and a communication line 200 that connects them. The two data processing apparatuses 100 execute one process in cooperation by transmitting and receiving data to and from each other through the communication line 200.

データ処理装置100は、例えば、PCサーバやメインフレームなどで構成され、顧客情報等の秘密データを格納している。データ処理装置100は図1に示すように、制御部110、通信部120、記憶部130、操作部140、インタフェース部150から構成される。 The data processing apparatus 100 is composed of, for example, a PC server or a mainframe, and stores secret data such as customer information. As shown in FIG. 1, the data processing apparatus 100 includes a control unit 110, a communication unit 120, a storage unit 130, an operation unit 140, and an interface unit 150.

制御部110は、CPU (Central Processing Unit) などで構成され、データ処理装置100の各部を制御する。また、制御部110は操作部140から「情報交換処理A開始通知」を受信すると、後述の「情報交換処理A」を、「情報交換処理B開始通知」を受信すると、後述の「情報交換処理B」を実行する。「情報交換処理A」は2台のデータ処理装置どちらか一方で実行され、別のデータ処理装置で「情報交換処理B」が実行される。 The control unit 110 includes a CPU (Central Processing Unit) and the like, and controls each unit of the data processing apparatus 100. When the control unit 110 receives an “information exchange process A start notification” from the operation unit 140, the control unit 110 receives an “information exchange process A” notification described later, and receives an “information exchange process B start notification”. Perform “B”. “Information exchange processing A” is executed by one of the two data processing devices, and “information exchange processing B” is executed by another data processing device.

通信部120はLANコネクタや送受信処理用のプロセッサなどから構成され、通信線200を通じて外部の装置(例えばパーソナルコンピュータ)との通信を行う。 The communication unit 120 includes a LAN connector, a transmission / reception processor, and the like, and communicates with an external device (for example, a personal computer) through the communication line 200.

記憶部130は、ハードディスクやRAM (Random Access Memory) などの記憶装置から構成され、データ処理装置100の動作に必要なデータ(例えば「秘密データ」や「固定暗号文列」)などを記憶する。 The storage unit 130 includes a storage device such as a hard disk or a RAM (Random Access Memory), and stores data (for example, “secret data” and “fixed ciphertext string”) necessary for the operation of the data processing device 100.

ここで「秘密データ」とは、「顧客情報」や「秘密ベクトル」などの非公開の情報のことをいう。また、「顧客情報」とは各機関を利用した顧客の情報であり、「秘密ベクトル」とは、複数の機関が共通してしっているIDによって顧客ごとの情報を並び替え、ある機関が持っている秘密ベクトルの各ベクトル位置の情報を提供顧客と別の機関が持っている秘密ベクトルの同じベクトル位置の情報を提供した顧客が同じであるようなベクトル位置ごとに格納されている情報に関して、双方の機関で共通した認識を得て整列された情報とする。 Here, “secret data” refers to non-public information such as “customer information” and “secret vector”. In addition, “customer information” is information about customers using each organization, and “secret vector” is information sorted by customer according to an ID that is shared by multiple organizations. Provide information on each vector position of the secret vector you have About the information stored for each vector position where the customer and the customer who provided the same vector position information of the secret vector that another organization has are the same , And obtain information that is shared by both organizations, and make it aligned.

また「固定暗号文列」とは秘匿計算を行う上でそれぞれのデータ処理装置100が相手に送信する情報を計算するために用いる数値の列であり、「情報交換処理A」、「情報交換処理B」を開始する以前に双方のデータ処理装置100が共通の数値の列を「固定暗号文列」として記憶部130に格納している。「固定暗号文列」はいくつかの条件を満たすよう選択される(詳細は後述する)。 The “fixed ciphertext sequence” is a sequence of numerical values used by each data processing apparatus 100 to calculate information to be transmitted to the other party when performing the confidential calculation, and includes “information exchange processing A” and “information exchange processing”. Before starting “B”, both data processing apparatuses 100 store a common numeric string in the storage unit 130 as a “fixed ciphertext string”. The “fixed ciphertext string” is selected so as to satisfy several conditions (details will be described later).

操作部140はデータ処理装置100の外面上に構成されている各種ボタンなどによって構成される。ユーザにより所定のボタンが押されると、制御部110に対し「情報交換処理A開始通知」か「情報交換処理B開始通知」を送信する。情報交換処理A開始通知、及び、情報交換処理B開始通知は、秘匿計算情報交換処理を開始するためのトリガーとなるデータである。 The operation unit 140 includes various buttons configured on the outer surface of the data processing apparatus 100. When the user presses a predetermined button, “information exchange process A start notification” or “information exchange process B start notification” is transmitted to the control unit 110. The information exchange process A start notification and the information exchange process B start notification are data serving as triggers for starting the secret calculation information exchange process.

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

以上、秘匿計算情報交換システム1の構成について説明したが、次に、制御部110の備える機能について、図6の機能ブロック図、および、図8の処理概要図を参照しながら説明する。 The configuration of the secure calculation information exchange system 1 has been described above. Next, the functions of the control unit 110 will be described with reference to the functional block diagram of FIG. 6 and the process overview diagram of FIG.

制御部110は複数の機関で秘匿計算を実行するため「秘匿計算情報交換処理」を実行する。秘匿計算情報交換処理は操作部140からの「情報交換処理A開始通知」および「情報交換処理B開始通知」により開始される。以下に説明する各機能は秘匿計算情報交換処理を実現するための機能である。秘匿計算情報交換処理は情報交換処理Aと情報交換処理Bから成る。まず、始めに情報交換処理Aを実現する機能を説明し、次に情報交換処理Bを実現する機能を説明する。 The control unit 110 executes “secret calculation information exchange processing” in order to execute secret calculation in a plurality of institutions. The confidential calculation information exchange process is started by “information exchange process A start notification” and “information exchange process B start notification” from the operation unit 140. Each function described below is a function for realizing the secret calculation information exchange process. The secret calculation information exchange process includes an information exchange process A and an information exchange process B. First, a function for realizing the information exchange process A will be described first, and then a function for realizing the information exchange process B will be described.

送信パラメータ列計算部111は自己の秘匿データとあらかじめ知っている固定暗号文列より他の機関のデータ処理装置100に送信する送信パラメータ列σと自己が後に最終結果を得るために用いる第1結果Jを計算する。 The transmission parameter string calculation unit 111 transmits the transmission parameter string σ to be transmitted to the data processing apparatus 100 of another organization from its own secret data and a fixed ciphertext string known in advance, and the first result used by itself to obtain the final result. Calculate J.

最終結果算出部112は他機関のデータ処理装置100と連携して、自己の送信パラメータ列σと相手機関の計算した計算パラメータ列の内積演算の結果と、相手機関が固定暗号文列の一部を相手機関の復号鍵で復号することで得られる値とに演算を施すことにより得られる第二結果Iと自己の保有する第一結果Jを統合することで最終結果NEW_XYを算出し、インタフェース部150を通じて外部の装置へ最終結果を送信する。 The final result calculation unit 112 cooperates with the data processing apparatus 100 of another organization, and the result of the inner product operation of its own transmission parameter sequence σ and the calculation parameter sequence calculated by the counterpart organization, and the counterpart organization is a part of the fixed ciphertext sequence The final result NEW_XY is calculated by integrating the second result I obtained by performing an operation on the value obtained by decrypting the decryption key with the decryption key of the partner organization and the first result J held by the self, and the interface unit The final result is transmitted to an external device through 150.

固定暗号文復号部113はあらかじめ知っている固定暗号文列の一部であるGiを復号するために、残りの固定暗号文列と自己の保有する秘密ベクトルYを用いて復号鍵KBを用いて固定暗号文列の一部Giを復号し、固定暗号文復号値Hを生成する。また、計算パラメータ列を計算する。 For the fixed ciphertext decryption unit 113 for decrypting the Gi is a part of the fixed encryption Bunretsu know in advance, using the decryption key K B by using the secret vector Y held by the remaining fixed encryption Bunretsu and self Then, a part Gi of the fixed ciphertext string is decrypted to generate a fixed ciphertext decryption value H. Also, a calculation parameter string is calculated.

部分結果算出部114は他機関のデータ処理装置100と連携して、相手機関の送信パラメータ列と自己の計算した計算パラメータ列の内積演算の結果と固定暗号文復号値Hを統合し第二結果Iを生成する。 The partial result calculation unit 114 cooperates with the data processing apparatus 100 of the other organization to integrate the result of the inner product operation of the transmission parameter sequence of the partner organization and the calculation parameter sequence calculated by itself and the fixed ciphertext decryption value H to obtain the second result. Generate I.

以上、制御部110の機能について説明したが、次に、データ処理装置100で実行される「秘匿計算情報交換処理」について説明する。秘匿計算情報交換処理は「情報交換処理A」と「情報交換処理B」により構成されるため、始めに情報交換処理Aについて説明し、次に情報交換処理Bについて説明する。機関P1に設置されたデータ処理装置100は「情報交換処理A」を実行し、機関P2に設置されたデータ処理装置100は「情報交換処理B」を実行することで、秘匿データに関する情報を一切相手に知られることなく、かつ、暗号文の送受信を行うことなく秘匿計算を実行し、機関P1は望まれる関数を機関P1の秘密ベクトル、機関P2の秘密ベクトルに適用したときに得られるであろう同じ値を得る。 The function of the control unit 110 has been described above. Next, the “secret calculation information exchange process” executed by the data processing apparatus 100 will be described. Since the secret calculation information exchange process includes “information exchange process A” and “information exchange process B”, the information exchange process A will be described first, and then the information exchange process B will be described. The data processing device 100 installed in the institution P1 executes “information exchange processing A”, and the data processing device 100 installed in the institution P2 executes “information exchange processing B”, so that no information regarding confidential data is obtained. The secret calculation is executed without being known to the other party and without transmitting / receiving the ciphertext, and the institution P1 is obtained when the desired function is applied to the secret vector of the institution P1 and the secret vector of the institution P2. Get the same value for the wax.

制御部110は操作部140から「情報交換処理A開始通知」を受信すると図9に示す「情報交換処理A」を開始する。この「情報交換処理A」は大きく2つのステップで構成される。以下、図8の処理概要図を参照しながら「情報交換処理A」の概要について説明する。なお、以下に説明する各ステップは2台のデータ処理装置100の一方(図8では機関P1)で実行される。「情報交換処理B」の概要は、「情報交換処理A」の概要の説明に続き、説明する。 When the control unit 110 receives the “information exchange process A start notification” from the operation unit 140, the control unit 110 starts the “information exchange process A” shown in FIG. This “information exchange process A” is mainly composed of two steps. The outline of the “information exchange process A” will be described below with reference to the process outline diagram of FIG. Each step described below is executed by one of the two data processing apparatuses 100 (engine P1 in FIG. 8). The outline of “information exchange process B” will be described following the outline of “information exchange process A”.

最初にステップS100の送信パラメータ列計算処理について説明する。制御部110は自己の秘密データであり、「秘密ベクトルX」と予め公知である暗号文列(C1i, C2i, C3i, C4i, D1i, D2i, D3i D4i, F1i, F2i, F3i, F4i, C5i, C6i, C7i, C8i, D5, D6i, D7i, D8i, F5, F6i, F7i, F8i, Gi)(1≦i≦n)を入力とする。ここで、nはベクトルの長さであるベクトル次数である。制御部110は上記を入力として、送信パラメータ列σと第1結果Jを計算する。 First, the transmission parameter string calculation process in step S100 will be described. The control unit 110 is its own secret data, and “secret vector X” and a known ciphertext string (C1i, C2i, C3i, C4i, D1i, D2i, D3i D4i, F1i, F2i, F3i, F4i, C5i, C6i, C7i, C8i, D5, D6i, D7i, D8i, F5, F6i, F7i, F8i, Gi) (1 ≦ i ≦ n) are input. Here, n is a vector order which is the length of the vector. The control unit 110 calculates the transmission parameter string σ and the first result J using the above as inputs.

ここで1つ疑問が生じる。暗号文列(C1i, C2i, C3i, C4i, D1i, D2i, D3i D4i, F1i, F2i, F3i, F4i, C5i, C6i, C7i, C8i, D5, D6i, D7i, D8i, F5, F6i, F7i, F8i, Gi)(1≦i≦n)と送信パラメータ列σと第1結果Jをどのように関連づけるかという疑問である。本実施の形態ではあたかも固定暗号文列を2つの機関が送受信したかのようにみなし、それらの暗号文列を得る暗号鍵等の秘密パラメータを計算することで、送信パラメータ列σと第1結果Jを計算する。その具体的方法は後に詳しく述べる。 One question arises here. Ciphertext string (C1i, C2i, C3i, C4i, D1i, D2i, D3i D4i, F1i, F2i, F3i, F4i, C5i, C6i, C7i, C8i, D5, D6i, D7i, D8i, F5, F6i, F7i, F8i , Gi) (1 ≦ i ≦ n), the transmission parameter string σ, and the first result J are questions. In the present embodiment, the transmission parameter string σ and the first result are calculated by calculating a secret parameter such as an encryption key for obtaining the ciphertext string as if the fixed ciphertext string was transmitted / received by two institutions. Calculate J. The specific method will be described in detail later.

次にステップS400の最終結果算出処理について説明する。制御部110は計算した送信パラメータ列σを相手機関へ送信し、相手機関より送信パラメータ列σと相手機関が計算した計算パラメータ列を入力とする内積演算の結果と固定暗号文復号結果Hに演算を施した値である第2結果Iを取得し、自己の保有する第1結果Jと相手機関から取得した第2結果Iを統合することで最終結果New_XYを算出する。 Next, the final result calculation process in step S400 will be described. The control unit 110 transmits the calculated transmission parameter sequence σ to the counterpart organization, and calculates the inner product operation result and the fixed ciphertext decryption result H, which are input from the counterpart organization with the transmission parameter sequence σ and the calculation parameter sequence calculated by the counterpart organization. The final result New_XY is calculated by acquiring the second result I which is a value obtained by applying the first result J and integrating the first result J owned by the second result I acquired from the partner organization.

以上の処理(ステップS100とS400)により、情報交換処理Aは完了する。次に情報交換処理Bについて説明する。 With the above processing (steps S100 and S400), the information exchange processing A is completed. Next, the information exchange process B will be described.

最初にステップS200の固定暗号文復号処理について説明する。制御部110は公知の固定暗号文列の一部Gi を復号鍵KBi (1≦i≦n )で復号し、その復号値に演算を施した値Hを計算する。さらに、計算パラメータ列δを計算する。 First, the fixed ciphertext decryption process in step S200 will be described. The control unit 110 decrypts a part Gi of a known fixed ciphertext string with a decryption key K B i (1 ≦ i ≦ n), and calculates a value H obtained by calculating the decrypted value. Further, a calculation parameter sequence δ is calculated.

ここでも1つ疑問が生じる。復号鍵KBiは以前に機関P2にて記憶されていないし、固定暗号文列の一部であるGiを暗号化した鍵に対応する復号鍵である保証もないので、固定暗号文列を復号鍵KBiにて復号することに意味はないのでないかという疑問である。しかしながら、本実施の形態では、完全な機密性を備える暗号プロトコルを基本とすることにより、現在の秘密ベクトルYに応じた固定暗号文列と同じ暗号文列を生じる復号鍵KBiを計算することができる。その具体的方法は後に詳しく述べる。 Again, one question arises. Since the decryption key K B i has not been previously stored in the institution P2, and there is no guarantee that it is a decryption key corresponding to a key obtained by encrypting Gi that is a part of the fixed ciphertext string, the fixed ciphertext string is decrypted. It is a question that there is no point in decrypting with the key K B i. However, in this embodiment, the decryption key K B i that generates the same ciphertext string as the fixed ciphertext string corresponding to the current secret vector Y is calculated by using a cryptographic protocol with complete confidentiality as a basis. be able to. The specific method will be described in detail later.

ステップS200の処理が完了すると、次に、制御部110はステップS300の部分結果算出処理を実行する。制御部110は相手機関P1により生成された送信パラメータ列σを取得する。送信パラメータ列σと自己が計算した計算パラメータ列δを入力として内積演算を適用して得られた値と固定暗号文復号値Hに演算を施すことで、第2結果Iを生成する。最後に、第2結果Iを相手機関P1に送信し処理を完了する。 When the process of step S200 is completed, the control unit 110 next executes the partial result calculation process of step S300. The control unit 110 acquires the transmission parameter string σ generated by the partner engine P1. A second result I is generated by calculating the value obtained by applying the inner product calculation and the fixed ciphertext decryption value H with the transmission parameter string σ and the calculation parameter string δ calculated by itself as inputs. Finally, the second result I is transmitted to the partner organization P1 to complete the process.

以上、秘匿計算情報交換処理の概要について説明したが、次に、秘匿計算情報交換処理を構成する情報交換処理A、情報交換処理Bについて詳細に説明する。最初に、情報交換処理AのステップS100の「送信パラメータ列計算処理」、次に情報交換処理BのステップS200の「固定暗号文復号処理」、ステップS300の「部分結果算出処理」を説明し、最後に情報交換処理AのステップS400の「最終結果算出処理」について説明する。 The outline of the secret calculation information exchange process has been described above. Next, the information exchange process A and the information exchange process B that constitute the secret calculation information exchange process will be described in detail. First, the “transmission parameter sequence calculation process” in step S100 of the information exchange process A, the “fixed ciphertext decryption process” in step S200 of the information exchange process B, and the “partial result calculation process” in step S300 will be described. Finally, the “final result calculation process” in step S400 of the information exchange process A will be described.

ステップS100は図10の「送信パラメータ列計算処理」に対応している。以下、図10のフローチャートおよび図8の処理概要図を参照して「送信パラメータ列計算処理」について説明する。なお、送信パラメータ列計算処理は送信パラメータ列計算部111で実行される。また、送信パラメータ列、固定暗号文列における前提条件について図7の前提条件説明図を参照して説明する。 Step S100 corresponds to the “transmission parameter string calculation process” in FIG. Hereinafter, the “transmission parameter string calculation process” will be described with reference to the flowchart of FIG. 10 and the process outline diagram of FIG. The transmission parameter string calculation process is executed by the transmission parameter string calculation unit 111. The preconditions in the transmission parameter string and the fixed ciphertext string will be described with reference to the precondition explanatory diagram of FIG.

送信パラメータ列計算部111は秘密ベクトルXを記憶部130から読み出す。また、秘密入力として記憶している乱数ベクトルΓも記憶部130より読み出す(ステップS101)。 The transmission parameter string calculation unit 111 reads the secret vector X from the storage unit 130. Further, the random number vector Γ stored as the secret input is also read from the storage unit 130 (step S101).

送信パラメータ列計算部111は次に秘密ベクトルXと乱数ベクトルΓを入力として送信パラメータ列σと第1結果を計算する(ステップS102)。 Next, the transmission parameter sequence calculation unit 111 receives the secret vector X and the random number vector Γ and calculates the transmission parameter sequence σ and the first result (step S102).

計算するために基本となっている暗号プロトコルにより規定されている暗号文列(図7(a))とパラメータ群(図7(d))との関係を、暗号文を全て定数、秘密ベクトルX、乱数ベクトルΓの要素を全て定数としたときの連立一次方程式とみなし、連立一次方程式の解よりパラメータ群を計算する(図8(a))、次にパラメータ群の計算値を基本となる暗号プロトコルに従って組合せ、送信パラメータ列σと第1結果Jを生成する(図8(c),)。 The relationship between the ciphertext string (Fig. 7 (a)) and the parameter group (Fig. 7 (d)) defined by the cryptographic protocol that is the basis for the calculation, the ciphertexts are all constants, the secret vector X The random number vector Γ is regarded as a simultaneous linear equation when all elements are constants, and a parameter group is calculated from the solution of the simultaneous linear equation (FIG. 8 (a)). Next, the calculated value of the parameter group is a basic encryption. The transmission parameter string σ and the first result J are generated in accordance with the protocol (FIG. 8C).

ここで基本となっている暗号プロトコルが完全な機密性を提供し、どのような秘密ベクトルXと乱数ベクトルΓの組合せに対しても、決められた暗号文列を生成するようなパラメータ群の設定を可能とするなら、暗号文を固定として公知とすることにより、暗号文列を相手機関と送受信したときに得られる計算結果と同じ計算結果を得るパラメータ群を逆算することができ、暗号文列を送受信することなく相手に情報を送信した効果を得ることができる。 The basic encryption protocol provides complete confidentiality, and parameter groups are set to generate a predetermined ciphertext string for any combination of secret vector X and random number vector Γ. By making the ciphertext known as fixed, the parameter group that obtains the same calculation result as the calculation result obtained when the ciphertext sequence is transmitted / received to / from the other organization can be back-calculated. It is possible to obtain the effect of transmitting information to the other party without transmitting / receiving.

また、逆算したパラメータ群を複数組み合わせることにより、送信パラメータ列σを生成することで、送信パラメータ列から相手機関が秘密ベクトルXの情報を連立一次方程式の関係より推測することは困難となる。さらに、乱数ベクトルΓの値の組合せにより、送信パラメータ列σの内容が変化するような基本暗号プロトコルを用いることにより、同じ秘密ベクトルXでも様々な送信パラメータ列を構成可能とする。この場合、相手機関P2は送信パラメータ列σより秘密ベクトルYの情報を推測することはさらに困難となる。 Further, by generating a transmission parameter string σ by combining a plurality of parameter groups calculated in reverse, it is difficult for the partner organization to infer information of the secret vector X from the relationship of simultaneous linear equations from the transmission parameter string. Furthermore, various transmission parameter sequences can be configured with the same secret vector X by using a basic encryption protocol in which the content of the transmission parameter sequence σ varies depending on the combination of the values of the random vector Γ. In this case, it becomes more difficult for the partner organization P2 to guess the information of the secret vector Y from the transmission parameter string σ.

次に、情報交換処理Bを担当するデータ処理装置100で実行されるステップS200の処理について説明する。ステップS200は図10の「固定暗号文復号処理」に対応している。以下、図10のフローチャートおよび図8の処理概略図を参照して「固定暗号文復号処理」について説明する。なお、固定暗号文復号処理は固定暗号文復号部113で実行される。また、固定暗号文列、計算パラメータ列に関わるパラメータ群に関する前提条件を図7の前提条件説明図を参照して説明する。 Next, the process of step S200 executed by the data processing apparatus 100 in charge of the information exchange process B will be described. Step S200 corresponds to the “fixed ciphertext decryption process” in FIG. The “fixed ciphertext decryption process” will be described below with reference to the flowchart in FIG. 10 and the process schematic diagram in FIG. 8. Note that the fixed ciphertext decryption process is executed by the fixed ciphertext decryption unit 113. Further, preconditions regarding the parameter group related to the fixed ciphertext string and the calculation parameter string will be described with reference to the precondition explanatory diagram of FIG.

固定暗号文復号部113は秘密ベクトルYを記憶部130から読み出す(ステップS201)。 Fixed ciphertext decryption unit 113 reads secret vector Y from storage unit 130 (step S201).

次に、固定暗号文復号部113は秘密ベクトルYと固定暗号文の一部を入力として残りの固定暗号文列を復号するための復号鍵KBiを計算する(ステップS202)。 Next, the fixed ciphertext decryption unit 113 receives the secret vector Y and a part of the fixed ciphertext as input, and calculates a decryption key K B i for decrypting the remaining fixed ciphertext string (step S202).

秘密ベクトルYと固定暗号文列の一部を入力として復号鍵KBiを計算するために、基本となっている暗号プロトコルにより規定されているパラメータ群(図7(e))との関係を、暗号文列を定数値のベクトル、秘密ベクトルYを定数値のベクトル、暗号鍵KBiを変数としたときの連立一次方程式とみなし、連立一次方程式の解より復号鍵KBi(例の場合は暗号鍵に対応する復号鍵は暗号鍵と同じである)と計算パラメータ列δ(図8ではρ/γ)を計算する(図8(b))。 In order to calculate the decryption key K B i using the secret vector Y and a part of the fixed ciphertext string as input, the relationship with the parameter group (FIG. 7 (e)) defined by the basic encryption protocol is expressed. , A ciphertext string as a constant vector, a secret vector Y as a constant value vector, and a cryptographic key KBi as a variable, a simultaneous linear equation. And the calculation parameter sequence δ (ρ / γ in FIG. 8) is calculated (FIG. 8B).

ここでも基本となっている暗号プロトコルが完全な機密性を提供し、どのような秘密ベクトルYに対しても、決められた暗号文列を生成するような暗号鍵を設定可能とするなら、暗号文を固定として公知とすることにより、暗号文列を相手機関と送受信したときに得られる暗号文復号結果と同じ復号結果を得る暗号鍵に対応する復号鍵KBiを、暗号文列を送受信することなく逆算することができる。 Again, if the underlying cryptographic protocol provides complete confidentiality and allows any secret vector Y to be configured with an encryption key that generates a predetermined ciphertext string, the encryption with known statements as fixed, the decryption key K B i corresponding to the encryption key to obtain the same decoding result as the ciphertext decryption results obtained when the encryption Bunretsu sent and received and other organization, send and receive encrypted Bunretsu It is possible to calculate backward without doing.

上記のように完全な機密性を提供するためには、任意の暗号文を固定暗号文列に設定できない場合がある。よって、情報交換処理Aの送信パラメータ列計算部111が秘密ベクトルX、乱数ベクトルΓの任意の値の組合せにおいて、送信パラメータ列σを計算可能であり、かつ、情報交換処理Bの固定暗号文復号部113が秘密ベクトルYの任意の値の組合せにおいて復号鍵KBiを計算可能でなければならない。図8の処理概略図の基本プロトコルにおいて上記を可能とする固定暗号文列が満たさなければならない条件の例を図7(b)に示す。これらの条件を満たすよう固定暗号文列は作成されているものとする(図7)。 In order to provide complete confidentiality as described above, there is a case where an arbitrary ciphertext cannot be set in the fixed ciphertext string. Therefore, the transmission parameter string calculation unit 111 of the information exchange process A can calculate the transmission parameter string σ for any combination of the secret vector X and the random number vector Γ, and the fixed ciphertext decryption of the information exchange process B The unit 113 must be able to calculate the decryption key K B i for any combination of secret vectors Y. FIG. 7B shows an example of conditions that must be satisfied by the fixed ciphertext string that enables the above in the basic protocol of the process schematic diagram of FIG. It is assumed that the fixed ciphertext string has been created to satisfy these conditions (Fig. 7).

固定暗号文復号部113は計算した復号鍵KBiにより固定暗号文列の一部である暗号文Giを復号し、固定暗号文復号値Hを計算し(S203)、固定暗号文復号値Hと計算パラメータ列δを記憶部130に記録する(S204)。固定暗号文の復号が完了すると制御部110は図9のフローに戻り、ステップS300の部分結果算出処理を開始する。部分結果算出処理は部分結果算出部114によって実行される。以下、図11のフローチャートおよび図8の処理概要図を参照して「部分結果算出処理」について説明する。 The fixed ciphertext decryption unit 113 decrypts the ciphertext Gi that is a part of the fixed ciphertext string with the calculated decryption key K B i, calculates the fixed ciphertext decryption value H (S203), and the fixed ciphertext decryption value H And the calculation parameter string δ are recorded in the storage unit 130 (S204). When the decryption of the fixed ciphertext is completed, the control unit 110 returns to the flow of FIG. 9 and starts the partial result calculation process in step S300. The partial result calculation process is executed by the partial result calculation unit 114. Hereinafter, the “partial result calculation process” will be described with reference to the flowchart of FIG. 11 and the process outline diagram of FIG.

部分結果算出部114は他機関のデータ処理装置100により作成された送信パラメータ列を取得する(S301)。次に送信パラメータ列σと自己が計算した計算パラメータ列δを入力とする内積演算の結果を計算し、計算結果を内積値σ・δとする(S302)。 The partial result calculation unit 114 acquires a transmission parameter sequence created by the data processing apparatus 100 of another organization (S301). Next, the result of the inner product calculation using the transmission parameter string σ and the calculation parameter string δ calculated by itself is calculated, and the calculated result is set as an inner product value σ · δ (S302).

次に部分結果算出部114は内積値σ・δと固定暗号文復号値Hに演算を施し得られた結果を第2結果Iとし(S303)、第2結果Iを相手機関へ送信する(S304)。 Next, the partial result calculation unit 114 sets the result obtained by calculating the inner product value σ · δ and the fixed ciphertext decryption value H as the second result I (S303), and transmits the second result I to the partner organization (S304). ).

第2結果の送信が完了すると、情報交換処理Bを担当しているデータ処理装置100の制御部110は図9のフローに戻り、処理を終了する。次に情報交換処理Aを担当しているデータ処理装置100の最終結果算出部112で実行されるステップS400の処理について説明する。ステップS400は図11の「最終結果算出処理」に対応している。以下、図11のフローチャートおよび図8の処理概要図を参照して「最終結果算出処理」について説明する。 When the transmission of the second result is completed, the control unit 110 of the data processing apparatus 100 in charge of the information exchange process B returns to the flow of FIG. 9 and ends the process. Next, the process of step S400 executed by the final result calculation unit 112 of the data processing apparatus 100 in charge of the information exchange process A will be described. Step S400 corresponds to the “final result calculation process” in FIG. Hereinafter, the “final result calculation process” will be described with reference to the flowchart of FIG. 11 and the process outline diagram of FIG.

最終結果算出部112は自己が計算した送信パラメータ列σを機関P2に送信し(S401)、相手機関より第2結果Iを取得する(S402)。 The final result calculation unit 112 transmits the transmission parameter sequence σ calculated by itself to the engine P2 (S401), and acquires the second result I from the partner engine (S402).

最後に、最終結果算出部112は自己が計算した第1結果Jと相手機関より取得した第2結果Iを統合し、最終結果New_XYを算出する(S403)。 Finally, the final result calculation unit 112 integrates the first result J calculated by itself and the second result I acquired from the partner organization, and calculates the final result New_XY (S403).

以上の処理により最終結果の算出が完了すると、次に、制御部110は図9のフローに戻り、最終結果をインタフェース部150を通じて外部の装置へ出力する(ステッップS400)。 When the calculation of the final result is completed by the above processing, the control unit 110 returns to the flow of FIG. 9 and outputs the final result to an external device through the interface unit 150 (step S400).

ここで、情報交換処理A,Bそれぞれを担当するデータ処理装置100が相手機関に送信する情報を利用して他機関が勝手に秘匿計算を行うことができるという危険が存在しないかという疑問が生じる。しかしながら、本実施の形態では、外部に送信する情報、固定暗号文列を制約することにより、上記の危険を排除する。双方の機関において、外部に送信した情報を利用して、秘匿計算を実行できないものとする仕組みを図7の前提条件説明図を参照しながら以下に説明する。 Here, a question arises as to whether there is a risk that the data processing apparatus 100 in charge of each of the information exchange processes A and B uses the information transmitted to the partner organization to allow other organizations to perform confidential calculations without permission. . However, in the present embodiment, the above risk is eliminated by restricting information to be transmitted to the outside and a fixed ciphertext string. A mechanism in which the secret calculation cannot be executed using the information transmitted to the outside in both organizations will be described below with reference to the precondition diagram of FIG.

情報交換処理Aを担当するデータ処理装置100が外部に送信する情報は送信パラメータ列のみである。秘匿計算を行うには送信パラメータσと第1結果Jがなければならないため、送信パラメータ列σしか知らない外部の機関で勝手に計算結果を得ることはできない。 The information transmitted to the outside by the data processing apparatus 100 in charge of the information exchange process A is only a transmission parameter string. Since the transmission parameter σ and the first result J are required to perform the secret calculation, the calculation result cannot be obtained without permission by an external organization that only knows the transmission parameter string σ.

一方、情報交換処理Bを担当するデータ処理装置100が外部に送信する情報のみを利用して、情報交換処理Aを担当するデータ処理装置100は秘匿計算の結果を算出していることから、情報交換処理Aを担当するデータ処理装置100で別の秘密ベクトルXの値の組合せに対する計算結果を計算することができる危険がある。このような勝手な計算を行うには情報交換処理Aを担当する機関P1が送信パラメータ列を固定にして、計算したい秘密ベクトルXの値の組合せにおいて固定した送信パラメータ列を生成できるようなパラメータ群を逆算できればよい。しかしながら、このような逆算を防ぐことのできる固定暗号文列を作成することが可能である。 On the other hand, since the data processing apparatus 100 in charge of the information exchange process A uses only information transmitted to the outside by the data processing apparatus 100 in charge of the information exchange process B, the result of the confidential calculation is calculated. There is a risk that the data processing apparatus 100 in charge of the exchange process A can calculate a calculation result for another combination of secret vector X values. In order to perform such an arbitrary calculation, a parameter group in which the institution P1 in charge of the information exchange process A can fix the transmission parameter sequence and generate a fixed transmission parameter sequence for the combination of secret vector X values to be calculated. It suffices if it can be calculated backward. However, it is possible to create a fixed ciphertext string that can prevent such back calculation.

例えば、図8の処理概略図の例の場合、情報交換処理Aを担当する機関P1が送信パラメータ列を固定として、パラメータ群を逆算できるために固定暗号文列が満たすべき条件(図7(c))と、情報交換処理Bを担当する機関P2が機密性を提供するために秘密ベクトルYに設計可能な任意の値の組合せに対して復号鍵KBiを設定可能にするために固定暗号文列が満たすべき条件(図7(b))は矛盾している。よって、情報交換処理Bを担当する機関P2の情報を守るよう固定暗号文列を決定したなら、情報交換処理Aを担当する機関P1はその固定暗号文列と第2計算結果Iを使って、別の秘匿計算を勝手に行うことができない。 For example, in the example of the process schematic diagram of FIG. 8, the institution P1 in charge of the information exchange process A fixes the transmission parameter string, and the conditions to be satisfied by the fixed ciphertext string so that the parameter group can be calculated backward (FIG. 7 (c )) And fixed encryption to enable the decryption key K B i to be set for any combination of values that can be designed for the secret vector Y in order to provide confidentiality by the organization P2 in charge of the information exchange process B The conditions to be satisfied by the sentence string (FIG. 7B) are contradictory. Therefore, if the fixed ciphertext string is determined so as to protect the information of the institution P2 in charge of the information exchange process B, the institution P1 in charge of the information exchange process A uses the fixed ciphertext string and the second calculation result I, Another secret calculation cannot be performed without permission.

本実施の形態によれば、一切の暗号文の送受信を行うことなく、あたかも暗号文の送受信を行ったと同じ暗号文復号値を取得することが可能になる。また、最終結果を算出するのに適切な部分解を2つの機関で固定暗号文列を仲介情報として生成することができる。 According to the present embodiment, it is possible to acquire the same ciphertext decryption value as if the ciphertext was transmitted / received without performing any ciphertext transmission / reception. In addition, it is possible to generate a partial ciphertext suitable for calculating the final result as the intermediary information by using the fixed ciphertext string in the two organizations.

また、送信パラメータ列を作成するときに秘密ベクトルXだけでなく乱数ベクトルΓを用いることにより、1つの秘密ベクトルに対して確率的に送信パラメータ列を変化させることができ、秘密ベクトルXを推測することを困難にする。 Further, by using not only the secret vector X but also the random vector Γ when creating the transmission parameter sequence, the transmission parameter sequence can be changed stochastically for one secret vector, and the secret vector X is estimated. Make it difficult.

さらに、機関P1においては部分解である第1結果を明らかにしないことにより、他の秘匿計算に勝手に情報が利用されることを防ぐ。また、機関P2においても、固定暗号文列として利用できる暗号文列を条件付けて制約することにより部分解である第2結果を他の秘匿計算に勝手に情報が利用されることを防ぐことができる。 Furthermore, by not revealing the first result of partial decomposition in the engine P1, it is possible to prevent information from being used without permission for other secret calculations. Also in the institution P2, by restricting the ciphertext string that can be used as the fixed ciphertext string, it is possible to prevent the second result, which is a partial decomposition, from being used for other secret calculations without permission. .

このように本実施の形態の方法は、従来手法における機密性における弱点と機密性向上により送受信にかかる通信量、計算量の増大という弱点の双方を克服した完全な機密性を提供する極めて少ない通信量で秘匿計算を実行する情報交換方法となっている。よって、本実施の形態の情報交換方法を使用すれば、高い機密性のもと高速な秘匿計算を実行することが可能となる。 As described above, the method according to the present embodiment provides extremely little communication that provides complete confidentiality that overcomes both the weakness of confidentiality in the conventional method and the weakness of increasing the amount of communication and the amount of communication required for transmission and reception by improving confidentiality. It is an information exchange method that executes secret calculation by quantity. Therefore, if the information exchange method of the present embodiment is used, it is possible to execute a high-speed secret calculation with high confidentiality.

(実施の形態2)
本実施の形態の秘匿計算情報交換システム1は図12に示すように2台のデータ処理装置100を備えるシステムである。また、2台のデータ処理装置100の双方が計算結果を得る。以下、秘匿計算情報交換システム1について図面を参照しながら説明する。まず、図12を参照して秘匿計算情報交換システム1の構成について説明する。
(Embodiment 2)
The secret calculation information exchange system 1 of the present embodiment is a system including two data processing devices 100 as shown in FIG. Further, both of the two data processing devices 100 obtain the calculation result. Hereinafter, the secret calculation information exchange system 1 will be described with reference to the drawings. First, the configuration of the secret calculation information exchange system 1 will be described with reference to FIG.

秘匿計算情報交換システム1は図12に示すように、機関P1と機関P2それぞれに設置された2台のデータ処理装置100と、それらを接続する通信線200とで構成される。2台のデータ処理装置100は、通信線200を通じて互いにデータを送受信することで連携して1つの処理を実行する。データ処理装置100の構成、および制御部110を除くブロックが備える機能は実施の形態1のデータ処理の構成、ブロックの備える機能と同一であるので説明を省略する。 As shown in FIG. 12, the confidential calculation information exchange system 1 includes two data processing devices 100 installed in each of the institutions P1 and P2, and a communication line 200 connecting them. The two data processing apparatuses 100 execute one process in cooperation by transmitting and receiving data to and from each other through the communication line 200. Since the configuration of the data processing apparatus 100 and the functions provided in the blocks excluding the control unit 110 are the same as the configuration of the data processing and the functions provided in the blocks of the first embodiment, description thereof will be omitted.

また、秘匿計算情報交換方法は実施の形態1と同様に「情報交換処理A」と「情報交換処理B」により実行される。以下では、機関P1が「情報交換処理A」を機関P2が「情報交換処理B」を担当するものとする。 The secret calculation information exchange method is executed by “information exchange process A” and “information exchange process B” as in the first embodiment. In the following, it is assumed that the institution P1 is in charge of “information exchange processing A” and the institution P2 is in charge of “information exchange processing B”.

制御部110の備える機能について、図12の機能ブロック図を参照しながら説明する。制御部110は複数の機関で秘匿計算を実行するため「秘匿計算情報交換処理」を実行する。秘匿計算情報交換処理は操作部140からの「情報交換処理A開始通知」および「情報交換処理B開始通知」により開始される。以下に説明する各機能は秘匿計算情報交換処理を実現するための機能である。秘匿計算情報交換処理は情報交換処理Aと情報交換処理Bから成る。まず、始めに情報交換処理Aを実現する機能を説明し、次に情報交換処理Bを実現する機能を説明する。 The functions of the control unit 110 will be described with reference to the functional block diagram of FIG. The control unit 110 executes “secret calculation information exchange processing” in order to execute secret calculation in a plurality of institutions. The confidential calculation information exchange process is started by “information exchange process A start notification” and “information exchange process B start notification” from the operation unit 140. Each function described below is a function for realizing the secret calculation information exchange process. The secret calculation information exchange process includes an information exchange process A and an information exchange process B. First, a function for realizing the information exchange process A will be described first, and then a function for realizing the information exchange process B will be described.

送信パラメータ列計算部111の備える機能は実施の形態1の送信パラメータ列計算部の備える機能と同一であるので説明を省略する。 Since the function of the transmission parameter string calculation unit 111 is the same as the function of the transmission parameter string calculation unit of the first embodiment, the description thereof is omitted.

部分結果1算出部112は他機関のデータ処理装置100と連携して、自己の送信パラメータ列σを自己の暗号鍵Kaにて暗号化した送信パラメータ列暗号文列と相手機関の計算した計算パラメータ列の内積演算の結果の一部である暗号文I1と、内積演算結果の残りの部分と相手機関が固定暗号文列の一部を相手機関の復号鍵で復号することで得られる値とを相手機関の暗号鍵Kbに暗号化した暗号文の2項組(J1,J2)を受信し、I1を自己の暗号鍵Kaで復号して第1結果から減算することで得られる結果を部分結果1とし、相手機関より受信した暗号文J1を自己の暗号鍵Kaで復号した後、J2に加算し暗号文J3を求め相手機関に送信する。 The partial result 1 calculation unit 112 cooperates with the data processing apparatus 100 of another organization to transmit a transmission parameter sequence ciphertext sequence obtained by encrypting its own transmission parameter sequence σ with its own encryption key Ka and a calculation parameter calculated by the counterpart organization. The ciphertext I1 that is a part of the result of the inner product operation of the sequence, the remaining part of the inner product operation result, and the value obtained by the partner organization decrypting a part of the fixed ciphertext sequence with the decryption key of the partner organization Receive the binary pair (J1, J2) of the ciphertext encrypted with the partner's encryption key Kb, decrypt the I1 with its own encryption key Ka, and subtract the result obtained from the first result as a partial result 1. After decrypting the ciphertext J1 received from the partner organization with its own encryption key Ka, add it to J2 to obtain the ciphertext J3 and send it to the partner organization.

最終結果算出部115は他機関のデータ処理装置100と連携して、自己のもつ部分結果1と、相手機関より取得した部分結果2に演算を施すことにより最終結果NEW_XYを算出し、インタフェース部150を通じて外部の装置へ最終結果を送信する。 The final result calculation unit 115 calculates the final result NEW_XY by performing an operation on the partial result 1 owned by itself and the partial result 2 acquired from the partner organization in cooperation with the data processing apparatus 100 of another organization, and the interface unit 150 To send the final result to the external device.

固定暗号文復号部113は実施の形態1の固定暗号文復号部の機能と同じ機能を備えるため、説明を省略する。 The fixed ciphertext decryption unit 113 has the same function as the function of the fixed ciphertext decryption unit of the first embodiment, and thus the description thereof is omitted.

部分結果2算出部114は他機関のデータ処理装置100と連携して、相手機関の送信パラメータ暗号文列と自己の計算した計算パラメータ列の内積演算の結果を2つに分割し、一方を暗号値I1とし、もう一方と固定暗号文復号値Hを同じ自己の暗号鍵Kbにより暗号化し暗号文2項組(J1,J2)を生成し、暗号文列I1, (J1,J2)を相手機関に送信し、相手機関が暗号文2項組(J1,J2)に演算を施して得られた暗号文J3を受信し、暗号文J3を自己の暗号鍵Kbにて復号し、部分結果2を生成する。 The partial result 2 calculation unit 114 cooperates with the data processing apparatus 100 of the other organization to divide the result of the inner product operation of the transmission parameter ciphertext sequence of the counterpart organization and the calculation parameter sequence calculated by itself into two, and encrypt one of them. Set the value I1, encrypt the encrypted ciphertext H with the same encryption key Kb, and generate the ciphertext binary pair (J1, J2) and the ciphertext string I1, (J1, J2) And the other party receives the ciphertext J3 obtained by performing computation on the ciphertext binary pair (J1, J2), decrypts the ciphertext J3 with its own cipher key Kb, and obtains the partial result 2 Generate.

以上、制御部110の機能について説明したが、次に、データ処理装置100で実行される「秘匿計算情報交換処理」について説明する。秘匿計算情報交換処理は「情報交換処理A」と「情報交換処理B」により構成されるため、始めに情報交換処理Aについて説明し、次に情報交換処理Bについて説明する。機関P1に設置されたデータ処理装置100は「情報交換処理A」を実行し、機関P2に設置されたデータ処理装置100は「情報交換処理B」を実行することで、秘匿データに関する情報を一切相手に知られることなく、かつ、暗号文の送受信を行うことなく秘匿計算を実行し、機関P1、機関P2ともに望まれる関数を機関P1の秘密ベクトル、機関P2の秘密ベクトルに適用したときに得られるであろう同じ値を得る。 The function of the control unit 110 has been described above. Next, the “secret calculation information exchange process” executed by the data processing apparatus 100 will be described. Since the secret calculation information exchange process includes “information exchange process A” and “information exchange process B”, the information exchange process A will be described first, and then the information exchange process B will be described. The data processing device 100 installed in the institution P1 executes “information exchange processing A”, and the data processing device 100 installed in the institution P2 executes “information exchange processing B”, so that no information regarding confidential data is obtained. Obtained when a secret calculation is executed without being known to the other party and without transmitting / receiving ciphertext, and a desired function is applied to the secret vector of the institution P1 and the secret vector of the institution P2 in both the institution P1 and the institution P2. Get the same value that would be.

制御部110は操作部140から「情報交換処理A開始通知」を受信すると図13に示す「情報交換処理A」を開始する。この「情報交換処理A」は大きく2つのステップで構成される。以下、図13のフローチャートを参照しながら「情報交換処理A」の概要について説明する。なお、以下に説明する各ステップは2台のデータ処理装置100の一方で実行される。「情報交換処理B」の概要は、「情報交換処理A」の概要の説明に続き、説明する。 When the control unit 110 receives the “information exchange process A start notification” from the operation unit 140, the control unit 110 starts the “information exchange process A” shown in FIG. This “information exchange process A” is mainly composed of two steps. Hereinafter, the outline of the “information exchange process A” will be described with reference to the flowchart of FIG. Each step described below is executed by one of the two data processing devices 100. The outline of “information exchange process B” will be described following the outline of “information exchange process A”.

最初にステップS100の送信パラメータ列計算処理について説明する。制御部110は自己の秘密データであり、「秘密ベクトルX」と予め公知である暗号文列(C1i, C2i, C3i, C4i, D1i, D2i, D3i D4i, F1i, F2i, F3i, F4i, C5i, C6i, C7i, C8i, D5, D6i, D7i, D8i, F5, F6i, F7i, F8i, Gi)(1≦i≦n)を入力とする。ここで、nはベクトルの長さであるベクトル次数である。制御部110は上記を入力として、送信パラメータ列σと第1結果Jを計算する(図13、図14)。 First, the transmission parameter string calculation process in step S100 will be described. The control unit 110 is its own secret data, and “secret vector X” and a known ciphertext string (C1i, C2i, C3i, C4i, D1i, D2i, D3i D4i, F1i, F2i, F3i, F4i, C5i, C6i, C7i, C8i, D5, D6i, D7i, D8i, F5, F6i, F7i, F8i, Gi) (1 ≦ i ≦ n) are input. Here, n is a vector order which is the length of the vector. The control unit 110 calculates the transmission parameter string σ and the first result J using the above as inputs (FIGS. 13 and 14).

次にステップS400の部分結果1算出処理について説明する。制御部110は計算した送信パラメータ列σを自己の暗号鍵Kaで暗号化し、送信パラメータ列暗号文列を作成し、送信パラメータ列暗号文列と相手機関の計算した計算パラメータ列の内積演算の結果の一部である暗号文I1と、内積演算結果の残りの部分と相手機関が固定暗号文列の一部を相手機関の復号鍵で復号することで得られる値とを相手機関の暗号鍵Kbに暗号化した暗号文の2項組(J1,J2)を受信し、I1を自己の暗号鍵Kaで復号して第1結果から減算することで得られる結果を部分結果1とし、相手機関より受信した暗号文J1を自己の暗号鍵Kaで復号した後、J2に加算し暗号文J3を求め相手機関に送信する(図15)。 Next, the partial result 1 calculation process in step S400 will be described. The control unit 110 encrypts the calculated transmission parameter string σ with its own encryption key Ka to create a transmission parameter string ciphertext string, and the result of the inner product operation of the transmission parameter string ciphertext string and the calculated parameter string calculated by the counterpart organization Ciphertext I1 that is a part of the encryption key Kb of the partner organization, and the remaining part of the inner product operation result and the value obtained by the partner organization decrypting a part of the fixed ciphertext sequence with the decryption key of the partner organization Receive the binary pair (J1, J2) of the encrypted ciphertext, decrypt the I1 with its own encryption key Ka, and subtract it from the first result as the partial result 1, and from the partner organization The received ciphertext J1 is decrypted with its own encryption key Ka, and then added to J2 to obtain the ciphertext J3 and transmit it to the partner organization (FIG. 15).

次にステップS500の最終結果算出処理は他機関のデータ処理装置100と連携して、自己のもつ部分結果1と、相手機関より取得した部分結果2に演算を施すことにより最終結果NEW_XYを算出し、インタフェース部150を通じて外部の装置へ最終結果を送信する(図16)。 Next, in step S500, the final result calculation process calculates the final result NEW_XY by performing an operation on the partial result 1 and the partial result 2 obtained from the partner engine in cooperation with the data processing apparatus 100 of another organization. The final result is transmitted to an external device through the interface unit 150 (FIG. 16).

以上の処理(ステップS100とS400、S500)により、情報交換処理Aは完了する。次に情報交換処理Bについて説明する。 The information exchange process A is completed by the above processes (steps S100, S400, and S500). Next, the information exchange process B will be described.

最初にステップS200の固定暗号文復号処理について説明する。制御部110は公知の固定暗号文列の一部Gi を復号鍵KBi (1≦i≦n )で復号し、その復号値に演算を施した値Hを計算する。さらに、計算パラメータ列δを計算する(図14)。 First, the fixed ciphertext decryption process in step S200 will be described. The control unit 110 decrypts a part Gi of a known fixed ciphertext string with a decryption key K B i (1 ≦ i ≦ n), and calculates a value H obtained by calculating the decrypted value. Further, a calculation parameter sequence δ is calculated (FIG. 14).

ステップS200の処理が完了すると、次に、制御部110はステップS300の部分結果2算出処理を実行する。部分結果2算出部114は他機関のデータ処理装置100と連携して、相手機関の送信パラメータ暗号文列と自己の計算した計算パラメータ列の内積演算の結果を2つに分割し、一方を暗号値I1とし、もう一方と固定暗号文復号値Hを同じ自己の暗号鍵Kbにより暗号化し暗号文2項組(J1,J2)を生成し、暗号文列I1, (J1,J2)を相手機関に送信し、相手機関が暗号文2項組(J1,J2)に演算を施して得られた暗号文J3を受信し、暗号文J3を自己の暗号鍵Kbにて復号し、部分結果2を生成する。(図15) When the process of step S200 is completed, the control unit 110 next executes the partial result 2 calculation process of step S300. The partial result 2 calculation unit 114 cooperates with the data processing apparatus 100 of the other organization to divide the result of the inner product operation of the transmission parameter ciphertext sequence of the counterpart organization and the calculation parameter sequence calculated by itself into two, and encrypt one of them. Set the value I1, encrypt the encrypted ciphertext H with the same encryption key Kb, and generate the ciphertext binary pair (J1, J2) and the ciphertext string I1, (J1, J2) And the other party receives the ciphertext J3 obtained by performing computation on the ciphertext binary pair (J1, J2), decrypts the ciphertext J3 with its own cipher key Kb, and obtains the partial result 2 Generate. (Fig. 15)

以上の処理(ステップS200とS300、S500)により、情報交換処理Bは完了する。以上、秘匿計算情報交換処理について説明した。 The information exchange process B is completed by the above processes (steps S200, S300, and S500). The secret calculation information exchange process has been described above.

本実施の形態によれば、各機関が1つずつの暗号鍵を使って作成した暗号文の送受信のみで、双方の機関が安全に計算結果を得ることができる。また、最終結果を算出するのに適切な部分解を2つの機関で固定暗号文列を仲介情報として生成することができる。 According to the present embodiment, both organizations can safely obtain the calculation result by only transmitting / receiving ciphertexts created by each institution using one encryption key. In addition, it is possible to generate a partial ciphertext suitable for calculating the final result as the intermediary information by using the fixed ciphertext string in the two organizations.

実施の形態1および2では、複数のデータブロックで構成されるベクトルを対象に本方法を適用したが、本方法はデータブロック単体を対象に適用してもよい。この場合、データ処理装置100は、データブロック同士の乗算結果を計算するが、最終的な内積結果を算出すると相手のデータブロックの値が判明してしまうので、最終結果以前の値を別の計算に利用するか内積結果に機関P2の秘密データを加算する。また、一方の機関のデータブロックを単位ブロック(例えば値1)に設定し、他の機関のデータブロックを秘密データブロックとするベクトルを対象に本方法を適用した場合、データ処理装置100は秘匿加算計算を実行することができる。 In the first and second embodiments, the present method is applied to a vector composed of a plurality of data blocks. However, the present method may be applied to a single data block. In this case, the data processing apparatus 100 calculates the multiplication result between the data blocks, but if the final inner product result is calculated, the value of the partner data block is determined, so the value before the final result is calculated by another calculation. The secret data of the institution P2 is added to the inner product result. In addition, when the data block of one institution is set as a unit block (for example, value 1) and this method is applied to a vector in which the data block of the other institution is a secret data block, the data processing apparatus 100 performs a secret addition. Calculations can be performed.

本システムの適用はオンラインショップでの相関関係判定の秘匿ベクトル計算に限られない。研究機関間、会社間、部署間等、さまざまな組織間の秘匿計算に適用可能である。また、個人間の秘匿計算にも適用可能である。 The application of this system is not limited to the secret vector calculation for correlation determination in an online shop. It can be applied to confidential calculations between various organizations such as between research institutions, companies, and departments. Moreover, it is applicable also to the secret calculation between individuals.

データ処理装置100は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記憶媒体に格納して配布し、該プログラムをコンピュータにインストールして、上述の処理を実行することによってデータ処理装置100を構成してもよい。また、インターネット等のネットワーク状のサーバ装置が備えるディスク装置に格納しておき、例えばコンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OSとアプリケーションソフトの共同より実現してもよい。また、コンピュータにダウンロード等してもよい。 The data processing apparatus 100 can be realized using a normal computer system, not a dedicated system. For example, the data processing apparatus 100 is configured by storing and distributing a program for performing the above-described operation in a computer-readable storage medium, installing the program in a computer, and executing the above-described processing. Also good. Further, it may be stored in a disk device provided in a network-type server device such as the Internet so that it can be downloaded to a computer, for example. Further, the above-described functions may be realized by joint operation of the OS and application software. Moreover, you may download to a computer.

上記のプログラムを記録する記録媒体としては、USBメモリ、CD、DVD、MO、SDカード、その他、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ、磁気デープ等のコンピュータ読取り可能な記録媒体を使用することができる。また、HDD(ハードディスク)やSSD(ソリッドステートドライブ)等、通常、システム又は装置に固定して使用する記録媒体を使用することもできる。   As a recording medium for recording the above program, a computer-readable recording medium such as a USB memory, a CD, a DVD, an MO, an SD card, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, a magnetic tape, or the like is used. be able to. In addition, it is also possible to use a recording medium that is normally fixed to a system or apparatus, such as an HDD (hard disk) or an SSD (solid state drive).

1 秘匿計算情報交換システム
100 データ処理装置
110 制御部
111 送信パラメータ列計算部
112 最終結果算出部
113 固定暗号文復号部
114 部分結果算出部
120 通信部
130 記憶部
140 操作部
150 インタフェース部
200 通信線

DESCRIPTION OF SYMBOLS 1 Secret calculation information exchange system 100 Data processor 110 Control part 111 Transmission parameter sequence calculation part 112 Final result calculation part 113 Fixed ciphertext decryption part 114 Partial result calculation part 120 Communication part 130 Storage part 140 Operation part 150 Interface part 200 Communication line

Claims (12)

2以上のデータ処理装置で構成される秘匿計算情報交換システムであって、
前記データ処理装置はそれぞれ、
秘密データを記憶する秘密データ記憶手段と、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶手段と、
を有し、
前記データ処理装置は,処理Aか処理Bのどちらかを一方を担当し、
前記処理Aを担当する前記データ処理装置は、さらに、
自己の保有する前記秘密データと前記固定暗号文列を入力として値の列である送信パラメータ列と第1結果を計算する送信パラメータ列計算手段と、
他のデータ処理装置が生成する第2結果を取得し、前記第1結果と前記第2結果を統合し最終結果を算出する最終結果算出手段と、
を有し、
前記処理Bを担当する前記データ処理装置は、さらに、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号手段と、
他のデータ処理装置の前記送信パラメータ列計算手段により生成された前記送信パラメータ列と前記固定暗号文復号結果を入力として第2結果を算出する部分結果算出手段と、
を有し、
前記処理Aを担当する前記データ処理装置が記憶する前記固定暗号文列は、
前記処理Bを担当する前記データ処理装置が記憶する前記固定暗号文列と同一である、
ことを特徴とする秘匿計算情報交換システム。
A secret computation information exchange system composed of two or more data processing devices,
Each of the data processing devices is
Secret data storage means for storing secret data;
Fixed ciphertext string storage means for storing a fixed ciphertext string that can be regarded as a ciphertext string;
Have
The data processor is responsible for either process A or process B,
The data processing apparatus in charge of the processing A is further
A transmission parameter sequence that is a sequence of values and the transmission parameter sequence calculation means for calculating a first result by using the secret data held by itself and the fixed ciphertext sequence as input;
A final result calculating means for acquiring a second result generated by another data processing apparatus, integrating the first result and the second result, and calculating a final result;
Have
The data processing apparatus in charge of the processing B is further
Fixed ciphertext decryption means for decrypting a fixed ciphertext string with a decryption key from the secret data held by itself and the fixed ciphertext string, and generating a fixed ciphertext decryption result;
Partial result calculation means for calculating a second result by using the transmission parameter string generated by the transmission parameter string calculation means of the other data processing device and the fixed ciphertext decryption result as inputs;
Have
The fixed ciphertext string stored in the data processing apparatus in charge of the processing A is:
It is the same as the fixed ciphertext string stored in the data processing device in charge of the processing B.
A secret computation information exchange system characterized by that.
前記送信パラメータ列計算手段は、
前記秘密データ記憶手段により記憶される可能性のある全ての秘密データに対して、
前記固定暗号文列と前記秘密データを入力として前記送信パラメータ列となる値の列と前記第1結果となる値を計算可能である、
ことを特徴とする請求項1に記載の秘匿計算情報交換システム。
The transmission parameter string calculation means includes:
For all secret data that may be stored by the secret data storage means,
The fixed ciphertext string and the secret data can be input to calculate a value string to be the transmission parameter string and a value to be the first result.
The secret calculation information exchange system according to claim 1.
前記固定暗号文復号手段は、
前記秘密データ記憶手段により記憶される可能性のある全ての秘密データに対して、
前記固定暗号文列と前記秘密データを入力として前記復号鍵となる値と前記固定暗号文復号結果となる値を計算可能である、
ことを特徴とする請求項1または2に記載の秘匿計算情報交換システム。
The fixed ciphertext decryption means includes:
For all secret data that may be stored by the secret data storage means,
The fixed ciphertext string and the secret data can be input to calculate a value to be the decryption key and a value to be the fixed ciphertext decryption result.
The secret calculation information exchange system according to claim 1 or 2, characterized in that.
前記処理Aを担当する前記データ処理装置は、
乱数データを記憶する乱数データ記憶手段をさらに有し、
前記送信パラメータ列計算手段は、
自己の保有する前記秘密データと前記固定暗号文列と前記乱数データを入力として前記送信パラメータ列となる値の列と前記第1結果となる値を計算する、
ことを特徴とする請求項1乃至3のいずれか1項に記載の秘匿計算情報交換システム。
The data processing apparatus in charge of the processing A is
Random number data storage means for storing random number data;
The transmission parameter string calculation means includes:
The secret data held by itself, the fixed ciphertext sequence, and the random number data are input to calculate a sequence of values to be the transmission parameter sequence and a value to be the first result.
The secret calculation information exchange system according to any one of claims 1 to 3.
前記固定暗号文列は、
前記処理Aを担当する前記データ処理装置が
前記送信パラメータ列計算手段で計算する前記秘密データとなる可能性のある値とともに入力することである望まれる値の列にすることのできる前記乱数データを計算することを不可能にする暗号文列であること、
を特徴とする請求項4に記載の秘匿計算情報交換システム。
The fixed ciphertext string is
The random number data that can be converted into a sequence of desired values to be input together with a value that may be the secret data calculated by the transmission parameter sequence calculation means by the data processing device in charge of the processing A. A ciphertext string that makes it impossible to calculate,
The secret calculation information exchange system according to claim 4.
前記秘密データは、
複数のデータブロックで構成されるベクトルデータである、
ことを特徴とする請求項1乃至5のいずれか1項に記載の秘匿計算情報交換システム。
The secret data is
Vector data composed of a plurality of data blocks,
The secret calculation information exchange system according to any one of claims 1 to 5, wherein:
前記最終結果算出手段は、
自己の保有する前記秘密データに対応する前記ベクトルデータと前記処理Bを担当するデータ処理装置の保有する秘密データに対応する前記ベクトルデータの内積計算の結果を入力として適用したときの関数の出力と前記最終結果が等しいこと、
を特徴とする請求項6に記載の秘匿計算情報交換システム。
The final result calculation means includes
An output of a function when the result of the inner product calculation of the vector data corresponding to the secret data held by itself and the vector data corresponding to the secret data held by the data processing apparatus in charge of the process B is applied as an input; The final results are equal;
The secret calculation information exchange system according to claim 6.
前記最終結果算出手段は、
前記送信パラメータ列を自己の保有する暗号鍵で暗号化した送信パラメータ暗号文列を作成し、
前記部分結果算出手段は、
前記固定暗号文復号結果を自己の保有する暗号鍵で暗号化して他のデータ処理装置へ送信し、
処理Aを担当するデータ処理装置と処理Bを担当するデータ処理装置ともに計算結果を得ること、
を特徴とする請求項1乃至7のいずれか1項に記載の秘匿計算情報交換システム。
The final result calculation means includes
Create a transmission parameter ciphertext string by encrypting the transmission parameter string with its own encryption key,
The partial result calculation means includes:
The fixed ciphertext decryption result is encrypted with its own encryption key and sent to another data processing device,
Both the data processing device in charge of processing A and the data processing device in charge of processing B obtain calculation results,
The secret calculation information exchange system according to any one of claims 1 to 7.
他のデータ処理装置と連携してデータを処理するデータ処理装置であって、
前記データ処理装置はそれぞれ、
秘密データを記憶する秘密データ記憶手段と、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶手段と、
を有し、
前記データ処理装置は,処理Aか処理Bのどちらかを一方を担当し、
前記処理Aを担当する前記データ処理装置は、さらに、
自己の保有する前記秘密データと前記固定暗号文列を入力として値の列である送信パラメータ列と第1結果を計算する送信パラメータ列計算手段と、
他のデータ処理装置が生成する第2結果を取得し、前記第1結果と前記第2結果を統合し最終結果を算出する最終結果算出手段と、
を有し、
前記処理Bを担当する前記データ処理装置は、さらに、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号手段と、
他のデータ処理装置の前記送信パラメータ列計算手段により生成された前記送信パラメータ列と前記固定暗号文復号結果を入力として第2結果を算出する部分結果算出手段と、
を有し、
前記処理Aを担当する前記データ処理装置が記憶する前記固定暗号文列は、
前記処理Bを担当する前記データ処理装置が記憶する前記固定暗号文列と同一である、
ことを特徴とするデータ処理装置。
A data processing device that processes data in cooperation with other data processing devices,
Each of the data processing devices is
Secret data storage means for storing secret data;
Fixed ciphertext string storage means for storing a fixed ciphertext string that can be regarded as a ciphertext string;
Have
The data processor is responsible for either process A or process B,
The data processing apparatus in charge of the processing A is further
A transmission parameter sequence that is a sequence of values and the transmission parameter sequence calculation means for calculating a first result by using the secret data held by itself and the fixed ciphertext sequence as input;
A final result calculating means for acquiring a second result generated by another data processing apparatus, integrating the first result and the second result, and calculating a final result;
Have
The data processing apparatus in charge of the processing B is further
Fixed ciphertext decryption means for decrypting a fixed ciphertext string with a decryption key from the secret data held by itself and the fixed ciphertext string, and generating a fixed ciphertext decryption result;
Partial result calculation means for calculating a second result by using the transmission parameter string generated by the transmission parameter string calculation means of the other data processing device and the fixed ciphertext decryption result as inputs;
Have
The fixed ciphertext string stored in the data processing apparatus in charge of the processing A is:
It is the same as the fixed ciphertext string stored in the data processing device in charge of the processing B.
A data processing apparatus.
他のデータ処理装置と連携してデータを処理するデータ処理装置によって使用される秘匿計算情報交換方法であって、
秘密データを記憶する秘密データ記憶ステップと、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶ステップと、
を有し、
前記処理Aを担当する前記データ処理装置によって使用される前記秘匿計算情報交換方法は、さらに、
自己の保有する前記秘密データと前記固定暗号文列を入力として値の列である送信パラメータ列と第1結果を計算する送信パラメータ列計算ステップと、
他のデータ処理装置が生成する第2結果を取得し、前記第1結果と前記第2結果を統合し最終結果を算出する最終結果算出ステップと、
を有し、
前記処理Bを担当する前記データ処理装置によって使用される前記秘匿情報交換方法は、さらに、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号ステップと、
他のデータ処理装置の前記送信パラメータ列計算手段により生成された前記送信パラメータ列と前記固定暗号文復号結果を入力として第2結果を算出する部分結果算出ステップと、
を有し、
前記処理Aを担当する前記データ処理装置が記憶する前記固定暗号文列は、
前記処理Bを担当する前記データ処理装置が記憶する前記固定暗号文列と同一である、
ことを特徴とする秘匿計算情報交換方法。
A secret calculation information exchange method used by a data processing device that processes data in cooperation with another data processing device,
A secret data storage step for storing secret data;
A fixed ciphertext storage step for storing a fixed ciphertext string that can be regarded as a ciphertext string;
Have
The method for exchanging confidential calculation information used by the data processing apparatus in charge of the processing A,
A transmission parameter sequence that is a sequence of values with the secret data and the fixed ciphertext sequence held by itself as input and a transmission parameter sequence calculation step of calculating a first result;
A final result calculation step of acquiring a second result generated by another data processing apparatus, integrating the first result and the second result, and calculating a final result;
Have
The confidential information exchanging method used by the data processing device in charge of the processing B is further,
A fixed ciphertext decryption step of decrypting a fixed ciphertext string with a decryption key from the secret data held by itself and the fixed ciphertext string, and generating a fixed ciphertext decryption result;
A partial result calculation step of calculating a second result by using the transmission parameter string generated by the transmission parameter string calculation means of the other data processing apparatus and the fixed ciphertext decryption result as inputs;
Have
The fixed ciphertext string stored in the data processing apparatus in charge of the processing A is:
It is the same as the fixed ciphertext string stored in the data processing device in charge of the processing B.
The secret calculation information exchange method characterized by the above-mentioned.
他のコンピュータと連携してデータを処理するコンピュータによって実行される秘匿計算情報交換プログラムであって、
秘密データを記憶する秘密データ記憶ステップと、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶ステップと、
を有し、
前記処理Aを担当する前記コンピュータによって使用される前記秘匿計算情報交換プログラムは、さらに、
自己の保有する前記秘密データと前記固定暗号文列を入力として値の列である送信パラメータ列と第1結果を計算する送信パラメータ列計算ステップと、
他のデータ処理装置が生成する第2結果を取得し、前記第1結果と前記第2結果を統合し最終結果を算出する最終結果算出ステップと、
を有し、
前記処理Bを担当する前記コンピュータによって使用される前記秘匿情報交換プログラムは、さらに、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号ステップと、
他のデータ処理装置の前記送信パラメータ列計算手段により生成された前記送信パラメータ列と前記固定暗号文復号結果を入力として第2結果を算出する部分結果算出ステップと、
を有し、
前記処理Aを担当する前記データ処理装置が記憶する前記固定暗号文列は、
前記処理Bを担当する前記データ処理装置が記憶する前記固定暗号文列と同一である、
ことを特徴とする秘匿計算情報交換プログラム。
A secret calculation information exchange program executed by a computer that processes data in cooperation with another computer,
A secret data storage step for storing secret data;
A fixed ciphertext storage step for storing a fixed ciphertext string that can be regarded as a ciphertext string;
Have
The secret calculation information exchange program used by the computer in charge of the processing A is further
A transmission parameter sequence that is a sequence of values with the secret data and the fixed ciphertext sequence held by itself as input and a transmission parameter sequence calculation step of calculating a first result;
A final result calculation step of acquiring a second result generated by another data processing apparatus, integrating the first result and the second result, and calculating a final result;
Have
The secret information exchange program used by the computer in charge of the processing B is further
A fixed ciphertext decryption step of decrypting a fixed ciphertext string with a decryption key from the secret data held by itself and the fixed ciphertext string, and generating a fixed ciphertext decryption result;
A partial result calculation step of calculating a second result by using the transmission parameter string generated by the transmission parameter string calculation means of the other data processing apparatus and the fixed ciphertext decryption result as inputs;
Have
The fixed ciphertext string stored in the data processing apparatus in charge of the processing A is:
It is the same as the fixed ciphertext string stored in the data processing device in charge of the processing B.
A secret computation information exchange program characterized by that.
請求項11に記載の情報交換プログラムが記録されていることを特徴とするコンピュータ読み取り可能な記録媒体。

A computer-readable recording medium on which the information exchange program according to claim 11 is recorded.

JP2014247667A 2014-12-08 2014-12-08 Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium Pending JP2016109891A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014247667A JP2016109891A (en) 2014-12-08 2014-12-08 Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014247667A JP2016109891A (en) 2014-12-08 2014-12-08 Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium

Publications (1)

Publication Number Publication Date
JP2016109891A true JP2016109891A (en) 2016-06-20

Family

ID=56124218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014247667A Pending JP2016109891A (en) 2014-12-08 2014-12-08 Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium

Country Status (1)

Country Link
JP (1) JP2016109891A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020016739A (en) * 2018-07-25 2020-01-30 公立大学法人広島市立大学 Security calculation conversion system, security calculation conversion method, and security calculation conversion program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020016739A (en) * 2018-07-25 2020-01-30 公立大学法人広島市立大学 Security calculation conversion system, security calculation conversion method, and security calculation conversion program
JP7219437B2 (en) 2018-07-25 2023-02-08 公立大学法人広島市立大学 Secure operation conversion system, secure operation conversion method, and secure operation conversion program

Similar Documents

Publication Publication Date Title
WO2012067214A1 (en) Information processing device, information processing method, and program
JP4849541B2 (en) Cross tabulation processing method, cross tabulation device, and program for concealing individual information
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
TW201448550A (en) Privacy-preserving ridge regression using masks
JP6556955B2 (en) Communication terminal, server device, program
US20180294951A1 (en) Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
EP2742644B1 (en) Encryption and decryption method
KR102143525B1 (en) Method for function encryption supporting set intersection operation and apparatus using the same
Erkin et al. Privacy enhanced recommender system
Erkin et al. Privacy-preserving content-based recommender system
KR20230141845A (en) Threshold key exchange
Krishnamoorthy et al. Implementation and management of cloud security for industry 4. O-data using hybrid elliptical curve cryptography
JP2017129644A (en) Secret calculation information exchanging system, data processor, secret calculation information exchanging method, secret calculation information exchanging program and recording medium
KR20220079522A (en) Methods and systems for encryption using geometric algebra and Hansel codes and isomorphic encryption systems
Carminati et al. Secure web service composition with untrusted broker
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
JP2016109891A (en) Secret calculation information exchange system, data processing device, secret calculation information exchange method, secret calculation information exchange program, and recording medium
Dhanaraj et al. Introduction to homomorphic encryption for financial cryptography
US7979712B2 (en) Network system, server and information terminal for list matching
JP3784055B2 (en) List matching method, network system, server and information terminal
Erkin et al. Privacy-preserving content-based recommendations through homomorphic encryption
US20160232553A1 (en) Apparatus and method for secure digital coupon verification
Alabi A review on information security of cloud based electronic health record
Nithin et al. XBMRSA: A new XML encryption algorithm
Kaur et al. Comparative Study Of Different Cryptoghraphic Algorithms.