WO2022137447A1 - 秘匿情報処理システムおよび秘匿情報処理方法 - Google Patents

秘匿情報処理システムおよび秘匿情報処理方法 Download PDF

Info

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
Application number
PCT/JP2020/048498
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/JP2020/048498 priority Critical patent/WO2022137447A1/ja
Priority to JP2022568484A priority patent/JP7205016B2/ja
Priority to CN202080107959.9A priority patent/CN116601691A/zh
Priority to DE112020007702.0T priority patent/DE112020007702T5/de
Publication of WO2022137447A1 publication Critical patent/WO2022137447A1/ja
Priority to US18/142,405 priority patent/US20230269068A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage 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
    • 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

  • 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

準同型推論装置(500)は、モデル暗号文を推論用暗号文と計算用暗号文とに分割し、前記計算用暗号文とデータ暗号文とを復号せずに準同型演算アルゴリズムによって事前結果暗号文を生成し、前記事前結果暗号文と前記推論用暗号文とを復号せずに用いて準同型演算アルゴリズムによって推論結果暗号文を生成する。部分復号装置(600)は、モデル用秘密鍵を用いて前記推論結果暗号文に対する部分復号を行って部分復号結果を生成する。最終復号装置(700)は、データ用秘密鍵を用いて前記部分復号結果から推論結果を復号する。

Description

秘匿情報処理システムおよび秘匿情報処理方法
 本開示は、秘匿情報処理に関するものである。
 準同型暗号は、データを暗号化したまま演算できる暗号技術である。
 昨今、クラウドサービスの利用が広まりつつあるが、クラッキングの懸念およびクラウドの信頼性の懸念から、クラウド上ではデータを暗号化して保管することが考えられる。
 また、準同型暗号は、暗号化されているデータに対して、復号することなく演算を施すことができる。
 そのため、準同型暗号は、安全性を損なうことなくクラウドサービスの利用を可能とする。
 ニューラルネットワークは、画像および動画の認識に有用な技術であり、入力層と(複数の)中間層と出力層との3種類の層からなる。
 入力層は、入力データを受け付けるための層である。
 中間層は、入力データまたは他の中間層の計算結果に対して特定の計算を行うための層である。
 出力層は、中間層の最終の計算結果を出力するための層である。
 近年、高い推論精度を達成するニューラルネットワークが盛んに研究されている。そのようなニューラルネットワークは非常に多数の中間層を持ち、その推論処理には多大な計算量を要する。
 そのため、計算能力の低い端末では、このようなニューラルネットワークの推論処理を実行することが困難である。
 そこで、高い計算能力を持ったクラウドに推論処理を委託することが考えられる。
 監視カメラの映像などのプライベートなデータがニューラルネットワークの入力データになる場合、入力データをクラウドから秘匿したまま、ニューラルネットワークの推論処理を行わなければならない。
 その場合、準同型暗号を用いて入力データを暗号化したままニューラルネットワークによる推論処理を行うことで、データ提供者のプライバシーを保ちつつクラウドへ推論処理を委託することができる。
 しかし、ニューラルネットワークの中間層の計算を定義する推論モデルデータが暗号化されなければ、推論モデルデータのパラメータ情報および推論モデルデータを生成するための学習に利用した学習データに関する情報が漏洩する可能性がある。
 また、入力データ提供者が推論モデル提供者の推論モデルデータを利用してクラウド上で推論処理を行うサービスには次のような要件がある。
 入力データ提供者と推論モデル提供者が入力データと推論モデルデータを共に秘匿したままクラウドに推論処理を委託することを想定する。その場合、入力データが入力データ提供者の暗号化鍵で暗号化されていて、且つ、推論モデルデータが推論モデル提供者の暗号化鍵で暗号化されている必要がある。
 特許文献1は、入力データと推論モデルデータを共に暗号化したままでの畳み込みニューラルネットワークの推論処理を開示している。
 非特許文献1の方法は、複数鍵準同型暗号と呼ばれる暗号技術を利用することで、入力データが入力データ提供者の暗号化鍵で暗号化されたまま、且つ、推論モデルデータが推論モデル提供者の暗号化鍵で暗号化されたまま、推論処理を実現する。
 複数鍵準同型暗号は、準同型暗号方式の一種であり、異なる暗号化鍵で暗号化されている複数の暗号文を復号することなく複数の暗号文に対して演算を施すことができる。
 但し、非特許文献1の方法によって実現される推論処理は、畳み込みニューラルネットワークの推論処理である。
 本開示は、入力データと推論モデルデータとを共に暗号化したままで再帰的ニューラルネットワークの推論処理を実現できるようにすることを目的とする。
 本開示の秘匿情報処理システムは、
 第1行列と第2行列を連結して得らえる推論モデルデータを暗号化して得られるモデル暗号文を、前記第1行列の暗号文に相当する推論用暗号文と、前記第2行列の暗号文に相当する計算用暗号文と、に分割するモデル分割部と、
 前記計算用暗号文と、入力データを暗号化して得られるデータ暗号文と、を復号せずに、準同型演算アルゴリズムによって、前記第1行列と前記入力データを表すベクトルの積の暗号文に相当する事前結果暗号文を生成する事前計算部と、
 前記事前結果暗号文と前記推論用暗号文とを復号せずに用いて、準同型演算アルゴリズムによって、前記入力データに対する推論結果の暗号文である推論結果暗号文を生成する準同型推論部と、
 前記モデル暗号文のための秘密鍵であるモデル用秘密鍵を用いて、前記推論結果暗号文に対する部分復号を行って、部分復号結果を生成する部分復号部と、
 前記データ暗号文のための秘密鍵であるデータ用秘密鍵を用いて、前記部分復号結果から前記入力データに対する前記推論結果を復号する最終復号部と、を備える。
 本開示によれば、入力データと推論モデルデータとを共に暗号化したままで再帰的ニューラルネットワークの推論処理を実現することができる。
