JP5995749B2 - Secret set operation apparatus and method - Google Patents

Secret set operation apparatus and method Download PDF

Info

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
Application number
JP2013035362A
Other languages
Japanese (ja)
Other versions
JP2014164145A (en
Inventor
浩気 濱田
浩気 濱田
大 五十嵐
大 五十嵐
千田 浩司
浩司 千田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013035362A priority Critical patent/JP5995749B2/en
Publication of JP2014164145A publication Critical patent/JP2014164145A/en
Application granted granted Critical
Publication of JP5995749B2 publication Critical patent/JP5995749B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 Non-Patent Document 1, encryption is performed such that numerical fragments are distributed to three secret calculation devices, and these three secret calculation devices perform cooperative calculation without restoring the numerical values. , Addition / subtraction, constant sum, multiplication, constant multiple, logical operation (negation, logical product, logical sum, exclusive logical sum), data format conversion (integer, binary) results distributed to three secret computing devices That is, it can be kept encrypted.

また、秘密計算上で入力と出力の集合の真の大きさを秘匿したまま集合演算を実現した方法として、非特許文献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 Document 2 is known.

千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考”, In CSS, 2010.Koji Senda, Hiroki Hamada, Igarashi Univ., Katsumi Takahashi, “Reconsideration of Lightweight Verifiable 3-Party Secret Function Calculation”, In CSS, 2010. 志村正法, 遠藤つかさ, 宮崎邦彦, 吉浦裕, “安全で機能制限のないデータベースを実現するマルチパーティプロトコルを用いた関係代数演算”, 情報処理学会研究報告. CSEC, Vol.2008, No.71, pp.187-193, 2008.Masamichi Shimura, Tsukasa Endo, Kunihiko Miyazaki, Hiroshi Yoshiura, “Relational Algebra Operation Using Multi-Party Protocol for Realizing Safe and Unrestricted Databases”, IPSJ Research Report. CSEC, Vol.2008, No.71, pp.187-193, 2008.

しかしながら、従来技術は直積の演算を要するため、入力の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.

秘密集合演算装置の例の機能ブロック図。The functional block diagram of the example of a secret set arithmetic device. 行列の例を説明するための図。The figure for demonstrating the example of a matrix.

以下、この発明の実施形態について説明する。   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.

Figure 0005995749
Figure 0005995749

このとき、和集合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.

Figure 0005995749
Figure 0005995749

秘密集合演算装置は、図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 Document 1, for example.

論理和の演算は、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 Document 1 for details of the logical sum and negation operations.

安定ソートの演算は、秘匿化されたベクトル又は行列の要素を第一方向に所定の順序で並び替える処理である。第一方向とは例えば行方向であり、所定の順序とは例えば辞書順である。この場合、行列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, Reference 1 for details of stable sorting operations.

〔参考文献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.

Figure 0005995749
Figure 0005995749

等号判定の演算は、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 Reference Document 2, for example.

〔参考文献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.

Figure 0005995749
Figure 0005995749

<ステップ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.

Figure 0005995749
Figure 0005995749

<ステップ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.

Figure 0005995749
Figure 0005995749

<ステップ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.

Figure 0005995749
Figure 0005995749

すなわち、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.

Figure 0005995749
Figure 0005995749

<ステップ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.

Figure 0005995749
Figure 0005995749

<ステップ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.

Figure 0005995749
Figure 0005995749

従来技術は直積の演算を要するため、入力の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.

Figure 0005995749
Figure 0005995749

<ステップ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.

Figure 0005995749
Figure 0005995749

<ステップ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.

Figure 0005995749
Figure 0005995749

この場合、ステップS5の後のVは以下のようになる。   In this case, V after step S5 is as follows.

Figure 0005995749
Figure 0005995749

<ステップ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.

Figure 0005995749
Figure 0005995749

[第三実施形態]
第三実施形態の秘密集合演算装置は、大きさを秘匿した集合<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.

Figure 0005995749
Figure 0005995749

また、ステップS5の後のVは以下のようになる。   Further, V after step S5 is as follows.

Figure 0005995749
Figure 0005995749

[変形例]
上記装置及び方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[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)

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>を計算
上記行われる演算は、集合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.
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>を計算するステップと、
上記行われる演算は、集合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
JP2013035362A 2013-02-26 2013-02-26 Secret set operation apparatus and method Active JP5995749B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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