WO2023242955A1 - 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム - Google Patents

秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム Download PDF

Info

Publication number
WO2023242955A1
WO2023242955A1 PCT/JP2022/023823 JP2022023823W WO2023242955A1 WO 2023242955 A1 WO2023242955 A1 WO 2023242955A1 JP 2022023823 W JP2022023823 W JP 2022023823W WO 2023242955 A1 WO2023242955 A1 WO 2023242955A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
homomorphic
ciphertext
encryption
public
Prior art date
Application number
PCT/JP2022/023823
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/JP2022/023823 priority Critical patent/WO2023242955A1/ja
Priority to JP2023571747A priority patent/JP7520255B2/ja
Publication of WO2023242955A1 publication Critical patent/WO2023242955A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Definitions

  • the present disclosure relates to a confidential information processing system, a confidential information processing method, and a confidential information processing program.
  • Quantum homomorphic encryption is a cryptographic technology that allows quantum operations to be performed on data while it is encrypted. Recently, the use of cloud services has become widespread, but due to concerns about cracking or the reliability of the cloud, data may be encrypted and stored in the cloud. Quantum homomorphic encryption allows operations to be performed on encrypted data without decrypting the encrypted data. Therefore, quantum homomorphic cryptography is a technology that enables the use of cloud services using quantum computing without compromising security. It is a cryptographic technology to improve the security of quantum homomorphic cryptography, and it is a cryptographic technology that achieves security that does not leak information about arithmetic processing from the results of quantum computation while encrypting data, and has improved circuit secrecy. It is a quantum homomorphic encryption that satisfies.
  • quantum homomorphic cryptography that satisfies circuit secrecy
  • quantum homomorphic cryptography that achieves security that information about quantum operations is not leaked from the results of quantum homomorphic operations on ciphertext that has not been generated by the encryption algorithm is It is a quantum homomorphic encryption that satisfies strong circuit secrecy.
  • Quantum homomorphic encryption that satisfies strong circuit secrecy checks the validity of the input when performing operations on encrypted data, and then encrypts the data using quantum homomorphic encryption that satisfies normal circuit secrecy.
  • Quantum homomorphic encryption that satisfies normal circuit secrecy is quantum homomorphic encryption that provides circuit secrecy only for ciphertext generated by an encryption algorithm.
  • Non-Patent Document 1 discloses a configuration example of quantum homomorphic encryption that satisfies strong circuit secrecy, and also performs homomorphic operations on ciphertexts encrypted using mutually different encryption keys.
  • a configuration example of quantum homomorphic cryptography that satisfies strong circuit secrecy is also disclosed.
  • the conventional quantum homomorphic encryption that satisfies circuit secrecy disclosed in Non-Patent Document 1 uses a special calculation problem called the decisional small polynomial ratio (DSPR) problem as the basis for its security.
  • DSPR decisional small polynomial ratio
  • the security of the homomorphic encryption used as a component that satisfies circuit secrecy depends on the difficulty of the DSPR problem. Therefore, the quantum homomorphic encryption that satisfies strong circuit secrecy disclosed in Non-Patent Document 1 is also not safe for quantum computers.
  • the confidential information processing system related to this disclosure is A secret information processing system compatible with quantum homomorphic cryptography that satisfies strong circuit secrecy, Generating a first ciphertext by encrypting a first plaintext using a first public parameter and a first encryption key, and encrypting a second plaintext using a second public parameter and a second encryption key.
  • an encryption device including an encryption unit that generates a second ciphertext by Each of the first public parameter and the second public parameter is a parameter generated using a security parameter,
  • the first encryption key is an encryption key generated using the first public parameter and a first decryption key that is a decryption key generated using the security parameter,
  • the second encryption key is an encryption key generated using the second public parameter and a second decryption key that is a decryption key generated using the security parameter.
  • a quantum computer that satisfies strong circuit secrecy that is safe for quantum computers and that enables homomorphic operations using quantum computation on ciphertexts encrypted with mutually different encryption keys. Homomorphic encryption technology can be realized.
  • FIG. 1 is a diagram showing a configuration example of a confidential information processing system 100 according to Embodiment 1.
  • FIG. 1 is a diagram illustrating a configuration example of a public parameter generation device 200 according to Embodiment 1.
  • FIG. 1 is a diagram illustrating an example configuration of a key generation device 300 according to Embodiment 1.
  • FIG. 1 is a diagram illustrating a configuration example of an encryption device 400 according to Embodiment 1.
  • FIG. 1 is a diagram illustrating a configuration example of a homomorphic arithmetic device 500 according to Embodiment 1.
  • FIG. FIG. 6 is a diagram illustrating a configuration example of a decoding device 600 according to Embodiment 1.
  • 1 is a diagram illustrating an example of the hardware configuration of each device according to Embodiment 1.
  • FIG. 1 is a diagram illustrating a configuration example of a confidential information processing system 100 according to Embodiment 1.
  • FIG. 1 is a diagram illustrating a configuration example of a public parameter generation
  • FIG. 1 is a flowchart showing the operation of the confidential information processing system 100 according to the first embodiment.
  • 1 is a flowchart showing the operation of the confidential information processing system 100 according to the first embodiment.
  • 1 is a flowchart showing the operation of the confidential information processing system 100 according to the first embodiment.
  • 6 is a diagram illustrating an example of the hardware configuration of each device according to a modification of the first embodiment.
  • FIG. 1 shows an example of a system configuration of a confidential information processing system 100 according to the present embodiment.
  • the confidential information processing system 100 includes a public parameter generation device 200, a key generation device 300, an encryption device 400, a homomorphic arithmetic device 500, and a decryption device 600.
  • the Internet 101 is a communication path that connects the public parameter generation device 200, the key generation device 300, the plurality of encryption devices 400, the homomorphic arithmetic device 500, and the decryption device 600.
  • the Internet 101 is a specific example of a network. Instead of the Internet 101, other types of networks may be used.
  • the public parameter generation device 200 is a PC (Personal Computer) as a specific example.
  • the public parameter generation device 200 creates public parameters used to generate each of an encryption key, a decryption key, and a ciphertext, and transmits them to the key generation device 300, the encryption device 400, and the like via the Internet 101.
  • Data indicating the created public parameters is transmitted to each of the homomorphic computing devices 500. Note that the data indicating the created public parameters may be directly transmitted by mail or the like.
  • the key generation device 300 is a PC as a specific example.
  • the key generation device 300 creates an encryption key and a decryption key used for encryption, and sends the created encryption key to each of the encryption device 400 and the homomorphic arithmetic device 500 via the Internet 101.
  • data indicating the created decryption key is transmitted to the decryption device 600. Note that the data indicating each created key may be directly transmitted by mail or the like. Since the decryption key is secret information, the decryption key is stored inside each of the key generation device 300 and the decryption device 600 to prevent leakage.
  • the encryption device 400 is a PC as a specific example.
  • the encryption device 400 generates ciphertext data by encrypting plaintext data obtained from a factory sensor or the like using stored public parameters and an encryption key, and then encrypts the generated ciphertext data. , is transmitted to the homomorphic arithmetic unit 500 via the Internet 101.
  • the homomorphic arithmetic device 500 is, for example, a computer having a large capacity storage medium. Note that the homomorphic arithmetic device 500 is also called a circuit-secure quantum homomorphic arithmetic device. Homomorphic arithmetic device 500 also functions as a data storage device. That is, when the homomorphic processing device 500 receives a storage request for ciphertext data from the encryption device 400, it stores the ciphertext data corresponding to the storage request. The homomorphic calculation device 500 also functions as a device that performs homomorphic calculations on stored ciphertext data that is stored ciphertext data.
  • FIG. 2 is a block diagram showing a configuration example of the public parameter generation device 200.
  • the public parameter generation device 200 includes an input section 201, a public parameter generation section 202, and a transmission section 203.
  • the public parameter generation device 200 includes a storage medium that stores data used in each part of the public parameter generation device 200.
  • the public parameter generation unit 202 receives the security parameter ⁇ indicated by the data received from the input unit 201 as an input, and generates a public parameter PP, which is a parameter for generating each of an encryption key and a decryption key. Thereafter, the public parameter generation unit 202 sends data indicating the generated public parameter PP to the transmission unit 203.
  • the transmitting unit 203 transmits data indicating the public parameter PP generated by the public parameter generating unit 202 to each of the key generating device 300, the encryption device 400, and the homomorphic arithmetic device 500.
  • FIG. 3 is a block diagram showing a configuration example of the key generation device 300.
  • the key generation device 300 includes an input section 301, a public parameter storage section 302, a decryption key generation section 303, an encryption key generation section 304, and a transmission section 305.
  • the key generation device 300 includes a storage medium that stores data used in each part of the key generation device 300.
  • the input unit 301 receives data indicating the public parameters PP transmitted by the public parameter generation device 200, and sends the public parameters PP indicated by the received data to the public parameter storage unit 302. Further, the input unit 301 receives data indicating the security parameter ⁇ , and sends the data indicating the received security parameter ⁇ to the decryption key generation unit 303.
  • the public parameter storage unit 302 stores the public parameters PP indicated by the data received from the input unit 301.
  • the decryption key generation section 303 generates a decryption key SK using the security parameter ⁇ indicated by the data received from the input section 301, and transmits the data indicating the generated decryption key SK between the encryption key generation section 304 and the transmission section 305. Send to each.
  • the encryption key generation unit 304 receives as input the public parameter PP indicated by the data received from the public parameter storage unit 302 and the decryption key SK indicated by the data received from the decryption key generation unit 303, and generates an encryption key PK. Data indicating the generated encryption key PK is sent to the transmitter 305.
  • the encryption key generation unit 304 generates a first encryption key using a first public parameter and a first decryption key, and generates a second encryption key using a second public parameter and a second decryption key. Generate a security key.
  • each of the first public parameter and the second public parameter is a parameter generated using the security parameter ⁇ .
  • Each of the first decryption key and the second decryption key is a decryption key generated using the security parameter ⁇ .
  • the transmitter 305 transmits data indicating the decryption key SK generated by the decryption key generator 303 to the decryption device 600. Further, the transmitter 305 transmits data indicating the encryption key PK generated by the encryption key generator 304 to each of the encryption device 400 and the homomorphic arithmetic device 500.
  • FIG. 4 is a block diagram showing a configuration example of the encryption device 400.
  • the encryption device 400 includes an input section 401, a public parameter storage section 402, an encryption key storage section 403, an encryption section 404, and a transmission section 405.
  • the encryption device 400 includes a recording medium that stores data used in each part of the encryption device 400.
  • the input unit 401 receives data indicating the public parameters PP transmitted by the public parameter generation device 200, and sends the data indicating the received public parameters PP to the public parameter storage unit 402. Furthermore, the input unit 401 receives data indicating the encryption key PK transmitted by the key generation device 300, and sends the data indicating the received encryption key PK to the encryption key storage unit 403. The input unit 401 also receives plaintext data m, and sends the received plaintext data m to the encryption unit 404.
  • the public parameter storage unit 402 stores the public parameters PP indicated by the data received from the input unit 401.
  • the encryption key storage unit 403 stores the encryption key PK indicated by the data received from the input unit 401.
  • the transmitter 405 receives the ciphertext data C_PK(m) from the encryption unit 404 and transmits the received ciphertext data C_PK(m) to the homomorphic arithmetic device 500.
  • the input unit 501 receives the data indicating the public parameter PP1 and the data indicating the public parameter PP2 transmitted by the public parameter generation device 200, and stores the received data indicating the public parameter PP1 and data indicating the public parameter PP2 in the public parameter storage unit.
  • the number given at the end of the symbol indicating each element is a notation for distinguishing a plurality of elements of the same type from each other.
  • 1 or 2 is added to the end to distinguish between the two public parameters PP generated by the public parameter generation device 200.
  • the public parameter PP1 corresponds to the first public parameter.
  • the public parameter PP2 corresponds to the second public parameter.
  • the input unit 501 also receives data indicating the encryption key PK1 and data indicating the encryption key PK2 transmitted by the key generation device 300, and receives data indicating the received encryption key PK1 and data indicating the encryption key PK2. is sent to the encryption key storage unit 503.
  • the encryption key PK1 corresponds to the first encryption key.
  • the encryption key PK2 corresponds to the second encryption key.
  • the first encryption key includes a first homomorphic public key generated based on the first homomorphic decryption key and a first quantum homomorphic public key generated based on the first quantum homomorphic decryption key. .
  • the second encryption key includes a second homomorphic public key generated based on the second homomorphic decryption key and a second quantum homomorphic public key generated based on the second quantum homomorphic decryption key.
  • the input unit 501 also receives the ciphertext data C_PK(m1) and ciphertext data C_PK(m2) transmitted by the encryption device 400, and the received ciphertext data C_PK(m1) and ciphertext data C_PK(m2). is sent to the ciphertext storage unit 504.
  • the plaintext data m1 corresponds to the first plaintext.
  • Plaintext data m2 corresponds to second plaintext.
  • the ciphertext data C_PK(m1) corresponds to the first ciphertext.
  • the ciphertext data C_PK(m2) corresponds to the second ciphertext.
  • the first ciphertext is a ciphertext generated based on a first public parameter, a first one-time pad key, a first homomorphic public key, a first quantum homomorphic public key, and a first random number.
  • the second ciphertext is a ciphertext generated based on a second public parameter, a second one-time pad key, a second homomorphic public key, a second quantum homomorphic public key, and a second random number. be.
  • the input unit 501 receives data indicating the arithmetic circuit f, and sends the received data indicating the arithmetic circuit f to the homomorphic arithmetic unit 505.
  • the arithmetic circuit f may consist of a plurality of arithmetic circuits.
  • the public parameter storage unit 502 stores the public parameters PP1 and PP2 indicated by the data received from the input unit 501.
  • the encryption key storage unit 503 stores the encryption key PK1 and the encryption key PK2 indicated by the data received from the input unit 501.
  • the ciphertext storage unit 504 stores the ciphertext data C_PK(m1) and the ciphertext data C_PK(m2) received from the input unit 501.
  • the homomorphic calculation unit 505 calculates the calculation circuit f indicated by the data received from the input unit 501, the public parameters PP1 and PP2 received from the public parameter storage unit 502, and the encryption key received from the encryption key storage unit 503.
  • Ciphertext data C_PK(M) is calculated using PK1 and encryption key PK2, and ciphertext data C_PK(m1) and C_PK(m2) received from the ciphertext storage unit 504, and the calculated ciphertext data C_PK( M) is sent to the transmitter 506.
  • f(m1, m2) represents the result of executing the calculation indicated by the calculation circuit f using two plaintext data, plaintext data m1 and plaintext data m2, as input.
  • the ciphertext data after the homomorphic operation of the operation result data M regarding the set ⁇ PK1, PK2 ⁇ consisting of the encryption key PK1 and the encryption key PK2 will be expressed as C_PK(M).
  • C_PK(M) is also called ciphertext data after homomorphic operation.
  • the plaintext data m1 corresponds to the first plaintext.
  • Plaintext data m2 corresponds to second plaintext.
  • C_PK(M) corresponds to the third ciphertext.
  • the calculation result data M can be decrypted by using the decryption key SK1 and the decryption key SK2 for the ciphertext data C_PK(M).
  • the decryption key SK1 corresponds to the first decryption key.
  • the decryption key SK2 corresponds to the second decryption key.
  • the first decryption key includes a first homomorphic decryption key and a first quantum homomorphic decryption key.
  • the second decryption key includes a second homomorphic decryption key and a second quantum homomorphic decryption key.
  • the first decryption random number is a random number calculated based on the security parameter, the first one-time pad key, the first one-time pad key ciphertext data, the first quantum homomorphism public key, and the first random number. This is a random number for decoding the third ciphertext.
  • the second decryption random number is a random number calculated based on the security parameter, the second one-time pad key, the second one-time pad key ciphertext data, the second quantum homomorphism public key, and the second random number. This is a random number for decoding the third ciphertext.
  • the homomorphic calculation unit 505 generates a third ciphertext when at least one of the first encryption key, the second encryption key, the first ciphertext, and the second ciphertext is not generated. , generate random quantum data.
  • the homomorphic calculation unit 505 determines whether the first encryption key is generated by the encryption device based on whether the first decryption random number is generated, and determines whether the first encryption key is generated by the encryption device depending on whether the second decryption random number is generated. Determine whether the encryption key has been generated by the encryption device.
  • the homomorphic calculation unit 505 determines whether the first ciphertext is generated by the encryption device based on whether the first decryption random number is generated, and determines whether the first ciphertext is generated by the encryption device depending on whether the second decryption random number is generated. Determine whether the sentence was generated by the encryption device.
  • the transmitting unit 506 transmits the computed ciphertext data C_PK(M) received from the homomorphic computing unit 505 to the decryption device 600.
  • FIG. 6 is a block diagram showing a configuration example of the decoding device 600.
  • the decryption device 600 includes an input section 601, a decryption key storage section 602, a decryption processing section 603, and a decryption result storage section 604.
  • the decoding device 600 includes a recording medium that stores data used in each part of the decoding device 600.
  • the decryption key storage unit 602 stores the decryption key SK1 and the decryption key SK2 indicated by the data received from the input unit 601.
  • the decryption processing unit 603 receives the post-operation ciphertext data C_PK(M) from the input unit 601, receives the decryption key SK1 and the decryption key SK2 from the decryption key storage unit 602, and decodes the received post-operation ciphertext data C_PK(M).
  • the encrypted calculation result data M is decrypted by using the decryption key SK1 and the decryption key SK2 received from the decryption key SK1 and the decryption key SK2, and the decrypted calculation result data M is sent to the decryption result storage unit 604.
  • the decryption result storage unit 604 receives the calculation result data M from the decryption processing unit 603 and stores the received calculation result data M.
  • FIG. 7 is a diagram showing an example of hardware resources of each device according to the present embodiment. As shown in FIG. 7, each device is a general computer including a processor 11 (Central Processing Unit).
  • processor 11 Central Processing Unit
  • the processor 11 is, for example, a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit).
  • the processor 11 connects to a ROM (Read Only Memory) 13, a RAM (Random Access Memory) 14, a communication board 15, a display 31 (display device), a keyboard 32, a mouse 33, and a drive 34 via a bus 12. It is connected to hardware devices such as the magnetic disk drive 20 and controls these hardware devices.
  • the drive 34 is a device that reads and writes storage media such as an FD (Flexible Disk Drive), a CD (Compact Disc), and a DVD (Digital Versatile Disc).
  • the ROM 13, RAM 14, magnetic disk device 20, and drive 34 are examples of storage devices.
  • the keyboard 32, mouse 33, and communication board 15 are examples of input devices.
  • the display 31 and the communication board 15 are examples of output devices.
  • the communication board 15 is connected by wire or wirelessly to a communication network such as a LAN (Local Area Network), the Internet, or a telephone line.
  • a communication network such as a LAN (Local Area Network), the Internet, or a telephone line.
  • the magnetic disk device 20 stores an OS (operating system) 21, a program group 22, and a file group 23.
  • OS operating system
  • the program group 22 includes programs that execute functions described as "units" in this embodiment.
  • the program is read and executed by the processor 11. That is, the program causes the computer to function as a "section” and causes the computer to execute the procedures and methods of the "section.”
  • the file group 23 includes various data (input, output, determination results, calculation results, processing results, etc.) used in the "section" described in this embodiment.
  • the operation procedure of the confidential information processing system 100 corresponds to a confidential information processing method.
  • the confidential information processing method is also a general term for methods corresponding to the operating procedures of each device configuring the confidential information processing system 100.
  • a program that realizes the operation of the confidential information processing system 100 corresponds to a confidential information processing program.
  • the confidential information processing program is also a general term for programs that realize the operations of each device that constitutes the confidential information processing system 100.
  • FIG. 8 is a flowchart illustrating an example of public parameter generation and storage processing in the confidential information processing system 100.
  • the generation and storage process of public parameters will be explained using FIG. Note that steps S701 to S703 are processes executed by the public parameter generation device 200, steps S704 to S705 are processes executed by the key generation device 300, and steps S706 to S707 are processes executed by the encryption device 400. This is a process to be executed, and steps S708 to S709 are processes executed by the homomorphic arithmetic device 500.
  • Step S701 Input unit 201 receives security parameter ⁇ .
  • Step S702 The public parameter generation unit 202 receives the security parameter ⁇ received by the input unit 201 in step S701 and generates a public parameter PP.
  • Step S703 The transmitter 203 receives the public parameter PP generated by the public parameter generator 202 in step S702, and transmits the data indicating the received public parameter PP to the key generation device 300, the encryption device 400, and the homomorphic arithmetic device 500. to each of them.
  • Step S704 The input unit 301 receives the data indicating the public parameter PP transmitted by the transmitting unit 203 in step S703.
  • Step S705 The public parameter storage unit 302 stores the public parameter PP indicated by the data received by the input unit 301 in step S704.
  • Step S706 The input unit 401 receives the data indicating the public parameter PP transmitted by the transmitting unit 203 in step S703.
  • Step S707 The public parameter storage unit 402 stores the public parameter PP indicated by the data received by the input unit 401 in step S706.
  • Step S708 The input unit 501 receives data indicating the public parameter PP transmitted by the transmitting unit 203 in step S703.
  • Step S709 The public parameter storage unit 502 stores the public parameter PP indicated by the data received by the input unit 501 in step S708.
  • FIG. 9 is a flowchart illustrating an example of encryption key and decryption key generation and storage processing in the confidential information processing system 100.
  • the generation and storage process of encryption keys and decryption keys will be explained using FIG. Note that steps S801 to S804 are processes executed by the key generation device 300, steps S805 to S806 are processes executed by the encryption device 400, and steps S807 to S808 are processes executed by the homomorphic arithmetic device 500. This is a process that is executed, and steps S809 to S810 are processes that are executed by the decoding device 600.
  • Step S801 The input unit 301 receives data indicating the security parameter ⁇ .
  • Step S802 The decryption key generation unit 303 receives the security parameter ⁇ indicated by the data received by the input unit 301 in step S801 as an input, and generates a decryption key SK expressed in a format such as [Equation 1].
  • the homomorphic decryption key sk is generated using the homomorphic key generation algorithm described in [Reference 1] with the security parameter ⁇ as input.
  • the quantum homomorphic decryption key qsk is generated using the quantum homomorphic key generation algorithm described in [Reference 2] with the security parameter ⁇ and the random number r as input.
  • Step S803 The encryption key generation unit 304 inputs the decryption key SK generated by the decryption key generation unit 303 in step S802 and the public parameter PP stored in the public parameter storage unit 302, and generates a format as shown in [Equation 2]. An encryption key PK represented by is generated.
  • the homomorphic public key pk is generated using the homomorphic key generation algorithm described in [Reference 1] using the homomorphic decryption key sk as input.
  • the quantum homomorphic public key qpk is generated using the quantum homomorphic key generation algorithm described in [Reference 2] using the public parameter PP, the quantum homomorphic decryption key qsk, and the random number r as input.
  • the random number ciphertext [r] is generated using the homomorphic encryption algorithm described in [Reference 1] using the random number r and the homomorphic public key pk as input.
  • Step S804 The transmitting unit 305 receives data indicating the decryption key SK generated by the decryption key generating unit 303 in step S802 and data indicating the encryption key PK generated by the encryption key generating unit 304 in step S803, and transmits the data to the encryption device.
  • Data indicating the received encryption key PK is transmitted to each of the homomorphic processing device 400 and the homomorphic processing device 500, and data indicating the received decryption key SK is transmitted to the decryption device 600.
  • Step S805 The input unit 401 receives data indicating the encryption key PK transmitted by the transmitting unit 305 in step S804.
  • Step S806 The encryption key storage unit 403 stores the encryption key PK indicated by the data received by the input unit 401 in step S805.
  • Step S807 The input unit 501 receives data indicating the encryption key PK transmitted by the transmitting unit 305 in step S804.
  • Step S808 The encryption key storage unit 503 stores the encryption key PK indicated by the data received by the input unit 501 in step S807.
  • Step S809 The input unit 601 receives the data indicating the decryption key SK transmitted by the transmitting unit 305 in step S804.
  • Step S810 The decryption key storage unit 602 stores the decryption key SK indicated by the data received by the input unit 601 in step S809. Note that since the decryption key SK is secret information, the decryption key storage unit 602 needs to strictly store the decryption key SK so that it does not leak to the outside.
  • FIG. 10 is a flowchart illustrating an example of a homomorphic operation in the confidential information processing system 100. Homomorphic operations will be explained using FIG. 10. Note that steps S901 to S903 are processes executed by the encryption device 400, steps S904 to S908 are processes executed by the homomorphic arithmetic device 500, and steps S909 to S911 are processes executed by the decryption device 600. This is the process to be performed.
  • Step S901 the input unit 401 receives plaintext data m1 and plaintext data m2 collected from a sensor or the like, and sends the received plaintext data m1 and plaintext data m2 to the encryption unit 404.
  • Step S902 The encryption unit 404 stores the plaintext data m1 and plaintext data m2 received by the input unit 401 in step S901, the public parameters PP1 and PP2 stored in the public parameter storage unit 402, and the encryption key storage unit 403. From the stored encryption key PK1 and encryption key PK2, ciphertext data C_PK(m1) and ciphertext data C_PK(m2) expressed in a format such as [Equation 3] are generated. Note that, depending on the character format that can be expressed, the notation in the mathematical formula may differ from the notation in the main text.
  • quantum ciphertext data c1 and quantum ciphertext data c2 are generated using the quantum one-time pad encryption algorithm described in [Reference 2] with one-time pad key otk1 and one-time pad key otk2 as input, respectively. is generated.
  • the one-time pad key otk1 corresponds to the first one-time pad key.
  • One-time pad key otk2 corresponds to a second one-time pad key.
  • One-time pad key ciphertext data [[otk1]]_1 and [[otk2]]_2 are one-time pad key otk1 or one-time pad key otk2, and quantum homomorphism public key qpk1 or quantum homomorphism public key, respectively.
  • the quantum homomorphic public key qpk1 corresponds to the first quantum homomorphic public key.
  • the quantum homomorphic public key qpk2 corresponds to a second quantum homomorphic public key. Note that each of the public parameter PP1 and the public parameter PP2 is used as an input to the multi-key quantum homomorphic encryption algorithm.
  • the one-time pad key and random number ciphertext data [otk1, s1]_1 and [otk2, s2]_2 are the one-time pad key otk1 or the one-time pad key otk2, and the homomorphic public key pk1 or quasi It is generated using the homomorphic encryption algorithm described in [Reference 1] using the homomorphic public key pk2 and the random number s1 or random number s2 as input.
  • the homomorphic public key pk1 corresponds to the first homomorphic public key.
  • Homomorphic public key pk2 corresponds to a second homomorphic public key.
  • the random number s1 corresponds to the first random number.
  • Random number s2 corresponds to a second random number.
  • the encryption unit 404 sends each of the ciphertext data C_PK(m1) and the ciphertext data C_PK(m2) to the transmission unit 405 of the encryption device 400.
  • Step S903 The transmitting unit 405 receives the ciphertext data C_PK(m1) and ciphertext data C_PK(m2) sent by the encryption unit 404 in step S902, and transmits the received ciphertext data C_PK(m1) and ciphertext data C_PK(m2). is transmitted to the homomorphic arithmetic unit 500.
  • the input unit 501 receives an arithmetic circuit f input from a keyboard, a mouse, a storage device, or the like, and sends the received arithmetic circuit f to a homomorphic arithmetic unit 505 .
  • the homomorphic calculation unit 505 calculates the calculation circuit f received from the input unit 501, the public parameters PP1 and PP2 stored in the public parameter storage unit 502, and the encrypted data stored in the encryption key storage unit 503. Using the key PK1, the encryption key PK2, and the ciphertext data C_PK(m1) and ciphertext data C_PK(m2) stored in the ciphertext storage unit 504 as input, the cipher expressed in the format of [Equation 4] is generated.
  • the quantum homomorphic operation post-ciphertext data c' is generated by the method described in [Equation 5].
  • c1' and c2' which are the partial ciphertext data after the quantum homomorphic operation, are obtained by using the arithmetic circuit described in [Math. 7] or [Math. 8], the homomorphic public key pk1 or the homomorphic public key pk2, and a random number, respectively.
  • [References It is generated using the homomorphic operation algorithm described in [1].
  • the algorithm QOTP. Enc is a quantum one-time pad encryption algorithm described in [Reference 2], and one-time pad key otk' is a randomly selected bit string. Further, c'' is a quantum circuit G expressed by [Equation 6], a quantum homomorphic public key qpk1, a quantum homomorphic public key qpk2, and one-time pad key ciphertext data [[otk1]]_1 and [[otk2]]_2 is input, and is generated using the quantum homomorphism operation algorithm described in [Reference Document 2]. Note that each of the public parameter PP1 and the public parameter PP2 is used as an input to the quantum homomorphism operation algorithm.
  • Dec is a quantum one-time pad decoding algorithm described in [Reference 2].
  • the homomorphic operation unit 505 executes the operation indicated by the operation circuit f described in each of [Equation 7] and [Equation 8] while encrypting the data, thereby decoding each encryption key PK and each ciphertext. Check whether data C_PK(m) is correctly generated.
  • the homomorphic operation unit 505 executes the operation indicated by the operation circuit f described in each of [Equation 7] and [Equation 8] while encrypting the data, thereby decoding each encryption key PK and each ciphertext. Check whether data C_PK(m) is correctly generated.
  • the arithmetic circuit f described in each of [Equation 7] and [Equation 8] when an encryption key that has not been generated by the key generation device 300 is used in the homomorphic operation unit 505, the random number ⁇ 1 and the random number ⁇ 2 cannot be obtained within the decoding device 600. Furthermore, even when ciphertext data not generated by the encryption device 400 is used in the homomorphic calculation unit 505, the random
  • Step S909 The input unit 601 receives the post-computation ciphertext data C_PK(M) sent from the transmitting unit 506 in step S908, and sends the received post-computation ciphertext data C_PK(M) to the decryption processing unit 603.
  • FIG. 11 shows an example of the hardware configuration of each device according to this modification.
  • Each device includes a processing circuit 18 in place of the processor 11, the processor 11 and ROM 13, the processor 11 and RAM 14, or the processor 11, ROM 13, and RAM 14.
  • the processing circuit 18 is hardware that realizes at least a part of each unit included in each device.
  • the processing circuit 18 may be dedicated hardware or may be a processor that executes a program stored in the RAM 14.
  • the processing circuit 18 may be, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), or an FPGA (Field Programmable Gate Array) or a combination thereof.
  • Each device may include multiple processing circuits to replace processing circuit 18. The plurality of processing circuits share the role of the processing circuit 18.
  • the processing circuit 18 is implemented, for example, by hardware, software, firmware, or a combination thereof.
  • the processor 11, ROM 13, RAM 14, and processing circuit 18 are collectively referred to as a "processing circuitry.” That is, the functions of each functional component of each device are realized by processing circuitry.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