実施の形態1における秘匿情報処理システム100の構成図。 実施の形態1における鍵生成装置200の構成図。 実施の形態1におけるデータ暗号化装置300の構成図。 実施の形態1におけるモデル暗号化装置400の構成図。 実施の形態1における準同型推論装置500の構成図。 実施の形態1における部分復号装置600の構成図。 実施の形態1における最終復号装置700の構成図。 実施の形態1におけるデータ用鍵ペアの管理の手順を示すフローチャート。 実施の形態1におけるモデル用鍵ペアの管理の手順を示すフローチャート。 実施の形態1における事前計算の手順を示すフローチャート。 実施の形態1における準同型推論の手順を示すフローチャート。 実施の形態1における推論結果暗号文の復号の手順を示すフローチャート。 実施の形態1における秘匿情報処理システム100の各装置のハードウェア構成を説明するための図。
 実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
 実施の形態1.
 秘匿情報処理システム100について、図1から図13に基づいて説明する。
***構成の説明***
 図1に基づいて、秘匿情報処理システム100の構成を説明する。
 秘匿情報処理システム100は、鍵生成装置200と、データ暗号化装置300と、モデル暗号化装置400と、準同型推論装置500と、部分復号装置600と、最終復号装置700と、を備える。これらの装置は、ネットワーク101に接続され、ネットワーク101を介して互いに通信する。ネットワーク101の具体例はインターネットである。
 図2に基づいて、鍵生成装置200の構成を説明する。
 鍵生成装置200は、プロセッサ201とメモリ202と補助記憶装置203と通信装置204と入出力インタフェース205といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ201は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ201は、CPU、DSPまたはGPUである。
 ICは、Integrated Circuitの略称である。
 CPUは、Central Processing Unitの略称である。
 DSPは、Digital Signal Processorの略称である。
 GPUは、Graphics Processing Unitの略称である。
 メモリ202は揮発性または不揮発性の記憶装置である。メモリ202は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ202はRAMである。メモリ202に記憶されたデータは必要に応じて補助記憶装置203に保存される。
 RAMは、Random Access Memoryの略称である。
 補助記憶装置203は不揮発性の記憶装置である。例えば、補助記憶装置203は、ROM、HDDまたはフラッシュメモリである。補助記憶装置203に記憶されたデータは必要に応じてメモリ202にロードされる。
 ROMは、Read Only Memoryの略称である。
 HDDは、Hard Disk Driveの略称である。
 通信装置204はレシーバ及びトランスミッタである。例えば、通信装置204は通信チップまたはNICである。鍵生成装置200の通信は通信装置204を用いて行われる。
 NICは、Network Interface Cardの略称である。
 入出力インタフェース205は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース205はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。鍵生成装置200の入出力は入出力インタフェース205を用いて行われる。
 USBは、Universal Serial Busの略称である。
 鍵生成装置200は、受付部210と鍵生成部220と出力部230といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置203には、受付部210と鍵生成部220と出力部230としてコンピュータを機能させるための鍵生成プログラムが記憶されている。鍵生成プログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
 補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
 プロセッサ201は、OSを実行しながら、鍵生成プログラムを実行する。
 OSは、Operating Systemの略称である。
 鍵生成プログラムの入出力データは記憶部290に記憶される。
 メモリ202は記憶部290として機能する。但し、補助記憶装置203、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの他の記憶装置が、メモリ202の代わりに、又は、メモリ202と共に、記憶部290として機能してもよい。
 鍵生成装置200は、プロセッサ201を代替する複数のプロセッサを備えてもよい。
 鍵生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図3に基づいて、データ暗号化装置300の構成を説明する。
 データ暗号化装置300は、プロセッサ301とメモリ302と補助記憶装置303と通信装置304と入出力インタフェース305といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
 データ暗号化装置300は、受付部310と公開鍵保管部320とデータ暗号化部330と出力部340といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置303には、受付部310と公開鍵保管部320とデータ暗号化部330と出力部340としてコンピュータを機能させるためのデータ暗号化プログラムが記憶されている。データ暗号化プログラムは、メモリ302にロードされて、プロセッサ301によって実行される。
 データ暗号化プログラムの入出力データは記憶部390に記憶される。
 メモリ302は記憶部390として機能する。但し、データ暗号化装置300の他の記憶装置が、メモリ302の代わりに、又は、メモリ302と共に、記憶部390として機能してもよい。
 データ暗号化装置300は、プロセッサ301を代替する複数のプロセッサを備えてもよい。
 データ暗号化プログラムは、不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図4に基づいて、モデル暗号化装置400の構成を説明する。
 モデル暗号化装置400は、プロセッサ401とメモリ402と補助記憶装置403と通信装置404と入出力インタフェース405といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
 モデル暗号化装置400は、受付部410公開鍵保管部420とモデル暗号化部430と出力部440といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置403には、受付部410と公開鍵保管部420とモデル暗号化部430と出力部440としてコンピュータを機能させるためのモデル暗号化プログラムが記憶されている。モデル暗号化プログラムは、メモリ402にロードされて、プロセッサ401によって実行される。
 モデル暗号化プログラムの入出力データは記憶部490に記憶される。
 メモリ402は記憶部490として機能する。但し、モデル暗号化装置400の他の記憶装置が、メモリ402の代わりに、又は、メモリ402と共に、記憶部490として機能してもよい。
 モデル暗号化装置400は、プロセッサ401を代替する複数のプロセッサを備えてもよい。
 モデル暗号化プログラムは、不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図5に基づいて、準同型推論装置500の構成を説明する。
 準同型推論装置500は、プロセッサ501とメモリ502と補助記憶装置503と通信装置504と入出力インタフェース505といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
 準同型推論装置500は、受付部510と公開鍵保管部521と暗号文保管部522とモデル分割部530と事前計算部541と事前結果保管部542と準同型推論部551と暗号文保管部552と出力部560といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置503には、受付部510と公開鍵保管部521と暗号文保管部522とモデル分割部530と事前計算部541と事前結果保管部542と準同型推論部551と暗号文保管部552と出力部560としてコンピュータを機能させるための準同型推論プログラムが記憶されている。準同型推論プログラムは、メモリ502にロードされて、プロセッサ501によって実行される。
 準同型推論プログラムの入出力データは記憶部590に記憶される。
 メモリ502は記憶部590として機能する。但し、準同型推論装置500の他の記憶装置が、メモリ502の代わりに、又は、メモリ502と共に、記憶部590として機能してもよい。
 準同型推論装置500は、プロセッサ501を代替する複数のプロセッサを備えてもよい。
 準同型推論プログラムは、不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図6に基づいて、部分復号装置600の構成を説明する。
 部分復号装置600は、プロセッサ601とメモリ602と補助記憶装置603と通信装置604と入出力インタフェース605といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
 部分復号装置600は、受付部610と秘密鍵保管部620と部分復号部630と出力部640といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置603には、受付部610と秘密鍵保管部620と部分復号部630と出力部640としてコンピュータを機能させるための部分復号プログラムが記憶されている。部分復号プログラムは、メモリ602にロードされて、プロセッサ601によって実行される。
 部分復号プログラムの入出力データは記憶部690に記憶される。
 メモリ602は記憶部690として機能する。但し、部分復号装置600の他の記憶装置が、メモリ602の代わりに、又は、メモリ602と共に、記憶部690として機能してもよい。
 部分復号装置600は、プロセッサ601を代替する複数のプロセッサを備えてもよい。
 部分復号プログラムは、不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図7に基づいて、最終復号装置700の構成を説明する。
 最終復号装置700は、プロセッサ701とメモリ702と補助記憶装置703と通信装置704と入出力インタフェース705といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。これらのハードウェアは、鍵生成装置200のハードウェアに対応する。
 最終復号装置700は、受付部710と秘密鍵保管部720と最終復号部730と推論結果保管部740と出力部750といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置703には、受付部710と秘密鍵保管部720と最終復号部730と推論結果保管部740と出力部750としてコンピュータを機能させるための最終復号プログラムが記憶されている。最終復号プログラムは、メモリ702にロードされて、プロセッサ701によって実行される。
 最終復号プログラムの入出力データは記憶部790に記憶される。
 メモリ702は記憶部790として機能する。但し、最終復号装置700の他の記憶装置が、メモリ702の代わりに、又は、メモリ702と共に、記憶部790として機能してもよい。
 最終復号装置700は、プロセッサ701を代替する複数のプロセッサを備えてもよい。
 最終復号プログラムは、不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
