The present invention relates to an equijoin technique of performing an equijoin of two tables by using a common key attribute of the two tables with information contained in the tables kept secret by secure computation.
As a method of obtaining the computation result of a designated computation without reconstructing the encrypted numerical values, there is a method called secure computation (see, for example, Non-patent Literature 1). With the method of Non-patent Literature 1, it is possible to perform encryption by which a plurality of pieces of information, whose numerical values can be reconstructed, are distributed over three secure computation devices and to make the three secure computation devices hold the results of addition and subtraction, constant addition, multiplication, constant multiplication, logical operations (a NOT, an AND, an OR, and an XOR), and data format conversion (an integer or a binary) with the results being distributed over these secure computation devices, that is, in an encrypted state, without reconstructing the numerical values. In general, the number of secure computation devices over which the information is distributed is not limited to 3 and can be set at W (W is a predetermined constant greater than or equal to 3), and a protocol that implements secure computation by cooperative computations by W secure computation devices is called a multi-party protocol.
Incidentally, in database processing which is performed on tables, in many cases, data is managed in units of tables, each being made up of a set of records (rows of tables illustrated in
As a method that implements an equijoin of tables by secure computation, there is the method of Non-patent Literature 2. The method of Non-patent Literature 2 implements an equijoin of a plurality of tables having an overlap between key attribute values.
Non-patent Literature 1: Koji Chida, Koki Hamada, Dai Ikarashi, Katsumi Takahashi, “A Three-party Secure Function Evaluation with Lightweight Verifiability Revisited”, In CSS, 2010.
Non-patent Literature 2: Koki Hamada, Naoto Kiribuchi, Dai Ikarashi, “An Equijoin Algorithm Based on Non-unique Key Columns for Secure Multi-party Computation”, Symposium on Cryptography and Information Security (SCIS) 2015, the Institute of Electronics, Information and Communication Engineers, 2015.
When an evaluation of computation efficiency is performed on the assumption that secure computation is implemented by a multi-party protocol, since the multi-party protocol is a scheme that performs cooperative computations while carrying out communications between a plurality of parties (participants) and, in a common system configuration, a time required for communications is significantly long compared to local computation which each party performs alone, the local computation can be regarded as being negligible. Therefore, an evaluation of computation efficiency is performed by using the amount of data transmitted and received in communication (the volume of communications traffic) as a measure.
In this case, with the method of Non-patent Literature 2, if the numbers of rows of two tables to be joined are assumed to be m and n and the maximum number of overlapping elements of a key attribute to be joined is assumed to be k, communications of O(k(m+n)log(m+n)) are needed, causing a problem of an increase in communications required between servers, which store data in a concealed state, when an equijoin is performed. In particular, if an attribute, like an attribute “purchase” of
Thus, an object of the present invention is to provide an equijoin technique of generating one table, which is kept secret, from two tables, which are kept secret, while curbing the volume of communications traffic with the information contained in the tables being kept secret by secure computation.
An aspect of the present invention is a secure equijoin system in which ZN is assumed to be a finite ring formed of a set of integers from 0 to N (N is an integer greater than or equal to 1), m and n are assumed to be integers greater than or equal to 1, a and b are assumed to be integers greater than or equal to 2, and pi (1≤i≤m), vi,j (1≤i≤m, 2≤j≤a), qi (1≤i≤n), and ui,j (1≤i≤n, 2≤j≤b) are assumed to be elements, which are not 0, of the finite ring ZN, [[x]] is assumed to be a value obtained by concealing x∈ZN and <π> is assumed to denote a permutation π by secure computation, the secure equijoin system is configured with three or more secure equijoin devices and generates a table J having n rows and a+b−1 columns from a table L having m rows and a columns with elements being concealed and a table R having n rows and b columns with elements being concealed. The secure equijoin system includes: a first permutation generating means that generates a permutation <σ> by performing a stable sort on an element sequence ([[p1]], . . . , [[pm]], [[q1]], . . . , [[qn]], [[p1]], . . . , [[pm]]) which is generated from the first column ([[p1]], . . . , [[pm]]) of the table L and the first column ([[q1]], . . . , [[qn]]) of the table R; a first column generating means that generates the second to a-th columns of the table J by generating, for j=2, . . . , a, (1) an element sequence [[f]]=([[vi, j]], . . . , [[vm, j]], [[0]], . . . , [[0]], [[−v1, j]], . . . , [[−vm, j]]) by using the j-th column ([[v1, j]], . . . , [[vm, j]]) of the table L and an element sequence ([[0]], . . . , [[0]]) obtained by arranging n [[0]], (2) an element sequence [[g]]=[[σ([[f]])]] from the element sequence [[f]] by using the permutation <σ>, (3) an element sequence [[g′]]=PrefixSum([[g]]) by calculating the prefix sum of the element sequence [[g]], (4) an element sequence [[f′]]=[[σ−1([[g′]])]] from the element sequence [[g′]] by using an inverse permutation <σ−1> of the permutation <σ>, and (5) the j-th column ([[v′1, j]], . . . , [[v′n, j]])=([[f′m+1]], . . . , [[f′m+n]]) of the table J by extracting a partial element sequence ([[f′m+1]], . . . , [[f′m+n]]) of the m+1- to m+n-th elements of the element sequence [[f′]]; a join-result element sequence generating means that generates (1) an element sequence [[f1]]=([[1]], . . . , [[1]], [[0]], . . . , [[0]], [[−1]], . . . , [[−1]]) by using an element sequence ([[1]], . . . , [[1]]) of m [[1]] and an element sequence ([[0]], . . . , [[0]]) of n [[0]], (2) an element sequence [[g1]]=[[σ([[f1]])]] from the element sequence [[f1]] by using the permutation <σ>, (3) an element sequence [[g1′]]=PrefixSum([[g1]]) by calculating a prefix sum of the element sequence [[g1]], (4) an element sequence [[f1′]]=[[σ−1([[g1′]])]] from the element sequence [[g1′]] by using the inverse permutation <σ−1>, and (5) a join-result element sequence ([[e1]], . . . , [[en]])=([[f1′m+1]], . . . , [[f1′m+n]]) by extracting a partial element sequence ([[f1′m+1]], . . . , [[f1′m+n]]) of the m+1- to m+n-th elements of the element sequence [[f1′]]; a second column generating means that generates the a+1- to a+b−1-th columns of the table J by generating, for j=a+1, . . . , a+b−1, the j-th column ([[u′1, j−a+1]], . . . , [[u′n, j−a+1]])=([[e1]]×[[u1, j−a+1]], . . . , [[en]]×[[un, j−a+1]]) of the table J by using the join-result element sequence ([[e1]], . . . , [[en]]) and the j−a+1-th column ([[u1, j−a+1]], . . . , [[um, j−a+1]]) of the table R; and a third column generating means that generates a first column ([[q′1]], . . . , [[q′n]])=([[e1]]×[[q1]], . . . , [[en]]×[[qn]]) of the table J by using the join-result element sequence ([[e1]], . . . , [[en]]) and the first column ([[q1]], . . . , [[qn]]) of the table R.
According to the present invention, if the numbers of rows of two tables on which an equijoin is to be performed are assumed to be m and n, it is possible to reduce the volume of communications traffic required for an equijoin to O((m+n)log(m+n)).
Hereinafter, embodiments of the present invention will be described in detail. It is to be noted that constituent units having the same function will be identified with the same reference character and overlapping explanations will be omitted.
A secure equijoin algorithm, which will be described later, is constructed by combining computations on the existing secure computation. These computations required by the secure equijoin algorithm are concealment and reconstruction, addition, multiplication, a prefix sum, a permutation, an inverse permutation, and a stable sort. Necessary definitions and notation will be described prior to the description of each computation.
ZN is assumed to be a set of integers from 0 to N (N is an integer greater than or equal to 1). That is, ZN={0, . . . , N} and ZN forms a finite ring.
[[x]] is assumed to be a value (concealed text) obtained by concealing x∈ZN by encryption or secret sharing. Moreover, x is referred to as plaintext of [[x]].
[[x]]+[[y]] is assumed to be addition by secure computation, which receives [[x]] and [[y]] as input and outputs [[x+y]].
[[x]]×[[y]] is assumed to be multiplication by secure computation, which receives [[x]] and [[y]] as input and outputs [[x×y]].
PrefixSum([[x1]], . . . , [[xn]]) is a computation which obtains an element sequence called a prefix sum from an element sequence ([[x1]], . . . , [[xn]]), and the details thereof will be described later.
<σ> denotes a permutation a by secure computation. The details thereof will be described later.
An element sequence ([[f1]], . . . , [[fn]]) obtained by concealing the elements of an element sequence f=(f1, . . . , fn) is denoted as [[f]]. That is, [[f]]=([[f1]], . . . , [[fn]]).
[[σ([[f]])]] denotes an element sequence obtained by permuting an element sequence [[f]] by a permutation σ.
Sort([[x1, . . . , xn]]) denotes a stable sort that receives an element sequence ([[x1]], . . . , [[xn]]) as input and outputs a permutation <σ>.
As a method of obtaining [[x]] from x∈ZN (concealment) and a method of obtaining x∈ZN from [[x]] (reconstruction), there are, specifically, the technique of Chida et al. (Non-patent Literature 1) and the technique of Shamir (Reference Non-patent Literature 1).
(Reference Non-patent Literature 1) Shamir, A., “How to share a secret”, Communications of the ACM, Vol. 22, No. 11, pp. 612-613, 1979.
An example of concealment will be described. If participants in a multi-party protocol are assumed to be X, Y, and Z, x∈ZN is distributed over a plurality of (for instance, three) secret values and [[x]] denotes a set of a plurality of secret values x, (i∈{1, 2, 3}). Although the participants X, Y, and Z hold part of the secret values xi (i∈{1, 2, 3}) allocated to the participants, the participants X, Y, and Z do not hold all of the secret values xi (i∈{1, 2, 3}). For instance, the participant X is assumed to hold a set {x2, x3}, the participant Y is assumed to hold a set {x1, x3}, and the participant Z is assumed to hold a set {x1, x2}.
Addition is an algorithm of obtaining [[c]] in a concealed state, c=a+b when provided with [[a]] and [[b]] of a, b∈ZN. Specifically, the technique of Ben-Or et al. (Reference Non-patent Literature 2) is known, and communications between participants in a multi-party protocol is not needed.
Multiplication is an algorithm of obtaining [[c]] in a concealed state, c=a×b when provided with [[a]] and [[b]] of a, b∈ZN. Specifically, the method of Gennaro et al. (Reference Non-patent Literature 3) can be used. In this method, communications between participants in a multi-party protocol is needed.
(Reference Non-patent Literature 2) Ben-Or, M., Goldwasser, S. and Wigderson, A., “Completeness theorems for non-cryptographic fault-tolerant distributed computation”, Proceedings of the twentieth annual ACM symposium on Theory of computing, ACM, pp. 1-10, 1998. (Reference Non-patent Literature 3) Gennaro, R., Rabin, M. O. and Rabin, T., “Simplified VSS and fast-track multiparty computations with applications to threshold cryptography”, Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing, ACM, pp. 101-111, 1998.
An operation of obtaining, for a plurality of elements arranged in order (an element sequence), the sum of an element and all the elements that have appeared before and the resultant element sequence are referred to as a prefix sum. That is, a prefix sum is an operation of obtaining, when provided with an element sequence ([[x1]], . . . , [[xn]]), an element sequence ([[y1]], . . . , [[yn]]) by using yi given by the following formula.
In the following description, this operation is written as ([[y1]], . . . , [[yn]])←PrefixSum([[x1]], . . . , [[xn]]). By using the technique of Ben-Or et al. (Reference Non-patent Literature 2) as the addition algorithm, a prefix sum does not need communications between participants in a multi-party protocol.
An operation of rearranging the elements arranged in order and a mapping thereof are referred to as a permutation. For example, an operation of rearranging (1, 2, 3) into (3, 1, 2) is regarded as a permutation by a mapping σ that satisfies σ(1)=3, σ(2)=1, and σ(3)=2. By the nature of a mapping, a plurality of permutations can be combined. That is, a composite permutation σ·π of permutations σ and π maps an element x onto σ(π(x)).
As one of the methods that implement a permutation <σ> by secure computation, the technique of Ikarashi et al. (Reference Non-patent Literature 4) can be used.
(Reference Non-patent Literature 4) Dai Ikarashi, Koki Hamada, Ryo Kikuchi, Koji Chida, “An Improvement of Secure Sorting toward 1 sec. Response on Internet”, Symposium on Cryptography and Information Security (SCIS) 2014, the Institute of Electronics, Information and Communication Engineers, 2014.
In this method, for example, if participants in a multi-party protocol are assumed to be X, Y, and Z, a permutation σ is assumed to be a composite permutation of permutations σXY, σYZ, and σZX which satisfies σ=σZX·σYZ·σXY. The permutation σXY is a permutation shared only by the participant X and the participant Y, and the participant Z is not informed of the permutation σXY. The participant Z obtains the concealed element sequence permuted by σXY by re-sharing from the participant X and the participant Y. The same goes for the permutations σYZ and σZX; therefore, for each of the participants, a permutation which the participant does not know is included. This makes it possible for all the participants to execute the permutation <σ> by secure computation without knowing a correlation.
Here, the permutation <σ> can be regarded as replicated secret sharing (Reference Non-patent Literature 5) divided into the permutations σXY, σYZ, and σZX whose order of application is determined. This is generalization of shuffle of Hamada et al. (Reference Non-patent Literature 6) with σ being set as a random permutation, and the communications cost is linear with respect to an input size.
(Reference Non-patent Literature 5) Ito, M., Saito, A. and Nishizeki, T., “Secret sharing scheme realizing general access structure”, Electronics and Communications in Japan (Part III: Fundamental Electronic Science), Vol. 72, No. 9, pp. 56-64, 1989.
(Reference Non-patent Literature 6) Koki Hamada, Dai Ikarashi, Koji Chida, Katsumi Takahashi, “A Random Permutation Protocol on Three-Party Secure Function Evaluation”, Computer Security Symposium (CSS) 2010, IPSJ-CSEC, 2010.
A permutation has an inverse mapping because it is a bijection. Thus, the inverse mapping of a permutation σ is referred to as an inverse permutation and denoted by σ−1. That is, when σ(x)=y, σ−1(y)=x. In particular, σ−1·σ is a permutation called an identity permutation, which does not change the order.
A method of an inverse permutation <σ−1> by secure computation is similar to the method in the case of a permutation. When a permutation <σ> is provided as a composite permutation of permutations σXY, σYZ, and σZX which make σ=σZX·σYZ·σXY hold, since an inverse permutation is σ−1=σXY−1·σYZ−1·σZX−1, the order of inverse permutations of permutations held by the participants X, Y, and Z only has to be inverted before being applied.
Rearrangement by which the order relation of identical elements is maintained is referred to as a stable sort. That is, in a stable sort σ that rearranges (x1, . . . , xn) into (y1, . . . , yn), if σ(xi)=yu and σ(xj)=yv when xi=xj, u<v holds only when i<j.
Examples of a technique by secure computation include the method of Ikarashi et al. (Reference Non-patent Literature 4). In the following description, an output by a stable sort for an element sequence ([[xi]], . . . , [[xn]]) is assumed to be a permutation <σ> and denoted by <σ>←Sort([[x1]], . . . , [[xn]]).
Input, output, procedures, and processing cost of a secure equijoin algorithm of a first embodiment and a secure equijoin system that implements the secure equijoin algorithm will be described below.
It is to be noted that, in the following description, when a column of a table is extracted and handled, the column is handled as a sequence of elements arranged in a lateral direction, not in a longitudinal direction.
Two tables to be joined are assumed to be L and R (see
Tables containing elements (hereinafter referred to as plaintext elements) obtained by converting the elements of the tables L and R back to pre-concealed plaintext are assumed to be Lplain and Rplain, respectively. Assume that elements of the same value are not present in an element sequence (p1, . . . , pm) of key attribute values of the table Lplain (that is, p1, . . . , pm differ from each other) and overlapping values may be present in an element sequence (q1, . . . , qn) of key attribute values of the table Rplain. Moreover, plaintext elements pi (1≤i≤m), vi, j (1≤i≤m, 2≤j≤a), qi (1≤i≤n), and ui, j (1≤i≤n, 2≤j≤b) of all the elements to be input are assumed to be values, which are not 0, on a finite ring ZN. If there is a possibility that 0 is included in the plaintext elements, preprocessing is assumed to be performed by uniformly performing addition and subtraction, for example, so that the plaintext elements do not become 0. Moreover, if there is a possibility that the plaintext elements are other than values on the finite ring ZN, such as character strings, preprocessing is assumed to be performed so that the plaintext elements are turned into values on the finite ring ZN.
A table to be output is assumed to be J (see
The procedures of the secure equijoin algorithm of the first embodiment depicted in
First, in Step 1, a permutation <σ> is generated by performing a stable sort on an element sequence ([[p1]], . . . , [[pm]], [[q1]], . . . , [[qn]], [[p1]], . . . , [[pm]]) which is generated from the key attribute values of the input two tables L and R.
The permutation <σ> is a permutation that rearranges an element sequence in the following first line into a sequence in the second line. The first to third values, fourth to seventh values, and eighth to tenth values from the left of the element sequence in the first line are the key attribute values of the table Ls, the key attribute values of the table Rs, and the key attribute values of the table Ls, respectively.
It is to be noted that, here, to make the explanation easy to understand, the positional relationship of identical values before and after a permutation is expressed by distinguishing between them by using symbols [[x, [y], and z]]. However, in actuality, they are processed without being distinguished from each other. [[x and z]] are plaintext corresponding to the attribute values obtained from the table L, and [y] is plaintext corresponding to the attribute value obtained from the table R.
Next, Steps 2 to 8 are processing which is repeated for each column of the table L (j=2, . . . , a). In an example of the table Ls of
In Step 3, an element sequence [[f]]=([[v1, j]], . . . , [[vm, j]], . . . , [[vm, j]], [[0]], . . . , [[0]], [[−v1, j]], . . . , [[−vm, j]]) is generated by using the j-th column ([[v1, j]], . . . , [[vm, j]]) of the table L and an element sequence ([[0]], . . . , [[0]]) obtained by arranging n [[0]].
If 100, 19, and 85, which are the values of the column “weight”, are used, a plaintext element sequence of the element sequence [[f]] is as follows. It is to be noted that an element sequence ([0], [0], [0], [0]) is a plaintext element sequence of ([[0]], . . . , [[0]]).
([[100,[[19,[[85,[0],[0],[0],[0],−100]],−19]],−85]])
In Step 4, an element sequence [[g]]=[[σ([[f]])]] is generated from the element sequence [[f]] by using the permutation <σ>.
By rearranging the plaintext element sequence of the element sequence [[f]] by the permutation <σ>, a plaintext element sequence of the element sequence [[g]] is obtained.
([[100,[0],−100]],[[19,−19]],[0],[[85,[0],[0],−85]])
In Step 5, an element sequence [[g′]]=PrefixSum([[g]]) is generated by calculating the prefix sum of the element sequence [[g]].
A plaintext element sequence of the element sequence [[g′]] which is obtained by the prefix sum is as follows.
([[100,[100],0]],[[19,0]],[0],[[85,[85],[85],0]])
It is clear that, by this procedure, the plaintext [[x corresponding to a value in a column of the table L is copied to [y].
Moreover, z]] is a sentinel in programming and indicates a termination of copy of the value of [[x.
In Step 6, an element sequence [[f′]]=[[σ−1([[g′]])]] is generated from the element sequence [[g′]] by using an inverse permutation <σ−1> of the permutation <σ>.
By rearranging the plaintext element sequence of the element sequence [[g′]] by the inverse permutation <σ−1>, a plaintext element sequence of the element sequence [[f′]] is obtained.
([[100,[[19,[[85,[100],[0],[85],[85],0]],0]],0]])
In Step 7, the j-th column ([[v′1, j]], . . . , [[v′n, j]])=([[f′m+1]], . . . , [[f′m+n]]) of the table J is generated by extracting a partial element sequence [[f′m+1]], . . . , [[f′m+n]]) of the m+1- to m+n-th elements of the element sequence [[f]].
The values in the j-th column of the table J which is generated are [100], [0], [85], and [85], which are the fourth (=3+1) to seventh (=3+4) elements of the plaintext element sequence of the element sequence [[f′]]. Here, the value in the second row, which was not joined, of the table J is [0] in plaintext.
Processing from Steps 9 to 13 is the application of processing from Steps 3 to 7 to a virtual column obtained by setting all the values in a column of the table L at [[1]]. Specifically, the processing is as follows.
In Step 9, an element sequence [[f1]]=([[1]], . . . , [[1]], [[0]], . . . , [[0]], [[−1]], [[−1]]) is generated by using an element sequence ([[1]], . . . , [[1]]) of m [[1]] and an element sequence ([[0]], . . . , [[0]]) of n [[0]].
A plaintext element sequence of the element sequence [[f1]] is as follows.
([[1,[[1,[[1,[0],[0],[0],[0],−1]],−1]],−1]])
In Step 10, an element sequence [[g1]]=[[σ([[f1]])]] is generated from the element sequence [[f1]] by using the permutation <σ>.
By rearranging the plaintext element sequence of the element sequence [[f1]] by the permutation <σ>, a plaintext element sequence of the element sequence [[g1]] is obtained.
([[1,[0],−1]],[[1,−1]],[0],[[1,[0],[0],−1]])
In Step 11, an element sequence [[g1′]]=PrefixSum([[g1]]) is generated by calculating the prefix sum of the element sequence [[g1]].
A plaintext element sequence of the element sequence [[g1′]] which is obtained by the prefix sum is as follows.
([[1,[1],0]],[[1,0]],[0],[[1,[1],[1],0]])
In Step 12, an element sequence [[f1′]]=[[σ−1([[g1′]])]] is generated from the element sequence [[g1′]] by using the inverse permutation <σ−1>.
By rearranging the plaintext element sequence of the element sequence [[g1′]] by the inverse permutation <σ−1>, a plaintext element sequence of the element sequence [[f1′]] is obtained.
([[1,[[1,[[1,[1],[0],[1],[1],0]],0]],0]])
In Step 13, a join-result element sequence ([[e1]], . . . , [[en]])=([[f1′m+1]], . . . , [[f1′m+n]]) is generated by extracting a partial element sequence ([[f1′m+1]], . . . , [[f1′m+n]]) of the m+1- to m+n-th elements of the element sequence [[f1′]]. Here, the join-result element sequence ([[e1]], . . . , [[en]]) is a sequence of elements indicating, for a row of the table R, whether or not there was a row to be joined to the table L; if [[ei]]=[[1]], it indicates that there was a row to be joined to the table L, and, if [[ei]]=[[0]], it indicates that there was not a row to be joined to the table L.
The values of the join-result element sequence which is generated are [1], [0], [1], and [1], which are the fourth (=3+1) to seventh (=3+4) elements of the plaintext element sequence of the element sequence [[f1′]].
Processing from Steps 14 to 21 is processing to turn the values in a row of the table R, which was not joined, into [[0]] by using the join-result element sequence ([[e1]], . . . , [[en]]).
In Steps 15 to 17, the j-th column ([[u′1, j−a+1]], . . . , [[u′n, j−a+1]])=([[e1]]×[[u1, j−a+1]] . . . , [[en]]×[[un, j−a+1]]) of the table J is generated by using the join-result element sequence ([[e1]], . . . , [[en]]) and the j−a+1-th column ([[u1, j−a+1]], . . . , [[um, j−a+1]]) of the table R (j=a+1, . . . , a+b−1).
In Steps 19 to 21, the first column ([[q1]], . . . , [[q′n]])=([[e1]]×[[q1]], . . . , [[en]]×[[qn]]) of the table J is generated by using the join-result element sequence ([[e1]], . . . , [[en]]) and the first column ([[q1]], . . . , [[qn]]) of the table R.
In an example of the table Rs of
Processing which requires communications in the secure equijoin algorithm of the first embodiment is: a stable sort of length 2m+n performed one time in Step 1; a permutation of length 2m+n performed a times in total in Steps 4 and 10; likewise, an inverse permutation of length 2m+n performed a times in total in Steps 6 and 12; and multiplication performed bn times in Steps 16 and 20.
The communications cost of the stable sort is O((m+n)log(m+n)) by the technique of Hamada et al. (Reference Non-patent Literature 6). As for the permutation and the inverse permutation, linear communications with respect to input are required, and, as for the multiplication, a constant amount of communications is required per multiplication. The numbers of columns a and b of the tables can be regarded as constants. Thus, if the numbers of rows of two tables to be input are assumed to be m and n, the volume of communications traffic of the entire processing is O((m+n)log(m+n)).
Hereinafter, a secure equijoin system 10 of the first embodiment will be described with reference to
As depicted in
By cooperative computations which are performed by the W secure equijoin devices 100i, the secure equijoin system 10 implements the secure equijoin algorithm which is a multi-party protocol. Thus, a first permutation generating means 110 (which is not depicted in the drawing) of the secure equijoin system 10 is configured with the first permutation generating units 1101, . . . , 110W, a first column generating means 120 (which is not depicted in the drawing) is configured with the first column generating units 1201, . . . , 120W, a join-result element sequence generating means 130 (which is not depicted in the drawing) is configured with the join-result element sequence generating units 1301, . . . , 130W, a second column generating means 140 (which is not depicted in the drawing) is configured with the second column generating units 1401, . . . , 140W, and a third column generating means 150 (which is not depicted in the drawing) is configured with the third column generating units 1501, . . . , 150W.
By using, as input, the table L having in rows and a columns with the elements being concealed and the table R having n rows and b columns with the elements being concealed and performing a secure equijoin on the table L and the table R, the secure equijoin system 10 generates the table J having n rows and a+b−1 columns (see
The first permutation generating means 110 generates a permutation <σ> by performing a stable sort on an element sequence ([[p1]], . . . , [[pm]], [[q1]], . . . , [[qn]], [[p1]], . . . , [[pm]]) which is generated from the first column ([[p1]], . . . , [[pm]]) of the table L and the first column ([[q1]], . . . , [[qn]]) of the table R (S110). This corresponds to Step 1 of the secure equijoin algorithm of
The first column generating means 120 generates the second to a-th columns of the table J by executing the following processing for j=2, . . . , a (S120). This corresponds to Steps 2 to 8 of the secure equijoin algorithm of
The join-result element sequence generating means 130 generates a join-result element sequence ([[e1]], . . . , [[en]]) by executing the following processing (S130). This corresponds to Steps 9 to 13 of the secure equijoin algorithm of
The second column generating means 140 generates the a+1- to a+b−1-th columns of the table J by executing the following processing for j=a+1, . . . , a+b−1 (S140). This corresponds to Steps 14 to 18 of the secure equijoin algorithm of
The third column generating means 150 generates the first column ([[q1′]], . . . , [[q′n]])=([[e1]]×[[q1]], . . . , [[en]]×[[qn]]) of the table J by using the join-result element sequence ([[e1]], . . . , [[en]]) and the first column ([[q1]], . . . , [[qn]]) of the table R (S150). This corresponds to Steps 19 to 21 of the secure equijoin algorithm of
According to the invention of the present embodiment, by using a permutation which is generated as a result of a stable sort being performed on an element sequence obtained by arranging, by a predetermined method, key attribute values of two tables on which an equijoin is to be performed, it is possible to perform an equijoin even when there is an overlap between the key attribute values in one table. In the existing technique, if the maximum number of overlapping elements is assumed to be k, one element is replaced with k pieces of information which do not overlap each other.
Since this replacement becomes unnecessary, it is possible to reduce the volume of communications traffic between servers required for an equijoin which is performed with data being kept concealed. Specifically, if the numbers of rows of two tables, on which an equijoin is to be performed, are assumed to be m and n, it is possible to reduce the volume of communications traffic necessary for an equijoin to O((m+n)log(m+n)). Moreover, there is no need for the maximum number of overlapping elements of a key attribute to be joined, which was necessary to be known in the existing technique, to be a known number.
In the table J which the secure equijoin algorithm of the first embodiment outputs, all the elements of the row, which was not joined, of the table R are [[0]] (0 in the table J (plaintext) of
Input, output, procedures, and processing cost of the secure equijoin algorithm of the second embodiment and a secure equijoin system that implements the secure equijoin algorithm will be described below.
The join-result element sequence ([[e1]], . . . , [[en]]) in the secure equijoin algorithm of the first embodiment and the table J, which is the output result thereof, are inputs.
A table J′ obtained by rearranging the rows of the table J is output. The table J′ is a table in which, of the rows of the table J, a row whose all elements are [[0]] was moved to the lower side.
The table J′ is a table having n rows whose i-th row (1≤i≤n) is ([[q″i]], [[v″i, 2]], . . . , [[vi, a]], [[u″i, 2]], . . . , [[u″i, b]]), where [[q″i]] is a key attribute value or [[0]], [[v″i, 2]], . . . , [[v″i, a]] is a row joined from the table L or a-1 [[0]], and [[u″i, 2]], . . . , [[u″i, b]] is a row joined from the table R or b-1 [[0]] (see
The secure equijoin algorithm of the second embodiment is depicted in
First, in Step 1, a permutation <σ˜> is generated by performing a stable sort on the join-result element sequence ([[e1]], . . . , [[en]]).
The permutation <σ˜> is a permutation that rearranges, if a plaintext element sequence ([1], [0], [1], [1]) of the join-result element sequence ([[ei]], . . . , [[en]]) of the first embodiment is used, an element sequence in the following first line into a sequence in the second line.
In Step 2, the first column ([[q″1]], . . . , [[q″n]])=[[σ˜([[q′1]], . . . , [[q′n]])]] of the table J′ is generated from the first column ([[q′1]], . . . , [[q′n]]) of the table J by using the permutation <σ˜>.
In Step 4, the j-th column ([[v″1, j]], . . . , [[v″n, j]])=[[σ˜([[v′1, j]], . . . , [[v′n, j]])]] of the table J′ is generated from the j-th column ([[v′1, j]], . . . , [[v′n, j]]) of the table J by using the permutation <σ˜> (j=2, . . . , a).
In Step 7, the j-th column ([[u″1, j−a+1]], . . . , [[u″n, j−a+1]])=[[σ˜([[u′1, j−a+1]], . . . , [[u′n, j−a+1]])]] of the table J′ is generated from the j-th column ([[u′1, j−a+1]], . . . , [[u′n, j−a+1]]) of the table J by using the permutation <σ˜> (j=a+1, . . . , a+b−1).
By Steps 2, 4, and 7, a row whose all elements are [[0]] is moved to the lower side, and the table J′ is output. Therefore, the table J′ (plaintext), which is the output result, is like that shown in
It is to be noted that, if an ascending sort is adopted as the stable sort which is used in Step 1, the rows of the output are turned upside down, which makes it possible to move a row whose all elements are [[0]] to the upper side.
The communications cost caused by the secure equijoin algorithm of the second embodiment is O(n log(n)) which is necessary for the stable sort.
Hereinafter, a secure equijoin system 20 of the second embodiment will be described with reference to
As depicted in
A second permutation generating means 260 (which is not depicted in the drawing) of the secure equijoin system 20 is configured with the second permutation generating units 2601, . . . , 260W, and a row rearranging means 270 (which is not depicted in the drawing) is configured with the row rearranging units 2701, . . . , 270W.
The secure equijoin system 20 generates the table J′ having n rows and a+b−1 columns from the table J having n rows and a+b−1 columns obtained by performing, by using, as input, the table L having in rows and a columns with the elements being concealed and the table R having n rows and b columns with the elements being concealed, a secure equijoin on the table L and the table R. Hereinafter, an operation of the secure equijoin system 20 will be described in accordance with
The second permutation generating means 260 generates a permutation <σ˜> by performing a stable sort on the join-result element sequence ([[e1]], . . . , [[en]]) (S260). This corresponds to Step 1 of the secure equijoin algorithm of
The row rearranging means 270 generates the first column ([[q″1]], . . . , [[q″n]])=[[σ˜([[q′1]] . . . , [[q′n]])]] of the table J′ from the first column ([[q′1]], . . . , [[q′n]]) of the table J by using the permutation <σ˜>, generates, for j=2, . . . , a, the j-th column ([[v″1, j]], . . . , [[v″n, j]])=[[σ˜([[v′1, j]], . . . , [[v′n, j]])]] of the table J′ from the j-th column ([[v′1, j]], . . . , [[v′n, j]]) of the table J by using the permutation <σ˜>, and generates, for j=a+1, . . . , a+b−1, the j-th column ([[u″1, j−a+1]], . . . , [[u″n, j−a+1]])=[[σ˜([[u′1, j−a+1]], . . . , [[u′n, j−a+1]])]] of the table J′ from the j-th column ([[u′1, j−a+1]], . . . , [[u′n, j−a+1]]) of the table J by using the permutation <σ˜> (S270). This corresponds to Steps 2 to 8 of the secure equijoin algorithm of
According to the invention of the present embodiment, since the newly required communications cost is O(n log(n)), it can be executed with the volume of communications traffic of O((m+n)log(m+n)) as a whole.
The table J′ which the secure equijoin algorithm of the second embodiment outputs is a table including a row, which was not joined, as a row whose all elements are [[0]]. When the participants may be informed of the number of joined rows, it may be configured so that only the rows of the table J′, which were joined and moved to the upper side, are output. A secure equijoin algorithm of a third embodiment which outputs a table including only the joined rows after the execution of the secure equijoin algorithm of the second embodiment will be described.
Input, output, procedures, and processing cost of the secure equijoin algorithm of the third embodiment and a secure equijoin system that implements the secure equijoin algorithm will be described below.
The join-result element sequence ([[e1]], . . . , [[en]]) in the secure equijoin algorithm of the first embodiment and the table J′, which is the output result of the secure equijoin algorithm of the second embodiment, are input.
A table obtained by deleting a row, of the rows of the table J′, whose all elements are [[0]] from the table J′ is a table J″ which is output.
The secure equijoin algorithm of the third embodiment is depicted in
First, in Step 1, to count up the joined rows, the sum [[c]] of the elements of the join-result element sequence ([[e1]], . . . , [[en]]) is calculated.
In Step 2, c, which is obtained by reconstructing [[c]] obtained in Step 1, is released and a table J″ obtained by extracting c rows from the top of the table J′ is generated.
The table j″, from which a row whose all elements are [[0]] was deleted by Step 2, is output. Therefore, the table J″ (plaintext), which is the output result, is like that shown in
The only communications cost caused by the secure equijoin algorithm of the third embodiment is a constant amount O(1) which is necessary to release c one time.
Hereinafter, a secure equijoin system 30 of the third embodiment will be described with reference to
As depicted in
A number-of-joined-rows calculating means 380 (which is not depicted in the drawing) of the secure equijoin system 30 is configured with the number-of-joined-rows calculating units 3801, . . . , 380W, and a number-of-joined-rows releasing means 390 (which is not depicted in the drawing) is configured with the number-of-joined-rows releasing units 3901, . . . , 390W.
The secure equijoin system 30 generates the table J′ having n rows and a+b−1 columns from the table J having n rows and a+b−1 columns obtained by performing, by using, as input, the table L having m rows and a columns with the elements being concealed and the table R having n rows and b columns with the elements being concealed, a secure equijoin on the table L and the table R, and generates the table J″ having c rows and a+b″1 columns by deleting, from the table J′, a row whose all elements are [[0]]. Hereinafter, an operation of the secure equijoin system 30 will be described in accordance with
The number-of-joined-rows calculating means 380 calculates the sum [[c]] of the elements of the join-result element sequence ([[e1]], . . . , [[en]]) (S380). This corresponds to Step 1 of the secure equijoin algorithm of
The number-of-joined-rows releasing means 390 releases c which is obtained by reconstructing [[c]] and generates the table J″ obtained by extracting c rows from the top of the table J′ (S390). This corresponds to Step 2 of the secure equijoin algorithm of
According to the invention of the present embodiment, since the newly required communications cost is O(1), it can be executed with the volume of communications traffic of O((m+n)log(m+n)) as a whole.
Each device according to the present invention has, as a single hardware entity, for example, an input unit to which a keyboard or the like is connectable, an output unit to which a liquid crystal display or the like is connectable, a communication unit to which a communication device (for example, communication cable) capable of communication with the outside of the hardware entity is connectable, a central processing unit (CPU, which may include cache memory and/or registers), RAM or ROM as memories, an external storage device which is a hard disk, and a bus that connects the input unit, the output unit, the communication unit, the CPU, the RAM, the ROM, and the external storage device so that data can be exchanged between them. The hardware entity may also include, for example, a device (drive) capable of reading and writing a recording medium such as a CD-ROM as desired. A physical entity having such hardware resources may be a general-purpose computer, for example.
The external storage device of the hardware entity has stored therein programs necessary for embodying the aforementioned functions and data necessary in the processing of the programs (in addition to the external storage device, the programs may be prestored in ROM as a storage device exclusively for reading out, for example). Also, data or the like resulting from the processing of these programs are stored in the RAM and the external storage device as appropriate.
In the hardware entity, the programs and data necessary for processing of the programs stored in the external storage device (or ROM and the like) are read into memory as necessary to be interpreted and executed/processed as appropriate by the CPU. As a consequence, the CPU embodies predetermined functions (the components represented above as units, means, or the like).
The present invention is not limited to the above embodiments, but modifications may be made within the scope of the present invention. Also, the processes described in the embodiments may be executed not only in a chronological sequence in accordance with the order of their description but may be executed in parallel or separately according to the processing capability of the device executing the processing or any necessity.
As already mentioned, when the processing functions of the hardware entities described in the embodiments (the devices of the present invention) are to be embodied with a computer, the processing actions of the functions to be provided by the hardware entities are described by a program. By the program then being executed on the computer, the processing functions of the hardware entity are embodied on the computer.
The program describing the processing actions can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any kind, such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. More specifically, a magnetic recording device may be a hard disk device, flexible disk, or magnetic tape; an optical disk may be a DVD (digital versatile disc), a DVD-RAM (random access memory), a CD-ROM (compact disc read only memory), or a CD-R (recordable)/RW (rewritable); a magneto-optical recording medium may be an MO (magneto-optical disc); and a semiconductor memory may be EEP-ROM (electronically erasable and programmable-read only memory), for example.
Also, the distribution of this program is performed by, for example, selling, transferring, or lending a portable recording medium such as a DVD or a CD-ROM on which the program is recorded. Furthermore, a configuration may be adopted in which this program is distributed by storing the program in a storage device of a server computer and transferring the program to other computers from the server computer via a network.
The computer that executes such a program first, for example, temporarily stores the program recorded on the portable recording medium or the program transferred from the server computer in a storage device thereof. At the time of execution of processing, the computer then reads the program stored in the storage device thereof and executes the processing in accordance with the read program. Also, as another form of execution of this program, the computer may read the program directly from the portable recording medium and execute the processing in accordance with the program and, furthermore, every time the program is transferred to the computer from the server computer, the computer may sequentially execute the processing in accordance with the received program. Also, a configuration may be adopted in which the transfer of a program to the computer from the server computer is not performed and the above-described processing is executed by so-called application service provider (ASP)-type service by which the processing functions are implemented only by an instruction for execution thereof and result acquisition. Note that a program in this form shall encompass information that is used in processing by an electronic computer and acts like a program (such as data that is not a direct command to a computer but has properties prescribing computer processing).
Further, although the hardware entity was described as being configured via execution of a predetermined program on a computer in this form, at least some of these processing actions may instead be embodied with hardware.
The foregoing description of the embodiments of the invention has been presented for the purpose of illustration and description. It is not intended to be exhaustive and to limit the invention to the precise form disclosed. Modifications or variations are possible in light of the above teaching. The embodiment was chosen and described to provide the best illustration of the principles of the invention and its practical application, and to enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the invention as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly, legally, and equitably entitled.
Number | Date | Country | Kind |
---|---|---|---|
JP2016-187782 | Sep 2016 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2017/033283 | 9/14/2017 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2018/061800 | 4/5/2018 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
20130117255 | Liu | May 2013 | A1 |
20130179470 | Yasuoka | Jul 2013 | A1 |
20140380051 | Branish, II | Dec 2014 | A1 |
Entry |
---|
Extended European Search Report dated Apr. 21, 2020 for corresponding European Patent Application No. 17855756.7, (7 pages). |
Rosario Gennaro, et al., “Simplified VSS and Fast-track Multiparty Computations with Applications to Threshold Cryptography”, Principles of Distributed Computing, Jun. 1, 1998, XP058228614, pp. 101-111. |
International Search Report dated Dec. 19, 2017 in PCT/JP2017/033283 filed on Sep. 14, 2017. |
Chida, K. et al., “A Three-Party Secure Function Evaluation with Lightweight Verifiability Revisited”, CSS2010, 2010, 6 pages, with English Abstract. |
Hamada, K. et al., “An Equijoin Algorithm Based on Non-unique Key Columns for Secure Multi-party Computation”, Symposium on Cryptography and Information Security (SCIS) 2015, The Institute of Electronics, Information and Communication Engineers, 2015, pp. 1-6, with English Abstract. |
Shamir, A., “How to Share a Secret”, Communications of the ACM, vol. 22, No. 11, 1979, pp. 612-613. |
Ben-Or, M. et al., “Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation”, Proceedings of the twentieth annual ACM symposium of Theory of computing, ACM, 1988, pp. 1-10. |
Gennaro, R. et al., “Simplified VSS and Fast-track Multiparty Computations with Applications to Threshold Cryptography”, Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing, ACM, 1998, 11 pages. |
Ikarashi, D. et al., “An Improvement of Secure Sorting toward 1 sec. Response on Internet”, Symposium on Cryptography and Information Security (SCIS) 2014, The Institute of Electronics, Information, and Communication Engineers, 2014, 9 pages. |
Ito, M. et al., “Secret Sharing Scheme Realizing General Access Structure”, Electronics and Communications in Japan (Part III: Fundamental Electronic Science), vol. 72, No. 9, 1987, pp. 99-102. |
Hamada, K. et al., “A Random Permutation Protocol on Three-Party Secure Function Evaluation”, Computer Security Symposium (CSS) 2010, IPSJ-CSEC, 2010, 6 pages. |
Number | Date | Country | |
---|---|---|---|
20190228010 A1 | Jul 2019 | US |