強回路秘匿性を満たす量子準同型暗号技術に対応する秘匿情報処理システムは、暗号化装置(400)を備える。暗号化装置(400)は、第1公開パラメータ及び第1暗号化鍵を用いて第1平文を暗号化することによって第1暗号文を生成し、第2公開パラメータ及び第2暗号化鍵を用いて第2平文を暗号化することによって第2暗号文を生成する暗号化部(404)を備える。第1公開パラメータ及び第2公開パラメータの各々は、セキュリティパラメータを用いて生成されたパラメータである。第1暗号化鍵は、第1公開パラメータと、セキュリティパラメータを用いて生成された復号鍵である第1復号鍵とを用いて生成された暗号化鍵である。第2暗号化鍵は、第2公開パラメータと、セキュリティパラメータを用いて生成された復号鍵である第2復号鍵とを用いて生成された暗号化鍵である。

Description

秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム
 本開示は、秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラムに関する。
 量子準同型暗号とは、データを暗号化したまま量子演算することができる暗号技術である。昨今、クラウドサービスの利用が広まりつつあるが、クラッキング、又はクラウドの信頼性の懸念等から、クラウドにおいてデータを暗号化して保管することが考えられる。量子準同型暗号では、暗号化されているデータを復号することなく暗号化されているデータに対して演算を施すことができる。そのため、量子準同型暗号は、安全性を損なうことなく、量子計算を用いたクラウドサービスの利用を可能とする技術である。
 量子準同型暗号の安全性を向上するための暗号技術であって、データを暗号化したまま量子演算した結果から演算処理についての情報が漏洩しない安全性を達成した暗号技術が、回路秘匿性を満たす量子準同型暗号である。特に、回路秘匿性を満たす量子準同型暗号の中でも、暗号化アルゴリズムによって生成されていない暗号文に対する量子準同型演算の結果から量子演算についての情報が漏洩しない安全性を達成する量子準同型暗号は強回路秘匿性を満たす量子準同型暗号である。強回路秘匿性を満たす量子準同型暗号は、暗号化したデータに対して演算を実行する際に、入力の正当性を確認した後に、通常の回路秘匿性を満たす量子準同型暗号によってデータを暗号化したまま演算を実行することによって実現される。入力の正当性は、具体的には、演算の入力である暗号化鍵が鍵生成アルゴリズムによって生成されており、演算の入力である暗号文が暗号化アルゴリズムによって生成されていることである。通常の回路秘匿性を満たす量子準同型暗号は、暗号化アルゴリズムによって生成された暗号文に対してのみ回路秘匿性が成り立つ量子準同型暗号である。
 非特許文献1は、強回路秘匿性を満たす量子準同型暗号の構成例を開示しており、また、互いに異なる暗号化鍵を用いて暗号化された暗号文同士に対して準同型演算を実行することができる強回路秘匿性を満たす量子準同型暗号の構成例も開示している。
