WO2021014611A1 - 秘密計算サーバ、証跡管理方法及びプログラム - Google Patents

秘密計算サーバ、証跡管理方法及びプログラム Download PDF

Info

Publication number
WO2021014611A1
WO2021014611A1 PCT/JP2019/029029 JP2019029029W WO2021014611A1 WO 2021014611 A1 WO2021014611 A1 WO 2021014611A1 JP 2019029029 W JP2019029029 W JP 2019029029W WO 2021014611 A1 WO2021014611 A1 WO 2021014611A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
trail
calculation
secret
storage system
Prior art date
Application number
PCT/JP2019/029029
Other languages
English (en)
French (fr)
Inventor
光 土田
一真 大原
俊則 荒木
拓磨 天田
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2019/029029 priority Critical patent/WO2021014611A1/ja
Priority to US17/628,953 priority patent/US20220261507A1/en
Priority to JP2021534483A priority patent/JP7409380B2/ja
Publication of WO2021014611A1 publication Critical patent/WO2021014611A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present invention relates to a secret calculation server, a trail management method and a program.
  • BC blockchain
  • Patent Document 1 discloses a secret calculation system capable of performing data processing while keeping personal information secret.
  • Patent Document 2 Electronic certification in Patent Document 2 that the reliability of data provided from a first terminal device such as a server to a second terminal device such as a client can be ensured by using a trail registered in a blockchain.
  • the system is disclosed.
  • the first terminal device of Patent Document 1 includes a trail registration means for registering information and data related to the first terminal device in the blockchain as a trail.
  • the first terminal device includes a trail providing means for transmitting a trail to the second terminal device. Then, the second terminal device determines that the data is reliable when the trail provided by the trail providing means is registered in the blockchain.
  • Non-Patent Document 1 discloses a decentralized calculation platform that allows various parties to jointly calculate data while keeping the data private by combining the above MPC and BC. There is.
  • Non-Patent Document 2 discloses a configuration for ensuring fairness (Fairness) between parties in MPC by combining the above MPC and BC.
  • Patent Document 1 By using the configuration as in Patent Document 1, it is possible to calculate with a secret calculation system while concealing the data and pass only the calculation result to the user terminal on the data user side.
  • a configuration such as Patent Document 1 in which personal information contained in data is kept secret and various data processing is performed without restoring the data inappropriate data is intentionally generated on the registrant terminal on the data providing side. May be registered.
  • the data is modified so that the statistical result calculated by the secret calculation is advantageous to itself, it is difficult to detect this in real time due to the nature of the secret calculation, and after the fact. A mechanism for verifying the correctness is required.
  • Patent Document 2 uses a method of registering trail data, which is a set of information and data related to the first terminal device, in the blockchain.
  • trail data which is a set of information and data related to the first terminal device, in the blockchain.
  • the information handled by the secret calculation system should be kept secret, and the method of Patent Document 2 cannot be adopted.
  • An object of the present invention is to provide a secret calculation server, a trail management method, and a program that can contribute to facilitating the verification of the correctness of data subject to secret calculation.
  • the data x calculated from the data x is applied to a calculation processing unit that performs a secret calculation using the data x received from the client and calculates the calculation result R, and a predetermined trail storage system.
  • a secret calculation server provided with a trail registration unit for holding a first trail data for proving the identity and a second trail data for proving the relationship between the data x and the calculation result R is provided.
  • a calculation processing unit that performs secret calculation using the data x received from the client and calculates the calculation result R, and a predetermined trail storage system of the data x calculated from the data x.
  • Received from a secret calculation server including a trail registration unit that holds a first trail data for proving the identity and a second trail data for proving the relationship between the data x and the calculation result R.
  • Create trail data to create a first trail data for proving the identity of the data x and a second trail data for proving the relationship between the data x and the calculation result R based on the data.
  • a trail storage system including a unit and a trail data management unit that manages the first and second trail data in a non-rewritable manner and provides the first and second trail data to a predetermined audit node is provided.
  • a secret calculation server provided with a calculation processing unit that performs a secret calculation using the data x received from the client and calculates the calculation result R is for proving the identity of the data x.
  • Data for calculating the first trail data and the second trail data certifying the relationship between the data x and the calculation result R is transmitted to a predetermined trail storage system, and the predetermined trail storage system Provided is a secret calculation trail management method for holding the first trail data and the second trail data. This method is linked to a specific machine called a secret calculation server that causes the predetermined trail storage system to hold the first and second trail data.
  • a second method for proving the identity of the data x from a secret calculation server including a calculation processing unit that performs a secret calculation using the data x received from the client and calculates the calculation result R.
  • Data for calculating the trail data of 1 and the second trail data certifying the relationship between the data x and the calculation result R is received, and the first trail data is based on the received data.
  • the second trail data, respectively, the first and second trail data are managed in a non-rewritable manner, and a secret calculation trail management method is provided to be provided to a predetermined audit node. ..
  • This method is linked to a specific machine called a trail storage system that creates the first and second trail data and provides them to a predetermined audit node.
  • a program for realizing the function of the secret calculation server or the trail storage system described above is provided.
  • the program is input to a computer device from an input device or from the outside via a communication interface, stored in the storage device, and drives the processor according to a predetermined step or process.
  • this program can display the processing result including the intermediate state step by step via the display device, or can communicate with the outside via the communication interface, if necessary.
  • Computer devices for this purpose typically include a processor, a storage device, an input device, a communication interface, and a display device as needed, which can be connected to each other by a bus.
  • the drawing reference reference numerals added to this outline are added to each element for convenience as an example for assisting understanding, and the present invention is not intended to be limited to the illustrated embodiment.
  • the connecting line between blocks such as drawings referred to in the following description includes both bidirectional and unidirectional.
  • the one-way arrow schematically shows the flow of the main signal (data), and does not exclude interactivity.
  • the program is executed via a computer device, which includes, for example, a processor, a storage device, an input device, a communication interface, and, if necessary, a display device.
  • this computer device is configured to be able to communicate with devices (including a computer) inside or outside the device via a communication interface regardless of whether it is wired or wireless.
  • devices including a computer
  • this computer device is configured to be able to communicate with devices (including a computer) inside or outside the device via a communication interface regardless of whether it is wired or wireless.
  • ports or interfaces at the input / output connection points of each block in the figure, they are not shown.
  • a and / or B is used to mean at least one of A and B.
  • the present invention can be realized by a configuration including a plurality of secret calculation servers 10 and a trail storage system 20.
  • the secret calculation server 10 includes a calculation processing unit 11 and a trail registration unit 12.
  • the calculation processing unit 11 performs a secret calculation using the data x received from the client, and calculates the calculation result R.
  • the secret calculation server 10 performs a secret calculation in collaboration with another secret calculation server 10 based on the share of the data x received from the client 30 and calculates. Calculate the share of the result R.
  • the trail registration unit 12 causes the predetermined trail storage system 20 to have a relationship between the first trail data for proving the identity of the data x calculated from the data x and the data x and the calculation result R.
  • a second trail data that proves that is retained For example, when the secret sharing method is used as the secret calculation method, the trail registration unit 12 stores the share of the hash value of the data x and the share of the value obtained by concatenating the data x and the calculation result R, respectively.
  • the secret calculation server 10 causes the predetermined trail storage system to have the relationship between the first trail data for proving the identity of the data x calculated from the data x and the data x and the calculation result R.
  • a second trail data certifying the sex is retained.
  • the trail storage system 20 includes a trail data creation unit 21 and a trail data management unit 22.
  • the trail data creation unit 21 determines the relationship between the first trail data for proving the identity of the data x and the data x and the calculation result R based on the data received from the secret calculation server 10. Create a second trail data to prove and each.
  • the secret calculation server 10 transmits a set of a hash value share of the data x and a set of a hash value share of the value concatenated with the data x and the calculation result R.
  • the trail data creation unit 21 proves the relationship between the first trail data for proving the identity of the data x and the data x and the calculation result R based on these received data.
  • the trail data management unit 22 manages the first and second trail data in a non-rewritable manner and provides them to a predetermined audit node.
  • the first and second trail data are created as follows.
  • the client 30 creates shares x 1 , x 2 , and x 3 of the data x, and requests the secret calculation server 10 to perform the calculation.
  • the secret calculation server 10 transmits the calculation results R 1 , R 2 , and R 3 to the client 30 as shown in FIG.
  • the client 30 restores the calculation result R from the calculation results R 1 , R 2 , and R 3 . In this way, the client 30 can obtain the calculation result R while keeping the data x secret.
  • the secret calculation server 10 of the present embodiment calculates the hash value of the data x. Furthermore, secure computing server 10, as shown in FIG. 4, the share of the hash value of the data x (e.g., a 1, and a 2, a 3) and, the value obtained by concatenating data x and the calculation result R The shares b 1 , b 2 , and b 3 of the hash value h (x
  • the trail storage system 20 restores the hash value h (x) of the data x from the shares a 1 , a 2 , and a 3 of the hash value h (x) of the data x.
  • the trail storage system 20 further restores the hash value h (x
  • h (x) represents a value obtained by inputting x into a predetermined hash function
  • represents data concatenation.
  • the trail storage system 20 gives the audit node a hash value h (x) and a hash value h (x), as shown in FIG.
  • the audit node requests the client 30 to send the hash value h (x) and the hash value h (x
  • n stand secret calculation server is, a 1,. .. .. Sends the n shares of a n, trail storage system, first, it will create a second trail data from these shares.
  • R)) are used for the first and second data x and its calculation result R. It can be trail data. Note that Enc (x) indicates a ciphertext by a homomorphic encryption method.
  • FIG. 6 is a diagram showing the configuration of the first embodiment of the present invention.
  • an MPC server group composed of three MPC servers 100, a trail storage system 200, a client 300a, and a client 300b are connected is shown.
  • the client 300a is a device of the information bank A (client A) that manages the data x to be kept secret.
  • the client 300b is assumed to be a device of the information bank B (client B) that manages the data y to be kept secret.
  • the three MPC servers 100 receive the share of data x and the share of data y from the clients 300a and 300b, respectively, and jointly calculate the calculation result R.
  • the three MPC servers 100 perform an operation of returning the share of the calculation result R to the client 300a or the client 300b.
  • the client 300a or the client 300b can restore the calculation result R from the share of the calculation result R and use it.
  • the trail storage system 200 is used to detect data replacement or the like by the client 300a or the client 300b.
  • FIG. 7 is a functional block diagram showing a detailed configuration of the first embodiment of the present invention.
  • the clients 300a and 300b each include a share generation unit 301, a restoration unit 302, and a communication interface (communication IF) 303, respectively.
  • the share generation unit 301 generates a secretly distributed share (confidential data) from the data (data x or data y) entrusted to it by the data holder, and transmits it to the MPC server 100 via the communication IF 303.
  • a secretly distributed share Confidential data
  • the distributed value obtained by dividing the input plaintext into n pieces is distributed to n calculation subjects (MPC server 100), and the plaintext is restored when any k distributed values are aligned.
  • the possible (k, n) threshold method can be used.
  • various methods described in the above-mentioned patent documents and non-patent documents can also be used.
  • the restoration unit 302 restores the calculation result R from the share of the calculation result R received from the MPC server 100 via the communication IF 303.
  • the MPC server 100 includes a trail registration unit 101, a calculation processing unit 102, and a communication IF 103, respectively.
  • the calculation processing unit 102 obtains the share of the calculation result R using the share (confidential data) received from the clients 300a and 300b via the communication IF 103, and returns it to the client 300a or the client 300b.
  • the trail registration unit 101 tells the trail storage system 200 that the hash value of the data x is shared (ha 1 , ha 2 , ha 3 ) and the hash value of the data y is shared (hb 1 , hb 2 , hb 3). ) And the share of the hash values h (x
  • R) are (hc 1 , hc 2 , hc 3 ) and (hd 1 , hd 2 , hd 3 ), respectively.
  • the trail storage system 200 includes a trail data management unit 201, a trail data creation unit 202, and a communication IF 203, and can record data on the blockchain 204.
  • the trail data creation unit 202 creates trail data from the share received from the MPC server 100 via the communication IF 203. Specifically, the trail data creation unit 202 calculates the hash value h (x) of the data x from the share of the hash value of the data x, and uses it as the trail data of the data x.
  • h (x) is a value obtained by inputting data x into the hash function, and it is assumed that it satisfies the property that it is difficult to calculate x from h (x). It is assumed that h (x) can be calculated from the operations of the shares ha 1 , ha 2 , and ha 3 , for example, ha 1 + ha 2 + ha 3 .
  • the trail data creation unit 202 calculates the hash value h (y) of the data y from the shares hb 1 , hb 2 , and hb 3 of the hash value of the data y, and uses it as the trail data of the data y. Further, the trail data creation unit 202 calculates the hash value h (x
  • the trail data management unit 201 records the hash values h (x), h (y), h (x
  • Blockchain 204 is a distributed ledger that stores data by connecting blocks that store data like a chain.
  • R) are recorded in this block, and any h (x), h (y) can be recorded. ), H (x
  • FIG. 8 is a sequence diagram showing the operation of the first embodiment of the present invention.
  • the data holder A sends the signature sig (x) together with the data x to the client 300a, and that the data holder A and the client 300a have not been tampered with. It shall be made.
  • the data holder B transmits the signature sig (y) together with the data y to the client 300b, and it is confirmed that the data holder B and the client 300b have not been tampered with. It is assumed that has been done.
  • the client 300a generates shares x 1 , x 2 , and x 3 from the data x, transmits the shares x 1 , x 2 , and x 3 to the MPC server 100, and requests a secret calculation combined with the data y (step S001).
  • the secret calculation using the data x and the data y there is an example of calculating some statistical information by collating the purchase data of the same person who visited different stores.
  • the client 300b generates shares y 1 , y 2 , and y 3 from the data y and transmits them to the MPC server 100 (step S002).
  • One of the MPC servers 100 calculates the calculation result R 1 from the share x 1 and the share y 1 . Likewise other two, share x 2, share y 2, shares x 3, calculates the calculation result from the share y 3 R 2, R 3 (step S003). Further, the three MPC servers 100 transmit the calculation results R 1 , R 2 , and R 3 to the client A (step S004).
  • the client A restores the calculation result R from the calculation results R 1 , R 2 , and R 3 and provides the calculation result R to the data holder 500a (step S005).
  • the processing up to this point is the same as the secret calculation using the MPC server.
  • the MPC server 100 shares the hash value h (x) of the data x (referred to as ha 1 , ha 2 , and ha 3 ) and the share of the hash value h (y) of the data y (hb 1 , hb 2). , Hb 3 ) and. Further, the MPC server 100 calculates the share (hc 1 , hc 2 , hc 3 ) and (hd 1 , hd 2 , hd 3 ) of the hash values h (x
  • the trail storage system 200 calculates hash values h (x) and h (y) from shares ha 1 , ha 2 , ha 3 and shares hb 1 , hb 2 , and hb 3 . Further, the trail storage system 200 calculates the hash value h (x
  • FIG. 9 is a sequence diagram showing the operation (audit process) of the first embodiment of the present invention.
  • the audit node requests the trail storage system 200 to transmit trail data (step S101).
  • a method of specifying the required trail data a method of showing the calculation result R and specifying the trail data can be considered.
  • the trail storage system 200 which has received the request for transmitting the trail data, extracts the hash values h (x), h (y), h (x
  • the audit node transmits the hash value h (x) of the data x and the hash value h (x
  • the data holder 500a Upon receiving the request, the data holder 500a calculates the hash value h (x) and the hash value h (x
  • R) created by the data holder 500a are referred to as h 0 (x) and h 0 (x
  • h (x) satisfies the property that it is difficult to calculate x from h (x), so that x does not leak to the audit node.
  • the audit node transmits the hash value h (y) of the data y and the hash value h (y
  • the data holder 500b Upon receiving the request, the data holder 500b calculates the hash value h (y) and the hash value h (y
  • R) created by the data holder 500b are referred to as h 0 (y) and h 0 (y
  • h (y) satisfies the property that it is difficult to calculate y from h (y), so that y does not leak to the audit node.
  • the audit node confirms the correctness of the calculation result R depending on whether or not the following values (1) to (4) match (step S107).
  • h (x) h 0 (x)
  • the data x has been replaced by the client 300a.
  • h (x) is calculated from the shares (eg, ha 1 , ha 2 , ha 3 ) received by the trail storage system 200 from the MPC server 100 and recorded on the blockchain 204, and is identical. Is guaranteed. Further, at this time, (3) h (x
  • R) h 0 (x
  • h (y) h 0 (y)
  • the data y has been replaced by the client 300b.
  • h (y) is calculated from the shares (eg, hb 1 , hb 2 , hb 3 ) received by the trail storage system 200 from the MPC server 100 and recorded on the blockchain 204, and is the same. Is guaranteed. Further, at this time, (4) h (y
  • R) h 0 (y
  • steps S101 to S102, steps S103 to S104, and steps S105 to S106 in FIG. 9 does not necessarily have to be as shown in FIG. 9, and can be appropriately replaced.
  • FIG. 10 is a diagram showing a configuration of a second embodiment of the present invention.
  • a time stamp server (TS server) 400 is added so that the time stamp is used for creating trail data. Since other configurations are the same as those of the first embodiment, the differences will be mainly described below.
  • the time stamp server (TS server) 400 is a server typified by RFC 3161 that adds a time stamp to a hash value in response to a request from a client.
  • the trail data creation unit 202a of the trail storage system 200a of the second embodiment sets the time stamp T received from the TS server 400 when creating trail data from the share received from the MPC server 100 via the communication IF 203. Use to create trail data. Specifically, the trail data creation unit 202a obtains the time stamp T for the hash value h (x) from the TS server 400, and further uses the second hash function h'(x) to obtain the hash value h'. (H (x)
  • the trail data creation unit 202a obtains the time stamp T for the hash value h (y), and further uses the second hash function h'(y) to obtain the hash value h'(h (y)
  • T) is calculated and used as the trail data of the data y.
  • the trail data creation unit 202a uses a third hash value h'(h (x)
  • the trail data management unit 201a has hash values h'(h (x)
  • FIG. 11 is a sequence diagram showing the operation of the second embodiment of the present invention. Since the operations of steps S201 to S206 are the same as steps S001 to S006 of FIG. 8 described in the first embodiment, the description thereof will be omitted.
  • the trail storage system 200a has a hash value h (x), a hash value h (y), from the share ha 1 , ha 2 , ha 3, share hb 1 , hb 2 , hb 3, and share R 1 , R 2 , R 3 .
  • the time stamp T is acquired from the TS server 400 (step S207).
  • the trail storage system 200a has hash values h'(h (x)
  • R) is calculated (step S208).
  • the trail storage system 200a has hash values h'(h (x)
  • R) is recorded (step S209).
  • FIG. 12 is a sequence diagram showing the operation (audit process) of the second embodiment of the present invention.
  • the audit node requests the trail storage system 200a to transmit trail data (step S301).
  • a method of specifying the required trail data a method of showing the calculation result R and specifying the trail data can be considered.
  • the trail storage system 200a that has received the request for transmission of the trail data has a time stamp T from the blockchain 204 and hash values h'(h (x)
  • the audit node sends a time stamp T to the data holder 500a, and the hash values h'(h (x)
  • the data holder 500a who received the request uses the time stamp T and the hash functions h (x), h'(x), and h''(x) to use the hash value h 0 '(h 0 (x)
  • R) are calculated and transmitted to the audit node (step S304).
  • the hash value h (x) calculated by the data holder 500a and the data holder 500b is added with a subscript 0 and is described as h 0 (x).
  • T) is a hash value based on h 0 '(x), which is a value obtained by concatenating T with the hash value h 0 (x) of the data x.
  • R) is a value obtained by concatenating the calculation result R with the h 0 '(h 0 (x)
  • the audit node sends a time stamp T to the data holder 500b, and the hash values h'(h (y)
  • the data holder 500b who received the request uses the time stamp T and the hash functions h (x), h'(x), and h''(x) to use the hash value h 0 '(h 0 (y)
  • R) are calculated and transmitted to the audit node (step S306).
  • the audit node confirms the correctness of the calculation result R depending on whether or not the following values (1) to (4) match (step S307).
  • the trail data is created by using the hash function, but another one-way function that can be calculated from x and that it is difficult to calculate x from the trail data is used. It can also be used.
  • the hash functions h (x), h ′′ (x), and h ′′ (x) may be the same hash function or different hash functions.
  • the data holder 500a provides the data x and the data holder 500b provides the data y
  • the application field of the present invention is not limited to this.
  • it can be applied without any problem even in the case where the third data holder registers the learning model M or the like in the information bank and requests the MPC server 100 to perform the secret calculation of the data using the learning model M. Even in this case, it is possible to verify whether or not all the data holders have provided the correct data and whether or not the learning model M has been provided.
  • the trail storage system 200, 200a has been described as restoring the data x, the hash value of the data y, and the calculation result R to generate the trail data, but the data x, the data y It is also possible to adopt a configuration in which an intermediate node for restoring the hash value and the calculation result R and creating trail data is provided.
  • the blockchain 204 is used as the recording destination of the trail data, but other recording devices capable of recording the data without rewriting can also be used.
  • n stand secret calculation server is, a 1,. .. .. Sends the n shares of a n, trail storage system, first, it will create a second trail data from these shares.
  • ) are used for the data x and y and the calculation result R.
  • R)) can be the first and second trail data.
  • first and second trail data calculation methods shown in the above-described embodiment are merely examples thereof, and various methods can be adopted as the creation method.
  • R) instead of h (x
  • R) instead of h (x) and h (x
  • the procedure shown in the first and second embodiments described above is a program that enables a computer (9000 in FIG. 13) that functions as the MPC server 100 or the trail storage system 200, 200a to realize the functions as these devices.
  • a computer is exemplified in a configuration including a CPU (Central Processing Unit) 9010, a communication interface 9020, a memory 9030, and an auxiliary storage device 9040 in FIG. That is, the CPU 9010 in FIG. 13 may execute a share transmission program or a trail data creation program to update each calculation parameter held in the auxiliary storage device 9040 or the like.
  • a CPU Central Processing Unit
  • each part (processing means, function) of the MPC server 100 or the trail storage systems 200 and 200a shown in the first and second embodiments described above uses the hardware for the processor mounted on these devices. Therefore, it can be realized by a computer program that executes each of the above processes.
  • the above-mentioned trail storage system can adopt a configuration for recording the first and second trail data by using a blockchain.
  • the trail storage system described above holds the hash value of the data x as the first trail data, and holds the hash value of the data x.
  • As the second trail data a configuration can be adopted in which a hash value of a value obtained by concatenating the data x and the calculation result R is held.
  • the trail storage system described above holds a hash value of a value created by using the data x and the time stamp value as the first trail data.
  • the calculation processing unit of the secret calculation server described above can execute multi-party calculation for performing secret calculation in cooperation with other secret calculation servers.
  • the trail registration unit of the secret calculation server described above restores the first trail data and the second trail data to the trail storage system in the form of a share calculated by the calculation processing unit. It is possible to take the form of transmitting the data for the purpose.
  • the trail data management unit of the trail storage system described above is preferably composed of a blockchain.
  • the secret calculation server described above can execute multi-party calculation for performing secret calculation in cooperation with other secret calculation servers.
  • the trail data creation unit of the trail storage system described above restores the first trail data and the second trail data from the secret calculation server in the form of shares calculated by the multi-party calculation, respectively. It is possible to adopt a configuration in which the data for the purpose is received and the first trail data and the second trail data are restored.
  • [11th form] (Refer to the trail management method of secret calculation from the viewpoints 3 and 4 above)
  • [12th form] (Refer to the program from the fifth viewpoint above)
  • the eleventh to twelfth forms can be developed into the second to fifth and seventh to tenth forms in the same manner as the first and sixth forms.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

秘密計算の対象となるデータの正当性(correctness)の検証の容易化。秘密計算サーバは、クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部と、所定の証跡保存システムに、前記データxから計算した前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を保持させる証跡登録部と、を備える。前記所定の証跡保存システムは、第1、第2の証跡データをそれぞれ書き換え不可能に管理し、所定の監査ノードに提供する。

Description

秘密計算サーバ、証跡管理方法及びプログラム
 本発明は、秘密計算サーバ、証跡管理方法及びプログラムに関する。
 情報銀行やデータ取引市場などデータ活用ビジネスが活発になっている。この種のデータ活用ビジネスにおいて、データの提供先企業のデータ利用に対するコントロールする仕組みとして、ブロックチェーン(以下、「BC」とも記す。)技術が挙げられる。
 また、データそのものに個人情報が含まれることから、プライバシーの保護も要請される。こうしたデータそのものを秘匿しつつ処理を行って出力を得る技術として、マルチパーティ計算(以下、「MPC」とも記す。)技術が知られている。特許文献1に、個人情報を秘匿したままデータ処理を行うことができるという秘密計算システムが開示されている。
 特許文献2に、ブロックチェーンに登録された証跡を以て、サーバなどの第1の端末装置からクライアントなどの第2の端末装置に対して提供されるデータの信頼性を担保することができるという電子証明システムが開示されている。具体的には、特許文献1の第1の端末装置は、第1の端末装置に関する情報とデータとを証跡としてブロックチェーンに登録する証跡登録手段を備える。また、この第1の端末装置は、第2の端末装置に対して証跡を送信する証跡提供手段と、を備える。そして、第2の端末装置は、証跡提供手段から提供された証跡がブロックチェーンに登録されている場合に、データが信頼できるものであるという判定を行う。
 非特許文献1には、上記MPCとBCとを組み合わせることで、データを非公開に保ちながら、さまざまな関係者が共同でデータの計算等をなしうるようにした分散型計算プラットフォームが開示されている。
 非特許文献2には、上記MPCとBCとを組み合わせることで、MPCにおいてパーティ間の公平性(Fairness)を確保するための構成が開示されている。
国際公開第2015/114947号 特開2018-182487号公報
Guy Zyskindら、"Enigma: Decentralized Computation Platform with Guaranteed Privacy"、[online]、[令和1年6月4日検索]、インターネット〈URL:https://arxiv.org/pdf/1506.03471.pdf〉 Arka Rai Choudhuriら、"Fairness in an Unfair World: Fair Multiparty Computation from public Bulletin Boards"、[online]、[令和1年6月4日検索]、インターネット〈URL:https://eprint.iacr.org/2017/1091.pdf〉
 以下の分析は、本発明によって与えられたものである。特許文献1のような構成を用いることで、データを秘匿しつつ、秘密計算システムにて計算し、データ利用側である利用者端末に計算結果だけを渡すことができる。しかしながら、特許文献1のようなデータに含まれる個人情報を秘匿したまま復元することなく様々なデータ処理を行う構成では、データ提供側である登録者端末において、何らかの意図をもって、不適切なデータが登録される可能性がある。例えば、秘密計算にて計算される統計結果が自身に有利な内容となるように、データの修正が行われた場合、秘密計算の性質上、これをリアルタイムに検出することは困難であり、事後的に正当性(correctness)を検証する仕組みが必要となる。
 特許文献2の方法では、第1の端末装置に関する情報とデータの組である証跡データをブロックチェーンに登録する方法を用いている。しかしながら、秘密計算システムが取り扱う情報は、秘匿の対象となるべきものであり、特許文献2の方法を採ることはできない。
 本発明は、秘密計算の対象となるデータの正当性(correctness)の検証の容易化に貢献できる秘密計算サーバ、証跡管理方法及びプログラムを提供することを目的とする。
 第1の視点によれば、クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部と、所定の証跡保存システムに、前記データxから計算した前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を保持させる証跡登録部と、を備える秘密計算サーバが提供される。
 第2の視点によれば、クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部と、所定の証跡保存システムに、前記データxから計算した前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を保持させる証跡登録部と、を備える秘密計算サーバから受信したデータに基づいて、前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、をそれぞれ作成する証跡データ作成部と、前記第1、第2の証跡データをそれぞれ書き換え不可能に管理し、所定の監査ノードに提供する証跡データ管理部と、を備えた証跡保存システムが提供される。
 第3の視点によれば、クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部を備えた秘密計算サーバが、前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を計算するためのデータを、所定の証跡保存システムに送信し、前記所定の証跡保存システムに、前記第1の証跡データと、前記第2の証跡データと、を保持させる秘密計算の証跡管理方法が提供される。本方法は、前記所定の証跡保存システムに、前記第1、第2の証跡データを保持させる秘密計算サーバという、特定の機械に結びつけられている。
 第4の視点によれば、クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部を備える秘密計算サーバから、前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を計算するためのデータを受信し、前記受信したデータに基づいて、前記第1の証跡データと、前記第2の証跡データと、をそれぞれ作成し、前記第1、第2の証跡データをそれぞれ書き換え不可能に管理し、所定の監査ノードに提供する秘密計算の証跡管理方法が提供される。本方法は、前記第1、第2の証跡データをそれぞれ作成し、所定の監査ノードに提供する証跡保存システムという、特定の機械に結びつけられている。
 第5の視点によれば、上記した秘密計算サーバ又は証跡保存システムの機能を実現するためのプログラムが提供される。プログラムは、コンピュータ装置に入力装置又は外部から通信インターフェースを介して入力され、記憶装置に記憶されて、プロセッサを所定のステップないし処理に従って駆動させる。また、このプログラムは、必要に応じ中間状態を含めその処理結果を段階毎に表示装置を介して表示することができ、あるいは通信インターフェースを介して、外部と交信することができる。そのためのコンピュータ装置は、一例として、典型的には互いにバスによって接続可能なプロセッサ、記憶装置、入力装置、通信インターフェース、及び必要に応じ表示装置を備える。
 本発明によれば、秘密計算の対象となるデータの正当性(correctness)の検証の容易化に貢献できる。
本発明の一実施形態の構成を示す図である。 本発明の一実施形態の動作(シェア配布)を説明するための図である。 本発明の一実施形態の動作(計算結果の送信)を説明するための図である。 本発明の一実施形態の動作(シェアの送信)を説明するための図である。 本発明の一実施形態の動作(監査)を説明するための図である。 本発明の第1の実施形態の構成を示す図である。 本発明の第1の実施形態の詳細構成を表した機能ブロック図である。 本発明の第1の実施形態の動作を表したシーケンス図である。 本発明の第1の実施形態の動作を表したシーケンス図である。 本発明の第2の実施形態の構成を示す図である。 本発明の第2の実施形態の動作を表したシーケンス図である。 本発明の第2の実施形態の動作を表したシーケンス図である。 本発明の秘密計算サーバ又は証跡保存システムを構成するコンピュータの構成を示す図である。
 はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、以降の説明で参照する図面等のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。プログラムはコンピュータ装置を介して実行され、コンピュータ装置は、例えば、プロセッサ、記憶装置、入力装置、通信インターフェース、及び必要に応じ表示装置を備える。また、このコンピュータ装置は、通信インターフェースを介して装置内又は外部の機器(コンピュータを含む)と、有線、無線を問わず、通信可能に構成される。また、図中の各ブロックの入出力の接続点には、ポート乃至インターフェースがあるが図示省略する。また、以下の説明において、「A及び/又はB」は、A及びBの少なくともいずれかという意味で用いる。
 本発明は、その一実施形態において、図1に示すように、複数台の秘密計算サーバ10と、証跡保存システム20と、含む構成にて実現することができる。より具体的には、秘密計算サーバ10は、計算処理部11と、証跡登録部12と、を備える。計算処理部11は、クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する。例えば、秘密計算方式として、秘密分散法を用いる場合、秘密計算サーバ10は、クライアント30から受け取ったデータxのシェアに基づいて、他の秘密計算サーバ10と共同して、秘密計算を行い、計算結果Rのシェアを計算する。そして、証跡登録部12は、所定の証跡保存システム20に、前記データxから計算した前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を保持させる。例えば、秘密計算方式として、秘密分散法を用いる場合、証跡登録部12は、前記データxのハッシュ値のシェアと、前記データxと計算結果Rとを連結した値のシェアと、をそれぞれ証跡保存システム20に送信する。これにより、秘密計算サーバ10は、前記所定の証跡保存システムに、前記データxから計算した前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を保持させる。
 一方、証跡保存システム20は、証跡データ作成部21と、証跡データ管理部22と、を備える。証跡データ作成部21は、前記した秘密計算サーバ10から受信したデータに基づいて、前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、をそれぞれ作成する。例えば、秘密計算サーバ10が、前記データxのハッシュ値のシェアの組と、前記データxと計算結果Rと連結した値のハッシュ値のシェアの組と、を送信する。この場合、証跡データ作成部21は、これらの受信データに基づいて、前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、をそれぞれ作成する。そして、証跡データ管理部22は、前記第1、第2の証跡データをそれぞれ書き換え不可能に管理し、所定の監査ノードに提供する。
 例えば、秘密計算ベースの三者秘密計算の場合、上記第1、第2の証跡データの作成は以下の通りとなる。図2に示すように、クライアント30が、データxのシェアx、x、xを作成し、秘密計算サーバ10に計算を依頼する。前記依頼を受けた秘密計算サーバ10は、図3に示すように、クライアント30に計算結果R、R、Rを送信する。クライアント30は、計算結果R、R、Rから計算結果Rを復元する。このようにして、クライアント30はデータxを秘匿したまま計算結果Rを得ることができる。
 本実施形態の秘密計算サーバ10は、上記動作に加えて、上記データxのハッシュ値を計算する。さらに、秘密計算サーバ10は、図4に示すように、前記データxのハッシュ値のシェア(例えば、a、a、aとする)と、データxと計算結果Rを連結した値のハッシュ値h(x||R)のシェアb、b、bを計算し、証跡保存システム20に送信する。証跡保存システム20は、上記データxのハッシュ値h(x)のシェアa、a、aからデータxのハッシュ値h(x)を復元する。証跡保存システム20は、さらに、ハッシュ値h(x||R)のシェアb、b、bからデータxのハッシュ値h(x||R)を復元する。なお、h(x)は、xを所定のハッシュ関数に入力して得られた値を表し、||は、データの連結を表すものとする。
 その後、所定の監査ノードよりデータxとRに関し、監査要求を受けた場合、証跡保存システム20は、図5に示すように、監査ノードに、ハッシュ値h(x)と、ハッシュ値h(x||R)とを送信する。監査ノードは、クライアント30に対して、ハッシュ値h(x)と、ハッシュ値h(x||R)との送信を要求し、両者が一致するか否かによりクライアント30によるデータ差し替えの有無を判断することができる。例えば、ハッシュ値h(x)が一致しない場合、クライアント30によるハッシュ値h(x)の差し替えを検出できる。同様に、ハッシュ値h(x||R)が一致しない場合、クライアント30による計算結果Rの差し替えを検出できる。
 以上のように、本実施形態によれば、秘密計算の対象となるデータの正当性(correctness)を検出する仕組みが構築され、プライバシーを保護しつつ所望の計算結果を得る秘密計算システムの信頼性を向上させることが可能となる。なお、上記した例では、秘密計算ベースの三者秘密計算に本発明を適用したが、第1、第2の証跡データの作成の方法は採用する秘密計算方式に応じて変更することができる。例えば、n者秘密計算の場合、n台の秘密計算サーバは、a,...,aのn個のシェアを送信し、証跡保存システムが、これらのシェアから第1、第2の証跡データを作成することになる。同様に、秘密計算方式として準同型暗号を用いる場合、データxとその計算結果Rに対し、Enc(h(x))、Enc(h(x||R))を、第1、第2の証跡データとすることができる。なお、Enc(x)は準同型暗号方式による暗号文を示す。
[第1の実施形態]
 続いて、複数のクライアントからデータを受け取って秘密計算を行う形態に本発明を適用した第1の実施形態について図面を参照して詳細に説明する。図6は、本発明の第1の実施形態の構成を示す図である。図6を参照すると、3台のMPCサーバ100によって構成されたMPCサーバ群と、証跡保存システム200と、クライアント300a、クライアント300bとが接続された構成が示されている。
 以下の説明では、クライアント300aは、秘密対象のデータxを管理する情報銀行A(クライアントA)の機器であるものとする。また、クライアント300bは、秘密対象のデータyを管理する情報銀行B(クライアントB)の機器であるものとする。3台のMPCサーバ100は、クライアント300a、300bからそれぞれデータxのシェアと、データyのシェアを受け取り、協働して計算結果Rを計算する。3台のMPCサーバ100は、計算結果Rのシェアをクライアント300a又はクライアント300bに返す動作を行う。このとき、クライアント300a又はクライアント300bは、計算結果Rのシェアから計算結果Rを復元し、利用することができる。以下の実施形態では、証跡保存システム200を利用して、クライアント300a又はクライアント300bによるデータの差し替え等の検出を行う。
 図7は、本発明の第1の実施形態の詳細構成を表した機能ブロック図である。図7を参照すると、クライアント300a、300bは、それぞれシェア生成部301と、復元部302と、通信インターフェース(通信IF)303とを備えている。
 シェア生成部301は、データ保有者から預かったデータ(データx又はデータy)から、秘密分散したシェア(機密データ)を生成し、通信IF303を介してMPCサーバ100に送信する。この秘密分散の方法としては、入力された平文をn個に分割した分散値をn個の計算主体(MPCサーバ100)に分散しておき、任意のk個の分散値が揃えば平文を復元できる(k,n)しきい値法を用いることができる。もちろん、上記した特許文献及び非特許文献記載の各種の方法を用いることもできる。
 復元部302は、通信IF303を介して、MPCサーバ100から受け取った計算結果Rのシェアから計算結果Rを復元する。
 MPCサーバ100は、それぞれ証跡登録部101と、計算処理部102と、通信IF103とを備えている。計算処理部102は、通信IF103を介して、クライアント300a、300bから受け取ったシェア(機密データ)を用いて、計算結果Rのシェアを求め、クライアント300a又はクライアント300bに返す。
 証跡登録部101は、証跡保存システム200に対し、上記データxのハッシュ値のシェア(ha、ha、ha)と、上記データyのハッシュ値のシェア(hb、hb、hb)と、ハッシュ値h(x||R)、h(y||R)のシェアを送信する。ここで、ハッシュ値h(x||R)、h(y||R)のシェアをそれぞれ(hc、hc、hc)、(hd、hd、hd)とする。
 証跡保存システム200は、証跡データ管理部201と、証跡データ作成部202と、通信IF203とを備え、ブロックチェーン204にデータを記録可能となっている。
 証跡データ作成部202は、通信IF203を介して、MPCサーバ100から受け取ったシェアから証跡データを作成する。具体的には、証跡データ作成部202は、データxのハッシュ値のシェアから、データxのハッシュ値h(x)を計算し、データxの証跡データとする。ここで、h(x)は、ハッシュ関数にデータxを入力して得られた値であり、h(x)からxを演算することは困難であるという性質を満たしているものとする。h(x)は、そのシェアha、ha、haの演算、例えば、ha+ha+haから計算できるものとする。
 同様に、証跡データ作成部202は、データyのハッシュ値のシェアhb、hb、hbから、データyのハッシュ値h(y)を計算し、データyの証跡データとする。さらに、証跡データ作成部202は、ハッシュ値h(x||R)のシェア(hc、hc、hc)からハッシュ値h(x||R)を計算する。同様に、証跡データ作成部202は、ハッシュ値h(y||R)のシェア(hd、hd、hd)からハッシュ値h(y||R)を計算する。なお、以下の説明においても、記号a||bは、データaとデータbの連結を示す。
 証跡データ管理部201は、ブロックチェーン204に、前記ハッシュ値h(x)、h(y)、h(x||R)、h(y||R)を記録する。
 ブロックチェーン204は、データを格納したブロックを、鎖(チェーン)のように連結していくことによりデータを保管する分散型台帳である。本実施形態では、このブロックに、上述のh(x)、h(y)、h(x||R)、h(y||R)を記録し、任意のh(x)、h(y)、h(x||R)、h(y||R)のセットを取り出し可能になっているものとする。
 続いて、本実施形態の動作について図面を参照して詳細に説明する。図8は、本発明の第1の実施形態の動作を表したシーケンス図である。以下の説明では、事前にデータ保持者Aがクライアント300aに対してデータxとともに、署名sig(x)を送信し、データ保持者Aとクライアント300a間において改ざん等が行われていないことの確認がなされているものとする。同様に、データyについても、データ保持者Bがクライアント300bに対してデータyとともに、署名sig(y)を送信し、データ保持者Bとクライアント300b間において改ざん等が行われていないことの確認がなされているものとする。
 図8を参照すると、クライアント300aは、データxからシェアx、x、xを生成し、MPCサーバ100に送信し、データyと組み合わせた秘密計算を依頼する(ステップS001)。このデータxとデータyとを用いた秘密計算の例としては、異なる店舗を訪れた同一の人物の購買データを突合して、何らかの統計情報を計算する例などが挙げられる。
 クライアント300bは、データyからシェアy、y、yを生成し、MPCサーバ100に送信する(ステップS002)。
 MPCサーバ100のうちの1台は、シェアx、シェアyより計算結果Rを計算する。ほかの2台も同様に、シェアx、シェアy2、シェアx、シェアyより計算結果R、Rを計算する(ステップS003)。さらに、3台のMPCサーバ100は、計算結果R、R、RをクライアントAに送信する(ステップS004)。
 クライアントAは、計算結果R、R、Rから計算結果Rを復元し、データ保持者500aに提供する(ステップS005)。ここまでの処理は、MPCサーバを用いた秘密計算と同様である。
 次に、MPCサーバ100は、データxのハッシュ値h(x)のシェア(ha、ha、haとする)と、データyのハッシュ値h(y)のシェア(hb、hb、hbとする)とを計算する。さらに、MPCサーバ100は、ハッシュ値h(x||R)、h(y||R)のシェア(hc、hc、hc)、(hd、hd、hd)を計算し、証跡保存システム200に送信する(ステップS006)。
 証跡保存システム200は、シェアha、ha、ha及びシェアhb、hb、hbからハッシュ値h(x)、h(y)を計算する。さらに、証跡保存システム200は、ハッシュ値h(x||R)のシェア(hc、hc、hc)からハッシュ値h(x||R)を計算する。さらに、証跡保存システム200は、ハッシュ値h(y||R)のシェア(hd、hd、hd)からハッシュ値h(y||R)を計算する(ステップS007)。最後に、証跡保存システム200は、ブロックチェーン204にハッシュ値h(x)、h(y)、h(x||R)、h(y||R)を記録する(ステップS008)。
 続いて、上記証跡保存システム200に登録したデータを用いた監査プロセスについて説明する。以下の説明では、データ保持者500a、500b又は第三者が監査人(監査ノード)に対し、計算結果Rの正当性(correctness)についての監査要求を行ったものとして説明する。図9は、本発明の第1の実施形態の動作(監査プロセス)を表したシーケンス図である。
 図9を参照すると、まず、監査ノードは、証跡保存システム200に対して証跡データの送信を要求する(ステップS101)。ここで、要求する証跡データを特定する方法としては、計算結果Rを示して証跡データを特定する方法が考えられる。
 前記証跡データの送信要求を受けた証跡保存システム200は、ブロックチェーン204からハッシュ値h(x)、h(y)、h(x||R)、h(y||R)を取り出して、監査ノードに送信する(ステップS102)。
 次に、監査ノードは、データ保持者500aに対し、データxのハッシュ値h(x)及びデータxに計算結果Rを連結した値x||Rのハッシュ値h(x||R)の送信を要求する(ステップS103)。
 前記要求を受けたデータ保持者500aは、データxのハッシュ値h(x)及びハッシュ値h(x||R)を計算し、監査ノードに送信する(ステップS104)。ここで、データ保持者500aが作成したh(x)、h(x||R)を、それぞれh(x)、h(x||R)と記す。また、h(x)は、前述のとおり、h(x)からxを演算することは困難であるという性質を満たしているので、監査ノードにxが洩れることはない。
 次に、監査ノードは、データ保持者500bに対し、データyのハッシュ値h(y)及びデータyに計算結果Rを連結した値y||Rのハッシュ値h(y||R)の送信を要求する(ステップS105)。
 前記要求を受けたデータ保持者500bは、データyのハッシュ値h(y)及びハッシュ値h(y||R)を計算し、監査ノードに送信する(ステップS106)。ここで、データ保持者500bが作成したh(y)、h(y||R)を、それぞれh(y)、h(y||R)と記す。また、h(y)は、前述のとおり、h(y)からyを演算することは困難であるという性質を満たしているので、監査ノードにyが洩れることはない。
 最後に、監査ノードは、以下の値(1)~(4)が一致するか否かにより、計算結果Rの正当性(correctness)を確認する(ステップS107)。
(1)h(x)=h(x)
(2)h(y)=h(y)
(3)h(x||R)=h(x||R)
(4)h(y||R)=h(y||R)
 上記(1)h(x)=h(x)が成立しない場合、データxがクライアント300aにおいて差し替えられたことになる。その理由は、h(x)は、証跡保存システム200が、MPCサーバ100から受け取ったシェア(例えば、ha、ha、ha)から計算され、ブロックチェーン204に記録されており、同一性が保証されているからである。また、このとき、(3)h(x||R)=h(x||R)も成立しないことになる。
 上記(2)h(y)=h(y)が成立しない場合、データyがクライアント300bにおいて差し替えられたことになる。その理由は、h(y)は、証跡保存システム200が、MPCサーバ100から受け取ったシェア(例えば、hb、hb、hb)から計算され、ブロックチェーン204に記録されており、同一性が保証されているからである。また、このとき、(4)h(y||R)=h(y||R)も成立しないことになる。
 さらに、(1)h(x)=h(x)が成立するが、(3)h(x||R)=h(x||R)が成立しない場合、クライアント300aが計算結果Rを差し替えたことを検出できる。
 同様に、(2)h(y)=h(y)が成立するが、(4)h(y||R)=h(y||R)が成立しない場合、クライアント300bが計算結果Rを差し替えたことを検出できる。
 以上のとおり、本実施形態によれば、秘密計算の対象となるデータが複数の保持者から提供されている場合においても、その正当性(correctness)をそれぞれ確認することが可能となる。なお、図9のステップS101~S102、ステップS103~S104、ステップS105~S106の順序は、必ずしも図9のとおりでなくてもよく、適宜入れ替えることができる。
[第2の実施形態]
 続いて、第1の実施形態との比較において、証跡データの存在と改ざんがなされていないことを証明できるようにした第2の実施形態について図面を参照して詳細に説明する。図10は、本発明の第2の実施形態の構成を示す図である。図6、図7に示した第1の実施形態との差異は、タイムスタンプサーバ(TSサーバ)400が追加され、証跡データの作成に、タイムスタンプを用いるようにした点である。その他の構成は第1の実施形態と同様であるので、以下、その相違点を中心に説明する。
 タイムスタンプサーバ(TSサーバ)400は、RFC 3161に代表される方式で、クライアントからの要求に応じてハッシュ値にタイムスタンプを付与するサーバである。
 第2の実施形態の証跡保存システム200aの証跡データ作成部202aは、通信IF203を介して、MPCサーバ100から受け取ったシェアから証跡データを作成する際に、TSサーバ400から受け取ったタイムスタンプTを用いて証跡データを作成する。具体的には、証跡データ作成部202aは、TSサーバ400からハッシュ値h(x)に対するタイムスタンプTを入手し、さらに、第2のハッシュ関数h’(x)を用いて、ハッシュ値h’(h(x)||T)を計算し、データxの証跡データとする。
 同様に、証跡データ作成部202aは、ハッシュ値h(y)に対するタイムスタンプTを入手し、さらに、第2のハッシュ関数h’(y)を用いて、ハッシュ値h’(h(y)||T)を計算し、データyの証跡データとする。
 さらに、証跡データ作成部202aは、データxと計算結果Rの対応関係を示す証跡データとして、上記ハッシュ値h’(h(x)||T)に計算結果Rを連結した値を、第3のハッシュ関数h’’(x)に入力して、ハッシュ値h’’(h’(h(x)||T)||R)を計算する。同様に、証跡データ作成部202aは、データyと計算結果Rの対応関係を示す証跡データとして、上記ハッシュ値h’(h(y)||T)に計算結果Rを連結した値を、第3のハッシュ関数h’’(x)に入力して、ハッシュ値h’’(h’(h(y)||T)||R)を計算する。
 証跡データ管理部201aは、ハッシュ値h’(h(x)||T)、h’(h(y)||T)、h’’(h’(h(x)||T)||R)、h’’(h’(h(y)||T)||R)をブロックチェーン204に記録する。
 続いて、本実施形態の動作について図面を参照して詳細に説明する。図11は、本発明の第2の実施形態の動作を表したシーケンス図である。ステップS201~S206までの動作は第1の実施形態で説明した図8のステップS001~S006と同様であるので、説明を省略する。
 証跡保存システム200aは、シェアha、ha、ha3、シェアhb、hb、hb及びシェアR、R、Rからハッシュ値h(x)、ハッシュ値h(y)、計算結果Rを復元した後、TSサーバ400からタイムスタンプTを取得する(ステップS207)。
 次に、証跡保存システム200aは、ハッシュ値h’(h(x)||T)、h’(h(y)||T)、h’’(h’(h(x)||T)||R)、h’’(h’(h(y)||T)||R)を計算する(ステップS208)。
 最後に、証跡保存システム200aは、ブロックチェーン204に、ハッシュ値h’(h(x)||T)、h’(h(y)||T)、h’’(h’(h(x)||T)||R)、h’’(h’(h(y)||T)||R)を記録する(ステップS209)。
 続いて、上記証跡保存システム200aに登録したデータを用いた監査プロセスについて説明する。以下の説明では、データ保持者500a、500b又は第三者が監査人(監査ノード)に対し、計算結果Rの正当性(correctness)についての監査要求を行ったものとして説明する。図12は、本発明の第2の実施形態の動作(監査プロセス)を表したシーケンス図である。
 図12を参照すると、まず、監査ノードは、証跡保存システム200aに対して証跡データの送信を要求する(ステップS301)。ここで、要求する証跡データを特定する方法としては、計算結果Rを示して証跡データを特定する方法が考えられる。
 前記証跡データの送信要求を受けた証跡保存システム200aは、ブロックチェーン204からタイムスタンプTと、ハッシュ値h’(h(x)||T)、h’(h(y)||T)、h’’(h’(h(x)||T)||R)、h’’(h’(h(y)||T)||R)を取り出して、監査ノードに送信する(ステップS302)。
 次に、監査ノードは、データ保持者500aに対し、タイムスタンプTを送り、ハッシュ値h’(h(x)||T)と、h’’(h’(h(x)||T)||R)の送信を要求する(ステップS303)。
 前記要求を受けたデータ保持者500aは、タイムスタンプTとハッシュ関数h(x)、h’(x)、h’’(x)を用いて、ハッシュ値h’(h(x)||T)と、h’’(h’(h(x)||T)||R)を計算し、監査ノードに送信する(ステップS304)。以下、データ保持者500a及びデータ保持者500bが計算するハッシュ値h(x)に添え字0を付し、h(x)と記す。また、h’(h(x)||T)は、データxのハッシュ値h(x)にTを連結した値のh’(x)によるハッシュ値である。また、h’’(h’(h(x)||T)||R)は、前記h’(h(x)||T)に計算結果Rを連結した値のh’’(x)によるハッシュ値である。
 次に、監査ノードは、データ保持者500bに対し、タイムスタンプTを送り、ハッシュ値h’(h(y)||T)と、h’’(h’(h(y)||T)||R)の送信を要求する(ステップS305)。
 前記要求を受けたデータ保持者500bは、タイムスタンプTとハッシュ関数h(x)、h’(x)、h’’(x)を用いて、ハッシュ値h’(h(y)||T)と、h’’(h’(h(y)||T)||R)を計算し、監査ノードに送信する(ステップS306)。
 最後に、監査ノードは、以下の値(1)~(4)が一致するか否かにより、計算結果Rの正当性(correctness)を確認する(ステップS307)。
(1)h’(h(x)||T)=h’(h(x)||T)
(2)h’(h(y)||T)=h’(h(y)||T)
(3)h’’(h’(h(x)||T)||R)=h’’(h’(h(x)||T)||R)
(4)h’’(h’(h(y)||T)||R)=h’’(h’(h(y)||T)||R)
 上記(1)h’(h(x)||T)=h’(h(x)||T)が成立しない場合、データxがクライアント300aにおいて差し替えられたことになる。その理由は、各ハッシュ値は、証跡保存システム200aがMPCサーバ100から受け取ったシェア(例えば、a、a、a)から計算され、ブロックチェーン204に記録されており、同一性が保証されているからである。また、このとき、(3)h’’(h’(h(x)||T)||R)=h’’(h’(h(x)||T)||R)も成立しないことになる。
 上記(2)h’(h(y)||T)=h’(h(y)||T)が成立しない場合、データyがクライアント300bにおいて差し替えられたことになる。その理由は、各ハッシュ値は、証跡保存システム200aがMPCサーバ100から受け取ったシェア(例えば、b、b、b)から計算され、ブロックチェーン204に記録されており、同一性が保証されているからである。また、このとき、(4)h’’(h’(h(y)||T)||R)=h’’(h’(h(y)||T)||R)も成立しないことになる。
 さらに、(1)h’(h(x)||T)=h’(h(x)||T)が成立するが、(3)h’’(h’(h(x)||T)||R)=h’’(h’(h(x)||T)||R)が成立しない場合、クライアント300aが計算結果Rを差し替えたことを検出できる。
 同様に、(2)h’(h(y)||T)=h’(h(y)||T)が成立するが、(4)h’’(h’(h(y)||T)||R)=h’’(h’(h(y)||T)||R)が成立しない場合、クライアント300bが計算結果Rを差し替えたことを検出できる。
 以上のとおり、本実施形態によれば、第1の実施形態と同様の効果に加えて、ある時刻Tでの計算と異なる時刻T’での計算とで、同一のデータが使用されているか否かを秘匿することが可能となる。その理由は、時刻Tをハッシュ値に含めることで、異なる時刻で同一のデータを用いたとしても異なるハッシュ値が生成される構成を採用したことにある。
 以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、メッセージの表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
 例えば、上記した実施形態では、ハッシュ関数を用いて証跡データを作成するものとして説明したが、xから計算でき、かつ、その証跡データからxを演算することが難しいというその他の一方向性関数を用いることも可能である。また、ハッシュ関数h(x)、h’(x)、h’’(x)は同一のハッシュ関数であってもよいし、異なるハッシュ関数であってもよい。
 例えば、上記した実施形態では、データ保持者500aがデータxを提供し、データ保持者500bがデータyを提供する例を挙げて説明したが、本発明の適用分野はこれに限られない。例えば、第三のデータ保持者が情報銀行に学習モデルM等を登録し、MPCサーバ100に学習モデルMを用いてデータの秘密計算を依頼するケースにおいても問題なく適用できる。この場合においても、データ保持者のすべてが正しいデータを提供したかどうかと学習モデルMが提供されているか否かを検証することが可能となる。
 また、上記した実施形態では、証跡保存システム200、200aにて、データx、データyのハッシュ値及び計算結果Rを復元し、証跡データを生成するものとして説明したが、データx、データyのハッシュ値及び計算結果Rを復元し、証跡データを作成する中間ノードを設ける構成も採用可能である。
 また、上記した実施形態では、証跡データの記録先としてブロックチェーン204を用いるものとして説明したが、データを書き換え不可能に記録できるその他の記録装置を用いることもできる。
 また、上記した実施形態では、3台のMPCサーバでマルチパーティ計算を行う構成に本発明を適用した例を用いたが、本発明を適用可能な秘密計算方式は、これに限られない。例えば、本発明は、n台のMPCサーバでマルチパーティ計算を行う構成にも適用できる。この場合、n台の秘密計算サーバは、a,...,aのn個のシェアを送信し、証跡保存システムが、これらのシェアから第1、第2の証跡データを作成することになる。同様に、秘密計算方式として準同型暗号を用いる場合、データx、yとその計算結果Rに対し、暗号文Enc(h(x))、Enc(h(y))、Enc(h(x||R))、Enc(h(y||R))を、第1、第2の証跡データとすることができる。
 また、上記した実施形態で示した第1、第2の証跡データの計算方法は、あくまでその一例を示したものであり、その作成方法としては種々の方法を採ることができる。例えば、h(x)、h(x||R)の代わりに、任意のストリングSを連結したh(x||S)、h(x||R||S)を用いることも可能である。同様に、h(x)、h(x||R)の代わりに、任意の置換関数p(x)を用いてh(p(x))、h(p(x||R))を用いることも可能である。同様に、暗号文Enc(h(x))、Enc(h(y))、Enc(h(x||R))、Enc(h(y||R))について、これらの置換データを、第1、第2の証跡データとすることができる。
 また、上記した第1、第2の実施形態に示した手順は、MPCサーバ100又は証跡保存システム200、200aとして機能するコンピュータ(図13の9000)に、これらの装置としての機能を実現させるプログラムにより実現可能である。このようなコンピュータは、図13のCPU(Central Processing Unit)9010、通信インターフェース9020、メモリ9030、補助記憶装置9040を備える構成に例示される。すなわち、図13のCPU9010にて、シェア送信プログラムや証跡データ作成プログラムを実行し、その補助記憶装置9040等に保持された各計算パラメーターの更新処理を実施させればよい。
 即ち、上記した第1、第2の実施形態に示したMPCサーバ100又は証跡保存システム200、200aの各部(処理手段、機能)は、これらの装置に搭載されたプロセッサに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することができる。
 最後に、本発明の好ましい形態を要約する。
[第1の形態]
 (上記第1の視点による秘密計算サーバ参照)
[第2の形態]
 上記した証跡保存システムは、ブロックチェーンを用いて、前記第1、第2の証跡データを記録する構成を採ることができる。
[第3の形態]
 上記した証跡保存システムは、前記第1の証跡データとして、前記データxのハッシュ値を保持し、
 前記第2の証跡データとして、前記データxと前記計算結果Rとを連結した値のハッシュ値を保持する構成を採ることができる。
[第4の形態]
 上記した証跡保存システムは、前記第1の証跡データとして、前記データxとタイムスタンプ値とを用いて作成した値のハッシュ値を保持し、
 前記第2の証跡データとして、前記データxと前記計算結果Rとタイムスタンプ値とを用いて作成した値のハッシュ値を保持する構成を採ることができる。
[第5の形態]
 上記した秘密計算サーバの計算処理部は、他の秘密計算サーバと共同して、秘密計算を行うマルチパーティ計算を実行可能であり、
 上記した秘密計算サーバの証跡登録部は、前記証跡保存システムに対し、前記計算処理部にて計算されたシェアの形態で、前記第1の証跡データと、前記第2の証跡データとを復元するためのデータを送信する形態を採ることができる。
[第6の形態]
 (上記第2の視点による証跡保存システム参照)
[第7の形態]
 上記した証跡保存システムの証跡データ管理部は、ブロックチェーンにて構成されていることが好ましい。
[第8の形態]
 上記した証跡保存システムの証跡データ作成部は、
 前記第1の証跡データとして、前記データxのハッシュ値を計算し、
 前記第2の証跡データとして、前記データxと前記計算結果Rとを連結した値のハッシュ値を計算する構成を採ることができる。
[第9の形態]
 上記した証跡保存システムの前記証跡データ作成部は、
 前記第1の証跡データとして、前記データxとタイムスタンプ値とを用いて作成した値のハッシュ値を計算し、
 前記第2の証跡データとして、前記データxと前記計算結果Rとタイムスタンプ値とを用いて作成した値のハッシュ値を計算する構成を採ることができる。
[第10の形態]
 上記した秘密計算サーバは、他の秘密計算サーバと共同して、秘密計算を行うマルチパーティ計算を実行可能であり、
 上記した証跡保存システムの証跡データ作成部は、前記秘密計算サーバからそれぞれ、前記マルチパーティ計算で計算されたシェアの形態で、前記第1の証跡データと、前記第2の証跡データとを復元するためのデータを受信し、前記第1の証跡データと、前記第2の証跡データとを復元する構成を採ることができる。
[第11の形態]
 (上記第3、4の視点による秘密計算の証跡管理方法参照)
[第12の形態]
 (上記第5の視点によるプログラム参照)
 なお、上記第11~第12の形態は、第1、第6の形態と同様に、第2~第5、第7~第10の形態に展開することが可能である。
 なお、上記の特許文献および非特許文献の各開示は、本書に引用をもって繰り込み記載されているものとし、必要に応じて本発明の基礎ないし一部として用いることが出来るものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
 10 秘密計算サーバ
 11、102 計算処理部
 12、101 証跡登録部
 20、200、200a 証跡保存システム
 21、202、202a 証跡データ作成部
 22、201、201a 証跡データ管理部
 30、300a、300b クライアント
 100 MPCサーバ
 400 TSサーバ
 500a、500b データ保持者
 301 シェア生成部
 302 復元部
 103、203、303 通信インターフェース(通信IF)
 204 ブロックチェーン
 9000 コンピュータ
 9010 CPU
 9020 通信インターフェース
 9030 メモリ
 9040 補助記憶装置

Claims (14)

  1.  クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部と、
     所定の証跡保存システムに、前記データxから計算した前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を保持させる証跡登録部と、を備える
     秘密計算サーバ。
  2.  前記所定の証跡保存システムは、ブロックチェーンを用いて、前記第1、第2の証跡データを記録する請求項1の秘密計算サーバ。
  3.  前記所定の証跡保存システムは、前記第1の証跡データとして、前記データxのハッシュ値を保持し、
     前記第2の証跡データとして、前記データxと前記計算結果Rとを連結した値のハッシュ値を保持する請求項1又は2の秘密計算サーバ。
  4.  前記所定の証跡保存システムは、前記第1の証跡データとして、前記データxとタイムスタンプ値とを用いて作成した値のハッシュ値を保持し、
     前記第2の証跡データとして、前記データxと前記計算結果Rとタイムスタンプ値とを用いて作成した値のハッシュ値を保持する
     請求項1又は2の秘密計算サーバ。
  5.  前記計算処理部は、他の秘密計算サーバと共同して、秘密計算を行うマルチパーティ計算を実行可能であり、
     前記証跡登録部は、前記証跡保存システムに対し、前記計算処理部にて計算されたシェアの形態で、前記第1の証跡データと、前記第2の証跡データとを復元するためのデータを送信する
     請求項1から4いずれか一の秘密計算サーバ。
  6.  クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部と、
     所定の証跡保存システムに、前記データxから計算した前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を保持させる証跡登録部と、を備える秘密計算サーバから受信したデータに基づいて、前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、をそれぞれ作成する証跡データ作成部と、
     前記第1、第2の証跡データをそれぞれ書き換え不可能に管理し、所定の監査ノードに提供する証跡データ管理部と、
     を備えた証跡保存システム。
  7.  前記証跡データ管理部が、ブロックチェーンにて構成されている請求項6の証跡保存システム。
  8.  前記証跡データ作成部は、
     前記第1の証跡データとして、前記データxのハッシュ値を計算し、
     前記第2の証跡データとして、前記データxと前記計算結果Rとを連結した値のハッシュ値を計算する請求項6又は7の証跡保存システム。
  9.  前記証跡データ作成部は、
     前記第1の証跡データとして、前記データxとタイムスタンプ値とを用いて作成した値のハッシュ値を計算し、
     前記第2の証跡データとして、前記データxと前記計算結果Rとタイムスタンプ値とを用いて作成した値のハッシュ値を計算する、
     請求項6又は7の証跡保存システム。
  10.  前記秘密計算サーバは、他の秘密計算サーバと共同して、秘密計算を行うマルチパーティ計算を実行可能であり、
     前記証跡データ作成部は、前記秘密計算サーバからそれぞれ、前記マルチパーティ計算で計算されたシェアの形態で、前記第1の証跡データと、前記第2の証跡データとを復元するためのデータを受信し、前記第1の証跡データと、前記第2の証跡データとを復元する
     請求項6から9いずれか一の証跡保存システム。
  11.  クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部を備えた秘密計算サーバが、
     前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を計算するためのデータを、所定の証跡保存システムに送信し、
     前記所定の証跡保存システムに、前記第1の証跡データと、前記第2の証跡データと、を保持させる
     秘密計算の証跡管理方法。
  12.  クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部を備える秘密計算サーバから
     前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を計算するためのデータを受信し、
     前記受信したデータに基づいて、前記第1の証跡データと、前記第2の証跡データと、をそれぞれ作成し、
     前記第1、第2の証跡データをそれぞれ書き換え不可能に管理し、所定の監査ノードに提供する、
     秘密計算の証跡管理方法。
  13.  クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部を備えた秘密計算サーバに、
     前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を計算するためのデータを、所定の証跡保存システムに送信する処理を実行させ、
     前記所定の証跡保存システムに、前記第1の証跡データと、前記第2の証跡データと、を保持させるプログラム。
  14.  証跡保存システムの制御部として機能するコンピュータに、
     クライアントから受け取ったデータxを用いて秘密計算を行い、計算結果Rを計算する計算処理部を備える秘密計算サーバから、前記データxの同一性を証明するための第1の証跡データと、前記データxと計算結果Rの関係性を証明する第2の証跡データと、を計算するためのデータを受信する処理と、
     前記受信したデータに基づいて、前記第1の証跡データと、前記第2の証跡データと、をそれぞれ作成する処理と、
     前記第1、第2の証跡データをそれぞれ書き換え不可能に管理し、所定の監査ノードに提供する処理と、
     を実行させるプログラム。
PCT/JP2019/029029 2019-07-24 2019-07-24 秘密計算サーバ、証跡管理方法及びプログラム WO2021014611A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2019/029029 WO2021014611A1 (ja) 2019-07-24 2019-07-24 秘密計算サーバ、証跡管理方法及びプログラム
US17/628,953 US20220261507A1 (en) 2019-07-24 2019-07-24 Secure computation server, trail management method, and program
JP2021534483A JP7409380B2 (ja) 2019-07-24 2019-07-24 秘密計算サーバ、証跡管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/029029 WO2021014611A1 (ja) 2019-07-24 2019-07-24 秘密計算サーバ、証跡管理方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2021014611A1 true WO2021014611A1 (ja) 2021-01-28

Family

ID=74193637

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/029029 WO2021014611A1 (ja) 2019-07-24 2019-07-24 秘密計算サーバ、証跡管理方法及びプログラム

Country Status (3)

Country Link
US (1) US20220261507A1 (ja)
JP (1) JP7409380B2 (ja)
WO (1) WO2021014611A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023188258A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 計算装置、計算方法、およびプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11928234B2 (en) * 2021-08-06 2024-03-12 International Business Machines Corporation Platform for dynamic collaborative computation with confidentiality and verifiability

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048283A (ja) * 2007-08-15 2009-03-05 Fujitsu Broad Solution & Consulting Inc 改ざん防止プログラム、改ざん防止装置、改ざん防止システム、および改ざん防止方法
JP2011244321A (ja) * 2010-05-20 2011-12-01 Nippon Telegr & Teleph Corp <Ntt> 代理署名システム、方法
WO2017065209A1 (ja) * 2015-10-16 2017-04-20 国立大学法人東北大学 情報処理システム、情報処理装置、情報処理方法、及び、プログラム
WO2018190285A1 (ja) * 2017-04-10 2018-10-18 アイビーシー株式会社 電子証明システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013179569A (ja) 2012-01-30 2013-09-09 Seiko Instruments Inc データ証明システムおよびデータ証明サーバ
US11646876B2 (en) * 2017-07-31 2023-05-09 Koninklijke Philips N.V. Distributing a computation output
CN108364223B (zh) * 2017-12-29 2021-01-26 创新先进技术有限公司 一种数据审计的方法及装置
CN112219371A (zh) * 2018-07-27 2021-01-12 赫尔实验室有限公司 双向区块链
US11444779B2 (en) * 2018-08-02 2022-09-13 Paypal, Inc. Techniques for securing application programming interface requests using multi-party digital signatures
CN109359470B (zh) * 2018-08-14 2020-09-01 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109255247B (zh) * 2018-08-14 2020-08-14 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
EP3754898B1 (en) * 2019-06-19 2023-07-26 Sedicii Innovations Ltd. Improvements in multi-party computations
US11424916B2 (en) * 2019-07-19 2022-08-23 Fujitsu Limited Selectively private distributed computation for blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048283A (ja) * 2007-08-15 2009-03-05 Fujitsu Broad Solution & Consulting Inc 改ざん防止プログラム、改ざん防止装置、改ざん防止システム、および改ざん防止方法
JP2011244321A (ja) * 2010-05-20 2011-12-01 Nippon Telegr & Teleph Corp <Ntt> 代理署名システム、方法
WO2017065209A1 (ja) * 2015-10-16 2017-04-20 国立大学法人東北大学 情報処理システム、情報処理装置、情報処理方法、及び、プログラム
WO2018190285A1 (ja) * 2017-04-10 2018-10-18 アイビーシー株式会社 電子証明システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023188258A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 計算装置、計算方法、およびプログラム

Also Published As

Publication number Publication date
JP7409380B2 (ja) 2024-01-09
JPWO2021014611A1 (ja) 2021-01-28
US20220261507A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
KR102139897B1 (ko) 정보 보호를 위한 시스템 및 방법
CN110011781B (zh) 用于交易金额加密且支持零知识证明的同态加密方法和介质
Hota et al. Capability-based cryptographic data access control in cloud computing
CN108235805A (zh) 账户统一方法、装置及存储介质
JP2020515087A5 (ja)
JP2021519541A (ja) デジタル資産へのアクセスを移すためのコンピュータ実施方法及びシステム
CN106961336A (zh) 一种基于sm2算法的密钥分量托管方法和系统
CN112804354B (zh) 跨链进行数据传输的方法、装置、计算机设备和存储介质
WO2024093426A1 (zh) 基于联邦机器学习的模型训练方法和装置
WO2021014611A1 (ja) 秘密計算サーバ、証跡管理方法及びプログラム
US20220020020A1 (en) Methods, systems, and devices for managing digital assets
CN110750796A (zh) 一种支持公开审计的加密数据去重方法
CN114386069A (zh) 一种基于条件隐私集合求交的联邦学习模型训练方法
JP2007148903A (ja) 属性証明書処理システム、属性証明要求装置、属性証明書発行装置、属性検証装置、属性証明要求方法、属性証明書発行方法、属性検証方法及びプログラム
CN105991606A (zh) 一种OpenFlow报文的处理方法及网元
CN112003690B (zh) 密码服务系统、方法及装置
Bartlett et al. IKEv2 IPsec Virtual Private Networks: Understanding and Deploying IKEv2, IPsec VPNs, and FlexVPN in Cisco IOS
GB2594312A (en) Digital Signatures
Herzberg et al. Oblivious and fair server-aided two-party computation
CN113656829A (zh) 一种基于格密码与联盟链的医疗数据安全共享方法
US20100070768A1 (en) Key exchange device, key exchange processing system, key exchange method, and program
CN104796251B (zh) 一种密钥对的管理方法和设备
Lin Cloud data storage with group collaboration supports
Canetti et al. Composable Authentication with Global PKI.
Toğay A practical key agreement scheme for videoconferencing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19938478

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021534483

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19938478

Country of ref document: EP

Kind code of ref document: A1