***動作の説明***
 秘匿情報処理システム100の動作の手順は秘匿情報処理方法に相当する。また、秘匿情報処理システム100の動作の手順は秘匿情報処理プログラムによる処理の手順に相当する。
 図8に基づいて、データ用鍵ペアの管理について説明する。
 データ用鍵ペアは、後述する入力データdのための鍵ペアであり、データ用公開鍵とデータ用秘密鍵とで構成される。
 データ用公開鍵は、入力データdを暗号化するための公開鍵である。
 データ用秘密鍵は、データ用公開鍵に対応する秘密鍵である。データ用秘密鍵により、入力データdの暗号文を復号することができる。暗号文は、暗号化によって得られるデータである。
 ステップS101からステップS104は、鍵生成装置200によって実行される。
 ステップS101において、受付部210は、パラメータλを受け付ける。
 パラメータλは、データ用鍵ペアのための鍵生成パラメータである。例えば、パラメータλは、利用者によって鍵生成装置200に入力される。
 ステップS102において、鍵生成部220は、パラメータλを入力として鍵生成アルゴリズムを実行する。これにより、公開鍵PKおよび秘密鍵SKが生成される。
 公開鍵PKはデータ用公開鍵であり、秘密鍵SKはデータ用秘密鍵である。
 例えば、以下の文献(1)に記載された鍵生成アルゴリズムが使用される。
 文献(1):H. Chen, I. Chillotti, Y. Song. “Multi-key Homomorphic Encryption from TFHE”. In ASIACRYPT, pages 446-472, 2019.
 ステップS103において、出力部230は、データ暗号化装置300と準同型推論装置500とのそれぞれに公開鍵PKを送信する。
 ステップS104において、出力部230は、最終復号装置700に秘密鍵SKを送信する。
 ステップS111およびステップS112は、データ暗号化装置300によって実行される。
 ステップS111において、受付部310は、公開鍵PKを受信する。
 ステップS112において、公開鍵保管部320は、公開鍵PKを記憶部290に保管する。
 ステップS121およびステップS122は、準同型推論装置500によって実行される。
 ステップS121において、受付部510は、公開鍵PKを受信する。
 ステップS122において、公開鍵保管部521は、公開鍵PKを記憶部590に保管する。
 ステップS131およびステップS132は、最終復号装置700によって実行される。
 ステップS131において、受付部710は、秘密鍵SKを受信する。
 ステップS132において、秘密鍵保管部720は、秘密鍵SKを記憶部790に保管する。なお、秘密鍵SKは外部に漏れないように厳重に保管される。
 図9に基づいて、モデル用鍵ペアの管理について説明する。
 モデル用鍵ペアは、後述する推論モデルデータMのための鍵ペアであり、モデル用公開鍵とモデル用秘密鍵とで構成される。
 モデル用公開鍵は、推論モデルデータMを暗号化するための公開鍵である。
 モデル用秘密鍵は、モデル用公開鍵に対応する秘密鍵である。モデル用秘密鍵により、推論モデルデータMの暗号文を復号することができる。
 ステップS201からステップS204は、鍵生成装置200によって実行される。
 ステップS201において、受付部210は、パラメータλを受け付ける。
 パラメータλは、モデル用鍵ペアのための鍵生成パラメータである。例えば、パラメータλは、利用者によって鍵生成装置200に入力される。
 ステップS202において、鍵生成部220は、パラメータλを入力として鍵生成アルゴリズムを実行する。これにより、公開鍵PKおよび秘密鍵SKが生成される。
 公開鍵PKはモデル用公開鍵であり、秘密鍵SKはモデル用秘密鍵である。
 例えば、上記文献(1)に記載された鍵生成アルゴリズムが使用される。
 ステップS203において、出力部230は、モデル暗号化装置400と準同型推論装置500とのそれぞれに公開鍵PKを送信する。
 ステップS204において、出力部230は、部分復号装置600に秘密鍵SKを送信する。
 ステップS211およびステップS212は、モデル暗号化装置400によって実行される。
 ステップS211において、受付部410は、公開鍵PKを受信する。
 ステップS212において、公開鍵保管部420は、公開鍵PKを記憶部490に保管する。
 ステップS221およびステップS222は、準同型推論装置500によって実行される。
 ステップS221において、受付部510は、公開鍵PKを受信する。
 ステップS222において、公開鍵保管部521は、公開鍵PKを記憶部590に保管する。
 ステップS231およびステップS232は、部分復号装置600によって実行される。
 ステップS231において、受付部610は、秘密鍵SKを受信する。
 ステップS232において、秘密鍵保管部620は、秘密鍵SKを記憶部690に保管する。なお、秘密鍵SKは外部に漏れないように厳重に保管される。
 図10に基づいて、推論結果の暗号文を得るための事前計算について説明する。
 ステップS301からステップS303は、データ暗号化装置300によって実行される。
 ステップS301において、受付部310は、入力データdを受け付ける。
 入力データdは、時刻tの入力データである。「t」は1以上の整数(自然数)である。
 入力データは、n個の浮動小数点数から成るベクトルで表される。「n」は1以上の整数である。
 例えば、受付部310は、工場に設けられた各種センサによって時刻tに得られた計測値(浮動小数点数)を各種センサから収集する。収集された計測値が入力データdとなる。
 ステップS302において、データ暗号化部330は入力データdを暗号化する。具体的には、データ暗号化部330は、公開鍵PKを用いて入力データdに対して暗号化アルゴリズムを実行する。これにより、データ暗号文C(d)が生成される。
 データ暗号文C(d)は、暗号化された入力データd、すなわち、入力データdの暗号文である。
 例えば、上記文献(1)に記載された暗号化アルゴリズムによって、入力データdの各要素が暗号化される。
 ステップS303において、出力部340は、データ暗号文C(d)を準同型推論装置500に送信する。
 ステップS311からステップS313は、モデル暗号化装置400によって実行される。
 ステップS311において、受付部410は、推論モデルデータMを受け付ける。例えば、推論モデルデータMは、利用者によってモデル暗号化装置400に入力される。但し、推論モデルデータMは、記憶部490に予め記憶されてもよい。
 ステップS312において、モデル暗号化部430は推論モデルデータMを暗号化する。具体的には、モデル暗号化部430は、公開鍵PKを用いて推論モデルデータMに対して暗号化アルゴリズムを実行する。これにより、モデル暗号文C(M)が生成される。
 モデル暗号文C(M)は、暗号化された推論モデルデータM、すなわち、推論モデルデータMの暗号文である。
 例えば、上記文献(1)に記載された暗号化アルゴリズムが使用される。
 推論モデルデータMについて説明する。
 推論モデルデータMは、推論モデル(M)のためのデータである。推論モデル(M)は、推論処理のための機械学習モデルであり、再帰的ニューラルネットワークで表される。具体的な再帰的ニューラルネットワークは「LSTM」である。
 LSTMは、Long Short-term Memoryの略称である。
 推論モデルデータMは、k×(n+m)の要素を持つ行列である。各要素は浮動小数点数である。
 「k」は、1以上の整数である。
 「n」は、1以上の整数である(前述の通り)。
 「m」は、1以上の整数である。
 推論モデルデータMに対して、M=[M’||M’’]が成り立つ。
 「M’」は、k×nの要素を持つ行列である。各要素は浮動小数点数である。
 「M’’」は、k×mの要素を持つ行列である。各要素は浮動小数点数である。
 [M’||M’’]は、行列M’と行列M’’を連結して得られる行列を意味する。
 推論モデルデータMを用いた推論処理は式(1)で表される。
