WO2025210930A1 - Homomorphic computing device, homomorphic computing method, homomorphic computing program, and confidential information processing system - Google Patents
Homomorphic computing device, homomorphic computing method, homomorphic computing program, and confidential information processing systemInfo
- Publication number
- WO2025210930A1 WO2025210930A1 PCT/JP2024/016227 JP2024016227W WO2025210930A1 WO 2025210930 A1 WO2025210930 A1 WO 2025210930A1 JP 2024016227 W JP2024016227 W JP 2024016227W WO 2025210930 A1 WO2025210930 A1 WO 2025210930A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- homomorphic
- key
- ciphertext
- encryption
- decryption
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
Definitions
- This disclosure relates to a technology called circuit secrecy + homomorphic encryption.
- Homomorphic encryption is an encryption technology that allows calculations to be performed on data while it remains encrypted. While the use of cloud services has become more widespread in recent years, concerns about cracking and the reliability of the cloud mean that data is often encrypted before being stored on the cloud. Homomorphic encryption allows calculations to be performed on encrypted data without decrypting it. This makes it a technology that allows the use of cloud services without compromising security.
- the homomorphic arithmetic device comprises: a decryption circuit that decrypts, with a decryption key SK, a ciphertext C PK (m) obtained by encrypting a plaintext m using an encryption key PK; and a bootstrapping processing unit that performs homomorphic operation on inputs of a bootstrapping key BK generated by encrypting the decryption key SK using the encryption key PK to generate a new ciphertext C′ PK (m);
- the cryptosystem includes an arithmetic circuit f, and a homomorphic computation unit that performs homomorphic computation using the new ciphertext C′ PK (m) generated by the bootstrapping processing unit as input to generate a post-computation ciphertext C PK (M).
- the secret information processing system 100 includes a key generation device 200, an encryption device 300, a homomorphic arithmetic device 400, and a decryption device 500.
- the key generation device 200, the encryption device 300, the homomorphic arithmetic device 400, and the decryption device 500 are connected via the Internet 900.
- the Internet 900 is an example of a transmission path. Instead of the Internet 900, another type of transmission path may be used.
- the key generation device 200 is a computer such as a PC (PC is an abbreviation for Personal Computer) and generates a decryption key SK, an encryption key PK, and a bootstrapping key BK.
- the key generation device 200 includes the following hardware components: a processor 201, a memory 202, a storage 203, and a communication interface 204.
- the processor 201 is connected to other hardware components via signal lines and controls the other hardware components.
- the encryption device 300 includes, as functional components, an input unit 311, an encryption key storage unit 312, an encryption unit 313, and a transmission unit 314.
- the functions of the functional components of the encryption device 300 are realized by software.
- the storage 303 stores a program that realizes the function of each functional component of the encryption device 300.
- the program is loaded into the memory 302 by the processor 301 and executed by the processor 301. In this way, the function of each functional component of the encryption device 300 is realized.
- the configuration of a homomorphic arithmetic device 400 according to the first embodiment will be described with reference to FIG.
- the homomorphic computing device 400 is a computer such as a server having a large-capacity storage 403.
- the homomorphic computing device 400 performs homomorphic computation on ciphertext.
- the homomorphic computing device 400 also functions as a data storage device that stores ciphertext.
- the homomorphic computing device 400 includes the following hardware: a processor 401, a memory 402, a storage 403, and a communication interface 404.
- the processor 401 is connected to other hardware via signal lines and controls the other hardware.
- the homomorphic computing device 400 includes, as functional components, an input unit 411, an encryption key storage unit 412, a bootstrapping key storage unit 413, a bootstrapping processing unit 414, a ciphertext storage unit 415, a homomorphic computing unit 416, and a transmission unit 417.
- the functions of each functional component of the homomorphic computing device 400 are realized by software.
- the storage 403 stores a program that realizes the function of each functional component of the homomorphic arithmetic device 400. This program is read into the memory 402 by the processor 401 and executed by the processor 401. In this way, the function of each functional component of the homomorphic arithmetic device 400 is realized.
- the decryption device 500 is a computer such as a PC.
- the decryption device 500 decrypts the ciphertext using a decryption key SK.
- the decryption device 500 also functions as a decryption key storage device that stores the decryption key SK.
- the decoding device 500 includes the following hardware components: a processor 501, a memory 502, a storage 503, and a communication interface 504.
- the processor 501 is connected to other hardware components via signal lines and controls the other hardware components.
- the decryption device 500 includes, as functional components, an input unit 511, a decryption key storage unit 512, a decryption processing unit 513, and a decryption result storage unit 514.
- the functions of the functional components of the decryption device 500 are realized by software.
- the storage 503 stores a program that realizes the function of each functional component of the decoding device 500.
- the program is read into the memory 502 by the processor 501 and executed by the processor 501. In this way, the function of each functional component of the decoding device 500 is realized.
- Communication interfaces 204, 304, 404, and 504 are interfaces for communicating with external devices. Specific examples of communication interfaces 204, 304, 404, and 504 are Ethernet (registered trademark), USB, and HDMI (registered trademark) ports. USB stands for Universal Serial Bus. HDMI stands for High-Definition Multimedia Interface.
- the operation of the secret information processing system 100 according to the first embodiment will be described with reference to FIGS.
- the operation procedure of the secret information processing system 100 according to the first embodiment corresponds to the secret information processing method according to the first embodiment.
- the program that realizes the operation of the secret information processing system 100 according to the first embodiment corresponds to the secret information processing program according to the first embodiment.
- the operation procedure of the homomorphic arithmetic device 400 in the secret information processing system 100 according to the first embodiment corresponds to the homomorphic arithmetic method according to the first embodiment.
- the program that realizes the operation of the homomorphic arithmetic device 400 in the secret information processing system 100 according to the first embodiment corresponds to the homomorphic arithmetic program according to the first embodiment.
- the operation of the confidential information processing system 100 includes key generation processing and calculation processing.
- Step S101 Security parameter reception process
- the input unit 211 of the key generation device 200 receives an input of a security parameter ⁇ .
- the input unit 211 transmits the security parameter ⁇ to the decryption key generation unit 212.
- Step S103 Encryption key generation process
- the encryption key generation unit 213 of the key generation device 200 receives the decryption key SK generated in step S102 as an input and generates an encryption key PK.
- the encryption key generation unit 213 transmits the encryption key PK to the bootstrapping key generation unit 214 and the transmission unit 215.
- the encryption key generation unit 213 generates the encryption key PK using a key generation algorithm in a homomorphic encryption method with circuit confidentiality.
- the encryption key generation unit 213 generates the encryption key PK using the key generation algorithm in the reference document.
- the encryption algorithm used here is a specified encryption algorithm required to satisfy circuit confidentiality+.
- the bootstrapping key generation unit 214 generates the bootstrapping key BK by encrypting the decryption key SK with the encryption key PK using the encryption algorithm in the reference document.
- step S104 can be written as in Equation 2.
- Step S105 Key transmission process
- the transmitting unit 215 of the key generating device 200 transmits the encryption key PK generated in step S103 to the encryption device 300 via the Internet 900.
- the transmitting unit 215 also transmits the encryption key PK generated in step S103 and the bootstrapping key BK generated in step S104 to the homomorphic computing device 400 via the Internet 900.
- the transmitting unit 215 also transmits the decryption key SK generated in step S102 to the decryption device 500 via the Internet 900. Since the decryption key SK is confidential information, it is transmitted in a manner that prevents it from being leaked.
- the encryption key PK, decryption key SK, and bootstrapping key BK may be transmitted by mail or other methods.
- Step S106 First key reception process
- the input unit 311 of the encryption device 300 receives the encryption key PK transmitted in step S105.
- the input unit 311 transmits the encryption key PK to the encryption key storage unit 312.
- Step S107 First key storage process
- the encryption key storage unit 312 of the encryption device 300 stores the encryption key PK received in step S106 in the storage 303.
- Step S108 Second key reception process
- the input unit 411 of the homomorphic computing device 400 receives the encryption key PK and the bootstrapping key BK transmitted in step S105.
- the input unit 411 transmits the encryption key PK to the encryption key storage unit 412 and transmits the bootstrapping key BK to the bootstrapping key storage unit 413.
- Step S109 Second key storage process
- the encryption key storage unit 412 of the homomorphic computing device 400 stores the encryption key PK received in step S108 in the storage 403.
- the bootstrapping key storage unit 413 stores the bootstrapping key BK received in step S108 in the storage 403.
- Step S110 Third key reception process
- the input unit 511 of the decryption device 500 receives the decryption key SK transmitted in step S105.
- the input unit 511 transmits the decryption key SK to the decryption key storage unit 512.
- Step S202 Encryption process
- the encryption unit 313 of the encryption device 300 encrypts the plaintext m received in step S201 using the encryption key PK stored in the storage 303 to generate ciphertext C PK (m).
- the encryption unit 313 transmits the ciphertext C PK (m) to the transmission unit 314 .
- the encryption unit 313 generates ciphertext C PK (m) by encrypting plaintext m with encryption key PK using an encryption algorithm in a homomorphic encryption method with circuit confidentiality.
- the encryption unit 313 generates ciphertext C PK ( m) by encrypting plaintext m with encryption key PK using an encryption algorithm in the reference document. Note that the encryption algorithm used here does not have to be the specified encryption algorithm required to satisfy circuit confidentiality+.
- step S202 can be written as in Equation 3.
- Step S203 Ciphertext transmission process
- the transmitting unit 314 of the encryption device 300 transmits the ciphertext C PK (m) generated in step S202 to the homomorphic arithmetic device 400 via the Internet 900.
- Step S204 Ciphertext reception process
- the input unit 411 of the homomorphic computing device 400 receives the ciphertext C PK (m) transmitted in step S203.
- the input unit 411 transmits the ciphertext C PK (m) to the bootstrapping processing unit 414.
- Step S205 Ciphertext conversion process
- the bootstrapping processing unit 414 of the homomorphic computing device 400 performs homomorphic computation using a decryption circuit that decrypts the ciphertext C PK (m) received in step S204 with the decryption key SK and the bootstrapping key BK stored in the storage 403 as input, to generate a new ciphertext C' PK (m). That is, the bootstrapping processing unit 414 applies computation processing to the decryption circuit while leaving the bootstrapping key BK encrypted.
- the bootstrapping processing unit 414 transmits the new ciphertext C' PK (m) to the ciphertext storage unit 415.
- the bootstrapping processing unit 414 performs homomorphic computation using a homomorphic computation algorithm in a homomorphic encryption method with circuit confidentiality.
- the bootstrapping processing unit 414 performs homomorphic computation using the homomorphic computation algorithm in the reference document.
- step S205 can be written as in Equation 5.
- Step S206 Ciphertext storage process
- the ciphertext storage unit 415 of the homomorphic computing device 400 stores the new ciphertext C′ PK (m) generated in step S205 in the storage 403.
- Step S207 Calculation acceptance process
- the input unit 411 of the homomorphic arithmetic device 400 receives an input of an arithmetic circuit f.
- the arithmetic circuit f is a circuit that defines an arbitrary operation.
- the input unit 411 transmits the arithmetic circuit f to the homomorphic arithmetic unit 416.
- Step S208 Calculation execution process
- the homomorphic computation unit 416 of the homomorphic computation device 400 performs homomorphic computation on the computation circuit f accepted in step S207 and the new ciphertext C' PK (m) stored in the storage 403 as input, and generates post-computation ciphertext C PK (M), which is the ciphertext of the computation result data M.
- the homomorphic computation unit 416 applies the computation process of the computation circuit f to the new ciphertext C' PK (m) while leaving it encrypted, to generate post-computation ciphertext C PK (M).
- M f(m).
- M represents the result of applying the computation process of the computation circuit f to the plaintext m.
- the homomorphic computation unit 416 transmits the post-computation ciphertext C PK (M) to the transmission unit 417.
- the homomorphic computation unit 416 performs homomorphic computation processing using a homomorphic computation algorithm in a homomorphic encryption method with circuit confidentiality.
- the homomorphic computation unit 416 performs homomorphic computation processing using a homomorphic computation algorithm in the reference document.
- step S208 can be written as in Equation 6.
- Step S209 Post-calculation ciphertext transmission process
- the transmitting unit 417 of the homomorphic computing device 400 transmits the post-computation ciphertext C PK (M) generated in step S208 to the decryption device 500 via the Internet 900.
- Step S210 Post-calculation ciphertext reception process
- the input unit 511 of the decryption device 500 receives the post-operation ciphertext C PK (M) transmitted in step S209.
- the input unit 511 transmits the post-operation ciphertext C PK (M) to the decryption processing unit 513.
- Step S211 Decryption process
- the decryption processing unit 513 of the decryption device 500 decrypts the post-operation ciphertext C PK (M) received in step S210 with the decryption key SK stored in the storage 503 to generate the decryption result D.
- the decryption processing unit 513 transmits the decryption result D to the decryption result storage unit 514.
- the decryption processing unit 513 decrypts the post-operation ciphertext C PK (M) with the decryption key SK using a decryption algorithm in a homomorphic encryption method with circuit confidentiality.
- the decryption processing unit 513 decrypts the post-operation ciphertext C PK (M) with the decryption key SK using the decryption algorithm in the reference document.
- step S211 can be written as in Equation 7.
- step S 7 may be divided into a ciphertext storage process which is the process from step S201 to step S206, and an operation application process from step S207 to step S212.
- the input unit 411 may also accept designation of new ciphertext C' PK (m) to which the operation circuit f is applied in step S207.
- the homomorphic operation unit 416 may perform homomorphic operation on the designated new ciphertext C' PK (m).
- circuit secrecy + the homomorphic operation performed on the bootstrapping key is the bootstrapping process.
- circuit secrecy can be achieved by just one bootstrapping process.
- each functional component is realized by software.
- each functional component may be realized by hardware. The following describes the differences between the first embodiment and the first modification.
- the key generation device 200 includes an electronic circuit instead of the processor 201, memory 202, and storage 203.
- the electronic circuit is a dedicated circuit that implements the functions of each functional component, memory 202, and storage 203.
- the homomorphic computing device 400 when each functional component is implemented in hardware, the homomorphic computing device 400 includes an electronic circuit in place of the processor 401, memory 402, and storage 403.
- the electronic circuit is a dedicated circuit that implements the functions of each functional component, memory 402, and storage 403.
- the decoding device 500 when each functional component is implemented in hardware, the decoding device 500 includes an electronic circuit in place of the processor 501, memory 502, and storage 503.
- the electronic circuit is a dedicated circuit that implements the functions of each functional component, memory 502, and storage 503.
- Possible electronic circuits include single circuits, composite circuits, programmed processors, parallel programmed processors, logic ICs, GAs, ASICs, and FPGAs.
- GA stands for Gate Array.
- ASIC stands for Application Specific Integrated Circuit.
- FPGA stands for Field-Programmable Gate Array.
- Each functional component may be realized by one electronic circuit, or each functional component may be realized by distributing it among a plurality of electronic circuits.
- ⁇ Modification 2> As a second modification, some of the functional components may be realized by hardware, and other functional components may be realized by software.
- Processors 201, 301, 401, and 501, memories 202, 302, 402, and 502, storages 203, 303, 403, and 503, and electronic circuits are collectively referred to as a processing circuit.
- the functions of each functional component are realized by the processing circuit.
- Appendix 1 a decryption circuit that decrypts, with a decryption key SK, a ciphertext C PK (m) obtained by encrypting a plaintext m using an encryption key PK; and a bootstrapping processing unit that performs homomorphic operation on inputs of a bootstrapping key BK generated by encrypting the decryption key SK using the encryption key PK to generate a new ciphertext C′ PK (m); a homomorphic arithmetic unit that receives as input the new ciphertext C′ PK (m) generated by the bootstrapping processing unit, performs homomorphic arithmetic processing, and generates a post-operation ciphertext C PK (M).
- Appendix 2 a decryption circuit that decrypts, with a decryption key SK, a ciphertext C PK (m) obtained by encrypting a plaintext m using an encryption key PK; and a bootstra
- Bootstrapping key storage unit 414. Bootstrapping processing unit, 415. Ciphertext storage unit, 416. Homomorphic operation unit, 417. Transmission unit, 501. Processor, 502. Memory, 503. Storage, 504. Communication interface, 511. Input unit, 512. Decryption key storage unit, 513. Decryption processing unit, 514. Decryption result storage unit, 900. Internet.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本開示は、回路秘匿性+準同型暗号と呼ばれる技術に関する。 This disclosure relates to a technology called circuit secrecy + homomorphic encryption.
準同型暗号とは、データを暗号化したまま演算処理できる暗号技術である。昨今、クラウドサービスの利用が広まりつつあるが、クラッキング及びクラウドの信頼性の懸念から、クラウド上ではデータを暗号化して保管することが考えられる。準同型暗号は、暗号化されているデータに対して、復号することなく演算を施すことができる。そのため、安全性を損なうことなくクラウドサービスの利用を可能とする技術である。 Homomorphic encryption is an encryption technology that allows calculations to be performed on data while it remains encrypted. While the use of cloud services has become more widespread in recent years, concerns about cracking and the reliability of the cloud mean that data is often encrypted before being stored on the cloud. Homomorphic encryption allows calculations to be performed on encrypted data without decrypting it. This makes it a technology that allows the use of cloud services without compromising security.
準同型暗号の安全性を向上するために、暗号化したままでの演算結果から演算処理についての情報が漏洩しない安全性を達成した暗号技術が、回路秘匿性を満たす準同型暗号である。特に、回路秘匿性を満たす準同型暗号の中でも、指定された暗号化アルゴリズムによって生成されていない暗号文に対する、暗号化したままでの演算結果からも演算処理についての情報が漏洩しない安全性を達成する準同型暗号は回路秘匿性+を満たすという。回路秘匿性+を満たす準同型暗号の初めての構成例は非特許文献1に記されている。 In order to improve the security of homomorphic encryption, homomorphic encryption that satisfies circuit secrecy is an encryption technology that achieves security by preventing information about the computational process from leaking from the encrypted computation results. In particular, among homomorphic encryptions that satisfy circuit secrecy, homomorphic encryption that achieves security by preventing information about the computational process from leaking from the encrypted computation results for ciphertext that was not generated by the specified encryption algorithm is said to satisfy circuit secrecy+. The first example of a homomorphic encryption that satisfies circuit secrecy+ is described in Non-Patent Document 1.
従来の回路秘匿性+を満たす準同型暗号は、暗号化したままでの演算を行う際に、暗号化したままでの演算処理前と演算処理後とに、ブートストラッピングと呼ばれる暗号化したまま復号処理を行う演算処理を何度も実行する必要があった。
ブートストラッピング処理は、暗号化したまま暗号方式の復号処理を計算する演算処理であり、非常に非効率であることが知られている。特に、非特許文献1で示されている準同型暗号技術は、暗号化したままでの演算処理前と演算処理後とにブートストラッピング処理を何度も実行する必要があり、非常に非効率である。
本開示は、1度のブートストラッピング処理で回路秘匿性+を達成できる準同型暗号を実現可能にすることを目的とする。
Conventional homomorphic encryption that satisfies circuit secrecy+ requires that when performing calculations while the data is encrypted, a calculation called bootstrapping, which performs decryption processing while the data is encrypted, be performed multiple times before and after the calculation processing while the data is encrypted.
The bootstrapping process is a computational process for calculating the decryption process of a cryptosystem while the data remains encrypted, and is known to be extremely inefficient. In particular, the homomorphic encryption technique disclosed in Non-Patent Document 1 requires multiple bootstrapping processes before and after computational processes while the data remains encrypted, which is extremely inefficient.
The present disclosure aims to make it possible to realize homomorphic encryption that can achieve circuit secrecy+ with a single bootstrapping process.
本開示に係る準同型演算装置は、
暗号化鍵PKを用いて平文mが暗号化された暗号文CPK(m)を復号鍵SKで復号する復号回路と、前記復号鍵SKを前記暗号化鍵PKを用いて暗号化することにより生成されたブートストラッピング鍵BKとを入力として準同型演算処理をして新たな暗号文C’PK(m)を生成するブートストラッピング処理部と、
演算回路fと、前記ブートストラッピング処理部によって生成された前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算部と
を備える。
The homomorphic arithmetic device according to the present disclosure comprises:
a decryption circuit that decrypts, with a decryption key SK, a ciphertext C PK (m) obtained by encrypting a plaintext m using an encryption key PK; and a bootstrapping processing unit that performs homomorphic operation on inputs of a bootstrapping key BK generated by encrypting the decryption key SK using the encryption key PK to generate a new ciphertext C′ PK (m);
The cryptosystem includes an arithmetic circuit f, and a homomorphic computation unit that performs homomorphic computation using the new ciphertext C′ PK (m) generated by the bootstrapping processing unit as input to generate a post-computation ciphertext C PK (M).
本開示では、復号回路とブートストラッピング鍵とを入力として準同型演算処理をする。この準同型演算処理により、暗号化したまま暗号文CPK(m)が復号され、平文mの新しい暗号文C’PK(m)が生成される。これにより、指定された暗号化アルゴリズムによって生成されていない暗号文CPK(m)を、指定された暗号化アルゴリズムによって生成された新しい暗号文C’PK(m)に変換することができる。そのため、新しい暗号文C’PK(m)に対して準同型演算処理を行うことで、回路秘匿性+を達成することが可能になる。
ここで、ブートストラッピング鍵に対して行った準同型演算処理がブートストラッピング処理である。つまり、1度のブートストラッピング処理で、回路秘匿性+を達成することが可能になる。
In the present disclosure, a homomorphic arithmetic operation is performed using a decryption circuit and a bootstrapping key as input. This homomorphic arithmetic operation decrypts the ciphertext C PK (m) while keeping it encrypted, and generates a new ciphertext C' PK (m) of the plaintext m. This makes it possible to convert the ciphertext C PK (m) that has not been generated using a specified encryption algorithm into a new ciphertext C' PK (m) that has been generated using a specified encryption algorithm. Therefore, by performing a homomorphic arithmetic operation on the new ciphertext C' PK (m), it is possible to achieve circuit secrecy +.
Here, the homomorphic operation performed on the bootstrapping key is the bootstrapping process. In other words, a single bootstrapping process can achieve circuit secrecy +.
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る秘匿情報処理システム100の構成を説明する。
秘匿情報処理システム100は、鍵生成装置200と、暗号化装置300と、準同型演算装置400と、復号装置500とを備える。鍵生成装置200と、暗号化装置300と、準同型演算装置400と、復号装置500とは、インターネット900を介して接続されている。インターネット900は、伝送路の一例である。インターネット900に代えて、他の種類の伝送路が用いられてもよい。
Embodiment 1.
***Configuration Description***
The configuration of a secret information processing system 100 according to the first embodiment will be described with reference to FIG.
The secret information processing system 100 includes a key generation device 200, an encryption device 300, a homomorphic arithmetic device 400, and a decryption device 500. The key generation device 200, the encryption device 300, the homomorphic arithmetic device 400, and the decryption device 500 are connected via the Internet 900. The Internet 900 is an example of a transmission path. Instead of the Internet 900, another type of transmission path may be used.
図2を参照して、実施の形態1に係る鍵生成装置200の構成を説明する。
鍵生成装置200は、PC等のコンピュータである。PCは、Personal Computerの略である。鍵生成装置200は、復号鍵SKと、暗号化鍵PKと、ブートストラッピング鍵BKとの鍵を生成する。
鍵生成装置200は、プロセッサ201と、メモリ202と、ストレージ203と、通信インタフェース204とのハードウェアを備える。プロセッサ201は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
The configuration of the key generation device 200 according to the first embodiment will be described with reference to FIG.
The key generation device 200 is a computer such as a PC (PC is an abbreviation for Personal Computer) and generates a decryption key SK, an encryption key PK, and a bootstrapping key BK.
The key generation device 200 includes the following hardware components: a processor 201, a memory 202, a storage 203, and a communication interface 204. The processor 201 is connected to other hardware components via signal lines and controls the other hardware components.
鍵生成装置200は、機能構成要素として、入力部211と、復号鍵生成部212と、暗号化鍵生成部213と、ブートストラッピング鍵生成部214と、送信部215とを備える。鍵生成装置200の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ203には、鍵生成装置200の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ201によりメモリ202に読み込まれ、プロセッサ201によって実行される。これにより、鍵生成装置200の各機能構成要素の機能が実現される。
The key generation device 200 includes, as functional components, an input unit 211, a decryption key generation unit 212, an encryption key generation unit 213, a bootstrapping key generation unit 214, and a transmission unit 215. The functions of the functional components of the key generation device 200 are realized by software.
Storage 203 stores programs that implement the functions of each functional component of key generation device 200. These programs are loaded into memory 202 by processor 201 and executed by processor 201. In this way, the functions of each functional component of key generation device 200 are implemented.
図3を参照して、実施の形態1に係る暗号化装置300の構成を説明する。
暗号化装置300は、PC等のコンピュータである。暗号化装置300は、平文mを暗
号化鍵PKにより暗号化する。
暗号化装置300は、プロセッサ301と、メモリ302と、ストレージ303と、通信インタフェース304とのハードウェアを備える。プロセッサ301は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
The configuration of the encryption device 300 according to the first embodiment will be described with reference to FIG.
The encryption device 300 is a computer such as a PC, etc. The encryption device 300 encrypts plaintext m with an encryption key PK.
The encryption device 300 includes the following hardware components: a processor 301, a memory 302, a storage 303, and a communication interface 304. The processor 301 is connected to other hardware components via signal lines and controls the other hardware components.
暗号化装置300は、機能構成要素として、入力部311と、暗号化鍵保管部312と、暗号化部313と、送信部314とを備える。暗号化装置300の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ303には、暗号化装置300の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ301によりメモリ302に読み込まれ、プロセッサ301によって実行される。これにより、暗号化装置300の各機能構成要素の機能が実現される。
The encryption device 300 includes, as functional components, an input unit 311, an encryption key storage unit 312, an encryption unit 313, and a transmission unit 314. The functions of the functional components of the encryption device 300 are realized by software.
The storage 303 stores a program that realizes the function of each functional component of the encryption device 300. The program is loaded into the memory 302 by the processor 301 and executed by the processor 301. In this way, the function of each functional component of the encryption device 300 is realized.
図4を参照して、実施の形態1に係る準同型演算装置400の構成を説明する。
準同型演算装置400は、大容量のストレージ403を有するサーバ等のコンピュータである。準同型演算装置400は、暗号文に対して準同型演算を行う。準同型演算装置400は、暗号文を保管するデータ保管装置としても機能する。
準同型演算装置400は、プロセッサ401と、メモリ402と、ストレージ403と、通信インタフェース404とのハードウェアを備える。プロセッサ401は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
The configuration of a homomorphic arithmetic device 400 according to the first embodiment will be described with reference to FIG.
The homomorphic computing device 400 is a computer such as a server having a large-capacity storage 403. The homomorphic computing device 400 performs homomorphic computation on ciphertext. The homomorphic computing device 400 also functions as a data storage device that stores ciphertext.
The homomorphic computing device 400 includes the following hardware: a processor 401, a memory 402, a storage 403, and a communication interface 404. The processor 401 is connected to other hardware via signal lines and controls the other hardware.
準同型演算装置400は、機能構成要素として、入力部411と、暗号化鍵保管部412と、ブートストラッピング鍵保管部413と、ブートストラッピング処理部414と、暗号文保管部415と、準同型演算部416と、送信部417とを備える。準同型演算装置400の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ403には、準同型演算装置400の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ401によりメモリ402に読み込まれ、プロセッサ401によって実行される。これにより、準同型演算装置400の各機能構成要素の機能が実現される。
The homomorphic computing device 400 includes, as functional components, an input unit 411, an encryption key storage unit 412, a bootstrapping key storage unit 413, a bootstrapping processing unit 414, a ciphertext storage unit 415, a homomorphic computing unit 416, and a transmission unit 417. The functions of each functional component of the homomorphic computing device 400 are realized by software.
The storage 403 stores a program that realizes the function of each functional component of the homomorphic arithmetic device 400. This program is read into the memory 402 by the processor 401 and executed by the processor 401. In this way, the function of each functional component of the homomorphic arithmetic device 400 is realized.
図5を参照して、実施の形態1に係る復号装置500の構成を説明する。
復号装置500は、PC等のコンピュータである。復号装置500は、暗号文を復号鍵SKで復号する。復号装置500は、復号鍵SKを保管する復号鍵保管装置としても機能する。
復号装置500は、プロセッサ501と、メモリ502と、ストレージ503と、通信インタフェース504とのハードウェアを備える。プロセッサ501は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
The configuration of a decoding device 500 according to the first embodiment will be described with reference to FIG.
The decryption device 500 is a computer such as a PC. The decryption device 500 decrypts the ciphertext using a decryption key SK. The decryption device 500 also functions as a decryption key storage device that stores the decryption key SK.
The decoding device 500 includes the following hardware components: a processor 501, a memory 502, a storage 503, and a communication interface 504. The processor 501 is connected to other hardware components via signal lines and controls the other hardware components.
復号装置500は、機能構成要素として、入力部511と、復号鍵保管部512と、復号処理部513と、復号結果保管部514とを備える。復号装置500の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ503には、復号装置500の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ501によりメモリ502に読み込まれ、プロセッサ501によって実行される。これにより、復号装置500の各機能構成要素の機能が実現される。
The decryption device 500 includes, as functional components, an input unit 511, a decryption key storage unit 512, a decryption processing unit 513, and a decryption result storage unit 514. The functions of the functional components of the decryption device 500 are realized by software.
The storage 503 stores a program that realizes the function of each functional component of the decoding device 500. The program is read into the memory 502 by the processor 501 and executed by the processor 501. In this way, the function of each functional component of the decoding device 500 is realized.
なお、1つのコンピュータに、鍵生成装置200と暗号化装置300と準同型演算装置400と復号装置500との少なくとも2つ以上の装置の機能が同時に含まれていてもよい。 In addition, a single computer may simultaneously include the functions of at least two or more devices: the key generation device 200, the encryption device 300, the homomorphic arithmetic device 400, and the decryption device 500.
プロセッサ201,301,401,501は、プロセッシングを行うICである。ICはIntegrated Circuitの略である。プロセッサ201,301,401,501は、具体例としては、CPU、DSP、GPUである。CPUは、Central Processing Unitの略である。DSPは、Digital Signal Processorの略である。GPUは、Graphics Processing Unitの略である。 Processors 201, 301, 401, and 501 are ICs that perform processing. IC stands for Integrated Circuit. Specific examples of processors 201, 301, 401, and 501 are CPUs, DSPs, and GPUs. CPU stands for Central Processing Unit. DSP stands for Digital Signal Processor. GPU stands for Graphics Processing Unit.
メモリ202,302,402,502は、データを一時的に記憶する記憶装置である。メモリ202,302,402,502は、具体例としては、SRAM、DRAMである。SRAMは、Static Random Access Memoryの略である。DRAMは、Dynamic Random Access Memoryの略である。 Memories 202, 302, 402, and 502 are storage devices that temporarily store data. Specific examples of memories 202, 302, 402, and 502 are SRAM and DRAM. SRAM stands for Static Random Access Memory. DRAM stands for Dynamic Random Access Memory.
ストレージ203,303,403,503は、データを保管する記憶装置である。ストレージ203,303,403,503は、具体例としては、HDDである。HDDは、Hard Disk Driveの略である。また、ストレージ203,303,403,503は、SD(登録商標)メモリカード、CompactFlash(登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、Blu-ray(登録商標)ディスク、DVDといった可搬記録媒体であってもよい。SDは、Secure Digitalの略である。DVDは、Digital Versatile Diskの略である。 Storages 203, 303, 403, and 503 are storage devices that store data. Storages 203, 303, 403, and 503 are specifically HDDs. HDD stands for Hard Disk Drive. Storages 203, 303, 403, and 503 may also be portable recording media such as SD (registered trademark) memory cards, CompactFlash (registered trademark), NAND flash, flexible disks, optical disks, compact disks, Blu-ray (registered trademark) disks, and DVDs. SD stands for Secure Digital. DVD stands for Digital Versatile Disk.
通信インタフェース204,304,404,504は、外部の装置と通信するためのインタフェースである。通信インタフェース204,304,404,504は、具体例としては、Ethernet(登録商標)、USB、HDMI(登録商標)のポートである。USBは、Universal Serial Busの略である。HDMIは、High-Definition Multimedia Interfaceの略である。 Communication interfaces 204, 304, 404, and 504 are interfaces for communicating with external devices. Specific examples of communication interfaces 204, 304, 404, and 504 are Ethernet (registered trademark), USB, and HDMI (registered trademark) ports. USB stands for Universal Serial Bus. HDMI stands for High-Definition Multimedia Interface.
プロセッサ201,301,401,501は、複数であってもよく、複数のプロセッサ201,301,401,501が、各機能を実現するプログラムを連携して実行してもよい。 There may be multiple processors 201, 301, 401, and 501, and the multiple processors 201, 301, 401, and 501 may work together to execute programs that realize each function.
***動作の説明***
図6及び図7を参照して、実施の形態1に係る秘匿情報処理システム100の動作を説明する。
実施の形態1に係る秘匿情報処理システム100の動作手順は、実施の形態1に係る秘匿情報処理方法に相当する。また、実施の形態1に係る秘匿情報処理システム100の動作を実現するプログラムは、実施の形態1に係る秘匿情報処理プログラムに相当する。
実施の形態1に係る秘匿情報処理システム100のうち準同型演算装置400の動作手順は、実施の形態1に係る準同型演算方法に相当する。また、実施の形態1に係る秘匿情報処理システム100のうち準同型演算装置400の動作を実現するプログラムは、実施の形態1に係る準同型演算プログラムに相当する。
***Explanation of Operation***
The operation of the secret information processing system 100 according to the first embodiment will be described with reference to FIGS.
The operation procedure of the secret information processing system 100 according to the first embodiment corresponds to the secret information processing method according to the first embodiment. Moreover, the program that realizes the operation of the secret information processing system 100 according to the first embodiment corresponds to the secret information processing program according to the first embodiment.
The operation procedure of the homomorphic arithmetic device 400 in the secret information processing system 100 according to the first embodiment corresponds to the homomorphic arithmetic method according to the first embodiment. Moreover, the program that realizes the operation of the homomorphic arithmetic device 400 in the secret information processing system 100 according to the first embodiment corresponds to the homomorphic arithmetic program according to the first embodiment.
秘匿情報処理システム100の動作は、鍵生成処理と、演算処理とを含む。 The operation of the confidential information processing system 100 includes key generation processing and calculation processing.
図6を参照して、実施の形態1に係る鍵生成処理を説明する。
(ステップS101:セキュリティパラメータ受付処理)
鍵生成装置200の入力部211は、セキュリティパラメータλの入力を受け付ける。入力部211は、セキュリティパラメータλを復号鍵生成部212に送信する。
The key generation process according to the first embodiment will be described with reference to FIG.
(Step S101: Security parameter reception process)
The input unit 211 of the key generation device 200 receives an input of a security parameter λ. The input unit 211 transmits the security parameter λ to the decryption key generation unit 212.
(ステップS102:復号鍵生成処理)
鍵生成装置200の復号鍵生成部212は、ステップS101で受け付けされたセキュリティパラメータλを入力として、復号鍵SKを生成する。復号鍵生成部212は、復号鍵SKを暗号化鍵生成部213とブートストラッピング鍵生成部214と送信部215とに送信する。
ここでは、復号鍵生成部212は、回路秘匿性を有する準同型暗号方式における鍵生成アルゴリズムを用いて復号鍵SKを生成する。実施の形態1では、復号鍵生成部212は、参考文献における鍵生成アルゴリズムを用いて復号鍵SKを生成する。参考文献は、「Florian Bourse, Rafael Del Pino, Michele
Minelli, and Hoeteck Wee. FHE Circuit Privacy Almost For Free. In CRYPTO, 2016.」である。
(Step S102: Decryption key generation process)
The decryption key generation unit 212 of the key generation device 200 receives the security parameter λ received in step S101 as an input and generates a decryption key SK. The decryption key generation unit 212 transmits the decryption key SK to the encryption key generation unit 213, the bootstrapping key generation unit 214, and the transmission unit 215.
Here, the decryption key generation unit 212 generates the decryption key SK using a key generation algorithm in a homomorphic encryption method with circuit confidentiality. In the first embodiment, the decryption key generation unit 212 generates the decryption key SK using a key generation algorithm in a reference document. The reference document is "Florian Bourse, Rafael Del Pino, Michele
Minelli, and Hoeteck Wee. FHE Circuit Privacy Almost For Free. In CRYPTO, 2016.
(ステップS103:暗号化鍵生成処理)
鍵生成装置200の暗号化鍵生成部213は、ステップS102で生成された復号鍵SKを入力として、暗号化鍵PKを生成する。暗号化鍵生成部213は、暗号化鍵PKをブートストラッピング鍵生成部214と送信部215とに送信する。
ここでは、暗号化鍵生成部213は、回路秘匿性を有する準同型暗号方式における鍵生成アルゴリズムを用いて暗号化鍵PKを生成する。実施の形態1では、暗号化鍵生成部213は、参考文献における鍵生成アルゴリズムを用いて暗号化鍵PKを生成する。
(Step S103: Encryption key generation process)
The encryption key generation unit 213 of the key generation device 200 receives the decryption key SK generated in step S102 as an input and generates an encryption key PK. The encryption key generation unit 213 transmits the encryption key PK to the bootstrapping key generation unit 214 and the transmission unit 215.
Here, the encryption key generation unit 213 generates the encryption key PK using a key generation algorithm in a homomorphic encryption method with circuit confidentiality. In the first embodiment, the encryption key generation unit 213 generates the encryption key PK using the key generation algorithm in the reference document.
参考文献における鍵生成アルゴリズムをKeyGenとすると、ステップS102及びステップS103の処理は、数1のように書くことができる。
(ステップS104:ブートストラッピング鍵生成処理)
鍵生成装置200のブートストラッピング鍵生成部214は、ステップS102で生成された復号鍵SKと、ステップS103で生成された暗号化鍵PKとを入力として、ブートストラッピング鍵BKを生成する。具体的には、ブートストラッピング鍵生成部214は、復号鍵SKを暗号化鍵PKで暗号化することにより、ブートストラッピング鍵BKを生成する。ブートストラッピング鍵生成部214は、ブートストラッピング鍵BKを送信部215に送信する。
ここでは、ブートストラッピング鍵生成部214は、回路秘匿性を有する準同型暗号方式における暗号化アルゴリズムを用いて復号鍵SKを暗号化鍵PKで暗号化することにより、ブートストラッピング鍵BKを生成する。ここで用いられる暗号化アルゴリズムは、回路秘匿性+を満たすために必要な、指定された暗号化アルゴリズムである。実施の形態1では、ブートストラッピング鍵生成部214は、参考文献における暗号化アルゴリズムを用いて復号鍵SKを暗号化鍵PKで暗号化することにより、ブートストラッピング鍵BKを生成する。
(Step S104: Bootstrapping key generation process)
The bootstrapping key generation unit 214 of the key generation device 200 receives the decryption key SK generated in step S102 and the encryption key PK generated in step S103 as input and generates the bootstrapping key BK. Specifically, the bootstrapping key generation unit 214 generates the bootstrapping key BK by encrypting the decryption key SK with the encryption key PK. The bootstrapping key generation unit 214 transmits the bootstrapping key BK to the transmission unit 215.
Here, the bootstrapping key generation unit 214 generates the bootstrapping key BK by encrypting the decryption key SK with the encryption key PK using an encryption algorithm in a homomorphic encryption method with circuit confidentiality. The encryption algorithm used here is a specified encryption algorithm required to satisfy circuit confidentiality+. In the first embodiment, the bootstrapping key generation unit 214 generates the bootstrapping key BK by encrypting the decryption key SK with the encryption key PK using the encryption algorithm in the reference document.
参考文献における暗号化アルゴリズムをEncとすると、ステップS104の処理は、数2のように書くことができる。
(ステップS105:鍵送信処理)
鍵生成装置200の送信部215は、インターネット900を介して、ステップS103で生成された暗号化鍵PKを暗号化装置300に送信する。また、送信部215は、インターネット900を介して、ステップS103で生成された暗号化鍵PKとステップS104で生成されたブートストラッピング鍵BKとを準同型演算装置400に送信する。また、送信部215は、インターネット900を介して、ステップS102で生成された復号鍵SKを復号装置500に送信する。復号鍵SKは秘密の情報であるため、漏洩しないようにした上で送信される。
なお、暗号化鍵PKと復号鍵SKとブートストラッピング鍵BKとは、郵送等の方法で送信されてもよい。
(Step S105: Key transmission process)
The transmitting unit 215 of the key generating device 200 transmits the encryption key PK generated in step S103 to the encryption device 300 via the Internet 900. The transmitting unit 215 also transmits the encryption key PK generated in step S103 and the bootstrapping key BK generated in step S104 to the homomorphic computing device 400 via the Internet 900. The transmitting unit 215 also transmits the decryption key SK generated in step S102 to the decryption device 500 via the Internet 900. Since the decryption key SK is confidential information, it is transmitted in a manner that prevents it from being leaked.
The encryption key PK, decryption key SK, and bootstrapping key BK may be transmitted by mail or other methods.
(ステップS106:第1鍵受信処理)
暗号化装置300の入力部311は、ステップS105で送信された暗号化鍵PKを受信する。入力部311は、暗号化鍵PKを暗号化鍵保管部312に送信する。
(Step S106: First key reception process)
The input unit 311 of the encryption device 300 receives the encryption key PK transmitted in step S105. The input unit 311 transmits the encryption key PK to the encryption key storage unit 312.
(ステップS107:第1鍵保管処理)
暗号化装置300の暗号化鍵保管部312は、ステップS106で受信された暗号化鍵PKをストレージ303に保管する。
(Step S107: First key storage process)
The encryption key storage unit 312 of the encryption device 300 stores the encryption key PK received in step S106 in the storage 303.
(ステップS108:第2鍵受信処理)
準同型演算装置400の入力部411は、ステップS105で送信された暗号化鍵PKとブートストラッピング鍵BKとを受信する。入力部411は、暗号化鍵PKを暗号化鍵保管部412に送信し、ブートストラッピング鍵BKをブートストラッピング鍵保管部413に送信する。
(Step S108: Second key reception process)
The input unit 411 of the homomorphic computing device 400 receives the encryption key PK and the bootstrapping key BK transmitted in step S105. The input unit 411 transmits the encryption key PK to the encryption key storage unit 412 and transmits the bootstrapping key BK to the bootstrapping key storage unit 413.
(ステップS109:第2鍵保管処理)
準同型演算装置400の暗号化鍵保管部412は、ステップS108で受信された暗号化鍵PKをストレージ403に保管する。また、ブートストラッピング鍵保管部413は、ステップS108で受信されたブートストラッピング鍵BKをストレージ403に保管する。
(Step S109: Second key storage process)
The encryption key storage unit 412 of the homomorphic computing device 400 stores the encryption key PK received in step S108 in the storage 403. In addition, the bootstrapping key storage unit 413 stores the bootstrapping key BK received in step S108 in the storage 403.
(ステップS110:第3鍵受信処理)
復号装置500の入力部511は、ステップS105で送信された復号鍵SKを受信する。入力部511は、復号鍵SKを復号鍵保管部512に送信する。
(Step S110: Third key reception process)
The input unit 511 of the decryption device 500 receives the decryption key SK transmitted in step S105. The input unit 511 transmits the decryption key SK to the decryption key storage unit 512.
(ステップS111:第3鍵保管処理)
復号装置500の復号鍵保管部512は、ステップS110で受信された復号鍵SKをストレージ503に保管する。復号鍵SKは秘密の情報であるため、漏洩しないように保管される。
(Step S111: Third key storage process)
The decryption key storage unit 512 of the decryption device 500 stores the decryption key SK received in step S110 in the storage 503. Since the decryption key SK is confidential information, it is stored in a manner that prevents it from being leaked.
図7を参照して、実施の形態1に係る演算処理を説明する。
(ステップS201:平文受付処理)
暗号化装置300の入力部311は、平文mの入力を受け付ける。平文mは、例えば、センサ等から収集されたデータである。入力部311は、平文mを暗号化部313に送信する。
The calculation process according to the first embodiment will be described with reference to FIG.
(Step S201: Plain text reception process)
The input unit 311 of the encryption device 300 receives an input of plaintext m. The plaintext m is, for example, data collected from a sensor, etc. The input unit 311 transmits the plaintext m to the encryption unit 313.
(ステップS202:暗号化処理)
暗号化装置300の暗号化部313は、ステップS201で受け付けされた平文mを、ストレージ303に保管されている暗号化鍵PKにより暗号化して、暗号文CPK(m)
を生成する。暗号化部313は、暗号文CPK(m)を送信部314に送信する。
ここでは、暗号化部313は、回路秘匿性を有する準同型暗号方式における暗号化アルゴリズムを用いて平文mを暗号化鍵PKで暗号化することにより、暗号文CPK(m)を生成する。実施の形態1では、暗号化部313は、参考文献における暗号化アルゴリズムを用いて平文mを暗号化鍵PKで暗号化することにより、暗号文CPK(m)を生成する。なお、ここで用いられる暗号化アルゴリズムは、回路秘匿性+を満たすために必要な、指定された暗号化アルゴリズムではなくてもよい。
(Step S202: Encryption process)
The encryption unit 313 of the encryption device 300 encrypts the plaintext m received in step S201 using the encryption key PK stored in the storage 303 to generate ciphertext C PK (m).
The encryption unit 313 transmits the ciphertext C PK (m) to the transmission unit 314 .
Here, the encryption unit 313 generates ciphertext C PK (m) by encrypting plaintext m with encryption key PK using an encryption algorithm in a homomorphic encryption method with circuit confidentiality. In the first embodiment, the encryption unit 313 generates ciphertext C PK ( m) by encrypting plaintext m with encryption key PK using an encryption algorithm in the reference document. Note that the encryption algorithm used here does not have to be the specified encryption algorithm required to satisfy circuit confidentiality+.
参考文献における暗号化アルゴリズムをEncとすると、ステップS202の処理は、数3のように書くことができる。
(ステップS203:暗号文送信処理)
暗号化装置300の送信部314は、インターネット900を介して、ステップS202で生成された暗号文CPK(m)を、準同型演算装置400に送信する。
(Step S203: Ciphertext transmission process)
The transmitting unit 314 of the encryption device 300 transmits the ciphertext C PK (m) generated in step S202 to the homomorphic arithmetic device 400 via the Internet 900.
(ステップS204:暗号文受信処理)
準同型演算装置400の入力部411は、ステップS203で送信された暗号文CPK(m)を受信する。入力部411は、暗号文CPK(m)をブートストラッピング処理部414に送信する。
(Step S204: Ciphertext reception process)
The input unit 411 of the homomorphic computing device 400 receives the ciphertext C PK (m) transmitted in step S203. The input unit 411 transmits the ciphertext C PK (m) to the bootstrapping processing unit 414.
(ステップS205:暗号文変換処理)
準同型演算装置400のブートストラッピング処理部414は、ステップS204で受信された暗号文CPK(m)を復号鍵SKで復号する復号回路と、ストレージ403に保管されたブートストラッピング鍵BKとを入力として準同型演算処理をして新たな暗号文C’PK(m)を生成する。つまり、ブートストラッピング鍵BKに対して暗号化したままで復号回路の演算処理を適用する。ブートストラッピング処理部414は、新たな暗号文C’PK(m)を暗号文保管部415に送信する。
ここでは、ブートストラッピング処理部414は、回路秘匿性を有する準同型暗号方式における準同型演算アルゴリズムを用いて準同型演算処理を行う。実施の形態1では、ブートストラッピング処理部414は、参考文献における準同型演算アルゴリズムを用いて準同型演算処理を行う。
(Step S205: Ciphertext conversion process)
The bootstrapping processing unit 414 of the homomorphic computing device 400 performs homomorphic computation using a decryption circuit that decrypts the ciphertext C PK (m) received in step S204 with the decryption key SK and the bootstrapping key BK stored in the storage 403 as input, to generate a new ciphertext C' PK (m). That is, the bootstrapping processing unit 414 applies computation processing to the decryption circuit while leaving the bootstrapping key BK encrypted. The bootstrapping processing unit 414 transmits the new ciphertext C' PK (m) to the ciphertext storage unit 415.
Here, the bootstrapping processing unit 414 performs homomorphic computation using a homomorphic computation algorithm in a homomorphic encryption method with circuit confidentiality. In the first embodiment, the bootstrapping processing unit 414 performs homomorphic computation using the homomorphic computation algorithm in the reference document.
参考文献における復号アルゴリズムをDecとし、参考文献における準同型演算アルゴリズムをEvalとする。すると、復号回路は、数4のように書くことができる。ここで、暗号文CPK(m)が復号回路の内部に固定値として設定されていると考えることができる。
ブートストラッピング鍵BKは、復号鍵SKの暗号文である。したがって、数5に示す準同型演算処理をすることにより、暗号化したまま暗号文CPK(m)が復号され、平文mの新たな暗号文C’PK(m)が生成される。ここで、新たな暗号文C’PK(m)を生成する際には、入力となった暗号文を生成している暗号化アルゴリズムが用いられる。ここで、入力となった暗号文は、ブートストラッピング鍵BKである。したがって、ブートストラッピング鍵BKを生成する際に使用された暗号化アルゴリズムによって、平文mの新たな暗号文C’PK(m)が生成されることになる。その結果、新たな暗号文C’PK(m)は、指定された暗号化アルゴリズムによって暗号化された暗号文である。つまり、指定された暗号化アルゴリズムではない暗号化アルゴリズムによって暗号化された暗号文CPK(m)が、指定された暗号化アルゴリズムによって暗号化された新たな暗号文C’PK(m)に変換される。 The bootstrapping key BK is the ciphertext of the decryption key SK. Therefore, by performing the homomorphic operation shown in Expression 5, the ciphertext C PK (m) is decrypted while remaining encrypted, and a new ciphertext C' PK (m) of the plaintext m is generated. Here, when generating the new ciphertext C' PK (m), the encryption algorithm that generated the input ciphertext is used. Here, the input ciphertext is the bootstrapping key BK. Therefore, the new ciphertext C' PK (m) of the plaintext m is generated by the encryption algorithm used to generate the bootstrapping key BK. As a result, the new ciphertext C' PK (m) is a ciphertext encrypted by the specified encryption algorithm. In other words, the ciphertext C PK (m) encrypted by an encryption algorithm other than the specified encryption algorithm is converted into a new ciphertext C' PK (m) encrypted by the specified encryption algorithm.
(ステップS206:暗号文保管処理)
準同型演算装置400の暗号文保管部415は、ステップS205で生成された新たな暗号文C’PK(m)をストレージ403に保管する。
(Step S206: Ciphertext storage process)
The ciphertext storage unit 415 of the homomorphic computing device 400 stores the new ciphertext C′ PK (m) generated in step S205 in the storage 403.
(ステップS207:演算受付処理)
準同型演算装置400の入力部411は、演算回路fの入力を受け付ける。演算回路fは、任意の演算を定義した回路である。入力部411は、演算回路fを準同型演算部416に送信する。
(Step S207: Calculation acceptance process)
The input unit 411 of the homomorphic arithmetic device 400 receives an input of an arithmetic circuit f. The arithmetic circuit f is a circuit that defines an arbitrary operation. The input unit 411 transmits the arithmetic circuit f to the homomorphic arithmetic unit 416.
(ステップS208:演算実行処理)
準同型演算装置400の準同型演算部416は、ステップS207で受け付けされた演算回路fと、ストレージ403に保管された新たな暗号文C’PK(m)とを入力として準同型演算処理をして、演算結果データMの暗号文である演算後暗号文CPK(M)を生成する。つまり、準同型演算部416は、新たな暗号文C’PK(m)に対して、暗号化したままで演算回路fの演算処理を適用して、演算後暗号文CPK(M)を生成する。ここで、M=f(m)である。つまり、Mは、平文mに対して演算回路fの演算処理を適用した結果を示す。準同型演算部416は、演算後暗号文CPK(M)を送信部417に送信する。
ここでは、準同型演算部416は、回路秘匿性を有する準同型暗号方式における準同型演算アルゴリズムを用いて準同型演算処理を行う。実施の形態1では、準同型演算部416は、参考文献における準同型演算アルゴリズムを用いて準同型演算処理を行う。
(Step S208: Calculation execution process)
The homomorphic computation unit 416 of the homomorphic computation device 400 performs homomorphic computation on the computation circuit f accepted in step S207 and the new ciphertext C' PK (m) stored in the storage 403 as input, and generates post-computation ciphertext C PK (M), which is the ciphertext of the computation result data M. In other words, the homomorphic computation unit 416 applies the computation process of the computation circuit f to the new ciphertext C' PK (m) while leaving it encrypted, to generate post-computation ciphertext C PK (M). Here, M = f(m). In other words, M represents the result of applying the computation process of the computation circuit f to the plaintext m. The homomorphic computation unit 416 transmits the post-computation ciphertext C PK (M) to the transmission unit 417.
Here, the homomorphic computation unit 416 performs homomorphic computation processing using a homomorphic computation algorithm in a homomorphic encryption method with circuit confidentiality. In the first embodiment, the homomorphic computation unit 416 performs homomorphic computation processing using a homomorphic computation algorithm in the reference document.
参考文献における準同型演算アルゴリズムをEvalとすると、ステップS208の処理は数6のように書くことができる。
(ステップS209:演算後暗号文送信処理)
準同型演算装置400の送信部417は、インターネット900を介して、ステップS208で生成された演算後暗号文CPK(M)を、復号装置500に送信する。
(Step S209: Post-calculation ciphertext transmission process)
The transmitting unit 417 of the homomorphic computing device 400 transmits the post-computation ciphertext C PK (M) generated in step S208 to the decryption device 500 via the Internet 900.
(ステップS210:演算後暗号文受信処理)
復号装置500の入力部511は、ステップS209で送信された演算後暗号文CPK(M)を受信する。入力部511は、演算後暗号文CPK(M)を復号処理部513に送信する。
(Step S210: Post-calculation ciphertext reception process)
The input unit 511 of the decryption device 500 receives the post-operation ciphertext C PK (M) transmitted in step S209. The input unit 511 transmits the post-operation ciphertext C PK (M) to the decryption processing unit 513.
(ステップS211:復号処理)
復号装置500の復号処理部513は、ステップS210で受信された演算後暗号文CPK(M)を、ストレージ503に保管された復号鍵SKで復号して、復号結果Dを生成する。復号処理部513は、復号結果Dを復号結果保管部514に送信する。
ここでは、復号処理部513は、回路秘匿性を有する準同型暗号方式における復号アルゴリズムを用いて、演算後暗号文CPK(M)を復号鍵SKで復号する。実施の形態1では、復号処理部513は、参考文献における復号アルゴリズムを用いて、演算後暗号文CPK(M)を復号鍵SKで復号する。
(Step S211: Decryption process)
The decryption processing unit 513 of the decryption device 500 decrypts the post-operation ciphertext C PK (M) received in step S210 with the decryption key SK stored in the storage 503 to generate the decryption result D. The decryption processing unit 513 transmits the decryption result D to the decryption result storage unit 514.
Here, the decryption processing unit 513 decrypts the post-operation ciphertext C PK (M) with the decryption key SK using a decryption algorithm in a homomorphic encryption method with circuit confidentiality. In the first embodiment, the decryption processing unit 513 decrypts the post-operation ciphertext C PK (M) with the decryption key SK using the decryption algorithm in the reference document.
参考文献における復号アルゴリズムをDecとすると、ステップS211の処理は数7のように書くことができる。
(ステップS212:復号結果保管処理)
復号装置500の復号結果保管部514は、ステップS211で生成された復号結果Dをストレージ503に保管する。
(Step S212: Decryption result storage process)
The decryption result storage unit 514 of the decryption device 500 stores the decryption result D generated in step S211 in the storage 503.
ここで、図7に示す演算処理は、ステップS201からステップS206の処理である暗号文保管処理と、ステップS207からステップS212の演算適用処理とに分けられてもよい。この場合には、ステップS207で入力部411は、演算回路fを適用する新たな暗号文C’PK(m)の指定も受け付けるようにすればよい。そして、ステップS208で準同型演算部416は、指摘された新たな暗号文C’PK(m)に対して準同型演算処理を行えばよい。 7 may be divided into a ciphertext storage process which is the process from step S201 to step S206, and an operation application process from step S207 to step S212. In this case, the input unit 411 may also accept designation of new ciphertext C' PK (m) to which the operation circuit f is applied in step S207. Then, in step S208, the homomorphic operation unit 416 may perform homomorphic operation on the designated new ciphertext C' PK (m).
***実施の形態1の効果***
以上のように、実施の形態1に係る秘匿情報処理システム100は、復号回路とブートストラッピング鍵BKとを入力として準同型演算処理をする。この準同型演算処理により、暗号化したまま暗号文CPK(m)が復号され、平文mの新しい暗号文C’PK(m)が生成される。これにより、指定された暗号化アルゴリズムによって生成されていない暗号文CPK(m)を、指定された暗号化アルゴリズムによって生成された新しい暗号文C’PK(m)に変換することができる。そのため、新しい暗号文C’PK(m)に対して準同型演算処理を行うことで、回路秘匿性+を達成することが可能になる。
ここで、ブートストラッピング鍵に対して行った準同型演算処理がブートストラッピング処理である。つまり、1どのブートストラッピング処理で、回路秘匿性+を達成することが可能になる。
***Effects of First Embodiment***
As described above, the secret information processing system 100 according to the first embodiment performs homomorphic arithmetic processing using the decryption circuit and the bootstrapping key BK as input. This homomorphic arithmetic processing decrypts the ciphertext C PK (m) while keeping it encrypted, and generates a new ciphertext C' PK (m) of the plaintext m. This makes it possible to convert the ciphertext C PK (m) that has not been generated using a specified encryption algorithm into the new ciphertext C' PK (m) that has been generated using a specified encryption algorithm. Therefore, by performing homomorphic arithmetic processing on the new ciphertext C' PK (m), it is possible to achieve circuit secrecy +.
Here, the homomorphic operation performed on the bootstrapping key is the bootstrapping process. In other words, circuit secrecy can be achieved by just one bootstrapping process.
***他の構成***
<変形例1>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
***Other configurations***
<Modification 1>
In the first embodiment, each functional component is realized by software. However, as a first modification, each functional component may be realized by hardware. The following describes the differences between the first embodiment and the first modification.
各機能構成要素がハードウェアで実現される場合には、鍵生成装置200は、プロセッサ201とメモリ202とストレージ203とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ202と、ストレージ203との機能とを実現する専用の回路である。 If each functional component is implemented in hardware, the key generation device 200 includes an electronic circuit instead of the processor 201, memory 202, and storage 203. The electronic circuit is a dedicated circuit that implements the functions of each functional component, memory 202, and storage 203.
同様に、各機能構成要素がハードウェアで実現される場合には、暗号化装置300は、プロセッサ301とメモリ302とストレージ303とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ302と、ストレージ303との機能とを実現する専用の回路である。 Similarly, when each functional component is implemented in hardware, the encryption device 300 includes an electronic circuit in place of the processor 301, memory 302, and storage 303. The electronic circuit is a dedicated circuit that implements the functions of each functional component, memory 302, and storage 303.
同様に、各機能構成要素がハードウェアで実現される場合には、準同型演算装置400は、プロセッサ401とメモリ402とストレージ403とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ402と、ストレージ403との機能とを実現する専用の回路である。 Similarly, when each functional component is implemented in hardware, the homomorphic computing device 400 includes an electronic circuit in place of the processor 401, memory 402, and storage 403. The electronic circuit is a dedicated circuit that implements the functions of each functional component, memory 402, and storage 403.
同様に、各機能構成要素がハードウェアで実現される場合には、復号装置500は、プロセッサ501とメモリ502とストレージ503とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ502と、ストレージ503との機能とを実現する専用の回路である。 Similarly, when each functional component is implemented in hardware, the decoding device 500 includes an electronic circuit in place of the processor 501, memory 502, and storage 503. The electronic circuit is a dedicated circuit that implements the functions of each functional component, memory 502, and storage 503.
電子回路としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAが想定される。GAは、Gate Arrayの略である。ASICは、Application Specific Integrated Circuitの略である。FPGAは、Field-Programmable Gate Arrayの略である。
各機能構成要素を1つの電子回路で実現してもよいし、各機能構成要素を複数の電子回路に分散させて実現してもよい。
Possible electronic circuits include single circuits, composite circuits, programmed processors, parallel programmed processors, logic ICs, GAs, ASICs, and FPGAs. GA stands for Gate Array. ASIC stands for Application Specific Integrated Circuit. FPGA stands for Field-Programmable Gate Array.
Each functional component may be realized by one electronic circuit, or each functional component may be realized by distributing it among a plurality of electronic circuits.
<変形例2>
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
<Modification 2>
As a second modification, some of the functional components may be realized by hardware, and other functional components may be realized by software.
プロセッサ201,301,401,501とメモリ202,302,402,502とストレージ203,303,403,503と電子回路とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。 Processors 201, 301, 401, and 501, memories 202, 302, 402, and 502, storages 203, 303, 403, and 503, and electronic circuits are collectively referred to as a processing circuit. In other words, the functions of each functional component are realized by the processing circuit.
また、以上の説明における「部」を、「回路」、「工程」、「手順」、「処理」又は「処理回路」に読み替えてもよい。 Furthermore, the word "part" in the above description may be interpreted as "circuit," "process," "procedure," "processing," or "processing circuit."
以下、本開示の諸態様を付記としてまとめて記載する。
(付記1)
暗号化鍵PKを用いて平文mが暗号化された暗号文CPK(m)を復号鍵SKで復号する復号回路と、前記復号鍵SKを前記暗号化鍵PKを用いて暗号化することにより生成されたブートストラッピング鍵BKとを入力として準同型演算処理をして新たな暗号文C’PK(m)を生成するブートストラッピング処理部と、
演算回路fと、前記ブートストラッピング処理部によって生成された前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算部と
を備える準同型演算装置。
(付記2)
前記準同型演算処理は、回路秘匿性を有する準同型暗号方式における準同型演算処理である
付記1に記載の準同型演算装置。
(付記3)
前記暗号化鍵PK及び前記復号鍵SKは、前記準同型暗号方式における暗号化鍵及び復号鍵である
付記2に記載の準同型演算装置。
(付記4)
コンピュータが、暗号化鍵PKを用いて平文mが暗号化された暗号文CPK(m)を復号鍵SKで復号する復号回路と、前記復号鍵SKを前記暗号化鍵PKを用いて暗号化することにより生成されたブートストラッピング鍵BKとを入力として準同型演算処理をして新たな暗号文C’PK(m)を生成し、
コンピュータが、演算回路fと、前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算方法。
(付記5)
暗号化鍵PKを用いて平文mが暗号化された暗号文CPK(m)を復号鍵SKで復号する復号回路と、前記復号鍵SKを前記暗号化鍵PKを用いて暗号化することにより生成されたブートストラッピング鍵BKとを入力として準同型演算処理をして新たな暗号文C’PK(m)を生成するブートストラッピング処理と、
演算回路fと、前記ブートストラッピング処理によって生成された前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算処理と
を行う準同型演算装置としてコンピュータを機能させる準同型演算プログラム。
(付記6)
暗号化鍵PKを用いて平文mを暗号化して暗号文CPK(m)を生成する暗号化装置と、
前記暗号化装置によって生成された前記暗号文CPK(m)から新たな暗号文C’PK(m)を生成し、演算回路fと前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算装置と、
前記準同型演算装置によって生成された演算後暗号文CPK(M)を、復号鍵SKで復号する復号装置と
を備え、
前記準同型演算装置は、前記暗号文CPK(m)を前記復号鍵SKで復号する復号回路と、前記復号鍵SKを前記暗号化鍵PKを用いて暗号化することにより生成されたブートストラッピング鍵BKとを入力として準同型演算処理をして前記新たな暗号文C’PK(m)を生成する秘匿情報処理システム。
Various aspects of the present disclosure are summarized below as appendices.
(Appendix 1)
a decryption circuit that decrypts, with a decryption key SK, a ciphertext C PK (m) obtained by encrypting a plaintext m using an encryption key PK; and a bootstrapping processing unit that performs homomorphic operation on inputs of a bootstrapping key BK generated by encrypting the decryption key SK using the encryption key PK to generate a new ciphertext C′ PK (m);
a homomorphic arithmetic unit that receives as input the new ciphertext C′ PK (m) generated by the bootstrapping processing unit, performs homomorphic arithmetic processing, and generates a post-operation ciphertext C PK (M).
(Appendix 2)
2. The homomorphic arithmetic device according to claim 1, wherein the homomorphic arithmetic processing is a homomorphic arithmetic processing in a homomorphic encryption method having circuit confidentiality.
(Appendix 3)
3. The homomorphic arithmetic device according to claim 2, wherein the encryption key PK and the decryption key SK are encryption keys and decryption keys in the homomorphic encryption method.
(Appendix 4)
a computer performs homomorphic computation using as input a decryption circuit that decrypts ciphertext C PK (m), which is obtained by encrypting plaintext m using an encryption key PK, and a bootstrapping key BK that is generated by encrypting the decryption key SK using the encryption key PK, to generate a new ciphertext C′ PK (m);
A homomorphic computation method in which a computer performs homomorphic computation using an arithmetic circuit f and the new ciphertext C′ PK (m) as input to generate a post-computation ciphertext C PK (M).
(Appendix 5)
a decryption circuit that decrypts, with a decryption key SK, a ciphertext C PK (m) obtained by encrypting a plaintext m using an encryption key PK; and a bootstrapping process that performs homomorphic computation using, as input, a bootstrapping key BK generated by encrypting the decryption key SK using the encryption key PK to generate a new ciphertext C′ PK (m);
a homomorphic arithmetic program that causes a computer to function as a homomorphic arithmetic device that performs homomorphic arithmetic processing using an arithmetic circuit f and the new ciphertext C′ PK (m) generated by the bootstrapping processing as input to generate a post-operation ciphertext C PK (M).
(Appendix 6)
an encryption device that encrypts plaintext m using an encryption key PK to generate ciphertext C PK (m);
a homomorphic arithmetic device that generates a new ciphertext C′ PK (m) from the ciphertext C PK (m) generated by the encryption device, and performs homomorphic arithmetic processing using an arithmetic circuit f and the new ciphertext C′ PK (m) as inputs to generate a post-operation ciphertext C PK (M);
a decryption device that decrypts the post-operation ciphertext C PK (M) generated by the homomorphic arithmetic device using a decryption key SK;
The homomorphic arithmetic device is a secret information processing system that performs homomorphic arithmetic processing using as input a decryption circuit that decrypts the ciphertext C PK (m) with the decryption key SK and a bootstrapping key BK that is generated by encrypting the decryption key SK with the encryption key PK, to generate the new ciphertext C' PK (m).
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。 The above describes embodiments and variations of the present disclosure. It is also possible to combine several of these embodiments and variations. It is also possible to partially implement one or several of them. It should be noted that the present disclosure is not limited to the above embodiments and variations, and various modifications are possible as needed.
100 秘匿情報処理システム、200 鍵生成装置、300 暗号化装置、400 準同型演算装置、500 復号装置、201 プロセッサ、202 メモリ、203 ストレージ、204 通信インタフェース、211 入力部、212 復号鍵生成部、213 暗号化鍵生成部、214 ブートストラッピング鍵生成部、215 送信部、301 プロセッサ、302 メモリ、303 ストレージ、304 通信インタフェース、311 入力部、312 暗号化鍵保管部、313 暗号化部、314 送信部、401 プロセッサ、402 メモリ、403 ストレージ、404 通信インタフェース、411 入力部、412 暗号化鍵保管部、413 ブートストラッピング鍵保管部、414 ブートストラッピング処理部、415 暗号文保管部、416 準同型演算部、417 送信部、501 プロセッサ、502 メモリ、503 ストレージ、504 通信インタフェース、511 入力部、512 復号鍵保管部、513 復号処理部、514 復号結果保管部、900 インターネット。 100 Confidential information processing system, 200 Key generation device, 300 Encryption device, 400 Homomorphic arithmetic device, 500 Decryption device, 201 Processor, 202 Memory, 203 Storage, 204 Communication interface, 211 Input unit, 212 Decryption key generation unit, 213 Encryption key generation unit, 214 Bootstrapping key generation unit, 215 Transmission unit, 301 Processor, 302 Memory, 303 Storage, 304 Communication interface, 311 Input unit, 312 Encryption key storage unit, 313 Encryption unit, 31 4. Transmission unit, 401. Processor, 402. Memory, 403. Storage, 404. Communication interface, 411. Input unit, 412. Encryption key storage unit, 413. Bootstrapping key storage unit, 414. Bootstrapping processing unit, 415. Ciphertext storage unit, 416. Homomorphic operation unit, 417. Transmission unit, 501. Processor, 502. Memory, 503. Storage, 504. Communication interface, 511. Input unit, 512. Decryption key storage unit, 513. Decryption processing unit, 514. Decryption result storage unit, 900. Internet.
Claims (6)
演算回路fと、前記ブートストラッピング処理部によって生成された前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算部と
を備える準同型演算装置。 a decryption circuit that decrypts, with a decryption key SK, a ciphertext C PK (m) obtained by encrypting a plaintext m using an encryption key PK; and a bootstrapping processing unit that performs homomorphic operation on inputs of a bootstrapping key BK generated by encrypting the decryption key SK using the encryption key PK to generate a new ciphertext C′ PK (m);
a homomorphic arithmetic unit that receives as input the new ciphertext C′ PK (m) generated by the bootstrapping processing unit, performs homomorphic arithmetic processing, and generates a post-operation ciphertext C PK (M).
請求項1に記載の準同型演算装置。 The homomorphic arithmetic device according to claim 1 , wherein the homomorphic arithmetic processing is a homomorphic arithmetic processing in a homomorphic encryption method having circuit confidentiality.
請求項2に記載の準同型演算装置。 The homomorphic arithmetic device according to claim 2 , wherein the encryption key PK and the decryption key SK are encryption keys and decryption keys in the homomorphic encryption method.
コンピュータが、演算回路fと、前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算方法。 a computer performs homomorphic computation using as input a decryption circuit that decrypts ciphertext C PK (m), which is obtained by encrypting plaintext m using an encryption key PK, and a bootstrapping key BK that is generated by encrypting the decryption key SK using the encryption key PK, to generate a new ciphertext C′ PK (m);
A homomorphic computation method in which a computer performs homomorphic computation using an arithmetic circuit f and the new ciphertext C′ PK (m) as input to generate a post-computation ciphertext C PK (M).
演算回路fと、前記ブートストラッピング処理によって生成された前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算処理と
を行う準同型演算装置としてコンピュータを機能させる準同型演算プログラム。 a decryption circuit that decrypts, with a decryption key SK, a ciphertext C PK (m) obtained by encrypting a plaintext m using an encryption key PK; and a bootstrapping process that performs homomorphic computation using, as input, a bootstrapping key BK generated by encrypting the decryption key SK using the encryption key PK to generate a new ciphertext C′ PK (m);
a homomorphic arithmetic program that causes a computer to function as a homomorphic arithmetic device that performs homomorphic arithmetic processing using an arithmetic circuit f and the new ciphertext C′ PK (m) generated by the bootstrapping processing as input to generate a post-operation ciphertext C PK (M).
前記暗号化装置によって生成された前記暗号文CPK(m)から新たな暗号文C’PK(m)を生成し、演算回路fと前記新たな暗号文C’PK(m)とを入力として準同型演算処理をして演算後暗号文CPK(M)を生成する準同型演算装置と、
前記準同型演算装置によって生成された演算後暗号文CPK(M)を、復号鍵SKで復号する復号装置と
を備え、
前記準同型演算装置は、前記暗号文CPK(m)を前記復号鍵SKで復号する復号回路と、前記復号鍵SKを前記暗号化鍵PKを用いて暗号化することにより生成されたブートストラッピング鍵BKとを入力として準同型演算処理をして前記新たな暗号文C’PK(m)を生成する秘匿情報処理システム。 an encryption device that encrypts plaintext m using an encryption key PK to generate ciphertext C PK (m);
a homomorphic arithmetic device that generates a new ciphertext C′ PK (m) from the ciphertext C PK (m) generated by the encryption device, and performs homomorphic arithmetic processing using an arithmetic circuit f and the new ciphertext C′ PK (m) as inputs to generate a post-operation ciphertext C PK (M);
a decryption device that decrypts the post-operation ciphertext C PK (M) generated by the homomorphic arithmetic device using a decryption key SK;
The homomorphic arithmetic device is a secret information processing system that performs homomorphic arithmetic processing using as input a decryption circuit that decrypts the ciphertext C PK (m) with the decryption key SK and a bootstrapping key BK that is generated by encrypting the decryption key SK with the encryption key PK, to generate the new ciphertext C' PK (m).
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024569522A JP7625168B1 (en) | 2024-04-02 | 2024-04-25 | Homomorphic computing device, homomorphic computing method, homomorphic computing program, and secret information processing system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024059378 | 2024-04-02 | ||
| JP2024-059378 | 2024-04-02 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025210930A1 true WO2025210930A1 (en) | 2025-10-09 |
Family
ID=97266800
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/016227 Pending WO2025210930A1 (en) | 2024-04-02 | 2024-04-25 | Homomorphic computing device, homomorphic computing method, homomorphic computing program, and confidential information processing system |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025210930A1 (en) |
-
2024
- 2024-04-25 WO PCT/JP2024/016227 patent/WO2025210930A1/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11522671B2 (en) | Homomorphic inference device, homomorphic inference method, computer readable medium, and privacy-preserving information processing system | |
| JP6732141B2 (en) | Conversion key generation device, ciphertext conversion device, secret information processing system, conversion key generation method, conversion key generation program, ciphertext conversion method, and ciphertext conversion program | |
| CN107750363B (en) | Securing communications with hardware accelerators to increase workflow security | |
| US8681975B2 (en) | Encryption method and apparatus using composition of ciphers | |
| CN110169010B (en) | Homomorphic arithmetic device, encryption system, and computer-readable storage medium | |
| JP6362811B1 (en) | Registration terminal, key server, search system, registration program | |
| CN115668334A (en) | Secret information processing system, encryption device, encryption method, and encryption program | |
| CN115134070A (en) | Method, device and equipment for realizing block cipher algorithm | |
| JP7625168B1 (en) | Homomorphic computing device, homomorphic computing method, homomorphic computing program, and secret information processing system | |
| WO2025210930A1 (en) | Homomorphic computing device, homomorphic computing method, homomorphic computing program, and confidential information processing system | |
| JP7317261B2 (en) | Encryption device, decryption device, encryption method, encryption program, decryption method and decryption program | |
| JP6452910B1 (en) | Secret analysis device, secret analysis system, secret analysis method, and secret analysis program | |
| CN116668013A (en) | Method and device for generating re-encryption key | |
| JP6949276B2 (en) | Re-encrypting device, re-encrypting method, re-encrypting program and cryptosystem | |
| JP7310938B2 (en) | Encryption system, encryption method, decryption method and program | |
| JP7614469B1 (en) | CONFIDENTIAL INFORMATION PROCESSING SYSTEM, CONFIDENTIAL INFORMATION PROCESSING METHOD, AND CONFIDENTIAL INFORMATION PROCESSING PROGRAM | |
| JP7520255B2 (en) | CONFIDENTIAL INFORMATION PROCESSING SYSTEM, CONFIDENTIAL INFORMATION PROCESSING METHOD, AND CONFIDENTIAL INFORMATION PROCESSING PROGRAM | |
| JP2025184230A (en) | Client device, server device, parameter concealment system, parameter concealment method, and parameter concealment program | |
| JP7158635B2 (en) | Cryptographic system, encryption device, decryption device and key generation device | |
| US20240313948A1 (en) | Deterministic local key masking for high-speed encryption with key reuse | |
| WO2025262959A1 (en) | Re-encryption key generation device, re-encryption device, ciphertext conversion system, re-encryption method, and re-encryption program | |
| WO2025262960A1 (en) | Ciphertext conversion system, re-encryption verification method, and re-encryption verification program | |
| CN120658425A (en) | Data encryption and decryption method | |
| WO2020075224A1 (en) | Secrecy analysis device, secrecy analysis system, secrecy analysis method, and secrecy analysis program |
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: 24933979 Country of ref document: EP Kind code of ref document: A1 |