Chardouvelis,O.et al.,"Rate-1 Quantum Fully Homomorphic Encryption",TCC 2021:Theory of Cryptography,pp.149-176,2021.
 非特許文献1が開示している従来の回路秘匿性を満たす量子準同型暗号は、Decisional Small Polynomial Ratio(DSPR)問題と呼ばれる特殊な計算問題を安全性の根拠としている。しかしながら、DSPR問題は、量子コンピュータを用いることによって簡単に解読することができることが知られている。特に、非特許文献1が開示している量子準同型暗号技術は、構成要素として用いられる回路秘匿性を満たす準同型暗号の安全性がDSPR問題の困難性に依存している。そのため、非特許文献1が開示している強回路秘匿性を満たす量子準同型暗号も量子コンピュータに対して安全ではない。
 本開示は、量子コンピュータに対して安全であり、かつ、互いに異なる暗号化鍵によって暗号化された暗号文同士に対して量子計算による準同型演算が可能である強回路秘匿性を満たす量子準同型暗号技術を実現することを目的とする。
 本開示に係る秘匿情報処理システムは、
 強回路秘匿性を満たす量子準同型暗号技術に対応する秘匿情報処理システムであって、
 第1公開パラメータ及び第1暗号化鍵を用いて第1平文を暗号化することによって第1暗号文を生成し、第2公開パラメータ及び第2暗号化鍵を用いて第2平文を暗号化することによって第2暗号文を生成する暗号化部
