JP5506705B2 - Secret matching system, secret matching device, secret matching method, secret matching program - Google Patents

Secret matching system, secret matching device, secret matching method, secret matching program Download PDF

Info

Publication number
JP5506705B2
JP5506705B2 JP2011012160A JP2011012160A JP5506705B2 JP 5506705 B2 JP5506705 B2 JP 5506705B2 JP 2011012160 A JP2011012160 A JP 2011012160A JP 2011012160 A JP2011012160 A JP 2011012160A JP 5506705 B2 JP5506705 B2 JP 5506705B2
Authority
JP
Japan
Prior art keywords
vector
secret
processing
records
secret matching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011012160A
Other languages
Japanese (ja)
Other versions
JP2012155018A (en
Inventor
浩気 濱田
浩司 千田
大 五十嵐
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011012160A priority Critical patent/JP5506705B2/en
Publication of JP2012155018A publication Critical patent/JP2012155018A/en
Application granted granted Critical
Publication of JP5506705B2 publication Critical patent/JP5506705B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号応用技術に関するものであり、特に入力データを明かすことなく関数計算を行う秘密マッチングシステム、秘密マッチング装置、秘密マッチング方法、秘密マッチングプログラムに関する。   The present invention relates to a cryptographic application technique, and more particularly to a secret matching system, a secret matching apparatus, a secret matching method, and a secret matching program that perform function calculation without revealing input data.

暗号化された数値を復元すること無く特定の演算結果を得る方法として、例えば非特許文献1の秘密計算と呼ばれる方法がある。非特許文献1の方法では、3つの秘密計算装置に数値の断片を分散させるという暗号化を行い、数値を復元すること無く、加減算、定数和、乗算、定数倍、論理演算(否定,論理積,論理和,排他的論理和)、データ形式変換(整数,二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。非特許文献2では、ソートの前後の値の対応を誰にも知られないように計算することを特徴とし、暗号化された複数のデータに対し、平文から計算される値でソートを行った結果の暗号文を計算する秘密ソート方法が提案されている。非特許文献2では、クイックソートなどの任意の比較ソートを、比較回数を増やすことなく秘密計算上で実現している。   As a method of obtaining a specific calculation result without restoring the encrypted numerical value, for example, there is a method called secret calculation in Non-Patent Document 1. In the method of Non-Patent Document 1, encryption is performed such that numerical fragments are distributed to three secret computing devices, and addition / subtraction, constant sum, multiplication, constant multiplication, logical operation (negative, logical product) are performed without restoring the numerical values. , Logical sum, exclusive logical sum), and data format conversion (integer, binary number) can be held in a state of being distributed to the three secret computing devices, that is, encrypted. Non-Patent Document 2 is characterized in that the correspondence between values before and after sorting is calculated so that no one knows, and a plurality of encrypted data are sorted by values calculated from plaintext. A secret sorting method for calculating the resulting ciphertext has been proposed. In Non-Patent Document 2, an arbitrary comparison sort such as a quick sort is realized on a secret calculation without increasing the number of comparisons.

千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考”, In CSS, 2010.Koji Senda, Hiroki Hamada, Igarashi Univ., Katsumi Takahashi, “Reconsideration of Lightweight Verifiable 3-Party Secret Function Calculation”, In CSS, 2010. 濱田浩気, 五十嵐大, 千田浩司, 高橋克巳, “3パーティ秘匿関数計算上のランダム置換プロトコル”, In CSS, 2010.Hiroki Hirota, Dai Igarashi, Koji Senda, Katsumi Takahashi, “Random replacement protocol for computing three-party secret functions”, In CSS, 2010.

通常、複数のレコードを有する表のレコードのソートを行う場合、レコードに含まれる要素は、ソートの計算に直接使われる要素(値)とソートの計算に直接使われない要素(値)の2種類に分けられる。例えば、各レコードが(年齢,性別,体重,年収)の4つ要素の組であり、体重に関して昇順にソートしたい場合、各レコードのうち年齢,性別,年収の要素はソートの計算には直接使われない。しかしながら、従来技術では、ソートなどでレコードの並び替えを行う場合に、ソートの計算に直接使われない要素(値)も含めて並び替えが行われており、計算効率が悪かった。また、秘密計算上のソートなどの処理では、情報を隠すためにソートの前後の対応を誰にも分からないように並び替えを行う必要がある。このため、ソートに必要のない要素をソートに必要な要素から切り離してしまうと、ソートが終わった後にもともと同じレコードであった要素同士を結びつけることができなかった。   Normally, when sorting records in a table with multiple records, there are two types of elements included in the records: elements (values) that are used directly in the calculation of sorts and elements (values) that are not used in the calculation of sorting It is divided into. For example, if each record is a set of four elements (age, gender, weight, annual income) and you want to sort in ascending order by weight, the age, gender, and annual income elements of each record are used directly in the calculation of the sort. I will not. However, in the prior art, when records are rearranged by sorting or the like, rearrangement is performed including elements (values) that are not directly used for calculation of sorting, and the calculation efficiency is poor. Further, in processing such as sorting in secret calculation, it is necessary to perform rearrangement so that no one knows the correspondence before and after sorting in order to hide information. For this reason, if an element that is not necessary for sorting is separated from an element that is necessary for sorting, elements that were originally the same record cannot be connected after the sorting is completed.

本発明は、各レコードが対応している2つ以上の表の中でソートに必要な要素を含む表だけで秘密計算によるソートを行った場合でも、ソートが終わった後にすべての表のレコード同士を結びつける技術を提供することを目的とする。   In the present invention, even when sorting by secret calculation is performed only on a table including elements necessary for sorting among two or more tables corresponding to each record, the records of all the tables are arranged after the sorting is completed. The purpose is to provide technology that connects the two.

本発明の秘密マッチングシステムは、3個以上の秘密マッチング装置で構成され、それぞれM個のレコードx1j,…,xMjからなりレコード同士が対応付けられているJ個の表[X],…,[X]に対して所定の処理が施された後の表[X1S],…,[XJS]から、対応付けられているレコードが同じ順番となるように表X1S,…,XJSのレコードを並び替えた表に対応する秘密分散された表を計算する。ここで、Mは2以上の整数、Jは2以上の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、前記所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は前記所定の処理後のベクトル[h]に対応するベクトル、[XjS]は前記所定の処理後の表[X]に対応する表とする。なお、上記のように所定の処理では、何個かの表に対しては何の処理も行わない場合もある。何の処理も行わなかった場合は、[XjS]=[X]である。 The secret matching system of the present invention is composed of three or more secret matching devices, each consisting of M records x 1j ,..., X Mj , and J tables [X 1 ], From the table [X 1S ],..., [X JS ] after the predetermined processing is applied to... [X J ], the tables X 1S,. , X Calculate a secret-distributed table corresponding to the table in which the JS records are rearranged. Here, M is an integer greater than or equal to 2, J is an integer greater than or equal to 2, i and j are integers greater than or equal to 1 and less than or equal to J, [] is a symbol indicating information in which information in parentheses is secretly shared for each element, Includes processing for rearranging records for at least one table, [h jS ] is a vector corresponding to the vector [h j ] after the predetermined processing, and [X jS ] is the predetermined A table corresponding to the table [X j ] after the above processing. Note that, as described above, in the predetermined processing, no processing may be performed on some tables. When no processing is performed, [X jS ] = [X j ].

本発明の秘密マッチングシステムは、対応用ベクトル生成手段、対応用ランダム置換手段、対応用ベクトル復号手段、対応用並び替え手段を備える。対応用ベクトル生成手段は、M個の異なる値を要素に持つベクトルhを生成し、ベクトルhの各要素を秘密分散してベクトル[h]を求め、ベクトル[h]をランダム置換してベクトル[h]を求める。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに、前記所定の処理を施しても対応が維持されるように対応付ける。対応用ランダム置換手段は、j=1〜Jについて、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求める。対応用ベクトル復号手段は、ベクトル[h1R],…,[hJR]を復号し、ベクトルh1R,…,hJRを求める。対応用並び替え手段は、レコードの順番を維持する表[XiR]以外の表[XjR](ただし、j=1,…,Jかつj≠i)のレコードをhjR=hiRとなるように並び替える。 The secret matching system of the present invention includes correspondence vector generation means, correspondence random replacement means, correspondence vector decoding means, and correspondence rearrangement means. Corresponding vector generation means generates a vector h a having M different values to the element, obtains the vector [h a] each element of the vector h a by secret sharing, randomly substituted vector [h a] To obtain the vector [h]. For j = 1 to J, correspondence is maintained even if each element of the same vector [h j ] as the vector [h] is subjected to the predetermined processing on each record of the table [X j ]. Associate. Corresponding for random substitution means, for j = 1 to J, Table [X jS] vector [h jS] and the records corresponding with the remains secure computing maintaining the random replacement, table [X jR which are randomly substituted ] And a vector [h jR ]. Corresponding for vector decoding unit, the vector [h 1R], ..., and decodes the [h JR] vector h 1R, ..., determine the h JR. The correspondence rearranging means sets h jR = h iR for the records in the table [X jR ] (where j = 1,..., J and j ≠ i) other than the table [X iR ] that maintains the record order. Rearrange as follows.

本発明の秘密マッチングシステムによれば、ソートなどを行う場合にデータ本体を動かすのではなくポインタを動かせばよいという、通常の計算機上ではよく使われるテクニックを秘密計算で実現できる。秘密計算上でソートを行う場合には、情報を隠す必要があるため、ソートの前後のデータ間の対応を誰にもわからないように処理がなされる。そのため、単純に表のレコードを分割して2つ以上の表を作ってしまうと、ソート後に対応するレコード同士のマッチングを行うことができなかった。本発明の秘密マッチングシステムでは、あらかじめ対応するレコード同士に目印となるデータをそれぞれ持たせておく。そして、ソートなどの処理が終わった後で、この目印を使うことで本来ならば途中で対応がわからなくなってしまう場合にも対応するレコード同士を結びつけることができる。このように、本発明の秘密マッチングシステムによれば、ソートに必要な部分だけでソートを行い、ソートが終わった後でその他の部分を移動させることができるようになるので、計算効率を改善できる。   According to the secret matching system of the present invention, it is possible to realize a technique frequently used on a normal computer by secret calculation, in which, when sorting or the like, it is only necessary to move the pointer instead of moving the data body. When sorting is performed on a secret calculation, since it is necessary to hide information, processing is performed so that no one knows the correspondence between data before and after sorting. Therefore, if the table records are simply divided to create two or more tables, the corresponding records cannot be matched after sorting. In the secret matching system of the present invention, data corresponding to marks are provided in advance between corresponding records. Then, after processing such as sorting is completed, corresponding records can be linked even if the correspondence is not known in the middle by using this mark. As described above, according to the secret matching system of the present invention, it is possible to sort only by a portion necessary for sorting and to move other portions after the sorting is completed, so that the calculation efficiency can be improved. .

実施例1の秘密マッチングシステムの機能構成例を示す図。1 is a diagram illustrating a functional configuration example of a secret matching system according to Embodiment 1. FIG. 実施例1の秘密マッチングシステムの処理フローを示す図。The figure which shows the processing flow of the secret matching system of Example 1. FIG. 実施例2の秘密マッチングシステムの機能構成例を示す図。FIG. 6 is a diagram illustrating a functional configuration example of a secret matching system according to a second embodiment. 実施例2の秘密マッチングシステムの処理フローを示す図。The figure which shows the processing flow of the secret matching system of Example 2. FIG. 実施例3の秘密マッチングシステムの機能構成例を示す図。FIG. 10 is a diagram illustrating a functional configuration example of a secret matching system according to a third embodiment. 実施例3の秘密マッチングシステムの処理フローを示す図。The figure which shows the processing flow of the secret matching system of Example 3. FIG. 本発明に利用できる秘密分散装置100の機能構成例を詳しく示した秘密マッチングシステムを示す図。It shows a secret matching system showing in detail an example of the functional configuration of a secret sharing apparatus 100 n which can be utilized in the present invention. ランダム置換の1つ目の処理フロー例を示す図。The figure which shows the example of the 1st process flow of random substitution. ランダム置換の2つ目の処理フロー例を示す図。The figure which shows the 2nd processing flow example of random substitution.

以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。   Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the structure part which has the same function, and duplication description is abbreviate | omitted.

図1に実施例1の秘密マッチングシステムの機能構成例を示す。図2に実施例1の秘密マッチングシステムの処理フローを示す。実施例1の秘密マッチングシステムは、ネットワーク1000を介して接続されたN個の秘密マッチング装置10,…,10で構成される。そして、実施例1の秘密マッチングシステムは、それぞれM個のレコードx1j,…,xMjからなりレコード同士が対応付けられているJ個の表[X],…,[X]に対して所定の処理が施された後の表[X1S],…,[XJS]から、対応付けられているレコードが同じ順番となるように表X1S,…,XJSのレコードを並び替えた表に対応する秘密分散された表を計算する。ここで、Mは2以上の整数、Nは3以上の整数、Jは2以上の整数、nは1以上N以下の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は所定の処理後のベクトル[h]に対応するベクトル、[XjS]は所定の処理後の表[X]に対応する表とする。なお、上記のように所定の処理では、何個かの表に対しては何の処理も行わない場合もある。何の処理も行わなかった場合は、[XjS]=[X]である。 FIG. 1 shows a functional configuration example of the secret matching system according to the first embodiment. FIG. 2 shows a processing flow of the secret matching system of the first embodiment. The secret matching system according to the first embodiment includes N secret matching devices 10 1 ,..., 10 N connected via a network 1000. Then, the secret matching system of the first embodiment, M-number of records x 1j, respectively, ..., J-number of table records together consist x Mj is associated [X 1], ..., with respect to [X J] The tables X 1S ,..., X JS are rearranged from the tables [X 1S ],..., [X JS ] after the predetermined processing is performed so that the associated records are in the same order. Calculate the secret-distributed table corresponding to the table. Here, M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, J is an integer greater than or equal to 2, n is an integer greater than or equal to 1 and less than or equal to N, i and j are integers greater than or equal to 1 and less than or equal to J, and [] are parentheses. Symbol indicating information in which information is secretly distributed for each element, predetermined processing includes processing for rearranging records for at least one table, [h jS ] is a vector [h jS after predetermined processing vector corresponding to j], and the table corresponding to [X jS] Table after predetermined processing [X j]. Note that, as described above, in the predetermined processing, no processing may be performed on some tables. When no processing is performed, [X jS ] = [X j ].

秘密マッチング装置10は、マッチング制御部300、秘密分散装置100、記録部190を備える。秘密分散装置100は、マッチング制御部300の指示にしたがって実施例1の処理に必要な個々の秘密計算を行う。本発明の処理に必要な個々の秘密計算としては、秘密分散、復号、ランダム置換などがある。ただし、本発明は、これらの秘密計算を利用して効率よくソートを行うものであり、秘密計算自体に特徴がある発明ではない。そこで、秘密計算については、例を後述することとし、本発明のポイントを理解しやすくするためにここでの説明は省略する。なお、後述する秘密計算の方法は、1つの例であり、本発明が利用できる秘密計算を限定するものではない。記録部190は、秘密マッチング装置10の処理に必要な情報を記録する構成部である。図1に示した選択手段105は後述する秘密計算では利用するが、利用する秘密計算によっては備えなくてもよい。 The secret matching device 10 n includes a matching control unit 300 n , a secret sharing device 100 n , and a recording unit 190 n . The secret sharing apparatus 100 n performs individual secret calculations necessary for the processing of the first embodiment in accordance with instructions from the matching control unit 300 n . Individual secret calculations required for the processing of the present invention include secret sharing, decryption, and random replacement. However, the present invention efficiently sorts using these secret calculations, and is not an invention characterized by the secret calculation itself. Therefore, an example of the secret calculation will be described later, and a description thereof will be omitted to facilitate understanding of the points of the present invention. Note that the secret calculation method described below is an example, and does not limit the secret calculation that can be used by the present invention. The recording unit 190 n is a component that records information necessary for processing of the secret matching device 10 n . The selection means 105 shown in FIG. 1 is used in the secret calculation described later, but may not be provided depending on the secret calculation to be used.

各秘密マッチング装置10のマッチング制御部300は、対応用ベクトル生成部310、対応用ランダム置換部320、対応用ベクトル復号部330、対応用並び替え部340を備える。そして、秘密マッチングシステムの対応用ベクトル生成手段310(図示していない)は対応用ベクトル生成部310,…,310で構成され、対応用ランダム置換手段320(図示していない)は対応用ランダム置換部320,…,320で構成され、対応用ベクトル復号手段330(図示していない)は対応用ベクトル復号部330,…,330で構成され、対応用並び替え手段340(図示していない)は対応用並び替え部340,…,340で構成される。 The matching control unit 300 n of each secret matching device 10 n includes a correspondence vector generation unit 310 n , a correspondence random replacement unit 320 n , a correspondence vector decoding unit 330 n , and a correspondence rearrangement unit 340 n . And the corresponding vector generation means 310 (not shown) of the secret matching system is constituted by the corresponding vector generation units 310 1 ,..., 310 N , and the corresponding random replacement means 320 (not shown) random permutation unit 320 1, ..., 320 is composed of N, corresponding for vector decoding unit 330 (not shown) corresponding for vector decoding unit 330 1, ..., it is composed of 330 N, corresponding for rearranging unit 340 ( (Not shown) is composed of correspondence rearranging units 340 1 ,..., 340 N.

対応用ベクトル生成手段310は、M個の異なる値を要素に持つベクトルhを生成し、ベクトルhの各要素を秘密分散してベクトル[h]を求め、ベクトル[h]をランダム置換してベクトル[h]を求める。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに、所定の処理を施しても対応が維持されるように対応付ける(S310)。より具体的には、対応用ベクトル生成部310,…,310(対応用ベクトル生成手段310)は、M個の異なる値を要素に持つベクトルhを生成し、秘密分散装置100,…,100にベクトルhの各要素を秘密分散させてベクトル[h]を求めさせ、ベクトル[h]をランダム置換させてベクトル[h]を求めさせる。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに対応付ける。 Corresponding vector generation unit 310 generates a vector h a having M different values to the element, obtains the vector [h a] each element of the vector h a by secret sharing, random vector [h a] The vector [h] is obtained by replacement. For j = 1 to J , each element of the same vector [h j ] as the vector [h] is associated with each record of the table [X j ] so that the correspondence is maintained even if a predetermined process is performed. (S310). More specifically, the corresponding vector generation unit 310 1, ..., 310 N (corresponding vector generation means 310) generates the vector h a having M different values to the elements, the secret sharing apparatus 100 1, .., 100 N , each element of the vector h a is secretly distributed to obtain the vector [h a ], and the vector [h a ] is randomly replaced to obtain the vector [h]. Then, for j = 1 to J , each element of the same vector [h j ] as that of the vector [h] is associated with each record of the table [X j ].

次に、ソートのようなレコードの順番が変わる可能性がある所定の処理を、表[X],…,[X]一部または全部に対して実行し、処理後の表[X1S],…,[XJS]を得る(S315)。したがって、表[X1S],…,[XJS]では、もともと対応していたレコード同士が異なる順番となっている可能性がある。 Next, predetermined processing that may change the order of records such as sorting is performed on a part or all of the table [X 1 ],..., [X J ], and the processed table [X 1S ], [ XJS ] are obtained (S315). Therefore, in the table [X 1S ],..., [X JS ], there is a possibility that the records that originally corresponded are in different orders.

なお、ステップS315の所定の処理は、後述の秘密計算の四則演算や秘密計算の論理演算を組み合わせればよい。例えば、x=yかを秘密計算で確認する場合には、従来技術として蓄積された論理回路の技術を用いれば、実現できる。例えば、xとyを2ビット展開した各ビットの排他的論理和の論理和の否定によって次のように確認してもよい。   Note that the predetermined processing in step S315 may be performed by combining the following four arithmetic operations for secret calculation and logical operations for secret calculation. For example, if x = y is confirmed by a secret calculation, it can be realized by using a logic circuit technique stored as a conventional technique. For example, you may confirm as follows by negation of the logical sum of the exclusive OR of each bit which expanded x and y 2 bits.

C=1−{(x[∨]y)∨・・・∨(x[∨]y)} (1)
ただし、[∨]は排他的論理和(XOR)を示す記号、∨は論理和(OR)を示す記号、xは2ビット展開したときのxの下からbビット目の値、yは2ビット展開したときのyの下からbビット目の値、Bは2ビット展開したときのxとyの桁数とする。式(1)では、C=1ならばx=y(真)、C=0ならばx≠y(偽)である。また、式(1)の個々の演算は後述の秘密計算の例に示されているので、式(1)の演算は秘密計算で実行でき、秘密分散された[C]が求められる。したがって、確認後の分岐も秘密にするのであれば、[C]を用いた秘密計算をさらに組合せればよい。なお、後述する秘密計算は、数値の秘密分散、秘密分散された断片の復号、秘密分散された数値の四則計算、秘密分散されたビットごとの論理演算の基本的な計算方法を網羅して示している。したがって、従来技術として蓄積された論理回路の技術を用いれば、上述の等しいことを確認する方法のように、所望の演算を後述する秘密計算の方法の組合せで実行できる。
C = 1 - {(x B [∨] y B) ∨ ··· ∨ (x 1 [∨] y 1)} (1)
However, [∨] is a symbol indicating an exclusive OR (XOR), ∨ symbols indicating the logical sum (OR), x b is b-th bit value from the bottom of x when the 2-bit expansion, y b is The value of the b bit from the bottom of y when 2-bit expansion is performed, and B is the number of digits of x and y when 2-bit expansion is performed. In Expression (1), if C = 1, x = y (true), and if C = 0, x ≠ y (false). In addition, since each calculation of Expression (1) is shown in an example of secret calculation described later, the calculation of Expression (1) can be executed by secret calculation, and secret-distributed [C] is obtained. Therefore, if the branch after confirmation is also kept secret, the secret calculation using [C] may be further combined. Note that the secret calculation described later covers the basic calculation methods for secret sharing of numerical values, decryption of secret-distributed fragments, four arithmetic operations of secret-distributed numerical values, and logical operations for each secret-distributed bit. ing. Therefore, if the logic circuit technique accumulated as the conventional technique is used, a desired calculation can be executed by a combination of secret calculation methods to be described later, like the above-described method of confirming equality.

対応用ランダム置換手段320は、j=1〜Jについて、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求める(S320)。より具体的には、対応用ランダム置換部320,…,320(対応用ランダム置換手段320)は、j=1〜Jについて、表[XjS]の各レコードとベクトル[hjS]の各要素に対して同一の全単射によるランダム置換を秘密分散装置100,…,100に実行させ、ランダム置換された表[XjR]とベクトル[hjR]とを求める。 Corresponding random replacement means 320 performs random replacement between records by secret calculation while maintaining the correspondence between table [X jS ] and vector [h jS ] for j = 1 to J, and randomly replaces the table [X jR ] and the vector [h jR ] are obtained (S320). More specifically, the corresponding random replacement unit 320 1 ,..., 320 N (corresponding random replacement means 320) is configured to store each record of the table [X jS ] and the vector [h jS ] for j = 1 to J. The secret sharing apparatus 100 1 ,..., 100 N performs random replacement by the same bijection for each element, and obtains the randomly replaced table [X jR ] and vector [h jR ].

対応用ベクトル復号手段330は、ベクトル[h1R],…,[hJR]を復号し、ベクトルh1R,…,hJRを求める(S330)。より具体的には、対応用ベクトル復号部330,…,330(対応用ベクトル復号手段330)は、秘密分散装置100,…,100にベクトル[h1R],…,[hJR]を復号させ、ベクトルh1R,…,hJRを求める。 The corresponding vector decoding means 330 decodes the vectors [h 1R ],..., [H JR ] to obtain the vectors h 1R ,..., H JR (S330). More specifically, the corresponding vector decryption units 330 1 ,..., 330 N (corresponding vector decryption means 330) apply the vectors [h 1R ],..., [H JR to the secret sharing apparatuses 100 1 ,. ] To obtain vectors h 1R ,..., H JR .

対応用並び替え手段340は、すべてのjとiの組合せに対してhjR=hiRとなるように表[XjR]のレコードを並び替える(S340)。より具体的には、対応用並び替え部340,…,340(対応用並び替え手段340)は、レコードの順番を維持する表[XiR]を特定する。そして、表[XiR]以外の表[XjR](ただし、j=1,…,Jかつj≠i)のレコードをhjR=hiRとなるように並び替えればよい。 The correspondence rearranging means 340 rearranges the records in the table [X jR ] so that h jR = h iR for all combinations of j and i (S340). More specifically, the correspondence sorting unit 340 1 ,..., 340 N (corresponding sorting means 340) specifies a table [X iR ] that maintains the record order. Then, the records in the table [X jR ] (where j = 1,..., J and j ≠ i) other than the table [X iR ] may be rearranged so that h jR = h iR .

本実施例の秘密マッチングシステムでは、あらかじめ対応するレコード同士に目印となるデータとしてベクトル[h]をそれぞれのレコードに対応付けている。そして、ソートなどの処理が終わった後で、この目印を使うことで本来ならば途中で対応がわからなくなってしまう場合にも対応するレコード同士を結びつけることができる。このように、本実施例の秘密マッチングシステムによれば、ソートに必要な部分だけでソートを行い、ソートが終わった後でその他の部分を移動させることができるようになるので、計算効率を改善できる。 In the secret matching system of the present embodiment, a vector [h j ] is associated with each record as data serving as a mark between corresponding records in advance. Then, after processing such as sorting is completed, corresponding records can be linked even if the correspondence is not known in the middle by using this mark. As described above, according to the secret matching system of the present embodiment, it is possible to sort only by a portion necessary for sorting and to move other portions after the sorting is completed, thereby improving calculation efficiency. it can.

図3に実施例2の秘密マッチングシステムの機能構成例を示す。図4に実施例2の秘密マッチングシステムの処理フローを示す。実施例2の秘密マッチングシステムは、ネットワーク1000を介して接続されたN個の秘密マッチング装置20,…,20で構成される。そして、実施例2の秘密マッチングシステムは、M個のレコードを持つ表[X]の各レコードの一部または全部の要素を用いてソートを行う。また、表[X]に対しては何も行わない。ここで、Mは2以上の整数、Nは3以上の整数、J=2、nは1以上N以下の整数、jは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号とする。 FIG. 3 shows a functional configuration example of the secret matching system according to the second embodiment. FIG. 4 shows a processing flow of the secret matching system according to the second embodiment. The secret matching system according to the second embodiment includes N secret matching devices 20 1 ,..., 20 N connected via a network 1000. The secret matching system according to the second embodiment sorts using some or all elements of each record of the table [X 1 ] having M records. Also, nothing is performed on the table [X 2 ]. Here, M is an integer of 2 or more, N is an integer of 3 or more, J = 2, n is an integer of 1 to N, j is an integer of 1 to J, and [] is information in parentheses for each element. It is a symbol indicating information that is secretly shared.

秘密マッチング装置20は、マッチング制御部400、秘密分散装置100、記録部190を備える。秘密分散装置100は、マッチング制御部400の指示にしたがって実施例2の処理に必要な個々の秘密計算を行う。ただし、本発明は、これらの秘密計算を利用して効率よくソートを行うものであり、秘密計算自体に特徴がある発明ではないので、秘密計算については、例を後述することとし、本実施例での説明は省略する。 The secret matching device 20 n includes a matching control unit 400 n , a secret sharing device 100 n , and a recording unit 190 n . The secret sharing apparatus 100 n performs individual secret calculations necessary for the processing of the second embodiment in accordance with instructions from the matching control unit 400 n . However, since the present invention efficiently sorts using these secret calculations and is not an invention characterized by the secret calculation itself, the secret calculation will be described later with reference to an example. The description in is omitted.

各秘密マッチング装置20のマッチング制御部400は、対応用ベクトル生成部310、対応用ランダム置換部320、対応用ベクトル復号部330、対応用並び替え部340、表分割部405、ベクトル結合部450、表結合部460、表ランダム置換部470、ソート用ベクトル復号部480、ソート部490を備える。そして、秘密マッチングシステムの対応用ベクトル生成手段310(図示していない)は対応用ベクトル生成部310,…,310で構成され、対応用ランダム置換手段320(図示していない)は対応用ランダム置換部320,…,320で構成され、対応用ベクトル復号手段330(図示していない)は対応用ベクトル復号部330,…,330で構成され、対応用並び替え手段340(図示していない)は対応用並び替え部340,…,340で構成され、表分割手段405(図示していない)は表分割部405,…,405で構成され、ベクトル結合手段450(図示していない)はベクトル結合部450,…,450で構成され、表結合手段460(図示していない)は表結合部460,…,460で構成され、表ランダム置換手段470(図示していない)は表ランダム置換部470,…,470で構成され、ソート用ベクトル復号手段480(図示していない)はソート用ベクトル復号部480,…,480で構成され、ソート手段490(図示していない)はソート部490,…,490で構成される。 The matching control unit 400 n of each secret matching device 20 n includes a corresponding vector generation unit 310 n , a corresponding random replacement unit 320 n , a corresponding vector decoding unit 330 n , a corresponding rearrangement unit 340 n , and a table division unit 405. n , a vector combination unit 450 n , a table combination unit 460 n , a table random replacement unit 470 n , a sorting vector decoding unit 480 n , and a sort unit 490 n . And the corresponding vector generation means 310 (not shown) of the secret matching system is constituted by the corresponding vector generation units 310 1 ,..., 310 N , and the corresponding random replacement means 320 (not shown) random permutation unit 320 1, ..., 320 is composed of N, corresponding for vector decoding unit 330 (not shown) corresponding for vector decoding unit 330 1, ..., it is composed of 330 N, corresponding for rearranging unit 340 ( illustrated not) corresponding for rearranging unit 340 1, ..., is composed of 340 N, the table division means 405 (not shown) which consists of a table division unit 405 1, ..., 405 N, a vector connecting means 450 (not shown) is the vector combining unit 450 1, ..., is composed of 450 N, the table coupling means 460 (not shown) Table coupling portion 460 1 ..., is composed of 460 N, Table random permutation unit 470 (not shown) Table random permutation unit 470 1, ..., 470 is composed of N, (not shown) for sorting vector decoding unit 480 for sorting vector decoding unit 480 1, ..., it is composed of 480 N, sorting means 490 (not shown) sorting unit 490 1, ..., and a 490 N.

表分割手段405は、表[X]を、表[X]と表[X]に、表[X]が少なくとも所定の処理に用いる要素を含むように分割する(S405)。より具体的には、表分割部405,…,405(表分割手段405)は、秘密分散装置100,…,100に、表[X]を、それぞれM個のレコードx1j,…,xMjからなりレコード同士が対応付けられている表[X]と表[X]に分割させる。 The table dividing unit 405 divides the table [X] into the table [X 1 ] and the table [X 2 ] so that the table [X 1 ] includes at least elements used for predetermined processing (S405). More specifically, the table partitioning unit 405 1 ,..., 405 N (table partitioning unit 405) stores the table [X] in the secret sharing apparatuses 100 1 ,..., 100 N and M records x 1j , .., X Mj is divided into a table [X 1 ] and a table [X 2 ] in which records are associated with each other.

対応用ベクトル生成手段310は、M個の異なる値を要素に持つベクトルhを生成し、ベクトルhの各要素を秘密分散してベクトル[h]を求め、ベクトル[h]をランダム置換してベクトル[h]を求める。そして、j=1,2について、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに、所定の処理を施しても対応が維持されるように対応付ける(S310)。より具体的には、対応用ベクトル生成部310,…,310(対応用ベクトル生成手段310)は、M個の異なる値を要素に持つベクトルhを生成し、秘密分散装置100,…,100にベクトルhの各要素を秘密分散させてベクトル[h]を求めさせ、ベクトル[h]をランダム置換させてベクトル[h]を求めさせる。そして、j=1,2について、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに対応付ける。 Corresponding vector generation unit 310 generates a vector h a having M different values to the element, obtains the vector [h a] each element of the vector h a by secret sharing, random vector [h a] The vector [h] is obtained by replacement. For j = 1, 2, each element of the same vector [h j ] as that of the vector [h] is associated with each record of the table [X j ] so that the correspondence is maintained even if a predetermined process is performed. (S310). More specifically, the corresponding vector generation unit 310 1, ..., 310 N (corresponding vector generation means 310) generates the vector h a having M different values to the elements, the secret sharing apparatus 100 1, .., 100 N , each element of the vector h a is secretly distributed to obtain the vector [h a ], and the vector [h a ] is randomly replaced to obtain the vector [h]. Then, for j = 1, 2, each element of the same vector [h j ] as the vector [h] is associated with each record of the table [X j ].

次に、レコードの順番が変わる可能性がある所定の処理を、表[X]に対して実行し、処理後の表[X1S]と表[X2S]を得る(S315)。なお、表[X]はソートには関係ない要素のみからなる表なので、ソートは実行されない。したがって、表[X1S]と表[X2S]のレコードの順番は異なる可能性がある。 Then, a predetermined process that could order the record changes, run against the table [X 1], the table after processing [X 1S] and obtain a table [X 2S] (S315). Note that since the table [X 2 ] is a table composed of only elements not related to sorting, the sorting is not executed. Therefore, the order of the records in the table [X 1S ] and the table [X 2S ] may be different.

ベクトル結合手段450は、異なる値を持つM個の要素からなるベクトルcを作成し、各要素を秘密分散してベクトル[c]を求め、所定の処理の後に、ベクトル[c]の各要素を表[X1S]の各レコードに対応が維持されるように対応付ける(S450)。より具体的には、ベクトル結合部450,…,450(ベクトル結合手段450)は、異なる値を持つM個の要素からなるベクトルcを作成し、秘密分散装置100,…,100に各要素を秘密分散してベクトル[c]を求めさせる。そして、所定の処理(例えば、表[X]は特定の要素に基づいてソートし、表[X]に対しては何もしないという処理)の後に、ベクトル[c]の各要素を表[X1S]の各レコードに対応が維持されるように対応付けさせる。なお、ベクトルcの各要素は、表の各レコードの順番を示すための値であり、例えば1からMの値を用いればよい。しかし、1からMの値に限定する必要はない。また、表[X]に対しては何も行っていないので、[X2S]=[X]である。 The vector combining unit 450 creates a vector c composed of M elements having different values, secretly distributes each element to obtain a vector [c], and after a predetermined process, converts each element of the vector [c] Corresponding to each record of the table [X 1S ], the correspondence is maintained (S450). More specifically, the vector combination units 450 1 ,..., 450 N (vector combination means 450) create a vector c composed of M elements having different values, and secret sharing apparatuses 100 1 ,. The vector [c] is obtained by secretly sharing each element. Then, after predetermined processing (for example, processing that the table [X 1 ] is sorted based on specific elements and nothing is performed on the table [X 2 ]), each element of the vector [c] is displayed. [X 1S ] is associated with each record so that the correspondence is maintained. Each element of the vector c is a value for indicating the order of each record in the table. For example, a value from 1 to M may be used. However, it is not necessary to limit the value from 1 to M. In addition, since nothing is performed on the table [X 2 ], [X 2S ] = [X 2 ].

対応用ランダム置換手段320は、j=1,2について、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求める(S320)。より具体的には、対応用ランダム置換部320,…,320(対応用ランダム置換手段320)は、j=1,2について、表[XjS]の各レコードとベクトル[hjS]の各要素に対して同一の全単射によるランダム置換を秘密分散装置100,…,100に実行させ、ランダム置換された表[XjR]とベクトル[hjR]とを求める。 The correspondence random replacement means 320 performs random replacement between records by secret calculation while maintaining the correspondence between the table [X jS ] and the vector [h jS ] for j = 1, 2, and the randomly replaced table [X jR ] and the vector [h jR ] are obtained (S320). More specifically, the corresponding random replacement unit 320 1 ,..., 320 N (corresponding random replacement means 320) is configured to store each record of the table [X jS ] and the vector [h jS ] for j = 1, 2. The secret sharing apparatus 100 1 ,..., 100 N performs random replacement by the same bijection for each element, and obtains the randomly replaced table [X jR ] and vector [h jR ].

対応用ベクトル復号手段330は、ベクトル[h1R],[h2R]を復号し、ベクトルh1R,h2Rを求める(S330)。より具体的には、対応用ベクトル復号部330,…,330(対応用ベクトル復号手段330)は、秘密分散装置100,…,100にベクトル[h1R],[h2R]を復号させ、ベクトルh1R,h2Rを求める。 The corresponding vector decoding means 330 decodes the vectors [h 1R ] and [h 2R ] to obtain the vectors h 1R and h 2R (S330). More specifically, the corresponding vector decryption units 330 1 ,..., 330 N (corresponding vector decryption means 330) assign the vectors [h 1R ], [h 2R ] to the secret sharing apparatuses 100 1 ,. Decoding is performed to obtain vectors h 1R and h 2R .

対応用並び替え手段340は、表[X2R]のレコードをh2R=h1Rとなるように並び替える(S340)。より具体的には、対応用並び替え部340,…,340(対応用並び替え手段340)は、表[X1R]以外の表[X2R]のレコードをh2R=h1Rとなるように並び替える。 The correspondence rearranging means 340 rearranges the records in the table [X 2R ] so that h 2R = h 1R (S340). More specifically, the correspondence rearrangement unit 340 1 ,..., 340 N (correspondence rearrangement means 340) sets the records in the table [X 2R ] other than the table [X 1R ] to h 2R = h 1R. Rearrange as follows.

表結合手段460は、表[X1R],[X2R]を結合して表[X]を得る(S460)。より具体的には、表結合部460,…,460(表結合手段460)は、表[X1R],[X2R]へのベクトル[h1R],[h2R]の対応付けを解除し、表[X1R],[X2R]を結合して表[X]を得る。 The table combining unit 460 combines the tables [X 1R ] and [X 2R ] to obtain the table [X R ] (S460). More specifically, the table coupling units 460 1 ,..., 460 N (table coupling unit 460) associate the vectors [h 1R ] and [h 2R ] with the tables [X 1R ] and [X 2R ]. The table [X 1R ] and [X 2R ] are combined to obtain the table [X R ].

表ランダム置換手段470は、表[X]のレコード間を秘密計算でランダム置換し、表[XRR]を求める(S470)。より具体的には、表ランダム置換部470,…,470(表ランダム置換手段470)は、秘密分散装置100,…,100に表[X]のレコード間を秘密計算でランダム置換させ、表[XRR]を求めさせる。 The table random replacement means 470 randomly replaces the records in the table [X R ] by secret calculation to obtain the table [X RR ] (S470). More specifically, Table random permutation unit 470 1, ..., 470 N (Table random replacement unit 470), the random secret sharing apparatus 100 1, ..., to 100 N through the records in the table [X R] in secure computing Substitution is made to obtain the table [X RR ].

ソート用ベクトル復号手段480は、表[X1S]に対応付けされたベクトル[c]の表ランダム置換手段470の処理後のベクトル[cRR]を復号し、ベクトルcRRを求める(S480)。より具体的には、表[X1S]に対応付けされたベクトル[c]は、表ランダム置換手段470の処理によってランダム置換されベクトル[cRR]となっている。ソート用ベクトル復号部480,…,480(ソート用ベクトル復号手段480)は、このベクトル[cRR]と表[XRR]との対応付けを解除して、秘密分散装置100,…,100にベクトル[cRR]を復号させ、ベクトルcRRを求める。 The sorting vector decoding unit 480 decodes the vector [c RR ] after the processing by the table random replacement unit 470 of the vector [c] associated with the table [X 1S ] to obtain the vector c RR (S480). More specifically, the vector [c] associated with the table [X 1S ] is randomly replaced by the processing of the table random replacement means 470 to become a vector [c RR ]. The sorting vector decoding units 480 1 ,..., 480 N (sorting vector decoding means 480) cancel the association between the vector [c RR ] and the table [X RR ], and the secret sharing apparatus 100 1 ,. , 100 N decode the vector [c RR ] to obtain the vector c RR .

ソート手段490は、ベクトルcRRの各要素がベクトルcの各要素と一致するように、表[XRR]の各レコードを移動する(S490)。例えば、ベクトルcが1からMまで順番に並んだベクトルであれば、ソート手段(S490)は、ベクトルcRRの各要素に示された順番に、表[XRR]の各レコードを移動すればよい(S490)。 The sorting means 490 moves each record of the table [X RR ] so that each element of the vector c RR matches each element of the vector c (S490). For example, if the vector c is a vector arranged in order from 1 to M, the sorting means (S490) moves the records of the table [X RR ] in the order indicated by the elements of the vector c RR. Good (S490).

本実施例の秘密マッチングシステムも、あらかじめ対応するレコード同士に目印となるデータとしてベクトル[h]をそれぞれのレコードに対応付けている。そして、ソートなどの処理が終わった後で、この目印を使うことで本来ならば途中で対応がわからなくなってしまう場合にも対応するレコード同士を結びつけることができる。また、所定の処理(ソートのようにレコードの順番が変わる可能性のある処理)の前に、所定の処理に必要な要素を含む表[X]と所定の処理に必要ない要素からなる表[X]に表[X]を分割した上で、表[X]に対してのみ所定の処理を行い、所定の処理が終わった後で表[X]を結合し、所定の処理後の順番にレコードの順番を戻すので、計算効率を改善できる。 The secret matching system of the present embodiment also associates a vector [h j ] with each record as data that serves as a mark between corresponding records in advance. Then, after processing such as sorting is completed, corresponding records can be linked even if the correspondence is not known in the middle by using this mark. Further, before a predetermined process (a process in which the order of records may be changed like sort), a table [X 1 ] including elements necessary for the predetermined process and a table including elements not required for the predetermined process The table [X] is divided into [X 2 ], the predetermined process is performed only on the table [X 1 ], and the table [X 2 ] is joined after the predetermined process is completed. Since the order of records is returned to the later order, the calculation efficiency can be improved.

図5に実施例3の秘密マッチングシステムの機能構成例を示す。図6に実施例3の秘密マッチングシステムの処理フローを示す。実施例3の秘密マッチングシステムは、ネットワーク1000を介して接続されたN個の秘密マッチング装置30,…,30で構成される。そして、実施例3の秘密マッチングシステムでは、所定の処理がB個の処理F,…,Fからなる。処理FはM個のレコードを持つ表[X],…,[X]の一部または全部用いる処理である。また、所定の処理は、処理Fごとに定められた処理であり、処理に用いる表も処理Fごとに決められる。ここで、Mは2以上の整数、Nは3以上の整数、Jは2以上の整数、nは1以上N以下の整数、iとjは1以上J以下の整数、Bは1以上の整数、bは1以上B以下の整数、Dは1以上J以下の整数、dは1以上D以下の整数、b(1),…,b(D)は1以上D以下の異なる整数、D’は1以上の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号とする。 FIG. 5 shows a functional configuration example of the secret matching system according to the third embodiment. FIG. 6 shows a processing flow of the secret matching system according to the third embodiment. The secret matching system according to the third embodiment includes N secret matching devices 30 1 ,..., 30 N connected via a network 1000. Then, in the secret matching system of Example 3, predetermined processing B number of process F 1, ..., consisting of F B. The process F b is a process that uses part or all of the table [X 1 ],..., [X J ] having M records. The predetermined process is a process determined for each process F b , and a table used for the process is also determined for each process F b . Here, M is an integer of 2 or more, N is an integer of 3 or more, J is an integer of 2 or more, n is an integer of 1 to N, i and j are integers of 1 to J, and B is an integer of 1 or more , B is an integer from 1 to B, D is an integer from 1 to J, d is an integer from 1 to D, b (1),..., B (D) are different integers from 1 to D, D ′ Is an integer of 1 or more, and [] is a symbol indicating information in which information in parentheses is secretly shared for each element.

秘密マッチング装置30は、マッチング制御部500、秘密分散装置100、記録部190を備える。秘密分散装置100は、マッチング制御部500の指示にしたがって実施例3の処理に必要な個々の秘密計算を行う。ただし、本発明は、これらの秘密計算を利用して効率よくソートを行うものであり、秘密計算自体に特徴がある発明ではないので、秘密計算については、例を後述することとし、本実施例での説明は省略する。 The secret matching device 30 n includes a matching control unit 500 n , a secret sharing device 100 n , and a recording unit 190 n . The secret sharing apparatus 100 n performs individual secret calculations necessary for the processing of the third embodiment in accordance with instructions from the matching control unit 500 n . However, since the present invention efficiently sorts using these secret calculations and is not an invention characterized by the secret calculation itself, the secret calculation will be described later with reference to an example. The description in is omitted.

各秘密マッチング装置30のマッチング制御部500は、対応用ベクトル生成部310、対応用ランダム置換部320、対応用ベクトル復号部330、対応用並び替え部340、表分割部505、処理用ランダム置換部520、処理用ベクトル復号部530、処理用並び替え部540、処理用ベクトル対応部550、処理部560、処理用繰返部570を備える。そして、秘密マッチングシステムの対応用ベクトル生成手段310(図示していない)は対応用ベクトル生成部310,…,310で構成され、対応用ランダム置換手段320(図示していない)は対応用ランダム置換部320,…,320で構成され、対応用ベクトル復号手段330(図示していない)は対応用ベクトル復号部330,…,330で構成され、対応用並び替え手段340(図示していない)は対応用並び替え部340,…,340で構成され、表分割手段505(図示していない)は表分割部505,…,505で構成され、処理用ランダム置換手段520(図示していない)は処理用ランダム置換部520,…,520で構成され、処理用ベクトル復号手段530(図示していない)は処理用ベクトル復号部530,…,530で構成され、処理用並び替え手段540(図示していない)は処理用並び替え部540,…,540で構成され、処理用ベクトル対応手段550(図示していない)は処理用ベクトル対応部550,…,550で構成され、処理手段560(図示していない)は処理部560,…,560で構成され、処理用繰返手段570(図示していない)は処理用繰返部570,…,570で構成される。 The matching control unit 500 n of each secret matching device 30 n includes a corresponding vector generation unit 310 n , a corresponding random replacement unit 320 n , a corresponding vector decoding unit 330 n , a corresponding rearrangement unit 340 n , and a table partitioning unit 505. n , a processing random replacement unit 520 n , a processing vector decoding unit 530 n , a processing rearranging unit 540 n , a processing vector corresponding unit 550 n , a processing unit 560 n , and a processing repeating unit 570 n . And the corresponding vector generation means 310 (not shown) of the secret matching system is constituted by the corresponding vector generation units 310 1 ,..., 310 N , and the corresponding random replacement means 320 (not shown) random permutation unit 320 1, ..., 320 is composed of N, corresponding for vector decoding unit 330 (not shown) corresponding for vector decoding unit 330 1, ..., it is composed of 330 N, corresponding for rearranging unit 340 ( illustrated not) corresponding for rearranging unit 340 1, ..., is composed of 340 N, the table division means 505 (not shown) table partitioning unit 505 1, ..., is composed of 505 N, a random for processing replacing means 520 (not shown) for processing random permutation unit 520 1, ..., is composed of 520 N, the processing vector decoding unit 530 (do not illustrated ) Is processing vector decoding unit 530 1, ..., is composed of 530 N, the processing rearranging unit 540 (not shown) processing rearranging unit 540 1, ..., is composed of 540 N, the processing vector corresponding means 550 (not shown) processing vector corresponding unit 550 1, ..., is composed of 550 N, the processing means 560 (not shown) processing unit 560 1, ..., is composed of 560 N, the processing use repetition unit 570 (not shown) processing repeat unit 570 1, ..., and a 570 N.

表分割手段505は、表[X]をJ個に分割して前記の表[X],…,[X]を求める(S505)。より具体的には、表分割部505,…,505(表分割手段505)は、表[X]を、それぞれM個のレコードx1j,…,xMjからなりレコード同士が対応付けられているJ個の表[X],…,[X]に分割する。これらの表[X],…,[X]が実施例1の表[X],…,[X]と同じである。なお、表分割手段505は、ベクトルc=(1,2,…,M)(ただし、ここでのTは転置を示す)の各要素を秘密分散することで生成した表[c]をJ個の表[X],…,[X]の中に含めてもよい。このように、J個の表とは表[X]に含まれた要素以外を含んでもよい。 The table dividing means 505 divides the table [X] into J pieces and obtains the table [X 1 ],..., [X J ] (S505). More specifically, the table division unit 505 1, ..., 505 N (Table dividing means 505), the table [X], M number of records x 1j, respectively, ..., records each other consist x Mj is associated Is divided into J tables [X 1 ],..., [X J ]. These tables [X 1], ..., [ X J] is Example 1 Table [X 1], ..., is the same as [X J]. The table partitioning means 505 generates a table [c 0 ] generated by secret sharing each element of the vector c 0 = (1, 2,..., M) T (where T indicates transposition). May be included in J tables [X 1 ],..., [X J ]. As described above, the J tables may include elements other than those included in the table [X].

対応用ベクトル生成手段310は、M個の異なる値を要素に持つベクトルhを生成し、ベクトルhの各要素を秘密分散してベクトル[h]を求め、ベクトル[h]をランダム置換してベクトル[h]を求める。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに、所定の処理を施しても対応が維持されるように対応付ける(S310)。より具体的には、対応用ベクトル生成部310,…,310(対応用ベクトル生成手段310)は、M個の異なる値を要素に持つベクトルhを生成し、秘密分散装置100,…,100にベクトルhの各要素を秘密分散させてベクトル[h]を求めさせ、ベクトル[h]をランダム置換させてベクトル[h]を求めさせる。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに対応付ける。 Corresponding vector generation unit 310 generates a vector h a having M different values to the element, obtains the vector [h a] each element of the vector h a by secret sharing, random vector [h a] The vector [h] is obtained by replacement. For j = 1 to J , each element of the same vector [h j ] as the vector [h] is associated with each record of the table [X j ] so that the correspondence is maintained even if a predetermined process is performed. (S310). More specifically, the corresponding vector generation unit 310 1, ..., 310 N (corresponding vector generation means 310) generates the vector h a having M different values to the elements, the secret sharing apparatus 100 1, .., 100 N , each element of the vector h a is secretly distributed to obtain the vector [h a ], and the vector [h a ] is randomly replaced to obtain the vector [h]. Then, for j = 1 to J , each element of the same vector [h j ] as that of the vector [h] is associated with each record of the table [X j ].

処理用繰返手段570(処理用繰返部570,…,570)は、bに1を代入し、繰返し処理の初期化を行う(S571)。 The processing repeater 570 (processing repeater 570 1 ,..., 570 N ) substitutes 1 for b and initializes the repetitive processing (S571).

処理用ランダム置換手段520は、処理Fに必要な要素を有する表[Xb(1)],…,[Xb(D)]を選び、b(d)=b(1),…,b(D)について、表[Xb(d)]とベクトル[hb(d)]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[Xb(d)R]とベクトル[hb(d)R]とを求める(S520)。より具体的には、処理用ランダム置換部520,…,520(処理用ランダム置換手段520)は、処理Fに必要な要素を有する表[Xb(1)],…,[Xb(D)]を表[X],…,[X]の中から選ぶ。ここで、Dはbごとに決まる1以上J以下の整数である。例えば、処理Fのときには2つの表を選び、処理Fのときには3つの表を選ぶのであれば、b=1のときはD=2、b=2のときはD=3となる。また、b(1),…,b(D)は、1〜Jのいずれかの数であり、b(1)<…<b(D)のように順番に並んでいる必要はない。例えば、ソートの処理などで優先度の高い方をb(D)とし、優先度が低い方をb(1)としてもよい。そして、処理用ランダム置換部520,…,520(処理用ランダム置換手段520)は、b(d)=b(1),…,b(D)について、表[Xb(d)]の各レコードとベクトル[hb(d)]の各要素に対して同一の全単射によるランダム置換を秘密分散装置100,…,100に実行させ、ランダム置換された表[Xb(d)R]とベクトル[hb(d)R]とを求める。なお、“表[Xb(d)]の各レコードとベクトル[hb(d)]の各要素に対して同一の全単射”とは、同じd同士の表[Xb(d)]の各レコードとベクトル[hb(d)]の各要素に対して同一の全単射であればよく、dが異なる場合は同一の全単射である必要はない。 The processing random replacement means 520 selects a table [X b (1) ],..., [X b (D) ] having elements necessary for the processing F b , and b (d) = b (1),. For b (D), records are randomly replaced by secret calculation while maintaining the correspondence between the table [X b (d) ] and the vector [h b (d) ], and the randomly replaced table [X b (d ) R ] and a vector [h b (d) R ] are obtained (S520). More specifically, processing random permutation unit 520 1, ..., 520 N (processing random replacement unit 520), Table [X b (1)] having the elements necessary to process F b, ..., [X b (D) ] is selected from the table [X 1 ],..., [X J ]. Here, D is an integer of 1 to J determined for each b. For example, if two tables are selected for the process F 1 and three tables are selected for the process F 2 , D = 2 when b = 1 and D = 3 when b = 2. In addition, b (1),..., B (D) is any number from 1 to J, and need not be arranged in order as b (1) <. For example, b (D) may be assigned to a higher priority in sorting processing, and b (1) may be assigned to a lower priority. Then, the processing random replacement units 520 1 ,..., 520 N (processing random replacement means 520) use the table [X b (d) ] for b (d) = b (1 ) ,. secret sharing apparatus 100 1 random substitution by the same bijective for each element of each record and the vector [h b (d)] of, ..., 100 is performed in N, randomly substituted table [X b ( d) R ] and the vector [h b (d) R ] are obtained. Note that “the same bijection for each record of the table [X b (d) ] and each element of the vector [h b (d) ]” means that the same table [X b (d) ] between the same d. The same bijection is sufficient for the records and the elements of the vector [h b (d) ].

処理用ベクトル復号手段530は、ベクトル[hb(1)R],…,[hb(D)R]を復号し、ベクトルhb(1)R,…,hb(D)Rを求める(S530)。より具体的には、処理用ベクトル復号部530,…,530(処理用ベクトル復号手段530)は、秘密分散装置100,…,100にベクトル[hb(1)R],…,[hb(D)R]を復号させ、ベクトルhb(1)R,…,hb(D)Rを求める。 The processing vector decoding means 530 decodes the vectors [h b (1) R ],..., [H b (D) R ] to obtain the vectors h b (1) R ,..., H b (D) R. (S530). More specifically, processing vector decoding unit 530 1, ..., 530 N (processing vector decoding unit 530), secret sharing apparatus 100 1, ..., vector 100 N [h b (1) R], ... , [H b (D) R ] is decoded to obtain a vector h b (1) R ,..., H b (D) R.

処理用並び替え手段540は、すべてのb(i)とb(d)の組合せ(ただし、ここでのiは1,…,Dのいずれか)に対してhb(i)R=hb(d)Rとなるように表[Xb(d)R]のレコードを並び替え、表[Xb(1)T],…,[Xb(D)T]を得る(S540)。より具体的には、処理用並び替え部540,…,540(処理用並び替え手段540)は、レコードの順番を維持する表[Xb(i)R]を、表[Xb(1)R],…,[Xb(D)R]の中から特定する。そして、表[Xb(i)R]以外の表[Xb(d)R](b(d)≠b(i))のレコードをhb(i)R=hb(d)Rとなるように並び替え、表[Xb(1)T],…,[Xb(D)T]を得る。 The processing reordering unit 540 sets h b (i) R = h b for all combinations of b (i) and b (d) (where i is any one of 1,..., D). (D) The records of the table [ Xb (d) R ] are rearranged so as to be R, and the table [ Xb (1) T ],..., [ Xb (D) T ] is obtained (S540). More specifically, the processing rearrangement units 540 1 ,..., 540 N (processing rearrangement unit 540) convert the table [ Xb (i) R ] that maintains the record order into the table [ Xb ( 1) R ],..., [ Xb (D) R ] are specified. Then, records other than the table [ Xb (i) R ] [ Xb (d) R ] (b (d) ≠ b (i)) are changed to hb (i) R = hb (d) R. The table [ Xb (1) T ],..., [ Xb (D) T ] is obtained.

処理用ベクトル対応手段550は、ベクトルhb(i)Rの各要素を秘密分散したベクトル[hb(i)R]の各要素を表[Xb(1)T],…,[Xb(D)T]の各レコードに、処理Fを施しても対応が維持されるように対応付ける(S550)。より具体的には、処理用ベクトル対応部550,…,550(処理用ベクトル対応手段550)は、秘密分散装置100,…,100にベクトルhb(i)Rの各要素を秘密分散させてベクトル[hb(i)R]をもとめる。そして、ベクトル[hb(i)R]の各要素を表[Xb(1)T],…,[Xb(D)T]の各レコードに、処理Fを施しても対応が維持されるように対応付ける。 Processing vector corresponding means 550, the vector h b (i) each element of a vector the elements were secret sharing of R [h b (i) R ] Table [X b (1) T] , ..., [X b (D) Corresponding to each record of T ] so that the correspondence is maintained even if the processing F b is performed (S550). More specifically, processing vector corresponding unit 550 1, ..., 550 N (processing vector corresponding means 550), the secret sharing apparatus 100 1, ..., each element of the vector h b (i) R to 100 N The vector [h b (i) R ] is obtained by secret sharing. The correspondence is maintained even if the elements of the vector [h b (i) R ] are subjected to the processing F b for each record of the table [X b (1) T ],..., [X b (D) T ]. Correlate as

処理手段560は、ベクトル[hb(i)R]が対応付けられた表[Xb(1)T],…,[Xb(D)T]に対して処理Fを行って、処理F後のベクトル[hb(i)F]が対応付けられた処理F後の表[Xb(1)F],…,[Xb(D’)F]を求める。そして、処理F前のJ個の表の中から0個以上、処理F後のD’個の表の中から1個以上となるように、あらかじめ定めたJ’個のベクトルと表を抽出し、J’を新しいJに更新し、処理F後のベクトル[hjbS]と表[X1bS],…,[XJbS]を求める(S560)。例えば、D’=Dであり、処理F後の表[Xb(1)F],…,[Xb(D’)F]を、対応する処理F前の表[Xb(1)],…,[Xb(D)]に置き換えるのであれば、J’=Jとなるので、表の数Jは同じままである。また、処理F後の表[Xb(1)F],…,[Xb(D’)F]を単に加えてもよく、この場合はJ’=J+D’であり、表の数JはD’だけ増える。より具体的には、処理部560,…,560(処理手段560)は、ベクトル[hb(i)R]の対応付けを維持したまま表[Xb(1)T],…,[Xb(D)T]に対して処理Fを行って、処理F後のベクトル[hb(i)F]が対応付けられた処理F後の表[Xb(1)F],…,[Xb(D’)F]を求める。そして、処理F前のJ個の表の中から0個以上、処理F後のD’個の表の中から1個以上となるように、あらかじめ定めたJ’個のベクトルと表を抽出し、J’を新しいJに更新し、処理F後のベクトル[hjbS]と表[X1bS],…,[XJbS]とする。 The processing means 560 performs the processing F b on the table [X b (1) T ],..., [X b (D) T ] associated with the vector [h b (i) R ], and performs processing F b after the vector [h b (i) F] is associated with process F b after the table [X b (1) F] , ..., obtaining the [X b (D ') F ]. Then, predetermined J ′ vectors and tables are set so that there are zero or more from the J tables before the processing F b and one or more from the D ′ tables after the processing F b. Then, J ′ is updated to a new J, and a vector [h jbS ] and a table [X 1bS ],..., [X JbS ] after processing F b are obtained (S560). For example, D '= a D, processing F b after the table [X b (1) F] , ..., [X b (D' a) F], corresponding processing F b previous table [X b (1 )], ..., if replaced by [X b (D)], since the J '= J, the number J of the table remains the same. Further, Table after treatment F b [X b (1) F], ..., [X b (D ') F] may be simply added, in this case J' is = J + D ', the number of table J Increases by D '. More specifically, the processing units 560 1 ,..., 560 N (processing unit 560) maintain the correspondence of the vector [h b (i) R ] while maintaining the table [X b (1) T ],. performs processing F b against [X b (D) T] , vector after processing F b [h b (i) F] Table after treatment F b associated is [X b (1) F ], ..., [ Xb (D ') F ] is obtained. Then, predetermined J ′ vectors and tables are set so that there are zero or more from the J tables before the processing F b and one or more from the D ′ tables after the processing F b. extracted, and updates the J 'on the new J, vector after processing F b [h jbS] and Table [X 1BS], ..., and [X JbS].

処理用繰返手段570(処理用繰返部570,…,570)は、b=Bかを確認し、Yesの場合はベクトル[hjbS]をベクトル[hjS]、表[X1bS],…,[XJbS]を表[X1S],…,[XJS]としてステップS320に進む。Noの場合はベクトル[hjbS]をベクトル[h]、表[X1bS],…,[XJbS]を表[X],…,[X]とし、ステップS573に進む(S572)。ステップS573では、処理用繰返手段570(処理用繰返部570,…,570)は、bにb+1を代入し、ステップS520に戻る。 The processing repeater 570 (processing repeater 570 1 ,..., 570 N ) checks whether b = B. If Yes, the vector [h jbS ] is changed to the vector [h jS ] and the table [X 1bS is set. ], ..., [X JbS] Table [X 1S] a, ..., the process proceeds to step S320 as [X JS]. In the case of No, the vector [h jbS ] is changed to the vector [h j ], the table [X 1bS ],..., [X JbS ] is changed to the table [X 1 ], ..., [X J ], and the process proceeds to step S573 (S572). . In step S573, the processing repeater 570 (processing repeater 570 1 ,..., 570 N ) substitutes b + 1 for b, and returns to step S520.

対応用ランダム置換手段320は、j=1〜Jについて、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求める(S320)。より具体的には、対応用ランダム置換部320,…,320(対応用ランダム置換手段320)は、j=1〜Jについて、表[XjS]の各レコードとベクトル[hjS]の各要素に対して同一の全単射によるランダム置換を秘密分散装置100,…,100に実行させ、ランダム置換された表[XjR]とベクトル[hjR]とを求める。 Corresponding random replacement means 320 performs random replacement between records by secret calculation while maintaining the correspondence between table [X jS ] and vector [h jS ] for j = 1 to J, and randomly replaces the table [X jR ] and the vector [h jR ] are obtained (S320). More specifically, the corresponding random replacement unit 320 1 ,..., 320 N (corresponding random replacement means 320) is configured to store each record of the table [X jS ] and the vector [h jS ] for j = 1 to J. The secret sharing apparatus 100 1 ,..., 100 N performs random replacement by the same bijection for each element, and obtains the randomly replaced table [X jR ] and vector [h jR ].

対応用ベクトル復号手段330は、ベクトル[h1R],…,[hJR]を復号し、ベクトルh1R,…,hJRを求める(S330)。より具体的には、対応用ベクトル復号部330,…,330(対応用ベクトル復号手段330)は、秘密分散装置100,…,100にベクトル[h1R],…,[hJR]を復号させ、ベクトルh1R,…,hJRを求める。 The corresponding vector decoding means 330 decodes the vectors [h 1R ],..., [H JR ] to obtain the vectors h 1R ,..., H JR (S330). More specifically, the corresponding vector decryption units 330 1 ,..., 330 N (corresponding vector decryption means 330) apply the vectors [h 1R ],..., [H JR to the secret sharing apparatuses 100 1 ,. ] To obtain vectors h 1R ,..., H JR .

対応用並び替え手段340は、レコードの順番を維持する表[XiR]以外の表[XjR](ただし、j=1,…,Jかつj≠i)のレコードをhjR=hiRとなるように並び替える(S340)。より具体的には、対応用並び替え部340,…,340(対応用並び替え手段340)は、表[XiR](ソートの対象となる要素を含んだ表)を特定する。そして、表[XiR]以外の表[XjR](ただし、j=1,…,Jかつj≠i)のレコードをhjR=hiRとなるように並び替える。 The correspondence rearranging means 340 sets the records in the table [X jR ] (where j = 1,..., J and j ≠ i) other than the table [X iR ] that maintains the record order as h jR = h iR . They are rearranged as follows (S340). More specifically, the correspondence sorting unit 340 1 ,..., 340 N (corresponding sorting means 340) specifies a table [X iR ] (a table including elements to be sorted). Then, the records in the table [X jR ] (where j = 1,..., J and j ≠ i) other than the table [X iR ] are rearranged so that h jR = h iR .

実施例3の具体例について説明する。例えば表[X]のM個のレコードは要素としてそれぞれ属性値[v]、キー[km1],…,[kmB]を有しているとする。そして、キー[km1],…,[kmB]の順にソートを行う場合を説明する。つまり、処理Fはキー[k1b],…,[kMb]に基づいたソートを行う処理である。 A specific example of the third embodiment will be described. For example Table Each attribute value as the M records elements of [X] [v m], key [k m1], ..., and has a [k mB]. A case will be described in which sorting is performed in the order of the keys [k m1 ],..., [K mB ]. That is, the process F b is a process for performing sorting based on the keys [k 1b ],..., [K Mb ].

表分割手段505は、表[X]を要素[v],[km1],…,[kmB]ごとに分割して表[v],[k],…,[k]を求める。また、ベクトルc=(1,2,…,M)(ただし、ここでのTは転置を示す)の各要素を秘密分散したベクトル[c]を表[c]とする(S505)。この場合は、J=B+2であり、表[v]が表[X]、表[k]が表[X]、…、表[k]が表[XJ−1]、表[c]が表[X]に相当する。 Table splitting means 505, table [X] elements [v m], [k m1 ], ..., [k mB] Table [v] by dividing each, [k 1], ..., a [k B] Ask. Further, a vector [c 0 ] obtained by secret sharing each element of the vector c 0 = (1, 2,..., M) T (where T represents transposition) is represented as a table [c 0 ] (S505). ). In this case, J = B + 2, table [v] is table [X 1 ], table [k 1 ] is table [X 2 ],..., Table [k B ] is table [X J-1 ], table [C 0 ] corresponds to the table [X J ].

対応用ベクトル生成手段310は、ベクトルh=(1,2,…,M)(ただし、ここでのTは転置を示す)の各要素を秘密分散したベクトル[h]を求め、ベクトル[h]をランダム置換してベクトル[h]を求める。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[v],[k],…,[k],[c]の各レコードに、所定の処理を施しても対応が維持されるように対応付ける(S310)。 The corresponding vector generation means 310 obtains a vector [h a ] obtained by secretly distributing each element of the vector h a = (1, 2,..., M) T (where T indicates transposition). The vector [h] is obtained by randomly replacing [h a ]. Then, for j = 1 to J , each element of the same vector [h j ] as the vector [h] is recorded in each record of the tables [v], [k 1 ],..., [K B ], [c 0 ]. Corresponding so that the correspondence is maintained even if the predetermined processing is performed (S310).

処理用繰返手段570(処理用繰返部570,…,570)は、bに1を代入し、繰返し処理の初期化を行う(S571)。 The processing repeater 570 (processing repeater 570 1 ,..., 570 N ) substitutes 1 for b and initializes the repetitive processing (S571).

処理用ランダム置換手段520は、処理Fに必要な要素を有する表として表[v],[k],[cb−1]を選択する。つまり、D=3であり、表[v]が表[Xb(1)]、表[k]が表[Xb(2)]、表[cb−1]が表[Xb(3)]に相当する。処理用ランダム置換手段520は、表[v]とベクトル[hb(1)]との対応を維持したまま秘密計算でレコード間をランダム置換し、表[k]とベクトル[hb(2)]との対応を維持したまま秘密計算でレコード間をランダム置換し、表[cb−1]とベクトル[hb(3)]との対応を維持したまま秘密計算でレコード間をランダム置換する。そして、ランダム置換された表[v],[kbR],[cb−1R]とベクトル[hb(1)R],[hb(2)R],[hb(3)R]とを求める(S520)。 The processing random replacement means 520 selects tables [v], [k b ], and [c b-1 ] as tables having elements necessary for the process F b . That is, D = 3, the table [v] is the table [X b (1) ], the table [k b ] is the table [X b (2) ], and the table [c b−1 ] is the table [X b ( 3) Corresponds to]. The processing random replacement means 520 performs random replacement between records by secret calculation while maintaining the correspondence between the table [v] and the vector [h b (1) ], and the table [k b ] and the vector [h b (2 )] were randomly replaced through the records corresponding as-in secure computing maintaining the random substitution of the records in the table [c b-1] and vector [h b (3) while maintaining the correspondence between secure computing To do. Then, the randomly substituted tables [v R ], [k bR ], [c b-1R ] and the vectors [h b (1) R ], [h b (2) R ], [h b (3) R ] Is obtained (S520).

処理用ベクトル復号手段530は、ベクトル[hb(1)R],[hb(2)R],[hb(3)R]を復号し、ベクトルhb(1)R,hb(2)R,hb(3)Rを求める(S530)。 The processing vector decoding means 530 decodes the vectors [h b (1) R ], [h b (2) R ], [h b (3) R ], and the vectors h b (1) R , h b ( 2) R 1 , h b (3) R is obtained (S530).

処理用並び替え手段540は、すべてのb(i)とb(d)の組合せ(ただし、ここでのiは1,…,Dのいずれか)に対してhb(i)R=hb(d)Rとなるように表[v],[kbR],[cb−1R]のレコードを並び替え、表[v],[kbT],[cb−1T]を得る(S540)。 The processing reordering unit 540 sets h b (i) R = h b for all combinations of b (i) and b (d) (where i is any one of 1,..., D). (D) The records in the tables [v R ], [k bR ], and [c b-1R ] are rearranged so as to be R , and the tables [v T ], [k bT ], and [c b-1T ] are obtained. (S540).

処理用ベクトル対応手段550は、ベクトルhb(i)Rの各要素を秘密分散したベクトル[hb(i)R]の各要素を表[v],[kbT],[cb−1T]の各レコードに、処理Fを施しても対応が維持されるように対応付ける(S550)。 Processing vector corresponding unit 550, a vector the elements were secret sharing of the vector h b (i) R [h b (i) R] Table [v T] each element of, [k bT], [c b- 1T ] is associated with each record so that the correspondence is maintained even if the process Fb is performed (S550).

処理手段560は、ベクトル[hb(i)R]が対応付けられた表[v],[kbT],[cb−1T]に対して処理Fを行う。例えばFは、表[cb−1T]を復号して表cb−1Tを求める。そして、表cb−1Tに従って並べ替え、表[kbT]に従って表[v]をソートして表[vNEW]を求める。また、ベクトルc=(1,2,…,M)(ただし、ここでのTは転置を示す)の各要素を秘密分散して、表[c]を求める。つまり、処理F後のD’個の表は、表[vNEW]と表[c]であり、D’=2である。そして、表[kb+1],…,[k],[vNEW],[c]を抽出し、J’個のベクトルとする。つまり、J’=B−b+2である。そして、J’を新しいJに更新し、表[vNEW]を新しい表[v]とし、処理F後のベクトル[hjbS]と表[kb+1],…,[k],[v],[c]を求める(S560)。 The processing unit 560 performs the process F b on the tables [v T ], [k bT ], and [c b−1T ] associated with the vector [h b (i) R ]. For example, F b decodes table [c b-1T ] to obtain table c b-1T . Then, the table [v T ] is sorted according to the table c b-1T and the table [v T ] is sorted according to the table [k bT ] to obtain the table [v NEW ]. Further, the table [c b ] is obtained by secretly sharing each element of the vector c b = (1, 2,..., M) T (where T indicates transposition). That is, the D ′ tables after the process F b are the table [v NEW ] and the table [c b ], and D ′ = 2. Then, the tables [k b + 1 ],..., [K B ], [v NEW ], [c b ] are extracted and set as J ′ vectors. That is, J ′ = B−b + 2. Then, J ′ is updated to the new J, the table [v NEW ] is changed to the new table [v], the vector [h jbS ] after the processing F b and the tables [k b + 1 ],..., [K B ], [v ] And [c b ] are obtained (S560).

処理用繰返手段570は、b=Bかを確認し、Yesの場合はベクトル[hjBS]をベクトル[hjS]としてステップS320に進む。Noの場合はベクトル[hjbS]をベクトル[h]とし、ステップS573に進む(S572)。ステップS573では、処理用繰返手段570(処理用繰返部570,…,570)は、bにb+1を代入し、ステップS520に戻る。 The process repeater 570 checks whether b = B, and if yes, sets the vector [h jBS ] as the vector [h jS ] and proceeds to step S320. In the case of No, the vector [h jbS ] is set as the vector [h j ], and the process proceeds to step S573 (S572). In step S573, the processing repeater 570 (processing repeater 570 1 ,..., 570 N ) substitutes b + 1 for b, and returns to step S520.

対応用ランダム置換手段320は、表[v]とベクトル[h1S]との対応を維持したまま秘密計算でレコード間をランダム置換し、表[c]とベクトル[h2S]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[v],[cBR]とベクトル[h1R],[h2R]とを求める(S320)。 Corresponding random replacement means 320 performs random replacement between records by secret calculation while maintaining the correspondence between table [v] and vector [h 1S ], and changes the correspondence between table [c B ] and vector [h 2S ]. While maintaining, the records are randomly replaced by secret calculation, and the randomly replaced tables [v R ], [c BR ] and vectors [h 1R ], [h 2R ] are obtained (S320).

対応用ベクトル復号手段330は、ベクトル[h1R],[h2R]を復号し、ベクトルh1R,h2Rを求める(S330)。 The corresponding vector decoding means 330 decodes the vectors [h 1R ] and [h 2R ] to obtain the vectors h 1R and h 2R (S330).

対応用並び替え手段340は、表[c]を復号してc=(1,2,…,M)(ただし、ここでのTは転置を示す)、かつh1R=h2Rとなるように、表cと表[v]のレコードを並び替え、表[v]を求める(S340)。表[v]が所望の表である。 The correspondence rearranging means 340 decodes the table [c B ] and c B = (1, 2,..., M) T (where T indicates transposition), and h 1R = h 2R Thus, the records in the table c B and the table [v R ] are rearranged to obtain the table [v L ] (S340). The table [v L ] is the desired table.

本実施例の秘密マッチングシステムも、あらかじめ対応するレコード同士に目印となるデータとしてベクトル[h]をそれぞれのレコードに対応付けている。そして、ソートなどの処理が終わった後で、この目印を使うことで本来ならば途中で対応がわからなくなってしまう場合にも対応するレコード同士を結びつけることができる。また、表[X]を分割して表[X],…,[X]を求め、所定の処理の前に必要な要素を含む表[Xb(1)],…,[Xb(D)]を選定した上で、表[Xb(1)],…,[Xb(D)]に対してのみ所定の処理を行い、所定の処理が終わった後で他の表の中に戻すので、計算効率を改善できる。 The secret matching system of the present embodiment also associates a vector [h j ] with each record as data that serves as a mark between corresponding records in advance. Then, after processing such as sorting is completed, corresponding records can be linked even if the correspondence is not known in the middle by using this mark. Further, the table [X] is divided to obtain the tables [X 1 ],..., [X J ], and the tables [X b (1) ] ,. (D) ] is selected, predetermined processing is performed only on the table [X b (1) ],..., [X b (D) ], and after the predetermined processing is completed, Since it returns to the inside, the calculation efficiency can be improved.

[秘密計算]
上述の説明では、秘密計算については1つの方法に限定しないことを前提としており、具体例は示さなかった。以下の説明では、秘密マッチング装置10,…,10(20,…,20または30,…,30)が実行するランダム置換とその他の秘密計算について説明する。なお、以下の説明では秘密マッチング装置10について説明するが、秘密マッチング装置20,30についても同じである。また、以下の秘密計算に関する説明は、1つの例でありこれに限定されるものではない。本発明の秘密マッチングシステムでは他の秘密計算を用いてもよい。
[Secret calculation]
In the above description, it is assumed that the secret calculation is not limited to one method, and no specific example is shown. In the following description, random substitution performed by the secret matching devices 10 1 ,..., 10 N (20 1 ,..., 20 N or 30 1 ,..., 30 N ) and other secret calculations will be described. In the following description, the secret matching device 10 n will be described, but the same applies to the secret matching devices 20 n and 30 n . Moreover, the following description regarding the secret calculation is an example, and the present invention is not limited to this. Other secret computations may be used in the secret matching system of the present invention.

ランダム置換1
図7に本発明に利用できる秘密分散装置100の機能構成例を詳しく示した秘密マッチングシステムを示す。図8にランダム置換の1つ目の処理フロー例を示す。この例では、秘密マッチングシステムは選択手段105も備える。ここで、A,…,Aを各秘密マッチング装置10が断片を分散して記録するK個の数値(Kは2以上の整数)、数値Aをk番目の数値(kは1以上K以下の整数)、aknを秘密マッチング装置10が記録するk番目の断片とする。なお、数値A,…,Aが、秘匿化したい数値群であって、例えば、ソートの対象となる数値群である。ソートの対象となる数値群としては、例えば、数値Aが各々の人の年収を示すような数値群が考えられる。選択手段105は、いずれかの秘密マッチング装置の内部に配置されてもよいし、単独の装置であってもよい。
Random replacement 1
FIG. 7 shows a secret matching system in detail showing an example of the functional configuration of the secret sharing apparatus 100 n that can be used in the present invention. FIG. 8 shows a first processing flow example of random replacement. In this example, the secret matching system also includes a selection unit 105. Here, A 1 ,..., A K are K numerical values (K is an integer equal to or larger than 2) that each secret matching device 10 n records and distributes fragments, and numerical values A k are k-th numerical values (k is 1). An integer of K or less), a kn is a k-th fragment recorded by the secret matching device 10 n . Note that the numerical values A 1 ,..., AK are numerical values to be concealed, for example, numerical values to be sorted. The numerical value group as the sorting subject, for example, numerical A k are considered numeric group shown an annual income of each person. The selection means 105 may be disposed inside any secret matching device or may be a single device.

秘密マッチングシステムは、選択手段と断片置換手段と再分散手段を備える。また、秘密分散装置100は、少なくとも断片置換部110と再分散部120と記録部190を備える。記録部190は断片a1n,…,aKnなどを記録する。また、記録部190は、自身が記録している断片aknが数値Aの何番目の断片なのかに関する情報も記録する。 The secret matching system includes a selection unit, a fragment replacement unit, and a redistribution unit. The secret sharing apparatus 100 n includes at least a fragment replacement unit 110 n , a re-distribution unit 120 n, and a recording unit 190 n . The recording unit 190 n records fragments a 1n ,..., A Kn, etc. The recording unit 190 n also records information on the number a fragment of the numerical value A k that the fragment a kn recorded by itself is.

選択手段105は、N未満の数の秘密マッチング装置10を選択する(S105)。例えば、N個の断片のうちN’個を集めれば数値を復元できる秘密分散であれば、断片置換手段がN’個以上N未満の秘密マッチング装置を選べばよい。 The selection unit 105 selects a number of secret matching devices 10 n that is less than N (S105). For example, as long as N 'pieces of N pieces are collected and secret sharing is possible to restore the numerical value, a secret matching device having N' pieces or more and less than N pieces may be selected.

断片置換手段は、少なくとも断片置換部110,…,110を含んで構成される。そして、選択手段105に選択された秘密マッチング装置10(ただし、iは選択された秘密マッチング装置を示す番号)の断片置換部110間で{1,…,K}→{1,…,K}の全単射πを作成し、選択された秘密マッチング装置10の記録部190が記録する断片aπ(k)iをk番目の断片にする(S110)。全単射πは、1〜Kを単にランダムに並べ替えたものであってもよい。なお、全単射πは、望ましくは一様にランダムに並び替えられたものであり、例えばFisher-Yates shuffle(参考文献1:Richard Durstenfeld, “Algorithm 235: Random permutation”, Communications of the ACM archive, Volume 7, Issue 7, 1964.)などを用いて作成すればよい。また、全単射πは選択された秘密マッチング装置10間で生成してもよいし、選択された秘密マッチング装置10のうちの1つの秘密マッチング装置が生成して、選択された秘密マッチング装置10間で共有してもよい。 The fragment replacement means includes at least the fragment replacement units 110 1 ,..., 110 N. Then, {1,..., K} → {1,..., Between the fragment replacement units 110 i of the secret matching device 10 i selected by the selection means 105 (where i is a number indicating the selected secret matching device). A bijection π of K} is created, and the fragment a π (k) i recorded by the recording unit 190 i of the selected secret matching apparatus 10 i is set as the kth fragment (S110). The bijection π may be obtained by simply rearranging 1 to K at random. Note that the bijection π is preferably rearranged uniformly and randomly. For example, Fisher-Yates shuffle (Reference 1: Richard Durstenfeld, “Algorithm 235: Random permutation”, Communications of the ACM archive, Volume 7, Issue 7, 1964.) etc. The bijection π may be generated between the selected secret matching devices 10 i , or may be generated by one secret matching device among the selected secret matching devices 10 i to select the selected secret matching device. You may share between apparatus 10 i .

再分散手段は、少なくとも再分散部120,…,120を含んで構成される。再分散手段は、断片置換手段によって置換された数値Aπ(k)に対応する断片aπ(k)i(k番目に置換されている)を用いて再分散化して新しい断片bk1,…,bkNを求め、数値Bの断片とする(S120)。つまり、Aπ(k)=Bの関係が成り立つが、選ばれなかった秘密マッチング装置は全単射πを知らないので、Aπ(k)=Bであることを知らない。なお、各秘密マッチング装置10の記録部190は、断片bknを記録するだけでなく、自身が記録しているk番目の断片である断片bknが数値Bの断片であるという情報も記録する。また、数値B,…,Bを新しい数値A,…,Aとし、選択手段で選択する秘密マッチング装置の組み合わせを変更すれば、この処理を繰り返すことができる(S111,S112)。 Redispersion means, at least re-dispersing section 120 1, ..., configured to include a 120 N. The re-distribution means re-distributes using the fragment a π (k) i (replaced k-th ) corresponding to the numerical value A π (k) replaced by the fragment replacement means, and performs a new fragment b k1,. , B kN are obtained and set as a fragment of the numerical value B k (S120). That is, the relationship of A π (k) = B k holds, but the secret matching device that was not selected does not know bijection π, and therefore does not know that A π (k) = B k . The information that each secret matching device 10 n recording unit 190 n of not only recording the fragment b kn, a fragment of fragment b kn numerical B k is the k-th fragment itself is recorded Also record. The numerical values B 1, ..., a B K new number A 1, ..., and A K, by changing the combination of the secret matching apparatus selected by the selection means, it is possible to repeat this process (S111, S112).

本発明の秘密マッチングシステムによれば、限定された秘密マッチング装置間で断片をシャッフルする。したがって、選ばれなかった秘密マッチング装置は、全単射πを知らないので、数値A,…,Aと数値B,…,Bとの対応が分からない。つまり、特定の秘密マッチング装置からは数値A,…,Aと数値B,…,Bとの対応が分からない状態にしたいのであれば、その秘密マッチング装置を選択手段105で選ばないように、選択する秘密マッチング装置をあらかじめ定めればよい。また、選択手段105が選ぶ秘密マッチング装置を変更しながらこの処理を繰り返し、全ての秘密マッチング装置が選ばれなかったことがある状態にすれば、全ての秘密マッチング装置が数値A,…,Aと対応付けることができない数値B,…,Bを得ることができる。 According to the secret matching system of the present invention, fragments are shuffled between limited secret matching devices. Therefore, the secret matching apparatus which has not been selected, does not know the BC [pi, numerical A 1, ..., A K and number B 1, ..., do not know the correspondence between the B K. That is, numerical values A 1 from a specific secret matching apparatus, ..., A K and number B 1, ..., If you wish to state that corresponds is not known with B K, choose a secret matching apparatus selecting means 105 Thus, the secret matching device to be selected may be determined in advance. Further, if this process is repeated while changing the secret matching device selected by the selection means 105 and all secret matching devices have not been selected, all secret matching devices have numerical values A 1 ,. numerical B 1 that can not be associated with K, ..., can be obtained B K.

ランダム置換2
次のランダム置換のための秘密マッチングシステムの秘密分散装置100を詳細に示した機能構成例も図7に示す。図9にランダム置換の2つ目の処理フロー例を示す。この例でも、秘密マッチングシステムは選択手段105も備える。ここで、A,…,Aを各秘密マッチング装置10が断片を分散して記録するK個の数値(Kは2以上の整数)、数値Aをk番目の数値(kは1以上K以下の整数)、aknを秘密マッチング装置10が記録する数値Aの断片とする。
Random replacement 2
FIG. 7 also shows a functional configuration example showing in detail the secret sharing apparatus 100 n of the secret matching system for the next random replacement. FIG. 9 shows a second processing flow example of random replacement. Also in this example, the secret matching system also includes a selection unit 105. Here, A 1 ,..., A K are K numerical values (K is an integer equal to or larger than 2) that each secret matching device 10 n records and distributes fragments, and numerical values A k are k-th numerical values (k is 1). An integer of K or less), a kn is a fragment of a numerical value A k recorded by the secret matching device 10 n .

本発明の秘密マッチングシステムは、選択手段105、初期情報分散手段、初期乗算手段、断片置換手段、再分散手段、確認分散手段、確認乗算手段、改ざん検出手段を備える。また、秘密分散装置100は、初期情報分散部130、初期乗算部140、断片置換部110、再分散部120、確認分散部150、確認乗算部160、改ざん検出部170を備える。記録部190は断片a1n,…,aKnなどを記録する。また、記録部190は、自身が記録している断片aknが数値Aの何番目の断片なのかに関する情報も記録する。 The secret matching system of the present invention includes a selection unit 105, an initial information distribution unit, an initial multiplication unit, a fragment replacement unit, a redistribution unit, a confirmation distribution unit, a confirmation multiplication unit, and a falsification detection unit. The secret sharing apparatus 100 n includes an initial information distribution unit 130 n , an initial multiplication unit 140 n , a fragment replacement unit 110 n , a redistribution unit 120 n , a confirmation distribution unit 150 n , a confirmation multiplication unit 160 n , and a tampering detection unit 170. n . The recording unit 190 n records fragments a 1n ,..., A Kn, etc. The recording unit 190 n also records information on the number a fragment of the numerical value A k that the fragment a kn recorded by itself is.

選択手段105はランダム置換1と同じである。初期情報分散手段は、初期情報分散部130,…,130で構成される。そして、選択手段105に選択された秘密マッチング装置10の初期情報分散部130は、秘密マッチング装置10,…,10のどれも知らないK個の数値P,…,Pそれぞれの断片p1n,…,pKnを秘密計算によって求め、記録部190に記録する(S130)。具体的には、選択手段105に選択された秘密マッチング装置から、2つ以上の秘密マッチング装置を選定する。そして、選定された秘密マッチング装置が作った値に基づいて、どの装置も知らない値の断片を作ればよい。例えば、2つの秘密マッチング装置10,10を選定し(ただし、i≠j)、秘密マッチング装置10が生成した数値の断片と、秘密マッチング装置10が生成した数値の断片を分散して記録する。そして、その2つの数値の和を秘密計算によって求め、結果が分からないように断片を分散して記録すれば、全ての秘密マッチング装置が知らない数値の断片を分散して記録できる。この例では、選定した秘密計算装置を2つとしたが、2つ以上でもかまわない。 The selection means 105 is the same as the random replacement 1. Initial information distribution means, the initial information distribution unit 130 1, ..., and a 130 N. The initial information distribution unit 130 i of the secret matching apparatus 10 i selected by the selecting means 105, the secret matching device 10 1, ..., 10 K pieces of numerical P 1 does not know any of N, ..., P K respectively Fragments p 1n ,..., P Kn are obtained by secret calculation and recorded in the recording unit 190 n (S130). Specifically, two or more secret matching devices are selected from the secret matching devices selected by the selection unit 105. Then, based on the value created by the selected secret matching device, a fragment of a value unknown to any device may be created. For example, two secret matching devices 10 i and 10 j are selected (where i ≠ j), and a numerical fragment generated by the secret matching device 10 i and a numerical fragment generated by the secret matching device 10 j are distributed. Record. Then, if the sum of the two numerical values is obtained by secret calculation and the fragments are distributed and recorded so that the result is not known, the numerical fragments that are not known by all the secret matching devices can be distributed and recorded. In this example, the number of selected secret computing devices is two, but two or more may be used.

初期乗算手段は、初期乗算部140,…,140で構成される。初期乗算部140,…,140は、S=P×Aである数値Sの断片sk1,…,skNを秘密計算によって求め、記録部190,…,190に分散して記録する(S140)。 The initial multiplication means, the initial multiplier 140 1, ..., and a 140 N. The initial multiplication unit 140 1, ..., 140 N is, S k = P k × A k is a numerical value S k fragment s k1 of, ..., determined by the s kN secure computing, recording unit 190 1, ..., to 190 N Distributed and recorded (S140).

断片置換手段と再分散手段は、ランダム置換1と同じである。確認分散手段は、確認分散部150,…,150で構成される。確認分散部150,…,150は、k=1〜Kについて、Q=Pπ(k)である数値Qの断片qk1,…,qkNを秘密計算によって生成し、記録部190,…,190に分散して記録する(S150)。具体的には、ステップS130で選定された秘密マッチング装置が作った値に基づいて、どの装置も知らない値の別の断片を作ればよい。例えば、ステップS130で選定された秘密マッチング装置10が数値Pπ(k)用に生成した数値の別の断片(新しい断片)と、ステップS130で選定された秘密マッチング装置10が数値Pπ(k)用に生成した数値の別の断片(新しい断片)を分散して記録する。そして、その2つの数値の和を秘密計算によって求め、結果が分からないように断片を分散して記録すれば、Q=Pπ(k)であり、かつ、全ての秘密マッチング装置が知らない数値の断片を分散して記録できる。この例では、選定した秘密マッチング装置を2つとしたが、ステップS130と同じように2つ以上でもかまわない。 Fragment replacement means and redispersion means are the same as random replacement 1. The confirmation dispersion means is composed of confirmation dispersion units 150 1 ,..., 150 N. The confirmation dispersion unit 150 1 ,..., 150 N generates a fragment q k1 ,..., Q kN of the numerical value Q k with Q k = Pπ (k) for k = 1 to K by a secret calculation, and a recording unit 190 1, ..., distributed and recorded in 190 N (S150). Specifically, another fragment having a value unknown to any device may be created based on the value created by the secret matching device selected in step S130. For example, another fragment (new fragment) of the numerical value generated by the secret matching device 10 i selected in step S130 for the numerical value P π (k) and the secret matching device 10 j selected in step S130 are the numerical value P π. (K) Another piece of the numerical value generated for (a new piece) is distributed and recorded. Then, if the sum of the two numerical values is obtained by secret calculation and the fragments are distributed and recorded so that the result is not known, Q k = P π (k) and all secret matching devices do not know Numeric fragments can be distributed and recorded. In this example, the number of selected secret matching devices is two. However, two or more secret matching devices may be used as in step S130.

確認乗算手段は、確認乗算部160,…,160で構成される。確認乗算部160,…,160は、T=Q×Bである数値Tの断片tk1,…,tkNを秘密計算によって求め、記録部190,…,190に分散して記録する(S160)。 Check multiplying means, check multiplying unit 160 1, ..., and a 160 N. Check multiplying unit 160 1, ..., 160 N is, T k = Q k × B k is a numerical value T k fragment t k1 of, ..., determined by the t kN secure computing, recording unit 190 1, ..., to 190 N Distributed and recorded (S160).

改ざん検出手段は、改ざん検出部170,…,170で構成される。改ざん検出部170,…,170は、k=1〜Kについて、T=Sπ(k)であることを確認する(S170)。tkn≠sπ(k)nの場合には、改ざんがあったとして異常終了する。また、数値B,…,Bを新しい数値A,…,Aとし、選択手段で選択する秘密マッチング装置の組み合わせを変更すれば、この処理を繰り返すことができる(S111,S112)。 Tampering detection means, the falsification detection unit 170 1, ..., and a 170 N. The tampering detection units 170 1 ,..., 170 N confirm that T k = S π (k) for k = 1 to K (S 170). In the case of t kn ≠ s π (k) n , it is terminated abnormally because tampering has occurred. The numerical values B 1, ..., a B K new number A 1, ..., and A K, by changing the combination of the secret matching apparatus selected by the selection means, it is possible to repeat this process (S111, S112).

[その他の秘密計算]
ここでは、秘密マッチングシステムが3個の秘密マッチング装置で構成された場合の秘密計算の例を示す。また、秘密マッチング装置10,10,10の番号を固定する必要はないので、秘密マッチング装置10α,10β,10γと表現することにする。つまり、(α,β,γ)は、(1,2,3)、(2,3,1)、(3,1,2)のいずれかである。
[Other secret calculations]
Here, an example of secret calculation when the secret matching system is configured by three secret matching devices will be described. Further, since it is not necessary to fix the numbers of the secret matching devices 10 1 , 10 2 , and 10 3 , they are expressed as secret matching devices 10 α , 10 β , and 10 γ . That is, (α, β, γ) is any one of (1, 2, 3), (2, 3, 1), and (3, 1, 2).

以下の秘密計算では、秘密マッチング装置10α,10β,10γが分散して記録する数値Aの断片を(aγα,aαβ)、(aαβ,aβγ)、(aβγ,aγα)、数値Bの断片を(bγα,bαβ)、(bαβ,bβγ)、(bβγ,bγα)、数値Cの断片を(cγα,cαβ)、(cαβ,cβγ)、(cβγ,cγα)とする。なお、以下の説明では、Wを2以上のあらかじめ定めた整数とし、計算結果はWで除した余りである。言い換えると、以下の説明の計算式では“mod W”を省略している。 In the following secret calculation, the fragments of the numerical value A recorded by the secret matching devices 10 α , 10 β , 10 γ in a distributed manner are (a γα , a αβ ), (a αβ , a βγ ), (a βγ , a γα ), The fragments of the numerical value B are (b γα , b αβ ), (b αβ , b βγ ), (b βγ , b γα ), the fragments of the numerical value C are (c γα , c αβ ), (c αβ , c βγ). ), (C βγ , c γα ). In the following description, W is a predetermined integer of 2 or more, and the calculation result is a remainder obtained by dividing by W. In other words, “mod W” is omitted in the calculation formula described below.

数値Aの秘密分散
(1)乱数aαβ,aβγを生成する。
(2)aγα=A−aαβ−aβγを計算し、断片を(aγα,aαβ)、(aαβ,aβγ)、(aβγ,aγα)とし、秘密マッチング装置10α,10β,10γに分散して記録する。
Secret sharing of numerical value A (1) Random numbers a αβ and a βγ are generated.
(2) a γα = computes the A-a αβ -a βγ, fragments (a γα, a αβ), (a αβ, a βγ), and (a βγ, a γα), the secret matching apparatus 10 alpha, 10 β, distributed and recorded in the 10 γ.

数値Aの復元
(1)秘密マッチング装置10αは秘密マッチング装置10βにaγαを送信し、秘密マッチング装置10γにaαβを送信する。秘密マッチング装置10βは秘密マッチング装置10γにaαβを送信し、秘密マッチング装置10αにaβγを送信する。秘密マッチング装置10γは秘密マッチング装置10αにaβγを送信し、秘密マッチング装置10βにaγαを送信する。
(2)秘密マッチング装置10αは秘密マッチング装置10βから受信したaβγと秘密マッチング装置10γから受信したaβγとが一致していれば、aαβ+aβγ+aγαを計算して数値Aを復元する。秘密マッチング装置10βは秘密マッチング装置10γから受信したaγαと秘密マッチング装置10αから受信したaγαとが一致していれば、aαβ+aβγ+aγαを計算して数値Aを復元する。秘密マッチング装置10γは秘密マッチング装置10αから受信したaαβと秘密マッチング装置10βから受信したaαβとが一致していれば、aαβ+aβγ+aγαを計算して数値Aを復元する。
Restoring numbers A (1) Secret matching device 10 alpha sends a Ganmaarufa secret matching device 10 beta, and transmits the a .alpha..beta secret matching device 10 gamma. The secret matching device 10 β transmits a αβ to the secret matching device 10 γ , and transmits a βγ to the secret matching device 10 α . The secret matching device 10 γ transmits a βγ to the secret matching device 10 α and transmits a γα to the secret matching device 10 β .
(2) If the secret matching device 10 alpha they match and the a [beta] [gamma] received a [beta] [gamma] and from a secret matching apparatus 10 gamma received from the secret matching device 10 beta, numerical by calculating a αβ + a βγ + a γα A To restore. The secret matching device 10 beta they match and the a Ganmaarufa received a Ganmaarufa and from a secret matching apparatus 10 alpha received from the secret matching device 10 gamma, restores the numeric A by calculating a αβ + a βγ + a γα . The secret matching device 10 gamma they match and the a .alpha..beta received a .alpha..beta and from a secret matching apparatus 10 beta received from the secret matching device 10 alpha, restores the numeric A by calculating a αβ + a βγ + a γα .

C=A+Bの秘密計算
(1)秘密マッチング装置10αは(cγα,cαβ)=(aγα+bγα,aαβ+bαβ)を計算して記録し、秘密マッチング装置10βは(cαβ,cβγ)=(aαβ+bαβ,aβγ+bβγ)を計算して記録し、秘密マッチング装置10γは(cβγ,cγα)=(aβγ+bβγ,aγα+bγα)を計算して記録する。
C = A + B Secret Calculation (1) The secret matching device 10 α calculates and records (c γα , c αβ ) = (a γα + b γα , a αβ + b αβ ), and the secret matching device 10 β (c αβ , C βγ ) = (a αβ + b αβ , a βγ + b βγ ), and the secret matching device 10 γ calculates (c βγ , c γα ) = (a βγ + b βγ , a γα + b γα ). And record.

C=A−Bの秘密計算
(1)秘密マッチング装置10αは(cγα,cαβ)=(aγα−bγα,aαβ−bαβ)を計算して記録し、秘密マッチング装置10βは(cαβ,cβγ)=(aαβ−bαβ,aβγ−bβγ)を計算して記録し、秘密マッチング装置10γは(cβγ,cγα)=(aβγ−bβγ,aγα−bγα)を計算して記録する。
C = A−B secret calculation (1) The secret matching device 10 α calculates and records (c γα , c αβ ) = (a γα -b γα , a αβ -b αβ ), and the secret matching device 10 β (C αβ , c βγ ) = (a αβ −b αβ , a βγ −b βγ ) is calculated and recorded, and the secret matching device 10 γ is (c βγ , c γα ) = (a βγ −b βγ , aγα− bγα ) is calculated and recorded.

C=A+Sの秘密計算(ただし、Sは既知の定数)
(1)秘密マッチング装置10αは(cγα,cαβ)=(aγα+S,aαβ)を計算して記録し、秘密マッチング装置10γは(cβγ,cγα)=(aβγ,aγα+S)を計算して記録する。秘密マッチング装置10βの処理はない。
Secret calculation of C = A + S (where S is a known constant)
(1) The secret matching device 10 α calculates and records (c γα , c αβ ) = (a γα + S, a αβ ), and the secret matching device 10 γ has (c βγ , c γα ) = (a βγ , a γα + S) is calculated and recorded. There is no processing of the secret matching device 10β .

C=ASの秘密計算(ただし、Sは既知の定数)
(1)秘密マッチング装置10αは(cγα,cαβ)=(aγαS,aαβS)を計算して記録し、秘密マッチング装置10βは(cαβ,cβγ)=(aαβS,aβγS)を計算して記録し、秘密マッチング装置10γは(cβγ,cγα)=(aβγS,aγαS)を計算して記録する。
C = AS secret calculation (where S is a known constant)
(1) The secret matching device 10 α calculates and records (c γα , c αβ ) = (a γα S, a αβ S), and the secret matching device 10 β has (c αβ , c βγ ) = (a αβ S, a βγ S) is calculated and recorded, and the secret matching device 10 γ calculates and records (c βγ , c γα ) = (a βγ S, a γα S).

C=ABの秘密計算
(1)秘密マッチング装置10αは、乱数r,r,cγαを生成し、cαβ=(aγα+aαβ)(bγα+bαβ)−r−r−cγαを計算する。そして、秘密マッチング装置10αは、秘密マッチング装置10βに(r,cαβ)を、秘密マッチング装置10γに(r,cγα)を送信する。
(2)秘密マッチング装置10βは、y=aαββγ+aβγαβ+rを計算し、秘密マッチング装置10γに送信する。
(3)秘密マッチング装置10γは、z=aβγγα+aγαβγ+rを計算し、秘密マッチング装置10αに送信する。
(4)秘密マッチング装置10βと秘密マッチング装置10γは、それぞれcβγ=y+z+aβγβγを計算する。
(5)秘密マッチング装置10αは(cγα,cαβ)を記録し、秘密マッチング装置10βは(cαβ,cβγ)を記録し、秘密マッチング装置10γは(cβγ,cγα)を記録する。
C = AB Secret Calculation (1) The secret matching device 10 α generates random numbers r 1 , r 2 , c γα , and c αβ = (a γα + a αβ ) (b γα + b αβ ) −r 1 −r 2 -C Calculate γα . Then, the secret matching device 10 alpha is the secret matching device 10 beta a (r 1, c αβ), and transmits the secret matching device 10 gamma a (r 2, c γα).
(2) The secret matching device 10 β calculates y = a αβ b βγ + a βγ b αβ + r 1 and transmits it to the secret matching device 10 γ .
(3) the secret matching device 10 gamma, calculates a z = a βγ b γα + a γα b βγ + r 2, and transmits the secret matching device 10 alpha.
(4) The secret matching device 10 β and the secret matching device 10 γ calculate c βγ = y + z + a βγ b βγ , respectively.
(5) The secret matching device 10 α records (c γα , c αβ ), the secret matching device 10 β records (c αβ , c βγ ), and the secret matching device 10 γ is (c βγ , c γα ). Record.

ビットAの否定(C=1−A)の秘密計算
秘密マッチング装置10α
(cγα,cαβ)=(1−aγα,−aαβ mod W)
を計算して記録し、秘密マッチング装置10β
(cαβ,cβγ)=(−aαβ mod W,−aβγ mod W)
を計算して記録し、秘密マッチング装置10γ
(cβγ,cγα)=(−aβγ mod W,1−aγα
を計算して記録する。
Secret calculation of negation of bit A (C = 1−A) The secret matching device 10 α is (c γα , c αβ ) = (1−a γα , −a αβ mod W).
Is calculated and recorded, and the secret matching device 10 β is (c αβ , c βγ ) = (− a αβ mod W, −a βγ mod W)
The secret matching device 10 γ calculates (c βγ , c γα ) = (− a βγ mod W, 1−a γα ).
Calculate and record.

ビットの論理積(C=A∧B=AB)の秘密計算
秘密マッチング装置10α,10β,10γは、整数の乗算(C=AB mod W)の秘密計算と同じ処理を行う。
Secure computing <br/> secret matching apparatus 10 bit logical product (C = A∧B = AB) α , 10 β, is 10 gamma, the same processing as secure computing integer multiplication (C = AB mod W) Do.

ビットの論理和(C=A∨B=A+B−AB)の秘密計算
(1)秘密マッチング装置10α,10β,10γは、整数の加算(C=A+B mod W)の秘密計算と同じ処理を行い、C’=A+Bの結果として、秘密マッチング装置10αが断片(cγα’,cαβ’)を、秘密マッチング装置10βが断片(cαβ’,cβγ’)を、秘密マッチング装置10γが断片(cβγ’,cγα’)を記録する。また、秘密マッチング装置10α,10β,10γは、整数の乗算(C=AB mod W)の秘密計算と同じ処理を行い、C”=ABの結果として、秘密マッチング装置10αが断片(cγα”,cαβ”)を、秘密マッチング装置10βが断片(cαβ”,cβγ”)を、秘密マッチング装置10γが断片(cβγ”,cγα”)を記録する。
(2)秘密マッチング装置10α,10β,10γは、S=−1として整数の乗算(C=AS mod W)の秘密計算(ただし、Sは既知の定数)と同じ処理を行い、C’’’=−C”の結果として、秘密マッチング装置10αが断片(cγα’’’,cαβ’’’)を、秘密マッチング装置10βが断片(cαβ’’’,cβγ’’’)を、秘密マッチング装置10γが断片(cβγ’’’,cγα’’’)を記録する。
(3)秘密マッチング装置10α,10β,10γは、整数の加算(C=A+B mod W)の秘密計算と同じ処理を行い、C=C’+C’’’の結果として、秘密マッチング装置10αが断片(cγα,cαβ)を、秘密マッチング装置10βが断片(cαβ,cβγ)を、秘密マッチング装置10γが断片(cβγ,cγα)を記録する。
Secret calculation of logical OR of bits (C = A∨B = A + B−AB) (1) The secret matching devices 10 α , 10 β , 10 γ are the same processing as the secret calculation of integer addition (C = A + B mod W) As a result of C ′ = A + B, the secret matching device 10 α uses the fragment (c γα ′, c αβ ′), the secret matching device 10 β uses the fragment (c αβ ′, c βγ ′), and the secret matching device 10 γ records the fragment (c βγ ′, c γα ′). The secret matching devices 10 α , 10 β , 10 γ perform the same processing as the secret calculation of integer multiplication (C = AB mod W), and as a result of C ″ = AB, the secret matching device 10 α is a fragment ( c γα ″, c αβ ″), the secret matching device 10 β records the fragment (c αβ ″, c βγ ″), and the secret matching device 10 γ records the fragment (c βγ ″, c γα ″).
(2) The secret matching devices 10 α , 10 β , and 10 γ perform the same process as the secret calculation (where S is a known constant) of integer multiplication (C = AS mod W) with S = −1. As a result of '''=-C'', the secret matching device 10 α is a fragment (c γα ''', c αβ '''), and the secret matching device 10 β is a fragment (c αβ ''', c βγ ' ″), The secret matching device 10 γ records the fragments (c βγ ′ ″, c γα ′ ″).
(3) The secret matching devices 10 α , 10 β , 10 γ perform the same processing as the secret calculation of integer addition (C = A + B mod W), and as a result of C = C ′ + C ′ ″, the secret matching device 10 α records the fragment (c γα , c αβ ), the secret matching device 10 β records the fragment (c αβ , c βγ ), and the secret matching device 10 γ records the fragment (c βγ , c γα ).

ビットの排他的論理和(C=A[∨]B=A+B−2AB)の秘密計算
(1)秘密マッチング装置10α,10β,10γは、整数の加算(C=A+B mod W)の秘密計算と同じ処理を行い、C’=A+Bの結果として、秘密マッチング装置10αが断片(cγα’,cαβ’)を、秘密マッチング装置10βが断片(cαβ’,cβγ’)を、秘密マッチング装置10γが断片(cβγ’,cγα’)を記録する。また、秘密マッチング装置10α,10β,10γは、整数の乗算(C=AB mod W)の秘密計算と同じ処理を行い、C”=ABの結果として、秘密マッチング装置10αが断片(cγα”,cαβ”)を、秘密マッチング装置10βが断片(cαβ”,cβγ”)を、秘密マッチング装置10γが断片(cβγ”,cγα”)を記録する。
(2)秘密マッチング装置10α,10β,10γは、S=−2として整数の乗算(C=AS mod W)の秘密計算(ただし、Sは既知の定数)の秘密計算と同じ処理を行い、C’’’=−2C”の結果として、秘密マッチング装置10αが断片(cγα’’’,cαβ’’’)を、秘密マッチング装置10βが断片(cαβ’’’,cβγ’’’)を、秘密マッチング装置10γが断片(cβγ’’’,cγα’’’)を記録する。
(3)秘密マッチング装置10α,10β,10γは、整数の加算(C=A+B mod W)の秘密計算と同じ処理を行い、C=C’+C’’’の結果として、秘密マッチング装置10αが断片(cγα,cαβ)を、秘密マッチング装置10βが断片(cαβ,cβγ)を、秘密マッチング装置10γが断片(cβγ,cγα)を記録する。
Secret calculation of exclusive OR of bits (C = A [∨] B = A + B-2AB) (1) Secret matching devices 10 α , 10 β , 10 γ are secrets of integer addition (C = A + B mod W) The same processing as the calculation is performed, and as a result of C ′ = A + B, the secret matching device 10 α uses the fragment (c γα ′, c αβ ′), and the secret matching device 10 β uses the fragment (c αβ ′, c βγ ′). The secret matching device 10 γ records the fragment (c βγ ′, c γα ′). The secret matching devices 10 α , 10 β , 10 γ perform the same processing as the secret calculation of integer multiplication (C = AB mod W), and as a result of C ″ = AB, the secret matching device 10 α is a fragment ( c γα ″, c αβ ″), the secret matching device 10 β records the fragment (c αβ ″, c βγ ″), and the secret matching device 10 γ records the fragment (c βγ ″, c γα ″).
(2) The secret matching devices 10 α , 10 β , and 10 γ perform the same processing as the secret calculation of an integer multiplication (C = AS mod W) with S = -2 (where S is a known constant). As a result of C ″ ′ = − 2C ″, the secret matching device 10 α is a fragment (c γα ′ ″, c αβ ′ ″), and the secret matching device 10 β is a fragment (c αβ ′ ″, c βγ '''), the secret matching device 10 γ records the fragments (c βγ ''', c γα ''').
(3) The secret matching devices 10 α , 10 β , 10 γ perform the same processing as the secret calculation of integer addition (C = A + B mod W), and as a result of C = C ′ + C ′ ″, the secret matching device 10 α records the fragment (c γα , c αβ ), the secret matching device 10 β records the fragment (c αβ , c βγ ), and the secret matching device 10 γ records the fragment (c βγ , c γα ).

ビットA(n),n=0,…,N−1の整数変換の秘密計算
ビットA(n)の整数変換とは、
Secret calculation of integer conversion of bits A (n), n = 0,..., N−1 Integer conversion of bits A (n) is

Figure 0005506705
Figure 0005506705

を求めることである。また、秘密マッチング装置10α,10β,10γが分散して記録するビットA(n)の断片を(a(n)γα,a(n)αβ)、(a(n)αβ,a(n)βγ)、(a(n)βγ,a(n)γα)とする。秘密マッチング装置10αは、 Is to seek. Further, the fragments of the bits A (n) recorded by the secret matching devices 10 α , 10 β , 10 γ in a distributed manner are represented as (a (n) γα , a (n) αβ ), (a (n) αβ , a ( n) βγ ), (a (n) βγ , a (n) γα ). The secret matching device 10 α

Figure 0005506705
Figure 0005506705

を計算して記録し、秘密マッチング装置10βThe secret matching device 10 β is calculated and recorded

Figure 0005506705
Figure 0005506705

を計算して記録し、秘密マッチング装置10γThe secret matching device 10 γ calculates and records

Figure 0005506705
Figure 0005506705

を計算して記録する。 Calculate and record.

Nビットの整数Aの二進数変換の秘密計算
x(n)は、xの下位n+1番目のビットを示すものとする。
(1)n=0からN−1について、秘密マッチング装置10βが(aαβ+aβγ mod W)(n)を秘密分散し、秘密マッチング装置10α,10β,10γが(aαβ+aβγ mod W)(n)の断片(b(n)γα,b(n)αβ)、(b(n)αβ,b(n)βγ)、(b(n)βγ,b(n)γα)を分散して記録する。n=0からN−1について、秘密マッチング装置10γが(aγα)(n)を秘密分散し、秘密マッチング装置10α,10β,10γが(aγα)(n)の断片((aγα)(n)γα,(aγα)(n)αβ)、((aγα)(n)αβ,(aγα)(n)βγ)、((aγα)(n)βγ,(aγα)(n)γα)を分散して記録する。
(2)cγα=0とし、n=0からN−1について(2−1)から(2−3)の処理を繰返し実行する。
(2−1)d=b(n)+(aγα)(n)−2b(n)(aγα)(n)
の秘密計算を実行し、dの断片を分散して記録する。
(2−2)a(n)=d+c−2d
の秘密計算を実行し、a(n)の断片を分散して記録する。
(2−3)n<N−1であれば、
n+1=b(n)(aγα)(n)+d−b(n)(aγα)(n)d
の秘密計算を実行し、cn+1の断片を分散して記録する。
The secret calculation x (n) of the binary conversion of the N-bit integer A shall indicate the lower n + 1th bit of x.
(1) For n = 0 to N−1, the secret matching device 10 β secretly distributes (a αβ + a βγ mod W) (n), and the secret matching devices 10 α , 10 β , 10 γ are (a αβ + a βγ mod W) (n) fragments (b (n) γα , b (n) αβ ), (b (n) αβ , b (n) βγ ), (b (n) βγ , b (n) γα ) Are distributed and recorded. For n = 0 to N−1, the secret matching device 10 γ secretly distributes (a γα ) (n), and the secret matching devices 10 α , 10 β , 10 γ are fragments of (a γα ) (n) (( aγα ) (n) γα , ( aγα ) (n) αβ ), (( aγα ) (n) αβ , ( aγα ) (n) βγ ), (( aγα ) (n) βγ , (a γα ) (n) γα ) are dispersed and recorded.
(2) c γα = 0, and the processes from (2-1) to (2-3) are repeatedly executed for n = 0 to N-1.
(2-1) d n = b (n) + (a γα ) (n) -2b (n) (a γα ) (n)
And dn fragments are distributed and recorded.
(2-2) a (n) = d n + c n -2d n c n
The secret calculation is performed and the pieces of a (n) are distributed and recorded.
(2-3) If n <N-1,
c n + 1 = b (n ) (a γα) (n) + d n c n -b (n) (a γα) (n) d n c n
And cn + 1 fragments are distributed and recorded.

[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
[Program, recording medium]
The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.
Further, when the above-described configuration is realized by a computer, processing contents of functions that each device should have are described by a program. The processing functions are realized on the computer by executing the program on the computer.
The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

10,…,10,20,…,20,30,…,30 秘密マッチング装置
100,…,100 秘密分散装置 105 選択手段
110,…,110 断片置換部 120,…,120 再分散部
130,…,130 初期情報分散部 140,…,140 初期乗算部
150,…,150 確認分散部 160,…,160 確認乗算部
170,…,170 改ざん検出部 190,…,190 記録部
300,…,300,400,…,400,500,…,500 マッチング制御部
310 対応用ベクトル生成手段 310,…,310 対応用ベクトル生成部
320 対応用ランダム置換手段 320,…,320 対応用ランダム置換部
330 対応用ベクトル復号手段 330,…,330 対応用ベクトル復号部
340 対応用並び替え手段 340,…,340 対応用並び替え部
405,505 表分割手段
405,…,405,505,…,505 表分割部
450 ベクトル結合手段 450,…,450 ベクトル結合部
460 表結合手段 460,…,460 表結合部
470 表ランダム置換手段 470,…,470 表ランダム置換部
480 ソート用ベクトル復号手段
480,…,480 ソート用ベクトル復号部
490 ソート手段 490,…,490 ソート部
520 処理用ランダム置換手段 520,…,520 処理用ランダム置換部
530 処理用ベクトル復号手段 530,…,530 処理用ベクトル復号部
540 処理用並び替え手段 540,…,540 処理用並び替え部
550 処理用ベクトル対応手段 550,…,550 処理用ベクトル対応部
560 処理手段 560,…,560 処理部
570 処理用繰返手段 570,…,570 処理用繰返部
1000 ネットワーク
10 1, ..., 10 N, 20 1, ..., 20 N, 30 1, ..., 30 N secret matching device 100 1, ..., 100 N secret sharing device 105 selecting unit 110 1, ..., 110 N fragment replacement unit 120 1, ..., 120 N redispersion unit 130 1, ..., 130 N initial information distribution unit 140 1, ..., 140 N initial multiplication unit 150 1, ..., 150 N confirmation dispersion unit 160 1, ..., 160 N confirmation multiplying unit 170 1, ..., 170 N falsification detecting unit 190 1, ..., 190 N recording unit 300 1, ..., 300 N, 400 1, ..., 400 N, 500 1, ..., 500 N matching control unit 310 corresponding vector generation It means 310 1, ..., 310 N corresponding vector generation unit 320 corresponds for random permutation unit 320 1, ..., 320 N correspond for random replacement unit 330 corresponds for vector Le decoding means 330 1, ..., 330 N correspond for vector decoding unit 340 corresponds for rearranging unit 340 1, ..., 340 N correspond for rearranging unit 405, 505 Table dividing means 405 1, ..., 405 N, 505 1, ..., 505 N table partitioning unit 450 Vector combining unit 450 1 , ..., 450 N vector combining unit 460 Table combining unit 460 1 , ..., 460 N Table combining unit 470 Table random replacement unit 470 1 , ..., 470 N table random replacement part 480 for sorting vector decoding unit 480 1, ..., 480 N sorting vector decoding unit 490 sorting unit 490 1, ..., 490 N sorting unit 520 for processing a random permutation unit 520 1, ..., 520 N processing random permutation unit 530 processing vector decoding unit 530 1, ..., 530 N processing vector decoding unit 540 for processing Beauty Sort unit 540 1, ..., 540 N processing rearranging unit 550 processing vector corresponding means 550 1, ..., 550 N processing vector corresponding unit 560 processing unit 560 1, ..., 560 N processor 570 for processing repetitive Means 570 1 ,..., 570 N processing repeater 1000 network

Claims (8)

3個以上の秘密マッチング装置で構成され、それぞれM個のレコードからなりレコード同士が対応付けられているJ個の表[X],…,[X]に対して所定の処理が施された後の表[X1S],…,[XJS]から、対応付けられているレコードが同じ順番となるように表X1S,…,XJSのレコードを並び替えた表に対応する秘密分散された表を計算する秘密マッチングシステムであって、
Mは2以上の整数、Jは2以上の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、前記所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は前記所定の処理後のベクトル[h]に対応するベクトル、[XjS]は前記所定の処理後の表[X]に対応する表とし、
前記3個以上の秘密マッチング装置は、それぞれ、
M個の異なる値を要素に持つベクトルhを生成し、ベクトルhの各要素を秘密分散してベクトル[h]を求め、ベクトル[h]をランダム置換してベクトル[h]を求め、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに、前記所定の処理を施しても対応が維持されるように対応付ける対応用ベクトル生成手段と、
j=1〜Jについて、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求める対応用ランダム置換手段と、
ベクトル[h1R],…,[hJR]を復号し、ベクトルh1R,…,hJRを求める対応用ベクトル復号手段と、
すべてのjとiの組合せに対してhjR=hiRとなるように表[XjR]のレコードを並び替える対応用並び替え手段と、
を備える秘密マッチングシステム。
Predetermined processing is performed on J tables [X 1 ],..., [X J ], each of which is composed of three or more secret matching devices, each consisting of M records and associated with each other. Table [X 1S] of after, ..., from the [X JS], Table X 1S to record that is associated becomes the same order, ..., secret sharing corresponding to the table that sorts the records of X JS A secret matching system for calculating a generated table,
M is an integer greater than or equal to 2, J is an integer greater than or equal to 2, i and j are integers greater than or equal to 1 and less than or equal to J, [] is a symbol indicating information in which information in parentheses is secretly distributed for each element, and the predetermined processing is Including a process for rearranging records for at least one table, [h jS ] is a vector corresponding to the vector [h j ] after the predetermined process, and [X jS ] is after the predetermined process A table corresponding to the table [X j ] of
Each of the three or more secret matching devices is
Generates a vector h a having M different values to the element, obtains the vector [h a] each element of the vector h a by secret sharing, the vector [h a] a by random permutation vector [h] For j = 1 to J, the correspondence between the elements of the same vector [h j ] as the vector [h] is maintained even if the predetermined processing is performed on each record of the table [X j ]. A corresponding vector generating means for matching;
For j = 1 to J, Table [X jS] vector randomly replacing the records in [h jS] and corresponding to remain secure computing maintaining the random substituted table [X jR] vector [h jR] And a corresponding random replacement means for obtaining
Vector [h 1R], ..., and decodes the [h JR], and corresponding for vector decoding means for obtaining vector h 1R, ..., a h JR,
Corresponding sorting means for sorting the records in the table [X jR ] so that h jR = h iR for all combinations of j and i;
Secret matching system with
請求項1記載の秘密マッチングシステムであって、
J=2であり、前記所定の処理は、M個のレコードを持つ表[X]の各レコードの一部または全部の要素を用いたソートを含み、表[X]に対しては何も行わないものであり、
さらに、
前記3個以上の秘密マッチング装置は、それぞれ、
表[X]を、前記の表[X]と前記の表[X]に、表[X]が少なくとも前記所定の処理に用いる要素を含むように分割する表分割手段と、
異なる値を持つM個の要素からなるベクトルcを作成し、各要素を秘密分散してベクトル[c]を求め、前記所定の処理の後に、ベクトル[c]の各要素を表[X1S]の各レコード対応が維持されるように対応付けするベクトル結合手段と、
前記対応用並び替え手段の処理後の表[X1R],[X2R]を結合して表[X]とする表結合手段と、
表[X]のレコード間を秘密計算でランダム置換し、表[XRR]を求める表ランダム置換手段と、
前記表[X1S]に対応付けされた前記ベクトル[c]の表ランダム置換手段の処理後のベクトル[cRR]を復号し、ベクトルcRRを求めるソート用ベクトル復号手段と、
ベクトルcRRの各要素がベクトルcの各要素と一致するように、表[XRR]の各レコードを移動するソート手段と、
を備える秘密マッチングシステム。
The secret matching system according to claim 1,
J = 2, and the predetermined processing includes sorting using some or all elements of each record of the table [X 1 ] having M records, and for the table [X 2 ], Is not done,
further,
Each of the three or more secret matching devices is
A table dividing means for dividing the table [X] into the table [X 1 ] and the table [X 2 ] so that the table [X 1 ] includes at least an element used for the predetermined processing;
A vector c composed of M elements having different values is created, each element is secretly distributed to obtain a vector [c], and after the predetermined processing, each element of the vector [c] is represented in a table [X 1S ]. A vector combining means for associating the records so that the correspondence between the records is maintained,
Table joining means that joins the tables [X 1R ] and [X 2R ] after the processing of the corresponding sorting means into a table [X R ];
Random replacement means for randomly replacing the records in the table [X R ] by secret calculation to obtain the table [X RR ];
A vector decoding means for sorting for decoding the vector [c RR ] after the processing of the table random permutation means for the vector [c] associated with the table [X 1S ], and obtaining the vector c RR ;
Sorting means for moving each record of the table [X RR ] so that each element of the vector c RR matches each element of the vector c;
Secret matching system with
請求項1記載の秘密マッチングシステムであって、
前記所定の処理はB個の処理F,…,Fからなり、処理FはM個のレコードを持つ表[X],…,[X]の一部または全部を用いる処理Fごとに定められた処理、Bは1以上の整数、bは1以上B以下の整数、Dは1以上J以下の整数、dは1以上D以下の整数、b(1),…,b(D)は1以上D以下の異なる整数、D’は1以上の整数とし、
さらに、
前記3個以上の秘密マッチング装置は、それぞれ、
表[X]をJ個に分割して前記の表[X],…,[X]を求める表分割手段と、
処理Fに必要な要素を有する表[Xb(1)],…,[Xb(D)]を選び、b(d)=b(1),…,b(D)について、表[Xb(d)]とベクトル[hb(d)]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[Xb(d)R]とベクトル[hb(d)R]とを求める処理用ランダム置換手段と、
ベクトル[hb(1)R],…,[hb(D)R]を復号し、ベクトルhb(1)R,…,hb(D)Rを求める処理用ベクトル復号手段と、
すべてのb(i)とb(d)の組合せ(ただし、ここでのiは1,…,Dのいずれか)に対してhb(i)R=hb(d)Rとなるように表[Xb(d)R]のレコードを並び替え、表[Xb(1)T],…,[Xb(D)T]を得る処理用並び替え手段と、
ベクトルhb(i)Rの各要素を秘密分散したベクトル[hb(i)R]の各要素を表[Xb(1)T],…,[Xb(D)T]の各レコードに、処理Fを施しても対応が維持されるように対応付ける処理用ベクトル対応手段と、
ベクトル[hb(i)R]が対応付けられた表[Xb(1)T],…,[Xb(D)T]に対して処理Fを行って、処理F後のベクトル[hb(i)F]が対応付けられた処理F後の表[Xb(1)F],…,[Xb(D’)F]を求め、処理F前のJ個の表の中から0個以上、処理F後のD’個の表の中から1個以上となるように、あらかじめ定めたJ’個のベクトルと表を抽出し、J’を新しいJに更新し、処理F後のベクトル[hjbS]と表[X1bS],…,[XJbS]を求める処理手段と、
b=Bかを確認し、Yesの場合はベクトル[hjbS]をベクトル[hjS]、表[X1bS],…,[XJbS]を表[X1S],…,[XJS]とし、Noの場合はベクトル[hjbS]をベクトル[h]、表[X1bS],…,[XJbS]を表[X],…,[X]とし、b=1からBについて、前記処理用ランダム置換手段、前記処理用ベクトル復号手段、前記処理用並び替え手段、前記処理用ベクトル対応手段、前記処理手段の処理を繰り返す処理用繰返手段と、
を備える秘密マッチングシステム。
The secret matching system according to claim 1,
Wherein the predetermined processing is B-number of process F 1, ..., consist F B, process F b is a table with the M records [X 1], ..., [ X J] process F using some or all of the Processing determined for each b , B is an integer of 1 or more, b is an integer of 1 to B, D is an integer of 1 to J, d is an integer of 1 to D, b (1),. (D) is a different integer from 1 to D, D ′ is an integer from 1 to
further,
Each of the three or more secret matching devices is
A table dividing means for dividing the table [X] into J pieces to obtain the table [X 1 ],..., [X J ];
[X b (1) ],..., [X b (D) ] having elements necessary for the process F b is selected, and b [d) = b (1),. X b (d) ] and the vector [h b (d) ] are maintained, and the records are randomly replaced by secret calculation, and the randomly replaced table [X b (d) R ] and the vector [h b (D) a random replacement means for processing to obtain R ];
Processing vector decoding means for decoding vectors [h b (1) R ],..., [H b (D) R ] to obtain vectors h b (1) R ,..., H b (D) R ;
H b (i) R = h b (d) R for all combinations of b (i) and b (d) (where i is 1, ..., D ) Reordering means for processing to reorder the records of the table [ Xb (d) R ] to obtain the tables [ Xb (1) T ],..., [ Xb (D) T ];
Vector h b (i) each element of a vector the elements were secret sharing of R [h b (i) R ] Table [X b (1) T] , ..., each record in the [X b (D) T] And a processing vector correspondence means for associating so that the correspondence is maintained even if the processing F b is performed,
Vector [h b (i) R] table associated [X b (1) T] , ..., performs processing F b against [X b (D) T] , vector after processing F b [h b (i) F] Table after treatment F b associated is [X b (1) F] , ..., determine the [X b (D ') F ], processing F b before the J Table of 0 or more from, 'so that among the pieces of table with one or more, predetermined J' D after treatment F b extracts the number of vectors and tables, the J 'on the new J updating Processing means for obtaining a vector [h jbS ] and a table [X 1bS ],..., [X JbS ] after the process F b ;
b = either verify B, vector in the case of Yes [h jbS] vector [h jS], Table [X 1bS], ..., [ X JbS] Table [X 1S] a, ..., a [X JS] , No, the vector [h jbS ] is the vector [h j ], the table [X 1bS ],..., [X JbS ] is the table [X 1 ], ..., [X J ], and b = 1 to B The processing random replacement means, the processing vector decoding means, the processing rearranging means, the processing vector corresponding means, a processing repeating means for repeating the processing of the processing means,
Secret matching system with
M個のレコードからなりレコード同士が対応付けられているJ個の表[X],…,[X]に対して所定の処理が施された後の表[X1S],…,[XJS]から、対応付けられているレコードが同じ順番となるように表X1S,…,XJSのレコードを並び替えた表に対応する秘密分散された表を計算する3個以上の秘密マッチング装置で構成される秘密マッチングシステムの中の秘密マッチング装置であって、
Mは2以上の整数、Jは2以上の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、前記所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は前記所定の処理後のベクトル[h]に対応するベクトル、[XjS]は前記所定の処理後の表[X]に対応する表とし、
M個の異なる値を要素に持つベクトルhを生成し、ベクトルhの各要素を秘密分散してベクトル[h]を求め、ベクトル[h]をランダム置換してベクトル[h]を求め、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに、前記所定の処理を施しても対応が維持されるように対応付けるための対応用ベクトル生成部と、
j=1〜Jについて、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求めるための対応用ランダム置換部と、
ベクトル[h1R],…,[hJR]を復号し、ベクトルh1R,…,hJRを求めるための対応用ベクトル復号部と、
すべてのjとiの組合せに対してhjR=hiRとなるように表[XjR]のレコードを並び替えるための対応用並び替え部と、
を備える秘密マッチング装置。
Tables [X 1S ],..., [ C ] after predetermined processing is performed on J tables [X 1 ],..., [X J ] composed of M records and associated with each other. X JS ] to calculate a secret-distributed table corresponding to a table in which the records of the tables X 1S ,..., X JS are rearranged so that the associated records are in the same order. A secret matching device in a secret matching system composed of devices,
M is an integer greater than or equal to 2, J is an integer greater than or equal to 2, i and j are integers greater than or equal to 1 and less than or equal to J, [] is a symbol indicating information in which information in parentheses is secretly distributed for each element, and the predetermined processing is Including a process for rearranging records for at least one table, [h jS ] is a vector corresponding to the vector [h j ] after the predetermined process, and [X jS ] is after the predetermined process A table corresponding to the table [X j ] of
Generates a vector h a having M different values to the element, obtains the vector [h a] each element of the vector h a by secret sharing, the vector [h a] a by random permutation vector [h] For j = 1 to J, the correspondence between the elements of the same vector [h j ] as the vector [h] is maintained even if the predetermined processing is performed on each record of the table [X j ]. A corresponding vector generation unit for associating;
For j = 1 to J, Table [X jS] vector randomly replacing the records in [h jS] and corresponding to remain secure computing maintaining the random substituted table [X jR] vector [h jR] And a corresponding random replacement part for obtaining
Vector [h 1R], ..., and decodes the [h JR], vector h 1R, ..., and corresponding for vector decoding unit for determining the h JR,
A corresponding sorting unit for sorting the records in the table [X jR ] so that h jR = h iR for all combinations of j and i;
A secret matching device comprising:
3個以上の秘密マッチング装置を用いて、それぞれM個のレコードからなりレコード同士が対応付けられているJ個の表[X],…,[X]に対して所定の処理が施された後の表[X1S],…,[XJS]から、対応付けられているレコードが同じ順番となるように表X1S,…,XJSのレコードを並び替えた表に対応する秘密分散された表を計算する秘密マッチング方法であって、
Mは2以上の整数、Jは2以上の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、前記所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は前記所定の処理後のベクトル[h]に対応するベクトル、[XjS]は前記所定の処理後の表[X]に対応する表とし、
前記3個以上の秘密マッチング装置が、それぞれ、
M個の異なる値を要素に持つベクトルhを生成し、ベクトルhの各要素を秘密分散してベクトル[h]を求め、ベクトル[h]をランダム置換してベクトル[h]を求め、j=1〜Jについて、ベクトル[h]と同一のベクトル[h]の各要素を表[X]の各レコードに、前記所定の処理を施しても対応が維持されるように対応付ける対応用ベクトル生成ステップと、
j=1〜Jについて、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求める対応用ランダム置換ステップと、
ベクトル[h1R],…,[hJR]を復号し、ベクトルh1R,…,hJRを求める対応用ベクトル復号ステップと、
すべてのjとiの組合せに対してhjR=hiRとなるように表[XjR]のレコードを並び替える対応用並び替えステップと、
実行する秘密マッチング方法。
Using three or more secret matching devices, predetermined processing is performed on J tables [X 1 ],..., [X J ] each consisting of M records and associated with each other. Table [X 1S] of after, ..., from the [X JS], Table X 1S to record that is associated becomes the same order, ..., secret sharing corresponding to the table that sorts the records of X JS A secret matching method for calculating a generated table,
M is an integer greater than or equal to 2, J is an integer greater than or equal to 2, i and j are integers greater than or equal to 1 and less than or equal to J, [] is a symbol indicating information in which information in parentheses is secretly distributed for each element, and the predetermined processing is Including a process for rearranging records for at least one table, [h jS ] is a vector corresponding to the vector [h j ] after the predetermined process, and [X jS ] is after the predetermined process A table corresponding to the table [X j ] of
Each of the three or more secret matching devices is
Generates a vector h a having M different values to the element, obtains the vector [h a] each element of the vector h a by secret sharing, the vector [h a] a by random permutation vector [h] For j = 1 to J, the correspondence between the elements of the same vector [h j ] as the vector [h] is maintained even if the predetermined processing is performed on each record of the table [X j ]. A corresponding vector generation step to be associated;
For j = 1 to J, Table [X jS] vector randomly replacing the records in [h jS] and corresponding to remain secure computing maintaining the random substituted table [X jR] vector [h jR] A corresponding random replacement step for
Vector [h 1R], ..., and decodes the [h JR], vector h 1R, ..., and corresponding for vector decoding step of obtaining a h JR,
A corresponding sorting step for sorting the records in the table [X jR ] so that h jR = h iR for all combinations of j and i;
Perform a secret matching method.
請求項5記載の秘密マッチング方法であって、
J=2であり、前記所定の処理は、M個のレコードを持つ表[X]の各レコードの一部または全部の要素を用いたソートを含み、表[X]に対しては何も行わないものであり、
前記3個以上の秘密マッチング装置が、それぞれ、
表[X]を、前記の表[X]と前記の表[X]に、表[X]が少なくとも前記所定の処理に用いる要素を含むように分割する表分割ステップと、
異なる値を持つM個の要素からなるベクトルcを作成し、各要素を秘密分散してベクトル[c]を求め、前記の表[X]に対する前記所定の処理の後に、ベクトル[c]の各要素を表[X1S]の各レコードに対応が維持されるように対応付けするベクトル結合ステップと、
前記対応用並び替えステップ後の表[X1R],[X2R]を結合して表[X]とする表結合ステップと、
表[X]のレコード間を秘密計算でランダム置換し、表[XRR]を求める表ランダム置換ステップと、
前記表[X1S]に対応付けされた前記ベクトル[c]の表ランダム置換手段の処理後のベクトル[cRR]を復号し、ベクトルcRRを求めるソート用ベクトル復号ステップと、
ベクトルcRRの各要素がベクトルcの各要素と一致するように、表[XRR]の各レコードを移動するソートステップと、
実行する秘密マッチング方法。
The secret matching method according to claim 5,
J = 2, and the predetermined processing includes sorting using some or all elements of each record of the table [X 1 ] having M records, and for the table [X 2 ], Is not done,
Each of the three or more secret matching devices is
A table dividing step of dividing the table [X] into the table [X 1 ] and the table [X 2 ] so that the table [X 1 ] includes at least an element used for the predetermined processing;
A vector c composed of M elements having different values is created, each element is secretly distributed to obtain a vector [c], and after the predetermined processing on the table [X 1 ], the vector [c] A vector combining step for associating each element with each record of the table [X 1S ] so as to maintain correspondence;
A table joining step that joins the tables [X 1R ] and [X 2R ] after the correspondence sorting step into a table [X R ];
Random replacement between records in table [X R ] by secret calculation to obtain a table [X RR ];
A vector decoding step for sorting to decode the vector [c RR ] after the processing by the table random permutation means of the vector [c] associated with the table [X 1S ] to obtain the vector c RR ;
A sorting step of moving each record of the table [X RR ] so that each element of the vector c RR matches each element of the vector c;
Perform a secret matching method.
請求項5記載の秘密マッチング方法であって、
前記所定の処理はB個の処理F,…,Fからなり、処理FはM個のレコードを持つ表[X],…,[X]の一部または全部を用いる処理Fごとに定められた処理、Bは1以上の整数、bは1以上B以下の整数、Dは1以上J以下の整数、dは1以上D以下の整数、b(1),…,b(D)は1以上D以下の異なる整数、D’は1以上の整数とし、
前記3個以上の秘密マッチング装置が、それぞれ、
表[X]をJ個に分割して前記の表[X],…,[X]を求める表分割ステップと、
処理Fに必要な要素を有する表[Xb(1)],…,[Xb(D)]を選び、b(d)=b(1),…,b(D)について、表[Xb(d)]とベクトル[hb(d)]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[Xb(d)R]とベクトル[hb(d)R]とを求める処理用ランダム置換ステップと、
ベクトル[hb(1)R],…,[hb(D)R]を復号し、ベクトルhb(1)R,…,hb(D)Rを求める処理用ベクトル復号ステップと、
すべてのb(i)とb(d)の組合せ(ただし、ここでのiは1,…,Dのいずれか)に対してhb(i)R=hb(d)Rとなるように表[Xb(d)R]のレコードを並び替え、表[Xb(1)T],…,[Xb(D)T]を得る処理用並び替えステップと、
ベクトルhb(i)Rの各要素を秘密分散したベクトル[hb(i)R]の各要素を表[Xb(1)T],…,[Xb(D)T]の各レコードに、処理Fを施しても対応が維持されるように対応付ける処理用ベクトル対応ステップと、
ベクトル[hb(i)R]が対応付けられた表[Xb(1)T],…,[Xb(D)T]に対して処理Fを行って、処理F後のベクトル[hb(i)F]が対応付けられた処理F後の表[Xb(1)F],…,[Xb(D’)F]を求め、処理F前のJ個の表の中から0個以上、処理F後のD’個の表の中から1個以上となるように、あらかじめ定めたJ’個のベクトルと表を抽出し、J’を新しいJに更新し、処理F後のベクトル[hjbS]と表[X1bS],…,[XJbS]を求める処理ステップと、
実行し
b=Bかを確認し、Yesの場合はベクトル[hjbS]をベクトル[hjS]、表[X1bS],…,[XJbS]を表[X1S],…,[XJS]とし、Noの場合はベクトル[hjbS]をベクトル[h]、表[X1bS],…,[XJbS]を表[X],…,[X]とし、b=1からBについて、前記処理用ランダム置換ステップ、前記処理用ベクトル復号ステップ、前記処理用並び替えステップ、前記処理用ベクトル対応ステップ、前記処理ステップの処理を繰り返す秘密マッチング方法。
The secret matching method according to claim 5,
Wherein the predetermined processing is B-number of process F 1, ..., consist F B, process F b is a table with the M records [X 1], ..., [ X J] process F using some or all of the Processing determined for each b , B is an integer of 1 or more, b is an integer of 1 to B, D is an integer of 1 to J, d is an integer of 1 to D, b (1),. (D) is a different integer from 1 to D, D ′ is an integer from 1 to
Each of the three or more secret matching devices is
A table division step for dividing the table [X] into J pieces to obtain the table [X 1 ],..., [X J ];
[X b (1) ],..., [X b (D) ] having elements necessary for the process F b is selected, and b [d) = b (1),. X b (d) ] and the vector [h b (d) ] are maintained, and the records are randomly replaced by secret calculation, and the randomly replaced table [X b (d) R ] and the vector [h b (D) a random replacement step for processing to obtain R ];
Decoding vectors [h b (1) R ],..., [H b (D) R ] to obtain vectors h b (1) R ,..., H b (D) R ;
H b (i) R = h b (d) R for all combinations of b (i) and b (d) (where i is 1, ..., D ) Reordering records in table [ Xb (d) R ] to obtain a table [ Xb (1) T ],..., [ Xb (D) T ];
Vector h b (i) each element of a vector the elements were secret sharing of R [h b (i) R ] Table [X b (1) T] , ..., each record in the [X b (D) T] And a processing vector corresponding step for associating such that the correspondence is maintained even if the processing F b is performed,
Vector [h b (i) R] table associated [X b (1) T] , ..., performs processing F b against [X b (D) T] , vector after processing F b [h b (i) F] Table after treatment F b associated is [X b (1) F] , ..., determine the [X b (D ') F ], processing F b before the J Table of 0 or more from, 'so that among the pieces of table with one or more, predetermined J' D after treatment F b extracts the number of vectors and tables, the J 'on the new J updating Processing steps for obtaining the vector [h jbS ] and the table [X 1bS ],..., [X JbS ] after the processing F b ;
Check executed b = B, and in the case of Yes vector [h JBS] vector [h jS], Table [X 1bS], ..., [ X JbS] Table [X 1S] a, ..., [X and JS], vector in the case of No [h jbS] vector [h j], table [X 1bS], ..., [ X JbS] Table [X 1] a, ..., a [X J], b = 1 A secret matching method that repeats the processing random replacement step, the processing vector decoding step, the processing rearrangement step, the processing vector corresponding step, and the processing step for B to B.
請求項1から3のいずれかに記載の秘密マッチングシステムの各秘密マッチング装置としてコンピュータを機能させるための秘密マッチングプログラム。   A secret matching program for causing a computer to function as each secret matching device of the secret matching system according to claim 1.
JP2011012160A 2011-01-24 2011-01-24 Secret matching system, secret matching device, secret matching method, secret matching program Active JP5506705B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011012160A JP5506705B2 (en) 2011-01-24 2011-01-24 Secret matching system, secret matching device, secret matching method, secret matching program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011012160A JP5506705B2 (en) 2011-01-24 2011-01-24 Secret matching system, secret matching device, secret matching method, secret matching program

Publications (2)

Publication Number Publication Date
JP2012155018A JP2012155018A (en) 2012-08-16
JP5506705B2 true JP5506705B2 (en) 2014-05-28

Family

ID=46836829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011012160A Active JP5506705B2 (en) 2011-01-24 2011-01-24 Secret matching system, secret matching device, secret matching method, secret matching program

Country Status (1)

Country Link
JP (1) JP5506705B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593362B2 (en) * 2018-05-25 2023-02-28 Nippon Telegraph And Telephone Corporation Secure aggregate function computation system, secure computation apparatus, secure aggregate function computation method, and program

Also Published As

Publication number Publication date
JP2012155018A (en) 2012-08-16

Similar Documents

Publication Publication Date Title
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
Avudaiappan et al. Medical image security using dual encryption with oppositional based optimization algorithm
JP5486520B2 (en) Secure set function system, secret set function device, secure set function processing method, secure set function program
JP6934963B2 (en) Data encryption methods and systems
CN112989368B (en) Method and device for processing private data by combining multiple parties
JP5411994B2 (en) Secret sharing system, secret sharing apparatus, secret sharing method, secret sorting method, secret sharing program
JP6009697B2 (en) Secret calculation method, secret calculation system, sort device, and program
CN115688167B (en) Method, device and system for inquiring trace and storage medium
CN110519039B (en) Homomorphic processing method, equipment and medium for data
Salam et al. Investigating cube attacks on the authenticated encryption stream cipher ACORN
CN110493201B (en) Data processing method, device and system
WO2019225401A1 (en) Secret aggregate function calculation system, secret calculation device, secret aggregate function calculation method, and program
JP5480828B2 (en) Secret sort system, secret sort device, secret sort method, secret sort program
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
JPWO2018061800A1 (en) Secret system etc., secret system etc., secret system etc., program
Shi et al. Exploiting non-full key additions: full-fledged automatic Demirci-Selcuk meet-in-the-middle cryptanalysis of skinny
JP5506705B2 (en) Secret matching system, secret matching device, secret matching method, secret matching program
JP5498406B2 (en) Matching system, matching system method
Wei et al. Efficient dynamic replicated data possession checking in distributed cloud storage systems
JP5689845B2 (en) Secret calculation device, secret calculation method, and program
JP5391212B2 (en) Secure search system, secret search device, secure search method, secure search program
JP2015135380A (en) Share conversion system, share conversion method, and program
JP6273224B2 (en) ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD
WO2023281693A1 (en) Secure computing system, device, method, and program
WO2023281694A1 (en) Secure computation system, device, method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140318

R150 Certificate of patent or registration of utility model

Ref document number: 5506705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150