The present invention relates to a secure computation device that performs secure computation and a client device that requests secure computation.
<Secure Computation>
Secure computation is a technique to perform operations by a specified function while maintaining the privacy of data. For example, Patent Literature 1 discloses a secure computation control device using homomorphic encryption, which is not limited to particular operations.
<Cloud FPGA>
The provision of a computing instance equipped with a field programmable gate array (FPGA) has become popular as a cloud service. For example, Amazon EC2 F1 may be pointed out. In this cloud service, an FPGA is dynamically reconfigured from an application, and an operation that becomes a bottleneck in the application is offloaded to the FPGA, so that processing can be accelerated.
<PUF>
A physical unclonable function (PUF) is a technique to generate an ID that is unique to a device utilizing variations in manufacturing of large scale integration (LSI). For example, Patent Literature 2 discloses an ID generation technique utilizing the fact that transient transitions of outputs vary depending on manufacturing variations even for the same logic circuit. Generally, such IDs utilizing manufacturing variations include errors each time an ID is generated. As a technique for correcting and making adjustments for these errors so as to generate the same ID each time, there is a fuzzy extractor of Non-Patent Literature 1.
Patent Literature 1: JP 2016-136190 A
Patent Literature 2: WO 2011/086688 A1
Non-Patent Literature 1: Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data, Eurocrypt 2004 pp. 523-540
Existing secure computation involves operations with high computational costs such as homomorphic encryption. Therefore, a case in which secure computation is applied to light processing such as addition, subtraction, and comparison has feasibility. However, existing techniques are not suitable for secure computation for processing with high computational costs such as recognition processing on images, flexible database searching, or compression.
It is an object of the present invention to provide a device that accelerates processing with high computational costs by hardware processing and also realizes secure computation.
A secure computation device according to the present invention includes
a host computation unit; and a logic circuit device in which a circuit configuration of a logic circuit can be changed by circuit information,
wherein the host computation unit forms a plurality of logic circuits in the logic circuit device, using the circuit information associated with an application, and
wherein the logic circuit device in which the plurality of logic circuits are formed includes
a key computation circuit to generate a pair of a public key and a secret key using an initial value, acquire a user secret key encrypted with the public key, and decrypt the encrypted user secret key with the secret key;
a decryption operation circuit to acquire content encrypted with the user secret key, and decrypt the encrypted content with the decrypted user secret key;
a content operation circuit to perform processing associated with the application on the decrypted content so as to generate processed content, which is a processing result of the content;
an encryption operation circuit to encrypt the processed content with the user secret key; and
an output circuit to output the encrypted processed content.
A secure computation device of the present invention includes a host computation unit and a logic circuit device, so that it is possible to provide a device that accelerates processing with high computational costs by hardware processing and also realizes secure computation.
<Notations>
Notations to be used in a first embodiment hereinafter will be described.
PUF_KeyGen(IV)→(HD, Kp, Ks) (Formula 101)
Formula 101 is processing using the PUF, fuzzy extractors, and a key algorithm of public key cryptography. Formula 101 indicates processing to generate auxiliary data HD, a public key Kp, and a secret key Ks, using an initial value IV.
PRF: Denotes a pseudorandom function, for example, SHA-256.
Zn: Residue class group
×: Elliptic scalar multiplication
+: Point addition on an elliptic curve
Enc(Kp, mk) (Formula 102)
Formula 102 indicates encryption of a secret key mk with the public key Kp.
PUF_KeyRep (IV, HD)→Ks (Formula 103)
Formula 103 indicates processing to generate a secret key Ks, using the PUF, fuzzy extractors, and the key algorithm of public key cryptography. Formula 103 signifies performing regeneration processing by the PUF and fuzzy extractors, using an initial value IV and auxiliary data HD, so as to generate Ks.
Dec(Ks, Cmk) (Formula 104)
Formula 104 indicates processing to decrypt Cmk with the secret key Ks.
E(mk, P) (Formula 105)
Formula 105 indicates processing to encrypt P with the secret key mk in common key cryptography.
D(mk, Ca) (Formula 106)
Formula 106 indicates processing to decrypt Ca with the secret key mk in common key cryptography.
Description of Configuration
Referring to
The high-speed computation circuit 20 is realized by the FPGA 405 of the host computer 401. The CPU 404 that processes the binary 402 of the application loads a binary 403, which is different for each application, of the FPGA 405 into the FPGA 405 to change circuits that are configured in the FPGA. Operations are accelerated on a per application basis by the circuits that are configured in the FPGA 405.
The fixed processing circuit 21 and the dynamic processing circuit 22 that are included in the high-speed computation circuit 20 of
The dynamic processing circuit 22 is a circuit for operations to be accelerated and the circuit configuration changes for each application. That is, in the dynamic processing circuit 22, the operations to be accelerated vary with the application to be executed by the host computation unit 10. As processing, compression processing, search query processing, and recognition processing in a neural network may be pointed out.
Description of Operation
Operation of the secure computation device 1 of
Generally, this transfer is performed using direct memory access (DMA). The data transferred to the local storage device 20M is transferred in designated units to the dynamic processing circuit 22 via the fixed processing circuit 21. The dynamic processing circuit 22 executes specified processing Func at high speed, and transfers a processing result to the local storage device 20M via the fixed processing circuit 21. Finally, an operation result is transferred from the local storage device 20M to the host storage unit 10M using DMA.
The first embodiment provides means for realizing secure computation in acceleration.
The processing flow of
Specifically, this is as follows: the key computation circuit 222 includes an input circuit 222a, a PUF circuit 222b, a fuzzy extractor 222c, a key pair processing circuit 222d, and an output circuit 222e. Note that PUF is a function generally called a physical unclonable function.
In
<Step S11>
The registration phase will be described. The transmission control unit 501a of the client device 406 transmits circuit information 12 and an initial value IV to the server 407, which is the secure computation device 1.
(1) The circuit information 12 is information used for generating the binary 403 of the FPGA 405. The circuit information 12 is design information before placement and wiring. As mentioned in the description of
(2) The initial value IV is a value used for generating a key pair of public key cryptography.
A server application configures the circuits of the dynamic processing circuit 22 in the FPGA 405, as illustrated in
A key pair of public key cryptography is generated as described below. The transmission control unit 501a of the client device 406 transmits the initial value IV together with the circuit information 12 to the server 407. The key computation circuit 222 of the dynamic processing circuit 22 receives the initial value IV via the host computation unit 10, and generates a key pair of public key cryptography using the initial value IV.
That is, the key computation circuit 222 computes Formula 1.
PUF_KeyGen (IV)→(HD, Kp, Ks) (Formula 1)
In Formula 1, HD denotes auxiliary data necessary for regenerating an identifier ID using the PUF function such as a fuzzy extractor, and Kp and Ks denote a public key and a secret key in public key cryptography, respectively.
The generation of a secret key Ks and a public key Kp in elliptic ElGamal encryption will be described as an example below.
The PUF circuit 222b and the fuzzy extractor 222c of the key computation circuit 222 take as input an initial value IV, and output an identifier ID and auxiliary data HD necessary for regeneration.
Then, the key pair processing circuit 222d compresses the identifier ID by a pseudorandom function PRF to generate a secret key Ks.
That is, the key pair processing circuit 222d computes Formula 2.
PRF(ID)→Ks(Ks ∈ Zn) (Formula 2)
Note that E(K) denotes an elliptic curve on a field K, G ∈ E(K) denotes a base point, and n denotes order of G. The key pair processing circuit 222d generates a public key Kp based on the following Formula 3.
Ks×G→Kp (Formula 3)
The key generation method is not limited to the above method. Any method that uniquely generates Kp and Ks using the identifier ID may be used.
<Step S12>
The host computation unit 10 of the server 407 transmits the public key Kp and one of the auxiliary data HD and the identifier ID to the client device 406 via the communication interface 410. In
<Step S13>
The encryption control unit 501b acquires the public key Kp from the secure computation device 1 (step S12), encrypts a secret key mk with the public key Kp, and transmits encrypted data Cmk representing the encrypted secret key mk to the secure computation device 1. That is, the encryption control unit 501b of the client device 406 transmits to the server 407 the encrypted data Cmk resulting from encrypting the secret key mk, which is used for secure computation, with the public key Kp.
This is expressed as Cmk=Enc(Kp, mk).
The encrypted data Cmk in the example of elliptic ElGamal encryption is as described below.
Let the secret key mk be an x coordinate, and MK be a message resulting from obtaining a corresponding y coordinate and converting the coordinates into a point on an elliptic curve.
Enc(Kp, mk)=(rG, r×Kp+MK)→(C1, C2)=Cmk (Formula 4)
Note that r ∈ Zn is a random number. The transmission control unit 501a of the client device 406 transmits the auxiliary data HD (or the identifier ID) and Cmk to the server 407. The processing up to here is the registration phase.
The operational phase will now be described.
<Step S21>
The client device 406 makes a request for a secure operation to the server 407. As the request for a secure operation, the transmission control unit 501a of the client device 406 transmits the identifier ID received in step S12 to the server 407. As the request for a secure operation, the client device 406 requests the server 407 that the encrypted data Cmk transmitted in step S13 in the registration phase be deployed by the high-speed computation circuit 20.
<Step S22>
The host computation unit 10 of the server 407 loads the initial value IV and the auxiliary data HD that are associated with the identifier ID into the key computation circuit 222 of the high-speed computation circuit 20. The key computation circuit 222 regenerates the identifier ID. The secret key Ks is regenerated from the generated identifier ID. That is, the key computation circuit 222 computes Formula 5.
PUF_KeyRep(IV, HD)→Ks (Formula 5)
The key computation circuit 222 decrypts Cmk using the secret key Ks to acquire the secret key mk, and deploys the secret key mk into a storage area of the decryption operation circuit 224. That is, the key computation circuit 222 computes Formula 6 to deploy the secret key mk into the storage area of the decryption operation circuit 224.
Dec(Ks, Cmk)=C2−Ks×C1→mk (Formula 6)
Note that the area in the decryption operation circuit 224 in which the secret key mk is stored is designed to be configured such that the area cannot be directly accessed from the host computation unit 10. For example, it is stored in a register in the FPGA 405 from which a read cannot be performed.
The host computation unit 10 of the server 407 notifies the client device 406 of completion of the deployment of the secret key mk. That is, the server 407 notifies the client device 406 of completion of the preparation for the operation.
<Step S23>
The encryption control unit 501b encrypts content P with the secret key mk, and transmits encrypted data Ca representing the encrypted content P to the secure computation device 1. That is, the encryption control unit 501b transmits to the server 407 the encrypted data Ca resulting from encrypting the content P to be operated on with the secret key mk. The encryption control unit 501b of the client device 406 computes Formula 7.
E(mk, P)→Ca (Formula 7)
The key computation circuit 222 acquires the content encrypted with the secret key mk, and decrypts the encrypted content with the decrypted secret key mk. Specifically, this is as follows: the decryption operation circuit 224 decrypts Ca with the secret key mk to acquire the content P.
That is, the decryption operation circuit 224 computes Formula 8.
D(mk, Ca)→P (Formula 8)
Then, the high-speed operation circuit 225, which is the content operation circuit, performs the processing Func associated with the application on the decrypted content, so as to generate processed content, which is a processing result of the content P. Specifically, this is as described below.
In the following, a processing result Q is the processed content. The high-speed operation circuit 225 performs the processing Func, to which acceleration and secure computation are to be applied, on the content P to obtain the processing result Q. That is, the high-speed operation circuit 225 computes Formula 9.
Func(P)→Q (Formula 9)
The encryption operation circuit 226 encrypts the processing result Q with the secret key mk to obtain encrypted data Cb. That is, the encryption operation circuit 226 computes Formula 10.
E(mk, Q)→Cb (Formula 10)
<Step S24>
The encryption operation circuit 226 transmits the encrypted data Cb to the client device 406 via the host computation unit 10.
<Step S25>
The decryption control unit 501c acquires the encrypted processed content from the secure computation device, and decrypts the encrypted processed content with the user secret key. Specifically, the decryption control unit 501c of the client device 406 decrypts the encrypted data Cb using the secret key mk so as to obtain the processing result Q. That is, the decryption control unit 501c computes Formula 11.
D(mk, Cb)→Q (Formula 11)
In this operational phase, the content P is treated as information transmitted from the client device 406. However, it may be configured such that information resulting from encrypting part of the content P with the secret key mk is loaded from the host storage unit 10M into the decryption operation circuit 224.
For example, searching in a database is assumed. It is assumed that there are a plurality of pieces of information encrypted with the secret key mk in the host storage unit 10M. It may be configured such that the server 407 receives a query encrypted with the secret key mk from the client device 406, and processing is triggered by the query. This query corresponds to the encrypted data Ca of step S23. The key computation circuit 222 acquires content encrypted with the secret key mk from an encrypted content storage device to store content encrypted with the secret key mk.
Specifically, this is as described below.
Referring to
The main storage device 408 corresponds to the host storage unit 10M. It is assumed that the content P can be divided into a plurality of subcontent P1 to subcontent Pn. P1 to Pn are encrypted to Ca1 to Can by the above Formula 7.
E(mk, P1)→Ca1,
E(mk, P2)→Ca2,
E(mk, Pn)→Can,
where Ca1 to Can are stored in the main storage device 408 as the database information 413. Ca1 to Can are encrypted content.
The key computation circuit 222 of the server 407 can decrypt Ca1 to Can with the secret key mk obtained by the above Formula 6.
<Specific Example of the Operational Phase>
As a more specific example, the operational phase will be described using an example in which acceleration is applied to the Smith-Waterman algorithm that calculates scores for two character strings to compute local alignments. The local alignments of base sequences TGTTACGG and GGTTGACTA are GTT-AC and GTTGAC, respectively. In the operational phase described with reference to
The client device 406 encrypts TGTTACGG and GGTTGACTA with the secret key mk, and transmits them as encrypted data Ca to the server 407. This corresponds to step S23. The high-speed operation circuit 225 to execute the processing Func executes the Smith-Waterman algorithm as the processing Func. This is processed as described below. The following processing corresponds to processing by the decryption operation circuit 224 and the high-speed operation circuit 225 of
Then, the high-speed operation circuit 225 performs matrix score calculation in the Smith-Waterman algorithm as the processing Func, and obtains GTT-AC and GTTGAC as local alignments. The encryption operation circuit 226 encrypts GTT-AC and GTTGAC, which correspond to the processing result Q, with the secret key mk so as to generate encrypted data Cb, and transmits the encrypted data Cb to the client device 406. This transmission corresponds to step S24.
The client device 406 decrypts the encrypted data Cb with the secret key mk to obtain GTT-AC and GTTGAC, which are the processing result Q. This processing corresponds to step S25.
In the example of the operational phase described above, the base sequences TGTTACGG and GGTTGACTA and the local alignment results GTT-AC and GTTGAC are not revealed on the host computer 401.
The correspondence between
(1) The input circuit 221 receives data transferred from the host computation unit 10 of the host computer 401 via the fixed processing circuit 21, and transfers the data to an appropriate circuit in the dynamic processing circuit 22.
(2) The key computation circuit 222 includes the PUF, key generation and decryption processing in elliptic ElGamal encryption, and processing of the pseudorandom function PRF, and performs the following processing in
PUF_KeyGen(IV)→(HD, Kp, Ks)
PUF_KeyRep(IV, HD)→Ks
Dec(Ks, Cmk)→mk
(3) The key storage circuit 223 stores mk and Ks that are output from the key computation circuit 222. The key storage circuit 223 may be implemented as part of the key computation circuit 222. The secret keys mk and Ks are not output to the outside of the FPGA via the fixed processing circuit 21 and are used only in the dynamic processing circuit 22.
(4) The decryption operation circuit 224 performs the following processing in
D(mk, Ca)→P
As an algorithm of D and E, AES-GCM may be pointed out as an example.
(5) The high-speed operation circuit 225 is an operation unit for accelerating processing with a high load in the application, and performs the following processing in
Func(P)→Q
In the example described above, this indicates matrix score calculation in the Smith-Waterman algorithm.
(6) The encryption operation circuit 226 performs the following processing in
E(mk, Q)→Cb
As in the case of the decryption operation circuit 224, as an algorithm of encryption E, AES-GCM may be pointed out as an example.
(7) The output circuit 227 transfers outputs of the key computation circuit 222 and the encryption operation circuit 226 to the fixed processing circuit 21. Specifically, the auxiliary data HD and the public key Kp of the key computation circuit 222 and the encrypted data Cb computed by the encryption operation circuit 226 are transferred.
Operation of the key computation circuit 222 illustrated in
In the operational phase of
The decryption of Cmk will now be described. The key pair processing circuit 222d decrypts Cmk using Ks input from the key storage circuit 223 so as to restore the secret key mk. The secret key mk is stored in the key storage circuit 223 via the output circuit 222e.
<First Variation>
A concern in the first embodiment described above is the authenticity of the public key Kp. In
When the key computation circuit 222 is implemented in the dynamic processing circuit 22 as illustrated in
When the key computation circuit 222 is implemented in the fixed processing circuit 21, the same circuit is configured as the circuit of the key computation circuit 222 each time the FPGA 405 is configured. That is, there is no change in placement and wiring. Therefore, in the same FPGA 405, the secret key Ks and the public key Kp corresponding to the same initial value IV are always the same.
Utilizing the features of the first variation, the following configuration is possible.
In this case, each of the host computers is called a node. In
That is, the key computation circuit 222-1 generates the same secret key Ks and public key Kp for the same initial value IV. This allows a pair of the secret key Ks and the public key Kp to be assigned to each VM of each node. The VM management unit 701 manages these keys as a key list 703.
In
The initial values and the public keys generated from the initial value are stored as key information in association with authenticity information for guaranteeing authenticity in a key information storage device. Specifically, this is as described below. Electronic signature can be performed on the key list 703 by a reliable third party, so that the authenticity of the public keys of the key list 703 can be guaranteed. The electronic signature is the authenticity information. An auxiliary storage device 730 of a VM management device 700 to be described later with reference to
Referring to
<Second Variation>
Referring to
The second variation is characterized in that the client device 406 can verify the public key Kp acquired in step 512a of
The authentication value Ts is a first authentication value. An authentication value Tc, to be described later, acquired by the client device 406 by computation is a second authentication value.
When key information is applied as input data, the transmission control unit 501a of the client device 406 transmits to the server 407, which is the secure computation device 1, an authentication program that outputs an authentication value for the key information.
In a specific example to be described later, the authentication program is a message authentication code (MAC) function that uses an embedded key Kemb. The key information that is applied to the MAC function as input data is a public key Kp. The MAC function takes as input the public key Kp and outputs an authentication value T.
This relationship is expressed as
MACKemb(Kp)=T.
Note that, in
The encryption control unit 501b of the client device 406 acquires the first authentication value Ts together with the public key Kp from the server 407. The encryption control unit 501b applies the acquired public key Kp to the same MACKemb as the MACKemb transmitted to the server 407 so as to acquire the second authentication value Tc. The encryption control unit 501b compares the first authentication value Ts with the second authentication value Tc, and if it is determined that the comparison result is correct, transmits a user secret key Cmk encrypted with the public key Kp to the server 407. The correct comparison result is, for example, Ts=Tc.
Referring to
<Step S11a>
The transmission control unit 501a transmits MACKemb, which is the authentication program, to the server 407 in addition to the circuit information 12 and the initial value IV. In the server 407, HD, Kp, and Ks are generated, as in
The key computation circuit 222 calculates the authentication value Ts as indicated below, using MACKemb received from the client device 406.
MACKemb(Kp)=Ts
<Step S12a>
The host computation unit 10 of the server 407 transmits the identifier ID, the public key Kp, and the authentication value Ts to the client device 406 via the communication interface 410.
<Step S13a>
The encryption control unit 501b obtains the identifier ID, the public key Kp, and the authentication value Ts from the secure computation device 1. The encryption control unit 501b applies the public key Kp acquired from the server 407 to the same MACKemb as the MACKemb transmitted to the server 407. That is, the encryption control unit 501b computes the following formula to acquire the second authentication value Tc.
MACKemb(Kp)=Tc
The encryption control unit 501b compares the first authentication value Ts with the second authentication value Tc. If the comparison result is determined as correct, the encryption control unit 501b encrypts a user secret key mk with the public key Kp acquired from the server 407 so as to generate Cmk, as indicated in the formula below.
Enc(Kp, mk)→Cmk
Then, the encryption control unit 501b transmits the encrypted user secret key Cmk to the server 407.
The operation thereafter is the same as in
In the second variation, the client device 406 transmits MACKemb to the server 407. The server 407 generates the authentication value Ts from MACKemb, and transmits the authentication value Ts to the client device 406. The client device 406 generates the authentication value Tc from MACKemb, and compares the authentication value Tc with the authentication value Ts. Therefore, according to the second variation, the client device 406 can verify that the public key Kp is generated in the
FPGA configured based on the circuit information 12.
<Third Variation>
Referring to
Note that “using the PUF function” means using the physical unclonable function.
Referring to
Thereafter, using mk decrypted with the secret key Ks, the server 407 decrypts the encrypted data Ca to the content P, as in
Referring to
<Step S11b>
The transmission control unit 501a transmits circuit information 12 to the server 407. The key computation circuit 222 randomly generates a key pair of a public key Kp and a secret key Ks by the following formula.
KeyGen(Random)→(Kp, Ks)
The above formula indicates that the key pair of the public key Kp and the secret key Ks is randomly generated. The identifier of the public key Kp is ID, as in
PUF_KeyGen (IV)→(HD, Kpuf1)
The key computation circuit 222 encrypts the secret key Ks using the first key information Kpuf1.
En(Kpuf1, Ks)→enc(Ks)
The above formula indicates that the secret key Ks is encrypted using the first key information Kpuf1 so as to generate enc(Ks), which is the encrypted secret key Ks.
Steps S12 and S13 are the same as in
<Step S21>
When the identifier ID is received from the client device 406, the key computation circuit 222 performs the following processing. The transmission of the identifier ID by the client device 406 is a request for processing on the encrypted data Ca. When the decryption operation circuit 224 decrypts the encrypted data Ca, the key computation circuit 222 generates second key information Kpuf2 that is the same as the first key information Kpuf1, using the PUF function. That is, the key computation circuit 222 executes the following formula to generate the second key information Kpuf2 from the auxiliary data HD. The second key information Kpuf2 is the same as the first key information Kpuf1.
PUF_KeyRep (HD)→Kpuf2
The key computation circuit 222 decrypts enc(Ks) with the second key information Kpuf2, as indicated in the following formula, to obtain the secret key Ks.
De(Kpuf2, enc(Ks))→Ks
The above formula indicates that enc(Ks) is decrypted using the second key information Kpuf2. Using the decrypted secret key Ks, the key computation circuit 222 decrypts the user secret key Cmk encrypted with the public key Kp, as indicated in the following formula.
Dec(Ks, Cmk)→mk
The processing thereafter is the same as in
In the third variation, a pair of the public key Kp and the secret key Ks is generated without using the PUF function, so that there is no need to transmit the initial value IV from the client device 406.
(1) In the first embodiment, in the operational phase of
Therefore, even if information of the host computer 401 is leaked, the input and output and intermediate values of the processing Func are not revealed.
(2) On the host computer 401, the secret key mk is managed as Cmk encrypted with the public key Kp, and Cmk is deployed only in the FPGA 405.
Therefore, even an administrator of the host computer 401 cannot violate the privacy of the secret key mk.
The embodiment including the three variations have been described above. One of the embodiment and the three variations may be partially implemented. Alternatively, two or more of the embodiments and the three variations may be implemented in combination.
The present invention is not limited to the embodiment described above, and various modifications are possible as necessary.
Ks: secret key; Kp: public key; P: content; Q: processing result; 1: secure computation device; 10: host computation unit; 10M: host storage unit; 11: VM execution unit; 20M: local storage device; 20: high-speed computation circuit; 21: fixed processing circuit; 22: dynamic processing circuit; 221: input circuit; 222: key computation circuit; 222a: input circuit; 222b: PUF circuit; 222c: fuzzy extractor; 222d: key pair processing circuit; 222e: output circuit; 223: key storage circuit; 224: decryption operation circuit; 225: high-speed operation circuit; 226: encryption operation circuit; 227: output circuit; 401, 401a, 401b: host computer; 402: binary; 403: binary; 404: CPU; 405: FPGA; 406: client device; 407: server; 408: main storage device; 409: auxiliary storage device; 410: communication interface; 412: host computation program; 501: CPU; 501a: transmission control unit; 501b: encryption control unit; 501c: decryption control unit; 501d: control program; 502: main storage device; 503: auxiliary storage device; 504: communication interface; 601: VM execution program; 700: VM management device; 701: VM management unit; 702: VM management program; 703: key list; 710: CPU; 720: main storage device; 730: auxiliary storage device; 740: communication interface
This application is a Continuation of PCT International Application No. PCT/JP2019/000294, filed on Jan. 9, 2019, which is hereby expressly incorporated by reference into the present application.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2019/000294 | Jan 2019 | US |
Child | 17318820 | US |