を備える暗号化装置
を備え、
 前記第1公開パラメータ及び前記第2公開パラメータの各々は、セキュリティパラメータを用いて生成されたパラメータであり、
 前記第1暗号化鍵は、前記第1公開パラメータと、前記セキュリティパラメータを用いて生成された復号鍵である第1復号鍵とを用いて生成された暗号化鍵であり、
 前記第2暗号化鍵は、前記第2公開パラメータと、前記セキュリティパラメータを用いて生成された復号鍵である第2復号鍵とを用いて生成された暗号化鍵である。
 本開示によれば、量子コンピュータに対して安全であり、かつ、互いに異なる暗号化鍵によって暗号化された暗号文同士に対して量子計算による準同型演算が可能である強回路秘匿性を満たす量子準同型暗号技術を実現することができる。
実施の形態1に係る秘匿情報処理システム100の構成例を示す図。 実施の形態1に係る公開パラメータ生成装置200の構成例を示す図。 実施の形態1に係る鍵生成装置300の構成例を示す図。 実施の形態1に係る暗号化装置400の構成例を示す図。 実施の形態1に係る準同型演算装置500の構成例を示す図。 実施の形態1に係る復号装置600の構成例を示す図。 実施の形態1に係る各装置のハードウェア構成例を示す図。 実施の形態1に係る秘匿情報処理システム100の動作を示すフローチャート。 実施の形態1に係る秘匿情報処理システム100の動作を示すフローチャート。 実施の形態1に係る秘匿情報処理システム100の動作を示すフローチャート。 実施の形態1の変形例に係る各装置のハードウェア構成例を示す図。
 実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「機器」、「回路」、「工程」、「手順」、「処理」、「ステップ」又は「サーキットリー」に適宜読み替えてもよい。
 実施の形態1.
 以下、本実施の形態について、図面を参照しながら詳細に説明する。
