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 PDFInfo
- 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
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.
通常、複数のレコードを有する表のレコードのソートを行う場合、レコードに含まれる要素は、ソートの計算に直接使われる要素(値)とソートの計算に直接使われない要素(値)の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個の表[X1],…,[XJ]に対して所定の処理が施された後の表[X1S],…,[XJS]から、対応付けられているレコードが同じ順番となるように表X1S,…,XJSのレコードを並び替えた表に対応する秘密分散された表を計算する。ここで、Mは2以上の整数、Jは2以上の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、前記所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は前記所定の処理後のベクトル[hj]に対応するベクトル、[XjS]は前記所定の処理後の表[Xj]に対応する表とする。なお、上記のように所定の処理では、何個かの表に対しては何の処理も行わない場合もある。何の処理も行わなかった場合は、[XjS]=[Xj]である。 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個の異なる値を要素に持つベクトルhaを生成し、ベクトルhaの各要素を秘密分散してベクトル[ha]を求め、ベクトル[ha]をランダム置換してベクトル[h]を求める。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに、前記所定の処理を施しても対応が維持されるように対応付ける。対応用ランダム置換手段は、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. .
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。 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個の秘密マッチング装置101,…,10Nで構成される。そして、実施例1の秘密マッチングシステムは、それぞれM個のレコードx1j,…,xMjからなりレコード同士が対応付けられているJ個の表[X1],…,[XJ]に対して所定の処理が施された後の表[X1S],…,[XJS]から、対応付けられているレコードが同じ順番となるように表X1S,…,XJSのレコードを並び替えた表に対応する秘密分散された表を計算する。ここで、Mは2以上の整数、Nは3以上の整数、Jは2以上の整数、nは1以上N以下の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は所定の処理後のベクトル[hj]に対応するベクトル、[XjS]は所定の処理後の表[Xj]に対応する表とする。なお、上記のように所定の処理では、何個かの表に対しては何の処理も行わない場合もある。何の処理も行わなかった場合は、[XjS]=[Xj]である。
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
秘密マッチング装置10nは、マッチング制御部300n、秘密分散装置100n、記録部190nを備える。秘密分散装置100nは、マッチング制御部300nの指示にしたがって実施例1の処理に必要な個々の秘密計算を行う。本発明の処理に必要な個々の秘密計算としては、秘密分散、復号、ランダム置換などがある。ただし、本発明は、これらの秘密計算を利用して効率よくソートを行うものであり、秘密計算自体に特徴がある発明ではない。そこで、秘密計算については、例を後述することとし、本発明のポイントを理解しやすくするためにここでの説明は省略する。なお、後述する秘密計算の方法は、1つの例であり、本発明が利用できる秘密計算を限定するものではない。記録部190nは、秘密マッチング装置10nの処理に必要な情報を記録する構成部である。図1に示した選択手段105は後述する秘密計算では利用するが、利用する秘密計算によっては備えなくてもよい。
The
各秘密マッチング装置10nのマッチング制御部300nは、対応用ベクトル生成部310n、対応用ランダム置換部320n、対応用ベクトル復号部330n、対応用並び替え部340nを備える。そして、秘密マッチングシステムの対応用ベクトル生成手段310(図示していない)は対応用ベクトル生成部3101,…,310Nで構成され、対応用ランダム置換手段320(図示していない)は対応用ランダム置換部3201,…,320Nで構成され、対応用ベクトル復号手段330(図示していない)は対応用ベクトル復号部3301,…,330Nで構成され、対応用並び替え手段340(図示していない)は対応用並び替え部3401,…,340Nで構成される。
The matching control unit 300 n of each
対応用ベクトル生成手段310は、M個の異なる値を要素に持つベクトルhaを生成し、ベクトルhaの各要素を秘密分散してベクトル[ha]を求め、ベクトル[ha]をランダム置換してベクトル[h]を求める。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに、所定の処理を施しても対応が維持されるように対応付ける(S310)。より具体的には、対応用ベクトル生成部3101,…,310N(対応用ベクトル生成手段310)は、M個の異なる値を要素に持つベクトルhaを生成し、秘密分散装置1001,…,100Nにベクトルhaの各要素を秘密分散させてベクトル[ha]を求めさせ、ベクトル[ha]をランダム置換させてベクトル[h]を求めさせる。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに対応付ける。
Corresponding
次に、ソートのようなレコードの順番が変わる可能性がある所定の処理を、表[X1],…,[XJ]一部または全部に対して実行し、処理後の表[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−{(xB[∨]yB)∨・・・∨(x1[∨]y1)} (1)
ただし、[∨]は排他的論理和(XOR)を示す記号、∨は論理和(OR)を示す記号、xbは2ビット展開したときのxの下からbビット目の値、ybは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)。より具体的には、対応用ランダム置換部3201,…,320N(対応用ランダム置換手段320)は、j=1〜Jについて、表[XjS]の各レコードとベクトル[hjS]の各要素に対して同一の全単射によるランダム置換を秘密分散装置1001,…,100Nに実行させ、ランダム置換された表[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
対応用ベクトル復号手段330は、ベクトル[h1R],…,[hJR]を復号し、ベクトルh1R,…,hJRを求める(S330)。より具体的には、対応用ベクトル復号部3301,…,330N(対応用ベクトル復号手段330)は、秘密分散装置1001,…,100Nにベクトル[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
対応用並び替え手段340は、すべてのjとiの組合せに対してhjR=hiRとなるように表[XjR]のレコードを並び替える(S340)。より具体的には、対応用並び替え部3401,…,340N(対応用並び替え手段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
本実施例の秘密マッチングシステムでは、あらかじめ対応するレコード同士に目印となるデータとしてベクトル[hj]をそれぞれのレコードに対応付けている。そして、ソートなどの処理が終わった後で、この目印を使うことで本来ならば途中で対応がわからなくなってしまう場合にも対応するレコード同士を結びつけることができる。このように、本実施例の秘密マッチングシステムによれば、ソートに必要な部分だけでソートを行い、ソートが終わった後でその他の部分を移動させることができるようになるので、計算効率を改善できる。 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個の秘密マッチング装置201,…,20Nで構成される。そして、実施例2の秘密マッチングシステムは、M個のレコードを持つ表[X1]の各レコードの一部または全部の要素を用いてソートを行う。また、表[X2]に対しては何も行わない。ここで、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
秘密マッチング装置20nは、マッチング制御部400n、秘密分散装置100n、記録部190nを備える。秘密分散装置100nは、マッチング制御部400nの指示にしたがって実施例2の処理に必要な個々の秘密計算を行う。ただし、本発明は、これらの秘密計算を利用して効率よくソートを行うものであり、秘密計算自体に特徴がある発明ではないので、秘密計算については、例を後述することとし、本実施例での説明は省略する。
The
各秘密マッチング装置20nのマッチング制御部400nは、対応用ベクトル生成部310n、対応用ランダム置換部320n、対応用ベクトル復号部330n、対応用並び替え部340n、表分割部405n、ベクトル結合部450n、表結合部460n、表ランダム置換部470n、ソート用ベクトル復号部480n、ソート部490nを備える。そして、秘密マッチングシステムの対応用ベクトル生成手段310(図示していない)は対応用ベクトル生成部3101,…,310Nで構成され、対応用ランダム置換手段320(図示していない)は対応用ランダム置換部3201,…,320Nで構成され、対応用ベクトル復号手段330(図示していない)は対応用ベクトル復号部3301,…,330Nで構成され、対応用並び替え手段340(図示していない)は対応用並び替え部3401,…,340Nで構成され、表分割手段405(図示していない)は表分割部4051,…,405Nで構成され、ベクトル結合手段450(図示していない)はベクトル結合部4501,…,450Nで構成され、表結合手段460(図示していない)は表結合部4601,…,460Nで構成され、表ランダム置換手段470(図示していない)は表ランダム置換部4701,…,470Nで構成され、ソート用ベクトル復号手段480(図示していない)はソート用ベクトル復号部4801,…,480Nで構成され、ソート手段490(図示していない)はソート部4901,…,490Nで構成される。
The matching control unit 400 n of each
表分割手段405は、表[X]を、表[X1]と表[X2]に、表[X1]が少なくとも所定の処理に用いる要素を含むように分割する(S405)。より具体的には、表分割部4051,…,405N(表分割手段405)は、秘密分散装置1001,…,100Nに、表[X]を、それぞれM個のレコードx1j,…,xMjからなりレコード同士が対応付けられている表[X1]と表[X2]に分割させる。
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
対応用ベクトル生成手段310は、M個の異なる値を要素に持つベクトルhaを生成し、ベクトルhaの各要素を秘密分散してベクトル[ha]を求め、ベクトル[ha]をランダム置換してベクトル[h]を求める。そして、j=1,2について、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに、所定の処理を施しても対応が維持されるように対応付ける(S310)。より具体的には、対応用ベクトル生成部3101,…,310N(対応用ベクトル生成手段310)は、M個の異なる値を要素に持つベクトルhaを生成し、秘密分散装置1001,…,100Nにベクトルhaの各要素を秘密分散させてベクトル[ha]を求めさせ、ベクトル[ha]をランダム置換させてベクトル[h]を求めさせる。そして、j=1,2について、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに対応付ける。
Corresponding
次に、レコードの順番が変わる可能性がある所定の処理を、表[X1]に対して実行し、処理後の表[X1S]と表[X2S]を得る(S315)。なお、表[X2]はソートには関係ない要素のみからなる表なので、ソートは実行されない。したがって、表[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)。より具体的には、ベクトル結合部4501,…,450N(ベクトル結合手段450)は、異なる値を持つM個の要素からなるベクトルcを作成し、秘密分散装置1001,…,100Nに各要素を秘密分散してベクトル[c]を求めさせる。そして、所定の処理(例えば、表[X1]は特定の要素に基づいてソートし、表[X2]に対しては何もしないという処理)の後に、ベクトル[c]の各要素を表[X1S]の各レコードに対応が維持されるように対応付けさせる。なお、ベクトルcの各要素は、表の各レコードの順番を示すための値であり、例えば1からMの値を用いればよい。しかし、1からMの値に限定する必要はない。また、表[X2]に対しては何も行っていないので、[X2S]=[X2]である。
The
対応用ランダム置換手段320は、j=1,2について、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求める(S320)。より具体的には、対応用ランダム置換部3201,…,320N(対応用ランダム置換手段320)は、j=1,2について、表[XjS]の各レコードとベクトル[hjS]の各要素に対して同一の全単射によるランダム置換を秘密分散装置1001,…,100Nに実行させ、ランダム置換された表[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
対応用ベクトル復号手段330は、ベクトル[h1R],[h2R]を復号し、ベクトルh1R,h2Rを求める(S330)。より具体的には、対応用ベクトル復号部3301,…,330N(対応用ベクトル復号手段330)は、秘密分散装置1001,…,100Nにベクトル[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
対応用並び替え手段340は、表[X2R]のレコードをh2R=h1Rとなるように並び替える(S340)。より具体的には、対応用並び替え部3401,…,340N(対応用並び替え手段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
表結合手段460は、表[X1R],[X2R]を結合して表[XR]を得る(S460)。より具体的には、表結合部4601,…,460N(表結合手段460)は、表[X1R],[X2R]へのベクトル[h1R],[h2R]の対応付けを解除し、表[X1R],[X2R]を結合して表[XR]を得る。
The
表ランダム置換手段470は、表[XR]のレコード間を秘密計算でランダム置換し、表[XRR]を求める(S470)。より具体的には、表ランダム置換部4701,…,470N(表ランダム置換手段470)は、秘密分散装置1001,…,100Nに表[XR]のレコード間を秘密計算でランダム置換させ、表[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]となっている。ソート用ベクトル復号部4801,…,480N(ソート用ベクトル復号手段480)は、このベクトル[cRR]と表[XRR]との対応付けを解除して、秘密分散装置1001,…,100Nにベクトル[cRR]を復号させ、ベクトルcRRを求める。
The sorting vector decoding unit 480 decodes the vector [c RR ] after the processing by the table
ソート手段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).
本実施例の秘密マッチングシステムも、あらかじめ対応するレコード同士に目印となるデータとしてベクトル[hj]をそれぞれのレコードに対応付けている。そして、ソートなどの処理が終わった後で、この目印を使うことで本来ならば途中で対応がわからなくなってしまう場合にも対応するレコード同士を結びつけることができる。また、所定の処理(ソートのようにレコードの順番が変わる可能性のある処理)の前に、所定の処理に必要な要素を含む表[X1]と所定の処理に必要ない要素からなる表[X2]に表[X]を分割した上で、表[X1]に対してのみ所定の処理を行い、所定の処理が終わった後で表[X2]を結合し、所定の処理後の順番にレコードの順番を戻すので、計算効率を改善できる。 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個の秘密マッチング装置301,…,30Nで構成される。そして、実施例3の秘密マッチングシステムでは、所定の処理がB個の処理F1,…,FBからなる。処理FbはM個のレコードを持つ表[X1],…,[XJ]の一部または全部用いる処理である。また、所定の処理は、処理Fbごとに定められた処理であり、処理に用いる表も処理Fbごとに決められる。ここで、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
秘密マッチング装置30nは、マッチング制御部500n、秘密分散装置100n、記録部190nを備える。秘密分散装置100nは、マッチング制御部500nの指示にしたがって実施例3の処理に必要な個々の秘密計算を行う。ただし、本発明は、これらの秘密計算を利用して効率よくソートを行うものであり、秘密計算自体に特徴がある発明ではないので、秘密計算については、例を後述することとし、本実施例での説明は省略する。
The
各秘密マッチング装置30nのマッチング制御部500nは、対応用ベクトル生成部310n、対応用ランダム置換部320n、対応用ベクトル復号部330n、対応用並び替え部340n、表分割部505n、処理用ランダム置換部520n、処理用ベクトル復号部530n、処理用並び替え部540n、処理用ベクトル対応部550n、処理部560n、処理用繰返部570nを備える。そして、秘密マッチングシステムの対応用ベクトル生成手段310(図示していない)は対応用ベクトル生成部3101,…,310Nで構成され、対応用ランダム置換手段320(図示していない)は対応用ランダム置換部3201,…,320Nで構成され、対応用ベクトル復号手段330(図示していない)は対応用ベクトル復号部3301,…,330Nで構成され、対応用並び替え手段340(図示していない)は対応用並び替え部3401,…,340Nで構成され、表分割手段505(図示していない)は表分割部5051,…,505Nで構成され、処理用ランダム置換手段520(図示していない)は処理用ランダム置換部5201,…,520Nで構成され、処理用ベクトル復号手段530(図示していない)は処理用ベクトル復号部5301,…,530Nで構成され、処理用並び替え手段540(図示していない)は処理用並び替え部5401,…,540Nで構成され、処理用ベクトル対応手段550(図示していない)は処理用ベクトル対応部5501,…,550Nで構成され、処理手段560(図示していない)は処理部5601,…,560Nで構成され、処理用繰返手段570(図示していない)は処理用繰返部5701,…,570Nで構成される。
The matching control unit 500 n of each
表分割手段505は、表[X]をJ個に分割して前記の表[X1],…,[XJ]を求める(S505)。より具体的には、表分割部5051,…,505N(表分割手段505)は、表[X]を、それぞれM個のレコードx1j,…,xMjからなりレコード同士が対応付けられているJ個の表[X1],…,[XJ]に分割する。これらの表[X1],…,[XJ]が実施例1の表[X1],…,[XJ]と同じである。なお、表分割手段505は、ベクトルc0=(1,2,…,M)T(ただし、ここでのTは転置を示す)の各要素を秘密分散することで生成した表[c0]をJ個の表[X1],…,[XJ]の中に含めてもよい。このように、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個の異なる値を要素に持つベクトルhaを生成し、ベクトルhaの各要素を秘密分散してベクトル[ha]を求め、ベクトル[ha]をランダム置換してベクトル[h]を求める。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに、所定の処理を施しても対応が維持されるように対応付ける(S310)。より具体的には、対応用ベクトル生成部3101,…,310N(対応用ベクトル生成手段310)は、M個の異なる値を要素に持つベクトルhaを生成し、秘密分散装置1001,…,100Nにベクトルhaの各要素を秘密分散させてベクトル[ha]を求めさせ、ベクトル[ha]をランダム置換させてベクトル[h]を求めさせる。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに対応付ける。
Corresponding
処理用繰返手段570(処理用繰返部5701,…,570N)は、bに1を代入し、繰返し処理の初期化を行う(S571)。
The processing repeater 570 (
処理用ランダム置換手段520は、処理Fbに必要な要素を有する表[Xb(1)],…,[Xb(D)]を選び、b(d)=b(1),…,b(D)について、表[Xb(d)]とベクトル[hb(d)]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[Xb(d)R]とベクトル[hb(d)R]とを求める(S520)。より具体的には、処理用ランダム置換部5201,…,520N(処理用ランダム置換手段520)は、処理Fbに必要な要素を有する表[Xb(1)],…,[Xb(D)]を表[X1],…,[XJ]の中から選ぶ。ここで、Dはbごとに決まる1以上J以下の整数である。例えば、処理F1のときには2つの表を選び、処理F2のときには3つの表を選ぶのであれば、b=1のときはD=2、b=2のときはD=3となる。また、b(1),…,b(D)は、1〜Jのいずれかの数であり、b(1)<…<b(D)のように順番に並んでいる必要はない。例えば、ソートの処理などで優先度の高い方をb(D)とし、優先度が低い方をb(1)としてもよい。そして、処理用ランダム置換部5201,…,520N(処理用ランダム置換手段520)は、b(d)=b(1),…,b(D)について、表[Xb(d)]の各レコードとベクトル[hb(d)]の各要素に対して同一の全単射によるランダム置換を秘密分散装置1001,…,100Nに実行させ、ランダム置換された表[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
処理用ベクトル復号手段530は、ベクトル[hb(1)R],…,[hb(D)R]を復号し、ベクトルhb(1)R,…,hb(D)Rを求める(S530)。より具体的には、処理用ベクトル復号部5301,…,530N(処理用ベクトル復号手段530)は、秘密分散装置1001,…,100Nにベクトル[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)。より具体的には、処理用並び替え部5401,…,540N(処理用並び替え手段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
処理用ベクトル対応手段550は、ベクトルhb(i)Rの各要素を秘密分散したベクトル[hb(i)R]の各要素を表[Xb(1)T],…,[Xb(D)T]の各レコードに、処理Fbを施しても対応が維持されるように対応付ける(S550)。より具体的には、処理用ベクトル対応部5501,…,550N(処理用ベクトル対応手段550)は、秘密分散装置1001,…,100Nにベクトルhb(i)Rの各要素を秘密分散させてベクトル[hb(i)R]をもとめる。そして、ベクトル[hb(i)R]の各要素を表[Xb(1)T],…,[Xb(D)T]の各レコードに、処理Fbを施しても対応が維持されるように対応付ける。 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]に対して処理Fbを行って、処理Fb後のベクトル[hb(i)F]が対応付けられた処理Fb後の表[Xb(1)F],…,[Xb(D’)F]を求める。そして、処理Fb前のJ個の表の中から0個以上、処理Fb後のD’個の表の中から1個以上となるように、あらかじめ定めたJ’個のベクトルと表を抽出し、J’を新しいJに更新し、処理Fb後のベクトル[hjbS]と表[X1bS],…,[XJbS]を求める(S560)。例えば、D’=Dであり、処理Fb後の表[Xb(1)F],…,[Xb(D’)F]を、対応する処理Fb前の表[Xb(1)],…,[Xb(D)]に置き換えるのであれば、J’=Jとなるので、表の数Jは同じままである。また、処理Fb後の表[Xb(1)F],…,[Xb(D’)F]を単に加えてもよく、この場合はJ’=J+D’であり、表の数JはD’だけ増える。より具体的には、処理部5601,…,560N(処理手段560)は、ベクトル[hb(i)R]の対応付けを維持したまま表[Xb(1)T],…,[Xb(D)T]に対して処理Fbを行って、処理Fb後のベクトル[hb(i)F]が対応付けられた処理Fb後の表[Xb(1)F],…,[Xb(D’)F]を求める。そして、処理Fb前のJ個の表の中から0個以上、処理Fb後のD’個の表の中から1個以上となるように、あらかじめ定めたJ’個のベクトルと表を抽出し、J’を新しいJに更新し、処理Fb後のベクトル[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
処理用繰返手段570(処理用繰返部5701,…,570N)は、b=Bかを確認し、Yesの場合はベクトル[hjbS]をベクトル[hjS]、表[X1bS],…,[XJbS]を表[X1S],…,[XJS]としてステップS320に進む。Noの場合はベクトル[hjbS]をベクトル[hj]、表[X1bS],…,[XJbS]を表[X1],…,[XJ]とし、ステップS573に進む(S572)。ステップS573では、処理用繰返手段570(処理用繰返部5701,…,570N)は、bにb+1を代入し、ステップS520に戻る。
The processing repeater 570 (
対応用ランダム置換手段320は、j=1〜Jについて、表[XjS]とベクトル[hjS]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[XjR]とベクトル[hjR]とを求める(S320)。より具体的には、対応用ランダム置換部3201,…,320N(対応用ランダム置換手段320)は、j=1〜Jについて、表[XjS]の各レコードとベクトル[hjS]の各要素に対して同一の全単射によるランダム置換を秘密分散装置1001,…,100Nに実行させ、ランダム置換された表[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
対応用ベクトル復号手段330は、ベクトル[h1R],…,[hJR]を復号し、ベクトルh1R,…,hJRを求める(S330)。より具体的には、対応用ベクトル復号部3301,…,330N(対応用ベクトル復号手段330)は、秘密分散装置1001,…,100Nにベクトル[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
対応用並び替え手段340は、レコードの順番を維持する表[XiR]以外の表[XjR](ただし、j=1,…,Jかつj≠i)のレコードをhjR=hiRとなるように並び替える(S340)。より具体的には、対応用並び替え部3401,…,340N(対応用並び替え手段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
実施例3の具体例について説明する。例えば表[X]のM個のレコードは要素としてそれぞれ属性値[vm]、キー[km1],…,[kmB]を有しているとする。そして、キー[km1],…,[kmB]の順にソートを行う場合を説明する。つまり、処理Fbはキー[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]を要素[vm],[km1],…,[kmB]ごとに分割して表[v],[k1],…,[kB]を求める。また、ベクトルc0=(1,2,…,M)T(ただし、ここでのTは転置を示す)の各要素を秘密分散したベクトル[c0]を表[c0]とする(S505)。この場合は、J=B+2であり、表[v]が表[X1]、表[k1]が表[X2]、…、表[kB]が表[XJ−1]、表[c0]が表[XJ]に相当する。 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は、ベクトルha=(1,2,…,M)T(ただし、ここでのTは転置を示す)の各要素を秘密分散したベクトル[ha]を求め、ベクトル[ha]をランダム置換してベクトル[h]を求める。そして、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[v],[k1],…,[kB],[c0]の各レコードに、所定の処理を施しても対応が維持されるように対応付ける(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(処理用繰返部5701,…,570N)は、bに1を代入し、繰返し処理の初期化を行う(S571)。
The processing repeater 570 (
処理用ランダム置換手段520は、処理Fbに必要な要素を有する表として表[v],[kb],[cb−1]を選択する。つまり、D=3であり、表[v]が表[Xb(1)]、表[kb]が表[Xb(2)]、表[cb−1]が表[Xb(3)]に相当する。処理用ランダム置換手段520は、表[v]とベクトル[hb(1)]との対応を維持したまま秘密計算でレコード間をランダム置換し、表[kb]とベクトル[hb(2)]との対応を維持したまま秘密計算でレコード間をランダム置換し、表[cb−1]とベクトル[hb(3)]との対応を維持したまま秘密計算でレコード間をランダム置換する。そして、ランダム置換された表[vR],[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となるように表[vR],[kbR],[cb−1R]のレコードを並び替え、表[vT],[kbT],[cb−1T]を得る(S540)。
The
処理用ベクトル対応手段550は、ベクトルhb(i)Rの各要素を秘密分散したベクトル[hb(i)R]の各要素を表[vT],[kbT],[cb−1T]の各レコードに、処理Fbを施しても対応が維持されるように対応付ける(S550)。
Processing
処理手段560は、ベクトル[hb(i)R]が対応付けられた表[vT],[kbT],[cb−1T]に対して処理Fbを行う。例えばFbは、表[cb−1T]を復号して表cb−1Tを求める。そして、表cb−1Tに従って並べ替え、表[kbT]に従って表[vT]をソートして表[vNEW]を求める。また、ベクトルcb=(1,2,…,M)T(ただし、ここでのTは転置を示す)の各要素を秘密分散して、表[cb]を求める。つまり、処理Fb後のD’個の表は、表[vNEW]と表[cb]であり、D’=2である。そして、表[kb+1],…,[kB],[vNEW],[cb]を抽出し、J’個のベクトルとする。つまり、J’=B−b+2である。そして、J’を新しいJに更新し、表[vNEW]を新しい表[v]とし、処理Fb後のベクトル[hjbS]と表[kb+1],…,[kB],[v],[cb]を求める(S560)。
The
処理用繰返手段570は、b=Bかを確認し、Yesの場合はベクトル[hjBS]をベクトル[hjS]としてステップS320に進む。Noの場合はベクトル[hjbS]をベクトル[hj]とし、ステップS573に進む(S572)。ステップS573では、処理用繰返手段570(処理用繰返部5701,…,570N)は、bにb+1を代入し、ステップS520に戻る。
The
対応用ランダム置換手段320は、表[v]とベクトル[h1S]との対応を維持したまま秘密計算でレコード間をランダム置換し、表[cB]とベクトル[h2S]との対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された表[vR],[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は、表[cB]を復号してcB=(1,2,…,M)T(ただし、ここでのTは転置を示す)、かつh1R=h2Rとなるように、表cBと表[vR]のレコードを並び替え、表[vL]を求める(S340)。表[vL]が所望の表である。 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.
本実施例の秘密マッチングシステムも、あらかじめ対応するレコード同士に目印となるデータとしてベクトル[hj]をそれぞれのレコードに対応付けている。そして、ソートなどの処理が終わった後で、この目印を使うことで本来ならば途中で対応がわからなくなってしまう場合にも対応するレコード同士を結びつけることができる。また、表[X]を分割して表[X1],…,[XJ]を求め、所定の処理の前に必要な要素を含む表[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つの方法に限定しないことを前提としており、具体例は示さなかった。以下の説明では、秘密マッチング装置101,…,10N(201,…,20Nまたは301,…,30N)が実行するランダム置換とその他の秘密計算について説明する。なお、以下の説明では秘密マッチング装置10nについて説明するが、秘密マッチング装置20n,30nについても同じである。また、以下の秘密計算に関する説明は、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
ランダム置換1
図7に本発明に利用できる秘密分散装置100nの機能構成例を詳しく示した秘密マッチングシステムを示す。図8にランダム置換の1つ目の処理フロー例を示す。この例では、秘密マッチングシステムは選択手段105も備える。ここで、A1,…,AKを各秘密マッチング装置10nが断片を分散して記録するK個の数値(Kは2以上の整数)、数値Akをk番目の数値(kは1以上K以下の整数)、aknを秘密マッチング装置10nが記録するk番目の断片とする。なお、数値A1,…,AKが、秘匿化したい数値群であって、例えば、ソートの対象となる数値群である。ソートの対象となる数値群としては、例えば、数値Akが各々の人の年収を示すような数値群が考えられる。選択手段105は、いずれかの秘密マッチング装置の内部に配置されてもよいし、単独の装置であってもよい。
Random replacement 1
FIG. 7 shows a secret matching system in detail showing an example of the functional configuration of the
秘密マッチングシステムは、選択手段と断片置換手段と再分散手段を備える。また、秘密分散装置100nは、少なくとも断片置換部110nと再分散部120nと記録部190nを備える。記録部190nは断片a1n,…,aKnなどを記録する。また、記録部190nは、自身が記録している断片aknが数値Akの何番目の断片なのかに関する情報も記録する。
The secret matching system includes a selection unit, a fragment replacement unit, and a redistribution unit. The
選択手段105は、N未満の数の秘密マッチング装置10nを選択する(S105)。例えば、N個の断片のうちN’個を集めれば数値を復元できる秘密分散であれば、断片置換手段がN’個以上N未満の秘密マッチング装置を選べばよい。
The
断片置換手段は、少なくとも断片置換部1101,…,110Nを含んで構成される。そして、選択手段105に選択された秘密マッチング装置10i(ただし、iは選択された秘密マッチング装置を示す番号)の断片置換部110i間で{1,…,K}→{1,…,K}の全単射πを作成し、選択された秘密マッチング装置10iの記録部190iが記録する断片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.)などを用いて作成すればよい。また、全単射πは選択された秘密マッチング装置10i間で生成してもよいし、選択された秘密マッチング装置10iのうちの1つの秘密マッチング装置が生成して、選択された秘密マッチング装置10i間で共有してもよい。
The fragment replacement means includes at least the
再分散手段は、少なくとも再分散部1201,…,120Nを含んで構成される。再分散手段は、断片置換手段によって置換された数値Aπ(k)に対応する断片aπ(k)i(k番目に置換されている)を用いて再分散化して新しい断片bk1,…,bkNを求め、数値Bkの断片とする(S120)。つまり、Aπ(k)=Bkの関係が成り立つが、選ばれなかった秘密マッチング装置は全単射πを知らないので、Aπ(k)=Bkであることを知らない。なお、各秘密マッチング装置10nの記録部190nは、断片bknを記録するだけでなく、自身が記録しているk番目の断片である断片bknが数値Bkの断片であるという情報も記録する。また、数値B1,…,BKを新しい数値A1,…,AKとし、選択手段で選択する秘密マッチング装置の組み合わせを変更すれば、この処理を繰り返すことができる(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
本発明の秘密マッチングシステムによれば、限定された秘密マッチング装置間で断片をシャッフルする。したがって、選ばれなかった秘密マッチング装置は、全単射πを知らないので、数値A1,…,AKと数値B1,…,BKとの対応が分からない。つまり、特定の秘密マッチング装置からは数値A1,…,AKと数値B1,…,BKとの対応が分からない状態にしたいのであれば、その秘密マッチング装置を選択手段105で選ばないように、選択する秘密マッチング装置をあらかじめ定めればよい。また、選択手段105が選ぶ秘密マッチング装置を変更しながらこの処理を繰り返し、全ての秘密マッチング装置が選ばれなかったことがある状態にすれば、全ての秘密マッチング装置が数値A1,…,AKと対応付けることができない数値B1,…,BKを得ることができる。 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
次のランダム置換のための秘密マッチングシステムの秘密分散装置100nを詳細に示した機能構成例も図7に示す。図9にランダム置換の2つ目の処理フロー例を示す。この例でも、秘密マッチングシステムは選択手段105も備える。ここで、A1,…,AKを各秘密マッチング装置10nが断片を分散して記録するK個の数値(Kは2以上の整数)、数値Akをk番目の数値(kは1以上K以下の整数)、aknを秘密マッチング装置10nが記録する数値Akの断片とする。
Random replacement 2
FIG. 7 also shows a functional configuration example showing in detail the
本発明の秘密マッチングシステムは、選択手段105、初期情報分散手段、初期乗算手段、断片置換手段、再分散手段、確認分散手段、確認乗算手段、改ざん検出手段を備える。また、秘密分散装置100nは、初期情報分散部130n、初期乗算部140n、断片置換部110n、再分散部120n、確認分散部150n、確認乗算部160n、改ざん検出部170nを備える。記録部190nは断片a1n,…,aKnなどを記録する。また、記録部190nは、自身が記録している断片aknが数値Akの何番目の断片なのかに関する情報も記録する。
The secret matching system of the present invention includes a
選択手段105はランダム置換1と同じである。初期情報分散手段は、初期情報分散部1301,…,130Nで構成される。そして、選択手段105に選択された秘密マッチング装置10iの初期情報分散部130iは、秘密マッチング装置101,…,10Nのどれも知らないK個の数値P1,…,PKそれぞれの断片p1n,…,pKnを秘密計算によって求め、記録部190nに記録する(S130)。具体的には、選択手段105に選択された秘密マッチング装置から、2つ以上の秘密マッチング装置を選定する。そして、選定された秘密マッチング装置が作った値に基づいて、どの装置も知らない値の断片を作ればよい。例えば、2つの秘密マッチング装置10i,10jを選定し(ただし、i≠j)、秘密マッチング装置10iが生成した数値の断片と、秘密マッチング装置10jが生成した数値の断片を分散して記録する。そして、その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
初期乗算手段は、初期乗算部1401,…,140Nで構成される。初期乗算部1401,…,140Nは、Sk=Pk×Akである数値Skの断片sk1,…,skNを秘密計算によって求め、記録部1901,…,190Nに分散して記録する(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と同じである。確認分散手段は、確認分散部1501,…,150Nで構成される。確認分散部1501,…,150Nは、k=1〜Kについて、Qk=Pπ(k)である数値Qkの断片qk1,…,qkNを秘密計算によって生成し、記録部1901,…,190Nに分散して記録する(S150)。具体的には、ステップS130で選定された秘密マッチング装置が作った値に基づいて、どの装置も知らない値の別の断片を作ればよい。例えば、ステップS130で選定された秘密マッチング装置10iが数値Pπ(k)用に生成した数値の別の断片(新しい断片)と、ステップS130で選定された秘密マッチング装置10jが数値Pπ(k)用に生成した数値の別の断片(新しい断片)を分散して記録する。そして、その2つの数値の和を秘密計算によって求め、結果が分からないように断片を分散して記録すれば、Qk=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
確認乗算手段は、確認乗算部1601,…,160Nで構成される。確認乗算部1601,…,160Nは、Tk=Qk×Bkである数値Tkの断片tk1,…,tkNを秘密計算によって求め、記録部1901,…,190Nに分散して記録する(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).
改ざん検出手段は、改ざん検出部1701,…,170Nで構成される。改ざん検出部1701,…,170Nは、k=1〜Kについて、Tk=Sπ(k)であることを確認する(S170)。tkn≠sπ(k)nの場合には、改ざんがあったとして異常終了する。また、数値B1,…,BKを新しい数値A1,…,AKとし、選択手段で選択する秘密マッチング装置の組み合わせを変更すれば、この処理を繰り返すことができる(S111,S112)。
Tampering detection means, the falsification detection unit 170 1, ..., and a 170 N. The
[その他の秘密計算]
ここでは、秘密マッチングシステムが3個の秘密マッチング装置で構成された場合の秘密計算の例を示す。また、秘密マッチング装置101,102,103の番号を固定する必要はないので、秘密マッチング装置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
以下の秘密計算では、秘密マッチング装置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
数値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
数値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)
(2) If the
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
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
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
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
C=ABの秘密計算
(1)秘密マッチング装置10αは、乱数r1,r2,cγαを生成し、cαβ=(aγα+aαβ)(bγα+bαβ)−r1−r2−cγαを計算する。そして、秘密マッチング装置10αは、秘密マッチング装置10βに(r1,cαβ)を、秘密マッチング装置10γに(r2,cγα)を送信する。
(2)秘密マッチング装置10βは、y=aαβbβγ+aβγbαβ+r1を計算し、秘密マッチング装置10γに送信する。
(3)秘密マッチング装置10γは、z=aβγbγα+aγαbβγ+r2を計算し、秘密マッチング装置10αに送信する。
(4)秘密マッチング装置10βと秘密マッチング装置10γは、それぞれcβγ=y+z+aβγbβγを計算する。
(5)秘密マッチング装置10αは(cγα,cαβ)を記録し、秘密マッチング装置10βは(cαβ,cβγ)を記録し、秘密マッチング装置10γは(cβγ,cγα)を記録する。
C = AB Secret Calculation (1) The
(2) The
(3) the
(4) The
(5) The
ビット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
Is calculated and recorded, and the
The
Calculate and record.
ビットの論理積(C=A∧B=AB)の秘密計算
秘密マッチング装置10α,10β,10γは、整数の乗算(C=AB mod W)の秘密計算と同じ処理を行う。
Secure computing <br/>
ビットの論理和(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
(2) The
(3) The
ビットの排他的論理和(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)
(2) The
(3) The
ビット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
を求めることである。また、秘密マッチング装置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
を計算して記録し、秘密マッチング装置10βは
The
を計算して記録し、秘密マッチング装置10γは
The
を計算して記録する。 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)dn=b(n)+(aγα)(n)−2b(n)(aγα)(n)
の秘密計算を実行し、dnの断片を分散して記録する。
(2−2)a(n)=dn+cn−2dncn
の秘密計算を実行し、a(n)の断片を分散して記録する。
(2−3)n<N−1であれば、
cn+1=b(n)(aγα)(n)+dncn−b(n)(aγα)(n)dncn
の秘密計算を実行し、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
(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.
101,…,10N,201,…,20N,301,…,30N 秘密マッチング装置
1001,…,100N 秘密分散装置 105 選択手段
1101,…,110N 断片置換部 1201,…,120N 再分散部
1301,…,130N 初期情報分散部 1401,…,140N 初期乗算部
1501,…,150N 確認分散部 1601,…,160N 確認乗算部
1701,…,170N 改ざん検出部 1901,…,190N 記録部
3001,…,300N,4001,…,400N,5001,…,500N マッチング制御部
310 対応用ベクトル生成手段 3101,…,310N 対応用ベクトル生成部
320 対応用ランダム置換手段 3201,…,320N 対応用ランダム置換部
330 対応用ベクトル復号手段 3301,…,330N 対応用ベクトル復号部
340 対応用並び替え手段 3401,…,340N 対応用並び替え部
405,505 表分割手段
4051,…,405N,5051,…,505N 表分割部
450 ベクトル結合手段 4501,…,450N ベクトル結合部
460 表結合手段 4601,…,460N 表結合部
470 表ランダム置換手段 4701,…,470N 表ランダム置換部
480 ソート用ベクトル復号手段
4801,…,480N ソート用ベクトル復号部
490 ソート手段 4901,…,490N ソート部
520 処理用ランダム置換手段 5201,…,520N 処理用ランダム置換部
530 処理用ベクトル復号手段 5301,…,530N 処理用ベクトル復号部
540 処理用並び替え手段 5401,…,540N 処理用並び替え部
550 処理用ベクトル対応手段 5501,…,550N 処理用ベクトル対応部
560 処理手段 5601,…,560N 処理部
570 処理用繰返手段 5701,…,570N 処理用繰返部
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)
Mは2以上の整数、Jは2以上の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、前記所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は前記所定の処理後のベクトル[hj]に対応するベクトル、[XjS]は前記所定の処理後の表[Xj]に対応する表とし、
前記3個以上の秘密マッチング装置は、それぞれ、
M個の異なる値を要素に持つベクトルhaを生成し、ベクトルhaの各要素を秘密分散してベクトル[ha]を求め、ベクトル[ha]をランダム置換してベクトル[h]を求め、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに、前記所定の処理を施しても対応が維持されるように対応付ける対応用ベクトル生成手段と、
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
J=2であり、前記所定の処理は、M個のレコードを持つ表[X1]の各レコードの一部または全部の要素を用いたソートを含み、表[X2]に対しては何も行わないものであり、
さらに、
前記3個以上の秘密マッチング装置は、それぞれ、
表[X]を、前記の表[X1]と前記の表[X2]に、表[X1]が少なくとも前記所定の処理に用いる要素を含むように分割する表分割手段と、
異なる値を持つM個の要素からなるベクトルcを作成し、各要素を秘密分散してベクトル[c]を求め、前記所定の処理の後に、ベクトル[c]の各要素を表[X1S]の各レコード対応が維持されるように対応付けするベクトル結合手段と、
前記対応用並び替え手段の処理後の表[X1R],[X2R]を結合して表[XR]とする表結合手段と、
表[XR]のレコード間を秘密計算でランダム置換し、表[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
前記所定の処理はB個の処理F1,…,FBからなり、処理FbはM個のレコードを持つ表[X1],…,[XJ]の一部または全部を用いる処理Fbごとに定められた処理、Bは1以上の整数、bは1以上B以下の整数、Dは1以上J以下の整数、dは1以上D以下の整数、b(1),…,b(D)は1以上D以下の異なる整数、D’は1以上の整数とし、
さらに、
前記3個以上の秘密マッチング装置は、それぞれ、
表[X]をJ個に分割して前記の表[X1],…,[XJ]を求める表分割手段と、
処理Fbに必要な要素を有する表[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]の各レコードに、処理Fbを施しても対応が維持されるように対応付ける処理用ベクトル対応手段と、
ベクトル[hb(i)R]が対応付けられた表[Xb(1)T],…,[Xb(D)T]に対して処理Fbを行って、処理Fb後のベクトル[hb(i)F]が対応付けられた処理Fb後の表[Xb(1)F],…,[Xb(D’)F]を求め、処理Fb前のJ個の表の中から0個以上、処理Fb後のD’個の表の中から1個以上となるように、あらかじめ定めたJ’個のベクトルと表を抽出し、J’を新しいJに更新し、処理Fb後のベクトル[hjbS]と表[X1bS],…,[XJbS]を求める処理手段と、
b=Bかを確認し、Yesの場合はベクトル[hjbS]をベクトル[hjS]、表[X1bS],…,[XJbS]を表[X1S],…,[XJS]とし、Noの場合はベクトル[hjbS]をベクトル[hj]、表[X1bS],…,[XJbS]を表[X1],…,[XJ]とし、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は2以上の整数、Jは2以上の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、前記所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は前記所定の処理後のベクトル[hj]に対応するベクトル、[XjS]は前記所定の処理後の表[Xj]に対応する表とし、
M個の異なる値を要素に持つベクトルhaを生成し、ベクトルhaの各要素を秘密分散してベクトル[ha]を求め、ベクトル[ha]をランダム置換してベクトル[h]を求め、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに、前記所定の処理を施しても対応が維持されるように対応付けるための対応用ベクトル生成部と、
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:
Mは2以上の整数、Jは2以上の整数、iとjは1以上J以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、前記所定の処理は少なくとも1個以上の表に対するレコードの並び替えのための処理を含むもの、[hjS]は前記所定の処理後のベクトル[hj]に対応するベクトル、[XjS]は前記所定の処理後の表[Xj]に対応する表とし、
前記3個以上の秘密マッチング装置が、それぞれ、
M個の異なる値を要素に持つベクトルhaを生成し、ベクトルhaの各要素を秘密分散してベクトル[ha]を求め、ベクトル[ha]をランダム置換してベクトル[h]を求め、j=1〜Jについて、ベクトル[h]と同一のベクトル[hj]の各要素を表[Xj]の各レコードに、前記所定の処理を施しても対応が維持されるように対応付ける対応用ベクトル生成ステップと、
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.
J=2であり、前記所定の処理は、M個のレコードを持つ表[X1]の各レコードの一部または全部の要素を用いたソートを含み、表[X2]に対しては何も行わないものであり、
前記3個以上の秘密マッチング装置が、それぞれ、
表[X]を、前記の表[X1]と前記の表[X2]に、表[X1]が少なくとも前記所定の処理に用いる要素を含むように分割する表分割ステップと、
異なる値を持つM個の要素からなるベクトルcを作成し、各要素を秘密分散してベクトル[c]を求め、前記の表[X1]に対する前記所定の処理の後に、ベクトル[c]の各要素を表[X1S]の各レコードに対応が維持されるように対応付けするベクトル結合ステップと、
前記対応用並び替えステップ後の表[X1R],[X2R]を結合して表[XR]とする表結合ステップと、
表[XR]のレコード間を秘密計算でランダム置換し、表[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.
前記所定の処理はB個の処理F1,…,FBからなり、処理FbはM個のレコードを持つ表[X1],…,[XJ]の一部または全部を用いる処理Fbごとに定められた処理、Bは1以上の整数、bは1以上B以下の整数、Dは1以上J以下の整数、dは1以上D以下の整数、b(1),…,b(D)は1以上D以下の異なる整数、D’は1以上の整数とし、
前記3個以上の秘密マッチング装置が、それぞれ、
表[X]をJ個に分割して前記の表[X1],…,[XJ]を求める表分割ステップと、
処理Fbに必要な要素を有する表[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]の各レコードに、処理Fbを施しても対応が維持されるように対応付ける処理用ベクトル対応ステップと、
ベクトル[hb(i)R]が対応付けられた表[Xb(1)T],…,[Xb(D)T]に対して処理Fbを行って、処理Fb後のベクトル[hb(i)F]が対応付けられた処理Fb後の表[Xb(1)F],…,[Xb(D’)F]を求め、処理Fb前のJ個の表の中から0個以上、処理Fb後のD’個の表の中から1個以上となるように、あらかじめ定めたJ’個のベクトルと表を抽出し、J’を新しいJに更新し、処理Fb後のベクトル[hjbS]と表[X1bS],…,[XJbS]を求める処理ステップと、
を実行し
b=Bかを確認し、Yesの場合はベクトル[hjbS]をベクトル[hjS]、表[X1bS],…,[XJbS]を表[X1S],…,[XJS]とし、Noの場合はベクトル[hjbS]をベクトル[hj]、表[X1bS],…,[XJbS]を表[X1],…,[XJ]とし、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.
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)
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 |
-
2011
- 2011-01-24 JP JP2011012160A patent/JP5506705B2/en active Active
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 |