Figure JPOXMLDOC01-appb-M000001
 「Dt-1」は、時刻t-1における推論結果であり、n個の浮動小数点数から成るベクトルで表される。
 「d」は、時刻tにおける入力データであり、n個の浮動小数点数から成るベクトルで表される。
 「・」は、行列とベクトルの掛け算を表す。
 「+」は、ベクトル同士の足し算を表す。
 ステップS313から説明を続ける。
 ステップS313において、出力部440は、モデル暗号文C(M)を準同型推論装置500に送信する。
 ステップS321からステップS326は、準同型推論装置500によって実行される。
 ステップS321において、受付部510は、データ暗号文C(d)を受信する。
 そして、暗号文保管部522は、データ暗号文C(d)を記憶部590に保管する。
 ステップS322において、受付部510は、モデル暗号文C(M)を受信する。
 そして、暗号文保管部522は、モデル暗号文C(M)を記憶部590に保管する。
 以下、モデル暗号文を「C(M)」または「W」で表す。
 モデル暗号文Wは式(2)で表すことができる。
Figure JPOXMLDOC01-appb-M000002
 「W’」は、推論用暗号文を表す。推論用暗号文W’は、推論モデルデータMの暗号化に用いられる暗号化アルゴリズムによって暗号化された行列M’、すなわち、行列M’の暗号文に相当する。つまり、推論用暗号文W’は、k×nの暗号化された要素を持つ行列である。
 「W’’」は、計算用暗号文を表す。計算用暗号文W’’は、推論モデルデータMの暗号化に用いられる暗号化アルゴリズムによって暗号化された行列M’’、すなわち、行列M’’の暗号文に相当する。つまり、計算用暗号文W’’は、k×mの暗号化された要素を持つ行列である。
 ステップS324において、モデル分割部530は、モデル暗号文Wを推論用暗号文W’と計算用暗号文W’’とに分割する。
 ステップS325において、事前計算部541は、データ暗号文C(d)と計算用暗号文W’’を用いて、事前計算を実行する。
 具体的には、事前計算部541は、計算用暗号文W’’とデータ暗号文C(d)とを復号せずに、事前結果暗号文C(D’’)を生成する。
 事前結果暗号文C(D’’)は、行列M’’と入力データdを表すベクトルとの積を暗号化して得られる暗号文に相当する。
 事前結果暗号文C(D’’)は、準同型演算アルゴリズムによって算出される。
 準同型演算アルゴリズムは、準同型暗号(特に、複数鍵準同型暗号)のアルゴリズムである。
 例えば、上記文献(1)に記載された準同型演算アルゴリズムが使用される。
 ステップS326において、事前結果保管部542は、事前結果暗号文C(D’’)を記憶部590に保管する。
 図11に基づいて、準同型推論について説明する。
 ステップS401からステップS403は、準同型推論装置500によって実行される。
 ステップS401において、モデル分割部530は、モデル暗号文Wを推論用暗号文W’と計算用暗号文W’’とに分割する。
 ステップS402において、準同型推論部551は、前回結果暗号文C(Dt-1)と推論用暗号文W’を用いて、中間推論処理を実行する。
 前回結果暗号文C(Dt-1)は、前回の入力データdt-1に対する暗号化された推論結果、すなわち、前回の推論結果の暗号文である。
 具体的には、準同型推論部551は、前回結果暗号文C(Dt-1)と推論用暗号文W’とを復号せずに用いて、中間結果暗号文C(Dt-1’)を生成する。
 中間結果暗号文C(Dt-1’)は、行列M’と前回の入力データdt-1に対する推論結果を表すベクトルとの積を暗号化して得られる暗号文に相当する。
 中間結果暗号文C(Dt-1’)は、準同型演算アルゴリズムによって算出される。
 例えば、上記文献(1)に記載された準同型演算アルゴリズムが使用される。
 ステップS403において、準同型推論部551は、中間結果暗号文C(Dt-1’)と事前結果暗号文C(D’’)を用いて、最終推論処理を実行する。
 具体的には、準同型推論部551は、中間結果暗号文C(Dt-1’)と事前結果暗号文C(D’’)とを復号せずに用いて、推論結果暗号文C(D)を生成する。
 推論結果暗号文C(D)は、今回の入力データdに対する暗号化された推論結果、すなわち、今回の推論結果の暗号文である。
 推論結果暗号文C(D)は、中間結果暗号文C(Dt-1’)を復号して得られるベクトルと事前結果暗号文C(D’’)を復号して得られるベクトルとの足し算の結果を暗号化して得られる暗号文に相当する。
 推論結果暗号文C(D)は、準同型演算アルゴリズムによって算出される。
 例えば、上記文献(1)に記載された準同型演算アルゴリズムが使用される。
 ステップS404において、暗号文保管部552は、推論結果暗号文C(D)を記憶部590に保管する。
 図12に基づいて、推論結果暗号文C(D)の復号について説明する。
 ステップS501およびステップS502は、準同型推論装置500によって実行される。
 ステップS501において、出力部560は、推論結果暗号文C(D)を記憶部590から取得する。
 ステップS502において、出力部560は、推論結果暗号文C(D)を部分復号装置600と最終復号装置700とのそれぞれに送信する。
 ステップS511からステップS513は、部分復号装置600によって実行される。
 ステップS511において、受付部610は、推論結果暗号文C(D)を受信する。
 ステップS512において、部分復号部630は、秘密鍵SKを用いて推論結果暗号文C(D)に対して部分復号を行う。これにより、部分復号結果C(D2,t)が生成される。
 具体的には、部分復号部630は、式(3)を計算することによって、部分復号結果C(D2,t)の各要素d’2,tを算出する。
 つまり、部分復号部630は、推論結果暗号文C(D)の要素であるベクトルと秘密鍵SKを表すベクトルとの内積を算出し、算出した内積と確率分布から選択される値との足し算の結果を算出する。算出される結果が部分復号結果C(D2,t)の各要素d’2,tとなる。
Figure JPOXMLDOC01-appb-M000003
 「c」は、推論結果暗号文C(D)の一つの要素を構成するベクトルを表す。推論結果暗号文C(D)はベクトルまたは行列である。推論結果暗号文C(D)を表すベクトルまたは行列は、例えば、上記文献(1)に記載された暗号方式の暗号文を要素として持つ。
 「X」は、特定の確率分布を表す。例えば、確率分布Xは、0,1/232,・・・,(232-1)/232を値としてとる離散正規分布である。
 「e」は、確率分布Xに沿って選ばれた値を表す。
 <c,SK>は、ベクトルCと秘密鍵SKを表すベクトルの内積を表す。
 ステップS513において、出力部640は、部分復号結果C(D2,t)を最終復号装置700に送信する。
 ステップS521からステップS524は、最終復号装置700によって実行される。
 ステップS521において、受付部710は、推論結果暗号文C(D)を受信する。
 ステップS522において、受付部710は、部分復号結果C(D2,t)を受信する。
 ステップS523において、最終復号部730は、秘密鍵SKを用いて、推論結果暗号文C(D)と部分復号結果C(D2,t)とから、推論結果データDを復号する。
 具体的には、最終復号部730は、式(4)を計算することによって、推論結果データDの各要素d’を算出する。
 つまり、最終復号部730は、推論結果暗号文C(D)の要素であるベクトルと秘密鍵SKを表すベクトルとの内積を算出し、算出した内積と部分復号結果C(D2,t)の要素との足し算によって得られる和を算出し、算出した和に基づいて推論結果データDの各要素d’を決定する。
Figure JPOXMLDOC01-appb-M000004
 <c,SK>は、ベクトルCと秘密鍵SKを表すベクトルの内積を表す。
 [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を表す。
 ステップS524において、推論結果保管部740は、推論結果データDを記憶部790に保管する。
 また、出力部750は、推論結果データDを出力する。例えば、出力部750は、推論結果データDをディスプレイに表示する。
***実施の形態1の効果***
 秘匿情報処理システム100は、入力データを暗号化したまま、再帰的ニューラルネットワークによる推論処理を実行できる。そのため、秘匿情報処理システム100により、データ提供者のプライバシーを保護したまま、推論処理をクラウドに委託することができる。
 秘匿情報処理システム100は、推論モデルデータを暗号化したまま、再帰的ニューラルネットワークによる推論処理を実行できる。そのため、秘匿情報処理システム100により、モデル提供者のプライバシーを保護したまま、推論処理をクラウドに委託することができる。
 秘匿情報処理システム100は、再帰的ニューラルネットワークにおける時刻tの推論処理を実行する前に、時刻tの推論処理において時刻t-1の推論結果データに依存しない処理(事前処理)を実行することができる。
 入力データと推論モデルデータとを暗号化したまま推論処理を実行するためには、複数鍵準同型暗号の性質により、暗号文拡大処理を行う必要がある。複数鍵準同型暗号は、上記文献(1)に記載された準同型暗号方式である。暗号文拡大処理は、例えば、秘密鍵SKで復号できる暗号文を秘密鍵SKと秘密鍵SKの両方を用いることで復号できる暗号文に変換する処理である。
 暗号文拡大処理を事前計算処理として実行することで、実際の推論処理時に暗号文拡大処理などによる計算オーバヘッドを削減することができる。つまり、入力データと推論モデルデータを暗号化したままでの再帰的ニューラルネットワークの推論処理を効率的に実現できる。
***実施の形態1の補足***
 秘匿情報処理システム100に備わる複数の装置のうち2つ以上の装置を1つの装置にまとめてもよい。例えば、データ暗号化装置300とモデル暗号化装置400を1つの装置にまとめてもよいし、部分復号装置600と最終復号装置700を1つの装置にまとめてもよい。
 装置間のデータの送受信は、データの郵送または利用者によるデータの入出力に置き換えてもよい。
 図13に基づいて、鍵生成装置200のハードウェア構成を説明する。
 鍵生成装置200は処理回路209を備える。
 処理回路209は、鍵生成装置200の要素を実現するハードウェアである。
 処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
 処理回路209が専用のハードウェアである場合、処理回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 ASICは、Application Specific Integrated Circuitの略称である。
 FPGAは、Field Programmable Gate Arrayの略称である。
 鍵生成装置200は、処理回路209を代替する複数の処理回路を備えてもよい。
 処理回路209において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、鍵生成装置200の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 データ暗号化装置300、モデル暗号化装置400、準同型推論装置500、部分復号装置600および最終復号装置700のハードウェア構成は、鍵生成装置200のハードウェア構成と同様である。
 実施の形態1は、好ましい形態の例示であり、本開示の技術的範囲を制限することを意図するものではない。実施の形態1は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
 秘匿情報処理システム100の各装置の要素である「部」は、「処理」、「工程」、「回路」または「サーキットリ」と読み替えてもよい。
 100 秘匿情報処理システム、101 ネットワーク、200 鍵生成装置、201 プロセッサ、202 メモリ、203 補助記憶装置、204 通信装置、205 入出力インタフェース、209 処理回路、210 受付部、220 鍵生成部、230 出力部、290 記憶部、300 データ暗号化装置、301 プロセッサ、302 メモリ、303 補助記憶装置、304 通信装置、305 入出力インタフェース、310 受付部、320 公開鍵保管部、330 データ暗号化部、340 出力部、390 記憶部、400 モデル暗号化装置、401 プロセッサ、402 メモリ、403 補助記憶装置、404 通信装置、405 入出力インタフェース、410 受付部、420 公開鍵保管部、430 モデル暗号化部、440 出力部、490 記憶部、500 準同型推論装置、501 プロセッサ、502 メモリ、503 補助記憶装置、504 通信装置、505 入出力インタフェース、510 受付部、521 公開鍵保管部、522 暗号文保管部、530 モデル分割部、541 事前計算部、542 事前結果保管部、551 準同型推論部、552 暗号文保管部、560 出力部、590 記憶部、600 部分復号装置、601 プロセッサ、602 メモリ、603 補助記憶装置、604 通信装置、605 入出力インタフェース、610 受付部、620 秘密鍵保管部、630 部分復号部、640 出力部、690 記憶部、700 最終復号装置、701 プロセッサ、702 メモリ、703 補助記憶装置、704 通信装置、705 入出力インタフェース、710 受付部、720 秘密鍵保管部、730 最終復号部、740 推論結果保管部、750 出力部、790 記憶部。

Claims (14)

  1.  第1行列と第2行列を連結して得らえる推論モデルデータを暗号化して得られるモデル暗号文を、前記第1行列の暗号文に相当する推論用暗号文と、前記第2行列の暗号文に相当する計算用暗号文と、に分割するモデル分割部と、
     前記計算用暗号文と、入力データを暗号化して得られるデータ暗号文と、を復号せずに、準同型演算アルゴリズムによって、前記第1行列と前記入力データを表すベクトルの積の暗号文に相当する事前結果暗号文を生成する事前計算部と、
     前記事前結果暗号文と前記推論用暗号文とを復号せずに用いて、準同型演算アルゴリズムによって、前記入力データに対する推論結果の暗号文である推論結果暗号文を生成する準同型推論部と、
     前記モデル暗号文のための秘密鍵であるモデル用秘密鍵を用いて、前記推論結果暗号文に対して部分復号を行って、部分復号結果を生成する部分復号部と、
     前記データ暗号文のための秘密鍵であるデータ用秘密鍵を用いて、前記部分復号結果から前記入力データに対する前記推論結果を復号する最終復号部と、
    を備える秘匿情報処理システム。
  2.  前記準同型推論部は、前記事前結果暗号文と、前記推論用暗号文と、前回の入力データに対する推論結果の暗号文である前回結果暗号文と、を復号せずに用いて、前記推論結果暗号文を生成する
    請求項1に記載の秘匿情報処理システム。
  3.  前記準同型推論部は、
     前記推論用暗号文と前記前回結果暗号文とを復号せずに用いて、準同型演算アルゴリズムによって、前記第1行列と前記前回の入力データに対する前記推論結果を表すベクトルの積の暗号文に相当する中間結果暗号文を生成し、
     前記中間結果暗号文と前記事前結果暗号文とを復号せずに用いて、準同型演算アルゴリズムによって、前記中間結果暗号文を復号して得られるベクトルと前記事前結果暗号文を復号して得られるベクトルとの足し算の結果の暗号文を前記推論結果暗号文として生成する
    請求項2に記載の秘匿情報処理システム。
  4.  前記部分復号部は、前記推論結果暗号文の要素であるベクトルと前記モデル用秘密鍵を表すベクトルとの内積と、確率分布から選択される値との足し算の結果を、前記部分復号結果の要素として算出する
    請求項1から請求項3のいずれか1項に記載の秘匿情報処理システム。
  5.  前記最終復号部は、前記データ用秘密鍵を用いて、前記推論結果暗号文と前記部分復号結果とから、前記入力データに対する前記推論結果を復号する
    請求項1から請求項4のいずれか1項に記載の秘匿情報処理システム。
  6.  前記最終復号部は、前記推論結果暗号文の要素であるベクトルと前記データ用秘密鍵を表すベクトルとの内積と、前記部分復号結果の要素との足し算によって得られる和に基づいて、前記推論結果の要素を決定する
    請求項5に記載の秘匿情報処理システム。
  7.  前記最終復号部は、前記和と1/4の差に基づいて前記推論結果の前記要素を決定する
    請求項6に記載の秘匿情報処理システム。
  8.  前記最終復号部は、前記差が閾値より小さい場合に前記推論結果の前記要素を1に決定し、前記差が前記閾値より大きい場合に前記推論結果の前記要素を0に決定する
    請求項7に記載の秘匿情報処理システム。
  9.  前記モデル分割部と前記事前計算部と前記準同型推論部とを備える準同型推論装置と、
     前記部分復号部を備える部分復号装置と、
     前記最終復号部を備える最終復号装置700と、を備える
    請求項1から請求項8のいずれか1項に記載の秘匿情報処理システム。
  10.  前記入力データのための公開鍵であるデータ用公開鍵を用いて前記入力データを暗号化して前記データ暗号文を生成するデータ暗号化部と、
     前記推論モデルデータのための公開鍵であるモデル用公開鍵を用いて前記推論モデルデータを暗号化して前記モデル暗号文を生成するモデル暗号化部と、を備える
    請求項1から請求項9のいずれか1項に記載の秘匿情報処理システム。
  11.  前記データ暗号化部を備えるデータ暗号化装置と、
     前記モデル暗号化部を備えるモデル暗号化装置と、を備える
    請求項10に記載の秘匿情報処理システム。
  12.  前記データ用公開鍵と前記データ用秘密鍵の組と、前記モデル用公開鍵と前記モデル用秘密鍵の組と、を生成する鍵生成部を備える
    請求項10または請求項11に記載の秘匿情報処理システム。
  13.  前記鍵生成部を備える鍵生成装置を備える
    請求項12に記載の秘匿情報処理システム。
  14.  モデル分割部が、第1行列と第2行列を連結して得らえる推論モデルデータを暗号化して得られるモデル暗号文を、前記第1行列の暗号文に相当する推論用暗号文と、前記第2行列の暗号文に相当する計算用暗号文と、に分割し、
     事前計算部が、前記計算用暗号文と、入力データを暗号化して得られるデータ暗号文と、を復号せずに、準同型演算アルゴリズムによって、前記第1行列と前記入力データを表すベクトルの積の暗号文に相当する事前結果暗号文を生成し、
     準同型推論部が、前記事前結果暗号文と、前記推論用暗号文と、前回の入力データに対する推論結果の暗号文である前回結果暗号文と、を復号せずに用いて、準同型演算アルゴリズムによって、前記入力データに対する推論結果の暗号文である推論結果暗号文を生成し、
     部分復号部が、前記モデル暗号文のための秘密鍵であるモデル用秘密鍵を用いて、前記推論結果暗号文に対する部分復号を行って、部分復号結果を生成し、
     最終復号部が、前記データ暗号文のための秘密鍵であるデータ用秘密鍵を用いて、前記部分復号結果から前記入力データに対する前記推論結果を復号する
    秘匿情報処理方法。
PCT/JP2020/048498 2020-12-24 2020-12-24 秘匿情報処理システムおよび秘匿情報処理方法 WO2022137447A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2020/048498 WO2022137447A1 (ja) 2020-12-24 2020-12-24 秘匿情報処理システムおよび秘匿情報処理方法
JP2022568484A JP7205016B2 (ja) 2020-12-24 2020-12-24 秘匿情報処理システムおよび秘匿情報処理方法
CN202080107959.9A CN116601691A (zh) 2020-12-24 2020-12-24 隐匿信息处理系统以及隐匿信息处理方法
DE112020007702.0T DE112020007702T5 (de) 2020-12-24 2020-12-24 System zur verarbeitung vertraulicher informationen und verfahren zur verarbeitung vertraulicher informationen
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7440149B1 (ja) 2023-08-21 2024-02-28 Eaglys株式会社 データ生成方法、データ生成プログラム、およびデータ生成システム

Citations (4)

* Cited by examiner, † Cited by third party
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 株式会社アクセル 撮像モジュール、画像処理デバイス、画像処理方法、および画像処理プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
JP7205016B2 (ja) 2023-01-16
DE112020007702T5 (de) 2023-08-10
JPWO2022137447A1 (ja) 2022-06-30
CN116601691A (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
US9166785B2 (en) Cryptography processing device and cryptography processing method
EP3566385B1 (en) Homomorphic white box system and method for using same
CN111866018B (zh) 数据信息加密发送方法、装置、计算机设备及存储介质
JPWO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
US11722313B2 (en) State synchronization for post-quantum signing facilities
US9300469B2 (en) Secure computing system, secure computing method, secure computing apparatus, and program therefor
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
US20210367766A1 (en) A computation device using shared shares
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
KR20240004830A (ko) 완전 동형 암호화에서 사용하기 위한 블라인드 회전
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) 暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラム
CN116028969B (zh) 一种基于数据加密技术的隐私计算方法
US11811741B2 (en) Information processing system and information processing method
TW201543862A (zh) 密碼裝置、記憶系統、解碼裝置、密碼方法、解碼方法、密碼程式產品及解碼程式產品
CN116455575B (zh) 一种密钥生成、加密、解密方法、电子设备及存储介质
WO2024028961A1 (ja) 暗号システム、方法及びプログラム

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