***構成の説明***
 図1は、本実施の形態に係る秘匿情報処理システム100のシステム構成例を示している。秘匿情報処理システム100は、図1に示すように、公開パラメータ生成装置200と、鍵生成装置300と、暗号化装置400と、準同型演算装置500と、復号装置600とを有する。
 インターネット101は、公開パラメータ生成装置200と、鍵生成装置300と、複数の暗号化装置400と、準同型演算装置500と、復号装置600とを接続する通信路である。インターネット101はネットワークの具体例である。インターネット101の代わりに、他の種類のネットワークが用いられてもよい。
 公開パラメータ生成装置200は、具体例としてPC(Personal Computer)である。公開パラメータ生成装置200は、暗号化鍵と復号鍵と暗号文との各々を生成することに用いられる公開パラメータを作成し、インターネット101を介して、鍵生成装置300と、暗号化装置400と、準同型演算装置500との各々へ作成した公開パラメータを示すデータを送信する。なお、作成された公開パラメータを示すデータは郵送等で直接的に送信されてもよい。
 鍵生成装置300は、具体例としてPCである。鍵生成装置300は、暗号化に利用される暗号化鍵と、復号鍵との各々を作成し、インターネット101を介して、暗号化装置400と、準同型演算装置500との各々へ作成した暗号化鍵を示すデータを送信し、復号装置600へ作成した復号鍵を示すデータを送信する。なお、作成された各鍵を示すデータは郵送等で直接的に送信されてもよい。
 復号鍵は秘密の情報であるため、復号鍵は漏洩することがないように鍵生成装置300と復号装置600との各々の内部に保管される。
 暗号化装置400は、具体例としてPCである。暗号化装置400は、工場のセンサ等から得られた平文データを、保管している公開パラメータ及び暗号化鍵を用いてで暗号化することによって暗号文データを生成し、生成した暗号文データを、インターネット101を介して準同型演算装置500に送信する。
 準同型演算装置500は、具体例として大容量の記憶媒体を持つ計算機である。なお、準同型演算装置500は回路秘匿量子準同型演算装置とも呼ばれる。
 準同型演算装置500は、データ保管装置としても機能する。即ち、準同型演算装置500は、暗号化装置400から暗号文データの保管要求があれば保管要求に対応する暗号文データを保管する。
 準同型演算装置500は、保管している暗号文データである保管暗号文データに対して準同型演算を行う装置としても機能する。即ち、準同型演算装置500は、保管している公開パラメータと、保管している暗号化鍵と、保管暗号文データとから、保管暗号文データに対応する平文データに対する演算結果に対応する暗号文データを生成し、生成した暗号文データを、インターネット101を介して復号装置600に送信する。
 復号装置600は、具体例としてPCである。復号装置600は、鍵生成装置300が送信した復号鍵を示すデータを受信し、受信したデータが示す復号鍵を保管する復号鍵保管装置としても機能する。
 復号装置600は、準同型演算装置500が送信した暗号文データを受信し、保管している復号鍵を用いて受信した暗号文データを復号することによって演算結果を取得する暗号文データ復号装置として動作するPCでもある。
 なお、同一のPC内に、公開パラメータ生成装置200と、鍵生成装置300と、暗号化装置400と、準同型演算装置500と、復号装置600との少なくとも2つが同時に含まれていてもよい。
 以下、本実施の形態の構成について説明する。なお、各装置が作成する要素の数は2以上であってもよい。
 図2は、公開パラメータ生成装置200の構成例を示すブロック図である。図2に示すように、公開パラメータ生成装置200は、入力部201と、公開パラメータ生成部202と、送信部203とを備える。なお、図示していないが、公開パラメータ生成装置200は、公開パラメータ生成装置200の各部において使用されるデータを記憶する記憶媒体を備える。
 入力部201は、セキュリティパラメータλを示すデータを受信し、受信したセキュリティパラメータλを示すデータを公開パラメータ生成部202へ送る。
 公開パラメータ生成部202は、入力部201から受け取ったデータが示すセキュリティパラメータλを入力として、暗号化鍵と復号鍵との各々を生成するためのパラメータである公開パラメータPPを生成する。その後、公開パラメータ生成部202は、生成した公開パラメータPPを示すデータを送信部203へ送る。
 送信部203は、公開パラメータ生成部202が生成した公開パラメータPPを示すデータを、鍵生成装置300と、暗号化装置400と、準同型演算装置500との各々へ送信する。
 図3は、鍵生成装置300の構成例を示すブロック図である。図3に示すように、鍵生成装置300は、入力部301と、公開パラメータ保管部302と、復号鍵生成部303と、暗号化鍵生成部304と、送信部305とを備える。なお、図示していないが、鍵生成装置300は、鍵生成装置300の各部において使用されるデータを記憶する記憶媒体を備える。
 入力部301は、公開パラメータ生成装置200が送信した公開パラメータPPを示すデータを受信し、受信したデータが示す公開パラメータPPを公開パラメータ保管部302へ送る。
 また、入力部301は、セキュリティパラメータλを示すデータを受信し、受信したセキュリティパラメータλを示すデータを復号鍵生成部303へ送る。
 公開パラメータ保管部302は、入力部301から受け取ったデータが示す公開パラメータPPを保管する。
 復号鍵生成部303は、入力部301から受け取ったデータが示すセキュリティパラメータλを用いて復号鍵SKを生成し、生成した復号鍵SKを示すデータを暗号化鍵生成部304と送信部305との各々へ送る。
 暗号化鍵生成部304は、公開パラメータ保管部302から受け取ったデータが示す公開パラメータPPと、復号鍵生成部303から受け取ったデータが示す復号鍵SKとを入力として暗号化鍵PKを生成し、生成した暗号化鍵PKを示すデータを送信部305へ送る。
 なお、暗号化鍵生成部304は、第1公開パラメータと、第1復号鍵とを用いて第1暗号化鍵を生成し、第2公開パラメータと、第2復号鍵とを用いて第2暗号化鍵を生成する。ここで、第1公開パラメータ及び第2公開パラメータの各々は、セキュリティパラメータλを用いて生成されたパラメータである。第1復号鍵及び第2復号鍵の各々は、セキュリティパラメータλを用いて生成された復号鍵である。
 送信部305は、復号鍵生成部303が生成した復号鍵SKを示すデータを復号装置600へ送信する。
 また、送信部305は、暗号化鍵生成部304が生成した暗号化鍵PKを示すデータを、暗号化装置400と、準同型演算装置500との各々へ送信する。
 図4は、暗号化装置400の構成例を示すブロック図である。図4に示すように、暗号化装置400は、入力部401と、公開パラメータ保管部402と、暗号化鍵保管部403と、暗号化部404と、送信部405とを備える。なお、図示していないが、暗号化装置400は、暗号化装置400の各部において使用されるデータを記憶する記録媒体を備える。
 入力部401は、公開パラメータ生成装置200が送信した公開パラメータPPを示すデータを受信し、受信した公開パラメータPPを示すデータを公開パラメータ保管部402へ送る。
 また、入力部401は、鍵生成装置300が送信した暗号化鍵PKを示すデータを受信し、受信した暗号化鍵PKを示すデータを暗号化鍵保管部403へ送る。
 また、入力部401は、平文データmを受信し、受信した平文データmを暗号化部404へ送る。
 公開パラメータ保管部402は、入力部401から受け取ったデータが示す公開パラメータPPを保管する。
 暗号化鍵保管部403は、入力部401から受け取ったデータが示す暗号化鍵PKを保管する。
 暗号化部404は、公開パラメータ保管部402から受け取った公開パラメータPPと、暗号化鍵保管部403から受け取った暗号化鍵PKと、入力部401から受け取った平文データmとを用いて平文データmに対応する暗号文データC_PK(m)を生成し、生成した暗号文データC_PK(m)を送信部405へ送る。以下、暗号化鍵PKを用いて平文データmを暗号化することによって得られる暗号文データを暗号文データC_PK(m)と表す。
 暗号化部404は、第1公開パラメータ及び第1暗号化鍵を用いて第1平文を暗号化することによって第1暗号文を生成し、第2公開パラメータ及び第2暗号化鍵を用いて第2平文を暗号化することによって第2暗号文を生成する。
 送信部405は、暗号化部404から暗号文データC_PK(m)を受け取り、受け取った暗号文データC_PK(m)を準同型演算装置500へ送信する。
 図5は、準同型演算装置500の構成例を示すブロック図である。図5に示すように、準同型演算装置500は、入力部501と、公開パラメータ保管部502と、暗号化鍵保管部503と、暗号文保管部504と、準同型演算部505と、送信部506とを備える。なお、図示していないが、準同型演算装置500は、準同型演算装置500の各部において使用されるデータを記憶する記録媒体を備える。
 入力部501は、公開パラメータ生成装置200が送信した公開パラメータPP1を示すデータ及び公開パラメータPP2を示すデータを受信し、受信した公開パラメータPP1を示すデータ及び公開パラメータPP2を示すデータを公開パラメータ保管部502へ送る。ここで、各要素を示す記号の末尾に付与されている数字は、複数個存在する同じ種類の要素を互いに区別するための表記である。具体例として、公開パラメータPP1及び公開パラメータPP2に関して、公開パラメータ生成装置200が生成した2つの公開パラメータPPを区別するために1又は2が末尾に付与されている。また、公開パラメータPP1は第1公開パラメータに当たる。公開パラメータPP2は第2公開パラメータに当たる。
 また、入力部501は、鍵生成装置300が送信した暗号化鍵PK1を示すデータ及び暗号化鍵PK2を示すデータを受信し、受信した暗号化鍵PK1を示すデータ及び暗号化鍵PK2を示すデータを暗号化鍵保管部503へ送る。ここで、暗号化鍵PK1は第1暗号化鍵に当たる。暗号化鍵PK2は第2暗号化鍵に当たる。第1暗号化鍵は、第1準同型復号鍵に基づいて生成された第1準同型公開鍵と、第1量子準同型復号鍵に基づいて生成された第1量子準同型公開鍵とから成る。第2暗号化鍵は、第2準同型復号鍵に基づいて生成された第2準同型公開鍵と、第2量子準同型復号鍵に基づいて生成された第2量子準同型公開鍵とから成る。
 また、入力部501は、暗号化装置400が送信した暗号文データC_PK(m1)及び暗号文データC_PK(m2)を受信し、受信した暗号文データC_PK(m1)及び暗号文データC_PK(m2)を暗号文保管部504へ送る。ここで、平文データm1は第1平文に対応する。平文データm2は第2平文に対応する。暗号文データC_PK(m1)は第1暗号文に対応する。暗号文データC_PK(m2)は第2暗号文に対応する。第1暗号文は、第1公開パラメータと、第1ワンタイムパッド鍵と、第1準同型公開鍵と、第1量子準同型公開鍵と、第1乱数とに基づいて生成された暗号文である。第2暗号文は、第2公開パラメータと、第2ワンタイムパッド鍵と、第2準同型公開鍵と、第2量子準同型公開鍵と、第2乱数とに基づいて生成された暗号文である。
 また、入力部501は、演算回路fを示すデータを受信し、受信した演算回路fを示すデータを準同型演算部505へ送る。演算回路fは複数の演算回路から成ってもよい。
 公開パラメータ保管部502は、入力部501から受け取ったデータが示す公開パラメータPP1及び公開パラメータPP2を保管する。
 暗号化鍵保管部503は、入力部501から受け取ったデータが示す暗号化鍵PK1及び暗号化鍵PK2を保管する。
 暗号文保管部504は、入力部501から受け取った暗号文データC_PK(m1)及び暗号文データC_PK(m2)を保管する。
 準同型演算部505は、入力部501から受け取ったデータが示す演算回路fと、公開パラメータ保管部502から受け取った公開パラメータPP1及び公開パラメータPP2と、暗号化鍵保管部503から受け取った暗号化鍵PK1及び暗号化鍵PK2と、暗号文保管部504から受け取った暗号文データC_PK(m1)及びC_PK(m2)とを用いて暗号文データC_PK(M)を算出し、算出した暗号文データC_PK(M)を送信部506へ送る。ここで、暗号文データC_PK(M)は、平文データm1及び平文データm2に対して演算回路fが示す演算を適用することによって得られる演算結果を示すデータである演算結果データM(=f(m1,m2))に対応する暗号文を示すデータである。また、f(m1,m2)は、2つの平文データである平文データm1及び平文データm2を入力として演算回路fが示す演算を実行した結果を表す。以下、暗号化鍵PK1と暗号化鍵PK2から成る集合{PK1,PK2}に関する演算結果データMの準同型演算後暗号文データをC_PK(M)と表す。C_PK(M)は準同型演算後暗号文データとも呼ばれる。ここで、平文データm1は第1平文に対応する。平文データm2は第2平文に対応する。C_PK(M)は第3暗号文に対応する。なお、暗号文データC_PK(M)に対して復号鍵SK1及び復号鍵SK2を用いることにより、演算結果データMを復号することができる。ここで、復号鍵SK1は第1復号鍵に当たる。復号鍵SK2は第2復号鍵に当たる。第1復号鍵は、第1準同型復号鍵と、第1量子準同型復号鍵とから成る。第2復号鍵は、第2準同型復号鍵と、第2量子準同型復号鍵とから成る。
 準同型演算部505は、第1公開パラメータと、第2公開パラメータと、第1暗号文と、第2暗号文と、第1暗号化鍵と、第2暗号化鍵とを用いて量子計算を実行することにより第3暗号文を生成する。ここで、第3暗号文は、第1平文及び第2平文に対して演算回路fが示す演算を適用することによって得られる演算結果を暗号化することによって生成される暗号文である。演算回路fは、第1復号乱数を算出する部位と、第2復号乱数を算出する部位との各々を含んでもよい。第1復号乱数は、セキュリティパラメータと、第1ワンタイムパッド鍵と、第1ワンタイムパッド鍵暗号文データと、第1量子準同型公開鍵と、第1乱数とに基づいて算出された乱数であって、第3暗号文を復号するための乱数である。第2復号乱数は、セキュリティパラメータと、第2ワンタイムパッド鍵と、第2ワンタイムパッド鍵暗号文データと、第2量子準同型公開鍵と、第2乱数とに基づいて算出された乱数であって、第3暗号文を復号するための乱数である。なお、準同型演算部505は、第1暗号化鍵と、第2暗号化鍵と、第1暗号文と、第2暗号文との少なくともいずれかが生成されていない場合に、第3暗号文として、ランダムな量子データを生成する。
 準同型演算部505は、第1復号乱数が生成されたか否かによって第1暗号化鍵が暗号化装置によって生成されたか否かを判定し、第2復号乱数が生成されたか否かによって第2暗号化鍵が暗号化装置によって生成されたか否かを判定する。準同型演算部505は、第1復号乱数が生成されたか否かによって第1暗号文が暗号化装置によって生成されたか否かを判定し、第2復号乱数が生成されたか否かによって第2暗号文が暗号化装置によって生成されたか否かを判定する。
 送信部506は、準同型演算部505から受け取った演算後暗号文データC_PK(M)を復号装置600に送信する。
 図6は、復号装置600の構成例を示すブロック図である。図6に示すように、復号装置600は、入力部601と、復号鍵保管部602と、復号処理部603と、復号結果保管部604とを備える。なお、図示していないが、復号装置600は、復号装置600の各部において使用されるデータを記憶する記録媒体を備える。
 入力部601は、鍵生成装置300が送信した復号鍵SK1を示すデータ及び復号鍵SK2を示すデータを受信し、受信した復号鍵SK1を示すデータ及び復号鍵SK2を示すデータを復号鍵保管部602に送る。
 また、入力部601は、準同型演算装置500が送信した暗号化鍵の集合PK={PK1,PK2}に関する演算結果データMの演算後暗号文データC_PK(M)を受信し、受信した演算後暗号文データC_PK(M)を復号処理部603に送る。
 復号鍵保管部602は、入力部601から受け取ったデータが示す復号鍵SK1及び復号鍵SK2を保管する。
 復号処理部603は、入力部601から演算後暗号文データC_PK(M)を受け取り、復号鍵保管部602から復号鍵SK1及び復号鍵SK2を受け取り、受け取った演算後暗号文データC_PK(M)に対して受け取った復号鍵SK1及び復号鍵SK2を用いることにより暗号化されていた演算結果データMを復号し、復号した演算結果データMを復号結果保管部604へ送る。
 復号結果保管部604は、復号処理部603から演算結果データMを受け取り、受け取った演算結果データMを保管する。
 図7は、本実施の形態に係る各装置のハードウェア資源の一例を示す図である。図7に示すように、各装置はプロセッサ11(Central Processing Unit)を備える一般的なコンピュータである。
 プロセッサ11は、具体例として、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、又はGPU(Graphics Processing Unit)である。プロセッサ11は、バス12を介して、ROM(Read Only Memory)13と、RAM(Random Access Memory)14と、通信ボード15と、ディスプレイ31(表示装置)と、キーボード32、マウス33と、ドライブ34と、磁気ディスク装置20等のハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ34は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)等の記憶媒体を読み書きする装置である。
 ROM13と、RAM14と、磁気ディスク装置20と、ドライブ34とは記憶装置の一例である。
 キーボード32と、マウス33と、通信ボード15とは入力装置の一例である。
 ディスプレイ31及び通信ボード15は出力装置の一例である。
 通信ボード15は、有線又は無線で、LAN(Local Area Network)、インターネット、又は電話回線等の通信網に接続している。
 磁気ディスク装置20は、OS(オペレーティングシステム)21と、プログラム群22と、ファイル群23とを記憶している。
 プログラム群22には、本実施の形態において「部」として説明する機能を実行するプログラムが含まれる。プログラムは、プロセッサ11により読み出されて実行される。即ち、プログラムは、「部」としてコンピュータを機能させるものであり、また「部」の手順及び方法をコンピュータに実行させるものである。
 ファイル群23には、本実施の形態において説明する「部」において使用される各種データ(入力、出力、判定結果、計算結果、又は処理結果等)が含まれる。
 フローチャート等に基づいて説明される本実施の形態の処理は、プロセッサ11、記憶装置、入力装置、又は出力装置等のハードウェアを用いて実行される。
 「部」として説明するものは、ファームウェア、ソフトウェア、ハードウェア、又はこれらの組み合わせのいずれによって実現されても構わない。
 本明細書に記載されているいずれのプログラムも、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。本明細書に記載されているいずれのプログラムも、プログラムプロダクトとして提供されてもよい。
***動作の説明***
 秘匿情報処理システム100の動作手順は秘匿情報処理方法に相当する。秘匿情報処理方法は、秘匿情報処理システム100を構成する各装置の動作手順に対応する方法の総称でもある。また、秘匿情報処理システム100の動作を実現するプログラムは秘匿情報処理プログラムに相当する。秘匿情報処理プログラムは、秘匿情報処理システム100を構成する各装置の動作を実現するプログラムの総称でもある。
 図8は、秘匿情報処理システム100における公開パラメータの生成及び保管処理の一例を示すフローチャートである。図8を用いて公開パラメータの生成及び保管処理を説明する。
 なお、ステップS701からステップS703は公開パラメータ生成装置200によって実行される処理であり、ステップS704からステップS705は鍵生成装置300によって実行される処理であり、ステップS706からステップS707は暗号化装置400によって実行される処理であり、ステップS708からステップS709は準同型演算装置500によって実行される処理である。
(ステップS701)
 入力部201は、セキュリティパラメータλを受信する。
(ステップS702)
 公開パラメータ生成部202は、ステップS701において入力部201が受信したセキュリティパラメータλを入力として、公開パラメータPPを生成する。
(ステップS703)
 送信部203は、ステップS702において公開パラメータ生成部202が生成した公開パラメータPPを受け取り、受け取った公開パラメータPPを示すデータを、鍵生成装置300と、暗号化装置400と、準同型演算装置500との各々へ送信する。
(ステップS704)
 入力部301は、ステップS703において送信部203が送信した公開パラメータPPを示すデータを受信する。
(ステップS705)
 公開パラメータ保管部302は、ステップS704において入力部301が受信したデータが示す公開パラメータPPを保管する。
(ステップS706)
 入力部401は、ステップS703において送信部203が送信した公開パラメータPPを示すデータを受信する。
(ステップS707)
 公開パラメータ保管部402は、ステップS706において入力部401が受信したデータが示す公開パラメータPPを保管する。
(ステップS708)
 入力部501は、ステップS703において送信部203が送信した公開パラメータPPを示すデータを受信する。
(ステップS709)
 公開パラメータ保管部502は、ステップS708において入力部501が受信したデータが示す公開パラメータPPを保管する。
 図9は、秘匿情報処理システム100における暗号化鍵及び復号鍵の生成及び保管処理の一例を示すフローチャートである。図9を用いて暗号化鍵及び復号鍵の生成及び保管処理を説明する。
 なお、ステップS801からステップS804は鍵生成装置300によって実行される処理であり、ステップS805からステップS806は暗号化装置400によって実行される処理であり、ステップS807からステップS808は準同型演算装置500によって実行される処理であり、ステップS809からステップS810は復号装置600によって実行される処理である。
(ステップS801)
 入力部301は、セキュリティパラメータλを示すデータを受信する。
(ステップS802)
 復号鍵生成部303は、ステップS801において入力部301が受信したデータが示すセキュリティパラメータλを入力として、[数1]のような形式で表される復号鍵SKを生成する。
Figure JPOXMLDOC01-appb-M000001
 ここで、準同型復号鍵skはセキュリティパラメータλを入力として、[参考文献1]に記載の準同型鍵生成アルゴリズムを用いて生成される。また、量子準同型復号鍵qskは、セキュリティパラメータλと乱数rとを入力として、[参考文献2]に記載の量子準同型鍵生成アルゴリズムを用いて生成される。
[参考文献1]
 Ostrovsky,R.et al.,“Maliciously Circuit-private FHE.”,CRYPTO 2014:Advances in Cryptology-CRYPTO 2014,pp.536-553,2014.
[参考文献2]
 Agarwal,A.et al.,“Post-Quantum Multi-Party Computation”,EUROCRYPT 2021:Advances in Cryptology-EUROCRYPT 2021,pp.435-464,2021.
(ステップS803)
 暗号化鍵生成部304は、ステップS802において復号鍵生成部303が生成した復号鍵SKと、公開パラメータ保管部302に保管されている公開パラメータPPとを入力として、[数2]のような形式で表される暗号化鍵PKを生成する。
Figure JPOXMLDOC01-appb-M000002
 ここで、準同型公開鍵pkは準同型復号鍵skを入力として、[参考文献1]に記載の準同型鍵生成アルゴリズムを用いて生成される。量子準同型公開鍵qpkは、公開パラメータPPと量子準同型復号鍵qskと乱数rとを入力として、[参考文献2]に記載の量子準同型鍵生成アルゴリズムを用いて生成される。さらに、乱数暗号文[r]は、乱数rと準同型公開鍵pkを入力として、[参考文献1]に記載の準同型暗号化アルゴリズムを用いて生成される。
(ステップS804)
 送信部305は、ステップS802において復号鍵生成部303が生成した復号鍵SKを示すデータと、ステップS803において暗号化鍵生成部304が生成した暗号化鍵PKを示すデータとを受け取り、暗号化装置400と準同型演算装置500との各々へ受け取った暗号化鍵PKを示すデータを送信し、復号装置600へ受け取った復号鍵SKを示すデータを送信する。
(ステップS805)
 入力部401は、ステップS804において送信部305が送信した暗号化鍵PKを示すデータを受信する。
(ステップS806)
 暗号化鍵保管部403は、ステップS805において入力部401が受信したデータが示す暗号化鍵PKを保管する。
(ステップS807)
 入力部501は、ステップS804において送信部305が送信した暗号化鍵PKを示すデータを受信する。
(ステップS808)
 暗号化鍵保管部503は、ステップS807において入力部501が受信したデータが示す暗号化鍵PKを保管する。
(ステップS809)
 入力部601は、ステップS804において送信部305が送信した復号鍵SKを示すデータを受信する。
(ステップS810)
 復号鍵保管部602は、ステップS809において入力部601が受信したデータが示す復号鍵SKを保管する。
 なお、復号鍵SKは秘密情報であるため、復号鍵保管部602は、復号鍵SKが外部に漏れないように厳重に保管する必要がある。
 図10は、秘匿情報処理システム100における準同型演算の一例を示すフローチャートである。図10を用いて準同型演算を説明する。
 なお、ステップS901からステップS903は暗号化装置400によって実行される処理であり、ステップS904からステップS908は準同型演算装置500によって実行される処理であり、ステップS909からステップS911は復号装置600によって実行される処理である。
(ステップS901)
 入力部401は、具体例としてセンサ等から収集された平文データm1及び平文データm2を受信し、受信した平文データm1及び平文データm2を暗号化部404へ送る。
(ステップS902)
 暗号化部404は、ステップS901において入力部401が受信した平文データm1及び平文データm2と、公開パラメータ保管部402に保管されている公開パラメータPP1及び公開パラメータPP2と、暗号化鍵保管部403に保管されている暗号化鍵PK1及び暗号化鍵PK2とから、[数3]のような形式で表される暗号文データC_PK(m1)及び暗号文データC_PK(m2)を生成する。なお、表現することができる文字形式の都合により、数式における表記と本文における表記とは異なることがある。
Figure JPOXMLDOC01-appb-M000003
 ここで、量子暗号文データc1及び量子暗号文データc2は、それぞれ、ワンタイムパッド鍵otk1及びワンタイムパッド鍵otk2を入力として、[参考文献2]に記載の量子ワンタイムパッド暗号化アルゴリズムを用いて生成される。ここで、ワンタイムパッド鍵otk1は第1ワンタイムパッド鍵に相当する。ワンタイムパッド鍵otk2は第2ワンタイムパッド鍵に相当する。ワンタイムパッド鍵暗号文データである[[otk1]]_1及び[[otk2]]_2は、それぞれ、ワンタイムパッド鍵otk1又はワンタイムパッド鍵otk2と、量子準同型公開鍵qpk1又は量子準同型公開鍵qpk2と、乱数s1又は乱数s2を入力として、[参考文献2]に記載の複数鍵量子準同型暗号化アルゴリズムを用いて生成される。ここで、量子準同型公開鍵qpk1は第1量子準同型公開鍵に相当する。量子準同型公開鍵qpk2は第2量子準同型公開鍵に相当する。なお、公開パラメータPP1及び公開パラメータPP2の各々は、複数鍵量子準同型暗号化アルゴリズムの入力として利用される。さらに、ワンタイムパッド鍵及び乱数暗号文データである[otk1,s1]_1及び[otk2,s2]_2は、それぞれ、ワンタイムパッド鍵otk1又はワンタイムパッド鍵otk2と、準同型公開鍵pk1又は準同型公開鍵pk2と、乱数s1又は乱数s2を入力として、[参考文献1]に記載の準同型暗号化アルゴリズムを用いて生成される。ここで、準同型公開鍵pk1は第1準同型公開鍵に相当する。準同型公開鍵pk2は第2準同型公開鍵に相当する。乱数s1は第1乱数に相当する。乱数s2は第2乱数に相当する。暗号化部404は、暗号文データC_PK(m1)と暗号文データC_PK(m2)との各々を暗号化装置400の送信部405へ送る。
(ステップS903)
 送信部405は、ステップS902において暗号化部404が送った暗号文データC_PK(m1)及び暗号文データC_PK(m2)を受け取り、受け取った暗号文データC_PK(m1)及び暗号文データC_PK(m2)を準同型演算装置500へ送信する。
(ステップS904)
 入力部501は、送信部405から送られた暗号文データC_PK(m1)及び暗号文データC_PK(m2)を受け取り、受け取った暗号文データC_PK(m1)及び暗号文データC_PK(m2)を暗号文保管部504へ送る。
(ステップS905)
 暗号文保管部504は、ステップS904において入力部501から送られた暗号文データC_PK(m1)及び暗号文データC_PK(m2)を受け取り、受け取った暗号文データC_PK(m1)及び暗号文データC_PK(m2)を保管する。
(ステップS906)
 入力部501は、キーボード、マウス、又は記憶装置等から入力された演算回路fを受信し、受信した演算回路fを準同型演算部505へ送る。
(ステップS907)
 準同型演算部505は、入力部501から受信した演算回路fと、公開パラメータ保管部502に保管されている公開パラメータPP1及び公開パラメータPP2と、暗号化鍵保管部503に保管されている暗号化鍵PK1及び暗号化鍵PK2と、暗号文保管部504に保管されている暗号文データC_PK(m1)及び暗号文データC_PK(m2)とを入力として、[数4]の形式で表される暗号化鍵集合{PK1,PK2}に対応する演算結果データM(=f(m1,m2))に対応する演算後暗号文データC_PK(M)を生成し、生成した演算後暗号文データC_PK(M)を送信部506へ送る。
Figure JPOXMLDOC01-appb-M000004
 ここで、量子準同型演算後暗号文データc’は、[数5]に記載の方法で生成される。量子準同型演算後部分暗号文データであるc1’及びc2’は、それぞれ、[数7]又は[数8]に記載の演算回路と、準同型公開鍵pk1又は準同型公開鍵pk2と、乱数暗号文データ[r1]_1又は乱数暗号文データ[r2]_2と、ワンタイムパッド鍵及び乱数暗号文データである[otk1,s1]_1又は[otk2,s2]_2とを入力として、[参考文献1]に記載の準同型演算アルゴリズムを用いて生成される。
Figure JPOXMLDOC01-appb-M000005
 ここで、アルゴリズムQOTP.Encは[参考文献2]に記載の量子ワンタイムパッド暗号化アルゴリズムであり、ワンタイムパッド鍵otk’はランダムに選ばれたビット列である。また、c’’は[数6]で表される量子回路Gと、量子準同型公開鍵qpk1及び量子準同型公開鍵qpk2と、ワンタイムパッド鍵暗号文データである[[otk1]]_1及び[[otk2]]_2とを入力として、[参考文献2]に記載の量子準同型演算アルゴリズムを用いて生成される。なお、公開パラメータPP1及び公開パラメータPP2の各々は、量子準同型演算アルゴリズムの入力として利用される。
Figure JPOXMLDOC01-appb-M000006
 ここで、アルゴリズムQOTP.Decは[参考文献2]に記載の量子ワンタイムパッド復号アルゴリズムである。
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
 ここで、アルゴリズムMKQFHE.Gen及びMKQFHE.Encは、それぞれ、[参考文献2]に記載の量子準同型鍵生成アルゴリズム及び量子準同型暗号化アルゴリズムである。また、乱数ρ1及び乱数ρ2は、暗号文データを復号するための乱数であり、ワンタイムパッド鍵otk’に対して[数9]の関係を満たす数である。ここで、[数7]は第1復号乱数を算出する部位に相当する。[数8]は第2復号乱数を算出する部位に相当する。乱数ρ1は第1復号乱数に相当する。乱数ρ2は第2復号乱数に相当する。
 なお、準同型演算部505は、データを暗号化したまま[数7]及び[数8]の各々に記載の演算回路fが示す演算を実行することにより、各暗号化鍵PK及び各暗号文データC_PK(m)が正しく生成されているか否かを確認する。ここで、[数7]及び[数8]の各々に記載の演算回路fの構成により、鍵生成装置300によって生成されていない暗号化鍵が準同型演算部505において利用された場合、乱数ρ1及び乱数ρ2を復号装置600内で手に入れることができない。また、暗号化装置400によって生成されていない暗号文データが準同型演算部505において利用された場合についても、同様に乱数ρ1及び乱数ρ2を復号装置600内で手に入れることができない。
Figure JPOXMLDOC01-appb-M000009
 ここで、演算回路XORは回路の入力であるρ1及びρ2のビット毎のXORを計算する回路である。
(ステップS908)
 送信部506は、ステップS907において準同型演算部505から送られた演算後暗号文データC_PK(M)を復号装置600へ送信する。
(ステップS909)
 入力部601は、ステップS908において送信部506から送られた演算後暗号文データC_PK(M)を受信し、受信した演算後暗号文データC_PK(M)を復号処理部603へ送る。
(ステップS910)
 復号処理部603は、ステップS909において入力部601から送られた演算後暗号文データC_PK(M)と、復号鍵保管部602に保管されている復号鍵SK1及び復号鍵SK2とを用いて復号処理を行うことにより復号結果Mを得る。ここで、演算後暗号文データC_PK(M)に対応する暗号化鍵集合{PK1,PK2}について、暗号化鍵PK1が復号鍵SK1を入力として暗号化鍵生成部304において生成されており、暗号化鍵PK2が復号鍵SK2を入力として暗号化鍵生成部304において生成された場合に限り、復号処理部603は復号結果M(=f(m1,m2))を復号することができる。
 復号処理部603は、復号結果Mを復号結果保管部604に送る。
(ステップS911)
 復号結果保管部604は、ステップS910において復号処理部603が送った復号結果Mを保管する。
 なお、復号装置600が受け付ける暗号文は、準同型演算が適用された後の暗号文である。そのため、準同型演算が適用される前の暗号文を復号したい場合、準同型演算装置500に、入力と同じ値をそのまま出力する準同型演算を実行することを要求し、準同型演算を実行することによって得られた暗号文であって、準同型演算が適用された後の暗号文をステップS910における処理と同様にして復号することにより、準同型演算が適用される前の暗号文に対応する平文データを復号することができる。
 ステップS911により、秘匿情報処理システム100の準同型演算処理は終了する。
***実施の形態1の効果の説明***
 以上のように、本実施の形態では、量子コンピュータに対して安全な回路秘匿性を満たす準同型暗号を内部で用いている。ここで、[参考文献1]及び[参考文献2]に記載の暗号技術の各々は量子コンピュータに対する安全性を有する。そのため、本実施の形態に係る強回路秘匿性を満たす量子準同型暗号方式も量子コンピュータに対する安全性を有する。一方、従来技術では、内部で量子コンピュータに対して安全ではない回路秘匿性を満たす準同型暗号を用いていたため、量子コンピュータに対する安全性を有していなかった。
 また、本実施の形態は量子コンピュータに対する安全性を有しているため、より効率的にパラメータを設定して暗号化方式を実現することができる。一方、従来技術では、量子コンピュータに対する安全性を有していないため、量子コンピュータに対する安全性を有するほど十分に大きなサイズの暗号文を計算する必要があった。
 従って、本実施の形態によれば、量子コンピュータに対して安全な暗号文であって、十分に大きなサイズの暗号文を生成する必要がないために効率性が向上する。
***他の構成***
<変形例1>
 図11は、本変形例に係る各装置のハードウェア構成例を示している。
 各装置は、プロセッサ11、プロセッサ11とROM13、プロセッサ11とRAM14、あるいはプロセッサ11とROM13とRAM14とに代えて、処理回路18を備える。
 処理回路18は、各装置が備える各部の少なくとも一部を実現するハードウェアである。
 処理回路18は、専用のハードウェアであってもよく、また、RAM14に格納されるプログラムを実行するプロセッサであってもよい。
 処理回路18が専用のハードウェアである場合、処理回路18は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
 各装置は、処理回路18を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路18の役割を分担する。
 各装置において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
 処理回路18は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
 プロセッサ11とROM13とRAM14と処理回路18とを、総称して「プロセッシングサーキットリー」という。つまり、各装置の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
***他の実施の形態***
 実施の形態1について説明したが、本実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、本実施の形態を部分的に実施しても構わない。その他、本実施の形態は、必要に応じて種々の変更がなされても構わず、全体としてあるいは部分的に、どのように組み合わせて実施されても構わない。
 なお、前述した実施の形態は、本質的に好ましい例示であって、本開示と、その適用物と、用途の範囲とを制限することを意図するものではない。フローチャート等を用いて説明した手順は適宜変更されてもよい。
 11 プロセッサ、12 バス、13 ROM、14 RAM、15 通信ボード、18 処理回路、20 磁気ディスク装置、21 OS、22 プログラム群、23 ファイル群、31 ディスプレイ、32 キーボード、33 マウス、34 ドライブ、100 秘匿情報処理システム、101 インターネット、200 公開パラメータ生成装置、201 入力部、202 公開パラメータ生成部、203 送信部、300 鍵生成装置、301 入力部、302 公開パラメータ保管部、303 復号鍵生成部、304 暗号化鍵生成部、305 送信部、400 暗号化装置、401 入力部、402 公開パラメータ保管部、403 暗号化鍵保管部、404 暗号化部、405 送信部、500 準同型演算装置、501 入力部、502 公開パラメータ保管部、503 暗号化鍵保管部、504 暗号文保管部、505 準同型演算部、506 送信部、600 復号装置、601 入力部、602 復号鍵保管部、603 復号処理部、604 復号結果保管部。

