JP6474741B2 - Confidential decision tree calculation system, apparatus, method and program - Google Patents
Confidential decision tree calculation system, apparatus, method and program Download PDFInfo
- Publication number
- JP6474741B2 JP6474741B2 JP2016007175A JP2016007175A JP6474741B2 JP 6474741 B2 JP6474741 B2 JP 6474741B2 JP 2016007175 A JP2016007175 A JP 2016007175A JP 2016007175 A JP2016007175 A JP 2016007175A JP 6474741 B2 JP6474741 B2 JP 6474741B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- decision tree
- secret
- server device
- predetermined
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
この発明は、データを秘匿したまま、秘匿されたデータに基づいた分析結果を返答する技術に関する。 The present invention relates to a technique for returning an analysis result based on concealed data while keeping the data concealed.
近年、多数の購買履歴から知見を得て、ある個人が商品Aを買ったならば商品Bを推薦するといったデータマイニングや推定が行われている。そのような推定の一手法として、決定木を用いた方法がある。二分木を例とすると、決定木とは多数のノードとその辺で決定される木であり、根ノードと呼ばれる階層0のノード、葉ノードと呼ばれる、それよりも下にノードが無いようなノード、およびこれら以外のノードである中間ノードがある。葉ノード以外には次の階層で左右どちらに遷移するかを定める条件式が定められており、葉ノードには推薦値が定められているものとする。
In recent years, data mining and estimation have been performed in which knowledge is obtained from a large number of purchase histories and a product B is recommended if an individual purchases the product A. As one method of such estimation, there is a method using a decision tree. Taking a binary tree as an example, a decision tree is a tree that is determined by a large number of nodes and their edges, a node at
決定木を用いてあるデータに対する推薦値を得るには、木の根ノードから順に、データが条件式を満足するか確認し、満足すれば右に、さもなければ左に遷移し、最終的にたどり着いた葉に対応する推薦値を得る。 To obtain a recommended value for certain data using a decision tree, check whether the data satisfies the conditional expression in order from the root node of the tree, transition to the right if satisfied, otherwise left, and finally arrived Get the recommended value corresponding to the leaf.
企業が何かしらの分析のために決定木を作成した場合、その決定木は企業の知見であるため、一般に公開することは難しい。 When a company creates a decision tree for some kind of analysis, it is difficult for the company to make public because it is the knowledge of the company.
ところで、近年パーソナルデータや医療データ等、個人に関するデータを利活用する動きが広まっている。これらのデータは機微性が高く、データを秘匿したまま処理を行うことが望ましい。 By the way, in recent years, there has been a widespread movement of utilizing personal data such as personal data and medical data. These data are highly sensitive and it is desirable to perform processing while keeping the data secret.
ユーザ装置Uとサーバ装置Sの2 者がおり、ユーザ装置Uは自身のデータを持っており、サーバ装置Sは今までの自社サービスで得た知見等から生成した決定木を持っている。 There are two users, a user device U and a server device S. The user device U has its own data, and the server device S has a decision tree generated from knowledge obtained through its own service so far.
このようなとき、ユーザ装置Uのデータを入力として、サーバ装置Sの持つ決定木を用いて、推定結果を得ることを考える。 In such a case, it is considered that an estimation result is obtained by using data of the user apparatus U as an input and using a decision tree of the server apparatus S.
これまで、決定木の計算には、決定木と入力の両方が必要なため、ユーザ装置Sが自身のデータをサーバに渡すこと又はサーバの決定木をユーザに渡すことのどちらかが必要であった。 So far, the calculation of a decision tree requires both a decision tree and an input, so the user device S must either pass its data to the server or pass the server's decision tree to the user. It was.
しかしながら、前者ではユーザのデータがサーバに知られてしまうし、後者ではサーバの持つ決定木がユーザに渡りサーバ側の知見が漏えいしてしまう可能性があった。 However, in the former case, the user's data is known to the server, and in the latter case, the decision tree of the server may be passed to the user and the knowledge on the server side may be leaked.
この発明の目的は、ユーザ装置のデータ及びサーバ装置の決定木を互いに秘匿したまま計算値をユーザに返答する秘匿決定木計算システム、装置、方法及びプログラムを提供することである。 An object of the present invention is to provide a secret decision tree calculation system, device, method, and program for returning a calculated value to a user while keeping the data of the user device and the decision tree of the server device secret from each other.
この発明の一態様による秘匿決定木計算システムは、データXを秘密分散することにより複数のシェアを生成し、生成された複数のシェアを第0サーバ装置から第n−1サーバ装置に送信するユーザ装置と、第0サーバ装置から第n−1サーバ装置がわからない秘密分散されたシャッフルビットに従って所定の決定木を秘密協調計算により撹乱することにより撹乱後の決定木を得て、受信した複数のシェアと撹乱後の決定木と秘密分散されたシャッフルビットを用いて、所定の決定木におけるデータXに対応する値のn個のシェアを秘密協調計算することにより得てユーザ装置に送信する第0サーバ装置から第n−1サーバ装置と、を含み、ユーザ装置は、kをn以下の所定の整数として、受信したn個のシェアの中の少なくともk個を用いて所定の決定木におけるデータXに対応する値を復元する。 A secret decision tree calculation system according to an aspect of the present invention generates a plurality of shares by secretly sharing data X, and transmits the generated plurality of shares from the 0th server apparatus to the n-1th server apparatus And a plurality of shares received by obtaining a disturbed decision tree by disturbing a predetermined decision tree by secret cooperative calculation according to a shuffle bit with secret sharing in which the 0th server device and the (n-1) th server device are unknown 0th server that obtains n shares of values corresponding to data X in a predetermined decision tree by secret cooperative calculation using the decision tree after disturbance and shuffle bits with secret sharing, and transmits them to the user apparatus And the user apparatus determines a predetermined decision using at least k of the received n shares, where k is a predetermined integer less than or equal to n. Restore the value corresponding to data X in the tree.
この発明の一態様による秘匿決定木計算装置は、秘匿決定木計算システムの第0サーバ装置から第n−1サーバ装置である。 The secret decision tree calculation device according to one aspect of the present invention is the 0th server device to the (n-1) th server device of the secret decision tree calculation system.
ユーザ装置のデータ及びサーバ装置の決定木を互いに秘匿したまま計算値をユーザに返答することができる。 The calculated value can be returned to the user while keeping the user device data and the server device decision tree secret.
まず、この発明の基礎となる事柄について説明する。 First, the matter which becomes the basis of this invention is demonstrated.
[記法]
x←Bは、Bが集合ならばBから一様ランダムに要素を選びxに代入することを指し、BがアルゴリズムならばBの出力をxに代入することを指し、Bが確率密度関数ならばその確率密度関数に従ったインスタンスxをサンプリングすることを指す。 また、ある数Xiについてその二進数表現をxi,0…xi,M-1とする。すなわち、Xi=Σj<M2jxi,jである。述語とは出力が{0,1}であるような関数で、[[x>?y]]とはx>yが成り立つならば1を、そうでなければ0を返すような述語である。
[notation]
x ← B indicates that if B is a set, it selects an element uniformly from B and assigns it to x. If B is an algorithm, it indicates that B's output is assigned to x. If B is a probability density function, For instance, it means sampling instance x according to its probability density function. In addition, the binary representation of a certain number X i is x i, 0 ... X i, M−1 . That is, X i = Σ j <M 2 j x i, j . A predicate is a function whose output is {0,1}, and [[x> ? Y]] is a predicate that returns 1 if x> y holds and 0 otherwise.
[決定木]
決定木とは、入力データを条件分岐していくことにより、最終的にその入力データに対応する値(例えば、推測値)を決定するようなアルゴリズムに用いられる木である。
[Decision tree]
The decision tree is a tree used for an algorithm that finally determines a value (for example, an estimated value) corresponding to input data by conditional branching of the input data.
決定木を(h,M,m,R,L,{Gi}i<m-M,{Gi}m-M≦i<m)の組と定義する。hは(最も深い)高さ、Mは葉ノードの数、mは全ノード数である。各ノードは0からm-1まで番号が割り振られ、葉ノードにはm-Mからm-1までの番号が割り振られているとする。R,L:Zm→Zmは入力ノードの右、左ノードを出力する関数である。すなわち、R(i)はノードiの右側の子ノードであり、L(i)はノードiの左側の子ノードである。Gi(i=0,…,m-M-1)はノードiに対応する述語である。各ノードの述語は比較と統合判定のみとする。例えばGiは<?bのような形式であり、条件式<?と条件値bを持つ。単に条件値Giと言った場合には、述語Giの条件値bのことを意味する。また、葉ノードiに対応するGi(i=m-M,…,m-1)は、その葉ノードiに対応する値(例えば、推薦値)である。 A decision tree is defined as a set of (h, M, m, R, L, {G i } i <mM , {G i } mM ≦ i <m ). h is the (deepest) height, M is the number of leaf nodes, and m is the total number of nodes. Assume that each node is assigned a number from 0 to m-1, and a leaf node is assigned a number from mm to m-1. R, L: Z m → Z m is a function that outputs the right and left nodes of the input node. That is, R (i) is a child node on the right side of node i, and L (i) is a child node on the left side of node i. G i (i = 0,..., MM−1) is a predicate corresponding to the node i. The predicates for each node are only comparison and integration judgment. For example, G i has the form < ? B, and has a conditional expression < ? And a condition value b. Simply when said condition value G i means that the condition value b predicate Gi. G i (i = mM,..., M−1) corresponding to the leaf node i is a value (for example, a recommended value) corresponding to the leaf node i.
ここでは、決定木として、完全二分木かつ順序固定な決定木を想定する。 Here, a complete binary tree and a fixed order decision tree are assumed as decision trees.
完全二分木とは、全ての葉ノードの高さが同一であるような二分木である。このように、完全二分な決定木全ての葉ノードの高さが同一であるような二分木を想定する。このとき、n=Σk=0 h-12k, m=2h-1が成り立つ。
A complete binary tree is a binary tree in which all leaf nodes have the same height. Thus, a binary tree is assumed in which the heights of the leaf nodes of all the complete binary decision trees are the same. At this time, n =
順序固定な決定木とは、深さによって参照するデータが一定であるような決定木である。すなわち、どのノードに遷移しても、深さ1ではX1、深さ2ではX2を参照するようなものである。
A decision tree having a fixed order is a decision tree in which data referred to by the depth is constant. That is, regardless of which node is transitioned, X 1 is referenced at depth 1 and X 2 is referenced at
[秘密分散]
秘密分散とはある決められた数(k,n)があり、以下の2つのアルゴリズムShare,Recの組である。
[Secret sharing]
Secret sharing has a certain number (k, n) and is a set of the following two algorithms Share and Rec.
Share:秘密aを入力とし、シェア[a]0,…,[a]n-1を出力する。 Share: Secret a is input, and shares [a] 0 , ..., [a] n-1 are output.
Rec:シェア[a]i_0,…,[a]i_K-1を入力とし、秘密sを出力する。ここで、K≧kであり、jを整数として、i_jはijを意味するとする。 Rec: Share [a] i_0 , ..., [a] i_K -1 is input and secret s is output. Here, K ≧ k, j is an integer, and i_j means i j .
また、準同型性としてb(-)[a]i=[b-a]iとなる演算(-)、[a]i(+)[b]i=[a+b]iとなる演算(+)が存在するものとする。これらの演算(-)(+)は既知の手法により実現することができる。 In addition, as homomorphism, operation (-) with b (-) [a] i = [ba] i , operation with [a] i (+) [b] i = [a + b] i (+) Shall exist. These operations (-) (+) can be realized by a known method.
ここでは、例えば秘密の空間はZ2とする。 Here, for example, space secrets and Z 2.
[乗算プロトコル]
乗算プロトコルMultとは、各サーバ装置Siの秘密分散された値[x]i,[y]iを入力として、各サーバ装置Siに乗算結果のシェア[xy]iを生成するプロトコルである。乗算プロトコルMultとして、例えば参考文献1に記載されたプロトコルを用いることができる。
[Multiplication protocol]
The multiplication protocol Mult is a protocol for generating a share [xy] i of multiplication results for each server device S i by using the secret-distributed values [x] i and [y] i of each server device S i as inputs. . For example, the protocol described in
〔参考文献1〕Ivan Damgard and Jesper Buus Nielsen, "Scalable and unconditionally secure multiparty computation", In CRYPTO, pp.572-590, 2007.
[比較,等号判定プロトコル]
ビット演算の組み合わせで比較,等号判定を行うプロトコルを実現することができる。
[Reference 1] Ivan Damgard and Jesper Buus Nielsen, "Scalable and unconditionally secure multiparty computation", In CRYPTO, pp.572-590, 2007.
[Comparison, equality judgment protocol]
It is possible to realize a protocol that performs comparison and equality judgment by combining bit operations.
図5にMビット比較,等号判定プロトコルCompInt(X,Y,c)の具体例を示す。この等号判定プロトコルCompInt(X,Y,c)は、選択ビットcが、0ならば[[X<?Y]]を、1ならば[[X=?Y]]を出力する。 FIG. 5 shows a specific example of the M-bit comparison and equality determination protocol CompInt (X, Y, c). This equality determination protocol CompInt (X, Y, c) outputs [[X < ? Y]] if the selection bit c is 0, and [[X = ? Y]] if it is 1.
また、等号判定プロトコルCompInt(X,Y,c)で用いられる1ビット比較プロトコルCompBit(x,y)の具体例を図3に示す。 A specific example of the 1-bit comparison protocol CompBit (x, y) used in the equality determination protocol CompInt (X, Y, c) is shown in FIG.
さらに、等号判定プロトコルCompInt(X,Y,c)で用いられるPlefixOR計算プロトコルPlefixOR(X)の具体例を図4に示す。PlefixOR計算プロトコルPlefixOR(X)は、入力されたXをビット表現した際に最上位で1となったビット以降全て1としたビット列を新たなXとして出力するものである。 Furthermore, a specific example of the PlefixOR calculation protocol PlefixOR (X) used in the equality determination protocol CompInt (X, Y, c) is shown in FIG. The PlefixOR calculation protocol PlefixOR (X) outputs a bit string that is all set to 1 after the bit that becomes 1 at the most significant bit when the input X is expressed in bits.
[実施形態]
以下、図面を参照して秘匿決定木計算システム、装置及び方法の一実施形態について説明する。
[Embodiment]
Hereinafter, an embodiment of a secret decision tree calculation system, apparatus, and method will be described with reference to the drawings.
秘匿決定木計算システムは、図1に示すように、ユーザ装置Uと秘匿決定木計算装置であるサーバ装置群を例えば備えている。このサーバ装置群は、第0サーバ装置S0から第n−1サーバ装置Sn-1から例えば構成されている。i=0,…,n-1として、上記説明したこの発明の基礎となる事柄における「サーバ装置Si」は、「第iサーバ装置Si」に対応している。以下の説明においても、「第iサーバ装置Si」のことを「サーバ装置Si」と略記することがある。 As shown in FIG. 1, the secret decision tree calculation system includes, for example, a user apparatus U and a server apparatus group that is a secret decision tree calculation apparatus. The server group is 0th server device S 0 is e.g. configured from the n-1 server device S n-1. As i = 0,..., n−1, the “server device S i ” in the above-described matter that is the basis of the present invention corresponds to the “i-th server device S i ”. Also in the following description, the “i-th server device S i ” may be abbreviated as “server device S i ”.
この実施形態では、ユーザ装置Uのデータを秘匿したまま決定木が計算され、その推薦結果がユーザ装置Uに返答される。 In this embodiment, the decision tree is calculated while the data of the user device U is kept secret, and the recommendation result is returned to the user device U.
秘匿決定木計算システムの各装置が、図2の各ステップの処理を行うことにより、秘匿決定木計算方法が実現される。この実施形態における大まかな流れは以下の通りである。まず、「Off-lineフェーズ」の処理が行われ、その後「On-line」の処理が行われる。「Off-lineフェーズ」の処理が事前に行われている場合には、「On-line」の処理に先だって「Off-lineフェーズ」の処理は行われなくてもよい。 Each device of the secret decision tree calculation system performs the process of each step in FIG. 2 to realize the secret decision tree calculation method. The general flow in this embodiment is as follows. First, “Off-line phase” processing is performed, and then “On-line” processing is performed. When the “Off-line phase” process is performed in advance, the “Off-line phase” process may not be performed prior to the “On-line” process.
「Off-line フェーズ」
ステップA1:サーバ装置Siは条件値Gi(i=0,…,m-M-1)及び値Gi(i=m-M,…,m-1)、比較か等号かを決定する選択ビットci∈{0,1}を秘密分散する。
"Off-line phase"
Step A1: The server apparatus S i selects the condition value G i (i = 0,..., MM-1) and the value G i (i = mM,. i ∈ {0,1} is secretly shared.
ステップA2:サーバ装置Siは自身がわからないように葉以外のノードiに対してシャッフルビットri←{0,1}の乱数を生成する。 Step A2: The server apparatus S i generates a random number of shuffle bits r i ← {0,1} for the node i other than the leaf so that it does not know itself.
ステップA3:サーバ装置Siはシャッフルビットriに従って決定木をシャッフルする。 Step A3: The server apparatus S i shuffles the decision tree according to the shuffle bit r i .
「On-line フェーズ」
ステップB1:ユーザ装置Uが自身のデータをSiに秘密分散する。このとき、データは1ビットずつに分けてから秘密分散を行うか、又は、ビットに分けずに分散した後サーバ側でビットに分解する。
"On-line phase"
Step B1: the user device U to secret sharing its data to S i. At this time, the data is divided into bits and then secret sharing is performed, or the data is distributed without being divided into bits and then decomposed into bits on the server side.
ステップB2:サーバ装置Siは秘密分散された値とOff-lineフェーズで生成した自身の根ノードの条件値の分散値,およびシャッフルビットの分散値を用いて条件を計算し、復元する。例えば、復元した値が0の場合は左に、1の場合は右に遷移する。以降、同様に計算し、葉ノードに到達するまで計算する。 Step B2: the server device S i calculates the conditions using a variance value, and variance value of the shuffle bit of the condition value of the root node of its own which is populated with the values and Off-line phase, which is secret sharing, to restore. For example, when the restored value is 0, it transitions to the left, and when it is 1, it transitions to the right. Thereafter, the same calculation is performed until the leaf node is reached.
ステップB3:サーバ装置Siはユーザ装置Uに到達した葉ノードに対応する値(例えば、推薦値)のシェアをユーザ装置Uに送る。 Step B3: sending the server S i is a value corresponding to a leaf node has been reached to the user device U (e.g., recommended value) share of the user equipment U.
ステップB4:ユーザ装置Uは、シェアを復元しデータに対応する値を得る。 Step B4: The user apparatus U restores the share and obtains a value corresponding to the data.
ユーザのデータはX=(X0,…,Xh-1)とし、決定木は完全二分かつ順序固定であり、深さiにおいてはciを参照して比較又は等号判定を行うものとする。 The user data is X = (X 0 ,..., X h-1 ), the decision tree is completely bisected and fixed in order, and at depth i, comparison or equality judgment is performed with reference to c i To do.
決定木の途中のあるノードiを根とした木を考えている場合、その木のノードjに対応するノードj-(jの上付き-)とは、iの1つ上の階層で、iとは違う方向に遷移したノードmを根とする木を考えたとき、mからjへの遷移がiからjへの遷移と同一のものである。 If a node i in the middle of the decision tree are thinking tree and the root node corresponds to the node j of the tree j - (j superscript -) and is a level above one of the i, i When considering a tree rooted at a node m that has transitioned in a different direction, the transition from m to j is the same as the transition from i to j.
以下、「Off-line フェーズ」の各ステップの処理について説明する。また、各ステップの処理を実現するためのOff-line計算プロトコルの例を図6に示す。 Hereinafter, the process of each step of the “Off-line phase” will be described. An example of an off-line calculation protocol for realizing the processing of each step is shown in FIG.
<ステップA1>
第0サーバ装置Siから第n−1サーバ装置Sn-1は、各ノードjについての、条件値Gj(j=0,…,m-M-1)及び値Gj(j=m-M,…,m-1)、比較か等号かを決定する選択ビットcj∈{0,1}を秘密分散し、[Gj],[cj]を得る(ステップA1)。
<Step A1>
The 0th server device S i to the (n-1) th server device S n-1 have condition values G j (j = 0,..., MM−1) and values G j (j = mM,. , m−1), and secretly distribute selected bits c j ε {0, 1} for determining whether they are comparisons or equal signs to obtain [G j ], [c j ] (step A1).
この処理は、図6のOff-line計算プロトコルの「1:」に対応している。 This processing corresponds to “1:” of the off-line calculation protocol in FIG.
<ステップA2>
第0サーバ装置Siから第n−1サーバ装置Sn-1は、第0サーバ装置Siから第n−1サーバ装置Sn-1がわからないように共同して葉以外のノードjに対してシャッフルビットrj←{0,1}のシェア[rj]を生成する(ステップA2)。
<Step A2>
The 0th server device Si to the (n-1) th server device Sn-1 cooperate with the node j other than the leaves so that the 0th server device Si to the n-1th server device Sn-1 cannot be known. To generate a share [r j ] of shuffle bits r j ← {0, 1} (step A2).
この処理は、図6のOff-line計算プロトコルの「2:」に対応している。 This processing corresponds to “2:” of the off-line calculation protocol in FIG.
<ステップA3>
第0サーバ装置Siから第n−1サーバ装置Sn-1は、第0サーバ装置Siから第n−1サーバ装置Sn-1がわからないように秘密分散されたシャッフルビットriに従って所定の決定木を秘密協調計算により撹乱することにより撹乱後の決定木を得る(ステップA3)。
<Step A3>
The 0th server device S i to the (n−1) th server device S n-1 are predetermined according to the shuffle bits r i whose secrets are distributed so that the 0th server device S i to the n−1th server device S n-1 are not known. The decision tree after disturbance is obtained by disturbing the decision tree by secret cooperative calculation (step A3).
この処理は、図6のOff-line計算プロトコルの「3:」から「9:」に対応している。図6のOff-line計算プロトコルの「3:」から「9:」では、ノートiのシャッフルビットri=1の場合にはL(i)を根と見た木とR(i)を根と見た木とを入れ替え、ノートiのシャッフルビットri=0の場合にはその入れ替えないという処理を葉ノードを除く全てのノードに対して行うことにより、決定木を撹乱している。 This processing corresponds to “3:” to “9:” of the off-line calculation protocol in FIG. In the off-line calculation protocol “3:” to “9:” in FIG. 6, when the shuffle bit r i = 1 of the note i, the tree with L (i) as the root and R (i) as the root The decision tree is disturbed by replacing all the nodes other than the leaf node with a process of not replacing the tree when the shuffle bit r i = 0 of the note i is replaced.
このように、第0サーバ装置Siから第n−1サーバ装置Sn-1は、所定の決定木の各ノードに対してその各ノードの左側の子ノードを根とした木と右側の子ノードを根とした木をそのノードに対応する上記シャッフルビットが所定の値である場合に入れ替える処理を秘密協調計算により行うことにより撹乱後の決定木を得てもよい。所定の値の例は1である。もちろん所定の値は1以外の値であってもよい。 As described above, the 0th server device Si to the (n-1) th server device Sn-1 each have a tree and a right child rooted at the left child node of each node for each node of a predetermined decision tree. A perturbed decision tree may be obtained by performing a process of replacing a tree rooted at a node when the shuffle bit corresponding to the node is a predetermined value by a secret cooperative calculation. An example of the predetermined value is 1. Of course, the predetermined value may be a value other than 1.
以下、「On-line フェーズ」の各ステップの処理について説明する。また、各ステップの処理を実現するためのOn-line計算プロトコルの例を図7に示す。 Hereinafter, the process of each step of the “On-line phase” will be described. FIG. 7 shows an example of an on-line calculation protocol for realizing the processing of each step.
<ステップB1>
ユーザ装置Uは、所定のアルゴリズムShareに基づいて、データXを秘密分散することにより複数のシェアを生成し、生成された複数のシェアを第0サーバ装置Siから第n−1サーバ装置Sn-1に送信する(ステップB1)。
<Step B1>
The user device U generates a plurality of shares by secretly sharing the data X based on a predetermined algorithm Share, and the generated plurality of shares are transmitted from the 0th server device Si to the (n-1) th server device Sn. -1 (step B1).
このステップB1の処理は、図7のOn-line計算プロトコルの「1:」に対応している。 The processing in step B1 corresponds to “1:” of the on-line calculation protocol in FIG.
<ステップB2>
第0サーバ装置Siから第n−1サーバ装置Sn-1は、受信した複数のシェアと上記撹乱後の決定木と上記秘密分散されたシャッフルビットを用いて、上記所定の決定木におけるデータXに対応する値のn個のシェアを秘密協調計算することにより得る(ステップB2)。
<Step B2>
The 0th server device Si to the (n-1) th server device Sn-1 use the received plurality of shares, the determined decision tree after the disturbance, and the shuffle bits subjected to the secret sharing to transmit data in the predetermined decision tree. N shares of the value corresponding to X are obtained by secret cooperative calculation (step B2).
このステップB2の処理は、図7のOn-line計算プロトコルの「2:」から「11:」に対応している。 The processing of step B2 corresponds to “2:” to “11:” of the on-line calculation protocol of FIG.
図7のOn-line計算プロトコルの「2:」から「11:」では、撹乱後の決定木の最上位の階層から葉ノードの階層までの撹乱後の決定木の各階層i(i=0,…,h-2)のノードにおいて、(1) そのノードに対応する上記シャッフルビットが0でありかつXiがそのノードの条件を満たす場合にはそのノードの右の子ノードに遷移し、(2) そのノードに対応するシャッフルビットが0でありかつXiがそのノードの条件を満たさない場合にはそのノードの左の子ノードに遷移し、(3) そのノードに対応する上記シャッフルビットが1でありかつXiがそのノードの条件を満たす場合にはそのノードの左の子ノードに遷移し、(4) そのノードに対応するシャッフルビットが1でありかつXiがそのノードの条件を満たさない場合にはそのノードの右の子ノードに遷移する処理を秘密協調計算により行うことにより最終的に遷移する葉ノードを求め、その求まった葉ノードに対応する値を所定の決定木におけるデータXに対応する値としている。 In the on-line calculation protocol “2:” to “11:” in FIG. 7, each hierarchy i (i = 0) of the decision tree after the disturbance from the highest hierarchy of the decision tree after the disturbance to the hierarchy of the leaf node ,..., H-2), (1) when the shuffle bit corresponding to the node is 0 and X i satisfies the condition of the node, the node transitions to the right child node of the node; (2) the shuffled bits are shuffled bit is 0 and X i corresponding to that node, if the condition is not satisfied in the node transitions to the left child node of the node, corresponding to (3) the node If X is 1 and X i satisfies the condition of that node, transition to the left child node of that node. (4) The shuffle bit corresponding to that node is 1 and X i is the condition of that node. If the condition is not satisfied, transition to the child node to the right of that node The leaf node that finally transitions is obtained by performing secret cooperative calculation, and the value corresponding to the obtained leaf node is set as the value corresponding to the data X in the predetermined decision tree.
このように、第0サーバ装置Siから第n−1サーバ装置Sn-1は、撹乱後の決定木の最上位の階層から葉ノードの階層までの撹乱後の決定木の各階層i(i=0,…,h-2)のノードにおいて、(1) そのノードに対応する上記シャッフルビットが所定の値でなくかつXiがそのノードの条件を満たす場合にはそのノードの一方の子ノードに遷移し、(2) そのノードに対応するシャッフルビットが所定の値でなくかつXiがそのノードの条件を満たさない場合にはそのノードの他方の子ノードに遷移し、(3) そのノードに対応する上記シャッフルビットが所定の値でありかつXiがそのノードの条件を満たす場合にはそのノードの上記他方の子ノードに遷移し、(4) そのノードに対応するシャッフルビットが所定の値でありかつXiがそのノードの条件を満たさない場合にはそのノードの上記一方の子ノードに遷移する処理を秘密協調計算により行うことにより最終的に遷移する葉ノードを求め、その求まった葉ノードに対応する値を所定の決定木におけるデータXに対応する値とする。所定の値の例は1であり、一方の子ノードの例は右の子ノードであり、他方の子ノードの例は左の子ノードである。 In this way, the 0th server device Si to the (n-1) th server device Sn-1 each of the hierarchy i of the decision tree after the disturbance from the highest hierarchy of the decision tree after the disturbance to the hierarchy of the leaf node. i = 0, ..., h-2) (1) If the shuffle bit corresponding to the node is not a predetermined value and X i satisfies the condition of the node, one child of the node (2) When the shuffle bit corresponding to the node is not a predetermined value and X i does not satisfy the condition of the node, the node transitions to the other child node of the node. When the shuffle bit corresponding to the node has a predetermined value and X i satisfies the condition of the node, the node transits to the other child node of the node, and (4) the shuffle bit corresponding to the node is predetermined. when a value and X i does not satisfy the conditions of that node The leaf node that finally transitions is obtained by performing the process of transitioning to the above one child node of the node by the secret cooperative calculation, and the value corresponding to the obtained leaf node corresponds to the data X in the predetermined decision tree Value. An example of the predetermined value is 1, an example of one child node is a right child node, and an example of the other child node is a left child node.
所定の値は1以外の値であってもよい。また、述語を満たす場合に左の子ノードに遷移すると決まっている場合には、一方の子ノードは左の子ノードであり、他方の子ノードは右の子ノードであってもよい。 The predetermined value may be a value other than 1. Further, when it is determined that the predicate is satisfied and the transition to the left child node is made, one child node may be the left child node, and the other child node may be the right child node.
このように、シャッフルビットが所定の値の場合に本来遷移すべき子ノードでない方の子ノードに遷移することにより、撹乱後の決定木においても撹乱前の決定木において本来遷移すべきであった葉ノードに最終的に遷移することができ、撹乱前の決定木におけるデータに対応する葉ノードの値(例えば、推薦値)を取得することができる。 In this way, when the shuffle bit is a predetermined value, the transition should be made to the child node that is not the child node that should be originally transitioned. It is possible to finally transition to the leaf node, and the value (for example, recommended value) of the leaf node corresponding to the data in the decision tree before the disturbance can be acquired.
<ステップB3>
第0サーバ装置Siから第n−1サーバ装置Sn-1は、秘密協調計算することにより得られたn個のシェアをユーザ装置Uに送信する(ステップB3)。
<Step B3>
The 0th server device Si to the (n-1) th server device Sn-1 transmit n shares obtained by performing the secret cooperative calculation to the user device U (step B3).
このステップB3の処理は、図7のOn-line計算プロトコルの「12:」に対応している。 The processing in step B3 corresponds to “12:” of the on-line calculation protocol in FIG.
<ステップB4>
ユーザ装置Uは、所定のアルゴリズムRecに基づいて、受信したn個のシェアの中の少なくともk個を用いて所定の決定木におけるデータXに対応する値を復元する(ステップB4)。
<Step B4>
The user apparatus U restores the value corresponding to the data X in the predetermined decision tree using at least k of the received n shares based on the predetermined algorithm Rec (step B4).
このステップB4の処理は、図7のOn-line計算プロトコルの「14:」に対応している。 The processing in step B4 corresponds to “14:” of the on-line calculation protocol in FIG.
このような処理を行うことにより、ユーザ装置のデータとサーバ装置の決定木を秘匿しつつ値(例えば、推薦値)を返すことができる。 By performing such processing, it is possible to return a value (for example, a recommended value) while concealing the data of the user device and the decision tree of the server device.
この実施形態では、Off-line計算が必要ではあるものの、ユーザ装置からデータが来た際の計算は決定木の高さの線形オーダで可能である。すなわち、Off-lineフェーズにおいて予め乱数に基づいてシャッフルしておくことにより、On-lineフェーズでは1 つのパスのみを辿れば良く、決定木の高さの指数オーダの計算量が必要なくなる。 In this embodiment, although off-line calculation is required, calculation when data comes from the user apparatus can be performed in a linear order of the height of the decision tree. That is, by shuffling based on random numbers in advance in the Off-line phase, it is only necessary to follow one path in the On-line phase, and the amount of exponential order calculation of the decision tree is not required.
[プログラム及び記録媒体]
秘匿決定木計算装置及び方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[Program and recording medium]
The processes described in the secret decision tree calculation apparatus and method are not only executed in time series according to the order of description, but may also be executed in parallel or individually as required by the processing capability of the apparatus executing the process or as required. Good.
また、秘匿決定木計算装置における各処理をコンピュータによって実現する場合、秘匿決定木計算装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、その各処理がコンピュータ上で実現される。 When each process in the secret decision tree calculation apparatus is realized by a computer, the processing contents of the functions that the secret decision tree calculation apparatus should have are described by a program. Then, by executing this program on a computer, each process 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.
[変形例]
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
[Modification]
Needless to say, other modifications are possible without departing from the spirit of the present invention.
Claims (5)
上記第0サーバ装置から第n−1サーバ装置がわからない秘密分散されたシャッフルビットに従って所定の決定木を秘密協調計算により撹乱することにより撹乱後の決定木を得て、受信した複数のシェアと上記撹乱後の決定木と上記秘密分散されたシャッフルビットを用いて、上記所定の決定木におけるデータXに対応する値のn個のシェアを秘密協調計算することにより得て上記ユーザ装置に送信する上記第0サーバ装置から第n−1サーバ装置と、を含み、
上記ユーザ装置は、kをn以下の所定の整数として、受信したn個のシェアの中の少なくともk個を用いて上記所定の決定木におけるデータXに対応する値を復元する、
秘匿決定木計算システム。 A user device that generates a plurality of shares by secretly sharing data X, and transmits the generated plurality of shares from the 0th server device to the n-1th server device,
A predetermined decision tree is disturbed by secret cooperative calculation according to a secret-shuffled bit in which the (n-1) -th server device is unknown from the 0th server device to obtain a disturbed decision tree, and the received multiple shares and the above Using the decision tree after disturbance and the shuffled bits that are secret-distributed, the n shares of the value corresponding to the data X in the predetermined decision tree are obtained by secret cooperative calculation and transmitted to the user device Including the 0th server device to the (n-1) th server device,
The user apparatus restores a value corresponding to the data X in the predetermined decision tree using k as a predetermined integer equal to or less than n and using at least k of the received n shares.
Secret decision tree calculation system.
上記データXはX=(X0,…,Xh-1)であり、上記所定の決定木は完全二分木かつ順序固定な決定木であり、
上記第0サーバ装置から第n−1サーバ装置は、上記所定の決定木の各ノードに対してその各ノードの左側の子ノードを根とした木と右側の子ノードを根とした木をそのノードに対応する上記シャッフルビットが所定の値である場合に入れ替える処理を秘密協調計算により行うことにより上記撹乱後の決定木を得て、上記撹乱後の決定木の最上位の階層から葉ノードの階層までの撹乱後の決定木の各階層i(i=0,…,h-2)のノードにおいて、(1) そのノードに対応する上記シャッフルビットが所定の値でなくかつXiがそのノードの条件を満たす場合にはそのノードの一方の子ノードに遷移し、(2) そのノードに対応する上記シャッフルビットが所定の値でなくかつXiがそのノードの条件を満たさない場合にはそのノードの他方の子ノードに遷移し、(3) そのノードに対応する上記シャッフルビットが所定の値でありかつXiがそのノードの条件を満たす場合にはそのノードの上記他方の子ノードに遷移し、(4) そのノードに対応する上記シャッフルビットが所定の値でありかつXiがそのノードの条件を満たさない場合にはそのノードの上記一方の子ノードに遷移する処理を秘密協調計算により行うことにより最終的に遷移する葉ノードを求め、その求まった葉ノードに対応する値を上記所定の決定木におけるデータXに対応する値とする、
秘匿決定木計算システム。 In the secret decision tree calculation system according to claim 1,
The data X is X = (X 0 ,..., X h-1 ), and the predetermined decision tree is a complete binary tree and a fixed order decision tree,
From the 0th server device to the (n-1) th server device, for each node of the predetermined decision tree, a tree rooted at the left child node of each node and a tree rooted at the right child node When the shuffle bit corresponding to the node has a predetermined value, the replacement process is performed by secret cooperative calculation to obtain the decision tree after the disturbance, and the leaf node is determined from the highest hierarchy of the decision tree after the disturbance. In each node i (i = 0, ..., h-2) of the decision tree after disturbance up to the layer, (1) the shuffle bit corresponding to the node is not a predetermined value and X i is the node (2) If the above shuffle bit corresponding to the node is not a predetermined value and X i does not satisfy the condition of the node Transition to the other child node of the node, (3) The shuffled bits the shuffled bits corresponding to the node in the case given the value and X i satisfies the condition that node transits to the other child nodes of the node, corresponding to (4) the node Is a predetermined value and when X i does not satisfy the condition of the node, the process of transitioning to the one child node of the node is performed by secret cooperative calculation to obtain a leaf node that finally transitions, A value corresponding to the obtained leaf node is set as a value corresponding to the data X in the predetermined decision tree.
Secret decision tree calculation system.
上記第0サーバ装置から第n−1サーバ装置が、上記第0サーバ装置から第n−1サーバ装置がわからない秘密分散されたシャッフルビットに従って所定の決定木を秘密協調計算により撹乱することにより撹乱後の決定木を得て、受信した複数のシェアと上記撹乱後の決定木と上記秘密分散されたシャッフルビットを用いて、上記所定の決定木におけるデータXに対応する値のn個のシェアを秘密協調計算することにより得て上記ユーザ装置に送信するステップと、
上記ユーザ装置が、kをn以下の所定の整数として、受信したn個のシェアの中の少なくともk個を用いて上記所定の決定木におけるデータXに対応する値を復元するステップと、
を含む秘匿決定木計算方法。 The user device generates a plurality of shares by secretly sharing the data X, and transmits the generated plurality of shares from the 0th server device to the (n-1) th server device;
After disturbance from the 0th server device to the (n-1) th server device by disturbing a predetermined decision tree by secret cooperative calculation according to the secret-shuffled shuffle bits from which the 0th server device to the (n-1) th server device are not known Using the received multiple shares, the perturbed decision tree, and the secret-shuffled shuffle bits, the n shares of the value corresponding to the data X in the predetermined decision tree are secretly obtained. Obtaining by cooperative calculation and transmitting to the user device;
The user equipment, using k as a predetermined integer less than or equal to n, restoring the value corresponding to the data X in the predetermined decision tree using at least k of the received n shares;
A secret decision tree calculation method including
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016007175A JP6474741B2 (en) | 2016-01-18 | 2016-01-18 | Confidential decision tree calculation system, apparatus, method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016007175A JP6474741B2 (en) | 2016-01-18 | 2016-01-18 | Confidential decision tree calculation system, apparatus, method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017129913A JP2017129913A (en) | 2017-07-27 |
JP6474741B2 true JP6474741B2 (en) | 2019-02-27 |
Family
ID=59394771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016007175A Active JP6474741B2 (en) | 2016-01-18 | 2016-01-18 | Confidential decision tree calculation system, apparatus, method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6474741B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7420147B2 (en) * | 2019-11-28 | 2024-01-23 | 日本電気株式会社 | Shuffle system, shuffle method and program |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009130795A1 (en) * | 2008-04-26 | 2009-10-29 | 三菱電機株式会社 | Information processing equipment and program |
US8904171B2 (en) * | 2011-12-30 | 2014-12-02 | Ricoh Co., Ltd. | Secure search and retrieval |
CN104412539B (en) * | 2012-07-05 | 2017-05-24 | 日本电信电话株式会社 | Secret sharing system, data distribution device, distributed data conversion device, and secret sharing method |
JP5858938B2 (en) * | 2013-01-17 | 2016-02-10 | 日本電信電話株式会社 | Calculation apparatus, calculation system, calculation method |
-
2016
- 2016-01-18 JP JP2016007175A patent/JP6474741B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017129913A (en) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pulido-Gaytan et al. | Privacy-preserving neural networks with homomorphic encryption: C hallenges and opportunities | |
Heikkilä et al. | Differentially private bayesian learning on distributed data | |
Xiang et al. | Scalable maximum clique computation using mapreduce | |
KR20160030874A (en) | A method and system for privacy-preserving recommendation to rating contributing users based on matrix factorization | |
Hou et al. | Ciphergpt: Secure two-party gpt inference | |
CN113435592B (en) | Neural network multiparty collaborative lossless training method and system with privacy protection | |
CN113688999A (en) | Training method of transverse federated xgboost decision tree | |
EP4016506B1 (en) | Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program | |
JP7414655B2 (en) | Learning systems, information processing devices, learning methods and programs | |
CN112805769B (en) | Secret S-type function calculation system, secret S-type function calculation device, secret S-type function calculation method, and recording medium | |
Han et al. | Privacy-preserving genetic algorithms for rule discovery | |
Bellafqira et al. | Secure multilayer perceptron based on homomorphic encryption | |
Alshamrani et al. | IoT data security with DNA-genetic algorithm using blockchain technology | |
Santhanalakshmi et al. | Analysis of neural synchronization using genetic approach for secure key generation | |
JP2020519968A (en) | Bit decomposition secret calculation device, bit combination secret calculation device, method and program | |
Yarter et al. | Implementation and analysis of quantum homomorphic encryption | |
Ichikawa et al. | Efficient secure multi-party protocols for decision tree classification | |
JP6474741B2 (en) | Confidential decision tree calculation system, apparatus, method and program | |
Meraouche et al. | Learning multi-party adversarial encryption and its application to secret sharing | |
Aschauer et al. | Private entanglement over arbitrary distances, even using noisy apparatus | |
US10333697B2 (en) | Nondecreasing sequence determining device, method and program | |
JP6321216B2 (en) | Matrix / key generation device, matrix / key generation system, matrix combination device, matrix / key generation method, program | |
Ferriman et al. | Solving for the RC4 stream cipher state register using a genetic algorithm | |
JP6799012B2 (en) | Concealment decision tree calculation system, equipment, method and program | |
Chiang | Privacy-Preserving Logistic Regression Training on Large Datasets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180220 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190123 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6474741 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |