JP5995749B2 - Secret set operation apparatus and method - Google Patents
Secret set operation apparatus and method Download PDFInfo
- Publication number
- JP5995749B2 JP5995749B2 JP2013035362A JP2013035362A JP5995749B2 JP 5995749 B2 JP5995749 B2 JP 5995749B2 JP 2013035362 A JP2013035362 A JP 2013035362A JP 2013035362 A JP2013035362 A JP 2013035362A JP 5995749 B2 JP5995749 B2 JP 5995749B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- matrix
- value
- secret
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
この発明は、暗号技術に関する。特に、秘密計算によって、情報を秘密にしたまま集合の演算を行う技術に関する。 The present invention relates to encryption technology. In particular, the present invention relates to a technique for performing a set operation while keeping information secret by a secret calculation.
暗号化された数値を復元すること無く特定の演算結果を得る方法として、秘密計算と呼ばれる技術が知られている(例えば、非特許文献1参照。)。非特許文献1に記載された技術では、3つの秘密計算装置に数値の断片を分散させるという暗号化を行い、これらの3つの秘密計算装置が協調計算を行うことにより、数値を復元すること無く、加減算、定数和、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。
As a method for obtaining a specific calculation result without restoring the encrypted numerical value, a technique called secret calculation is known (for example, see Non-Patent Document 1). In the technique described in
また、秘密計算上で入力と出力の集合の真の大きさを秘匿したまま集合演算を実現した方法として、非特許文献2の技術が知られている。
Further, as a method for realizing a set operation while keeping the true size of a set of input and output on secret calculation, the technique of Non-Patent
しかしながら、従来技術は直積の演算を要するため、入力の2つの行列の行数をそれぞれm,nとすると計算時間がO(mn)と膨大である。 However, since the prior art requires a direct product operation, if the number of rows of the two input matrices is m and n, respectively, the calculation time is as large as O (mn).
この発明の目的は、従来よりも短い計算時間で集合演算を実現する秘密集合演算装置及び方法を提供することである。 An object of the present invention is to provide a secret set operation apparatus and method for realizing a set operation in a shorter calculation time than in the past.
この発明の一態様による秘密集合演算装置は、aを秘匿化している情報を<a>として、各集合は行列であり第一方向に配置されたダミーのレコードを含む少なくとも1つのレコードから構成されているとし、各レコードは少なくとも1つの属性にそれぞれ対応する第二方向に配置された少なくとも1つの属性値及び各レコードがダミーであるかどうかを表す空フラグから構成されているとし、空フラグが1であれば各レコードはダミーを表し空フラグが0であれば各レコードはダミーではないことを表し、集合Sの行列を構成するレコード数をmとし、集合Tの行列を構成するレコード数をnとして、秘密集合演算装置を構成する少なくとも1つの秘密計算装置が、協調計算によって、集合Tの行列及び集合Sの行列を第一方向に結合した行列をUとして、<T>及び<S>に基づいて<U>を計算し、Uを第一方向に安定ソートした行列をU1として、<U>に基づいて<U1>を計算し、iを2以上n+m以下の各整数とし、1番目の要素の値を0とし、U1を構成する第一方向におけるi番目の第二方向のベクトルがU1を構成する第一方向におけるi-1番目の第二方向のベクトルと同じであればi番目の要素の値を1とし、U1を構成する第一方向におけるi番目の第二方向のベクトルがU1を構成する第一方向におけるi-1番目の第二方向のベクトルと異なれば第一方向におけるi番目の要素の値を0とするベクトルをeとして、<U1>に基づいて<e>を計算し、行われる演算に応じてeそのものを又はeの要素の値に変更を加えたベクトルをfとして、<e>に基づいて<f>を計算し、iを1以上n+m以下の各整数とし、U1のi番目のレコードの空フラグの値とfのi番目の要素の値の少なくとも一方が1であればU1の中のその空フラグの値を1とする行列をVとして、<U1>及び<f>に基づいて<V>を計算する。 The secret set calculation device according to one aspect of the present invention is configured by at least one record including dummy records arranged in a first direction, where each set is a matrix, where <a> is information concealing a Each record is composed of at least one attribute value arranged in the second direction corresponding to at least one attribute and an empty flag indicating whether each record is a dummy, If it is 1, each record is a dummy, and if the empty flag is 0, each record is not a dummy. The number of records that make up the matrix of the set S is m, and the number of records that make up the matrix of the set T is As n, at least one secret computing device constituting the secret set computing device uses a collaborative calculation to combine a matrix of the set T and a matrix of the set S in the first direction as U, and <T> And <U> is calculated based on <S>, and U is stably sorted in the first direction as U 1 , <U 1 > is calculated based on <U>, and i is 2 or more n + m following a respective integer, first the value of the element as a 0, i-1-th second in the first direction i th second direction vector in the first direction for constituting the U 1 constitutes a U 1 if they are the same as the direction of the vector and the value of i-th element and 1, i th second direction vector in the first direction for constituting the U 1 is (i-1) -th in the first direction for constituting the U 1 If the vector in the first direction is different from the vector in the second direction, the vector with the value of the i-th element in the first direction as 0 is set as e, <e> is calculated based on <U 1 >, and e itself is calculated according to the operation to be performed. Or , let f be the modified vector of the element value of e, calculate <f> based on <e>, and let i be an integer between 1 and n + m, and the i-th record of U 1 Empty flag value and f's i If at least one value of eye elements 1 a matrix to 1 the value of the empty flag in the U 1 as V, based on the <U 1> and <f> to calculate the <V>.
従来よりも短い計算時間で集合演算を実現することができる。 A set operation can be realized in a shorter calculation time than in the past.
以下、この発明の実施形態について説明する。 Embodiments of the present invention will be described below.
[定義]
aを暗号化や秘密分散などにより秘匿化している情報を<a>と表現する。<a>のことをaの秘匿文と呼ぶこともある。aは、スカラー値、ベクトル、行列である。aがベクトルである場合には、<a>はベクトルの各要素を秘匿化した情報である。aが行列である場合には、<a>は行列の各要素を秘匿化した情報である。<a>を復元するための情報は複数の断片に分割されており、複数の断片は協調計算を行う少なくとも1つの秘密計算装置により保有されているものとする。
[Definition]
Information that conceals a by encryption or secret sharing is expressed as <a>. <a> is sometimes called a secret sentence of a. a is a scalar value, vector, or matrix. When a is a vector, <a> is information obtained by concealing each element of the vector. When a is a matrix, <a> is information in which each element of the matrix is concealed. It is assumed that the information for restoring <a> is divided into a plurality of fragments, and the plurality of fragments are held by at least one secret computing device that performs cooperative calculation.
aがベクトルである場合には、<a>[i]はベクトルaのi番目の要素を意味する。aが行列である場合には、<a>[i]は行列aのi番目の第二方向のベクトルを意味する。i番目の第二方向のベクトルとは、後述するように第一方向が行方向であり第二方向が列方向である場合には、i番目の行ベクトルのことである。 If a is a vector, <a> [i] means the i-th element of vector a. When a is a matrix, <a> [i] means an i-th second direction vector of the matrix a. The i-th vector in the second direction means the i-th row vector when the first direction is the row direction and the second direction is the column direction, as will be described later.
ベクトルxとyの所定の方向での連結をx||yとする。aがスカラー値である場合には秘匿文<a>を所定の方向にn個並べたベクトルを<a>nと表現する。 Let x || y be the concatenation of vectors x and y in a given direction. When a is a scalar value, a vector in which n secret sentences <a> are arranged in a predetermined direction is expressed as <a> n .
集合演算は、和集合の演算、差集合の演算、積集合の演算である。 Set operations are union operations, difference set operations, and intersection operations.
例えば、集合Xが互いに異なる行ベクトルa,b,d,e,fから構成される行列であり、集合Yが行ベクトルa,c,dから構成される行列であるとする。 For example, it is assumed that the set X is a matrix composed of different row vectors a, b, d, e, and f, and the set Y is a matrix composed of row vectors a, c, and d.
このとき、和集合X∪Y、差集合X\Y、積集合X∩Yは、以下のようになる。 At this time, the union set X∪Y, the difference set X \ Y, and the product set X∩Y are as follows.
秘密集合演算装置は、図1に例示するように、Nを1以上の整数として、N個の秘密計算装置を備えている。N個の秘密計算装置は、協調計算により、秘匿化、復元、論理和、否定、安定ソート、等号判定の演算を行うことができる。 As illustrated in FIG. 1, the secret set calculation device includes N secret calculation devices, where N is an integer of 1 or more. The N secret calculation devices can perform operations of concealment, restoration, logical sum, negation, stable sorting, and equality determination by cooperative calculation.
秘匿化の演算は、入力されたaに基づいて、aの秘匿文<a>を計算する処理である。復元の演算は、秘匿文<a>に基づいてaを計算する処理である。秘匿化及び復号の演算の詳細については、例えば非特許文献1を参照のこと。
The concealment calculation is a process of calculating a concealment sentence <a> of a based on the inputted a. The restoration calculation is a process of calculating a based on the secret sentence <a>. For details of the concealment and decryption operations, see Non-Patent
論理和の演算は、N個の秘密計算装置による協調計算であり、a,bの秘匿文<a>,<b>を入力とし、それぞれa∨bの計算結果であるcの秘匿文<c>を計算する処理である。 The OR operation is a collaborative calculation by N secret computing devices. The a and b secret texts <a> and <b> are input, and the c secret text <c> that is the calculation result of a∨b. Is the process of calculating>.
否定の演算は、N個の秘密計算装置による協調計算であり、aの秘匿文<a>を入力とし、aの否定である¬aの計算結果であるcの秘匿文<c>を計算する処理である。 The negative operation is a collaborative calculation by N secret calculation devices, and the secret sentence <a> of a is input, and the secret sentence <c> of c, which is the negative result of ¬a, is calculated. It is processing.
論理和、否定の演算の詳細については、例えば非特許文献1を参照のこと。
See, for example, Non-Patent
安定ソートの演算は、秘匿化されたベクトル又は行列の要素を第一方向に所定の順序で並び替える処理である。第一方向とは例えば行方向であり、所定の順序とは例えば辞書順である。この場合、行列Xの安定ソートとは、行列Xを構成するn個の行ベクトルX[1],…,X[n]を辞書順に並び替えることを意味する。なお、辞書順とは、ある行ベクトルx=(x1,…,xm)とある行ベクトルy=(y1,…,ym)との順序を定める際、x<y iff (x1<y1)∨((x1=y1)∧((x2<y2)∨(…)))という基準に基づいてxとyとの順序を定めるものである。iffは、if and only ifの意味である。なお、安定ソートの際、ある行ベクトルとある行ベクトルが同じであり、これらの行ベクトルに辞書順の順序を定めることができない場合には、元の行列Xにおけるこれらの行ベクトルの順序に基づいてこれらの行ベクトルの順序が定まるとする。また、この場合、行列Xをキーとした、ベクトル又は行列であるYの行方向の安定ソートの演算とは、X,Yの行数をnとして、行列Xの行方向の安定ソートに対応する全単射の所定の置換πs:{1,…,n}→{1,…,n}に基づいて、Yを構成する行ベクトルを置換する処理を意味する。安定ソートの演算の詳細については、例えば参考文献1を参照のこと。
The stable sorting operation is a process of rearranging the concealed vector or matrix elements in a predetermined order in the first direction. The first direction is, for example, the row direction, and the predetermined order is, for example, the dictionary order. In this case, the stable sorting of the matrix X means that the n row vectors X [1],..., X [n] constituting the matrix X are rearranged in the dictionary order. Note that the dictionary order is x <y iff (x 1 ) when the order of a row vector x = (x 1 ,..., X m ) and a row vector y = (y 1 ,..., Y m ) is determined. <y 1 ) ∨ ((x 1 = y 1 ) ∧ ((x 2 <y 2 ) ∨ (...)))) determines the order of x and y. iff means if and only if. Note that when stable sorting, a row vector and a row vector are the same, and the order of these row vectors in the original matrix X is determined when the order of the dictionary order cannot be determined for these row vectors. Assume that the order of these row vectors is determined. In this case, the operation of the stable sorting in the row direction of the vector or matrix Y using the matrix X as a key corresponds to the stable sorting in the row direction of the matrix X, where n is the number of rows of X and Y. This means a process of replacing row vectors constituting Y based on bijective predetermined substitution π s : {1,..., N} → {1,..., N}. See, for example,
〔参考文献1〕濱田浩気, 五十嵐大, 千田浩司, 高橋克巳, “秘匿関数計算上の線形時間ソート”, In SCIS, pp.1-7, 2011. [Reference 1] Hiroki Kajita, Dai Igarashi, Koji Senda, Katsumi Takahashi, “Linear time sorting on secret function calculation”, In SCIS, pp.1-7, 2011.
例えば、行列X,Yが以下のように与えられた場合、安定ソート後の行列X’、行列Xをキーとした安定ソート後のY’は以下のようになる。 For example, when the matrices X and Y are given as follows, the matrix X ′ after the stable sorting and the Y ′ after the stable sorting using the matrix X as a key are as follows.
等号判定の演算は、a,bの秘匿文<a>,<b>を入力とし、a=bの真偽値cの秘匿文<c>を計算する処理である。真偽値は真のとき1、偽のとき0とする。この演算の実行を(<a>=?<b>)と表現する。等号判定の演算の詳細については、例えば参考文献2を参照のこと。
The calculation for equality determination is a process of calculating the secret sentence <c> of the truth value c of a = b with the secret sentences <a> and <b> of a and b as inputs. The truth value is 1 when true and 0 when false. The execution of this operation is expressed as (<a> = ? <B>). For details of the calculation of the equal sign determination, see
〔参考文献2〕Takashi Nishide, Kazuo Ohta, “Multiparty computation for interval, equality, and comparison without bitdecomposition protocol”, In PKC, pp.343-360, 2007. [Reference 2] Takashi Nishide, Kazuo Ohta, “Multiparty computation for interval, equality, and comparison without bitdecomposition protocol”, In PKC, pp.343-360, 2007.
[上位概念の実施形態]
後述するように、大きさを秘匿した集合<S>及び大きさを秘匿した集合<T>について、第一実施形態は和集合の演算を行うものであり、第二実施形態は差集合の演算を行うものであり、第三実施形態は積集合の演算を行うものである。
[Embodiment of superordinate concept]
As will be described later, for the set <S> whose size is concealed and the set <T> whose size is concealed, the first embodiment performs the union operation, and the second embodiment performs the difference set operation. In the third embodiment, a product set operation is performed.
まず、第一実施形態から第三実施形態に共通する部分についての実施形態である上位概念の実施形態について説明する。 First, an embodiment of a superordinate concept that is an embodiment of a part common to the first to third embodiments will be described.
入力及び出力の対象となる各集合は、図2に例示するように、行列で表されており、第一方向に配置されたダミーのレコードを含む少なくとも1つのレコードから構成されている。各レコードは少なくとも1つの属性にそれぞれ対応する第二方向に配置された少なくとも1つの属性値及びその各レコードがダミーであるかどうかを表す空フラグから構成されている。例えば、空フラグが1であればその各レコードはダミーを表し空フラグが0であればその各レコードはダミーではないことを表す。 Each set to be input and output is represented by a matrix as illustrated in FIG. 2, and includes at least one record including dummy records arranged in the first direction. Each record is composed of at least one attribute value arranged in the second direction corresponding to at least one attribute and an empty flag indicating whether or not each record is a dummy. For example, if the empty flag is 1, the record is a dummy, and if the empty flag is 0, the record is not a dummy.
以下、第一方向が行方向であり、第二方向が列方向である場合を例に挙げて説明する。 Hereinafter, a case where the first direction is the row direction and the second direction is the column direction will be described as an example.
図2に例示した行列は、行方向に配置されたダミーのレコードを含む3個のレコードから構成されている。この例では、3行目のレコードがダミーである。各レコードは、4個の属性にそれぞれ対応する列方向に配置された属性値及び空フラグから構成されている。この例では、空フラグは第1列目に配置されている。この行列の属性は、ID、年齢、性別、職業である。このように、ダミーのレコードを含めることにより、集合の真の大きさを秘匿化することができる。 The matrix illustrated in FIG. 2 includes three records including dummy records arranged in the row direction. In this example, the record in the third row is a dummy. Each record includes attribute values and empty flags arranged in the column direction corresponding to the four attributes. In this example, the empty flag is arranged in the first column. The attributes of this matrix are ID, age, gender, and occupation. Thus, by including a dummy record, the true size of the set can be concealed.
秘密集合演算装置は、図1に例示するように、Nを1以上の整数として、N個の秘密計算装置を備えている。 As illustrated in FIG. 1, the secret set calculation device includes N secret calculation devices, where N is an integer of 1 or more.
行列である集合Sを構成するレコード数をmとし、行列である集合Tを構成するレコード数をnとする。以下に、S,Tの例を挙げる。 Let m be the number of records that make up the set S that is a matrix, and n be the number of records that make up the set T that is a matrix. Examples of S and T are given below.
<ステップS1>
N個の秘密計算装置は、協調計算により、<T>及び<S>に基づいて<U>を計算する(ステップS1)。
<Step S1>
The N secret calculation apparatuses calculate <U> based on <T> and <S> by cooperative calculation (step S1).
ここで、集合Tの行列及び集合Sの行列を第一方向(この例では行方向)に結合した行列をUとする。 Here, U is a matrix obtained by combining the matrix of the set T and the matrix of the set S in the first direction (in this example, the row direction).
Uは以下のようになる。 U is as follows.
<ステップS2>
N個の秘密計算装置は、協調計算により、<U>に基づいて<U1>を計算する(ステップS2)。
<Step S2>
The N secret calculation apparatuses calculate <U 1 > based on <U> by cooperative calculation (step S2).
ここで、Uを第一方向に安定ソートした行列をU1とする。 Here, U 1 is a matrix obtained by stably sorting U in the first direction.
U1は以下のようになる。 U 1 is as follows.
<ステップS3>
N個の秘密計算装置は、協調計算により、<U1>に基づいて<e>を計算する(ステップS3)。
<Step S3>
The N secret calculation devices calculate <e> based on <U 1 > through cooperative calculation (step S3).
ここで、iを2以上n+m以下の各整数とし、1番目の要素の値を0とし、U1を構成する第一方向におけるi番目の第二方向のベクトルがU1を構成する第一方向におけるi-1番目の第二方向のベクトルと同じであればi番目の要素の値を1とし、U1を構成する第一方向におけるi番目の第二方向のベクトルがU1を構成する第一方向におけるi-1番目の第二方向のベクトルと異なれば第一方向におけるi番目の要素の値を0とするベクトルをeとする。この例では、第一方向は行方向であり、第二方向のベクトルは行ベクトルである。 Here, i is an integer of 2 to n + m, the value of the first element is 0, and the i-th vector in the first direction that forms U 1 is the first vector that forms U 1 if i-1 th the same as the second direction of the vector in one direction and the value of i-th element and 1, i th second direction vector in the first direction for constituting the U 1 is configured the U 1 If the vector is different from the (i−1) th second direction vector in the first direction, the vector in which the value of the i th element in the first direction is 0 is set to e. In this example, the first direction is the row direction, and the vector in the second direction is the row vector.
eは、以下のようになる。 e is as follows.
すなわち、N個の秘密計算装置は、協調計算により、以下の式により定義される<e>を計算する。ここで、iは1≦i≦m+nの各整数である。 That is, the N secret calculation devices calculate <e> defined by the following equation by cooperative calculation. Here, i is an integer of 1 ≦ i ≦ m + n.
<ステップS4>
N個の秘密計算装置は、協調計算により、<e>に基づいて<f>を計算する(ステップS4)。
<Step S4>
The N secret calculation devices calculate <f> based on <e> by cooperative calculation (step S4).
ここで、行われる演算に応じてeの要素の値に変更を加えたベクトルをfとする。例えば、和集合の演算を行う場合には、eをそのままfとする。すなわち、iを1≦i≦m+nの各整数として、f[i]=e[i]とする。このステップS4におけるfの定義が、後述する各実施形態において異なる。 Here, let f be a vector obtained by changing the value of the element e according to the operation to be performed. For example, when performing a union operation, e is directly set to f. That is, let f [i] = e [i] where i is an integer of 1 ≦ i ≦ m + n. The definition of f in step S4 is different in each embodiment described later.
例えば、和集合の演算を行うためにf=eとした場合には、fは以下のようになる。 For example, when f = e is used to perform a union operation, f is as follows.
<ステップS5>
N個の秘密計算装置は、協調計算により、<U1>及び<f>に基づいて<V>を計算する(ステップS5)。
<Step S5>
The N secret calculation apparatuses calculate <V> based on <U 1 > and <f> by cooperative calculation (step S5).
ここで、iを1以上n+m以下の各整数とし、U1のi番目のレコードの空フラグの値とfのi番目の要素の値の少なくとも一方が1であればU1の中のその空フラグの値を1とする行列をVとする。 Here, i is an integer between 1 and n + m, and if at least one of the value of the empty flag of the i-th record of U 1 and the value of the i-th element of f is 1, then the value in U 1 Let V be the matrix whose empty flag value is 1.
ステップS4において例えば和集合の演算を行うためにf=eとした場合には、Vは以下のようになる。 In step S4, for example, when f = e to perform the union operation, V is as follows.
従来技術は直積の演算を要するため、入力の2つの行列の行数をそれぞれm,nとすると、計算途中で行数がmnの行列を作る必要があった。この発明は、直積の演算を用いずに構成されており計算途中で行数がO(m+n)の行列しか作る必要がないため、従来よりも計算時間が短い。具体的には、計算時間がO((m+n)log(m+n))である秘密計算上での集合演算を実現することができる。 Since the prior art requires a direct product operation, if the number of rows of the two input matrices is m and n, respectively, it is necessary to create a matrix with the number of rows mn during the calculation. The present invention is configured without using a direct product operation, and only needs to create a matrix having the number of rows O (m + n) in the middle of the calculation. Therefore, the calculation time is shorter than that of the prior art. Specifically, a set operation on a secret calculation with a calculation time of O ((m + n) log (m + n)) can be realized.
また、空フラグにより、入力される行列、出力される行列の大きさ(行数)は秘匿化されている。 In addition, the input matrix and the size (number of rows) of the output matrix are concealed by the empty flag.
[第一実施形態]
第一実施形態の秘密集合演算装置は、大きさを秘匿した集合<S>及び大きさを秘匿した集合<T>について和集合の演算を行うものである。
[First embodiment]
The secret set calculation device according to the first embodiment performs union calculation on a set <S> whose size is concealed and a set <T> whose size is concealed.
第一実施形態では、ステップS4において、eをそのままfとする。すなわち、iを1≦i≦m+nの各整数として、f[i]=e[i]とする。 In the first embodiment, e is set to f as it is in step S4. That is, let f [i] = e [i] where i is an integer of 1 ≦ i ≦ m + n.
この部分のみが最上位概念の実施形態と異なり、他の部分は最上位概念の実施形態と同様であるため重複説明を省略する。 Only this part is different from the embodiment of the highest concept, and the other parts are the same as those of the embodiment of the highest concept, and therefore, redundant description is omitted.
[第二実施形態]
第二実施形態の秘密集合演算装置は、大きさを秘匿した集合<S>及び大きさを秘匿した集合<T>について差集合の演算を行うものである。
[Second Embodiment]
The secret set calculation apparatus according to the second embodiment performs a difference set calculation on a set <S> whose size is concealed and a set <T> whose size is concealed.
以下、最上位概念の実施形態と異なる部分を中心に説明し、最上位概念の実施形態と同様の部分については重複説明を省略する。 The following description will focus on the differences from the top-level concept embodiment, and the description of the same portions as the top-level concept embodiment will be omitted.
<ステップS1>
N個の秘密計算装置は、協調計算により、<T>及び<S>に基づいて<U>を計算するのみならず、<r>を更に計算する(ステップS1)。
<Step S1>
The N secret calculation devices not only calculate <U> based on <T> and <S>, but also calculate <r> by cooperative calculation (step S1).
ここで、1を第一方向にn個並べたベクトルを1nとし、0を第一方向にm個並べたベクトルを0mとし、1n及び0mを第一方向に結合させたベクトルをrとする。 Here, a vector in which n 1s are arranged in the first direction is 1 n , a vector in which 0 is m arranged in the first direction is 0 m, and a vector obtained by combining 1 n and 0 m in the first direction is r.
U,rは以下のようになる。 U and r are as follows.
<ステップS2>
N個の秘密計算装置は、協調計算により、<U>に基づいて<U1>を計算するのみならず、<U>,<r>に基づいて<r1>を更に計算する(ステップS2)。
<Step S2>
The N secret calculation devices not only calculate <U 1 > based on <U> by collaborative calculation, but also calculate <r 1 > based on <U> and <r> (step S <b> 2). ).
ここで、Uをキーとしてrを安定ソートしたベクトルをr1とする。 Here, r 1 is a vector obtained by stably sorting r using U as a key.
<ステップS4>
N個の秘密計算装置は、協調計算により、<U1>に基づいて<e>を計算するのみならず、<e>,<r1>に基づいて<f>を更に計算する(ステップS4)。
<Step S4>
The N secret calculation devices not only calculate <e> based on <U 1 >, but also calculate <f> based on <e> and <r 1 > by cooperative calculation (step S4). ).
ここで、eのi番目の要素の値とr1のi番目の要素の値の少なくとも一方が1であればi番目の要素の値を1とするベクトルをfとする。 Here, if at least one of the value of the i-th element of e and the value of the i-th element of r 1 is 1, let f be a vector in which the value of the i-th element is 1.
fは以下のようになる。 f is as follows.
この場合、ステップS5の後のVは以下のようになる。 In this case, V after step S5 is as follows.
<ステップS6>
ステップ5の後に、N個の秘密計算装置は、協調計算により、<V>に基づいて<V1>を計算する(ステップS6)
ここで、Vの空フラグをキーとしてVを安定ソートした行列においてm番目までの第二方向のベクトルを残した行列をV1とする。
<Step S6>
After step 5, the N secret calculation devices calculate <V 1 > based on <V> by cooperative calculation (step S6).
Here, let V 1 be a matrix in which vectors in the second direction up to the m-th are left in a matrix in which V is stably sorted using the empty flag of V as a key.
V1は以下のようになる。 V 1 is as follows.
[第三実施形態]
第三実施形態の秘密集合演算装置は、大きさを秘匿した集合<S>及び大きさを秘匿した集合<T>について積集合の演算を行うものである。
[Third embodiment]
The secret set calculation device according to the third embodiment performs a product set operation on a set <S> whose size is concealed and a set <T> whose size is concealed.
第三実施形態では、ステップS4において、eのi番目の要素の値が0であればi番目の要素の値を1とし、eのi番目の要素の値が1であればi番目の要素の値を0とするベクトルをfとする。すなわち、iを1≦i≦m+nの各整数として、f[i]=¬e[i]とする。 In the third embodiment, in step S4, if the value of the i-th element of e is 0, the value of the i-th element is 1, and if the value of the i-th element of e is 1, the i-th element Let f be a vector whose value is 0. That is, i is an integer of 1 ≦ i ≦ m + n, and f [i] = ¬e [i].
この部分のみが最上位概念の実施形態と異なり、他の部分は最上位概念の実施形態と同様であるため重複説明を省略する。 Only this part is different from the embodiment of the highest concept, and the other parts are the same as those of the embodiment of the highest concept, and therefore, redundant description is omitted.
第三実施形態では、fは、以下のようになる。 In the third embodiment, f is as follows.
また、ステップS5の後のVは以下のようになる。 Further, V after step S5 is as follows.
[変形例]
上記装置及び方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[Modification]
The processes described in the above apparatus and method are not only executed in time series according to the description order, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the process.
また、秘密集合演算装置における各処理をコンピュータによって実現する場合、秘密集合演算装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、秘密集合演算装置における処理手段がコンピュータ上で実現される。 Further, when each process in the secret set arithmetic device is realized by a computer, the processing contents of the functions that the secret set arithmetic device should have are described by a program. Then, by executing this program on the computer, the processing means in the secret set arithmetic apparatus is realized 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.
また、各処理手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 Each processing means may be configured by executing a predetermined program on a computer, or at least a part of these processing contents may be realized by hardware.
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。 Needless to say, other modifications are possible without departing from the spirit of the present invention.
Claims (2)
各集合は行列であり第一方向に配置されたダミーのレコードを含む少なくとも1つのレコードから構成されているとし、各レコードは少なくとも1つの属性にそれぞれ対応する第二方向に配置された少なくとも1つの属性値及び上記各レコードがダミーであるかどうかを表す空フラグから構成されているとし、空フラグが1であれば上記各レコードはダミーを表し空フラグが0であれば上記各レコードはダミーではないことを表し、集合Sの行列を構成するレコード数をmとし、集合Tの行列を構成するレコード数をnとして、
秘密集合演算装置を構成する少なくとも1つの秘密計算装置が、協調計算によって、
集合Tの行列及び集合Sの行列を第一方向に結合した行列をUとして、<T>及び<S>に基づいて<U>を計算し、
Uを第一方向に安定ソートした行列をU1として、<U>に基づいて<U1>を計算し、
iを2以上n+m以下の各整数とし、1番目の要素の値を0とし、U1を構成する第一方向におけるi番目の第二方向のベクトルがU1を構成する第一方向におけるi-1番目の第二方向のベクトルと同じであればi番目の要素の値を1とし、U1を構成する第一方向におけるi番目の第二方向のベクトルがU1を構成する第一方向におけるi-1番目の第二方向のベクトルと異なれば第一方向におけるi番目の要素の値を0とするベクトルをeとして、<U1>に基づいて<e>を計算し、
行われる演算に応じてeそのものを又はeの要素の値に変更を加えたベクトルをfとして、<e>に基づいて<f>を計算し、
iを1以上n+m以下の各整数とし、U1のi番目のレコードの空フラグの値とfのi番目の要素の値の少なくとも一方が1であればU1の中のその空フラグの値を1とする行列をVとして、<U1>及び<f>に基づいて<V>を計算し、
上記行われる演算は、集合Sのダミーではないレコードからなる集合と集合Tのダミーではないレコードからなる集合との差集合の演算であるとして、
1を第一方向にn個並べたベクトルを1 n とし、0を第一方向にm個並べたベクトルを0 m とし、1 n 及び0 m を第一方向に結合させたベクトルをrとして、<r>を更に計算し、
Uをキーとしてrを安定ソートしたベクトルをr 1 として、<U>,<r>に基づいて<r 1 >を更に計算し、
eのi番目の要素の値とr 1 のi番目の要素の値の少なくとも一方が1であればi番目の要素の値を1とするベクトルをfとして、<e>,<r 1 >に基づいて<f>を更に計算し、
Vの空フラグをキーとしてVを安定ソートした行列においてm番目までの第二方向のベクトルを残した行列をV 1 として、<V>に基づいて<V 1 >を更に計算する、
秘密集合演算装置。 Information that conceals a as <a>
Each set is a matrix and includes at least one record including dummy records arranged in the first direction, and each record has at least one arranged in the second direction corresponding to at least one attribute. If the empty flag is 1, each record is a dummy and if the empty flag is 0, each record is not a dummy. The number of records that make up the matrix of the set S is m, and the number of records that make up the matrix of the set T is n,
At least one secret computing device constituting the secret set computing device is
A matrix obtained by combining the matrix of the set T and the matrix of the set S in the first direction is U, and <U> is calculated based on <T> and <S>.
The U-stable sort matrix in a first direction as U 1, based on the <U> Calculate the <U 1>,
The i and 2 above n + m following each integer, in the first direction the value of the first element and 0, the i-th second direction vector in the first direction for constituting the U 1 constituting U 1 If it is the same as the vector in the (i-1) second direction, the value of the i-th element is 1, and the i-th second direction vector in the first direction constituting U 1 is the first in U 1 the vector to 0 the value of i-th element in the first direction for different and i-1 th second direction vector in the direction e, calculates the <e> based on <U 1>,
Depending on the operation to be performed, e itself or a vector obtained by changing the value of the element of e is f, and <f> is calculated based on <e>.
Let i be an integer between 1 and n + m, and if at least one of the value of the empty flag of the i-th record of U 1 and the value of the i-th element of f is 1, that empty flag in U 1 the matrix of the values between 1 as V, based on the <U 1> and <f> to calculate the <V>,
The operation performed above is a difference set operation between a set of non-dummy records of the set S and a set of non-dummy records of the set T.
A vector in which n 1s are arranged in the first direction is 1 n , a vector in which 0 is m arranged in the first direction is 0 m, and a vector obtained by combining 1 n and 0 m in the first direction is r. Calculate <r> further,
The r as r 1 stable sorted vector as a key U, <U>, further calculates a <r 1> based on <r>,
If at least one of the value of the i-th element of e and the value of the i-th element of r 1 is 1, let f be a vector with the value of the i-th element being 1, and set <e>, <r 1 > Further calculate <f> based on
Further calculate <V 1 > based on <V>, where V 1 is a matrix in which vectors in the second direction up to the m-th are left in a matrix that is stably sorted using the empty flag of V as a key ,
Secret set operation device.
各集合は行列であり第一方向に配置されたダミーのレコードを含む少なくとも1つのレコードから構成されているとし、各レコードは少なくとも1つの属性にそれぞれ対応する第二方向に配置された少なくとも1つの属性値及び上記各レコードがダミーであるかどうかを表す空フラグから構成されているとし、空フラグが1であれば上記各レコードはダミーを表し空フラグが0であれば上記各レコードはダミーではないことを表し、集合Sの行列を構成するレコード数をmとし、集合Tの行列を構成するレコード数をnとして、
秘密集合演算装置を構成する少なくとも1つの秘密計算装置が、協調計算によって、
集合Tの行列及び集合Sの行列を第一方向に結合した行列をUとして、<T>及び<S>に基づいて<U>を計算するステップと、
Uを第一方向に安定ソートした行列をU1として、<U>に基づいて<U1>を計算するステップと、
iを2以上n+m以下の各整数とし、1番目の要素の値を0とし、U1を構成する第一方向におけるi番目の第二方向のベクトルがU1を構成する第一方向におけるi-1番目の第二方向のベクトルと同じであればi番目の要素の値を1とし、U1を構成する第一方向におけるi番目の第二方向のベクトルがU1を構成する第一方向におけるi-1番目の第二方向のベクトルと異なれば第一方向におけるi番目の要素の値を0とするベクトルをeとして、<U1>に基づいて<e>を計算するステップと、
行われる演算に応じてeそのものを又はeの要素の値に変更を加えたベクトルをfとして、<e>に基づいて<f>を計算するステップと、
iを1以上n+m以下の各整数とし、U1のi番目のレコードの空フラグの値とfのi番目の要素の値の少なくとも一方が1であればU1の中のその空フラグの値を1とする行列をVとして、<U1>及び<f>に基づいて<V>を計算するステップと、
上記行われる演算は、集合Sのダミーではないレコードからなる集合と集合Tのダミーではないレコードからなる集合との差集合の演算であるとして、
1を第一方向にn個並べたベクトルを1 n とし、0を第一方向にm個並べたベクトルを0 m とし、1 n 及び0 m を第一方向に結合させたベクトルをrとして、<r>を更に計算するステップと、
Uをキーとしてrを安定ソートしたベクトルをr 1 として、<U>,<r>に基づいて<r 1 >を更に計算するステップと、
eのi番目の要素の値とr 1 のi番目の要素の値の少なくとも一方が1であればi番目の要素の値を1とするベクトルをfとして、<e>,<r 1 >に基づいて<f>を更に計算するステップと、
Vの空フラグをキーとしてVを安定ソートした行列においてm番目までの第二方向のベクトルを残した行列をV 1 として、<V>に基づいて<V 1 >を更に計算するステップと、
を含む秘密集合演算方法。
Information that conceals a as <a>
Each set is a matrix and includes at least one record including dummy records arranged in the first direction, and each record has at least one arranged in the second direction corresponding to at least one attribute. If the empty flag is 1, each record is a dummy and if the empty flag is 0, each record is not a dummy. The number of records that make up the matrix of the set S is m, and the number of records that make up the matrix of the set T is n,
At least one secret computing device constituting the secret set computing device is
Calculating <U> based on <T> and <S>, where U is a matrix obtained by combining the matrix of the set T and the matrix of the set S in the first direction;
A step of calculating <U 1 > based on <U>, where U is a matrix that is stably sorted in the first direction as U 1 ,
The i and 2 above n + m following each integer, in the first direction the value of the first element and 0, the i-th second direction vector in the first direction for constituting the U 1 constituting U 1 If it is the same as the vector in the (i-1) second direction, the value of the i-th element is 1, and the i-th second direction vector in the first direction constituting U 1 is the first in U 1 Calculating a <e> based on <U 1 >, where e is a vector in which the value of the i-th element in the first direction is 0 if different from the i-1th second direction vector in the direction;
A step of calculating <f> based on <e>, where f is a vector obtained by changing e itself or a value of an element of e according to an operation to be performed; and
Let i be an integer between 1 and n + m, and if at least one of the value of the empty flag of the i-th record of U 1 and the value of the i-th element of f is 1, that empty flag in U 1 Calculating <V> based on <U 1 > and <f>, where V is a matrix whose value is 1;
The operation performed above is a difference set operation between a set of non-dummy records of the set S and a set of non-dummy records of the set T.
A vector in which n 1s are arranged in the first direction is 1 n , a vector in which 0 is m arranged in the first direction is 0 m, and a vector obtained by combining 1 n and 0 m in the first direction is r. further calculating <r>;
The r as r 1 stable sorted vector as a key U, and a step of further calculating a <r 1> based on <U>, <r>,
If at least one of the value of the i-th element of e and the value of the i-th element of r 1 is 1, let f be a vector with the value of the i-th element being 1, and set <e>, <r 1 > Further calculating <f> based on:
A step of further calculating <V 1 > based on <V>, where V 1 is a matrix in which a vector in the second direction up to the m-th is left in a matrix in which V is stably sorted using an empty flag of V as a key ;
A secret set calculation method including
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013035362A JP5995749B2 (en) | 2013-02-26 | 2013-02-26 | Secret set operation apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013035362A JP5995749B2 (en) | 2013-02-26 | 2013-02-26 | Secret set operation apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014164145A JP2014164145A (en) | 2014-09-08 |
JP5995749B2 true JP5995749B2 (en) | 2016-09-21 |
Family
ID=51614786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013035362A Active JP5995749B2 (en) | 2013-02-26 | 2013-02-26 | Secret set operation apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5995749B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10749671B2 (en) | 2015-04-03 | 2020-08-18 | Nec Corporation | Secure computation system, server apparatus, secure computation method, and program |
JP7288194B2 (en) * | 2019-07-18 | 2023-06-07 | 富士通株式会社 | Confidential Information Management Program, Confidential Information Management Method, and Confidential Information Management System |
JP7549222B2 (en) | 2021-03-23 | 2024-09-11 | 富士通株式会社 | Confidential information management program, confidential information management method, data registration device, and confidential information management system |
WO2022254691A1 (en) * | 2021-06-04 | 2022-12-08 | 日本電信電話株式会社 | Secure computing device, secure computing system, secure computing method, and program |
US20240273219A1 (en) * | 2021-06-08 | 2024-08-15 | Nippon Telegraph And Telephone Corporation | Secure computation apparatus, secure computation system, secure computation method, and program |
EP4350562A1 (en) * | 2021-07-08 | 2024-04-10 | Nippon Telegraph And Telephone Corporation | Secure computation system, device, method, and program |
JPWO2023281693A1 (en) * | 2021-07-08 | 2023-01-12 |
-
2013
- 2013-02-26 JP JP2013035362A patent/JP5995749B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014164145A (en) | 2014-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5995749B2 (en) | Secret set operation apparatus and method | |
Bu et al. | Deep learning with gaussian differential privacy | |
Tate et al. | Predicting mental health problems in adolescence using machine learning techniques | |
CN111543025A (en) | High precision privacy preserving real valued function evaluation | |
Kuijlaars | Universality | |
JP5860378B2 (en) | Secret calculation system, aggregate function device, secret calculation method, and program | |
US11121868B2 (en) | Secure computation system, secure computation device, secure computation method, and program | |
JP5961571B2 (en) | Secret table division apparatus and method | |
Huss et al. | A novel design flow for a security-driven synthesis of side-channel hardened cryptographic modules | |
Bache et al. | Boolean masking for arithmetic additions at arbitrary order in hardware | |
Kadak | Generalized lacunary statistical difference sequence spaces of fractional order | |
Lapworth | Parallel encryption of input and output data for HPC applications | |
EP3206200B1 (en) | Device, method and program for detecting positions of partial character strings | |
Zhang et al. | A Chunked and Disordered Data Privacy Protection Algorithm: Application to Resource Platform Systems | |
Velbitskiy | Graphical programming and program correctness proof | |
Zaeemzadeh et al. | Upper bounds for integrated information | |
JPWO2015107780A1 (en) | Element duplication device, element duplication method, and program | |
Linder et al. | Multi-threshold dual-spacer dual-rail delay-insensitive logic (MTD3L): A low overhead secure IC design methodology | |
JP6682105B2 (en) | Fisher Exact Test Calculation Device, Method and Program | |
JP6699066B2 (en) | Fisher Exact Test Calculation Device, Method and Program | |
Tokoro | Open systems science: a challenge to open systems problems | |
JP2013200461A (en) | Secret calculation device and secret calculation method | |
Nguyen-Van et al. | A homomorphic encryption approach for privacy-preserving deep learning in digital health care service | |
WO2019059069A1 (en) | Secret reading/writing device, secret reading/writing method, and program | |
AU2020423665B2 (en) | Secret maximum value calculation apparatus, method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150204 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150911 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150924 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151119 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160506 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160721 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20160803 |
|
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: 20160822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160823 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Ref document number: 5995749 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |