This application is a National Stage of International Application No. PCT/JP2017/018745 filed May 18, 2017.
The present invention relates to a bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program.
A secure computation scheme is a technology that can allow a computer system to conceal computation process and result against related parties. By performing secret sharing of data to store shares in a plurality of servers managed by a third party such as a cloud, it is possible to execute any operation on the data. Since data, computation process, and computation result are not known to the third party, the secure computation can be used, as an example, for outsourcing of analysis processing or the like of sensitive information such as personal information, though not limited thereto.
The following describes secure computation using replication type secret shared (hereinafter referred to as (2, 3) type RSS) having (2, 3) threshold access structure, as a premise of the present invention that relates to a secure computation using (2, 3) type RSS.
(2, 3) threshold type RSS is one of implementation methods of (2, 3) secret sharing schemes. The (2, 3) secret sharing scheme is a scheme such that three items of share information are generated from input values, and from one or less items of share information, an original information is not known, while the original value can be reconstructed from two or more items of share information.
In (2, 3) type RSS, in secret sharing of a value x of from 0 to p−1 or less, a set of three values r1, r2, and r3 each from 0 to p−1 or less such that x=r1+r2+r3 mod p, is generated, and, as three items of sharing information, three tuples are used, wherein the three tuples each have two values selected from (r1, r2, r3), different to each other, thereby implementing (2, 3) secret sharing. It is noted that p is called a modulus.
A method for executing computation on shares distributed by secret sharing without reconstruction is called secure computation. The following describes a secure computation method for a value shared (distributed) with the (2, 3) RSS scheme that relates to the present invention.
First, a sharing method of a value will be described, and then addition, subtraction, and multiplication will be described. Here, a procedure will be described in which a plurality of values each are shared by three apparatuses and secure computation is performed on the shares (share values). Here, three apparatuses are distinguished by calling them apparatus 1, apparatus 2, and apparatus 3.
<Value-Sharing Scheme>
In secret-sharing of a value w of 0 or more and less than p, where p is an integer of 2 or more, r1, r2, and r3 that are randomly selected so as to satisfy w=r1+r2+r3 mod p are generated and stored as follows. The apparatus 1 stores (r1, r2) in a storage thereof as a share value of w. The apparatus 2 stores (r2, r3) in a storage thereof as a share value of w. The apparatus 2 stores (r3, r1) in a storage thereof as a share value of w.
It can be confirmed that w cannot be obtained in any one of the parties (apparatuses 1 to 3) because each of the parties lacks one of r1, r2, and r3, but w can be reconstructed from share values stored in two or more parties.
<Addition Processing>
The following describes an addition processing executed with respect to sharing of a value w and a value w′ stored in a distributed manner in the apparatus 1, the apparatus 2, and the apparatus 3, by the above-described method. Here, it is assumed that r1, r2, and r3 are randomly selected to satisfy w=r1+r2+r3 mod p, and r1′, r2′, and r3′ are randomly selected to satisfy w′=r1′+r2′+r3′ mod p.
The apparatus 1 stores (s1, t1)=(r1, r2) as a share value of w and (s1′, t1′)=(r1′, r2′) as a share value of w′, in a storage thereof.
The apparatus 2 stores (s2, t2)=(r2, r3) as a share value of w and (s2′, t2′)=(r2′, r3′) as a share value of w′, in a storage thereof.
The apparatus 3 stores (s3, t 3)=(r3, r1) as a share value of w and (s3′, t 3′)=(r3′, r1′) as a share value of w′, in a storage thereof.
The apparatus 1 to 3 respectively perform processing according to the following procedure.
The apparatus 1 calculates (s1″, t1″) by
(s1″,t1″)=(r1″,s1+s1′ mod p,r2″=t1+t1′ mod p)
and stores (s1″, t1″) in a storage thereof, as a share value of w+w′.
The apparatus 2 calculates (s2″, t2″) by
(s2″,t2″)=(r2″=s2+s2′ mod p,r3″=t2+t2′ mod p)
and stores (s2″, t2″) in a storage thereof, as a share value of w+w′.
The apparatus 3 calculates (s3″, t 3″) by
(s3″,t3″)=(r3″=s3+s3′ mod p,r1″=t3+t3′ mod p)
and stores (s3″, t3″) in a storage thereof, as a share value of w+w′.
Each computation result of the apparatuses 1 to 3 is a share value of w+w′ that is shared using r1″, r2″ and r3″ which satisfy: w+w′=r1″+r2″+r3″ mod p.
This can be confirmed by r1″+r2″+r3″=(r1+r2+r3)+(r1′+r2′+r3′)=w+w′ mod p.
<Subtraction Processing>
The following describes a subtraction processing executed with respect to sharing of a value w and a value w′ stored in a distributed manner in the apparatus 1, the apparatus 2, and the apparatus 3 by the above described method. It is assumed that w=r1+r2+r3 mod p, and w′=r1′+r2′+r3′ mod p.
The apparatus 1 stores (s1, t1)=(r1, r2) as a share value of w and (s1′, t1′)=(r1′, r2′) as a share value of w′, in a storage thereof.
The apparatus 2 stores (s2, t2)=(r2, r3) as a share value of w and (s2′, t2′)=(r2′, r3′) as a share value of w′, in a storage thereof.
The apparatus 3 stores (s3, t3)=(r3, r1) as a share value of w and (s3′, t3′)=(r3′, r1′) as a share value of w′, in a storage thereof.
The apparatuses 1 to 3 respectively perform processing according to the following procedure.
The apparatus 1 calculates (s1″, t1″) by
(s1″, t1″)=(r1″, s1−s1′ mod p, r2″=t1−t1′ mod p) and stores (s1″, t1″), in a storage thereof, as a share value of w−w′.
The apparatus 2 calculates (s2″, t2″) by (s2″, t2″)=(r2″, s2−s2′ mod p, r3″=t2−t2′ mod p) and stores (s2″, t2″), in a storage thereof, as a share value of w−w′.
The apparatus 3 calculates (s3″, t3″) by (s3″, t3″)=(r3″=s3−s3′ mod p, r1″=t3−t3′ mod p) and stores (s3″, t3″), in a storage thereof, as a share value of w−w′.
Each computation result of the apparatuses 1 to 3 is a share value of w−w′ that is shared using r1″, r2″ and r3″ which satisfy: w−w′=r1″+r2″+r3″ mod p.
This can be confirmed by r1″+r2″+r3″=(r1+r2+r3)−(r1′+r2′+r3′)=w−w′ mod p.
<Multiplication Processing>
The following describes a multiplication processing executed with respect to values w and w′ stored in the apparatuses 1, 2, and 3 by the above described method.
First describes what value each apparatus stores. It is assumed that r1 r2 and r3 are randomly selected values that satisfy r1+r2+r3=w mod p, and r1′.r2′, r3′ are randomly selected values that satisfy r1′+r2′+r3′=w′ mod 2{circumflex over ( )}n.
The apparatus 1 stores (s1, t1)=(r1, r2) as a share value of w and (s1′, t1′)=(r1′, r2′) as a share value of w′, in a storage thereof.
The apparatus 2 stores (s2, t2)=(r2, r3) as a share value of w and (s2′, t2′)=(r2′, r3′) as a share value of w′, in a storage thereof.
The apparatus 3 stores (s3, t3)=(r3, r1) as a share value of w and (s3′, t3′)=(r3′, r1′) as a share value of w′, in a storage thereof.
The apparatuses 1 to 3 respectively perform processing according to the following procedures.
The apparatus 1, apparatus 2 and apparatus 3 are assumed to store respectively r1″, r2″, and r3″ as randomly selected values that satisfy r1″+r2″+r3″=0 mod 2{circumflex over ( )}n. r1″, r2″ r3″ that satisfy such a property are required by disposal, each time multiplication is executed. A method for efficiently generating such three values by three apparatuses will be described later.
The apparatus 1 calculates u2=s1 s1′+s1 t1′+t1 s1′+r1″ mod p and sends u2 to the apparatus 2.
The apparatus 2 calculates u3=s2 s2′+s2 t2′+t2 s2′+r2″ mod p and sends u3 to the apparatus 3.
The apparatus 3 calculates u1=s3 s3′+s3 t3′+t3 s3′+r3″ mod p and sends u1 to the apparatus 1.
The apparatus 1 stores (u1, u2), in a storage thereof, as a share value of ww′.
The apparatus 2 stores (u2, u3), in a storage thereof, as a share value of ww′.
The apparatus 3 stores (u3, u1), in a storage thereof, as a share value of ww′.
The following can be confirmed.
u1+u2+u3=r1r1′+r1r2′+r2r1′+r2r2′+r2r3′+r3r2′+r3r3′+r3r1′+r1r3′+r1″+r2″+r3″=(r1+r2+r3)(r1′+r2′+r3′)+r1″+r2″+r3″=ww′ mod p.
From the values stored in apparatus 1 and apparatus 2 by using the same computation method, ww′ mod p can be calculated. The same applies to combinations of other apparatuses. According to such a method, the multiplication on w and w′ both shared by using (2, 3) type RSS is executed without reconstructing each value, and a value obtained by sharing of ww′ by applying (2, 3) type RSS can be shared.
<Generation of Random Numbers>
The following describes a method for generating three values, addition of which become 0, without communication among the apparatus 1, the apparatus 2 and the apparatus 3, in large quantities, in such a manner in which a value that the apparatus possess is not known to other apparatuses. Here, a method for generating r[i, 1], r[i, 2], r[i, 3], which satisfy
r[i, 1]+r[i, 2]+r[i, 3]=0 mod 2{circumflex over ( )}n, for i=1, . . . , N, where N is a relatively large number, will be described.
Suppose a pseudo random number generator (PRG) outputting an n-bit numeric string with key and index as input is provided. The index may be a counter or the like. This method is described in NPL 3 and the like.
First of all, as a setup process of the apparatus, L1, L2, and L3 which are keys of PRG are generated. Let L1 and L3 be stored in the apparatus 1, L2 and L1 in the apparatus 2 and L3 and L2 in the apparatus 3.
It is assumed that each of the apparatuses 1 to 3 shares an index idx synchronized with a counter or the like.
The apparatus 1 supplies the key L1 and the index idx to the PRG, and generates, as an output of the PRG, a value of n bits numeric value r′[1]. The apparatus 1 also supplies the key L3 and index idx to the PRG, and generates, as an output of the PRG, a value of n bits numeric value r′[3]. Then, the apparatus 1 obtains:
r[1]=r′[1]-r′[3]mod p.
The apparatus 2 supplies the key L2 and the index idx to the PRG, and generates, as an output of the PRG, the value of n bits numeric value r′[2]. The apparatus 2 also supplies the key L1 and index idx into PRG, and generates, as an output of the PRG, a value of n bits numeric value r′[1]. Then, the apparatus 2 obtains:
r[2]=r′[2]-r′[1]mod p.
The apparatus 3 supplies the key L3 and the index idx to the PRG, and generates, as an output of the PRG, n bits numeric value r′[3]. The apparatus 2 also supplies the key L2 and index idx into PRG, and generates, as an output of the PRG, a value of n bits numeric value r′[2]. Then, the apparatus 3 obtains:
r[3]=r′[3]-r′[2]mod p.
The following holds:
r[1]+r[2]+r[3]=r′[1]−r′[3]+r′[2]−r′[1]+r[3]−r[2]=0 mod p.
All N sets satisfy the above condition.
Focusing attention on the value: r[1]=r′[1]−r′[3] mod p that is generated by the apparatus 1, the apparatus 3 cannot obtain r′[1], and the apparatus 2 cannot obtain r′[3].
From this, it can be seen that the apparatus 2 and the apparatus 3 cannot calculate r[1]. The same may be said to r[2] and r[3].
As long as the setup process has been completed, the above process can be executed, even before the computation is performed, for example.
In the above described secure computation using the (2, 3) type RSS, if p=2, multiplication can be regarded as AND (logical product) processing and addition/subtraction can be regarded as exclusive OR processing. Thus, when p=2, it may be said that the above computation is secure computation suited to logic operation. Also, assuming that all items of share information of the apparatuses 1 to 3 are (1, 1), (1, 1), and (1, 1), these becomes share information of a value 1, with r1=1, r2=1, and r3=1, thereby forming a complete system with a logical product, an exclusive OR, and a constant 1 to allow arbitrary operation to be executed.
The above method is described in NPL 1 and the like. Various variations can be adopted as such a method. For example, regarding r1+r2+r3=w mod p, (r1−r2 mod p, r2), (r2−r3 mod p, r3), and (r3−r1 mod p, r1), may be used as share information. A scheme in which 3 apparatuses each hold information corresponding to two different sets out of r1, r2, and r3 may be called as (2, 3) type RSS.
Regarding RSS, an arbitrary operation can be processed by using (2, 3) type RSS with p=2. However, since it is inefficient to execute all processing with logical operation, such an operation that can be configured by multiplication and addition had better to be performed by secure computation using (2, 3) type RSS with p set to a larger value.
In addition, there are cases where it is desirable to combine numerical operation and logical operation. As an example, in a case of receiving a, b and c as inputs and processing a*b mod 2{circumflex over ( )}4<c, with a, b, and c being smaller than 2{circumflex over ( )}4 (where {circumflex over ( )} is a power operator), it is desirable to process a*b as a numerical operation, and to process comparison operation as a logical operation. Although it is desirable to compute a*b as a numerical operation, it is difficult to express the process of comparing a*b with c as a numerical operation.
In order to solve such a problem, a process called bit decomposition described in NPL 2 is known. Bit decomposition is a process for converting share information for numerical computation into share information for logical operation.
It is assumed that sharing of a value w=5 is performed by (2, 3) type RSS using p=8, and the apparatus 1 stores (1, 2), the apparatus 2 stores (2, 2) and the apparatus 3 stores (2, 1).
By using bit decomposition, from these items of information, it is possible to obtain share information for each bit of 1, 0, and 1, of a binary representation of 5 (=101).
More specifically, after bit decomposition is performed, the apparatus 1 possesses (1, 1) for the first bit, (0, 1) for the second bit, (1, 0) for the third bit, and (0, 0) for the fourth bit.
The apparatus 2 possesses (1, 1) for the first bit, (1, 1) for the second bit, (0, 0) for the third bit, and (0, 0) for the fourth bit.
The apparatus 3 possesses (1, 1) for the first bit, (1, 0) for the second bit, (0, 0) for the third bit, and (0, 0) for the fourth bit.
The following describes the outline of the method described in NPL 2, as a related technique regarding bit decomposition. This method performs bit decomposition in the following procedure.
It is assumed that a value to be decomposed is shared by using r1, r2, and r3 which satisfy r=r1+r2+r3 mod p NPL 2 uses a Mersenne prime number represented by p=2{circumflex over ( )}n−1. Properties of a Mersenne prime number contribute to efficient computation of s in step 2.
<Procedure 1>
Execute sharing of r12=r1+r2 mod p, and r3.
<Procedure 2>
Determine whether or not r12+r3 is greater than p, and execute secure computation, such that s=1, if r12+r3 is greater than p, and s=0 otherwise.
<Procedure 3>
Execute secret computation of r12+r3+s mod 2{circumflex over ( )}n by a full adder for each bit from a lower digit.
According to the method of NPL 2, there is description that bit decomposition can be performed by communication amount of 10n+4 bits, assuming that p is a number of n bits.
[NPL 1]
The disclosures of Non Patent Literatures 1 to 3 given above are hereby incorporated in their entirety by reference into this specification. The following analysis is made by the inventors of the present invention.
As described above, according to NPL 2, bit decomposition can be performed by communication amount of 10n+4 bits, assuming that p is a number of n bits.
It is desirable to implement such a scheme whereby bit decomposition can be executed efficiently with a reduced communication amount, or, less than that of NPL 2, for example.
Accordingly, it is an object of the present invention to provide an apparatus, method, and program, each enabling bit decomposition and/or bit combining with less communication amount to realize efficient execution of secure computation.
According to an aspect of the present invention, there is provided a bit decomposition secure computing system comprising:
a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS (Replication type Secret Sharing) using modulo of power of 2 arithmetic,
a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by (2, 3) type RSS using modulo 2 arithmetic; and
a bit decomposition secure computation apparatus, wherein
with respect to sharing of a value w, r1, r2, and r3 randomly selected and satisfying w=r1+r2+r3 mod 2{circumflex over ( )}n, where {circumflex over ( )} is a power operator and n is a preset positive integer, being used as share information by the (2, 3) type RSS stored in the share value storage apparatus, the bit decomposition secure computation apparatus includes:
an addition sharing unit that sums two values out of r1, r2 and r3 by modulo 2{circumflex over ( )}n arithmetic, generates and distributes a share value with respect to the sum by the (2, 3) type RSS; and
a full adder secure computation unit that executes addition processing of the value generated by the addition sharing unit and a value not used by the addition sharing unit, for each digit, by using secure computation of a full adder, and stores the result in the decomposed share value storage apparatus.
According to another aspect of the present invention, there is provided a bit decomposition secure computation system comprising:
a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS (Replication type Secret Sharing) using modulo of power of 2 arithmetic;
a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by applying (2, 3) type RSS using modulo 2 arithmetic; and
a bit decomposition secure computation apparatus, wherein
with respect to sharing of a value w, r1, r2, and r3 randomly selected and satisfying w=r1+r2+r3 mod 2{circumflex over ( )}n, where {circumflex over ( )} is a power operator and n is a preset positive integer, being used as share information by the (2, 3) type RSS stored in the share value storage apparatus, the bit decomposition secure computation apparatus includes
a full adder secure computation unit that performs secure computation of r12=r1+r2 mod 2{circumflex over ( )}n and secure computation of r123=r12+r3 mod 2{circumflex over ( )}n, for each digit, by using secure computation of a full adder, and stores the computation result in the decomposed share value storage apparatus.
According to a further aspect of the present invention, there is provided a bit combining secure computing system comprising:
a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS (Replication type Secret Sharing) using modulo of power of 2 arithmetic;
a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by (2, 3) type RSS using modulo 2 arithmetic; and
a bit combining secure computation apparatus, wherein
with respect to sharing of a value w_i, r_{1, i}, r_{2, i}, r_{3, i} randomly selected and satisfying w_i=r_{1, i}+r_{2, i}+r_{3, i} mod 2, for i=1 to n, being used as a sequence of n items of share information by the (2, 3) type RSS stored in the decomposed share value storage apparatus, the bit combining secure computation apparatus includes
a full adder secure computation unit that performs secure computation of r12=r_{1, n}∥ . . . ∥r_{1, 1}+r_{2, n}∥ . . . ∥r_{2, 1} mod 2{circumflex over ( )}n, where a symbol II is a concatenation operator, {circumflex over ( )} is a power operator and n is a preset positive integer, and performs secure computation of r123=r12+r_{3, n}∥ . . . ∥r {3, 1} mod 2{circumflex over ( )}n, for each digit, by using secure computation of a full adder, and stores the computation result in the share value storage apparatus.
According to an aspect of the present invention, there is provided a method in a computer system for providing bit decomposition secure computing, the method comprising:
an addition sharing step that sums two values out of r1, r2 and r3 by modulo 2{circumflex over ( )}n, generates and distributes a share value by the (2, 3) type RSS (Replication type Secret Sharing) scheme with respect to the sum, wherein with respect to sharing of a value w, r1, r2, and r3 randomly selected and satisfying w=r1+r2+r3 mod 2{circumflex over ( )}n, where {circumflex over ( )} is a power operator and n is a preset positive integer, are used as share information by the (2, 3) type RSS stored in a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS using modulo of power of 2 arithmetic; and
a full adder secure computation step that executes addition processing of the value generated by the addition sharing step and a value not used by the addition sharing step, for each digit, by using secure computation of a full adder, and stores the result in a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by (2, 3) type RSS using modulo 2 arithmetic.
According to another aspect of the present invention, there is provided a method in a computer system for providing bit decomposition secure computing, the method comprising
a full adder secure computation step that performs secure computation of r12=r1+r2 mod 2{circumflex over ( )}n and secure computation of r123=r12+r3 mod 2{circumflex over ( )}n, for each digit, by using secure computation of a full adder, wherein with respect to sharing of a value w, r1, r2, and r3 randomly selected and satisfying w=r1+r2+r3 mod 2{circumflex over ( )}n, where {circumflex over ( )} is a power operator and n is a preset positive integer, are used as share information by the (2, 3) type RSS (Replication type Secret Sharing) scheme stored in a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS using modulo of power of 2 arithmetic; and
stores the computation result in a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by (2, 3) type RSS using modulo 2 arithmetic.
According to a further aspect of the present invention, there is provided a method in a computer system for providing bit combining secure computing, the method comprising
a full adder secure computation step that performs secure computation of r12=r_{1, n}∥ . . . ∥r_{1, 1}+r_{2, n}∥ . . . ∥r_{2, 1} mod 2{circumflex over ( )}n, where a symbol II is a concatenation operator, {circumflex over ( )} is a power operator and n is a preset positive integer, and performs secure computation of r123=r12+r_{3, n}∥ . . . ∥r_{3, 1} mod 2{circumflex over ( )}n, for each digit by secure computation of a full adder, wherein with respect to sharing of a value w_i, r_{1, i}, r_{2, i}, r_{3, i} randomly selected and satisfying w_i=r_{1, i}+r_{2, i}+r_{3, i} mod 2, for i=1 to n, are used as a sequence of n items of share information by the (2, 3) type RSS stored in a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by (2, 3) type RSS using modulo 2 arithmetic; and
stores the computation results in a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS using modulo of power of 2 arithmetic.
According to an aspect of the present invention, there is provided a program causing a computer to execute bit decomposition secure computing processing comprising:
an addition sharing process that sums two values out of r1, r2 and r3 by modulo 2{circumflex over ( )}n, generates and distributes a share value by the (2, 3) type RSS (Replication type Secret Sharing) scheme with respect to the sum, wherein with respect to sharing of a value w, r1, r2, and r3 randomly selected and satisfying w=r1+r2+r3 mod 2{circumflex over ( )}n, where {circumflex over ( )} is a power operator and n is a preset positive integer, are used as share information by the (2, 3) type RSS stored in a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS using modulo of power of 2 arithmetic; and
a full adder secure computation process that executes addition processing of the value generated by the addition sharing process and a value not used by the addition sharing process, for each digit, by using secure computation of a full adder, and stores the result in a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by (2, 3) type RSS using modulo 2 arithmetic.
According to another aspect of the present invention, there is provided a program causing a computer to execute bit decomposition secure computing processing comprising:
a full adder secure computation process that performs secure computation of r12=r1+r2 mod 2{circumflex over ( )}n and secure computation of r123=r12+r3 mod 2{circumflex over ( )}n, for each digit, by using secure computation of a full adder, wherein with respect to sharing of a value w, r1, r2, and r3 randomly selected and satisfying w=r1+r2+r3 mod 2{circumflex over ( )}n, where {circumflex over ( )} is a power operator and n is a preset positive integer, are used as share information by the (2, 3) type RSS (Replication type Secret Sharing) scheme stored in a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS using modulo of power of 2 arithmetic; and
stores the computation result in a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by (2, 3) type RSS using modulo 2 arithmetic.
According to a further aspect of the present invention, there is provided a program causing a computer to execute bit combining secure computing processing comprising:
a full adder secure computation process that performs secure computation of r12=r_{1, n}∥ . . . ∥r_{1, 1}+r_{2, n}∥ . . . ∥r_{2, 1} mod 2{circumflex over ( )}n, where a symbol II is a concatenation operator, {circumflex over ( )} is a power operator and n is a preset positive integer, and performs secure computation of r123=r12+r_{3, n}∥ . . . ∥r_{3, 1} mod 2{circumflex over ( )}n, for each digit by secure computation of a full adder, wherein with respect to sharing of a value w_i, r_{1, i}, r_{2, i}, r_{3, i} randomly selected and satisfying w_i=r_{1, i}+r_{2, i}+r_{3, i} mod 2, for i=1 to n, are used as a sequence of n items of share information by the (2, 3) type RSS stored in a decomposed share value storage apparatus to store a sequence of share values obtained (distributed) by (2, 3) type RSS using modulo 2 arithmetic;
stores the computation results in a share value storage apparatus to store share values obtained (distributed) by (2, 3) type RSS using modulo of power of 2 arithmetic.
According to yet another aspect of the present invention, there is provided a non-transitory computer-readable recording medium storing therein the above program, such as a semiconductor memory such as random access memory (RAM), a read only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a universal serial bus (USB) device, and solid state drive (SSD), or a storage device such as a Hard Disk Drive(HDD), a Compact Disc (CD), or Digital Versatile Disc (DVD) and so forth.
According to the present invention, bit decomposition and/or bit combining can be executed with less communication amount to make secure computation more efficient.
Still other features and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description in conjunction with the accompanying drawings wherein only example embodiments of the invention are shown and described, simply by way of illustration of the best mode contemplated of carrying out this invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.
Example embodiments will be described with reference to drawings. According to the method of the above described NPL 2, sharing of r3 is performed in the above described Procedure 1. A method for executing this processing without communication will be described.
Suppose that sharing of a value is performed by using r1, r2, and r3 satisfying r=r1+r2+r3 mod p as shares.
When generating shares related to ri (i=1, 2, 3) satisfying r=r1+r2+r3 mod p, the value obtained by setting all the values to zero other than a portion relating ri of share information of r=r1+r2+r3 mod p is the share information of ri.
Suppose that the apparatus 1 retains (r2, r3), the apparatus 2 retains (r3, r1), and the apparatus 3 retains (r1, r2).
For example, if all other than a portion relating to r1 are set to zero, the apparatus 1 will possess (0, 0), the apparatus 2 will possess (0, r1), and the apparatus 3 will possess (r1, 0), which can be made share information of r1.
The fact that the apparatuses 2 and 3 retain r1 itself has no influence on confidentiality. This is because they are values that can be grasped originally. Similarly, for r2 and r3, the share information can be obtained without communicating among apparatuses.
The reason that s is added in the above described Procedure 3, i.e., r12+r3+s mod 2{circumflex over ( )}n, according to the method according to NPL 2, is to obtain r12+r3 mod p, by the secret computation of mod 2{circumflex over ( )}n.
In the case of s=1, if r12+r3=r′+p, where p=2{circumflex over ( )}n−1, then the following holds:
r12+r3+s mod 2{circumflex over ( )}n=r′+p+1 mod 2{circumflex over ( )}n=r′+2{circumflex over ( )}n mod 2{circumflex over ( )}n=r′ mod 2{circumflex over ( )}n.
In the case of s=0, if it is assumed that r12+r3=r′, then r12+r3+s mod 2{circumflex over ( )}n=r′ mod 2{circumflex over ( )}n.
From above, irrespective of the value of s, the computation result of the above described Procedure 3 is r12+r3 mod 2{circumflex over ( )}n.
However, if 2 n is used as p, the processing (the above described Procedure 2) that is executed when r12+r3 exceeds 2{circumflex over ( )}n is unnecessary.
<Modes>
The following describes the bit decomposition method with the above described modification added as one of modes of the present invention.
<Procedure 1>
Execute sharing of r12=r1+r2 mod 2{circumflex over ( )}n.
<Procedure 2>
Generate share of r3 on each apparatus.
<Procedure 3>
Execute secret computation of a full adder for each bit from a lower digit to compute r12+r3+s mod 2{circumflex over ( )}n.
The following evaluates a communication amount of the above processing.
Let r1, r2, and r3 satisfying w=r1+r2+r3 mod 2{circumflex over ( )}n be randomly selected and be stored as follows.
(r1, r2) is stored as a share value of w in the apparatus 1.
(r2, r3) is stored as a share value of w in the apparatus 2.
(r3, r1) is stored as a share value of w in the apparatus 3.
<Communication Amount of Procedure 1>
Distribution of r1+r2 is performed by the apparatus 1. First, the apparatus 1 computes r12=r1+r2 mod 2{circumflex over ( )}n and randomly selects r12A and r12B satisfying r12A+r12B=r12 mod 2{circumflex over ( )}n.
Next, the apparatus 1 sends r12A and 12B to the apparatus 2 and the apparatus 3, respectively.
At this time, the apparatus 1 obtains (r12B, r12A) as a share value of r12,
the apparatus 2 obtains (r12A, 0) as a share value of r12, and
the apparatus 3 obtains (0, r12B) as a share value of r12.
In this process, 2n bit communication is performed.
<Communication Amount of Procedure 2>
As described above, share information of r3 can be generated without communication.
<Communication Amount of Procedure 3>
The secure computation of an full adder requires one AND operation to calculate carry of each digit. Therefore, in the case of addition of n digits, communication of 3*(n−1) bits is required.
As a result, it can be seen that the bit decomposition can be calculated with the communication amount of 5n−3 bits. The following describes an example for explaining how to divide the computation result into bit units by processing of an adder.
The computation process of decomposition with be described for p=8, r=6 (110 in binary representation), r1=3 (011 in binary representation), r2=2 (010 in binary representation), r3=1 (001 in binary representation).
Let j-th digit of r_i from a lowest digit be ri_j, j-th digit of r1r2 mod 8 be r12_j, and j-th digit of r1+r2+r3 mod 8 be r123_j.
Next, a procedure for computing
r12+r3 mod 8=5+1 mod 8=6
from the lowest digit will be described.
<First Digit>
Computation of the first digit is as follows:
r123_1=r12_1 XOR r3_1=0 XOR 1 XOR 1=0,
where XOR is a bitwise exclusive OR.
Carry with respect to the computation of the first digit is as follows:
c1=r12_1 AND r3_1=1 AND 1=1
(In the first digit, there is no carry (carry) from a lower digit.)
<Second Digit>
Computation of the second digit is as follows:
r123_2=r12_2 XOR r3_2 XOR c1=0 XOR 0 XOR 1=1
Carry with respect to the computation of the second digit is as follows:
c2=c1 XOR (1 XOR r12_2 XOR r3_2) AND (r3_2 XOR c1)=1 XOR (1 XOR 0 XOR 0) AND (0 XOR 1)=0
<Third Digit>
Computation of the third digit is as follows:
r123_3=r12_3 XOR r2_3 XOR c2=1 XOR 0 XOR 0=1
As described above, it is possible to compute the value obtained by decomposing each digit bit by bit, with one AND processing, as with 123_1=0, r123_2=1, and r123_3=1. This process can be executed by secure computation. The result of the secure computation is a share value of the value obtained by decomposition for each bit.
In the above case, as (2, 3) threshold type RSS,
the apparatus 1 holds (r1, r2),
the apparatus 2 holds (r2, r3), and
the apparatus 3 holds (r3, r1), with the value w given as follows:
w=r1+r2+r3 mod p.
However, the present invention is applicable as long as it is a (2, 3) threshold type RSS that holds information corresponding to two different values among three values of r1, r2, and r3. For example, the apparatus 2 may hold (r2+r3, r3) instead of (r2, r3), or even a method can me also implemented in which the apparatus 2 holds (r2−r3, r2+r3), and so forth, as long as a secure computation is equipped with addition, multiplication and constant.
Alternatively, at first, r12=r1+r2 mod 2{circumflex over ( )}n is calculated by secure computation, and then operation on r12+r3 may be executed by secure computation a full adder. When using this method, the communication amount for calculating r12 is 3n bits, which is rather inefficient as compared with a case where the apparatus 1 distributes, but the total communication amount is 6n−3 bits.
When computation of r1+r2 is performed by secure computation of a full adder, there is no need to perform computation for a carry generated from the most significant digit, so computation on r12 can be executed by a communication amount of 3 n−3 bit. In this case, it is possible to execute bit decomposition with the communication amount of 6n−6 bits.
These variations are also more efficient than the method according to NPL 2.
Also, if both processing (r12=r1+r2 mod 2{circumflex over ( )}n and r12+r3 mod 2{circumflex over ( )}n) are to be executed using secure computation of a full adder, it is possible to use a mechanism for giving tolerance against fraud on the secure computation method using (2, 3) type RSS as described in NPL 3.
Furthermore, it is also possible to create share information for a combined value from bit decomposed share information. Carry computation for each carry from a low order digit to a high order digit is executed by secure computation and when carry computation for the entire digits is finished, the secure computation result of each digit are combined.
In this method, since there is no subject (party) holding information equivalent to r1+r2 mod 2{circumflex over ( )}n, both r12=r1+r2 mod 2{circumflex over ( )}n, and r12+r3 mod 2{circumflex over ( )}n are computed by secure computation of a full adder.
When computation of the full adder is executed sequentially from a lower digit, n−1 AND operations are generated. As a result, the number of times of communication is n−1. In order to reduce this number, a carry save adder may be used, in which the number of AND operations increases but a depth of the circuit can be made shallow.
Configuration and operation of a first embodiment of the present invention will be described with reference to the drawings.
In the first embodiment, when sharing of w is performed by a (2, 3) type RSS scheme using r1, r2, and r3 which are randomly selected to satisfy w=r1+r2+r3 mod 2{circumflex over ( )}n, one apparatus distributes r12=r1+r2 mod 2{circumflex over ( )}n and executes r12+r3 mod 2{circumflex over ( )}n by using secure computation of a full adder, thereby generating bit decomposed share information.
In the first example embodiment, there are provided three sets of apparatuses, wherein the apparatuses 100, 200, and 300 in
The share value storage apparatus 100 includes a first share value storage unit 101 and a second share value storage unit 102. The first share value storage unit 101 and the second share value storage unit 102 store respectively share values (first share and second share) in such a way that it can be understood which values out of the three values used for generating share information by the (2, 3) type RSS scheme are used and how the values are processed to obtain the stored share value.
The decomposed share value storage apparatus 200 includes a first decomposed share value storage unit 201 and a second decomposed share value storage unit 202. The first decomposed share value storage unit 201 and the second decomposed share value storage unit 202 store respectively the share information (first share value and second share value) in such a way that it can be understood which share values out of the three values used for generating share information by the (2, 3) type RSS scheme are used and how the values are processed to obtain the stored share information.
The bit decomposition secure computation apparatus 300 includes an addition sharing unit 301, a partial share information extraction unit 302, and a full adder secure computation unit 303. The bit decomposition secure computation apparatus 300 reads share values stored in the first share value storage unit 101 and the second share value storage unit 102 of the share value storage apparatus 100, communicates with another bit decomposition secure computation apparatus 300 (not shown), and stores information (bit decomposed share value) in the first decomposed share value storage unit 201 and the second decomposed share value storage unit 202 of the decomposed share value storage apparatus 200.
The addition sharing unit 301, using two indices out of the three values constituting share information by (2, 3) type RSS, as inputs, reads share value(s) stored in the share value storage apparatus 100. If the share value storage apparatus 100 stores share values of both two indices, the addition sharing unit 301 generates share information by the (2, 3) type RSS with respect to a sum of the share values of the two indices and sends the generated share information to the addition sharing units 301 of other two apparatuses (not shown).
The partial share information extraction unit 302, using one index out of the three values constituting share information by (2, 3) type RSS scheme, as input, reads the value stored in the share value storage apparatus 100, and generates share information obtained by setting values to zero except for one of the three values constituting the share information by (2, 3) type RSS scheme.
The full adder secure computation unit 303 performs addition processing using secure computation of a full adder on the share information by (2, 3) type RSS generated and distributed by the addition sharing unit 301 and the share information by (2, 3) type RSS scheme generated by the partial share information extraction unit 302, and stores the value obtained by combining the share information of the computation result for each bit obtained for each bit in the decomposed share value storage apparatus 200.
In the operation of the first example embodiment,
r_ij=r_i+r_j mod 2{circumflex over ( )}n is shared, and
addition of r_ij and r_k is executed by secure computation of a full adder.
Any combination of i, j, and k may be used as long as i, j and k are values different to each other and selected from a combination of values 1, 2 and 3.
The following processing is executed by 3 sets of share value storage apparatuses 100, decomposed share value storage apparatuses 200, and bit decomposition secure computation apparatuses 300.
First, each addition sharing unit 301 decides whether or not the share value storage apparatus 100 associated with the bit decomposition secure computation apparatus 300 stores information on r_i and r_j. When stored, each addition sharing unit 301 computes r_ij=r_i+r_j mod 2{circumflex over ( )}n and then sends the computed result to the addition sharing unit 301 of the other two bit decomposition secure computation apparatuses 300. After that, each addition sharing unit 301 outputs the share information of r_ij (Step A1).
Next, the partial share information extraction unit 302 produces partial share information in which values other than the portion related to r_k are set to 0 from the values stored in the share value storage apparatus 100 (Step A 2).
Next, the full adder secure computation 303 executes addition processing using secure computation of a full adder with respect to the share information of r_ij and the share information of r_k, and then stores a sequence of the results in the decomposed share value storage apparatus 200 (Step A3).
The following describes configuration and operation of a second example embodiment of the present invention with reference to the drawings.
In the second example embodiment, when w is shared by (2, 3) type RSS scheme using r1, r2, and r3 satisfying w=r1+r2+r3 mod 2{circumflex over ( )}n,
r12=r1+r2 mod 2{circumflex over ( )}n is computed by secure computation of a full adder, and
r12+r3 mod 2{circumflex over ( )}n is computed from lower order bits by secure computation of a full adder.
There are provided three sets of apparatuses, where apparatuses 100, 200, and 300 in
The share value storage apparatus 100 includes a first share value storage unit 101 and a second share value storage unit 102. The first share value storage unit 101 and the second share value storage unit 102 store share values in such a way that it can be understood which values out of the three values used for generating share information by (2, 3) type RSS are used and how the values are processed to obtain the stored share value.
The decomposed share value storage apparatus 200 includes a first decomposed share value storage unit 201 and a second decomposed share value storage unit 202. The first decomposed share value storage unit 201 and the second decomposed share value storage unit 202 store the values (bit decomposed share values) in such a way that it can be understood which values out of the three values used for generating share information by (2, 3) type RSS are used and how the values are processed to obtain the stored share value.
The bit decomposition secure computation apparatus 300 includes a partial share information extraction unit 302 and a full adder secure computation unit 303.
The bit decomposition secure computation apparatus 300A reads values stored in the share value storage apparatus 100, communicates with other two bit decomposition secure computation apparatuses 300A, and stores information in the decomposed share value storage apparatus 200.
The partial share information extraction unit 302 reads, using the index of one of the three values constituting share information by (2, 3) type RSS scheme, as an input, values stored in the share value storage apparatus 100, and generates share information obtained by setting values to zero except for one of the three values constituting the share information by (2, 3) type RSS.
The full adder secure computation apparatus 303A, using 3 sets of share information by the (2, 3) type RSS generated by the partial share information extraction unit 302 as inputs, executes secure computation of a full adder from low order bit, for the three values, and stores the share information of the computation result for each bit in the decomposed share value storage apparatus 200.
In the share value storage apparatus 100, there are stored share values of n bit value r to be shared that have been obtained by applying (2, 3) type RSS scheme using r_1, r_2, and r_3, which satisfy r=r_1+r_2+r_3 mod 2{circumflex over ( )}n.
In the operation of the second example embodiment, r_ij=r_i+r_j mod 2{circumflex over ( )}n is executed by secure computation of a full adder, and
r_ij+r_k mod 2{circumflex over ( )}n is executed by secure computation of a full adder, where i, j, and k are values different to each other and selected from a combination of values 1, 2 and 3.
The following processing is executed by the three sets of share value storage apparatuses 100, decomposed share value storage apparatuses 200, and bit decomposition secure computation apparatuses 300A.
First, the partial share information extraction unit 302 outputs partial share information in which values other than the portion related to r_i are regarded as 0 from the values stored in the share value storage apparatus 100. (Step B1)
Next, the partial share information extraction unit 302 outputs partial share information in which values other than the portion related to r_j are regarded as 0 from the values stored in the share value storage apparatus 100. (Step B2)
Next, the partial share information extraction unit 302 outputs partial share information in which values other than the portion related to r_k are regarded as 0 from the values stored in the share value storage apparatus 100. (Step B3)
Next, the full adder secure computation 303 executes secure computation of a full adder in descending order of the least significant bit with respect to the share information of r_i and the share information of r_j, and outputs a sequence of the results as the share information of r_ij. (Step B4)
Next, the full adder secure computation 303 executes secure computation of a full adder with respect to the share information of r_ij and the share information of r_k, and stores a sequence of the results in the decomposed share value storage apparatus 200. (Step B5).
The following describes a configuration and operation of a third example embodiment of the present invention with reference to the drawings.
In the third example embodiment, with respect to i=1, . . . , N, when a bit w_i is shared by (2, 3) type RSS using r_{1, i}, r_{2, i}, r_{3, i} satisfying w_i=r_{1, i}+r_{2, i}+r_{3, i} mod 2, where w_i, r_{1, i}, r_{2, i}, and r_{3, i} indicate respectively an i-th digit bit of w, r1, r2, and r3, bit combining is performed by executing by secure computation of a full adder,
r12=r_{1,n}∥ . . . ∥r_{1,1}+r_{2,n}∥r_{2,1} mod 2{circumflex over ( )}; and
r12=r12+r_{3,n}∥ . . . ∥r_{3,1} mod 2{circumflex over ( )}n,
where a symbol ∥ is a bit concatenation operator.
There are provided three sets of apparatuses, where apparatuses 100, 200, and 400 in
The share value storage apparatus 100 includes a first share value storage unit 101 and a second share value storage unit 102. The first share value storage unit 101 and the second share value storage unit 102 store share values in such a way that it can be understood which values out of the three values used for generating share information by (2, 3) type RSS scheme are used and how the values are processed to obtain the stored share value.
The decomposed share value storage apparatus 200 includes a first decomposed share value storage unit 201 and a second decomposed share value storage unit 202. The first decomposed share value storage unit 201 and the second decomposed share value storage unit 202 store share values in such a way that it can be understood which values out of the three values used for generating share information by (2, 3) type RSS are used and how the values are processed to obtain the stored share value.
The bit combining secure computation apparatus 400 includes a partial share information extraction unit 302, and a full adder secure computation unit 303.
The bit combining secure computation apparatus 400 reads values stored in the decomposed share value storage apparatus 200, communicates with other binding secure computation apparatuses 400 and stores information in the share value storage apparatus 100.
The partial share information extraction unit 302 extracts, using an index of one of three values constituting share information by (2, 3) type RSS, as an input, reads the value stored in the decomposed share value storage apparatus 200 and generates share information obtained by setting values to zero except for one of the three values constituting the share information by (2, 3) type RSS.
The full adder secure computation unit 303 receives, as inputs, 3 sets of share information by the (2, 3) type RSS generated by the partial share information extraction unit 302, executes secure computation of a full adder, from low order bit of respective three values, and then stores share information of the computation result for each bit in the share value storage apparatus 100.
In the operation of the third example embodiment,
r_ij=r_{i,n}∥ . . . ∥r_{i,1}+r_{j,n}∥ . . . r_{j,1} mod 2 n
is executed by secure computation of a full adder, and
r_ij+r_{k,n}∥ . . . r_{k,1} mod 2{circumflex over ( )}n
is executed by secure computation of a full adder, where indices i, j, and k are values different to each other and selected from a combination of values 1, 2, and 3.
The following processing is executed by the three sets of share value storage apparatuses 100, decomposed share value storage apparatuses 200, and bit combining secure computation apparatuses 400.
First, the partial share information extraction unit 302 outputs partially decomposed share information in which values other than a portion related to r_{i, n}∥ . . . ∥r_{i, 1} are regarded as 0 from the values stored in the decomposed share storage apparatus 200 (Step C1).
Next, the partial share information extraction unit 302 extracts partially decomposed share information in which values other than a portion relating to r_{j, n}∥ . . . r_{j, 1} are regarded as 0 from the values stored in the decomposed share value storage apparatus 200 (Step C2).
Next, the partial share information extraction unit 302 extracts partially decomposed share information in which values other than a portion relating to r_{k, n}∥ . . . ∥r_{k, 1} are regarded as 0 from the values stored in the decomposed share value storage apparatus 200 (Step C3).
Next, the full adder secure computation unit 303 performs secure computation of a full adder for partially decomposed share information of r_{i, n}∥ . . . ∥r_{i, 1} and partially decomposed share information of r_{j, n}∥ . . . ∥r_{j, 1} and outputs a sequence of the results, as share information of r_ij (Step C4).
Next, the full adder secure computation unit 303 performs secure computation of a full adder for the share information of r_ij and the partially decomposed share information of r_{k, n}∥ . . . ∥r_{k, 1}, and stores the result in the share value storage apparatus 100 (Step C5).
The bit decomposition secure computing systems 10 and 10A in respectively described in the first and second embodiments may be implemented on a computer system as illustrated in
According to the first and second example embodiments, it is possible to convert share value shared by (2, 3) type RSS into a value in which each bit is shared by (2, 3) type RSS.
According to the third example embodiment, it is also possible to execute the reverse processing efficiently.
With the processing, it becomes possible to efficiently execute such complex processing that combines secure computation of values and secure computation of bits.
The disclosure of the aforementioned NPLs 1-3 is incorporated by reference herein. The particular exemplary embodiments or examples may be modified or adjusted within the scope of the entire disclosure of the present invention, inclusive of claims, based on the fundamental technical concept of the invention. In addition, a variety of combinations or selections of elements disclosed herein may be used within the concept of the claims. That is, the present invention may encompass a wide variety of modifications or corrections that may occur to those skilled in the art in accordance with the entire disclosure of the present invention, inclusive of claims and the technical concept of the present invention.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2017/018745 | 5/18/2017 | WO |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2018/211675 | 11/22/2018 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
8077862 | Schneider | Dec 2011 | B2 |
9715595 | Patey et al. | Jul 2017 | B2 |
9906505 | Peeters et al. | Feb 2018 | B2 |
20030044004 | Blakley | Mar 2003 | A1 |
20070206784 | Blakley | Sep 2007 | A1 |
20090136024 | Schneider | May 2009 | A1 |
20150347781 | Patey et al. | Dec 2015 | A1 |
20160218862 | Ikarashi | Jul 2016 | A1 |
20170012948 | Peeters et al. | Jan 2017 | A1 |
20170278433 | Furukawa | Sep 2017 | A1 |
20170324554 | Tomlinson | Nov 2017 | A1 |
20180158377 | Ikarashi et al. | Jun 2018 | A1 |
20180270057 | Furukawa | Sep 2018 | A1 |
20210090072 | Sewell | Mar 2021 | A1 |
Number | Date | Country |
---|---|---|
3 091 690 | Nov 2016 | EP |
2015053185 | Apr 2015 | WO |
2016042693 | Mar 2016 | WO |
2016208437 | Dec 2016 | WO |
2017038761 | Mar 2017 | WO |
Entry |
---|
Koji Chida et al., “A Lightweight Three-party Secure Function Evaluation with Error Detection and Its Experimental Result”, Information Processing Society of Japan, Sep. 2011, pp. 2674-2685, vol. 52, No. 9. |
Dai Ikarashi et al., “O(I) Bits Communication Bit Decomposition and O(|p′|) Bits Communication Modulus Conversion for Small k secret-sharing-based Secure Computation”, Computer Security Symposium 2013, Oct. 21-23, S013, pp. 785-792. |
Toshinori Araki et al., “High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority”, CCS '16 Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pp. 805-817. |
Toshinori Araki et al., “Secure Three-Party Computation with Low Communication and Its Implementation via Bit-Slicing”, Abstracts of 2017 Symposium on Cryptography and Information Security (SCIS 2017), Jan. 24, 2017, pp. 1-7, 2D3-5. |
Martine De Cock et al., “Efficient and Private Scoring of Decision Trees, Support Vector Machines and Logistic Regression Models based on Pre-Computation”, IEEE Transactions on Dependable and Secure Computing, [Online], 2017, 03, 07, [Retrieved on Aug. 9, 2017.] Retrieved from the Internet <URL:http://doi.org/10.1109/TDSC.2017.2679289>. |
Written Opinion for PCT/JP2017/018745, dated Aug. 22, 2017. |
International Search Report for PCT/JP2017/018745, dated Aug. 22, 2017. |
Number | Date | Country | |
---|---|---|---|
20210157955 A1 | May 2021 | US |