WO2022137447A1 - 秘匿情報処理システムおよび秘匿情報処理方法 - Google Patents
秘匿情報処理システムおよび秘匿情報処理方法 Download PDFInfo
- Publication number
- WO2022137447A1 WO2022137447A1 PCT/JP2020/048498 JP2020048498W WO2022137447A1 WO 2022137447 A1 WO2022137447 A1 WO 2022137447A1 JP 2020048498 W JP2020048498 W JP 2020048498W WO 2022137447 A1 WO2022137447 A1 WO 2022137447A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ciphertext
- inference
- result
- data
- unit
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims description 34
- 238000003672 processing method Methods 0.000 title claims description 3
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 28
- 239000011159 matrix material Substances 0.000 claims description 33
- 239000013598 vector Substances 0.000 claims description 30
- 230000015654 memory Effects 0.000 description 48
- 238000000034 method Methods 0.000 description 35
- 238000013528 artificial neural network Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 239000000047 product Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Definitions
- This disclosure relates to confidential information processing.
- Homomorphic encryption is a cryptographic technique that allows data to be processed while it is encrypted. Recently, the use of cloud services is becoming widespread, but due to concerns about cracking and reliability of the cloud, it is conceivable to encrypt and store data on the cloud. In addition, homomorphic encryption can perform operations on encrypted data without decrypting it. Therefore, homomorphic encryption enables the use of cloud services without compromising security.
- Neural networks are a useful technique for image and video recognition and consist of three types of layers: an input layer, (s) intermediate layers and an output layer.
- the input layer is a layer for receiving input data.
- the intermediate layer is a layer for performing a specific calculation on the input data or the calculation result of another intermediate layer.
- the output layer is a layer for outputting the final calculation result of the intermediate layer.
- the inference model data that defines the computation of the middle layer of the neural network is not encrypted, the parameter information of the inference model data and the information about the training data used for training to generate the inference model data may be leaked. There is.
- the service in which the input data provider performs inference processing on the cloud using the inference model data of the inference model provider has the following requirements. It is assumed that the input data provider and the inference model provider outsource the inference processing to the cloud while keeping both the input data and the inference model data secret. In that case, the input data needs to be encrypted with the encryption key of the input data provider, and the inference model data needs to be encrypted with the encryption key of the inference model provider.
- Patent Document 1 discloses an inference process of a convolutional neural network in which both input data and inference model data are encrypted.
- Non-Patent Document 1 uses a cryptographic technique called multi-key quasi-homogeneous encryption, so that the input data remains encrypted with the encryption key of the input data provider and the inference model data is provided as an inference model. Inference processing is realized while being encrypted with the encryption key of the person.
- the multi-key homomorphic encryption is a kind of homomorphic encryption method, and can perform an operation on a plurality of ciphertexts without decrypting a plurality of ciphertexts encrypted with different encryption keys.
- the inference processing realized by the method of Non-Patent Document 1 is the inference processing of the convolutional neural network.
- the purpose of this disclosure is to enable the inference processing of a recursive neural network to be realized while both the input data and the inference model data are encrypted.
- the confidential information processing system of this disclosure is The model ciphertext obtained by encrypting the inference model data obtained by concatenating the first matrix and the second matrix is the inference ciphertext corresponding to the ciphertext of the first matrix and the cipher of the second matrix.
- the calculation ciphertext and the data ciphertext obtained by encrypting the input data correspond to the ciphertext of the product of the first matrix and the vector representing the input data by the quasi-homogeneous arithmetic algorithm without decrypting the data ciphertext.
- Pre-calculation unit that generates the pre-result ciphertext A quasi-isomorphic inference unit that uses the prior result ciphertext and the inference ciphertext without decoding to generate an inference result ciphertext that is an inference result ciphertext for the input data by a quasi-isotype operation algorithm.
- the model secret key which is the secret key for the model ciphertext
- the partial decryption unit that performs partial decryption on the inference result ciphertext and generates the partial decryption result
- FIG. 1 The block diagram of the secret information processing system 100 in Embodiment 1.
- FIG. 1 The flowchart which shows the procedure of the precalculation in Embodiment 1.
- FIG. 1 The figure for demonstrating the hardware configuration of each apparatus of the confidential information processing system 100 in Embodiment 1.
- Embodiment 1 The secret information processing system 100 will be described with reference to FIGS. 1 to 13.
- the secret information processing system 100 includes a key generation device 200, a data encryption device 300, a model encryption device 400, a homomorphic inference device 500, a partial decryption device 600, and a final decryption device 700. These devices are connected to the network 101 and communicate with each other via the network 101.
- a specific example of the network 101 is the Internet.
- the configuration of the key generation device 200 will be described with reference to FIG.
- the key generation device 200 is a computer including hardware such as a processor 201, a memory 202, an auxiliary storage device 203, a communication device 204, and an input / output interface 205. These hardware are connected to each other via a signal line.
- the processor 201 is an IC that performs arithmetic processing and controls other hardware.
- the processor 201 is a CPU, DSP or GPU.
- IC is an abbreviation for Integrated Circuit.
- CPU is an abbreviation for Central Processing Unit.
- DSP is an abbreviation for Digital Signal Processor.
- GPU is an abbreviation for Graphics Processing Unit.
- the memory 202 is a volatile or non-volatile storage device.
- the memory 202 is also referred to as a main storage device or a main memory.
- the memory 202 is a RAM.
- the data stored in the memory 202 is stored in the auxiliary storage device 203 as needed.
- RAM is an abbreviation for Random Access Memory.
- the auxiliary storage device 203 is a non-volatile storage device.
- the auxiliary storage device 203 is a ROM, an HDD, or a flash memory.
- the data stored in the auxiliary storage device 203 is loaded into the memory 202 as needed.
- ROM is an abbreviation for Read Only Memory.
- HDD is an abbreviation for Hard Disk Drive.
- the communication device 204 is a receiver and a transmitter.
- the communication device 204 is a communication chip or NIC. Communication of the key generation device 200 is performed using the communication device 204.
- NIC is an abbreviation for Network Interface Card.
- the input / output interface 205 is a port to which an input device and an output device are connected.
- the input / output interface 205 is a USB terminal
- the input device is a keyboard and a mouse
- the output device is a display.
- Input / output of the key generation device 200 is performed using the input / output interface 205.
- USB is an abbreviation for Universal Serial Bus.
- the key generation device 200 includes elements such as a reception unit 210, a key generation unit 220, and an output unit 230. These elements are realized by software.
- the auxiliary storage device 203 stores a key generation program for operating a computer as a reception unit 210, a key generation unit 220, and an output unit 230.
- the key generator is loaded into memory 202 and executed by processor 201.
- the auxiliary storage device 203 further stores the OS. At least a portion of the OS is loaded into memory 202 and executed by processor 201.
- the processor 201 executes the key generation program while executing the OS.
- OS is an abbreviation for Operating System.
- the input / output data of the key generation program is stored in the storage unit 290.
- the memory 202 functions as a storage unit 290.
- other storage devices such as the auxiliary storage device 203, the register in the processor 201, and the cache memory in the processor 201 may function as the storage unit 290 instead of the memory 202 or together with the memory 202.
- the key generator 200 may include a plurality of processors that replace the processor 201.
- the key generation program can be computer-readablely recorded (stored) on a non-volatile recording medium such as an optical disk or a flash memory.
- the configuration of the data encryption device 300 will be described with reference to FIG.
- the data encryption device 300 is a computer including hardware such as a processor 301, a memory 302, an auxiliary storage device 303, a communication device 304, and an input / output interface 305. These hardware are connected to each other via a signal line. These hardware correspond to the hardware of the key generator 200.
- the data encryption device 300 includes elements such as a reception unit 310, a public key storage unit 320, a data encryption unit 330, and an output unit 340. These elements are realized by software.
- the auxiliary storage device 303 stores a data encryption program for operating the computer as a reception unit 310, a public key storage unit 320, a data encryption unit 330, and an output unit 340.
- the data encryption program is loaded into memory 302 and executed by processor 301.
- the input / output data of the data encryption program is stored in the storage unit 390.
- the memory 302 functions as a storage unit 390.
- another storage device of the data encryption device 300 may function as a storage unit 390 instead of the memory 302 or together with the memory 302.
- the data encryption device 300 may include a plurality of processors that replace the processor 301.
- the data encryption program can be recorded (stored) in a non-volatile recording medium so that it can be read by a computer.
- the configuration of the model encryption device 400 will be described with reference to FIG.
- the model encryption device 400 is a computer including hardware such as a processor 401, a memory 402, an auxiliary storage device 403, a communication device 404, and an input / output interface 405. These hardware are connected to each other via a signal line. These hardware correspond to the hardware of the key generator 200.
- the model encryption device 400 includes elements such as a reception unit 410, a public key storage unit 420, a model encryption unit 430, and an output unit 440. These elements are realized by software.
- the auxiliary storage device 403 stores a model encryption program for operating the computer as a reception unit 410, a public key storage unit 420, a model encryption unit 430, and an output unit 440.
- the model encryption program is loaded into memory 402 and executed by processor 401.
- the input / output data of the model encryption program is stored in the storage unit 490.
- the memory 402 functions as a storage unit 490.
- another storage device of the model encryption device 400 may function as a storage unit 490 instead of the memory 402 or together with the memory 402.
- the model encryption device 400 may include a plurality of processors that replace the processor 401.
- the model encryption program can be recorded (stored) in a non-volatile recording medium so that it can be read by a computer.
- the configuration of the homomorphic inference device 500 will be described with reference to FIG.
- the homomorphic reasoning device 500 is a computer including hardware such as a processor 501, a memory 502, an auxiliary storage device 503, a communication device 504, and an input / output interface 505. These hardware are connected to each other via a signal line. These hardware correspond to the hardware of the key generator 200.
- the homomorphic inference device 500 includes a reception unit 510, a public key storage unit 521, a ciphertext storage unit 522, a model division unit 530, a pre-calculation unit 541, a preliminary result storage unit 542, a homomorphic inference unit 551, and a ciphertext storage unit 552. And an element such as an output unit 560. These elements are realized by software.
- the auxiliary storage device 503 includes a reception unit 510, a public key storage unit 521, a ciphertext storage unit 522, a model division unit 530, a pre-calculation unit 541, a pre-calculation unit 542, a homomorphic inference unit 551, and a ciphertext storage unit 552. And a homomorphic inference program for operating the computer as the output unit 560 is stored. The homomorphic inference program is loaded into memory 502 and executed by processor 501.
- the input / output data of the homomorphic inference program is stored in the storage unit 590.
- the memory 502 functions as a storage unit 590.
- another storage device of the homomorphic reasoning device 500 may function as a storage unit 590 instead of the memory 502 or together with the memory 502.
- the homomorphic inference device 500 may include a plurality of processors that replace the processor 501.
- the homomorphic inference program can be recorded (stored) in a non-volatile recording medium so that it can be read by a computer.
- the configuration of the partial decoding device 600 will be described with reference to FIG.
- the partial decoding device 600 is a computer including hardware such as a processor 601, a memory 602, an auxiliary storage device 603, a communication device 604, and an input / output interface 605. These hardware are connected to each other via a signal line. These hardware correspond to the hardware of the key generator 200.
- the partial decryption device 600 includes elements such as a reception unit 610, a secret key storage unit 620, a partial decryption unit 630, and an output unit 640. These elements are realized by software.
- the auxiliary storage device 603 stores a partial decoding program for operating the computer as a reception unit 610, a private key storage unit 620, a partial decoding unit 630, and an output unit 640.
- the partial decoding program is loaded into memory 602 and executed by processor 601.
- the input / output data of the partial decoding program is stored in the storage unit 690.
- the memory 602 functions as a storage unit 690.
- another storage device of the partial decoding device 600 may function as a storage unit 690 instead of the memory 602 or together with the memory 602.
- the partial decoding device 600 may include a plurality of processors that replace the processor 601.
- the partial decoding program can be recorded (stored) in a non-volatile recording medium so that it can be read by a computer.
- the configuration of the final decoding device 700 will be described with reference to FIG. 7.
- the final decoding device 700 is a computer including hardware such as a processor 701, a memory 702, an auxiliary storage device 703, a communication device 704, and an input / output interface 705. These hardware are connected to each other via a signal line. These hardware correspond to the hardware of the key generator 200.
- the final decryption device 700 includes elements such as a reception unit 710, a secret key storage unit 720, a final decryption unit 730, an inference result storage unit 740, and an output unit 750. These elements are realized by software.
- the auxiliary storage device 703 stores a final decryption program for operating the computer as a reception unit 710, a secret key storage unit 720, a final decryption unit 730, an inference result storage unit 740, and an output unit 750.
- the final decryption program is loaded into memory 702 and executed by processor 701.
- the input / output data of the final decoding program is stored in the storage unit 790.
- the memory 702 functions as a storage unit 790.
- another storage device of the final decoding device 700 may function as a storage unit 790 instead of the memory 702 or together with the memory 702.
- the final decoding device 700 may include a plurality of processors that replace the processor 701.
- the final decoding program can be recorded (stored) in a non-volatile recording medium so that it can be read by a computer.
- the operation procedure of the secret information processing system 100 corresponds to the secret information processing method. Further, the operation procedure of the secret information processing system 100 corresponds to the processing procedure by the secret information processing program.
- the data key pair is a key pair for input data dt , which will be described later, and is composed of a data public key and a data private key.
- the data public key is a public key for encrypting the input data dt .
- the data private key is a private key corresponding to the data public key.
- the ciphertext of the input data dt can be decrypted by the data private key.
- Ciphertext is data obtained by encryption.
- Steps S101 to S104 are executed by the key generator 200.
- the reception unit 210 receives the parameter ⁇ 1 .
- Parameter ⁇ 1 is a key generation parameter for the data key pair.
- the parameter ⁇ 1 is input to the key generator 200 by the user.
- step S102 the key generation unit 220 executes the key generation algorithm with the parameter ⁇ 1 as an input.
- the public key PK 1 and the private key SK 1 are generated.
- the public key PK 1 is a public key for data
- the private key SK 1 is a private key for data.
- step S103 the output unit 230 transmits the public key PK 1 to each of the data encryption device 300 and the homomorphic inference device 500.
- step S104 the output unit 230 transmits the private key SK 1 to the final decoding device 700.
- Step S111 and step S112 are executed by the data encryption device 300.
- the reception unit 310 receives the public key PK 1 .
- the public key storage unit 320 stores the public key PK 1 in the storage unit 290.
- Step S121 and step S122 are executed by the homomorphic inference device 500.
- the reception unit 510 receives the public key PK 1 .
- the public key storage unit 521 stores the public key PK 1 in the storage unit 590.
- Step S131 and step S132 are executed by the final decoding device 700.
- the reception unit 710 receives the private key SK 1 .
- the private key storage unit 720 stores the private key SK 1 in the storage unit 790.
- the private key SK 1 is stored strictly so as not to leak to the outside.
- the model key pair is a key pair for the inference model data M described later, and is composed of a model public key and a model private key.
- the model public key is a public key for encrypting the inference model data M.
- the model private key is a private key corresponding to the model public key.
- the ciphertext of the inference model data M can be decrypted by the model secret key.
- Steps S201 to S204 are executed by the key generator 200.
- the reception unit 210 receives the parameter ⁇ 2 .
- Parameter ⁇ 2 is a key generation parameter for the model key pair.
- the parameter ⁇ 2 is input to the key generator 200 by the user.
- step S202 the key generation unit 220 executes the key generation algorithm with the parameter ⁇ 2 as an input.
- the public key PK 2 and the private key SK 2 are generated.
- the public key PK 2 is a model public key
- the private key SK 2 is a model private key.
- step S203 the output unit 230 transmits the public key PK 2 to each of the model encryption device 400 and the homomorphic inference device 500.
- step S204 the output unit 230 transmits the private key SK 2 to the partial decoding device 600.
- Step S211 and step S212 are executed by the model encryption device 400.
- the reception unit 410 receives the public key PK 2 .
- the public key storage unit 420 stores the public key PK 2 in the storage unit 490.
- Step S221 and step S222 are executed by the homomorphic inference device 500.
- the reception unit 510 receives the public key PK 2 .
- the public key storage unit 521 stores the public key PK 2 in the storage unit 590.
- Step S231 and step S232 are executed by the partial decoding device 600.
- the reception unit 610 receives the private key SK 2 .
- the private key storage unit 620 stores the private key SK 2 in the storage unit 690.
- the private key SK 2 is stored strictly so as not to leak to the outside.
- Step S301 to S303 are executed by the data encryption device 300.
- the reception unit 310 receives the input data dt .
- the input data d t is the input data at the time t.
- T is an integer of 1 or more (natural number).
- the input data is represented by a vector consisting of n floating point numbers.
- N is an integer of 1 or more.
- the reception unit 310 collects measured values (floating point numbers) obtained at time t by various sensors provided in the factory from various sensors. The collected measured value becomes the input data dt .
- step S302 the data encryption unit 330 encrypts the input data dt .
- the data encryption unit 330 executes an encryption algorithm for the input data dt using the public key PK 1 .
- the data ciphertext C ( dt ) is generated.
- the data ciphertext C ( dt ) is an encrypted input data dt , that is, a ciphertext of the input data dt .
- each element of the input data dt is encrypted by the encryption algorithm described in the above document (1).
- step S303 the output unit 340 transmits the data ciphertext C ( dt ) to the homomorphic inference device 500.
- Steps S311 to S313 are executed by the model encryption device 400.
- the reception unit 410 receives the inference model data M.
- the inference model data M is input to the model encryption device 400 by the user.
- the inference model data M may be stored in advance in the storage unit 490.
- step S312 the model encryption unit 430 encrypts the inference model data M. Specifically, the model encryption unit 430 executes an encryption algorithm for the inference model data M using the public key PK 2 . As a result, the model ciphertext C (M) is generated.
- the model ciphertext C (M) is an encrypted inference model data M, that is, a ciphertext of the inference model data M.
- the inference model data M will be described.
- the inference model data M is data for the inference model (M).
- the inference model (M) is a machine learning model for inference processing and is represented by a recursive neural network.
- the specific recursive neural network is "LSTM”.
- RSTM is an abbreviation for Long Short-term Memory.
- the inference model data M is a matrix having elements of k ⁇ (n + m). Each element is a floating point number.
- K is an integer of 1 or more.
- N is an integer of 1 or more (as described above).
- M is an integer of 1 or more.
- M [M'
- M' is a matrix having elements of k ⁇ n. Each element is a floating point number.
- M" is a matrix having elements of k ⁇ m. Each element is a floating point number.
- M''] means a matrix obtained by connecting the matrix M'and the matrix M''.
- the inference process using the inference model data M is represented by the equation (1).
- D t-1 is an inference result at time t-1, and is represented by a vector consisting of n floating-point numbers.
- D t is input data at time t, and is represented by a vector consisting of n floating-point numbers.
- ⁇ Represents the product of a matrix and a vector.
- + Represents the addition of vectors.
- step S313 the output unit 440 transmits the model ciphertext C (M) to the homomorphic inference device 500.
- Steps S321 to S326 are executed by the homomorphic inference device 500.
- the reception unit 510 receives the data ciphertext C ( dt ).
- the ciphertext storage unit 522 stores the data ciphertext C ( dt ) in the storage unit 590.
- step S322 the reception unit 510 receives the model ciphertext C (M). Then, the ciphertext storage unit 522 stores the model ciphertext C (M) in the storage unit 590.
- model ciphertext is represented by "C (M)” or "W".
- the model ciphertext W can be expressed by equation (2).
- “W'” represents an inference ciphertext.
- the inference ciphertext W' corresponds to the matrix M'encrypted by the encryption algorithm used to encrypt the inference model data M, that is, the ciphertext of the matrix M'. That is, the inference ciphertext W'is a matrix having k ⁇ n encrypted elements.
- “W''” represents a ciphertext for calculation.
- the calculation ciphertext W'' corresponds to the ciphertext of the matrix M'', that is, the matrix M'' encrypted by the encryption algorithm used for encrypting the inference model data M. That is, the calculation ciphertext W'' is a matrix having k ⁇ m encrypted elements.
- step S324 the model division unit 530 divides the model ciphertext W into the inference ciphertext W'and the calculation ciphertext W'.
- step S325 the pre-calculation unit 541 executes the pre-calculation using the data ciphertext C ( dt ) and the calculation ciphertext W''. Specifically, the pre-calculation unit 541 generates the pre-result ciphertext C ( Dt '') without decrypting the calculation ciphertext W'' and the data ciphertext C ( dt ).
- the prior result ciphertext C (D t '') corresponds to a ciphertext obtained by encrypting the product of the matrix M'' and the vector representing the input data dt .
- the prior result ciphertext C ( Dt '') is calculated by a homomorphic algorithm.
- the homomorphic operation algorithm is an algorithm of homomorphic encryption (particularly, multiple key homomorphic encryption). For example, the homomorphic arithmetic algorithm described in the above document (1) is used.
- step S326 the pre-result storage unit 542 stores the pre-result ciphertext C ( Dt '') in the storage unit 590.
- Steps S401 to S403 are executed by the homomorphic inference device 500.
- the model division unit 530 divides the model ciphertext W into the inference ciphertext W'and the calculation ciphertext W''.
- step S402 the homomorphic inference unit 551 executes the intermediate inference process by using the previous result ciphertext C (D t-1 ) and the inference ciphertext W'.
- the previous result ciphertext C (D t-1 ) is an encrypted inference result for the previous input data dt-1 , that is, a ciphertext of the previous inference result.
- the homomorphic inference unit 551 uses the previous result ciphertext C (D t-1 ) and the inference ciphertext W'without decrypting them, and uses the intermediate result ciphertext C (D t-1 '). ) Is generated.
- the intermediate result ciphertext C (D t-1 ') corresponds to a ciphertext obtained by encrypting the product of the matrix M'and the vector representing the inference result for the previous input data d t-1 .
- the intermediate result ciphertext C (D t-1 ') is calculated by a homomorphic calculation algorithm.
- a homomorphic calculation algorithm For example, the homomorphic arithmetic algorithm described in the above document (1) is used.
- step S403 the homomorphic inference unit 551 executes the final inference process using the intermediate result ciphertext C (D t-1 ') and the prior result ciphertext C (D t '').
- the homomorphic inference unit 551 uses the intermediate result ciphertext C (D t-1 ') and the prior result ciphertext C (D t '') without decrypting the inference result ciphertext C.
- the inference result ciphertext C (D t ) is an encrypted inference result for the input data dt this time, that is, a ciphertext of the inference result this time.
- the inference result ciphertext C (D t ) is a vector obtained by decoding the intermediate result ciphertext C (D t-1 ') and a vector obtained by decoding the prior result ciphertext C (D t ''). It corresponds to the ciphertext obtained by encrypting the result of the addition of.
- the inference result ciphertext C (D t ) is calculated by a homomorphic calculation algorithm.
- a homomorphic calculation algorithm For example, the homomorphic arithmetic algorithm described in the above document (1) is used.
- step S404 the ciphertext storage unit 552 stores the inference result ciphertext C ( Dt ) in the storage unit 590.
- Step S501 and step S502 are executed by the homomorphic inference device 500.
- the output unit 560 acquires the inference result ciphertext C ( Dt ) from the storage unit 590.
- step S502 the output unit 560 transmits the inference result ciphertext C ( Dt ) to the partial decoding device 600 and the final decoding device 700, respectively.
- Steps S511 to S513 are executed by the partial decoding device 600.
- the reception unit 610 receives the inference result ciphertext C ( Dt ).
- step S512 the partial decryption unit 630 performs partial decryption on the inference result ciphertext C (D t ) using the secret key SK 2 . As a result, the partial decoding result C (D 2, t ) is generated.
- the partial decoding unit 630 calculates each element d' 2, t of the partial decoding result C (D 2, t ) by calculating the equation (3). That is, the partial decoding unit 630 calculates the inner product of the vector which is an element of the inference result ciphertext C (D t ) and the vector representing the secret key SK 2 , and the calculated inner product and the value selected from the probability distribution. Calculate the result of addition. The calculated result is each element d' 2, t of the partial decoding result C (D 2, t ).
- C represents a vector constituting one element of the inference result ciphertext C (D t ).
- the inference result ciphertext C (D t ) is a vector or a matrix.
- the vector or matrix representing the inference result ciphertext C ( Dt ) has, for example, the ciphertext of the encryption method described in the above document (1) as an element.
- "X" represents a specific probability distribution.
- the probability distribution X is a discrete normal distribution having 0, 1/2 32 , ..., (2 32 -1) / 2 32 as values.
- “E” represents a value selected along the probability distribution X.
- ⁇ c, SK 2 > represents the inner product of the vector C and the vector representing the secret key SK 2 .
- step S513 the output unit 640 transmits the partial decoding result C (D 2, t ) to the final decoding device 700.
- Steps S521 to S524 are executed by the final decoding device 700.
- the reception unit 710 receives the inference result ciphertext C ( Dt ).
- step S522 the reception unit 710 receives the partial decoding result C (D 2, t ).
- the final decoding unit 730 decodes the inference result data D t from the inference result ciphertext C (D t ) and the partial decryption result C (D 2, t ) using the secret key SK 1 . Specifically, the final decoding unit 730 calculates each element d' t of the inference result data D t by calculating the equation (4). That is, the final decoding unit 730 calculates the inner product of the vector which is an element of the inference result ciphertext C (D t ) and the vector representing the secret key SK 1 , and the calculated inner product and the partial decoding result C (D 2, t). The sum obtained by the addition with the elements of) is calculated, and each element d' t of the inference result data D t is determined based on the calculated sum.
- ⁇ c, SK 1 > represents the inner product of the vector C and the vector representing the secret key SK 1 .
- [A] 1/4 represents 1 if the value A is close to 1/4, and 0 if the value A is not close to 1/4.
- [A] 1/4 represents 1 if the difference between the values A and 1/4 is smaller than the threshold value, and represents 0 if the difference between the values A and 1/4 is larger than the threshold value.
- [A] 1/4 represents 1 or 0 if the difference between the values A and 1/4 is equal to the threshold value.
- step S524 the inference result storage unit 740 stores the inference result data Dt in the storage unit 790. Further, the output unit 750 outputs the inference result data D t . For example, the output unit 750 displays the inference result data Dt on the display.
- the secret information processing system 100 can execute inference processing by a recursive neural network while the input data is encrypted. Therefore, the confidential information processing system 100 can outsource the inference processing to the cloud while protecting the privacy of the data provider.
- the secret information processing system 100 can execute inference processing by a recursive neural network while encrypting the inference model data. Therefore, the confidential information processing system 100 can outsource the inference processing to the cloud while protecting the privacy of the model provider.
- the secret information processing system 100 may execute a process (pre-process) that does not depend on the inference result data at time t-1 in the inference process at time t before executing the inference process at time t in the recursive neural network.
- pre-process a process that does not depend on the inference result data at time t-1 in the inference process at time t before executing the inference process at time t in the recursive neural network.
- the ciphertext expansion process is, for example, a process of converting a ciphertext that can be decrypted by the private key SK 1 into a ciphertext that can be decrypted by using both the private key SK 1 and the private key SK 2 .
- Two or more of the plurality of devices provided in the confidential information processing system 100 may be combined into one device.
- the data encryption device 300 and the model encryption device 400 may be combined into one device, or the partial decryption device 600 and the final decryption device 700 may be combined into one device.
- the transmission and reception of data between devices may be replaced with the mailing of data or the input / output of data by the user.
- the hardware configuration of the key generator 200 will be described with reference to FIG.
- the key generator 200 includes a processing circuit 209.
- the processing circuit 209 is hardware that realizes the elements of the key generator 200.
- the processing circuit 209 may be dedicated hardware or may be a processor 201 that executes a program stored in the memory 202.
- the processing circuit 209 is dedicated hardware, the processing circuit 209 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
- ASIC is an abbreviation for Application Specific Integrated Circuit.
- FPGA is an abbreviation for Field Programmable Gate Array.
- the key generator 200 may include a plurality of processing circuits that replace the processing circuit 209.
- processing circuit 209 some functions may be realized by dedicated hardware, and the remaining functions may be realized by software or firmware.
- the functions of the key generator 200 can be realized by hardware, software, firmware, or a combination thereof.
- the hardware configuration of the data encryption device 300, the model encryption device 400, the homomorphic inference device 500, the partial decryption device 600, and the final decryption device 700 is the same as the hardware configuration of the key generation device 200.
- Embodiment 1 is an example of a preferred embodiment and is not intended to limit the technical scope of the present disclosure.
- the first embodiment may be partially implemented or may be implemented in combination with other embodiments.
- the procedure described using the flowchart or the like may be appropriately changed.
- the "part" which is an element of each device of the confidential information processing system 100 may be read as “processing”, “process”, “circuit” or “circuit re”.
- 100 secret information processing system 101 network, 200 key generator, 201 processor, 202 memory, 203 auxiliary storage device, 204 communication device, 205 input / output interface, 209 processing circuit, 210 reception unit, 220 key generation unit, 230 output unit , 290 storage unit, 300 data encryption device, 301 processor, 302 memory, 303 auxiliary storage device, 304 communication device, 305 input / output interface, 310 reception unit, 320 public key storage unit, 330 data encryption unit, 340 output unit. , 390 storage unit, 400 model encryption device, 401 processor, 402 memory, 403 auxiliary storage device, 404 communication device, 405 input / output interface, 410 reception unit, 420 public key storage unit, 430 model encryption unit, 440 output unit.
- 490 storage unit 500 quasi-isomorphic inference device, 501 processor, 502 memory, 503 auxiliary storage device, 504 communication device, 505 input / output interface, 510 reception unit, 521 public key storage unit, 522 cryptographic text storage unit, 530 model division Unit, 541 pre-calculation unit, 542 pre-result storage unit, 551 quasi-isomorphic inference unit, 552 cryptographic text storage unit, 560 output unit, 590 storage unit, 600 partial decryption device, 601 processor, 602 memory, 603 auxiliary storage device, 604 Communication device, 605 input / output interface, 610 reception unit, 620 secret key storage unit, 630 partial decryption unit, 640 output unit, 690 storage unit, 700 final decryption device, 701 processor, 702 memory, 703 auxiliary storage device, 704 communication device , 705 input / output interface, 710 reception unit, 720 private key storage unit, 730 final decryption unit, 740 inference result storage unit, 750 output
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
昨今、クラウドサービスの利用が広まりつつあるが、クラッキングの懸念およびクラウドの信頼性の懸念から、クラウド上ではデータを暗号化して保管することが考えられる。
また、準同型暗号は、暗号化されているデータに対して、復号することなく演算を施すことができる。
そのため、準同型暗号は、安全性を損なうことなくクラウドサービスの利用を可能とする。
入力層は、入力データを受け付けるための層である。
中間層は、入力データまたは他の中間層の計算結果に対して特定の計算を行うための層である。
出力層は、中間層の最終の計算結果を出力するための層である。
そのため、計算能力の低い端末では、このようなニューラルネットワークの推論処理を実行することが困難である。
そこで、高い計算能力を持ったクラウドに推論処理を委託することが考えられる。
その場合、準同型暗号を用いて入力データを暗号化したままニューラルネットワークによる推論処理を行うことで、データ提供者のプライバシーを保ちつつクラウドへ推論処理を委託することができる。
入力データ提供者と推論モデル提供者が入力データと推論モデルデータを共に秘匿したままクラウドに推論処理を委託することを想定する。その場合、入力データが入力データ提供者の暗号化鍵で暗号化されていて、且つ、推論モデルデータが推論モデル提供者の暗号化鍵で暗号化されている必要がある。
複数鍵準同型暗号は、準同型暗号方式の一種であり、異なる暗号化鍵で暗号化されている複数の暗号文を復号することなく複数の暗号文に対して演算を施すことができる。
第1行列と第2行列を連結して得らえる推論モデルデータを暗号化して得られるモデル暗号文を、前記第1行列の暗号文に相当する推論用暗号文と、前記第2行列の暗号文に相当する計算用暗号文と、に分割するモデル分割部と、
前記計算用暗号文と、入力データを暗号化して得られるデータ暗号文と、を復号せずに、準同型演算アルゴリズムによって、前記第1行列と前記入力データを表すベクトルの積の暗号文に相当する事前結果暗号文を生成する事前計算部と、
前記事前結果暗号文と前記推論用暗号文とを復号せずに用いて、準同型演算アルゴリズムによって、前記入力データに対する推論結果の暗号文である推論結果暗号文を生成する準同型推論部と、
前記モデル暗号文のための秘密鍵であるモデル用秘密鍵を用いて、前記推論結果暗号文に対する部分復号を行って、部分復号結果を生成する部分復号部と、
前記データ暗号文のための秘密鍵であるデータ用秘密鍵を用いて、前記部分復号結果から前記入力データに対する前記推論結果を復号する最終復号部と、を備える。
秘匿情報処理システム100について、図1から図13に基づいて説明する。
図1に基づいて、秘匿情報処理システム100の構成を説明する。
秘匿情報処理システム100は、鍵生成装置200と、データ暗号化装置300と、モデル暗号化装置400と、準同型推論装置500と、部分復号装置600と、最終復号装置700と、を備える。これらの装置は、ネットワーク101に接続され、ネットワーク101を介して互いに通信する。ネットワーク101の具体例はインターネットである。
鍵生成装置200は、プロセッサ201とメモリ202と補助記憶装置203と通信装置204と入出力インタフェース205といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
DSPは、Digital Signal Processorの略称である。
GPUは、Graphics Processing Unitの略称である。
RAMは、Random Access Memoryの略称である。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
NICは、Network Interface Cardの略称である。
USBは、Universal Serial Busの略称である。
補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
プロセッサ201は、OSを実行しながら、鍵生成プログラムを実行する。
OSは、Operating Systemの略称である。
メモリ202は記憶部290として機能する。但し、補助記憶装置203、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの他の記憶装置が、メモリ202の代わりに、又は、メモリ202と共に、記憶部290として機能してもよい。
データ暗号化装置300は、プロセッサ301とメモリ302と補助記憶装置303と通信装置304と入出力インタフェース305といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
メモリ302は記憶部390として機能する。但し、データ暗号化装置300の他の記憶装置が、メモリ302の代わりに、又は、メモリ302と共に、記憶部390として機能してもよい。
モデル暗号化装置400は、プロセッサ401とメモリ402と補助記憶装置403と通信装置404と入出力インタフェース405といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
メモリ402は記憶部490として機能する。但し、モデル暗号化装置400の他の記憶装置が、メモリ402の代わりに、又は、メモリ402と共に、記憶部490として機能してもよい。
準同型推論装置500は、プロセッサ501とメモリ502と補助記憶装置503と通信装置504と入出力インタフェース505といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
メモリ502は記憶部590として機能する。但し、準同型推論装置500の他の記憶装置が、メモリ502の代わりに、又は、メモリ502と共に、記憶部590として機能してもよい。
部分復号装置600は、プロセッサ601とメモリ602と補助記憶装置603と通信装置604と入出力インタフェース605といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
メモリ602は記憶部690として機能する。但し、部分復号装置600の他の記憶装置が、メモリ602の代わりに、又は、メモリ602と共に、記憶部690として機能してもよい。
最終復号装置700は、プロセッサ701とメモリ702と補助記憶装置703と通信装置704と入出力インタフェース705といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
メモリ702は記憶部790として機能する。但し、最終復号装置700の他の記憶装置が、メモリ702の代わりに、又は、メモリ702と共に、記憶部790として機能してもよい。
秘匿情報処理システム100の動作の手順は秘匿情報処理方法に相当する。また、秘匿情報処理システム100の動作の手順は秘匿情報処理プログラムによる処理の手順に相当する。
データ用鍵ペアは、後述する入力データdtのための鍵ペアであり、データ用公開鍵とデータ用秘密鍵とで構成される。
データ用公開鍵は、入力データdtを暗号化するための公開鍵である。
データ用秘密鍵は、データ用公開鍵に対応する秘密鍵である。データ用秘密鍵により、入力データdtの暗号文を復号することができる。暗号文は、暗号化によって得られるデータである。
ステップS101において、受付部210は、パラメータλ1を受け付ける。
パラメータλ1は、データ用鍵ペアのための鍵生成パラメータである。例えば、パラメータλ1は、利用者によって鍵生成装置200に入力される。
公開鍵PK1はデータ用公開鍵であり、秘密鍵SK1はデータ用秘密鍵である。
文献(1):H. Chen, I. Chillotti, Y. Song. “Multi-key Homomorphic Encryption from TFHE”. In ASIACRYPT, pages 446-472, 2019.
ステップS111において、受付部310は、公開鍵PK1を受信する。
ステップS112において、公開鍵保管部320は、公開鍵PK1を記憶部290に保管する。
ステップS121において、受付部510は、公開鍵PK1を受信する。
ステップS122において、公開鍵保管部521は、公開鍵PK1を記憶部590に保管する。
ステップS131において、受付部710は、秘密鍵SK1を受信する。
ステップS132において、秘密鍵保管部720は、秘密鍵SK1を記憶部790に保管する。なお、秘密鍵SK1は外部に漏れないように厳重に保管される。
モデル用鍵ペアは、後述する推論モデルデータMのための鍵ペアであり、モデル用公開鍵とモデル用秘密鍵とで構成される。
モデル用公開鍵は、推論モデルデータMを暗号化するための公開鍵である。
モデル用秘密鍵は、モデル用公開鍵に対応する秘密鍵である。モデル用秘密鍵により、推論モデルデータMの暗号文を復号することができる。
ステップS201において、受付部210は、パラメータλ2を受け付ける。
パラメータλ2は、モデル用鍵ペアのための鍵生成パラメータである。例えば、パラメータλ2は、利用者によって鍵生成装置200に入力される。
公開鍵PK2はモデル用公開鍵であり、秘密鍵SK2はモデル用秘密鍵である。
ステップS211において、受付部410は、公開鍵PK2を受信する。
ステップS212において、公開鍵保管部420は、公開鍵PK2を記憶部490に保管する。
ステップS221において、受付部510は、公開鍵PK2を受信する。
ステップS222において、公開鍵保管部521は、公開鍵PK2を記憶部590に保管する。
ステップS231において、受付部610は、秘密鍵SK2を受信する。
ステップS232において、秘密鍵保管部620は、秘密鍵SK2を記憶部690に保管する。なお、秘密鍵SK2は外部に漏れないように厳重に保管される。
ステップS301からステップS303は、データ暗号化装置300によって実行される。
ステップS301において、受付部310は、入力データdtを受け付ける。
入力データdtは、時刻tの入力データである。「t」は1以上の整数(自然数)である。
入力データは、n個の浮動小数点数から成るベクトルで表される。「n」は1以上の整数である。
例えば、受付部310は、工場に設けられた各種センサによって時刻tに得られた計測値(浮動小数点数)を各種センサから収集する。収集された計測値が入力データdtとなる。
データ暗号文C(dt)は、暗号化された入力データdt、すなわち、入力データdtの暗号文である。
ステップS311において、受付部410は、推論モデルデータMを受け付ける。例えば、推論モデルデータMは、利用者によってモデル暗号化装置400に入力される。但し、推論モデルデータMは、記憶部490に予め記憶されてもよい。
モデル暗号文C(M)は、暗号化された推論モデルデータM、すなわち、推論モデルデータMの暗号文である。
推論モデルデータMは、推論モデル(M)のためのデータである。推論モデル(M)は、推論処理のための機械学習モデルであり、再帰的ニューラルネットワークで表される。具体的な再帰的ニューラルネットワークは「LSTM」である。
LSTMは、Long Short-term Memoryの略称である。
「k」は、1以上の整数である。
「n」は、1以上の整数である(前述の通り)。
「m」は、1以上の整数である。
「M’」は、k×nの要素を持つ行列である。各要素は浮動小数点数である。
「M’’」は、k×mの要素を持つ行列である。各要素は浮動小数点数である。
[M’||M’’]は、行列M’と行列M’’を連結して得られる行列を意味する。
「dt」は、時刻tにおける入力データであり、n個の浮動小数点数から成るベクトルで表される。
「・」は、行列とベクトルの掛け算を表す。
「+」は、ベクトル同士の足し算を表す。
ステップS313において、出力部440は、モデル暗号文C(M)を準同型推論装置500に送信する。
ステップS321において、受付部510は、データ暗号文C(dt)を受信する。
そして、暗号文保管部522は、データ暗号文C(dt)を記憶部590に保管する。
そして、暗号文保管部522は、モデル暗号文C(M)を記憶部590に保管する。
「W’’」は、計算用暗号文を表す。計算用暗号文W’’は、推論モデルデータMの暗号化に用いられる暗号化アルゴリズムによって暗号化された行列M’’、すなわち、行列M’’の暗号文に相当する。つまり、計算用暗号文W’’は、k×mの暗号化された要素を持つ行列である。
具体的には、事前計算部541は、計算用暗号文W’’とデータ暗号文C(dt)とを復号せずに、事前結果暗号文C(Dt’’)を生成する。
準同型演算アルゴリズムは、準同型暗号(特に、複数鍵準同型暗号)のアルゴリズムである。
例えば、上記文献(1)に記載された準同型演算アルゴリズムが使用される。
ステップS401からステップS403は、準同型推論装置500によって実行される。
ステップS401において、モデル分割部530は、モデル暗号文Wを推論用暗号文W’と計算用暗号文W’’とに分割する。
前回結果暗号文C(Dt-1)は、前回の入力データdt-1に対する暗号化された推論結果、すなわち、前回の推論結果の暗号文である。
中間結果暗号文C(Dt-1’)は、行列M’と前回の入力データdt-1に対する推論結果を表すベクトルとの積を暗号化して得られる暗号文に相当する。
例えば、上記文献(1)に記載された準同型演算アルゴリズムが使用される。
推論結果暗号文C(Dt)は、今回の入力データdtに対する暗号化された推論結果、すなわち、今回の推論結果の暗号文である。
例えば、上記文献(1)に記載された準同型演算アルゴリズムが使用される。
ステップS501およびステップS502は、準同型推論装置500によって実行される。
ステップS501において、出力部560は、推論結果暗号文C(Dt)を記憶部590から取得する。
ステップS502において、出力部560は、推論結果暗号文C(Dt)を部分復号装置600と最終復号装置700とのそれぞれに送信する。
ステップS511において、受付部610は、推論結果暗号文C(Dt)を受信する。
つまり、部分復号部630は、推論結果暗号文C(Dt)の要素であるベクトルと秘密鍵SK2を表すベクトルとの内積を算出し、算出した内積と確率分布から選択される値との足し算の結果を算出する。算出される結果が部分復号結果C(D2,t)の各要素d’2,tとなる。
「X」は、特定の確率分布を表す。例えば、確率分布Xは、0,1/232,・・・,(232-1)/232を値としてとる離散正規分布である。
「e」は、確率分布Xに沿って選ばれた値を表す。
<c,SK2>は、ベクトルCと秘密鍵SK2を表すベクトルの内積を表す。
ステップS521において、受付部710は、推論結果暗号文C(Dt)を受信する。
具体的には、最終復号部730は、式(4)を計算することによって、推論結果データDtの各要素d’tを算出する。
つまり、最終復号部730は、推論結果暗号文C(Dt)の要素であるベクトルと秘密鍵SK1を表すベクトルとの内積を算出し、算出した内積と部分復号結果C(D2,t)の要素との足し算によって得られる和を算出し、算出した和に基づいて推論結果データDtの各要素d’tを決定する。
[A]1/4は、値Aが1/4に近ければ1を表し、値Aが1/4に近くなければ0を表す。具体的には、[A]1/4は、値Aと1/4の差が閾値より小さければ1を表し、値Aと1/4の差が閾値より大きければ0を表す。また、[A]1/4は、値Aが1/4の差が閾値と等しければ1または0を表す。
また、出力部750は、推論結果データDtを出力する。例えば、出力部750は、推論結果データDtをディスプレイに表示する。
秘匿情報処理システム100は、入力データを暗号化したまま、再帰的ニューラルネットワークによる推論処理を実行できる。そのため、秘匿情報処理システム100により、データ提供者のプライバシーを保護したまま、推論処理をクラウドに委託することができる。
入力データと推論モデルデータとを暗号化したまま推論処理を実行するためには、複数鍵準同型暗号の性質により、暗号文拡大処理を行う必要がある。複数鍵準同型暗号は、上記文献(1)に記載された準同型暗号方式である。暗号文拡大処理は、例えば、秘密鍵SK1で復号できる暗号文を秘密鍵SK1と秘密鍵SK2の両方を用いることで復号できる暗号文に変換する処理である。
暗号文拡大処理を事前計算処理として実行することで、実際の推論処理時に暗号文拡大処理などによる計算オーバヘッドを削減することができる。つまり、入力データと推論モデルデータを暗号化したままでの再帰的ニューラルネットワークの推論処理を効率的に実現できる。
秘匿情報処理システム100に備わる複数の装置のうち2つ以上の装置を1つの装置にまとめてもよい。例えば、データ暗号化装置300とモデル暗号化装置400を1つの装置にまとめてもよいし、部分復号装置600と最終復号装置700を1つの装置にまとめてもよい。
装置間のデータの送受信は、データの郵送または利用者によるデータの入出力に置き換えてもよい。
鍵生成装置200は処理回路209を備える。
処理回路209は、鍵生成装置200の要素を実現するハードウェアである。
処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
Claims (14)
- 第1行列と第2行列を連結して得らえる推論モデルデータを暗号化して得られるモデル暗号文を、前記第1行列の暗号文に相当する推論用暗号文と、前記第2行列の暗号文に相当する計算用暗号文と、に分割するモデル分割部と、
前記計算用暗号文と、入力データを暗号化して得られるデータ暗号文と、を復号せずに、準同型演算アルゴリズムによって、前記第1行列と前記入力データを表すベクトルの積の暗号文に相当する事前結果暗号文を生成する事前計算部と、
前記事前結果暗号文と前記推論用暗号文とを復号せずに用いて、準同型演算アルゴリズムによって、前記入力データに対する推論結果の暗号文である推論結果暗号文を生成する準同型推論部と、
前記モデル暗号文のための秘密鍵であるモデル用秘密鍵を用いて、前記推論結果暗号文に対して部分復号を行って、部分復号結果を生成する部分復号部と、
前記データ暗号文のための秘密鍵であるデータ用秘密鍵を用いて、前記部分復号結果から前記入力データに対する前記推論結果を復号する最終復号部と、
を備える秘匿情報処理システム。 - 前記準同型推論部は、前記事前結果暗号文と、前記推論用暗号文と、前回の入力データに対する推論結果の暗号文である前回結果暗号文と、を復号せずに用いて、前記推論結果暗号文を生成する
請求項1に記載の秘匿情報処理システム。 - 前記準同型推論部は、
前記推論用暗号文と前記前回結果暗号文とを復号せずに用いて、準同型演算アルゴリズムによって、前記第1行列と前記前回の入力データに対する前記推論結果を表すベクトルの積の暗号文に相当する中間結果暗号文を生成し、
前記中間結果暗号文と前記事前結果暗号文とを復号せずに用いて、準同型演算アルゴリズムによって、前記中間結果暗号文を復号して得られるベクトルと前記事前結果暗号文を復号して得られるベクトルとの足し算の結果の暗号文を前記推論結果暗号文として生成する
請求項2に記載の秘匿情報処理システム。 - 前記部分復号部は、前記推論結果暗号文の要素であるベクトルと前記モデル用秘密鍵を表すベクトルとの内積と、確率分布から選択される値との足し算の結果を、前記部分復号結果の要素として算出する
請求項1から請求項3のいずれか1項に記載の秘匿情報処理システム。 - 前記最終復号部は、前記データ用秘密鍵を用いて、前記推論結果暗号文と前記部分復号結果とから、前記入力データに対する前記推論結果を復号する
請求項1から請求項4のいずれか1項に記載の秘匿情報処理システム。 - 前記最終復号部は、前記推論結果暗号文の要素であるベクトルと前記データ用秘密鍵を表すベクトルとの内積と、前記部分復号結果の要素との足し算によって得られる和に基づいて、前記推論結果の要素を決定する
請求項5に記載の秘匿情報処理システム。 - 前記最終復号部は、前記和と1/4の差に基づいて前記推論結果の前記要素を決定する
請求項6に記載の秘匿情報処理システム。 - 前記最終復号部は、前記差が閾値より小さい場合に前記推論結果の前記要素を1に決定し、前記差が前記閾値より大きい場合に前記推論結果の前記要素を0に決定する
請求項7に記載の秘匿情報処理システム。 - 前記モデル分割部と前記事前計算部と前記準同型推論部とを備える準同型推論装置と、
前記部分復号部を備える部分復号装置と、
前記最終復号部を備える最終復号装置700と、を備える
請求項1から請求項8のいずれか1項に記載の秘匿情報処理システム。 - 前記入力データのための公開鍵であるデータ用公開鍵を用いて前記入力データを暗号化して前記データ暗号文を生成するデータ暗号化部と、
前記推論モデルデータのための公開鍵であるモデル用公開鍵を用いて前記推論モデルデータを暗号化して前記モデル暗号文を生成するモデル暗号化部と、を備える
請求項1から請求項9のいずれか1項に記載の秘匿情報処理システム。 - 前記データ暗号化部を備えるデータ暗号化装置と、
前記モデル暗号化部を備えるモデル暗号化装置と、を備える
請求項10に記載の秘匿情報処理システム。 - 前記データ用公開鍵と前記データ用秘密鍵の組と、前記モデル用公開鍵と前記モデル用秘密鍵の組と、を生成する鍵生成部を備える
請求項10または請求項11に記載の秘匿情報処理システム。 - 前記鍵生成部を備える鍵生成装置を備える
請求項12に記載の秘匿情報処理システム。 - モデル分割部が、第1行列と第2行列を連結して得らえる推論モデルデータを暗号化して得られるモデル暗号文を、前記第1行列の暗号文に相当する推論用暗号文と、前記第2行列の暗号文に相当する計算用暗号文と、に分割し、
事前計算部が、前記計算用暗号文と、入力データを暗号化して得られるデータ暗号文と、を復号せずに、準同型演算アルゴリズムによって、前記第1行列と前記入力データを表すベクトルの積の暗号文に相当する事前結果暗号文を生成し、
準同型推論部が、前記事前結果暗号文と、前記推論用暗号文と、前回の入力データに対する推論結果の暗号文である前回結果暗号文と、を復号せずに用いて、準同型演算アルゴリズムによって、前記入力データに対する推論結果の暗号文である推論結果暗号文を生成し、
部分復号部が、前記モデル暗号文のための秘密鍵であるモデル用秘密鍵を用いて、前記推論結果暗号文に対する部分復号を行って、部分復号結果を生成し、
最終復号部が、前記データ暗号文のための秘密鍵であるデータ用秘密鍵を用いて、前記部分復号結果から前記入力データに対する前記推論結果を復号する
秘匿情報処理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE112020007702.0T DE112020007702T5 (de) | 2020-12-24 | 2020-12-24 | System zur verarbeitung vertraulicher informationen und verfahren zur verarbeitung vertraulicher informationen |
CN202080107959.9A CN116601691A (zh) | 2020-12-24 | 2020-12-24 | 隐匿信息处理系统以及隐匿信息处理方法 |
PCT/JP2020/048498 WO2022137447A1 (ja) | 2020-12-24 | 2020-12-24 | 秘匿情報処理システムおよび秘匿情報処理方法 |
JP2022568484A JP7205016B2 (ja) | 2020-12-24 | 2020-12-24 | 秘匿情報処理システムおよび秘匿情報処理方法 |
US18/142,405 US20230269068A1 (en) | 2020-12-24 | 2023-05-02 | Confidential information processing system and confidential information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/048498 WO2022137447A1 (ja) | 2020-12-24 | 2020-12-24 | 秘匿情報処理システムおよび秘匿情報処理方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/142,405 Continuation US20230269068A1 (en) | 2020-12-24 | 2023-05-02 | Confidential information processing system and confidential information processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022137447A1 true WO2022137447A1 (ja) | 2022-06-30 |
Family
ID=82159279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/048498 WO2022137447A1 (ja) | 2020-12-24 | 2020-12-24 | 秘匿情報処理システムおよび秘匿情報処理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230269068A1 (ja) |
JP (1) | JP7205016B2 (ja) |
CN (1) | CN116601691A (ja) |
DE (1) | DE112020007702T5 (ja) |
WO (1) | WO2022137447A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7440149B1 (ja) | 2023-08-21 | 2024-02-28 | Eaglys株式会社 | データ生成方法、データ生成プログラム、およびデータ生成システム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160350648A1 (en) * | 2014-11-07 | 2016-12-01 | Microsoft Technology Licensing, Llc. | Neural networks for encrypted data |
JP2019046460A (ja) * | 2017-08-30 | 2019-03-22 | 株式会社アクセル | 推論装置、及び推論方法 |
WO2019102624A1 (ja) * | 2017-11-27 | 2019-05-31 | 三菱電機株式会社 | 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム |
JP2019113665A (ja) * | 2017-12-22 | 2019-07-11 | 株式会社アクセル | 撮像モジュール、画像処理デバイス、画像処理方法、および画像処理プログラム |
-
2020
- 2020-12-24 CN CN202080107959.9A patent/CN116601691A/zh active Pending
- 2020-12-24 JP JP2022568484A patent/JP7205016B2/ja active Active
- 2020-12-24 DE DE112020007702.0T patent/DE112020007702T5/de active Pending
- 2020-12-24 WO PCT/JP2020/048498 patent/WO2022137447A1/ja active Application Filing
-
2023
- 2023-05-02 US US18/142,405 patent/US20230269068A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160350648A1 (en) * | 2014-11-07 | 2016-12-01 | Microsoft Technology Licensing, Llc. | Neural networks for encrypted data |
JP2019046460A (ja) * | 2017-08-30 | 2019-03-22 | 株式会社アクセル | 推論装置、及び推論方法 |
WO2019102624A1 (ja) * | 2017-11-27 | 2019-05-31 | 三菱電機株式会社 | 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム |
JP2019113665A (ja) * | 2017-12-22 | 2019-07-11 | 株式会社アクセル | 撮像モジュール、画像処理デバイス、画像処理方法、および画像処理プログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7440149B1 (ja) | 2023-08-21 | 2024-02-28 | Eaglys株式会社 | データ生成方法、データ生成プログラム、およびデータ生成システム |
Also Published As
Publication number | Publication date |
---|---|
US20230269068A1 (en) | 2023-08-24 |
DE112020007702T5 (de) | 2023-08-10 |
JPWO2022137447A1 (ja) | 2022-06-30 |
JP7205016B2 (ja) | 2023-01-16 |
CN116601691A (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3566385B1 (en) | Homomorphic white box system and method for using same | |
US9166785B2 (en) | Cryptography processing device and cryptography processing method | |
JPWO2019130528A1 (ja) | 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム | |
CN111866018B (zh) | 数据信息加密发送方法、装置、计算机设备及存储介质 | |
US11722313B2 (en) | State synchronization for post-quantum signing facilities | |
US20110040963A1 (en) | Secure computing system, secure computing method, secure computing apparatus, and program therefor | |
US12052348B2 (en) | Computation device using shared shares | |
WO2014030706A1 (ja) | 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム | |
KR20240004830A (ko) | 완전 동형 암호화에서 사용하기 위한 블라인드 회전 | |
US20230269068A1 (en) | Confidential information processing system and confidential information processing method | |
CN116170142B (zh) | 分布式协同解密方法、设备和存储介质 | |
CN114640443B (zh) | 一种在线工程报价安全交互方法和系统 | |
JP5784662B2 (ja) | 暗号化データ演算システム、装置及びプログラム | |
EP4072062A1 (en) | Apparatus for processing non-polynomial operation on homomorphic encrypted messages and methods thereof | |
US20220150064A1 (en) | Encryption device, decryption device, encryption method, decryption method, and computer program products | |
US20230132163A1 (en) | Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium | |
WO2021171543A1 (ja) | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法および記録媒体 | |
TWI701931B (zh) | 具分級機制的數位簽章方法及適用該方法的硬體錢包裝置 | |
JP5297918B2 (ja) | 暗号化数値二進変換システム及び方法とプログラム | |
JP5103407B2 (ja) | 暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラム | |
WO2024201635A1 (ja) | 秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム | |
CN116028969B (zh) | 一种基于数据加密技术的隐私计算方法 | |
US11811741B2 (en) | Information processing system and information processing method | |
TW201543862A (zh) | 密碼裝置、記憶系統、解碼裝置、密碼方法、解碼方法、密碼程式產品及解碼程式產品 | |
CN116455575B (zh) | 一种密钥生成、加密、解密方法、电子设备及存储介质 |
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: 20966935 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022568484 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202080107959.9 Country of ref document: CN |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20966935 Country of ref document: EP Kind code of ref document: A1 |