JP2012154968A - Secure aggregate function system, secret aggregate function apparatus, secure aggregate function processing method and secure aggregate function program - Google Patents

Secure aggregate function system, secret aggregate function apparatus, secure aggregate function processing method and secure aggregate function program Download PDF

Info

Publication number
JP2012154968A
JP2012154968A JP2011011233A JP2011011233A JP2012154968A JP 2012154968 A JP2012154968 A JP 2012154968A JP 2011011233 A JP2011011233 A JP 2011011233A JP 2011011233 A JP2011011233 A JP 2011011233A JP 2012154968 A JP2012154968 A JP 2012154968A
Authority
JP
Japan
Prior art keywords
information
secret
equal
set function
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011011233A
Other languages
Japanese (ja)
Other versions
JP5486520B2 (en
Inventor
Masaru Igarashi
大 五十嵐
Hiroki Hamada
浩気 濱田
Koji Senda
浩司 千田
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 JP2011011233A priority Critical patent/JP5486520B2/en
Publication of JP2012154968A publication Critical patent/JP2012154968A/en
Application granted granted Critical
Publication of JP5486520B2 publication Critical patent/JP5486520B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To perform an aggregate function arithmetic operation of which the computational complexity is proportional only to the number of data items, while concealing information.SOLUTION: A secure aggregate function system is comprised of N pieces of secret aggregate function apparatuses and determines a secret distributed totalization result from information ([k], [v]), ..., ([k], [v]) secretly distributing M pieces of information items (k, v), ..., (k, v) including a key kand an attribute value v. The secure aggregate function system includes initialization means and coupling arithmetic operation means. The initialization means sets the M pieces of data items z, ..., zlike z=vand generates information ([k], [z]), ..., ([k], [z]). The coupling arithmetic operation means performs such coupling processing for setting z=z(+)z, z=(0) if a key kand a key kare equal and for setting z=z, z=zif not equal on all the information having equal keys through secret computation.

Description

本発明はデータを秘匿しつつ集計等の集合関数と呼ばれる処理を、グループ化を伴って行うセキュア集合関数システム、秘密集合関数装置、セキュア集合関数処理方法、セキュア集合関数プログラムに関する。   The present invention relates to a secure set function system, a secret set function device, a secure set function processing method, and a secure set function program that perform processing called a set function such as aggregation while keeping data secret while grouping.

集合関数とは、単位元が存在し結合律と可換律の成り立つ演算(可換モノイド)をデータ群全体に行うことである。集合関数におけるグループ化とは、データ群を、キーとなる属性が等しいデータ群に分類し、分類した各データ群に対して集合関数を施すことである。   The collective function is to perform an operation (commutative monoid) on the entire data group in which unit elements exist and the combination rule and the commutative rule are established. The grouping in the set function is to classify the data group into data groups having the same key attribute and apply the set function to each classified data group.

暗号化された数値を復元すること無く特定の演算結果を得る方法として、例えば非特許文献1の秘密計算と呼ばれる方法がある。非特許文献1の方法では、3つの秘密計算装置に数値の断片を分散させるという暗号化を行い、数値を復元すること無く、加減算、定数和、乗算、定数倍、論理演算(否定,論理積,論理和,排他的論理和)、データ形式変換(整数,二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。また、非特許文献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 the values before and after the sorting is calculated so that no one knows, and the plurality of encrypted data are sorted by the values calculated from plaintext. A secret sort method for calculating a ciphertext as a result of the execution has been proposed. If such a secret calculation is used, a set function calculation is also possible.

千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能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.

例えば、従来の秘密計算を用いた以下の処理で、グループ化して集合関数演算を行うことが可能と考える。なお、集合関数演算を行う対象を、キーkと属性値vを含む情報(k,v)とする。
全てのキー属性値に対して以下を繰り返す。
1. i番目のキー属性値kに対して、z=(0)とする。
2. 全データに対して以下を繰り返す。
j番目のデータのキー属性がkならば、z=z(+)v
キー属性がkでなければz=z
ただし、(0)は単位元、(+)は当該集合関数の可換モノイド演算である。
For example, it is considered possible to perform a set function operation by grouping in the following processing using the conventional secret calculation. Incidentally, the target of the aggregate function operation, the information including a key k i and attribute value v i (k i, v i ).
Repeat for all key attribute values.
1. For the i-th key attribute value k i , z i = (0).
2. Repeat for all data.
If the key attribute of the jth data is k i, then z i = z i (+) v j
If the key attribute is not k i, z i = z i
However, (0) is a unit element, and (+) is a commutative monoid operation of the set function.

しかしながら、上記の方法では、計算量が「キー属性値の数×データ数」に比例し、効率が悪い。   However, in the above method, the calculation amount is proportional to “the number of key attribute values × the number of data”, and the efficiency is poor.

本発明は、情報を秘匿しながら、計算量がデータ数のみに比例し、キー属性値の数に依存しない集合関数演算を可能にする技術の提供を目的とする。   An object of the present invention is to provide a technique that enables a set function operation independent of the number of key attribute values and having a calculation amount proportional to only the number of data while keeping information secret.

本発明のセキュア集合関数システムは、N個の秘密集合関数装置R,…,Rで構成され、キーkと属性値vを含むM個の情報(k,v),…,(k,v)がそれぞれ秘密分散された情報([k],[v]),…,([k],[v])から、秘密分散された集計結果を求める。ここで、Mは2以上の整数、Nは3以上の整数、m,i,jは1以上M以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、(+)は単位元が存在し結合律と可換律が成り立つ前記集計結果を求めるための演算を示す記号、(0)は演算(+)の単位元を示す記号とする。 Secure set function system of the present invention, N number of private set function unit R 1, ..., is composed of R N, M pieces of information including the key k m and attribute values v m (k 1, v 1 ), ... , (K M , v M ) are secret-distributed information ([k 1 ], [v 1 ]),..., ([K M ], [v M ]), and a secret-distributed aggregation result is obtained. . Here, M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, m, i, j are integers greater than or equal to 1 and less than or equal to M, [] is a symbol indicating information in which information in parentheses is secretly shared for each element, (+) Is a symbol indicating an operation for obtaining the aggregation result in which the unit element exists and the join rule and the commutative rule are established, and (0) is a symbol indicating the unit element of the operation (+).

セキュア集合関数システムは、初期化手段と結合演算手段とを備える。初期化手段は、M個のデータz,…,zを、z=vのように設定し、情報([k],[z]),…,([k],[z])を生成する。結合演算手段は、キーkとキーkとが等しいときには
=z(+)z,z=(0)
とし、等しくないときには
=z,z=z
とする結合処理を、すべての等しいキーを持つ情報に対して秘密計算で実行する。
The secure set function system includes an initialization unit and a join operation unit. Initialization means, M pieces of data z 1, ..., a z M, set as z m = v m, the information ([k 1], [z 1]), ..., ([k M], [Z M ]). When the key k i and the key k j are equal to each other, the join operation means z j = z i (+) z j , z i = (0)
And if not equal, z j = z j , z i = z i
Is performed by secret calculation on information having all the equal keys.

本発明のセキュア集合関数システムによれば、情報を秘匿しながら、計算量がデータ数のみに比例し、キー属性値の数に依存しない集合関数演算を実行できる。   According to the secure set function system of the present invention, it is possible to execute a set function operation in which the amount of calculation is proportional to only the number of data and does not depend on the number of key attribute values while keeping information secret.

実施例1と実施例2のセキュア集合関数システムの構成例を示す図。The figure which shows the structural example of the secure set function system of Example 1 and Example 2. FIG. 実施例1のセキュア集合関数システムの処理フローを示す図。The figure which shows the processing flow of the secure set function system of Example 1. FIG. 実施例2のセキュア集合関数システムの処理フローを示す図。The figure which shows the processing flow of the secure set function system of Example 2. FIG. 実施例3のセキュア集合関数システムの構成例を示す図。FIG. 10 is a diagram illustrating a configuration example of a secure set function system according to a third embodiment. 実施例3のセキュア集合関数システムの処理フローを示す図。FIG. 10 is a diagram illustrating a processing flow of the secure set function system according to the third embodiment. 本発明に利用できる秘密分散装置100の機能構成例を詳しく示したセキュア集合関数システムを示す図。It shows a secure set function system shown 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のセキュア集合関数システムは、N個の秘密集合関数装置10,…,10で構成され、キーkと属性値vを含むM個の情報(k,v),…,(k,v)がそれぞれ秘密分散された情報([k],[v]),…,([k],[v])から、秘密分散された集計結果を求める。ここで、Mは2以上の整数、Nは3以上の整数、m,i,jは1以上M以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、(+)は単位元が存在し結合律と可換律が成り立つような集計結果を求めるための演算を示す記号、(0)は演算(+)の単位元を示す記号とする。(+)の具体例としては、和(総和)、最小値、最大値などがある。 FIG. 1 shows a configuration example of a secure set function system according to the first embodiment. FIG. 2 shows a processing flow of the secure set function system according to the first embodiment. Secure set function system of Example 1, N pieces of secret set function device 10 1, ..., 10 is constituted by N, M pieces of information including the key k m and attribute values v m (k 1, v 1 ), ..., (k M , v M ) are secret-distributed information ([k 1 ], [v 1 ]), ..., ([k M ], [v M ]), respectively, Ask. Here, M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, m, i, j are integers greater than or equal to 1 and less than or equal to M, [] is a symbol indicating information in which information in parentheses is secretly shared for each element, (+) Is a symbol indicating an operation for obtaining an aggregation result in which a unit element exists and an associative law and a commutative law are established, and (0) is a symbol indicating a unit element of the operation (+). Specific examples of (+) include a sum (total), a minimum value, and a maximum value.

秘密集合関数装置10は、集合関数制御部300、秘密分散装置100、記録部190を備える。秘密分散装置100は、集合関数制御部300の指示にしたがって実施例1の処理に必要な個々の秘密計算を行う。本発明の処理に必要な個々の秘密計算としては、秘密分散、復号、四則演算などがある。ただし、本発明は、これらの秘密計算を利用して効率よく集合関数演算を行うものであり、秘密計算自体に特徴がある発明ではない。そこで、秘密計算については、例を後述することとし、本発明のポイントを理解しやすくするためにここでの説明は省略する。なお、後述する秘密計算の方法は、1つの例であり、実施例1が利用できる秘密計算を限定するものではない。記録部190は、秘密集合関数装置10の処理に必要な情報を記録する構成部である。図1に示した選択手段105は後述する秘密計算では利用するが、利用する秘密計算によっては備えなくてもよい。 The secret set function device 10 n includes a set function 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 set function control unit 300 n . Individual secret calculations necessary for the processing of the present invention include secret sharing, decryption, and four arithmetic operations. However, the present invention efficiently performs set function operations 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 to be described later is one example, and does not limit the secret calculation that can be used in the first embodiment. The recording unit 190 n is a component that records information necessary for processing of the secret set function 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は、初期化部320、結合演算部330、削除部340を備える。そして、セキュア集合関数システムの初期化手段320(図示していない)は初期化部320,…,320で構成され、結合演算手段330(図示していない)は結合演算部330,…,330で構成され、削除手段340(図示していない)は削除部340,…,340で構成される。 The set function control unit 300 n of each secret set function device 10 n includes an initialization unit 320 n , a combination calculation unit 330 n , and a deletion unit 340 n . The initialization unit 320 (not shown) of the secure set function system is composed of initialization units 320 1 ,..., 320 N , and the combination calculation unit 330 (not shown) is the combination calculation unit 330 1 ,. , 330 N , and the deleting means 340 (not shown) includes deleting units 340 1 ,..., 340 N.

初期化手段320は、M個のデータz,…,zを、z=vのように設定し、情報([k],[z]),…,([k],[z])を生成する(S340)。より具体的には、初期化部320,…,320(初期化手段320)は、秘密分散装置100,…,100に属性値vの断片と同じ断片を持つデータvの断片を作らせ、各断片を秘密分散させることで情報([k],[z]),…,([k],[z])を生成させる。 Initializing means 320, M pieces of data z 1, ..., a z M, set as z m = v m, the information ([k 1], [z 1]), ..., ([k M] , [Z M ]) is generated (S340). More specifically, the initialization unit 320 1, ..., 320 N (initializing means 320), secret sharing apparatus 100 1, ..., data v m with the same fragment fragment attribute value v m with a 100 N Fragments are generated, and information ([k 1 ], [z 1 ]),..., ([K M ], [z M ]) is generated by secretly sharing each fragment.

結合演算手段330は、キーkとキーkとが等しいときには
=z(+)z,z=(0)
とし、等しくないときには
=z,z=z
とする結合処理が、すべての等しいキーを持つ情報に対して実行されるまで、秘密計算で実行する(S330)。例えば、キーkとキーkとが等しいことを確認する論理回路は、従来技術として蓄積された論理回路の技術を用いれば、実現できる。キーkとキーkの2ビット展開した各ビットの排他的論理和の論理和の否定によって次のように確認してもよい。
When the key k i and the key k j are equal to each other, the join calculation means 330 z j = z i (+) z j , z i = (0)
And if not equal, z j = z j , z i = z i
Until the combination process is executed for all pieces of information having the same key (S330). For example, a logic circuit that confirms that the key k i and the key k j are equal can be realized by using the logic circuit technology stored as the prior art. The following may be confirmed by negating the logical sum of the exclusive OR of the two bits of the key k i and the key k j expanded.

C=1−{(kiB[∨]kjB)∨・・・∨(ki1[∨]kj1)} (1)
ただし、[∨]は排他的論理和(XOR)を示す記号、∨は論理和(OR)を示す記号、kibは2ビット展開したときのキーkの下からbビット目の値、Bは2ビット展開したときのキーkの桁数とする。式(1)では、C=1ならばキーkとキーkとが等しく(真)、C=0ならばキーkとキーkとが異なる(偽)。また、式(1)の個々の演算は後述の秘密計算の例に示されているので、式(1)の演算は秘密計算で実行でき、秘密分散された[C]が求められる。したがって、確認後の分岐も秘密にするのであれば、[C]を用いた秘密計算をさらに組合せればよい。なお、後述する秘密計算は、数値の秘密分散、秘密分散された断片の復号、秘密分散された数値の四則計算、秘密分散されたビットごとの論理演算の基本的な計算方法を網羅して示している。したがって、従来技術として蓄積された論理回路の技術を用いれば、上述の等しいことを確認する方法のように、大小比較を比較する演算などの所望の演算を、後述する秘密計算の方法の組合せで実行できる。
C = 1-{(k iB [∨] k jB ) ∨ ... ∨ (k i1 [∨] k j1 )} (1)
[∨] is a symbol indicating an exclusive OR (XOR), ∨ is a symbol indicating a logical sum (OR), k ib is a value of the b-th bit from the bottom of the key k i when two bits are expanded, and B the number of digits of the key k i at the time of the 2-bit deployment. In equation (1), if C = 1, the key k i and the key k j are equal (true), and if C = 0, the key k i and the key k j are different (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 technology accumulated as the prior art is used, a desired operation such as an operation for comparing magnitude comparisons can be performed by a combination of secret calculation methods described later, as in the above-described method for confirming equality. Can be executed.

さらに、情報([k],[z]),…,([k],[z])がランダムに並んだ情報の場合は、i,jのすべての組合せに対して結合演算手段330の処理を行う必要がある。一方、情報([k],[z]),…,([k],[z])が何らかの規則に従って並んでいれば、i,jのすべての組合せまで実行する必要はない。例えば、情報([k],[z]),…,([k],[z])がキーkに基づいてソートされている場合であれば、iを1からM−1まで順番に値を大きくしながら、j=i+1に対して、キーkとキーkとが等しいときには
=z(+)z,z=(0)
とし、等しくないときには
=z,z=z
とすればよい。もしくは、iをMから2まで順番に値を小さくしながら、j=i−1に対して、キーkとキーkとが等しいときには
=z(+)z,z=(0)
とし、等しくないときには
=z,z=z
とすればよい。このようにソート済みの情報であれば、隣り合う情報同士の比較を順番に行うだけで、同じ値のキーを持つすべての情報に対する集合関数演算を実行し、最後に結合したzに集合関数演算の結果をまとめることができる。したがって、O(M)の計算量で処理ができる。
Furthermore, in the case of information in which information ([k 1 ], [z 1 ]),..., ([K M ], [z M ]) is arranged at random, a join operation is performed on all combinations of i and j. The processing of the means 330 needs to be performed. On the other hand, if information ([k 1 ], [z 1 ]),..., ([K M ], [z M ]) are arranged according to some rule, it is not necessary to execute all combinations of i and j. . For example, information ([k 1], [z 1]), ..., ([k M], [z M]) in the case that has been sorted on the basis of the key k m, i from 1 M- Z j = z i (+) z j , z i = (0) when the key k i and the key k j are equal to j = i + 1 while sequentially increasing the value to 1.
And if not equal, z j = z j , z i = z i
And it is sufficient. Alternatively, when i is decreased in order from M to 2, when j = i−1 and key k i is equal to key k j , z j = z i (+) z j , z i = (0)
And if not equal, z j = z j , z i = z i
And it is sufficient. If the information has been sorted in this way, it is possible to perform the set function operation on all pieces of information having the same value key only by sequentially comparing adjacent information, and finally set the set function to z j that is combined. The result of the operation can be summarized. Therefore, processing can be performed with a calculation amount of O (M).

削除手段340は、結合演算手段330の処理後に、M個の情報([k],[z])を秘密計算でランダム置換し、ランダム置換後のzが(0)かを秘密計算で確認し、確認結果を復元する。つまり、式(1)でzと(0)に対する[C]を求め、[C]を復元してCを求める。そして、z=(0)の場合(式(1)であればC=1の場合)には情報([k],[z])を削除する(S340)。ステップS340の削除は、残りの情報の数が、情報([k],[z])の数とキーの値の数の少ない方になるまで削除すればよい。なお、情報([k],[z]),…,([k],[z])がもともとランダムに並んでいる場合は、ランダム置換は必要ないので削除手段340を省略してもよい。情報([k],[z]),…,([k],[z])がキーkに基づいてソートされている場合は、z=(0)の確認結果を復元すると、キーの値が同じ情報が何個あるのか、何番目に境界があるのかなどのキーに関する情報が漏れてしまう。したがって、ランダム置換が必要となる。 Deletion means 340, after processing of the join operation means 330, M pieces of information ([k m], [z m]) were randomly replaced with the secure computing, z m after random substitution (0) or a secure computing Confirm with, and restore the confirmation result. That is, [C] with respect to z m and (0) is obtained by Equation (1), and [C] is restored to obtain C. Then, the z m = For (0) (the case of long if C = 1 in formula (1)) information ([k m], [z m]) Remove (S340). Removing step S340, the number of remaining information, the information ([k m], [z m]) may be deleted until the lesser of the number of values of the number and key. If the information ([k 1 ], [z 1 ]),..., ([K M ], [z M ]) is originally arranged at random, the random replacement is not necessary and the deletion unit 340 is omitted. May be. Information ([k 1], [z 1]), ..., the confirmation result ([k M], [z M]) if it is sorted based is the key k m, z m = (0 ) When the information is restored, information about the key such as how many pieces of information have the same key value and what number of boundaries is leaked. Therefore, random substitution is required.

図1に実施例2のセキュア集合関数システムの構成例を示す。また、図3に実施例2のセキュア集合関数システムの処理フローを示す。実施例2のセキュア集合関数システムも、N個の秘密集合関数装置10,…,10で構成され、キーkと属性値vを含むM個の情報(k,v),…,(k,v)がそれぞれ秘密分散された情報([k],[v]),…,([k],[v])から、秘密分散された集計結果を求める。ここで、Mは2以上の整数、Nは3以上の整数、m,i,jは1以上M以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、(+)は単位元が存在し結合律と可換律が成り立つような集計結果を求めるための演算を示す記号、(0)は演算(+)の単位元を示す記号、Tは(logM)−1以上の最小の整数、tは0以上T以下の整数、^はべき乗を示す記号とする。また、実施例2では、情報([k],[v]),…,([k],[v])はキーkに基づいてソートされた情報とする。 FIG. 1 shows a configuration example of a secure set function system according to the second embodiment. FIG. 3 shows a processing flow of the secure set function system according to the second embodiment. Secure set function systems Example 2, N pieces of secret set function device 10 1, ..., 10 is constituted by N, M pieces of information including the key k m and attribute values v m (k 1, v 1 ), ..., (k M , v M ) are secret-distributed information ([k 1 ], [v 1 ]), ..., ([k M ], [v M ]), respectively, Ask. Here, M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, m, i, j are integers greater than or equal to 1 and less than or equal to M, [] is a symbol indicating information in which information in parentheses is secretly shared for each element, (+) Is a symbol indicating an operation for obtaining an aggregation result in which a unit element exists and an associative law and a commutative law are established, (0) is a symbol indicating a unit element of the operation (+), and T is (log 2 M) is a minimum integer of −1 or more, t is an integer of 0 or more and T or less, and ^ is a symbol indicating a power. In Example 2, the information ([k 1], [v 1]), ..., ([k M], [v M]) is the sorted information based on the key k m.

秘密集合関数装置10は、集合関数制御部300、秘密分散装置100、記録部190を備え、秘密分散装置100、記録部190、集合関数制御部300の初期化部320、削除部340は実施例1と同じである。異なるのは、結合演算部330である。つまり、初期化手段320と削除手段340は実施例1と同じであり、結合演算手段330が異なる。 The secret set function device 10 n includes a set function control unit 300 n , a secret sharing device 100 n , and a recording unit 190 n . The secret sharing device 100 n , the recording unit 190 n , and an initialization unit 320 of the set function control unit 300 n . n and the deletion unit 340 n are the same as those in the first embodiment. The difference is the combination calculation unit 330 n . That is, the initialization unit 320 and the deletion unit 340 are the same as those in the first embodiment, and the combination calculation unit 330 is different.

実施例2の結合演算部330は、第1結合部331、第2結合部332、第3結合部333を備える。そして、第1結合手段331(図示していない)は第1結合部331,…,331で構成され、第2結合手段332(図示していない)は第2結合部332,…,332で構成され、第3結合手段333(図示していない)は第3結合部333,…,333で構成される。また、結合演算手段330は、第1結合手段331、第2結合手段332、第3結合手段333を有する。 The coupling operation unit 330 n according to the second embodiment includes a first coupling unit 331 n , a second coupling unit 332 n , and a third coupling unit 333 n . The first coupling means 331 (not shown) is composed of first coupling parts 331 1 ,..., 331 N , and the second coupling means 332 (not shown) is second coupling parts 332 1 ,. 332 N , and the third coupling means 333 (not shown) is composed of third coupling portions 333 1 ,..., 333 N. Further, the combination calculation unit 330 includes a first combination unit 331, a second combination unit 332, and a third combination unit 333.

結合演算手段330は、tに0を代入する(S336)。第1結合手段331は、i=1,2,…,M−2^tについて、kとki+2^tが等しいときには
i+2^t’=z(+)zi+2^t
とし、等しくないときには
i+2^t’=zi+2^t
とする(S331)。より具体的には、第1結合部331,…,331(第1結合手段331)は、秘密分散装置100,…,100に、i=1,2,…,M−2^tについて、kとki+2^tが等しいかを、例えば式(1)の秘密計算で確認させる。そして、その結果に基づいて、zi+2^t’=z(+)zi+2^tまたはzi+2^t’=zi+2^tの秘密計算を実行させる。なお、ステップS331のi=1,2,…,M−2^tについての処理は、互いに影響しないため並列に処理できる。
The join calculation means 330 substitutes 0 for t (S336). For i = 1, 2,..., M−2 ^ t, the first combining means 331 uses z i + 2 ^ t ′ = z i (+) z i + 2 ^ t when k i and k i + 2 ^ t are equal.
And if not equal z i + 2 ^ t '= z i + 2 ^ t
(S331). More specifically, the first combining units 331 1 ,..., 331 N (first combining means 331) send the secret sharing apparatuses 100 1 ,..., 100 N to i = 1, 2,. For t, whether or not k i and k i + 2 ^ t are equal is confirmed by, for example, the secret calculation of equation (1). Then, based on the result, the secret calculation of z i + 2 ^ t '= z i (+) z i + 2 ^ t or z i + 2 ^ t ' = z i + 2 ^ t is executed. Note that the processes for i = 1, 2,..., M−2 ^ t in step S331 can be processed in parallel because they do not affect each other.

第2結合手段332は、i=1,2,…,Mについて
=z
とする(S332)。なお、ステップS332もi=1,2,…,Mについての処理は互いに影響しないため、並列に処理できる。そして、結合演算手段330は、t=Tかを確認し(S337)、Yesの場合にはステップS333に進み、Noの場合にはtにt+1を代入し(S338)、ステップS331に戻る。
The second combining means 332 is configured such that z i = z i ′ for i = 1, 2,.
(S332). Note that step S332 can also be processed in parallel because the processes for i = 1, 2,..., M do not affect each other. Then, the join calculation unit 330 checks whether t = T (S337). If Yes, the process proceeds to step S333. If No, t + 1 is substituted for t (S338), and the process returns to step S331.

ステップS333では、第3結合手段が、i=1,2,…,M−1について、kとki+1が等しいときには
=z
とし、等しくないときには
=(0)
とする(S333)。
In step S333, when the third combining means has i = 1, 2,..., M−1, and k i and k i + 1 are equal, z i = z i
And then, when unequal z i = (0)
(S333).

なお、ステップS320とS340の処理は実施例1と同じである。   The processes in steps S320 and S340 are the same as those in the first embodiment.

このように、結合演算手段330は、t=0,1,2,…,Tについて、第1結合手段331と第2結合手段332の処理(S331,S332)を繰返した後に第3結合手段333の処理(S333)を行う。また、ステップS331、S332は並列処理が可能なので、演算回数が多くなったとしても、繰返しの演算を順番に実行せざるを得ない実施例1の方法よりも高速の演算が可能である。より具体的に説明すると、実施例2のセキュア集合関数システムの計算量は、データ数Mに対しO(M log M)となる。したがって、実施例1のO(M)よりも増加する。一方、実施例1は順番に処理する必要があるので、段数(直列に処理せざるを得ない計算数)もO(M)である。しかし、実施例2では大幅に並列度が上昇するので、段数はO(log M)に減少する。   As described above, the combination calculation unit 330 repeats the processing (S331, S332) of the first combination unit 331 and the second combination unit 332 for t = 0, 1, 2,. The process (S333) is performed. Further, since steps S331 and S332 can be performed in parallel, even if the number of operations increases, it is possible to perform operations at a higher speed than the method of the first embodiment in which repeated operations must be executed in order. More specifically, the calculation amount of the secure set function system according to the second embodiment is O (M log M) with respect to the number of data M. Therefore, it increases from O (M) in the first embodiment. On the other hand, since Example 1 needs to be processed in order, the number of stages (the number of calculations that must be processed in series) is also O (M). However, in the second embodiment, since the degree of parallelism is significantly increased, the number of stages is reduced to O (log M).

図4に実施例3のセキュア集合関数システムの構成例を示す。また、図5に実施例3のセキュア集合関数システムの処理フローを示す。実施例3のセキュア集合関数システムも、N個の秘密集合関数装置10,…,10で構成され、キーkと属性値vを含むM個の情報(k,v),…,(k,v)がそれぞれ秘密分散された情報([k],[v]),…,([k],[v])から、秘密分散された集計結果を求める。ここで、Mは2以上の整数、Nは3以上の整数、m,i,jは1以上M以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、(+)は単位元が存在し結合律と可換律が成り立つような集計結果を求めるための演算を示す記号、(0)は演算(+)の単位元を示す記号、sはあらかじめ定めたM以下の整数、Kはキーkの取り得る値の数とする。また、実施例3では、情報([k],[v]),…,([k],[v])はキーkに基づいてソートされた情報とする。 FIG. 4 shows a configuration example of the secure set function system according to the third embodiment. FIG. 5 shows a processing flow of the secure set function system according to the third embodiment. Secure set function system of the third embodiment also, N pieces of secret set function device 10 1, ..., 10 is constituted by N, M pieces of information including the key k m and attribute values v m (k 1, v 1 ), ..., (k M , v M ) are secret-distributed information ([k 1 ], [v 1 ]), ..., ([k M ], [v M ]), respectively, Ask. Here, M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, m, i, j are integers greater than or equal to 1 and less than or equal to M, [] is a symbol indicating information in which information in parentheses is secretly shared for each element, (+) Is a symbol indicating an operation for obtaining an aggregation result in which a unit element exists and an associative law and a commutative law are established, (0) is a symbol indicating a unit element of the operation (+), and s is predetermined. M an integer, K is the number of possible values of the key k m. In Example 3, information ([k 1], [v 1]), ..., ([k M], [v M]) is the sorted information based on the key k m.

秘密集合関数装置10は、集合関数制御部300、秘密分散装置100、記録部190を備え、秘密分散装置100、記録部190、集合関数制御部300の初期化部320、結合演算手段330、削除部340は実施例1または実施例2と同じである。異なるのは、事前処理部310である。つまり、初期化手段320と結合演算手段330と削除手段340は、実施例1または実施例2と同じである。 The secret set function device 10 n includes a set function control unit 300 n , a secret sharing device 100 n , and a recording unit 190 n . The secret sharing device 100 n , the recording unit 190 n , and an initialization unit 320 of the set function control unit 300 n . n , the combination calculation unit 330, and the deletion unit 340 n are the same as those in the first or second embodiment. The difference is the pre-processing unit 310 n . That is, the initialization unit 320, the combination calculation unit 330, and the deletion unit 340 are the same as those in the first or second embodiment.

事前処理部310は、第1事前初期化部311、第2事前初期化部312、事前結合部313、保存部314、第2事前繰返部315、事前削除部316、第1事前繰返部317を有する。そして、第1事前初期化手段311(図示していない)は第1事前初期化部311,…,311で構成され、第2事前初期化手段312(図示していない)は第2事前初期化部312,…,312で構成され、事前結合手段313(図示していない)は事前結合部313,…,313で構成され、保存手段314(図示していない)は保存部314,…,314で構成され、第2事前繰返手段315(図示していない)は第2事前繰返部315,…,315で構成され、事前削除手段316(図示していない)は事前削除部316,…,316で構成され、第1事前繰返手段317(図示していない)は第1事前繰返部317,…,317で構成される。また、事前処理手段310は、第1事前初期化手段311、第2事前初期化手段312、事前結合手段313、保存手段314、第2事前繰返手段315、事前削除手段316、第1事前繰返手段317を有する。 The pre-processing unit 310 n includes a first pre-initialization unit 311 n , a second pre-initialization unit 312 n , a pre-combination unit 313 n , a storage unit 314 n , a second pre-repetition unit 315 n , and a pre-delete unit 316 n. , having a first pre-repetition unit 317 n. The first pre-initialization means 311 (not shown) includes first pre-initialization units 311 1 ,..., 311 N , and the second pre-initialization means 312 (not shown) initializing unit 312 1, ..., is composed of 312 N, pre-coupling means 313 (not shown) is preconnected unit 313 1, ..., is composed of 313 N, storage means 314 (not shown) is stored part 314 1, ..., is composed of 314 N, the second pre-repeating unit 315 (not shown) and the second pre-repetition unit 315 1, ..., is composed of 315 N, in advance deleting means 316 (shown have not) pre deleting unit 316 1, ..., is composed of 316 N, the first pre-repeating unit 317 (not shown) is first pre-repetition unit 317 1, ..., and a 317 N. The preprocessing unit 310 includes a first preinitializing unit 311, a second preinitializing unit 312, a precombining unit 313, a storing unit 314, a second prerepetitive unit 315, a predeleting unit 316, and a first prerepetitive unit. Return means 317 is provided.

第1事前初期化手段311は、M’=Mとする(S311)。第2事前初期化手段312は、t=0、M”=M’とする(S312)。事前結合手段313は、tにt+1を代入し、1からM”/2以下の最大の整数までのiについて、k2i−1とk2iが等しいときには
2i=z2i−1(+)z2i,z2i−1=(0)
とし、等しくないときには
2i=z2i 2i−1=z2i−1
とする(S313)。なお、k2i−1とk2iとの比較は、事前結合部313,…,313(事前結合手段313)が、秘密分散装置100,…,100に、例えば式(1)の論理式を用いた秘密計算を実行させればよい。また、異なるiに対する演算同士は互いに影響を与えないので、異なるiに対する演算は並列で行うことができる。
The first pre-initialization unit 311 sets M ′ = M (S311). The second pre-initializing unit 312 sets t = 0 and M ″ = M ′ (S312). The pre-combining unit 313 substitutes t + 1 for t, and increases from 1 to a maximum integer equal to or less than M ″ / 2. For i, when k 2i−1 and k 2i are equal, z 2i = z 2i−1 (+) z 2i , z 2i−1 = (0)
And if not equal, z 2i = z 2i , z 2i-1 = z 2i-1
(S313). Note that comparison of k 2i-1 and k 2i are preconnected unit 313 1, ..., 313 N (pre-coupling means 313), secret sharing apparatus 100 1, ..., to 100 N, for example of formula (1) What is necessary is just to perform a secret calculation using a logical expression. In addition, since operations for different i do not affect each other, operations for different i can be performed in parallel.

保存手段314は、奇数番目の情報([km’],[zm’])を抜き取って保存し、残った情報を新しい情報([k],[z])とし、新しい情報([k],[z])の数を新しいM”とする(S314)。第2事前繰返手段315は、M”が2K以下か(第2事前繰返条件)を確認し、第2事前繰返条件を満たすまで事前結合手段313の処理(S313)と保存手段314の処理(S314)を繰り返す(S315)。 Storage means 314, odd-numbered information ([k m '], [ z m']) and save withdrawn, the remaining information new information ([k m], [z m]) and the new information ( [k m], check the [z m] number of) new M "and (S314). the second pre-repeating unit 315, M" Do 2K or less (second pre repeat condition), the Until the two pre-repetition conditions are satisfied, the processing of the pre-coupling means 313 (S313) and the processing of the storage means 314 (S314) are repeated (S315).

事前削除手段S316は、保存手段314が保存したすべての情報([km’],[zm’])と残った情報([k],[z])とを一緒にした上で、秘密計算でランダム置換し、ランダム置換後のzが(0)かを秘密計算で確認し、z=(0)の場合には情報([k],[z])を削除し、残った情報を新しい情報([k],[z])とし、新しい情報([k],[z])の数をM’とする(S316)。なお、新しい情報(残りの情報)の数M’が
tK+(最後のステップS315で残った情報の数)
になるまでステップS316で情報を削除できる。
Pre-Delete means S316, all of the information storage means 314 is saved ([k m '], [ z m']) and the remaining information ([k m], [z m]) on that together and , Perform random replacement by secret calculation, confirm whether z m after random replacement is (0) by secret calculation, and delete information ([k m ], [z m ]) if z m = (0) and, the remaining information new information ([k m], [z m]) and then, new information ([k m], [z m]) and M 'number of (S316). Note that the number M ′ of new information (remaining information) is tK + (the number of information remaining in the last step S315).
The information can be deleted in step S316 until.

第1事前繰返手段S317は、M’がsより小さいか(第1事前繰返条件)を確認し、第1事前繰返条件を満たすまで第2事前初期化手段312の処理(S312)、事前結合手段313の処理(S313)、保存手段314の処理(S314)、第2事前繰返手段315(S315)、事前削除手段316(S316)を繰り返す(S317)。   The first pre-repetition unit S317 confirms whether M ′ is smaller than s (first pre-repetition condition), and the process of the second pre-initialization unit 312 until the first pre-repetition condition is satisfied (S312), The processing of the pre-coupling means 313 (S313), the processing of the storage means 314 (S314), the second pre-repetition means 315 (S315), and the pre-deletion means 316 (S316) are repeated (S317).

そして、セキュア集合関数システムは、Mを、事前処理手段310の処理(S310)後の情報([k],[z])の数に変更し、事前処理手段310の処理(S310)後の情報([k],[z])に対して、実施例1または実施例2に示した初期化手段320の処理(S320)、結合演算手段330の処理(S330)、を実行する。 Then, the secure set function system, the M, pre-processing process means 310 (S310) after the information ([k m], [z m]) to change the number of the processing of pre-processing means 310 (S310) after For the information ([k m ], [z m ]), the process of the initialization unit 320 (S320) and the process of the join operation unit 330 (S330) shown in the first or second embodiment are executed. .

実施例3の事前処理手段310の処理は、情報の数Mがキーの取り得る値の数Kに比べて非常に大きい場合に演算量を減らす効果がある。一方、MとKの値が近くなると実施例1や実施例2の結合演算手段330の処理(S330)の方が演算量を少なくできる。したがって、MがKに比べて非常に大きいときに、事前処理手段310を用いて情報の数Mを少なくし、MがKに近づいたところで実施例1や実施例2の結合演算手段330に切り替えて処理すれば効率的である。より具体的には、実施例3のセキュア集合関数システムの計算量はO(M+ K log M)であり、段数はO(log M)である。あらかじめ定めるsは、どの程度MがKに近づいたところで切り替えるのかを定める値であり、全体の演算量が少なくなるように適宜決めればよい。このように、実施例3のセキュア集合関数システムによれば、情報の数Mがキーの取り得る値の数Kに比べて非常に大きい場合に演算量を減らすことができる。   The processing of the pre-processing means 310 of the third embodiment has an effect of reducing the amount of calculation when the number of information M is very large compared to the number K of values that can be taken by the key. On the other hand, when the values of M and K are close to each other, the amount of calculation can be reduced by the process (S330) of the combination calculation unit 330 of the first and second embodiments. Therefore, when M is very large compared to K, the number M of information is reduced by using the pre-processing unit 310, and when the M approaches K, the operation is switched to the combination calculation unit 330 of the first embodiment or the second embodiment. Is efficient. More specifically, the calculation amount of the secure set function system of the third embodiment is O (M + K log M), and the number of stages is O (log M). S determined in advance is a value that determines how much M is switched to near K, and may be determined as appropriate so that the total calculation amount is reduced. Thus, according to the secure set function system of the third embodiment, the amount of calculation can be reduced when the number of information M is very large compared to the number K of values that can be taken by the key.

[演算量の具体例]
情報の数M=1000、キーの取り得る値の数K=10とする。実施例3のステップS314の1回目でM”=500、2回目でM”=250となり、6回目でM”=16となる。そして、ここまでの結合演算の回数は985回であり、残りの情報の数は次のようになる。
[Specific examples of computational complexity]
It is assumed that the number of information M = 1000 and the number of possible values K = 10. In step S314 of the third embodiment, M "= 500 at the first time, M" = 250 at the second time, M "= 16 at the sixth time, and the number of join operations so far is 985 times, and the rest The number of information is as follows.

tK+(最後のステップS315で残った情報の数)=6×10+16=76
これをもう一度繰り返すと、t=2でM”=19、結合演算の回数は57回増えて1042回、残りの情報の数の最大値(実際にはこの数以下となる数)は2×10+19=39となる。例えばsを40に設定していれば、ステップS317は終了し、ステップS320に進む。ステップS320,S330,S340を実施例1の方法で実行すれば、結合演算の回数は1080回、段数は46段である。ステップS320,S330,S340を実施例2の方法で実行すれば、結合演算の回数は1213回、段数は14段である。比較として、最初から実施例1の方法にした場合は、結合演算の回数は999回、段数は999段、実施例2の方法の場合の結合演算の回数は8977回、段数は10段となり、情報の数Mがキーの取り得る値の数Kよりかなり大きい場合、実施例3の方法は計算量と段数のバランスに優れることが分かる。なお、従来の方法の場合、結合演算の回数は9990回、段数は10段である。
tK + (number of information remaining in the last step S315) = 6 × 10 + 16 = 76
When this is repeated once again, t = 2, M ″ = 19, the number of join operations is increased 57 times, 1042 times, and the maximum number of remaining information (actually a number less than this number) is 2 × 10 + 19. For example, if s is set to 40, step S317 is completed, and the process proceeds to step S320, and if steps S320, S330, and S340 are executed by the method of the first embodiment, the number of join operations is 1080. The number of stages is 46. If steps S320, S330, and S340 are executed by the method of the second embodiment, the number of join operations is 1213 and the number of stages is 14. For comparison, the number of stages of the first embodiment is as follows. In the case of the method, the number of join operations is 999, the number of stages is 999, the number of join operations in the case of the method of the second embodiment is 8977, the number of stages is 10, and the number of information M can be a key. value If substantially greater than the number K, the method of Example 3 it can be seen that excellent balance between computational and stages. In the case of the conventional method, the number of binding operations 9990 times, the number of stages is 10 stages.

[秘密計算]
上述の説明では、秘密計算については1つの方法に限定しないことを前提としており、具体例は示さなかった。以下の説明では、秘密集合関数装置10,…,10が実行するランダム置換とその他の秘密計算について説明する。なお、以下の秘密計算に関する説明は、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 replacement performed by the secret set function devices 10 1 ,..., 10 N and other secret calculations will be described. In addition, the description regarding the following secret calculation is an example, and is not limited thereto. Other secret computations may be used in the secure set function system of the present invention.

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

セキュア集合関数システムは、選択手段と断片置換手段と再分散手段を備える。また、秘密分散装置100は、少なくとも断片置換部110と再分散部120と記録部190を備える。記録部190は断片a1n,…,aKnなどを記録する。また、記録部190は、自身が記録している断片aknが数値Aの何番目の断片なのかに関する情報も記録する。 The secure set function 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 secret set function device 10 n that is less than N (S105). For example, in the case of secret sharing in which a numerical value can be restored by collecting N ′ out of N fragments, a secret set function device having N ′ or more and less than N fragment replacement means 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 set function device 10 i selected by the selection means 105 (where i is a number indicating the selected secret set function device). ..., create a bijective [pi of K}, the recording unit 190 i of the secret set function device 10 i to the selected fragment a π (k) i to k-th fragment to be recorded (S110). The bijection π may be obtained by simply rearranging 1 to K at random. Note that the bijection π is preferably a uniform and random permutation, such as Fisher-Yates shuffle (Reference 1: Richard Durstenfeld, “Algorithm 235: Random permutation”, Communications of the ACM archive, Volume 7, Issue 7, 1964.) etc. Further, it may be generated between the bijective π secret set function device 10 selected is i, and generates a single, secret set function unit of the secret set function device 10 i which is selected, is selected The secret set function device 10 i may be shared.

再分散手段は、少なくとも再分散部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 set function device that was not selected does not know bijection π, and therefore does not know that A π (k) = B k . Note that that each secret recording unit 190 n of the set function device 10 n has not only to record the fragment b kn, fragment b kn is the k-th fragment itself is recorded is a fragment of numbers B k Also record information. Further, if the numerical values B 1 ,..., BK are changed to new numerical values A 1 ,..., AK and the combination of the secret set function devices selected by the selection means is changed, this process can be repeated (S111, S112). .

本発明のセキュア集合関数システムによれば、限定された秘密集合関数装置間で断片をシャッフルする。したがって、選ばれなかった秘密集合関数装置は、全単射πを知らないので、数値A,…,Aと数値B,…,Bとの対応が分からない。つまり、特定の秘密集合関数装置からは数値A,…,Aと数値B,…,Bとの対応が分からない状態にしたいのであれば、その秘密集合関数装置を選択手段105で選ばないように、選択する秘密集合関数装置をあらかじめ定めればよい。また、選択手段105が選ぶ秘密集合関数装置を変更しながらこの処理を繰り返し、全ての秘密集合関数装置が選ばれなかったことがある状態にすれば、全ての秘密集合関数装置が数値A,…,Aと対応つけることができない数値B,…,Bを得ることができる。 According to the secure set function system of the present invention, fragments are shuffled between limited secret set function devices. Therefore, secret set function device has not been chosen, because it does not know the BC π, numerical value A 1, ..., A K and the numerical value B 1, ..., do not know the correspondence between the B K. That is, numerical values A 1 from a specific secret set function device, ..., A K and number B 1, ..., If you wish to state that corresponds is not known with B K, the selection means 105 the secret set function device The secret set function device to be selected may be determined in advance so as not to select it. In addition, if this process is repeated while changing the secret set function device selected by the selection means 105 and all secret set function devices have not been selected, all secret set function devices have numerical values A 1 , ..., numeric B 1 that can not be assigned corresponding to a K, ..., can be obtained B K.

ランダム置換2
次のランダム置換のためのセキュア集合関数システムの秘密分散装置100を詳細に示した機能構成例も図6に示す。図8にランダム置換の2つ目の処理フロー例を示す。この例でも、セキュア集合関数システムは選択手段105も備える。ここで、A,…,Aを各秘密集合関数装置10が断片を分散して記録するK個の数値(Kは2以上の整数)、数値Aをk番目の数値(kは1以上K以下の整数)、aknを秘密集合関数装置10が記録する数値Aの断片とする。
Random replacement 2
FIG. 6 also shows a functional configuration example showing in detail the secret sharing apparatus 100 n of the secure set function system for the next random replacement. FIG. 8 shows a second processing flow example of random replacement. Also in this example, the secure set function system also includes a selection unit 105. Here, A 1 ,..., A K are K numerical values (K is an integer of 2 or more) recorded by each secret set function device 10 n in a distributed manner, and the numerical values A k are k-th numerical values (k is An integer from 1 to K), and let a kn be a fragment of a numerical value A k recorded by the secret set function device 10 n .

本発明のセキュア集合関数システムは、選択手段105、初期情報分散手段、初期乗算手段、断片置換手段、再分散手段、確認分散手段、確認乗算手段、改ざん検出手段を備える。また、秘密分散装置100は、初期情報分散部130、初期乗算部140、断片置換部110、再分散部120、確認分散部150、確認乗算部160、改ざん検出部170を備える。記録部190は断片a1n,…,aKnなどを記録する。また、記録部190は、自身が記録している断片aknが数値Aの何番目の断片なのかに関する情報も記録する。 The secure set function 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 set function device 10 i selected by the selecting means 105, the secret set function device 10 1, ..., K-number of numerical P 1 does not know any of 10 N, ..., P The respective fragments p 1n ,..., P Kn of K are obtained by secret calculation and recorded in the recording unit 190 n (S130). Specifically, two or more secret set function devices are selected from the secret set function devices selected by the selection means 105. Then, based on the value created by the selected secret set function device, a fragment of a value unknown to any device may be created. For example, two secret set function devices 10 i and 10 j are selected (where i ≠ j), and a numerical fragment generated by the secret set function device 10 i and a numerical fragment generated by the secret set function device 10 j Are 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, the fragments of numerical values that are not known to all the secret set function devices can be distributed and recorded. In this example, two selected secret set function devices are used, but two or more secret set function devices 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 set function device selected in step S130. For example, another fragment (new fragment) of the numerical value generated by the secret set function device 10 i selected in step S130 for the numerical value P π (k) and the secret set function device 10 j selected in step S130 are numerical values. Another piece (new piece) of the numerical value generated for Pπ (k) 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 set function devices are known. It is possible to record pieces with no numerical value. In this example, two selected secret set function devices are used, but two or more secret set function 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. Further, if the numerical values B 1 ,..., BK are changed to new numerical values A 1 ,..., AK and the combination of the secret set function devices selected by the selection means is changed, this process can be repeated (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 secure set function system is configured by three secret set function devices is shown. Further, since it is not necessary to fix the numbers of the secret set function devices 10 1 , 10 2 , and 10 3 , they are expressed as secret set function 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 set function devices 10 α , 10 β , 10 γ are recorded as (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 γα = A−a αβ −a βγ is calculated, and the fragments are set to (a γα , a αβ ), (a αβ , a βγ ), (a βγ , a γα ), and the secret set function device 10 α , 10 β and 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 set function device 10 alpha sends a Ganmaarufa secret set function device 10 beta, and transmits the a .alpha..beta secret set function device 10 gamma. Secret set function device 10 beta sends a .alpha..beta secret set function device 10 gamma, transmits the a [beta] [gamma] to the secret set function device 10 alpha. The secret set function device 10 γ transmits a βγ to the secret set function device 10 α , and transmits a γα to the secret set function device 10 β .
(2) Secret set function device 10 alpha If they match and the a [beta] [gamma] received from a [beta] [gamma] and the secret set function device 10 gamma received from the secret set function device 10 beta, calculates the a αβ + a βγ + a γα To restore the numerical value A. If the secret set function device 10 beta match and the a Ganmaarufa received from a Ganmaarufa private set function device 10 alpha received from the secret set function device 10 gamma, numerical by calculating a αβ + a βγ + a γα A To restore. If the secret set function device 10 gamma match and the a .alpha..beta received from a .alpha..beta private set function device 10 beta received from the secret set function device 10 alpha, numerical by calculating a αβ + a βγ + a γα A To restore.

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 set function device 10 α calculates and records (c γα , c αβ ) = (a γα + b γα , a αβ + b αβ ), and the secret set function device 10 β c αβ , c βγ ) = (a αβ + b αβ , a βγ + b βγ ) is calculated and recorded, and the secret set function device 10 γ is (c βγ , c γα ) = (a βγ + b βγ , a γα + b γα ) Is calculated and recorded.

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) Secret set function device 10 α calculates and records (c γα , c αβ ) = (a γα -b γα , a αβ -b αβ ), and sets the secret set function device 10 β calculates and records (c αβ , c βγ ) = (a αβ −b αβ , a βγ −b βγ ), and the secret set function device 10 γ has (c βγ , c γα ) = (a βγ − b [beta] [gamma], and records the Get a γα -b γα).

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 set function device 10 α calculates and records (c γα , c αβ ) = (a γα + S, a αβ ), and the secret set function device 10 γ has (c βγ , c γα ) = (a [ beta] [gamma] , a [ gamma] [alpha] + S) is calculated and recorded. There is no processing of the secret set function 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 set function device 10 α calculates and records (c γα , c αβ ) = (a γα S, a αβ S), and the secret set function device 10 β has (c αβ , c βγ ) = ( a αβ S, a βγ S) is calculated and recorded, and the secret set function 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 set function device 10 α generates random numbers r 1 , r 2 , c γα , and c αβ = (a γα + a αβ ) (b γα + b αβ ) −r 1 −r 2- c γα is calculated. Then, the secret set function device 10 alpha, and transmits the secret set function device 10 beta a (r 1, c αβ), a secret set function device 10 gamma a (r 2, c γα).
(2) The secret set function device 10 β calculates y = a αβ b βγ + a βγ b αβ + r 1 and transmits it to the secret set function device 10 γ .
(3) the secret set function device 10 gamma, calculates a z = a βγ b γα + a γα b βγ + r 2, and transmits the secret set function device 10 alpha.
(4) The secret set function device 10 β and the secret set function device 10 γ calculate c βγ = y + z + a βγ b βγ , respectively.
(5) The secret set function device 10 α records (c γα , c αβ ), the secret set function device 10 β records (c αβ , c βγ ), and the secret set function device 10 γ is (c βγ , c γα ).

ビット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 set function device 10 α is (c γα , c αβ ) = (1−a γα , −a αβ mod W).
And the secret set function device 10 β is (c αβ , c βγ ) = (− a αβ mod W, −a βγ mod W)
And the secret set function device 10 γ is (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 set function unit 10-bit logical product (C = A∧B = AB) α , 10 β, 10 γ is the same process as secure computing integer multiplication (C = AB mod W) I 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 bit logical sum (C = A∨B = A + B−AB) (1) Secret set function devices 10 α , 10 β , 10 γ are the same as the secret calculation of integer addition (C = A + B mod W) As a result of C ′ = A + B, the secret set function device 10 α is a fragment (c γα ′, c αβ ′), and the secret set function device 10 β is a fragment (c αβ ′, c βγ ′). secret set function device 10 gamma fragments (c βγ ', c γα' ) for recording. The secret set function 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 set function device 10 α The fragment (c γα ″, c αβ ″) is recorded , the secret set function device 10 β records the fragment (c αβ ″, c βγ ″), and the secret set function device 10 γ records the fragment (c βγ ″, c γα ″). To do.
(2) The secret set function device 10 α , 10 β , 10 γ performs the same processing 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 ′ ″ = − C ″, the secret set function device 10 α is a fragment (c γα ′ ″, c αβ ′ ″), and the secret set function device 10 β is a fragment (c αβ ′ ″, c βγ ′ ″), the secret set function device 10 γ records the fragments (c βγ ′ ″, c γα ′ ″).
(3) The secret set function device 10 α , 10 β , 10 γ performs 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 set The function device 10 α records the fragment (c γα , c αβ ), the secret set function device 10 β records the fragment (c αβ , c βγ ), and the secret set function 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 set function devices 10 α , 10 β , 10 γ are integer additions (C = A + B mod W) The same processing as the secret calculation is performed, and as a result of C ′ = A + B, the secret set function device 10 α is a fragment (c γα ′, c αβ ′), and the secret set function device 10 β is a fragment (c αβ ′, c βγ '), The secret set function device 10 γ records the fragment (c βγ ', c γα '). The secret set function 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 set function device 10 α The fragment (c γα ″, c αβ ″) is recorded , the secret set function device 10 β records the fragment (c αβ ″, c βγ ″), and the secret set function device 10 γ records the fragment (c βγ ″, c γα ″). To do.
(2) The secret set function device 10 α , 10 β , 10 γ is 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 set function device 10 α is a fragment (c γα ″ ″, c αβ ′ ″), and the secret set function device 10 β is a fragment (c αβ ′). ″, C βγ ′ ″), and the secret set function device 10 γ records the fragment (c βγ ′ ″, c γα ′ ″).
(3) The secret set function device 10 α , 10 β , 10 γ performs 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 set The function device 10 α records the fragment (c γα , c αβ ), the secret set function device 10 β records the fragment (c αβ , c βγ ), and the secret set function 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 2012154968
Figure 2012154968

を求めることである。また、秘密集合関数装置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 set function 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 set function device 10 α is

Figure 2012154968
Figure 2012154968

を計算して記録し、秘密集合関数装置10βThe secret set function device 10 β is calculated and recorded as

Figure 2012154968
Figure 2012154968

を計算して記録し、秘密集合関数装置10γThe secret set function device 10 γ is calculated and recorded

Figure 2012154968
Figure 2012154968

を計算して記録する。 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 set function device 10 β secretly distributes (a αβ + a βγ mod W) (n), and the secret set function devices 10 α , 10 β , 10 γ are (a αβ + a βγ mod W) (fragment n) (b (n) γα , b (n) αβ), (b (n) αβ, b (n) βγ), (b (n) βγ, b (n) γα ) is distributed and recorded. For n = 0 to N−1, the secret set function device 10 γ secretly distributes (a γα ) (n), and the secret set function devices 10 α , 10 β , 10 γ are fragments of (a γα ) (n) ((A γα ) (n) γα , (a γα ) (n) αβ ), ((a γα ) (n) αβ , (a γα ) (n) βγ ), ((a γα ) (n) βγ , (A γα ) (n) γα ) are recorded in a dispersed manner.
(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.

[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
[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, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   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 秘密集合関数装置 100,…,100 秘密分散装置
105 選択手段 110,…,110 断片置換部
120,…,120 再分散部 130,…,130 初期情報分散部
140,…,140 初期乗算部 150,…,150 確認分散部
160,…,160 確認乗算部 170,…,170 改ざん検出部
190,…,190 記録部 300,…,300 集合関数制御部
310 事前処理手段 310,…,310 事前処理部
311 第1事前初期化手段 311,…,311 第1事前初期化部
312 第2事前初期化手段 312,…,312 第2事前初期化部
313 事前結合手段 313,…,313 事前結合部
314 保存手段 314,…,314 保存部
315 第2事前繰返手段 315,…,315 第2事前繰返部
316 事前削除手段 316,…,316 事前削除部
317 第1事前繰返手段 317,…,317 第1事前繰返部
320 初期化手段 320,…,320 初期化部
330 結合演算手段 330,…,330 結合演算部
331 第1結合手段 331,…,331 第1結合部
332 第2結合手段 332,…,332 第2結合部
333 第3結合手段 333,…,333 第3結合部
340 削除手段 340,…,340 削除部
1000 ネットワーク
10 1, ..., 10 N secret set function 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 multiplier unit 0.99 1, ..., 0.99 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 set function control unit 310 pre-processing means 310 1 ,..., 310 N pre-processing unit 311 first pre-initializing means 311 1 , ..., 311 N first pre-initialization unit 312 the second pre-initializing means 312 1, ..., 312 N second pre initializing unit 313 pre-coupling means 313 1, ..., 313 N preconnected unit 314 storage unit 314 1, ... , 314 N storage unit 315 second pre-repetition unit 315 1 , ..., 315 N second pre-repetition unit 316 pre-deletion unit 316 1 , ..., 316 N pre-deletion unit 317 first pre-repetition unit 317 1 , ... , 317 N first pre-repetition unit 320 initialization means 320 1, ..., 320 N initialization unit 330 coupled calculating means 330 1, ..., 330 N bond calculation unit 331 first coupling means 331 1, ..., 331 N first 1 coupling portion 332 second coupling means 332 1, ..., 332 N second coupling portion 333 third connecting means 333 1, ..., 333 N third coupling portion 340 deleting unit 340 1, ..., 340 N deletion unit 1000 network

Claims (10)

N個の秘密集合関数装置R,…,Rで構成され、キーkと属性値vを含むM個の情報(k,v),…,(k,v)がそれぞれ秘密分散された情報([k],[v]),…,([k],[v])から、秘密分散された集計結果を求めるセキュア集合関数システムであって、
Mは2以上の整数、Nは3以上の整数、m,i,jは1以上M以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、(+)は単位元が存在し結合律と可換律が成り立つ前記集計結果を求めるための演算を示す記号、(0)は演算(+)の単位元を示す記号とし、
M個のデータz,…,zを、z=vのように設定し、情報([k],[z]),…,([k],[z])を生成する初期化手段と、
キーkとキーk(ただし、i≠j)とが等しいときには
=z(+)z,z=(0)
とし、等しくないときには
=z,z=z
とする結合処理を、すべての等しいキーを持つ情報に対して秘密計算で実行する結合演算手段と、
を備えるセキュア集合関数システム。
N number of private set function unit R 1, ..., is composed of R N, M pieces of information including the key k m and attribute values v m (k 1, v 1 ), ..., (k M, v M) is A secure set function system for obtaining a secret-distributed aggregation result from secret-distributed information ([k 1 ], [v 1 ]), ..., ([k M ], [v M ]),
M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, m, i, j are integers greater than or equal to 1 and less than or equal to M, [] is a symbol indicating information in which information in parentheses is secretly shared for each element, (+) Is a symbol indicating an operation for obtaining the aggregation result in which the unit element exists and the join rule and the commutative rule are established, and (0) is a symbol indicating the unit element of the operation (+),
M data z 1, ..., a z M, set as z m = v m, the information ([k 1], [z 1]), ..., ([k M], [z M]) Initialization means for generating
When the key k i is equal to the key k j (where i ≠ j), z j = z i (+) z j , z i = (0)
And if not equal, z j = z j , z i = z i
A join operation means for executing a join process with secret calculation on information having all equal keys;
A secure set function system comprising:
請求項1記載のセキュア集合関数システムであって、
情報([k],[v]),…,([k],[v])はキーkに基づいてソートされた情報とし、
前記結合演算手段の処理後に、M個の情報([k],[z])を秘密計算でランダム置換し、ランダム置換後のzが(0)かを確認し、z=(0)の場合には情報([k],[z])を削除する削除手段
も備え、
前記結合演算手段は、
iを1からM−1まで順番に値を大きくしながら、j=i+1に対して前記結合処理を行う、または、iをMから2まで順番に値を小さくしながら、j=i−1に対して前記結合処理を行う
ことを特徴とするセキュア集合関数システム。
The secure set function system according to claim 1,
Information ([k 1], [v 1]), ..., and ([k M], [v M]) information is sorted on the basis of the key k m,
After the processing of the joint operation means, M pieces of information ([k m ], [z m ]) are randomly replaced by secret calculation, and it is confirmed whether z m after the random replacement is (0), z m = ( information in the case of 0) ([k m], also comprising deleting means for deleting the [z m]),
The joint calculation means includes
Perform the above-mentioned combining process for j = i + 1 while increasing the value in order from 1 to M−1, or set j = i−1 while decreasing the value in order from M to 2. A secure set function system characterized in that the joining process is performed on the secure set function system.
請求項1記載のセキュア集合関数システムであって、
Tは(logM)−1以上の最小の整数、tは0以上T以下の整数、^はべき乗を示す記号、情報([k],[v]),…,([k],[v])はキーkに基づいてソートされた情報とし、
前記結合演算手段の処理後に、M個の情報([k],[z])を秘密計算でランダム置換し、ランダム置換後のzが(0)かを確認し、z=(0)の場合には情報([k],[z])を削除する削除手段
も備え、
前記結合演算手段は、
i=1,2,…,M−2^tについて
とki+2^tが等しいときには
i+2^t’=z(+)zi+2^t
とし、等しくないときには
i+2^t’=zi+2^t
とする第1結合手段と、
i=1,2,…,Mについて
=z
とする第2結合手段と、
i=1,2,…,M−1について、kとki+1が等しいときには
=z
とし、等しくないときには
=(0)
とする
とする第3結合手段と、
を有し、t=0,1,2,…,Tについて、前記第1結合手段と前記第2結合手段の処理を繰返した後に前記第3結合手段の処理を行う
ことを特徴とするセキュア集合関数システム。
The secure set function system according to claim 1,
T is the smallest integer greater than or equal to (log 2 M) −1, t is an integer greater than or equal to 0 and less than or equal to T, ^ is a symbol indicating power, information ([k 1 ], [v 1 ]),... ([K M ], and [v M]) information is sorted based on the key k m,
After the processing of the joint operation means, M pieces of information ([k m ], [z m ]) are randomly replaced by secret calculation, and it is confirmed whether z m after the random replacement is (0), z m = ( information in the case of 0) ([k m], also comprising deleting means for deleting the [z m]),
The joint calculation means includes
When i = 1, 2,..., M−2 ^ t, when k i and k i + 2 ^ t are equal, z i + 2 ^ t ′ = z i (+) z i + 2 ^ t
And if not equal z i + 2 ^ t '= z i + 2 ^ t
A first coupling means,
i = 1, 2,..., M z i = z i
A second coupling means,
For i = 1, 2,..., M−1, when k i and k i + 1 are equal, z i = z i
And then, when unequal z i = (0)
A third coupling means, and
, And for t = 0, 1, 2,..., T, the processing of the third combining means is performed after the processing of the first combining means and the second combining means is repeated. Function system.
請求項2または3記載のセキュア集合関数システムであって、
sをあらかじめ定めたM以下の整数、Kはキーkの取り得る値の数とし、
M’=Mとする第1事前初期化手段と、
t=0、M”=M’とする第2事前初期化手段と、
tにt+1を代入し、
1からM”/2以下の最大の整数までのiについて、k2i−1とk2iが等しいときには
2i=z2i−1(+)z2i,z2i−1=(0)
とし、等しくないときには
2i=z2i 2i−1=z2i−1
とする事前結合手段と、
奇数番目の情報([km’],[zm’])を抜き取って保存し、残った情報を新しい情報([k],[z])とし、新しい情報([k],[z])の数を新しいM”とする保存手段と、
前記事前結合手段と前記保存手段の処理を、M”が2K以下になるまで繰り返す第2事前繰返手段と、
前記保存手段が保存したすべての情報([km’],[zm’])と残った情報([k],[z])とを一緒にした上で、秘密計算でランダム置換し、ランダム置換後のzが(0)かを確認し、z=(0)の場合には情報([k],[z])を削除し、残った情報を新しい情報([k],[z])とし、新しい情報([k],[z])の数をM’とする事前削除手段と、
前記第2事前初期化手段、前記事前結合手段、前記保存手段、前記第2事前繰返手段、前記事前削除手段の処理をM’がsより小さくなるまで繰り返す第1事前繰返手段と
を有する事前処理手段も備え、
Mを、前記事前処理手段の処理後の情報([k],[z])の数に変更し、前記事前処理手段の処理後の情報([k],[z])に対して、前記初期化手段の処理を実行する
ことを特徴とするセキュア集合関数システム。
A secure set function system according to claim 2 or 3,
s The predetermined M an integer, K is the number of possible values of the key k m,
First pre-initialization means for M ′ = M;
second pre-initialization means for t = 0, M ″ = M ′;
Substitute t + 1 for t,
Z 2i = z 2i-1 (+) z 2i , z 2i-1 = (0) when k 2i-1 and k 2i are equal for i from 1 to the maximum integer of M ″ / 2 or less
And if not equal, z 2i = z 2i , z 2i-1 = z 2i-1
Pre-joining means,
Odd-numbered information ([k m '], [ z m']) that extracts the saved, remaining information new information ([k m], [z m]) and the new information ([k m], [Z m ]) a number of new M ″ storage means;
A second pre-repetition unit that repeats the processes of the pre-coupling unit and the storage unit until M ″ becomes 2K or less;
The storage means are all stored information ([k m '], [ z m']) and the remaining information ([k m], [z m]) on which the combined and randomly replaced with secure computing and, z m after the random substitution check to see (0), z m = ( 0) in the case of the information ([k m], [z m]) to remove the, the remaining information new information ( [K m ], [z m ]), and M ′ the number of new information ([k m ], [z m ]),
A first pre-repetition unit that repeats the processes of the second pre-initialization unit, the pre-combination unit, the storage unit, the second pre-repetition unit, and the pre-deletion unit until M ′ becomes smaller than s; Including pre-processing means having
The M, the pre-processing means of the processed information ([k m], [z m]) to change the number of the pre-processing means of the processed information ([k m], [z m] ), The process of the initialization means is executed.
キーkと属性値vを含むM個の情報(k,v),…,(k,v)がそれぞれ秘密分散された情報([k],[v]),…,([k],[v])から、秘密分散された集計結果を求めるセキュア集合関数システムを構成するN個の秘密集合関数装置の中の秘密集合関数装置であって、
Mは2以上の整数、Nは3以上の整数、m,i,jは1以上M以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、(+)は単位元が存在し結合律と可換律が成り立つ前記集計結果を求めるための演算を示す記号、(0)は演算(+)の単位元を示す記号とし、
M個のデータz,…,zを、z=vのように設定し、情報([k],[z]),…,([k],[z])を生成するための初期化部と、
キーkとキーk(ただし、i≠j)とが等しいときには
=z(+)z,z=(0)
とし、等しくないときには
=z,z=z
とする結合処理を、すべての等しいキーを持つ情報に対して秘密計算で実行するための結合演算部と、
を備える秘密集合関数装置。
M pieces of information, including the key k m and attribute values v m (k 1, v 1 ), ..., (k M, v M) information that has been each secret sharing ([k 1], [v 1]), ..., ([k M ], [v M ]), a secret set function device among N secret set function devices constituting a secure set function system for obtaining a secret-distributed aggregation result,
M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, m, i, j are integers greater than or equal to 1 and less than or equal to M, [] is a symbol indicating information in which information in parentheses is secretly shared for each element, (+) Is a symbol indicating an operation for obtaining the aggregation result in which the unit element exists and the join rule and the commutative rule are established, and (0) is a symbol indicating the unit element of the operation (+),
M data z 1, ..., a z M, set as z m = v m, the information ([k 1], [z 1]), ..., ([k M], [z M]) An initialization unit for generating
When the key k i is equal to the key k j (where i ≠ j), z j = z i (+) z j , z i = (0)
And if not equal, z j = z j , z i = z i
A join operation unit for executing a join process with secret calculation for information having all equal keys;
A secret set function device comprising:
N個の秘密集合関数装置R,…,Rを用いて、キーkと属性値vを含むM個の情報(k,v),…,(k,v)がそれぞれ秘密分散された情報([k],[v]),…,([k],[v])から、秘密分散された集計結果を求めるセキュア集合関数処理方法であって、
Mは2以上の整数、Nは3以上の整数、m,i,jは1以上M以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、(+)は単位元が存在し結合律と可換律が成り立つ前記集計結果を求めるための演算を示す記号、(0)は演算(+)の単位元を示す記号とし、
M個のデータz,…,zを、z=vのように設定し、情報([k],[z]),…,([k],[z])を生成する初期化ステップと、
キーkとキーk(ただし、i≠j)とが等しいときには
=z(+)z,z=(0)
とし、等しくないときには
=z,z=z
とする結合処理を、すべての等しいキーを持つ情報に対して秘密計算で実行する結合演算ステップと、
を有するセキュア集合関数処理方法。
N number of secret set function apparatus R 1, ..., by using the R N, M pieces of information, including the key k m and attribute values v m (k 1, v 1 ), ..., (k M, v M) is A secure set function processing method for obtaining a secret-distributed aggregation result from secret-distributed information ([k 1 ], [v 1 ]), ..., ([k M ], [v M ]),
M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, m, i, j are integers greater than or equal to 1 and less than or equal to M, [] is a symbol indicating information in which information in parentheses is secretly shared for each element, (+) Is a symbol indicating an operation for obtaining the aggregation result in which the unit element exists and the join rule and the commutative rule are established, and (0) is a symbol indicating the unit element of the operation (+),
M data z 1, ..., a z M, set as z m = v m, the information ([k 1], [z 1]), ..., ([k M], [z M]) An initialization step to generate
When the key k i is equal to the key k j (where i ≠ j), z j = z i (+) z j , z i = (0)
And if not equal, z j = z j , z i = z i
A join operation step for performing a join process with secret calculation on information having all equal keys;
A secure set function processing method comprising:
請求項6記載のセキュア集合関数処理方法であって、
情報([k],[v]),…,([k],[v])はキーkに基づいてソートされた情報とし、
前記結合演算ステップ後に、M個の情報([k],[z])を秘密計算でランダム置換し、ランダム置換後のzが(0)かを確認し、z=(0)の場合には情報([k],[z])を削除する削除ステップ
も有し、
前記結合演算ステップは、
iを1からM−1まで順番に値を大きくしながら、j=i+1に対して前記結合処理を行う、または、iをMから2まで順番に値を小さくしながら、j=i−1に対して前記結合処理を行う
ことを特徴とするセキュア集合関数処理方法。
The secure set function processing method according to claim 6,
Information ([k 1], [v 1]), ..., and ([k M], [v M]) information is sorted on the basis of the key k m,
Wherein after binding operation step, M pieces of information ([k m], [z m]) were randomly replaced with the secure computing, and confirms z m after random substitution or (0), z m = ( 0) in the case of the information ([k m], [z m]) has also delete step of deleting,
The join operation step includes
Perform the above-mentioned combining process for j = i + 1 while increasing the value in order from 1 to M−1, or set j = i−1 while decreasing the value in order from M to 2. A secure set function processing method, wherein the joining process is performed.
請求項6記載のセキュア集合関数処理方法であって、
Tは(logM)−1以上の最小の整数、tは0以上T以下の整数、^はべき乗を示す記号、情報([k],[v]),…,([k],[v])はキーkに基づいてソートされた情報とし、
前記結合演算ステップ後に、M個の情報([k],[z])を秘密計算でランダム置換し、ランダム置換後のzが(0)かを確認し、z=(0)の場合には情報([k],[z])を削除する削除ステップ
も有し、
前記結合演算ステップは、
i=1,2,…,M−2^tについて
とki+2^tが等しいときには
i+2^t’=z(+)zi+2^t
とし、等しくないときには
i+2^t’=zi+2^t
とする第1結合サブステップと、
i=1,2,…,Mについて
=z
とする第2結合サブステップと、
i=1,2,…,M−1について、kとki+1が等しいときには
=z
とし、等しくないときには
=(0)
とする
とする第3結合サブステップと、
を有し、t=0,1,2,…,Tについて、前記第1結合サブステップと前記第2結合サブステップを繰返した後に前記第3結合サブステップを行う
ことを特徴とするセキュア集合関数処理方法。
The secure set function processing method according to claim 6,
T is the smallest integer greater than or equal to (log 2 M) −1, t is an integer greater than or equal to 0 and less than or equal to T, ^ is a symbol indicating power, information ([k 1 ], [v 1 ]),... ([K M ], and [v M]) information is sorted based on the key k m,
Wherein after binding operation step, M pieces of information ([k m], [z m]) were randomly replaced with the secure computing, and confirms z m after random substitution or (0), z m = ( 0) in the case of the information ([k m], [z m]) has also delete step of deleting,
The join operation step includes
When i = 1, 2,..., M−2 ^ t, when k i and k i + 2 ^ t are equal, z i + 2 ^ t ′ = z i (+) z i + 2 ^ t
And if not equal z i + 2 ^ t '= z i + 2 ^ t
A first combining sub-step,
i = 1, 2,..., M z i = z i
A second combining sub-step,
For i = 1, 2,..., M−1, when k i and k i + 1 are equal, z i = z i
And then, when unequal z i = (0)
A third combining sub-step,
, And for t = 0, 1, 2,..., T, the third coupling substep is performed after repeating the first coupling substep and the second coupling substep. Processing method.
請求項7または8記載のセキュア集合関数処理方法であって、
sをあらかじめ定めたM以下の整数、Kはキーkの取り得る値の数とし、
M’=Mとする第1事前初期化サブステップと、
t=0、M”=M’とする第2事前初期化サブステップと、
tにt+1を代入し、
1からM”/2以下の最大の整数までのiについて、k2i−1とk2iが等しいときには
2i=z2i−1(+)z2i,z2i−1=(0)
とし、等しくないときには
2i=z2i 2i−1=z2i−1
とする事前結合サブステップと、
奇数番目の情報([km’],[zm’])を抜き取って保存し、残った情報を新しい情報([k],[z])とし、新しい情報([k],[z])の数を新しいM”とする保存サブステップと、
前記事前結合サブステップと前記保存サブステップを、M”が2K以下になるまで繰り返す第2事前繰返サブステップと、
前記保存サブステップが保存したすべての情報([km’],[zm’])と残った情報([k],[z])とを一緒にした上で、秘密計算でランダム置換し、ランダム置換後のzが(0)かを確認し、z=(0)の場合には情報([k],[z])を削除し、残った情報を新しい情報([k],[z])とし、新しい情報([k],[z])の数をM’とする事前削除サブステップと、
前記第2事前初期化サブステップ、前記事前結合サブステップ、前記保存サブステップ、前記第2事前繰返サブステップ、前記事前削除サブステップをM’がsより小さくなるまで繰り返す第1事前繰返サブステップと
を有する事前処理ステップも有し、
Mを、前記事前処理ステップ後の情報([k],[z])の数に変更し、前記事前処理ステップ後の情報([k],[z])に対して、前記初期化ステップの処理を実行する
ことを特徴とするセキュア集合関数処理方法。
The secure set function processing method according to claim 7 or 8,
s The predetermined M an integer, K is the number of possible values of the key k m,
A first pre-initialization substep with M ′ = M;
a second pre-initialization substep with t = 0, M ″ = M ′;
Substitute t + 1 for t,
Z 2i = z 2i-1 (+) z 2i , z 2i-1 = (0) when k 2i-1 and k 2i are equal for i from 1 to the maximum integer of M ″ / 2 or less
And if not equal, z 2i = z 2i , z 2i-1 = z 2i-1
A pre-join substep with
Odd-numbered information ([k m '], [ z m']) that extracts the saved, remaining information new information ([k m], [z m]) and the new information ([k m], A storage sub-step with the number of [z m ]) as the new M ″;
A second pre-repeating sub-step that repeats the pre-binding sub-step and the storage sub-step until M ″ is 2K or less;
The storage sub-step are all stored information ([k m '], [ z m']) and the remaining information ([k m], [z m]) on which the combined and, random secure computing substituted, confirmed z m after the random substitution or (0), information in the case of z m = (0) is ([k m], [z m]) to remove the, the remaining information new information ([k m], [z m]) and the new information ([k m], [z m]) and pre-delete substep of the M 'number of,
A first pre-repetition that repeats the second pre-initialization sub-step, the pre-combination sub-step, the storage sub-step, the second pre-repetition sub-step, and the pre-deletion sub-step until M ′ becomes smaller than s. A preprocessing step with a return substep,
The M, the pre-processing step after the information ([k m], [z m]) to change the number of the pre-processing information after step ([k m], [z m]) with respect to A process of the initialization step is executed. A secure set function processing method, comprising:
請求項1から4のいずれかに記載のセキュア集合関数システムの各秘密集合関数装置としてコンピュータを機能させるためのセキュア集合関数プログラム。
A secure set function program for causing a computer to function as each secret set function device of the secure set function system according to claim 1.
JP2011011233A 2011-01-21 2011-01-21 Secure set function system, secret set function device, secure set function processing method, secure set function program Active JP5486520B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011011233A JP5486520B2 (en) 2011-01-21 2011-01-21 Secure set function system, secret set function device, secure set function processing method, secure set function program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011011233A JP5486520B2 (en) 2011-01-21 2011-01-21 Secure set function system, secret set function device, secure set function processing method, secure set function program

Publications (2)

Publication Number Publication Date
JP2012154968A true JP2012154968A (en) 2012-08-16
JP5486520B2 JP5486520B2 (en) 2014-05-07

Family

ID=46836788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011011233A Active JP5486520B2 (en) 2011-01-21 2011-01-21 Secure set function system, secret set function device, secure set function processing method, secure set function program

Country Status (1)

Country Link
JP (1) JP5486520B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014081475A (en) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> Secret calculation system, aggregate function device, secret calculation method, and program
JP2014164144A (en) * 2013-02-26 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> Secret spreadsheet division calculation device and method
JP2015068999A (en) * 2013-09-30 2015-04-13 日本電信電話株式会社 Secret calculation device, secret search system, secret calculation method, secret search method, and program
WO2019208484A1 (en) * 2018-04-25 2019-10-31 日本電信電話株式会社 Secure aggregate sum system, secure computation device, secure aggregate sum method, and program
WO2019208485A1 (en) * 2018-04-25 2019-10-31 日本電信電話株式会社 Secure aggregate maximum value system, secure aggregate minimum value system, secure computation device, secure aggregate maximum value method, secure aggregate minimum value method, and program
WO2019221108A1 (en) * 2018-05-17 2019-11-21 日本電信電話株式会社 Secret cross tabulation system, secret calculation device, secret cross tabulation method, and program
WO2019225401A1 (en) * 2018-05-25 2019-11-28 日本電信電話株式会社 Secret aggregate function calculation system, secret calculation device, secret aggregate function calculation method, and program
CN111902854A (en) * 2018-03-26 2020-11-06 日本电信电话株式会社 Secret duplication elimination filter generation system, secret duplication elimination system, methods thereof, secret calculation device, and program
CN112567442A (en) * 2018-08-13 2021-03-26 日本电信电话株式会社 Secret strong mapping calculation system, method thereof, secret calculation device, and program
CN112805768A (en) * 2018-10-04 2021-05-14 日本电信电话株式会社 Secret sigmoid function calculation system, secret logistic regression calculation system, secret sigmoid function calculation device, secret logistic regression calculation device, secret sigmoid function calculation method, secret logistic regression calculation method, and program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11888973B2 (en) * 2018-08-13 2024-01-30 Nippon Telegraph And Telephone Corporation Secure joining system, method, secure computing apparatus and program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250100A1 (en) * 2003-06-09 2004-12-09 Rakesh Agrawal Information integration across autonomous enterprises

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250100A1 (en) * 2003-06-09 2004-12-09 Rakesh Agrawal Information integration across autonomous enterprises

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG201000816008; 志村正法 他: '秘密分散データベースの構造演算を可能にするマルチパーティプロトコルを用いた関係代数演算 Relational A' 情報処理学会論文誌 第51巻 第9号, 20100915, p.1563-1578 *
JPN6013058815; 志村正法 他: '秘密分散データベースの構造演算を可能にするマルチパーティプロトコルを用いた関係代数演算 Relational A' 情報処理学会論文誌 第51巻 第9号, 20100915, p.1563-1578 *

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014081475A (en) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> Secret calculation system, aggregate function device, secret calculation method, and program
JP2014164144A (en) * 2013-02-26 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> Secret spreadsheet division calculation device and method
JP2015068999A (en) * 2013-09-30 2015-04-13 日本電信電話株式会社 Secret calculation device, secret search system, secret calculation method, secret search method, and program
CN111902854A (en) * 2018-03-26 2020-11-06 日本电信电话株式会社 Secret duplication elimination filter generation system, secret duplication elimination system, methods thereof, secret calculation device, and program
CN111902854B (en) * 2018-03-26 2023-08-01 日本电信电话株式会社 Secret duplication elimination filter generation system, secret duplication elimination system, method therefor, secret calculation device, and recording medium
US11251945B2 (en) 2018-04-25 2022-02-15 Nippon Telegraph And Telephone Corporation Secure aggregate maximum system, secure aggregate minimum system, secure computation apparatus, secure aggregate maximum method, secure aggregate minimum method, and program
WO2019208485A1 (en) * 2018-04-25 2019-10-31 日本電信電話株式会社 Secure aggregate maximum value system, secure aggregate minimum value system, secure computation device, secure aggregate maximum value method, secure aggregate minimum value method, and program
CN112074890B (en) * 2018-04-25 2024-03-22 日本电信电话株式会社 Secret aggregate maximum value system and method, secret aggregate minimum value system and method, secret calculation device, and recording medium
CN112020737A (en) * 2018-04-25 2020-12-01 日本电信电话株式会社 Secret aggregation totaling system, secret computing device, secret aggregation totaling method, and program
CN112074890A (en) * 2018-04-25 2020-12-11 日本电信电话株式会社 Secret aggregation maximum value system, secret aggregation minimum value system, secret calculation device, secret aggregation maximum value method, secret aggregation minimum value method, and program
CN112020737B (en) * 2018-04-25 2023-08-08 日本电信电话株式会社 Secret aggregation system, secret calculation device, recording medium, and secret aggregation method
WO2019208484A1 (en) * 2018-04-25 2019-10-31 日本電信電話株式会社 Secure aggregate sum system, secure computation device, secure aggregate sum method, and program
EP3786928A4 (en) * 2018-04-25 2022-01-19 Nippon Telegraph And Telephone Corporation Secure aggregate maximum value system, secure aggregate minimum value system, secure computation device, secure aggregate maximum value method, secure aggregate minimum value method, and program
JPWO2019208485A1 (en) * 2018-04-25 2021-04-22 日本電信電話株式会社 Secret Aggregation Maximum Value System, Secret Aggregation Minimum Value System, Secret Computing Unit, Secret Aggregation Maximum Value Method, Secret Aggregation Minimum Value Method, and Program
JPWO2019208484A1 (en) * 2018-04-25 2021-04-22 日本電信電話株式会社 Secret summation system, secret calculator, secret summation method, and program
AU2019259260B2 (en) * 2018-04-25 2021-07-15 Nippon Telegraph And Telephone Corporation Secure aggregate sum system, secure computation apparatus, secure aggregate sum method, and program
AU2019259261B2 (en) * 2018-04-25 2021-07-08 Nippon Telegraph And Telephone Corporation Secure aggregate maximum system, secure aggregate minimum system, secure computation apparatus, secure aggregate maximum method, secure aggregate minimum method, and program
JP7017178B2 (en) 2018-05-17 2022-02-08 日本電信電話株式会社 Secret cross tabulation system, secret calculator, secret cross tabulation method, and program
CN112119441A (en) * 2018-05-17 2020-12-22 日本电信电话株式会社 Secret cross accumulation system, secret calculation device, secret cross accumulation method, and program
JPWO2019221108A1 (en) * 2018-05-17 2021-04-30 日本電信電話株式会社 Secret crosstab system, secret calculator, secret crosstab method, and program
AU2019270715B2 (en) * 2018-05-17 2021-08-26 Nippon Telegraph And Telephone Corporation Secure cross tabulation system, secure computation apparatus, secure cross tabulation method, and program
WO2019221108A1 (en) * 2018-05-17 2019-11-21 日本電信電話株式会社 Secret cross tabulation system, secret calculation device, secret cross tabulation method, and program
CN112119441B (en) * 2018-05-17 2024-03-22 日本电信电话株式会社 Secret cross accumulation system, secret calculation device, secret cross accumulation method, and recording medium
AU2019273208B2 (en) * 2018-05-25 2021-09-16 Nippon Telegraph And Telephone Corporation Secure aggregate function computation system, secure computation apparatus, secure aggregate function computation method, and program
JPWO2019225401A1 (en) * 2018-05-25 2021-05-27 日本電信電話株式会社 Secret aggregate function calculation system, secret calculation device, secret aggregate function calculation method, and program
CN112119442A (en) * 2018-05-25 2020-12-22 日本电信电话株式会社 Secret aggregation function calculation system, secret calculation device, secret aggregation function calculation method, and program
WO2019225401A1 (en) * 2018-05-25 2019-11-28 日本電信電話株式会社 Secret aggregate function calculation system, secret calculation device, secret aggregate function calculation method, and program
US11886876B2 (en) 2018-08-13 2024-01-30 Nippon Telegraph And Telephone Corporation Secure strong mapping computing systems, methods, secure computing apparatus and program
CN112567442A (en) * 2018-08-13 2021-03-26 日本电信电话株式会社 Secret strong mapping calculation system, method thereof, secret calculation device, and program
CN112567442B (en) * 2018-08-13 2024-04-09 日本电信电话株式会社 Secret strong mapping computing system, method thereof, secret computing device, and recording medium
CN112805768A (en) * 2018-10-04 2021-05-14 日本电信电话株式会社 Secret sigmoid function calculation system, secret logistic regression calculation system, secret sigmoid function calculation device, secret logistic regression calculation device, secret sigmoid function calculation method, secret logistic regression calculation method, and program
CN112805768B (en) * 2018-10-04 2023-08-04 日本电信电话株式会社 Secret S-type function calculation system and method therefor, secret logistic regression calculation system and method therefor, secret S-type function calculation device, secret logistic regression calculation device, and program

Also Published As

Publication number Publication date
JP5486520B2 (en) 2014-05-07

Similar Documents

Publication Publication Date Title
JP5486520B2 (en) Secure set function system, secret set function device, secure set function processing method, secure set function program
JP5411994B2 (en) Secret sharing system, secret sharing apparatus, secret sharing method, secret sorting method, secret sharing program
US10700850B2 (en) System and method for information protection
US10938549B2 (en) System and method for information protection
EP3096309B1 (en) Secret calculation method, secret calculation system, sorting device, and program
WO2016208437A1 (en) Secret calculation device, secret calculation method, and program
CN106452769B (en) A kind of data processing method, data processing equipment and processor
US20230039723A1 (en) Secret hash table construction system, reference system, methods for the same
JP5480828B2 (en) Secret sort system, secret sort device, secret sort method, secret sort program
CN104915609B (en) It is a kind of based on Lagrange interpolation methods and cloudy data-hiding method
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
JP5670366B2 (en) Anonymous data providing system, anonymous data device, method executed by them, and program
JP6337133B2 (en) Non-decreasing sequence determination device, non-decreasing sequence determination method, and program
JP5391212B2 (en) Secure search system, secret search device, secure search method, secure search program
WO2019163636A1 (en) Secret calculation device, secret calculation authentication system, secret calculation method, and program
JP6059159B2 (en) Share conversion system, share conversion method, program
JP6321216B2 (en) Matrix / key generation device, matrix / key generation system, matrix combination device, matrix / key generation method, program
JP5689845B2 (en) Secret calculation device, secret calculation method, and program
AU2019101581A4 (en) System and method for information protection
JP5506705B2 (en) Secret matching system, secret matching device, secret matching method, secret matching program
CN112395623B (en) Data processing method and device and electronic equipment
Jeon One-way hash function based on cellular automata
CN112395624B (en) Data processing method and device and electronic equipment
JP5640624B2 (en) Distributed information generation apparatus, restoration apparatus, secret sharing system, information processing 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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140221

R150 Certificate of patent or registration of utility model

Ref document number: 5486520

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150