Claims (9)

  1.  強回路秘匿性を満たす量子準同型暗号技術に対応する秘匿情報処理システムであって、
     第1公開パラメータ及び第1暗号化鍵を用いて第1平文を暗号化することによって第1暗号文を生成し、第2公開パラメータ及び第2暗号化鍵を用いて第2平文を暗号化することによって第2暗号文を生成する暗号化部
    を備える暗号化装置
    を備え、
     前記第1公開パラメータ及び前記第2公開パラメータの各々は、セキュリティパラメータを用いて生成されたパラメータであり、
     前記第1暗号化鍵は、前記第1公開パラメータと、前記セキュリティパラメータを用いて生成された復号鍵である第1復号鍵とを用いて生成された暗号化鍵であり、
     前記第2暗号化鍵は、前記第2公開パラメータと、前記セキュリティパラメータを用いて生成された復号鍵である第2復号鍵とを用いて生成された暗号化鍵である秘匿情報処理システム。
  2.  前記秘匿情報処理システムは、さらに、
     前記第1公開パラメータと、前記第1復号鍵とを用いて前記第1暗号化鍵を生成し、前記第2公開パラメータと、前記第2復号鍵とを用いて前記第2暗号化鍵を生成する暗号化鍵生成部
    を備える鍵生成装置
    を備える請求項1に記載の秘匿情報処理システム。
  3.  前記秘匿情報処理システムは、さらに、
     演算回路と、前記第1公開パラメータと、前記第2公開パラメータと、前記第1暗号文と、前記第2暗号文と、前記第1暗号化鍵と、前記第2暗号化鍵とを用いて量子計算を実行することにより、前記第1平文及び前記第2平文に対して前記演算回路が示す演算を適用することによって得られる演算結果を暗号化することによって生成される暗号文である第3暗号文を生成する準同型演算部
    を備える準同型演算装置
    を備える請求項1又は2に記載の秘匿情報処理システム。
  4.  前記準同型演算部は、前記第1暗号化鍵と、前記第2暗号化鍵と、前記第1暗号文と、前記第2暗号文との少なくともいずれかが生成されていない場合に、前記第3暗号文として、ランダムな量子データを生成する請求項3に記載の秘匿情報処理システム。
  5.  前記第1復号鍵は、第1準同型復号鍵と、第1量子準同型復号鍵とから成り、
     前記第2復号鍵は、第2準同型復号鍵と、第2量子準同型復号鍵とから成り、
     前記第1暗号化鍵は、前記第1準同型復号鍵に基づいて生成された第1準同型公開鍵と、前記第1量子準同型復号鍵に基づいて生成された第1量子準同型公開鍵とから成り、
     前記第2暗号化鍵は、前記第2準同型復号鍵に基づいて生成された第2準同型公開鍵と、前記第2量子準同型復号鍵に基づいて生成された第2量子準同型公開鍵とから成り、
     前記第1暗号文は、前記第1公開パラメータと、第1ワンタイムパッド鍵と、前記第1準同型公開鍵と、前記第1量子準同型公開鍵と、第1乱数とに基づいて生成され、
     前記第2暗号文は、前記第2公開パラメータと、第2ワンタイムパッド鍵と、前記第2準同型公開鍵と、前記第2量子準同型公開鍵と、第2乱数とに基づいて生成された請求項3又は4に記載の秘匿情報処理システム。
  6.  前記演算回路は、
     前記セキュリティパラメータと、前記第1ワンタイムパッド鍵と、第1ワンタイムパッド鍵暗号文データと、前記第1量子準同型公開鍵と、前記第1乱数とに基づいて前記第3暗号文を復号するための乱数である第1復号乱数を算出する部位と、
     前記セキュリティパラメータと、前記第2ワンタイムパッド鍵と、第2ワンタイムパッド鍵暗号文データと、前記第2量子準同型公開鍵と、前記第2乱数とに基づいて前記第3暗号文を復号するための乱数である第2復号乱数を算出する部位との各々を含み、
     前記第1ワンタイムパッド鍵暗号文データは、前記第1ワンタイムパッド鍵と、前記第1量子準同型公開鍵と、前記第1乱数とに基づいて生成した暗号文データであり、
     前記第2ワンタイムパッド鍵暗号文データは、前記第2ワンタイムパッド鍵と、前記第2量子準同型公開鍵と、前記第2乱数とに基づいて生成した暗号文データであり、
     前記準同型演算部は、前記第1復号乱数が生成されたか否かによって前記第1暗号化鍵が前記暗号化装置によって生成されたか否かを判定し、前記第2復号乱数が生成されたか否かによって前記第2暗号化鍵が前記暗号化装置によって生成されたか否かを判定する請求項5に記載の秘匿情報処理システム。
  7.  前記演算回路は、
     前記セキュリティパラメータと、前記第1ワンタイムパッド鍵と、第1ワンタイムパッド鍵暗号文データと、前記第1量子準同型公開鍵と、前記第1乱数とに基づいて前記第3暗号文を復号するための乱数である第1復号乱数を算出する部位と、
     前記セキュリティパラメータと、前記第2ワンタイムパッド鍵と、第2ワンタイムパッド鍵暗号文データと、前記第2量子準同型公開鍵と、前記第2乱数とに基づいて前記第3暗号文を復号するための乱数である第2復号乱数を算出する部位との各々を含み、
     前記第1ワンタイムパッド鍵暗号文データは、前記第1ワンタイムパッド鍵と、前記第1量子準同型公開鍵と、前記第1乱数とに基づいて生成した暗号文データであり、
     前記第2ワンタイムパッド鍵暗号文データは、前記第2ワンタイムパッド鍵と、前記第2量子準同型公開鍵と、前記第2乱数とに基づいて生成した暗号文データであり、
     前記準同型演算部は、前記第1復号乱数が生成されたか否かによって前記第1暗号文が前記暗号化装置によって生成されたか否かを判定し、前記第2復号乱数が生成されたか否かによって前記第2暗号文が前記暗号化装置によって生成されたか否かを判定する請求項5に記載の秘匿情報処理システム。
  8.  強回路秘匿性を満たす量子準同型暗号技術に対応する秘匿情報処理方法であって、
     コンピュータが、第1公開パラメータ及び第1暗号化鍵を用いて第1平文を暗号化することによって第1暗号文を生成し、第2公開パラメータ及び第2暗号化鍵を用いて第2平文を暗号化することによって第2暗号文を生成し、
     前記第1公開パラメータ及び前記第2公開パラメータの各々は、セキュリティパラメータを用いて生成されたパラメータであり、
     前記第1暗号化鍵は、前記第1公開パラメータと、前記セキュリティパラメータを用いて生成された復号鍵である第1復号鍵とを用いて生成された暗号化鍵であり、
     前記第2暗号化鍵は、前記第2公開パラメータと、前記セキュリティパラメータを用いて生成された復号鍵である第2復号鍵とを用いて生成された暗号化鍵である秘匿情報処理方法。
  9.  強回路秘匿性を満たす量子準同型暗号技術に対応する秘匿情報処理プログラムであって、
     第1公開パラメータ及び第1暗号化鍵を用いて第1平文を暗号化することによって第1暗号文を生成し、第2公開パラメータ及び第2暗号化鍵を用いて第2平文を暗号化することによって第2暗号文を生成する暗号化処理
    をコンピュータである暗号化装置に実行させる秘匿情報処理プログラムであって、
     前記第1公開パラメータ及び前記第2公開パラメータの各々は、セキュリティパラメータを用いて生成されたパラメータであり、
     前記第1暗号化鍵は、前記第1公開パラメータと、前記セキュリティパラメータを用いて生成された復号鍵である第1復号鍵とを用いて生成された暗号化鍵であり、
     前記第2暗号化鍵は、前記第2公開パラメータと、前記セキュリティパラメータを用いて生成された復号鍵である第2復号鍵とを用いて生成された暗号化鍵である秘匿情報処理プログラム。
PCT/JP2022/023823 2022-06-14 2022-06-14 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム WO2023242955A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2022/023823 WO2023242955A1 (ja) 2022-06-14 2022-06-14 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム
JP2023571747A JP7520255B2 (ja) 2022-06-14 2022-06-14 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/023823 WO2023242955A1 (ja) 2022-06-14 2022-06-14 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム

Publications (1)

Publication Number Publication Date
WO2023242955A1 true WO2023242955A1 (ja) 2023-12-21

Family

ID=89192683

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/023823 WO2023242955A1 (ja) 2022-06-14 2022-06-14 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム

Country Status (2)

Country Link
JP (1) JP7520255B2 (ja)
WO (1) WO2023242955A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108847934A (zh) * 2018-06-27 2018-11-20 重庆邮电大学 一种多维量子同态加密方法
WO2021245931A1 (ja) * 2020-06-05 2021-12-09 三菱電機株式会社 秘匿情報処理システム、暗号化装置、暗号化方法及び暗号化プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108847934A (zh) * 2018-06-27 2018-11-20 重庆邮电大学 一种多维量子同态加密方法
WO2021245931A1 (ja) * 2020-06-05 2021-12-09 三菱電機株式会社 秘匿情報処理システム、暗号化装置、暗号化方法及び暗号化プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIROMASA, RYO: "(Quantum) Fully homomorphic encryption and circuit secrecy", WORKSHOP ON KYOTO QUANTUM CRYPTOGRAPHY. KYOTO UNIVERSITY INTERNATIONAL RESEARCH UNIT OF QUANTUM INFORMATION [ONLINE], 16 March 2021 (2021-03-16), pages 15 - 18, Retrieved from the Internet <URL:https://www2.yukawa.kyoto-u.ac.jp/~tomoyuki.morimae/kyotoqcrypt_afternoon.mp4> *

Also Published As

Publication number Publication date
JPWO2023242955A1 (ja) 2023-12-21
JP7520255B2 (ja) 2024-07-22

Similar Documents

Publication Publication Date Title
KR101027199B1 (ko) 키공유 시스템, 공유키 생성장치 및 공유키 복원장치
JP2007139895A (ja) 暗号装置、復号装置、プログラム及び方法
JPWO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
WO2018043049A1 (ja) 暗号システム、暗号方法及び暗号プログラム
Sarkar et al. Role of cryptography in network security
WO2015008607A1 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
US11336425B1 (en) Cryptographic machines characterized by a Finite Lab-Transform (FLT)
WO2021245931A1 (ja) 秘匿情報処理システム、暗号化装置、暗号化方法及び暗号化プログラム
Kumar et al. A novel framework for secure file transmission using modified AES and MD5 algorithms
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
WO2023242955A1 (ja) 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム
Hazzazi et al. Asymmetric Key Cryptosystem for Image Encryption by Elliptic Curve over Galois Field GF (2 n).
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP2011040932A (ja) 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
US12107948B2 (en) Authentication encryption device, authentication decryption device, authentication encryption method, authentication decryption method, and storage medium
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
WO2024201635A1 (ja) 秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム
JP4618684B2 (ja) 透かし埋め込み処理方法、透かし埋め込み処理システム、サービス提供者装置および顧客装置、並びにプログラム
WO2019142260A1 (ja) 秘匿分析装置、秘匿分析システム、秘匿分析方法及び秘匿分析プログラム
TW201543862A (zh) 密碼裝置、記憶系統、解碼裝置、密碼方法、解碼方法、密碼程式產品及解碼程式產品
JP7486693B2 (ja) 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム
WO2023199435A1 (ja) 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム
JP7310938B2 (ja) 暗号システム、暗号化方法、復号方法及びプログラム
JP7466791B2 (ja) 暗号化装置、復号装置、復号可能検証装置、暗号システム、暗号化方法、及び暗号化プログラム
JP5293612B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2023571747

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 22946775

Country of ref document: EP

Kind code of ref document: A1